From 6e9ef963b92155cb4d92fbf872761645a6c00121 Mon Sep 17 00:00:00 2001 From: slava Date: Sat, 24 May 2025 15:19:27 +0700 Subject: [PATCH] scrcpy-server-v3.2 --- CMakeLists.txt | 32 + VideoReceiver.cpp | 91 + VideoReceiver.h | 27 + VideoWindow.cpp | 146 + VideoWindow.h | 32 + .../macos/include/libavcodec/ac3_parser.h | 36 + .../macos/include/libavcodec/adts_parser.h | 37 + .../ffmpeg/macos/include/libavcodec/avcodec.h | 3128 +++++++++++++++++ deps/ffmpeg/macos/include/libavcodec/avdct.h | 88 + deps/ffmpeg/macos/include/libavcodec/avfft.h | 149 + deps/ffmpeg/macos/include/libavcodec/bsf.h | 332 ++ deps/ffmpeg/macos/include/libavcodec/codec.h | 382 ++ .../macos/include/libavcodec/codec_desc.h | 134 + .../macos/include/libavcodec/codec_id.h | 669 ++++ .../macos/include/libavcodec/codec_par.h | 248 ++ .../ffmpeg/macos/include/libavcodec/d3d11va.h | 109 + deps/ffmpeg/macos/include/libavcodec/defs.h | 337 ++ deps/ffmpeg/macos/include/libavcodec/dirac.h | 135 + .../macos/include/libavcodec/dv_profile.h | 82 + deps/ffmpeg/macos/include/libavcodec/dxva2.h | 90 + deps/ffmpeg/macos/include/libavcodec/jni.h | 67 + .../macos/include/libavcodec/mediacodec.h | 103 + deps/ffmpeg/macos/include/libavcodec/packet.h | 887 +++++ deps/ffmpeg/macos/include/libavcodec/qsv.h | 109 + deps/ffmpeg/macos/include/libavcodec/vdpau.h | 171 + .../ffmpeg/macos/include/libavcodec/version.h | 45 + .../macos/include/libavcodec/version_major.h | 52 + .../macos/include/libavcodec/videotoolbox.h | 85 + .../macos/include/libavcodec/vorbis_parser.h | 74 + .../macos/include/libavdevice/avdevice.h | 397 +++ .../macos/include/libavdevice/version.h | 45 + .../macos/include/libavdevice/version_major.h | 43 + .../macos/include/libavfilter/avfilter.h | 1379 ++++++++ .../macos/include/libavfilter/buffersink.h | 173 + .../macos/include/libavfilter/buffersrc.h | 215 ++ .../macos/include/libavfilter/version.h | 48 + .../macos/include/libavfilter/version_major.h | 40 + .../macos/include/libavformat/avformat.h | 3111 ++++++++++++++++ deps/ffmpeg/macos/include/libavformat/avio.h | 831 +++++ .../macos/include/libavformat/version.h | 47 + .../macos/include/libavformat/version_major.h | 54 + deps/ffmpeg/macos/include/libavutil/adler32.h | 63 + deps/ffmpeg/macos/include/libavutil/aes.h | 69 + deps/ffmpeg/macos/include/libavutil/aes_ctr.h | 99 + .../libavutil/ambient_viewing_environment.h | 72 + .../macos/include/libavutil/attributes.h | 173 + .../macos/include/libavutil/audio_fifo.h | 187 + .../ffmpeg/macos/include/libavutil/avassert.h | 78 + .../ffmpeg/macos/include/libavutil/avconfig.h | 6 + .../ffmpeg/macos/include/libavutil/avstring.h | 428 +++ deps/ffmpeg/macos/include/libavutil/avutil.h | 362 ++ deps/ffmpeg/macos/include/libavutil/base64.h | 72 + .../ffmpeg/macos/include/libavutil/blowfish.h | 82 + deps/ffmpeg/macos/include/libavutil/bprint.h | 254 ++ deps/ffmpeg/macos/include/libavutil/bswap.h | 105 + deps/ffmpeg/macos/include/libavutil/buffer.h | 322 ++ .../ffmpeg/macos/include/libavutil/camellia.h | 70 + deps/ffmpeg/macos/include/libavutil/cast5.h | 80 + .../macos/include/libavutil/channel_layout.h | 751 ++++ deps/ffmpeg/macos/include/libavutil/common.h | 589 ++++ deps/ffmpeg/macos/include/libavutil/cpu.h | 145 + deps/ffmpeg/macos/include/libavutil/crc.h | 102 + deps/ffmpeg/macos/include/libavutil/csp.h | 150 + deps/ffmpeg/macos/include/libavutil/des.h | 81 + .../macos/include/libavutil/detection_bbox.h | 108 + deps/ffmpeg/macos/include/libavutil/dict.h | 241 ++ deps/ffmpeg/macos/include/libavutil/display.h | 109 + .../macos/include/libavutil/dovi_meta.h | 396 +++ .../macos/include/libavutil/downmix_info.h | 115 + .../macos/include/libavutil/encryption_info.h | 205 ++ deps/ffmpeg/macos/include/libavutil/error.h | 129 + deps/ffmpeg/macos/include/libavutil/eval.h | 140 + .../ffmpeg/macos/include/libavutil/executor.h | 67 + .../macos/include/libavutil/ffversion.h | 5 + deps/ffmpeg/macos/include/libavutil/fifo.h | 242 ++ deps/ffmpeg/macos/include/libavutil/file.h | 62 + .../include/libavutil/film_grain_params.h | 322 ++ deps/ffmpeg/macos/include/libavutil/frame.h | 1175 +++++++ deps/ffmpeg/macos/include/libavutil/hash.h | 264 ++ .../include/libavutil/hdr_dynamic_metadata.h | 376 ++ .../libavutil/hdr_dynamic_vivid_metadata.h | 346 ++ deps/ffmpeg/macos/include/libavutil/hmac.h | 99 + .../macos/include/libavutil/hwcontext.h | 598 ++++ .../macos/include/libavutil/hwcontext_cuda.h | 74 + .../include/libavutil/hwcontext_d3d11va.h | 178 + .../include/libavutil/hwcontext_d3d12va.h | 142 + .../macos/include/libavutil/hwcontext_drm.h | 169 + .../macos/include/libavutil/hwcontext_dxva2.h | 75 + .../include/libavutil/hwcontext_mediacodec.h | 61 + .../include/libavutil/hwcontext_opencl.h | 100 + .../macos/include/libavutil/hwcontext_qsv.h | 87 + .../macos/include/libavutil/hwcontext_vaapi.h | 117 + .../macos/include/libavutil/hwcontext_vdpau.h | 44 + .../libavutil/hwcontext_videotoolbox.h | 106 + .../include/libavutil/hwcontext_vulkan.h | 382 ++ deps/ffmpeg/macos/include/libavutil/iamf.h | 690 ++++ .../ffmpeg/macos/include/libavutil/imgutils.h | 377 ++ .../ffmpeg/macos/include/libavutil/intfloat.h | 77 + .../macos/include/libavutil/intreadwrite.h | 677 ++++ deps/ffmpeg/macos/include/libavutil/lfg.h | 81 + deps/ffmpeg/macos/include/libavutil/log.h | 387 ++ deps/ffmpeg/macos/include/libavutil/lzo.h | 66 + deps/ffmpeg/macos/include/libavutil/macros.h | 80 + .../libavutil/mastering_display_metadata.h | 137 + .../macos/include/libavutil/mathematics.h | 300 ++ deps/ffmpeg/macos/include/libavutil/md5.h | 89 + deps/ffmpeg/macos/include/libavutil/mem.h | 607 ++++ .../macos/include/libavutil/motion_vector.h | 57 + deps/ffmpeg/macos/include/libavutil/murmur3.h | 115 + deps/ffmpeg/macos/include/libavutil/opt.h | 1187 +++++++ .../macos/include/libavutil/parseutils.h | 197 ++ deps/ffmpeg/macos/include/libavutil/pixdesc.h | 440 +++ .../macos/include/libavutil/pixelutils.h | 51 + deps/ffmpeg/macos/include/libavutil/pixfmt.h | 716 ++++ .../macos/include/libavutil/random_seed.h | 57 + .../ffmpeg/macos/include/libavutil/rational.h | 225 ++ deps/ffmpeg/macos/include/libavutil/rc4.h | 69 + .../macos/include/libavutil/replaygain.h | 50 + deps/ffmpeg/macos/include/libavutil/ripemd.h | 83 + .../macos/include/libavutil/samplefmt.h | 269 ++ deps/ffmpeg/macos/include/libavutil/sha.h | 90 + deps/ffmpeg/macos/include/libavutil/sha512.h | 92 + .../macos/include/libavutil/spherical.h | 243 ++ .../ffmpeg/macos/include/libavutil/stereo3d.h | 325 ++ deps/ffmpeg/macos/include/libavutil/tea.h | 71 + .../macos/include/libavutil/threadmessage.h | 115 + deps/ffmpeg/macos/include/libavutil/time.h | 56 + .../ffmpeg/macos/include/libavutil/timecode.h | 199 ++ .../macos/include/libavutil/timestamp.h | 85 + deps/ffmpeg/macos/include/libavutil/tree.h | 137 + deps/ffmpeg/macos/include/libavutil/twofish.h | 70 + deps/ffmpeg/macos/include/libavutil/tx.h | 210 ++ deps/ffmpeg/macos/include/libavutil/uuid.h | 146 + deps/ffmpeg/macos/include/libavutil/version.h | 124 + .../include/libavutil/video_enc_params.h | 171 + .../macos/include/libavutil/video_hint.h | 107 + deps/ffmpeg/macos/include/libavutil/xtea.h | 94 + .../macos/include/libpostproc/postprocess.h | 107 + .../macos/include/libpostproc/version.h | 46 + .../macos/include/libpostproc/version_major.h | 31 + .../macos/include/libswresample/swresample.h | 587 ++++ .../macos/include/libswresample/version.h | 46 + .../include/libswresample/version_major.h | 31 + .../ffmpeg/macos/include/libswscale/swscale.h | 460 +++ .../ffmpeg/macos/include/libswscale/version.h | 44 + .../macos/include/libswscale/version_major.h | 35 + .../macos/lib/libavcodec.61.19.101.dylib | Bin 0 -> 10226704 bytes deps/ffmpeg/macos/lib/libavcodec.61.dylib | 1 + deps/ffmpeg/macos/lib/libavcodec.a | Bin 0 -> 14172480 bytes deps/ffmpeg/macos/lib/libavcodec.dylib | 1 + .../macos/lib/libavdevice.61.3.100.dylib | Bin 0 -> 205360 bytes deps/ffmpeg/macos/lib/libavdevice.61.dylib | 1 + deps/ffmpeg/macos/lib/libavdevice.a | Bin 0 -> 90240 bytes deps/ffmpeg/macos/lib/libavdevice.dylib | 1 + .../macos/lib/libavfilter.10.4.100.dylib | Bin 0 -> 3140016 bytes deps/ffmpeg/macos/lib/libavfilter.10.dylib | 1 + deps/ffmpeg/macos/lib/libavfilter.a | Bin 0 -> 5098040 bytes deps/ffmpeg/macos/lib/libavfilter.dylib | 1 + .../macos/lib/libavformat.61.7.100.dylib | Bin 0 -> 2340080 bytes deps/ffmpeg/macos/lib/libavformat.61.dylib | 1 + deps/ffmpeg/macos/lib/libavformat.a | Bin 0 -> 4223488 bytes deps/ffmpeg/macos/lib/libavformat.dylib | 1 + .../macos/lib/libavutil.59.39.100.dylib | Bin 0 -> 643248 bytes deps/ffmpeg/macos/lib/libavutil.59.dylib | 1 + deps/ffmpeg/macos/lib/libavutil.a | Bin 0 -> 885136 bytes deps/ffmpeg/macos/lib/libavutil.dylib | 1 + .../macos/lib/libpostproc.58.3.100.dylib | Bin 0 -> 85872 bytes deps/ffmpeg/macos/lib/libpostproc.58.dylib | 1 + deps/ffmpeg/macos/lib/libpostproc.a | Bin 0 -> 31888 bytes deps/ffmpeg/macos/lib/libpostproc.dylib | 1 + .../macos/lib/libswresample.5.3.100.dylib | Bin 0 -> 122096 bytes deps/ffmpeg/macos/lib/libswresample.5.dylib | 1 + deps/ffmpeg/macos/lib/libswresample.a | Bin 0 -> 115800 bytes deps/ffmpeg/macos/lib/libswresample.dylib | 1 + .../ffmpeg/macos/lib/libswscale.8.3.100.dylib | Bin 0 -> 453536 bytes deps/ffmpeg/macos/lib/libswscale.8.dylib | 1 + deps/ffmpeg/macos/lib/libswscale.a | Bin 0 -> 547560 bytes deps/ffmpeg/macos/lib/libswscale.dylib | 1 + deps/ffmpeg/macos/lib/pkgconfig/libavcodec.pc | 14 + .../ffmpeg/macos/lib/pkgconfig/libavdevice.pc | 14 + .../ffmpeg/macos/lib/pkgconfig/libavfilter.pc | 14 + .../ffmpeg/macos/lib/pkgconfig/libavformat.pc | 14 + deps/ffmpeg/macos/lib/pkgconfig/libavutil.pc | 14 + .../ffmpeg/macos/lib/pkgconfig/libpostproc.pc | 14 + .../macos/lib/pkgconfig/libswresample.pc | 14 + deps/ffmpeg/macos/lib/pkgconfig/libswscale.pc | 14 + main.cpp | 47 +- scrcpy-server-v3.2.jar | Bin 0 -> 90888 bytes 188 files changed, 36113 insertions(+), 2 deletions(-) create mode 100644 VideoReceiver.cpp create mode 100644 VideoReceiver.h create mode 100644 VideoWindow.cpp create mode 100644 VideoWindow.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/ac3_parser.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/adts_parser.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/avcodec.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/avdct.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/avfft.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/bsf.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/codec.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/codec_desc.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/codec_id.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/codec_par.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/d3d11va.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/defs.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/dirac.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/dv_profile.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/dxva2.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/jni.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/mediacodec.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/packet.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/qsv.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/vdpau.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/version.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/version_major.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/videotoolbox.h create mode 100644 deps/ffmpeg/macos/include/libavcodec/vorbis_parser.h create mode 100644 deps/ffmpeg/macos/include/libavdevice/avdevice.h create mode 100644 deps/ffmpeg/macos/include/libavdevice/version.h create mode 100644 deps/ffmpeg/macos/include/libavdevice/version_major.h create mode 100644 deps/ffmpeg/macos/include/libavfilter/avfilter.h create mode 100644 deps/ffmpeg/macos/include/libavfilter/buffersink.h create mode 100644 deps/ffmpeg/macos/include/libavfilter/buffersrc.h create mode 100644 deps/ffmpeg/macos/include/libavfilter/version.h create mode 100644 deps/ffmpeg/macos/include/libavfilter/version_major.h create mode 100644 deps/ffmpeg/macos/include/libavformat/avformat.h create mode 100644 deps/ffmpeg/macos/include/libavformat/avio.h create mode 100644 deps/ffmpeg/macos/include/libavformat/version.h create mode 100644 deps/ffmpeg/macos/include/libavformat/version_major.h create mode 100644 deps/ffmpeg/macos/include/libavutil/adler32.h create mode 100644 deps/ffmpeg/macos/include/libavutil/aes.h create mode 100644 deps/ffmpeg/macos/include/libavutil/aes_ctr.h create mode 100644 deps/ffmpeg/macos/include/libavutil/ambient_viewing_environment.h create mode 100644 deps/ffmpeg/macos/include/libavutil/attributes.h create mode 100644 deps/ffmpeg/macos/include/libavutil/audio_fifo.h create mode 100644 deps/ffmpeg/macos/include/libavutil/avassert.h create mode 100644 deps/ffmpeg/macos/include/libavutil/avconfig.h create mode 100644 deps/ffmpeg/macos/include/libavutil/avstring.h create mode 100644 deps/ffmpeg/macos/include/libavutil/avutil.h create mode 100644 deps/ffmpeg/macos/include/libavutil/base64.h create mode 100644 deps/ffmpeg/macos/include/libavutil/blowfish.h create mode 100644 deps/ffmpeg/macos/include/libavutil/bprint.h create mode 100644 deps/ffmpeg/macos/include/libavutil/bswap.h create mode 100644 deps/ffmpeg/macos/include/libavutil/buffer.h create mode 100644 deps/ffmpeg/macos/include/libavutil/camellia.h create mode 100644 deps/ffmpeg/macos/include/libavutil/cast5.h create mode 100644 deps/ffmpeg/macos/include/libavutil/channel_layout.h create mode 100644 deps/ffmpeg/macos/include/libavutil/common.h create mode 100644 deps/ffmpeg/macos/include/libavutil/cpu.h create mode 100644 deps/ffmpeg/macos/include/libavutil/crc.h create mode 100644 deps/ffmpeg/macos/include/libavutil/csp.h create mode 100644 deps/ffmpeg/macos/include/libavutil/des.h create mode 100644 deps/ffmpeg/macos/include/libavutil/detection_bbox.h create mode 100644 deps/ffmpeg/macos/include/libavutil/dict.h create mode 100644 deps/ffmpeg/macos/include/libavutil/display.h create mode 100644 deps/ffmpeg/macos/include/libavutil/dovi_meta.h create mode 100644 deps/ffmpeg/macos/include/libavutil/downmix_info.h create mode 100644 deps/ffmpeg/macos/include/libavutil/encryption_info.h create mode 100644 deps/ffmpeg/macos/include/libavutil/error.h create mode 100644 deps/ffmpeg/macos/include/libavutil/eval.h create mode 100644 deps/ffmpeg/macos/include/libavutil/executor.h create mode 100644 deps/ffmpeg/macos/include/libavutil/ffversion.h create mode 100644 deps/ffmpeg/macos/include/libavutil/fifo.h create mode 100644 deps/ffmpeg/macos/include/libavutil/file.h create mode 100644 deps/ffmpeg/macos/include/libavutil/film_grain_params.h create mode 100644 deps/ffmpeg/macos/include/libavutil/frame.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hash.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hdr_dynamic_metadata.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hdr_dynamic_vivid_metadata.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hmac.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_cuda.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_d3d11va.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_d3d12va.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_drm.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_dxva2.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_mediacodec.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_opencl.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_qsv.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_vaapi.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_vdpau.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_videotoolbox.h create mode 100644 deps/ffmpeg/macos/include/libavutil/hwcontext_vulkan.h create mode 100644 deps/ffmpeg/macos/include/libavutil/iamf.h create mode 100644 deps/ffmpeg/macos/include/libavutil/imgutils.h create mode 100644 deps/ffmpeg/macos/include/libavutil/intfloat.h create mode 100644 deps/ffmpeg/macos/include/libavutil/intreadwrite.h create mode 100644 deps/ffmpeg/macos/include/libavutil/lfg.h create mode 100644 deps/ffmpeg/macos/include/libavutil/log.h create mode 100644 deps/ffmpeg/macos/include/libavutil/lzo.h create mode 100644 deps/ffmpeg/macos/include/libavutil/macros.h create mode 100644 deps/ffmpeg/macos/include/libavutil/mastering_display_metadata.h create mode 100644 deps/ffmpeg/macos/include/libavutil/mathematics.h create mode 100644 deps/ffmpeg/macos/include/libavutil/md5.h create mode 100644 deps/ffmpeg/macos/include/libavutil/mem.h create mode 100644 deps/ffmpeg/macos/include/libavutil/motion_vector.h create mode 100644 deps/ffmpeg/macos/include/libavutil/murmur3.h create mode 100644 deps/ffmpeg/macos/include/libavutil/opt.h create mode 100644 deps/ffmpeg/macos/include/libavutil/parseutils.h create mode 100644 deps/ffmpeg/macos/include/libavutil/pixdesc.h create mode 100644 deps/ffmpeg/macos/include/libavutil/pixelutils.h create mode 100644 deps/ffmpeg/macos/include/libavutil/pixfmt.h create mode 100644 deps/ffmpeg/macos/include/libavutil/random_seed.h create mode 100644 deps/ffmpeg/macos/include/libavutil/rational.h create mode 100644 deps/ffmpeg/macos/include/libavutil/rc4.h create mode 100644 deps/ffmpeg/macos/include/libavutil/replaygain.h create mode 100644 deps/ffmpeg/macos/include/libavutil/ripemd.h create mode 100644 deps/ffmpeg/macos/include/libavutil/samplefmt.h create mode 100644 deps/ffmpeg/macos/include/libavutil/sha.h create mode 100644 deps/ffmpeg/macos/include/libavutil/sha512.h create mode 100644 deps/ffmpeg/macos/include/libavutil/spherical.h create mode 100644 deps/ffmpeg/macos/include/libavutil/stereo3d.h create mode 100644 deps/ffmpeg/macos/include/libavutil/tea.h create mode 100644 deps/ffmpeg/macos/include/libavutil/threadmessage.h create mode 100644 deps/ffmpeg/macos/include/libavutil/time.h create mode 100644 deps/ffmpeg/macos/include/libavutil/timecode.h create mode 100644 deps/ffmpeg/macos/include/libavutil/timestamp.h create mode 100644 deps/ffmpeg/macos/include/libavutil/tree.h create mode 100644 deps/ffmpeg/macos/include/libavutil/twofish.h create mode 100644 deps/ffmpeg/macos/include/libavutil/tx.h create mode 100644 deps/ffmpeg/macos/include/libavutil/uuid.h create mode 100644 deps/ffmpeg/macos/include/libavutil/version.h create mode 100644 deps/ffmpeg/macos/include/libavutil/video_enc_params.h create mode 100644 deps/ffmpeg/macos/include/libavutil/video_hint.h create mode 100644 deps/ffmpeg/macos/include/libavutil/xtea.h create mode 100644 deps/ffmpeg/macos/include/libpostproc/postprocess.h create mode 100644 deps/ffmpeg/macos/include/libpostproc/version.h create mode 100644 deps/ffmpeg/macos/include/libpostproc/version_major.h create mode 100644 deps/ffmpeg/macos/include/libswresample/swresample.h create mode 100644 deps/ffmpeg/macos/include/libswresample/version.h create mode 100644 deps/ffmpeg/macos/include/libswresample/version_major.h create mode 100644 deps/ffmpeg/macos/include/libswscale/swscale.h create mode 100644 deps/ffmpeg/macos/include/libswscale/version.h create mode 100644 deps/ffmpeg/macos/include/libswscale/version_major.h create mode 100644 deps/ffmpeg/macos/lib/libavcodec.61.19.101.dylib create mode 120000 deps/ffmpeg/macos/lib/libavcodec.61.dylib create mode 100644 deps/ffmpeg/macos/lib/libavcodec.a create mode 120000 deps/ffmpeg/macos/lib/libavcodec.dylib create mode 100644 deps/ffmpeg/macos/lib/libavdevice.61.3.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libavdevice.61.dylib create mode 100644 deps/ffmpeg/macos/lib/libavdevice.a create mode 120000 deps/ffmpeg/macos/lib/libavdevice.dylib create mode 100644 deps/ffmpeg/macos/lib/libavfilter.10.4.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libavfilter.10.dylib create mode 100644 deps/ffmpeg/macos/lib/libavfilter.a create mode 120000 deps/ffmpeg/macos/lib/libavfilter.dylib create mode 100644 deps/ffmpeg/macos/lib/libavformat.61.7.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libavformat.61.dylib create mode 100644 deps/ffmpeg/macos/lib/libavformat.a create mode 120000 deps/ffmpeg/macos/lib/libavformat.dylib create mode 100644 deps/ffmpeg/macos/lib/libavutil.59.39.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libavutil.59.dylib create mode 100644 deps/ffmpeg/macos/lib/libavutil.a create mode 120000 deps/ffmpeg/macos/lib/libavutil.dylib create mode 100644 deps/ffmpeg/macos/lib/libpostproc.58.3.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libpostproc.58.dylib create mode 100644 deps/ffmpeg/macos/lib/libpostproc.a create mode 120000 deps/ffmpeg/macos/lib/libpostproc.dylib create mode 100644 deps/ffmpeg/macos/lib/libswresample.5.3.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libswresample.5.dylib create mode 100644 deps/ffmpeg/macos/lib/libswresample.a create mode 120000 deps/ffmpeg/macos/lib/libswresample.dylib create mode 100644 deps/ffmpeg/macos/lib/libswscale.8.3.100.dylib create mode 120000 deps/ffmpeg/macos/lib/libswscale.8.dylib create mode 100644 deps/ffmpeg/macos/lib/libswscale.a create mode 120000 deps/ffmpeg/macos/lib/libswscale.dylib create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libavcodec.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libavdevice.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libavfilter.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libavformat.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libavutil.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libpostproc.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libswresample.pc create mode 100644 deps/ffmpeg/macos/lib/pkgconfig/libswscale.pc create mode 100644 scrcpy-server-v3.2.jar diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a78487..de79b37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,6 +30,28 @@ find_package(Qt6 REQUIRED COMPONENTS Xml ) +set(FFMPEG_BASE_DIR "${CMAKE_SOURCE_DIR}/deps/ffmpeg") +# Определяем include/lib dirs в зависимости от ОС +if (WIN32) + set(FFMPEG_PLATFORM_DIR "${FFMPEG_BASE_DIR}/windows") +elseif (APPLE) + set(FFMPEG_PLATFORM_DIR "${FFMPEG_BASE_DIR}/macos") +endif () +set(FFMPEG_INCLUDE_DIR "${FFMPEG_PLATFORM_DIR}/include") +set(FFMPEG_LIB_DIR "${FFMPEG_PLATFORM_DIR}/lib") +# Проверяем, что всё на месте +if (NOT EXISTS "${FFMPEG_INCLUDE_DIR}/libavcodec/avcodec.h") + message(FATAL_ERROR "FFmpeg headers not found in ${FFMPEG_INCLUDE_DIR}") +endif () +if (NOT EXISTS "${FFMPEG_LIB_DIR}") + message(FATAL_ERROR "FFmpeg lib directory not found: ${FFMPEG_LIB_DIR}") +endif () + +# Добавляем include-путь и директорию линковки +include_directories(${FFMPEG_INCLUDE_DIR}) +link_directories(${FFMPEG_LIB_DIR}) + + file(GLOB_RECURSE DB_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/database/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/database/*.h" @@ -57,6 +79,10 @@ file(GLOB_RECURSE ANDROID_SOURCES add_executable(ARCDesktopProject main.cpp + VideoReceiver.h + VideoReceiver.cpp + VideoWindow.h + VideoWindow.cpp ${VIEW_SOURCES} ${SERVICES_SOURCES} ${DB_SOURCES} @@ -71,6 +97,9 @@ if (WIN32) Qt6::Sql Qt6::Network Tesseract::libtesseract + avcodec + avutil + swscale ) # Копирование изображений в директорию сборки @@ -86,6 +115,9 @@ elseif (APPLE) Qt6::Xml Qt6::Network tesseract + avcodec + avutil + swscale ) endif () diff --git a/VideoReceiver.cpp b/VideoReceiver.cpp new file mode 100644 index 0000000..066dd76 --- /dev/null +++ b/VideoReceiver.cpp @@ -0,0 +1,91 @@ +#include "VideoReceiver.h" +#include + +VideoReceiver::VideoReceiver(QObject *parent) + : QThread(parent) { +} + +VideoReceiver::~VideoReceiver() { +} + +void VideoReceiver::run() { + QTcpSocket socket; + socket.connectToHost("127.0.0.1", 27183); + if (!socket.waitForConnected(3000)) { + qWarning() << "Unable to connect to scrcpy stream"; + return; + } else { + qDebug() << "Connected to scrcpy stream"; + } + + // No need for explicit avcodec_register_all() with modern FFmpeg + const AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_H264); + if (!codec) { + qCritical() << "H264 codec not found"; + return; + } + m_codecCtx = avcodec_alloc_context3(codec); + if (avcodec_open2(m_codecCtx, codec, nullptr) < 0) { + qCritical() << "Failed to open codec"; + return; + } + + m_parser = av_parser_init(AV_CODEC_ID_H264); + AVPacket *pkt = av_packet_alloc(); + AVFrame *frame = av_frame_alloc(); + + // Delay determining width/height until after first frame if unknown + SwsContext *swsCtx = nullptr; + uint8_t *rgbData[4] = {nullptr}; + int rgbLinesize[4] = {0}; + + QByteArray buffer; + while (socket.waitForReadyRead()) { + buffer.append(socket.readAll()); + const uint8_t *data = reinterpret_cast(buffer.constData()); + int dataSize = buffer.size(); + while (dataSize > 0) { + int len = av_parser_parse2(m_parser, m_codecCtx, + &pkt->data, &pkt->size, + data, dataSize, + AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0); + if (len < 0) break; + data += len; + dataSize -= len; + if (pkt->size > 0) { + avcodec_send_packet(m_codecCtx, pkt); + while (avcodec_receive_frame(m_codecCtx, frame) == 0) { + // Initialize scaler and buffers when frame size known + if (!swsCtx) { + m_dstWidth = frame->width; + m_dstHeight = frame->height; + swsCtx = sws_getContext( + m_dstWidth, m_dstHeight, m_codecCtx->pix_fmt, + m_dstWidth, m_dstHeight, AV_PIX_FMT_RGB24, + SWS_BILINEAR, nullptr, nullptr, nullptr + ); + av_image_alloc(rgbData, rgbLinesize, + m_dstWidth, m_dstHeight, + AV_PIX_FMT_RGB24, 1); + } + // Convert to RGB + sws_scale(swsCtx, frame->data, frame->linesize, 0, + m_dstHeight, rgbData, rgbLinesize); + QImage img(rgbData[0], m_dstWidth, m_dstHeight, + rgbLinesize[0], QImage::Format_RGB888); + emit frameReady(img.copy()); + } + } + } + buffer.clear(); + } + + if (rgbData[0]) + av_freep(&rgbData[0]); + if (swsCtx) + sws_freeContext(swsCtx); + av_frame_free(&frame); + av_packet_free(&pkt); + av_parser_close(m_parser); + avcodec_free_context(&m_codecCtx); +} diff --git a/VideoReceiver.h b/VideoReceiver.h new file mode 100644 index 0000000..b3d9b10 --- /dev/null +++ b/VideoReceiver.h @@ -0,0 +1,27 @@ +#pragma once +#include +#include +#include + +extern "C" { +#include +#include +#include +} + +class VideoReceiver : public QThread { + Q_OBJECT +public: + VideoReceiver(QObject* parent = nullptr); + ~VideoReceiver() override; + signals: + void frameReady(const QImage& frame); +protected: + void run() override; +private: + AVCodecContext* m_codecCtx = nullptr; + AVCodecParserContext* m_parser = nullptr; + SwsContext* m_swsCtx = nullptr; + int m_dstWidth = 0; + int m_dstHeight = 0; +}; \ No newline at end of file diff --git a/VideoWindow.cpp b/VideoWindow.cpp new file mode 100644 index 0000000..0b66ea3 --- /dev/null +++ b/VideoWindow.cpp @@ -0,0 +1,146 @@ +#include "VideoWindow.h" +#include + +enum : uint8_t { + CONTROL_MSG_TYPE_INJECT_TOUCH_EVENT = 2, + ACTION_DOWN = 0, + ACTION_UP = 1, + ACTION_MOVE = 2, +}; + +// Вспомогательная запись BE-целых +static void write32BE(QByteArray &buf, uint32_t v) { + buf.append(char((v >> 24) & 0xFF)); + buf.append(char((v >> 16) & 0xFF)); + buf.append(char((v >> 8) & 0xFF)); + buf.append(char((v) & 0xFF)); +} + +static void write16BE(QByteArray &buf, uint16_t v) { + buf.append(char((v >> 8) & 0xFF)); + buf.append(char((v) & 0xFF)); +} + +static constexpr uint8_t SC_CONTROL_MSG_TYPE_INJECT_TOUCH_EVENT = 2; +static constexpr uint32_t AMOTION_EVENT_BUTTON_PRIMARY = 1; + +void VideoWindow::sendTouch(uint8_t action, const QPoint &pos) { + if (m_controlSocket->state() != QAbstractSocket::ConnectedState) { + return; + } + + // 1) Подготовка буфера нужного размера + QByteArray ba; + ba.reserve(32); + + // 2) Хелперы для записи + auto write8 = [&](uint8_t v) { ba.append(char(v)); }; + auto write16 = [&](uint16_t v) { + ba.append(char((v >> 8) & 0xFF)); + ba.append(char(v & 0xFF)); + }; + auto write32 = [&](uint32_t v) { + ba.append(char((v >> 24) & 0xFF)); + ba.append(char((v >> 16) & 0xFF)); + ba.append(char((v >> 8) & 0xFF)); + ba.append(char(v & 0xFF)); + }; + auto write64 = [&](quint64 v) { + for (int shift = 56; shift >= 0; shift -= 8) { + ba.append(char((v >> shift) & 0xFF)); + } + }; + + // 3) Нормализация координат от QLabel → реальные + QSize lbl = m_videoLabel->size(); + quint32 x = quint32(double(pos.x()) * m_originalWidth / lbl.width()); + quint32 y = quint32(double(pos.y()) * m_originalHeight / lbl.height()); + + // 4) Сборка пакета по спецификации (32 байта): + write8(SC_CONTROL_MSG_TYPE_INJECT_TOUCH_EVENT); // 1 байт: тип сообщения + write8(action); // 1 байт: action (DOWN=0, UP=1, MOVE=2) + write64(0); // 8 байт: pointerId = 0 + write32(x); // 4 байта: position.x + write32(y); // 4 байта: position.y + write16(uint16_t(m_originalWidth)); // 2 байта: screenWidth + write16(uint16_t(m_originalHeight)); // 2 байта: screenHeight + + // pressure: float [0;1] → int16 [0;0x7FFF] + { + int16_t p16 = int16_t(1.0f * 0x7FFF); + write16(uint16_t(p16)); // 2 байта: pressure + } + + write32(AMOTION_EVENT_BUTTON_PRIMARY); // 4 байта: action_button + write32(AMOTION_EVENT_BUTTON_PRIMARY); // 4 байта: buttons + + // 5) Проверка длины и отправка + const int len = ba.size(); + qDebug() << "Packed touch event size =" << len; + Q_ASSERT(len == 32); + if (len != 32) { + qWarning() << "Wrong packet length, aborting send."; + return; + } + + m_controlSocket->write(ba); + m_controlSocket->flush(); +} + + +void VideoWindow::mousePressEvent(QMouseEvent *ev) { + sendTouch(ACTION_DOWN, ev->pos()); +} + +void VideoWindow::mouseMoveEvent(QMouseEvent *ev) { + sendTouch(ACTION_MOVE, ev->pos()); +} + +void VideoWindow::mouseReleaseEvent(QMouseEvent *ev) { + sendTouch(ACTION_UP, ev->pos()); +} + +VideoWindow::VideoWindow(QWidget *parent): QMainWindow(parent) { + setFixedSize(360, 800); + + + QWidget *central = new QWidget(this); + setCentralWidget(central); + QVBoxLayout *layout = new QVBoxLayout(central); + m_videoLabel = new QLabel(this); + m_videoLabel->setAlignment(Qt::AlignCenter); + m_videoLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + m_videoLabel->setScaledContents(true); + layout->addWidget(m_videoLabel); + layout->setContentsMargins(0, 0, 0, 0); + + m_receiver = new VideoReceiver(this); + connect(m_receiver, &VideoReceiver::frameReady, this, [&](const QImage &img) { + if (m_originalWidth == 0) { + m_originalWidth = img.width(); + m_originalHeight = img.height(); + } + + QPixmap scaled = QPixmap::fromImage(img).scaled(m_videoLabel->size(), Qt::KeepAspectRatio, + Qt::SmoothTransformation); + m_videoLabel->setPixmap(scaled); + }); + m_receiver->start(); + + // В конструкторе VideoWindow: + m_controlSocket = new QTcpSocket(this); + m_controlSocket->connectToHost("127.0.0.1", 27184); + if (!m_controlSocket->waitForConnected(3000)) { + qWarning() << "Cannot connect to control socket"; + } else { + qDebug() << "Connected to control socket"; + } + + connect(m_controlSocket, &QTcpSocket::readyRead, this, [this]() { + m_controlSocket->readAll(); // важно «чистить» буфер + }); +} + +VideoWindow::~VideoWindow() { + m_receiver->wait(); +} diff --git a/VideoWindow.h b/VideoWindow.h new file mode 100644 index 0000000..2204a7d --- /dev/null +++ b/VideoWindow.h @@ -0,0 +1,32 @@ +#pragma once +#include +#include +#include +#include "VideoReceiver.h" + +class VideoWindow : public QMainWindow { + Q_OBJECT + +public: + void sendTouch(uint8_t action, const QPoint &pos); + + void mousePressEvent(QMouseEvent *ev); + + void mouseMoveEvent(QMouseEvent *ev); + + void mouseReleaseEvent(QMouseEvent *ev); + + VideoWindow(QWidget *parent = nullptr); + + ~VideoWindow(); + +private: + QLabel *m_videoLabel; + VideoReceiver *m_receiver; + + QTcpSocket* m_controlSocket{}; + + // Вот эти переменные и нужны: + int m_originalWidth = 720; + int m_originalHeight = 1600; +}; diff --git a/deps/ffmpeg/macos/include/libavcodec/ac3_parser.h b/deps/ffmpeg/macos/include/libavcodec/ac3_parser.h new file mode 100644 index 0000000..ff8cc4c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/ac3_parser.h @@ -0,0 +1,36 @@ +/* + * AC-3 parser prototypes + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2003 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AC3_PARSER_H +#define AVCODEC_AC3_PARSER_H + +#include +#include + +/** + * Extract the bitstream ID and the frame size from AC-3 data. + */ +int av_ac3_parse_header(const uint8_t *buf, size_t size, + uint8_t *bitstream_id, uint16_t *frame_size); + + +#endif /* AVCODEC_AC3_PARSER_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/adts_parser.h b/deps/ffmpeg/macos/include/libavcodec/adts_parser.h new file mode 100644 index 0000000..f85becd --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/adts_parser.h @@ -0,0 +1,37 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_ADTS_PARSER_H +#define AVCODEC_ADTS_PARSER_H + +#include +#include + +#define AV_AAC_ADTS_HEADER_SIZE 7 + +/** + * Extract the number of samples and frames from AAC data. + * @param[in] buf pointer to AAC data buffer + * @param[out] samples Pointer to where number of samples is written + * @param[out] frames Pointer to where number of frames is written + * @return Returns 0 on success, error code on failure. + */ +int av_adts_header_parse(const uint8_t *buf, uint32_t *samples, + uint8_t *frames); + +#endif /* AVCODEC_ADTS_PARSER_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/avcodec.h b/deps/ffmpeg/macos/include/libavcodec/avcodec.h new file mode 100644 index 0000000..77ca8de --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/avcodec.h @@ -0,0 +1,3128 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVCODEC_H +#define AVCODEC_AVCODEC_H + +/** + * @file + * @ingroup libavc + * Libavcodec external API header + */ + +#include "libavutil/samplefmt.h" +#include "libavutil/attributes.h" +#include "libavutil/avutil.h" +#include "libavutil/buffer.h" +#include "libavutil/channel_layout.h" +#include "libavutil/dict.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +#include "codec.h" +#include "codec_id.h" +#include "defs.h" +#include "packet.h" +#include "version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "version.h" + +#include "codec_desc.h" +#include "codec_par.h" +#endif + +struct AVCodecParameters; + +/** + * @defgroup libavc libavcodec + * Encoding/Decoding Library + * + * @{ + * + * @defgroup lavc_decoding Decoding + * @{ + * @} + * + * @defgroup lavc_encoding Encoding + * @{ + * @} + * + * @defgroup lavc_codec Codecs + * @{ + * @defgroup lavc_codec_native Native Codecs + * @{ + * @} + * @defgroup lavc_codec_wrappers External library wrappers + * @{ + * @} + * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge + * @{ + * @} + * @} + * @defgroup lavc_internal Internal + * @{ + * @} + * @} + */ + +/** + * @ingroup libavc + * @defgroup lavc_encdec send/receive encoding and decoding API overview + * @{ + * + * The avcodec_send_packet()/avcodec_receive_frame()/avcodec_send_frame()/ + * avcodec_receive_packet() functions provide an encode/decode API, which + * decouples input and output. + * + * The API is very similar for encoding/decoding and audio/video, and works as + * follows: + * - Set up and open the AVCodecContext as usual. + * - Send valid input: + * - For decoding, call avcodec_send_packet() to give the decoder raw + * compressed data in an AVPacket. + * - For encoding, call avcodec_send_frame() to give the encoder an AVFrame + * containing uncompressed audio or video. + * + * In both cases, it is recommended that AVPackets and AVFrames are + * refcounted, or libavcodec might have to copy the input data. (libavformat + * always returns refcounted AVPackets, and av_frame_get_buffer() allocates + * refcounted AVFrames.) + * - Receive output in a loop. Periodically call one of the avcodec_receive_*() + * functions and process their output: + * - For decoding, call avcodec_receive_frame(). On success, it will return + * an AVFrame containing uncompressed audio or video data. + * - For encoding, call avcodec_receive_packet(). On success, it will return + * an AVPacket with a compressed frame. + * + * Repeat this call until it returns AVERROR(EAGAIN) or an error. The + * AVERROR(EAGAIN) return value means that new input data is required to + * return new output. In this case, continue with sending input. For each + * input frame/packet, the codec will typically return 1 output frame/packet, + * but it can also be 0 or more than 1. + * + * At the beginning of decoding or encoding, the codec might accept multiple + * input frames/packets without returning a frame, until its internal buffers + * are filled. This situation is handled transparently if you follow the steps + * outlined above. + * + * In theory, sending input can result in EAGAIN - this should happen only if + * not all output was received. You can use this to structure alternative decode + * or encode loops other than the one suggested above. For example, you could + * try sending new input on each iteration, and try to receive output if that + * returns EAGAIN. + * + * End of stream situations. These require "flushing" (aka draining) the codec, + * as the codec might buffer multiple frames or packets internally for + * performance or out of necessity (consider B-frames). + * This is handled as follows: + * - Instead of valid input, send NULL to the avcodec_send_packet() (decoding) + * or avcodec_send_frame() (encoding) functions. This will enter draining + * mode. + * - Call avcodec_receive_frame() (decoding) or avcodec_receive_packet() + * (encoding) in a loop until AVERROR_EOF is returned. The functions will + * not return AVERROR(EAGAIN), unless you forgot to enter draining mode. + * - Before decoding can be resumed again, the codec has to be reset with + * avcodec_flush_buffers(). + * + * Using the API as outlined above is highly recommended. But it is also + * possible to call functions outside of this rigid schema. For example, you can + * call avcodec_send_packet() repeatedly without calling + * avcodec_receive_frame(). In this case, avcodec_send_packet() will succeed + * until the codec's internal buffer has been filled up (which is typically of + * size 1 per output frame, after initial input), and then reject input with + * AVERROR(EAGAIN). Once it starts rejecting input, you have no choice but to + * read at least some output. + * + * Not all codecs will follow a rigid and predictable dataflow; the only + * guarantee is that an AVERROR(EAGAIN) return value on a send/receive call on + * one end implies that a receive/send call on the other end will succeed, or + * at least will not fail with AVERROR(EAGAIN). In general, no codec will + * permit unlimited buffering of input or output. + * + * A codec is not allowed to return AVERROR(EAGAIN) for both sending and receiving. This + * would be an invalid state, which could put the codec user into an endless + * loop. The API has no concept of time either: it cannot happen that trying to + * do avcodec_send_packet() results in AVERROR(EAGAIN), but a repeated call 1 second + * later accepts the packet (with no other receive/flush API calls involved). + * The API is a strict state machine, and the passage of time is not supposed + * to influence it. Some timing-dependent behavior might still be deemed + * acceptable in certain cases. But it must never result in both send/receive + * returning EAGAIN at the same time at any point. It must also absolutely be + * avoided that the current state is "unstable" and can "flip-flop" between + * the send/receive APIs allowing progress. For example, it's not allowed that + * the codec randomly decides that it actually wants to consume a packet now + * instead of returning a frame, after it just returned AVERROR(EAGAIN) on an + * avcodec_send_packet() call. + * @} + */ + +/** + * @defgroup lavc_core Core functions/structures. + * @ingroup libavc + * + * Basic definitions, functions for querying libavcodec capabilities, + * allocating core structures, etc. + * @{ + */ + +#if FF_API_BUFFER_MIN_SIZE +/** + * @ingroup lavc_encoding + * minimum encoding buffer size + * Used to avoid some checks during header writing. + * @deprecated Unused: avcodec_receive_packet() does not work + * with preallocated packet buffers. + */ +#define AV_INPUT_BUFFER_MIN_SIZE 16384 +#endif + +/** + * @ingroup lavc_encoding + */ +typedef struct RcOverride{ + int start_frame; + int end_frame; + int qscale; // If this is 0 then quality_factor will be used instead. + float quality_factor; +} RcOverride; + +/* encoding support + These flags can be passed in AVCodecContext.flags before initialization. + Note: Not everything is supported yet. +*/ + +/** + * Allow decoders to produce frames with data planes that are not aligned + * to CPU requirements (e.g. due to cropping). + */ +#define AV_CODEC_FLAG_UNALIGNED (1 << 0) +/** + * Use fixed qscale. + */ +#define AV_CODEC_FLAG_QSCALE (1 << 1) +/** + * 4 MV per MB allowed / advanced prediction for H.263. + */ +#define AV_CODEC_FLAG_4MV (1 << 2) +/** + * Output even those frames that might be corrupted. + */ +#define AV_CODEC_FLAG_OUTPUT_CORRUPT (1 << 3) +/** + * Use qpel MC. + */ +#define AV_CODEC_FLAG_QPEL (1 << 4) +#if FF_API_DROPCHANGED +/** + * Don't output frames whose parameters differ from first + * decoded frame in stream. + * + * @deprecated callers should implement this functionality in their own code + */ +#define AV_CODEC_FLAG_DROPCHANGED (1 << 5) +#endif +/** + * Request the encoder to output reconstructed frames, i.e.\ frames that would + * be produced by decoding the encoded bistream. These frames may be retrieved + * by calling avcodec_receive_frame() immediately after a successful call to + * avcodec_receive_packet(). + * + * Should only be used with encoders flagged with the + * @ref AV_CODEC_CAP_ENCODER_RECON_FRAME capability. + * + * @note + * Each reconstructed frame returned by the encoder corresponds to the last + * encoded packet, i.e. the frames are returned in coded order rather than + * presentation order. + * + * @note + * Frame parameters (like pixel format or dimensions) do not have to match the + * AVCodecContext values. Make sure to use the values from the returned frame. + */ +#define AV_CODEC_FLAG_RECON_FRAME (1 << 6) +/** + * @par decoding + * Request the decoder to propagate each packet's AVPacket.opaque and + * AVPacket.opaque_ref to its corresponding output AVFrame. + * + * @par encoding: + * Request the encoder to propagate each frame's AVFrame.opaque and + * AVFrame.opaque_ref values to its corresponding output AVPacket. + * + * @par + * May only be set on encoders that have the + * @ref AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE capability flag. + * + * @note + * While in typical cases one input frame produces exactly one output packet + * (perhaps after a delay), in general the mapping of frames to packets is + * M-to-N, so + * - Any number of input frames may be associated with any given output packet. + * This includes zero - e.g. some encoders may output packets that carry only + * metadata about the whole stream. + * - A given input frame may be associated with any number of output packets. + * Again this includes zero - e.g. some encoders may drop frames under certain + * conditions. + * . + * This implies that when using this flag, the caller must NOT assume that + * - a given input frame's opaques will necessarily appear on some output packet; + * - every output packet will have some non-NULL opaque value. + * . + * When an output packet contains multiple frames, the opaque values will be + * taken from the first of those. + * + * @note + * The converse holds for decoders, with frames and packets switched. + */ +#define AV_CODEC_FLAG_COPY_OPAQUE (1 << 7) +/** + * Signal to the encoder that the values of AVFrame.duration are valid and + * should be used (typically for transferring them to output packets). + * + * If this flag is not set, frame durations are ignored. + */ +#define AV_CODEC_FLAG_FRAME_DURATION (1 << 8) +/** + * Use internal 2pass ratecontrol in first pass mode. + */ +#define AV_CODEC_FLAG_PASS1 (1 << 9) +/** + * Use internal 2pass ratecontrol in second pass mode. + */ +#define AV_CODEC_FLAG_PASS2 (1 << 10) +/** + * loop filter. + */ +#define AV_CODEC_FLAG_LOOP_FILTER (1 << 11) +/** + * Only decode/encode grayscale. + */ +#define AV_CODEC_FLAG_GRAY (1 << 13) +/** + * error[?] variables will be set during encoding. + */ +#define AV_CODEC_FLAG_PSNR (1 << 15) +/** + * Use interlaced DCT. + */ +#define AV_CODEC_FLAG_INTERLACED_DCT (1 << 18) +/** + * Force low delay. + */ +#define AV_CODEC_FLAG_LOW_DELAY (1 << 19) +/** + * Place global headers in extradata instead of every keyframe. + */ +#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22) +/** + * Use only bitexact stuff (except (I)DCT). + */ +#define AV_CODEC_FLAG_BITEXACT (1 << 23) +/* Fx : Flag for H.263+ extra options */ +/** + * H.263 advanced intra coding / MPEG-4 AC prediction + */ +#define AV_CODEC_FLAG_AC_PRED (1 << 24) +/** + * interlaced motion estimation + */ +#define AV_CODEC_FLAG_INTERLACED_ME (1 << 29) +#define AV_CODEC_FLAG_CLOSED_GOP (1U << 31) + +/** + * Allow non spec compliant speedup tricks. + */ +#define AV_CODEC_FLAG2_FAST (1 << 0) +/** + * Skip bitstream encoding. + */ +#define AV_CODEC_FLAG2_NO_OUTPUT (1 << 2) +/** + * Place global headers at every keyframe instead of in extradata. + */ +#define AV_CODEC_FLAG2_LOCAL_HEADER (1 << 3) + +/** + * Input bitstream might be truncated at a packet boundaries + * instead of only at frame boundaries. + */ +#define AV_CODEC_FLAG2_CHUNKS (1 << 15) +/** + * Discard cropping information from SPS. + */ +#define AV_CODEC_FLAG2_IGNORE_CROP (1 << 16) + +/** + * Show all frames before the first keyframe + */ +#define AV_CODEC_FLAG2_SHOW_ALL (1 << 22) +/** + * Export motion vectors through frame side data + */ +#define AV_CODEC_FLAG2_EXPORT_MVS (1 << 28) +/** + * Do not skip samples and export skip information as frame side data + */ +#define AV_CODEC_FLAG2_SKIP_MANUAL (1 << 29) +/** + * Do not reset ASS ReadOrder field on flush (subtitles decoding) + */ +#define AV_CODEC_FLAG2_RO_FLUSH_NOOP (1 << 30) +/** + * Generate/parse ICC profiles on encode/decode, as appropriate for the type of + * file. No effect on codecs which cannot contain embedded ICC profiles, or + * when compiled without support for lcms2. + */ +#define AV_CODEC_FLAG2_ICC_PROFILES (1U << 31) + +/* Exported side data. + These flags can be passed in AVCodecContext.export_side_data before initialization. +*/ +/** + * Export motion vectors through frame side data + */ +#define AV_CODEC_EXPORT_DATA_MVS (1 << 0) +/** + * Export encoder Producer Reference Time through packet side data + */ +#define AV_CODEC_EXPORT_DATA_PRFT (1 << 1) +/** + * Decoding only. + * Export the AVVideoEncParams structure through frame side data. + */ +#define AV_CODEC_EXPORT_DATA_VIDEO_ENC_PARAMS (1 << 2) +/** + * Decoding only. + * Do not apply film grain, export it instead. + */ +#define AV_CODEC_EXPORT_DATA_FILM_GRAIN (1 << 3) + +/** + * Decoding only. + * Do not apply picture enhancement layers, export them instead. + */ +#define AV_CODEC_EXPORT_DATA_ENHANCEMENTS (1 << 4) + +/** + * The decoder will keep a reference to the frame and may reuse it later. + */ +#define AV_GET_BUFFER_FLAG_REF (1 << 0) + +/** + * The encoder will keep a reference to the packet and may reuse it later. + */ +#define AV_GET_ENCODE_BUFFER_FLAG_REF (1 << 0) + +/** + * main external API structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user + * applications. + * The name string for AVOptions options matches the associated command line + * parameter name and can be found in libavcodec/options_table.h + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + * sizeof(AVCodecContext) must not be used outside libav*. + */ +typedef struct AVCodecContext { + /** + * information on struct for av_log + * - set by avcodec_alloc_context3 + */ + const AVClass *av_class; + int log_level_offset; + + enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ + const struct AVCodec *codec; + enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */ + + /** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). + * This is used to work around some encoder bugs. + * A demuxer should set this to what is stored in the field used to identify the codec. + * If there are multiple such fields in a container then the demuxer should choose the one + * which maximizes the information about the used codec. + * If the codec tag field in a container is larger than 32 bits then the demuxer should + * remap the longer ID to 32 bits with a table or other structure. Alternatively a new + * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated + * first. + * - encoding: Set by user, if not then the default based on codec_id will be used. + * - decoding: Set by user, will be converted to uppercase by libavcodec during init. + */ + unsigned int codec_tag; + + void *priv_data; + + /** + * Private context used for internal data. + * + * Unlike priv_data, this is not codec-specific. It is used in general + * libavcodec functions. + */ + struct AVCodecInternal *internal; + + /** + * Private data of the user, can be used to carry app specific stuff. + * - encoding: Set by user. + * - decoding: Set by user. + */ + void *opaque; + + /** + * the average bitrate + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: Set by user, may be overwritten by libavcodec + * if this info is available in the stream + */ + int64_t bit_rate; + + /** + * AV_CODEC_FLAG_*. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags; + + /** + * AV_CODEC_FLAG2_* + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags2; + + /** + * some codecs need / can use extradata like Huffman tables. + * MJPEG: Huffman tables + * rv10: additional flags + * MPEG-4: global headers (they can be in the bitstream or here) + * The allocated memory should be AV_INPUT_BUFFER_PADDING_SIZE bytes larger + * than extradata_size to avoid problems if it is read with the bitstream reader. + * The bytewise contents of extradata must not depend on the architecture or CPU endianness. + * Must be allocated with the av_malloc() family of functions. + * - encoding: Set/allocated/freed by libavcodec. + * - decoding: Set/allocated/freed by user. + */ + uint8_t *extradata; + int extradata_size; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * timebase should be 1/framerate and timestamp increments should be + * identically 1. + * This often, but not always is the inverse of the frame rate or field rate + * for video. 1/time_base is not the average frame rate if the frame rate is not + * constant. + * + * Like containers, elementary streams also can store timestamps, 1/time_base + * is the unit in which these timestamps are specified. + * As example of such codec time base see ISO/IEC 14496-2:2001(E) + * vop_time_increment_resolution and fixed_vop_rate + * (fixed_vop_rate == 0 implies that it is different from the framerate) + * + * - encoding: MUST be set by user. + * - decoding: unused. + */ + AVRational time_base; + + /** + * Timebase in which pkt_dts/pts and AVPacket.dts/pts are expressed. + * - encoding: unused. + * - decoding: set by user. + */ + AVRational pkt_timebase; + + /** + * - decoding: For codecs that store a framerate value in the compressed + * bitstream, the decoder may export it here. { 0, 1} when + * unknown. + * - encoding: May be used to signal the framerate of CFR content to an + * encoder. + */ + AVRational framerate; + +#if FF_API_TICKS_PER_FRAME + /** + * For some codecs, the time base is closer to the field rate than the frame rate. + * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration + * if no telecine is used ... + * + * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2. + * + * @deprecated + * - decoding: Use AVCodecDescriptor.props & AV_CODEC_PROP_FIELDS + * - encoding: Set AVCodecContext.framerate instead + * + */ + attribute_deprecated + int ticks_per_frame; +#endif + + /** + * Codec delay. + * + * Encoding: Number of frames delay there will be from the encoder input to + * the decoder output. (we assume the decoder matches the spec) + * Decoding: Number of frames delay in addition to what a standard decoder + * as specified in the spec would produce. + * + * Video: + * Number of frames the decoded output will be delayed relative to the + * encoded input. + * + * Audio: + * For encoding, this field is unused (see initial_padding). + * + * For decoding, this is the number of samples the decoder needs to + * output before the decoder's output is valid. When seeking, you should + * start decoding this many samples prior to your desired seek point. + * + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int delay; + + + /* video only */ + /** + * picture width / height. + * + * @note Those fields may not match the values of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: MUST be set by user. + * - decoding: May be set by the user before opening the decoder if known e.g. + * from the container. Some decoders will require the dimensions + * to be set by the caller. During decoding, the decoder may + * overwrite those values as required while parsing the data. + */ + int width, height; + + /** + * Bitstream width / height, may be different from width/height e.g. when + * the decoded frame is cropped before being output or lowres is enabled. + * + * @note Those field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: unused + * - decoding: May be set by the user before opening the decoder if known + * e.g. from the container. During decoding, the decoder may + * overwrite those values as required while parsing the data. + */ + int coded_width, coded_height; + + /** + * sample aspect ratio (0 if unknown) + * That is the width of a pixel divided by the height of the pixel. + * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVRational sample_aspect_ratio; + + /** + * Pixel format, see AV_PIX_FMT_xxx. + * May be set by the demuxer if known from headers. + * May be overridden by the decoder if it knows better. + * + * @note This field may not match the value of the last + * AVFrame output by avcodec_receive_frame() due frame + * reordering. + * + * - encoding: Set by user. + * - decoding: Set by user if known, overridden by libavcodec while + * parsing the data. + */ + enum AVPixelFormat pix_fmt; + + /** + * Nominal unaccelerated pixel format, see AV_PIX_FMT_xxx. + * - encoding: unused. + * - decoding: Set by libavcodec before calling get_format() + */ + enum AVPixelFormat sw_pix_fmt; + + /** + * Chromaticity coordinates of the source primaries. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorPrimaries color_primaries; + + /** + * Color Transfer Characteristic. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorTransferCharacteristic color_trc; + + /** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorSpace colorspace; + + /** + * MPEG vs JPEG YUV range. + * - encoding: Set by user to override the default output color range value, + * If not specified, libavcodec sets the color range depending on the + * output format. + * - decoding: Set by libavcodec, can be set by the user to propagate the + * color range to components reading from the decoder context. + */ + enum AVColorRange color_range; + + /** + * This defines the location of chroma samples. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVChromaLocation chroma_sample_location; + + /** Field order + * - encoding: set by libavcodec + * - decoding: Set by user. + */ + enum AVFieldOrder field_order; + + /** + * number of reference frames + * - encoding: Set by user. + * - decoding: Set by lavc. + */ + int refs; + + /** + * Size of the frame reordering buffer in the decoder. + * For MPEG-2 it is 1 IPB or 0 low delay IP. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int has_b_frames; + + /** + * slice flags + * - encoding: unused + * - decoding: Set by user. + */ + int slice_flags; +#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display +#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG-2 field pics) +#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) + + /** + * If non NULL, 'draw_horiz_band' is called by the libavcodec + * decoder to draw a horizontal band. It improves cache usage. Not + * all codecs can do that. You must check the codec capabilities + * beforehand. + * When multithreading is used, it may be called from multiple threads + * at the same time; threads might draw different parts of the same AVFrame, + * or multiple AVFrames, and there is no guarantee that slices will be drawn + * in order. + * The function is also used by hardware acceleration APIs. + * It is called at least once during frame decoding to pass + * the data needed for hardware render. + * In that mode instead of pixel data, AVFrame points to + * a structure specific to the acceleration API. The application + * reads the structure and can change some fields to indicate progress + * or mark state. + * - encoding: unused + * - decoding: Set by user. + * @param height the height of the slice + * @param y the y position of the slice + * @param type 1->top field, 2->bottom field, 3->frame + * @param offset offset into the AVFrame.data from which the slice should be read + */ + void (*draw_horiz_band)(struct AVCodecContext *s, + const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], + int y, int type, int height); + + /** + * Callback to negotiate the pixel format. Decoding only, may be set by the + * caller before avcodec_open2(). + * + * Called by some decoders to select the pixel format that will be used for + * the output frames. This is mainly used to set up hardware acceleration, + * then the provided format list contains the corresponding hwaccel pixel + * formats alongside the "software" one. The software pixel format may also + * be retrieved from \ref sw_pix_fmt. + * + * This callback will be called when the coded frame properties (such as + * resolution, pixel format, etc.) change and more than one output format is + * supported for those new properties. If a hardware pixel format is chosen + * and initialization for it fails, the callback may be called again + * immediately. + * + * This callback may be called from different threads if the decoder is + * multi-threaded, but not from more than one thread simultaneously. + * + * @param fmt list of formats which may be used in the current + * configuration, terminated by AV_PIX_FMT_NONE. + * @warning Behavior is undefined if the callback returns a value other + * than one of the formats in fmt or AV_PIX_FMT_NONE. + * @return the chosen format or AV_PIX_FMT_NONE + */ + enum AVPixelFormat (*get_format)(struct AVCodecContext *s, const enum AVPixelFormat * fmt); + + /** + * maximum number of B-frames between non-B-frames + * Note: The output will be delayed by max_b_frames+1 relative to the input. + * - encoding: Set by user. + * - decoding: unused + */ + int max_b_frames; + + /** + * qscale factor between IP and B-frames + * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_factor; + + /** + * qscale offset between IP and B-frames + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_offset; + + /** + * qscale factor between P- and I-frames + * If > 0 then the last P-frame quantizer will be used (q = lastp_q * factor + offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_factor; + + /** + * qscale offset between P and I-frames + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_offset; + + /** + * luminance masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float lumi_masking; + + /** + * temporary complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float temporal_cplx_masking; + + /** + * spatial complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float spatial_cplx_masking; + + /** + * p block masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float p_masking; + + /** + * darkness masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float dark_masking; + + /** + * noise vs. sse weight for the nsse comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int nsse_weight; + + /** + * motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_cmp; + /** + * subpixel motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_sub_cmp; + /** + * macroblock comparison function (not supported yet) + * - encoding: Set by user. + * - decoding: unused + */ + int mb_cmp; + /** + * interlaced DCT comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int ildct_cmp; +#define FF_CMP_SAD 0 +#define FF_CMP_SSE 1 +#define FF_CMP_SATD 2 +#define FF_CMP_DCT 3 +#define FF_CMP_PSNR 4 +#define FF_CMP_BIT 5 +#define FF_CMP_RD 6 +#define FF_CMP_ZERO 7 +#define FF_CMP_VSAD 8 +#define FF_CMP_VSSE 9 +#define FF_CMP_NSSE 10 +#define FF_CMP_W53 11 +#define FF_CMP_W97 12 +#define FF_CMP_DCTMAX 13 +#define FF_CMP_DCT264 14 +#define FF_CMP_MEDIAN_SAD 15 +#define FF_CMP_CHROMA 256 + + /** + * ME diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int dia_size; + + /** + * amount of previous MV predictors (2a+1 x 2a+1 square) + * - encoding: Set by user. + * - decoding: unused + */ + int last_predictor_count; + + /** + * motion estimation prepass comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_pre_cmp; + + /** + * ME prepass diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int pre_dia_size; + + /** + * subpel ME quality + * - encoding: Set by user. + * - decoding: unused + */ + int me_subpel_quality; + + /** + * maximum motion estimation search range in subpel units + * If 0 then no limit. + * + * - encoding: Set by user. + * - decoding: unused + */ + int me_range; + + /** + * macroblock decision mode + * - encoding: Set by user. + * - decoding: unused + */ + int mb_decision; +#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp +#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits +#define FF_MB_DECISION_RD 2 ///< rate distortion + + /** + * custom intra quantization matrix + * Must be allocated with the av_malloc() family of functions, and will be freed in + * avcodec_free_context(). + * - encoding: Set/allocated by user, freed by libavcodec. Can be NULL. + * - decoding: Set/allocated/freed by libavcodec. + */ + uint16_t *intra_matrix; + + /** + * custom inter quantization matrix + * Must be allocated with the av_malloc() family of functions, and will be freed in + * avcodec_free_context(). + * - encoding: Set/allocated by user, freed by libavcodec. Can be NULL. + * - decoding: Set/allocated/freed by libavcodec. + */ + uint16_t *inter_matrix; + + /** + * custom intra quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: unused. + */ + uint16_t *chroma_intra_matrix; + + /** + * precision of the intra DC coefficient - 8 + * - encoding: Set by user. + * - decoding: Set by libavcodec + */ + int intra_dc_precision; + + /** + * minimum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmin; + + /** + * maximum MB Lagrange multiplier + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmax; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int bidir_refine; + + /** + * minimum GOP size + * - encoding: Set by user. + * - decoding: unused + */ + int keyint_min; + + /** + * the number of pictures in a group of pictures, or 0 for intra_only + * - encoding: Set by user. + * - decoding: unused + */ + int gop_size; + + /** + * Note: Value depends upon the compare function used for fullpel ME. + * - encoding: Set by user. + * - decoding: unused + */ + int mv0_threshold; + + /** + * Number of slices. + * Indicates number of picture subdivisions. Used for parallelized + * decoding. + * - encoding: Set by user + * - decoding: unused + */ + int slices; + + /* audio only */ + int sample_rate; ///< samples per second + + /** + * audio sample format + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVSampleFormat sample_fmt; ///< sample format + + /** + * Audio channel layout. + * - encoding: must be set by the caller, to one of AVCodec.ch_layouts. + * - decoding: may be set by the caller if known e.g. from the container. + * The decoder can then override during decoding as needed. + */ + AVChannelLayout ch_layout; + + /* The following data should not be initialized. */ + /** + * Number of samples per channel in an audio frame. + * + * - encoding: set by libavcodec in avcodec_open2(). Each submitted frame + * except the last must contain exactly frame_size samples per channel. + * May be 0 when the codec has AV_CODEC_CAP_VARIABLE_FRAME_SIZE set, then the + * frame size is not restricted. + * - decoding: may be set by some decoders to indicate constant frame size + */ + int frame_size; + + /** + * number of bytes per packet if constant and known or 0 + * Used by some WAV based audio codecs. + */ + int block_align; + + /** + * Audio cutoff bandwidth (0 means "automatic") + * - encoding: Set by user. + * - decoding: unused + */ + int cutoff; + + /** + * Type of service that the audio stream conveys. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVAudioServiceType audio_service_type; + + /** + * desired sample format + * - encoding: Not used. + * - decoding: Set by user. + * Decoder will decode to this format if it can. + */ + enum AVSampleFormat request_sample_fmt; + + /** + * Audio only. The number of "priming" samples (padding) inserted by the + * encoder at the beginning of the audio. I.e. this number of leading + * decoded samples must be discarded by the caller to get the original audio + * without leading padding. + * + * - decoding: unused + * - encoding: Set by libavcodec. The timestamps on the output packets are + * adjusted by the encoder so that they always refer to the + * first sample of the data actually contained in the packet, + * including any added padding. E.g. if the timebase is + * 1/samplerate and the timestamp of the first input sample is + * 0, the timestamp of the first output packet will be + * -initial_padding. + */ + int initial_padding; + + /** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + * + * - decoding: unused + * - encoding: unused + */ + int trailing_padding; + + /** + * Number of samples to skip after a discontinuity + * - decoding: unused + * - encoding: set by libavcodec + */ + int seek_preroll; + + /** + * This callback is called at the beginning of each frame to get data + * buffer(s) for it. There may be one contiguous buffer for all the data or + * there may be a buffer per each data plane or anything in between. What + * this means is, you may set however many entries in buf[] you feel necessary. + * Each buffer must be reference-counted using the AVBuffer API (see description + * of buf[] below). + * + * The following fields will be set in the frame before this callback is + * called: + * - format + * - width, height (video only) + * - sample_rate, channel_layout, nb_samples (audio only) + * Their values may differ from the corresponding values in + * AVCodecContext. This callback must use the frame values, not the codec + * context values, to calculate the required buffer size. + * + * This callback must fill the following fields in the frame: + * - data[] + * - linesize[] + * - extended_data: + * * if the data is planar audio with more than 8 channels, then this + * callback must allocate and fill extended_data to contain all pointers + * to all data planes. data[] must hold as many pointers as it can. + * extended_data must be allocated with av_malloc() and will be freed in + * av_frame_unref(). + * * otherwise extended_data must point to data + * - buf[] must contain one or more pointers to AVBufferRef structures. Each of + * the frame's data and extended_data pointers must be contained in these. That + * is, one AVBufferRef for each allocated chunk of memory, not necessarily one + * AVBufferRef per data[] entry. See: av_buffer_create(), av_buffer_alloc(), + * and av_buffer_ref(). + * - extended_buf and nb_extended_buf must be allocated with av_malloc() by + * this callback and filled with the extra buffers if there are more + * buffers than buf[] can hold. extended_buf will be freed in + * av_frame_unref(). + * Decoders will generally initialize the whole buffer before it is output + * but it can in rare error conditions happen that uninitialized data is passed + * through. \important The buffers returned by get_buffer* should thus not contain sensitive + * data. + * + * If AV_CODEC_CAP_DR1 is not set then get_buffer2() must call + * avcodec_default_get_buffer2() instead of providing buffers allocated by + * some other means. + * + * Each data plane must be aligned to the maximum required by the target + * CPU. + * + * @see avcodec_default_get_buffer2() + * + * Video: + * + * If AV_GET_BUFFER_FLAG_REF is set in flags then the frame may be reused + * (read and/or written to if it is writable) later by libavcodec. + * + * avcodec_align_dimensions2() should be used to find the required width and + * height, as they normally need to be rounded up to the next multiple of 16. + * + * Some decoders do not support linesizes changing between frames. + * + * If frame multithreading is used, this callback may be called from a + * different thread, but not from more than one at once. Does not need to be + * reentrant. + * + * @see avcodec_align_dimensions2() + * + * Audio: + * + * Decoders request a buffer of a particular size by setting + * AVFrame.nb_samples prior to calling get_buffer2(). The decoder may, + * however, utilize only part of the buffer by setting AVFrame.nb_samples + * to a smaller value in the output frame. + * + * As a convenience, av_samples_get_buffer_size() and + * av_samples_fill_arrays() in libavutil may be used by custom get_buffer2() + * functions to find the required data size and to fill data pointers and + * linesize. In AVFrame.linesize, only linesize[0] may be set for audio + * since all planes must be the same size. + * + * @see av_samples_get_buffer_size(), av_samples_fill_arrays() + * + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + */ + int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags); + + /* - encoding parameters */ + /** + * number of bits the bitstream is allowed to diverge from the reference. + * the reference can be CBR (for CBR pass1) or VBR (for pass2) + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: unused + */ + int bit_rate_tolerance; + + /** + * Global quality for codecs which cannot change it per frame. + * This should be proportional to MPEG-1/2/4 qscale. + * - encoding: Set by user. + * - decoding: unused + */ + int global_quality; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int compression_level; +#define FF_COMPRESSION_DEFAULT -1 + + float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0) + float qblur; ///< amount of qscale smoothing over time (0.0-1.0) + + /** + * minimum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmin; + + /** + * maximum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmax; + + /** + * maximum quantizer difference between frames + * - encoding: Set by user. + * - decoding: unused + */ + int max_qdiff; + + /** + * decoder bitstream buffer size + * - encoding: Set by user. + * - decoding: May be set by libavcodec. + */ + int rc_buffer_size; + + /** + * ratecontrol override, see RcOverride + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + int rc_override_count; + RcOverride *rc_override; + + /** + * maximum bitrate + * - encoding: Set by user. + * - decoding: Set by user, may be overwritten by libavcodec. + */ + int64_t rc_max_rate; + + /** + * minimum bitrate + * - encoding: Set by user. + * - decoding: unused + */ + int64_t rc_min_rate; + + /** + * Ratecontrol attempt to use, at maximum, of what can be used without an underflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_max_available_vbv_use; + + /** + * Ratecontrol attempt to use, at least, times the amount needed to prevent a vbv overflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_min_vbv_overflow_use; + + /** + * Number of bits which should be loaded into the rc buffer before decoding starts. + * - encoding: Set by user. + * - decoding: unused + */ + int rc_initial_buffer_occupancy; + + /** + * trellis RD quantization + * - encoding: Set by user. + * - decoding: unused + */ + int trellis; + + /** + * pass1 encoding statistics output buffer + * - encoding: Set by libavcodec. + * - decoding: unused + */ + char *stats_out; + + /** + * pass2 encoding statistics input buffer + * Concatenated stuff from stats_out of pass1 should be placed here. + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + char *stats_in; + + /** + * Work around bugs in encoders which sometimes cannot be detected automatically. + * - encoding: Set by user + * - decoding: Set by user + */ + int workaround_bugs; +#define FF_BUG_AUTODETECT 1 ///< autodetection +#define FF_BUG_XVID_ILACE 4 +#define FF_BUG_UMP4 8 +#define FF_BUG_NO_PADDING 16 +#define FF_BUG_AMV 32 +#define FF_BUG_QPEL_CHROMA 64 +#define FF_BUG_STD_QPEL 128 +#define FF_BUG_QPEL_CHROMA2 256 +#define FF_BUG_DIRECT_BLOCKSIZE 512 +#define FF_BUG_EDGE 1024 +#define FF_BUG_HPEL_CHROMA 2048 +#define FF_BUG_DC_CLIP 4096 +#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders. +#define FF_BUG_TRUNCATED 16384 +#define FF_BUG_IEDGE 32768 + + /** + * strictly follow the standard (MPEG-4, ...). + * - encoding: Set by user. + * - decoding: Set by user. + * Setting this to STRICT or higher means the encoder and decoder will + * generally do stupid things, whereas setting it to unofficial or lower + * will mean the encoder might produce output that is not supported by all + * spec-compliant decoders. Decoders don't differentiate between normal, + * unofficial and experimental (that is, they always try to decode things + * when they can) unless they are explicitly asked to behave stupidly + * (=strictly conform to the specs) + * This may only be set to one of the FF_COMPLIANCE_* values in defs.h. + */ + int strict_std_compliance; + + /** + * error concealment flags + * - encoding: unused + * - decoding: Set by user. + */ + int error_concealment; +#define FF_EC_GUESS_MVS 1 +#define FF_EC_DEBLOCK 2 +#define FF_EC_FAVOR_INTER 256 + + /** + * debug + * - encoding: Set by user. + * - decoding: Set by user. + */ + int debug; +#define FF_DEBUG_PICT_INFO 1 +#define FF_DEBUG_RC 2 +#define FF_DEBUG_BITSTREAM 4 +#define FF_DEBUG_MB_TYPE 8 +#define FF_DEBUG_QP 16 +#define FF_DEBUG_DCT_COEFF 0x00000040 +#define FF_DEBUG_SKIP 0x00000080 +#define FF_DEBUG_STARTCODE 0x00000100 +#define FF_DEBUG_ER 0x00000400 +#define FF_DEBUG_MMCO 0x00000800 +#define FF_DEBUG_BUGS 0x00001000 +#define FF_DEBUG_BUFFERS 0x00008000 +#define FF_DEBUG_THREADS 0x00010000 +#define FF_DEBUG_GREEN_MD 0x00800000 +#define FF_DEBUG_NOMC 0x01000000 + + /** + * Error recognition; may misdetect some more or less valid parts as errors. + * This is a bitfield of the AV_EF_* values defined in defs.h. + * + * - encoding: Set by user. + * - decoding: Set by user. + */ + int err_recognition; + + /** + * Hardware accelerator in use + * - encoding: unused. + * - decoding: Set by libavcodec + */ + const struct AVHWAccel *hwaccel; + + /** + * Legacy hardware accelerator context. + * + * For some hardware acceleration methods, the caller may use this field to + * signal hwaccel-specific data to the codec. The struct pointed to by this + * pointer is hwaccel-dependent and defined in the respective header. Please + * refer to the FFmpeg HW accelerator documentation to know how to fill + * this. + * + * In most cases this field is optional - the necessary information may also + * be provided to libavcodec through @ref hw_frames_ctx or @ref + * hw_device_ctx (see avcodec_get_hw_config()). However, in some cases it + * may be the only method of signalling some (optional) information. + * + * The struct and its contents are owned by the caller. + * + * - encoding: May be set by the caller before avcodec_open2(). Must remain + * valid until avcodec_free_context(). + * - decoding: May be set by the caller in the get_format() callback. + * Must remain valid until the next get_format() call, + * or avcodec_free_context() (whichever comes first). + */ + void *hwaccel_context; + + /** + * A reference to the AVHWFramesContext describing the input (for encoding) + * or output (decoding) frames. The reference is set by the caller and + * afterwards owned (and freed) by libavcodec - it should never be read by + * the caller after being set. + * + * - decoding: This field should be set by the caller from the get_format() + * callback. The previous reference (if any) will always be + * unreffed by libavcodec before the get_format() call. + * + * If the default get_buffer2() is used with a hwaccel pixel + * format, then this AVHWFramesContext will be used for + * allocating the frame buffers. + * + * - encoding: For hardware encoders configured to use a hwaccel pixel + * format, this field should be set by the caller to a reference + * to the AVHWFramesContext describing input frames. + * AVHWFramesContext.format must be equal to + * AVCodecContext.pix_fmt. + * + * This field should be set before avcodec_open2() is called. + */ + AVBufferRef *hw_frames_ctx; + + /** + * A reference to the AVHWDeviceContext describing the device which will + * be used by a hardware encoder/decoder. The reference is set by the + * caller and afterwards owned (and freed) by libavcodec. + * + * This should be used if either the codec device does not require + * hardware frames or any that are used are to be allocated internally by + * libavcodec. If the user wishes to supply any of the frames used as + * encoder input or decoder output then hw_frames_ctx should be used + * instead. When hw_frames_ctx is set in get_format() for a decoder, this + * field will be ignored while decoding the associated stream segment, but + * may again be used on a following one after another get_format() call. + * + * For both encoders and decoders this field should be set before + * avcodec_open2() is called and must not be written to thereafter. + * + * Note that some decoders may require this field to be set initially in + * order to support hw_frames_ctx at all - in that case, all frames + * contexts used must be created on the same device. + */ + AVBufferRef *hw_device_ctx; + + /** + * Bit set of AV_HWACCEL_FLAG_* flags, which affect hardware accelerated + * decoding (if active). + * - encoding: unused + * - decoding: Set by user (either before avcodec_open2(), or in the + * AVCodecContext.get_format callback) + */ + int hwaccel_flags; + + /** + * Video decoding only. Sets the number of extra hardware frames which + * the decoder will allocate for use by the caller. This must be set + * before avcodec_open2() is called. + * + * Some hardware decoders require all frames that they will use for + * output to be defined in advance before decoding starts. For such + * decoders, the hardware frame pool must therefore be of a fixed size. + * The extra frames set here are on top of any number that the decoder + * needs internally in order to operate normally (for example, frames + * used as reference pictures). + */ + int extra_hw_frames; + + /** + * error + * - encoding: Set by libavcodec if flags & AV_CODEC_FLAG_PSNR. + * - decoding: unused + */ + uint64_t error[AV_NUM_DATA_POINTERS]; + + /** + * DCT algorithm, see FF_DCT_* below + * - encoding: Set by user. + * - decoding: unused + */ + int dct_algo; +#define FF_DCT_AUTO 0 +#define FF_DCT_FASTINT 1 +#define FF_DCT_INT 2 +#define FF_DCT_MMX 3 +#define FF_DCT_ALTIVEC 5 +#define FF_DCT_FAAN 6 +#define FF_DCT_NEON 7 + + /** + * IDCT algorithm, see FF_IDCT_* below. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int idct_algo; +#define FF_IDCT_AUTO 0 +#define FF_IDCT_INT 1 +#define FF_IDCT_SIMPLE 2 +#define FF_IDCT_SIMPLEMMX 3 +#define FF_IDCT_ARM 7 +#define FF_IDCT_ALTIVEC 8 +#define FF_IDCT_SIMPLEARM 10 +#define FF_IDCT_XVID 14 +#define FF_IDCT_SIMPLEARMV5TE 16 +#define FF_IDCT_SIMPLEARMV6 17 +#define FF_IDCT_FAAN 20 +#define FF_IDCT_SIMPLENEON 22 +#define FF_IDCT_SIMPLEAUTO 128 + + /** + * bits per sample/pixel from the demuxer (needed for huffyuv). + * - encoding: Set by libavcodec. + * - decoding: Set by user. + */ + int bits_per_coded_sample; + + /** + * Bits per sample/pixel of internal libavcodec pixel/sample format. + * - encoding: set by user. + * - decoding: set by libavcodec. + */ + int bits_per_raw_sample; + + /** + * thread count + * is used to decide how many independent tasks should be passed to execute() + * - encoding: Set by user. + * - decoding: Set by user. + */ + int thread_count; + + /** + * Which multithreading methods to use. + * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, + * so clients which cannot provide future frames should not use it. + * + * - encoding: Set by user, otherwise the default is used. + * - decoding: Set by user, otherwise the default is used. + */ + int thread_type; +#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once +#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once + + /** + * Which multithreading methods are in use by the codec. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int active_thread_type; + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param count the number of things to execute + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size); + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param c context passed also to func + * @param count the number of things to execute + * @param arg2 argument passed unchanged to func + * @param ret return values of executed functions, must have space for "count" values. May be NULL. + * @param func function that will be called count times, with jobnr from 0 to count-1. + * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no + * two instances of func executing at the same time will have the same threadnr. + * @return always 0 currently, but code should handle a future improvement where when any call to func + * returns < 0 no further calls to func may be done and < 0 is returned. + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count); + + /** + * profile + * - encoding: Set by user. + * - decoding: Set by libavcodec. + * See the AV_PROFILE_* defines in defs.h. + */ + int profile; +#if FF_API_FF_PROFILE_LEVEL + /** @deprecated The following defines are deprecated; use AV_PROFILE_* + * in defs.h instead. */ +#define FF_PROFILE_UNKNOWN -99 +#define FF_PROFILE_RESERVED -100 + +#define FF_PROFILE_AAC_MAIN 0 +#define FF_PROFILE_AAC_LOW 1 +#define FF_PROFILE_AAC_SSR 2 +#define FF_PROFILE_AAC_LTP 3 +#define FF_PROFILE_AAC_HE 4 +#define FF_PROFILE_AAC_HE_V2 28 +#define FF_PROFILE_AAC_LD 22 +#define FF_PROFILE_AAC_ELD 38 +#define FF_PROFILE_MPEG2_AAC_LOW 128 +#define FF_PROFILE_MPEG2_AAC_HE 131 + +#define FF_PROFILE_DNXHD 0 +#define FF_PROFILE_DNXHR_LB 1 +#define FF_PROFILE_DNXHR_SQ 2 +#define FF_PROFILE_DNXHR_HQ 3 +#define FF_PROFILE_DNXHR_HQX 4 +#define FF_PROFILE_DNXHR_444 5 + +#define FF_PROFILE_DTS 20 +#define FF_PROFILE_DTS_ES 30 +#define FF_PROFILE_DTS_96_24 40 +#define FF_PROFILE_DTS_HD_HRA 50 +#define FF_PROFILE_DTS_HD_MA 60 +#define FF_PROFILE_DTS_EXPRESS 70 +#define FF_PROFILE_DTS_HD_MA_X 61 +#define FF_PROFILE_DTS_HD_MA_X_IMAX 62 + + +#define FF_PROFILE_EAC3_DDP_ATMOS 30 + +#define FF_PROFILE_TRUEHD_ATMOS 30 + +#define FF_PROFILE_MPEG2_422 0 +#define FF_PROFILE_MPEG2_HIGH 1 +#define FF_PROFILE_MPEG2_SS 2 +#define FF_PROFILE_MPEG2_SNR_SCALABLE 3 +#define FF_PROFILE_MPEG2_MAIN 4 +#define FF_PROFILE_MPEG2_SIMPLE 5 + +#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag +#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag + +#define FF_PROFILE_H264_BASELINE 66 +#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED) +#define FF_PROFILE_H264_MAIN 77 +#define FF_PROFILE_H264_EXTENDED 88 +#define FF_PROFILE_H264_HIGH 100 +#define FF_PROFILE_H264_HIGH_10 110 +#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_MULTIVIEW_HIGH 118 +#define FF_PROFILE_H264_HIGH_422 122 +#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_STEREO_HIGH 128 +#define FF_PROFILE_H264_HIGH_444 144 +#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244 +#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_CAVLC_444 44 + +#define FF_PROFILE_VC1_SIMPLE 0 +#define FF_PROFILE_VC1_MAIN 1 +#define FF_PROFILE_VC1_COMPLEX 2 +#define FF_PROFILE_VC1_ADVANCED 3 + +#define FF_PROFILE_MPEG4_SIMPLE 0 +#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1 +#define FF_PROFILE_MPEG4_CORE 2 +#define FF_PROFILE_MPEG4_MAIN 3 +#define FF_PROFILE_MPEG4_N_BIT 4 +#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5 +#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6 +#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7 +#define FF_PROFILE_MPEG4_HYBRID 8 +#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9 +#define FF_PROFILE_MPEG4_CORE_SCALABLE 10 +#define FF_PROFILE_MPEG4_ADVANCED_CODING 11 +#define FF_PROFILE_MPEG4_ADVANCED_CORE 12 +#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13 +#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14 +#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15 + +#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1 +#define FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2 +#define FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768 +#define FF_PROFILE_JPEG2000_DCINEMA_2K 3 +#define FF_PROFILE_JPEG2000_DCINEMA_4K 4 + +#define FF_PROFILE_VP9_0 0 +#define FF_PROFILE_VP9_1 1 +#define FF_PROFILE_VP9_2 2 +#define FF_PROFILE_VP9_3 3 + +#define FF_PROFILE_HEVC_MAIN 1 +#define FF_PROFILE_HEVC_MAIN_10 2 +#define FF_PROFILE_HEVC_MAIN_STILL_PICTURE 3 +#define FF_PROFILE_HEVC_REXT 4 +#define FF_PROFILE_HEVC_SCC 9 + +#define FF_PROFILE_VVC_MAIN_10 1 +#define FF_PROFILE_VVC_MAIN_10_444 33 + +#define FF_PROFILE_AV1_MAIN 0 +#define FF_PROFILE_AV1_HIGH 1 +#define FF_PROFILE_AV1_PROFESSIONAL 2 + +#define FF_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0 +#define FF_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1 +#define FF_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2 +#define FF_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3 +#define FF_PROFILE_MJPEG_JPEG_LS 0xf7 + +#define FF_PROFILE_SBC_MSBC 1 + +#define FF_PROFILE_PRORES_PROXY 0 +#define FF_PROFILE_PRORES_LT 1 +#define FF_PROFILE_PRORES_STANDARD 2 +#define FF_PROFILE_PRORES_HQ 3 +#define FF_PROFILE_PRORES_4444 4 +#define FF_PROFILE_PRORES_XQ 5 + +#define FF_PROFILE_ARIB_PROFILE_A 0 +#define FF_PROFILE_ARIB_PROFILE_C 1 + +#define FF_PROFILE_KLVA_SYNC 0 +#define FF_PROFILE_KLVA_ASYNC 1 + +#define FF_PROFILE_EVC_BASELINE 0 +#define FF_PROFILE_EVC_MAIN 1 +#endif + + /** + * Encoding level descriptor. + * - encoding: Set by user, corresponds to a specific level defined by the + * codec, usually corresponding to the profile level, if not specified it + * is set to FF_LEVEL_UNKNOWN. + * - decoding: Set by libavcodec. + * See AV_LEVEL_* in defs.h. + */ + int level; +#if FF_API_FF_PROFILE_LEVEL + /** @deprecated The following define is deprecated; use AV_LEVEL_UNKOWN + * in defs.h instead. */ +#define FF_LEVEL_UNKNOWN -99 +#endif + + /** + * Properties of the stream that gets decoded + * - encoding: unused + * - decoding: set by libavcodec + */ + unsigned properties; +#define FF_CODEC_PROPERTY_LOSSLESS 0x00000001 +#define FF_CODEC_PROPERTY_CLOSED_CAPTIONS 0x00000002 +#define FF_CODEC_PROPERTY_FILM_GRAIN 0x00000004 + + /** + * Skip loop filtering for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_loop_filter; + + /** + * Skip IDCT/dequantization for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_idct; + + /** + * Skip decoding for selected frames. + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_frame; + + /** + * Skip processing alpha if supported by codec. + * Note that if the format uses pre-multiplied alpha (common with VP6, + * and recommended due to better video quality/compression) + * the image will look as if alpha-blended onto a black background. + * However for formats that do not use pre-multiplied alpha + * there might be serious artefacts (though e.g. libswscale currently + * assumes pre-multiplied alpha anyway). + * + * - decoding: set by user + * - encoding: unused + */ + int skip_alpha; + + /** + * Number of macroblock rows at the top which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_top; + + /** + * Number of macroblock rows at the bottom which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_bottom; + + /** + * low resolution decoding, 1-> 1/2 size, 2->1/4 size + * - encoding: unused + * - decoding: Set by user. + */ + int lowres; + + /** + * AVCodecDescriptor + * - encoding: unused. + * - decoding: set by libavcodec. + */ + const struct AVCodecDescriptor *codec_descriptor; + + /** + * Character encoding of the input subtitles file. + * - decoding: set by user + * - encoding: unused + */ + char *sub_charenc; + + /** + * Subtitles character encoding mode. Formats or codecs might be adjusting + * this setting (if they are doing the conversion themselves for instance). + * - decoding: set by libavcodec + * - encoding: unused + */ + int sub_charenc_mode; +#define FF_SUB_CHARENC_MODE_DO_NOTHING -1 ///< do nothing (demuxer outputs a stream supposed to be already in UTF-8, or the codec is bitmap for instance) +#define FF_SUB_CHARENC_MODE_AUTOMATIC 0 ///< libavcodec will select the mode itself +#define FF_SUB_CHARENC_MODE_PRE_DECODER 1 ///< the AVPacket data needs to be recoded to UTF-8 before being fed to the decoder, requires iconv +#define FF_SUB_CHARENC_MODE_IGNORE 2 ///< neither convert the subtitles, nor check them for valid UTF-8 + + /** + * Header containing style information for text subtitles. + * For SUBTITLE_ASS subtitle type, it should contain the whole ASS + * [Script Info] and [V4+ Styles] section, plus the [Events] line and + * the Format line following. It shouldn't include any Dialogue line. + * - encoding: Set/allocated/freed by user (before avcodec_open2()) + * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2()) + */ + int subtitle_header_size; + uint8_t *subtitle_header; + + /** + * dump format separator. + * can be ", " or "\n " or anything else + * - encoding: Set by user. + * - decoding: Set by user. + */ + uint8_t *dump_separator; + + /** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *codec_whitelist; + + /** + * Additional data associated with the entire coded stream. + * + * - decoding: may be set by user before calling avcodec_open2(). + * - encoding: may be set by libavcodec after avcodec_open2(). + */ + AVPacketSideData *coded_side_data; + int nb_coded_side_data; + + /** + * Bit set of AV_CODEC_EXPORT_DATA_* flags, which affects the kind of + * metadata exported in frame, packet, or coded stream side data by + * decoders and encoders. + * + * - decoding: set by user + * - encoding: set by user + */ + int export_side_data; + + /** + * The number of pixels per image to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + */ + int64_t max_pixels; + + /** + * Video decoding only. Certain video codecs support cropping, meaning that + * only a sub-rectangle of the decoded frame is intended for display. This + * option controls how cropping is handled by libavcodec. + * + * When set to 1 (the default), libavcodec will apply cropping internally. + * I.e. it will modify the output frame width/height fields and offset the + * data pointers (only by as much as possible while preserving alignment, or + * by the full amount if the AV_CODEC_FLAG_UNALIGNED flag is set) so that + * the frames output by the decoder refer only to the cropped area. The + * crop_* fields of the output frames will be zero. + * + * When set to 0, the width/height fields of the output frames will be set + * to the coded dimensions and the crop_* fields will describe the cropping + * rectangle. Applying the cropping is left to the caller. + * + * @warning When hardware acceleration with opaque output frames is used, + * libavcodec is unable to apply cropping from the top/left border. + * + * @note when this option is set to zero, the width/height fields of the + * AVCodecContext and output AVFrames have different meanings. The codec + * context fields store display dimensions (with the coded dimensions in + * coded_width/height), while the frame fields store the coded dimensions + * (with the display dimensions being determined by the crop_* fields). + */ + int apply_cropping; + + /** + * The percentage of damaged samples to discard a frame. + * + * - decoding: set by user + * - encoding: unused + */ + int discard_damaged_percentage; + + /** + * The number of samples per frame to maximally accept. + * + * - decoding: set by user + * - encoding: set by user + */ + int64_t max_samples; + + /** + * This callback is called at the beginning of each packet to get a data + * buffer for it. + * + * The following field will be set in the packet before this callback is + * called: + * - size + * This callback must use the above value to calculate the required buffer size, + * which must padded by at least AV_INPUT_BUFFER_PADDING_SIZE bytes. + * + * In some specific cases, the encoder may not use the entire buffer allocated by this + * callback. This will be reflected in the size value in the packet once returned by + * avcodec_receive_packet(). + * + * This callback must fill the following fields in the packet: + * - data: alignment requirements for AVPacket apply, if any. Some architectures and + * encoders may benefit from having aligned data. + * - buf: must contain a pointer to an AVBufferRef structure. The packet's + * data pointer must be contained in it. See: av_buffer_create(), av_buffer_alloc(), + * and av_buffer_ref(). + * + * If AV_CODEC_CAP_DR1 is not set then get_encode_buffer() must call + * avcodec_default_get_encode_buffer() instead of providing a buffer allocated by + * some other means. + * + * The flags field may contain a combination of AV_GET_ENCODE_BUFFER_FLAG_ flags. + * They may be used for example to hint what use the buffer may get after being + * created. + * Implementations of this callback may ignore flags they don't understand. + * If AV_GET_ENCODE_BUFFER_FLAG_REF is set in flags then the packet may be reused + * (read and/or written to if it is writable) later by libavcodec. + * + * This callback must be thread-safe, as when frame threading is used, it may + * be called from multiple threads simultaneously. + * + * @see avcodec_default_get_encode_buffer() + * + * - encoding: Set by libavcodec, user can override. + * - decoding: unused + */ + int (*get_encode_buffer)(struct AVCodecContext *s, AVPacket *pkt, int flags); + + /** + * Frame counter, set by libavcodec. + * + * - decoding: total number of frames returned from the decoder so far. + * - encoding: total number of frames passed to the encoder so far. + * + * @note the counter is not incremented if encoding/decoding resulted in + * an error. + */ + int64_t frame_num; + + /** + * Decoding only. May be set by the caller before avcodec_open2() to an + * av_malloc()'ed array (or via AVOptions). Owned and freed by the decoder + * afterwards. + * + * Side data attached to decoded frames may come from several sources: + * 1. coded_side_data, which the decoder will for certain types translate + * from packet-type to frame-type and attach to frames; + * 2. side data attached to an AVPacket sent for decoding (same + * considerations as above); + * 3. extracted from the coded bytestream. + * The first two cases are supplied by the caller and typically come from a + * container. + * + * This array configures decoder behaviour in cases when side data of the + * same type is present both in the coded bytestream and in the + * user-supplied side data (items 1. and 2. above). In all cases, at most + * one instance of each side data type will be attached to output frames. By + * default it will be the bytestream side data. Adding an + * AVPacketSideDataType value to this array will flip the preference for + * this type, thus making the decoder prefer user-supplied side data over + * bytestream. In case side data of the same type is present both in + * coded_data and attacked to a packet, the packet instance always has + * priority. + * + * The array may also contain a single -1, in which case the preference is + * switched for all side data types. + */ + int *side_data_prefer_packet; + /** + * Number of entries in side_data_prefer_packet. + */ + unsigned nb_side_data_prefer_packet; + + /** + * Array containing static side data, such as HDR10 CLL / MDCV structures. + * Side data entries should be allocated by usage of helpers defined in + * libavutil/frame.h. + * + * - encoding: may be set by user before calling avcodec_open2() for + * encoder configuration. Afterwards owned and freed by the + * encoder. + * - decoding: may be set by libavcodec in avcodec_open2(). + */ + AVFrameSideData **decoded_side_data; + int nb_decoded_side_data; +} AVCodecContext; + +/** + * @defgroup lavc_hwaccel AVHWAccel + * + * @note Nothing in this structure should be accessed by the user. At some + * point in future it will not be externally visible at all. + * + * @{ + */ +typedef struct AVHWAccel { + /** + * Name of the hardware accelerated codec. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + */ + const char *name; + + /** + * Type of codec implemented by the hardware accelerator. + * + * See AVMEDIA_TYPE_xxx + */ + enum AVMediaType type; + + /** + * Codec implemented by the hardware accelerator. + * + * See AV_CODEC_ID_xxx + */ + enum AVCodecID id; + + /** + * Supported pixel format. + * + * Only hardware accelerated formats are supported here. + */ + enum AVPixelFormat pix_fmt; + + /** + * Hardware accelerated codec capabilities. + * see AV_HWACCEL_CODEC_CAP_* + */ + int capabilities; +} AVHWAccel; + +/** + * HWAccel is experimental and is thus avoided in favor of non experimental + * codecs + */ +#define AV_HWACCEL_CODEC_CAP_EXPERIMENTAL 0x0200 + +/** + * Hardware acceleration should be used for decoding even if the codec level + * used is unknown or higher than the maximum supported level reported by the + * hardware driver. + * + * It's generally a good idea to pass this flag unless you have a specific + * reason not to, as hardware tends to under-report supported levels. + */ +#define AV_HWACCEL_FLAG_IGNORE_LEVEL (1 << 0) + +/** + * Hardware acceleration can output YUV pixel formats with a different chroma + * sampling than 4:2:0 and/or other than 8 bits per component. + */ +#define AV_HWACCEL_FLAG_ALLOW_HIGH_DEPTH (1 << 1) + +/** + * Hardware acceleration should still be attempted for decoding when the + * codec profile does not match the reported capabilities of the hardware. + * + * For example, this can be used to try to decode baseline profile H.264 + * streams in hardware - it will often succeed, because many streams marked + * as baseline profile actually conform to constrained baseline profile. + * + * @warning If the stream is actually not supported then the behaviour is + * undefined, and may include returning entirely incorrect output + * while indicating success. + */ +#define AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH (1 << 2) + +/** + * Some hardware decoders (namely nvdec) can either output direct decoder + * surfaces, or make an on-device copy and return said copy. + * There is a hard limit on how many decoder surfaces there can be, and it + * cannot be accurately guessed ahead of time. + * For some processing chains, this can be okay, but others will run into the + * limit and in turn produce very confusing errors that require fine tuning of + * more or less obscure options by the user, or in extreme cases cannot be + * resolved at all without inserting an avfilter that forces a copy. + * + * Thus, the hwaccel will by default make a copy for safety and resilience. + * If a users really wants to minimize the amount of copies, they can set this + * flag and ensure their processing chain does not exhaust the surface pool. + */ +#define AV_HWACCEL_FLAG_UNSAFE_OUTPUT (1 << 3) + +/** + * @} + */ + +enum AVSubtitleType { + SUBTITLE_NONE, + + SUBTITLE_BITMAP, ///< A bitmap, pict will be set + + /** + * Plain text, the text field must be set by the decoder and is + * authoritative. ass and pict fields may contain approximations. + */ + SUBTITLE_TEXT, + + /** + * Formatted text, the ass field must be set by the decoder and is + * authoritative. pict and text fields may contain approximations. + */ + SUBTITLE_ASS, +}; + +#define AV_SUBTITLE_FLAG_FORCED 0x00000001 + +typedef struct AVSubtitleRect { + int x; ///< top left corner of pict, undefined when pict is not set + int y; ///< top left corner of pict, undefined when pict is not set + int w; ///< width of pict, undefined when pict is not set + int h; ///< height of pict, undefined when pict is not set + int nb_colors; ///< number of colors in pict, undefined when pict is not set + + /** + * data+linesize for the bitmap of this subtitle. + * Can be set for text/ass as well once they are rendered. + */ + uint8_t *data[4]; + int linesize[4]; + + int flags; + enum AVSubtitleType type; + + char *text; ///< 0 terminated plain UTF-8 text + + /** + * 0 terminated ASS/SSA compatible event line. + * The presentation of this is unaffected by the other values in this + * struct. + */ + char *ass; +} AVSubtitleRect; + +typedef struct AVSubtitle { + uint16_t format; /* 0 = graphics */ + uint32_t start_display_time; /* relative to packet pts, in ms */ + uint32_t end_display_time; /* relative to packet pts, in ms */ + unsigned num_rects; + AVSubtitleRect **rects; + int64_t pts; ///< Same as packet pts, in AV_TIME_BASE +} AVSubtitle; + +/** + * Return the LIBAVCODEC_VERSION_INT constant. + */ +unsigned avcodec_version(void); + +/** + * Return the libavcodec build-time configuration. + */ +const char *avcodec_configuration(void); + +/** + * Return the libavcodec license. + */ +const char *avcodec_license(void); + +/** + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct should be freed with avcodec_free_context(). + * + * @param codec if non-NULL, allocate private data and initialize defaults + * for the given codec. It is illegal to then call avcodec_open2() + * with a different codec. + * If NULL, then the codec-specific defaults won't be initialized, + * which may result in suboptimal default settings (this is + * important mainly for encoders, e.g. libx264). + * + * @return An AVCodecContext filled with default values or NULL on failure. + */ +AVCodecContext *avcodec_alloc_context3(const AVCodec *codec); + +/** + * Free the codec context and everything associated with it and write NULL to + * the provided pointer. + */ +void avcodec_free_context(AVCodecContext **avctx); + +/** + * Get the AVClass for AVCodecContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_class(void); + +/** + * Get the AVClass for AVSubtitleRect. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_subtitle_rect_class(void); + +/** + * Fill the parameters struct based on the values from the supplied codec + * context. Any allocated fields in par are freed and replaced with duplicates + * of the corresponding fields in codec. + * + * @return >= 0 on success, a negative AVERROR code on failure + */ +int avcodec_parameters_from_context(struct AVCodecParameters *par, + const AVCodecContext *codec); + +/** + * Fill the codec context based on the values from the supplied codec + * parameters. Any allocated fields in codec that have a corresponding field in + * par are freed and replaced with duplicates of the corresponding field in par. + * Fields in codec that do not have a counterpart in par are not touched. + * + * @return >= 0 on success, a negative AVERROR code on failure. + */ +int avcodec_parameters_to_context(AVCodecContext *codec, + const struct AVCodecParameters *par); + +/** + * Initialize the AVCodecContext to use the given AVCodec. Prior to using this + * function the context has to be allocated with avcodec_alloc_context3(). + * + * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), + * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for + * retrieving a codec. + * + * Depending on the codec, you might need to set options in the codec context + * also for decoding (e.g. width, height, or the pixel or audio sample format in + * the case the information is not available in the bitstream, as when decoding + * raw audio or video). + * + * Options in the codec context can be set either by setting them in the options + * AVDictionary, or by setting the values in the context itself, directly or by + * using the av_opt_set() API before calling this function. + * + * Example: + * @code + * av_dict_set(&opts, "b", "2.5M", 0); + * codec = avcodec_find_decoder(AV_CODEC_ID_H264); + * if (!codec) + * exit(1); + * + * context = avcodec_alloc_context3(codec); + * + * if (avcodec_open2(context, codec, opts) < 0) + * exit(1); + * @endcode + * + * In the case AVCodecParameters are available (e.g. when demuxing a stream + * using libavformat, and accessing the AVStream contained in the demuxer), the + * codec parameters can be copied to the codec context using + * avcodec_parameters_to_context(), as in the following example: + * + * @code + * AVStream *stream = ...; + * context = avcodec_alloc_context3(codec); + * if (avcodec_parameters_to_context(context, stream->codecpar) < 0) + * exit(1); + * if (avcodec_open2(context, codec, NULL) < 0) + * exit(1); + * @endcode + * + * @note Always call this function before using decoding routines (such as + * @ref avcodec_receive_frame()). + * + * @param avctx The context to initialize. + * @param codec The codec to open this context for. If a non-NULL codec has been + * previously passed to avcodec_alloc_context3() or + * for this context, then this parameter MUST be either NULL or + * equal to the previously passed codec. + * @param options A dictionary filled with AVCodecContext and codec-private + * options, which are set on top of the options already set in + * avctx, can be NULL. On return this object will be filled with + * options that were not found in the avctx codec context. + * + * @return zero on success, a negative value on error + * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(), + * av_dict_set(), av_opt_set(), av_opt_find(), avcodec_parameters_to_context() + */ +int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options); + +#if FF_API_AVCODEC_CLOSE +/** + * Close a given AVCodecContext and free all the data associated with it + * (but not the AVCodecContext itself). + * + * Calling this function on an AVCodecContext that hasn't been opened will free + * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL + * codec. Subsequent calls will do nothing. + * + * @deprecated Do not use this function. Use avcodec_free_context() to destroy a + * codec context (either open or closed). Opening and closing a codec context + * multiple times is not supported anymore -- use multiple codec contexts + * instead. + */ +attribute_deprecated +int avcodec_close(AVCodecContext *avctx); +#endif + +/** + * Free all allocated data in the given subtitle struct. + * + * @param sub AVSubtitle to free. + */ +void avsubtitle_free(AVSubtitle *sub); + +/** + * @} + */ + +/** + * @addtogroup lavc_decoding + * @{ + */ + +/** + * The default callback for AVCodecContext.get_buffer2(). It is made public so + * it can be called by custom get_buffer2() implementations for decoders without + * AV_CODEC_CAP_DR1 set. + */ +int avcodec_default_get_buffer2(AVCodecContext *s, AVFrame *frame, int flags); + +/** + * The default callback for AVCodecContext.get_encode_buffer(). It is made public so + * it can be called by custom get_encode_buffer() implementations for encoders without + * AV_CODEC_CAP_DR1 set. + */ +int avcodec_default_get_encode_buffer(AVCodecContext *s, AVPacket *pkt, int flags); + +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you do not use any horizontal + * padding. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + */ +void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); + +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you also ensure that all + * line sizes are a multiple of the respective linesize_align[i]. + * + * May only be used if a codec with AV_CODEC_CAP_DR1 has been opened. + */ +void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, + int linesize_align[AV_NUM_DATA_POINTERS]); + +/** + * Decode a subtitle message. + * Return a negative value on error, otherwise return the number of bytes used. + * If no subtitle could be decompressed, got_sub_ptr is zero. + * Otherwise, the subtitle is stored in *sub. + * Note that AV_CODEC_CAP_DR1 is not available for subtitle codecs. This is for + * simplicity, because the performance difference is expected to be negligible + * and reusing a get_buffer written for video codecs would probably perform badly + * due to a potentially very different allocation pattern. + * + * Some decoders (those marked with AV_CODEC_CAP_DELAY) have a delay between input + * and output. This means that for some packets they will not immediately + * produce decoded output and need to be flushed at the end of decoding to get + * all the decoded data. Flushing is done by calling this function with packets + * with avpkt->data set to NULL and avpkt->size set to 0 until it stops + * returning subtitles. It is safe to flush even those decoders that are not + * marked with AV_CODEC_CAP_DELAY, then no subtitles will be returned. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx the codec context + * @param[out] sub The preallocated AVSubtitle in which the decoded subtitle will be stored, + * must be freed with avsubtitle_free if *got_sub_ptr is set. + * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero. + * @param[in] avpkt The input AVPacket containing the input buffer. + */ +int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, + int *got_sub_ptr, const AVPacket *avpkt); + +/** + * Supply raw packet data as input to a decoder. + * + * Internally, this call will copy relevant AVCodecContext fields, which can + * influence decoding per-packet, and apply them when the packet is actually + * decoded. (For example AVCodecContext.skip_frame, which might direct the + * decoder to drop the frame contained by the packet sent with this function.) + * + * @warning The input buffer, avpkt->data must be AV_INPUT_BUFFER_PADDING_SIZE + * larger than the actual read bytes because some optimized bitstream + * readers read 32 or 64 bits at once and could read over the end. + * + * @note The AVCodecContext MUST have been opened with @ref avcodec_open2() + * before packets may be fed to the decoder. + * + * @param avctx codec context + * @param[in] avpkt The input AVPacket. Usually, this will be a single video + * frame, or several complete audio frames. + * Ownership of the packet remains with the caller, and the + * decoder will not write to the packet. The decoder may create + * a reference to the packet data (or copy it if the packet is + * not reference-counted). + * Unlike with older APIs, the packet is always fully consumed, + * and if it contains multiple frames (e.g. some audio codecs), + * will require you to call avcodec_receive_frame() multiple + * times afterwards before you can send a new packet. + * It can be NULL (or an AVPacket with data set to NULL and + * size set to 0); in this case, it is considered a flush + * packet, which signals the end of the stream. Sending the + * first flush packet will return success. Subsequent ones are + * unnecessary and will return AVERROR_EOF. If the decoder + * still has frames buffered, it will return them after sending + * a flush packet. + * + * @retval 0 success + * @retval AVERROR(EAGAIN) input is not accepted in the current state - user + * must read output with avcodec_receive_frame() (once + * all output is read, the packet should be resent, + * and the call will not fail with EAGAIN). + * @retval AVERROR_EOF the decoder has been flushed, and no new packets can be + * sent to it (also returned if more than 1 flush + * packet is sent) + * @retval AVERROR(EINVAL) codec not opened, it is an encoder, or requires flush + * @retval AVERROR(ENOMEM) failed to add packet to internal queue, or similar + * @retval "another negative error code" legitimate decoding errors + */ +int avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt); + +/** + * Return decoded output data from a decoder or encoder (when the + * @ref AV_CODEC_FLAG_RECON_FRAME flag is used). + * + * @param avctx codec context + * @param frame This will be set to a reference-counted video or audio + * frame (depending on the decoder type) allocated by the + * codec. Note that the function will always call + * av_frame_unref(frame) before doing anything else. + * + * @retval 0 success, a frame was returned + * @retval AVERROR(EAGAIN) output is not available in this state - user must + * try to send new input + * @retval AVERROR_EOF the codec has been fully flushed, and there will be + * no more output frames + * @retval AVERROR(EINVAL) codec not opened, or it is an encoder without the + * @ref AV_CODEC_FLAG_RECON_FRAME flag enabled + * @retval "other negative error code" legitimate decoding errors + */ +int avcodec_receive_frame(AVCodecContext *avctx, AVFrame *frame); + +/** + * Supply a raw video or audio frame to the encoder. Use avcodec_receive_packet() + * to retrieve buffered output packets. + * + * @param avctx codec context + * @param[in] frame AVFrame containing the raw audio or video frame to be encoded. + * Ownership of the frame remains with the caller, and the + * encoder will not write to the frame. The encoder may create + * a reference to the frame data (or copy it if the frame is + * not reference-counted). + * It can be NULL, in which case it is considered a flush + * packet. This signals the end of the stream. If the encoder + * still has packets buffered, it will return them after this + * call. Once flushing mode has been entered, additional flush + * packets are ignored, and sending frames will return + * AVERROR_EOF. + * + * For audio: + * If AV_CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame + * can have any number of samples. + * If it is not set, frame->nb_samples must be equal to + * avctx->frame_size for all frames except the last. + * The final frame may be smaller than avctx->frame_size. + * @retval 0 success + * @retval AVERROR(EAGAIN) input is not accepted in the current state - user must + * read output with avcodec_receive_packet() (once all + * output is read, the packet should be resent, and the + * call will not fail with EAGAIN). + * @retval AVERROR_EOF the encoder has been flushed, and no new frames can + * be sent to it + * @retval AVERROR(EINVAL) codec not opened, it is a decoder, or requires flush + * @retval AVERROR(ENOMEM) failed to add packet to internal queue, or similar + * @retval "another negative error code" legitimate encoding errors + */ +int avcodec_send_frame(AVCodecContext *avctx, const AVFrame *frame); + +/** + * Read encoded data from the encoder. + * + * @param avctx codec context + * @param avpkt This will be set to a reference-counted packet allocated by the + * encoder. Note that the function will always call + * av_packet_unref(avpkt) before doing anything else. + * @retval 0 success + * @retval AVERROR(EAGAIN) output is not available in the current state - user must + * try to send input + * @retval AVERROR_EOF the encoder has been fully flushed, and there will be no + * more output packets + * @retval AVERROR(EINVAL) codec not opened, or it is a decoder + * @retval "another negative error code" legitimate encoding errors + */ +int avcodec_receive_packet(AVCodecContext *avctx, AVPacket *avpkt); + +/** + * Create and return a AVHWFramesContext with values adequate for hardware + * decoding. This is meant to get called from the get_format callback, and is + * a helper for preparing a AVHWFramesContext for AVCodecContext.hw_frames_ctx. + * This API is for decoding with certain hardware acceleration modes/APIs only. + * + * The returned AVHWFramesContext is not initialized. The caller must do this + * with av_hwframe_ctx_init(). + * + * Calling this function is not a requirement, but makes it simpler to avoid + * codec or hardware API specific details when manually allocating frames. + * + * Alternatively to this, an API user can set AVCodecContext.hw_device_ctx, + * which sets up AVCodecContext.hw_frames_ctx fully automatically, and makes + * it unnecessary to call this function or having to care about + * AVHWFramesContext initialization at all. + * + * There are a number of requirements for calling this function: + * + * - It must be called from get_format with the same avctx parameter that was + * passed to get_format. Calling it outside of get_format is not allowed, and + * can trigger undefined behavior. + * - The function is not always supported (see description of return values). + * Even if this function returns successfully, hwaccel initialization could + * fail later. (The degree to which implementations check whether the stream + * is actually supported varies. Some do this check only after the user's + * get_format callback returns.) + * - The hw_pix_fmt must be one of the choices suggested by get_format. If the + * user decides to use a AVHWFramesContext prepared with this API function, + * the user must return the same hw_pix_fmt from get_format. + * - The device_ref passed to this function must support the given hw_pix_fmt. + * - After calling this API function, it is the user's responsibility to + * initialize the AVHWFramesContext (returned by the out_frames_ref parameter), + * and to set AVCodecContext.hw_frames_ctx to it. If done, this must be done + * before returning from get_format (this is implied by the normal + * AVCodecContext.hw_frames_ctx API rules). + * - The AVHWFramesContext parameters may change every time time get_format is + * called. Also, AVCodecContext.hw_frames_ctx is reset before get_format. So + * you are inherently required to go through this process again on every + * get_format call. + * - It is perfectly possible to call this function without actually using + * the resulting AVHWFramesContext. One use-case might be trying to reuse a + * previously initialized AVHWFramesContext, and calling this API function + * only to test whether the required frame parameters have changed. + * - Fields that use dynamically allocated values of any kind must not be set + * by the user unless setting them is explicitly allowed by the documentation. + * If the user sets AVHWFramesContext.free and AVHWFramesContext.user_opaque, + * the new free callback must call the potentially set previous free callback. + * This API call may set any dynamically allocated fields, including the free + * callback. + * + * The function will set at least the following fields on AVHWFramesContext + * (potentially more, depending on hwaccel API): + * + * - All fields set by av_hwframe_ctx_alloc(). + * - Set the format field to hw_pix_fmt. + * - Set the sw_format field to the most suited and most versatile format. (An + * implication is that this will prefer generic formats over opaque formats + * with arbitrary restrictions, if possible.) + * - Set the width/height fields to the coded frame size, rounded up to the + * API-specific minimum alignment. + * - Only _if_ the hwaccel requires a pre-allocated pool: set the initial_pool_size + * field to the number of maximum reference surfaces possible with the codec, + * plus 1 surface for the user to work (meaning the user can safely reference + * at most 1 decoded surface at a time), plus additional buffering introduced + * by frame threading. If the hwaccel does not require pre-allocation, the + * field is left to 0, and the decoder will allocate new surfaces on demand + * during decoding. + * - Possibly AVHWFramesContext.hwctx fields, depending on the underlying + * hardware API. + * + * Essentially, out_frames_ref returns the same as av_hwframe_ctx_alloc(), but + * with basic frame parameters set. + * + * The function is stateless, and does not change the AVCodecContext or the + * device_ref AVHWDeviceContext. + * + * @param avctx The context which is currently calling get_format, and which + * implicitly contains all state needed for filling the returned + * AVHWFramesContext properly. + * @param device_ref A reference to the AVHWDeviceContext describing the device + * which will be used by the hardware decoder. + * @param hw_pix_fmt The hwaccel format you are going to return from get_format. + * @param out_frames_ref On success, set to a reference to an _uninitialized_ + * AVHWFramesContext, created from the given device_ref. + * Fields will be set to values required for decoding. + * Not changed if an error is returned. + * @return zero on success, a negative value on error. The following error codes + * have special semantics: + * AVERROR(ENOENT): the decoder does not support this functionality. Setup + * is always manual, or it is a decoder which does not + * support setting AVCodecContext.hw_frames_ctx at all, + * or it is a software format. + * AVERROR(EINVAL): it is known that hardware decoding is not supported for + * this configuration, or the device_ref is not supported + * for the hwaccel referenced by hw_pix_fmt. + */ +int avcodec_get_hw_frames_parameters(AVCodecContext *avctx, + AVBufferRef *device_ref, + enum AVPixelFormat hw_pix_fmt, + AVBufferRef **out_frames_ref); + +enum AVCodecConfig { + AV_CODEC_CONFIG_PIX_FORMAT, ///< AVPixelFormat, terminated by AV_PIX_FMT_NONE + AV_CODEC_CONFIG_FRAME_RATE, ///< AVRational, terminated by {0, 0} + AV_CODEC_CONFIG_SAMPLE_RATE, ///< int, terminated by 0 + AV_CODEC_CONFIG_SAMPLE_FORMAT, ///< AVSampleFormat, terminated by AV_SAMPLE_FMT_NONE + AV_CODEC_CONFIG_CHANNEL_LAYOUT, ///< AVChannelLayout, terminated by {0} + AV_CODEC_CONFIG_COLOR_RANGE, ///< AVColorRange, terminated by AVCOL_RANGE_UNSPECIFIED + AV_CODEC_CONFIG_COLOR_SPACE, ///< AVColorSpace, terminated by AVCOL_SPC_UNSPECIFIED +}; + +/** + * Retrieve a list of all supported values for a given configuration type. + * + * @param avctx An optional context to use. Values such as + * `strict_std_compliance` may affect the result. If NULL, + * default values are used. + * @param codec The codec to query, or NULL to use avctx->codec. + * @param config The configuration to query. + * @param flags Currently unused; should be set to zero. + * @param out_configs On success, set to a list of configurations, terminated + * by a config-specific terminator, or NULL if all + * possible values are supported. + * @param out_num_configs On success, set to the number of elements in + *out_configs, excluding the terminator. Optional. + */ +int avcodec_get_supported_config(const AVCodecContext *avctx, + const AVCodec *codec, enum AVCodecConfig config, + unsigned flags, const void **out_configs, + int *out_num_configs); + + + +/** + * @defgroup lavc_parsing Frame parsing + * @{ + */ + +enum AVPictureStructure { + AV_PICTURE_STRUCTURE_UNKNOWN, ///< unknown + AV_PICTURE_STRUCTURE_TOP_FIELD, ///< coded as top field + AV_PICTURE_STRUCTURE_BOTTOM_FIELD, ///< coded as bottom field + AV_PICTURE_STRUCTURE_FRAME, ///< coded as frame +}; + +typedef struct AVCodecParserContext { + void *priv_data; + const struct AVCodecParser *parser; + int64_t frame_offset; /* offset of the current frame */ + int64_t cur_offset; /* current offset + (incremented by each av_parser_parse()) */ + int64_t next_frame_offset; /* offset of the next frame */ + /* video info */ + int pict_type; /* XXX: Put it back in AVCodecContext. */ + /** + * This field is used for proper frame duration computation in lavf. + * It signals, how much longer the frame duration of the current frame + * is compared to normal frame duration. + * + * frame_duration = (1 + repeat_pict) * time_base + * + * It is used by codecs like H.264 to display telecined material. + */ + int repeat_pict; /* XXX: Put it back in AVCodecContext. */ + int64_t pts; /* pts of the current frame */ + int64_t dts; /* dts of the current frame */ + + /* private data */ + int64_t last_pts; + int64_t last_dts; + int fetch_timestamp; + +#define AV_PARSER_PTS_NB 4 + int cur_frame_start_index; + int64_t cur_frame_offset[AV_PARSER_PTS_NB]; + int64_t cur_frame_pts[AV_PARSER_PTS_NB]; + int64_t cur_frame_dts[AV_PARSER_PTS_NB]; + + int flags; +#define PARSER_FLAG_COMPLETE_FRAMES 0x0001 +#define PARSER_FLAG_ONCE 0x0002 +/// Set if the parser has a valid file offset +#define PARSER_FLAG_FETCHED_OFFSET 0x0004 +#define PARSER_FLAG_USE_CODEC_TS 0x1000 + + int64_t offset; ///< byte offset from starting packet start + int64_t cur_frame_end[AV_PARSER_PTS_NB]; + + /** + * Set by parser to 1 for key frames and 0 for non-key frames. + * It is initialized to -1, so if the parser doesn't set this flag, + * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames + * will be used. + */ + int key_frame; + + // Timestamp generation support: + /** + * Synchronization point for start of timestamp generation. + * + * Set to >0 for sync point, 0 for no sync point and <0 for undefined + * (default). + * + * For example, this corresponds to presence of H.264 buffering period + * SEI message. + */ + int dts_sync_point; + + /** + * Offset of the current timestamp against last timestamp sync point in + * units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain a valid timestamp offset. + * + * Note that the timestamp of sync point has usually a nonzero + * dts_ref_dts_delta, which refers to the previous sync point. Offset of + * the next frame after timestamp sync point will be usually 1. + * + * For example, this corresponds to H.264 cpb_removal_delay. + */ + int dts_ref_dts_delta; + + /** + * Presentation delay of current frame in units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain valid non-negative timestamp delta (presentation time of a frame + * must not lie in the past). + * + * This delay represents the difference between decoding and presentation + * time of the frame. + * + * For example, this corresponds to H.264 dpb_output_delay. + */ + int pts_dts_delta; + + /** + * Position of the packet in file. + * + * Analogous to cur_frame_pts/dts + */ + int64_t cur_frame_pos[AV_PARSER_PTS_NB]; + + /** + * Byte position of currently parsed frame in stream. + */ + int64_t pos; + + /** + * Previous frame byte position. + */ + int64_t last_pos; + + /** + * Duration of the current frame. + * For audio, this is in units of 1 / AVCodecContext.sample_rate. + * For all other types, this is in units of AVCodecContext.time_base. + */ + int duration; + + enum AVFieldOrder field_order; + + /** + * Indicate whether a picture is coded as a frame, top field or bottom field. + * + * For example, H.264 field_pic_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_FRAME. An H.264 picture with field_pic_flag + * equal to 1 and bottom_field_flag equal to 0 corresponds to + * AV_PICTURE_STRUCTURE_TOP_FIELD. + */ + enum AVPictureStructure picture_structure; + + /** + * Picture number incremented in presentation or output order. + * This field may be reinitialized at the first picture of a new sequence. + * + * For example, this corresponds to H.264 PicOrderCnt. + */ + int output_picture_number; + + /** + * Dimensions of the decoded video intended for presentation. + */ + int width; + int height; + + /** + * Dimensions of the coded video. + */ + int coded_width; + int coded_height; + + /** + * The format of the coded data, corresponds to enum AVPixelFormat for video + * and for enum AVSampleFormat for audio. + * + * Note that a decoder can have considerable freedom in how exactly it + * decodes the data, so the format reported here might be different from the + * one returned by a decoder. + */ + int format; +} AVCodecParserContext; + +typedef struct AVCodecParser { + int codec_ids[7]; /* several codec IDs are permitted */ + int priv_data_size; + int (*parser_init)(AVCodecParserContext *s); + /* This callback never returns an error, a negative value means that + * the frame start was in a previous packet. */ + int (*parser_parse)(AVCodecParserContext *s, + AVCodecContext *avctx, + const uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size); + void (*parser_close)(AVCodecParserContext *s); + int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size); +} AVCodecParser; + +/** + * Iterate over all registered codec parsers. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec parser or NULL when the iteration is + * finished + */ +const AVCodecParser *av_parser_iterate(void **opaque); + +AVCodecParserContext *av_parser_init(int codec_id); + +/** + * Parse a packet. + * + * @param s parser context. + * @param avctx codec context. + * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. + * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. + * @param buf input buffer. + * @param buf_size buffer size in bytes without the padding. I.e. the full buffer + size is assumed to be buf_size + AV_INPUT_BUFFER_PADDING_SIZE. + To signal EOF, this should be 0 (so that the last frame + can be output). + * @param pts input presentation timestamp. + * @param dts input decoding timestamp. + * @param pos input byte position in stream. + * @return the number of bytes of the input bitstream used. + * + * Example: + * @code + * while(in_len){ + * len = av_parser_parse2(myparser, AVCodecContext, &data, &size, + * in_data, in_len, + * pts, dts, pos); + * in_data += len; + * in_len -= len; + * + * if(size) + * decode_frame(data, size); + * } + * @endcode + */ +int av_parser_parse2(AVCodecParserContext *s, + AVCodecContext *avctx, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, + int64_t pts, int64_t dts, + int64_t pos); + +void av_parser_close(AVCodecParserContext *s); + +/** + * @} + * @} + */ + +/** + * @addtogroup lavc_encoding + * @{ + */ + +int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, + const AVSubtitle *sub); + + +/** + * @} + */ + +/** + * @defgroup lavc_misc Utility functions + * @ingroup libavc + * + * Miscellaneous utility functions related to both encoding and decoding + * (or neither). + * @{ + */ + +/** + * @defgroup lavc_misc_pixfmt Pixel formats + * + * Functions for working with pixel formats. + * @{ + */ + +/** + * Return a value representing the fourCC code associated to the + * pixel format pix_fmt, or 0 if no associated fourCC code can be + * found. + */ +unsigned int avcodec_pix_fmt_to_codec_tag(enum AVPixelFormat pix_fmt); + +/** + * Find the best pixel format to convert to given a certain source pixel + * format. When converting from one pixel format to another, information loss + * may occur. For example, when converting from RGB24 to GRAY, the color + * information will be lost. Similarly, other losses occur when converting from + * some formats to other formats. avcodec_find_best_pix_fmt_of_2() searches which of + * the given pixel formats should be used to suffer the least amount of loss. + * The pixel formats from which it chooses one, are determined by the + * pix_fmt_list parameter. + * + * + * @param[in] pix_fmt_list AV_PIX_FMT_NONE terminated array of pixel formats to choose from + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur. + * @return The best pixel format to convert to or -1 if none was found. + */ +enum AVPixelFormat avcodec_find_best_pix_fmt_of_list(const enum AVPixelFormat *pix_fmt_list, + enum AVPixelFormat src_pix_fmt, + int has_alpha, int *loss_ptr); + +enum AVPixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum AVPixelFormat * fmt); + +/** + * @} + */ + +void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); + +int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size); +int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count); +//FIXME func typedef + +/** + * Fill AVFrame audio data and linesize pointers. + * + * The buffer buf must be a preallocated buffer with a size big enough + * to contain the specified samples amount. The filled AVFrame data + * pointers will point to this buffer. + * + * AVFrame extended_data channel pointers are allocated if necessary for + * planar audio. + * + * @param frame the AVFrame + * frame->nb_samples must be set prior to calling the + * function. This function fills in frame->data, + * frame->extended_data, frame->linesize[0]. + * @param nb_channels channel count + * @param sample_fmt sample format + * @param buf buffer to use for frame data + * @param buf_size size of buffer + * @param align plane size sample alignment (0 = default) + * @return >=0 on success, negative error code on failure + * @todo return the size in bytes required to store the samples in + * case of success, at the next libavutil bump + */ +int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, + enum AVSampleFormat sample_fmt, const uint8_t *buf, + int buf_size, int align); + +/** + * Reset the internal codec state / flush internal buffers. Should be called + * e.g. when seeking or when switching to a different stream. + * + * @note for decoders, this function just releases any references the decoder + * might keep internally, but the caller's references remain valid. + * + * @note for encoders, this function will only do something if the encoder + * declares support for AV_CODEC_CAP_ENCODER_FLUSH. When called, the encoder + * will drain any remaining packets, and can then be re-used for a different + * stream (as opposed to sending a null frame which will leave the encoder + * in a permanent EOF state after draining). This can be desirable if the + * cost of tearing down and replacing the encoder instance is high. + */ +void avcodec_flush_buffers(AVCodecContext *avctx); + +/** + * Return audio frame duration. + * + * @param avctx codec context + * @param frame_bytes size of the frame, or 0 if unknown + * @return frame duration, in samples, if known. 0 if not able to + * determine. + */ +int av_get_audio_frame_duration(AVCodecContext *avctx, int frame_bytes); + +/* memory */ + +/** + * Same behaviour av_fast_malloc but the buffer has additional + * AV_INPUT_BUFFER_PADDING_SIZE at the end which will always be 0. + * + * In addition the whole buffer will initially and after resizes + * be 0-initialized so that no uninitialized data will ever appear. + */ +void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Same behaviour av_fast_padded_malloc except that buffer will always + * be 0-initialized after call. + */ +void av_fast_padded_mallocz(void *ptr, unsigned int *size, size_t min_size); + +/** + * @return a positive value if s is open (i.e. avcodec_open2() was called on it + * with no corresponding avcodec_close()), 0 otherwise. + */ +int avcodec_is_open(AVCodecContext *s); + +/** + * @} + */ + +#endif /* AVCODEC_AVCODEC_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/avdct.h b/deps/ffmpeg/macos/include/libavcodec/avdct.h new file mode 100644 index 0000000..6411fab --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/avdct.h @@ -0,0 +1,88 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVDCT_H +#define AVCODEC_AVDCT_H + +#include "libavutil/opt.h" + +/** + * AVDCT context. + * @note function pointers can be NULL if the specific features have been + * disabled at build time. + */ +typedef struct AVDCT { + const AVClass *av_class; + + void (*idct)(int16_t *block /* align 16 */); + + /** + * IDCT input permutation. + * Several optimized IDCTs need a permutated input (relative to the + * normal order of the reference IDCT). + * This permutation must be performed before the idct_put/add. + * Note, normally this can be merged with the zigzag/alternate scan
+ * An example to avoid confusion: + * - (->decode coeffs -> zigzag reorder -> dequant -> reference IDCT -> ...) + * - (x -> reference DCT -> reference IDCT -> x) + * - (x -> reference DCT -> simple_mmx_perm = idct_permutation + * -> simple_idct_mmx -> x) + * - (-> decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant + * -> simple_idct_mmx -> ...) + */ + uint8_t idct_permutation[64]; + + void (*fdct)(int16_t *block /* align 16 */); + + + /** + * DCT algorithm. + * must use AVOptions to set this field. + */ + int dct_algo; + + /** + * IDCT algorithm. + * must use AVOptions to set this field. + */ + int idct_algo; + + void (*get_pixels)(int16_t *block /* align 16 */, + const uint8_t *pixels /* align 8 */, + ptrdiff_t line_size); + + int bits_per_sample; + + void (*get_pixels_unaligned)(int16_t *block /* align 16 */, + const uint8_t *pixels, + ptrdiff_t line_size); +} AVDCT; + +/** + * Allocates a AVDCT context. + * This needs to be initialized with avcodec_dct_init() after optionally + * configuring it with AVOptions. + * + * To free it use av_free() + */ +AVDCT *avcodec_dct_alloc(void); +int avcodec_dct_init(AVDCT *); + +const AVClass *avcodec_dct_get_class(void); + +#endif /* AVCODEC_AVDCT_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/avfft.h b/deps/ffmpeg/macos/include/libavcodec/avfft.h new file mode 100644 index 0000000..e3a0da1 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/avfft.h @@ -0,0 +1,149 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVFFT_H +#define AVCODEC_AVFFT_H + +#include "libavutil/attributes.h" +#include "version_major.h" +#if FF_API_AVFFT + +/** + * @file + * @ingroup lavc_fft + * FFT functions + */ + +/** + * @defgroup lavc_fft FFT functions + * @ingroup lavc_misc + * + * @{ + */ + +typedef float FFTSample; + +typedef struct FFTComplex { + FFTSample re, im; +} FFTComplex; + +typedef struct FFTContext FFTContext; + +/** + * Set up a complex FFT. + * @param nbits log2 of the length of the input array + * @param inverse if 0 perform the forward transform, if 1 perform the inverse + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_FFT + */ +attribute_deprecated +FFTContext *av_fft_init(int nbits, int inverse); + +/** + * Do the permutation needed BEFORE calling ff_fft_calc(). + * @deprecated without replacement + */ +attribute_deprecated +void av_fft_permute(FFTContext *s, FFTComplex *z); + +/** + * Do a complex FFT with the parameters defined in av_fft_init(). The + * input data must be permuted before. No 1.0/sqrt(n) normalization is done. + * @deprecated use the av_tx_fn value returned by av_tx_init, which also does permutation + */ +attribute_deprecated +void av_fft_calc(FFTContext *s, FFTComplex *z); + +attribute_deprecated +void av_fft_end(FFTContext *s); + +/** + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_MDCT, + * with a flag of AV_TX_FULL_IMDCT for a replacement to av_imdct_calc. + */ +attribute_deprecated +FFTContext *av_mdct_init(int nbits, int inverse, double scale); +attribute_deprecated +void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +attribute_deprecated +void av_mdct_end(FFTContext *s); + +/* Real Discrete Fourier Transform */ + +enum RDFTransformType { + DFT_R2C, + IDFT_C2R, + IDFT_R2C, + DFT_C2R, +}; + +typedef struct RDFTContext RDFTContext; + +/** + * Set up a real FFT. + * @param nbits log2 of the length of the input array + * @param trans the type of transform + * + * @deprecated use av_tx_init from libavutil/tx.h with a type of AV_TX_FLOAT_RDFT + */ +attribute_deprecated +RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); +attribute_deprecated +void av_rdft_calc(RDFTContext *s, FFTSample *data); +attribute_deprecated +void av_rdft_end(RDFTContext *s); + +/* Discrete Cosine Transform */ + +typedef struct DCTContext DCTContext; + +enum DCTTransformType { + DCT_II = 0, + DCT_III, + DCT_I, + DST_I, +}; + +/** + * Set up DCT. + * + * @param nbits size of the input array: + * (1 << nbits) for DCT-II, DCT-III and DST-I + * (1 << nbits) + 1 for DCT-I + * @param type the type of transform + * + * @note the first element of the input of DST-I is ignored + * + * @deprecated use av_tx_init from libavutil/tx.h with an appropriate type of AV_TX_FLOAT_DCT + */ +attribute_deprecated +DCTContext *av_dct_init(int nbits, enum DCTTransformType type); +attribute_deprecated +void av_dct_calc(DCTContext *s, FFTSample *data); +attribute_deprecated +void av_dct_end (DCTContext *s); + +/** + * @} + */ + +#endif /* FF_API_AVFFT */ +#endif /* AVCODEC_AVFFT_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/bsf.h b/deps/ffmpeg/macos/include/libavcodec/bsf.h new file mode 100644 index 0000000..a09c69f --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/bsf.h @@ -0,0 +1,332 @@ +/* + * Bitstream filters public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_BSF_H +#define AVCODEC_BSF_H + +#include "libavutil/dict.h" +#include "libavutil/log.h" +#include "libavutil/rational.h" + +#include "codec_id.h" +#include "codec_par.h" +#include "packet.h" + +/** + * @defgroup lavc_bsf Bitstream filters + * @ingroup libavc + * + * Bitstream filters transform encoded media data without decoding it. This + * allows e.g. manipulating various header values. Bitstream filters operate on + * @ref AVPacket "AVPackets". + * + * The bitstream filtering API is centered around two structures: + * AVBitStreamFilter and AVBSFContext. The former represents a bitstream filter + * in abstract, the latter a specific filtering process. Obtain an + * AVBitStreamFilter using av_bsf_get_by_name() or av_bsf_iterate(), then pass + * it to av_bsf_alloc() to create an AVBSFContext. Fill in the user-settable + * AVBSFContext fields, as described in its documentation, then call + * av_bsf_init() to prepare the filter context for use. + * + * Submit packets for filtering using av_bsf_send_packet(), obtain filtered + * results with av_bsf_receive_packet(). When no more input packets will be + * sent, submit a NULL AVPacket to signal the end of the stream to the filter. + * av_bsf_receive_packet() will then return trailing packets, if any are + * produced by the filter. + * + * Finally, free the filter context with av_bsf_free(). + * @{ + */ + +/** + * The bitstream filter state. + * + * This struct must be allocated with av_bsf_alloc() and freed with + * av_bsf_free(). + * + * The fields in the struct will only be changed (by the caller or by the + * filter) as described in their documentation, and are to be considered + * immutable otherwise. + */ +typedef struct AVBSFContext { + /** + * A class for logging and AVOptions + */ + const AVClass *av_class; + + /** + * The bitstream filter this context is an instance of. + */ + const struct AVBitStreamFilter *filter; + + /** + * Opaque filter-specific private data. If filter->priv_class is non-NULL, + * this is an AVOptions-enabled struct. + */ + void *priv_data; + + /** + * Parameters of the input stream. This field is allocated in + * av_bsf_alloc(), it needs to be filled by the caller before + * av_bsf_init(). + */ + AVCodecParameters *par_in; + + /** + * Parameters of the output stream. This field is allocated in + * av_bsf_alloc(), it is set by the filter in av_bsf_init(). + */ + AVCodecParameters *par_out; + + /** + * The timebase used for the timestamps of the input packets. Set by the + * caller before av_bsf_init(). + */ + AVRational time_base_in; + + /** + * The timebase used for the timestamps of the output packets. Set by the + * filter in av_bsf_init(). + */ + AVRational time_base_out; +} AVBSFContext; + +typedef struct AVBitStreamFilter { + const char *name; + + /** + * A list of codec ids supported by the filter, terminated by + * AV_CODEC_ID_NONE. + * May be NULL, in that case the bitstream filter works with any codec id. + */ + const enum AVCodecID *codec_ids; + + /** + * A class for the private data, used to declare bitstream filter private + * AVOptions. This field is NULL for bitstream filters that do not declare + * any options. + * + * If this field is non-NULL, the first member of the filter private data + * must be a pointer to AVClass, which will be set by libavcodec generic + * code to this class. + */ + const AVClass *priv_class; +} AVBitStreamFilter; + +/** + * @return a bitstream filter with the specified name or NULL if no such + * bitstream filter exists. + */ +const AVBitStreamFilter *av_bsf_get_by_name(const char *name); + +/** + * Iterate over all registered bitstream filters. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered bitstream filter or NULL when the iteration is + * finished + */ +const AVBitStreamFilter *av_bsf_iterate(void **opaque); + +/** + * Allocate a context for a given bitstream filter. The caller must fill in the + * context parameters as described in the documentation and then call + * av_bsf_init() before sending any data to the filter. + * + * @param filter the filter for which to allocate an instance. + * @param[out] ctx a pointer into which the pointer to the newly-allocated context + * will be written. It must be freed with av_bsf_free() after the + * filtering is done. + * + * @return 0 on success, a negative AVERROR code on failure + */ +int av_bsf_alloc(const AVBitStreamFilter *filter, AVBSFContext **ctx); + +/** + * Prepare the filter for use, after all the parameters and options have been + * set. + * + * @param ctx a AVBSFContext previously allocated with av_bsf_alloc() + */ +int av_bsf_init(AVBSFContext *ctx); + +/** + * Submit a packet for filtering. + * + * After sending each packet, the filter must be completely drained by calling + * av_bsf_receive_packet() repeatedly until it returns AVERROR(EAGAIN) or + * AVERROR_EOF. + * + * @param ctx an initialized AVBSFContext + * @param pkt the packet to filter. The bitstream filter will take ownership of + * the packet and reset the contents of pkt. pkt is not touched if an error occurs. + * If pkt is empty (i.e. NULL, or pkt->data is NULL and pkt->side_data_elems zero), + * it signals the end of the stream (i.e. no more non-empty packets will be sent; + * sending more empty packets does nothing) and will cause the filter to output + * any packets it may have buffered internally. + * + * @return + * - 0 on success. + * - AVERROR(EAGAIN) if packets need to be retrieved from the filter (using + * av_bsf_receive_packet()) before new input can be consumed. + * - Another negative AVERROR value if an error occurs. + */ +int av_bsf_send_packet(AVBSFContext *ctx, AVPacket *pkt); + +/** + * Retrieve a filtered packet. + * + * @param ctx an initialized AVBSFContext + * @param[out] pkt this struct will be filled with the contents of the filtered + * packet. It is owned by the caller and must be freed using + * av_packet_unref() when it is no longer needed. + * This parameter should be "clean" (i.e. freshly allocated + * with av_packet_alloc() or unreffed with av_packet_unref()) + * when this function is called. If this function returns + * successfully, the contents of pkt will be completely + * overwritten by the returned data. On failure, pkt is not + * touched. + * + * @return + * - 0 on success. + * - AVERROR(EAGAIN) if more packets need to be sent to the filter (using + * av_bsf_send_packet()) to get more output. + * - AVERROR_EOF if there will be no further output from the filter. + * - Another negative AVERROR value if an error occurs. + * + * @note one input packet may result in several output packets, so after sending + * a packet with av_bsf_send_packet(), this function needs to be called + * repeatedly until it stops returning 0. It is also possible for a filter to + * output fewer packets than were sent to it, so this function may return + * AVERROR(EAGAIN) immediately after a successful av_bsf_send_packet() call. + */ +int av_bsf_receive_packet(AVBSFContext *ctx, AVPacket *pkt); + +/** + * Reset the internal bitstream filter state. Should be called e.g. when seeking. + */ +void av_bsf_flush(AVBSFContext *ctx); + +/** + * Free a bitstream filter context and everything associated with it; write NULL + * into the supplied pointer. + */ +void av_bsf_free(AVBSFContext **ctx); + +/** + * Get the AVClass for AVBSFContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_bsf_get_class(void); + +/** + * Structure for chain/list of bitstream filters. + * Empty list can be allocated by av_bsf_list_alloc(). + */ +typedef struct AVBSFList AVBSFList; + +/** + * Allocate empty list of bitstream filters. + * The list must be later freed by av_bsf_list_free() + * or finalized by av_bsf_list_finalize(). + * + * @return Pointer to @ref AVBSFList on success, NULL in case of failure + */ +AVBSFList *av_bsf_list_alloc(void); + +/** + * Free list of bitstream filters. + * + * @param lst Pointer to pointer returned by av_bsf_list_alloc() + */ +void av_bsf_list_free(AVBSFList **lst); + +/** + * Append bitstream filter to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf Filter context to be appended + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append(AVBSFList *lst, AVBSFContext *bsf); + +/** + * Construct new bitstream filter context given it's name and options + * and append it to the list of bitstream filters. + * + * @param lst List to append to + * @param bsf_name Name of the bitstream filter + * @param options Options for the bitstream filter, can be set to NULL + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_append2(AVBSFList *lst, const char * bsf_name, AVDictionary **options); +/** + * Finalize list of bitstream filters. + * + * This function will transform @ref AVBSFList to single @ref AVBSFContext, + * so the whole chain of bitstream filters can be treated as single filter + * freshly allocated by av_bsf_alloc(). + * If the call is successful, @ref AVBSFList structure is freed and lst + * will be set to NULL. In case of failure, caller is responsible for + * freeing the structure by av_bsf_list_free() + * + * @param lst Filter list structure to be transformed + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_finalize(AVBSFList **lst, AVBSFContext **bsf); + +/** + * Parse string describing list of bitstream filters and create single + * @ref AVBSFContext describing the whole chain of bitstream filters. + * Resulting @ref AVBSFContext can be treated as any other @ref AVBSFContext freshly + * allocated by av_bsf_alloc(). + * + * @param str String describing chain of bitstream filters in format + * `bsf1[=opt1=val1:opt2=val2][,bsf2]` + * @param[out] bsf Pointer to be set to newly created @ref AVBSFContext structure + * representing the chain of bitstream filters + * + * @return >=0 on success, negative AVERROR in case of failure + */ +int av_bsf_list_parse_str(const char *str, AVBSFContext **bsf); + +/** + * Get null/pass-through bitstream filter. + * + * @param[out] bsf Pointer to be set to new instance of pass-through bitstream filter + * + * @return + */ +int av_bsf_get_null_filter(AVBSFContext **bsf); + +/** + * @} + */ + +#endif // AVCODEC_BSF_H diff --git a/deps/ffmpeg/macos/include/libavcodec/codec.h b/deps/ffmpeg/macos/include/libavcodec/codec.h new file mode 100644 index 0000000..f7541ff --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/codec.h @@ -0,0 +1,382 @@ +/* + * AVCodec public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_H +#define AVCODEC_CODEC_H + +#include + +#include "libavutil/avutil.h" +#include "libavutil/hwcontext.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" +#include "libavutil/samplefmt.h" + +#include "libavcodec/codec_id.h" +#include "libavcodec/version_major.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * Decoder can use draw_horiz_band callback. + */ +#define AV_CODEC_CAP_DRAW_HORIZ_BAND (1 << 0) +/** + * Codec uses get_buffer() or get_encode_buffer() for allocating buffers and + * supports custom allocators. + * If not set, it might not use get_buffer() or get_encode_buffer() at all, or + * use operations that assume the buffer was allocated by + * avcodec_default_get_buffer2 or avcodec_default_get_encode_buffer. + */ +#define AV_CODEC_CAP_DR1 (1 << 1) +/** + * Encoder or decoder requires flushing with NULL input at the end in order to + * give the complete and correct output. + * + * NOTE: If this flag is not set, the codec is guaranteed to never be fed with + * with NULL data. The user can still send NULL data to the public encode + * or decode function, but libavcodec will not pass it along to the codec + * unless this flag is set. + * + * Decoders: + * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to get the delayed data until the decoder no longer + * returns frames. + * + * Encoders: + * The encoder needs to be fed with NULL data at the end of encoding until the + * encoder no longer returns data. + * + * NOTE: For encoders implementing the AVCodec.encode2() function, setting this + * flag also means that the encoder must set the pts and duration for + * each output packet. If this flag is not set, the pts and duration will + * be determined by libavcodec from the input frame. + */ +#define AV_CODEC_CAP_DELAY (1 << 5) +/** + * Codec can be fed a final frame with a smaller size. + * This can be used to prevent truncation of the last audio samples. + */ +#define AV_CODEC_CAP_SMALL_LAST_FRAME (1 << 6) + +#if FF_API_SUBFRAMES +/** + * Codec can output multiple frames per AVPacket + * Normally demuxers return one frame at a time, demuxers which do not do + * are connected to a parser to split what they return into proper frames. + * This flag is reserved to the very rare category of codecs which have a + * bitstream that cannot be split into frames without timeconsuming + * operations like full decoding. Demuxers carrying such bitstreams thus + * may return multiple frames in a packet. This has many disadvantages like + * prohibiting stream copy in many cases thus it should only be considered + * as a last resort. + */ +#define AV_CODEC_CAP_SUBFRAMES (1 << 8) +#endif + +/** + * Codec is experimental and is thus avoided in favor of non experimental + * encoders + */ +#define AV_CODEC_CAP_EXPERIMENTAL (1 << 9) +/** + * Codec should fill in channel configuration and samplerate instead of container + */ +#define AV_CODEC_CAP_CHANNEL_CONF (1 << 10) +/** + * Codec supports frame-level multithreading. + */ +#define AV_CODEC_CAP_FRAME_THREADS (1 << 12) +/** + * Codec supports slice-based (or partition-based) multithreading. + */ +#define AV_CODEC_CAP_SLICE_THREADS (1 << 13) +/** + * Codec supports changed parameters at any point. + */ +#define AV_CODEC_CAP_PARAM_CHANGE (1 << 14) +/** + * Codec supports multithreading through a method other than slice- or + * frame-level multithreading. Typically this marks wrappers around + * multithreading-capable external libraries. + */ +#define AV_CODEC_CAP_OTHER_THREADS (1 << 15) +/** + * Audio encoder supports receiving a different number of samples in each call. + */ +#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE (1 << 16) +/** + * Decoder is not a preferred choice for probing. + * This indicates that the decoder is not a good choice for probing. + * It could for example be an expensive to spin up hardware decoder, + * or it could simply not provide a lot of useful information about + * the stream. + * A decoder marked with this flag should only be used as last resort + * choice for probing. + */ +#define AV_CODEC_CAP_AVOID_PROBING (1 << 17) + +/** + * Codec is backed by a hardware implementation. Typically used to + * identify a non-hwaccel hardware decoder. For information about hwaccels, use + * avcodec_get_hw_config() instead. + */ +#define AV_CODEC_CAP_HARDWARE (1 << 18) + +/** + * Codec is potentially backed by a hardware implementation, but not + * necessarily. This is used instead of AV_CODEC_CAP_HARDWARE, if the + * implementation provides some sort of internal fallback. + */ +#define AV_CODEC_CAP_HYBRID (1 << 19) + +/** + * This encoder can reorder user opaque values from input AVFrames and return + * them with corresponding output packets. + * @see AV_CODEC_FLAG_COPY_OPAQUE + */ +#define AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE (1 << 20) + +/** + * This encoder can be flushed using avcodec_flush_buffers(). If this flag is + * not set, the encoder must be closed and reopened to ensure that no frames + * remain pending. + */ +#define AV_CODEC_CAP_ENCODER_FLUSH (1 << 21) + +/** + * The encoder is able to output reconstructed frame data, i.e. raw frames that + * would be produced by decoding the encoded bitstream. + * + * Reconstructed frame output is enabled by the AV_CODEC_FLAG_RECON_FRAME flag. + */ +#define AV_CODEC_CAP_ENCODER_RECON_FRAME (1 << 22) + +/** + * AVProfile. + */ +typedef struct AVProfile { + int profile; + const char *name; ///< short name for the profile +} AVProfile; + +/** + * AVCodec. + */ +typedef struct AVCodec { + /** + * Name of the codec implementation. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + * This is the primary way to find a codec from the user perspective. + */ + const char *name; + /** + * Descriptive name for the codec, meant to be more human readable than name. + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *long_name; + enum AVMediaType type; + enum AVCodecID id; + /** + * Codec capabilities. + * see AV_CODEC_CAP_* + */ + int capabilities; + uint8_t max_lowres; ///< maximum value for lowres supported by the decoder + + /** + * Deprecated codec capabilities. + */ + attribute_deprecated + const AVRational *supported_framerates; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const enum AVPixelFormat *pix_fmts; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const int *supported_samplerates; ///< @deprecated use avcodec_get_supported_config() + attribute_deprecated + const enum AVSampleFormat *sample_fmts; ///< @deprecated use avcodec_get_supported_config() + + const AVClass *priv_class; ///< AVClass for the private context + const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {AV_PROFILE_UNKNOWN} + + /** + * Group name of the codec implementation. + * This is a short symbolic name of the wrapper backing this codec. A + * wrapper uses some kind of external implementation for the codec, such + * as an external library, or a codec implementation provided by the OS or + * the hardware. + * If this field is NULL, this is a builtin, libavcodec native codec. + * If non-NULL, this will be the suffix in AVCodec.name in most cases + * (usually AVCodec.name will be of the form "_"). + */ + const char *wrapper_name; + + /** + * Array of supported channel layouts, terminated with a zeroed layout. + * @deprecated use avcodec_get_supported_config() + */ + attribute_deprecated + const AVChannelLayout *ch_layouts; +} AVCodec; + +/** + * Iterate over all registered codecs. + * + * @param opaque a pointer where libavcodec will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered codec or NULL when the iteration is + * finished + */ +const AVCodec *av_codec_iterate(void **opaque); + +/** + * Find a registered decoder with a matching codec ID. + * + * @param id AVCodecID of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_decoder(enum AVCodecID id); + +/** + * Find a registered decoder with the specified name. + * + * @param name name of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_decoder_by_name(const char *name); + +/** + * Find a registered encoder with a matching codec ID. + * + * @param id AVCodecID of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_encoder(enum AVCodecID id); + +/** + * Find a registered encoder with the specified name. + * + * @param name name of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +const AVCodec *avcodec_find_encoder_by_name(const char *name); +/** + * @return a non-zero number if codec is an encoder, zero otherwise + */ +int av_codec_is_encoder(const AVCodec *codec); + +/** + * @return a non-zero number if codec is a decoder, zero otherwise + */ +int av_codec_is_decoder(const AVCodec *codec); + +/** + * Return a name for the specified profile, if available. + * + * @param codec the codec that is searched for the given profile + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + */ +const char *av_get_profile_name(const AVCodec *codec, int profile); + +enum { + /** + * The codec supports this format via the hw_device_ctx interface. + * + * When selecting this format, AVCodecContext.hw_device_ctx should + * have been set to a device of the specified type before calling + * avcodec_open2(). + */ + AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01, + /** + * The codec supports this format via the hw_frames_ctx interface. + * + * When selecting this format for a decoder, + * AVCodecContext.hw_frames_ctx should be set to a suitable frames + * context inside the get_format() callback. The frames context + * must have been created on a device of the specified type. + * + * When selecting this format for an encoder, + * AVCodecContext.hw_frames_ctx should be set to the context which + * will be used for the input frames before calling avcodec_open2(). + */ + AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02, + /** + * The codec supports this format by some internal method. + * + * This format can be selected without any additional configuration - + * no device or frames context is required. + */ + AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04, + /** + * The codec supports this format by some ad-hoc method. + * + * Additional settings and/or function calls are required. See the + * codec-specific documentation for details. (Methods requiring + * this sort of configuration are deprecated and others should be + * used in preference.) + */ + AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08, +}; + +typedef struct AVCodecHWConfig { + /** + * For decoders, a hardware pixel format which that decoder may be + * able to decode to if suitable hardware is available. + * + * For encoders, a pixel format which the encoder may be able to + * accept. If set to AV_PIX_FMT_NONE, this applies to all pixel + * formats supported by the codec. + */ + enum AVPixelFormat pix_fmt; + /** + * Bit set of AV_CODEC_HW_CONFIG_METHOD_* flags, describing the possible + * setup methods which can be used with this configuration. + */ + int methods; + /** + * The device type associated with the configuration. + * + * Must be set for AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX and + * AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX, otherwise unused. + */ + enum AVHWDeviceType device_type; +} AVCodecHWConfig; + +/** + * Retrieve supported hardware configurations for a codec. + * + * Values of index from zero to some maximum return the indexed configuration + * descriptor; all other values return NULL. If the codec does not support + * any hardware configurations then it will always return NULL. + */ +const AVCodecHWConfig *avcodec_get_hw_config(const AVCodec *codec, int index); + +/** + * @} + */ + +#endif /* AVCODEC_CODEC_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/codec_desc.h b/deps/ffmpeg/macos/include/libavcodec/codec_desc.h new file mode 100644 index 0000000..96afd20 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/codec_desc.h @@ -0,0 +1,134 @@ +/* + * Codec descriptors public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_DESC_H +#define AVCODEC_CODEC_DESC_H + +#include "libavutil/avutil.h" + +#include "codec_id.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * This struct describes the properties of a single codec described by an + * AVCodecID. + * @see avcodec_descriptor_get() + */ +typedef struct AVCodecDescriptor { + enum AVCodecID id; + enum AVMediaType type; + /** + * Name of the codec described by this descriptor. It is non-empty and + * unique for each codec descriptor. It should contain alphanumeric + * characters and '_' only. + */ + const char *name; + /** + * A more descriptive name for this codec. May be NULL. + */ + const char *long_name; + /** + * Codec properties, a combination of AV_CODEC_PROP_* flags. + */ + int props; + /** + * MIME type(s) associated with the codec. + * May be NULL; if not, a NULL-terminated array of MIME types. + * The first item is always non-NULL and is the preferred MIME type. + */ + const char *const *mime_types; + /** + * If non-NULL, an array of profiles recognized for this codec. + * Terminated with AV_PROFILE_UNKNOWN. + */ + const struct AVProfile *profiles; +} AVCodecDescriptor; + +/** + * Codec uses only intra compression. + * Video and audio codecs only. + */ +#define AV_CODEC_PROP_INTRA_ONLY (1 << 0) +/** + * Codec supports lossy compression. Audio and video codecs only. + * @note a codec may support both lossy and lossless + * compression modes + */ +#define AV_CODEC_PROP_LOSSY (1 << 1) +/** + * Codec supports lossless compression. Audio and video codecs only. + */ +#define AV_CODEC_PROP_LOSSLESS (1 << 2) +/** + * Codec supports frame reordering. That is, the coded order (the order in which + * the encoded packets are output by the encoders / stored / input to the + * decoders) may be different from the presentation order of the corresponding + * frames. + * + * For codecs that do not have this property set, PTS and DTS should always be + * equal. + */ +#define AV_CODEC_PROP_REORDER (1 << 3) + +/** + * Video codec supports separate coding of fields in interlaced frames. + */ +#define AV_CODEC_PROP_FIELDS (1 << 4) + +/** + * Subtitle codec is bitmap based + * Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field. + */ +#define AV_CODEC_PROP_BITMAP_SUB (1 << 16) +/** + * Subtitle codec is text based. + * Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field. + */ +#define AV_CODEC_PROP_TEXT_SUB (1 << 17) + +/** + * @return descriptor for given codec ID or NULL if no descriptor exists. + */ +const AVCodecDescriptor *avcodec_descriptor_get(enum AVCodecID id); + +/** + * Iterate over all codec descriptors known to libavcodec. + * + * @param prev previous descriptor. NULL to get the first descriptor. + * + * @return next descriptor or NULL after the last descriptor + */ +const AVCodecDescriptor *avcodec_descriptor_next(const AVCodecDescriptor *prev); + +/** + * @return codec descriptor with the given name or NULL if no such descriptor + * exists. + */ +const AVCodecDescriptor *avcodec_descriptor_get_by_name(const char *name); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_DESC_H diff --git a/deps/ffmpeg/macos/include/libavcodec/codec_id.h b/deps/ffmpeg/macos/include/libavcodec/codec_id.h new file mode 100644 index 0000000..0a8d3be --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/codec_id.h @@ -0,0 +1,669 @@ +/* + * Codec IDs + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_ID_H +#define AVCODEC_CODEC_ID_H + +#include "libavutil/avutil.h" +#include "libavutil/samplefmt.h" + +#include "version_major.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * Identify the syntax and semantics of the bitstream. + * The principle is roughly: + * Two decoders with the same ID can decode the same streams. + * Two encoders with the same ID can encode compatible streams. + * There may be slight deviations from the principle due to implementation + * details. + * + * If you add a codec ID to this list, add it so that + * 1. no value of an existing codec ID changes (that would break ABI), + * 2. it is as close as possible to similar codecs + * + * After adding new codec IDs, do not forget to add an entry to the codec + * descriptor list and bump libavcodec minor version. + */ +enum AVCodecID { + AV_CODEC_ID_NONE, + + /* video codecs */ + AV_CODEC_ID_MPEG1VIDEO, + AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding + AV_CODEC_ID_H261, + AV_CODEC_ID_H263, + AV_CODEC_ID_RV10, + AV_CODEC_ID_RV20, + AV_CODEC_ID_MJPEG, + AV_CODEC_ID_MJPEGB, + AV_CODEC_ID_LJPEG, + AV_CODEC_ID_SP5X, + AV_CODEC_ID_JPEGLS, + AV_CODEC_ID_MPEG4, + AV_CODEC_ID_RAWVIDEO, + AV_CODEC_ID_MSMPEG4V1, + AV_CODEC_ID_MSMPEG4V2, + AV_CODEC_ID_MSMPEG4V3, + AV_CODEC_ID_WMV1, + AV_CODEC_ID_WMV2, + AV_CODEC_ID_H263P, + AV_CODEC_ID_H263I, + AV_CODEC_ID_FLV1, + AV_CODEC_ID_SVQ1, + AV_CODEC_ID_SVQ3, + AV_CODEC_ID_DVVIDEO, + AV_CODEC_ID_HUFFYUV, + AV_CODEC_ID_CYUV, + AV_CODEC_ID_H264, + AV_CODEC_ID_INDEO3, + AV_CODEC_ID_VP3, + AV_CODEC_ID_THEORA, + AV_CODEC_ID_ASV1, + AV_CODEC_ID_ASV2, + AV_CODEC_ID_FFV1, + AV_CODEC_ID_4XM, + AV_CODEC_ID_VCR1, + AV_CODEC_ID_CLJR, + AV_CODEC_ID_MDEC, + AV_CODEC_ID_ROQ, + AV_CODEC_ID_INTERPLAY_VIDEO, + AV_CODEC_ID_XAN_WC3, + AV_CODEC_ID_XAN_WC4, + AV_CODEC_ID_RPZA, + AV_CODEC_ID_CINEPAK, + AV_CODEC_ID_WS_VQA, + AV_CODEC_ID_MSRLE, + AV_CODEC_ID_MSVIDEO1, + AV_CODEC_ID_IDCIN, + AV_CODEC_ID_8BPS, + AV_CODEC_ID_SMC, + AV_CODEC_ID_FLIC, + AV_CODEC_ID_TRUEMOTION1, + AV_CODEC_ID_VMDVIDEO, + AV_CODEC_ID_MSZH, + AV_CODEC_ID_ZLIB, + AV_CODEC_ID_QTRLE, + AV_CODEC_ID_TSCC, + AV_CODEC_ID_ULTI, + AV_CODEC_ID_QDRAW, + AV_CODEC_ID_VIXL, + AV_CODEC_ID_QPEG, + AV_CODEC_ID_PNG, + AV_CODEC_ID_PPM, + AV_CODEC_ID_PBM, + AV_CODEC_ID_PGM, + AV_CODEC_ID_PGMYUV, + AV_CODEC_ID_PAM, + AV_CODEC_ID_FFVHUFF, + AV_CODEC_ID_RV30, + AV_CODEC_ID_RV40, + AV_CODEC_ID_VC1, + AV_CODEC_ID_WMV3, + AV_CODEC_ID_LOCO, + AV_CODEC_ID_WNV1, + AV_CODEC_ID_AASC, + AV_CODEC_ID_INDEO2, + AV_CODEC_ID_FRAPS, + AV_CODEC_ID_TRUEMOTION2, + AV_CODEC_ID_BMP, + AV_CODEC_ID_CSCD, + AV_CODEC_ID_MMVIDEO, + AV_CODEC_ID_ZMBV, + AV_CODEC_ID_AVS, + AV_CODEC_ID_SMACKVIDEO, + AV_CODEC_ID_NUV, + AV_CODEC_ID_KMVC, + AV_CODEC_ID_FLASHSV, + AV_CODEC_ID_CAVS, + AV_CODEC_ID_JPEG2000, + AV_CODEC_ID_VMNC, + AV_CODEC_ID_VP5, + AV_CODEC_ID_VP6, + AV_CODEC_ID_VP6F, + AV_CODEC_ID_TARGA, + AV_CODEC_ID_DSICINVIDEO, + AV_CODEC_ID_TIERTEXSEQVIDEO, + AV_CODEC_ID_TIFF, + AV_CODEC_ID_GIF, + AV_CODEC_ID_DXA, + AV_CODEC_ID_DNXHD, + AV_CODEC_ID_THP, + AV_CODEC_ID_SGI, + AV_CODEC_ID_C93, + AV_CODEC_ID_BETHSOFTVID, + AV_CODEC_ID_PTX, + AV_CODEC_ID_TXD, + AV_CODEC_ID_VP6A, + AV_CODEC_ID_AMV, + AV_CODEC_ID_VB, + AV_CODEC_ID_PCX, + AV_CODEC_ID_SUNRAST, + AV_CODEC_ID_INDEO4, + AV_CODEC_ID_INDEO5, + AV_CODEC_ID_MIMIC, + AV_CODEC_ID_RL2, + AV_CODEC_ID_ESCAPE124, + AV_CODEC_ID_DIRAC, + AV_CODEC_ID_BFI, + AV_CODEC_ID_CMV, + AV_CODEC_ID_MOTIONPIXELS, + AV_CODEC_ID_TGV, + AV_CODEC_ID_TGQ, + AV_CODEC_ID_TQI, + AV_CODEC_ID_AURA, + AV_CODEC_ID_AURA2, + AV_CODEC_ID_V210X, + AV_CODEC_ID_TMV, + AV_CODEC_ID_V210, + AV_CODEC_ID_DPX, + AV_CODEC_ID_MAD, + AV_CODEC_ID_FRWU, + AV_CODEC_ID_FLASHSV2, + AV_CODEC_ID_CDGRAPHICS, + AV_CODEC_ID_R210, + AV_CODEC_ID_ANM, + AV_CODEC_ID_BINKVIDEO, + AV_CODEC_ID_IFF_ILBM, +#define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM + AV_CODEC_ID_KGV1, + AV_CODEC_ID_YOP, + AV_CODEC_ID_VP8, + AV_CODEC_ID_PICTOR, + AV_CODEC_ID_ANSI, + AV_CODEC_ID_A64_MULTI, + AV_CODEC_ID_A64_MULTI5, + AV_CODEC_ID_R10K, + AV_CODEC_ID_MXPEG, + AV_CODEC_ID_LAGARITH, + AV_CODEC_ID_PRORES, + AV_CODEC_ID_JV, + AV_CODEC_ID_DFA, + AV_CODEC_ID_WMV3IMAGE, + AV_CODEC_ID_VC1IMAGE, + AV_CODEC_ID_UTVIDEO, + AV_CODEC_ID_BMV_VIDEO, + AV_CODEC_ID_VBLE, + AV_CODEC_ID_DXTORY, + AV_CODEC_ID_V410, + AV_CODEC_ID_XWD, + AV_CODEC_ID_CDXL, + AV_CODEC_ID_XBM, + AV_CODEC_ID_ZEROCODEC, + AV_CODEC_ID_MSS1, + AV_CODEC_ID_MSA1, + AV_CODEC_ID_TSCC2, + AV_CODEC_ID_MTS2, + AV_CODEC_ID_CLLC, + AV_CODEC_ID_MSS2, + AV_CODEC_ID_VP9, + AV_CODEC_ID_AIC, + AV_CODEC_ID_ESCAPE130, + AV_CODEC_ID_G2M, + AV_CODEC_ID_WEBP, + AV_CODEC_ID_HNM4_VIDEO, + AV_CODEC_ID_HEVC, +#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC + AV_CODEC_ID_FIC, + AV_CODEC_ID_ALIAS_PIX, + AV_CODEC_ID_BRENDER_PIX, + AV_CODEC_ID_PAF_VIDEO, + AV_CODEC_ID_EXR, + AV_CODEC_ID_VP7, + AV_CODEC_ID_SANM, + AV_CODEC_ID_SGIRLE, + AV_CODEC_ID_MVC1, + AV_CODEC_ID_MVC2, + AV_CODEC_ID_HQX, + AV_CODEC_ID_TDSC, + AV_CODEC_ID_HQ_HQA, + AV_CODEC_ID_HAP, + AV_CODEC_ID_DDS, + AV_CODEC_ID_DXV, + AV_CODEC_ID_SCREENPRESSO, + AV_CODEC_ID_RSCC, + AV_CODEC_ID_AVS2, + AV_CODEC_ID_PGX, + AV_CODEC_ID_AVS3, + AV_CODEC_ID_MSP2, + AV_CODEC_ID_VVC, +#define AV_CODEC_ID_H266 AV_CODEC_ID_VVC + AV_CODEC_ID_Y41P, + AV_CODEC_ID_AVRP, + AV_CODEC_ID_012V, + AV_CODEC_ID_AVUI, + AV_CODEC_ID_TARGA_Y216, + AV_CODEC_ID_V308, + AV_CODEC_ID_V408, + AV_CODEC_ID_YUV4, + AV_CODEC_ID_AVRN, + AV_CODEC_ID_CPIA, + AV_CODEC_ID_XFACE, + AV_CODEC_ID_SNOW, + AV_CODEC_ID_SMVJPEG, + AV_CODEC_ID_APNG, + AV_CODEC_ID_DAALA, + AV_CODEC_ID_CFHD, + AV_CODEC_ID_TRUEMOTION2RT, + AV_CODEC_ID_M101, + AV_CODEC_ID_MAGICYUV, + AV_CODEC_ID_SHEERVIDEO, + AV_CODEC_ID_YLC, + AV_CODEC_ID_PSD, + AV_CODEC_ID_PIXLET, + AV_CODEC_ID_SPEEDHQ, + AV_CODEC_ID_FMVC, + AV_CODEC_ID_SCPR, + AV_CODEC_ID_CLEARVIDEO, + AV_CODEC_ID_XPM, + AV_CODEC_ID_AV1, + AV_CODEC_ID_BITPACKED, + AV_CODEC_ID_MSCC, + AV_CODEC_ID_SRGC, + AV_CODEC_ID_SVG, + AV_CODEC_ID_GDV, + AV_CODEC_ID_FITS, + AV_CODEC_ID_IMM4, + AV_CODEC_ID_PROSUMER, + AV_CODEC_ID_MWSC, + AV_CODEC_ID_WCMV, + AV_CODEC_ID_RASC, + AV_CODEC_ID_HYMT, + AV_CODEC_ID_ARBC, + AV_CODEC_ID_AGM, + AV_CODEC_ID_LSCR, + AV_CODEC_ID_VP4, + AV_CODEC_ID_IMM5, + AV_CODEC_ID_MVDV, + AV_CODEC_ID_MVHA, + AV_CODEC_ID_CDTOONS, + AV_CODEC_ID_MV30, + AV_CODEC_ID_NOTCHLC, + AV_CODEC_ID_PFM, + AV_CODEC_ID_MOBICLIP, + AV_CODEC_ID_PHOTOCD, + AV_CODEC_ID_IPU, + AV_CODEC_ID_ARGO, + AV_CODEC_ID_CRI, + AV_CODEC_ID_SIMBIOSIS_IMX, + AV_CODEC_ID_SGA_VIDEO, + AV_CODEC_ID_GEM, + AV_CODEC_ID_VBN, + AV_CODEC_ID_JPEGXL, + AV_CODEC_ID_QOI, + AV_CODEC_ID_PHM, + AV_CODEC_ID_RADIANCE_HDR, + AV_CODEC_ID_WBMP, + AV_CODEC_ID_MEDIA100, + AV_CODEC_ID_VQC, + AV_CODEC_ID_PDV, + AV_CODEC_ID_EVC, + AV_CODEC_ID_RTV1, + AV_CODEC_ID_VMIX, + AV_CODEC_ID_LEAD, + + /* various PCM "codecs" */ + AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs + AV_CODEC_ID_PCM_S16LE = 0x10000, + AV_CODEC_ID_PCM_S16BE, + AV_CODEC_ID_PCM_U16LE, + AV_CODEC_ID_PCM_U16BE, + AV_CODEC_ID_PCM_S8, + AV_CODEC_ID_PCM_U8, + AV_CODEC_ID_PCM_MULAW, + AV_CODEC_ID_PCM_ALAW, + AV_CODEC_ID_PCM_S32LE, + AV_CODEC_ID_PCM_S32BE, + AV_CODEC_ID_PCM_U32LE, + AV_CODEC_ID_PCM_U32BE, + AV_CODEC_ID_PCM_S24LE, + AV_CODEC_ID_PCM_S24BE, + AV_CODEC_ID_PCM_U24LE, + AV_CODEC_ID_PCM_U24BE, + AV_CODEC_ID_PCM_S24DAUD, + AV_CODEC_ID_PCM_ZORK, + AV_CODEC_ID_PCM_S16LE_PLANAR, + AV_CODEC_ID_PCM_DVD, + AV_CODEC_ID_PCM_F32BE, + AV_CODEC_ID_PCM_F32LE, + AV_CODEC_ID_PCM_F64BE, + AV_CODEC_ID_PCM_F64LE, + AV_CODEC_ID_PCM_BLURAY, + AV_CODEC_ID_PCM_LXF, + AV_CODEC_ID_S302M, + AV_CODEC_ID_PCM_S8_PLANAR, + AV_CODEC_ID_PCM_S24LE_PLANAR, + AV_CODEC_ID_PCM_S32LE_PLANAR, + AV_CODEC_ID_PCM_S16BE_PLANAR, + AV_CODEC_ID_PCM_S64LE, + AV_CODEC_ID_PCM_S64BE, + AV_CODEC_ID_PCM_F16LE, + AV_CODEC_ID_PCM_F24LE, + AV_CODEC_ID_PCM_VIDC, + AV_CODEC_ID_PCM_SGA, + + /* various ADPCM codecs */ + AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, + AV_CODEC_ID_ADPCM_IMA_WAV, + AV_CODEC_ID_ADPCM_IMA_DK3, + AV_CODEC_ID_ADPCM_IMA_DK4, + AV_CODEC_ID_ADPCM_IMA_WS, + AV_CODEC_ID_ADPCM_IMA_SMJPEG, + AV_CODEC_ID_ADPCM_MS, + AV_CODEC_ID_ADPCM_4XM, + AV_CODEC_ID_ADPCM_XA, + AV_CODEC_ID_ADPCM_ADX, + AV_CODEC_ID_ADPCM_EA, + AV_CODEC_ID_ADPCM_G726, + AV_CODEC_ID_ADPCM_CT, + AV_CODEC_ID_ADPCM_SWF, + AV_CODEC_ID_ADPCM_YAMAHA, + AV_CODEC_ID_ADPCM_SBPRO_4, + AV_CODEC_ID_ADPCM_SBPRO_3, + AV_CODEC_ID_ADPCM_SBPRO_2, + AV_CODEC_ID_ADPCM_THP, + AV_CODEC_ID_ADPCM_IMA_AMV, + AV_CODEC_ID_ADPCM_EA_R1, + AV_CODEC_ID_ADPCM_EA_R3, + AV_CODEC_ID_ADPCM_EA_R2, + AV_CODEC_ID_ADPCM_IMA_EA_SEAD, + AV_CODEC_ID_ADPCM_IMA_EA_EACS, + AV_CODEC_ID_ADPCM_EA_XAS, + AV_CODEC_ID_ADPCM_EA_MAXIS_XA, + AV_CODEC_ID_ADPCM_IMA_ISS, + AV_CODEC_ID_ADPCM_G722, + AV_CODEC_ID_ADPCM_IMA_APC, + AV_CODEC_ID_ADPCM_VIMA, + AV_CODEC_ID_ADPCM_AFC, + AV_CODEC_ID_ADPCM_IMA_OKI, + AV_CODEC_ID_ADPCM_DTK, + AV_CODEC_ID_ADPCM_IMA_RAD, + AV_CODEC_ID_ADPCM_G726LE, + AV_CODEC_ID_ADPCM_THP_LE, + AV_CODEC_ID_ADPCM_PSX, + AV_CODEC_ID_ADPCM_AICA, + AV_CODEC_ID_ADPCM_IMA_DAT4, + AV_CODEC_ID_ADPCM_MTAF, + AV_CODEC_ID_ADPCM_AGM, + AV_CODEC_ID_ADPCM_ARGO, + AV_CODEC_ID_ADPCM_IMA_SSI, + AV_CODEC_ID_ADPCM_ZORK, + AV_CODEC_ID_ADPCM_IMA_APM, + AV_CODEC_ID_ADPCM_IMA_ALP, + AV_CODEC_ID_ADPCM_IMA_MTF, + AV_CODEC_ID_ADPCM_IMA_CUNNING, + AV_CODEC_ID_ADPCM_IMA_MOFLEX, + AV_CODEC_ID_ADPCM_IMA_ACORN, + AV_CODEC_ID_ADPCM_XMD, + + /* AMR */ + AV_CODEC_ID_AMR_NB = 0x12000, + AV_CODEC_ID_AMR_WB, + + /* RealAudio codecs*/ + AV_CODEC_ID_RA_144 = 0x13000, + AV_CODEC_ID_RA_288, + + /* various DPCM codecs */ + AV_CODEC_ID_ROQ_DPCM = 0x14000, + AV_CODEC_ID_INTERPLAY_DPCM, + AV_CODEC_ID_XAN_DPCM, + AV_CODEC_ID_SOL_DPCM, + AV_CODEC_ID_SDX2_DPCM, + AV_CODEC_ID_GREMLIN_DPCM, + AV_CODEC_ID_DERF_DPCM, + AV_CODEC_ID_WADY_DPCM, + AV_CODEC_ID_CBD2_DPCM, + + /* audio codecs */ + AV_CODEC_ID_MP2 = 0x15000, + AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 + AV_CODEC_ID_AAC, + AV_CODEC_ID_AC3, + AV_CODEC_ID_DTS, + AV_CODEC_ID_VORBIS, + AV_CODEC_ID_DVAUDIO, + AV_CODEC_ID_WMAV1, + AV_CODEC_ID_WMAV2, + AV_CODEC_ID_MACE3, + AV_CODEC_ID_MACE6, + AV_CODEC_ID_VMDAUDIO, + AV_CODEC_ID_FLAC, + AV_CODEC_ID_MP3ADU, + AV_CODEC_ID_MP3ON4, + AV_CODEC_ID_SHORTEN, + AV_CODEC_ID_ALAC, + AV_CODEC_ID_WESTWOOD_SND1, + AV_CODEC_ID_GSM, ///< as in Berlin toast format + AV_CODEC_ID_QDM2, + AV_CODEC_ID_COOK, + AV_CODEC_ID_TRUESPEECH, + AV_CODEC_ID_TTA, + AV_CODEC_ID_SMACKAUDIO, + AV_CODEC_ID_QCELP, + AV_CODEC_ID_WAVPACK, + AV_CODEC_ID_DSICINAUDIO, + AV_CODEC_ID_IMC, + AV_CODEC_ID_MUSEPACK7, + AV_CODEC_ID_MLP, + AV_CODEC_ID_GSM_MS, /* as found in WAV */ + AV_CODEC_ID_ATRAC3, + AV_CODEC_ID_APE, + AV_CODEC_ID_NELLYMOSER, + AV_CODEC_ID_MUSEPACK8, + AV_CODEC_ID_SPEEX, + AV_CODEC_ID_WMAVOICE, + AV_CODEC_ID_WMAPRO, + AV_CODEC_ID_WMALOSSLESS, + AV_CODEC_ID_ATRAC3P, + AV_CODEC_ID_EAC3, + AV_CODEC_ID_SIPR, + AV_CODEC_ID_MP1, + AV_CODEC_ID_TWINVQ, + AV_CODEC_ID_TRUEHD, + AV_CODEC_ID_MP4ALS, + AV_CODEC_ID_ATRAC1, + AV_CODEC_ID_BINKAUDIO_RDFT, + AV_CODEC_ID_BINKAUDIO_DCT, + AV_CODEC_ID_AAC_LATM, + AV_CODEC_ID_QDMC, + AV_CODEC_ID_CELT, + AV_CODEC_ID_G723_1, + AV_CODEC_ID_G729, + AV_CODEC_ID_8SVX_EXP, + AV_CODEC_ID_8SVX_FIB, + AV_CODEC_ID_BMV_AUDIO, + AV_CODEC_ID_RALF, + AV_CODEC_ID_IAC, + AV_CODEC_ID_ILBC, + AV_CODEC_ID_OPUS, + AV_CODEC_ID_COMFORT_NOISE, + AV_CODEC_ID_TAK, + AV_CODEC_ID_METASOUND, + AV_CODEC_ID_PAF_AUDIO, + AV_CODEC_ID_ON2AVC, + AV_CODEC_ID_DSS_SP, + AV_CODEC_ID_CODEC2, + AV_CODEC_ID_FFWAVESYNTH, + AV_CODEC_ID_SONIC, + AV_CODEC_ID_SONIC_LS, + AV_CODEC_ID_EVRC, + AV_CODEC_ID_SMV, + AV_CODEC_ID_DSD_LSBF, + AV_CODEC_ID_DSD_MSBF, + AV_CODEC_ID_DSD_LSBF_PLANAR, + AV_CODEC_ID_DSD_MSBF_PLANAR, + AV_CODEC_ID_4GV, + AV_CODEC_ID_INTERPLAY_ACM, + AV_CODEC_ID_XMA1, + AV_CODEC_ID_XMA2, + AV_CODEC_ID_DST, + AV_CODEC_ID_ATRAC3AL, + AV_CODEC_ID_ATRAC3PAL, + AV_CODEC_ID_DOLBY_E, + AV_CODEC_ID_APTX, + AV_CODEC_ID_APTX_HD, + AV_CODEC_ID_SBC, + AV_CODEC_ID_ATRAC9, + AV_CODEC_ID_HCOM, + AV_CODEC_ID_ACELP_KELVIN, + AV_CODEC_ID_MPEGH_3D_AUDIO, + AV_CODEC_ID_SIREN, + AV_CODEC_ID_HCA, + AV_CODEC_ID_FASTAUDIO, + AV_CODEC_ID_MSNSIREN, + AV_CODEC_ID_DFPWM, + AV_CODEC_ID_BONK, + AV_CODEC_ID_MISC4, + AV_CODEC_ID_APAC, + AV_CODEC_ID_FTR, + AV_CODEC_ID_WAVARC, + AV_CODEC_ID_RKA, + AV_CODEC_ID_AC4, + AV_CODEC_ID_OSQ, + AV_CODEC_ID_QOA, + AV_CODEC_ID_LC3, + + /* subtitle codecs */ + AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. + AV_CODEC_ID_DVD_SUBTITLE = 0x17000, + AV_CODEC_ID_DVB_SUBTITLE, + AV_CODEC_ID_TEXT, ///< raw UTF-8 text + AV_CODEC_ID_XSUB, + AV_CODEC_ID_SSA, + AV_CODEC_ID_MOV_TEXT, + AV_CODEC_ID_HDMV_PGS_SUBTITLE, + AV_CODEC_ID_DVB_TELETEXT, + AV_CODEC_ID_SRT, + AV_CODEC_ID_MICRODVD, + AV_CODEC_ID_EIA_608, + AV_CODEC_ID_JACOSUB, + AV_CODEC_ID_SAMI, + AV_CODEC_ID_REALTEXT, + AV_CODEC_ID_STL, + AV_CODEC_ID_SUBVIEWER1, + AV_CODEC_ID_SUBVIEWER, + AV_CODEC_ID_SUBRIP, + AV_CODEC_ID_WEBVTT, + AV_CODEC_ID_MPL2, + AV_CODEC_ID_VPLAYER, + AV_CODEC_ID_PJS, + AV_CODEC_ID_ASS, + AV_CODEC_ID_HDMV_TEXT_SUBTITLE, + AV_CODEC_ID_TTML, + AV_CODEC_ID_ARIB_CAPTION, + + /* other specific kind of codecs (generally used for attachments) */ + AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. + AV_CODEC_ID_TTF = 0x18000, + + AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream. + AV_CODEC_ID_EPG, + AV_CODEC_ID_BINTEXT, + AV_CODEC_ID_XBIN, + AV_CODEC_ID_IDF, + AV_CODEC_ID_OTF, + AV_CODEC_ID_SMPTE_KLV, + AV_CODEC_ID_DVD_NAV, + AV_CODEC_ID_TIMED_ID3, + AV_CODEC_ID_BIN_DATA, + AV_CODEC_ID_SMPTE_2038, + AV_CODEC_ID_LCEVC, + + + AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it + + AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS + * stream (only used by libavformat) */ + AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems + * stream (only used by libavformat) */ + AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. + AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket + /** + * Dummy null video codec, useful mainly for development and debugging. + * Null encoder/decoder discard all input and never return any output. + */ + AV_CODEC_ID_VNULL, + /** + * Dummy null audio codec, useful mainly for development and debugging. + * Null encoder/decoder discard all input and never return any output. + */ + AV_CODEC_ID_ANULL, +}; + +/** + * Get the type of the given codec. + */ +enum AVMediaType avcodec_get_type(enum AVCodecID codec_id); + +/** + * Get the name of a codec. + * @return a static string identifying the codec; never NULL + */ +const char *avcodec_get_name(enum AVCodecID id); + +/** + * Return codec bits per sample. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +int av_get_bits_per_sample(enum AVCodecID codec_id); + +/** + * Return codec bits per sample. + * Only return non-zero if the bits per sample is exactly correct, not an + * approximation. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +int av_get_exact_bits_per_sample(enum AVCodecID codec_id); + +/** + * Return a name for the specified profile, if available. + * + * @param codec_id the ID of the codec to which the requested profile belongs + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + * + * @note unlike av_get_profile_name(), which searches a list of profiles + * supported by a specific decoder or encoder implementation, this + * function searches the list of profiles from the AVCodecDescriptor + */ +const char *avcodec_profile_name(enum AVCodecID codec_id, int profile); + +/** + * Return the PCM codec associated with a sample format. + * @param be endianness, 0 for little, 1 for big, + * -1 (or anything else) for native + * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE + */ +enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_ID_H diff --git a/deps/ffmpeg/macos/include/libavcodec/codec_par.h b/deps/ffmpeg/macos/include/libavcodec/codec_par.h new file mode 100644 index 0000000..f4b9bb5 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/codec_par.h @@ -0,0 +1,248 @@ +/* + * Codec parameters public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_CODEC_PAR_H +#define AVCODEC_CODEC_PAR_H + +#include + +#include "libavutil/avutil.h" +#include "libavutil/channel_layout.h" +#include "libavutil/rational.h" +#include "libavutil/pixfmt.h" + +#include "codec_id.h" +#include "defs.h" +#include "packet.h" + +/** + * @addtogroup lavc_core + * @{ + */ + +/** + * This struct describes the properties of an encoded stream. + * + * sizeof(AVCodecParameters) is not a part of the public ABI, this struct must + * be allocated with avcodec_parameters_alloc() and freed with + * avcodec_parameters_free(). + */ +typedef struct AVCodecParameters { + /** + * General type of the encoded data. + */ + enum AVMediaType codec_type; + /** + * Specific type of the encoded data (the codec used). + */ + enum AVCodecID codec_id; + /** + * Additional information about the codec (corresponds to the AVI FOURCC). + */ + uint32_t codec_tag; + + /** + * Extra binary data needed for initializing the decoder, codec-dependent. + * + * Must be allocated with av_malloc() and will be freed by + * avcodec_parameters_free(). The allocated size of extradata must be at + * least extradata_size + AV_INPUT_BUFFER_PADDING_SIZE, with the padding + * bytes zeroed. + */ + uint8_t *extradata; + /** + * Size of the extradata content in bytes. + */ + int extradata_size; + + /** + * Additional data associated with the entire stream. + * + * Should be allocated with av_packet_side_data_new() or + * av_packet_side_data_add(), and will be freed by avcodec_parameters_free(). + */ + AVPacketSideData *coded_side_data; + + /** + * Amount of entries in @ref coded_side_data. + */ + int nb_coded_side_data; + + /** + * - video: the pixel format, the value corresponds to enum AVPixelFormat. + * - audio: the sample format, the value corresponds to enum AVSampleFormat. + */ + int format; + + /** + * The average bitrate of the encoded data (in bits per second). + */ + int64_t bit_rate; + + /** + * The number of bits per sample in the codedwords. + * + * This is basically the bitrate per sample. It is mandatory for a bunch of + * formats to actually decode them. It's the number of bits for one sample in + * the actual coded bitstream. + * + * This could be for example 4 for ADPCM + * For PCM formats this matches bits_per_raw_sample + * Can be 0 + */ + int bits_per_coded_sample; + + /** + * This is the number of valid bits in each output sample. If the + * sample format has more bits, the least significant bits are additional + * padding bits, which are always 0. Use right shifts to reduce the sample + * to its actual size. For example, audio formats with 24 bit samples will + * have bits_per_raw_sample set to 24, and format set to AV_SAMPLE_FMT_S32. + * To get the original sample use "(int32_t)sample >> 8"." + * + * For ADPCM this might be 12 or 16 or similar + * Can be 0 + */ + int bits_per_raw_sample; + + /** + * Codec-specific bitstream restrictions that the stream conforms to. + */ + int profile; + int level; + + /** + * Video only. The dimensions of the video frame in pixels. + */ + int width; + int height; + + /** + * Video only. The aspect ratio (width / height) which a single pixel + * should have when displayed. + * + * When the aspect ratio is unknown / undefined, the numerator should be + * set to 0 (the denominator may have any value). + */ + AVRational sample_aspect_ratio; + + /** + * Video only. Number of frames per second, for streams with constant frame + * durations. Should be set to { 0, 1 } when some frames have differing + * durations or if the value is not known. + * + * @note This field correponds to values that are stored in codec-level + * headers and is typically overridden by container/transport-layer + * timestamps, when available. It should thus be used only as a last resort, + * when no higher-level timing information is available. + */ + AVRational framerate; + + /** + * Video only. The order of the fields in interlaced video. + */ + enum AVFieldOrder field_order; + + /** + * Video only. Additional colorspace characteristics. + */ + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace color_space; + enum AVChromaLocation chroma_location; + + /** + * Video only. Number of delayed frames. + */ + int video_delay; + + /** + * Audio only. The channel layout and number of channels. + */ + AVChannelLayout ch_layout; + /** + * Audio only. The number of audio samples per second. + */ + int sample_rate; + /** + * Audio only. The number of bytes per coded audio frame, required by some + * formats. + * + * Corresponds to nBlockAlign in WAVEFORMATEX. + */ + int block_align; + /** + * Audio only. Audio frame size, if known. Required by some formats to be static. + */ + int frame_size; + + /** + * Audio only. The amount of padding (in samples) inserted by the encoder at + * the beginning of the audio. I.e. this number of leading decoded samples + * must be discarded by the caller to get the original audio without leading + * padding. + */ + int initial_padding; + /** + * Audio only. The amount of padding (in samples) appended by the encoder to + * the end of the audio. I.e. this number of decoded samples must be + * discarded by the caller from the end of the stream to get the original + * audio without any trailing padding. + */ + int trailing_padding; + /** + * Audio only. Number of samples to skip after a discontinuity. + */ + int seek_preroll; +} AVCodecParameters; + +/** + * Allocate a new AVCodecParameters and set its fields to default values + * (unknown/invalid/0). The returned struct must be freed with + * avcodec_parameters_free(). + */ +AVCodecParameters *avcodec_parameters_alloc(void); + +/** + * Free an AVCodecParameters instance and everything associated with it and + * write NULL to the supplied pointer. + */ +void avcodec_parameters_free(AVCodecParameters **par); + +/** + * Copy the contents of src to dst. Any allocated fields in dst are freed and + * replaced with newly allocated duplicates of the corresponding fields in src. + * + * @return >= 0 on success, a negative AVERROR code on failure. + */ +int avcodec_parameters_copy(AVCodecParameters *dst, const AVCodecParameters *src); + +/** + * This function is the same as av_get_audio_frame_duration(), except it works + * with AVCodecParameters instead of an AVCodecContext. + */ +int av_get_audio_frame_duration2(AVCodecParameters *par, int frame_bytes); + +/** + * @} + */ + +#endif // AVCODEC_CODEC_PAR_H diff --git a/deps/ffmpeg/macos/include/libavcodec/d3d11va.h b/deps/ffmpeg/macos/include/libavcodec/d3d11va.h new file mode 100644 index 0000000..27f40e5 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/d3d11va.h @@ -0,0 +1,109 @@ +/* + * Direct3D11 HW acceleration + * + * copyright (c) 2009 Laurent Aimar + * copyright (c) 2015 Steve Lhomme + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_D3D11VA_H +#define AVCODEC_D3D11VA_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_d3d11va + * Public libavcodec D3D11VA header. + */ + +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602 +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0602 +#endif + +#include +#include + +/** + * @defgroup lavc_codec_hwaccel_d3d11va Direct3D11 + * @ingroup lavc_codec_hwaccel + * + * @{ + */ + +/** + * This structure is used to provides the necessary configurations and data + * to the Direct3D11 FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + * + * Use av_d3d11va_alloc_context() exclusively to allocate an AVD3D11VAContext. + */ +typedef struct AVD3D11VAContext { + /** + * D3D11 decoder object + */ + ID3D11VideoDecoder *decoder; + + /** + * D3D11 VideoContext + */ + ID3D11VideoContext *video_context; + + /** + * D3D11 configuration used to create the decoder + */ + D3D11_VIDEO_DECODER_CONFIG *cfg; + + /** + * The number of surface in the surface array + */ + unsigned surface_count; + + /** + * The array of Direct3D surfaces used to create the decoder + */ + ID3D11VideoDecoderOutputView **surface; + + /** + * A bit field configuring the workarounds needed for using the decoder + */ + uint64_t workaround; + + /** + * Private to the FFmpeg AVHWAccel implementation + */ + unsigned report_id; + + /** + * Mutex to access video_context + */ + HANDLE context_mutex; +} AVD3D11VAContext; + +/** + * Allocate an AVD3D11VAContext. + * + * @return Newly-allocated AVD3D11VAContext or NULL on failure. + */ +AVD3D11VAContext *av_d3d11va_alloc_context(void); + +/** + * @} + */ + +#endif /* AVCODEC_D3D11VA_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/defs.h b/deps/ffmpeg/macos/include/libavcodec/defs.h new file mode 100644 index 0000000..24250f8 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/defs.h @@ -0,0 +1,337 @@ +/* + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DEFS_H +#define AVCODEC_DEFS_H + +/** + * @file + * @ingroup libavc + * Misc types and constants that do not belong anywhere else. + */ + +#include +#include + +/** + * @ingroup lavc_decoding + * Required number of additionally allocated bytes at the end of the input bitstream for decoding. + * This is mainly needed because some optimized bitstream readers read + * 32 or 64 bit at once and could read over the end.
+ * Note: If the first 23 bits of the additional bytes are not 0, then damaged + * MPEG bitstreams could cause overread and segfault. + */ +#define AV_INPUT_BUFFER_PADDING_SIZE 64 + +/** + * Verify checksums embedded in the bitstream (could be of either encoded or + * decoded data, depending on the format) and print an error message on mismatch. + * If AV_EF_EXPLODE is also set, a mismatching checksum will result in the + * decoder/demuxer returning an error. + */ +#define AV_EF_CRCCHECK (1<<0) +#define AV_EF_BITSTREAM (1<<1) ///< detect bitstream specification deviations +#define AV_EF_BUFFER (1<<2) ///< detect improper bitstream length +#define AV_EF_EXPLODE (1<<3) ///< abort decoding on minor error detection + +#define AV_EF_IGNORE_ERR (1<<15) ///< ignore errors and continue +#define AV_EF_CAREFUL (1<<16) ///< consider things that violate the spec, are fast to calculate and have not been seen in the wild as errors +#define AV_EF_COMPLIANT (1<<17) ///< consider all spec non compliances as errors +#define AV_EF_AGGRESSIVE (1<<18) ///< consider things that a sane encoder/muxer should not do as an error + +#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. +#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. +#define FF_COMPLIANCE_NORMAL 0 +#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions +#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. + + +#define AV_PROFILE_UNKNOWN -99 +#define AV_PROFILE_RESERVED -100 + +#define AV_PROFILE_AAC_MAIN 0 +#define AV_PROFILE_AAC_LOW 1 +#define AV_PROFILE_AAC_SSR 2 +#define AV_PROFILE_AAC_LTP 3 +#define AV_PROFILE_AAC_HE 4 +#define AV_PROFILE_AAC_HE_V2 28 +#define AV_PROFILE_AAC_LD 22 +#define AV_PROFILE_AAC_ELD 38 +#define AV_PROFILE_AAC_USAC 41 +#define AV_PROFILE_MPEG2_AAC_LOW 128 +#define AV_PROFILE_MPEG2_AAC_HE 131 + +#define AV_PROFILE_DNXHD 0 +#define AV_PROFILE_DNXHR_LB 1 +#define AV_PROFILE_DNXHR_SQ 2 +#define AV_PROFILE_DNXHR_HQ 3 +#define AV_PROFILE_DNXHR_HQX 4 +#define AV_PROFILE_DNXHR_444 5 + +#define AV_PROFILE_DTS 20 +#define AV_PROFILE_DTS_ES 30 +#define AV_PROFILE_DTS_96_24 40 +#define AV_PROFILE_DTS_HD_HRA 50 +#define AV_PROFILE_DTS_HD_MA 60 +#define AV_PROFILE_DTS_EXPRESS 70 +#define AV_PROFILE_DTS_HD_MA_X 61 +#define AV_PROFILE_DTS_HD_MA_X_IMAX 62 + +#define AV_PROFILE_EAC3_DDP_ATMOS 30 + +#define AV_PROFILE_TRUEHD_ATMOS 30 + +#define AV_PROFILE_MPEG2_422 0 +#define AV_PROFILE_MPEG2_HIGH 1 +#define AV_PROFILE_MPEG2_SS 2 +#define AV_PROFILE_MPEG2_SNR_SCALABLE 3 +#define AV_PROFILE_MPEG2_MAIN 4 +#define AV_PROFILE_MPEG2_SIMPLE 5 + +#define AV_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag +#define AV_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag + +#define AV_PROFILE_H264_BASELINE 66 +#define AV_PROFILE_H264_CONSTRAINED_BASELINE (66|AV_PROFILE_H264_CONSTRAINED) +#define AV_PROFILE_H264_MAIN 77 +#define AV_PROFILE_H264_EXTENDED 88 +#define AV_PROFILE_H264_HIGH 100 +#define AV_PROFILE_H264_HIGH_10 110 +#define AV_PROFILE_H264_HIGH_10_INTRA (110|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_MULTIVIEW_HIGH 118 +#define AV_PROFILE_H264_HIGH_422 122 +#define AV_PROFILE_H264_HIGH_422_INTRA (122|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_STEREO_HIGH 128 +#define AV_PROFILE_H264_HIGH_444 144 +#define AV_PROFILE_H264_HIGH_444_PREDICTIVE 244 +#define AV_PROFILE_H264_HIGH_444_INTRA (244|AV_PROFILE_H264_INTRA) +#define AV_PROFILE_H264_CAVLC_444 44 + +#define AV_PROFILE_VC1_SIMPLE 0 +#define AV_PROFILE_VC1_MAIN 1 +#define AV_PROFILE_VC1_COMPLEX 2 +#define AV_PROFILE_VC1_ADVANCED 3 + +#define AV_PROFILE_MPEG4_SIMPLE 0 +#define AV_PROFILE_MPEG4_SIMPLE_SCALABLE 1 +#define AV_PROFILE_MPEG4_CORE 2 +#define AV_PROFILE_MPEG4_MAIN 3 +#define AV_PROFILE_MPEG4_N_BIT 4 +#define AV_PROFILE_MPEG4_SCALABLE_TEXTURE 5 +#define AV_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6 +#define AV_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7 +#define AV_PROFILE_MPEG4_HYBRID 8 +#define AV_PROFILE_MPEG4_ADVANCED_REAL_TIME 9 +#define AV_PROFILE_MPEG4_CORE_SCALABLE 10 +#define AV_PROFILE_MPEG4_ADVANCED_CODING 11 +#define AV_PROFILE_MPEG4_ADVANCED_CORE 12 +#define AV_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13 +#define AV_PROFILE_MPEG4_SIMPLE_STUDIO 14 +#define AV_PROFILE_MPEG4_ADVANCED_SIMPLE 15 + +#define AV_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0 1 +#define AV_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1 2 +#define AV_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION 32768 +#define AV_PROFILE_JPEG2000_DCINEMA_2K 3 +#define AV_PROFILE_JPEG2000_DCINEMA_4K 4 + +#define AV_PROFILE_VP9_0 0 +#define AV_PROFILE_VP9_1 1 +#define AV_PROFILE_VP9_2 2 +#define AV_PROFILE_VP9_3 3 + +#define AV_PROFILE_HEVC_MAIN 1 +#define AV_PROFILE_HEVC_MAIN_10 2 +#define AV_PROFILE_HEVC_MAIN_STILL_PICTURE 3 +#define AV_PROFILE_HEVC_REXT 4 +#define AV_PROFILE_HEVC_MULTIVIEW_MAIN 6 +#define AV_PROFILE_HEVC_SCC 9 + +#define AV_PROFILE_VVC_MAIN_10 1 +#define AV_PROFILE_VVC_MAIN_10_444 33 + +#define AV_PROFILE_AV1_MAIN 0 +#define AV_PROFILE_AV1_HIGH 1 +#define AV_PROFILE_AV1_PROFESSIONAL 2 + +#define AV_PROFILE_MJPEG_HUFFMAN_BASELINE_DCT 0xc0 +#define AV_PROFILE_MJPEG_HUFFMAN_EXTENDED_SEQUENTIAL_DCT 0xc1 +#define AV_PROFILE_MJPEG_HUFFMAN_PROGRESSIVE_DCT 0xc2 +#define AV_PROFILE_MJPEG_HUFFMAN_LOSSLESS 0xc3 +#define AV_PROFILE_MJPEG_JPEG_LS 0xf7 + +#define AV_PROFILE_SBC_MSBC 1 + +#define AV_PROFILE_PRORES_PROXY 0 +#define AV_PROFILE_PRORES_LT 1 +#define AV_PROFILE_PRORES_STANDARD 2 +#define AV_PROFILE_PRORES_HQ 3 +#define AV_PROFILE_PRORES_4444 4 +#define AV_PROFILE_PRORES_XQ 5 + +#define AV_PROFILE_ARIB_PROFILE_A 0 +#define AV_PROFILE_ARIB_PROFILE_C 1 + +#define AV_PROFILE_KLVA_SYNC 0 +#define AV_PROFILE_KLVA_ASYNC 1 + +#define AV_PROFILE_EVC_BASELINE 0 +#define AV_PROFILE_EVC_MAIN 1 + + +#define AV_LEVEL_UNKNOWN -99 + +enum AVFieldOrder { + AV_FIELD_UNKNOWN, + AV_FIELD_PROGRESSIVE, + AV_FIELD_TT, ///< Top coded_first, top displayed first + AV_FIELD_BB, ///< Bottom coded first, bottom displayed first + AV_FIELD_TB, ///< Top coded first, bottom displayed first + AV_FIELD_BT, ///< Bottom coded first, top displayed first +}; + +/** + * @ingroup lavc_decoding + */ +enum AVDiscard{ + /* We leave some space between them for extensions (drop some + * keyframes for intra-only or drop just some bidir frames). */ + AVDISCARD_NONE =-16, ///< discard nothing + AVDISCARD_DEFAULT = 0, ///< discard useless packets like 0 size packets in avi + AVDISCARD_NONREF = 8, ///< discard all non reference + AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames + AVDISCARD_NONINTRA= 24, ///< discard all non intra frames + AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes + AVDISCARD_ALL = 48, ///< discard all +}; + +enum AVAudioServiceType { + AV_AUDIO_SERVICE_TYPE_MAIN = 0, + AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, + AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, + AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3, + AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, + AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, + AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, + AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7, + AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, + AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI +}; + +/** + * Pan Scan area. + * This specifies the area which should be displayed. + * Note there may be multiple such areas for one frame. + */ +typedef struct AVPanScan { + /** + * id + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int id; + + /** + * width and height in 1/16 pel + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int width; + int height; + + /** + * position of the top left corner in 1/16 pel for up to 3 fields/frames + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int16_t position[3][2]; +} AVPanScan; + +/** + * This structure describes the bitrate properties of an encoded bitstream. It + * roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD + * parameters for H.264/HEVC. + */ +typedef struct AVCPBProperties { + /** + * Maximum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t max_bitrate; + /** + * Minimum bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t min_bitrate; + /** + * Average bitrate of the stream, in bits per second. + * Zero if unknown or unspecified. + */ + int64_t avg_bitrate; + + /** + * The size of the buffer to which the ratecontrol is applied, in bits. + * Zero if unknown or unspecified. + */ + int64_t buffer_size; + + /** + * The delay between the time the packet this structure is associated with + * is received and the time when it should be decoded, in periods of a 27MHz + * clock. + * + * UINT64_MAX when unknown or unspecified. + */ + uint64_t vbv_delay; +} AVCPBProperties; + +/** + * Allocate a CPB properties structure and initialize its fields to default + * values. + * + * @param size if non-NULL, the size of the allocated struct will be written + * here. This is useful for embedding it in side data. + * + * @return the newly allocated struct or NULL on failure + */ +AVCPBProperties *av_cpb_properties_alloc(size_t *size); + +/** + * This structure supplies correlation between a packet timestamp and a wall clock + * production time. The definition follows the Producer Reference Time ('prft') + * as defined in ISO/IEC 14496-12 + */ +typedef struct AVProducerReferenceTime { + /** + * A UTC timestamp, in microseconds, since Unix epoch (e.g, av_gettime()). + */ + int64_t wallclock; + int flags; +} AVProducerReferenceTime; + +/** + * Encode extradata length to a buffer. Used by xiph codecs. + * + * @param s buffer to write to; must be at least (v/255+1) bytes long + * @param v size of extradata in bytes + * @return number of bytes written to the buffer. + */ +unsigned int av_xiphlacing(unsigned char *s, unsigned int v); + +#endif // AVCODEC_DEFS_H diff --git a/deps/ffmpeg/macos/include/libavcodec/dirac.h b/deps/ffmpeg/macos/include/libavcodec/dirac.h new file mode 100644 index 0000000..8c348cd --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/dirac.h @@ -0,0 +1,135 @@ +/* + * Copyright (C) 2007 Marco Gerards + * Copyright (C) 2009 David Conrad + * Copyright (C) 2011 Jordi Ortiz + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DIRAC_H +#define AVCODEC_DIRAC_H + +/** + * @file + * Interface to Dirac Decoder/Encoder + * @author Marco Gerards + * @author David Conrad + * @author Jordi Ortiz + */ + +#include +#include + +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +/** + * The spec limits the number of wavelet decompositions to 4 for both + * level 1 (VC-2) and 128 (long-gop default). + * 5 decompositions is the maximum before >16-bit buffers are needed. + * Schroedinger allows this for DD 9,7 and 13,7 wavelets only, limiting + * the others to 4 decompositions (or 3 for the fidelity filter). + * + * We use this instead of MAX_DECOMPOSITIONS to save some memory. + */ +#define MAX_DWT_LEVELS 5 + +/** + * Parse code values: + * + * Dirac Specification -> + * 9.6.1 Table 9.1 + * + * VC-2 Specification -> + * 10.4.1 Table 10.1 + */ + +enum DiracParseCodes { + DIRAC_PCODE_SEQ_HEADER = 0x00, + DIRAC_PCODE_END_SEQ = 0x10, + DIRAC_PCODE_AUX = 0x20, + DIRAC_PCODE_PAD = 0x30, + DIRAC_PCODE_PICTURE_CODED = 0x08, + DIRAC_PCODE_PICTURE_RAW = 0x48, + DIRAC_PCODE_PICTURE_LOW_DEL = 0xC8, + DIRAC_PCODE_PICTURE_HQ = 0xE8, + DIRAC_PCODE_INTER_NOREF_CO1 = 0x0A, + DIRAC_PCODE_INTER_NOREF_CO2 = 0x09, + DIRAC_PCODE_INTER_REF_CO1 = 0x0D, + DIRAC_PCODE_INTER_REF_CO2 = 0x0E, + DIRAC_PCODE_INTRA_REF_CO = 0x0C, + DIRAC_PCODE_INTRA_REF_RAW = 0x4C, + DIRAC_PCODE_INTRA_REF_PICT = 0xCC, + DIRAC_PCODE_MAGIC = 0x42424344, +}; + +typedef struct DiracVersionInfo { + int major; + int minor; +} DiracVersionInfo; + +typedef struct AVDiracSeqHeader { + unsigned width; + unsigned height; + uint8_t chroma_format; ///< 0: 444 1: 422 2: 420 + + uint8_t interlaced; + uint8_t top_field_first; + + uint8_t frame_rate_index; ///< index into dirac_frame_rate[] + uint8_t aspect_ratio_index; ///< index into dirac_aspect_ratio[] + + uint16_t clean_width; + uint16_t clean_height; + uint16_t clean_left_offset; + uint16_t clean_right_offset; + + uint8_t pixel_range_index; ///< index into dirac_pixel_range_presets[] + uint8_t color_spec_index; ///< index into dirac_color_spec_presets[] + + int profile; + int level; + + AVRational framerate; + AVRational sample_aspect_ratio; + + enum AVPixelFormat pix_fmt; + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace colorspace; + + DiracVersionInfo version; + int bit_depth; +} AVDiracSeqHeader; + +/** + * Parse a Dirac sequence header. + * + * @param dsh this function will allocate and fill an AVDiracSeqHeader struct + * and write it into this pointer. The caller must free it with + * av_free(). + * @param buf the data buffer + * @param buf_size the size of the data buffer in bytes + * @param log_ctx if non-NULL, this function will log errors here + * @return 0 on success, a negative AVERROR code on failure + */ +int av_dirac_parse_sequence_header(AVDiracSeqHeader **dsh, + const uint8_t *buf, size_t buf_size, + void *log_ctx); + +#endif /* AVCODEC_DIRAC_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/dv_profile.h b/deps/ffmpeg/macos/include/libavcodec/dv_profile.h new file mode 100644 index 0000000..4365f1b --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/dv_profile.h @@ -0,0 +1,82 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DV_PROFILE_H +#define AVCODEC_DV_PROFILE_H + +#include + +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +/* minimum number of bytes to read from a DV stream in order to + * determine the profile */ +#define DV_PROFILE_BYTES (6 * 80) /* 6 DIF blocks */ + + +/* + * AVDVProfile is used to express the differences between various + * DV flavors. For now it's primarily used for differentiating + * 525/60 and 625/50, but the plans are to use it for various + * DV specs as well (e.g. SMPTE314M vs. IEC 61834). + */ +typedef struct AVDVProfile { + int dsf; /* value of the dsf in the DV header */ + int video_stype; /* stype for VAUX source pack */ + int frame_size; /* total size of one frame in bytes */ + int difseg_size; /* number of DIF segments per DIF channel */ + int n_difchan; /* number of DIF channels per frame */ + AVRational time_base; /* 1/framerate */ + int ltc_divisor; /* FPS from the LTS standpoint */ + int height; /* picture height in pixels */ + int width; /* picture width in pixels */ + AVRational sar[2]; /* sample aspect ratios for 4:3 and 16:9 */ + enum AVPixelFormat pix_fmt; /* picture pixel format */ + int bpm; /* blocks per macroblock */ + const uint8_t *block_sizes; /* AC block sizes, in bits */ + int audio_stride; /* size of audio_shuffle table */ + int audio_min_samples[3]; /* min amount of audio samples */ + /* for 48kHz, 44.1kHz and 32kHz */ + int audio_samples_dist[5]; /* how many samples are supposed to be */ + /* in each frame in a 5 frames window */ + const uint8_t (*audio_shuffle)[9]; /* PCM shuffling table */ +} AVDVProfile; + +/** + * Get a DV profile for the provided compressed frame. + * + * @param sys the profile used for the previous frame, may be NULL + * @param frame the compressed data buffer + * @param buf_size size of the buffer in bytes + * @return the DV profile for the supplied data or NULL on failure + */ +const AVDVProfile *av_dv_frame_profile(const AVDVProfile *sys, + const uint8_t *frame, unsigned buf_size); + +/** + * Get a DV profile for the provided stream parameters. + */ +const AVDVProfile *av_dv_codec_profile(int width, int height, enum AVPixelFormat pix_fmt); + +/** + * Get a DV profile for the provided stream parameters. + * The frame rate is used as a best-effort parameter. + */ +const AVDVProfile *av_dv_codec_profile2(int width, int height, enum AVPixelFormat pix_fmt, AVRational frame_rate); + +#endif /* AVCODEC_DV_PROFILE_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/dxva2.h b/deps/ffmpeg/macos/include/libavcodec/dxva2.h new file mode 100644 index 0000000..bdec611 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/dxva2.h @@ -0,0 +1,90 @@ +/* + * DXVA2 HW acceleration + * + * copyright (c) 2009 Laurent Aimar + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DXVA2_H +#define AVCODEC_DXVA2_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_dxva2 + * Public libavcodec DXVA2 header. + */ + +#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602 +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0602 +#endif + +#include +#include +#include + +/** + * @defgroup lavc_codec_hwaccel_dxva2 DXVA2 + * @ingroup lavc_codec_hwaccel + * + * @{ + */ + +/** + * This structure is used to provides the necessary configurations and data + * to the DXVA2 FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + */ +struct dxva_context { + /** + * DXVA2 decoder object + */ + IDirectXVideoDecoder *decoder; + + /** + * DXVA2 configuration used to create the decoder + */ + const DXVA2_ConfigPictureDecode *cfg; + + /** + * The number of surface in the surface array + */ + unsigned surface_count; + + /** + * The array of Direct3D surfaces used to create the decoder + */ + LPDIRECT3DSURFACE9 *surface; + + /** + * A bit field configuring the workarounds needed for using the decoder + */ + uint64_t workaround; + + /** + * Private to the FFmpeg AVHWAccel implementation + */ + unsigned report_id; +}; + +/** + * @} + */ + +#endif /* AVCODEC_DXVA2_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/jni.h b/deps/ffmpeg/macos/include/libavcodec/jni.h new file mode 100644 index 0000000..955cd28 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/jni.h @@ -0,0 +1,67 @@ +/* + * JNI public API functions + * + * Copyright (c) 2015-2016 Matthieu Bouron + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_JNI_H +#define AVCODEC_JNI_H + +/* + * Manually set a Java virtual machine which will be used to retrieve the JNI + * environment. Once a Java VM is set it cannot be changed afterwards, meaning + * you can call multiple times av_jni_set_java_vm with the same Java VM pointer + * however it will error out if you try to set a different Java VM. + * + * @param vm Java virtual machine + * @param log_ctx context used for logging, can be NULL + * @return 0 on success, < 0 otherwise + */ +int av_jni_set_java_vm(void *vm, void *log_ctx); + +/* + * Get the Java virtual machine which has been set with av_jni_set_java_vm. + * + * @param vm Java virtual machine + * @return a pointer to the Java virtual machine + */ +void *av_jni_get_java_vm(void *log_ctx); + +/* + * Set the Android application context which will be used to retrieve the Android + * content resolver to handle content uris. + * + * This function is only available on Android. + * + * @param app_ctx global JNI reference to the Android application context + * @return 0 on success, < 0 otherwise + */ +int av_jni_set_android_app_ctx(void *app_ctx, void *log_ctx); + +/* + * Get the Android application context that has been set with + * av_jni_set_android_app_ctx. + * + * This function is only available on Android. + * + * @return a pointer the the Android application context + */ +void *av_jni_get_android_app_ctx(void); + +#endif /* AVCODEC_JNI_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/mediacodec.h b/deps/ffmpeg/macos/include/libavcodec/mediacodec.h new file mode 100644 index 0000000..4e9b56a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/mediacodec.h @@ -0,0 +1,103 @@ +/* + * Android MediaCodec public API + * + * Copyright (c) 2016 Matthieu Bouron + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_MEDIACODEC_H +#define AVCODEC_MEDIACODEC_H + +#include "libavcodec/avcodec.h" + +/** + * This structure holds a reference to a android/view/Surface object that will + * be used as output by the decoder. + * + */ +typedef struct AVMediaCodecContext { + + /** + * android/view/Surface object reference. + */ + void *surface; + +} AVMediaCodecContext; + +/** + * Allocate and initialize a MediaCodec context. + * + * When decoding with MediaCodec is finished, the caller must free the + * MediaCodec context with av_mediacodec_default_free. + * + * @return a pointer to a newly allocated AVMediaCodecContext on success, NULL otherwise + */ +AVMediaCodecContext *av_mediacodec_alloc_context(void); + +/** + * Convenience function that sets up the MediaCodec context. + * + * @param avctx codec context + * @param ctx MediaCodec context to initialize + * @param surface reference to an android/view/Surface + * @return 0 on success, < 0 otherwise + */ +int av_mediacodec_default_init(AVCodecContext *avctx, AVMediaCodecContext *ctx, void *surface); + +/** + * This function must be called to free the MediaCodec context initialized with + * av_mediacodec_default_init(). + * + * @param avctx codec context + */ +void av_mediacodec_default_free(AVCodecContext *avctx); + +/** + * Opaque structure representing a MediaCodec buffer to render. + */ +typedef struct MediaCodecBuffer AVMediaCodecBuffer; + +/** + * Release a MediaCodec buffer and render it to the surface that is associated + * with the decoder. This function should only be called once on a given + * buffer, once released the underlying buffer returns to the codec, thus + * subsequent calls to this function will have no effect. + * + * @param buffer the buffer to render + * @param render 1 to release and render the buffer to the surface or 0 to + * discard the buffer + * @return 0 on success, < 0 otherwise + */ +int av_mediacodec_release_buffer(AVMediaCodecBuffer *buffer, int render); + +/** + * Release a MediaCodec buffer and render it at the given time to the surface + * that is associated with the decoder. The timestamp must be within one second + * of the current `java/lang/System#nanoTime()` (which is implemented using + * `CLOCK_MONOTONIC` on Android). See the Android MediaCodec documentation + * of [`android/media/MediaCodec#releaseOutputBuffer(int,long)`][0] for more details. + * + * @param buffer the buffer to render + * @param time timestamp in nanoseconds of when to render the buffer + * @return 0 on success, < 0 otherwise + * + * [0]: https://developer.android.com/reference/android/media/MediaCodec#releaseOutputBuffer(int,%20long) + */ +int av_mediacodec_render_buffer_at_time(AVMediaCodecBuffer *buffer, int64_t time); + +#endif /* AVCODEC_MEDIACODEC_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/packet.h b/deps/ffmpeg/macos/include/libavcodec/packet.h new file mode 100644 index 0000000..0a28010 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/packet.h @@ -0,0 +1,887 @@ +/* + * AVPacket public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_PACKET_H +#define AVCODEC_PACKET_H + +#include +#include + +#include "libavutil/attributes.h" +#include "libavutil/buffer.h" +#include "libavutil/dict.h" +#include "libavutil/rational.h" +#include "libavutil/version.h" + +#include "libavcodec/version_major.h" + +/** + * @defgroup lavc_packet_side_data AVPacketSideData + * + * Types and functions for working with AVPacketSideData. + * @{ + */ +enum AVPacketSideDataType { + /** + * An AV_PKT_DATA_PALETTE side data packet contains exactly AVPALETTE_SIZE + * bytes worth of palette. This side data signals that a new palette is + * present. + */ + AV_PKT_DATA_PALETTE, + + /** + * The AV_PKT_DATA_NEW_EXTRADATA is used to notify the codec or the format + * that the extradata buffer was changed and the receiving side should + * act upon it appropriately. The new extradata is embedded in the side + * data buffer and should be immediately used for processing the current + * frame or packet. + */ + AV_PKT_DATA_NEW_EXTRADATA, + + /** + * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: + * @code + * u32le param_flags + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) + * s32le sample_rate + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) + * s32le width + * s32le height + * @endcode + */ + AV_PKT_DATA_PARAM_CHANGE, + + /** + * An AV_PKT_DATA_H263_MB_INFO side data packet contains a number of + * structures with info about macroblocks relevant to splitting the + * packet into smaller packets on macroblock edges (e.g. as for RFC 2190). + * That is, it does not necessarily contain info about all macroblocks, + * as long as the distance between macroblocks in the info is smaller + * than the target payload size. + * Each MB info structure is 12 bytes, and is laid out as follows: + * @code + * u32le bit offset from the start of the packet + * u8 current quantizer at the start of the macroblock + * u8 GOB number + * u16le macroblock address within the GOB + * u8 horizontal MV predictor + * u8 vertical MV predictor + * u8 horizontal MV predictor for block number 3 + * u8 vertical MV predictor for block number 3 + * @endcode + */ + AV_PKT_DATA_H263_MB_INFO, + + /** + * This side data should be associated with an audio stream and contains + * ReplayGain information in form of the AVReplayGain struct. + */ + AV_PKT_DATA_REPLAYGAIN, + + /** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the decoded video frames for + * correct presentation. + * + * See libavutil/display.h for a detailed description of the data. + */ + AV_PKT_DATA_DISPLAYMATRIX, + + /** + * This side data should be associated with a video stream and contains + * Stereoscopic 3D information in form of the AVStereo3D struct. + */ + AV_PKT_DATA_STEREO3D, + + /** + * This side data should be associated with an audio stream and corresponds + * to enum AVAudioServiceType. + */ + AV_PKT_DATA_AUDIO_SERVICE_TYPE, + + /** + * This side data contains quality related information from the encoder. + * @code + * u32le quality factor of the compressed frame. Allowed range is between 1 (good) and FF_LAMBDA_MAX (bad). + * u8 picture type + * u8 error count + * u16 reserved + * u64le[error count] sum of squared differences between encoder in and output + * @endcode + */ + AV_PKT_DATA_QUALITY_STATS, + + /** + * This side data contains an integer value representing the stream index + * of a "fallback" track. A fallback track indicates an alternate + * track to use when the current track can not be decoded for some reason. + * e.g. no decoder available for codec. + */ + AV_PKT_DATA_FALLBACK_TRACK, + + /** + * This side data corresponds to the AVCPBProperties struct. + */ + AV_PKT_DATA_CPB_PROPERTIES, + + /** + * Recommmends skipping the specified number of samples + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + */ + AV_PKT_DATA_SKIP_SAMPLES, + + /** + * An AV_PKT_DATA_JP_DUALMONO side data packet indicates that + * the packet may contain "dual mono" audio specific to Japanese DTV + * and if it is true, recommends only the selected channel to be used. + * @code + * u8 selected channels (0=main/left, 1=sub/right, 2=both) + * @endcode + */ + AV_PKT_DATA_JP_DUALMONO, + + /** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. + */ + AV_PKT_DATA_STRINGS_METADATA, + + /** + * Subtitle event position + * @code + * u32le x1 + * u32le y1 + * u32le x2 + * u32le y2 + * @endcode + */ + AV_PKT_DATA_SUBTITLE_POSITION, + + /** + * Data found in BlockAdditional element of matroska container. There is + * no end marker for the data, so it is required to rely on the side data + * size to recognize the end. 8 byte id (as found in BlockAddId) followed + * by data. + */ + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + + /** + * The optional first identifier line of a WebVTT cue. + */ + AV_PKT_DATA_WEBVTT_IDENTIFIER, + + /** + * The optional settings (rendering instructions) that immediately + * follow the timestamp specifier of a WebVTT cue. + */ + AV_PKT_DATA_WEBVTT_SETTINGS, + + /** + * A list of zero terminated key/value strings. There is no end marker for + * the list, so it is required to rely on the side data size to stop. This + * side data includes updated metadata which appeared in the stream. + */ + AV_PKT_DATA_METADATA_UPDATE, + + /** + * MPEGTS stream ID as uint8_t, this is required to pass the stream ID + * information from the demuxer to the corresponding muxer. + */ + AV_PKT_DATA_MPEGTS_STREAM_ID, + + /** + * Mastering display metadata (based on SMPTE-2086:2014). This metadata + * should be associated with a video stream and contains data in the form + * of the AVMasteringDisplayMetadata struct. + */ + AV_PKT_DATA_MASTERING_DISPLAY_METADATA, + + /** + * This side data should be associated with a video stream and corresponds + * to the AVSphericalMapping structure. + */ + AV_PKT_DATA_SPHERICAL, + + /** + * Content light level (based on CTA-861.3). This metadata should be + * associated with a video stream and contains data in the form of the + * AVContentLightMetadata struct. + */ + AV_PKT_DATA_CONTENT_LIGHT_LEVEL, + + /** + * ATSC A53 Part 4 Closed Captions. This metadata should be associated with + * a video stream. A53 CC bitstream is stored as uint8_t in AVPacketSideData.data. + * The number of bytes of CC data is AVPacketSideData.size. + */ + AV_PKT_DATA_A53_CC, + + /** + * This side data is encryption initialization data. + * The format is not part of ABI, use av_encryption_init_info_* methods to + * access. + */ + AV_PKT_DATA_ENCRYPTION_INIT_INFO, + + /** + * This side data contains encryption info for how to decrypt the packet. + * The format is not part of ABI, use av_encryption_info_* methods to access. + */ + AV_PKT_DATA_ENCRYPTION_INFO, + + /** + * Active Format Description data consisting of a single byte as specified + * in ETSI TS 101 154 using AVActiveFormatDescription enum. + */ + AV_PKT_DATA_AFD, + + /** + * Producer Reference Time data corresponding to the AVProducerReferenceTime struct, + * usually exported by some encoders (on demand through the prft flag set in the + * AVCodecContext export_side_data field). + */ + AV_PKT_DATA_PRFT, + + /** + * ICC profile data consisting of an opaque octet buffer following the + * format described by ISO 15076-1. + */ + AV_PKT_DATA_ICC_PROFILE, + + /** + * DOVI configuration + * ref: + * dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2, section 2.2 + * dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2, section 3.3 + * Tags are stored in struct AVDOVIDecoderConfigurationRecord. + */ + AV_PKT_DATA_DOVI_CONF, + + /** + * Timecode which conforms to SMPTE ST 12-1:2014. The data is an array of 4 uint32_t + * where the first uint32_t describes how many (1-3) of the other timecodes are used. + * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() + * function in libavutil/timecode.h. + */ + AV_PKT_DATA_S12M_TIMECODE, + + /** + * HDR10+ dynamic metadata associated with a video frame. The metadata is in + * the form of the AVDynamicHDRPlus struct and contains + * information for color volume transform - application 4 of + * SMPTE 2094-40:2016 standard. + */ + AV_PKT_DATA_DYNAMIC_HDR10_PLUS, + + /** + * IAMF Mix Gain Parameter Data associated with the audio frame. This metadata + * is in the form of the AVIAMFParamDefinition struct and contains information + * defined in sections 3.6.1 and 3.8.1 of the Immersive Audio Model and + * Formats standard. + */ + AV_PKT_DATA_IAMF_MIX_GAIN_PARAM, + + /** + * IAMF Demixing Info Parameter Data associated with the audio frame. This + * metadata is in the form of the AVIAMFParamDefinition struct and contains + * information defined in sections 3.6.1 and 3.8.2 of the Immersive Audio Model + * and Formats standard. + */ + AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM, + + /** + * IAMF Recon Gain Info Parameter Data associated with the audio frame. This + * metadata is in the form of the AVIAMFParamDefinition struct and contains + * information defined in sections 3.6.1 and 3.8.3 of the Immersive Audio Model + * and Formats standard. + */ + AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM, + + /** + * Ambient viewing environment metadata, as defined by H.274. This metadata + * should be associated with a video stream and contains data in the form + * of the AVAmbientViewingEnvironment struct. + */ + AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT, + + /** + * The number of pixels to discard from the top/bottom/left/right border of the + * decoded frame to obtain the sub-rectangle intended for presentation. + * + * @code + * u32le crop_top + * u32le crop_bottom + * u32le crop_left + * u32le crop_right + * @endcode + */ + AV_PKT_DATA_FRAME_CROPPING, + + /** + * Raw LCEVC payload data, as a uint8_t array, with NAL emulation + * bytes intact. + */ + AV_PKT_DATA_LCEVC, + + /** + * The number of side data types. + * This is not part of the public API/ABI in the sense that it may + * change when new side data types are added. + * This must stay the last enum value. + * If its value becomes huge, some code using it + * needs to be updated as it assumes it to be smaller than other limits. + */ + AV_PKT_DATA_NB +}; + +#if FF_API_QUALITY_FACTOR +#define AV_PKT_DATA_QUALITY_FACTOR AV_PKT_DATA_QUALITY_STATS //DEPRECATED +#endif + +/** + * This structure stores auxiliary information for decoding, presenting, or + * otherwise processing the coded stream. It is typically exported by demuxers + * and encoders and can be fed to decoders and muxers either in a per packet + * basis, or as global side data (applying to the entire coded stream). + * + * Global side data is handled as follows: + * - During demuxing, it may be exported through + * @ref AVStream.codecpar.side_data "AVStream's codec parameters", which can + * then be passed as input to decoders through the + * @ref AVCodecContext.coded_side_data "decoder context's side data", for + * initialization. + * - For muxing, it can be fed through @ref AVStream.codecpar.side_data + * "AVStream's codec parameters", typically the output of encoders through + * the @ref AVCodecContext.coded_side_data "encoder context's side data", for + * initialization. + * + * Packet specific side data is handled as follows: + * - During demuxing, it may be exported through @ref AVPacket.side_data + * "AVPacket's side data", which can then be passed as input to decoders. + * - For muxing, it can be fed through @ref AVPacket.side_data "AVPacket's + * side data", typically the output of encoders. + * + * Different modules may accept or export different types of side data + * depending on media type and codec. Refer to @ref AVPacketSideDataType for a + * list of defined types and where they may be found or used. + */ +typedef struct AVPacketSideData { + uint8_t *data; + size_t size; + enum AVPacketSideDataType type; +} AVPacketSideData; + +/** + * Allocate a new packet side data. + * + * @param sd pointer to an array of side data to which the side data should + * be added. *sd may be NULL, in which case the array will be + * initialized. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. The integer value will be increased by 1 on success. + * @param type side data type + * @param size desired side data size + * @param flags currently unused. Must be zero + * + * @return pointer to freshly allocated side data on success, or NULL otherwise. + */ +AVPacketSideData *av_packet_side_data_new(AVPacketSideData **psd, int *pnb_sd, + enum AVPacketSideDataType type, + size_t size, int flags); + +/** + * Wrap existing data as packet side data. + * + * @param sd pointer to an array of side data to which the side data should + * be added. *sd may be NULL, in which case the array will be + * initialized + * @param nb_sd pointer to an integer containing the number of entries in + * the array. The integer value will be increased by 1 on success. + * @param type side data type + * @param data a data array. It must be allocated with the av_malloc() family + * of functions. The ownership of the data is transferred to the + * side data array on success + * @param size size of the data array + * @param flags currently unused. Must be zero + * + * @return pointer to freshly allocated side data on success, or NULL otherwise + * On failure, the side data array is unchanged and the data remains + * owned by the caller. + */ +AVPacketSideData *av_packet_side_data_add(AVPacketSideData **sd, int *nb_sd, + enum AVPacketSideDataType type, + void *data, size_t size, int flags); + +/** + * Get side information from a side data array. + * + * @param sd the array from which the side data should be fetched + * @param nb_sd value containing the number of entries in the array. + * @param type desired side information type + * + * @return pointer to side data if present or NULL otherwise + */ +const AVPacketSideData *av_packet_side_data_get(const AVPacketSideData *sd, + int nb_sd, + enum AVPacketSideDataType type); + +/** + * Remove side data of the given type from a side data array. + * + * @param sd the array from which the side data should be removed + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be reduced by the amount of entries removed + * upon return + * @param type side information type + */ +void av_packet_side_data_remove(AVPacketSideData *sd, int *nb_sd, + enum AVPacketSideDataType type); + +/** + * Convenience function to free all the side data stored in an array, and + * the array itself. + * + * @param sd pointer to array of side data to free. Will be set to NULL + * upon return. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be set to 0 upon return. + */ +void av_packet_side_data_free(AVPacketSideData **sd, int *nb_sd); + +const char *av_packet_side_data_name(enum AVPacketSideDataType type); + +/** + * @} + */ + +/** + * @defgroup lavc_packet AVPacket + * + * Types and functions for working with AVPacket. + * @{ + */ + +/** + * This structure stores compressed data. It is typically exported by demuxers + * and then passed as input to decoders, or received as output from encoders and + * then passed to muxers. + * + * For video, it should typically contain one compressed frame. For audio it may + * contain several compressed frames. Encoders are allowed to output empty + * packets, with no compressed data, containing only side data + * (e.g. to update some stream parameters at the end of encoding). + * + * The semantics of data ownership depends on the buf field. + * If it is set, the packet data is dynamically allocated and is + * valid indefinitely until a call to av_packet_unref() reduces the + * reference count to 0. + * + * If the buf field is not set av_packet_ref() would make a copy instead + * of increasing the reference count. + * + * The side data is always allocated with av_malloc(), copied by + * av_packet_ref() and freed by av_packet_unref(). + * + * sizeof(AVPacket) being a part of the public ABI is deprecated. once + * av_init_packet() is removed, new packets will only be able to be allocated + * with av_packet_alloc(), and new fields may be added to the end of the struct + * with a minor bump. + * + * @see av_packet_alloc + * @see av_packet_ref + * @see av_packet_unref + */ +typedef struct AVPacket { + /** + * A reference to the reference-counted buffer where the packet data is + * stored. + * May be NULL, then the packet data is not reference-counted. + */ + AVBufferRef *buf; + /** + * Presentation timestamp in AVStream->time_base units; the time at which + * the decompressed packet will be presented to the user. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + * pts MUST be larger or equal to dts as presentation cannot happen before + * decompression, unless one wants to view hex dumps. Some formats misuse + * the terms dts and pts/cts to mean something different. Such timestamps + * must be converted to true pts/dts before they are stored in AVPacket. + */ + int64_t pts; + /** + * Decompression timestamp in AVStream->time_base units; the time at which + * the packet is decompressed. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + */ + int64_t dts; + uint8_t *data; + int size; + int stream_index; + /** + * A combination of AV_PKT_FLAG values + */ + int flags; + /** + * Additional packet data that can be provided by the container. + * Packet can contain several types of side information. + */ + AVPacketSideData *side_data; + int side_data_elems; + + /** + * Duration of this packet in AVStream->time_base units, 0 if unknown. + * Equals next_pts - this_pts in presentation order. + */ + int64_t duration; + + int64_t pos; ///< byte position in stream, -1 if unknown + + /** + * for some private data of the user + */ + void *opaque; + + /** + * AVBufferRef for free use by the API user. FFmpeg will never check the + * contents of the buffer ref. FFmpeg calls av_buffer_unref() on it when + * the packet is unreferenced. av_packet_copy_props() calls create a new + * reference with av_buffer_ref() for the target packet's opaque_ref field. + * + * This is unrelated to the opaque field, although it serves a similar + * purpose. + */ + AVBufferRef *opaque_ref; + + /** + * Time base of the packet's timestamps. + * In the future, this field may be set on packets output by encoders or + * demuxers, but its value will be by default ignored on input to decoders + * or muxers. + */ + AVRational time_base; +} AVPacket; + +#if FF_API_INIT_PACKET +attribute_deprecated +typedef struct AVPacketList { + AVPacket pkt; + struct AVPacketList *next; +} AVPacketList; +#endif + +#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe +#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted +/** + * Flag is used to discard packets which are required to maintain valid + * decoder state but are not required for output and should be dropped + * after decoding. + **/ +#define AV_PKT_FLAG_DISCARD 0x0004 +/** + * The packet comes from a trusted source. + * + * Otherwise-unsafe constructs such as arbitrary pointers to data + * outside the packet may be followed. + */ +#define AV_PKT_FLAG_TRUSTED 0x0008 +/** + * Flag is used to indicate packets that contain frames that can + * be discarded by the decoder. I.e. Non-reference frames. + */ +#define AV_PKT_FLAG_DISPOSABLE 0x0010 + +enum AVSideDataParamChangeFlags { + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008, +}; + +/** + * Allocate an AVPacket and set its fields to default values. The resulting + * struct must be freed using av_packet_free(). + * + * @return An AVPacket filled with default values or NULL on failure. + * + * @note this only allocates the AVPacket itself, not the data buffers. Those + * must be allocated through other means such as av_new_packet. + * + * @see av_new_packet + */ +AVPacket *av_packet_alloc(void); + +/** + * Create a new packet that references the same data as src. + * + * This is a shortcut for av_packet_alloc()+av_packet_ref(). + * + * @return newly created AVPacket on success, NULL on error. + * + * @see av_packet_alloc + * @see av_packet_ref + */ +AVPacket *av_packet_clone(const AVPacket *src); + +/** + * Free the packet, if the packet is reference counted, it will be + * unreferenced first. + * + * @param pkt packet to be freed. The pointer will be set to NULL. + * @note passing NULL is a no-op. + */ +void av_packet_free(AVPacket **pkt); + +#if FF_API_INIT_PACKET +/** + * Initialize optional fields of a packet with default values. + * + * Note, this does not touch the data and size members, which have to be + * initialized separately. + * + * @param pkt packet + * + * @see av_packet_alloc + * @see av_packet_unref + * + * @deprecated This function is deprecated. Once it's removed, + sizeof(AVPacket) will not be a part of the ABI anymore. + */ +attribute_deprecated +void av_init_packet(AVPacket *pkt); +#endif + +/** + * Allocate the payload of a packet and initialize its fields with + * default values. + * + * @param pkt packet + * @param size wanted payload size + * @return 0 if OK, AVERROR_xxx otherwise + */ +int av_new_packet(AVPacket *pkt, int size); + +/** + * Reduce packet size, correctly zeroing padding + * + * @param pkt packet + * @param size new size + */ +void av_shrink_packet(AVPacket *pkt, int size); + +/** + * Increase packet size, correctly zeroing padding + * + * @param pkt packet + * @param grow_by number of bytes by which to increase the size of the packet + */ +int av_grow_packet(AVPacket *pkt, int grow_by); + +/** + * Initialize a reference-counted packet from av_malloc()ed data. + * + * @param pkt packet to be initialized. This function will set the data, size, + * and buf fields, all others are left untouched. + * @param data Data allocated by av_malloc() to be used as packet data. If this + * function returns successfully, the data is owned by the underlying AVBuffer. + * The caller may not access the data through other means. + * @param size size of data in bytes, without the padding. I.e. the full buffer + * size is assumed to be size + AV_INPUT_BUFFER_PADDING_SIZE. + * + * @return 0 on success, a negative AVERROR on error + */ +int av_packet_from_data(AVPacket *pkt, uint8_t *data, int size); + +/** + * Allocate new information of a packet. + * + * @param pkt packet + * @param type side information type + * @param size side information size + * @return pointer to fresh allocated data or NULL otherwise + */ +uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + size_t size); + +/** + * Wrap an existing array as a packet side data. + * + * @param pkt packet + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * pkt. + * @param size side information size + * @return a non-negative number on success, a negative AVERROR code on + * failure. On failure, the packet is unchanged and the data remains + * owned by the caller. + */ +int av_packet_add_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + uint8_t *data, size_t size); + +/** + * Shrink the already allocated side data buffer + * + * @param pkt packet + * @param type side information type + * @param size new side information size + * @return 0 on success, < 0 on failure + */ +int av_packet_shrink_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + size_t size); + +/** + * Get side information from packet. + * + * @param pkt packet + * @param type desired side information type + * @param size If supplied, *size will be set to the size of the side data + * or to zero if the desired side data is not present. + * @return pointer to data if present or NULL otherwise + */ +uint8_t* av_packet_get_side_data(const AVPacket *pkt, enum AVPacketSideDataType type, + size_t *size); + +/** + * Pack a dictionary for use in side_data. + * + * @param dict The dictionary to pack. + * @param size pointer to store the size of the returned data + * @return pointer to data if successful, NULL otherwise + */ +uint8_t *av_packet_pack_dictionary(AVDictionary *dict, size_t *size); +/** + * Unpack a dictionary from side_data. + * + * @param data data from side_data + * @param size size of the data + * @param dict the metadata storage dictionary + * @return 0 on success, < 0 on failure + */ +int av_packet_unpack_dictionary(const uint8_t *data, size_t size, + AVDictionary **dict); + +/** + * Convenience function to free all the side data stored. + * All the other fields stay untouched. + * + * @param pkt packet + */ +void av_packet_free_side_data(AVPacket *pkt); + +/** + * Setup a new reference to the data described by a given packet + * + * If src is reference-counted, setup dst as a new reference to the + * buffer in src. Otherwise allocate a new buffer in dst and copy the + * data from src into it. + * + * All the other fields are copied from src. + * + * @see av_packet_unref + * + * @param dst Destination packet. Will be completely overwritten. + * @param src Source packet + * + * @return 0 on success, a negative AVERROR on error. On error, dst + * will be blank (as if returned by av_packet_alloc()). + */ +int av_packet_ref(AVPacket *dst, const AVPacket *src); + +/** + * Wipe the packet. + * + * Unreference the buffer referenced by the packet and reset the + * remaining packet fields to their default values. + * + * @param pkt The packet to be unreferenced. + */ +void av_packet_unref(AVPacket *pkt); + +/** + * Move every field in src to dst and reset src. + * + * @see av_packet_unref + * + * @param src Source packet, will be reset + * @param dst Destination packet + */ +void av_packet_move_ref(AVPacket *dst, AVPacket *src); + +/** + * Copy only "properties" fields from src to dst. + * + * Properties for the purpose of this function are all the fields + * beside those related to the packet data (buf, data, size) + * + * @param dst Destination packet + * @param src Source packet + * + * @return 0 on success AVERROR on failure. + */ +int av_packet_copy_props(AVPacket *dst, const AVPacket *src); + +/** + * Ensure the data described by a given packet is reference counted. + * + * @note This function does not ensure that the reference will be writable. + * Use av_packet_make_writable instead for that purpose. + * + * @see av_packet_ref + * @see av_packet_make_writable + * + * @param pkt packet whose data should be made reference counted. + * + * @return 0 on success, a negative AVERROR on error. On failure, the + * packet is unchanged. + */ +int av_packet_make_refcounted(AVPacket *pkt); + +/** + * Create a writable reference for the data described by a given packet, + * avoiding data copy if possible. + * + * @param pkt Packet whose data should be made writable. + * + * @return 0 on success, a negative AVERROR on failure. On failure, the + * packet is unchanged. + */ +int av_packet_make_writable(AVPacket *pkt); + +/** + * Convert valid timing fields (timestamps / durations) in a packet from one + * timebase to another. Timestamps with unknown values (AV_NOPTS_VALUE) will be + * ignored. + * + * @param pkt packet on which the conversion will be performed + * @param tb_src source timebase, in which the timing fields in pkt are + * expressed + * @param tb_dst destination timebase, to which the timing fields will be + * converted + */ +void av_packet_rescale_ts(AVPacket *pkt, AVRational tb_src, AVRational tb_dst); + +/** + * @} + */ + +#endif // AVCODEC_PACKET_H diff --git a/deps/ffmpeg/macos/include/libavcodec/qsv.h b/deps/ffmpeg/macos/include/libavcodec/qsv.h new file mode 100644 index 0000000..c156b08 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/qsv.h @@ -0,0 +1,109 @@ +/* + * Intel MediaSDK QSV public API + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_QSV_H +#define AVCODEC_QSV_H + +#include + +#include "libavutil/buffer.h" + +/** + * This struct is used for communicating QSV parameters between libavcodec and + * the caller. It is managed by the caller and must be assigned to + * AVCodecContext.hwaccel_context. + * - decoding: hwaccel_context must be set on return from the get_format() + * callback + * - encoding: hwaccel_context must be set before avcodec_open2() + */ +typedef struct AVQSVContext { + /** + * If non-NULL, the session to use for encoding or decoding. + * Otherwise, libavcodec will try to create an internal session. + */ + mfxSession session; + + /** + * The IO pattern to use. + */ + int iopattern; + + /** + * Extra buffers to pass to encoder or decoder initialization. + */ + mfxExtBuffer **ext_buffers; + int nb_ext_buffers; + + /** + * Encoding only. If this field is set to non-zero by the caller, libavcodec + * will create an mfxExtOpaqueSurfaceAlloc extended buffer and pass it to + * the encoder initialization. This only makes sense if iopattern is also + * set to MFX_IOPATTERN_IN_OPAQUE_MEMORY. + * + * The number of allocated opaque surfaces will be the sum of the number + * required by the encoder and the user-provided value nb_opaque_surfaces. + * The array of the opaque surfaces will be exported to the caller through + * the opaque_surfaces field. + * + * The caller must set this field to zero for oneVPL (MFX_VERSION >= 2.0) + */ + int opaque_alloc; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. Before + * calling avcodec_open2(), the caller should set this field to the number + * of extra opaque surfaces to allocate beyond what is required by the + * encoder. + * + * On return from avcodec_open2(), this field will be set by libavcodec to + * the total number of allocated opaque surfaces. + */ + int nb_opaque_surfaces; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. On return + * from avcodec_open2(), this field will be used by libavcodec to export the + * array of the allocated opaque surfaces to the caller, so they can be + * passed to other parts of the pipeline. + * + * The buffer reference exported here is owned and managed by libavcodec, + * the callers should make their own reference with av_buffer_ref() and free + * it with av_buffer_unref() when it is no longer needed. + * + * The buffer data is an nb_opaque_surfaces-sized array of mfxFrameSurface1. + */ + AVBufferRef *opaque_surfaces; + + /** + * Encoding only, and only if opaque_alloc is set to non-zero. On return + * from avcodec_open2(), this field will be set to the surface type used in + * the opaque allocation request. + */ + int opaque_alloc_type; +} AVQSVContext; + +/** + * Allocate a new context. + * + * It must be freed by the caller with av_free(). + */ +AVQSVContext *av_qsv_alloc_context(void); + +#endif /* AVCODEC_QSV_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/vdpau.h b/deps/ffmpeg/macos/include/libavcodec/vdpau.h new file mode 100644 index 0000000..8021c25 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/vdpau.h @@ -0,0 +1,171 @@ +/* + * The Video Decode and Presentation API for UNIX (VDPAU) is used for + * hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1. + * + * Copyright (C) 2008 NVIDIA + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VDPAU_H +#define AVCODEC_VDPAU_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_vdpau + * Public libavcodec VDPAU header. + */ + + +/** + * @defgroup lavc_codec_hwaccel_vdpau VDPAU Decoder and Renderer + * @ingroup lavc_codec_hwaccel + * + * VDPAU hardware acceleration has two modules + * - VDPAU decoding + * - VDPAU presentation + * + * The VDPAU decoding module parses all headers using FFmpeg + * parsing mechanisms and uses VDPAU for the actual decoding. + * + * As per the current implementation, the actual decoding + * and rendering (API calls) are done as part of the VDPAU + * presentation (vo_vdpau.c) module. + * + * @{ + */ + +#include + +#include "libavutil/avconfig.h" +#include "libavutil/attributes.h" + +#include "avcodec.h" + +struct AVCodecContext; +struct AVFrame; + +typedef int (*AVVDPAU_Render2)(struct AVCodecContext *, struct AVFrame *, + const VdpPictureInfo *, uint32_t, + const VdpBitstreamBuffer *); + +/** + * This structure is used to share data between the libavcodec library and + * the client video application. + * This structure will be allocated and stored in AVCodecContext.hwaccel_context + * by av_vdpau_bind_context(). Members can be set by the user once + * during initialization or through each AVCodecContext.get_buffer() + * function call. In any case, they must be valid prior to calling + * decoding functions. + * + * The size of this structure is not a part of the public ABI and must not + * be used outside of libavcodec. + */ +typedef struct AVVDPAUContext { + /** + * VDPAU decoder handle + * + * Set by user. + */ + VdpDecoder decoder; + + /** + * VDPAU decoder render callback + * + * Set by the user. + */ + VdpDecoderRender *render; + + AVVDPAU_Render2 render2; +} AVVDPAUContext; + +#if FF_API_VDPAU_ALLOC_GET_SET +/** + * @brief allocation function for AVVDPAUContext + * + * Allows extending the struct without breaking API/ABI + * @deprecated use av_vdpau_bind_context() instead + */ +attribute_deprecated +AVVDPAUContext *av_alloc_vdpaucontext(void); + +/** + * @deprecated render2 is public and can be accessed directly + */ +attribute_deprecated +AVVDPAU_Render2 av_vdpau_hwaccel_get_render2(const AVVDPAUContext *); +/** + * @deprecated render2 is public and can be accessed directly + */ +attribute_deprecated +void av_vdpau_hwaccel_set_render2(AVVDPAUContext *, AVVDPAU_Render2); +#endif + +/** + * Associate a VDPAU device with a codec context for hardware acceleration. + * This function is meant to be called from the get_format() codec callback, + * or earlier. It can also be called after avcodec_flush_buffers() to change + * the underlying VDPAU device mid-stream (e.g. to recover from non-transparent + * display preemption). + * + * @note get_format() must return AV_PIX_FMT_VDPAU if this function completes + * successfully. + * + * @param avctx decoding context whose get_format() callback is invoked + * @param device VDPAU device handle to use for hardware acceleration + * @param get_proc_address VDPAU device driver + * @param flags zero of more OR'd AV_HWACCEL_FLAG_* flags + * + * @return 0 on success, an AVERROR code on failure. + */ +int av_vdpau_bind_context(AVCodecContext *avctx, VdpDevice device, + VdpGetProcAddress *get_proc_address, unsigned flags); + +/** + * Gets the parameters to create an adequate VDPAU video surface for the codec + * context using VDPAU hardware decoding acceleration. + * + * @note Behavior is undefined if the context was not successfully bound to a + * VDPAU device using av_vdpau_bind_context(). + * + * @param avctx the codec context being used for decoding the stream + * @param type storage space for the VDPAU video surface chroma type + * (or NULL to ignore) + * @param width storage space for the VDPAU video surface pixel width + * (or NULL to ignore) + * @param height storage space for the VDPAU video surface pixel height + * (or NULL to ignore) + * + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_vdpau_get_surface_parameters(AVCodecContext *avctx, VdpChromaType *type, + uint32_t *width, uint32_t *height); + +#if FF_API_VDPAU_ALLOC_GET_SET +/** + * Allocate an AVVDPAUContext. + * + * @return Newly-allocated AVVDPAUContext or NULL on failure. + * @deprecated use av_vdpau_bind_context() instead + */ +attribute_deprecated +AVVDPAUContext *av_vdpau_alloc_context(void); +#endif + +/** @} */ + +#endif /* AVCODEC_VDPAU_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/version.h b/deps/ffmpeg/macos/include/libavcodec/version.h new file mode 100644 index 0000000..b6ca025 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/version.h @@ -0,0 +1,45 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VERSION_H +#define AVCODEC_VERSION_H + +/** + * @file + * @ingroup libavc + * Libavcodec version macros. + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVCODEC_VERSION_MINOR 19 +#define LIBAVCODEC_VERSION_MICRO 101 + +#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT + +#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) + +#endif /* AVCODEC_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/version_major.h b/deps/ffmpeg/macos/include/libavcodec/version_major.h new file mode 100644 index 0000000..63df40e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/version_major.h @@ -0,0 +1,52 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VERSION_MAJOR_H +#define AVCODEC_VERSION_MAJOR_H + +/** + * @file + * @ingroup libavc + * Libavcodec version macros. + */ + +#define LIBAVCODEC_VERSION_MAJOR 61 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + */ + +#define FF_API_INIT_PACKET (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_SUBFRAMES (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_TICKS_PER_FRAME (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_DROPCHANGED (LIBAVCODEC_VERSION_MAJOR < 62) + +#define FF_API_AVFFT (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_FF_PROFILE_LEVEL (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_AVCODEC_CLOSE (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_BUFFER_MIN_SIZE (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_VDPAU_ALLOC_GET_SET (LIBAVCODEC_VERSION_MAJOR < 62) +#define FF_API_QUALITY_FACTOR (LIBAVCODEC_VERSION_MAJOR < 62) + +#endif /* AVCODEC_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/videotoolbox.h b/deps/ffmpeg/macos/include/libavcodec/videotoolbox.h new file mode 100644 index 0000000..d68d76e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/videotoolbox.h @@ -0,0 +1,85 @@ +/* + * Videotoolbox hardware acceleration + * + * copyright (c) 2012 Sebastien Zwickert + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VIDEOTOOLBOX_H +#define AVCODEC_VIDEOTOOLBOX_H + +/** + * @file + * @ingroup lavc_codec_hwaccel_videotoolbox + * Public libavcodec Videotoolbox header. + */ + +/** + * @defgroup lavc_codec_hwaccel_videotoolbox VideoToolbox Decoder + * @ingroup lavc_codec_hwaccel + * + * Hardware accelerated decoding using VideoToolbox on Apple Platforms + * + * @{ + */ + +#include + +#define Picture QuickdrawPicture +#include +#undef Picture + +#include "libavcodec/avcodec.h" + +#include "libavutil/attributes.h" + +/** + * This struct holds all the information that needs to be passed + * between the caller and libavcodec for initializing Videotoolbox decoding. + * Its size is not a part of the public ABI, it must be allocated with + * av_videotoolbox_alloc_context() and freed with av_free(). + */ +typedef struct AVVideotoolboxContext { + /** + * Videotoolbox decompression session object. + */ + VTDecompressionSessionRef session; + + /** + * CVPixelBuffer Format Type that Videotoolbox will use for decoded frames. + * set by the caller. If this is set to 0, then no specific format is + * requested from the decoder, and its native format is output. + */ + OSType cv_pix_fmt_type; + + /** + * CoreMedia Format Description that Videotoolbox will use to create the decompression session. + */ + CMVideoFormatDescriptionRef cm_fmt_desc; + + /** + * CoreMedia codec type that Videotoolbox will use to create the decompression session. + */ + int cm_codec_type; +} AVVideotoolboxContext; + +/** + * @} + */ + +#endif /* AVCODEC_VIDEOTOOLBOX_H */ diff --git a/deps/ffmpeg/macos/include/libavcodec/vorbis_parser.h b/deps/ffmpeg/macos/include/libavcodec/vorbis_parser.h new file mode 100644 index 0000000..789932a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavcodec/vorbis_parser.h @@ -0,0 +1,74 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * A public API for Vorbis parsing + * + * Determines the duration for each packet. + */ + +#ifndef AVCODEC_VORBIS_PARSER_H +#define AVCODEC_VORBIS_PARSER_H + +#include + +typedef struct AVVorbisParseContext AVVorbisParseContext; + +/** + * Allocate and initialize the Vorbis parser using headers in the extradata. + */ +AVVorbisParseContext *av_vorbis_parse_init(const uint8_t *extradata, + int extradata_size); + +/** + * Free the parser and everything associated with it. + */ +void av_vorbis_parse_free(AVVorbisParseContext **s); + +#define VORBIS_FLAG_HEADER 0x00000001 +#define VORBIS_FLAG_COMMENT 0x00000002 +#define VORBIS_FLAG_SETUP 0x00000004 + +/** + * Get the duration for a Vorbis packet. + * + * If @p flags is @c NULL, + * special frames are considered invalid. + * + * @param s Vorbis parser context + * @param buf buffer containing a Vorbis frame + * @param buf_size size of the buffer + * @param flags flags for special frames + */ +int av_vorbis_parse_frame_flags(AVVorbisParseContext *s, const uint8_t *buf, + int buf_size, int *flags); + +/** + * Get the duration for a Vorbis packet. + * + * @param s Vorbis parser context + * @param buf buffer containing a Vorbis frame + * @param buf_size size of the buffer + */ +int av_vorbis_parse_frame(AVVorbisParseContext *s, const uint8_t *buf, + int buf_size); + +void av_vorbis_parse_reset(AVVorbisParseContext *s); + +#endif /* AVCODEC_VORBIS_PARSER_H */ diff --git a/deps/ffmpeg/macos/include/libavdevice/avdevice.h b/deps/ffmpeg/macos/include/libavdevice/avdevice.h new file mode 100644 index 0000000..887fd5e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavdevice/avdevice.h @@ -0,0 +1,397 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVDEVICE_AVDEVICE_H +#define AVDEVICE_AVDEVICE_H + +#include "version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "version.h" +#endif + +/** + * @file + * @ingroup lavd + * Main libavdevice API header + */ + +/** + * @defgroup lavd libavdevice + * Special devices muxing/demuxing library. + * + * Libavdevice is a complementary library to @ref libavf "libavformat". It + * provides various "special" platform-specific muxers and demuxers, e.g. for + * grabbing devices, audio capture and playback etc. As a consequence, the + * (de)muxers in libavdevice are of the AVFMT_NOFILE type (they use their own + * I/O functions). The filename passed to avformat_open_input() often does not + * refer to an actually existing file, but has some special device-specific + * meaning - e.g. for xcbgrab it is the display name. + * + * To use libavdevice, simply call avdevice_register_all() to register all + * compiled muxers and demuxers. They all use standard libavformat API. + * + * @{ + */ + +#include "libavutil/log.h" +#include "libavutil/opt.h" +#include "libavutil/dict.h" +#include "libavformat/avformat.h" + +/** + * Return the LIBAVDEVICE_VERSION_INT constant. + */ +unsigned avdevice_version(void); + +/** + * Return the libavdevice build-time configuration. + */ +const char *avdevice_configuration(void); + +/** + * Return the libavdevice license. + */ +const char *avdevice_license(void); + +/** + * Initialize libavdevice and register all the input and output devices. + */ +void avdevice_register_all(void); + +/** + * Audio input devices iterator. + * + * If d is NULL, returns the first registered input audio/video device, + * if d is non-NULL, returns the next registered input audio/video device after d + * or NULL if d is the last one. + */ +const AVInputFormat *av_input_audio_device_next(const AVInputFormat *d); + +/** + * Video input devices iterator. + * + * If d is NULL, returns the first registered input audio/video device, + * if d is non-NULL, returns the next registered input audio/video device after d + * or NULL if d is the last one. + */ +const AVInputFormat *av_input_video_device_next(const AVInputFormat *d); + +/** + * Audio output devices iterator. + * + * If d is NULL, returns the first registered output audio/video device, + * if d is non-NULL, returns the next registered output audio/video device after d + * or NULL if d is the last one. + */ +const AVOutputFormat *av_output_audio_device_next(const AVOutputFormat *d); + +/** + * Video output devices iterator. + * + * If d is NULL, returns the first registered output audio/video device, + * if d is non-NULL, returns the next registered output audio/video device after d + * or NULL if d is the last one. + */ +const AVOutputFormat *av_output_video_device_next(const AVOutputFormat *d); + +typedef struct AVDeviceRect { + int x; /**< x coordinate of top left corner */ + int y; /**< y coordinate of top left corner */ + int width; /**< width */ + int height; /**< height */ +} AVDeviceRect; + +/** + * Message types used by avdevice_app_to_dev_control_message(). + */ +enum AVAppToDevMessageType { + /** + * Dummy message. + */ + AV_APP_TO_DEV_NONE = MKBETAG('N','O','N','E'), + + /** + * Window size change message. + * + * Message is sent to the device every time the application changes the size + * of the window device renders to. + * Message should also be sent right after window is created. + * + * data: AVDeviceRect: new window size. + */ + AV_APP_TO_DEV_WINDOW_SIZE = MKBETAG('G','E','O','M'), + + /** + * Repaint request message. + * + * Message is sent to the device when window has to be repainted. + * + * data: AVDeviceRect: area required to be repainted. + * NULL: whole area is required to be repainted. + */ + AV_APP_TO_DEV_WINDOW_REPAINT = MKBETAG('R','E','P','A'), + + /** + * Request pause/play. + * + * Application requests pause/unpause playback. + * Mostly usable with devices that have internal buffer. + * By default devices are not paused. + * + * data: NULL + */ + AV_APP_TO_DEV_PAUSE = MKBETAG('P', 'A', 'U', ' '), + AV_APP_TO_DEV_PLAY = MKBETAG('P', 'L', 'A', 'Y'), + AV_APP_TO_DEV_TOGGLE_PAUSE = MKBETAG('P', 'A', 'U', 'T'), + + /** + * Volume control message. + * + * Set volume level. It may be device-dependent if volume + * is changed per stream or system wide. Per stream volume + * change is expected when possible. + * + * data: double: new volume with range of 0.0 - 1.0. + */ + AV_APP_TO_DEV_SET_VOLUME = MKBETAG('S', 'V', 'O', 'L'), + + /** + * Mute control messages. + * + * Change mute state. It may be device-dependent if mute status + * is changed per stream or system wide. Per stream mute status + * change is expected when possible. + * + * data: NULL. + */ + AV_APP_TO_DEV_MUTE = MKBETAG(' ', 'M', 'U', 'T'), + AV_APP_TO_DEV_UNMUTE = MKBETAG('U', 'M', 'U', 'T'), + AV_APP_TO_DEV_TOGGLE_MUTE = MKBETAG('T', 'M', 'U', 'T'), + + /** + * Get volume/mute messages. + * + * Force the device to send AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED or + * AV_DEV_TO_APP_MUTE_STATE_CHANGED command respectively. + * + * data: NULL. + */ + AV_APP_TO_DEV_GET_VOLUME = MKBETAG('G', 'V', 'O', 'L'), + AV_APP_TO_DEV_GET_MUTE = MKBETAG('G', 'M', 'U', 'T'), +}; + +/** + * Message types used by avdevice_dev_to_app_control_message(). + */ +enum AVDevToAppMessageType { + /** + * Dummy message. + */ + AV_DEV_TO_APP_NONE = MKBETAG('N','O','N','E'), + + /** + * Create window buffer message. + * + * Device requests to create a window buffer. Exact meaning is device- + * and application-dependent. Message is sent before rendering first + * frame and all one-shot initializations should be done here. + * Application is allowed to ignore preferred window buffer size. + * + * @note: Application is obligated to inform about window buffer size + * with AV_APP_TO_DEV_WINDOW_SIZE message. + * + * data: AVDeviceRect: preferred size of the window buffer. + * NULL: no preferred size of the window buffer. + */ + AV_DEV_TO_APP_CREATE_WINDOW_BUFFER = MKBETAG('B','C','R','E'), + + /** + * Prepare window buffer message. + * + * Device requests to prepare a window buffer for rendering. + * Exact meaning is device- and application-dependent. + * Message is sent before rendering of each frame. + * + * data: NULL. + */ + AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER = MKBETAG('B','P','R','E'), + + /** + * Display window buffer message. + * + * Device requests to display a window buffer. + * Message is sent when new frame is ready to be displayed. + * Usually buffers need to be swapped in handler of this message. + * + * data: NULL. + */ + AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER = MKBETAG('B','D','I','S'), + + /** + * Destroy window buffer message. + * + * Device requests to destroy a window buffer. + * Message is sent when device is about to be destroyed and window + * buffer is not required anymore. + * + * data: NULL. + */ + AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER = MKBETAG('B','D','E','S'), + + /** + * Buffer fullness status messages. + * + * Device signals buffer overflow/underflow. + * + * data: NULL. + */ + AV_DEV_TO_APP_BUFFER_OVERFLOW = MKBETAG('B','O','F','L'), + AV_DEV_TO_APP_BUFFER_UNDERFLOW = MKBETAG('B','U','F','L'), + + /** + * Buffer readable/writable. + * + * Device informs that buffer is readable/writable. + * When possible, device informs how many bytes can be read/write. + * + * @warning Device may not inform when number of bytes than can be read/write changes. + * + * data: int64_t: amount of bytes available to read/write. + * NULL: amount of bytes available to read/write is not known. + */ + AV_DEV_TO_APP_BUFFER_READABLE = MKBETAG('B','R','D',' '), + AV_DEV_TO_APP_BUFFER_WRITABLE = MKBETAG('B','W','R',' '), + + /** + * Mute state change message. + * + * Device informs that mute state has changed. + * + * data: int: 0 for not muted state, non-zero for muted state. + */ + AV_DEV_TO_APP_MUTE_STATE_CHANGED = MKBETAG('C','M','U','T'), + + /** + * Volume level change message. + * + * Device informs that volume level has changed. + * + * data: double: new volume with range of 0.0 - 1.0. + */ + AV_DEV_TO_APP_VOLUME_LEVEL_CHANGED = MKBETAG('C','V','O','L'), +}; + +/** + * Send control message from application to device. + * + * @param s device context. + * @param type message type. + * @param data message data. Exact type depends on message type. + * @param data_size size of message data. + * @return >= 0 on success, negative on error. + * AVERROR(ENOSYS) when device doesn't implement handler of the message. + */ +int avdevice_app_to_dev_control_message(struct AVFormatContext *s, + enum AVAppToDevMessageType type, + void *data, size_t data_size); + +/** + * Send control message from device to application. + * + * @param s device context. + * @param type message type. + * @param data message data. Can be NULL. + * @param data_size size of message data. + * @return >= 0 on success, negative on error. + * AVERROR(ENOSYS) when application doesn't implement handler of the message. + */ +int avdevice_dev_to_app_control_message(struct AVFormatContext *s, + enum AVDevToAppMessageType type, + void *data, size_t data_size); + +/** + * Structure describes basic parameters of the device. + */ +typedef struct AVDeviceInfo { + char *device_name; /**< device name, format depends on device */ + char *device_description; /**< human friendly name */ + enum AVMediaType *media_types; /**< array indicating what media types(s), if any, a device can provide. If null, cannot provide any */ + int nb_media_types; /**< length of media_types array, 0 if device cannot provide any media types */ +} AVDeviceInfo; + +/** + * List of devices. + */ +typedef struct AVDeviceInfoList { + AVDeviceInfo **devices; /**< list of autodetected devices */ + int nb_devices; /**< number of autodetected devices */ + int default_device; /**< index of default device or -1 if no default */ +} AVDeviceInfoList; + +/** + * List devices. + * + * Returns available device names and their parameters. + * + * @note: Some devices may accept system-dependent device names that cannot be + * autodetected. The list returned by this function cannot be assumed to + * be always completed. + * + * @param s device context. + * @param[out] device_list list of autodetected devices. + * @return count of autodetected devices, negative on error. + */ +int avdevice_list_devices(struct AVFormatContext *s, AVDeviceInfoList **device_list); + +/** + * Convenient function to free result of avdevice_list_devices(). + * + * @param device_list device list to be freed. + */ +void avdevice_free_list_devices(AVDeviceInfoList **device_list); + +/** + * List devices. + * + * Returns available device names and their parameters. + * These are convinient wrappers for avdevice_list_devices(). + * Device context is allocated and deallocated internally. + * + * @param device device format. May be NULL if device name is set. + * @param device_name device name. May be NULL if device format is set. + * @param device_options An AVDictionary filled with device-private options. May be NULL. + * The same options must be passed later to avformat_write_header() for output + * devices or avformat_open_input() for input devices, or at any other place + * that affects device-private options. + * @param[out] device_list list of autodetected devices + * @return count of autodetected devices, negative on error. + * @note device argument takes precedence over device_name when both are set. + */ +int avdevice_list_input_sources(const AVInputFormat *device, const char *device_name, + AVDictionary *device_options, AVDeviceInfoList **device_list); +int avdevice_list_output_sinks(const AVOutputFormat *device, const char *device_name, + AVDictionary *device_options, AVDeviceInfoList **device_list); + +/** + * @} + */ + +#endif /* AVDEVICE_AVDEVICE_H */ diff --git a/deps/ffmpeg/macos/include/libavdevice/version.h b/deps/ffmpeg/macos/include/libavdevice/version.h new file mode 100644 index 0000000..7608a86 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavdevice/version.h @@ -0,0 +1,45 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVDEVICE_VERSION_H +#define AVDEVICE_VERSION_H + +/** + * @file + * @ingroup lavd + * Libavdevice version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVDEVICE_VERSION_MINOR 3 +#define LIBAVDEVICE_VERSION_MICRO 100 + +#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ + LIBAVDEVICE_VERSION_MINOR, \ + LIBAVDEVICE_VERSION_MICRO) +#define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \ + LIBAVDEVICE_VERSION_MINOR, \ + LIBAVDEVICE_VERSION_MICRO) +#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT + +#define LIBAVDEVICE_IDENT "Lavd" AV_STRINGIFY(LIBAVDEVICE_VERSION) + +#endif /* AVDEVICE_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavdevice/version_major.h b/deps/ffmpeg/macos/include/libavdevice/version_major.h new file mode 100644 index 0000000..f16abb6 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavdevice/version_major.h @@ -0,0 +1,43 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVDEVICE_VERSION_MAJOR_H +#define AVDEVICE_VERSION_MAJOR_H + +/** + * @file + * @ingroup lavd + * Libavdevice version macros + */ + +#define LIBAVDEVICE_VERSION_MAJOR 61 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + */ + +// reminder to remove the bktr device on next major bump +#define FF_API_BKTR_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62) +// reminder to remove the opengl device on next major bump +#define FF_API_OPENGL_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62) +// reminder to remove the sdl2 device on next major bump +#define FF_API_SDL2_DEVICE (LIBAVDEVICE_VERSION_MAJOR < 62) + +#endif /* AVDEVICE_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libavfilter/avfilter.h b/deps/ffmpeg/macos/include/libavfilter/avfilter.h new file mode 100644 index 0000000..1401577 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavfilter/avfilter.h @@ -0,0 +1,1379 @@ +/* + * filter layer + * Copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AVFILTER_H +#define AVFILTER_AVFILTER_H + +/** + * @file + * @ingroup lavfi + * Main libavfilter public API header + */ + +/** + * @defgroup lavfi libavfilter + * Graph-based frame editing library. + * + * @{ + */ + +#include + +#include "libavutil/attributes.h" +#include "libavutil/avutil.h" +#include "libavutil/buffer.h" +#include "libavutil/dict.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/samplefmt.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +#include "libavfilter/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libavfilter/version.h" +#endif + +/** + * Return the LIBAVFILTER_VERSION_INT constant. + */ +unsigned avfilter_version(void); + +/** + * Return the libavfilter build-time configuration. + */ +const char *avfilter_configuration(void); + +/** + * Return the libavfilter license. + */ +const char *avfilter_license(void); + +typedef struct AVFilterContext AVFilterContext; +typedef struct AVFilterLink AVFilterLink; +typedef struct AVFilterPad AVFilterPad; +typedef struct AVFilterFormats AVFilterFormats; +typedef struct AVFilterChannelLayouts AVFilterChannelLayouts; + +/** + * Get the name of an AVFilterPad. + * + * @param pads an array of AVFilterPads + * @param pad_idx index of the pad in the array; it is the caller's + * responsibility to ensure the index is valid + * + * @return name of the pad_idx'th pad in pads + */ +const char *avfilter_pad_get_name(const AVFilterPad *pads, int pad_idx); + +/** + * Get the type of an AVFilterPad. + * + * @param pads an array of AVFilterPads + * @param pad_idx index of the pad in the array; it is the caller's + * responsibility to ensure the index is valid + * + * @return type of the pad_idx'th pad in pads + */ +enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); + +/** + * Lists of formats / etc. supported by an end of a link. + * + * This structure is directly part of AVFilterLink, in two copies: + * one for the source filter, one for the destination filter. + + * These lists are used for negotiating the format to actually be used, + * which will be loaded into the format and channel_layout members of + * AVFilterLink, when chosen. + */ +typedef struct AVFilterFormatsConfig { + + /** + * List of supported formats (pixel or sample). + */ + AVFilterFormats *formats; + + /** + * Lists of supported sample rates, only for audio. + */ + AVFilterFormats *samplerates; + + /** + * Lists of supported channel layouts, only for audio. + */ + AVFilterChannelLayouts *channel_layouts; + + /** + * Lists of supported YUV color metadata, only for YUV video. + */ + AVFilterFormats *color_spaces; ///< AVColorSpace + AVFilterFormats *color_ranges; ///< AVColorRange + +} AVFilterFormatsConfig; + +/** + * The number of the filter inputs is not determined just by AVFilter.inputs. + * The filter might add additional inputs during initialization depending on the + * options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_INPUTS (1 << 0) +/** + * The number of the filter outputs is not determined just by AVFilter.outputs. + * The filter might add additional outputs during initialization depending on + * the options supplied to it. + */ +#define AVFILTER_FLAG_DYNAMIC_OUTPUTS (1 << 1) +/** + * The filter supports multithreading by splitting frames into multiple parts + * and processing them concurrently. + */ +#define AVFILTER_FLAG_SLICE_THREADS (1 << 2) +/** + * The filter is a "metadata" filter - it does not modify the frame data in any + * way. It may only affect the metadata (i.e. those fields copied by + * av_frame_copy_props()). + * + * More precisely, this means: + * - video: the data of any frame output by the filter must be exactly equal to + * some frame that is received on one of its inputs. Furthermore, all frames + * produced on a given output must correspond to frames received on the same + * input and their order must be unchanged. Note that the filter may still + * drop or duplicate the frames. + * - audio: the data produced by the filter on any of its outputs (viewed e.g. + * as an array of interleaved samples) must be exactly equal to the data + * received by the filter on one of its inputs. + */ +#define AVFILTER_FLAG_METADATA_ONLY (1 << 3) + +/** + * The filter can create hardware frames using AVFilterContext.hw_device_ctx. + */ +#define AVFILTER_FLAG_HWDEVICE (1 << 4) +/** + * Some filters support a generic "enable" expression option that can be used + * to enable or disable a filter in the timeline. Filters supporting this + * option have this flag set. When the enable expression is false, the default + * no-op filter_frame() function is called in place of the filter_frame() + * callback defined on each input pad, thus the frame is passed unchanged to + * the next filters. + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC (1 << 16) +/** + * Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will + * have its filter_frame() callback(s) called as usual even when the enable + * expression is false. The filter will disable filtering within the + * filter_frame() callback(s) itself, for example executing code depending on + * the AVFilterContext->is_disabled value. + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL (1 << 17) +/** + * Handy mask to test whether the filter supports or no the timeline feature + * (internally or generically). + */ +#define AVFILTER_FLAG_SUPPORT_TIMELINE (AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL) + +/** + * Filter definition. This defines the pads a filter contains, and all the + * callback functions used to interact with the filter. + */ +typedef struct AVFilter { + /** + * Filter name. Must be non-NULL and unique among filters. + */ + const char *name; + + /** + * A description of the filter. May be NULL. + * + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *description; + + /** + * List of static inputs. + * + * NULL if there are no (static) inputs. Instances of filters with + * AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in + * this list. + */ + const AVFilterPad *inputs; + + /** + * List of static outputs. + * + * NULL if there are no (static) outputs. Instances of filters with + * AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in + * this list. + */ + const AVFilterPad *outputs; + + /** + * A class for the private data, used to declare filter private AVOptions. + * This field is NULL for filters that do not declare any options. + * + * If this field is non-NULL, the first member of the filter private data + * must be a pointer to AVClass, which will be set by libavfilter generic + * code to this class. + */ + const AVClass *priv_class; + + /** + * A combination of AVFILTER_FLAG_* + */ + int flags; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavfilter and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + + /** + * The number of entries in the list of inputs. + */ + uint8_t nb_inputs; + + /** + * The number of entries in the list of outputs. + */ + uint8_t nb_outputs; + + /** + * This field determines the state of the formats union. + * It is an enum FilterFormatsState value. + */ + uint8_t formats_state; + + /** + * Filter pre-initialization function + * + * This callback will be called immediately after the filter context is + * allocated, to allow allocating and initing sub-objects. + * + * If this callback is not NULL, the uninit callback will be called on + * allocation failure. + * + * @return 0 on success, + * AVERROR code on failure (but the code will be + * dropped and treated as ENOMEM by the calling code) + */ + int (*preinit)(AVFilterContext *ctx); + + /** + * Filter initialization function. + * + * This callback will be called only once during the filter lifetime, after + * all the options have been set, but before links between filters are + * established and format negotiation is done. + * + * Basic filter initialization should be done here. Filters with dynamic + * inputs and/or outputs should create those inputs/outputs here based on + * provided options. No more changes to this filter's inputs/outputs can be + * done after this callback. + * + * This callback must not assume that the filter links exist or frame + * parameters are known. + * + * @ref AVFilter.uninit "uninit" is guaranteed to be called even if + * initialization fails, so this callback does not have to clean up on + * failure. + * + * @return 0 on success, a negative AVERROR on failure + */ + int (*init)(AVFilterContext *ctx); + + /** + * Filter uninitialization function. + * + * Called only once right before the filter is freed. Should deallocate any + * memory held by the filter, release any buffer references, etc. It does + * not need to deallocate the AVFilterContext.priv memory itself. + * + * This callback may be called even if @ref AVFilter.init "init" was not + * called or failed, so it must be prepared to handle such a situation. + */ + void (*uninit)(AVFilterContext *ctx); + + /** + * The state of the following union is determined by formats_state. + * See the documentation of enum FilterFormatsState in internal.h. + */ + union { + /** + * Query formats supported by the filter on its inputs and outputs. + * + * This callback is called after the filter is initialized (so the inputs + * and outputs are fixed), shortly before the format negotiation. This + * callback may be called more than once. + * + * This callback must set ::AVFilterLink's + * @ref AVFilterFormatsConfig.formats "outcfg.formats" + * on every input link and + * @ref AVFilterFormatsConfig.formats "incfg.formats" + * on every output link to a list of pixel/sample formats that the filter + * supports on that link. + * For video links, this filter may also set + * @ref AVFilterFormatsConfig.color_spaces "incfg.color_spaces" + * / + * @ref AVFilterFormatsConfig.color_spaces "outcfg.color_spaces" + * and @ref AVFilterFormatsConfig.color_ranges "incfg.color_ranges" + * / + * @ref AVFilterFormatsConfig.color_ranges "outcfg.color_ranges" + * analogously. + * For audio links, this filter must also set + * @ref AVFilterFormatsConfig.samplerates "incfg.samplerates" + * / + * @ref AVFilterFormatsConfig.samplerates "outcfg.samplerates" + * and @ref AVFilterFormatsConfig.channel_layouts "incfg.channel_layouts" + * / + * @ref AVFilterFormatsConfig.channel_layouts "outcfg.channel_layouts" + * analogously. + * + * This callback must never be NULL if the union is in this state. + * + * @return zero on success, a negative value corresponding to an + * AVERROR code otherwise + */ + int (*query_func)(AVFilterContext *); + + /** + * Same as query_func(), except this function writes the results into + * provided arrays. + * + * @param cfg_in array of input format configurations with as many + * members as the filters has inputs (NULL when there are + * no inputs); + * @param cfg_out array of output format configurations with as many + * members as the filters has outputs (NULL when there + * are no outputs); + */ + int (*query_func2)(const AVFilterContext *, + struct AVFilterFormatsConfig **cfg_in, + struct AVFilterFormatsConfig **cfg_out); + /** + * A pointer to an array of admissible pixel formats delimited + * by AV_PIX_FMT_NONE. The generic code will use this list + * to indicate that this filter supports each of these pixel formats, + * provided that all inputs and outputs use the same pixel format. + * + * In addition to that the generic code will mark all inputs + * and all outputs as supporting all color spaces and ranges, as + * long as all inputs and outputs use the same color space/range. + * + * This list must never be NULL if the union is in this state. + * The type of all inputs and outputs of filters using this must + * be AVMEDIA_TYPE_VIDEO. + */ + const enum AVPixelFormat *pixels_list; + /** + * Analogous to pixels, but delimited by AV_SAMPLE_FMT_NONE + * and restricted to filters that only have AVMEDIA_TYPE_AUDIO + * inputs and outputs. + * + * In addition to that the generic code will mark all inputs + * and all outputs as supporting all sample rates and every + * channel count and channel layout, as long as all inputs + * and outputs use the same sample rate and channel count/layout. + */ + const enum AVSampleFormat *samples_list; + /** + * Equivalent to { pix_fmt, AV_PIX_FMT_NONE } as pixels_list. + */ + enum AVPixelFormat pix_fmt; + /** + * Equivalent to { sample_fmt, AV_SAMPLE_FMT_NONE } as samples_list. + */ + enum AVSampleFormat sample_fmt; + } formats; + + int priv_size; ///< size of private data to allocate for the filter + + int flags_internal; ///< Additional flags for avfilter internal use only. + + /** + * Make the filter instance process a command. + * + * @param cmd the command to process, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. This must not change when the command is not supported. + * @param flags if AVFILTER_CMD_FLAG_FAST is set and the command would be + * time consuming then a filter should treat it like an unsupported command + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ + int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags); + + /** + * Filter activation function. + * + * Called when any processing is needed from the filter, instead of any + * filter_frame and request_frame on pads. + * + * The function must examine inlinks and outlinks and perform a single + * step of processing. If there is nothing to do, the function must do + * nothing and not return an error. If more steps are or may be + * possible, it must use ff_filter_set_ready() to schedule another + * activation. + */ + int (*activate)(AVFilterContext *ctx); +} AVFilter; + +/** + * Get the number of elements in an AVFilter's inputs or outputs array. + */ +unsigned avfilter_filter_pad_count(const AVFilter *filter, int is_output); + +/** + * Process multiple parts of the frame concurrently. + */ +#define AVFILTER_THREAD_SLICE (1 << 0) + +/** An instance of a filter */ +struct AVFilterContext { + const AVClass *av_class; ///< needed for av_log() and filters common options + + const AVFilter *filter; ///< the AVFilter of which this is an instance + + char *name; ///< name of this filter instance + + AVFilterPad *input_pads; ///< array of input pads + AVFilterLink **inputs; ///< array of pointers to input links + unsigned nb_inputs; ///< number of input pads + + AVFilterPad *output_pads; ///< array of output pads + AVFilterLink **outputs; ///< array of pointers to output links + unsigned nb_outputs; ///< number of output pads + + void *priv; ///< private data for use by the filter + + struct AVFilterGraph *graph; ///< filtergraph this filter belongs to + + /** + * Type of multithreading being allowed/used. A combination of + * AVFILTER_THREAD_* flags. + * + * May be set by the caller before initializing the filter to forbid some + * or all kinds of multithreading for this filter. The default is allowing + * everything. + * + * When the filter is initialized, this field is combined using bit AND with + * AVFilterGraph.thread_type to get the final mask used for determining + * allowed threading types. I.e. a threading type needs to be set in both + * to be allowed. + * + * After the filter is initialized, libavfilter sets this field to the + * threading type that is actually used (0 for no multithreading). + */ + int thread_type; + + /** + * Max number of threads allowed in this filter instance. + * If <= 0, its value is ignored. + * Overrides global number of threads set per filter graph. + */ + int nb_threads; + + struct AVFilterCommand *command_queue; + + char *enable_str; ///< enable expression string + void *enable; ///< parsed expression (AVExpr*) + double *var_values; ///< variable values for the enable expression + int is_disabled; ///< the enabled state from the last expression evaluation + + /** + * For filters which will create hardware frames, sets the device the + * filter should create them in. All other filters will ignore this field: + * in particular, a filter which consumes or processes hardware frames will + * instead use the hw_frames_ctx field in AVFilterLink to carry the + * hardware context information. + * + * May be set by the caller on filters flagged with AVFILTER_FLAG_HWDEVICE + * before initializing the filter with avfilter_init_str() or + * avfilter_init_dict(). + */ + AVBufferRef *hw_device_ctx; + + /** + * Ready status of the filter. + * A non-0 value means that the filter needs activating; + * a higher value suggests a more urgent activation. + */ + unsigned ready; + + /** + * Sets the number of extra hardware frames which the filter will + * allocate on its output links for use in following filters or by + * the caller. + * + * Some hardware filters require all frames that they will use for + * output to be defined in advance before filtering starts. For such + * filters, any hardware frame pools used for output must therefore be + * of fixed size. The extra frames set here are on top of any number + * that the filter needs internally in order to operate normally. + * + * This field must be set before the graph containing this filter is + * configured. + */ + int extra_hw_frames; +}; + +/** + * A link between two filters. This contains pointers to the source and + * destination filters between which this link exists, and the indexes of + * the pads involved. In addition, this link also contains the parameters + * which have been negotiated and agreed upon between the filter, such as + * image dimensions, format, etc. + * + * Applications must not normally access the link structure directly. + * Use the buffersrc and buffersink API instead. + * In the future, access to the header may be reserved for filters + * implementation. + */ +struct AVFilterLink { + AVFilterContext *src; ///< source filter + AVFilterPad *srcpad; ///< output pad on the source filter + + AVFilterContext *dst; ///< dest filter + AVFilterPad *dstpad; ///< input pad on the dest filter + + enum AVMediaType type; ///< filter media type + + int format; ///< agreed upon media format + + /* These parameters apply only to video */ + int w; ///< agreed upon image width + int h; ///< agreed upon image height + AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio + /** + * For non-YUV links, these are respectively set to fallback values (as + * appropriate for that colorspace). + * + * Note: This includes grayscale formats, as these are currently treated + * as forced full range always. + */ + enum AVColorSpace colorspace; ///< agreed upon YUV color space + enum AVColorRange color_range; ///< agreed upon YUV color range + + /* These parameters apply only to audio */ + int sample_rate; ///< samples per second + AVChannelLayout ch_layout; ///< channel layout of current buffer (see libavutil/channel_layout.h) + + /** + * Define the time base used by the PTS of the frames/samples + * which will pass through this link. + * During the configuration stage, each filter is supposed to + * change only the output timebase, while the timebase of the + * input link is assumed to be an unchangeable property. + */ + AVRational time_base; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavfilter and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + + /** + * Lists of supported formats / etc. supported by the input filter. + */ + AVFilterFormatsConfig incfg; + + /** + * Lists of supported formats / etc. supported by the output filter. + */ + AVFilterFormatsConfig outcfg; +}; + +/** + * Link two filters together. + * + * @param src the source filter + * @param srcpad index of the output pad on the source filter + * @param dst the destination filter + * @param dstpad index of the input pad on the destination filter + * @return zero on success + */ +int avfilter_link(AVFilterContext *src, unsigned srcpad, + AVFilterContext *dst, unsigned dstpad); + +#if FF_API_LINK_PUBLIC +/** + * @deprecated this function should never be called by users + */ +attribute_deprecated +void avfilter_link_free(AVFilterLink **link); + +/** + * @deprecated this function should never be called by users + */ +attribute_deprecated +int avfilter_config_links(AVFilterContext *filter); +#endif + +#define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically +#define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw) + +/** + * Make the filter instance process a command. + * It is recommended to use avfilter_graph_send_command(). + */ +int avfilter_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Iterate over all registered filters. + * + * @param opaque a pointer where libavfilter will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered filter or NULL when the iteration is + * finished + */ +const AVFilter *av_filter_iterate(void **opaque); + +/** + * Get a filter definition matching the given name. + * + * @param name the filter name to find + * @return the filter definition, if any matching one is registered. + * NULL if none found. + */ +const AVFilter *avfilter_get_by_name(const char *name); + + +/** + * Initialize a filter with the supplied parameters. + * + * @param ctx uninitialized filter context to initialize + * @param args Options to initialize the filter with. This must be a + * ':'-separated list of options in the 'key=value' form. + * May be NULL if the options have been set directly using the + * AVOptions API or there are no options that need to be set. + * @return 0 on success, a negative AVERROR on failure + */ +int avfilter_init_str(AVFilterContext *ctx, const char *args); + +/** + * Initialize a filter with the supplied dictionary of options. + * + * @param ctx uninitialized filter context to initialize + * @param options An AVDictionary filled with options for this filter. On + * return this parameter will be destroyed and replaced with + * a dict containing options that were not found. This dictionary + * must be freed by the caller. + * May be NULL, then this function is equivalent to + * avfilter_init_str() with the second parameter set to NULL. + * @return 0 on success, a negative AVERROR on failure + * + * @note This function and avfilter_init_str() do essentially the same thing, + * the difference is in manner in which the options are passed. It is up to the + * calling code to choose whichever is more preferable. The two functions also + * behave differently when some of the provided options are not declared as + * supported by the filter. In such a case, avfilter_init_str() will fail, but + * this function will leave those extra options in the options AVDictionary and + * continue as usual. + */ +int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options); + +/** + * Free a filter context. This will also remove the filter from its + * filtergraph's list of filters. + * + * @param filter the filter to free + */ +void avfilter_free(AVFilterContext *filter); + +/** + * Insert a filter in the middle of an existing link. + * + * @param link the link into which the filter should be inserted + * @param filt the filter to be inserted + * @param filt_srcpad_idx the input pad on the filter to connect + * @param filt_dstpad_idx the output pad on the filter to connect + * @return zero on success + */ +int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, + unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); + +/** + * @return AVClass for AVFilterContext. + * + * @see av_opt_find(). + */ +const AVClass *avfilter_get_class(void); + +/** + * A function pointer passed to the @ref AVFilterGraph.execute callback to be + * executed multiple times, possibly in parallel. + * + * @param ctx the filter context the job belongs to + * @param arg an opaque parameter passed through from @ref + * AVFilterGraph.execute + * @param jobnr the index of the job being executed + * @param nb_jobs the total number of jobs + * + * @return 0 on success, a negative AVERROR on error + */ +typedef int (avfilter_action_func)(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs); + +/** + * A function executing multiple jobs, possibly in parallel. + * + * @param ctx the filter context to which the jobs belong + * @param func the function to be called multiple times + * @param arg the argument to be passed to func + * @param ret a nb_jobs-sized array to be filled with return values from each + * invocation of func + * @param nb_jobs the number of jobs to execute + * + * @return 0 on success, a negative AVERROR on error + */ +typedef int (avfilter_execute_func)(AVFilterContext *ctx, avfilter_action_func *func, + void *arg, int *ret, int nb_jobs); + +typedef struct AVFilterGraph { + const AVClass *av_class; + AVFilterContext **filters; + unsigned nb_filters; + + char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters + + /** + * Type of multithreading allowed for filters in this graph. A combination + * of AVFILTER_THREAD_* flags. + * + * May be set by the caller at any point, the setting will apply to all + * filters initialized after that. The default is allowing everything. + * + * When a filter in this graph is initialized, this field is combined using + * bit AND with AVFilterContext.thread_type to get the final mask used for + * determining allowed threading types. I.e. a threading type needs to be + * set in both to be allowed. + */ + int thread_type; + + /** + * Maximum number of threads used by filters in this graph. May be set by + * the caller before adding any filters to the filtergraph. Zero (the + * default) means that the number of threads is determined automatically. + */ + int nb_threads; + + /** + * Opaque user data. May be set by the caller to an arbitrary value, e.g. to + * be used from callbacks like @ref AVFilterGraph.execute. + * Libavfilter will not touch this field in any way. + */ + void *opaque; + + /** + * This callback may be set by the caller immediately after allocating the + * graph and before adding any filters to it, to provide a custom + * multithreading implementation. + * + * If set, filters with slice threading capability will call this callback + * to execute multiple jobs in parallel. + * + * If this field is left unset, libavfilter will use its internal + * implementation, which may or may not be multithreaded depending on the + * platform and build options. + */ + avfilter_execute_func *execute; + + char *aresample_swr_opts; ///< swr options to use for the auto-inserted aresample filters, Access ONLY through AVOptions +} AVFilterGraph; + +/** + * Allocate a filter graph. + * + * @return the allocated filter graph on success or NULL. + */ +AVFilterGraph *avfilter_graph_alloc(void); + +/** + * Create a new filter instance in a filter graph. + * + * @param graph graph in which the new filter will be used + * @param filter the filter to create an instance of + * @param name Name to give to the new instance (will be copied to + * AVFilterContext.name). This may be used by the caller to identify + * different filters, libavfilter itself assigns no semantics to + * this parameter. May be NULL. + * + * @return the context of the newly created filter instance (note that it is + * also retrievable directly through AVFilterGraph.filters or with + * avfilter_graph_get_filter()) on success or NULL on failure. + */ +AVFilterContext *avfilter_graph_alloc_filter(AVFilterGraph *graph, + const AVFilter *filter, + const char *name); + +/** + * Get a filter instance identified by instance name from graph. + * + * @param graph filter graph to search through. + * @param name filter instance name (should be unique in the graph). + * @return the pointer to the found filter instance or NULL if it + * cannot be found. + */ +AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, const char *name); + +/** + * Create and add a filter instance into an existing graph. + * The filter instance is created from the filter filt and inited + * with the parameter args. opaque is currently ignored. + * + * In case of success put in *filt_ctx the pointer to the created + * filter instance, otherwise set *filt_ctx to NULL. + * + * @param name the instance name to give to the created filter instance + * @param graph_ctx the filter graph + * @return a negative AVERROR error code in case of failure, a non + * negative value otherwise + */ +int avfilter_graph_create_filter(AVFilterContext **filt_ctx, const AVFilter *filt, + const char *name, const char *args, void *opaque, + AVFilterGraph *graph_ctx); + +/** + * Enable or disable automatic format conversion inside the graph. + * + * Note that format conversion can still happen inside explicitly inserted + * scale and aresample filters. + * + * @param flags any of the AVFILTER_AUTO_CONVERT_* constants + */ +void avfilter_graph_set_auto_convert(AVFilterGraph *graph, unsigned flags); + +enum { + AVFILTER_AUTO_CONVERT_ALL = 0, /**< all automatic conversions enabled */ + AVFILTER_AUTO_CONVERT_NONE = -1, /**< all automatic conversions disabled */ +}; + +/** + * Check validity and configure all the links and formats in the graph. + * + * @param graphctx the filter graph + * @param log_ctx context used for logging + * @return >= 0 in case of success, a negative AVERROR code otherwise + */ +int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx); + +/** + * Free a graph, destroy its links, and set *graph to NULL. + * If *graph is NULL, do nothing. + */ +void avfilter_graph_free(AVFilterGraph **graph); + +/** + * A linked-list of the inputs/outputs of the filter chain. + * + * This is mainly useful for avfilter_graph_parse() / avfilter_graph_parse2(), + * where it is used to communicate open (unlinked) inputs and outputs from and + * to the caller. + * This struct specifies, per each not connected pad contained in the graph, the + * filter context and the pad index required for establishing a link. + */ +typedef struct AVFilterInOut { + /** unique name for this input/output in the list */ + char *name; + + /** filter context associated to this input/output */ + AVFilterContext *filter_ctx; + + /** index of the filt_ctx pad to use for linking */ + int pad_idx; + + /** next input/input in the list, NULL if this is the last */ + struct AVFilterInOut *next; +} AVFilterInOut; + +/** + * Allocate a single AVFilterInOut entry. + * Must be freed with avfilter_inout_free(). + * @return allocated AVFilterInOut on success, NULL on failure. + */ +AVFilterInOut *avfilter_inout_alloc(void); + +/** + * Free the supplied list of AVFilterInOut and set *inout to NULL. + * If *inout is NULL, do nothing. + */ +void avfilter_inout_free(AVFilterInOut **inout); + +/** + * Add a graph described by a string to a graph. + * + * @note The caller must provide the lists of inputs and outputs, + * which therefore must be known before calling the function. + * + * @note The inputs parameter describes inputs of the already existing + * part of the graph; i.e. from the point of view of the newly created + * part, they are outputs. Similarly the outputs parameter describes + * outputs of the already existing filters, which are provided as + * inputs to the parsed filters. + * + * @param graph the filter graph where to link the parsed graph context + * @param filters string to be parsed + * @param inputs linked list to the inputs of the graph + * @param outputs linked list to the outputs of the graph + * @return zero on success, a negative AVERROR code on error + */ +int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, + AVFilterInOut *inputs, AVFilterInOut *outputs, + void *log_ctx); + +/** + * Add a graph described by a string to a graph. + * + * In the graph filters description, if the input label of the first + * filter is not specified, "in" is assumed; if the output label of + * the last filter is not specified, "out" is assumed. + * + * @param graph the filter graph where to link the parsed graph context + * @param filters string to be parsed + * @param inputs pointer to a linked list to the inputs of the graph, may be NULL. + * If non-NULL, *inputs is updated to contain the list of open inputs + * after the parsing, should be freed with avfilter_inout_free(). + * @param outputs pointer to a linked list to the outputs of the graph, may be NULL. + * If non-NULL, *outputs is updated to contain the list of open outputs + * after the parsing, should be freed with avfilter_inout_free(). + * @return non negative on success, a negative AVERROR code on error + */ +int avfilter_graph_parse_ptr(AVFilterGraph *graph, const char *filters, + AVFilterInOut **inputs, AVFilterInOut **outputs, + void *log_ctx); + +/** + * Add a graph described by a string to a graph. + * + * @param[in] graph the filter graph where to link the parsed graph context + * @param[in] filters string to be parsed + * @param[out] inputs a linked list of all free (unlinked) inputs of the + * parsed graph will be returned here. It is to be freed + * by the caller using avfilter_inout_free(). + * @param[out] outputs a linked list of all free (unlinked) outputs of the + * parsed graph will be returned here. It is to be freed by the + * caller using avfilter_inout_free(). + * @return zero on success, a negative AVERROR code on error + * + * @note This function returns the inputs and outputs that are left + * unlinked after parsing the graph and the caller then deals with + * them. + * @note This function makes no reference whatsoever to already + * existing parts of the graph and the inputs parameter will on return + * contain inputs of the newly parsed part of the graph. Analogously + * the outputs parameter will contain outputs of the newly created + * filters. + */ +int avfilter_graph_parse2(AVFilterGraph *graph, const char *filters, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Parameters of a filter's input or output pad. + * + * Created as a child of AVFilterParams by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterPadParams { + /** + * An av_malloc()'ed string containing the pad label. + * + * May be av_free()'d and set to NULL by the caller, in which case this pad + * will be treated as unlabeled for linking. + * May also be replaced by another av_malloc()'ed string. + */ + char *label; +} AVFilterPadParams; + +/** + * Parameters describing a filter to be created in a filtergraph. + * + * Created as a child of AVFilterGraphSegment by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterParams { + /** + * The filter context. + * + * Created by avfilter_graph_segment_create_filters() based on + * AVFilterParams.filter_name and instance_name. + * + * Callers may also create the filter context manually, then they should + * av_free() filter_name and set it to NULL. Such AVFilterParams instances + * are then skipped by avfilter_graph_segment_create_filters(). + */ + AVFilterContext *filter; + + /** + * Name of the AVFilter to be used. + * + * An av_malloc()'ed string, set by avfilter_graph_segment_parse(). Will be + * passed to avfilter_get_by_name() by + * avfilter_graph_segment_create_filters(). + * + * Callers may av_free() this string and replace it with another one or + * NULL. If the caller creates the filter instance manually, this string + * MUST be set to NULL. + * + * When both AVFilterParams.filter an AVFilterParams.filter_name are NULL, + * this AVFilterParams instance is skipped by avfilter_graph_segment_*() + * functions. + */ + char *filter_name; + /** + * Name to be used for this filter instance. + * + * An av_malloc()'ed string, may be set by avfilter_graph_segment_parse() or + * left NULL. The caller may av_free() this string and replace with another + * one or NULL. + * + * Will be used by avfilter_graph_segment_create_filters() - passed as the + * third argument to avfilter_graph_alloc_filter(), then freed and set to + * NULL. + */ + char *instance_name; + + /** + * Options to be apllied to the filter. + * + * Filled by avfilter_graph_segment_parse(). Afterwards may be freely + * modified by the caller. + * + * Will be applied to the filter by avfilter_graph_segment_apply_opts() + * with an equivalent of av_opt_set_dict2(filter, &opts, AV_OPT_SEARCH_CHILDREN), + * i.e. any unapplied options will be left in this dictionary. + */ + AVDictionary *opts; + + AVFilterPadParams **inputs; + unsigned nb_inputs; + + AVFilterPadParams **outputs; + unsigned nb_outputs; +} AVFilterParams; + +/** + * A filterchain is a list of filter specifications. + * + * Created as a child of AVFilterGraphSegment by avfilter_graph_segment_parse(). + * Freed in avfilter_graph_segment_free(). + */ +typedef struct AVFilterChain { + AVFilterParams **filters; + size_t nb_filters; +} AVFilterChain; + +/** + * A parsed representation of a filtergraph segment. + * + * A filtergraph segment is conceptually a list of filterchains, with some + * supplementary information (e.g. format conversion flags). + * + * Created by avfilter_graph_segment_parse(). Must be freed with + * avfilter_graph_segment_free(). + */ +typedef struct AVFilterGraphSegment { + /** + * The filtergraph this segment is associated with. + * Set by avfilter_graph_segment_parse(). + */ + AVFilterGraph *graph; + + /** + * A list of filter chain contained in this segment. + * Set in avfilter_graph_segment_parse(). + */ + AVFilterChain **chains; + size_t nb_chains; + + /** + * A string containing a colon-separated list of key=value options applied + * to all scale filters in this segment. + * + * May be set by avfilter_graph_segment_parse(). + * The caller may free this string with av_free() and replace it with a + * different av_malloc()'ed string. + */ + char *scale_sws_opts; +} AVFilterGraphSegment; + +/** + * Parse a textual filtergraph description into an intermediate form. + * + * This intermediate representation is intended to be modified by the caller as + * described in the documentation of AVFilterGraphSegment and its children, and + * then applied to the graph either manually or with other + * avfilter_graph_segment_*() functions. See the documentation for + * avfilter_graph_segment_apply() for the canonical way to apply + * AVFilterGraphSegment. + * + * @param graph Filter graph the parsed segment is associated with. Will only be + * used for logging and similar auxiliary purposes. The graph will + * not be actually modified by this function - the parsing results + * are instead stored in seg for further processing. + * @param graph_str a string describing the filtergraph segment + * @param flags reserved for future use, caller must set to 0 for now + * @param seg A pointer to the newly-created AVFilterGraphSegment is written + * here on success. The graph segment is owned by the caller and must + * be freed with avfilter_graph_segment_free() before graph itself is + * freed. + * + * @retval "non-negative number" success + * @retval "negative error code" failure + */ +int avfilter_graph_segment_parse(AVFilterGraph *graph, const char *graph_str, + int flags, AVFilterGraphSegment **seg); + +/** + * Create filters specified in a graph segment. + * + * Walk through the creation-pending AVFilterParams in the segment and create + * new filter instances for them. + * Creation-pending params are those where AVFilterParams.filter_name is + * non-NULL (and hence AVFilterParams.filter is NULL). All other AVFilterParams + * instances are ignored. + * + * For any filter created by this function, the corresponding + * AVFilterParams.filter is set to the newly-created filter context, + * AVFilterParams.filter_name and AVFilterParams.instance_name are freed and set + * to NULL. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all creation-pending filters were + * successfully created + * @retval AVERROR_FILTER_NOT_FOUND some filter's name did not correspond to a + * known filter + * @retval "another negative error code" other failures + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_create_filters(AVFilterGraphSegment *seg, int flags); + +/** + * Apply parsed options to filter instances in a graph segment. + * + * Walk through all filter instances in the graph segment that have option + * dictionaries associated with them and apply those options with + * av_opt_set_dict2(..., AV_OPT_SEARCH_CHILDREN). AVFilterParams.opts is + * replaced by the dictionary output by av_opt_set_dict2(), which should be + * empty (NULL) if all options were successfully applied. + * + * If any options could not be found, this function will continue processing all + * other filters and finally return AVERROR_OPTION_NOT_FOUND (unless another + * error happens). The calling program may then deal with unapplied options as + * it wishes. + * + * Any creation-pending filters (see avfilter_graph_segment_create_filters()) + * present in the segment will cause this function to fail. AVFilterParams with + * no associated filter context are simply skipped. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all options were successfully applied. + * @retval AVERROR_OPTION_NOT_FOUND some options were not found in a filter + * @retval "another negative error code" other failures + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_apply_opts(AVFilterGraphSegment *seg, int flags); + +/** + * Initialize all filter instances in a graph segment. + * + * Walk through all filter instances in the graph segment and call + * avfilter_init_dict(..., NULL) on those that have not been initialized yet. + * + * Any creation-pending filters (see avfilter_graph_segment_create_filters()) + * present in the segment will cause this function to fail. AVFilterParams with + * no associated filter context or whose filter context is already initialized, + * are simply skipped. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * + * @retval "non-negative number" Success, all filter instances were successfully + * initialized + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_init(AVFilterGraphSegment *seg, int flags); + +/** + * Link filters in a graph segment. + * + * Walk through all filter instances in the graph segment and try to link all + * unlinked input and output pads. Any creation-pending filters (see + * avfilter_graph_segment_create_filters()) present in the segment will cause + * this function to fail. Disabled filters and already linked pads are skipped. + * + * Every filter output pad that has a corresponding AVFilterPadParams with a + * non-NULL label is + * - linked to the input with the matching label, if one exists; + * - exported in the outputs linked list otherwise, with the label preserved. + * Unlabeled outputs are + * - linked to the first unlinked unlabeled input in the next non-disabled + * filter in the chain, if one exists + * - exported in the ouputs linked list otherwise, with NULL label + * + * Similarly, unlinked input pads are exported in the inputs linked list. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * @param[out] inputs a linked list of all free (unlinked) inputs of the + * filters in this graph segment will be returned here. It + * is to be freed by the caller using avfilter_inout_free(). + * @param[out] outputs a linked list of all free (unlinked) outputs of the + * filters in this graph segment will be returned here. It + * is to be freed by the caller using avfilter_inout_free(). + * + * @retval "non-negative number" success + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_link(AVFilterGraphSegment *seg, int flags, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Apply all filter/link descriptions from a graph segment to the associated filtergraph. + * + * This functions is currently equivalent to calling the following in sequence: + * - avfilter_graph_segment_create_filters(); + * - avfilter_graph_segment_apply_opts(); + * - avfilter_graph_segment_init(); + * - avfilter_graph_segment_link(); + * failing if any of them fails. This list may be extended in the future. + * + * Since the above functions are idempotent, the caller may call some of them + * manually, then do some custom processing on the filtergraph, then call this + * function to do the rest. + * + * @param seg the filtergraph segment to process + * @param flags reserved for future use, caller must set to 0 for now + * @param[out] inputs passed to avfilter_graph_segment_link() + * @param[out] outputs passed to avfilter_graph_segment_link() + * + * @retval "non-negative number" success + * @retval "negative error code" failure + * + * @note Calling this function multiple times is safe, as it is idempotent. + */ +int avfilter_graph_segment_apply(AVFilterGraphSegment *seg, int flags, + AVFilterInOut **inputs, + AVFilterInOut **outputs); + +/** + * Free the provided AVFilterGraphSegment and everything associated with it. + * + * @param seg double pointer to the AVFilterGraphSegment to be freed. NULL will + * be written to this pointer on exit from this function. + * + * @note + * The filter contexts (AVFilterParams.filter) are owned by AVFilterGraph rather + * than AVFilterGraphSegment, so they are not freed. + */ +void avfilter_graph_segment_free(AVFilterGraphSegment **seg); + +/** + * Send a command to one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to send, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ +int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Queue a command for one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to sent, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param ts time at which the command should be sent to the filter + * + * @note As this executes commands after this function returns, no return code + * from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported. + */ +int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts); + + +/** + * Dump a graph into a human-readable string representation. + * + * @param graph the graph to dump + * @param options formatting options; currently ignored + * @return a string, or NULL in case of memory allocation failure; + * the string must be freed using av_free + */ +char *avfilter_graph_dump(AVFilterGraph *graph, const char *options); + +/** + * Request a frame on the oldest sink link. + * + * If the request returns AVERROR_EOF, try the next. + * + * Note that this function is not meant to be the sole scheduling mechanism + * of a filtergraph, only a convenience function to help drain a filtergraph + * in a balanced way under normal circumstances. + * + * Also note that AVERROR_EOF does not mean that frames did not arrive on + * some of the sinks during the process. + * When there are multiple sink links, in case the requested link + * returns an EOF, this may cause a filter to flush pending frames + * which are sent to another sink link, although unrequested. + * + * @return the return value of ff_request_frame(), + * or AVERROR_EOF if all links returned AVERROR_EOF + */ +int avfilter_graph_request_oldest(AVFilterGraph *graph); + +/** + * @} + */ + +#endif /* AVFILTER_AVFILTER_H */ diff --git a/deps/ffmpeg/macos/include/libavfilter/buffersink.h b/deps/ffmpeg/macos/include/libavfilter/buffersink.h new file mode 100644 index 0000000..361d603 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavfilter/buffersink.h @@ -0,0 +1,173 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_BUFFERSINK_H +#define AVFILTER_BUFFERSINK_H + +/** + * @file + * @ingroup lavfi_buffersink + * memory buffer sink API for audio and video + */ + +#include "avfilter.h" + +/** + * @defgroup lavfi_buffersink Buffer sink API + * @ingroup lavfi + * @{ + * + * The buffersink and abuffersink filters are there to connect filter graphs + * to applications. They have a single input, connected to the graph, and no + * output. Frames must be extracted using av_buffersink_get_frame() or + * av_buffersink_get_samples(). + * + * The format negotiated by the graph during configuration can be obtained + * using the accessor functions: + * - av_buffersink_get_time_base(), + * - av_buffersink_get_format(), + * - av_buffersink_get_frame_rate(), + * - av_buffersink_get_w(), + * - av_buffersink_get_h(), + * - av_buffersink_get_sample_aspect_ratio(), + * - av_buffersink_get_channels(), + * - av_buffersink_get_ch_layout(), + * - av_buffersink_get_sample_rate(). + * + * The layout returned by av_buffersink_get_ch_layout() must de uninitialized + * by the caller. + * + * The format can be constrained by setting options, using av_opt_set() and + * related functions with the AV_OPT_SEARCH_CHILDREN flag. + * - pix_fmts (int list), + * - color_spaces (int list), + * - color_ranges (int list), + * - sample_fmts (int list), + * - sample_rates (int list), + * - ch_layouts (string), + * - channel_counts (int list), + * - all_channel_counts (bool). + * Most of these options are of type binary, and should be set using + * av_opt_set_int_list() or av_opt_set_bin(). If they are not set, all + * corresponding formats are accepted. + * + * As a special case, if ch_layouts is not set, all valid channel layouts are + * accepted except for UNSPEC layouts, unless all_channel_counts is set. + */ + +/** + * Get a frame with filtered data from sink and put it in frame. + * + * @param ctx pointer to a buffersink or abuffersink filter context. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * @param flags a combination of AV_BUFFERSINK_FLAG_* flags + * + * @return >= 0 in for success, a negative AVERROR code for failure. + */ +int av_buffersink_get_frame_flags(AVFilterContext *ctx, AVFrame *frame, int flags); + +/** + * Tell av_buffersink_get_buffer_ref() to read video/samples buffer + * reference, but not remove it from the buffer. This is useful if you + * need only to read a video/samples buffer, without to fetch it. + */ +#define AV_BUFFERSINK_FLAG_PEEK 1 + +/** + * Tell av_buffersink_get_buffer_ref() not to request a frame from its input. + * If a frame is already buffered, it is read (and removed from the buffer), + * but if no frame is present, return AVERROR(EAGAIN). + */ +#define AV_BUFFERSINK_FLAG_NO_REQUEST 2 + +/** + * Set the frame size for an audio buffer sink. + * + * All calls to av_buffersink_get_buffer_ref will return a buffer with + * exactly the specified number of samples, or AVERROR(EAGAIN) if there is + * not enough. The last buffer at EOF will be padded with 0. + */ +void av_buffersink_set_frame_size(AVFilterContext *ctx, unsigned frame_size); + +/** + * @defgroup lavfi_buffersink_accessors Buffer sink accessors + * Get the properties of the stream + * @{ + */ + +enum AVMediaType av_buffersink_get_type (const AVFilterContext *ctx); +AVRational av_buffersink_get_time_base (const AVFilterContext *ctx); +int av_buffersink_get_format (const AVFilterContext *ctx); + +AVRational av_buffersink_get_frame_rate (const AVFilterContext *ctx); +int av_buffersink_get_w (const AVFilterContext *ctx); +int av_buffersink_get_h (const AVFilterContext *ctx); +AVRational av_buffersink_get_sample_aspect_ratio (const AVFilterContext *ctx); +enum AVColorSpace av_buffersink_get_colorspace (const AVFilterContext *ctx); +enum AVColorRange av_buffersink_get_color_range (const AVFilterContext *ctx); + +int av_buffersink_get_channels (const AVFilterContext *ctx); +int av_buffersink_get_ch_layout (const AVFilterContext *ctx, + AVChannelLayout *ch_layout); +int av_buffersink_get_sample_rate (const AVFilterContext *ctx); + +AVBufferRef * av_buffersink_get_hw_frames_ctx (const AVFilterContext *ctx); + +/** @} */ + +/** + * Get a frame with filtered data from sink and put it in frame. + * + * @param ctx pointer to a context of a buffersink or abuffersink AVFilter. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * + * @return + * - >= 0 if a frame was successfully returned. + * - AVERROR(EAGAIN) if no frames are available at this point; more + * input frames must be added to the filtergraph to get more output. + * - AVERROR_EOF if there will be no more output frames on this sink. + * - A different negative AVERROR code in other failure cases. + */ +int av_buffersink_get_frame(AVFilterContext *ctx, AVFrame *frame); + +/** + * Same as av_buffersink_get_frame(), but with the ability to specify the number + * of samples read. This function is less efficient than + * av_buffersink_get_frame(), because it copies the data around. + * + * @param ctx pointer to a context of the abuffersink AVFilter. + * @param frame pointer to an allocated frame that will be filled with data. + * The data must be freed using av_frame_unref() / av_frame_free() + * frame will contain exactly nb_samples audio samples, except at + * the end of stream, when it can contain less than nb_samples. + * + * @return The return codes have the same meaning as for + * av_buffersink_get_frame(). + * + * @warning do not mix this function with av_buffersink_get_frame(). Use only one or + * the other with a single sink, not both. + */ +int av_buffersink_get_samples(AVFilterContext *ctx, AVFrame *frame, int nb_samples); + +/** + * @} + */ + +#endif /* AVFILTER_BUFFERSINK_H */ diff --git a/deps/ffmpeg/macos/include/libavfilter/buffersrc.h b/deps/ffmpeg/macos/include/libavfilter/buffersrc.h new file mode 100644 index 0000000..6f3344f --- /dev/null +++ b/deps/ffmpeg/macos/include/libavfilter/buffersrc.h @@ -0,0 +1,215 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_BUFFERSRC_H +#define AVFILTER_BUFFERSRC_H + +/** + * @file + * @ingroup lavfi_buffersrc + * Memory buffer source API. + */ + +#include "avfilter.h" + +/** + * @defgroup lavfi_buffersrc Buffer source API + * @ingroup lavfi + * @{ + */ + +enum { + + /** + * Do not check for format changes. + */ + AV_BUFFERSRC_FLAG_NO_CHECK_FORMAT = 1, + + /** + * Immediately push the frame to the output. + */ + AV_BUFFERSRC_FLAG_PUSH = 4, + + /** + * Keep a reference to the frame. + * If the frame if reference-counted, create a new reference; otherwise + * copy the frame data. + */ + AV_BUFFERSRC_FLAG_KEEP_REF = 8, + +}; + +/** + * Get the number of failed requests. + * + * A failed request is when the request_frame method is called while no + * frame is present in the buffer. + * The number is reset when a frame is added. + */ +unsigned av_buffersrc_get_nb_failed_requests(AVFilterContext *buffer_src); + +/** + * This structure contains the parameters describing the frames that will be + * passed to this filter. + * + * It should be allocated with av_buffersrc_parameters_alloc() and freed with + * av_free(). All the allocated fields in it remain owned by the caller. + */ +typedef struct AVBufferSrcParameters { + /** + * video: the pixel format, value corresponds to enum AVPixelFormat + * audio: the sample format, value corresponds to enum AVSampleFormat + */ + int format; + /** + * The timebase to be used for the timestamps on the input frames. + */ + AVRational time_base; + + /** + * Video only, the display dimensions of the input frames. + */ + int width, height; + + /** + * Video only, the sample (pixel) aspect ratio. + */ + AVRational sample_aspect_ratio; + + /** + * Video only, the frame rate of the input video. This field must only be + * set to a non-zero value if input stream has a known constant framerate + * and should be left at its initial value if the framerate is variable or + * unknown. + */ + AVRational frame_rate; + + /** + * Video with a hwaccel pixel format only. This should be a reference to an + * AVHWFramesContext instance describing the input frames. + */ + AVBufferRef *hw_frames_ctx; + + /** + * Audio only, the audio sampling rate in samples per second. + */ + int sample_rate; + + /** + * Audio only, the audio channel layout + */ + AVChannelLayout ch_layout; + + /** + * Video only, the YUV colorspace and range. + */ + enum AVColorSpace color_space; + enum AVColorRange color_range; +} AVBufferSrcParameters; + +/** + * Allocate a new AVBufferSrcParameters instance. It should be freed by the + * caller with av_free(). + */ +AVBufferSrcParameters *av_buffersrc_parameters_alloc(void); + +/** + * Initialize the buffersrc or abuffersrc filter with the provided parameters. + * This function may be called multiple times, the later calls override the + * previous ones. Some of the parameters may also be set through AVOptions, then + * whatever method is used last takes precedence. + * + * @param ctx an instance of the buffersrc or abuffersrc filter + * @param param the stream parameters. The frames later passed to this filter + * must conform to those parameters. All the allocated fields in + * param remain owned by the caller, libavfilter will make internal + * copies or references when necessary. + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_buffersrc_parameters_set(AVFilterContext *ctx, AVBufferSrcParameters *param); + +/** + * Add a frame to the buffer source. + * + * @param ctx an instance of the buffersrc filter + * @param frame frame to be added. If the frame is reference counted, this + * function will make a new reference to it. Otherwise the frame data will be + * copied. + * + * @return 0 on success, a negative AVERROR on error + * + * This function is equivalent to av_buffersrc_add_frame_flags() with the + * AV_BUFFERSRC_FLAG_KEEP_REF flag. + */ +av_warn_unused_result +int av_buffersrc_write_frame(AVFilterContext *ctx, const AVFrame *frame); + +/** + * Add a frame to the buffer source. + * + * @param ctx an instance of the buffersrc filter + * @param frame frame to be added. If the frame is reference counted, this + * function will take ownership of the reference(s) and reset the frame. + * Otherwise the frame data will be copied. If this function returns an error, + * the input frame is not touched. + * + * @return 0 on success, a negative AVERROR on error. + * + * @note the difference between this function and av_buffersrc_write_frame() is + * that av_buffersrc_write_frame() creates a new reference to the input frame, + * while this function takes ownership of the reference passed to it. + * + * This function is equivalent to av_buffersrc_add_frame_flags() without the + * AV_BUFFERSRC_FLAG_KEEP_REF flag. + */ +av_warn_unused_result +int av_buffersrc_add_frame(AVFilterContext *ctx, AVFrame *frame); + +/** + * Add a frame to the buffer source. + * + * By default, if the frame is reference-counted, this function will take + * ownership of the reference(s) and reset the frame. This can be controlled + * using the flags. + * + * If this function returns an error, the input frame is not touched. + * + * @param buffer_src pointer to a buffer source context + * @param frame a frame, or NULL to mark EOF + * @param flags a combination of AV_BUFFERSRC_FLAG_* + * @return >= 0 in case of success, a negative AVERROR code + * in case of failure + */ +av_warn_unused_result +int av_buffersrc_add_frame_flags(AVFilterContext *buffer_src, + AVFrame *frame, int flags); + +/** + * Close the buffer source after EOF. + * + * This is similar to passing NULL to av_buffersrc_add_frame_flags() + * except it takes the timestamp of the EOF, i.e. the timestamp of the end + * of the last frame. + */ +int av_buffersrc_close(AVFilterContext *ctx, int64_t pts, unsigned flags); + +/** + * @} + */ + +#endif /* AVFILTER_BUFFERSRC_H */ diff --git a/deps/ffmpeg/macos/include/libavfilter/version.h b/deps/ffmpeg/macos/include/libavfilter/version.h new file mode 100644 index 0000000..4d8f28e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavfilter/version.h @@ -0,0 +1,48 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VERSION_H +#define AVFILTER_VERSION_H + +/** + * @file + * @ingroup lavfi + * Libavfilter version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVFILTER_VERSION_MINOR 4 +#define LIBAVFILTER_VERSION_MICRO 100 + + +#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT + +#define LIBAVFILTER_IDENT "Lavfi" AV_STRINGIFY(LIBAVFILTER_VERSION) + +#endif /* AVFILTER_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavfilter/version_major.h b/deps/ffmpeg/macos/include/libavfilter/version_major.h new file mode 100644 index 0000000..c5e660e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavfilter/version_major.h @@ -0,0 +1,40 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VERSION_MAJOR_H +#define AVFILTER_VERSION_MAJOR_H + +/** + * @file + * @ingroup lavfi + * Libavfilter version macros + */ + +#define LIBAVFILTER_VERSION_MAJOR 10 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + */ + +#define FF_API_LINK_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 11) + +#endif /* AVFILTER_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libavformat/avformat.h b/deps/ffmpeg/macos/include/libavformat/avformat.h new file mode 100644 index 0000000..75221d9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavformat/avformat.h @@ -0,0 +1,3111 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_AVFORMAT_H +#define AVFORMAT_AVFORMAT_H + +/** + * @file + * @ingroup libavf + * Main libavformat public API header + */ + +/** + * @defgroup libavf libavformat + * I/O and Muxing/Demuxing Library + * + * Libavformat (lavf) is a library for dealing with various media container + * formats. Its main two purposes are demuxing - i.e. splitting a media file + * into component streams, and the reverse process of muxing - writing supplied + * data in a specified container format. It also has an @ref lavf_io + * "I/O module" which supports a number of protocols for accessing the data (e.g. + * file, tcp, http and others). + * Unless you are absolutely sure you won't use libavformat's network + * capabilities, you should also call avformat_network_init(). + * + * A supported input format is described by an AVInputFormat struct, conversely + * an output format is described by AVOutputFormat. You can iterate over all + * input/output formats using the av_demuxer_iterate / av_muxer_iterate() functions. + * The protocols layer is not part of the public API, so you can only get the names + * of supported protocols with the avio_enum_protocols() function. + * + * Main lavf structure used for both muxing and demuxing is AVFormatContext, + * which exports all information about the file being read or written. As with + * most Libavformat structures, its size is not part of public ABI, so it cannot be + * allocated on stack or directly with av_malloc(). To create an + * AVFormatContext, use avformat_alloc_context() (some functions, like + * avformat_open_input() might do that for you). + * + * Most importantly an AVFormatContext contains: + * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat + * "output" format. It is either autodetected or set by user for input; + * always set by user for output. + * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all + * elementary streams stored in the file. AVStreams are typically referred to + * using their index in this array. + * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or + * set by user for input, always set by user for output (unless you are dealing + * with an AVFMT_NOFILE format). + * + * @section lavf_options Passing options to (de)muxers + * It is possible to configure lavf muxers and demuxers using the @ref avoptions + * mechanism. Generic (format-independent) libavformat options are provided by + * AVFormatContext, they can be examined from a user program by calling + * av_opt_next() / av_opt_find() on an allocated AVFormatContext (or its AVClass + * from avformat_get_class()). Private (format-specific) options are provided by + * AVFormatContext.priv_data if and only if AVInputFormat.priv_class / + * AVOutputFormat.priv_class of the corresponding format struct is non-NULL. + * Further options may be provided by the @ref AVFormatContext.pb "I/O context", + * if its AVClass is non-NULL, and the protocols layer. See the discussion on + * nesting in @ref avoptions documentation to learn how to access those. + * + * @section urls + * URL strings in libavformat are made of a scheme/protocol, a ':', and a + * scheme specific string. URLs without a scheme and ':' used for local files + * are supported but deprecated. "file:" should be used for local files. + * + * It is important that the scheme string is not taken from untrusted + * sources without checks. + * + * Note that some schemes/protocols are quite powerful, allowing access to + * both local and remote files, parts of them, concatenations of them, local + * audio and video devices and so on. + * + * @{ + * + * @defgroup lavf_decoding Demuxing + * @{ + * Demuxers read a media file and split it into chunks of data (@em packets). A + * @ref AVPacket "packet" contains one or more encoded frames which belongs to a + * single elementary stream. In the lavf API this process is represented by the + * avformat_open_input() function for opening a file, av_read_frame() for + * reading a single packet and finally avformat_close_input(), which does the + * cleanup. + * + * @section lavf_decoding_open Opening a media file + * The minimum information required to open a file is its URL, which + * is passed to avformat_open_input(), as in the following code: + * @code + * const char *url = "file:in.mp3"; + * AVFormatContext *s = NULL; + * int ret = avformat_open_input(&s, url, NULL, NULL); + * if (ret < 0) + * abort(); + * @endcode + * The above code attempts to allocate an AVFormatContext, open the + * specified file (autodetecting the format) and read the header, exporting the + * information stored there into s. Some formats do not have a header or do not + * store enough information there, so it is recommended that you call the + * avformat_find_stream_info() function which tries to read and decode a few + * frames to find missing information. + * + * In some cases you might want to preallocate an AVFormatContext yourself with + * avformat_alloc_context() and do some tweaking on it before passing it to + * avformat_open_input(). One such case is when you want to use custom functions + * for reading input data instead of lavf internal I/O layer. + * To do that, create your own AVIOContext with avio_alloc_context(), passing + * your reading callbacks to it. Then set the @em pb field of your + * AVFormatContext to newly created AVIOContext. + * + * Since the format of the opened file is in general not known until after + * avformat_open_input() has returned, it is not possible to set demuxer private + * options on a preallocated context. Instead, the options should be passed to + * avformat_open_input() wrapped in an AVDictionary: + * @code + * AVDictionary *options = NULL; + * av_dict_set(&options, "video_size", "640x480", 0); + * av_dict_set(&options, "pixel_format", "rgb24", 0); + * + * if (avformat_open_input(&s, url, NULL, &options) < 0) + * abort(); + * av_dict_free(&options); + * @endcode + * This code passes the private options 'video_size' and 'pixel_format' to the + * demuxer. They would be necessary for e.g. the rawvideo demuxer, since it + * cannot know how to interpret raw video data otherwise. If the format turns + * out to be something different than raw video, those options will not be + * recognized by the demuxer and therefore will not be applied. Such unrecognized + * options are then returned in the options dictionary (recognized options are + * consumed). The calling program can handle such unrecognized options as it + * wishes, e.g. + * @code + * AVDictionaryEntry *e; + * if (e = av_dict_get(options, "", NULL, AV_DICT_IGNORE_SUFFIX)) { + * fprintf(stderr, "Option %s not recognized by the demuxer.\n", e->key); + * abort(); + * } + * @endcode + * + * After you have finished reading the file, you must close it with + * avformat_close_input(). It will free everything associated with the file. + * + * @section lavf_decoding_read Reading from an opened file + * Reading data from an opened AVFormatContext is done by repeatedly calling + * av_read_frame() on it. Each call, if successful, will return an AVPacket + * containing encoded data for one AVStream, identified by + * AVPacket.stream_index. This packet may be passed straight into the libavcodec + * decoding functions avcodec_send_packet() or avcodec_decode_subtitle2() if the + * caller wishes to decode the data. + * + * AVPacket.pts, AVPacket.dts and AVPacket.duration timing information will be + * set if known. They may also be unset (i.e. AV_NOPTS_VALUE for + * pts/dts, 0 for duration) if the stream does not provide them. The timing + * information will be in AVStream.time_base units, i.e. it has to be + * multiplied by the timebase to convert them to seconds. + * + * A packet returned by av_read_frame() is always reference-counted, + * i.e. AVPacket.buf is set and the user may keep it indefinitely. + * The packet must be freed with av_packet_unref() when it is no + * longer needed. + * + * @section lavf_decoding_seek Seeking + * @} + * + * @defgroup lavf_encoding Muxing + * @{ + * Muxers take encoded data in the form of @ref AVPacket "AVPackets" and write + * it into files or other output bytestreams in the specified container format. + * + * The main API functions for muxing are avformat_write_header() for writing the + * file header, av_write_frame() / av_interleaved_write_frame() for writing the + * packets and av_write_trailer() for finalizing the file. + * + * At the beginning of the muxing process, the caller must first call + * avformat_alloc_context() to create a muxing context. The caller then sets up + * the muxer by filling the various fields in this context: + * + * - The @ref AVFormatContext.oformat "oformat" field must be set to select the + * muxer that will be used. + * - Unless the format is of the AVFMT_NOFILE type, the @ref AVFormatContext.pb + * "pb" field must be set to an opened IO context, either returned from + * avio_open2() or a custom one. + * - Unless the format is of the AVFMT_NOSTREAMS type, at least one stream must + * be created with the avformat_new_stream() function. The caller should fill + * the @ref AVStream.codecpar "stream codec parameters" information, such as the + * codec @ref AVCodecParameters.codec_type "type", @ref AVCodecParameters.codec_id + * "id" and other parameters (e.g. width / height, the pixel or sample format, + * etc.) as known. The @ref AVStream.time_base "stream timebase" should + * be set to the timebase that the caller desires to use for this stream (note + * that the timebase actually used by the muxer can be different, as will be + * described later). + * - It is advised to manually initialize only the relevant fields in + * AVCodecParameters, rather than using @ref avcodec_parameters_copy() during + * remuxing: there is no guarantee that the codec context values remain valid + * for both input and output format contexts. + * - The caller may fill in additional information, such as @ref + * AVFormatContext.metadata "global" or @ref AVStream.metadata "per-stream" + * metadata, @ref AVFormatContext.chapters "chapters", @ref + * AVFormatContext.programs "programs", etc. as described in the + * AVFormatContext documentation. Whether such information will actually be + * stored in the output depends on what the container format and the muxer + * support. + * + * When the muxing context is fully set up, the caller must call + * avformat_write_header() to initialize the muxer internals and write the file + * header. Whether anything actually is written to the IO context at this step + * depends on the muxer, but this function must always be called. Any muxer + * private options must be passed in the options parameter to this function. + * + * The data is then sent to the muxer by repeatedly calling av_write_frame() or + * av_interleaved_write_frame() (consult those functions' documentation for + * discussion on the difference between them; only one of them may be used with + * a single muxing context, they should not be mixed). Do note that the timing + * information on the packets sent to the muxer must be in the corresponding + * AVStream's timebase. That timebase is set by the muxer (in the + * avformat_write_header() step) and may be different from the timebase + * requested by the caller. + * + * Once all the data has been written, the caller must call av_write_trailer() + * to flush any buffered packets and finalize the output file, then close the IO + * context (if any) and finally free the muxing context with + * avformat_free_context(). + * @} + * + * @defgroup lavf_io I/O Read/Write + * @{ + * @section lavf_io_dirlist Directory listing + * The directory listing API makes it possible to list files on remote servers. + * + * Some of possible use cases: + * - an "open file" dialog to choose files from a remote location, + * - a recursive media finder providing a player with an ability to play all + * files from a given directory. + * + * @subsection lavf_io_dirlist_open Opening a directory + * At first, a directory needs to be opened by calling avio_open_dir() + * supplied with a URL and, optionally, ::AVDictionary containing + * protocol-specific parameters. The function returns zero or positive + * integer and allocates AVIODirContext on success. + * + * @code + * AVIODirContext *ctx = NULL; + * if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) { + * fprintf(stderr, "Cannot open directory.\n"); + * abort(); + * } + * @endcode + * + * This code tries to open a sample directory using smb protocol without + * any additional parameters. + * + * @subsection lavf_io_dirlist_read Reading entries + * Each directory's entry (i.e. file, another directory, anything else + * within ::AVIODirEntryType) is represented by AVIODirEntry. + * Reading consecutive entries from an opened AVIODirContext is done by + * repeatedly calling avio_read_dir() on it. Each call returns zero or + * positive integer if successful. Reading can be stopped right after the + * NULL entry has been read -- it means there are no entries left to be + * read. The following code reads all entries from a directory associated + * with ctx and prints their names to standard output. + * @code + * AVIODirEntry *entry = NULL; + * for (;;) { + * if (avio_read_dir(ctx, &entry) < 0) { + * fprintf(stderr, "Cannot list directory.\n"); + * abort(); + * } + * if (!entry) + * break; + * printf("%s\n", entry->name); + * avio_free_directory_entry(&entry); + * } + * @endcode + * @} + * + * @defgroup lavf_codec Demuxers + * @{ + * @defgroup lavf_codec_native Native Demuxers + * @{ + * @} + * @defgroup lavf_codec_wrappers External library wrappers + * @{ + * @} + * @} + * @defgroup lavf_protos I/O Protocols + * @{ + * @} + * @defgroup lavf_internal Internal + * @{ + * @} + * @} + */ + +#include /* FILE */ + +#include "libavcodec/codec_par.h" +#include "libavcodec/defs.h" +#include "libavcodec/packet.h" + +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "avio.h" +#include "libavformat/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libavformat/version.h" + +#include "libavutil/frame.h" +#include "libavcodec/codec.h" +#endif + +struct AVFormatContext; +struct AVFrame; + +/** + * @defgroup metadata_api Public Metadata API + * @{ + * @ingroup libavf + * The metadata API allows libavformat to export metadata tags to a client + * application when demuxing. Conversely it allows a client application to + * set metadata when muxing. + * + * Metadata is exported or set as pairs of key/value strings in the 'metadata' + * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs + * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg, + * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata + * exported by demuxers isn't checked to be valid UTF-8 in most cases. + * + * Important concepts to keep in mind: + * - Keys are unique; there can never be 2 tags with the same key. This is + * also meant semantically, i.e., a demuxer should not knowingly produce + * several keys that are literally different but semantically identical. + * E.g., key=Author5, key=Author6. In this example, all authors must be + * placed in the same tag. + * - Metadata is flat, not hierarchical; there are no subtags. If you + * want to store, e.g., the email address of the child of producer Alice + * and actor Bob, that could have key=alice_and_bobs_childs_email_address. + * - Several modifiers can be applied to the tag name. This is done by + * appending a dash character ('-') and the modifier name in the order + * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng. + * - language -- a tag whose value is localized for a particular language + * is appended with the ISO 639-2/B 3-letter language code. + * For example: Author-ger=Michael, Author-eng=Mike + * The original/default language is in the unqualified "Author" tag. + * A demuxer should set a default if it sets any translated tag. + * - sorting -- a modified version of a tag that should be used for + * sorting will have '-sort' appended. E.g. artist="The Beatles", + * artist-sort="Beatles, The". + * - Some protocols and demuxers support metadata updates. After a successful + * call to av_read_frame(), AVFormatContext.event_flags or AVStream.event_flags + * will be updated to indicate if metadata changed. In order to detect metadata + * changes on a stream, you need to loop through all streams in the AVFormatContext + * and check their individual event_flags. + * + * - Demuxers attempt to export metadata in a generic format, however tags + * with no generic equivalents are left as they are stored in the container. + * Follows a list of generic tag names: + * + @verbatim + album -- name of the set this work belongs to + album_artist -- main creator of the set/album, if different from artist. + e.g. "Various Artists" for compilation albums. + artist -- main creator of the work + comment -- any additional description of the file. + composer -- who composed the work, if different from artist. + copyright -- name of copyright holder. + creation_time-- date when the file was created, preferably in ISO 8601. + date -- date when the work was created, preferably in ISO 8601. + disc -- number of a subset, e.g. disc in a multi-disc collection. + encoder -- name/settings of the software/hardware that produced the file. + encoded_by -- person/group who created the file. + filename -- original name of the file. + genre -- . + language -- main language in which the work is performed, preferably + in ISO 639-2 format. Multiple languages can be specified by + separating them with commas. + performer -- artist who performed the work, if different from artist. + E.g for "Also sprach Zarathustra", artist would be "Richard + Strauss" and performer "London Philharmonic Orchestra". + publisher -- name of the label/publisher. + service_name -- name of the service in broadcasting (channel name). + service_provider -- name of the service provider in broadcasting. + title -- name of the work. + track -- number of this work in the set, can be in form current/total. + variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of + @endverbatim + * + * Look in the examples section for an application example how to use the Metadata API. + * + * @} + */ + +/* packet functions */ + + +/** + * Allocate and read the payload of a packet and initialize its + * fields with default values. + * + * @param s associated IO context + * @param pkt packet + * @param size desired payload size + * @return >0 (read size) if OK, AVERROR_xxx otherwise + */ +int av_get_packet(AVIOContext *s, AVPacket *pkt, int size); + + +/** + * Read data and append it to the current content of the AVPacket. + * If pkt->size is 0 this is identical to av_get_packet. + * Note that this uses av_grow_packet and thus involves a realloc + * which is inefficient. Thus this function should only be used + * when there is no reasonable way to know (an upper bound of) + * the final size. + * + * @param s associated IO context + * @param pkt packet + * @param size amount of data to read + * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data + * will not be lost even if an error occurs. + */ +int av_append_packet(AVIOContext *s, AVPacket *pkt, int size); + +/*************************************************/ +/* input/output formats */ + +struct AVCodecTag; + +/** + * This structure contains the data a format has to probe a file. + */ +typedef struct AVProbeData { + const char *filename; + unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */ + int buf_size; /**< Size of buf except extra allocated bytes */ + const char *mime_type; /**< mime_type, when known. */ +} AVProbeData; + +#define AVPROBE_SCORE_RETRY (AVPROBE_SCORE_MAX/4) +#define AVPROBE_SCORE_STREAM_RETRY (AVPROBE_SCORE_MAX/4-1) + +#define AVPROBE_SCORE_EXTENSION 50 ///< score for file extension +#define AVPROBE_SCORE_MIME 75 ///< score for file mime type +#define AVPROBE_SCORE_MAX 100 ///< maximum score + +#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer + +/// Demuxer will use avio_open, no opened file should be provided by the caller. +#define AVFMT_NOFILE 0x0001 +#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */ +/** + * The muxer/demuxer is experimental and should be used with caution. + * + * - demuxers: will not be selected automatically by probing, must be specified + * explicitly. + */ +#define AVFMT_EXPERIMENTAL 0x0004 +#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */ +#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ +#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */ +#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */ +#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. Note, muxers always require valid (monotone) timestamps */ +#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */ +#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */ +#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ +#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fall back on binary search via read_timestamp */ +#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fall back on generic search */ +#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */ +#if FF_API_ALLOW_FLUSH +#define AVFMT_ALLOW_FLUSH 0x10000 /**< @deprecated: Just send a NULL packet if you want to flush a muxer. */ +#endif +#define AVFMT_TS_NONSTRICT 0x20000 /**< Format does not require strictly + increasing timestamps, but they must + still be monotonic */ +#define AVFMT_TS_NEGATIVE 0x40000 /**< Format allows muxing negative + timestamps. If not set the timestamp + will be shifted in av_write_frame and + av_interleaved_write_frame so they + start from 0. + The user or muxer can override this through + AVFormatContext.avoid_negative_ts + */ + +#define AVFMT_SEEK_TO_PTS 0x4000000 /**< Seeking is based on PTS */ + +/** + * @addtogroup lavf_encoding + * @{ + */ +typedef struct AVOutputFormat { + const char *name; + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + const char *mime_type; + const char *extensions; /**< comma-separated filename extensions */ + /* output support */ + enum AVCodecID audio_codec; /**< default audio codec */ + enum AVCodecID video_codec; /**< default video codec */ + enum AVCodecID subtitle_codec; /**< default subtitle codec */ + /** + * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, + * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, + * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, + * AVFMT_TS_NONSTRICT, AVFMT_TS_NEGATIVE + */ + int flags; + + /** + * List of supported codec_id-codec_tag pairs, ordered by "better + * choice first". The arrays are all terminated by AV_CODEC_ID_NONE. + */ + const struct AVCodecTag * const *codec_tag; + + + const AVClass *priv_class; ///< AVClass for the private context +} AVOutputFormat; +/** + * @} + */ + +/** + * @addtogroup lavf_decoding + * @{ + */ +typedef struct AVInputFormat { + /** + * A comma separated list of short names for the format. New names + * may be appended with a minor bump. + */ + const char *name; + + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + + /** + * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, + * AVFMT_NOTIMESTAMPS, AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, + * AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK, AVFMT_SEEK_TO_PTS. + */ + int flags; + + /** + * If extensions are defined, then no probe is done. You should + * usually not use extension format guessing because it is not + * reliable enough + */ + const char *extensions; + + const struct AVCodecTag * const *codec_tag; + + const AVClass *priv_class; ///< AVClass for the private context + + /** + * Comma-separated list of mime types. + * It is used check for matching mime types while probing. + * @see av_probe_input_format2 + */ + const char *mime_type; +} AVInputFormat; +/** + * @} + */ + +enum AVStreamParseType { + AVSTREAM_PARSE_NONE, + AVSTREAM_PARSE_FULL, /**< full parsing and repack */ + AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */ + AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */ + AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */ + AVSTREAM_PARSE_FULL_RAW, /**< full parsing and repack with timestamp and position generation by parser for raw + this assumes that each packet in the file contains no demuxer level headers and + just codec level data, otherwise position generation would fail */ +}; + +typedef struct AVIndexEntry { + int64_t pos; + int64_t timestamp; /**< + * Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available + * when seeking to this entry. That means preferable PTS on keyframe based formats. + * But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better + * is known + */ +#define AVINDEX_KEYFRAME 0x0001 +#define AVINDEX_DISCARD_FRAME 0x0002 /** + * Flag is used to indicate which frame should be discarded after decoding. + */ + int flags:2; + int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment). + int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */ +} AVIndexEntry; + +/** + * The stream should be chosen by default among other streams of the same type, + * unless the user has explicitly specified otherwise. + */ +#define AV_DISPOSITION_DEFAULT (1 << 0) +/** + * The stream is not in original language. + * + * @note AV_DISPOSITION_ORIGINAL is the inverse of this disposition. At most + * one of them should be set in properly tagged streams. + * @note This disposition may apply to any stream type, not just audio. + */ +#define AV_DISPOSITION_DUB (1 << 1) +/** + * The stream is in original language. + * + * @see the notes for AV_DISPOSITION_DUB + */ +#define AV_DISPOSITION_ORIGINAL (1 << 2) +/** + * The stream is a commentary track. + */ +#define AV_DISPOSITION_COMMENT (1 << 3) +/** + * The stream contains song lyrics. + */ +#define AV_DISPOSITION_LYRICS (1 << 4) +/** + * The stream contains karaoke audio. + */ +#define AV_DISPOSITION_KARAOKE (1 << 5) + +/** + * Track should be used during playback by default. + * Useful for subtitle track that should be displayed + * even when user did not explicitly ask for subtitles. + */ +#define AV_DISPOSITION_FORCED (1 << 6) +/** + * The stream is intended for hearing impaired audiences. + */ +#define AV_DISPOSITION_HEARING_IMPAIRED (1 << 7) +/** + * The stream is intended for visually impaired audiences. + */ +#define AV_DISPOSITION_VISUAL_IMPAIRED (1 << 8) +/** + * The audio stream contains music and sound effects without voice. + */ +#define AV_DISPOSITION_CLEAN_EFFECTS (1 << 9) +/** + * The stream is stored in the file as an attached picture/"cover art" (e.g. + * APIC frame in ID3v2). The first (usually only) packet associated with it + * will be returned among the first few packets read from the file unless + * seeking takes place. It can also be accessed at any time in + * AVStream.attached_pic. + */ +#define AV_DISPOSITION_ATTACHED_PIC (1 << 10) +/** + * The stream is sparse, and contains thumbnail images, often corresponding + * to chapter markers. Only ever used with AV_DISPOSITION_ATTACHED_PIC. + */ +#define AV_DISPOSITION_TIMED_THUMBNAILS (1 << 11) + +/** + * The stream is intended to be mixed with a spatial audio track. For example, + * it could be used for narration or stereo music, and may remain unchanged by + * listener head rotation. + */ +#define AV_DISPOSITION_NON_DIEGETIC (1 << 12) + +/** + * The subtitle stream contains captions, providing a transcription and possibly + * a translation of audio. Typically intended for hearing-impaired audiences. + */ +#define AV_DISPOSITION_CAPTIONS (1 << 16) +/** + * The subtitle stream contains a textual description of the video content. + * Typically intended for visually-impaired audiences or for the cases where the + * video cannot be seen. + */ +#define AV_DISPOSITION_DESCRIPTIONS (1 << 17) +/** + * The subtitle stream contains time-aligned metadata that is not intended to be + * directly presented to the user. + */ +#define AV_DISPOSITION_METADATA (1 << 18) +/** + * The stream is intended to be mixed with another stream before presentation. + * Used for example to signal the stream contains an image part of a HEIF grid, + * or for mix_type=0 in mpegts. + */ +#define AV_DISPOSITION_DEPENDENT (1 << 19) +/** + * The video stream contains still images. + */ +#define AV_DISPOSITION_STILL_IMAGE (1 << 20) +/** + * The video stream contains multiple layers, e.g. stereoscopic views (cf. H.264 + * Annex G/H, or HEVC Annex F). + */ +#define AV_DISPOSITION_MULTILAYER (1 << 21) + +/** + * @return The AV_DISPOSITION_* flag corresponding to disp or a negative error + * code if disp does not correspond to a known stream disposition. + */ +int av_disposition_from_string(const char *disp); + +/** + * @param disposition a combination of AV_DISPOSITION_* values + * @return The string description corresponding to the lowest set bit in + * disposition. NULL when the lowest set bit does not correspond + * to a known disposition or when disposition is 0. + */ +const char *av_disposition_to_string(int disposition); + +/** + * Options for behavior on timestamp wrap detection. + */ +#define AV_PTS_WRAP_IGNORE 0 ///< ignore the wrap +#define AV_PTS_WRAP_ADD_OFFSET 1 ///< add the format specific offset on wrap detection +#define AV_PTS_WRAP_SUB_OFFSET -1 ///< subtract the format specific offset on wrap detection + +/** + * Stream structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVStream) must not be used outside libav*. + */ +typedef struct AVStream { + /** + * A class for @ref avoptions. Set on stream creation. + */ + const AVClass *av_class; + + int index; /**< stream index in AVFormatContext */ + /** + * Format-specific stream ID. + * decoding: set by libavformat + * encoding: set by the user, replaced by libavformat if left unset + */ + int id; + + /** + * Codec parameters associated with this stream. Allocated and freed by + * libavformat in avformat_new_stream() and avformat_free_context() + * respectively. + * + * - demuxing: filled by libavformat on stream creation or in + * avformat_find_stream_info() + * - muxing: filled by the caller before avformat_write_header() + */ + AVCodecParameters *codecpar; + + void *priv_data; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. + * + * decoding: set by libavformat + * encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the desired timebase. In + * avformat_write_header(), the muxer will overwrite this field + * with the timebase that will actually be used for the timestamps + * written into the file (which may or may not be related to the + * user-provided one, depending on the format). + */ + AVRational time_base; + + /** + * Decoding: pts of the first frame of the stream in presentation order, in stream time base. + * Only set this if you are absolutely 100% sure that the value you set + * it to really is the pts of the first frame. + * This may be undefined (AV_NOPTS_VALUE). + * @note The ASF header does NOT contain a correct start_time the ASF + * demuxer must NOT set this. + */ + int64_t start_time; + + /** + * Decoding: duration of the stream, in stream time base. + * If a source file does not specify a duration, but does specify + * a bitrate, this value will be estimated from bitrate and file size. + * + * Encoding: May be set by the caller before avformat_write_header() to + * provide a hint to the muxer about the estimated duration. + */ + int64_t duration; + + int64_t nb_frames; ///< number of frames in this stream if known or 0 + + /** + * Stream disposition - a combination of AV_DISPOSITION_* flags. + * - demuxing: set by libavformat when creating the stream or in + * avformat_find_stream_info(). + * - muxing: may be set by the caller before avformat_write_header(). + */ + int disposition; + + enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed. + + /** + * sample aspect ratio (0 if unknown) + * - encoding: Set by user. + * - decoding: Set by libavformat. + */ + AVRational sample_aspect_ratio; + + AVDictionary *metadata; + + /** + * Average framerate + * + * - demuxing: May be set by libavformat when creating the stream or in + * avformat_find_stream_info(). + * - muxing: May be set by the caller before avformat_write_header(). + */ + AVRational avg_frame_rate; + + /** + * For streams with AV_DISPOSITION_ATTACHED_PIC disposition, this packet + * will contain the attached picture. + * + * decoding: set by libavformat, must not be modified by the caller. + * encoding: unused + */ + AVPacket attached_pic; + +#if FF_API_AVSTREAM_SIDE_DATA + /** + * An array of side data that applies to the whole stream (i.e. the + * container does not allow it to change between packets). + * + * There may be no overlap between the side data in this array and side data + * in the packets. I.e. a given side data is either exported by the muxer + * (demuxing) / set by the caller (muxing) in this array, then it never + * appears in the packets, or the side data is exported / sent through + * the packets (always in the first packet where the value becomes known or + * changes), then it does not appear in this array. + * + * - demuxing: Set by libavformat when the stream is created. + * - muxing: May be set by the caller before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + * + * @deprecated use AVStream's @ref AVCodecParameters.coded_side_data + * "codecpar side data". + */ + attribute_deprecated + AVPacketSideData *side_data; + /** + * The number of elements in the AVStream.side_data array. + * + * @deprecated use AVStream's @ref AVCodecParameters.nb_coded_side_data + * "codecpar side data". + */ + attribute_deprecated + int nb_side_data; +#endif + + /** + * Flags indicating events happening on the stream, a combination of + * AVSTREAM_EVENT_FLAG_*. + * + * - demuxing: may be set by the demuxer in avformat_open_input(), + * avformat_find_stream_info() and av_read_frame(). Flags must be cleared + * by the user once the event has been handled. + * - muxing: may be set by the user after avformat_write_header(). to + * indicate a user-triggered event. The muxer will clear the flags for + * events it has handled in av_[interleaved]_write_frame(). + */ + int event_flags; +/** + * - demuxing: the demuxer read new metadata from the file and updated + * AVStream.metadata accordingly + * - muxing: the user updated AVStream.metadata and wishes the muxer to write + * it into the file + */ +#define AVSTREAM_EVENT_FLAG_METADATA_UPDATED 0x0001 +/** + * - demuxing: new packets for this stream were read from the file. This + * event is informational only and does not guarantee that new packets + * for this stream will necessarily be returned from av_read_frame(). + */ +#define AVSTREAM_EVENT_FLAG_NEW_PACKETS (1 << 1) + + /** + * Real base framerate of the stream. + * This is the lowest framerate with which all timestamps can be + * represented accurately (it is the least common multiple of all + * framerates in the stream). Note, this value is just a guess! + * For example, if the time base is 1/90000 and all frames have either + * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. + */ + AVRational r_frame_rate; + + /** + * Number of bits in timestamps. Used for wrapping control. + * + * - demuxing: set by libavformat + * - muxing: set by libavformat + * + */ + int pts_wrap_bits; +} AVStream; + +/** + * AVStreamGroupTileGrid holds information on how to combine several + * independent images on a single canvas for presentation. + * + * The output should be a @ref AVStreamGroupTileGrid.background "background" + * colored @ref AVStreamGroupTileGrid.coded_width "coded_width" x + * @ref AVStreamGroupTileGrid.coded_height "coded_height" canvas where a + * @ref AVStreamGroupTileGrid.nb_tiles "nb_tiles" amount of tiles are placed in + * the order they appear in the @ref AVStreamGroupTileGrid.offsets "offsets" + * array, at the exact offset described for them. In particular, if two or more + * tiles overlap, the image with higher index in the + * @ref AVStreamGroupTileGrid.offsets "offsets" array takes priority. + * Note that a single image may be used multiple times, i.e. multiple entries + * in @ref AVStreamGroupTileGrid.offsets "offsets" may have the same value of + * idx. + * + * The following is an example of a simple grid with 3 rows and 4 columns: + * + * +---+---+---+---+ + * | 0 | 1 | 2 | 3 | + * +---+---+---+---+ + * | 4 | 5 | 6 | 7 | + * +---+---+---+---+ + * | 8 | 9 |10 |11 | + * +---+---+---+---+ + * + * Assuming all tiles have a dimension of 512x512, the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the first @ref AVStreamGroup.streams "stream" in the group is "0,0", the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the second @ref AVStreamGroup.streams "stream" in the group is "512,0", the + * @ref AVStreamGroupTileGrid.offsets "offset" of the topleft pixel of + * the fifth @ref AVStreamGroup.streams "stream" in the group is "0,512", the + * @ref AVStreamGroupTileGrid.offsets "offset", of the topleft pixel of + * the sixth @ref AVStreamGroup.streams "stream" in the group is "512,512", + * etc. + * + * The following is an example of a canvas with overlaping tiles: + * + * +-----------+ + * | %%%%% | + * |***%%3%%@@@| + * |**0%%%%%2@@| + * |***##1@@@@@| + * | ##### | + * +-----------+ + * + * Assuming a canvas with size 1024x1024 and all tiles with a dimension of + * 512x512, a possible @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the first @ref AVStreamGroup.streams "stream" in the group + * would be 0x256, the @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the second @ref AVStreamGroup.streams "stream" in the group + * would be 256x512, the @ref AVStreamGroupTileGrid.offsets "offset" for the + * topleft pixel of the third @ref AVStreamGroup.streams "stream" in the group + * would be 512x256, and the @ref AVStreamGroupTileGrid.offsets "offset" for + * the topleft pixel of the fourth @ref AVStreamGroup.streams "stream" in the + * group would be 256x0. + * + * sizeof(AVStreamGroupTileGrid) is not a part of the ABI and may only be + * allocated by avformat_stream_group_create(). + */ +typedef struct AVStreamGroupTileGrid { + const AVClass *av_class; + + /** + * Amount of tiles in the grid. + * + * Must be > 0. + */ + unsigned int nb_tiles; + + /** + * Width of the canvas. + * + * Must be > 0. + */ + int coded_width; + /** + * Width of the canvas. + * + * Must be > 0. + */ + int coded_height; + + /** + * An @ref nb_tiles sized array of offsets in pixels from the topleft edge + * of the canvas, indicating where each stream should be placed. + * It must be allocated with the av_malloc() family of functions. + * + * - demuxing: set by libavformat, must not be modified by the caller. + * - muxing: set by the caller before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + struct { + /** + * Index of the stream in the group this tile references. + * + * Must be < @ref AVStreamGroup.nb_streams "nb_streams". + */ + unsigned int idx; + /** + * Offset in pixels from the left edge of the canvas where the tile + * should be placed. + */ + int horizontal; + /** + * Offset in pixels from the top edge of the canvas where the tile + * should be placed. + */ + int vertical; + } *offsets; + + /** + * The pixel value per channel in RGBA format used if no pixel of any tile + * is located at a particular pixel location. + * + * @see av_image_fill_color(). + * @see av_parse_color(). + */ + uint8_t background[4]; + + /** + * Offset in pixels from the left edge of the canvas where the actual image + * meant for presentation starts. + * + * This field must be >= 0 and < @ref coded_width. + */ + int horizontal_offset; + /** + * Offset in pixels from the top edge of the canvas where the actual image + * meant for presentation starts. + * + * This field must be >= 0 and < @ref coded_height. + */ + int vertical_offset; + + /** + * Width of the final image for presentation. + * + * Must be > 0 and <= (@ref coded_width - @ref horizontal_offset). + * When it's not equal to (@ref coded_width - @ref horizontal_offset), the + * result of (@ref coded_width - width - @ref horizontal_offset) is the + * amount amount of pixels to be cropped from the right edge of the + * final image before presentation. + */ + int width; + /** + * Height of the final image for presentation. + * + * Must be > 0 and <= (@ref coded_height - @ref vertical_offset). + * When it's not equal to (@ref coded_height - @ref vertical_offset), the + * result of (@ref coded_height - height - @ref vertical_offset) is the + * amount amount of pixels to be cropped from the bottom edge of the + * final image before presentation. + */ + int height; +} AVStreamGroupTileGrid; + +/** + * AVStreamGroupLCEVC is meant to define the relation between video streams + * and a data stream containing LCEVC enhancement layer NALUs. + * + * No more than one stream of @ref AVCodecParameters.codec_type "codec_type" + * AVMEDIA_TYPE_DATA shall be present, and it must be of + * @ref AVCodecParameters.codec_id "codec_id" AV_CODEC_ID_LCEVC. + */ +typedef struct AVStreamGroupLCEVC { + const AVClass *av_class; + + /** + * Index of the LCEVC data stream in AVStreamGroup. + */ + unsigned int lcevc_index; + /** + * Width of the final stream for presentation. + */ + int width; + /** + * Height of the final image for presentation. + */ + int height; +} AVStreamGroupLCEVC; + +enum AVStreamGroupParamsType { + AV_STREAM_GROUP_PARAMS_NONE, + AV_STREAM_GROUP_PARAMS_IAMF_AUDIO_ELEMENT, + AV_STREAM_GROUP_PARAMS_IAMF_MIX_PRESENTATION, + AV_STREAM_GROUP_PARAMS_TILE_GRID, + AV_STREAM_GROUP_PARAMS_LCEVC, +}; + +struct AVIAMFAudioElement; +struct AVIAMFMixPresentation; + +typedef struct AVStreamGroup { + /** + * A class for @ref avoptions. Set by avformat_stream_group_create(). + */ + const AVClass *av_class; + + void *priv_data; + + /** + * Group index in AVFormatContext. + */ + unsigned int index; + + /** + * Group type-specific group ID. + * + * decoding: set by libavformat + * encoding: may set by the user + */ + int64_t id; + + /** + * Group type + * + * decoding: set by libavformat on group creation + * encoding: set by avformat_stream_group_create() + */ + enum AVStreamGroupParamsType type; + + /** + * Group type-specific parameters + */ + union { + struct AVIAMFAudioElement *iamf_audio_element; + struct AVIAMFMixPresentation *iamf_mix_presentation; + struct AVStreamGroupTileGrid *tile_grid; + struct AVStreamGroupLCEVC *lcevc; + } params; + + /** + * Metadata that applies to the whole group. + * + * - demuxing: set by libavformat on group creation + * - muxing: may be set by the caller before avformat_write_header() + * + * Freed by libavformat in avformat_free_context(). + */ + AVDictionary *metadata; + + /** + * Number of elements in AVStreamGroup.streams. + * + * Set by avformat_stream_group_add_stream() must not be modified by any other code. + */ + unsigned int nb_streams; + + /** + * A list of streams in the group. New entries are created with + * avformat_stream_group_add_stream(). + * + * - demuxing: entries are created by libavformat on group creation. + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new entries may also + * appear in av_read_frame(). + * - muxing: entries are created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStream **streams; + + /** + * Stream group disposition - a combination of AV_DISPOSITION_* flags. + * This field currently applies to all defined AVStreamGroupParamsType. + * + * - demuxing: set by libavformat when creating the group or in + * avformat_find_stream_info(). + * - muxing: may be set by the caller before avformat_write_header(). + */ + int disposition; +} AVStreamGroup; + +struct AVCodecParserContext *av_stream_get_parser(const AVStream *s); + +// Chromium: We use the internal field first_dts vvv +int64_t av_stream_get_first_dts(const AVStream *st); +// Chromium: We use the internal field first_dts ^^^ + +#define AV_PROGRAM_RUNNING 1 + +/** + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVProgram) must not be used outside libav*. + */ +typedef struct AVProgram { + int id; + int flags; + enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller + unsigned int *stream_index; + unsigned int nb_stream_indexes; + AVDictionary *metadata; + + int program_num; + int pmt_pid; + int pcr_pid; + int pmt_version; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + int64_t start_time; + int64_t end_time; + + int64_t pts_wrap_reference; ///< reference dts for wrap detection + int pts_wrap_behavior; ///< behavior on wrap detection +} AVProgram; + +#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present + (streams are added dynamically) */ +#define AVFMTCTX_UNSEEKABLE 0x0002 /**< signal that the stream is definitely + not seekable, and attempts to call the + seek function will fail. For some + network protocols (e.g. HLS), this can + change dynamically at runtime. */ + +typedef struct AVChapter { + int64_t id; ///< unique ID to identify the chapter + AVRational time_base; ///< time base in which the start/end timestamps are specified + int64_t start, end; ///< chapter start/end time in time_base units + AVDictionary *metadata; +} AVChapter; + + +/** + * Callback used by devices to communicate with application. + */ +typedef int (*av_format_control_message)(struct AVFormatContext *s, int type, + void *data, size_t data_size); + +typedef int (*AVOpenCallback)(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, + const AVIOInterruptCB *int_cb, AVDictionary **options); + +/** + * The duration of a video can be estimated through various ways, and this enum can be used + * to know how the duration was estimated. + */ +enum AVDurationEstimationMethod { + AVFMT_DURATION_FROM_PTS, ///< Duration accurately estimated from PTSes + AVFMT_DURATION_FROM_STREAM, ///< Duration estimated from a stream with a known duration + AVFMT_DURATION_FROM_BITRATE ///< Duration estimated from bitrate (less accurate) +}; + +/** + * Format I/O context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVFormatContext) must not be used outside libav*, use + * avformat_alloc_context() to create an AVFormatContext. + * + * Fields can be accessed through AVOptions (av_opt*), + * the name string used matches the associated command line parameter name and + * can be found in libavformat/options_table.h. + * The AVOption/command line parameter names differ in some cases from the C + * structure field names for historic reasons or brevity. + */ +typedef struct AVFormatContext { + /** + * A class for logging and @ref avoptions. Set by avformat_alloc_context(). + * Exports (de)muxer private options if they exist. + */ + const AVClass *av_class; + + /** + * The input container format. + * + * Demuxing only, set by avformat_open_input(). + */ + const struct AVInputFormat *iformat; + + /** + * The output container format. + * + * Muxing only, must be set by the caller before avformat_write_header(). + */ + const struct AVOutputFormat *oformat; + + /** + * Format private data. This is an AVOptions-enabled struct + * if and only if iformat/oformat.priv_class is not NULL. + * + * - muxing: set by avformat_write_header() + * - demuxing: set by avformat_open_input() + */ + void *priv_data; + + /** + * I/O context. + * + * - demuxing: either set by the user before avformat_open_input() (then + * the user must close it manually) or set by avformat_open_input(). + * - muxing: set by the user before avformat_write_header(). The caller must + * take care of closing / freeing the IO context. + * + * Do NOT set this field if AVFMT_NOFILE flag is set in + * iformat/oformat.flags. In such a case, the (de)muxer will handle + * I/O in some other way and this field will be NULL. + */ + AVIOContext *pb; + + /* stream info */ + /** + * Flags signalling stream properties. A combination of AVFMTCTX_*. + * Set by libavformat. + */ + int ctx_flags; + + /** + * Number of elements in AVFormatContext.streams. + * + * Set by avformat_new_stream(), must not be modified by any other code. + */ + unsigned int nb_streams; + /** + * A list of all streams in the file. New streams are created with + * avformat_new_stream(). + * + * - demuxing: streams are created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also + * appear in av_read_frame(). + * - muxing: streams are created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStream **streams; + + /** + * Number of elements in AVFormatContext.stream_groups. + * + * Set by avformat_stream_group_create(), must not be modified by any other code. + */ + unsigned int nb_stream_groups; + /** + * A list of all stream groups in the file. New groups are created with + * avformat_stream_group_create(), and filled with avformat_stream_group_add_stream(). + * + * - demuxing: groups may be created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new groups may also + * appear in av_read_frame(). + * - muxing: groups may be created by the user before avformat_write_header(). + * + * Freed by libavformat in avformat_free_context(). + */ + AVStreamGroup **stream_groups; + + /** + * Number of chapters in AVChapter array. + * When muxing, chapters are normally written in the file header, + * so nb_chapters should normally be initialized before write_header + * is called. Some muxers (e.g. mov and mkv) can also write chapters + * in the trailer. To write chapters in the trailer, nb_chapters + * must be zero when write_header is called and non-zero when + * write_trailer is called. + * - muxing: set by user + * - demuxing: set by libavformat + */ + unsigned int nb_chapters; + AVChapter **chapters; + + /** + * input or output URL. Unlike the old filename field, this field has no + * length restriction. + * + * - demuxing: set by avformat_open_input(), initialized to an empty + * string if url parameter was NULL in avformat_open_input(). + * - muxing: may be set by the caller before calling avformat_write_header() + * (or avformat_init_output() if that is called first) to a string + * which is freeable by av_free(). Set to an empty string if it + * was NULL in avformat_init_output(). + * + * Freed by libavformat in avformat_free_context(). + */ + char *url; + + /** + * Position of the first frame of the component, in + * AV_TIME_BASE fractional seconds. NEVER set this value directly: + * It is deduced from the AVStream values. + * + * Demuxing only, set by libavformat. + */ + int64_t start_time; + + /** + * Duration of the stream, in AV_TIME_BASE fractional + * seconds. Only set this value if you know none of the individual stream + * durations and also do not set any of them. This is deduced from the + * AVStream values if not set. + * + * Demuxing only, set by libavformat. + */ + int64_t duration; + + /** + * Total stream bitrate in bit/s, 0 if not + * available. Never set it directly if the file_size and the + * duration are known as FFmpeg can compute it automatically. + */ + int64_t bit_rate; + + unsigned int packet_size; + int max_delay; + + /** + * Flags modifying the (de)muxer behaviour. A combination of AVFMT_FLAG_*. + * Set by the user before avformat_open_input() / avformat_write_header(). + */ + int flags; +#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames. +#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index. +#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input. +#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS +#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container +#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled +#define AVFMT_FLAG_NOBUFFER 0x0040 ///< Do not buffer frames when possible +#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. +#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted +#define AVFMT_FLAG_FLUSH_PACKETS 0x0200 ///< Flush the AVIOContext every packet. +/** + * When muxing, try to avoid writing any random/volatile data to the output. + * This includes any random IDs, real-time timestamps/dates, muxer version, etc. + * + * This flag is mainly intended for testing. + */ +#define AVFMT_FLAG_BITEXACT 0x0400 +#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) +#define AVFMT_FLAG_FAST_SEEK 0x80000 ///< Enable fast, but inaccurate seeks for some formats +#if FF_API_LAVF_SHORTEST +#define AVFMT_FLAG_SHORTEST 0x100000 ///< Stop muxing when the shortest stream stops. +#endif +#define AVFMT_FLAG_AUTO_BSF 0x200000 ///< Add bitstream filters as requested by the muxer + + /** + * Maximum number of bytes read from input in order to determine stream + * properties. Used when reading the global header and in + * avformat_find_stream_info(). + * + * Demuxing only, set by the caller before avformat_open_input(). + * + * @note this is \e not used for determining the \ref AVInputFormat + * "input format" + * @see format_probesize + */ + int64_t probesize; + + /** + * Maximum duration (in AV_TIME_BASE units) of the data read + * from input in avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + * Can be set to 0 to let avformat choose using a heuristic. + */ + int64_t max_analyze_duration; + + const uint8_t *key; + int keylen; + + unsigned int nb_programs; + AVProgram **programs; + + /** + * Forced video codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID video_codec_id; + + /** + * Forced audio codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID audio_codec_id; + + /** + * Forced subtitle codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID subtitle_codec_id; + + /** + * Forced Data codec_id. + * Demuxing: Set by user. + */ + enum AVCodecID data_codec_id; + + /** + * Metadata that applies to the whole file. + * + * - demuxing: set by libavformat in avformat_open_input() + * - muxing: may be set by the caller before avformat_write_header() + * + * Freed by libavformat in avformat_free_context(). + */ + AVDictionary *metadata; + + /** + * Start time of the stream in real world time, in microseconds + * since the Unix epoch (00:00 1st January 1970). That is, pts=0 in the + * stream was captured at this real world time. + * - muxing: Set by the caller before avformat_write_header(). If set to + * either 0 or AV_NOPTS_VALUE, then the current wall-time will + * be used. + * - demuxing: Set by libavformat. AV_NOPTS_VALUE if unknown. Note that + * the value may become known after some number of frames + * have been received. + */ + int64_t start_time_realtime; + + /** + * The number of frames used for determining the framerate in + * avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + */ + int fps_probe_size; + + /** + * Error recognition; higher values will detect more errors but may + * misdetect some more or less valid parts as errors. + * Demuxing only, set by the caller before avformat_open_input(). + */ + int error_recognition; + + /** + * Custom interrupt callbacks for the I/O layer. + * + * demuxing: set by the user before avformat_open_input(). + * muxing: set by the user before avformat_write_header() + * (mainly useful for AVFMT_NOFILE formats). The callback + * should also be passed to avio_open2() if it's used to + * open the file. + */ + AVIOInterruptCB interrupt_callback; + + /** + * Flags to enable debugging. + */ + int debug; +#define FF_FDEBUG_TS 0x0001 + + /** + * The maximum number of streams. + * - encoding: unused + * - decoding: set by user + */ + int max_streams; + + /** + * Maximum amount of memory in bytes to use for the index of each stream. + * If the index exceeds this size, entries will be discarded as + * needed to maintain a smaller size. This can lead to slower or less + * accurate seeking (depends on demuxer). + * Demuxers for which a full in-memory index is mandatory will ignore + * this. + * - muxing: unused + * - demuxing: set by user + */ + unsigned int max_index_size; + + /** + * Maximum amount of memory in bytes to use for buffering frames + * obtained from realtime capture devices. + */ + unsigned int max_picture_buffer; + + /** + * Maximum buffering duration for interleaving. + * + * To ensure all the streams are interleaved correctly, + * av_interleaved_write_frame() will wait until it has at least one packet + * for each stream before actually writing any packets to the output file. + * When some streams are "sparse" (i.e. there are large gaps between + * successive packets), this can result in excessive buffering. + * + * This field specifies the maximum difference between the timestamps of the + * first and the last packet in the muxing queue, above which libavformat + * will output a packet regardless of whether it has queued a packet for all + * the streams. + * + * Muxing only, set by the caller before avformat_write_header(). + */ + int64_t max_interleave_delta; + + /** + * Maximum number of packets to read while waiting for the first timestamp. + * Decoding only. + */ + int max_ts_probe; + + /** + * Max chunk time in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int max_chunk_duration; + + /** + * Max chunk size in bytes + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int max_chunk_size; + + /** + * Maximum number of packets that can be probed + * - encoding: unused + * - decoding: set by user + */ + int max_probe_packets; + + /** + * Allow non-standard and experimental extension + * @see AVCodecContext.strict_std_compliance + */ + int strict_std_compliance; + + /** + * Flags indicating events happening on the file, a combination of + * AVFMT_EVENT_FLAG_*. + * + * - demuxing: may be set by the demuxer in avformat_open_input(), + * avformat_find_stream_info() and av_read_frame(). Flags must be cleared + * by the user once the event has been handled. + * - muxing: may be set by the user after avformat_write_header() to + * indicate a user-triggered event. The muxer will clear the flags for + * events it has handled in av_[interleaved]_write_frame(). + */ + int event_flags; +/** + * - demuxing: the demuxer read new metadata from the file and updated + * AVFormatContext.metadata accordingly + * - muxing: the user updated AVFormatContext.metadata and wishes the muxer to + * write it into the file + */ +#define AVFMT_EVENT_FLAG_METADATA_UPDATED 0x0001 + + + /** + * Avoid negative timestamps during muxing. + * Any value of the AVFMT_AVOID_NEG_TS_* constants. + * Note, this works better when using av_interleaved_write_frame(). + * - muxing: Set by user + * - demuxing: unused + */ + int avoid_negative_ts; +#define AVFMT_AVOID_NEG_TS_AUTO -1 ///< Enabled when required by target format +#define AVFMT_AVOID_NEG_TS_DISABLED 0 ///< Do not shift timestamps even when they are negative. +#define AVFMT_AVOID_NEG_TS_MAKE_NON_NEGATIVE 1 ///< Shift timestamps so they are non negative +#define AVFMT_AVOID_NEG_TS_MAKE_ZERO 2 ///< Shift timestamps so that they start at 0 + + /** + * Audio preload in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user + * - decoding: unused + */ + int audio_preload; + + /** + * forces the use of wallclock timestamps as pts/dts of packets + * This has undefined results in the presence of B frames. + * - encoding: unused + * - decoding: Set by user + */ + int use_wallclock_as_timestamps; + + /** + * Skip duration calcuation in estimate_timings_from_pts. + * - encoding: unused + * - decoding: set by user + * + * @see duration_probesize + */ + int skip_estimate_duration_from_pts; + + /** + * avio flags, used to force AVIO_FLAG_DIRECT. + * - encoding: unused + * - decoding: Set by user + */ + int avio_flags; + + /** + * The duration field can be estimated through various ways, and this field can be used + * to know how the duration was estimated. + * - encoding: unused + * - decoding: Read by user + */ + enum AVDurationEstimationMethod duration_estimation_method; + + /** + * Skip initial bytes when opening stream + * - encoding: unused + * - decoding: Set by user + */ + int64_t skip_initial_bytes; + + /** + * Correct single timestamp overflows + * - encoding: unused + * - decoding: Set by user + */ + unsigned int correct_ts_overflow; + + /** + * Force seeking to any (also non key) frames. + * - encoding: unused + * - decoding: Set by user + */ + int seek2any; + + /** + * Flush the I/O context after each packet. + * - encoding: Set by user + * - decoding: unused + */ + int flush_packets; + + /** + * format probing score. + * The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes + * the format. + * - encoding: unused + * - decoding: set by avformat, read by user + */ + int probe_score; + + /** + * Maximum number of bytes read from input in order to identify the + * \ref AVInputFormat "input format". Only used when the format is not set + * explicitly by the caller. + * + * Demuxing only, set by the caller before avformat_open_input(). + * + * @see probesize + */ + int format_probesize; + + /** + * ',' separated list of allowed decoders. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *codec_whitelist; + + /** + * ',' separated list of allowed demuxers. + * If NULL then all are allowed + * - encoding: unused + * - decoding: set by user + */ + char *format_whitelist; + + /** + * ',' separated list of allowed protocols. + * - encoding: unused + * - decoding: set by user + */ + char *protocol_whitelist; + + /** + * ',' separated list of disallowed protocols. + * - encoding: unused + * - decoding: set by user + */ + char *protocol_blacklist; + + /** + * IO repositioned flag. + * This is set by avformat when the underlaying IO context read pointer + * is repositioned, for example when doing byte based seeking. + * Demuxers can use the flag to detect such changes. + */ + int io_repositioned; + + /** + * Forced video codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *video_codec; + + /** + * Forced audio codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *audio_codec; + + /** + * Forced subtitle codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *subtitle_codec; + + /** + * Forced data codec. + * This allows forcing a specific decoder, even when there are multiple with + * the same codec_id. + * Demuxing: Set by user + */ + const struct AVCodec *data_codec; + + /** + * Number of bytes to be written as padding in a metadata header. + * Demuxing: Unused. + * Muxing: Set by user. + */ + int metadata_header_padding; + + /** + * User data. + * This is a place for some private data of the user. + */ + void *opaque; + + /** + * Callback used by devices to communicate with application. + */ + av_format_control_message control_message_cb; + + /** + * Output timestamp offset, in microseconds. + * Muxing: set by user + */ + int64_t output_ts_offset; + + /** + * dump format separator. + * can be ", " or "\n " or anything else + * - muxing: Set by user. + * - demuxing: Set by user. + */ + uint8_t *dump_separator; + + /** + * A callback for opening new IO streams. + * + * Whenever a muxer or a demuxer needs to open an IO stream (typically from + * avformat_open_input() for demuxers, but for certain formats can happen at + * other times as well), it will call this callback to obtain an IO context. + * + * @param s the format context + * @param pb on success, the newly opened IO context should be returned here + * @param url the url to open + * @param flags a combination of AVIO_FLAG_* + * @param options a dictionary of additional options, with the same + * semantics as in avio_open2() + * @return 0 on success, a negative AVERROR code on failure + * + * @note Certain muxers and demuxers do nesting, i.e. they open one or more + * additional internal format contexts. Thus the AVFormatContext pointer + * passed to this callback may be different from the one facing the caller. + * It will, however, have the same 'opaque' field. + */ + int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url, + int flags, AVDictionary **options); + + /** + * A callback for closing the streams opened with AVFormatContext.io_open(). + * + * Using this is preferred over io_close, because this can return an error. + * Therefore this callback is used instead of io_close by the generic + * libavformat code if io_close is NULL or the default. + * + * @param s the format context + * @param pb IO context to be closed and freed + * @return 0 on success, a negative AVERROR code on failure + */ + int (*io_close2)(struct AVFormatContext *s, AVIOContext *pb); + + /** + * Maximum number of bytes read from input in order to determine stream durations + * when using estimate_timings_from_pts in avformat_find_stream_info(). + * Demuxing only, set by the caller before avformat_find_stream_info(). + * Can be set to 0 to let avformat choose using a heuristic. + * + * @see skip_estimate_duration_from_pts + */ + int64_t duration_probesize; +} AVFormatContext; + +/** + * This function will cause global side data to be injected in the next packet + * of each stream as well as after any subsequent seek. + * + * @note global side data is always available in every AVStream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" array, and + * in a @ref AVCodecContext.coded_side_data "decoder's side data" array if + * initialized with said stream's codecpar. + * @see av_packet_side_data_get() + */ +void av_format_inject_global_side_data(AVFormatContext *s); + +#if FF_API_GET_DUR_ESTIMATE_METHOD +/** + * Returns the method used to set ctx->duration. + * + * @return AVFMT_DURATION_FROM_PTS, AVFMT_DURATION_FROM_STREAM, or AVFMT_DURATION_FROM_BITRATE. + * @deprecated duration_estimation_method is public and can be read directly. + */ +attribute_deprecated +enum AVDurationEstimationMethod av_fmt_ctx_get_duration_estimation_method(const AVFormatContext* ctx); +#endif + +/** + * @defgroup lavf_core Core functions + * @ingroup libavf + * + * Functions for querying libavformat capabilities, allocating core structures, + * etc. + * @{ + */ + +/** + * Return the LIBAVFORMAT_VERSION_INT constant. + */ +unsigned avformat_version(void); + +/** + * Return the libavformat build-time configuration. + */ +const char *avformat_configuration(void); + +/** + * Return the libavformat license. + */ +const char *avformat_license(void); + +/** + * Do global initialization of network libraries. This is optional, + * and not recommended anymore. + * + * This functions only exists to work around thread-safety issues + * with older GnuTLS or OpenSSL libraries. If libavformat is linked + * to newer versions of those libraries, or if you do not use them, + * calling this function is unnecessary. Otherwise, you need to call + * this function before any other threads using them are started. + * + * This function will be deprecated once support for older GnuTLS and + * OpenSSL libraries is removed, and this function has no purpose + * anymore. + */ +int avformat_network_init(void); + +/** + * Undo the initialization done by avformat_network_init. Call it only + * once for each time you called avformat_network_init. + */ +int avformat_network_deinit(void); + +/** + * Iterate over all registered muxers. + * + * @param opaque a pointer where libavformat will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the next registered muxer or NULL when the iteration is + * finished + */ +const AVOutputFormat *av_muxer_iterate(void **opaque); + +/** + * Iterate over all registered demuxers. + * + * @param opaque a pointer where libavformat will store the iteration state. + * Must point to NULL to start the iteration. + * + * @return the next registered demuxer or NULL when the iteration is + * finished + */ +const AVInputFormat *av_demuxer_iterate(void **opaque); + +/** + * Allocate an AVFormatContext. + * avformat_free_context() can be used to free the context and everything + * allocated by the framework within it. + */ +AVFormatContext *avformat_alloc_context(void); + +/** + * Free an AVFormatContext and all its streams. + * @param s context to free + */ +void avformat_free_context(AVFormatContext *s); + +/** + * Get the AVClass for AVFormatContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avformat_get_class(void); + +/** + * Get the AVClass for AVStream. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_stream_get_class(void); + +/** + * Get the AVClass for AVStreamGroup. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *av_stream_group_get_class(void); + +/** + * @return a string identifying the stream group type, or NULL if unknown + */ +const char *avformat_stream_group_name(enum AVStreamGroupParamsType type); + +/** + * Add a new empty stream group to a media file. + * + * When demuxing, it may be called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, may be called by the user before avformat_write_header(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_stream_group_create(). + * + * New streams can be added to the group with avformat_stream_group_add_stream(). + * + * @param s media file handle + * + * @return newly created group or NULL on error. + * @see avformat_new_stream, avformat_stream_group_add_stream. + */ +AVStreamGroup *avformat_stream_group_create(AVFormatContext *s, + enum AVStreamGroupParamsType type, + AVDictionary **options); + +/** + * Add a new stream to a media file. + * + * When demuxing, it is called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, should be called by the user before avformat_write_header(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_new_stream(). + * + * @param s media file handle + * @param c unused, does nothing + * + * @return newly created stream or NULL on error. + */ +AVStream *avformat_new_stream(AVFormatContext *s, const struct AVCodec *c); + +/** + * Add an already allocated stream to a stream group. + * + * When demuxing, it may be called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, may be called by the user before avformat_write_header() after + * having allocated a new group with avformat_stream_group_create() and stream with + * avformat_new_stream(). + * + * User is required to call avformat_free_context() to clean up the allocation + * by avformat_stream_group_add_stream(). + * + * @param stg stream group belonging to a media file. + * @param st stream in the media file to add to the group. + * + * @retval 0 success + * @retval AVERROR(EEXIST) the stream was already in the group + * @retval "another negative error code" legitimate errors + * + * @see avformat_new_stream, avformat_stream_group_create. + */ +int avformat_stream_group_add_stream(AVStreamGroup *stg, AVStream *st); + +#if FF_API_AVSTREAM_SIDE_DATA +/** + * Wrap an existing array as stream side data. + * + * @param st stream + * @param type side information type + * @param data the side data array. It must be allocated with the av_malloc() + * family of functions. The ownership of the data is transferred to + * st. + * @param size side information size + * + * @return zero on success, a negative AVERROR code on failure. On failure, + * the stream is unchanged and the data remains owned by the caller. + * @deprecated use av_packet_side_data_add() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +int av_stream_add_side_data(AVStream *st, enum AVPacketSideDataType type, + uint8_t *data, size_t size); + +/** + * Allocate new information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size side information size + * + * @return pointer to fresh allocated data or NULL otherwise + * @deprecated use av_packet_side_data_new() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +uint8_t *av_stream_new_side_data(AVStream *stream, + enum AVPacketSideDataType type, size_t size); +/** + * Get side information from stream. + * + * @param stream stream + * @param type desired side information type + * @param size If supplied, *size will be set to the size of the side data + * or to zero if the desired side data is not present. + * + * @return pointer to data if present or NULL otherwise + * @deprecated use av_packet_side_data_get() with the stream's + * @ref AVCodecParameters.coded_side_data "codecpar side data" + */ +attribute_deprecated +uint8_t *av_stream_get_side_data(const AVStream *stream, + enum AVPacketSideDataType type, size_t *size); +#endif + +AVProgram *av_new_program(AVFormatContext *s, int id); + +/** + * @} + */ + + +/** + * Allocate an AVFormatContext for an output format. + * avformat_free_context() can be used to free the context and + * everything allocated by the framework within it. + * + * @param ctx pointee is set to the created format context, + * or to NULL in case of failure + * @param oformat format to use for allocating the context, if NULL + * format_name and filename are used instead + * @param format_name the name of output format to use for allocating the + * context, if NULL filename is used instead + * @param filename the name of the filename to use for allocating the + * context, may be NULL + * + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int avformat_alloc_output_context2(AVFormatContext **ctx, const AVOutputFormat *oformat, + const char *format_name, const char *filename); + +/** + * @addtogroup lavf_decoding + * @{ + */ + +/** + * Find AVInputFormat based on the short name of the input format. + */ +const AVInputFormat *av_find_input_format(const char *short_name); + +/** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + */ +const AVInputFormat *av_probe_input_format(const AVProbeData *pd, int is_opened); + +/** + * Guess the file format. + * + * @param pd data to be probed + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_max A probe score larger that this is required to accept a + * detection, the variable is set to the actual detection + * score afterwards. + * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended + * to retry with a larger probe buffer. + */ +const AVInputFormat *av_probe_input_format2(const AVProbeData *pd, + int is_opened, int *score_max); + +/** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_ret The score of the best detection. + */ +const AVInputFormat *av_probe_input_format3(const AVProbeData *pd, + int is_opened, int *score_ret); + +/** + * Probe a bytestream to determine the input format. Each time a probe returns + * with a score that is too low, the probe buffer size is increased and another + * attempt is made. When the maximum probe size is reached, the input format + * with the highest score is returned. + * + * @param pb the bytestream to probe + * @param fmt the input format is put here + * @param url the url of the stream + * @param logctx the log context + * @param offset the offset within the bytestream to probe from + * @param max_probe_size the maximum probe buffer size (zero for default) + * + * @return the score in case of success, a negative value corresponding to an + * the maximal score is AVPROBE_SCORE_MAX + * AVERROR code otherwise + */ +int av_probe_input_buffer2(AVIOContext *pb, const AVInputFormat **fmt, + const char *url, void *logctx, + unsigned int offset, unsigned int max_probe_size); + +/** + * Like av_probe_input_buffer2() but returns 0 on success + */ +int av_probe_input_buffer(AVIOContext *pb, const AVInputFormat **fmt, + const char *url, void *logctx, + unsigned int offset, unsigned int max_probe_size); + +/** + * Open an input stream and read the header. The codecs are not opened. + * The stream must be closed with avformat_close_input(). + * + * @param ps Pointer to user-supplied AVFormatContext (allocated by + * avformat_alloc_context). May be a pointer to NULL, in + * which case an AVFormatContext is allocated by this + * function and written into ps. + * Note that a user-supplied AVFormatContext will be freed + * on failure. + * @param url URL of the stream to open. + * @param fmt If non-NULL, this parameter forces a specific input format. + * Otherwise the format is autodetected. + * @param options A dictionary filled with AVFormatContext and demuxer-private + * options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @return 0 on success, a negative AVERROR on failure. + * + * @note If you want to use custom IO, preallocate the format context and set its pb field. + */ +int avformat_open_input(AVFormatContext **ps, const char *url, + const AVInputFormat *fmt, AVDictionary **options); + +/** + * Read packets of a media file to get stream information. This + * is useful for file formats with no headers such as MPEG. This + * function also computes the real framerate in case of MPEG-2 repeat + * frame mode. + * The logical file position is not changed by this function; + * examined packets may be buffered for later processing. + * + * @param ic media file handle + * @param options If non-NULL, an ic.nb_streams long array of pointers to + * dictionaries, where i-th member contains options for + * codec corresponding to i-th stream. + * On return each dictionary will be filled with options that were not found. + * @return >=0 if OK, AVERROR_xxx on error + * + * @note this function isn't guaranteed to open all the codecs, so + * options being non-empty at return is a perfectly normal behavior. + * + * @todo Let the user decide somehow what information is needed so that + * we do not waste time getting stuff the user does not need. + */ +int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options); + +/** + * Find the programs which belong to a given stream. + * + * @param ic media file handle + * @param last the last found program, the search will start after this + * program, or from the beginning if it is NULL + * @param s stream index + * + * @return the next program which belongs to s, NULL if no program is found or + * the last program is not among the programs of ic. + */ +AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s); + +void av_program_add_stream_index(AVFormatContext *ac, int progid, unsigned int idx); + +/** + * Find the "best" stream in the file. + * The best stream is determined according to various heuristics as the most + * likely to be what the user expects. + * If the decoder parameter is non-NULL, av_find_best_stream will find the + * default decoder for the stream's codec; streams for which no decoder can + * be found are ignored. + * + * @param ic media file handle + * @param type stream type: video, audio, subtitles, etc. + * @param wanted_stream_nb user-requested stream number, + * or -1 for automatic selection + * @param related_stream try to find a stream related (eg. in the same + * program) to this one, or -1 if none + * @param decoder_ret if non-NULL, returns the decoder for the + * selected stream + * @param flags flags; none are currently defined + * + * @return the non-negative stream number in case of success, + * AVERROR_STREAM_NOT_FOUND if no stream with the requested type + * could be found, + * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder + * + * @note If av_find_best_stream returns successfully and decoder_ret is not + * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec. + */ +int av_find_best_stream(AVFormatContext *ic, + enum AVMediaType type, + int wanted_stream_nb, + int related_stream, + const struct AVCodec **decoder_ret, + int flags); + +/** + * Return the next frame of a stream. + * This function returns what is stored in the file, and does not validate + * that what is there are valid frames for the decoder. It will split what is + * stored in the file into frames and return one for each call. It will not + * omit invalid data between valid frames so as to give the decoder the maximum + * information possible for decoding. + * + * On success, the returned packet is reference-counted (pkt->buf is set) and + * valid indefinitely. The packet must be freed with av_packet_unref() when + * it is no longer needed. For video, the packet contains exactly one frame. + * For audio, it contains an integer number of frames if each frame has + * a known fixed size (e.g. PCM or ADPCM data). If the audio frames have + * a variable size (e.g. MPEG audio), then it contains one frame. + * + * pkt->pts, pkt->dts and pkt->duration are always set to correct + * values in AVStream.time_base units (and guessed if the format cannot + * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format + * has B-frames, so it is better to rely on pkt->dts if you do not + * decompress the payload. + * + * @return 0 if OK, < 0 on error or end of file. On error, pkt will be blank + * (as if it came from av_packet_alloc()). + * + * @note pkt will be initialized, so it may be uninitialized, but it must not + * contain data that needs to be freed. + */ +int av_read_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Seek to the keyframe at timestamp. + * 'timestamp' in 'stream_index'. + * + * @param s media file handle + * @param stream_index If stream_index is (-1), a default stream is selected, + * and timestamp is automatically converted from + * AV_TIME_BASE units to the stream specific time_base. + * @param timestamp Timestamp in AVStream.time_base units or, if no stream + * is specified, in AV_TIME_BASE units. + * @param flags flags which select direction and seeking mode + * + * @return >= 0 on success + */ +int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, + int flags); + +/** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + * + * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and + * are the file position (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames + * in the stream with stream_index (this may not be supported by all demuxers). + * Otherwise all timestamps are in units of the stream selected by stream_index + * or if stream_index is -1, in AV_TIME_BASE units. + * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as + * keyframes (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_BACKWARD, it is ignored. + * + * @param s media file handle + * @param stream_index index of the stream which is used as time base reference + * @param min_ts smallest acceptable timestamp + * @param ts target timestamp + * @param max_ts largest acceptable timestamp + * @param flags flags + * @return >=0 on success, error code otherwise + * + * @note This is part of the new seek API which is still under construction. + */ +int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); + +/** + * Discard all internally buffered data. This can be useful when dealing with + * discontinuities in the byte stream. Generally works only with formats that + * can resync. This includes headerless formats like MPEG-TS/TS but should also + * work with NUT, Ogg and in a limited way AVI for example. + * + * The set of streams, the detected duration, stream parameters and codecs do + * not change when calling this function. If you want a complete reset, it's + * better to open a new AVFormatContext. + * + * This does not flush the AVIOContext (s->pb). If necessary, call + * avio_flush(s->pb) before calling this function. + * + * @param s media file handle + * @return >=0 on success, error code otherwise + */ +int avformat_flush(AVFormatContext *s); + +/** + * Start playing a network-based stream (e.g. RTSP stream) at the + * current position. + */ +int av_read_play(AVFormatContext *s); + +/** + * Pause a network-based stream (e.g. RTSP stream). + * + * Use av_read_play() to resume it. + */ +int av_read_pause(AVFormatContext *s); + +/** + * Close an opened input AVFormatContext. Free it and all its contents + * and set *s to NULL. + */ +void avformat_close_input(AVFormatContext **s); +/** + * @} + */ + +#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward +#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes +#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes +#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number + +/** + * @addtogroup lavf_encoding + * @{ + */ + +#define AVSTREAM_INIT_IN_WRITE_HEADER 0 ///< stream parameters initialized in avformat_write_header +#define AVSTREAM_INIT_IN_INIT_OUTPUT 1 ///< stream parameters initialized in avformat_init_output + +/** + * Allocate the stream private data and write the stream header to + * an output media file. + * + * @param s Media file handle, must be allocated with + * avformat_alloc_context(). + * Its \ref AVFormatContext.oformat "oformat" field must be set + * to the desired output format; + * Its \ref AVFormatContext.pb "pb" field must be set to an + * already opened ::AVIOContext. + * @param options An ::AVDictionary filled with AVFormatContext and + * muxer-private options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @retval AVSTREAM_INIT_IN_WRITE_HEADER On success, if the codec had not already been + * fully initialized in avformat_init_output(). + * @retval AVSTREAM_INIT_IN_INIT_OUTPUT On success, if the codec had already been fully + * initialized in avformat_init_output(). + * @retval AVERROR A negative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_init_output. + */ +av_warn_unused_result +int avformat_write_header(AVFormatContext *s, AVDictionary **options); + +/** + * Allocate the stream private data and initialize the codec, but do not write the header. + * May optionally be used before avformat_write_header() to initialize stream parameters + * before actually writing the header. + * If using this function, do not pass the same options to avformat_write_header(). + * + * @param s Media file handle, must be allocated with + * avformat_alloc_context(). + * Its \ref AVFormatContext.oformat "oformat" field must be set + * to the desired output format; + * Its \ref AVFormatContext.pb "pb" field must be set to an + * already opened ::AVIOContext. + * @param options An ::AVDictionary filled with AVFormatContext and + * muxer-private options. + * On return this parameter will be destroyed and replaced with + * a dict containing options that were not found. May be NULL. + * + * @retval AVSTREAM_INIT_IN_WRITE_HEADER On success, if the codec requires + * avformat_write_header to fully initialize. + * @retval AVSTREAM_INIT_IN_INIT_OUTPUT On success, if the codec has been fully + * initialized. + * @retval AVERROR Anegative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next, avformat_write_header. + */ +av_warn_unused_result +int avformat_init_output(AVFormatContext *s, AVDictionary **options); + +/** + * Write a packet to an output media file. + * + * This function passes the packet directly to the muxer, without any buffering + * or reordering. The caller is responsible for correctly interleaving the + * packets if the format requires it. Callers that want libavformat to handle + * the interleaving should call av_interleaved_write_frame() instead of this + * function. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. Note that unlike + * av_interleaved_write_frame(), this function does not take + * ownership of the packet passed to it (though some muxers may make + * an internal reference to the input packet). + *
+ * This parameter can be NULL (at any time, not just at the end), in + * order to immediately flush data buffered within the muxer, for + * muxers that buffer up data internally before writing it to the + * output. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets passed to this function must be strictly + * increasing when compared in their respective timebases (unless the + * output format is flagged with the AVFMT_TS_NONSTRICT, then they + * merely have to be nondecreasing). @ref AVPacket.duration + * "duration") should also be set if known. + * @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush + * + * @see av_interleaved_write_frame() + */ +int av_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Write a packet to an output media file ensuring correct interleaving. + * + * This function will buffer the packets internally as needed to make sure the + * packets in the output file are properly interleaved, usually ordered by + * increasing dts. Callers doing their own interleaving should call + * av_write_frame() instead of this function. + * + * Using this function instead of av_write_frame() can give muxers advance + * knowledge of future packets, improving e.g. the behaviour of the mp4 + * muxer for VFR content in fragmenting mode. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. + *
+ * If the packet is reference-counted, this function will take + * ownership of this reference and unreference it later when it sees + * fit. If the packet is not reference-counted, libavformat will + * make a copy. + * The returned packet will be blank (as if returned from + * av_packet_alloc()), even on error. + *
+ * This parameter can be NULL (at any time, not just at the end), to + * flush the interleaving queues. + *
+ * Packet's @ref AVPacket.stream_index "stream_index" field must be + * set to the index of the corresponding stream in @ref + * AVFormatContext.streams "s->streams". + *
+ * The timestamps (@ref AVPacket.pts "pts", @ref AVPacket.dts "dts") + * must be set to correct values in the stream's timebase (unless the + * output format is flagged with the AVFMT_NOTIMESTAMPS flag, then + * they can be set to AV_NOPTS_VALUE). + * The dts for subsequent packets in one stream must be strictly + * increasing (unless the output format is flagged with the + * AVFMT_TS_NONSTRICT, then they merely have to be nondecreasing). + * @ref AVPacket.duration "duration" should also be set if known. + * + * @return 0 on success, a negative AVERROR on error. + * + * @see av_write_frame(), AVFormatContext.max_interleave_delta + */ +int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Write an uncoded frame to an output media file. + * + * The frame must be correctly interleaved according to the container + * specification; if not, av_interleaved_write_uncoded_frame() must be used. + * + * See av_interleaved_write_uncoded_frame() for details. + */ +int av_write_uncoded_frame(AVFormatContext *s, int stream_index, + struct AVFrame *frame); + +/** + * Write an uncoded frame to an output media file. + * + * If the muxer supports it, this function makes it possible to write an AVFrame + * structure directly, without encoding it into a packet. + * It is mostly useful for devices and similar special muxers that use raw + * video or PCM data and will not serialize it into a byte stream. + * + * To test whether it is possible to use it with a given muxer and stream, + * use av_write_uncoded_frame_query(). + * + * The caller gives up ownership of the frame and must not access it + * afterwards. + * + * @return >=0 for success, a negative code on error + */ +int av_interleaved_write_uncoded_frame(AVFormatContext *s, int stream_index, + struct AVFrame *frame); + +/** + * Test whether a muxer supports uncoded frame. + * + * @return >=0 if an uncoded frame can be written to that muxer and stream, + * <0 if not + */ +int av_write_uncoded_frame_query(AVFormatContext *s, int stream_index); + +/** + * Write the stream trailer to an output media file and free the + * file private data. + * + * May only be called after a successful call to avformat_write_header. + * + * @param s media file handle + * @return 0 if OK, AVERROR_xxx on error + */ +int av_write_trailer(AVFormatContext *s); + +/** + * Return the output format in the list of registered output formats + * which best matches the provided parameters, or return NULL if + * there is no match. + * + * @param short_name if non-NULL checks if short_name matches with the + * names of the registered formats + * @param filename if non-NULL checks if filename terminates with the + * extensions of the registered formats + * @param mime_type if non-NULL checks if mime_type matches with the + * MIME type of the registered formats + */ +const AVOutputFormat *av_guess_format(const char *short_name, + const char *filename, + const char *mime_type); + +/** + * Guess the codec ID based upon muxer and filename. + */ +enum AVCodecID av_guess_codec(const AVOutputFormat *fmt, const char *short_name, + const char *filename, const char *mime_type, + enum AVMediaType type); + +/** + * Get timing information for the data currently output. + * The exact meaning of "currently output" depends on the format. + * It is mostly relevant for devices that have an internal buffer and/or + * work in real time. + * @param s media file handle + * @param stream stream in the media file + * @param[out] dts DTS of the last packet output for the stream, in stream + * time_base units + * @param[out] wall absolute time when that packet whas output, + * in microsecond + * @retval 0 Success + * @retval AVERROR(ENOSYS) The format does not support it + * + * @note Some formats or devices may not allow to measure dts and wall + * atomically. + */ +int av_get_output_timestamp(struct AVFormatContext *s, int stream, + int64_t *dts, int64_t *wall); + + +/** + * @} + */ + + +/** + * @defgroup lavf_misc Utility functions + * @ingroup libavf + * @{ + * + * Miscellaneous utility functions related to both muxing and demuxing + * (or neither). + */ + +/** + * Send a nice hexadecimal dump of a buffer to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump(FILE *f, const uint8_t *buf, int size); + +/** + * Send a nice hexadecimal dump of a buffer to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump_log(void *avcl, int level, const uint8_t *buf, int size); + +/** + * Send a nice dump of a packet to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump2(FILE *f, const AVPacket *pkt, int dump_payload, const AVStream *st); + + +/** + * Send a nice dump of a packet to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump_log2(void *avcl, int level, const AVPacket *pkt, int dump_payload, + const AVStream *st); + +/** + * Get the AVCodecID for the given codec tag tag. + * If no codec id is found returns AV_CODEC_ID_NONE. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param tag codec tag to match to a codec ID + */ +enum AVCodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag); + +/** + * Get the codec tag for the given codec id id. + * If no codec tag is found returns 0. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec ID to match to a codec tag + */ +unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum AVCodecID id); + +/** + * Get the codec tag for the given codec id. + * + * @param tags list of supported codec_id - codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + * @param id codec id that should be searched for in the list + * @param tag A pointer to the found tag + * @return 0 if id was not found in tags, > 0 if it was found + */ +int av_codec_get_tag2(const struct AVCodecTag * const *tags, enum AVCodecID id, + unsigned int *tag); + +int av_find_default_stream_index(AVFormatContext *s); + +/** + * Get the index for a specific timestamp. + * + * @param st stream that the timestamp belongs to + * @param timestamp timestamp to retrieve the index for + * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise + * @return < 0 if no such timestamp could be found + */ +int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags); + +/** + * Get the index entry count for the given AVStream. + * + * @param st stream + * @return the number of index entries in the stream + */ +int avformat_index_get_entries_count(const AVStream *st); + +/** + * Get the AVIndexEntry corresponding to the given index. + * + * @param st Stream containing the requested AVIndexEntry. + * @param idx The desired index. + * @return A pointer to the requested AVIndexEntry if it exists, NULL otherwise. + * + * @note The pointer returned by this function is only guaranteed to be valid + * until any function that takes the stream or the parent AVFormatContext + * as input argument is called. + */ +const AVIndexEntry *avformat_index_get_entry(AVStream *st, int idx); + +/** + * Get the AVIndexEntry corresponding to the given timestamp. + * + * @param st Stream containing the requested AVIndexEntry. + * @param wanted_timestamp Timestamp to retrieve the index entry for. + * @param flags If AVSEEK_FLAG_BACKWARD then the returned entry will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise. + * @return A pointer to the requested AVIndexEntry if it exists, NULL otherwise. + * + * @note The pointer returned by this function is only guaranteed to be valid + * until any function that takes the stream or the parent AVFormatContext + * as input argument is called. + */ +const AVIndexEntry *avformat_index_get_entry_from_timestamp(AVStream *st, + int64_t wanted_timestamp, + int flags); +/** + * Add an index entry into a sorted list. Update the entry if the list + * already contains it. + * + * @param timestamp timestamp in the time base of the given stream + */ +int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp, + int size, int distance, int flags); + + +/** + * Split a URL string into components. + * + * The pointers to buffers for storing individual components may be null, + * in order to ignore that component. Buffers for components not found are + * set to empty strings. If the port is not found, it is set to a negative + * value. + * + * @param proto the buffer for the protocol + * @param proto_size the size of the proto buffer + * @param authorization the buffer for the authorization + * @param authorization_size the size of the authorization buffer + * @param hostname the buffer for the host name + * @param hostname_size the size of the hostname buffer + * @param port_ptr a pointer to store the port number in + * @param path the buffer for the path + * @param path_size the size of the path buffer + * @param url the URL to split + */ +void av_url_split(char *proto, int proto_size, + char *authorization, int authorization_size, + char *hostname, int hostname_size, + int *port_ptr, + char *path, int path_size, + const char *url); + + +/** + * Print detailed information about the input or output format, such as + * duration, bitrate, streams, container, programs, metadata, side data, + * codec and time base. + * + * @param ic the context to analyze + * @param index index of the stream to dump information about + * @param url the URL to print, such as source or destination file + * @param is_output Select whether the specified context is an input(0) or output(1) + */ +void av_dump_format(AVFormatContext *ic, + int index, + const char *url, + int is_output); + + +#define AV_FRAME_FILENAME_FLAGS_MULTIPLE 1 ///< Allow multiple %d + +/** + * Return in 'buf' the path with '%d' replaced by a number. + * + * Also handles the '%0nd' format where 'n' is the total number + * of digits and '%%'. + * + * @param buf destination buffer + * @param buf_size destination buffer size + * @param path numbered sequence string + * @param number frame number + * @param flags AV_FRAME_FILENAME_FLAGS_* + * @return 0 if OK, -1 on format error + */ +int av_get_frame_filename2(char *buf, int buf_size, + const char *path, int number, int flags); + +int av_get_frame_filename(char *buf, int buf_size, + const char *path, int number); + +/** + * Check whether filename actually is a numbered sequence generator. + * + * @param filename possible numbered sequence string + * @return 1 if a valid numbered sequence string, 0 otherwise + */ +int av_filename_number_test(const char *filename); + +/** + * Generate an SDP for an RTP session. + * + * Note, this overwrites the id values of AVStreams in the muxer contexts + * for getting unique dynamic payload types. + * + * @param ac array of AVFormatContexts describing the RTP streams. If the + * array is composed by only one context, such context can contain + * multiple AVStreams (one AVStream per RTP stream). Otherwise, + * all the contexts in the array (an AVCodecContext per RTP stream) + * must contain only one AVStream. + * @param n_files number of AVCodecContexts contained in ac + * @param buf buffer where the SDP will be stored (must be allocated by + * the caller) + * @param size the size of the buffer + * @return 0 if OK, AVERROR_xxx on error + */ +int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size); + +/** + * Return a positive value if the given filename has one of the given + * extensions, 0 otherwise. + * + * @param filename file name to check against the given extensions + * @param extensions a comma-separated list of filename extensions + */ +int av_match_ext(const char *filename, const char *extensions); + +/** + * Test if the given container can store a codec. + * + * @param ofmt container to check for compatibility + * @param codec_id codec to potentially store in container + * @param std_compliance standards compliance level, one of FF_COMPLIANCE_* + * + * @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot. + * A negative number if this information is not available. + */ +int avformat_query_codec(const AVOutputFormat *ofmt, enum AVCodecID codec_id, + int std_compliance); + +/** + * @defgroup riff_fourcc RIFF FourCCs + * @{ + * Get the tables mapping RIFF FourCCs to libavcodec AVCodecIDs. The tables are + * meant to be passed to av_codec_get_id()/av_codec_get_tag() as in the + * following code: + * @code + * uint32_t tag = MKTAG('H', '2', '6', '4'); + * const struct AVCodecTag *table[] = { avformat_get_riff_video_tags(), 0 }; + * enum AVCodecID id = av_codec_get_id(table, tag); + * @endcode + */ +/** + * @return the table mapping RIFF FourCCs for video to libavcodec AVCodecID. + */ +const struct AVCodecTag *avformat_get_riff_video_tags(void); +/** + * @return the table mapping RIFF FourCCs for audio to AVCodecID. + */ +const struct AVCodecTag *avformat_get_riff_audio_tags(void); +/** + * @return the table mapping MOV FourCCs for video to libavcodec AVCodecID. + */ +const struct AVCodecTag *avformat_get_mov_video_tags(void); +/** + * @return the table mapping MOV FourCCs for audio to AVCodecID. + */ +const struct AVCodecTag *avformat_get_mov_audio_tags(void); + +/** + * @} + */ + +/** + * Guess the sample aspect ratio of a frame, based on both the stream and the + * frame aspect ratio. + * + * Since the frame aspect ratio is set by the codec but the stream aspect ratio + * is set by the demuxer, these two may not be equal. This function tries to + * return the value that you should use if you would like to display the frame. + * + * Basic logic is to use the stream aspect ratio if it is set to something sane + * otherwise use the frame aspect ratio. This way a container setting, which is + * usually easy to modify can override the coded value in the frames. + * + * @param format the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame with the aspect ratio to be determined + * @return the guessed (valid) sample_aspect_ratio, 0/1 if no idea + */ +AVRational av_guess_sample_aspect_ratio(AVFormatContext *format, AVStream *stream, + struct AVFrame *frame); + +/** + * Guess the frame rate, based on both the container and codec information. + * + * @param ctx the format context which the stream is part of + * @param stream the stream which the frame is part of + * @param frame the frame for which the frame rate should be determined, may be NULL + * @return the guessed (valid) frame rate, 0/1 if no idea + */ +AVRational av_guess_frame_rate(AVFormatContext *ctx, AVStream *stream, + struct AVFrame *frame); + +/** + * Check if the stream st contained in s is matched by the stream specifier + * spec. + * + * See the "stream specifiers" chapter in the documentation for the syntax + * of spec. + * + * @return >0 if st is matched by spec; + * 0 if st is not matched by spec; + * AVERROR code if spec is invalid + * + * @note A stream specifier can match several streams in the format. + */ +int avformat_match_stream_specifier(AVFormatContext *s, AVStream *st, + const char *spec); + +int avformat_queue_attached_pictures(AVFormatContext *s); + +#if FF_API_INTERNAL_TIMING +enum AVTimebaseSource { + AVFMT_TBCF_AUTO = -1, + AVFMT_TBCF_DECODER, + AVFMT_TBCF_DEMUXER, +#if FF_API_R_FRAME_RATE + AVFMT_TBCF_R_FRAMERATE, +#endif +}; + +/** + * @deprecated do not call this function + */ +attribute_deprecated +int avformat_transfer_internal_stream_timing_info(const AVOutputFormat *ofmt, + AVStream *ost, const AVStream *ist, + enum AVTimebaseSource copy_tb); + +/** + * @deprecated do not call this function + */ +attribute_deprecated +AVRational av_stream_get_codec_timebase(const AVStream *st); +#endif + + +/** + * @} + */ + +#endif /* AVFORMAT_AVFORMAT_H */ diff --git a/deps/ffmpeg/macos/include/libavformat/avio.h b/deps/ffmpeg/macos/include/libavformat/avio.h new file mode 100644 index 0000000..ebf6111 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavformat/avio.h @@ -0,0 +1,831 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef AVFORMAT_AVIO_H +#define AVFORMAT_AVIO_H + +/** + * @file + * @ingroup lavf_io + * Buffered I/O operations + */ + +#include +#include + +#include "libavutil/attributes.h" +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "libavformat/version_major.h" + +/** + * Seeking works like for a local file. + */ +#define AVIO_SEEKABLE_NORMAL (1 << 0) + +/** + * Seeking by timestamp with avio_seek_time() is possible. + */ +#define AVIO_SEEKABLE_TIME (1 << 1) + +/** + * Callback for checking whether to abort blocking functions. + * AVERROR_EXIT is returned in this case by the interrupted + * function. During blocking operations, callback is called with + * opaque as parameter. If the callback returns 1, the + * blocking operation will be aborted. + * + * No members can be added to this struct without a major bump, if + * new elements have been added after this struct in AVFormatContext + * or AVIOContext. + */ +typedef struct AVIOInterruptCB { + int (*callback)(void*); + void *opaque; +} AVIOInterruptCB; + +/** + * Directory entry types. + */ +enum AVIODirEntryType { + AVIO_ENTRY_UNKNOWN, + AVIO_ENTRY_BLOCK_DEVICE, + AVIO_ENTRY_CHARACTER_DEVICE, + AVIO_ENTRY_DIRECTORY, + AVIO_ENTRY_NAMED_PIPE, + AVIO_ENTRY_SYMBOLIC_LINK, + AVIO_ENTRY_SOCKET, + AVIO_ENTRY_FILE, + AVIO_ENTRY_SERVER, + AVIO_ENTRY_SHARE, + AVIO_ENTRY_WORKGROUP, +}; + +/** + * Describes single entry of the directory. + * + * Only name and type fields are guaranteed be set. + * Rest of fields are protocol or/and platform dependent and might be unknown. + */ +typedef struct AVIODirEntry { + char *name; /**< Filename */ + int type; /**< Type of the entry */ + int utf8; /**< Set to 1 when name is encoded with UTF-8, 0 otherwise. + Name can be encoded with UTF-8 even though 0 is set. */ + int64_t size; /**< File size in bytes, -1 if unknown. */ + int64_t modification_timestamp; /**< Time of last modification in microseconds since unix + epoch, -1 if unknown. */ + int64_t access_timestamp; /**< Time of last access in microseconds since unix epoch, + -1 if unknown. */ + int64_t status_change_timestamp; /**< Time of last status change in microseconds since unix + epoch, -1 if unknown. */ + int64_t user_id; /**< User ID of owner, -1 if unknown. */ + int64_t group_id; /**< Group ID of owner, -1 if unknown. */ + int64_t filemode; /**< Unix file mode, -1 if unknown. */ +} AVIODirEntry; + +typedef struct AVIODirContext AVIODirContext; + +/** + * Different data types that can be returned via the AVIO + * write_data_type callback. + */ +enum AVIODataMarkerType { + /** + * Header data; this needs to be present for the stream to be decodeable. + */ + AVIO_DATA_MARKER_HEADER, + /** + * A point in the output bytestream where a decoder can start decoding + * (i.e. a keyframe). A demuxer/decoder given the data flagged with + * AVIO_DATA_MARKER_HEADER, followed by any AVIO_DATA_MARKER_SYNC_POINT, + * should give decodeable results. + */ + AVIO_DATA_MARKER_SYNC_POINT, + /** + * A point in the output bytestream where a demuxer can start parsing + * (for non self synchronizing bytestream formats). That is, any + * non-keyframe packet start point. + */ + AVIO_DATA_MARKER_BOUNDARY_POINT, + /** + * This is any, unlabelled data. It can either be a muxer not marking + * any positions at all, it can be an actual boundary/sync point + * that the muxer chooses not to mark, or a later part of a packet/fragment + * that is cut into multiple write callbacks due to limited IO buffer size. + */ + AVIO_DATA_MARKER_UNKNOWN, + /** + * Trailer data, which doesn't contain actual content, but only for + * finalizing the output file. + */ + AVIO_DATA_MARKER_TRAILER, + /** + * A point in the output bytestream where the underlying AVIOContext might + * flush the buffer depending on latency or buffering requirements. Typically + * means the end of a packet. + */ + AVIO_DATA_MARKER_FLUSH_POINT, +}; + +/** + * Bytestream IO Context. + * New public fields can be added with minor version bumps. + * Removal, reordering and changes to existing public fields require + * a major version bump. + * sizeof(AVIOContext) must not be used outside libav*. + * + * @note None of the function pointers in AVIOContext should be called + * directly, they should only be set by the client application + * when implementing custom I/O. Normally these are set to the + * function pointers specified in avio_alloc_context() + */ +typedef struct AVIOContext { + /** + * A class for private options. + * + * If this AVIOContext is created by avio_open2(), av_class is set and + * passes the options down to protocols. + * + * If this AVIOContext is manually allocated, then av_class may be set by + * the caller. + * + * warning -- this field can be NULL, be sure to not pass this AVIOContext + * to any av_opt_* functions in that case. + */ + const AVClass *av_class; + + /* + * The following shows the relationship between buffer, buf_ptr, + * buf_ptr_max, buf_end, buf_size, and pos, when reading and when writing + * (since AVIOContext is used for both): + * + ********************************************************************************** + * READING + ********************************************************************************** + * + * | buffer_size | + * |---------------------------------------| + * | | + * + * buffer buf_ptr buf_end + * +---------------+-----------------------+ + * |/ / / / / / / /|/ / / / / / /| | + * read buffer: |/ / consumed / | to be read /| | + * |/ / / / / / / /|/ / / / / / /| | + * +---------------+-----------------------+ + * + * pos + * +-------------------------------------------+-----------------+ + * input file: | | | + * +-------------------------------------------+-----------------+ + * + * + ********************************************************************************** + * WRITING + ********************************************************************************** + * + * | buffer_size | + * |--------------------------------------| + * | | + * + * buf_ptr_max + * buffer (buf_ptr) buf_end + * +-----------------------+--------------+ + * |/ / / / / / / / / / / /| | + * write buffer: | / / to be flushed / / | | + * |/ / / / / / / / / / / /| | + * +-----------------------+--------------+ + * buf_ptr can be in this + * due to a backward seek + * + * pos + * +-------------+----------------------------------------------+ + * output file: | | | + * +-------------+----------------------------------------------+ + * + */ + unsigned char *buffer; /**< Start of the buffer. */ + int buffer_size; /**< Maximum buffer size */ + unsigned char *buf_ptr; /**< Current position in the buffer */ + unsigned char *buf_end; /**< End of the data, may be less than + buffer+buffer_size if the read function returned + less data than requested, e.g. for streams where + no more data has been received yet. */ + void *opaque; /**< A private pointer, passed to the read/write/seek/... + functions. */ + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size); + int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size); + int64_t (*seek)(void *opaque, int64_t offset, int whence); + int64_t pos; /**< position in the file of the current buffer */ + int eof_reached; /**< true if was unable to read due to error or eof */ + int error; /**< contains the error code or 0 if no error happened */ + int write_flag; /**< true if open for writing */ + int max_packet_size; + int min_packet_size; /**< Try to buffer at least this amount of data + before flushing it. */ + unsigned long checksum; + unsigned char *checksum_ptr; + unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size); + /** + * Pause or resume playback for network streaming protocols - e.g. MMS. + */ + int (*read_pause)(void *opaque, int pause); + /** + * Seek to a given timestamp in stream with the specified stream_index. + * Needed for some network streaming protocols which don't support seeking + * to byte position. + */ + int64_t (*read_seek)(void *opaque, int stream_index, + int64_t timestamp, int flags); + /** + * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. + */ + int seekable; + + /** + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + */ + int direct; + + /** + * ',' separated list of allowed protocols. + */ + const char *protocol_whitelist; + + /** + * ',' separated list of disallowed protocols. + */ + const char *protocol_blacklist; + + /** + * A callback that is used instead of write_packet. + */ + int (*write_data_type)(void *opaque, const uint8_t *buf, int buf_size, + enum AVIODataMarkerType type, int64_t time); + /** + * If set, don't call write_data_type separately for AVIO_DATA_MARKER_BOUNDARY_POINT, + * but ignore them and treat them as AVIO_DATA_MARKER_UNKNOWN (to avoid needlessly + * small chunks of data returned from the callback). + */ + int ignore_boundary_point; + + /** + * Maximum reached position before a backward seek in the write buffer, + * used keeping track of already written data for a later flush. + */ + unsigned char *buf_ptr_max; + + /** + * Read-only statistic of bytes read for this AVIOContext. + */ + int64_t bytes_read; + + /** + * Read-only statistic of bytes written for this AVIOContext. + */ + int64_t bytes_written; +} AVIOContext; + +/** + * Return the name of the protocol that will handle the passed URL. + * + * NULL is returned if no protocol could be found for the given URL. + * + * @return Name of the protocol or NULL. + */ +const char *avio_find_protocol_name(const char *url); + +/** + * Return AVIO_FLAG_* access flags corresponding to the access permissions + * of the resource in url, or a negative value corresponding to an + * AVERROR code in case of failure. The returned access flags are + * masked by the value in flags. + * + * @note This function is intrinsically unsafe, in the sense that the + * checked resource may change its existence or permission status from + * one call to another. Thus you should not trust the returned value, + * unless you are sure that no other processes are accessing the + * checked resource. + */ +int avio_check(const char *url, int flags); + +/** + * Open directory for reading. + * + * @param s directory read context. Pointer to a NULL pointer must be passed. + * @param url directory to be listed. + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dictionary + * containing options that were not found. May be NULL. + * @return >=0 on success or negative on error. + */ +int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options); + +/** + * Get next directory entry. + * + * Returned entry must be freed with avio_free_directory_entry(). In particular + * it may outlive AVIODirContext. + * + * @param s directory read context. + * @param[out] next next entry or NULL when no more entries. + * @return >=0 on success or negative on error. End of list is not considered an + * error. + */ +int avio_read_dir(AVIODirContext *s, AVIODirEntry **next); + +/** + * Close directory. + * + * @note Entries created using avio_read_dir() are not deleted and must be + * freeded with avio_free_directory_entry(). + * + * @param s directory read context. + * @return >=0 on success or negative on error. + */ +int avio_close_dir(AVIODirContext **s); + +/** + * Free entry allocated by avio_read_dir(). + * + * @param entry entry to be freed. + */ +void avio_free_directory_entry(AVIODirEntry **entry); + +/** + * Allocate and initialize an AVIOContext for buffered I/O. It must be later + * freed with avio_context_free(). + * + * @param buffer Memory block for input/output operations via AVIOContext. + * The buffer must be allocated with av_malloc() and friends. + * It may be freed and replaced with a new buffer by libavformat. + * AVIOContext.buffer holds the buffer currently in use, + * which must be later freed with av_free(). + * @param buffer_size The buffer size is very important for performance. + * For protocols with fixed blocksize it should be set to this blocksize. + * For others a typical size is a cache page, e.g. 4kb. + * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise. + * @param opaque An opaque pointer to user-specific data. + * @param read_packet A function for refilling the buffer, may be NULL. + * For stream protocols, must never return 0 but rather + * a proper AVERROR code. + * @param write_packet A function for writing the buffer contents, may be NULL. + * The function may not change the input buffers content. + * @param seek A function for seeking to specified byte position, may be NULL. + * + * @return Allocated AVIOContext or NULL on failure. + */ +AVIOContext *avio_alloc_context( + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); + +/** + * Free the supplied IO context and everything associated with it. + * + * @param s Double pointer to the IO context. This function will write NULL + * into s. + */ +void avio_context_free(AVIOContext **s); + +void avio_w8(AVIOContext *s, int b); +void avio_write(AVIOContext *s, const unsigned char *buf, int size); +void avio_wl64(AVIOContext *s, uint64_t val); +void avio_wb64(AVIOContext *s, uint64_t val); +void avio_wl32(AVIOContext *s, unsigned int val); +void avio_wb32(AVIOContext *s, unsigned int val); +void avio_wl24(AVIOContext *s, unsigned int val); +void avio_wb24(AVIOContext *s, unsigned int val); +void avio_wl16(AVIOContext *s, unsigned int val); +void avio_wb16(AVIOContext *s, unsigned int val); + +/** + * Write a NULL-terminated string. + * @return number of bytes written. + */ +int avio_put_str(AVIOContext *s, const char *str); + +/** + * Convert an UTF-8 string to UTF-16LE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + */ +int avio_put_str16le(AVIOContext *s, const char *str); + +/** + * Convert an UTF-8 string to UTF-16BE and write it. + * @param s the AVIOContext + * @param str NULL-terminated UTF-8 string + * + * @return number of bytes written. + */ +int avio_put_str16be(AVIOContext *s, const char *str); + +/** + * Mark the written bytestream as a specific type. + * + * Zero-length ranges are omitted from the output. + * + * @param s the AVIOContext + * @param time the stream time the current bytestream pos corresponds to + * (in AV_TIME_BASE units), or AV_NOPTS_VALUE if unknown or not + * applicable + * @param type the kind of data written starting at the current pos + */ +void avio_write_marker(AVIOContext *s, int64_t time, enum AVIODataMarkerType type); + +/** + * ORing this as the "whence" parameter to a seek function causes it to + * return the filesize without seeking anywhere. Supporting this is optional. + * If it is not supported then the seek function will return <0. + */ +#define AVSEEK_SIZE 0x10000 + +/** + * Passing this flag as the "whence" parameter to a seek function causes it to + * seek by any means (like reopening and linear reading) or other normally unreasonable + * means that can be extremely slow. + * This may be ignored by the seek code. + */ +#define AVSEEK_FORCE 0x20000 + +/** + * fseek() equivalent for AVIOContext. + * @return new position or AVERROR. + */ +int64_t avio_seek(AVIOContext *s, int64_t offset, int whence); + +/** + * Skip given number of bytes forward + * @return new position or AVERROR. + */ +int64_t avio_skip(AVIOContext *s, int64_t offset); + +/** + * ftell() equivalent for AVIOContext. + * @return position or AVERROR. + */ +static av_always_inline int64_t avio_tell(AVIOContext *s) +{ + return avio_seek(s, 0, SEEK_CUR); +} + +/** + * Get the filesize. + * @return filesize or AVERROR + */ +int64_t avio_size(AVIOContext *s); + +/** + * Similar to feof() but also returns nonzero on read errors. + * @return non zero if and only if at end of file or a read error happened when reading. + */ +int avio_feof(AVIOContext *s); + +/** + * Writes a formatted string to the context taking a va_list. + * @return number of bytes written, < 0 on error. + */ +int avio_vprintf(AVIOContext *s, const char *fmt, va_list ap); + +/** + * Writes a formatted string to the context. + * @return number of bytes written, < 0 on error. + */ +int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); + +/** + * Write a NULL terminated array of strings to the context. + * Usually you don't need to use this function directly but its macro wrapper, + * avio_print. + */ +void avio_print_string_array(AVIOContext *s, const char * const strings[]); + +/** + * Write strings (const char *) to the context. + * This is a convenience macro around avio_print_string_array and it + * automatically creates the string array from the variable argument list. + * For simple string concatenations this function is more performant than using + * avio_printf since it does not need a temporary buffer. + */ +#define avio_print(s, ...) \ + avio_print_string_array(s, (const char*[]){__VA_ARGS__, NULL}) + +/** + * Force flushing of buffered data. + * + * For write streams, force the buffered data to be immediately written to the output, + * without to wait to fill the internal buffer. + * + * For read streams, discard all currently buffered data, and advance the + * reported file position to that of the underlying stream. This does not + * read new data, and does not perform any seeks. + */ +void avio_flush(AVIOContext *s); + +/** + * Read size bytes from AVIOContext into buf. + * @return number of bytes read or AVERROR + */ +int avio_read(AVIOContext *s, unsigned char *buf, int size); + +/** + * Read size bytes from AVIOContext into buf. Unlike avio_read(), this is allowed + * to read fewer bytes than requested. The missing bytes can be read in the next + * call. This always tries to read at least 1 byte. + * Useful to reduce latency in certain cases. + * @return number of bytes read or AVERROR + */ +int avio_read_partial(AVIOContext *s, unsigned char *buf, int size); + +/** + * @name Functions for reading from AVIOContext + * @{ + * + * @note return 0 if EOF, so you cannot use it if EOF handling is + * necessary + */ +int avio_r8 (AVIOContext *s); +unsigned int avio_rl16(AVIOContext *s); +unsigned int avio_rl24(AVIOContext *s); +unsigned int avio_rl32(AVIOContext *s); +uint64_t avio_rl64(AVIOContext *s); +unsigned int avio_rb16(AVIOContext *s); +unsigned int avio_rb24(AVIOContext *s); +unsigned int avio_rb32(AVIOContext *s); +uint64_t avio_rb64(AVIOContext *s); +/** + * @} + */ + +/** + * Read a string from pb into buf. The reading will terminate when either + * a NULL character was encountered, maxlen bytes have been read, or nothing + * more can be read from pb. The result is guaranteed to be NULL-terminated, it + * will be truncated if buf is too small. + * Note that the string is not interpreted or validated in any way, it + * might get truncated in the middle of a sequence for multi-byte encodings. + * + * @return number of bytes read (is always <= maxlen). + * If reading ends on EOF or error, the return value will be one more than + * bytes actually read. + */ +int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen); + +/** + * Read a UTF-16 string from pb and convert it to UTF-8. + * The reading will terminate when either a null or invalid character was + * encountered or maxlen bytes have been read. + * @return number of bytes read (is always <= maxlen) + */ +int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen); +int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen); + + +/** + * @name URL open modes + * The flags argument to avio_open must be one of the following + * constants, optionally ORed with other flags. + * @{ + */ +#define AVIO_FLAG_READ 1 /**< read-only */ +#define AVIO_FLAG_WRITE 2 /**< write-only */ +#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */ +/** + * @} + */ + +/** + * Use non-blocking mode. + * If this flag is set, operations on the context will return + * AVERROR(EAGAIN) if they can not be performed immediately. + * If this flag is not set, operations on the context will never return + * AVERROR(EAGAIN). + * Note that this flag does not affect the opening/connecting of the + * context. Connecting a protocol will always block if necessary (e.g. on + * network protocols) but never hang (e.g. on busy devices). + * Warning: non-blocking protocols is work-in-progress; this flag may be + * silently ignored. + */ +#define AVIO_FLAG_NONBLOCK 8 + +/** + * Use direct mode. + * avio_read and avio_write should if possible be satisfied directly + * instead of going through a buffer, and avio_seek will always + * call the underlying seek function directly. + */ +#define AVIO_FLAG_DIRECT 0x8000 + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param url resource to access + * @param flags flags which control how the resource indicated by url + * is to be opened + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open(AVIOContext **s, const char *url, int flags); + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param url resource to access + * @param flags flags which control how the resource indicated by url + * is to be opened + * @param int_cb an interrupt callback to be used at the protocols level + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dict containing options + * that were not found. May be NULL. + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open2(AVIOContext **s, const char *url, int flags, + const AVIOInterruptCB *int_cb, AVDictionary **options); + +/** + * Close the resource accessed by the AVIOContext s and free it. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_closep + */ +int avio_close(AVIOContext *s); + +/** + * Close the resource accessed by the AVIOContext *s, free it + * and set the pointer pointing to it to NULL. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_close + */ +int avio_closep(AVIOContext **s); + + +/** + * Open a write only memory stream. + * + * @param s new IO context + * @return zero if no error. + */ +int avio_open_dyn_buf(AVIOContext **s); + +/** + * Return the written size and a pointer to the buffer. + * The AVIOContext stream is left intact. + * The buffer must NOT be freed. + * No padding is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_get_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + +/** + * Return the written size and a pointer to the buffer. The buffer + * must be freed with av_free(). + * Padding of AV_INPUT_BUFFER_PADDING_SIZE is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + +/** + * Iterate through names of available protocols. + * + * @param opaque A private pointer representing current protocol. + * It must be a pointer to NULL on first iteration and will + * be updated by successive calls to avio_enum_protocols. + * @param output If set to 1, iterate over output protocols, + * otherwise over input protocols. + * + * @return A static string containing the name of current protocol or NULL + */ +const char *avio_enum_protocols(void **opaque, int output); + +/** + * Get AVClass by names of available protocols. + * + * @return A AVClass of input protocol name or NULL + */ +const AVClass *avio_protocol_get_class(const char *name); + +/** + * Pause and resume playing - only meaningful if using a network streaming + * protocol (e.g. MMS). + * + * @param h IO context from which to call the read_pause function pointer + * @param pause 1 for pause, 0 for resume + */ +int avio_pause(AVIOContext *h, int pause); + +/** + * Seek to a given timestamp relative to some component stream. + * Only meaningful if using a network streaming protocol (e.g. MMS.). + * + * @param h IO context from which to call the seek function pointers + * @param stream_index The stream index that the timestamp is relative to. + * If stream_index is (-1) the timestamp should be in AV_TIME_BASE + * units from the beginning of the presentation. + * If a stream_index >= 0 is used and the protocol does not support + * seeking based on component streams, the call will fail. + * @param timestamp timestamp in AVStream.time_base units + * or if there is no stream specified then in AV_TIME_BASE units. + * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE + * and AVSEEK_FLAG_ANY. The protocol may silently ignore + * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will + * fail if used and not supported. + * @return >= 0 on success + * @see AVInputFormat::read_seek + */ +int64_t avio_seek_time(AVIOContext *h, int stream_index, + int64_t timestamp, int flags); + +/* Avoid a warning. The header can not be included because it breaks c++. */ +struct AVBPrint; + +/** + * Read contents of h into print buffer, up to max_size bytes, or up to EOF. + * + * @return 0 for success (max_size bytes read or EOF reached), negative error + * code otherwise + */ +int avio_read_to_bprint(AVIOContext *h, struct AVBPrint *pb, size_t max_size); + +/** + * Accept and allocate a client context on a server context. + * @param s the server context + * @param c the client context, must be unallocated + * @return >= 0 on success or a negative value corresponding + * to an AVERROR on failure + */ +int avio_accept(AVIOContext *s, AVIOContext **c); + +/** + * Perform one step of the protocol handshake to accept a new client. + * This function must be called on a client returned by avio_accept() before + * using it as a read/write context. + * It is separate from avio_accept() because it may block. + * A step of the handshake is defined by places where the application may + * decide to change the proceedings. + * For example, on a protocol with a request header and a reply header, each + * one can constitute a step because the application may use the parameters + * from the request to change parameters in the reply; or each individual + * chunk of the request can constitute a step. + * If the handshake is already finished, avio_handshake() does nothing and + * returns 0 immediately. + * + * @param c the client context to perform the handshake on + * @return 0 on a complete and successful handshake + * > 0 if the handshake progressed, but is not complete + * < 0 for an AVERROR code + */ +int avio_handshake(AVIOContext *c); +#endif /* AVFORMAT_AVIO_H */ diff --git a/deps/ffmpeg/macos/include/libavformat/version.h b/deps/ffmpeg/macos/include/libavformat/version.h new file mode 100644 index 0000000..70c554c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavformat/version.h @@ -0,0 +1,47 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_VERSION_H +#define AVFORMAT_VERSION_H + +/** + * @file + * @ingroup libavf + * Libavformat version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBAVFORMAT_VERSION_MINOR 7 +#define LIBAVFORMAT_VERSION_MICRO 100 + +#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT + +#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) + +#endif /* AVFORMAT_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavformat/version_major.h b/deps/ffmpeg/macos/include/libavformat/version_major.h new file mode 100644 index 0000000..7a9b067 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavformat/version_major.h @@ -0,0 +1,54 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_VERSION_MAJOR_H +#define AVFORMAT_VERSION_MAJOR_H + +/** + * @file + * @ingroup libavf + * Libavformat version macros + */ + +// Major bumping may affect Ticket5467, 5421, 5451(compatibility with Chromium) +// Also please add any ticket numbers that you believe might be affected here +#define LIBAVFORMAT_VERSION_MAJOR 61 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + * + */ +#define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_LAVF_SHORTEST (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_ALLOW_FLUSH (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_AVSTREAM_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 62) + +#define FF_API_GET_DUR_ESTIMATE_METHOD (LIBAVFORMAT_VERSION_MAJOR < 62) +#define FF_API_INTERNAL_TIMING (LIBAVFORMAT_VERSION_MAJOR < 62) + +#define FF_API_R_FRAME_RATE 1 + +#endif /* AVFORMAT_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/adler32.h b/deps/ffmpeg/macos/include/libavutil/adler32.h new file mode 100644 index 0000000..232d07f --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/adler32.h @@ -0,0 +1,63 @@ +/* + * copyright (c) 2006 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_adler32 + * Public header for Adler-32 hash function implementation. + */ + +#ifndef AVUTIL_ADLER32_H +#define AVUTIL_ADLER32_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_adler32 Adler-32 + * @ingroup lavu_hash + * Adler-32 hash function implementation. + * + * @{ + */ + +typedef uint32_t AVAdler; + +/** + * Calculate the Adler32 checksum of a buffer. + * + * Passing the return value to a subsequent av_adler32_update() call + * allows the checksum of multiple buffers to be calculated as though + * they were concatenated. + * + * @param adler initial checksum value + * @param buf pointer to input buffer + * @param len size of input buffer + * @return updated checksum + */ +AVAdler av_adler32_update(AVAdler adler, const uint8_t *buf, + size_t len) av_pure; + +/** + * @} + */ + +#endif /* AVUTIL_ADLER32_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/aes.h b/deps/ffmpeg/macos/include/libavutil/aes.h new file mode 100644 index 0000000..4e73473 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/aes.h @@ -0,0 +1,69 @@ +/* + * copyright (c) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AES_H +#define AVUTIL_AES_H + +#include + +#include "attributes.h" + +/** + * @defgroup lavu_aes AES + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_aes_size; + +struct AVAES; + +/** + * Allocate an AVAES context. + */ +struct AVAES *av_aes_alloc(void); + +/** + * Initialize an AVAES context. + * + * @param a The AVAES context + * @param key Pointer to the key + * @param key_bits 128, 192 or 256 + * @param decrypt 0 for encryption, 1 for decryption + */ +int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param a The AVAES context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_AES_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/aes_ctr.h b/deps/ffmpeg/macos/include/libavutil/aes_ctr.h new file mode 100644 index 0000000..d98c071 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/aes_ctr.h @@ -0,0 +1,99 @@ +/* + * AES-CTR cipher + * Copyright (c) 2015 Eran Kornblau + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AES_CTR_H +#define AVUTIL_AES_CTR_H + +/** + * @defgroup lavu_aes_ctr AES-CTR + * @ingroup lavu_crypto + * @{ + */ + +#include + +#include "attributes.h" + +#define AES_CTR_KEY_SIZE (16) +#define AES_CTR_IV_SIZE (8) + +struct AVAESCTR; + +/** + * Allocate an AVAESCTR context. + */ +struct AVAESCTR *av_aes_ctr_alloc(void); + +/** + * Initialize an AVAESCTR context. + * + * @param a The AVAESCTR context to initialize + * @param key encryption key, must have a length of AES_CTR_KEY_SIZE + */ +int av_aes_ctr_init(struct AVAESCTR *a, const uint8_t *key); + +/** + * Release an AVAESCTR context. + * + * @param a The AVAESCTR context + */ +void av_aes_ctr_free(struct AVAESCTR *a); + +/** + * Process a buffer using a previously initialized context. + * + * @param a The AVAESCTR context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param size the size of src and dst + */ +void av_aes_ctr_crypt(struct AVAESCTR *a, uint8_t *dst, const uint8_t *src, int size); + +/** + * Get the current iv + */ +const uint8_t* av_aes_ctr_get_iv(struct AVAESCTR *a); + +/** + * Generate a random iv + */ +void av_aes_ctr_set_random_iv(struct AVAESCTR *a); + +/** + * Forcefully change the 8-byte iv + */ +void av_aes_ctr_set_iv(struct AVAESCTR *a, const uint8_t* iv); + +/** + * Forcefully change the "full" 16-byte iv, including the counter + */ +void av_aes_ctr_set_full_iv(struct AVAESCTR *a, const uint8_t* iv); + +/** + * Increment the top 64 bit of the iv (performed after each frame) + */ +void av_aes_ctr_increment_iv(struct AVAESCTR *a); + +/** + * @} + */ + +#endif /* AVUTIL_AES_CTR_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/ambient_viewing_environment.h b/deps/ffmpeg/macos/include/libavutil/ambient_viewing_environment.h new file mode 100644 index 0000000..e5e4ac2 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/ambient_viewing_environment.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2023 Jan Ekström + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H +#define AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H + +#include +#include "frame.h" +#include "rational.h" + +/** + * Ambient viewing environment metadata as defined by H.274. The values are + * saved in AVRationals so that they keep their exactness, while allowing for + * easy access to a double value with f.ex. av_q2d. + * + * @note sizeof(AVAmbientViewingEnvironment) is not part of the public ABI, and + * it must be allocated using av_ambient_viewing_environment_alloc. + */ +typedef struct AVAmbientViewingEnvironment { + /** + * Environmental illuminance of the ambient viewing environment in lux. + */ + AVRational ambient_illuminance; + + /** + * Normalized x chromaticity coordinate of the environmental ambient light + * in the nominal viewing environment according to the CIE 1931 definition + * of x and y as specified in ISO/CIE 11664-1. + */ + AVRational ambient_light_x; + + /** + * Normalized y chromaticity coordinate of the environmental ambient light + * in the nominal viewing environment according to the CIE 1931 definition + * of x and y as specified in ISO/CIE 11664-1. + */ + AVRational ambient_light_y; +} AVAmbientViewingEnvironment; + +/** + * Allocate an AVAmbientViewingEnvironment structure. + * + * @return the newly allocated struct or NULL on failure + */ +AVAmbientViewingEnvironment *av_ambient_viewing_environment_alloc(size_t *size); + +/** + * Allocate and add an AVAmbientViewingEnvironment structure to an existing + * AVFrame as side data. + * + * @return the newly allocated struct, or NULL on failure + */ +AVAmbientViewingEnvironment *av_ambient_viewing_environment_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_AMBIENT_VIEWING_ENVIRONMENT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/attributes.h b/deps/ffmpeg/macos/include/libavutil/attributes.h new file mode 100644 index 0000000..04c615c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/attributes.h @@ -0,0 +1,173 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Macro definitions for various function/variable attributes + */ + +#ifndef AVUTIL_ATTRIBUTES_H +#define AVUTIL_ATTRIBUTES_H + +#ifdef __GNUC__ +# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > (x) || __GNUC__ == (x) && __GNUC_MINOR__ >= (y)) +# define AV_GCC_VERSION_AT_MOST(x,y) (__GNUC__ < (x) || __GNUC__ == (x) && __GNUC_MINOR__ <= (y)) +#else +# define AV_GCC_VERSION_AT_LEAST(x,y) 0 +# define AV_GCC_VERSION_AT_MOST(x,y) 0 +#endif + +#ifdef __has_builtin +# define AV_HAS_BUILTIN(x) __has_builtin(x) +#else +# define AV_HAS_BUILTIN(x) 0 +#endif + +#ifndef av_always_inline +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_always_inline __attribute__((always_inline)) inline +#elif defined(_MSC_VER) +# define av_always_inline __forceinline +#else +# define av_always_inline inline +#endif +#endif + +#ifndef av_extern_inline +#if defined(__ICL) && __ICL >= 1210 || defined(__GNUC_STDC_INLINE__) +# define av_extern_inline extern inline +#else +# define av_extern_inline inline +#endif +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,4) +# define av_warn_unused_result __attribute__((warn_unused_result)) +#else +# define av_warn_unused_result +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_noinline __attribute__((noinline)) +#elif defined(_MSC_VER) +# define av_noinline __declspec(noinline) +#else +# define av_noinline +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) +# define av_pure __attribute__((pure)) +#else +# define av_pure +#endif + +#if AV_GCC_VERSION_AT_LEAST(2,6) || defined(__clang__) +# define av_const __attribute__((const)) +#else +# define av_const +#endif + +#if AV_GCC_VERSION_AT_LEAST(4,3) || defined(__clang__) +# define av_cold __attribute__((cold)) +#else +# define av_cold +#endif + +#if AV_GCC_VERSION_AT_LEAST(4,1) && !defined(__llvm__) +# define av_flatten __attribute__((flatten)) +#else +# define av_flatten +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define attribute_deprecated __attribute__((deprecated)) +#elif defined(_MSC_VER) +# define attribute_deprecated __declspec(deprecated) +#else +# define attribute_deprecated +#endif + +/** + * Disable warnings about deprecated features + * This is useful for sections of code kept for backward compatibility and + * scheduled for removal. + */ +#ifndef AV_NOWARN_DEPRECATED +#if AV_GCC_VERSION_AT_LEAST(4,6) || defined(__clang__) +# define AV_NOWARN_DEPRECATED(code) \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ + code \ + _Pragma("GCC diagnostic pop") +#elif defined(_MSC_VER) +# define AV_NOWARN_DEPRECATED(code) \ + __pragma(warning(push)) \ + __pragma(warning(disable : 4996)) \ + code; \ + __pragma(warning(pop)) +#else +# define AV_NOWARN_DEPRECATED(code) code +#endif +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define av_unused __attribute__((unused)) +#else +# define av_unused +#endif + +/** + * Mark a variable as used and prevent the compiler from optimizing it + * away. This is useful for variables accessed only from inline + * assembler without the compiler being aware. + */ +#if AV_GCC_VERSION_AT_LEAST(3,1) || defined(__clang__) +# define av_used __attribute__((used)) +#else +# define av_used +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,3) || defined(__clang__) +# define av_alias __attribute__((may_alias)) +#else +# define av_alias +#endif + +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) +# define av_uninit(x) x=x +#else +# define av_uninit(x) x +#endif + +#if defined(__GNUC__) || defined(__clang__) +# define av_builtin_constant_p __builtin_constant_p +# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos))) +#else +# define av_builtin_constant_p(x) 0 +# define av_printf_format(fmtpos, attrpos) +#endif + +#if AV_GCC_VERSION_AT_LEAST(2,5) || defined(__clang__) +# define av_noreturn __attribute__((noreturn)) +#else +# define av_noreturn +#endif + +#endif /* AVUTIL_ATTRIBUTES_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/audio_fifo.h b/deps/ffmpeg/macos/include/libavutil/audio_fifo.h new file mode 100644 index 0000000..fa5f59a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/audio_fifo.h @@ -0,0 +1,187 @@ +/* + * Audio FIFO + * Copyright (c) 2012 Justin Ruggles + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Audio FIFO Buffer + */ + +#ifndef AVUTIL_AUDIO_FIFO_H +#define AVUTIL_AUDIO_FIFO_H + +#include "attributes.h" +#include "samplefmt.h" + +/** + * @addtogroup lavu_audio + * @{ + * + * @defgroup lavu_audiofifo Audio FIFO Buffer + * @{ + */ + +/** + * Context for an Audio FIFO Buffer. + * + * - Operates at the sample level rather than the byte level. + * - Supports multiple channels with either planar or packed sample format. + * - Automatic reallocation when writing to a full buffer. + */ +typedef struct AVAudioFifo AVAudioFifo; + +/** + * Free an AVAudioFifo. + * + * @param af AVAudioFifo to free + */ +void av_audio_fifo_free(AVAudioFifo *af); + +/** + * Allocate an AVAudioFifo. + * + * @param sample_fmt sample format + * @param channels number of channels + * @param nb_samples initial allocation size, in samples + * @return newly allocated AVAudioFifo, or NULL on error + */ +AVAudioFifo *av_audio_fifo_alloc(enum AVSampleFormat sample_fmt, int channels, + int nb_samples); + +/** + * Reallocate an AVAudioFifo. + * + * @param af AVAudioFifo to reallocate + * @param nb_samples new allocation size, in samples + * @return 0 if OK, or negative AVERROR code on failure + */ +av_warn_unused_result +int av_audio_fifo_realloc(AVAudioFifo *af, int nb_samples); + +/** + * Write data to an AVAudioFifo. + * + * The AVAudioFifo will be reallocated automatically if the available space + * is less than nb_samples. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to write to + * @param data audio data plane pointers + * @param nb_samples number of samples to write + * @return number of samples actually written, or negative AVERROR + * code on failure. If successful, the number of samples + * actually written will always be nb_samples. + */ +int av_audio_fifo_write(AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Peek data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to peek + * @return number of samples actually peek, or negative AVERROR code + * on failure. The number of samples actually peek will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_peek(const AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Peek data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to peek + * @param offset offset from current read position + * @return number of samples actually peek, or negative AVERROR code + * on failure. The number of samples actually peek will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_peek_at(const AVAudioFifo *af, void * const *data, + int nb_samples, int offset); + +/** + * Read data from an AVAudioFifo. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param af AVAudioFifo to read from + * @param data audio data plane pointers + * @param nb_samples number of samples to read + * @return number of samples actually read, or negative AVERROR code + * on failure. The number of samples actually read will not + * be greater than nb_samples, and will only be less than + * nb_samples if av_audio_fifo_size is less than nb_samples. + */ +int av_audio_fifo_read(AVAudioFifo *af, void * const *data, int nb_samples); + +/** + * Drain data from an AVAudioFifo. + * + * Removes the data without reading it. + * + * @param af AVAudioFifo to drain + * @param nb_samples number of samples to drain + * @return 0 if OK, or negative AVERROR code on failure + */ +int av_audio_fifo_drain(AVAudioFifo *af, int nb_samples); + +/** + * Reset the AVAudioFifo buffer. + * + * This empties all data in the buffer. + * + * @param af AVAudioFifo to reset + */ +void av_audio_fifo_reset(AVAudioFifo *af); + +/** + * Get the current number of samples in the AVAudioFifo available for reading. + * + * @param af the AVAudioFifo to query + * @return number of samples available for reading + */ +int av_audio_fifo_size(AVAudioFifo *af); + +/** + * Get the current number of samples in the AVAudioFifo available for writing. + * + * @param af the AVAudioFifo to query + * @return number of samples available for writing + */ +int av_audio_fifo_space(AVAudioFifo *af); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_AUDIO_FIFO_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/avassert.h b/deps/ffmpeg/macos/include/libavutil/avassert.h new file mode 100644 index 0000000..1895fb7 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/avassert.h @@ -0,0 +1,78 @@ +/* + * copyright (c) 2010 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple assert() macros that are a bit more flexible than ISO C assert(). + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_AVASSERT_H +#define AVUTIL_AVASSERT_H + +#include +#ifdef HAVE_AV_CONFIG_H +# include "config.h" +#endif +#include "log.h" +#include "macros.h" + +/** + * assert() equivalent, that is always enabled. + */ +#define av_assert0(cond) do { \ + if (!(cond)) { \ + av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \ + AV_STRINGIFY(cond), __FILE__, __LINE__); \ + abort(); \ + } \ +} while (0) + + +/** + * assert() equivalent, that does not lie in speed critical code. + * These asserts() thus can be enabled without fearing speed loss. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 +#define av_assert1(cond) av_assert0(cond) +#else +#define av_assert1(cond) ((void)0) +#endif + + +/** + * assert() equivalent, that does lie in speed critical code. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 +#define av_assert2(cond) av_assert0(cond) +#define av_assert2_fpu() av_assert0_fpu() +#else +#define av_assert2(cond) ((void)0) +#define av_assert2_fpu() ((void)0) +#endif + +/** + * Assert that floating point operations can be executed. + * + * This will av_assert0() that the cpu is not in MMX state on X86 + */ +void av_assert0_fpu(void); + +#endif /* AVUTIL_AVASSERT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/avconfig.h b/deps/ffmpeg/macos/include/libavutil/avconfig.h new file mode 100644 index 0000000..c289fbb --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffmpeg configure */ +#ifndef AVUTIL_AVCONFIG_H +#define AVUTIL_AVCONFIG_H +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 1 +#endif /* AVUTIL_AVCONFIG_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/avstring.h b/deps/ffmpeg/macos/include/libavutil/avstring.h new file mode 100644 index 0000000..fc09534 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/avstring.h @@ -0,0 +1,428 @@ +/* + * Copyright (c) 2007 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVSTRING_H +#define AVUTIL_AVSTRING_H + +#include +#include +#include "attributes.h" + +/** + * @addtogroup lavu_string + * @{ + */ + +/** + * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to + * the address of the first character in str after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_strstart(const char *str, const char *pfx, const char **ptr); + +/** + * Return non-zero if pfx is a prefix of str independent of case. If + * it is, *ptr is set to the address of the first character in str + * after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_stristart(const char *str, const char *pfx, const char **ptr); + +/** + * Locate the first case-independent occurrence in the string haystack + * of the string needle. A zero-length string needle is considered to + * match at the start of haystack. + * + * This function is a case-insensitive version of the standard strstr(). + * + * @param haystack string to search in + * @param needle string to search for + * @return pointer to the located match within haystack + * or a null pointer if no match + */ +char *av_stristr(const char *haystack, const char *needle); + +/** + * Locate the first occurrence of the string needle in the string haystack + * where not more than hay_length characters are searched. A zero-length + * string needle is considered to match at the start of haystack. + * + * This function is a length-limited version of the standard strstr(). + * + * @param haystack string to search in + * @param needle string to search for + * @param hay_length length of string to search in + * @return pointer to the located match within haystack + * or a null pointer if no match + */ +char *av_strnstr(const char *haystack, const char *needle, size_t hay_length); + +/** + * Copy the string src to dst, but no more than size - 1 bytes, and + * null-terminate dst. + * + * This function is the same as BSD strlcpy(). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the length of src + * + * @warning since the return value is the length of src, src absolutely + * _must_ be a properly 0-terminated string, otherwise this will read beyond + * the end of the buffer and possibly crash. + */ +size_t av_strlcpy(char *dst, const char *src, size_t size); + +/** + * Append the string src to the string dst, but to a total length of + * no more than size - 1 bytes, and null-terminate dst. + * + * This function is similar to BSD strlcat(), but differs when + * size <= strlen(dst). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the total length of src and dst + * + * @warning since the return value use the length of src and dst, these + * absolutely _must_ be a properly 0-terminated strings, otherwise this + * will read beyond the end of the buffer and possibly crash. + */ +size_t av_strlcat(char *dst, const char *src, size_t size); + +/** + * Append output to a string, according to a format. Never write out of + * the destination buffer, and always put a terminating 0 within + * the buffer. + * @param dst destination buffer (string to which the output is + * appended) + * @param size total size of the destination buffer + * @param fmt printf-compatible format string, specifying how the + * following parameters are used + * @return the length of the string that would have been generated + * if enough space had been available + */ +size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4); + +/** + * Get the count of continuous non zero chars starting from the beginning. + * + * @param s the string whose length to count + * @param len maximum number of characters to check in the string, that + * is the maximum value which is returned by the function + */ +static inline size_t av_strnlen(const char *s, size_t len) +{ + size_t i; + for (i = 0; i < len && s[i]; i++) + ; + return i; +} + +/** + * Print arguments following specified format into a large enough auto + * allocated buffer. It is similar to GNU asprintf(). + * @param fmt printf-compatible format string, specifying how the + * following parameters are used. + * @return the allocated string + * @note You have to free the string yourself with av_free(). + */ +char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2); + +/** + * Unescape the given string until a non escaped terminating char, + * and return the token corresponding to the unescaped string. + * + * The normal \ and ' escaping is supported. Leading and trailing + * whitespaces are removed, unless they are escaped with '\' or are + * enclosed between ''. + * + * @param buf the buffer to parse, buf will be updated to point to the + * terminating char + * @param term a 0-terminated list of terminating chars + * @return the malloced unescaped string, which must be av_freed by + * the user, NULL in case of allocation failure + */ +char *av_get_token(const char **buf, const char *term); + +/** + * Split the string into several tokens which can be accessed by + * successive calls to av_strtok(). + * + * A token is defined as a sequence of characters not belonging to the + * set specified in delim. + * + * On the first call to av_strtok(), s should point to the string to + * parse, and the value of saveptr is ignored. In subsequent calls, s + * should be NULL, and saveptr should be unchanged since the previous + * call. + * + * This function is similar to strtok_r() defined in POSIX.1. + * + * @param s the string to parse, may be NULL + * @param delim 0-terminated list of token delimiters, must be non-NULL + * @param saveptr user-provided pointer which points to stored + * information necessary for av_strtok() to continue scanning the same + * string. saveptr is updated to point to the next character after the + * first delimiter found, or to NULL if the string was terminated + * @return the found token, or NULL when no token is found + */ +char *av_strtok(char *s, const char *delim, char **saveptr); + +/** + * Locale-independent conversion of ASCII isdigit. + */ +static inline av_const int av_isdigit(int c) +{ + return c >= '0' && c <= '9'; +} + +/** + * Locale-independent conversion of ASCII isgraph. + */ +static inline av_const int av_isgraph(int c) +{ + return c > 32 && c < 127; +} + +/** + * Locale-independent conversion of ASCII isspace. + */ +static inline av_const int av_isspace(int c) +{ + return c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || + c == '\v'; +} + +/** + * Locale-independent conversion of ASCII characters to uppercase. + */ +static inline av_const int av_toupper(int c) +{ + if (c >= 'a' && c <= 'z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent conversion of ASCII characters to lowercase. + */ +static inline av_const int av_tolower(int c) +{ + if (c >= 'A' && c <= 'Z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent conversion of ASCII isxdigit. + */ +static inline av_const int av_isxdigit(int c) +{ + c = av_tolower(c); + return av_isdigit(c) || (c >= 'a' && c <= 'f'); +} + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strcasecmp(const char *a, const char *b); + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strncasecmp(const char *a, const char *b, size_t n); + +/** + * Locale-independent strings replace. + * @note This means only ASCII-range characters are replaced. + */ +char *av_strireplace(const char *str, const char *from, const char *to); + +/** + * Thread safe basename. + * @param path the string to parse, on DOS both \ and / are considered separators. + * @return pointer to the basename substring. + * If path does not contain a slash, the function returns a copy of path. + * If path is a NULL pointer or points to an empty string, a pointer + * to a string "." is returned. + */ +const char *av_basename(const char *path); + +/** + * Thread safe dirname. + * @param path the string to parse, on DOS both \ and / are considered separators. + * @return A pointer to a string that's the parent directory of path. + * If path is a NULL pointer or points to an empty string, a pointer + * to a string "." is returned. + * @note the function may modify the contents of the path, so copies should be passed. + */ +const char *av_dirname(char *path); + +/** + * Match instances of a name in a comma-separated list of names. + * List entries are checked from the start to the end of the names list, + * the first match ends further processing. If an entry prefixed with '-' + * matches, then 0 is returned. The "ALL" list entry is considered to + * match all names. + * + * @param name Name to look for. + * @param names List of names. + * @return 1 on match, 0 otherwise. + */ +int av_match_name(const char *name, const char *names); + +/** + * Append path component to the existing path. + * Path separator '/' is placed between when needed. + * Resulting string have to be freed with av_free(). + * @param path base path + * @param component component to be appended + * @return new path or NULL on error. + */ +char *av_append_path_component(const char *path, const char *component); + +enum AVEscapeMode { + AV_ESCAPE_MODE_AUTO, ///< Use auto-selected escaping mode. + AV_ESCAPE_MODE_BACKSLASH, ///< Use backslash escaping. + AV_ESCAPE_MODE_QUOTE, ///< Use single-quote escaping. + AV_ESCAPE_MODE_XML, ///< Use XML non-markup character data escaping. +}; + +/** + * Consider spaces special and escape them even in the middle of the + * string. + * + * This is equivalent to adding the whitespace characters to the special + * characters lists, except it is guaranteed to use the exact same list + * of whitespace characters as the rest of libavutil. + */ +#define AV_ESCAPE_FLAG_WHITESPACE (1 << 0) + +/** + * Escape only specified special characters. + * Without this flag, escape also any characters that may be considered + * special by av_get_token(), such as the single quote. + */ +#define AV_ESCAPE_FLAG_STRICT (1 << 1) + +/** + * Within AV_ESCAPE_MODE_XML, additionally escape single quotes for single + * quoted attributes. + */ +#define AV_ESCAPE_FLAG_XML_SINGLE_QUOTES (1 << 2) + +/** + * Within AV_ESCAPE_MODE_XML, additionally escape double quotes for double + * quoted attributes. + */ +#define AV_ESCAPE_FLAG_XML_DOUBLE_QUOTES (1 << 3) + + +/** + * Escape string in src, and put the escaped string in an allocated + * string in *dst, which must be freed with av_free(). + * + * @param dst pointer where an allocated string is put + * @param src string to escape, must be non-NULL + * @param special_chars string containing the special characters which + * need to be escaped, can be NULL + * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros. + * Any unknown value for mode will be considered equivalent to + * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without + * notice. + * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_ macros + * @return the length of the allocated string, or a negative error code in case of error + * @see av_bprint_escape() + */ +av_warn_unused_result +int av_escape(char **dst, const char *src, const char *special_chars, + enum AVEscapeMode mode, int flags); + +#define AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES 1 ///< accept codepoints over 0x10FFFF +#define AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS 2 ///< accept non-characters - 0xFFFE and 0xFFFF +#define AV_UTF8_FLAG_ACCEPT_SURROGATES 4 ///< accept UTF-16 surrogates codes +#define AV_UTF8_FLAG_EXCLUDE_XML_INVALID_CONTROL_CODES 8 ///< exclude control codes not accepted by XML + +#define AV_UTF8_FLAG_ACCEPT_ALL \ + AV_UTF8_FLAG_ACCEPT_INVALID_BIG_CODES|AV_UTF8_FLAG_ACCEPT_NON_CHARACTERS|AV_UTF8_FLAG_ACCEPT_SURROGATES + +/** + * Read and decode a single UTF-8 code point (character) from the + * buffer in *buf, and update *buf to point to the next byte to + * decode. + * + * In case of an invalid byte sequence, the pointer will be updated to + * the next byte after the invalid sequence and the function will + * return an error code. + * + * Depending on the specified flags, the function will also fail in + * case the decoded code point does not belong to a valid range. + * + * @note For speed-relevant code a carefully implemented use of + * GET_UTF8() may be preferred. + * + * @param codep pointer used to return the parsed code in case of success. + * The value in *codep is set even in case the range check fails. + * @param bufp pointer to the address the first byte of the sequence + * to decode, updated by the function to point to the + * byte next after the decoded sequence + * @param buf_end pointer to the end of the buffer, points to the next + * byte past the last in the buffer. This is used to + * avoid buffer overreads (in case of an unfinished + * UTF-8 sequence towards the end of the buffer). + * @param flags a collection of AV_UTF8_FLAG_* flags + * @return >= 0 in case a sequence was successfully read, a negative + * value in case of invalid sequence + */ +av_warn_unused_result +int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, + unsigned int flags); + +/** + * Check if a name is in a list. + * @returns 0 if not found, or the 1 based index where it has been found in the + * list. + */ +int av_match_list(const char *name, const char *list, char separator); + +/** + * See libc sscanf manual for more information. + * Locale-independent sscanf implementation. + */ +int av_sscanf(const char *string, const char *format, ...); + +/** + * @} + */ + +#endif /* AVUTIL_AVSTRING_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/avutil.h b/deps/ffmpeg/macos/include/libavutil/avutil.h new file mode 100644 index 0000000..d2900dc --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/avutil.h @@ -0,0 +1,362 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVUTIL_H +#define AVUTIL_AVUTIL_H + +/** + * @file + * @ingroup lavu + * Convenience header that includes @ref lavu "libavutil"'s core. + */ + +/** + * @mainpage + * + * @section ffmpeg_intro Introduction + * + * This document describes the usage of the different libraries + * provided by FFmpeg. + * + * @li @ref libavc "libavcodec" encoding/decoding library + * @li @ref lavfi "libavfilter" graph-based frame editing library + * @li @ref libavf "libavformat" I/O and muxing/demuxing library + * @li @ref lavd "libavdevice" special devices muxing/demuxing library + * @li @ref lavu "libavutil" common utility library + * @li @ref lswr "libswresample" audio resampling, format conversion and mixing + * @li @ref lpp "libpostproc" post processing library + * @li @ref libsws "libswscale" color conversion and scaling library + * + * @section ffmpeg_versioning Versioning and compatibility + * + * Each of the FFmpeg libraries contains a version.h header, which defines a + * major, minor and micro version number with the + * LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO} macros. The major version + * number is incremented with backward incompatible changes - e.g. removing + * parts of the public API, reordering public struct members, etc. The minor + * version number is incremented for backward compatible API changes or major + * new features - e.g. adding a new public function or a new decoder. The micro + * version number is incremented for smaller changes that a calling program + * might still want to check for - e.g. changing behavior in a previously + * unspecified situation. + * + * FFmpeg guarantees backward API and ABI compatibility for each library as long + * as its major version number is unchanged. This means that no public symbols + * will be removed or renamed. Types and names of the public struct members and + * values of public macros and enums will remain the same (unless they were + * explicitly declared as not part of the public API). Documented behavior will + * not change. + * + * In other words, any correct program that works with a given FFmpeg snapshot + * should work just as well without any changes with any later snapshot with the + * same major versions. This applies to both rebuilding the program against new + * FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program + * links against. + * + * However, new public symbols may be added and new members may be appended to + * public structs whose size is not part of public ABI (most public structs in + * FFmpeg). New macros and enum values may be added. Behavior in undocumented + * situations may change slightly (and be documented). All those are accompanied + * by an entry in doc/APIchanges and incrementing either the minor or micro + * version number. + */ + +/** + * @defgroup lavu libavutil + * Common code shared across all FFmpeg libraries. + * + * @note + * libavutil is designed to be modular. In most cases, in order to use the + * functions provided by one component of libavutil you must explicitly include + * the specific header containing that feature. If you are only using + * media-related components, you could simply include libavutil/avutil.h, which + * brings in most of the "core" components. + * + * @{ + * + * @defgroup lavu_crypto Crypto and Hashing + * + * @{ + * @} + * + * @defgroup lavu_math Mathematics + * @{ + * + * @} + * + * @defgroup lavu_string String Manipulation + * + * @{ + * + * @} + * + * @defgroup lavu_mem Memory Management + * + * @{ + * + * @} + * + * @defgroup lavu_data Data Structures + * @{ + * + * @} + * + * @defgroup lavu_video Video related + * + * @{ + * + * @} + * + * @defgroup lavu_audio Audio related + * + * @{ + * + * @} + * + * @defgroup lavu_error Error Codes + * + * @{ + * + * @} + * + * @defgroup lavu_log Logging Facility + * + * @{ + * + * @} + * + * @defgroup lavu_misc Other + * + * @{ + * + * @defgroup preproc_misc Preprocessor String Macros + * + * @{ + * + * @} + * + * @defgroup version_utils Library Version Macros + * + * @{ + * + * @} + */ + + +/** + * @addtogroup lavu_ver + * @{ + */ + +/** + * Return the LIBAVUTIL_VERSION_INT constant. + */ +unsigned avutil_version(void); + +/** + * Return an informative version string. This usually is the actual release + * version number or a git commit description. This string has no fixed format + * and can change any time. It should never be parsed by code. + */ +const char *av_version_info(void); + +/** + * Return the libavutil build-time configuration. + */ +const char *avutil_configuration(void); + +/** + * Return the libavutil license. + */ +const char *avutil_license(void); + +/** + * @} + */ + +/** + * @addtogroup lavu_media Media Type + * @brief Media Type + */ + +enum AVMediaType { + AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA + AVMEDIA_TYPE_VIDEO, + AVMEDIA_TYPE_AUDIO, + AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous + AVMEDIA_TYPE_SUBTITLE, + AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse + AVMEDIA_TYPE_NB +}; + +/** + * Return a string describing the media_type enum, NULL if media_type + * is unknown. + */ +const char *av_get_media_type_string(enum AVMediaType media_type); + +/** + * @defgroup lavu_const Constants + * @{ + * + * @defgroup lavu_enc Encoding specific + * + * @note those definition should move to avcodec + * @{ + */ + +#define FF_LAMBDA_SHIFT 7 +#define FF_LAMBDA_SCALE (1< + +/** + * @defgroup lavu_base64 Base64 + * @ingroup lavu_crypto + * @{ + */ + +/** + * Decode a base64-encoded string. + * + * @param out buffer for decoded data + * @param in null-terminated input string + * @param out_size size in bytes of the out buffer, must be at + * least 3/4 of the length of in, that is AV_BASE64_DECODE_SIZE(strlen(in)) + * @return number of bytes written, or a negative value in case of + * invalid input + */ +int av_base64_decode(uint8_t *out, const char *in, int out_size); + +/** + * Calculate the output size in bytes needed to decode a base64 string + * with length x to a data buffer. + */ +#define AV_BASE64_DECODE_SIZE(x) ((x) * 3LL / 4) + +/** + * Encode data to base64 and null-terminate. + * + * @param out buffer for encoded data + * @param out_size size in bytes of the out buffer (including the + * null terminator), must be at least AV_BASE64_SIZE(in_size) + * @param in input buffer containing the data to encode + * @param in_size size in bytes of the in buffer + * @return out or NULL in case of error + */ +char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); + +/** + * Calculate the output size needed to base64-encode x bytes to a + * null-terminated string. + */ +#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) + + /** + * @} + */ + +#endif /* AVUTIL_BASE64_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/blowfish.h b/deps/ffmpeg/macos/include/libavutil/blowfish.h new file mode 100644 index 0000000..9e289a4 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/blowfish.h @@ -0,0 +1,82 @@ +/* + * Blowfish algorithm + * Copyright (c) 2012 Samuel Pitoiset + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_BLOWFISH_H +#define AVUTIL_BLOWFISH_H + +#include + +/** + * @defgroup lavu_blowfish Blowfish + * @ingroup lavu_crypto + * @{ + */ + +#define AV_BF_ROUNDS 16 + +typedef struct AVBlowfish { + uint32_t p[AV_BF_ROUNDS + 2]; + uint32_t s[4][256]; +} AVBlowfish; + +/** + * Allocate an AVBlowfish context. + */ +AVBlowfish *av_blowfish_alloc(void); + +/** + * Initialize an AVBlowfish context. + * + * @param ctx an AVBlowfish context + * @param key a key + * @param key_len length of the key + */ +void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVBlowfish context + * @param xl left four bytes halves of input to be encrypted + * @param xr right four bytes halves of input to be encrypted + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr, + int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVBlowfish context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_BLOWFISH_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/bprint.h b/deps/ffmpeg/macos/include/libavutil/bprint.h new file mode 100644 index 0000000..4ac8570 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/bprint.h @@ -0,0 +1,254 @@ +/* + * Copyright (c) 2012 Nicolas George + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_avbprint + * AVBPrint public header + */ + +#ifndef AVUTIL_BPRINT_H +#define AVUTIL_BPRINT_H + +#include + +#include "attributes.h" +#include "avstring.h" + +/** + * @defgroup lavu_avbprint AVBPrint + * @ingroup lavu_data + * + * A buffer to print data progressively + * @{ + */ + +/** + * Define a structure with extra padding to a fixed size + * This helps ensuring binary compatibility with future versions. + */ + +#define FF_PAD_STRUCTURE(name, size, ...) \ +struct ff_pad_helper_##name { __VA_ARGS__ }; \ +typedef struct name { \ + __VA_ARGS__ \ + char reserved_padding[size - sizeof(struct ff_pad_helper_##name)]; \ +} name; + +/** + * Buffer to print data progressively + * + * The string buffer grows as necessary and is always 0-terminated. + * The content of the string is never accessed, and thus is + * encoding-agnostic and can even hold binary data. + * + * Small buffers are kept in the structure itself, and thus require no + * memory allocation at all (unless the contents of the buffer is needed + * after the structure goes out of scope). This is almost as lightweight as + * declaring a local `char buf[512]`. + * + * The length of the string can go beyond the allocated size: the buffer is + * then truncated, but the functions still keep account of the actual total + * length. + * + * In other words, AVBPrint.len can be greater than AVBPrint.size and records + * the total length of what would have been to the buffer if there had been + * enough memory. + * + * Append operations do not need to be tested for failure: if a memory + * allocation fails, data stop being appended to the buffer, but the length + * is still updated. This situation can be tested with + * av_bprint_is_complete(). + * + * The AVBPrint.size_max field determines several possible behaviours: + * - `size_max = -1` (= `UINT_MAX`) or any large value will let the buffer be + * reallocated as necessary, with an amortized linear cost. + * - `size_max = 0` prevents writing anything to the buffer: only the total + * length is computed. The write operations can then possibly be repeated in + * a buffer with exactly the necessary size + * (using `size_init = size_max = len + 1`). + * - `size_max = 1` is automatically replaced by the exact size available in the + * structure itself, thus ensuring no dynamic memory allocation. The + * internal buffer is large enough to hold a reasonable paragraph of text, + * such as the current paragraph. + */ + +FF_PAD_STRUCTURE(AVBPrint, 1024, + char *str; /**< string so far */ + unsigned len; /**< length so far */ + unsigned size; /**< allocated memory */ + unsigned size_max; /**< maximum allocated memory */ + char reserved_internal_buffer[1]; +) + +/** + * @name Max size special values + * Convenience macros for special values for av_bprint_init() size_max + * parameter. + * @{ + */ + +/** + * Buffer will be reallocated as necessary, with an amortized linear cost. + */ +#define AV_BPRINT_SIZE_UNLIMITED ((unsigned)-1) +/** + * Use the exact size available in the AVBPrint structure itself. + * + * Thus ensuring no dynamic memory allocation. The internal buffer is large + * enough to hold a reasonable paragraph of text, such as the current paragraph. + */ +#define AV_BPRINT_SIZE_AUTOMATIC 1 +/** + * Do not write anything to the buffer, only calculate the total length. + * + * The write operations can then possibly be repeated in a buffer with + * exactly the necessary size (using `size_init = size_max = AVBPrint.len + 1`). + */ +#define AV_BPRINT_SIZE_COUNT_ONLY 0 +/** @} */ + +/** + * Init a print buffer. + * + * @param buf buffer to init + * @param size_init initial size (including the final 0) + * @param size_max maximum size; + * - `0` means do not write anything, just count the length + * - `1` is replaced by the maximum value for automatic storage + * any large value means that the internal buffer will be + * reallocated as needed up to that limit + * - `-1` is converted to `UINT_MAX`, the largest limit possible. + * Check also `AV_BPRINT_SIZE_*` macros. + */ +void av_bprint_init(AVBPrint *buf, unsigned size_init, unsigned size_max); + +/** + * Init a print buffer using a pre-existing buffer. + * + * The buffer will not be reallocated. + * In case size equals zero, the AVBPrint will be initialized to use + * the internal buffer as if using AV_BPRINT_SIZE_COUNT_ONLY with + * av_bprint_init(). + * + * @param buf buffer structure to init + * @param buffer byte buffer to use for the string data + * @param size size of buffer + */ +void av_bprint_init_for_buffer(AVBPrint *buf, char *buffer, unsigned size); + +/** + * Append a formatted string to a print buffer. + */ +void av_bprintf(AVBPrint *buf, const char *fmt, ...) av_printf_format(2, 3); + +/** + * Append a formatted string to a print buffer. + */ +void av_vbprintf(AVBPrint *buf, const char *fmt, va_list vl_arg); + +/** + * Append char c n times to a print buffer. + */ +void av_bprint_chars(AVBPrint *buf, char c, unsigned n); + +/** + * Append data to a print buffer. + * + * @param buf bprint buffer to use + * @param data pointer to data + * @param size size of data + */ +void av_bprint_append_data(AVBPrint *buf, const char *data, unsigned size); + +struct tm; +/** + * Append a formatted date and time to a print buffer. + * + * @param buf bprint buffer to use + * @param fmt date and time format string, see strftime() + * @param tm broken-down time structure to translate + * + * @note due to poor design of the standard strftime function, it may + * produce poor results if the format string expands to a very long text and + * the bprint buffer is near the limit stated by the size_max option. + */ +void av_bprint_strftime(AVBPrint *buf, const char *fmt, const struct tm *tm); + +/** + * Allocate bytes in the buffer for external use. + * + * @param[in] buf buffer structure + * @param[in] size required size + * @param[out] mem pointer to the memory area + * @param[out] actual_size size of the memory area after allocation; + * can be larger or smaller than size + */ +void av_bprint_get_buffer(AVBPrint *buf, unsigned size, + unsigned char **mem, unsigned *actual_size); + +/** + * Reset the string to "" but keep internal allocated data. + */ +void av_bprint_clear(AVBPrint *buf); + +/** + * Test if the print buffer is complete (not truncated). + * + * It may have been truncated due to a memory allocation failure + * or the size_max limit (compare size and size_max if necessary). + */ +static inline int av_bprint_is_complete(const AVBPrint *buf) +{ + return buf->len < buf->size; +} + +/** + * Finalize a print buffer. + * + * The print buffer can no longer be used afterwards, + * but the len and size fields are still valid. + * + * @arg[out] ret_str if not NULL, used to return a permanent copy of the + * buffer contents, or NULL if memory allocation fails; + * if NULL, the buffer is discarded and freed + * @return 0 for success or error code (probably AVERROR(ENOMEM)) + */ +int av_bprint_finalize(AVBPrint *buf, char **ret_str); + +/** + * Escape the content in src and append it to dstbuf. + * + * @param dstbuf already inited destination bprint buffer + * @param src string containing the text to escape + * @param special_chars string containing the special characters which + * need to be escaped, can be NULL + * @param mode escape mode to employ, see AV_ESCAPE_MODE_* macros. + * Any unknown value for mode will be considered equivalent to + * AV_ESCAPE_MODE_BACKSLASH, but this behaviour can change without + * notice. + * @param flags flags which control how to escape, see AV_ESCAPE_FLAG_* macros + */ +void av_bprint_escape(AVBPrint *dstbuf, const char *src, const char *special_chars, + enum AVEscapeMode mode, int flags); + +/** @} */ + +#endif /* AVUTIL_BPRINT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/bswap.h b/deps/ffmpeg/macos/include/libavutil/bswap.h new file mode 100644 index 0000000..f53e576 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/bswap.h @@ -0,0 +1,105 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * byte swapping routines + */ + +#ifndef AVUTIL_BSWAP_H +#define AVUTIL_BSWAP_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_ARM +# include "arm/bswap.h" +#elif ARCH_RISCV +# include "riscv/bswap.h" +#elif ARCH_X86 +# include "x86/bswap.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff)) +#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16)) +#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32)) + +#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x) + +#ifndef av_bswap16 +static av_always_inline av_const uint16_t av_bswap16(uint16_t x) +{ + x= (x>>8) | (x<<8); + return x; +} +#endif + +#ifndef av_bswap32 +static av_always_inline av_const uint32_t av_bswap32(uint32_t x) +{ + return AV_BSWAP32C(x); +} +#endif + +#ifndef av_bswap64 +static inline uint64_t av_const av_bswap64(uint64_t x) +{ + return (uint64_t)av_bswap32(x) << 32 | av_bswap32(x >> 32); +} +#endif + +// be2ne ... big-endian to native-endian +// le2ne ... little-endian to native-endian + +#if AV_HAVE_BIGENDIAN +#define av_be2ne16(x) (x) +#define av_be2ne32(x) (x) +#define av_be2ne64(x) (x) +#define av_le2ne16(x) av_bswap16(x) +#define av_le2ne32(x) av_bswap32(x) +#define av_le2ne64(x) av_bswap64(x) +#define AV_BE2NEC(s, x) (x) +#define AV_LE2NEC(s, x) AV_BSWAPC(s, x) +#else +#define av_be2ne16(x) av_bswap16(x) +#define av_be2ne32(x) av_bswap32(x) +#define av_be2ne64(x) av_bswap64(x) +#define av_le2ne16(x) (x) +#define av_le2ne32(x) (x) +#define av_le2ne64(x) (x) +#define AV_BE2NEC(s, x) AV_BSWAPC(s, x) +#define AV_LE2NEC(s, x) (x) +#endif + +#define AV_BE2NE16C(x) AV_BE2NEC(16, x) +#define AV_BE2NE32C(x) AV_BE2NEC(32, x) +#define AV_BE2NE64C(x) AV_BE2NEC(64, x) +#define AV_LE2NE16C(x) AV_LE2NEC(16, x) +#define AV_LE2NE32C(x) AV_LE2NEC(32, x) +#define AV_LE2NE64C(x) AV_LE2NEC(64, x) + +#endif /* AVUTIL_BSWAP_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/buffer.h b/deps/ffmpeg/macos/include/libavutil/buffer.h new file mode 100644 index 0000000..e1ef5b7 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/buffer.h @@ -0,0 +1,322 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_buffer + * refcounted data buffer API + */ + +#ifndef AVUTIL_BUFFER_H +#define AVUTIL_BUFFER_H + +#include +#include + +/** + * @defgroup lavu_buffer AVBuffer + * @ingroup lavu_data + * + * @{ + * AVBuffer is an API for reference-counted data buffers. + * + * There are two core objects in this API -- AVBuffer and AVBufferRef. AVBuffer + * represents the data buffer itself; it is opaque and not meant to be accessed + * by the caller directly, but only through AVBufferRef. However, the caller may + * e.g. compare two AVBuffer pointers to check whether two different references + * are describing the same data buffer. AVBufferRef represents a single + * reference to an AVBuffer and it is the object that may be manipulated by the + * caller directly. + * + * There are two functions provided for creating a new AVBuffer with a single + * reference -- av_buffer_alloc() to just allocate a new buffer, and + * av_buffer_create() to wrap an existing array in an AVBuffer. From an existing + * reference, additional references may be created with av_buffer_ref(). + * Use av_buffer_unref() to free a reference (this will automatically free the + * data once all the references are freed). + * + * The convention throughout this API and the rest of FFmpeg is such that the + * buffer is considered writable if there exists only one reference to it (and + * it has not been marked as read-only). The av_buffer_is_writable() function is + * provided to check whether this is true and av_buffer_make_writable() will + * automatically create a new writable buffer when necessary. + * Of course nothing prevents the calling code from violating this convention, + * however that is safe only when all the existing references are under its + * control. + * + * @note Referencing and unreferencing the buffers is thread-safe and thus + * may be done from multiple threads simultaneously without any need for + * additional locking. + * + * @note Two different references to the same buffer can point to different + * parts of the buffer (i.e. their AVBufferRef.data will not be equal). + */ + +/** + * A reference counted buffer type. It is opaque and is meant to be used through + * references (AVBufferRef). + */ +typedef struct AVBuffer AVBuffer; + +/** + * A reference to a data buffer. + * + * The size of this struct is not a part of the public ABI and it is not meant + * to be allocated directly. + */ +typedef struct AVBufferRef { + AVBuffer *buffer; + + /** + * The data buffer. It is considered writable if and only if + * this is the only reference to the buffer, in which case + * av_buffer_is_writable() returns 1. + */ + uint8_t *data; + /** + * Size of data in bytes. + */ + size_t size; +} AVBufferRef; + +/** + * Allocate an AVBuffer of the given size using av_malloc(). + * + * @return an AVBufferRef of given size or NULL when out of memory + */ +AVBufferRef *av_buffer_alloc(size_t size); + +/** + * Same as av_buffer_alloc(), except the returned buffer will be initialized + * to zero. + */ +AVBufferRef *av_buffer_allocz(size_t size); + +/** + * Always treat the buffer as read-only, even when it has only one + * reference. + */ +#define AV_BUFFER_FLAG_READONLY (1 << 0) + +/** + * Create an AVBuffer from an existing array. + * + * If this function is successful, data is owned by the AVBuffer. The caller may + * only access data through the returned AVBufferRef and references derived from + * it. + * If this function fails, data is left untouched. + * @param data data array + * @param size size of data in bytes + * @param free a callback for freeing this buffer's data + * @param opaque parameter to be got for processing or passed to free + * @param flags a combination of AV_BUFFER_FLAG_* + * + * @return an AVBufferRef referring to data on success, NULL on failure. + */ +AVBufferRef *av_buffer_create(uint8_t *data, size_t size, + void (*free)(void *opaque, uint8_t *data), + void *opaque, int flags); + +/** + * Default free callback, which calls av_free() on the buffer data. + * This function is meant to be passed to av_buffer_create(), not called + * directly. + */ +void av_buffer_default_free(void *opaque, uint8_t *data); + +/** + * Create a new reference to an AVBuffer. + * + * @return a new AVBufferRef referring to the same AVBuffer as buf or NULL on + * failure. + */ +AVBufferRef *av_buffer_ref(const AVBufferRef *buf); + +/** + * Free a given reference and automatically free the buffer if there are no more + * references to it. + * + * @param buf the reference to be freed. The pointer is set to NULL on return. + */ +void av_buffer_unref(AVBufferRef **buf); + +/** + * @return 1 if the caller may write to the data referred to by buf (which is + * true if and only if buf is the only reference to the underlying AVBuffer). + * Return 0 otherwise. + * A positive answer is valid until av_buffer_ref() is called on buf. + */ +int av_buffer_is_writable(const AVBufferRef *buf); + +/** + * @return the opaque parameter set by av_buffer_create. + */ +void *av_buffer_get_opaque(const AVBufferRef *buf); + +int av_buffer_get_ref_count(const AVBufferRef *buf); + +/** + * Create a writable reference from a given buffer reference, avoiding data copy + * if possible. + * + * @param buf buffer reference to make writable. On success, buf is either left + * untouched, or it is unreferenced and a new writable AVBufferRef is + * written in its place. On failure, buf is left untouched. + * @return 0 on success, a negative AVERROR on failure. + */ +int av_buffer_make_writable(AVBufferRef **buf); + +/** + * Reallocate a given buffer. + * + * @param buf a buffer reference to reallocate. On success, buf will be + * unreferenced and a new reference with the required size will be + * written in its place. On failure buf will be left untouched. *buf + * may be NULL, then a new buffer is allocated. + * @param size required new buffer size. + * @return 0 on success, a negative AVERROR on failure. + * + * @note the buffer is actually reallocated with av_realloc() only if it was + * initially allocated through av_buffer_realloc(NULL) and there is only one + * reference to it (i.e. the one passed to this function). In all other cases + * a new buffer is allocated and the data is copied. + */ +int av_buffer_realloc(AVBufferRef **buf, size_t size); + +/** + * Ensure dst refers to the same data as src. + * + * When *dst is already equivalent to src, do nothing. Otherwise unreference dst + * and replace it with a new reference to src. + * + * @param dst Pointer to either a valid buffer reference or NULL. On success, + * this will point to a buffer reference equivalent to src. On + * failure, dst will be left untouched. + * @param src A buffer reference to replace dst with. May be NULL, then this + * function is equivalent to av_buffer_unref(dst). + * @return 0 on success + * AVERROR(ENOMEM) on memory allocation failure. + */ +int av_buffer_replace(AVBufferRef **dst, const AVBufferRef *src); + +/** + * @} + */ + +/** + * @defgroup lavu_bufferpool AVBufferPool + * @ingroup lavu_data + * + * @{ + * AVBufferPool is an API for a lock-free thread-safe pool of AVBuffers. + * + * Frequently allocating and freeing large buffers may be slow. AVBufferPool is + * meant to solve this in cases when the caller needs a set of buffers of the + * same size (the most obvious use case being buffers for raw video or audio + * frames). + * + * At the beginning, the user must call av_buffer_pool_init() to create the + * buffer pool. Then whenever a buffer is needed, call av_buffer_pool_get() to + * get a reference to a new buffer, similar to av_buffer_alloc(). This new + * reference works in all aspects the same way as the one created by + * av_buffer_alloc(). However, when the last reference to this buffer is + * unreferenced, it is returned to the pool instead of being freed and will be + * reused for subsequent av_buffer_pool_get() calls. + * + * When the caller is done with the pool and no longer needs to allocate any new + * buffers, av_buffer_pool_uninit() must be called to mark the pool as freeable. + * Once all the buffers are released, it will automatically be freed. + * + * Allocating and releasing buffers with this API is thread-safe as long as + * either the default alloc callback is used, or the user-supplied one is + * thread-safe. + */ + +/** + * The buffer pool. This structure is opaque and not meant to be accessed + * directly. It is allocated with av_buffer_pool_init() and freed with + * av_buffer_pool_uninit(). + */ +typedef struct AVBufferPool AVBufferPool; + +/** + * Allocate and initialize a buffer pool. + * + * @param size size of each buffer in this pool + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. May be NULL, then the default allocator will be used + * (av_buffer_alloc()). + * @return newly created buffer pool on success, NULL on error. + */ +AVBufferPool *av_buffer_pool_init(size_t size, AVBufferRef* (*alloc)(size_t size)); + +/** + * Allocate and initialize a buffer pool with a more complex allocator. + * + * @param size size of each buffer in this pool + * @param opaque arbitrary user data used by the allocator + * @param alloc a function that will be used to allocate new buffers when the + * pool is empty. May be NULL, then the default allocator will be + * used (av_buffer_alloc()). + * @param pool_free a function that will be called immediately before the pool + * is freed. I.e. after av_buffer_pool_uninit() is called + * by the caller and all the frames are returned to the pool + * and freed. It is intended to uninitialize the user opaque + * data. May be NULL. + * @return newly created buffer pool on success, NULL on error. + */ +AVBufferPool *av_buffer_pool_init2(size_t size, void *opaque, + AVBufferRef* (*alloc)(void *opaque, size_t size), + void (*pool_free)(void *opaque)); + +/** + * Mark the pool as being available for freeing. It will actually be freed only + * once all the allocated buffers associated with the pool are released. Thus it + * is safe to call this function while some of the allocated buffers are still + * in use. + * + * @param pool pointer to the pool to be freed. It will be set to NULL. + */ +void av_buffer_pool_uninit(AVBufferPool **pool); + +/** + * Allocate a new AVBuffer, reusing an old buffer from the pool when available. + * This function may be called simultaneously from multiple threads. + * + * @return a reference to the new buffer on success, NULL on error. + */ +AVBufferRef *av_buffer_pool_get(AVBufferPool *pool); + +/** + * Query the original opaque parameter of an allocated buffer in the pool. + * + * @param ref a buffer reference to a buffer returned by av_buffer_pool_get. + * @return the opaque parameter set by the buffer allocator function of the + * buffer pool. + * + * @note the opaque parameter of ref is used by the buffer pool implementation, + * therefore you have to use this function to access the original opaque + * parameter of an allocated buffer. + */ +void *av_buffer_pool_buffer_get_opaque(const AVBufferRef *ref); + +/** + * @} + */ + +#endif /* AVUTIL_BUFFER_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/camellia.h b/deps/ffmpeg/macos/include/libavutil/camellia.h new file mode 100644 index 0000000..9678710 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/camellia.h @@ -0,0 +1,70 @@ +/* + * An implementation of the CAMELLIA algorithm as mentioned in RFC3713 + * Copyright (c) 2014 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CAMELLIA_H +#define AVUTIL_CAMELLIA_H + +#include + + +/** + * @file + * @brief Public header for libavutil CAMELLIA algorithm + * @defgroup lavu_camellia CAMELLIA + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_camellia_size; + +struct AVCAMELLIA; + +/** + * Allocate an AVCAMELLIA context + * To free the struct: av_free(ptr) + */ +struct AVCAMELLIA *av_camellia_alloc(void); + +/** + * Initialize an AVCAMELLIA context. + * + * @param ctx an AVCAMELLIA context + * @param key a key of 16, 24, 32 bytes used for encryption/decryption + * @param key_bits number of keybits: possible are 128, 192, 256 + */ +int av_camellia_init(struct AVCAMELLIA *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVCAMELLIA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_camellia_crypt(struct AVCAMELLIA *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt); + +/** + * @} + */ +#endif /* AVUTIL_CAMELLIA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/cast5.h b/deps/ffmpeg/macos/include/libavutil/cast5.h new file mode 100644 index 0000000..ad5b347 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/cast5.h @@ -0,0 +1,80 @@ +/* + * An implementation of the CAST128 algorithm as mentioned in RFC2144 + * Copyright (c) 2014 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CAST5_H +#define AVUTIL_CAST5_H + +#include + + +/** + * @file + * @brief Public header for libavutil CAST5 algorithm + * @defgroup lavu_cast5 CAST5 + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_cast5_size; + +struct AVCAST5; + +/** + * Allocate an AVCAST5 context + * To free the struct: av_free(ptr) + */ +struct AVCAST5 *av_cast5_alloc(void); +/** + * Initialize an AVCAST5 context. + * + * @param ctx an AVCAST5 context + * @param key a key of 5,6,...16 bytes used for encryption/decryption + * @param key_bits number of keybits: possible are 40,48,...,128 + * @return 0 on success, less than 0 on failure + */ +int av_cast5_init(struct AVCAST5 *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, ECB mode only + * + * @param ctx an AVCAST5 context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_cast5_crypt(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVCAST5 context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_cast5_crypt2(struct AVCAST5 *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); +/** + * @} + */ +#endif /* AVUTIL_CAST5_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/channel_layout.h b/deps/ffmpeg/macos/include/libavutil/channel_layout.h new file mode 100644 index 0000000..3a96c2d --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/channel_layout.h @@ -0,0 +1,751 @@ +/* + * Copyright (c) 2006 Michael Niedermayer + * Copyright (c) 2008 Peter Ross + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CHANNEL_LAYOUT_H +#define AVUTIL_CHANNEL_LAYOUT_H + +#include +#include + +#include "version.h" +#include "attributes.h" + +/** + * @file + * @ingroup lavu_audio_channels + * Public libavutil channel layout APIs header. + */ + + +/** + * @defgroup lavu_audio_channels Audio channels + * @ingroup lavu_audio + * + * Audio channel layout utility functions + * + * @{ + */ + +enum AVChannel { + ///< Invalid channel index + AV_CHAN_NONE = -1, + AV_CHAN_FRONT_LEFT, + AV_CHAN_FRONT_RIGHT, + AV_CHAN_FRONT_CENTER, + AV_CHAN_LOW_FREQUENCY, + AV_CHAN_BACK_LEFT, + AV_CHAN_BACK_RIGHT, + AV_CHAN_FRONT_LEFT_OF_CENTER, + AV_CHAN_FRONT_RIGHT_OF_CENTER, + AV_CHAN_BACK_CENTER, + AV_CHAN_SIDE_LEFT, + AV_CHAN_SIDE_RIGHT, + AV_CHAN_TOP_CENTER, + AV_CHAN_TOP_FRONT_LEFT, + AV_CHAN_TOP_FRONT_CENTER, + AV_CHAN_TOP_FRONT_RIGHT, + AV_CHAN_TOP_BACK_LEFT, + AV_CHAN_TOP_BACK_CENTER, + AV_CHAN_TOP_BACK_RIGHT, + /** Stereo downmix. */ + AV_CHAN_STEREO_LEFT = 29, + /** See above. */ + AV_CHAN_STEREO_RIGHT, + AV_CHAN_WIDE_LEFT, + AV_CHAN_WIDE_RIGHT, + AV_CHAN_SURROUND_DIRECT_LEFT, + AV_CHAN_SURROUND_DIRECT_RIGHT, + AV_CHAN_LOW_FREQUENCY_2, + AV_CHAN_TOP_SIDE_LEFT, + AV_CHAN_TOP_SIDE_RIGHT, + AV_CHAN_BOTTOM_FRONT_CENTER, + AV_CHAN_BOTTOM_FRONT_LEFT, + AV_CHAN_BOTTOM_FRONT_RIGHT, + AV_CHAN_SIDE_SURROUND_LEFT, ///< +90 degrees, Lss, SiL + AV_CHAN_SIDE_SURROUND_RIGHT, ///< -90 degrees, Rss, SiR + AV_CHAN_TOP_SURROUND_LEFT, ///< +110 degrees, Lvs, TpLS + AV_CHAN_TOP_SURROUND_RIGHT, ///< -110 degrees, Rvs, TpRS + + /** Channel is empty can be safely skipped. */ + AV_CHAN_UNUSED = 0x200, + + /** Channel contains data, but its position is unknown. */ + AV_CHAN_UNKNOWN = 0x300, + + /** + * Range of channels between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END represent Ambisonic components using the ACN system. + * + * Given a channel id `` between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the ACN index of the channel `` is + * ` = - AV_CHAN_AMBISONIC_BASE`. + * + * @note these values are only used for AV_CHANNEL_ORDER_CUSTOM channel + * orderings, the AV_CHANNEL_ORDER_AMBISONIC ordering orders the channels + * implicitly by their position in the stream. + */ + AV_CHAN_AMBISONIC_BASE = 0x400, + // leave space for 1024 ids, which correspond to maximum order-32 harmonics, + // which should be enough for the foreseeable use cases + AV_CHAN_AMBISONIC_END = 0x7ff, +}; + +enum AVChannelOrder { + /** + * Only the channel count is specified, without any further information + * about the channel order. + */ + AV_CHANNEL_ORDER_UNSPEC, + /** + * The native channel order, i.e. the channels are in the same order in + * which they are defined in the AVChannel enum. This supports up to 63 + * different channels. + */ + AV_CHANNEL_ORDER_NATIVE, + /** + * The channel order does not correspond to any other predefined order and + * is stored as an explicit map. For example, this could be used to support + * layouts with 64 or more channels, or with empty/skipped (AV_CHAN_UNUSED) + * channels at arbitrary positions. + */ + AV_CHANNEL_ORDER_CUSTOM, + /** + * The audio is represented as the decomposition of the sound field into + * spherical harmonics. Each channel corresponds to a single expansion + * component. Channels are ordered according to ACN (Ambisonic Channel + * Number). + * + * The channel with the index n in the stream contains the spherical + * harmonic of degree l and order m given by + * @code{.unparsed} + * l = floor(sqrt(n)), + * m = n - l * (l + 1). + * @endcode + * + * Conversely given a spherical harmonic of degree l and order m, the + * corresponding channel index n is given by + * @code{.unparsed} + * n = l * (l + 1) + m. + * @endcode + * + * Normalization is assumed to be SN3D (Schmidt Semi-Normalization) + * as defined in AmbiX format $ 2.1. + */ + AV_CHANNEL_ORDER_AMBISONIC, + /** + * Number of channel orders, not part of ABI/API + */ + FF_CHANNEL_ORDER_NB +}; + + +/** + * @defgroup channel_masks Audio channel masks + * + * A channel layout is a 64-bits integer with a bit set for every channel. + * The number of bits set must be equal to the number of channels. + * The value 0 means that the channel layout is not known. + * @note this data structure is not powerful enough to handle channels + * combinations that have the same channel multiple times, such as + * dual-mono. + * + * @{ + */ +#define AV_CH_FRONT_LEFT (1ULL << AV_CHAN_FRONT_LEFT ) +#define AV_CH_FRONT_RIGHT (1ULL << AV_CHAN_FRONT_RIGHT ) +#define AV_CH_FRONT_CENTER (1ULL << AV_CHAN_FRONT_CENTER ) +#define AV_CH_LOW_FREQUENCY (1ULL << AV_CHAN_LOW_FREQUENCY ) +#define AV_CH_BACK_LEFT (1ULL << AV_CHAN_BACK_LEFT ) +#define AV_CH_BACK_RIGHT (1ULL << AV_CHAN_BACK_RIGHT ) +#define AV_CH_FRONT_LEFT_OF_CENTER (1ULL << AV_CHAN_FRONT_LEFT_OF_CENTER ) +#define AV_CH_FRONT_RIGHT_OF_CENTER (1ULL << AV_CHAN_FRONT_RIGHT_OF_CENTER) +#define AV_CH_BACK_CENTER (1ULL << AV_CHAN_BACK_CENTER ) +#define AV_CH_SIDE_LEFT (1ULL << AV_CHAN_SIDE_LEFT ) +#define AV_CH_SIDE_RIGHT (1ULL << AV_CHAN_SIDE_RIGHT ) +#define AV_CH_TOP_CENTER (1ULL << AV_CHAN_TOP_CENTER ) +#define AV_CH_TOP_FRONT_LEFT (1ULL << AV_CHAN_TOP_FRONT_LEFT ) +#define AV_CH_TOP_FRONT_CENTER (1ULL << AV_CHAN_TOP_FRONT_CENTER ) +#define AV_CH_TOP_FRONT_RIGHT (1ULL << AV_CHAN_TOP_FRONT_RIGHT ) +#define AV_CH_TOP_BACK_LEFT (1ULL << AV_CHAN_TOP_BACK_LEFT ) +#define AV_CH_TOP_BACK_CENTER (1ULL << AV_CHAN_TOP_BACK_CENTER ) +#define AV_CH_TOP_BACK_RIGHT (1ULL << AV_CHAN_TOP_BACK_RIGHT ) +#define AV_CH_STEREO_LEFT (1ULL << AV_CHAN_STEREO_LEFT ) +#define AV_CH_STEREO_RIGHT (1ULL << AV_CHAN_STEREO_RIGHT ) +#define AV_CH_WIDE_LEFT (1ULL << AV_CHAN_WIDE_LEFT ) +#define AV_CH_WIDE_RIGHT (1ULL << AV_CHAN_WIDE_RIGHT ) +#define AV_CH_SURROUND_DIRECT_LEFT (1ULL << AV_CHAN_SURROUND_DIRECT_LEFT ) +#define AV_CH_SURROUND_DIRECT_RIGHT (1ULL << AV_CHAN_SURROUND_DIRECT_RIGHT) +#define AV_CH_LOW_FREQUENCY_2 (1ULL << AV_CHAN_LOW_FREQUENCY_2 ) +#define AV_CH_TOP_SIDE_LEFT (1ULL << AV_CHAN_TOP_SIDE_LEFT ) +#define AV_CH_TOP_SIDE_RIGHT (1ULL << AV_CHAN_TOP_SIDE_RIGHT ) +#define AV_CH_BOTTOM_FRONT_CENTER (1ULL << AV_CHAN_BOTTOM_FRONT_CENTER ) +#define AV_CH_BOTTOM_FRONT_LEFT (1ULL << AV_CHAN_BOTTOM_FRONT_LEFT ) +#define AV_CH_BOTTOM_FRONT_RIGHT (1ULL << AV_CHAN_BOTTOM_FRONT_RIGHT ) +#define AV_CH_SIDE_SURROUND_LEFT (1ULL << AV_CHAN_SIDE_SURROUND_LEFT ) +#define AV_CH_SIDE_SURROUND_RIGHT (1ULL << AV_CHAN_SIDE_SURROUND_RIGHT ) +#define AV_CH_TOP_SURROUND_LEFT (1ULL << AV_CHAN_TOP_SURROUND_LEFT ) +#define AV_CH_TOP_SURROUND_RIGHT (1ULL << AV_CHAN_TOP_SURROUND_RIGHT ) + +/** + * @} + * @defgroup channel_mask_c Audio channel layouts + * @{ + * */ +#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) +#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_3POINT1POINT2 (AV_CH_LAYOUT_3POINT1|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1_WIDE_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_5POINT1POINT2_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_CUBE (AV_CH_LAYOUT_QUAD|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1POINT4_BACK (AV_CH_LAYOUT_5POINT1POINT2_BACK|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1POINT2 (AV_CH_LAYOUT_7POINT1|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_7POINT1POINT4_BACK (AV_CH_LAYOUT_7POINT1POINT2|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT2POINT3 (AV_CH_LAYOUT_7POINT1POINT2|AV_CH_TOP_BACK_CENTER|AV_CH_LOW_FREQUENCY_2) +#define AV_CH_LAYOUT_9POINT1POINT4_BACK (AV_CH_LAYOUT_7POINT1POINT4_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXADECAGONAL (AV_CH_LAYOUT_OCTAGONAL|AV_CH_WIDE_LEFT|AV_CH_WIDE_RIGHT|AV_CH_TOP_BACK_LEFT|AV_CH_TOP_BACK_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_FRONT_LEFT|AV_CH_TOP_FRONT_RIGHT) +#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) +#define AV_CH_LAYOUT_22POINT2 (AV_CH_LAYOUT_7POINT1POINT4_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER|AV_CH_BACK_CENTER|AV_CH_LOW_FREQUENCY_2|AV_CH_TOP_FRONT_CENTER|AV_CH_TOP_CENTER|AV_CH_TOP_SIDE_LEFT|AV_CH_TOP_SIDE_RIGHT|AV_CH_TOP_BACK_CENTER|AV_CH_BOTTOM_FRONT_CENTER|AV_CH_BOTTOM_FRONT_LEFT|AV_CH_BOTTOM_FRONT_RIGHT) + +#define AV_CH_LAYOUT_7POINT1_TOP_BACK AV_CH_LAYOUT_5POINT1POINT2_BACK + +enum AVMatrixEncoding { + AV_MATRIX_ENCODING_NONE, + AV_MATRIX_ENCODING_DOLBY, + AV_MATRIX_ENCODING_DPLII, + AV_MATRIX_ENCODING_DPLIIX, + AV_MATRIX_ENCODING_DPLIIZ, + AV_MATRIX_ENCODING_DOLBYEX, + AV_MATRIX_ENCODING_DOLBYHEADPHONE, + AV_MATRIX_ENCODING_NB +}; + +/** + * @} + */ + +/** + * An AVChannelCustom defines a single channel within a custom order layout + * + * Unlike most structures in FFmpeg, sizeof(AVChannelCustom) is a part of the + * public ABI. + * + * No new fields may be added to it without a major version bump. + */ +typedef struct AVChannelCustom { + enum AVChannel id; + char name[16]; + void *opaque; +} AVChannelCustom; + +/** + * An AVChannelLayout holds information about the channel layout of audio data. + * + * A channel layout here is defined as a set of channels ordered in a specific + * way (unless the channel order is AV_CHANNEL_ORDER_UNSPEC, in which case an + * AVChannelLayout carries only the channel count). + * All orders may be treated as if they were AV_CHANNEL_ORDER_UNSPEC by + * ignoring everything but the channel count, as long as av_channel_layout_check() + * considers they are valid. + * + * Unlike most structures in FFmpeg, sizeof(AVChannelLayout) is a part of the + * public ABI and may be used by the caller. E.g. it may be allocated on stack + * or embedded in caller-defined structs. + * + * AVChannelLayout can be initialized as follows: + * - default initialization with {0}, followed by setting all used fields + * correctly; + * - by assigning one of the predefined AV_CHANNEL_LAYOUT_* initializers; + * - with a constructor function, such as av_channel_layout_default(), + * av_channel_layout_from_mask() or av_channel_layout_from_string(). + * + * The channel layout must be unitialized with av_channel_layout_uninit() + * + * Copying an AVChannelLayout via assigning is forbidden, + * av_channel_layout_copy() must be used instead (and its return value should + * be checked) + * + * No new fields may be added to it without a major version bump, except for + * new elements of the union fitting in sizeof(uint64_t). + */ +typedef struct AVChannelLayout { + /** + * Channel order used in this layout. + * This is a mandatory field. + */ + enum AVChannelOrder order; + + /** + * Number of channels in this layout. Mandatory field. + */ + int nb_channels; + + /** + * Details about which channels are present in this layout. + * For AV_CHANNEL_ORDER_UNSPEC, this field is undefined and must not be + * used. + */ + union { + /** + * This member must be used for AV_CHANNEL_ORDER_NATIVE, and may be used + * for AV_CHANNEL_ORDER_AMBISONIC to signal non-diegetic channels. + * It is a bitmask, where the position of each set bit means that the + * AVChannel with the corresponding value is present. + * + * I.e. when (mask & (1 << AV_CHAN_FOO)) is non-zero, then AV_CHAN_FOO + * is present in the layout. Otherwise it is not present. + * + * @note when a channel layout using a bitmask is constructed or + * modified manually (i.e. not using any of the av_channel_layout_* + * functions), the code doing it must ensure that the number of set bits + * is equal to nb_channels. + */ + uint64_t mask; + /** + * This member must be used when the channel order is + * AV_CHANNEL_ORDER_CUSTOM. It is a nb_channels-sized array, with each + * element signalling the presence of the AVChannel with the + * corresponding value in map[i].id. + * + * I.e. when map[i].id is equal to AV_CHAN_FOO, then AV_CH_FOO is the + * i-th channel in the audio data. + * + * When map[i].id is in the range between AV_CHAN_AMBISONIC_BASE and + * AV_CHAN_AMBISONIC_END (inclusive), the channel contains an ambisonic + * component with ACN index (as defined above) + * n = map[i].id - AV_CHAN_AMBISONIC_BASE. + * + * map[i].name may be filled with a 0-terminated string, in which case + * it will be used for the purpose of identifying the channel with the + * convenience functions below. Otherise it must be zeroed. + */ + AVChannelCustom *map; + } u; + + /** + * For some private data of the user. + */ + void *opaque; +} AVChannelLayout; + +/** + * Macro to define native channel layouts + * + * @note This doesn't use designated initializers for compatibility with C++ 17 and older. + */ +#define AV_CHANNEL_LAYOUT_MASK(nb, m) \ + { /* .order */ AV_CHANNEL_ORDER_NATIVE, \ + /* .nb_channels */ (nb), \ + /* .u.mask */ { m }, \ + /* .opaque */ NULL } + +/** + * @name Common pre-defined channel layouts + * @{ + */ +#define AV_CHANNEL_LAYOUT_MONO AV_CHANNEL_LAYOUT_MASK(1, AV_CH_LAYOUT_MONO) +#define AV_CHANNEL_LAYOUT_STEREO AV_CHANNEL_LAYOUT_MASK(2, AV_CH_LAYOUT_STEREO) +#define AV_CHANNEL_LAYOUT_2POINT1 AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_2POINT1) +#define AV_CHANNEL_LAYOUT_2_1 AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_2_1) +#define AV_CHANNEL_LAYOUT_SURROUND AV_CHANNEL_LAYOUT_MASK(3, AV_CH_LAYOUT_SURROUND) +#define AV_CHANNEL_LAYOUT_3POINT1 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_3POINT1) +#define AV_CHANNEL_LAYOUT_4POINT0 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_4POINT0) +#define AV_CHANNEL_LAYOUT_4POINT1 AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_4POINT1) +#define AV_CHANNEL_LAYOUT_2_2 AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_2_2) +#define AV_CHANNEL_LAYOUT_QUAD AV_CHANNEL_LAYOUT_MASK(4, AV_CH_LAYOUT_QUAD) +#define AV_CHANNEL_LAYOUT_5POINT0 AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_5POINT0) +#define AV_CHANNEL_LAYOUT_5POINT1 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_5POINT1) +#define AV_CHANNEL_LAYOUT_5POINT0_BACK AV_CHANNEL_LAYOUT_MASK(5, AV_CH_LAYOUT_5POINT0_BACK) +#define AV_CHANNEL_LAYOUT_5POINT1_BACK AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_5POINT1_BACK) +#define AV_CHANNEL_LAYOUT_6POINT0 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_6POINT0) +#define AV_CHANNEL_LAYOUT_6POINT0_FRONT AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_6POINT0_FRONT) +#define AV_CHANNEL_LAYOUT_3POINT1POINT2 AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_3POINT1POINT2) +#define AV_CHANNEL_LAYOUT_HEXAGONAL AV_CHANNEL_LAYOUT_MASK(6, AV_CH_LAYOUT_HEXAGONAL) +#define AV_CHANNEL_LAYOUT_6POINT1 AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1) +#define AV_CHANNEL_LAYOUT_6POINT1_BACK AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1_BACK) +#define AV_CHANNEL_LAYOUT_6POINT1_FRONT AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_6POINT1_FRONT) +#define AV_CHANNEL_LAYOUT_7POINT0 AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_7POINT0) +#define AV_CHANNEL_LAYOUT_7POINT0_FRONT AV_CHANNEL_LAYOUT_MASK(7, AV_CH_LAYOUT_7POINT0_FRONT) +#define AV_CHANNEL_LAYOUT_7POINT1 AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1) +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1_WIDE) +#define AV_CHANNEL_LAYOUT_7POINT1_WIDE_BACK AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_7POINT1_WIDE_BACK) +#define AV_CHANNEL_LAYOUT_5POINT1POINT2_BACK AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_5POINT1POINT2_BACK) +#define AV_CHANNEL_LAYOUT_OCTAGONAL AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_OCTAGONAL) +#define AV_CHANNEL_LAYOUT_CUBE AV_CHANNEL_LAYOUT_MASK(8, AV_CH_LAYOUT_CUBE) +#define AV_CHANNEL_LAYOUT_5POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(10, AV_CH_LAYOUT_5POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_7POINT1POINT2 AV_CHANNEL_LAYOUT_MASK(10, AV_CH_LAYOUT_7POINT1POINT2) +#define AV_CHANNEL_LAYOUT_7POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(12, AV_CH_LAYOUT_7POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_7POINT2POINT3 AV_CHANNEL_LAYOUT_MASK(12, AV_CH_LAYOUT_7POINT2POINT3) +#define AV_CHANNEL_LAYOUT_9POINT1POINT4_BACK AV_CHANNEL_LAYOUT_MASK(14, AV_CH_LAYOUT_9POINT1POINT4_BACK) +#define AV_CHANNEL_LAYOUT_HEXADECAGONAL AV_CHANNEL_LAYOUT_MASK(16, AV_CH_LAYOUT_HEXADECAGONAL) +#define AV_CHANNEL_LAYOUT_STEREO_DOWNMIX AV_CHANNEL_LAYOUT_MASK(2, AV_CH_LAYOUT_STEREO_DOWNMIX) +#define AV_CHANNEL_LAYOUT_22POINT2 AV_CHANNEL_LAYOUT_MASK(24, AV_CH_LAYOUT_22POINT2) + +#define AV_CHANNEL_LAYOUT_7POINT1_TOP_BACK AV_CHANNEL_LAYOUT_5POINT1POINT2_BACK + +#define AV_CHANNEL_LAYOUT_AMBISONIC_FIRST_ORDER \ + { /* .order */ AV_CHANNEL_ORDER_AMBISONIC, \ + /* .nb_channels */ 4, \ + /* .u.mask */ { 0 }, \ + /* .opaque */ NULL } +/** @} */ + +struct AVBPrint; + +/** + * Get a human readable string in an abbreviated form describing a given channel. + * This is the inverse function of @ref av_channel_from_string(). + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @param channel the AVChannel whose name to get + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_name(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_name(). + * + * @note the string will be appended to the bprint buffer. + */ +void av_channel_name_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * Get a human readable string describing a given channel. + * + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @param channel the AVChannel whose description to get + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_description(char *buf, size_t buf_size, enum AVChannel channel); + +/** + * bprint variant of av_channel_description(). + * + * @note the string will be appended to the bprint buffer. + */ +void av_channel_description_bprint(struct AVBPrint *bp, enum AVChannel channel_id); + +/** + * This is the inverse function of @ref av_channel_name(). + * + * @return the channel with the given name + * AV_CHAN_NONE when name does not identify a known channel + */ +enum AVChannel av_channel_from_string(const char *name); + +/** + * Initialize a custom channel layout with the specified number of channels. + * The channel map will be allocated and the designation of all channels will + * be set to AV_CHAN_UNKNOWN. + * + * This is only a convenience helper function, a custom channel layout can also + * be constructed without using this. + * + * @param channel_layout the layout structure to be initialized + * @param nb_channels the number of channels + * + * @return 0 on success + * AVERROR(EINVAL) if the number of channels <= 0 + * AVERROR(ENOMEM) if the channel map could not be allocated + */ +int av_channel_layout_custom_init(AVChannelLayout *channel_layout, int nb_channels); + +/** + * Initialize a native channel layout from a bitmask indicating which channels + * are present. + * + * @param channel_layout the layout structure to be initialized + * @param mask bitmask describing the channel layout + * + * @return 0 on success + * AVERROR(EINVAL) for invalid mask values + */ +int av_channel_layout_from_mask(AVChannelLayout *channel_layout, uint64_t mask); + +/** + * Initialize a channel layout from a given string description. + * The input string can be represented by: + * - the formal channel layout name (returned by av_channel_layout_describe()) + * - single or multiple channel names (returned by av_channel_name(), eg. "FL", + * or concatenated with "+", each optionally containing a custom name after + * a "@", eg. "FL@Left+FR@Right+LFE") + * - a decimal or hexadecimal value of a native channel layout (eg. "4" or "0x4") + * - the number of channels with default layout (eg. "4c") + * - the number of unordered channels (eg. "4C" or "4 channels") + * - the ambisonic order followed by optional non-diegetic channels (eg. + * "ambisonic 2+stereo") + * On error, the channel layout will remain uninitialized, but not necessarily + * untouched. + * + * @param channel_layout uninitialized channel layout for the result + * @param str string describing the channel layout + * @return 0 on success parsing the channel layout + * AVERROR(EINVAL) if an invalid channel layout string was provided + * AVERROR(ENOMEM) if there was not enough memory + */ +int av_channel_layout_from_string(AVChannelLayout *channel_layout, + const char *str); + +/** + * Get the default channel layout for a given number of channels. + * + * @param ch_layout the layout structure to be initialized + * @param nb_channels number of channels + */ +void av_channel_layout_default(AVChannelLayout *ch_layout, int nb_channels); + +/** + * Iterate over all standard channel layouts. + * + * @param opaque a pointer where libavutil will store the iteration state. Must + * point to NULL to start the iteration. + * + * @return the standard channel layout or NULL when the iteration is + * finished + */ +const AVChannelLayout *av_channel_layout_standard(void **opaque); + +/** + * Free any allocated data in the channel layout and reset the channel + * count to 0. + * + * @param channel_layout the layout structure to be uninitialized + */ +void av_channel_layout_uninit(AVChannelLayout *channel_layout); + +/** + * Make a copy of a channel layout. This differs from just assigning src to dst + * in that it allocates and copies the map for AV_CHANNEL_ORDER_CUSTOM. + * + * @note the destination channel_layout will be always uninitialized before copy. + * + * @param dst destination channel layout + * @param src source channel layout + * @return 0 on success, a negative AVERROR on error. + */ +int av_channel_layout_copy(AVChannelLayout *dst, const AVChannelLayout *src); + +/** + * Get a human-readable string describing the channel layout properties. + * The string will be in the same format that is accepted by + * @ref av_channel_layout_from_string(), allowing to rebuild the same + * channel layout, except for opaque pointers. + * + * @param channel_layout channel layout to be described + * @param buf pre-allocated buffer where to put the generated string + * @param buf_size size in bytes of the buffer. + * @return amount of bytes needed to hold the output string, or a negative AVERROR + * on failure. If the returned value is bigger than buf_size, then the + * string was truncated. + */ +int av_channel_layout_describe(const AVChannelLayout *channel_layout, + char *buf, size_t buf_size); + +/** + * bprint variant of av_channel_layout_describe(). + * + * @note the string will be appended to the bprint buffer. + * @return 0 on success, or a negative AVERROR value on failure. + */ +int av_channel_layout_describe_bprint(const AVChannelLayout *channel_layout, + struct AVBPrint *bp); + +/** + * Get the channel with the given index in a channel layout. + * + * @param channel_layout input channel layout + * @param idx index of the channel + * @return channel with the index idx in channel_layout on success or + * AV_CHAN_NONE on failure (if idx is not valid or the channel order is + * unspecified) + */ +enum AVChannel +av_channel_layout_channel_from_index(const AVChannelLayout *channel_layout, unsigned int idx); + +/** + * Get the index of a given channel in a channel layout. In case multiple + * channels are found, only the first match will be returned. + * + * @param channel_layout input channel layout + * @param channel the channel whose index to obtain + * @return index of channel in channel_layout on success or a negative number if + * channel is not present in channel_layout. + */ +int av_channel_layout_index_from_channel(const AVChannelLayout *channel_layout, + enum AVChannel channel); + +/** + * Get the index in a channel layout of a channel described by the given string. + * In case multiple channels are found, only the first match will be returned. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @param name string describing the channel whose index to obtain + * @return a channel index described by the given string, or a negative AVERROR + * value. + */ +int av_channel_layout_index_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Get a channel described by the given string. + * + * This function accepts channel names in the same format as + * @ref av_channel_from_string(). + * + * @param channel_layout input channel layout + * @param name string describing the channel to obtain + * @return a channel described by the given string in channel_layout on success + * or AV_CHAN_NONE on failure (if the string is not valid or the channel + * order is unspecified) + */ +enum AVChannel +av_channel_layout_channel_from_string(const AVChannelLayout *channel_layout, + const char *name); + +/** + * Find out what channels from a given set are present in a channel layout, + * without regard for their positions. + * + * @param channel_layout input channel layout + * @param mask a combination of AV_CH_* representing a set of channels + * @return a bitfield representing all the channels from mask that are present + * in channel_layout + */ +uint64_t av_channel_layout_subset(const AVChannelLayout *channel_layout, + uint64_t mask); + +/** + * Check whether a channel layout is valid, i.e. can possibly describe audio + * data. + * + * @param channel_layout input channel layout + * @return 1 if channel_layout is valid, 0 otherwise. + */ +int av_channel_layout_check(const AVChannelLayout *channel_layout); + +/** + * Check whether two channel layouts are semantically the same, i.e. the same + * channels are present on the same positions in both. + * + * If one of the channel layouts is AV_CHANNEL_ORDER_UNSPEC, while the other is + * not, they are considered to be unequal. If both are AV_CHANNEL_ORDER_UNSPEC, + * they are considered equal iff the channel counts are the same in both. + * + * @param chl input channel layout + * @param chl1 input channel layout + * @return 0 if chl and chl1 are equal, 1 if they are not equal. A negative + * AVERROR code if one or both are invalid. + */ +int av_channel_layout_compare(const AVChannelLayout *chl, const AVChannelLayout *chl1); + +/** + * Return the order if the layout is n-th order standard-order ambisonic. + * The presence of optional extra non-diegetic channels at the end is not taken + * into account. + * + * @param channel_layout input channel layout + * @return the order of the layout, a negative error code otherwise. + */ +int av_channel_layout_ambisonic_order(const AVChannelLayout *channel_layout); + +/** + * The conversion must be lossless. + */ +#define AV_CHANNEL_LAYOUT_RETYPE_FLAG_LOSSLESS (1 << 0) + +/** + * The specified retype target order is ignored and the simplest possible + * (canonical) order is used for which the input layout can be losslessy + * represented. + */ +#define AV_CHANNEL_LAYOUT_RETYPE_FLAG_CANONICAL (1 << 1) + +/** + * Change the AVChannelOrder of a channel layout. + * + * Change of AVChannelOrder can be either lossless or lossy. In case of a + * lossless conversion all the channel designations and the associated channel + * names (if any) are kept. On a lossy conversion the channel names and channel + * designations might be lost depending on the capabilities of the desired + * AVChannelOrder. Note that some conversions are simply not possible in which + * case this function returns AVERROR(ENOSYS). + * + * The following conversions are supported: + * + * Any -> Custom : Always possible, always lossless. + * Any -> Unspecified: Always possible, lossless if channel designations + * are all unknown and channel names are not used, lossy otherwise. + * Custom -> Ambisonic : Possible if it contains ambisonic channels with + * optional non-diegetic channels in the end. Lossy if the channels have + * custom names, lossless otherwise. + * Custom -> Native : Possible if it contains native channels in native + * order. Lossy if the channels have custom names, lossless otherwise. + * + * On error this function keeps the original channel layout untouched. + * + * @param channel_layout channel layout which will be changed + * @param order the desired channel layout order + * @param flags a combination of AV_CHANNEL_LAYOUT_RETYPE_FLAG_* constants + * @return 0 if the conversion was successful and lossless or if the channel + * layout was already in the desired order + * >0 if the conversion was successful but lossy + * AVERROR(ENOSYS) if the conversion was not possible (or would be + * lossy and AV_CHANNEL_LAYOUT_RETYPE_FLAG_LOSSLESS was specified) + * AVERROR(EINVAL), AVERROR(ENOMEM) on error + */ +int av_channel_layout_retype(AVChannelLayout *channel_layout, enum AVChannelOrder order, int flags); + +/** + * @} + */ + +#endif /* AVUTIL_CHANNEL_LAYOUT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/common.h b/deps/ffmpeg/macos/include/libavutil/common.h new file mode 100644 index 0000000..3b830da --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/common.h @@ -0,0 +1,589 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * common internal and external API header + */ + +#ifndef AVUTIL_COMMON_H +#define AVUTIL_COMMON_H + +#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS) && !defined(UINT64_C) +#error missing -D__STDC_CONSTANT_MACROS / #define __STDC_CONSTANT_MACROS +#endif + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "attributes.h" +#include "error.h" +#include "macros.h" +#include "version.h" + +#ifdef HAVE_AV_CONFIG_H +# include "config.h" +# include "intmath.h" +# include "internal.h" +#else +# include "mem.h" +#endif /* HAVE_AV_CONFIG_H */ + +//rounded division & shift +#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) +/* assume b>0 */ +#define ROUNDED_DIV(a,b) (((a)>=0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) +/* Fast a/(1<=0 and b>=0 */ +#define AV_CEIL_RSHIFT(a,b) (!av_builtin_constant_p(b) ? -((-(a)) >> (b)) \ + : ((a) + (1<<(b)) - 1) >> (b)) +/* Backwards compat. */ +#define FF_CEIL_RSHIFT AV_CEIL_RSHIFT + +#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b)) +#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b)) + +/** + * Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they + * are not representable as absolute values of their type. This is the same + * as with *abs() + * @see FFNABS() + */ +#define FFABS(a) ((a) >= 0 ? (a) : (-(a))) +#define FFSIGN(a) ((a) > 0 ? 1 : -1) + +/** + * Negative Absolute value. + * this works for all integers of all types. + * As with many macros, this evaluates its argument twice, it thus must not have + * a sideeffect, that is FFNABS(x++) has undefined behavior. + */ +#define FFNABS(a) ((a) <= 0 ? (a) : (-(a))) + +/** + * Unsigned Absolute value. + * This takes the absolute value of a signed int and returns it as a unsigned. + * This also works with INT_MIN which would otherwise not be representable + * As with many macros, this evaluates its argument twice. + */ +#define FFABSU(a) ((a) <= 0 ? -(unsigned)(a) : (unsigned)(a)) +#define FFABS64U(a) ((a) <= 0 ? -(uint64_t)(a) : (uint64_t)(a)) + +/* misc math functions */ + +#ifndef av_ceil_log2 +# define av_ceil_log2 av_ceil_log2_c +#endif +#ifndef av_clip +# define av_clip av_clip_c +#endif +#ifndef av_clip64 +# define av_clip64 av_clip64_c +#endif +#ifndef av_clip_uint8 +# define av_clip_uint8 av_clip_uint8_c +#endif +#ifndef av_clip_int8 +# define av_clip_int8 av_clip_int8_c +#endif +#ifndef av_clip_uint16 +# define av_clip_uint16 av_clip_uint16_c +#endif +#ifndef av_clip_int16 +# define av_clip_int16 av_clip_int16_c +#endif +#ifndef av_clipl_int32 +# define av_clipl_int32 av_clipl_int32_c +#endif +#ifndef av_clip_intp2 +# define av_clip_intp2 av_clip_intp2_c +#endif +#ifndef av_clip_uintp2 +# define av_clip_uintp2 av_clip_uintp2_c +#endif +#ifndef av_sat_add32 +# define av_sat_add32 av_sat_add32_c +#endif +#ifndef av_sat_dadd32 +# define av_sat_dadd32 av_sat_dadd32_c +#endif +#ifndef av_sat_sub32 +# define av_sat_sub32 av_sat_sub32_c +#endif +#ifndef av_sat_dsub32 +# define av_sat_dsub32 av_sat_dsub32_c +#endif +#ifndef av_sat_add64 +# define av_sat_add64 av_sat_add64_c +#endif +#ifndef av_sat_sub64 +# define av_sat_sub64 av_sat_sub64_c +#endif +#ifndef av_clipf +# define av_clipf av_clipf_c +#endif +#ifndef av_clipd +# define av_clipd av_clipd_c +#endif +#ifndef av_zero_extend +# define av_zero_extend av_zero_extend_c +#endif +#ifndef av_popcount +# define av_popcount av_popcount_c +#endif +#ifndef av_popcount64 +# define av_popcount64 av_popcount64_c +#endif +#ifndef av_parity +# define av_parity av_parity_c +#endif + +#ifndef av_log2 +av_const int av_log2(unsigned v); +#endif + +#ifndef av_log2_16bit +av_const int av_log2_16bit(unsigned v); +#endif + +/** + * Clip a signed integer value into the amin-amax range. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const int av_clip_c(int a, int amin, int amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + if (a < amin) return amin; + else if (a > amax) return amax; + else return a; +} + +/** + * Clip a signed 64bit integer value into the amin-amax range. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const int64_t av_clip64_c(int64_t a, int64_t amin, int64_t amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + if (a < amin) return amin; + else if (a > amax) return amax; + else return a; +} + +/** + * Clip a signed integer value into the 0-255 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint8_t av_clip_uint8_c(int a) +{ + if (a&(~0xFF)) return (~a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -128,127 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int8_t av_clip_int8_c(int a) +{ + if ((a+0x80U) & ~0xFF) return (a>>31) ^ 0x7F; + else return a; +} + +/** + * Clip a signed integer value into the 0-65535 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint16_t av_clip_uint16_c(int a) +{ + if (a&(~0xFFFF)) return (~a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -32768,32767 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int16_t av_clip_int16_c(int a) +{ + if ((a+0x8000U) & ~0xFFFF) return (a>>31) ^ 0x7FFF; + else return a; +} + +/** + * Clip a signed 64-bit integer value into the -2147483648,2147483647 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) +{ + if ((a+UINT64_C(0x80000000)) & ~UINT64_C(0xFFFFFFFF)) return (int32_t)((a>>63) ^ 0x7FFFFFFF); + else return (int32_t)a; +} + +/** + * Clip a signed integer into the -(2^p),(2^p-1) range. + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const int av_clip_intp2_c(int a, int p) +{ + if (((unsigned)a + (1U << p)) & ~((2U << p) - 1)) + return (a >> 31) ^ ((1 << p) - 1); + else + return a; +} + +/** + * Clip a signed integer to an unsigned power of two range. + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) +{ + if (a & ~((1U<> 31 & ((1U<= 2 + if (p > 31) abort(); +#endif + return a & ((1U << p) - 1); +} + +#if FF_API_MOD_UINTP2 +#ifndef av_mod_uintp2 +# define av_mod_uintp2 av_mod_uintp2_c +#endif +attribute_deprecated +static av_always_inline av_const unsigned av_mod_uintp2_c(unsigned a, unsigned p) +{ + return av_zero_extend_c(a, p); +} +#endif + +/** + * Add two signed 32-bit values with saturation. + * + * @param a one value + * @param b another value + * @return sum with signed saturation + */ +static av_always_inline int av_sat_add32_c(int a, int b) +{ + return av_clipl_int32((int64_t)a + b); +} + +/** + * Add a doubled value to another value with saturation at both stages. + * + * @param a first value + * @param b value doubled and added to a + * @return sum sat(a + sat(2*b)) with signed saturation + */ +static av_always_inline int av_sat_dadd32_c(int a, int b) +{ + return av_sat_add32(a, av_sat_add32(b, b)); +} + +/** + * Subtract two signed 32-bit values with saturation. + * + * @param a one value + * @param b another value + * @return difference with signed saturation + */ +static av_always_inline int av_sat_sub32_c(int a, int b) +{ + return av_clipl_int32((int64_t)a - b); +} + +/** + * Subtract a doubled value from another value with saturation at both stages. + * + * @param a first value + * @param b value doubled and subtracted from a + * @return difference sat(a - sat(2*b)) with signed saturation + */ +static av_always_inline int av_sat_dsub32_c(int a, int b) +{ + return av_sat_sub32(a, av_sat_add32(b, b)); +} + +/** + * Add two signed 64-bit values with saturation. + * + * @param a one value + * @param b another value + * @return sum with signed saturation + */ +static av_always_inline int64_t av_sat_add64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || AV_HAS_BUILTIN(__builtin_add_overflow) + int64_t tmp; + return !__builtin_add_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else + int64_t s = a+(uint64_t)b; + if ((int64_t)(a^b | ~s^b) >= 0) + return INT64_MAX ^ (b >> 63); + return s; +#endif +} + +/** + * Subtract two signed 64-bit values with saturation. + * + * @param a one value + * @param b another value + * @return difference with signed saturation + */ +static av_always_inline int64_t av_sat_sub64_c(int64_t a, int64_t b) { +#if (!defined(__INTEL_COMPILER) && AV_GCC_VERSION_AT_LEAST(5,1)) || AV_HAS_BUILTIN(__builtin_sub_overflow) + int64_t tmp; + return !__builtin_sub_overflow(a, b, &tmp) ? tmp : (tmp < 0 ? INT64_MAX : INT64_MIN); +#else + if (b <= 0 && a >= INT64_MAX + b) + return INT64_MAX; + if (b >= 0 && a <= INT64_MIN + b) + return INT64_MIN; + return a - b; +#endif +} + +/** + * Clip a float value into the amin-amax range. + * If a is nan or -inf amin will be returned. + * If a is +inf amax will be returned. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const float av_clipf_c(float a, float amin, float amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + return FFMIN(FFMAX(a, amin), amax); +} + +/** + * Clip a double value into the amin-amax range. + * If a is nan or -inf amin will be returned. + * If a is +inf amax will be returned. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const double av_clipd_c(double a, double amin, double amax) +{ +#if defined(HAVE_AV_CONFIG_H) && defined(ASSERT_LEVEL) && ASSERT_LEVEL >= 2 + if (amin > amax) abort(); +#endif + return FFMIN(FFMAX(a, amin), amax); +} + +/** Compute ceil(log2(x)). + * @param x value used to compute ceil(log2(x)) + * @return computed ceiling of log2(x) + */ +static av_always_inline av_const int av_ceil_log2_c(int x) +{ + return av_log2((x - 1U) << 1); +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount_c(uint32_t x) +{ + x -= (x >> 1) & 0x55555555; + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0F0F0F0F; + x += x >> 8; + return (x + (x >> 16)) & 0x3F; +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount64_c(uint64_t x) +{ + return av_popcount((uint32_t)x) + av_popcount((uint32_t)(x >> 32)); +} + +static av_always_inline av_const int av_parity_c(uint32_t v) +{ + return av_popcount(v) & 1; +} + +/** + * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_BYTE Expression reading one byte from the input. + * Evaluated up to 7 times (4 for the currently + * assigned Unicode range). With a memory buffer + * input, this could be *ptr++, or if you want to make sure + * that *ptr stops at the end of a NULL terminated string then + * *ptr ? *ptr++ : 0 + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + * + * @warning ERROR should not contain a loop control statement which + * could interact with the internal while loop, and should force an + * exit from the macro code (e.g. through a goto or a return) in order + * to prevent undefined results. + */ +#define GET_UTF8(val, GET_BYTE, ERROR)\ + val= (GET_BYTE);\ + {\ + uint32_t top = (val & 128) >> 1;\ + if ((val & 0xc0) == 0x80 || val >= 0xFE)\ + {ERROR}\ + while (val & top) {\ + unsigned int tmp = (GET_BYTE) - 128;\ + if(tmp>>6)\ + {ERROR}\ + val= (val<<6) + tmp;\ + top <<= 5;\ + }\ + val &= (top << 1) - 1;\ + } + +/** + * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_16BIT Expression returning two bytes of UTF-16 data converted + * to native byte order. Evaluated one or two times. + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + */ +#define GET_UTF16(val, GET_16BIT, ERROR)\ + val = (GET_16BIT);\ + {\ + unsigned int hi = val - 0xD800;\ + if (hi < 0x800) {\ + val = (GET_16BIT) - 0xDC00;\ + if (val > 0x3FFU || hi > 0x3FFU)\ + {ERROR}\ + val += (hi<<10) + 0x10000;\ + }\ + }\ + +/** + * @def PUT_UTF8(val, tmp, PUT_BYTE) + * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint8_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_BYTE. + * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. + * It could be a function or a statement, and uses tmp as the input byte. + * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be + * executed up to 4 times for values in the valid UTF-8 range and up to + * 7 times in the general case, depending on the length of the converted + * Unicode character. + */ +#define PUT_UTF8(val, tmp, PUT_BYTE)\ + {\ + int bytes, shift;\ + uint32_t in = val;\ + if (in < 0x80) {\ + tmp = in;\ + PUT_BYTE\ + } else {\ + bytes = (av_log2(in) + 4) / 5;\ + shift = (bytes - 1) * 6;\ + tmp = (256 - (256 >> bytes)) | (in >> shift);\ + PUT_BYTE\ + while (shift >= 6) {\ + shift -= 6;\ + tmp = 0x80 | ((in >> shift) & 0x3f);\ + PUT_BYTE\ + }\ + }\ + } + +/** + * @def PUT_UTF16(val, tmp, PUT_16BIT) + * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint16_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_16BIT. + * @param PUT_16BIT writes the converted UTF-16 data to any proper destination + * in desired endianness. It could be a function or a statement, and uses tmp + * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" + * PUT_BYTE will be executed 1 or 2 times depending on input character. + */ +#define PUT_UTF16(val, tmp, PUT_16BIT)\ + {\ + uint32_t in = val;\ + if (in < 0x10000) {\ + tmp = in;\ + PUT_16BIT\ + } else {\ + tmp = 0xD800 | ((in - 0x10000) >> 10);\ + PUT_16BIT\ + tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\ + PUT_16BIT\ + }\ + }\ + +#endif /* AVUTIL_COMMON_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/cpu.h b/deps/ffmpeg/macos/include/libavutil/cpu.h new file mode 100644 index 0000000..ba6c234 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/cpu.h @@ -0,0 +1,145 @@ +/* + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CPU_H +#define AVUTIL_CPU_H + +#include +#include "version.h" + +#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */ + + /* lower 16 bits - CPU features */ +#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX +#define AV_CPU_FLAG_MMXEXT 0x0002 ///< SSE integer functions or AMD MMX ext +#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext +#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW +#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions +#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions +#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) +#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt +#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions +#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster + ///< than regular MMX/SSE (e.g. Core1) +#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions +#define AV_CPU_FLAG_SSSE3SLOW 0x4000000 ///< SSSE3 supported, but usually not faster +#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower +#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions +#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions +#define AV_CPU_FLAG_AESNI 0x80000 ///< Advanced Encryption Standard functions +#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used +#define AV_CPU_FLAG_AVXSLOW 0x8000000 ///< AVX supported, but slow when using YMM registers (e.g. Bulldozer) +#define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions +#define AV_CPU_FLAG_FMA4 0x0800 ///< Bulldozer FMA4 functions +#define AV_CPU_FLAG_CMOV 0x1000 ///< supports cmov instruction +#define AV_CPU_FLAG_AVX2 0x8000 ///< AVX2 functions: requires OS support even if YMM registers aren't used +#define AV_CPU_FLAG_FMA3 0x10000 ///< Haswell FMA3 functions +#define AV_CPU_FLAG_BMI1 0x20000 ///< Bit Manipulation Instruction Set 1 +#define AV_CPU_FLAG_BMI2 0x40000 ///< Bit Manipulation Instruction Set 2 +#define AV_CPU_FLAG_AVX512 0x100000 ///< AVX-512 functions: requires OS support even if YMM/ZMM registers aren't used +#define AV_CPU_FLAG_AVX512ICL 0x200000 ///< F/CD/BW/DQ/VL/VNNI/IFMA/VBMI/VBMI2/VPOPCNTDQ/BITALG/GFNI/VAES/VPCLMULQDQ +#define AV_CPU_FLAG_SLOW_GATHER 0x2000000 ///< CPU has slow gathers. + +#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard +#define AV_CPU_FLAG_VSX 0x0002 ///< ISA 2.06 +#define AV_CPU_FLAG_POWER8 0x0004 ///< ISA 2.07 + +#define AV_CPU_FLAG_ARMV5TE (1 << 0) +#define AV_CPU_FLAG_ARMV6 (1 << 1) +#define AV_CPU_FLAG_ARMV6T2 (1 << 2) +#define AV_CPU_FLAG_VFP (1 << 3) +#define AV_CPU_FLAG_VFPV3 (1 << 4) +#define AV_CPU_FLAG_NEON (1 << 5) +#define AV_CPU_FLAG_ARMV8 (1 << 6) +#define AV_CPU_FLAG_VFP_VM (1 << 7) ///< VFPv2 vector mode, deprecated in ARMv7-A and unavailable in various CPUs implementations +#define AV_CPU_FLAG_DOTPROD (1 << 8) +#define AV_CPU_FLAG_I8MM (1 << 9) +#define AV_CPU_FLAG_SETEND (1 <<16) + +#define AV_CPU_FLAG_MMI (1 << 0) +#define AV_CPU_FLAG_MSA (1 << 1) + +//Loongarch SIMD extension. +#define AV_CPU_FLAG_LSX (1 << 0) +#define AV_CPU_FLAG_LASX (1 << 1) + +// RISC-V extensions +#define AV_CPU_FLAG_RVI (1 << 0) ///< I (full GPR bank) +#if FF_API_RISCV_FD_ZBA +#define AV_CPU_FLAG_RVF (1 << 1) ///< F (single precision FP) +#define AV_CPU_FLAG_RVD (1 << 2) ///< D (double precision FP) +#endif +#define AV_CPU_FLAG_RVV_I32 (1 << 3) ///< Vectors of 8/16/32-bit int's */ +#define AV_CPU_FLAG_RVV_F32 (1 << 4) ///< Vectors of float's */ +#define AV_CPU_FLAG_RVV_I64 (1 << 5) ///< Vectors of 64-bit int's */ +#define AV_CPU_FLAG_RVV_F64 (1 << 6) ///< Vectors of double's +#define AV_CPU_FLAG_RVB_BASIC (1 << 7) ///< Basic bit-manipulations +#if FF_API_RISCV_FD_ZBA +#define AV_CPU_FLAG_RVB_ADDR (1 << 8) ///< Address bit-manipulations +#endif +#define AV_CPU_FLAG_RV_ZVBB (1 << 9) ///< Vector basic bit-manipulations +#define AV_CPU_FLAG_RV_MISALIGNED (1 <<10) ///< Fast misaligned accesses +#define AV_CPU_FLAG_RVB (1 <<11) ///< B (bit manipulations) + +/** + * Return the flags which specify extensions supported by the CPU. + * The returned value is affected by av_force_cpu_flags() if that was used + * before. So av_get_cpu_flags() can easily be used in an application to + * detect the enabled cpu flags. + */ +int av_get_cpu_flags(void); + +/** + * Disables cpu detection and forces the specified flags. + * -1 is a special case that disables forcing of specific flags. + */ +void av_force_cpu_flags(int flags); + +/** + * Parse CPU caps from a string and update the given AV_CPU_* flags based on that. + * + * @return negative on error. + */ +int av_parse_cpu_caps(unsigned *flags, const char *s); + +/** + * @return the number of logical CPU cores present. + */ +int av_cpu_count(void); + +/** + * Overrides cpu count detection and forces the specified count. + * Count < 1 disables forcing of specific count. + */ +void av_cpu_force_count(int count); + +/** + * Get the maximum data alignment that may be required by FFmpeg. + * + * Note that this is affected by the build configuration and the CPU flags mask, + * so e.g. if the CPU supports AVX, but libavutil has been built with + * --disable-avx or the AV_CPU_FLAG_AVX flag has been disabled through + * av_set_cpu_flags_mask(), then this function will behave as if AVX is not + * present. + */ +size_t av_cpu_max_align(void); + +#endif /* AVUTIL_CPU_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/crc.h b/deps/ffmpeg/macos/include/libavutil/crc.h new file mode 100644 index 0000000..7f59812 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/crc.h @@ -0,0 +1,102 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_crc32 + * Public header for CRC hash function implementation. + */ + +#ifndef AVUTIL_CRC_H +#define AVUTIL_CRC_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_crc32 CRC + * @ingroup lavu_hash + * CRC (Cyclic Redundancy Check) hash function implementation. + * + * This module supports numerous CRC polynomials, in addition to the most + * widely used CRC-32-IEEE. See @ref AVCRCId for a list of available + * polynomials. + * + * @{ + */ + +typedef uint32_t AVCRC; + +typedef enum { + AV_CRC_8_ATM, + AV_CRC_16_ANSI, + AV_CRC_16_CCITT, + AV_CRC_32_IEEE, + AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ + AV_CRC_16_ANSI_LE, /*< reversed bitorder version of AV_CRC_16_ANSI */ + AV_CRC_24_IEEE, + AV_CRC_8_EBU, + AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ +}AVCRCId; + +/** + * Initialize a CRC table. + * @param ctx must be an array of size sizeof(AVCRC)*257 or sizeof(AVCRC)*1024 + * @param le If 1, the lowest bit represents the coefficient for the highest + * exponent of the corresponding polynomial (both for poly and + * actual CRC). + * If 0, you must swap the CRC parameter and the result of av_crc + * if you need the standard representation (can be simplified in + * most cases to e.g. bswap16): + * av_bswap32(crc << (32-bits)) + * @param bits number of bits for the CRC + * @param poly generator polynomial without the x**bits coefficient, in the + * representation as specified by le + * @param ctx_size size of ctx in bytes + * @return <0 on failure + */ +int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size); + +/** + * Get an initialized standard CRC table. + * @param crc_id ID of a standard CRC + * @return a pointer to the CRC table or NULL on failure + */ +const AVCRC *av_crc_get_table(AVCRCId crc_id); + +/** + * Calculate the CRC of a block. + * @param ctx initialized AVCRC array (see av_crc_init()) + * @param crc CRC of previous blocks if any or initial value for CRC + * @param buffer buffer whose CRC to calculate + * @param length length of the buffer + * @return CRC updated with the data from the given block + * + * @see av_crc_init() "le" parameter + */ +uint32_t av_crc(const AVCRC *ctx, uint32_t crc, + const uint8_t *buffer, size_t length) av_pure; + +/** + * @} + */ + +#endif /* AVUTIL_CRC_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/csp.h b/deps/ffmpeg/macos/include/libavutil/csp.h new file mode 100644 index 0000000..73bce52 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/csp.h @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2015 Kevin Wheatley + * Copyright (c) 2016 Ronald S. Bultje + * Copyright (c) 2023 Leo Izen + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CSP_H +#define AVUTIL_CSP_H + +#include "pixfmt.h" +#include "rational.h" + +/** + * @file + * Colorspace value utility functions for libavutil. + * @ingroup lavu_math_csp + * @author Ronald S. Bultje + * @author Leo Izen + * @author Kevin Wheatley + */ + +/** + * @defgroup lavu_math_csp Colorspace Utility + * @ingroup lavu_math + * @{ + */ + +/** + * Struct containing luma coefficients to be used for RGB to YUV/YCoCg, or similar + * calculations. + */ +typedef struct AVLumaCoefficients { + AVRational cr, cg, cb; +} AVLumaCoefficients; + +/** + * Struct containing chromaticity x and y values for the standard CIE 1931 + * chromaticity definition. + */ +typedef struct AVCIExy { + AVRational x, y; +} AVCIExy; + +/** + * Struct defining the red, green, and blue primary locations in terms of CIE + * 1931 chromaticity x and y. + */ +typedef struct AVPrimaryCoefficients { + AVCIExy r, g, b; +} AVPrimaryCoefficients; + +/** + * Struct defining white point location in terms of CIE 1931 chromaticity x + * and y. + */ +typedef AVCIExy AVWhitepointCoefficients; + +/** + * Struct that contains both white point location and primaries location, providing + * the complete description of a color gamut. + */ +typedef struct AVColorPrimariesDesc { + AVWhitepointCoefficients wp; + AVPrimaryCoefficients prim; +} AVColorPrimariesDesc; + +/** + * Function pointer representing a double -> double transfer function that performs + * an EOTF transfer inversion. This function outputs linear light. + */ +typedef double (*av_csp_trc_function)(double); + +/** + * Retrieves the Luma coefficients necessary to construct a conversion matrix + * from an enum constant describing the colorspace. + * @param csp An enum constant indicating YUV or similar colorspace. + * @return The Luma coefficients associated with that colorspace, or NULL + * if the constant is unknown to libavutil. + */ +const AVLumaCoefficients *av_csp_luma_coeffs_from_avcsp(enum AVColorSpace csp); + +/** + * Retrieves a complete gamut description from an enum constant describing the + * color primaries. + * @param prm An enum constant indicating primaries + * @return A description of the colorspace gamut associated with that enum + * constant, or NULL if the constant is unknown to libavutil. + */ +const AVColorPrimariesDesc *av_csp_primaries_desc_from_id(enum AVColorPrimaries prm); + +/** + * Detects which enum AVColorPrimaries constant corresponds to the given complete + * gamut description. + * @see enum AVColorPrimaries + * @param prm A description of the colorspace gamut + * @return The enum constant associated with this gamut, or + * AVCOL_PRI_UNSPECIFIED if no clear match can be idenitified. + */ +enum AVColorPrimaries av_csp_primaries_id_from_desc(const AVColorPrimariesDesc *prm); + +/** + * Determine a suitable 'gamma' value to match the supplied + * AVColorTransferCharacteristic. + * + * See Apple Technical Note TN2257 (https://developer.apple.com/library/mac/technotes/tn2257/_index.html) + * + * This function returns the gamma exponent for the OETF. For example, sRGB is approximated + * by gamma 2.2, not by gamma 0.45455. + * + * @return Will return an approximation to the simple gamma function matching + * the supplied Transfer Characteristic, Will return 0.0 for any + * we cannot reasonably match against. + */ +double av_csp_approximate_trc_gamma(enum AVColorTransferCharacteristic trc); + +/** + * Determine the function needed to apply the given + * AVColorTransferCharacteristic to linear input. + * + * The function returned should expect a nominal domain and range of [0.0-1.0] + * values outside of this range maybe valid depending on the chosen + * characteristic function. + * + * @return Will return pointer to the function matching the + * supplied Transfer Characteristic. If unspecified will + * return NULL: + */ +av_csp_trc_function av_csp_trc_func_from_id(enum AVColorTransferCharacteristic trc); + +/** + * @} + */ + +#endif /* AVUTIL_CSP_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/des.h b/deps/ffmpeg/macos/include/libavutil/des.h new file mode 100644 index 0000000..3a3e6fa --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/des.h @@ -0,0 +1,81 @@ +/* + * DES encryption/decryption + * Copyright (c) 2007 Reimar Doeffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DES_H +#define AVUTIL_DES_H + +#include + +/** + * @defgroup lavu_des DES + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVDES { + uint64_t round_keys[3][16]; + int triple_des; +} AVDES; + +/** + * Allocate an AVDES context. + */ +AVDES *av_des_alloc(void); + +/** + * @brief Initializes an AVDES context. + * + * @param d pointer to a AVDES structure to initialize + * @param key pointer to the key to use + * @param key_bits must be 64 or 192 + * @param decrypt 0 for encryption/CBC-MAC, 1 for decryption + * @return zero on success, negative value otherwise + */ +int av_des_init(struct AVDES *d, const uint8_t *key, int key_bits, int decrypt); + +/** + * @brief Encrypts / decrypts using the DES algorithm. + * + * @param d pointer to the AVDES structure + * @param dst destination array, can be equal to src, must be 8-byte aligned + * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used, + * must be 8-byte aligned + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_des_crypt(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @brief Calculates CBC-MAC using the DES algorithm. + * + * @param d pointer to the AVDES structure + * @param dst destination array, can be equal to src, must be 8-byte aligned + * @param src source array, can be equal to dst, must be 8-byte aligned, may be NULL + * @param count number of 8 byte blocks + */ +void av_des_mac(struct AVDES *d, uint8_t *dst, const uint8_t *src, int count); + +/** + * @} + */ + +#endif /* AVUTIL_DES_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/detection_bbox.h b/deps/ffmpeg/macos/include/libavutil/detection_bbox.h new file mode 100644 index 0000000..0119880 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/detection_bbox.h @@ -0,0 +1,108 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DETECTION_BBOX_H +#define AVUTIL_DETECTION_BBOX_H + +#include "rational.h" +#include "avassert.h" +#include "frame.h" + +typedef struct AVDetectionBBox { + /** + * Distance in pixels from the left/top edge of the frame, + * together with width and height, defining the bounding box. + */ + int x; + int y; + int w; + int h; + +#define AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE 64 + + /** + * Detect result with confidence + */ + char detect_label[AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]; + AVRational detect_confidence; + + /** + * At most 4 classifications based on the detected bounding box. + * For example, we can get max 4 different attributes with 4 different + * DNN models on one bounding box. + * classify_count is zero if no classification. + */ +#define AV_NUM_DETECTION_BBOX_CLASSIFY 4 + uint32_t classify_count; + char classify_labels[AV_NUM_DETECTION_BBOX_CLASSIFY][AV_DETECTION_BBOX_LABEL_NAME_MAX_SIZE]; + AVRational classify_confidences[AV_NUM_DETECTION_BBOX_CLASSIFY]; +} AVDetectionBBox; + +typedef struct AVDetectionBBoxHeader { + /** + * Information about how the bounding box is generated. + * for example, the DNN model name. + */ + char source[256]; + + /** + * Number of bounding boxes in the array. + */ + uint32_t nb_bboxes; + + /** + * Offset in bytes from the beginning of this structure at which + * the array of bounding boxes starts. + */ + size_t bboxes_offset; + + /** + * Size of each bounding box in bytes. + */ + size_t bbox_size; +} AVDetectionBBoxHeader; + +/* + * Get the bounding box at the specified {@code idx}. Must be between 0 and nb_bboxes. + */ +static av_always_inline AVDetectionBBox * +av_get_detection_bbox(const AVDetectionBBoxHeader *header, unsigned int idx) +{ + av_assert0(idx < header->nb_bboxes); + return (AVDetectionBBox *)((uint8_t *)header + header->bboxes_offset + + idx * header->bbox_size); +} + +/** + * Allocates memory for AVDetectionBBoxHeader, plus an array of {@code nb_bboxes} + * AVDetectionBBox, and initializes the variables. + * Can be freed with a normal av_free() call. + * + * @param nb_bboxes number of AVDetectionBBox structures to allocate + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here. + */ +AVDetectionBBoxHeader *av_detection_bbox_alloc(uint32_t nb_bboxes, size_t *out_size); + +/** + * Allocates memory for AVDetectionBBoxHeader, plus an array of {@code nb_bboxes} + * AVDetectionBBox, in the given AVFrame {@code frame} as AVFrameSideData of type + * AV_FRAME_DATA_DETECTION_BBOXES and initializes the variables. + */ +AVDetectionBBoxHeader *av_detection_bbox_create_side_data(AVFrame *frame, uint32_t nb_bboxes); +#endif diff --git a/deps/ffmpeg/macos/include/libavutil/dict.h b/deps/ffmpeg/macos/include/libavutil/dict.h new file mode 100644 index 0000000..713c9e3 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/dict.h @@ -0,0 +1,241 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Public dictionary API. + * @deprecated + * AVDictionary is provided for compatibility with libav. It is both in + * implementation as well as API inefficient. It does not scale and is + * extremely slow with large dictionaries. + * It is recommended that new code uses our tree container from tree.c/h + * where applicable, which uses AVL trees to achieve O(log n) performance. + */ + +#ifndef AVUTIL_DICT_H +#define AVUTIL_DICT_H + +#include + +/** + * @addtogroup lavu_dict AVDictionary + * @ingroup lavu_data + * + * @brief Simple key:value store + * + * @{ + * Dictionaries are used for storing key-value pairs. + * + * - To **create an AVDictionary**, simply pass an address of a NULL + * pointer to av_dict_set(). NULL can be used as an empty dictionary + * wherever a pointer to an AVDictionary is required. + * - To **insert an entry**, use av_dict_set(). + * - Use av_dict_get() to **retrieve an entry**. + * - To **iterate over all entries**, use av_dict_iterate(). + * - In order to **free the dictionary and all its contents**, use av_dict_free(). + * + @code + AVDictionary *d = NULL; // "create" an empty dictionary + AVDictionaryEntry *t = NULL; + + av_dict_set(&d, "foo", "bar", 0); // add an entry + + char *k = av_strdup("key"); // if your strings are already allocated, + char *v = av_strdup("value"); // you can avoid copying them like this + av_dict_set(&d, k, v, AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL); + + while ((t = av_dict_iterate(d, t))) { + <....> // iterate over all entries in d + } + av_dict_free(&d); + @endcode + */ + +/** + * @name AVDictionary Flags + * Flags that influence behavior of the matching of keys or insertion to the dictionary. + * @{ + */ +#define AV_DICT_MATCH_CASE 1 /**< Only get an entry with exact-case key match. Only relevant in av_dict_get(). */ +#define AV_DICT_IGNORE_SUFFIX 2 /**< Return first entry in a dictionary whose first part corresponds to the search key, + ignoring the suffix of the found key string. Only relevant in av_dict_get(). */ +#define AV_DICT_DONT_STRDUP_KEY 4 /**< Take ownership of a key that's been + allocated with av_malloc() or another memory allocation function. */ +#define AV_DICT_DONT_STRDUP_VAL 8 /**< Take ownership of a value that's been + allocated with av_malloc() or another memory allocation function. */ +#define AV_DICT_DONT_OVERWRITE 16 /**< Don't overwrite existing entries. */ +#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no + delimiter is added, the strings are simply concatenated. */ +#define AV_DICT_MULTIKEY 64 /**< Allow to store several equal keys in the dictionary */ +/** + * @} + */ + +typedef struct AVDictionaryEntry { + char *key; + char *value; +} AVDictionaryEntry; + +typedef struct AVDictionary AVDictionary; + +/** + * Get a dictionary entry with matching key. + * + * The returned entry key or value must not be changed, or it will + * cause undefined behavior. + * + * @param prev Set to the previous matching element to find the next. + * If set to NULL the first matching element is returned. + * @param key Matching key + * @param flags A collection of AV_DICT_* flags controlling how the + * entry is retrieved + * + * @return Found entry or NULL in case no matching entry was found in the dictionary + */ +AVDictionaryEntry *av_dict_get(const AVDictionary *m, const char *key, + const AVDictionaryEntry *prev, int flags); + +/** + * Iterate over a dictionary + * + * Iterates through all entries in the dictionary. + * + * @warning The returned AVDictionaryEntry key/value must not be changed. + * + * @warning As av_dict_set() invalidates all previous entries returned + * by this function, it must not be called while iterating over the dict. + * + * Typical usage: + * @code + * const AVDictionaryEntry *e = NULL; + * while ((e = av_dict_iterate(m, e))) { + * // ... + * } + * @endcode + * + * @param m The dictionary to iterate over + * @param prev Pointer to the previous AVDictionaryEntry, NULL initially + * + * @retval AVDictionaryEntry* The next element in the dictionary + * @retval NULL No more elements in the dictionary + */ +const AVDictionaryEntry *av_dict_iterate(const AVDictionary *m, + const AVDictionaryEntry *prev); + +/** + * Get number of entries in dictionary. + * + * @param m dictionary + * @return number of entries in dictionary + */ +int av_dict_count(const AVDictionary *m); + +/** + * Set the given entry in *pm, overwriting an existing entry. + * + * Note: If AV_DICT_DONT_STRDUP_KEY or AV_DICT_DONT_STRDUP_VAL is set, + * these arguments will be freed on error. + * + * @warning Adding a new entry to a dictionary invalidates all existing entries + * previously returned with av_dict_get() or av_dict_iterate(). + * + * @param pm Pointer to a pointer to a dictionary struct. If *pm is NULL + * a dictionary struct is allocated and put in *pm. + * @param key Entry key to add to *pm (will either be av_strduped or added as a new key depending on flags) + * @param value Entry value to add to *pm (will be av_strduped or added as a new key depending on flags). + * Passing a NULL value will cause an existing entry to be deleted. + * + * @return >= 0 on success otherwise an error code <0 + */ +int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags); + +/** + * Convenience wrapper for av_dict_set() that converts the value to a string + * and stores it. + * + * Note: If ::AV_DICT_DONT_STRDUP_KEY is set, key will be freed on error. + */ +int av_dict_set_int(AVDictionary **pm, const char *key, int64_t value, int flags); + +/** + * Parse the key/value pairs list and add the parsed entries to a dictionary. + * + * In case of failure, all the successfully set entries are stored in + * *pm. You may need to manually free the created dictionary. + * + * @param key_val_sep A 0-terminated list of characters used to separate + * key from value + * @param pairs_sep A 0-terminated list of characters used to separate + * two pairs from each other + * @param flags Flags to use when adding to the dictionary. + * ::AV_DICT_DONT_STRDUP_KEY and ::AV_DICT_DONT_STRDUP_VAL + * are ignored since the key/value tokens will always + * be duplicated. + * + * @return 0 on success, negative AVERROR code on failure + */ +int av_dict_parse_string(AVDictionary **pm, const char *str, + const char *key_val_sep, const char *pairs_sep, + int flags); + +/** + * Copy entries from one AVDictionary struct into another. + * + * @note Metadata is read using the ::AV_DICT_IGNORE_SUFFIX flag + * + * @param dst Pointer to a pointer to a AVDictionary struct to copy into. If *dst is NULL, + * this function will allocate a struct for you and put it in *dst + * @param src Pointer to the source AVDictionary struct to copy items from. + * @param flags Flags to use when setting entries in *dst + * + * @return 0 on success, negative AVERROR code on failure. If dst was allocated + * by this function, callers should free the associated memory. + */ +int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags); + +/** + * Free all the memory allocated for an AVDictionary struct + * and all keys and values. + */ +void av_dict_free(AVDictionary **m); + +/** + * Get dictionary entries as a string. + * + * Create a string containing dictionary's entries. + * Such string may be passed back to av_dict_parse_string(). + * @note String is escaped with backslashes ('\'). + * + * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same. + * + * @param[in] m The dictionary + * @param[out] buffer Pointer to buffer that will be allocated with string containg entries. + * Buffer must be freed by the caller when is no longer needed. + * @param[in] key_val_sep Character used to separate key from value + * @param[in] pairs_sep Character used to separate two pairs from each other + * + * @return >= 0 on success, negative on error + */ +int av_dict_get_string(const AVDictionary *m, char **buffer, + const char key_val_sep, const char pairs_sep); + +/** + * @} + */ + +#endif /* AVUTIL_DICT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/display.h b/deps/ffmpeg/macos/include/libavutil/display.h new file mode 100644 index 0000000..50f2b44 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/display.h @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2014 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_display + * Display matrix + */ + +#ifndef AVUTIL_DISPLAY_H +#define AVUTIL_DISPLAY_H + +#include + +/** + * @defgroup lavu_video_display Display transformation matrix functions + * @ingroup lavu_video + * + * The display transformation matrix specifies an affine transformation that + * should be applied to video frames for correct presentation. It is compatible + * with the matrices stored in the ISO/IEC 14496-12 container format. + * + * The data is a 3x3 matrix represented as a 9-element array: + * + * @code{.unparsed} + * | a b u | + * (a, b, u, c, d, v, x, y, w) -> | c d v | + * | x y w | + * @endcode + * + * All numbers are stored in native endianness, as 16.16 fixed-point values, + * except for u, v and w, which are stored as 2.30 fixed-point values. + * + * The transformation maps a point (p, q) in the source (pre-transformation) + * frame to the point (p', q') in the destination (post-transformation) frame as + * follows: + * + * @code{.unparsed} + * | a b u | + * (p, q, 1) . | c d v | = z * (p', q', 1) + * | x y w | + * @endcode + * + * The transformation can also be more explicitly written in components as + * follows: + * + * @code{.unparsed} + * p' = (a * p + c * q + x) / z; + * q' = (b * p + d * q + y) / z; + * z = u * p + v * q + w + * @endcode + * + * @{ + */ + +/** + * Extract the rotation component of the transformation matrix. + * + * @param matrix the transformation matrix + * @return the angle (in degrees) by which the transformation rotates the frame + * counterclockwise. The angle will be in range [-180.0, 180.0], + * or NaN if the matrix is singular. + * + * @note floating point numbers are inherently inexact, so callers are + * recommended to round the return value to nearest integer before use. + */ +double av_display_rotation_get(const int32_t matrix[9]); + +/** + * Initialize a transformation matrix describing a pure clockwise + * rotation by the specified angle (in degrees). + * + * @param[out] matrix a transformation matrix (will be fully overwritten + * by this function) + * @param angle rotation angle in degrees. + */ +void av_display_rotation_set(int32_t matrix[9], double angle); + +/** + * Flip the input matrix horizontally and/or vertically. + * + * @param[in,out] matrix a transformation matrix + * @param hflip whether the matrix should be flipped horizontally + * @param vflip whether the matrix should be flipped vertically + */ +void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip); + +/** + * @} + */ + +#endif /* AVUTIL_DISPLAY_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/dovi_meta.h b/deps/ffmpeg/macos/include/libavutil/dovi_meta.h new file mode 100644 index 0000000..5e8a1e4 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/dovi_meta.h @@ -0,0 +1,396 @@ +/* + * Copyright (c) 2020 Vacing Fang + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * DOVI configuration + */ + + +#ifndef AVUTIL_DOVI_META_H +#define AVUTIL_DOVI_META_H + +#include +#include + +#include "rational.h" +#include "csp.h" + +/* + * DOVI configuration + * ref: dolby-vision-bitstreams-within-the-iso-base-media-file-format-v2.1.2 + dolby-vision-bitstreams-in-mpeg-2-transport-stream-multiplex-v1.2 + * @code + * uint8_t dv_version_major, the major version number that the stream complies with + * uint8_t dv_version_minor, the minor version number that the stream complies with + * uint8_t dv_profile, the Dolby Vision profile + * uint8_t dv_level, the Dolby Vision level + * uint8_t rpu_present_flag + * uint8_t el_present_flag + * uint8_t bl_present_flag + * uint8_t dv_bl_signal_compatibility_id + * uint8_t dv_md_compression, the compression method in use + * @endcode + * + * @note The struct must be allocated with av_dovi_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVDOVIDecoderConfigurationRecord { + uint8_t dv_version_major; + uint8_t dv_version_minor; + uint8_t dv_profile; + uint8_t dv_level; + uint8_t rpu_present_flag; + uint8_t el_present_flag; + uint8_t bl_present_flag; + uint8_t dv_bl_signal_compatibility_id; + uint8_t dv_md_compression; +} AVDOVIDecoderConfigurationRecord; + +enum AVDOVICompression { + AV_DOVI_COMPRESSION_NONE = 0, + AV_DOVI_COMPRESSION_LIMITED = 1, + AV_DOVI_COMPRESSION_RESERVED = 2, + AV_DOVI_COMPRESSION_EXTENDED = 3, +}; + +/** + * Allocate a AVDOVIDecoderConfigurationRecord structure and initialize its + * fields to default values. + * + * @return the newly allocated struct or NULL on failure + */ +AVDOVIDecoderConfigurationRecord *av_dovi_alloc(size_t *size); + +/** + * Dolby Vision RPU data header. + * + * @note sizeof(AVDOVIRpuDataHeader) is not part of the public ABI. + */ +typedef struct AVDOVIRpuDataHeader { + uint8_t rpu_type; + uint16_t rpu_format; + uint8_t vdr_rpu_profile; + uint8_t vdr_rpu_level; + uint8_t chroma_resampling_explicit_filter_flag; + uint8_t coef_data_type; /* informative, lavc always converts to fixed */ + uint8_t coef_log2_denom; + uint8_t vdr_rpu_normalized_idc; + uint8_t bl_video_full_range_flag; + uint8_t bl_bit_depth; /* [8, 16] */ + uint8_t el_bit_depth; /* [8, 16] */ + uint8_t vdr_bit_depth; /* [8, 16] */ + uint8_t spatial_resampling_filter_flag; + uint8_t el_spatial_resampling_filter_flag; + uint8_t disable_residual_flag; + uint8_t ext_mapping_idc_0_4; /* extended base layer inverse mapping indicator */ + uint8_t ext_mapping_idc_5_7; /* reserved */ +} AVDOVIRpuDataHeader; + +enum AVDOVIMappingMethod { + AV_DOVI_MAPPING_POLYNOMIAL = 0, + AV_DOVI_MAPPING_MMR = 1, +}; + +/** + * Coefficients of a piece-wise function. The pieces of the function span the + * value ranges between two adjacent pivot values. + */ +#define AV_DOVI_MAX_PIECES 8 +typedef struct AVDOVIReshapingCurve { + uint8_t num_pivots; /* [2, 9] */ + uint16_t pivots[AV_DOVI_MAX_PIECES + 1]; /* sorted ascending */ + enum AVDOVIMappingMethod mapping_idc[AV_DOVI_MAX_PIECES]; + /* AV_DOVI_MAPPING_POLYNOMIAL */ + uint8_t poly_order[AV_DOVI_MAX_PIECES]; /* [1, 2] */ + int64_t poly_coef[AV_DOVI_MAX_PIECES][3]; /* x^0, x^1, x^2 */ + /* AV_DOVI_MAPPING_MMR */ + uint8_t mmr_order[AV_DOVI_MAX_PIECES]; /* [1, 3] */ + int64_t mmr_constant[AV_DOVI_MAX_PIECES]; + int64_t mmr_coef[AV_DOVI_MAX_PIECES][3/* order - 1 */][7]; +} AVDOVIReshapingCurve; + +enum AVDOVINLQMethod { + AV_DOVI_NLQ_NONE = -1, + AV_DOVI_NLQ_LINEAR_DZ = 0, +}; + +/** + * Coefficients of the non-linear inverse quantization. For the interpretation + * of these, see ETSI GS CCM 001. + */ +typedef struct AVDOVINLQParams { + uint16_t nlq_offset; + uint64_t vdr_in_max; + /* AV_DOVI_NLQ_LINEAR_DZ */ + uint64_t linear_deadzone_slope; + uint64_t linear_deadzone_threshold; +} AVDOVINLQParams; + +/** + * Dolby Vision RPU data mapping parameters. + * + * @note sizeof(AVDOVIDataMapping) is not part of the public ABI. + */ +typedef struct AVDOVIDataMapping { + uint8_t vdr_rpu_id; + uint8_t mapping_color_space; + uint8_t mapping_chroma_format_idc; + AVDOVIReshapingCurve curves[3]; /* per component */ + + /* Non-linear inverse quantization */ + enum AVDOVINLQMethod nlq_method_idc; + uint32_t num_x_partitions; + uint32_t num_y_partitions; + AVDOVINLQParams nlq[3]; /* per component */ + uint16_t nlq_pivots[2]; +} AVDOVIDataMapping; + +/** + * Dolby Vision RPU colorspace metadata parameters. + * + * @note sizeof(AVDOVIColorMetadata) is not part of the public ABI. + */ +typedef struct AVDOVIColorMetadata { + uint8_t dm_metadata_id; + uint8_t scene_refresh_flag; + + /** + * Coefficients of the custom Dolby Vision IPT-PQ matrices. These are to be + * used instead of the matrices indicated by the frame's colorspace tags. + * The output of rgb_to_lms_matrix is to be fed into a BT.2020 LMS->RGB + * matrix based on a Hunt-Pointer-Estevez transform, but without any + * crosstalk. (See the definition of the ICtCp colorspace for more + * information.) + */ + AVRational ycc_to_rgb_matrix[9]; /* before PQ linearization */ + AVRational ycc_to_rgb_offset[3]; /* input offset of neutral value */ + AVRational rgb_to_lms_matrix[9]; /* after PQ linearization */ + + /** + * Extra signal metadata (see Dolby patents for more info). + */ + uint16_t signal_eotf; + uint16_t signal_eotf_param0; + uint16_t signal_eotf_param1; + uint32_t signal_eotf_param2; + uint8_t signal_bit_depth; + uint8_t signal_color_space; + uint8_t signal_chroma_format; + uint8_t signal_full_range_flag; /* [0, 3] */ + uint16_t source_min_pq; + uint16_t source_max_pq; + uint16_t source_diagonal; +} AVDOVIColorMetadata; + +typedef struct AVDOVIDmLevel1 { + /* Per-frame brightness metadata */ + uint16_t min_pq; + uint16_t max_pq; + uint16_t avg_pq; +} AVDOVIDmLevel1; + +typedef struct AVDOVIDmLevel2 { + /* Usually derived from level 8 (at different levels) */ + uint16_t target_max_pq; + uint16_t trim_slope; + uint16_t trim_offset; + uint16_t trim_power; + uint16_t trim_chroma_weight; + uint16_t trim_saturation_gain; + int16_t ms_weight; +} AVDOVIDmLevel2; + +typedef struct AVDOVIDmLevel3 { + uint16_t min_pq_offset; + uint16_t max_pq_offset; + uint16_t avg_pq_offset; +} AVDOVIDmLevel3; + +typedef struct AVDOVIDmLevel4 { + uint16_t anchor_pq; + uint16_t anchor_power; +} AVDOVIDmLevel4; + +typedef struct AVDOVIDmLevel5 { + /* Active area definition */ + uint16_t left_offset; + uint16_t right_offset; + uint16_t top_offset; + uint16_t bottom_offset; +} AVDOVIDmLevel5; + +typedef struct AVDOVIDmLevel6 { + /* Static HDR10 metadata */ + uint16_t max_luminance; + uint16_t min_luminance; + uint16_t max_cll; + uint16_t max_fall; +} AVDOVIDmLevel6; + +typedef struct AVDOVIDmLevel8 { + /* Extended version of level 2 */ + uint8_t target_display_index; + uint16_t trim_slope; + uint16_t trim_offset; + uint16_t trim_power; + uint16_t trim_chroma_weight; + uint16_t trim_saturation_gain; + uint16_t ms_weight; + uint16_t target_mid_contrast; + uint16_t clip_trim; + uint8_t saturation_vector_field[6]; + uint8_t hue_vector_field[6]; +} AVDOVIDmLevel8; + +typedef struct AVDOVIDmLevel9 { + /* Source display characteristics */ + uint8_t source_primary_index; + AVColorPrimariesDesc source_display_primaries; +} AVDOVIDmLevel9; + +typedef struct AVDOVIDmLevel10 { + /* Target display characteristics */ + uint8_t target_display_index; + uint16_t target_max_pq; + uint16_t target_min_pq; + uint8_t target_primary_index; + AVColorPrimariesDesc target_display_primaries; +} AVDOVIDmLevel10; + +typedef struct AVDOVIDmLevel11 { + uint8_t content_type; + uint8_t whitepoint; + uint8_t reference_mode_flag; + uint8_t sharpness; + uint8_t noise_reduction; + uint8_t mpeg_noise_reduction; + uint8_t frame_rate_conversion; + uint8_t brightness; + uint8_t color; +} AVDOVIDmLevel11; + +typedef struct AVDOVIDmLevel254 { + /* DMv2 info block, always present in samples with DMv2 metadata */ + uint8_t dm_mode; + uint8_t dm_version_index; +} AVDOVIDmLevel254; + +typedef struct AVDOVIDmLevel255 { + /* Debug block, not really used in samples */ + uint8_t dm_run_mode; + uint8_t dm_run_version; + uint8_t dm_debug[4]; +} AVDOVIDmLevel255; + +/** + * Dolby Vision metadata extension block. Dynamic extension blocks may change + * from frame to frame, while static blocks are constant throughout the entire + * sequence. + * + * @note sizeof(AVDOVIDmData) is not part of the public API. + */ +typedef struct AVDOVIDmData { + uint8_t level; /* [1, 255] */ + union { + AVDOVIDmLevel1 l1; /* dynamic */ + AVDOVIDmLevel2 l2; /* dynamic, may appear multiple times */ + AVDOVIDmLevel3 l3; /* dynamic */ + AVDOVIDmLevel4 l4; /* dynamic */ + AVDOVIDmLevel5 l5; /* dynamic */ + AVDOVIDmLevel6 l6; /* static */ + /* level 7 is currently unused */ + AVDOVIDmLevel8 l8; /* dynamic, may appear multiple times */ + AVDOVIDmLevel9 l9; /* dynamic */ + AVDOVIDmLevel10 l10; /* static, may appear multiple times */ + AVDOVIDmLevel11 l11; /* dynamic */ + AVDOVIDmLevel254 l254; /* static */ + AVDOVIDmLevel255 l255; /* static */ + }; +} AVDOVIDmData; + +/** + * Combined struct representing a combination of header, mapping and color + * metadata, for attaching to frames as side data. + * + * @note The struct must be allocated with av_dovi_metadata_alloc() and + * its size is not a part of the public ABI. + */ + +typedef struct AVDOVIMetadata { + /** + * Offset in bytes from the beginning of this structure at which the + * respective structs start. + */ + size_t header_offset; /* AVDOVIRpuDataHeader */ + size_t mapping_offset; /* AVDOVIDataMapping */ + size_t color_offset; /* AVDOVIColorMetadata */ + + size_t ext_block_offset; /* offset to start of ext blocks array */ + size_t ext_block_size; /* size per element */ + int num_ext_blocks; /* number of extension blocks */ + + /* static limit on num_ext_blocks, derived from bitstream limitations */ +#define AV_DOVI_MAX_EXT_BLOCKS 32 +} AVDOVIMetadata; + +static av_always_inline AVDOVIRpuDataHeader * +av_dovi_get_header(const AVDOVIMetadata *data) +{ + return (AVDOVIRpuDataHeader *)((uint8_t *) data + data->header_offset); +} + +static av_always_inline AVDOVIDataMapping * +av_dovi_get_mapping(const AVDOVIMetadata *data) +{ + return (AVDOVIDataMapping *)((uint8_t *) data + data->mapping_offset); +} + +static av_always_inline AVDOVIColorMetadata * +av_dovi_get_color(const AVDOVIMetadata *data) +{ + return (AVDOVIColorMetadata *)((uint8_t *) data + data->color_offset); +} + +static av_always_inline AVDOVIDmData * +av_dovi_get_ext(const AVDOVIMetadata *data, int index) +{ + return (AVDOVIDmData *)((uint8_t *) data + data->ext_block_offset + + data->ext_block_size * index); +} + +/** + * Find an extension block with a given level, or NULL. In the case of + * multiple extension blocks, only the first is returned. + */ +AVDOVIDmData *av_dovi_find_level(const AVDOVIMetadata *data, uint8_t level); + +/** + * Allocate an AVDOVIMetadata structure and initialize its + * fields to default values. + * + * @param size If this parameter is non-NULL, the size in bytes of the + * allocated struct will be written here on success + * + * @return the newly allocated struct or NULL on failure + */ +AVDOVIMetadata *av_dovi_metadata_alloc(size_t *size); + +#endif /* AVUTIL_DOVI_META_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/downmix_info.h b/deps/ffmpeg/macos/include/libavutil/downmix_info.h new file mode 100644 index 0000000..221cf5b --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/downmix_info.h @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2014 Tim Walker + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_DOWNMIX_INFO_H +#define AVUTIL_DOWNMIX_INFO_H + +#include "frame.h" + +/** + * @file + * audio downmix medatata + */ + +/** + * @addtogroup lavu_audio + * @{ + */ + +/** + * @defgroup downmix_info Audio downmix metadata + * @{ + */ + +/** + * Possible downmix types. + */ +enum AVDownmixType { + AV_DOWNMIX_TYPE_UNKNOWN, /**< Not indicated. */ + AV_DOWNMIX_TYPE_LORO, /**< Lo/Ro 2-channel downmix (Stereo). */ + AV_DOWNMIX_TYPE_LTRT, /**< Lt/Rt 2-channel downmix, Dolby Surround compatible. */ + AV_DOWNMIX_TYPE_DPLII, /**< Lt/Rt 2-channel downmix, Dolby Pro Logic II compatible. */ + AV_DOWNMIX_TYPE_NB /**< Number of downmix types. Not part of ABI. */ +}; + +/** + * This structure describes optional metadata relevant to a downmix procedure. + * + * All fields are set by the decoder to the value indicated in the audio + * bitstream (if present), or to a "sane" default otherwise. + */ +typedef struct AVDownmixInfo { + /** + * Type of downmix preferred by the mastering engineer. + */ + enum AVDownmixType preferred_downmix_type; + + /** + * Absolute scale factor representing the nominal level of the center + * channel during a regular downmix. + */ + double center_mix_level; + + /** + * Absolute scale factor representing the nominal level of the center + * channel during an Lt/Rt compatible downmix. + */ + double center_mix_level_ltrt; + + /** + * Absolute scale factor representing the nominal level of the surround + * channels during a regular downmix. + */ + double surround_mix_level; + + /** + * Absolute scale factor representing the nominal level of the surround + * channels during an Lt/Rt compatible downmix. + */ + double surround_mix_level_ltrt; + + /** + * Absolute scale factor representing the level at which the LFE data is + * mixed into L/R channels during downmixing. + */ + double lfe_mix_level; +} AVDownmixInfo; + +/** + * Get a frame's AV_FRAME_DATA_DOWNMIX_INFO side data for editing. + * + * If the side data is absent, it is created and added to the frame. + * + * @param frame the frame for which the side data is to be obtained or created + * + * @return the AVDownmixInfo structure to be edited by the caller, or NULL if + * the structure cannot be allocated. + */ +AVDownmixInfo *av_downmix_info_update_side_data(AVFrame *frame); + +/** + * @} + */ + +/** + * @} + */ + +#endif /* AVUTIL_DOWNMIX_INFO_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/encryption_info.h b/deps/ffmpeg/macos/include/libavutil/encryption_info.h new file mode 100644 index 0000000..8fe7ebf --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/encryption_info.h @@ -0,0 +1,205 @@ +/** + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ENCRYPTION_INFO_H +#define AVUTIL_ENCRYPTION_INFO_H + +#include +#include + +typedef struct AVSubsampleEncryptionInfo { + /** The number of bytes that are clear. */ + unsigned int bytes_of_clear_data; + + /** + * The number of bytes that are protected. If using pattern encryption, + * the pattern applies to only the protected bytes; if not using pattern + * encryption, all these bytes are encrypted. + */ + unsigned int bytes_of_protected_data; +} AVSubsampleEncryptionInfo; + +/** + * This describes encryption info for a packet. This contains frame-specific + * info for how to decrypt the packet before passing it to the decoder. + * + * The size of this struct is not part of the public ABI. + */ +typedef struct AVEncryptionInfo { + /** The fourcc encryption scheme, in big-endian byte order. */ + uint32_t scheme; + + /** + * Only used for pattern encryption. This is the number of 16-byte blocks + * that are encrypted. + */ + uint32_t crypt_byte_block; + + /** + * Only used for pattern encryption. This is the number of 16-byte blocks + * that are clear. + */ + uint32_t skip_byte_block; + + /** + * The ID of the key used to encrypt the packet. This should always be + * 16 bytes long, but may be changed in the future. + */ + uint8_t *key_id; + uint32_t key_id_size; + + /** + * The initialization vector. This may have been zero-filled to be the + * correct block size. This should always be 16 bytes long, but may be + * changed in the future. + */ + uint8_t *iv; + uint32_t iv_size; + + /** + * An array of subsample encryption info specifying how parts of the sample + * are encrypted. If there are no subsamples, then the whole sample is + * encrypted. + */ + AVSubsampleEncryptionInfo *subsamples; + uint32_t subsample_count; +} AVEncryptionInfo; + +/** + * This describes info used to initialize an encryption key system. + * + * The size of this struct is not part of the public ABI. + */ +typedef struct AVEncryptionInitInfo { + /** + * A unique identifier for the key system this is for, can be NULL if it + * is not known. This should always be 16 bytes, but may change in the + * future. + */ + uint8_t* system_id; + uint32_t system_id_size; + + /** + * An array of key IDs this initialization data is for. All IDs are the + * same length. Can be NULL if there are no known key IDs. + */ + uint8_t** key_ids; + /** The number of key IDs. */ + uint32_t num_key_ids; + /** + * The number of bytes in each key ID. This should always be 16, but may + * change in the future. + */ + uint32_t key_id_size; + + /** + * Key-system specific initialization data. This data is copied directly + * from the file and the format depends on the specific key system. This + * can be NULL if there is no initialization data; in that case, there + * will be at least one key ID. + */ + uint8_t* data; + uint32_t data_size; + + /** + * An optional pointer to the next initialization info in the list. + */ + struct AVEncryptionInitInfo *next; +} AVEncryptionInitInfo; + +/** + * Allocates an AVEncryptionInfo structure and sub-pointers to hold the given + * number of subsamples. This will allocate pointers for the key ID, IV, + * and subsample entries, set the size members, and zero-initialize the rest. + * + * @param subsample_count The number of subsamples. + * @param key_id_size The number of bytes in the key ID, should be 16. + * @param iv_size The number of bytes in the IV, should be 16. + * + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_alloc(uint32_t subsample_count, uint32_t key_id_size, uint32_t iv_size); + +/** + * Allocates an AVEncryptionInfo structure with a copy of the given data. + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_clone(const AVEncryptionInfo *info); + +/** + * Frees the given encryption info object. This MUST NOT be used to free the + * side-data data pointer, that should use normal side-data methods. + */ +void av_encryption_info_free(AVEncryptionInfo *info); + +/** + * Creates a copy of the AVEncryptionInfo that is contained in the given side + * data. The resulting object should be passed to av_encryption_info_free() + * when done. + * + * @return The new AVEncryptionInfo structure, or NULL on error. + */ +AVEncryptionInfo *av_encryption_info_get_side_data(const uint8_t *side_data, size_t side_data_size); + +/** + * Allocates and initializes side data that holds a copy of the given encryption + * info. The resulting pointer should be either freed using av_free or given + * to av_packet_add_side_data(). + * + * @return The new side-data pointer, or NULL. + */ +uint8_t *av_encryption_info_add_side_data( + const AVEncryptionInfo *info, size_t *side_data_size); + + +/** + * Allocates an AVEncryptionInitInfo structure and sub-pointers to hold the + * given sizes. This will allocate pointers and set all the fields. + * + * @return The new AVEncryptionInitInfo structure, or NULL on error. + */ +AVEncryptionInitInfo *av_encryption_init_info_alloc( + uint32_t system_id_size, uint32_t num_key_ids, uint32_t key_id_size, uint32_t data_size); + +/** + * Frees the given encryption init info object. This MUST NOT be used to free + * the side-data data pointer, that should use normal side-data methods. + */ +void av_encryption_init_info_free(AVEncryptionInitInfo* info); + +/** + * Creates a copy of the AVEncryptionInitInfo that is contained in the given + * side data. The resulting object should be passed to + * av_encryption_init_info_free() when done. + * + * @return The new AVEncryptionInitInfo structure, or NULL on error. + */ +AVEncryptionInitInfo *av_encryption_init_info_get_side_data( + const uint8_t* side_data, size_t side_data_size); + +/** + * Allocates and initializes side data that holds a copy of the given encryption + * init info. The resulting pointer should be either freed using av_free or + * given to av_packet_add_side_data(). + * + * @return The new side-data pointer, or NULL. + */ +uint8_t *av_encryption_init_info_add_side_data( + const AVEncryptionInitInfo *info, size_t *side_data_size); + +#endif /* AVUTIL_ENCRYPTION_INFO_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/error.h b/deps/ffmpeg/macos/include/libavutil/error.h new file mode 100644 index 0000000..1efa86c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/error.h @@ -0,0 +1,129 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * error code definitions + */ + +#ifndef AVUTIL_ERROR_H +#define AVUTIL_ERROR_H + +#include +#include + +#include "macros.h" + +/** + * @addtogroup lavu_error + * + * @{ + */ + + +/* error handling */ +#if EDOM > 0 +#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. +#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. +#else +/* Some platforms have E* and errno already negated. */ +#define AVERROR(e) (e) +#define AVUNERROR(e) (e) +#endif + +#define FFERRTAG(a, b, c, d) (-(int)MKTAG(a, b, c, d)) + +#define AVERROR_BSF_NOT_FOUND FFERRTAG(0xF8,'B','S','F') ///< Bitstream filter not found +#define AVERROR_BUG FFERRTAG( 'B','U','G','!') ///< Internal bug, also see AVERROR_BUG2 +#define AVERROR_BUFFER_TOO_SMALL FFERRTAG( 'B','U','F','S') ///< Buffer too small +#define AVERROR_DECODER_NOT_FOUND FFERRTAG(0xF8,'D','E','C') ///< Decoder not found +#define AVERROR_DEMUXER_NOT_FOUND FFERRTAG(0xF8,'D','E','M') ///< Demuxer not found +#define AVERROR_ENCODER_NOT_FOUND FFERRTAG(0xF8,'E','N','C') ///< Encoder not found +#define AVERROR_EOF FFERRTAG( 'E','O','F',' ') ///< End of file +#define AVERROR_EXIT FFERRTAG( 'E','X','I','T') ///< Immediate exit was requested; the called function should not be restarted +#define AVERROR_EXTERNAL FFERRTAG( 'E','X','T',' ') ///< Generic error in an external library +#define AVERROR_FILTER_NOT_FOUND FFERRTAG(0xF8,'F','I','L') ///< Filter not found +#define AVERROR_INVALIDDATA FFERRTAG( 'I','N','D','A') ///< Invalid data found when processing input +#define AVERROR_MUXER_NOT_FOUND FFERRTAG(0xF8,'M','U','X') ///< Muxer not found +#define AVERROR_OPTION_NOT_FOUND FFERRTAG(0xF8,'O','P','T') ///< Option not found +#define AVERROR_PATCHWELCOME FFERRTAG( 'P','A','W','E') ///< Not yet implemented in FFmpeg, patches welcome +#define AVERROR_PROTOCOL_NOT_FOUND FFERRTAG(0xF8,'P','R','O') ///< Protocol not found + +#define AVERROR_STREAM_NOT_FOUND FFERRTAG(0xF8,'S','T','R') ///< Stream not found +/** + * This is semantically identical to AVERROR_BUG + * it has been introduced in Libav after our AVERROR_BUG and with a modified value. + */ +#define AVERROR_BUG2 FFERRTAG( 'B','U','G',' ') +#define AVERROR_UNKNOWN FFERRTAG( 'U','N','K','N') ///< Unknown error, typically from an external library +#define AVERROR_EXPERIMENTAL (-0x2bb2afa8) ///< Requested feature is flagged experimental. Set strict_std_compliance if you really want to use it. +#define AVERROR_INPUT_CHANGED (-0x636e6701) ///< Input changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_OUTPUT_CHANGED) +#define AVERROR_OUTPUT_CHANGED (-0x636e6702) ///< Output changed between calls. Reconfiguration is required. (can be OR-ed with AVERROR_INPUT_CHANGED) +/* HTTP & RTSP errors */ +#define AVERROR_HTTP_BAD_REQUEST FFERRTAG(0xF8,'4','0','0') +#define AVERROR_HTTP_UNAUTHORIZED FFERRTAG(0xF8,'4','0','1') +#define AVERROR_HTTP_FORBIDDEN FFERRTAG(0xF8,'4','0','3') +#define AVERROR_HTTP_NOT_FOUND FFERRTAG(0xF8,'4','0','4') +#define AVERROR_HTTP_TOO_MANY_REQUESTS FFERRTAG(0xF8,'4','2','9') +#define AVERROR_HTTP_OTHER_4XX FFERRTAG(0xF8,'4','X','X') +#define AVERROR_HTTP_SERVER_ERROR FFERRTAG(0xF8,'5','X','X') + +#define AV_ERROR_MAX_STRING_SIZE 64 + +/** + * Put a description of the AVERROR code errnum in errbuf. + * In case of failure the global variable errno is set to indicate the + * error. Even in case of failure av_strerror() will print a generic + * error message indicating the errnum provided to errbuf. + * + * @param errnum error code to describe + * @param errbuf buffer to which description is written + * @param errbuf_size the size in bytes of errbuf + * @return 0 on success, a negative value if a description for errnum + * cannot be found + */ +int av_strerror(int errnum, char *errbuf, size_t errbuf_size); + +/** + * Fill the provided buffer with a string containing an error string + * corresponding to the AVERROR code errnum. + * + * @param errbuf a buffer + * @param errbuf_size size in bytes of errbuf + * @param errnum error code to describe + * @return the buffer in input, filled with the error description + * @see av_strerror() + */ +static inline char *av_make_error_string(char *errbuf, size_t errbuf_size, int errnum) +{ + av_strerror(errnum, errbuf, errbuf_size); + return errbuf; +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_err2str(errnum) \ + av_make_error_string((char[AV_ERROR_MAX_STRING_SIZE]){0}, AV_ERROR_MAX_STRING_SIZE, errnum) + +/** + * @} + */ + +#endif /* AVUTIL_ERROR_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/eval.h b/deps/ffmpeg/macos/include/libavutil/eval.h new file mode 100644 index 0000000..0d3eaeb --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/eval.h @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2002 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple arithmetic expression evaluator + */ + +#ifndef AVUTIL_EVAL_H +#define AVUTIL_EVAL_H + +typedef struct AVExpr AVExpr; + +/** + * Parse and evaluate an expression. + * Note, this is significantly slower than av_expr_eval(). + * + * @param res a pointer to a double where is put the result value of + * the expression, or NAN in case of error + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param const_values a zero terminated array of values for the identifiers from const_names + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @param log_offset log level offset, can be used to silence error messages + * @param log_ctx parent logging context + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse_and_eval(double *res, const char *s, + const char * const *const_names, const double *const_values, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + void *opaque, int log_offset, void *log_ctx); + +/** + * Parse an expression. + * + * @param expr a pointer where is put an AVExpr containing the parsed + * value in case of successful parsing, or NULL otherwise. + * The pointed to AVExpr must be freed with av_expr_free() by the user + * when it is not needed anymore. + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param log_offset log level offset, can be used to silence error messages + * @param log_ctx parent logging context + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse(AVExpr **expr, const char *s, + const char * const *const_names, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + int log_offset, void *log_ctx); + +/** + * Evaluate a previously parsed expression. + * + * @param e the AVExpr to evaluate + * @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @return the value of the expression + */ +double av_expr_eval(AVExpr *e, const double *const_values, void *opaque); + +/** + * Track the presence of variables and their number of occurrences in a parsed expression + * + * @param e the AVExpr to track variables in + * @param counter a zero-initialized array where the count of each variable will be stored + * @param size size of array + * @return 0 on success, a negative value indicates that no expression or array was passed + * or size was zero + */ +int av_expr_count_vars(AVExpr *e, unsigned *counter, int size); + +/** + * Track the presence of user provided functions and their number of occurrences + * in a parsed expression. + * + * @param e the AVExpr to track user provided functions in + * @param counter a zero-initialized array where the count of each function will be stored + * if you passed 5 functions with 2 arguments to av_expr_parse() + * then for arg=2 this will use up to 5 entries. + * @param size size of array + * @param arg number of arguments the counted functions have + * @return 0 on success, a negative value indicates that no expression or array was passed + * or size was zero + */ +int av_expr_count_func(AVExpr *e, unsigned *counter, int size, int arg); + +/** + * Free a parsed expression previously created with av_expr_parse(). + */ +void av_expr_free(AVExpr *e); + +/** + * Parse the string in numstr and return its value as a double. If + * the string is empty, contains only whitespaces, or does not contain + * an initial substring that has the expected syntax for a + * floating-point number, no conversion is performed. In this case, + * returns a value of zero and the value returned in tail is the value + * of numstr. + * + * @param numstr a string representing a number, may contain one of + * the International System number postfixes, for example 'K', 'M', + * 'G'. If 'i' is appended after the postfix, powers of 2 are used + * instead of powers of 10. The 'B' postfix multiplies the value by + * 8, and can be appended after another postfix or used alone. This + * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. + * @param tail if non-NULL puts here the pointer to the char next + * after the last parsed character + */ +double av_strtod(const char *numstr, char **tail); + +#endif /* AVUTIL_EVAL_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/executor.h b/deps/ffmpeg/macos/include/libavutil/executor.h new file mode 100644 index 0000000..0eb21c1 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/executor.h @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2023 Nuo Mi + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_EXECUTOR_H +#define AVUTIL_EXECUTOR_H + +typedef struct AVExecutor AVExecutor; +typedef struct AVTask AVTask; + +struct AVTask { + AVTask *next; +}; + +typedef struct AVTaskCallbacks { + void *user_data; + + int local_context_size; + + // return 1 if a's priority > b's priority + int (*priority_higher)(const AVTask *a, const AVTask *b); + + // task is ready for run + int (*ready)(const AVTask *t, void *user_data); + + // run the task + int (*run)(AVTask *t, void *local_context, void *user_data); +} AVTaskCallbacks; + +/** + * Alloc executor + * @param callbacks callback structure for executor + * @param thread_count worker thread number, 0 for run on caller's thread directly + * @return return the executor + */ +AVExecutor* av_executor_alloc(const AVTaskCallbacks *callbacks, int thread_count); + +/** + * Free executor + * @param e pointer to executor + */ +void av_executor_free(AVExecutor **e); + +/** + * Add task to executor + * @param e pointer to executor + * @param t pointer to task. If NULL, it will wakeup one work thread + */ +void av_executor_execute(AVExecutor *e, AVTask *t); + +#endif //AVUTIL_EXECUTOR_H diff --git a/deps/ffmpeg/macos/include/libavutil/ffversion.h b/deps/ffmpeg/macos/include/libavutil/ffversion.h new file mode 100644 index 0000000..48f04a6 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/ffversion.h @@ -0,0 +1,5 @@ +/* Automatically generated by version.sh, do not manually edit! */ +#ifndef AVUTIL_FFVERSION_H +#define AVUTIL_FFVERSION_H +#define FFMPEG_VERSION "7.1.1" +#endif /* AVUTIL_FFVERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/fifo.h b/deps/ffmpeg/macos/include/libavutil/fifo.h new file mode 100644 index 0000000..f2206c3 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/fifo.h @@ -0,0 +1,242 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_fifo + * A generic FIFO API + */ + +#ifndef AVUTIL_FIFO_H +#define AVUTIL_FIFO_H + +#include + +/** + * @defgroup lavu_fifo AVFifo + * @ingroup lavu_data + * + * @{ + * A generic FIFO API + */ + +typedef struct AVFifo AVFifo; + +/** + * Callback for writing or reading from a FIFO, passed to (and invoked from) the + * av_fifo_*_cb() functions. It may be invoked multiple times from a single + * av_fifo_*_cb() call and may process less data than the maximum size indicated + * by nb_elems. + * + * @param opaque the opaque pointer provided to the av_fifo_*_cb() function + * @param buf the buffer for reading or writing the data, depending on which + * av_fifo_*_cb function is called + * @param nb_elems On entry contains the maximum number of elements that can be + * read from / written into buf. On success, the callback should + * update it to contain the number of elements actually written. + * + * @return 0 on success, a negative error code on failure (will be returned from + * the invoking av_fifo_*_cb() function) + */ +typedef int AVFifoCB(void *opaque, void *buf, size_t *nb_elems); + +/** + * Automatically resize the FIFO on writes, so that the data fits. This + * automatic resizing happens up to a limit that can be modified with + * av_fifo_auto_grow_limit(). + */ +#define AV_FIFO_FLAG_AUTO_GROW (1 << 0) + +/** + * Allocate and initialize an AVFifo with a given element size. + * + * @param elems initial number of elements that can be stored in the FIFO + * @param elem_size Size in bytes of a single element. Further operations on + * the returned FIFO will implicitly use this element size. + * @param flags a combination of AV_FIFO_FLAG_* + * + * @return newly-allocated AVFifo on success, a negative error code on failure + */ +AVFifo *av_fifo_alloc2(size_t elems, size_t elem_size, + unsigned int flags); + +/** + * @return Element size for FIFO operations. This element size is set at + * FIFO allocation and remains constant during its lifetime + */ +size_t av_fifo_elem_size(const AVFifo *f); + +/** + * Set the maximum size (in elements) to which the FIFO can be resized + * automatically. Has no effect unless AV_FIFO_FLAG_AUTO_GROW is used. + */ +void av_fifo_auto_grow_limit(AVFifo *f, size_t max_elems); + +/** + * @return number of elements available for reading from the given FIFO. + */ +size_t av_fifo_can_read(const AVFifo *f); + +/** + * @return Number of elements that can be written into the given FIFO without + * growing it. + * + * In other words, this number of elements or less is guaranteed to fit + * into the FIFO. More data may be written when the + * AV_FIFO_FLAG_AUTO_GROW flag was specified at FIFO creation, but this + * may involve memory allocation, which can fail. + */ +size_t av_fifo_can_write(const AVFifo *f); + +/** + * Enlarge an AVFifo. + * + * On success, the FIFO will be large enough to hold exactly + * inc + av_fifo_can_read() + av_fifo_can_write() + * elements. In case of failure, the old FIFO is kept unchanged. + * + * @param f AVFifo to resize + * @param inc number of elements to allocate for, in addition to the current + * allocated size + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_grow2(AVFifo *f, size_t inc); + +/** + * Write data into a FIFO. + * + * In case nb_elems > av_fifo_can_write(f) and the AV_FIFO_FLAG_AUTO_GROW flag + * was not specified at FIFO creation, nothing is written and an error + * is returned. + * + * Calling function is guaranteed to succeed if nb_elems <= av_fifo_can_write(f). + * + * @param f the FIFO buffer + * @param buf Data to be written. nb_elems * av_fifo_elem_size(f) bytes will be + * read from buf on success. + * @param nb_elems number of elements to write into FIFO + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_write(AVFifo *f, const void *buf, size_t nb_elems); + +/** + * Write data from a user-provided callback into a FIFO. + * + * @param f the FIFO buffer + * @param read_cb Callback supplying the data to the FIFO. May be called + * multiple times. + * @param opaque opaque user data to be provided to read_cb + * @param nb_elems Should point to the maximum number of elements that can be + * written. Will be updated to contain the number of elements + * actually written. + * + * @return non-negative number on success, a negative error code on failure + */ +int av_fifo_write_from_cb(AVFifo *f, AVFifoCB read_cb, + void *opaque, size_t *nb_elems); + +/** + * Read data from a FIFO. + * + * In case nb_elems > av_fifo_can_read(f), nothing is read and an error + * is returned. + * + * @param f the FIFO buffer + * @param buf Buffer to store the data. nb_elems * av_fifo_elem_size(f) bytes + * will be written into buf on success. + * @param nb_elems number of elements to read from FIFO + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_read(AVFifo *f, void *buf, size_t nb_elems); + +/** + * Feed data from a FIFO into a user-provided callback. + * + * @param f the FIFO buffer + * @param write_cb Callback the data will be supplied to. May be called + * multiple times. + * @param opaque opaque user data to be provided to write_cb + * @param nb_elems Should point to the maximum number of elements that can be + * read. Will be updated to contain the total number of elements + * actually sent to the callback. + * + * @return non-negative number on success, a negative error code on failure + */ +int av_fifo_read_to_cb(AVFifo *f, AVFifoCB write_cb, + void *opaque, size_t *nb_elems); + +/** + * Read data from a FIFO without modifying FIFO state. + * + * Returns an error if an attempt is made to peek to nonexistent elements + * (i.e. if offset + nb_elems is larger than av_fifo_can_read(f)). + * + * @param f the FIFO buffer + * @param buf Buffer to store the data. nb_elems * av_fifo_elem_size(f) bytes + * will be written into buf. + * @param nb_elems number of elements to read from FIFO + * @param offset number of initial elements to skip. + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_peek(const AVFifo *f, void *buf, size_t nb_elems, size_t offset); + +/** + * Feed data from a FIFO into a user-provided callback. + * + * @param f the FIFO buffer + * @param write_cb Callback the data will be supplied to. May be called + * multiple times. + * @param opaque opaque user data to be provided to write_cb + * @param nb_elems Should point to the maximum number of elements that can be + * read. Will be updated to contain the total number of elements + * actually sent to the callback. + * @param offset number of initial elements to skip; offset + *nb_elems must not + * be larger than av_fifo_can_read(f). + * + * @return a non-negative number on success, a negative error code on failure + */ +int av_fifo_peek_to_cb(const AVFifo *f, AVFifoCB write_cb, void *opaque, + size_t *nb_elems, size_t offset); + +/** + * Discard the specified amount of data from an AVFifo. + * @param size number of elements to discard, MUST NOT be larger than + * av_fifo_can_read(f) + */ +void av_fifo_drain2(AVFifo *f, size_t size); + +/* + * Empty the AVFifo. + * @param f AVFifo to reset + */ +void av_fifo_reset2(AVFifo *f); + +/** + * Free an AVFifo and reset pointer to NULL. + * @param f Pointer to an AVFifo to free. *f == NULL is allowed. + */ +void av_fifo_freep2(AVFifo **f); + +/** + * @} + */ + +#endif /* AVUTIL_FIFO_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/file.h b/deps/ffmpeg/macos/include/libavutil/file.h new file mode 100644 index 0000000..fced170 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/file.h @@ -0,0 +1,62 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_FILE_H +#define AVUTIL_FILE_H + +#include +#include + +#include "attributes.h" + +/** + * @file + * Misc file utilities. + */ + +/** + * Read the file with name filename, and put its content in a newly + * allocated buffer or map it with mmap() when available. + * In case of success set *bufptr to the read or mmapped buffer, and + * *size to the size in bytes of the buffer in *bufptr. + * Unlike mmap this function succeeds with zero sized files, in this + * case *bufptr will be set to NULL and *size will be set to 0. + * The returned buffer must be released with av_file_unmap(). + * + * @param filename path to the file + * @param[out] bufptr pointee is set to the mapped or allocated buffer + * @param[out] size pointee is set to the size in bytes of the buffer + * @param log_offset loglevel offset used for logging + * @param log_ctx context used for logging + * @return a non negative number in case of success, a negative value + * corresponding to an AVERROR error code in case of failure + */ +av_warn_unused_result +int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, + int log_offset, void *log_ctx); + +/** + * Unmap or free the buffer bufptr created by av_file_map(). + * + * @param bufptr the buffer previously created with av_file_map() + * @param size size in bytes of bufptr, must be the same as returned + * by av_file_map() + */ +void av_file_unmap(uint8_t *bufptr, size_t size); + +#endif /* AVUTIL_FILE_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/film_grain_params.h b/deps/ffmpeg/macos/include/libavutil/film_grain_params.h new file mode 100644 index 0000000..ccacab8 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/film_grain_params.h @@ -0,0 +1,322 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_FILM_GRAIN_PARAMS_H +#define AVUTIL_FILM_GRAIN_PARAMS_H + +#include "frame.h" + +enum AVFilmGrainParamsType { + AV_FILM_GRAIN_PARAMS_NONE = 0, + + /** + * The union is valid when interpreted as AVFilmGrainAOMParams (codec.aom) + */ + AV_FILM_GRAIN_PARAMS_AV1, + + /** + * The union is valid when interpreted as AVFilmGrainH274Params (codec.h274) + */ + AV_FILM_GRAIN_PARAMS_H274, +}; + +/** + * This structure describes how to handle film grain synthesis for AOM codecs. + * + * @note The struct must be allocated as part of AVFilmGrainParams using + * av_film_grain_params_alloc(). Its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainAOMParams { + /** + * Number of points, and the scale and value for each point of the + * piecewise linear scaling function for the uma plane. + */ + int num_y_points; + uint8_t y_points[14][2 /* value, scaling */]; + + /** + * Signals whether to derive the chroma scaling function from the luma. + * Not equivalent to copying the luma values and scales. + */ + int chroma_scaling_from_luma; + + /** + * If chroma_scaling_from_luma is set to 0, signals the chroma scaling + * function parameters. + */ + int num_uv_points[2 /* cb, cr */]; + uint8_t uv_points[2 /* cb, cr */][10][2 /* value, scaling */]; + + /** + * Specifies the shift applied to the chroma components. For AV1, its within + * [8; 11] and determines the range and quantization of the film grain. + */ + int scaling_shift; + + /** + * Specifies the auto-regression lag. + */ + int ar_coeff_lag; + + /** + * Luma auto-regression coefficients. The number of coefficients is given by + * 2 * ar_coeff_lag * (ar_coeff_lag + 1). + */ + int8_t ar_coeffs_y[24]; + + /** + * Chroma auto-regression coefficients. The number of coefficients is given by + * 2 * ar_coeff_lag * (ar_coeff_lag + 1) + !!num_y_points. + */ + int8_t ar_coeffs_uv[2 /* cb, cr */][25]; + + /** + * Specifies the range of the auto-regressive coefficients. Values of 6, + * 7, 8 and so on represent a range of [-2, 2), [-1, 1), [-0.5, 0.5) and + * so on. For AV1 must be between 6 and 9. + */ + int ar_coeff_shift; + + /** + * Signals the down shift applied to the generated gaussian numbers during + * synthesis. + */ + int grain_scale_shift; + + /** + * Specifies the luma/chroma multipliers for the index to the component + * scaling function. + */ + int uv_mult[2 /* cb, cr */]; + int uv_mult_luma[2 /* cb, cr */]; + + /** + * Offset used for component scaling function. For AV1 its a 9-bit value + * with a range [-256, 255] + */ + int uv_offset[2 /* cb, cr */]; + + /** + * Signals whether to overlap film grain blocks. + */ + int overlap_flag; + + /** + * Signals to clip to limited color levels after film grain application. + */ + int limit_output_range; +} AVFilmGrainAOMParams; + +/** + * This structure describes how to handle film grain synthesis for codecs using + * the ITU-T H.274 Versatile suplemental enhancement information message. + * + * @note The struct must be allocated as part of AVFilmGrainParams using + * av_film_grain_params_alloc(). Its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainH274Params { + /** + * Specifies the film grain simulation mode. + * 0 = Frequency filtering, 1 = Auto-regression + */ + int model_id; + +#if FF_API_H274_FILM_GRAIN_VCS + /** + * TODO: On this ABI bump, please also re-order the fields in + * AVFilmGrainParams (see below) + */ + + /** + * Specifies the bit depth used for the luma component. + * + * @deprecated use AVFilmGrainParams.bit_depth_luma. + */ + attribute_deprecated + int bit_depth_luma; + + /** + * Specifies the bit depth used for the chroma components. + * + * @deprecated use AVFilmGrainParams.bit_depth_chroma. + */ + attribute_deprecated + int bit_depth_chroma; + + /** + * Specifies the video signal characteristics. + * + * @deprecated use AVFilmGrainParams.color_{range,primaries,trc,space}. + */ + attribute_deprecated + enum AVColorRange color_range; + attribute_deprecated + enum AVColorPrimaries color_primaries; + attribute_deprecated + enum AVColorTransferCharacteristic color_trc; + attribute_deprecated + enum AVColorSpace color_space; +#endif + + /** + * Specifies the blending mode used to blend the simulated film grain + * with the decoded images. + * + * 0 = Additive, 1 = Multiplicative + */ + int blending_mode_id; + + /** + * Specifies a scale factor used in the film grain characterization equations. + */ + int log2_scale_factor; + + /** + * Indicates if the modelling of film grain for a given component is present. + */ + int component_model_present[3 /* y, cb, cr */]; + + /** + * Specifies the number of intensity intervals for which a specific set of + * model values has been estimated, with a range of [1, 256]. + */ + uint16_t num_intensity_intervals[3 /* y, cb, cr */]; + + /** + * Specifies the number of model values present for each intensity interval + * in which the film grain has been modelled, with a range of [1, 6]. + */ + uint8_t num_model_values[3 /* y, cb, cr */]; + + /** + * Specifies the lower ounds of each intensity interval for whichthe set of + * model values applies for the component. + */ + uint8_t intensity_interval_lower_bound[3 /* y, cb, cr */][256 /* intensity interval */]; + + /** + * Specifies the upper bound of each intensity interval for which the set of + * model values applies for the component. + */ + uint8_t intensity_interval_upper_bound[3 /* y, cb, cr */][256 /* intensity interval */]; + + /** + * Specifies the model values for the component for each intensity interval. + * - When model_id == 0, the following applies: + * For comp_model_value[y], the range of values is [0, 2^bit_depth_luma - 1] + * For comp_model_value[cb..cr], the range of values is [0, 2^bit_depth_chroma - 1] + * - Otherwise, the following applies: + * For comp_model_value[y], the range of values is [-2^(bit_depth_luma - 1), 2^(bit_depth_luma - 1) - 1] + * For comp_model_value[cb..cr], the range of values is [-2^(bit_depth_chroma - 1), 2^(bit_depth_chroma - 1) - 1] + */ + int16_t comp_model_value[3 /* y, cb, cr */][256 /* intensity interval */][6 /* model value */]; +} AVFilmGrainH274Params; + +/** + * This structure describes how to handle film grain synthesis in video + * for specific codecs. Must be present on every frame where film grain is + * meant to be synthesised for correct presentation. + * + * @note The struct must be allocated with av_film_grain_params_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVFilmGrainParams { + /** + * Specifies the codec for which this structure is valid. + */ + enum AVFilmGrainParamsType type; + + /** + * Seed to use for the synthesis process, if the codec allows for it. + * + * @note For H.264, this refers to `pic_offset` as defined in + * SMPTE RDD 5-2006. + */ + uint64_t seed; + + /** + * Additional fields may be added both here and in any structure included. + * If a codec's film grain structure differs slightly over another + * codec's, fields within may change meaning depending on the type. + * + * TODO: Move this to the end of the structure, at the next ABI bump. + */ + union { + AVFilmGrainAOMParams aom; + AVFilmGrainH274Params h274; + } codec; + + /** + * Intended display resolution. May be 0 if the codec does not specify + * any restrictions. + */ + + int width, height; + + /** + * Intended subsampling ratio, or 0 for luma-only streams. + */ + int subsampling_x, subsampling_y; + + /** + * Intended video signal characteristics. + */ + enum AVColorRange color_range; + enum AVColorPrimaries color_primaries; + enum AVColorTransferCharacteristic color_trc; + enum AVColorSpace color_space; + + /** + * Intended bit depth, or 0 for unknown/unspecified. + */ + int bit_depth_luma; + int bit_depth_chroma; + +} AVFilmGrainParams; + +/** + * Allocate an AVFilmGrainParams structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * If size is not NULL it will be set to the number of bytes allocated. + * + * @return An AVFilmGrainParams filled with default values or NULL + * on failure. + */ +AVFilmGrainParams *av_film_grain_params_alloc(size_t *size); + +/** + * Allocate a complete AVFilmGrainParams and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVFilmGrainParams structure to be filled by caller. + */ +AVFilmGrainParams *av_film_grain_params_create_side_data(AVFrame *frame); + +/** + * Select the most appropriate film grain parameters set for the frame, + * taking into account the frame's format, resolution and video signal + * characteristics. + * + * @note, for H.274, this may select a film grain parameter set with + * greater chroma resolution than the frame. Users should take care to + * correctly adjust the chroma grain frequency to the frame. + */ +const AVFilmGrainParams *av_film_grain_params_select(const AVFrame *frame); + +#endif /* AVUTIL_FILM_GRAIN_PARAMS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/frame.h b/deps/ffmpeg/macos/include/libavutil/frame.h new file mode 100644 index 0000000..f780656 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/frame.h @@ -0,0 +1,1175 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_frame + * reference-counted frame API + */ + +#ifndef AVUTIL_FRAME_H +#define AVUTIL_FRAME_H + +#include +#include + +#include "avutil.h" +#include "buffer.h" +#include "channel_layout.h" +#include "dict.h" +#include "rational.h" +#include "samplefmt.h" +#include "pixfmt.h" +#include "version.h" + + +/** + * @defgroup lavu_frame AVFrame + * @ingroup lavu_data + * + * @{ + * AVFrame is an abstraction for reference-counted raw multimedia data. + */ + +enum AVFrameSideDataType { + /** + * The data is the AVPanScan struct defined in libavcodec. + */ + AV_FRAME_DATA_PANSCAN, + /** + * ATSC A53 Part 4 Closed Captions. + * A53 CC bitstream is stored as uint8_t in AVFrameSideData.data. + * The number of bytes of CC data is AVFrameSideData.size. + */ + AV_FRAME_DATA_A53_CC, + /** + * Stereoscopic 3d metadata. + * The data is the AVStereo3D struct defined in libavutil/stereo3d.h. + */ + AV_FRAME_DATA_STEREO3D, + /** + * The data is the AVMatrixEncoding enum defined in libavutil/channel_layout.h. + */ + AV_FRAME_DATA_MATRIXENCODING, + /** + * Metadata relevant to a downmix procedure. + * The data is the AVDownmixInfo struct defined in libavutil/downmix_info.h. + */ + AV_FRAME_DATA_DOWNMIX_INFO, + /** + * ReplayGain information in the form of the AVReplayGain struct. + */ + AV_FRAME_DATA_REPLAYGAIN, + /** + * This side data contains a 3x3 transformation matrix describing an affine + * transformation that needs to be applied to the frame for correct + * presentation. + * + * See libavutil/display.h for a detailed description of the data. + */ + AV_FRAME_DATA_DISPLAYMATRIX, + /** + * Active Format Description data consisting of a single byte as specified + * in ETSI TS 101 154 using AVActiveFormatDescription enum. + */ + AV_FRAME_DATA_AFD, + /** + * Motion vectors exported by some codecs (on demand through the export_mvs + * flag set in the libavcodec AVCodecContext flags2 option). + * The data is the AVMotionVector struct defined in + * libavutil/motion_vector.h. + */ + AV_FRAME_DATA_MOTION_VECTORS, + /** + * Recommmends skipping the specified number of samples. This is exported + * only if the "skip_manual" AVOption is set in libavcodec. + * This has the same format as AV_PKT_DATA_SKIP_SAMPLES. + * @code + * u32le number of samples to skip from start of this packet + * u32le number of samples to skip from end of this packet + * u8 reason for start skip + * u8 reason for end skip (0=padding silence, 1=convergence) + * @endcode + */ + AV_FRAME_DATA_SKIP_SAMPLES, + /** + * This side data must be associated with an audio frame and corresponds to + * enum AVAudioServiceType defined in avcodec.h. + */ + AV_FRAME_DATA_AUDIO_SERVICE_TYPE, + /** + * Mastering display metadata associated with a video frame. The payload is + * an AVMasteringDisplayMetadata type and contains information about the + * mastering display color volume. + */ + AV_FRAME_DATA_MASTERING_DISPLAY_METADATA, + /** + * The GOP timecode in 25 bit timecode format. Data format is 64-bit integer. + * This is set on the first frame of a GOP that has a temporal reference of 0. + */ + AV_FRAME_DATA_GOP_TIMECODE, + + /** + * The data represents the AVSphericalMapping structure defined in + * libavutil/spherical.h. + */ + AV_FRAME_DATA_SPHERICAL, + + /** + * Content light level (based on CTA-861.3). This payload contains data in + * the form of the AVContentLightMetadata struct. + */ + AV_FRAME_DATA_CONTENT_LIGHT_LEVEL, + + /** + * The data contains an ICC profile as an opaque octet buffer following the + * format described by ISO 15076-1 with an optional name defined in the + * metadata key entry "name". + */ + AV_FRAME_DATA_ICC_PROFILE, + + /** + * Timecode which conforms to SMPTE ST 12-1. The data is an array of 4 uint32_t + * where the first uint32_t describes how many (1-3) of the other timecodes are used. + * The timecode format is described in the documentation of av_timecode_get_smpte_from_framenum() + * function in libavutil/timecode.h. + */ + AV_FRAME_DATA_S12M_TIMECODE, + + /** + * HDR dynamic metadata associated with a video frame. The payload is + * an AVDynamicHDRPlus type and contains information for color + * volume transform - application 4 of SMPTE 2094-40:2016 standard. + */ + AV_FRAME_DATA_DYNAMIC_HDR_PLUS, + + /** + * Regions Of Interest, the data is an array of AVRegionOfInterest type, the number of + * array element is implied by AVFrameSideData.size / AVRegionOfInterest.self_size. + */ + AV_FRAME_DATA_REGIONS_OF_INTEREST, + + /** + * Encoding parameters for a video frame, as described by AVVideoEncParams. + */ + AV_FRAME_DATA_VIDEO_ENC_PARAMS, + + /** + * User data unregistered metadata associated with a video frame. + * This is the H.26[45] UDU SEI message, and shouldn't be used for any other purpose + * The data is stored as uint8_t in AVFrameSideData.data which is 16 bytes of + * uuid_iso_iec_11578 followed by AVFrameSideData.size - 16 bytes of user_data_payload_byte. + */ + AV_FRAME_DATA_SEI_UNREGISTERED, + + /** + * Film grain parameters for a frame, described by AVFilmGrainParams. + * Must be present for every frame which should have film grain applied. + * + * May be present multiple times, for example when there are multiple + * alternative parameter sets for different video signal characteristics. + * The user should select the most appropriate set for the application. + */ + AV_FRAME_DATA_FILM_GRAIN_PARAMS, + + /** + * Bounding boxes for object detection and classification, + * as described by AVDetectionBBoxHeader. + */ + AV_FRAME_DATA_DETECTION_BBOXES, + + /** + * Dolby Vision RPU raw data, suitable for passing to x265 + * or other libraries. Array of uint8_t, with NAL emulation + * bytes intact. + */ + AV_FRAME_DATA_DOVI_RPU_BUFFER, + + /** + * Parsed Dolby Vision metadata, suitable for passing to a software + * implementation. The payload is the AVDOVIMetadata struct defined in + * libavutil/dovi_meta.h. + */ + AV_FRAME_DATA_DOVI_METADATA, + + /** + * HDR Vivid dynamic metadata associated with a video frame. The payload is + * an AVDynamicHDRVivid type and contains information for color + * volume transform - CUVA 005.1-2021. + */ + AV_FRAME_DATA_DYNAMIC_HDR_VIVID, + + /** + * Ambient viewing environment metadata, as defined by H.274. + */ + AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT, + + /** + * Provide encoder-specific hinting information about changed/unchanged + * portions of a frame. It can be used to pass information about which + * macroblocks can be skipped because they didn't change from the + * corresponding ones in the previous frame. This could be useful for + * applications which know this information in advance to speed up + * encoding. + */ + AV_FRAME_DATA_VIDEO_HINT, + + /** + * Raw LCEVC payload data, as a uint8_t array, with NAL emulation + * bytes intact. + */ + AV_FRAME_DATA_LCEVC, + + /** + * This side data must be associated with a video frame. + * The presence of this side data indicates that the video stream is + * composed of multiple views (e.g. stereoscopic 3D content, + * cf. H.264 Annex H or H.265 Annex G). + * The data is an int storing the view ID. + */ + AV_FRAME_DATA_VIEW_ID, +}; + +enum AVActiveFormatDescription { + AV_AFD_SAME = 8, + AV_AFD_4_3 = 9, + AV_AFD_16_9 = 10, + AV_AFD_14_9 = 11, + AV_AFD_4_3_SP_14_9 = 13, + AV_AFD_16_9_SP_14_9 = 14, + AV_AFD_SP_4_3 = 15, +}; + + +/** + * Structure to hold side data for an AVFrame. + * + * sizeof(AVFrameSideData) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + */ +typedef struct AVFrameSideData { + enum AVFrameSideDataType type; + uint8_t *data; + size_t size; + AVDictionary *metadata; + AVBufferRef *buf; +} AVFrameSideData; + +enum AVSideDataProps { + /** + * The side data type can be used in stream-global structures. + * Side data types without this property are only meaningful on per-frame + * basis. + */ + AV_SIDE_DATA_PROP_GLOBAL = (1 << 0), + + /** + * Multiple instances of this side data type can be meaningfully present in + * a single side data array. + */ + AV_SIDE_DATA_PROP_MULTI = (1 << 1), +}; + +/** + * This struct describes the properties of a side data type. Its instance + * corresponding to a given type can be obtained from av_frame_side_data_desc(). + */ +typedef struct AVSideDataDescriptor { + /** + * Human-readable side data description. + */ + const char *name; + + /** + * Side data property flags, a combination of AVSideDataProps values. + */ + unsigned props; +} AVSideDataDescriptor; + +/** + * Structure describing a single Region Of Interest. + * + * When multiple regions are defined in a single side-data block, they + * should be ordered from most to least important - some encoders are only + * capable of supporting a limited number of distinct regions, so will have + * to truncate the list. + * + * When overlapping regions are defined, the first region containing a given + * area of the frame applies. + */ +typedef struct AVRegionOfInterest { + /** + * Must be set to the size of this data structure (that is, + * sizeof(AVRegionOfInterest)). + */ + uint32_t self_size; + /** + * Distance in pixels from the top edge of the frame to the top and + * bottom edges and from the left edge of the frame to the left and + * right edges of the rectangle defining this region of interest. + * + * The constraints on a region are encoder dependent, so the region + * actually affected may be slightly larger for alignment or other + * reasons. + */ + int top; + int bottom; + int left; + int right; + /** + * Quantisation offset. + * + * Must be in the range -1 to +1. A value of zero indicates no quality + * change. A negative value asks for better quality (less quantisation), + * while a positive value asks for worse quality (greater quantisation). + * + * The range is calibrated so that the extreme values indicate the + * largest possible offset - if the rest of the frame is encoded with the + * worst possible quality, an offset of -1 indicates that this region + * should be encoded with the best possible quality anyway. Intermediate + * values are then interpolated in some codec-dependent way. + * + * For example, in 10-bit H.264 the quantisation parameter varies between + * -12 and 51. A typical qoffset value of -1/10 therefore indicates that + * this region should be encoded with a QP around one-tenth of the full + * range better than the rest of the frame. So, if most of the frame + * were to be encoded with a QP of around 30, this region would get a QP + * of around 24 (an offset of approximately -1/10 * (51 - -12) = -6.3). + * An extreme value of -1 would indicate that this region should be + * encoded with the best possible quality regardless of the treatment of + * the rest of the frame - that is, should be encoded at a QP of -12. + */ + AVRational qoffset; +} AVRegionOfInterest; + +/** + * This structure describes decoded (raw) audio or video data. + * + * AVFrame must be allocated using av_frame_alloc(). Note that this only + * allocates the AVFrame itself, the buffers for the data must be managed + * through other means (see below). + * AVFrame must be freed with av_frame_free(). + * + * AVFrame is typically allocated once and then reused multiple times to hold + * different data (e.g. a single AVFrame to hold frames received from a + * decoder). In such a case, av_frame_unref() will free any references held by + * the frame and reset it to its original clean state before it + * is reused again. + * + * The data described by an AVFrame is usually reference counted through the + * AVBuffer API. The underlying buffer references are stored in AVFrame.buf / + * AVFrame.extended_buf. An AVFrame is considered to be reference counted if at + * least one reference is set, i.e. if AVFrame.buf[0] != NULL. In such a case, + * every single data plane must be contained in one of the buffers in + * AVFrame.buf or AVFrame.extended_buf. + * There may be a single buffer for all the data, or one separate buffer for + * each plane, or anything in between. + * + * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. + * + * Fields can be accessed through AVOptions, the name string used, matches the + * C structure field name for fields accessible through AVOptions. + */ +typedef struct AVFrame { +#define AV_NUM_DATA_POINTERS 8 + /** + * pointer to the picture/channel planes. + * This might be different from the first allocated byte. For video, + * it could even point to the end of the image data. + * + * All pointers in data and extended_data must point into one of the + * AVBufferRef in buf or extended_buf. + * + * Some decoders access areas outside 0,0 - width,height, please + * see avcodec_align_dimensions2(). Some filters and swscale can read + * up to 16 bytes beyond the planes, if these filters are to be used, + * then 16 extra bytes must be allocated. + * + * NOTE: Pointers not needed by the format MUST be set to NULL. + * + * @attention In case of video, the data[] pointers can point to the + * end of image data in order to reverse line order, when used in + * combination with negative values in the linesize[] array. + */ + uint8_t *data[AV_NUM_DATA_POINTERS]; + + /** + * For video, a positive or negative value, which is typically indicating + * the size in bytes of each picture line, but it can also be: + * - the negative byte size of lines for vertical flipping + * (with data[n] pointing to the end of the data + * - a positive or negative multiple of the byte size as for accessing + * even and odd fields of a frame (possibly flipped) + * + * For audio, only linesize[0] may be set. For planar audio, each channel + * plane must be the same size. + * + * For video the linesizes should be multiples of the CPUs alignment + * preference, this is 16 or 32 for modern desktop CPUs. + * Some code requires such alignment other code can be slower without + * correct alignment, for yet other it makes no difference. + * + * @note The linesize may be larger than the size of usable data -- there + * may be extra padding present for performance reasons. + * + * @attention In case of video, line size values can be negative to achieve + * a vertically inverted iteration over image lines. + */ + int linesize[AV_NUM_DATA_POINTERS]; + + /** + * pointers to the data planes/channels. + * + * For video, this should simply point to data[]. + * + * For planar audio, each channel has a separate data pointer, and + * linesize[0] contains the size of each channel buffer. + * For packed audio, there is just one data pointer, and linesize[0] + * contains the total size of the buffer for all channels. + * + * Note: Both data and extended_data should always be set in a valid frame, + * but for planar audio with more channels that can fit in data, + * extended_data must be used in order to access all channels. + */ + uint8_t **extended_data; + + /** + * @name Video dimensions + * Video frames only. The coded dimensions (in pixels) of the video frame, + * i.e. the size of the rectangle that contains some well-defined values. + * + * @note The part of the frame intended for display/presentation is further + * restricted by the @ref cropping "Cropping rectangle". + * @{ + */ + int width, height; + /** + * @} + */ + + /** + * number of audio samples (per channel) described by this frame + */ + int nb_samples; + + /** + * format of the frame, -1 if unknown or unset + * Values correspond to enum AVPixelFormat for video frames, + * enum AVSampleFormat for audio) + */ + int format; + +#if FF_API_FRAME_KEY + /** + * 1 -> keyframe, 0-> not + * + * @deprecated Use AV_FRAME_FLAG_KEY instead + */ + attribute_deprecated + int key_frame; +#endif + + /** + * Picture type of the frame. + */ + enum AVPictureType pict_type; + + /** + * Sample aspect ratio for the video frame, 0/1 if unknown/unspecified. + */ + AVRational sample_aspect_ratio; + + /** + * Presentation timestamp in time_base units (time when frame should be shown to user). + */ + int64_t pts; + + /** + * DTS copied from the AVPacket that triggered returning this frame. (if frame threading isn't used) + * This is also the Presentation time of this AVFrame calculated from + * only AVPacket.dts values without pts values. + */ + int64_t pkt_dts; + + /** + * Time base for the timestamps in this frame. + * In the future, this field may be set on frames output by decoders or + * filters, but its value will be by default ignored on input to encoders + * or filters. + */ + AVRational time_base; + + /** + * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) + */ + int quality; + + /** + * Frame owner's private data. + * + * This field may be set by the code that allocates/owns the frame data. + * It is then not touched by any library functions, except: + * - it is copied to other references by av_frame_copy_props() (and hence by + * av_frame_ref()); + * - it is set to NULL when the frame is cleared by av_frame_unref() + * - on the caller's explicit request. E.g. libavcodec encoders/decoders + * will copy this field to/from @ref AVPacket "AVPackets" if the caller sets + * @ref AV_CODEC_FLAG_COPY_OPAQUE. + * + * @see opaque_ref the reference-counted analogue + */ + void *opaque; + + /** + * Number of fields in this frame which should be repeated, i.e. the total + * duration of this frame should be repeat_pict + 2 normal field durations. + * + * For interlaced frames this field may be set to 1, which signals that this + * frame should be presented as 3 fields: beginning with the first field (as + * determined by AV_FRAME_FLAG_TOP_FIELD_FIRST being set or not), followed + * by the second field, and then the first field again. + * + * For progressive frames this field may be set to a multiple of 2, which + * signals that this frame's duration should be (repeat_pict + 2) / 2 + * normal frame durations. + * + * @note This field is computed from MPEG2 repeat_first_field flag and its + * associated flags, H.264 pic_struct from picture timing SEI, and + * their analogues in other codecs. Typically it should only be used when + * higher-layer timing information is not available. + */ + int repeat_pict; + +#if FF_API_INTERLACED_FRAME + /** + * The content of the picture is interlaced. + * + * @deprecated Use AV_FRAME_FLAG_INTERLACED instead + */ + attribute_deprecated + int interlaced_frame; + + /** + * If the content is interlaced, is top field displayed first. + * + * @deprecated Use AV_FRAME_FLAG_TOP_FIELD_FIRST instead + */ + attribute_deprecated + int top_field_first; +#endif + +#if FF_API_PALETTE_HAS_CHANGED + /** + * Tell user application that palette has changed from previous frame. + */ + attribute_deprecated + int palette_has_changed; +#endif + + /** + * Sample rate of the audio data. + */ + int sample_rate; + + /** + * AVBuffer references backing the data for this frame. All the pointers in + * data and extended_data must point inside one of the buffers in buf or + * extended_buf. This array must be filled contiguously -- if buf[i] is + * non-NULL then buf[j] must also be non-NULL for all j < i. + * + * There may be at most one AVBuffer per data plane, so for video this array + * always contains all the references. For planar audio with more than + * AV_NUM_DATA_POINTERS channels, there may be more buffers than can fit in + * this array. Then the extra AVBufferRef pointers are stored in the + * extended_buf array. + */ + AVBufferRef *buf[AV_NUM_DATA_POINTERS]; + + /** + * For planar audio which requires more than AV_NUM_DATA_POINTERS + * AVBufferRef pointers, this array will hold all the references which + * cannot fit into AVFrame.buf. + * + * Note that this is different from AVFrame.extended_data, which always + * contains all the pointers. This array only contains the extra pointers, + * which cannot fit into AVFrame.buf. + * + * This array is always allocated using av_malloc() by whoever constructs + * the frame. It is freed in av_frame_unref(). + */ + AVBufferRef **extended_buf; + /** + * Number of elements in extended_buf. + */ + int nb_extended_buf; + + AVFrameSideData **side_data; + int nb_side_data; + +/** + * @defgroup lavu_frame_flags AV_FRAME_FLAGS + * @ingroup lavu_frame + * Flags describing additional frame properties. + * + * @{ + */ + +/** + * The frame data may be corrupted, e.g. due to decoding errors. + */ +#define AV_FRAME_FLAG_CORRUPT (1 << 0) +/** + * A flag to mark frames that are keyframes. + */ +#define AV_FRAME_FLAG_KEY (1 << 1) +/** + * A flag to mark the frames which need to be decoded, but shouldn't be output. + */ +#define AV_FRAME_FLAG_DISCARD (1 << 2) +/** + * A flag to mark frames whose content is interlaced. + */ +#define AV_FRAME_FLAG_INTERLACED (1 << 3) +/** + * A flag to mark frames where the top field is displayed first if the content + * is interlaced. + */ +#define AV_FRAME_FLAG_TOP_FIELD_FIRST (1 << 4) +/** + * @} + */ + + /** + * Frame flags, a combination of @ref lavu_frame_flags + */ + int flags; + + /** + * MPEG vs JPEG YUV range. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorRange color_range; + + enum AVColorPrimaries color_primaries; + + enum AVColorTransferCharacteristic color_trc; + + /** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorSpace colorspace; + + enum AVChromaLocation chroma_location; + + /** + * frame timestamp estimated using various heuristics, in stream time base + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int64_t best_effort_timestamp; + +#if FF_API_FRAME_PKT + /** + * reordered pos from the last AVPacket that has been input into the decoder + * - encoding: unused + * - decoding: Read by user. + * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user + * data from packets to frames + */ + attribute_deprecated + int64_t pkt_pos; +#endif + + /** + * metadata. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVDictionary *metadata; + + /** + * decode error flags of the frame, set to a combination of + * FF_DECODE_ERROR_xxx flags if the decoder produced a frame, but there + * were errors during the decoding. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int decode_error_flags; +#define FF_DECODE_ERROR_INVALID_BITSTREAM 1 +#define FF_DECODE_ERROR_MISSING_REFERENCE 2 +#define FF_DECODE_ERROR_CONCEALMENT_ACTIVE 4 +#define FF_DECODE_ERROR_DECODE_SLICES 8 + +#if FF_API_FRAME_PKT + /** + * size of the corresponding packet containing the compressed + * frame. + * It is set to a negative value if unknown. + * - encoding: unused + * - decoding: set by libavcodec, read by user. + * @deprecated use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user + * data from packets to frames + */ + attribute_deprecated + int pkt_size; +#endif + + /** + * For hwaccel-format frames, this should be a reference to the + * AVHWFramesContext describing the frame. + */ + AVBufferRef *hw_frames_ctx; + + /** + * Frame owner's private data. + * + * This field may be set by the code that allocates/owns the frame data. + * It is then not touched by any library functions, except: + * - a new reference to the underlying buffer is propagated by + * av_frame_copy_props() (and hence by av_frame_ref()); + * - it is unreferenced in av_frame_unref(); + * - on the caller's explicit request. E.g. libavcodec encoders/decoders + * will propagate a new reference to/from @ref AVPacket "AVPackets" if the + * caller sets @ref AV_CODEC_FLAG_COPY_OPAQUE. + * + * @see opaque the plain pointer analogue + */ + AVBufferRef *opaque_ref; + + /** + * @anchor cropping + * @name Cropping + * Video frames only. The number of pixels to discard from the the + * top/bottom/left/right border of the frame to obtain the sub-rectangle of + * the frame intended for presentation. + * @{ + */ + size_t crop_top; + size_t crop_bottom; + size_t crop_left; + size_t crop_right; + /** + * @} + */ + + /** + * AVBufferRef for internal use by a single libav* library. + * Must not be used to transfer data between libraries. + * Has to be NULL when ownership of the frame leaves the respective library. + * + * Code outside the FFmpeg libs should never check or change the contents of the buffer ref. + * + * FFmpeg calls av_buffer_unref() on it when the frame is unreferenced. + * av_frame_copy_props() calls create a new reference with av_buffer_ref() + * for the target frame's private_ref field. + */ + AVBufferRef *private_ref; + + /** + * Channel layout of the audio data. + */ + AVChannelLayout ch_layout; + + /** + * Duration of the frame, in the same units as pts. 0 if unknown. + */ + int64_t duration; +} AVFrame; + + +/** + * Allocate an AVFrame and set its fields to default values. The resulting + * struct must be freed using av_frame_free(). + * + * @return An AVFrame filled with default values or NULL on failure. + * + * @note this only allocates the AVFrame itself, not the data buffers. Those + * must be allocated through other means, e.g. with av_frame_get_buffer() or + * manually. + */ +AVFrame *av_frame_alloc(void); + +/** + * Free the frame and any dynamically allocated objects in it, + * e.g. extended_data. If the frame is reference counted, it will be + * unreferenced first. + * + * @param frame frame to be freed. The pointer will be set to NULL. + */ +void av_frame_free(AVFrame **frame); + +/** + * Set up a new reference to the data described by the source frame. + * + * Copy frame properties from src to dst and create a new reference for each + * AVBufferRef from src. + * + * If src is not reference counted, new buffers are allocated and the data is + * copied. + * + * @warning: dst MUST have been either unreferenced with av_frame_unref(dst), + * or newly allocated with av_frame_alloc() before calling this + * function, or undefined behavior will occur. + * + * @return 0 on success, a negative AVERROR on error + */ +int av_frame_ref(AVFrame *dst, const AVFrame *src); + +/** + * Ensure the destination frame refers to the same data described by the source + * frame, either by creating a new reference for each AVBufferRef from src if + * they differ from those in dst, by allocating new buffers and copying data if + * src is not reference counted, or by unrefencing it if src is empty. + * + * Frame properties on dst will be replaced by those from src. + * + * @return 0 on success, a negative AVERROR on error. On error, dst is + * unreferenced. + */ +int av_frame_replace(AVFrame *dst, const AVFrame *src); + +/** + * Create a new frame that references the same data as src. + * + * This is a shortcut for av_frame_alloc()+av_frame_ref(). + * + * @return newly created AVFrame on success, NULL on error. + */ +AVFrame *av_frame_clone(const AVFrame *src); + +/** + * Unreference all the buffers referenced by frame and reset the frame fields. + */ +void av_frame_unref(AVFrame *frame); + +/** + * Move everything contained in src to dst and reset src. + * + * @warning: dst is not unreferenced, but directly overwritten without reading + * or deallocating its contents. Call av_frame_unref(dst) manually + * before calling this function to ensure that no memory is leaked. + */ +void av_frame_move_ref(AVFrame *dst, AVFrame *src); + +/** + * Allocate new buffer(s) for audio or video data. + * + * The following fields must be set on frame before calling this function: + * - format (pixel format for video, sample format for audio) + * - width and height for video + * - nb_samples and ch_layout for audio + * + * This function will fill AVFrame.data and AVFrame.buf arrays and, if + * necessary, allocate and fill AVFrame.extended_data and AVFrame.extended_buf. + * For planar formats, one buffer will be allocated for each plane. + * + * @warning: if frame already has been allocated, calling this function will + * leak memory. In addition, undefined behavior can occur in certain + * cases. + * + * @param frame frame in which to store the new buffers. + * @param align Required buffer size alignment. If equal to 0, alignment will be + * chosen automatically for the current CPU. It is highly + * recommended to pass 0 here unless you know what you are doing. + * + * @return 0 on success, a negative AVERROR on error. + */ +int av_frame_get_buffer(AVFrame *frame, int align); + +/** + * Check if the frame data is writable. + * + * @return A positive value if the frame data is writable (which is true if and + * only if each of the underlying buffers has only one reference, namely the one + * stored in this frame). Return 0 otherwise. + * + * If 1 is returned the answer is valid until av_buffer_ref() is called on any + * of the underlying AVBufferRefs (e.g. through av_frame_ref() or directly). + * + * @see av_frame_make_writable(), av_buffer_is_writable() + */ +int av_frame_is_writable(AVFrame *frame); + +/** + * Ensure that the frame data is writable, avoiding data copy if possible. + * + * Do nothing if the frame is writable, allocate new buffers and copy the data + * if it is not. Non-refcounted frames behave as non-writable, i.e. a copy + * is always made. + * + * @return 0 on success, a negative AVERROR on error. + * + * @see av_frame_is_writable(), av_buffer_is_writable(), + * av_buffer_make_writable() + */ +int av_frame_make_writable(AVFrame *frame); + +/** + * Copy the frame data from src to dst. + * + * This function does not allocate anything, dst must be already initialized and + * allocated with the same parameters as src. + * + * This function only copies the frame data (i.e. the contents of the data / + * extended data arrays), not any other properties. + * + * @return >= 0 on success, a negative AVERROR on error. + */ +int av_frame_copy(AVFrame *dst, const AVFrame *src); + +/** + * Copy only "metadata" fields from src to dst. + * + * Metadata for the purpose of this function are those fields that do not affect + * the data layout in the buffers. E.g. pts, sample rate (for audio) or sample + * aspect ratio (for video), but not width/height or channel layout. + * Side data is also copied. + */ +int av_frame_copy_props(AVFrame *dst, const AVFrame *src); + +/** + * Get the buffer reference a given data plane is stored in. + * + * @param frame the frame to get the plane's buffer from + * @param plane index of the data plane of interest in frame->extended_data. + * + * @return the buffer reference that contains the plane or NULL if the input + * frame is not valid. + */ +AVBufferRef *av_frame_get_plane_buffer(const AVFrame *frame, int plane); + +/** + * Add a new side data to a frame. + * + * @param frame a frame to which the side data should be added + * @param type type of the added side data + * @param size size of the side data + * + * @return newly added side data on success, NULL on error + */ +AVFrameSideData *av_frame_new_side_data(AVFrame *frame, + enum AVFrameSideDataType type, + size_t size); + +/** + * Add a new side data to a frame from an existing AVBufferRef + * + * @param frame a frame to which the side data should be added + * @param type the type of the added side data + * @param buf an AVBufferRef to add as side data. The ownership of + * the reference is transferred to the frame. + * + * @return newly added side data on success, NULL on error. On failure + * the frame is unchanged and the AVBufferRef remains owned by + * the caller. + */ +AVFrameSideData *av_frame_new_side_data_from_buf(AVFrame *frame, + enum AVFrameSideDataType type, + AVBufferRef *buf); + +/** + * @return a pointer to the side data of a given type on success, NULL if there + * is no side data with such type in this frame. + */ +AVFrameSideData *av_frame_get_side_data(const AVFrame *frame, + enum AVFrameSideDataType type); + +/** + * Remove and free all side data instances of the given type. + */ +void av_frame_remove_side_data(AVFrame *frame, enum AVFrameSideDataType type); + + +/** + * Flags for frame cropping. + */ +enum { + /** + * Apply the maximum possible cropping, even if it requires setting the + * AVFrame.data[] entries to unaligned pointers. Passing unaligned data + * to FFmpeg API is generally not allowed, and causes undefined behavior + * (such as crashes). You can pass unaligned data only to FFmpeg APIs that + * are explicitly documented to accept it. Use this flag only if you + * absolutely know what you are doing. + */ + AV_FRAME_CROP_UNALIGNED = 1 << 0, +}; + +/** + * Crop the given video AVFrame according to its crop_left/crop_top/crop_right/ + * crop_bottom fields. If cropping is successful, the function will adjust the + * data pointers and the width/height fields, and set the crop fields to 0. + * + * In all cases, the cropping boundaries will be rounded to the inherent + * alignment of the pixel format. In some cases, such as for opaque hwaccel + * formats, the left/top cropping is ignored. The crop fields are set to 0 even + * if the cropping was rounded or ignored. + * + * @param frame the frame which should be cropped + * @param flags Some combination of AV_FRAME_CROP_* flags, or 0. + * + * @return >= 0 on success, a negative AVERROR on error. If the cropping fields + * were invalid, AVERROR(ERANGE) is returned, and nothing is changed. + */ +int av_frame_apply_cropping(AVFrame *frame, int flags); + +/** + * @return a string identifying the side data type + */ +const char *av_frame_side_data_name(enum AVFrameSideDataType type); + +/** + * @return side data descriptor corresponding to a given side data type, NULL + * when not available. + */ +const AVSideDataDescriptor *av_frame_side_data_desc(enum AVFrameSideDataType type); + +/** + * Free all side data entries and their contents, then zeroes out the + * values which the pointers are pointing to. + * + * @param sd pointer to array of side data to free. Will be set to NULL + * upon return. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. Will be set to 0 upon return. + */ +void av_frame_side_data_free(AVFrameSideData ***sd, int *nb_sd); + +/** + * Remove existing entries before adding new ones. + */ +#define AV_FRAME_SIDE_DATA_FLAG_UNIQUE (1 << 0) +/** + * Don't add a new entry if another of the same type exists. + * Applies only for side data types without the AV_SIDE_DATA_PROP_MULTI prop. + */ +#define AV_FRAME_SIDE_DATA_FLAG_REPLACE (1 << 1) + +/** + * Add new side data entry to an array. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param type type of the added side data + * @param size size of the side data + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return newly added side data on success, NULL on error. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + */ +AVFrameSideData *av_frame_side_data_new(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type, + size_t size, unsigned int flags); + +/** + * Add a new side data entry to an array from an existing AVBufferRef. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param type type of the added side data + * @param buf Pointer to AVBufferRef to add to the array. On success, + * the function takes ownership of the AVBufferRef and *buf is + * set to NULL, unless AV_FRAME_SIDE_DATA_FLAG_NEW_REF is set + * in which case the ownership will remain with the caller. + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return newly added side data on success, NULL on error. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + * + */ +AVFrameSideData *av_frame_side_data_add(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type, + AVBufferRef **buf, unsigned int flags); + +/** + * Add a new side data entry to an array based on existing side data, taking + * a reference towards the contained AVBufferRef. + * + * @param sd pointer to array of side data to which to add another entry, + * or to NULL in order to start a new array. + * @param nb_sd pointer to an integer containing the number of entries in + * the array. + * @param src side data to be cloned, with a new reference utilized + * for the buffer. + * @param flags Some combination of AV_FRAME_SIDE_DATA_FLAG_* flags, or 0. + * + * @return negative error code on failure, >=0 on success. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_UNIQUE being set, entries of + * matching AVFrameSideDataType will be removed before the addition + * is attempted. + * @note In case of AV_FRAME_SIDE_DATA_FLAG_REPLACE being set, if an + * entry of the same type already exists, it will be replaced instead. + */ +int av_frame_side_data_clone(AVFrameSideData ***sd, int *nb_sd, + const AVFrameSideData *src, unsigned int flags); + +/** + * Get a side data entry of a specific type from an array. + * + * @param sd array of side data. + * @param nb_sd integer containing the number of entries in the array. + * @param type type of side data to be queried + * + * @return a pointer to the side data of a given type on success, NULL if there + * is no side data with such type in this set. + */ +const AVFrameSideData *av_frame_side_data_get_c(const AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type); + +/** + * Wrapper around av_frame_side_data_get_c() to workaround the limitation + * that for any type T the conversion from T * const * to const T * const * + * is not performed automatically in C. + * @see av_frame_side_data_get_c() + */ +static inline +const AVFrameSideData *av_frame_side_data_get(AVFrameSideData * const *sd, + const int nb_sd, + enum AVFrameSideDataType type) +{ + return av_frame_side_data_get_c((const AVFrameSideData * const *)sd, + nb_sd, type); +} + +/** + * Remove and free all side data instances of the given type from an array. + */ +void av_frame_side_data_remove(AVFrameSideData ***sd, int *nb_sd, + enum AVFrameSideDataType type); +/** + * @} + */ + +#endif /* AVUTIL_FRAME_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hash.h b/deps/ffmpeg/macos/include/libavutil/hash.h new file mode 100644 index 0000000..94151de --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hash.h @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2013 Reimar Döffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_hash_generic + * Generic hashing API + */ + +#ifndef AVUTIL_HASH_H +#define AVUTIL_HASH_H + +#include +#include + +/** + * @defgroup lavu_hash Hash Functions + * @ingroup lavu_crypto + * Hash functions useful in multimedia. + * + * Hash functions are widely used in multimedia, from error checking and + * concealment to internal regression testing. libavutil has efficient + * implementations of a variety of hash functions that may be useful for + * FFmpeg and other multimedia applications. + * + * @{ + * + * @defgroup lavu_hash_generic Generic Hashing API + * An abstraction layer for all hash functions supported by libavutil. + * + * If your application needs to support a wide range of different hash + * functions, then the Generic Hashing API is for you. It provides a generic, + * reusable API for @ref lavu_hash "all hash functions" implemented in libavutil. + * If you just need to use one particular hash function, use the @ref lavu_hash + * "individual hash" directly. + * + * @section Sample Code + * + * A basic template for using the Generic Hashing API follows: + * + * @code + * struct AVHashContext *ctx = NULL; + * const char *hash_name = NULL; + * uint8_t *output_buf = NULL; + * + * // Select from a string returned by av_hash_names() + * hash_name = ...; + * + * // Allocate a hash context + * ret = av_hash_alloc(&ctx, hash_name); + * if (ret < 0) + * return ret; + * + * // Initialize the hash context + * av_hash_init(ctx); + * + * // Update the hash context with data + * while (data_left) { + * av_hash_update(ctx, data, size); + * } + * + * // Now we have no more data, so it is time to finalize the hash and get the + * // output. But we need to first allocate an output buffer. Note that you can + * // use any memory allocation function, including malloc(), not just + * // av_malloc(). + * output_buf = av_malloc(av_hash_get_size(ctx)); + * if (!output_buf) + * return AVERROR(ENOMEM); + * + * // Finalize the hash context. + * // You can use any of the av_hash_final*() functions provided, for other + * // output formats. If you do so, be sure to adjust the memory allocation + * // above. See the function documentation below for the exact amount of extra + * // memory needed. + * av_hash_final(ctx, output_buffer); + * + * // Free the context + * av_hash_freep(&ctx); + * @endcode + * + * @section Hash Function-Specific Information + * If the CRC32 hash is selected, the #AV_CRC_32_IEEE polynomial will be + * used. + * + * If the Murmur3 hash is selected, the default seed will be used. See @ref + * lavu_murmur3_seedinfo "Murmur3" for more information. + * + * @{ + */ + +/** + * @example ffhash.c + * This example is a simple command line application that takes one or more + * arguments. It demonstrates a typical use of the hashing API with allocation, + * initialization, updating, and finalizing. + */ + +struct AVHashContext; + +/** + * Allocate a hash context for the algorithm specified by name. + * + * @return >= 0 for success, a negative error code for failure + * + * @note The context is not initialized after a call to this function; you must + * call av_hash_init() to do so. + */ +int av_hash_alloc(struct AVHashContext **ctx, const char *name); + +/** + * Get the names of available hash algorithms. + * + * This function can be used to enumerate the algorithms. + * + * @param[in] i Index of the hash algorithm, starting from 0 + * @return Pointer to a static string or `NULL` if `i` is out of range + */ +const char *av_hash_names(int i); + +/** + * Get the name of the algorithm corresponding to the given hash context. + */ +const char *av_hash_get_name(const struct AVHashContext *ctx); + +/** + * Maximum value that av_hash_get_size() will currently return. + * + * You can use this if you absolutely want or need to use static allocation for + * the output buffer and are fine with not supporting hashes newly added to + * libavutil without recompilation. + * + * @warning + * Adding new hashes with larger sizes, and increasing the macro while doing + * so, will not be considered an ABI change. To prevent your code from + * overflowing a buffer, either dynamically allocate the output buffer with + * av_hash_get_size(), or limit your use of the Hashing API to hashes that are + * already in FFmpeg during the time of compilation. + */ +#define AV_HASH_MAX_SIZE 64 + +/** + * Get the size of the resulting hash value in bytes. + * + * The maximum value this function will currently return is available as macro + * #AV_HASH_MAX_SIZE. + * + * @param[in] ctx Hash context + * @return Size of the hash value in bytes + */ +int av_hash_get_size(const struct AVHashContext *ctx); + +/** + * Initialize or reset a hash context. + * + * @param[in,out] ctx Hash context + */ +void av_hash_init(struct AVHashContext *ctx); + +/** + * Update a hash context with additional data. + * + * @param[in,out] ctx Hash context + * @param[in] src Data to be added to the hash context + * @param[in] len Size of the additional data + */ +void av_hash_update(struct AVHashContext *ctx, const uint8_t *src, size_t len); + +/** + * Finalize a hash context and compute the actual hash value. + * + * The minimum size of `dst` buffer is given by av_hash_get_size() or + * #AV_HASH_MAX_SIZE. The use of the latter macro is discouraged. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * + * @see av_hash_final_bin() provides an alternative API + */ +void av_hash_final(struct AVHashContext *ctx, uint8_t *dst); + +/** + * Finalize a hash context and store the actual hash value in a buffer. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * If `size` is smaller than the hash size (given by av_hash_get_size()), the + * hash is truncated; if size is larger, the buffer is padded with 0. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * @param[in] size Number of bytes to write to `dst` + */ +void av_hash_final_bin(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Finalize a hash context and store the hexadecimal representation of the + * actual hash value as a string. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * The string is always 0-terminated. + * + * If `size` is smaller than `2 * hash_size + 1`, where `hash_size` is the + * value returned by av_hash_get_size(), the string will be truncated. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the string will be stored + * @param[in] size Maximum number of bytes to write to `dst` + */ +void av_hash_final_hex(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Finalize a hash context and store the Base64 representation of the + * actual hash value as a string. + * + * It is not safe to update or finalize a hash context again, if it has already + * been finalized. + * + * The string is always 0-terminated. + * + * If `size` is smaller than AV_BASE64_SIZE(hash_size), where `hash_size` is + * the value returned by av_hash_get_size(), the string will be truncated. + * + * @param[in,out] ctx Hash context + * @param[out] dst Where the final hash value will be stored + * @param[in] size Maximum number of bytes to write to `dst` + */ +void av_hash_final_b64(struct AVHashContext *ctx, uint8_t *dst, int size); + +/** + * Free hash context and set hash context pointer to `NULL`. + * + * @param[in,out] ctx Pointer to hash context + */ +void av_hash_freep(struct AVHashContext **ctx); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_HASH_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_metadata.h b/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_metadata.h new file mode 100644 index 0000000..5100ed6 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_metadata.h @@ -0,0 +1,376 @@ +/* + * Copyright (c) 2018 Mohammad Izadi + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HDR_DYNAMIC_METADATA_H +#define AVUTIL_HDR_DYNAMIC_METADATA_H + +#include "frame.h" +#include "rational.h" + +/** + * Option for overlapping elliptical pixel selectors in an image. + */ +enum AVHDRPlusOverlapProcessOption { + AV_HDR_PLUS_OVERLAP_PROCESS_WEIGHTED_AVERAGING = 0, + AV_HDR_PLUS_OVERLAP_PROCESS_LAYERING = 1, +}; + +/** + * Represents the percentile at a specific percentage in + * a distribution. + */ +typedef struct AVHDRPlusPercentile { + /** + * The percentage value corresponding to a specific percentile linearized + * RGB value in the processing window in the scene. The value shall be in + * the range of 0 to100, inclusive. + */ + uint8_t percentage; + + /** + * The linearized maxRGB value at a specific percentile in the processing + * window in the scene. The value shall be in the range of 0 to 1, inclusive + * and in multiples of 0.00001. + */ + AVRational percentile; +} AVHDRPlusPercentile; + +/** + * Color transform parameters at a processing window in a dynamic metadata for + * SMPTE 2094-40. + */ +typedef struct AVHDRPlusColorTransformParams { + /** + * The relative x coordinate of the top left pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(width of Picture - 1). The value 1 corresponds + * to the absolute coordinate of width of Picture - 1. The value for + * first processing window shall be 0. + */ + AVRational window_upper_left_corner_x; + + /** + * The relative y coordinate of the top left pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(height of Picture - 1). The value 1 corresponds + * to the absolute coordinate of height of Picture - 1. The value for + * first processing window shall be 0. + */ + AVRational window_upper_left_corner_y; + + /** + * The relative x coordinate of the bottom right pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(width of Picture - 1). The value 1 corresponds + * to the absolute coordinate of width of Picture - 1. The value for + * first processing window shall be 1. + */ + AVRational window_lower_right_corner_x; + + /** + * The relative y coordinate of the bottom right pixel of the processing + * window. The value shall be in the range of 0 and 1, inclusive and + * in multiples of 1/(height of Picture - 1). The value 1 corresponds + * to the absolute coordinate of height of Picture - 1. The value for + * first processing window shall be 1. + */ + AVRational window_lower_right_corner_y; + + /** + * The x coordinate of the center position of the concentric internal and + * external ellipses of the elliptical pixel selector in the processing + * window. The value shall be in the range of 0 to (width of Picture - 1), + * inclusive and in multiples of 1 pixel. + */ + uint16_t center_of_ellipse_x; + + /** + * The y coordinate of the center position of the concentric internal and + * external ellipses of the elliptical pixel selector in the processing + * window. The value shall be in the range of 0 to (height of Picture - 1), + * inclusive and in multiples of 1 pixel. + */ + uint16_t center_of_ellipse_y; + + /** + * The clockwise rotation angle in degree of arc with respect to the + * positive direction of the x-axis of the concentric internal and external + * ellipses of the elliptical pixel selector in the processing window. The + * value shall be in the range of 0 to 180, inclusive and in multiples of 1. + */ + uint8_t rotation_angle; + + /** + * The semi-major axis value of the internal ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value shall be + * in the range of 1 to 65535, inclusive and in multiples of 1 pixel. + */ + uint16_t semimajor_axis_internal_ellipse; + + /** + * The semi-major axis value of the external ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value + * shall not be less than semimajor_axis_internal_ellipse of the current + * processing window. The value shall be in the range of 1 to 65535, + * inclusive and in multiples of 1 pixel. + */ + uint16_t semimajor_axis_external_ellipse; + + /** + * The semi-minor axis value of the external ellipse of the elliptical pixel + * selector in amount of pixels in the processing window. The value shall be + * in the range of 1 to 65535, inclusive and in multiples of 1 pixel. + */ + uint16_t semiminor_axis_external_ellipse; + + /** + * Overlap process option indicates one of the two methods of combining + * rendered pixels in the processing window in an image with at least one + * elliptical pixel selector. For overlapping elliptical pixel selectors + * in an image, overlap_process_option shall have the same value. + */ + enum AVHDRPlusOverlapProcessOption overlap_process_option; + + /** + * The maximum of the color components of linearized RGB values in the + * processing window in the scene. The values should be in the range of 0 to + * 1, inclusive and in multiples of 0.00001. maxscl[ 0 ], maxscl[ 1 ], and + * maxscl[ 2 ] are corresponding to R, G, B color components respectively. + */ + AVRational maxscl[3]; + + /** + * The average of linearized maxRGB values in the processing window in the + * scene. The value should be in the range of 0 to 1, inclusive and in + * multiples of 0.00001. + */ + AVRational average_maxrgb; + + /** + * The number of linearized maxRGB values at given percentiles in the + * processing window in the scene. The maximum value shall be 15. + */ + uint8_t num_distribution_maxrgb_percentiles; + + /** + * The linearized maxRGB values at given percentiles in the + * processing window in the scene. + */ + AVHDRPlusPercentile distribution_maxrgb[15]; + + /** + * The fraction of selected pixels in the image that contains the brightest + * pixel in the scene. The value shall be in the range of 0 to 1, inclusive + * and in multiples of 0.001. + */ + AVRational fraction_bright_pixels; + + /** + * This flag indicates that the metadata for the tone mapping function in + * the processing window is present (for value of 1). + */ + uint8_t tone_mapping_flag; + + /** + * The x coordinate of the separation point between the linear part and the + * curved part of the tone mapping function. The value shall be in the range + * of 0 to 1, excluding 0 and in multiples of 1/4095. + */ + AVRational knee_point_x; + + /** + * The y coordinate of the separation point between the linear part and the + * curved part of the tone mapping function. The value shall be in the range + * of 0 to 1, excluding 0 and in multiples of 1/4095. + */ + AVRational knee_point_y; + + /** + * The number of the intermediate anchor parameters of the tone mapping + * function in the processing window. The maximum value shall be 15. + */ + uint8_t num_bezier_curve_anchors; + + /** + * The intermediate anchor parameters of the tone mapping function in the + * processing window in the scene. The values should be in the range of 0 + * to 1, inclusive and in multiples of 1/1023. + */ + AVRational bezier_curve_anchors[15]; + + /** + * This flag shall be equal to 0 in bitstreams conforming to this version of + * this Specification. Other values are reserved for future use. + */ + uint8_t color_saturation_mapping_flag; + + /** + * The color saturation gain in the processing window in the scene. The + * value shall be in the range of 0 to 63/8, inclusive and in multiples of + * 1/8. The default value shall be 1. + */ + AVRational color_saturation_weight; +} AVHDRPlusColorTransformParams; + +/** + * This struct represents dynamic metadata for color volume transform - + * application 4 of SMPTE 2094-40:2016 standard. + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with + * av_dynamic_hdr_plus_alloc() and its size is not a part of + * the public ABI. + */ +typedef struct AVDynamicHDRPlus { + /** + * Country code by Rec. ITU-T T.35 Annex A. The value shall be 0xB5. + */ + uint8_t itu_t_t35_country_code; + + /** + * Application version in the application defining document in ST-2094 + * suite. The value shall be set to 0. + */ + uint8_t application_version; + + /** + * The number of processing windows. The value shall be in the range + * of 1 to 3, inclusive. + */ + uint8_t num_windows; + + /** + * The color transform parameters for every processing window. + */ + AVHDRPlusColorTransformParams params[3]; + + /** + * The nominal maximum display luminance of the targeted system display, + * in units of 0.0001 candelas per square metre. The value shall be in + * the range of 0 to 10000, inclusive. + */ + AVRational targeted_system_display_maximum_luminance; + + /** + * This flag shall be equal to 0 in bit streams conforming to this version + * of this Specification. The value 1 is reserved for future use. + */ + uint8_t targeted_system_display_actual_peak_luminance_flag; + + /** + * The number of rows in the targeted system_display_actual_peak_luminance + * array. The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_rows_targeted_system_display_actual_peak_luminance; + + /** + * The number of columns in the + * targeted_system_display_actual_peak_luminance array. The value shall be + * in the range of 2 to 25, inclusive. + */ + uint8_t num_cols_targeted_system_display_actual_peak_luminance; + + /** + * The normalized actual peak luminance of the targeted system display. The + * values should be in the range of 0 to 1, inclusive and in multiples of + * 1/15. + */ + AVRational targeted_system_display_actual_peak_luminance[25][25]; + + /** + * This flag shall be equal to 0 in bitstreams conforming to this version of + * this Specification. The value 1 is reserved for future use. + */ + uint8_t mastering_display_actual_peak_luminance_flag; + + /** + * The number of rows in the mastering_display_actual_peak_luminance array. + * The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_rows_mastering_display_actual_peak_luminance; + + /** + * The number of columns in the mastering_display_actual_peak_luminance + * array. The value shall be in the range of 2 to 25, inclusive. + */ + uint8_t num_cols_mastering_display_actual_peak_luminance; + + /** + * The normalized actual peak luminance of the mastering display used for + * mastering the image essence. The values should be in the range of 0 to 1, + * inclusive and in multiples of 1/15. + */ + AVRational mastering_display_actual_peak_luminance[25][25]; +} AVDynamicHDRPlus; + +/** + * Allocate an AVDynamicHDRPlus structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVDynamicHDRPlus filled with default values or NULL + * on failure. + */ +AVDynamicHDRPlus *av_dynamic_hdr_plus_alloc(size_t *size); + +/** + * Allocate a complete AVDynamicHDRPlus and add it to the frame. + * @param frame The frame which side data is added to. + * + * @return The AVDynamicHDRPlus structure to be filled by caller or NULL + * on failure. + */ +AVDynamicHDRPlus *av_dynamic_hdr_plus_create_side_data(AVFrame *frame); + +/** + * Parse the user data registered ITU-T T.35 to AVbuffer (AVDynamicHDRPlus). + * The T.35 buffer must begin with the application mode, skipping the + * country code, terminal provider codes, and application identifier. + * @param s A pointer containing the decoded AVDynamicHDRPlus structure. + * @param data The byte array containing the raw ITU-T T.35 data. + * @param size Size of the data array in bytes. + * + * @return >= 0 on success. Otherwise, returns the appropriate AVERROR. + */ +int av_dynamic_hdr_plus_from_t35(AVDynamicHDRPlus *s, const uint8_t *data, + size_t size); + +#define AV_HDR_PLUS_MAX_PAYLOAD_SIZE 907 + +/** + * Serialize dynamic HDR10+ metadata to a user data registered ITU-T T.35 buffer, + * excluding the first 48 bytes of the header, and beginning with the application mode. + * @param s A pointer containing the decoded AVDynamicHDRPlus structure. + * @param[in,out] data A pointer to pointer to a byte buffer to be filled with the + * serialized metadata. + * If *data is NULL, a buffer be will be allocated and a pointer to + * it stored in its place. The caller assumes ownership of the buffer. + * May be NULL, in which case the function will only store the + * required buffer size in *size. + * @param[in,out] size A pointer to a size to be set to the returned buffer's size. + * If *data is not NULL, *size must contain the size of the input + * buffer. May be NULL only if *data is NULL. + * + * @return >= 0 on success. Otherwise, returns the appropriate AVERROR. + */ +int av_dynamic_hdr_plus_to_t35(const AVDynamicHDRPlus *s, uint8_t **data, size_t *size); + +#endif /* AVUTIL_HDR_DYNAMIC_METADATA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_vivid_metadata.h b/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_vivid_metadata.h new file mode 100644 index 0000000..4524a81 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hdr_dynamic_vivid_metadata.h @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2021 Limin Wang + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H +#define AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H + +#include "frame.h" +#include "rational.h" + +/** + * HDR Vivid three spline params. + */ +typedef struct AVHDRVivid3SplineParams { + /** + * The mode of three Spline. the value shall be in the range + * of 0 to 3, inclusive. + */ + int th_mode; + + /** + * three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive + * and in multiples of 1.0/255. + * + */ + AVRational th_enable_mb; + + /** + * 3Spline_TH_enable of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive. + * and in multiples of 1.0/4095. + */ + AVRational th_enable; + + /** + * 3Spline_TH_Delta1 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + */ + AVRational th_delta1; + + /** + * 3Spline_TH_Delta2 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + */ + AVRational th_delta2; + + /** + * 3Spline_enable_Strength of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive, + * and in multiples of 1.0/255. + */ + AVRational enable_strength; +} AVHDRVivid3SplineParams; + +/** + * Color tone mapping parameters at a processing window in a dynamic metadata for + * CUVA 005.1:2021. + */ +typedef struct AVHDRVividColorToneMappingParams { + /** + * The nominal maximum display luminance of the targeted system display, + * in multiples of 1.0/4095 candelas per square metre. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational targeted_system_display_maximum_luminance; + + /** + * This flag indicates that transfer the base paramter(for value of 1) + */ + int base_enable_flag; + + /** + * base_param_m_p in the base parameter, + * in multiples of 1.0/16383. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_m_p; + + /** + * base_param_m_m in the base parameter, + * in multiples of 1.0/10. The value shall be in + * the range of 0.0 to 6.3, inclusive. + */ + AVRational base_param_m_m; + + /** + * base_param_m_a in the base parameter, + * in multiples of 1.0/1023. The value shall be in + * the range of 0.0 to 1.0 inclusive. + */ + AVRational base_param_m_a; + + /** + * base_param_m_b in the base parameter, + * in multiples of 1/1023. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_m_b; + + /** + * base_param_m_n in the base parameter, + * in multiples of 1.0/10. The value shall be in + * the range of 0.0 to 6.3, inclusive. + */ + AVRational base_param_m_n; + + /** + * indicates k1_0 in the base parameter, + * base_param_k1 <= 1: k1_0 = base_param_k1 + * base_param_k1 > 1: reserved + */ + int base_param_k1; + + /** + * indicates k2_0 in the base parameter, + * base_param_k2 <= 1: k2_0 = base_param_k2 + * base_param_k2 > 1: reserved + */ + int base_param_k2; + + /** + * indicates k3_0 in the base parameter, + * base_param_k3 == 1: k3_0 = base_param_k3 + * base_param_k3 == 2: k3_0 = maximum_maxrgb + * base_param_k3 > 2: reserved + */ + int base_param_k3; + + /** + * This flag indicates that delta mode of base paramter(for value of 1) + */ + int base_param_Delta_enable_mode; + + /** + * base_param_Delta in the base parameter, + * in multiples of 1.0/127. The value shall be in + * the range of 0.0 to 1.0, inclusive. + */ + AVRational base_param_Delta; + + /** + * indicates 3Spline_enable_flag in the base parameter, + * This flag indicates that transfer three Spline of base paramter(for value of 1) + */ + int three_Spline_enable_flag; + + /** + * The number of three Spline. The value shall be in the range + * of 1 to 2, inclusive. + */ + int three_Spline_num; + +#if FF_API_HDR_VIVID_THREE_SPLINE + /** + * The mode of three Spline. the value shall be in the range + * of 0 to 3, inclusive. + * @deprecated Use three_spline instead + */ + attribute_deprecated + int three_Spline_TH_mode; + + /** + * three_Spline_TH_enable_MB is in the range of 0.0 to 1.0, inclusive + * and in multiples of 1.0/255. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_enable_MB; + + /** + * 3Spline_TH_enable of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive. + * and in multiples of 1.0/4095. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_enable; + + /** + * 3Spline_TH_Delta1 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_Delta1; + + /** + * 3Spline_TH_Delta2 of three Spline. + * The value shall be in the range of 0.0 to 0.25, inclusive, + * and in multiples of 0.25/1023. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_TH_Delta2; + + /** + * 3Spline_enable_Strength of three Spline. + * The value shall be in the range of 0.0 to 1.0, inclusive, + * and in multiples of 1.0/255. + * @deprecated Use three_spline instead + */ + attribute_deprecated + AVRational three_Spline_enable_Strength; +#endif + + AVHDRVivid3SplineParams three_spline[2]; +} AVHDRVividColorToneMappingParams; + + +/** + * Color transform parameters at a processing window in a dynamic metadata for + * CUVA 005.1:2021. + */ +typedef struct AVHDRVividColorTransformParams { + /** + * Indicates the minimum brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational minimum_maxrgb; + + /** + * Indicates the average brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational average_maxrgb; + + /** + * Indicates the variance brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, + * inclusive and in multiples of 1/4095. + */ + AVRational variance_maxrgb; + + /** + * Indicates the maximum brightness of the displayed content. + * The values should be in the range of 0.0 to 1.0, inclusive + * and in multiples of 1/4095. + */ + AVRational maximum_maxrgb; + + /** + * This flag indicates that the metadata for the tone mapping function in + * the processing window is present (for value of 1). + */ + int tone_mapping_mode_flag; + + /** + * The number of tone mapping param. The value shall be in the range + * of 1 to 2, inclusive. + */ + int tone_mapping_param_num; + + /** + * The color tone mapping parameters. + */ + AVHDRVividColorToneMappingParams tm_params[2]; + + /** + * This flag indicates that the metadata for the color saturation mapping in + * the processing window is present (for value of 1). + */ + int color_saturation_mapping_flag; + + /** + * The number of color saturation param. The value shall be in the range + * of 0 to 7, inclusive. + */ + int color_saturation_num; + + /** + * Indicates the color correction strength parameter. + * The values should be in the range of 0.0 to 2.0, inclusive + * and in multiples of 1/128. + */ + AVRational color_saturation_gain[8]; +} AVHDRVividColorTransformParams; + +/** + * This struct represents dynamic metadata for color volume transform - + * CUVA 005.1:2021 standard + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with + * av_dynamic_hdr_vivid_alloc() and its size is not a part of + * the public ABI. + */ +typedef struct AVDynamicHDRVivid { + /** + * The system start code. The value shall be set to 0x01. + */ + uint8_t system_start_code; + + /** + * The number of processing windows. The value shall be set to 0x01 + * if the system_start_code is 0x01. + */ + uint8_t num_windows; + + /** + * The color transform parameters for every processing window. + */ + AVHDRVividColorTransformParams params[3]; +} AVDynamicHDRVivid; + +/** + * Allocate an AVDynamicHDRVivid structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVDynamicHDRVivid filled with default values or NULL + * on failure. + */ +AVDynamicHDRVivid *av_dynamic_hdr_vivid_alloc(size_t *size); + +/** + * Allocate a complete AVDynamicHDRVivid and add it to the frame. + * @param frame The frame which side data is added to. + * + * @return The AVDynamicHDRVivid structure to be filled by caller or NULL + * on failure. + */ +AVDynamicHDRVivid *av_dynamic_hdr_vivid_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_HDR_DYNAMIC_VIVID_METADATA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hmac.h b/deps/ffmpeg/macos/include/libavutil/hmac.h new file mode 100644 index 0000000..ca4da6a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hmac.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2012 Martin Storsjo + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HMAC_H +#define AVUTIL_HMAC_H + +#include + +/** + * @defgroup lavu_hmac HMAC + * @ingroup lavu_crypto + * @{ + */ + +enum AVHMACType { + AV_HMAC_MD5, + AV_HMAC_SHA1, + AV_HMAC_SHA224, + AV_HMAC_SHA256, + AV_HMAC_SHA384, + AV_HMAC_SHA512, +}; + +typedef struct AVHMAC AVHMAC; + +/** + * Allocate an AVHMAC context. + * @param type The hash function used for the HMAC. + */ +AVHMAC *av_hmac_alloc(enum AVHMACType type); + +/** + * Free an AVHMAC context. + * @param ctx The context to free, may be NULL + */ +void av_hmac_free(AVHMAC *ctx); + +/** + * Initialize an AVHMAC context with an authentication key. + * @param ctx The HMAC context + * @param key The authentication key + * @param keylen The length of the key, in bytes + */ +void av_hmac_init(AVHMAC *ctx, const uint8_t *key, unsigned int keylen); + +/** + * Hash data with the HMAC. + * @param ctx The HMAC context + * @param data The data to hash + * @param len The length of the data, in bytes + */ +void av_hmac_update(AVHMAC *ctx, const uint8_t *data, unsigned int len); + +/** + * Finish hashing and output the HMAC digest. + * @param ctx The HMAC context + * @param out The output buffer to write the digest into + * @param outlen The length of the out buffer, in bytes + * @return The number of bytes written to out, or a negative error code. + */ +int av_hmac_final(AVHMAC *ctx, uint8_t *out, unsigned int outlen); + +/** + * Hash an array of data with a key. + * @param ctx The HMAC context + * @param data The data to hash + * @param len The length of the data, in bytes + * @param key The authentication key + * @param keylen The length of the key, in bytes + * @param out The output buffer to write the digest into + * @param outlen The length of the out buffer, in bytes + * @return The number of bytes written to out, or a negative error code. + */ +int av_hmac_calc(AVHMAC *ctx, const uint8_t *data, unsigned int len, + const uint8_t *key, unsigned int keylen, + uint8_t *out, unsigned int outlen); + +/** + * @} + */ + +#endif /* AVUTIL_HMAC_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext.h b/deps/ffmpeg/macos/include/libavutil/hwcontext.h new file mode 100644 index 0000000..bac30de --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext.h @@ -0,0 +1,598 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_H +#define AVUTIL_HWCONTEXT_H + +#include "buffer.h" +#include "frame.h" +#include "log.h" +#include "pixfmt.h" + +enum AVHWDeviceType { + AV_HWDEVICE_TYPE_NONE, + AV_HWDEVICE_TYPE_VDPAU, + AV_HWDEVICE_TYPE_CUDA, + AV_HWDEVICE_TYPE_VAAPI, + AV_HWDEVICE_TYPE_DXVA2, + AV_HWDEVICE_TYPE_QSV, + AV_HWDEVICE_TYPE_VIDEOTOOLBOX, + AV_HWDEVICE_TYPE_D3D11VA, + AV_HWDEVICE_TYPE_DRM, + AV_HWDEVICE_TYPE_OPENCL, + AV_HWDEVICE_TYPE_MEDIACODEC, + AV_HWDEVICE_TYPE_VULKAN, + AV_HWDEVICE_TYPE_D3D12VA, +}; + +/** + * This struct aggregates all the (hardware/vendor-specific) "high-level" state, + * i.e. state that is not tied to a concrete processing configuration. + * E.g., in an API that supports hardware-accelerated encoding and decoding, + * this struct will (if possible) wrap the state that is common to both encoding + * and decoding and from which specific instances of encoders or decoders can be + * derived. + * + * This struct is reference-counted with the AVBuffer mechanism. The + * av_hwdevice_ctx_alloc() constructor yields a reference, whose data field + * points to the actual AVHWDeviceContext. Further objects derived from + * AVHWDeviceContext (such as AVHWFramesContext, describing a frame pool with + * specific properties) will hold an internal reference to it. After all the + * references are released, the AVHWDeviceContext itself will be freed, + * optionally invoking a user-specified callback for uninitializing the hardware + * state. + */ +typedef struct AVHWDeviceContext { + /** + * A class for logging. Set by av_hwdevice_ctx_alloc(). + */ + const AVClass *av_class; + + /** + * This field identifies the underlying API used for hardware access. + * + * This field is set when this struct is allocated and never changed + * afterwards. + */ + enum AVHWDeviceType type; + + /** + * The format-specific data, allocated and freed by libavutil along with + * this context. + * + * Should be cast by the user to the format-specific context defined in the + * corresponding header (hwcontext_*.h) and filled as described in the + * documentation before calling av_hwdevice_ctx_init(). + * + * After calling av_hwdevice_ctx_init() this struct should not be modified + * by the caller. + */ + void *hwctx; + + /** + * This field may be set by the caller before calling av_hwdevice_ctx_init(). + * + * If non-NULL, this callback will be called when the last reference to + * this context is unreferenced, immediately before it is freed. + * + * @note when other objects (e.g an AVHWFramesContext) are derived from this + * struct, this callback will be invoked after all such child objects + * are fully uninitialized and their respective destructors invoked. + */ + void (*free)(struct AVHWDeviceContext *ctx); + + /** + * Arbitrary user data, to be used e.g. by the free() callback. + */ + void *user_opaque; +} AVHWDeviceContext; + +/** + * This struct describes a set or pool of "hardware" frames (i.e. those with + * data not located in normal system memory). All the frames in the pool are + * assumed to be allocated in the same way and interchangeable. + * + * This struct is reference-counted with the AVBuffer mechanism and tied to a + * given AVHWDeviceContext instance. The av_hwframe_ctx_alloc() constructor + * yields a reference, whose data field points to the actual AVHWFramesContext + * struct. + */ +typedef struct AVHWFramesContext { + /** + * A class for logging. + */ + const AVClass *av_class; + + /** + * A reference to the parent AVHWDeviceContext. This reference is owned and + * managed by the enclosing AVHWFramesContext, but the caller may derive + * additional references from it. + */ + AVBufferRef *device_ref; + + /** + * The parent AVHWDeviceContext. This is simply a pointer to + * device_ref->data provided for convenience. + * + * Set by libavutil in av_hwframe_ctx_init(). + */ + AVHWDeviceContext *device_ctx; + + /** + * The format-specific data, allocated and freed automatically along with + * this context. + * + * The user shall ignore this field if the corresponding format-specific + * header (hwcontext_*.h) does not define a context to be used as + * AVHWFramesContext.hwctx. + * + * Otherwise, it should be cast by the user to said context and filled + * as described in the documentation before calling av_hwframe_ctx_init(). + * + * After any frames using this context are created, the contents of this + * struct should not be modified by the caller. + */ + void *hwctx; + + /** + * This field may be set by the caller before calling av_hwframe_ctx_init(). + * + * If non-NULL, this callback will be called when the last reference to + * this context is unreferenced, immediately before it is freed. + */ + void (*free)(struct AVHWFramesContext *ctx); + + /** + * Arbitrary user data, to be used e.g. by the free() callback. + */ + void *user_opaque; + + /** + * A pool from which the frames are allocated by av_hwframe_get_buffer(). + * This field may be set by the caller before calling av_hwframe_ctx_init(). + * The buffers returned by calling av_buffer_pool_get() on this pool must + * have the properties described in the documentation in the corresponding hw + * type's header (hwcontext_*.h). The pool will be freed strictly before + * this struct's free() callback is invoked. + * + * This field may be NULL, then libavutil will attempt to allocate a pool + * internally. Note that certain device types enforce pools allocated at + * fixed size (frame count), which cannot be extended dynamically. In such a + * case, initial_pool_size must be set appropriately. + */ + AVBufferPool *pool; + + /** + * Initial size of the frame pool. If a device type does not support + * dynamically resizing the pool, then this is also the maximum pool size. + * + * May be set by the caller before calling av_hwframe_ctx_init(). Must be + * set if pool is NULL and the device type does not support dynamic pools. + */ + int initial_pool_size; + + /** + * The pixel format identifying the underlying HW surface type. + * + * Must be a hwaccel format, i.e. the corresponding descriptor must have the + * AV_PIX_FMT_FLAG_HWACCEL flag set. + * + * Must be set by the user before calling av_hwframe_ctx_init(). + */ + enum AVPixelFormat format; + + /** + * The pixel format identifying the actual data layout of the hardware + * frames. + * + * Must be set by the caller before calling av_hwframe_ctx_init(). + * + * @note when the underlying API does not provide the exact data layout, but + * only the colorspace/bit depth, this field should be set to the fully + * planar version of that format (e.g. for 8-bit 420 YUV it should be + * AV_PIX_FMT_YUV420P, not AV_PIX_FMT_NV12 or anything else). + */ + enum AVPixelFormat sw_format; + + /** + * The allocated dimensions of the frames in this pool. + * + * Must be set by the user before calling av_hwframe_ctx_init(). + */ + int width, height; +} AVHWFramesContext; + +/** + * Look up an AVHWDeviceType by name. + * + * @param name String name of the device type (case-insensitive). + * @return The type from enum AVHWDeviceType, or AV_HWDEVICE_TYPE_NONE if + * not found. + */ +enum AVHWDeviceType av_hwdevice_find_type_by_name(const char *name); + +/** Get the string name of an AVHWDeviceType. + * + * @param type Type from enum AVHWDeviceType. + * @return Pointer to a static string containing the name, or NULL if the type + * is not valid. + */ +const char *av_hwdevice_get_type_name(enum AVHWDeviceType type); + +/** + * Iterate over supported device types. + * + * @param prev AV_HWDEVICE_TYPE_NONE initially, then the previous type + * returned by this function in subsequent iterations. + * @return The next usable device type from enum AVHWDeviceType, or + * AV_HWDEVICE_TYPE_NONE if there are no more. + */ +enum AVHWDeviceType av_hwdevice_iterate_types(enum AVHWDeviceType prev); + +/** + * Allocate an AVHWDeviceContext for a given hardware type. + * + * @param type the type of the hardware device to allocate. + * @return a reference to the newly created AVHWDeviceContext on success or NULL + * on failure. + */ +AVBufferRef *av_hwdevice_ctx_alloc(enum AVHWDeviceType type); + +/** + * Finalize the device context before use. This function must be called after + * the context is filled with all the required information and before it is + * used in any way. + * + * @param ref a reference to the AVHWDeviceContext + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwdevice_ctx_init(AVBufferRef *ref); + +/** + * Open a device of the specified type and create an AVHWDeviceContext for it. + * + * This is a convenience function intended to cover the simple cases. Callers + * who need to fine-tune device creation/management should open the device + * manually and then wrap it in an AVHWDeviceContext using + * av_hwdevice_ctx_alloc()/av_hwdevice_ctx_init(). + * + * The returned context is already initialized and ready for use, the caller + * should not call av_hwdevice_ctx_init() on it. The user_opaque/free fields of + * the created AVHWDeviceContext are set by this function and should not be + * touched by the caller. + * + * @param device_ctx On success, a reference to the newly-created device context + * will be written here. The reference is owned by the caller + * and must be released with av_buffer_unref() when no longer + * needed. On failure, NULL will be written to this pointer. + * @param type The type of the device to create. + * @param device A type-specific string identifying the device to open. + * @param opts A dictionary of additional (type-specific) options to use in + * opening the device. The dictionary remains owned by the caller. + * @param flags currently unused + * + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create(AVBufferRef **device_ctx, enum AVHWDeviceType type, + const char *device, AVDictionary *opts, int flags); + +/** + * Create a new device of the specified type from an existing device. + * + * If the source device is a device of the target type or was originally + * derived from such a device (possibly through one or more intermediate + * devices of other types), then this will return a reference to the + * existing device of the same type as is requested. + * + * Otherwise, it will attempt to derive a new device from the given source + * device. If direct derivation to the new type is not implemented, it will + * attempt the same derivation from each ancestor of the source device in + * turn looking for an implemented derivation method. + * + * @param dst_ctx On success, a reference to the newly-created + * AVHWDeviceContext. + * @param type The type of the new device to create. + * @param src_ctx A reference to an existing AVHWDeviceContext which will be + * used to create the new device. + * @param flags Currently unused; should be set to zero. + * @return Zero on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create_derived(AVBufferRef **dst_ctx, + enum AVHWDeviceType type, + AVBufferRef *src_ctx, int flags); + +/** + * Create a new device of the specified type from an existing device. + * + * This function performs the same action as av_hwdevice_ctx_create_derived, + * however, it is able to set options for the new device to be derived. + * + * @param dst_ctx On success, a reference to the newly-created + * AVHWDeviceContext. + * @param type The type of the new device to create. + * @param src_ctx A reference to an existing AVHWDeviceContext which will be + * used to create the new device. + * @param options Options for the new device to create, same format as in + * av_hwdevice_ctx_create. + * @param flags Currently unused; should be set to zero. + * @return Zero on success, a negative AVERROR code on failure. + */ +int av_hwdevice_ctx_create_derived_opts(AVBufferRef **dst_ctx, + enum AVHWDeviceType type, + AVBufferRef *src_ctx, + AVDictionary *options, int flags); + +/** + * Allocate an AVHWFramesContext tied to a given device context. + * + * @param device_ctx a reference to a AVHWDeviceContext. This function will make + * a new reference for internal use, the one passed to the + * function remains owned by the caller. + * @return a reference to the newly created AVHWFramesContext on success or NULL + * on failure. + */ +AVBufferRef *av_hwframe_ctx_alloc(AVBufferRef *device_ctx); + +/** + * Finalize the context before use. This function must be called after the + * context is filled with all the required information and before it is attached + * to any frames. + * + * @param ref a reference to the AVHWFramesContext + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwframe_ctx_init(AVBufferRef *ref); + +/** + * Allocate a new frame attached to the given AVHWFramesContext. + * + * @param hwframe_ctx a reference to an AVHWFramesContext + * @param frame an empty (freshly allocated or unreffed) frame to be filled with + * newly allocated buffers. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR code on failure + */ +int av_hwframe_get_buffer(AVBufferRef *hwframe_ctx, AVFrame *frame, int flags); + +/** + * Copy data to or from a hw surface. At least one of dst/src must have an + * AVHWFramesContext attached. + * + * If src has an AVHWFramesContext attached, then the format of dst (if set) + * must use one of the formats returned by av_hwframe_transfer_get_formats(src, + * AV_HWFRAME_TRANSFER_DIRECTION_FROM). + * If dst has an AVHWFramesContext attached, then the format of src must use one + * of the formats returned by av_hwframe_transfer_get_formats(dst, + * AV_HWFRAME_TRANSFER_DIRECTION_TO) + * + * dst may be "clean" (i.e. with data/buf pointers unset), in which case the + * data buffers will be allocated by this function using av_frame_get_buffer(). + * If dst->format is set, then this format will be used, otherwise (when + * dst->format is AV_PIX_FMT_NONE) the first acceptable format will be chosen. + * + * The two frames must have matching allocated dimensions (i.e. equal to + * AVHWFramesContext.width/height), since not all device types support + * transferring a sub-rectangle of the whole surface. The display dimensions + * (i.e. AVFrame.width/height) may be smaller than the allocated dimensions, but + * also have to be equal for both frames. When the display dimensions are + * smaller than the allocated dimensions, the content of the padding in the + * destination frame is unspecified. + * + * @param dst the destination frame. dst is not touched on failure. + * @param src the source frame. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR error code on failure. + */ +int av_hwframe_transfer_data(AVFrame *dst, const AVFrame *src, int flags); + +enum AVHWFrameTransferDirection { + /** + * Transfer the data from the queried hw frame. + */ + AV_HWFRAME_TRANSFER_DIRECTION_FROM, + + /** + * Transfer the data to the queried hw frame. + */ + AV_HWFRAME_TRANSFER_DIRECTION_TO, +}; + +/** + * Get a list of possible source or target formats usable in + * av_hwframe_transfer_data(). + * + * @param hwframe_ctx the frame context to obtain the information for + * @param dir the direction of the transfer + * @param formats the pointer to the output format list will be written here. + * The list is terminated with AV_PIX_FMT_NONE and must be freed + * by the caller when no longer needed using av_free(). + * If this function returns successfully, the format list will + * have at least one item (not counting the terminator). + * On failure, the contents of this pointer are unspecified. + * @param flags currently unused, should be set to zero + * @return 0 on success, a negative AVERROR code on failure. + */ +int av_hwframe_transfer_get_formats(AVBufferRef *hwframe_ctx, + enum AVHWFrameTransferDirection dir, + enum AVPixelFormat **formats, int flags); + + +/** + * This struct describes the constraints on hardware frames attached to + * a given device with a hardware-specific configuration. This is returned + * by av_hwdevice_get_hwframe_constraints() and must be freed by + * av_hwframe_constraints_free() after use. + */ +typedef struct AVHWFramesConstraints { + /** + * A list of possible values for format in the hw_frames_ctx, + * terminated by AV_PIX_FMT_NONE. This member will always be filled. + */ + enum AVPixelFormat *valid_hw_formats; + + /** + * A list of possible values for sw_format in the hw_frames_ctx, + * terminated by AV_PIX_FMT_NONE. Can be NULL if this information is + * not known. + */ + enum AVPixelFormat *valid_sw_formats; + + /** + * The minimum size of frames in this hw_frames_ctx. + * (Zero if not known.) + */ + int min_width; + int min_height; + + /** + * The maximum size of frames in this hw_frames_ctx. + * (INT_MAX if not known / no limit.) + */ + int max_width; + int max_height; +} AVHWFramesConstraints; + +/** + * Allocate a HW-specific configuration structure for a given HW device. + * After use, the user must free all members as required by the specific + * hardware structure being used, then free the structure itself with + * av_free(). + * + * @param device_ctx a reference to the associated AVHWDeviceContext. + * @return The newly created HW-specific configuration structure on + * success or NULL on failure. + */ +void *av_hwdevice_hwconfig_alloc(AVBufferRef *device_ctx); + +/** + * Get the constraints on HW frames given a device and the HW-specific + * configuration to be used with that device. If no HW-specific + * configuration is provided, returns the maximum possible capabilities + * of the device. + * + * @param ref a reference to the associated AVHWDeviceContext. + * @param hwconfig a filled HW-specific configuration structure, or NULL + * to return the maximum possible capabilities of the device. + * @return AVHWFramesConstraints structure describing the constraints + * on the device, or NULL if not available. + */ +AVHWFramesConstraints *av_hwdevice_get_hwframe_constraints(AVBufferRef *ref, + const void *hwconfig); + +/** + * Free an AVHWFrameConstraints structure. + * + * @param constraints The (filled or unfilled) AVHWFrameConstraints structure. + */ +void av_hwframe_constraints_free(AVHWFramesConstraints **constraints); + + +/** + * Flags to apply to frame mappings. + */ +enum { + /** + * The mapping must be readable. + */ + AV_HWFRAME_MAP_READ = 1 << 0, + /** + * The mapping must be writeable. + */ + AV_HWFRAME_MAP_WRITE = 1 << 1, + /** + * The mapped frame will be overwritten completely in subsequent + * operations, so the current frame data need not be loaded. Any values + * which are not overwritten are unspecified. + */ + AV_HWFRAME_MAP_OVERWRITE = 1 << 2, + /** + * The mapping must be direct. That is, there must not be any copying in + * the map or unmap steps. Note that performance of direct mappings may + * be much lower than normal memory. + */ + AV_HWFRAME_MAP_DIRECT = 1 << 3, +}; + +/** + * Map a hardware frame. + * + * This has a number of different possible effects, depending on the format + * and origin of the src and dst frames. On input, src should be a usable + * frame with valid buffers and dst should be blank (typically as just created + * by av_frame_alloc()). src should have an associated hwframe context, and + * dst may optionally have a format and associated hwframe context. + * + * If src was created by mapping a frame from the hwframe context of dst, + * then this function undoes the mapping - dst is replaced by a reference to + * the frame that src was originally mapped from. + * + * If both src and dst have an associated hwframe context, then this function + * attempts to map the src frame from its hardware context to that of dst and + * then fill dst with appropriate data to be usable there. This will only be + * possible if the hwframe contexts and associated devices are compatible - + * given compatible devices, av_hwframe_ctx_create_derived() can be used to + * create a hwframe context for dst in which mapping should be possible. + * + * If src has a hwframe context but dst does not, then the src frame is + * mapped to normal memory and should thereafter be usable as a normal frame. + * If the format is set on dst, then the mapping will attempt to create dst + * with that format and fail if it is not possible. If format is unset (is + * AV_PIX_FMT_NONE) then dst will be mapped with whatever the most appropriate + * format to use is (probably the sw_format of the src hwframe context). + * + * A return value of AVERROR(ENOSYS) indicates that the mapping is not + * possible with the given arguments and hwframe setup, while other return + * values indicate that it failed somehow. + * + * On failure, the destination frame will be left blank, except for the + * hw_frames_ctx/format fields thay may have been set by the caller - those will + * be preserved as they were. + * + * @param dst Destination frame, to contain the mapping. + * @param src Source frame, to be mapped. + * @param flags Some combination of AV_HWFRAME_MAP_* flags. + * @return Zero on success, negative AVERROR code on failure. + */ +int av_hwframe_map(AVFrame *dst, const AVFrame *src, int flags); + + +/** + * Create and initialise an AVHWFramesContext as a mapping of another existing + * AVHWFramesContext on a different device. + * + * av_hwframe_ctx_init() should not be called after this. + * + * @param derived_frame_ctx On success, a reference to the newly created + * AVHWFramesContext. + * @param format The AVPixelFormat for the derived context. + * @param derived_device_ctx A reference to the device to create the new + * AVHWFramesContext on. + * @param source_frame_ctx A reference to an existing AVHWFramesContext + * which will be mapped to the derived context. + * @param flags Some combination of AV_HWFRAME_MAP_* flags, defining the + * mapping parameters to apply to frames which are allocated + * in the derived device. + * @return Zero on success, negative AVERROR code on failure. + */ +int av_hwframe_ctx_create_derived(AVBufferRef **derived_frame_ctx, + enum AVPixelFormat format, + AVBufferRef *derived_device_ctx, + AVBufferRef *source_frame_ctx, + int flags); + +#endif /* AVUTIL_HWCONTEXT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_cuda.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_cuda.h new file mode 100644 index 0000000..cbad434 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_cuda.h @@ -0,0 +1,74 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef AVUTIL_HWCONTEXT_CUDA_H +#define AVUTIL_HWCONTEXT_CUDA_H + +#ifndef CUDA_VERSION +#include +#endif + +#include "pixfmt.h" + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_CUDA. + * + * This API supports dynamic frame pools. AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a CUdeviceptr. + */ + +typedef struct AVCUDADeviceContextInternal AVCUDADeviceContextInternal; + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVCUDADeviceContext { + CUcontext cuda_ctx; + CUstream stream; + AVCUDADeviceContextInternal *internal; +} AVCUDADeviceContext; + +/** + * AVHWFramesContext.hwctx is currently not used + */ + +/** + * @defgroup hwcontext_cuda Device context creation flags + * + * Flags for av_hwdevice_ctx_create. + * + * @{ + */ + +/** + * Use primary device context instead of creating a new one. + */ +#define AV_CUDA_USE_PRIMARY_CONTEXT (1 << 0) + +/** + * Use current device context instead of creating a new one. + */ +#define AV_CUDA_USE_CURRENT_CONTEXT (1 << 1) + +/** + * @} + */ + +#endif /* AVUTIL_HWCONTEXT_CUDA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d11va.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d11va.h new file mode 100644 index 0000000..77d2d72 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d11va.h @@ -0,0 +1,178 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_D3D11VA_H +#define AVUTIL_HWCONTEXT_D3D11VA_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_D3D11VA. + * + * The default pool implementation will be fixed-size if initial_pool_size is + * set (and allocate elements from an array texture). Otherwise it will allocate + * individual textures. Be aware that decoding requires a single array texture. + * + * Using sw_format==AV_PIX_FMT_YUV420P has special semantics, and maps to + * DXGI_FORMAT_420_OPAQUE. av_hwframe_transfer_data() is not supported for + * this format. Refer to MSDN for details. + * + * av_hwdevice_ctx_create() for this device type supports a key named "debug" + * for the AVDictionary entry. If this is set to any value, the device creation + * code will try to load various supported D3D debugging layers. + */ + +#include +#include + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVD3D11VADeviceContext { + /** + * Device used for texture creation and access. This can also be used to + * set the libavcodec decoding device. + * + * Must be set by the user. This is the only mandatory field - the other + * device context fields are set from this and are available for convenience. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11Device *device; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11DeviceContext *device_context; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11VideoDevice *video_device; + + /** + * If unset, this will be set from the device_context field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D11VideoContext *video_context; + + /** + * Callbacks for locking. They protect accesses to device_context and + * video_context calls. They also protect access to the internal staging + * texture (for av_hwframe_transfer_data() calls). They do NOT protect + * access to hwcontext or decoder state in general. + * + * If unset on init, the hwcontext implementation will set them to use an + * internal mutex. + * + * The underlying lock must be recursive. lock_ctx is for free use by the + * locking implementation. + */ + void (*lock)(void *lock_ctx); + void (*unlock)(void *lock_ctx); + void *lock_ctx; +} AVD3D11VADeviceContext; + +/** + * D3D11 frame descriptor for pool allocation. + * + * In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer pointing at an object of this type describing the + * planes of the frame. + * + * This has no use outside of custom allocation, and AVFrame AVBufferRef do not + * necessarily point to an instance of this struct. + */ +typedef struct AVD3D11FrameDescriptor { + /** + * The texture in which the frame is located. The reference count is + * managed by the AVBufferRef, and destroying the reference will release + * the interface. + * + * Normally stored in AVFrame.data[0]. + */ + ID3D11Texture2D *texture; + + /** + * The index into the array texture element representing the frame, or 0 + * if the texture is not an array texture. + * + * Normally stored in AVFrame.data[1] (cast from intptr_t). + */ + intptr_t index; +} AVD3D11FrameDescriptor; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVD3D11VAFramesContext { + /** + * The canonical texture used for pool allocation. If this is set to NULL + * on init, the hwframes implementation will allocate and set an array + * texture if initial_pool_size > 0. + * + * The only situation when the API user should set this is: + * - the user wants to do manual pool allocation (setting + * AVHWFramesContext.pool), instead of letting AVHWFramesContext + * allocate the pool + * - of an array texture + * - and wants it to use it for decoding + * - this has to be done before calling av_hwframe_ctx_init() + * + * Deallocating the AVHWFramesContext will always release this interface, + * and it does not matter whether it was user-allocated. + * + * This is in particular used by the libavcodec D3D11VA hwaccel, which + * requires a single array texture. It will create ID3D11VideoDecoderOutputView + * objects for each array texture element on decoder initialization. + */ + ID3D11Texture2D *texture; + + /** + * D3D11_TEXTURE2D_DESC.BindFlags used for texture creation. The user must + * at least set D3D11_BIND_DECODER if the frames context is to be used for + * video decoding. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + UINT BindFlags; + + /** + * D3D11_TEXTURE2D_DESC.MiscFlags used for texture creation. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + UINT MiscFlags; + + /** + * In case if texture structure member above is not NULL contains the same texture + * pointer for all elements and different indexes into the array texture. + * In case if texture structure member above is NULL, all elements contains + * pointers to separate non-array textures and 0 indexes. + * This field is ignored/invalid if a user-allocated texture is provided. + */ + AVD3D11FrameDescriptor *texture_infos; +} AVD3D11VAFramesContext; + +#endif /* AVUTIL_HWCONTEXT_D3D11VA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d12va.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d12va.h new file mode 100644 index 0000000..212a6a6 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_d3d12va.h @@ -0,0 +1,142 @@ +/* + * Direct3D 12 HW acceleration. + * + * copyright (c) 2022-2023 Wu Jianhua + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_D3D12VA_H +#define AVUTIL_HWCONTEXT_D3D12VA_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_D3D12VA. + * + * AVHWFramesContext.pool must contain AVBufferRefs whose + * data pointer points to an AVD3D12VAFrame struct. + */ +#include +#include +#include +#include +#include + +/** + * @brief This struct is allocated as AVHWDeviceContext.hwctx + * + */ +typedef struct AVD3D12VADeviceContext { + /** + * Device used for objects creation and access. This can also be + * used to set the libavcodec decoding device. + * + * Can be set by the user. This is the only mandatory field - the other + * device context fields are set from this and are available for convenience. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D12Device *device; + + /** + * If unset, this will be set from the device field on init. + * + * Deallocating the AVHWDeviceContext will always release this interface, + * and it does not matter whether it was user-allocated. + */ + ID3D12VideoDevice *video_device; + + /** + * Callbacks for locking. They protect access to the internal staging + * texture (for av_hwframe_transfer_data() calls). They do NOT protect + * access to hwcontext or decoder state in general. + * + * If unset on init, the hwcontext implementation will set them to use an + * internal mutex. + * + * The underlying lock must be recursive. lock_ctx is for free use by the + * locking implementation. + */ + void (*lock)(void *lock_ctx); + void (*unlock)(void *lock_ctx); + void *lock_ctx; +} AVD3D12VADeviceContext; + +/** + * @brief This struct is used to sync d3d12 execution + * + */ +typedef struct AVD3D12VASyncContext { + /** + * D3D12 fence object + */ + ID3D12Fence *fence; + + /** + * A handle to the event object that's raised when the fence + * reaches a certain value. + */ + HANDLE event; + + /** + * The fence value used for sync + */ + uint64_t fence_value; +} AVD3D12VASyncContext; + +/** + * @brief D3D12VA frame descriptor for pool allocation. + * + */ +typedef struct AVD3D12VAFrame { + /** + * The texture in which the frame is located. The reference count is + * managed by the AVBufferRef, and destroying the reference will release + * the interface. + */ + ID3D12Resource *texture; + + /** + * The sync context for the texture + * + * @see: https://learn.microsoft.com/en-us/windows/win32/medfound/direct3d-12-video-overview#directx-12-fences + */ + AVD3D12VASyncContext sync_ctx; +} AVD3D12VAFrame; + +/** + * @brief This struct is allocated as AVHWFramesContext.hwctx + * + */ +typedef struct AVD3D12VAFramesContext { + /** + * DXGI_FORMAT format. MUST be compatible with the pixel format. + * If unset, will be automatically set. + */ + DXGI_FORMAT format; + + /** + * Options for working with resources. + * If unset, this will be D3D12_RESOURCE_FLAG_NONE. + * + * @see https://learn.microsoft.com/en-us/windows/win32/api/d3d12/ne-d3d12-d3d12_resource_flags + */ + D3D12_RESOURCE_FLAGS flags; +} AVD3D12VAFramesContext; + +#endif /* AVUTIL_HWCONTEXT_D3D12VA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_drm.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_drm.h new file mode 100644 index 0000000..42709f2 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_drm.h @@ -0,0 +1,169 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_DRM_H +#define AVUTIL_HWCONTEXT_DRM_H + +#include +#include + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_DRM. + * + * Internal frame allocation is not currently supported - all frames + * must be allocated by the user. Thus AVHWFramesContext is always + * NULL, though this may change if support for frame allocation is + * added in future. + */ + +enum { + /** + * The maximum number of layers/planes in a DRM frame. + */ + AV_DRM_MAX_PLANES = 4 +}; + +/** + * DRM object descriptor. + * + * Describes a single DRM object, addressing it as a PRIME file + * descriptor. + */ +typedef struct AVDRMObjectDescriptor { + /** + * DRM PRIME fd for the object. + */ + int fd; + /** + * Total size of the object. + * + * (This includes any parts not which do not contain image data.) + */ + size_t size; + /** + * Format modifier applied to the object (DRM_FORMAT_MOD_*). + * + * If the format modifier is unknown then this should be set to + * DRM_FORMAT_MOD_INVALID. + */ + uint64_t format_modifier; +} AVDRMObjectDescriptor; + +/** + * DRM plane descriptor. + * + * Describes a single plane of a layer, which is contained within + * a single object. + */ +typedef struct AVDRMPlaneDescriptor { + /** + * Index of the object containing this plane in the objects + * array of the enclosing frame descriptor. + */ + int object_index; + /** + * Offset within that object of this plane. + */ + ptrdiff_t offset; + /** + * Pitch (linesize) of this plane. + */ + ptrdiff_t pitch; +} AVDRMPlaneDescriptor; + +/** + * DRM layer descriptor. + * + * Describes a single layer within a frame. This has the structure + * defined by its format, and will contain one or more planes. + */ +typedef struct AVDRMLayerDescriptor { + /** + * Format of the layer (DRM_FORMAT_*). + */ + uint32_t format; + /** + * Number of planes in the layer. + * + * This must match the number of planes required by format. + */ + int nb_planes; + /** + * Array of planes in this layer. + */ + AVDRMPlaneDescriptor planes[AV_DRM_MAX_PLANES]; +} AVDRMLayerDescriptor; + +/** + * DRM frame descriptor. + * + * This is used as the data pointer for AV_PIX_FMT_DRM_PRIME frames. + * It is also used by user-allocated frame pools - allocating in + * AVHWFramesContext.pool must return AVBufferRefs which contain + * an object of this type. + * + * The fields of this structure should be set such it can be + * imported directly by EGL using the EGL_EXT_image_dma_buf_import + * and EGL_EXT_image_dma_buf_import_modifiers extensions. + * (Note that the exact layout of a particular format may vary between + * platforms - we only specify that the same platform should be able + * to import it.) + * + * The total number of planes must not exceed AV_DRM_MAX_PLANES, and + * the order of the planes by increasing layer index followed by + * increasing plane index must be the same as the order which would + * be used for the data pointers in the equivalent software format. + */ +typedef struct AVDRMFrameDescriptor { + /** + * Number of DRM objects making up this frame. + */ + int nb_objects; + /** + * Array of objects making up the frame. + */ + AVDRMObjectDescriptor objects[AV_DRM_MAX_PLANES]; + /** + * Number of layers in the frame. + */ + int nb_layers; + /** + * Array of layers in the frame. + */ + AVDRMLayerDescriptor layers[AV_DRM_MAX_PLANES]; +} AVDRMFrameDescriptor; + +/** + * DRM device. + * + * Allocated as AVHWDeviceContext.hwctx. + */ +typedef struct AVDRMDeviceContext { + /** + * File descriptor of DRM device. + * + * This is used as the device to create frames on, and may also be + * used in some derivation and mapping operations. + * + * If no device is required, set to -1. + */ + int fd; +} AVDRMDeviceContext; + +#endif /* AVUTIL_HWCONTEXT_DRM_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_dxva2.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_dxva2.h new file mode 100644 index 0000000..e1b79bc --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_dxva2.h @@ -0,0 +1,75 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + + +#ifndef AVUTIL_HWCONTEXT_DXVA2_H +#define AVUTIL_HWCONTEXT_DXVA2_H + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_DXVA2. + * + * Only fixed-size pools are supported. + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to a pointer to IDirect3DSurface9. + */ + +#include +#include + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVDXVA2DeviceContext { + IDirect3DDeviceManager9 *devmgr; +} AVDXVA2DeviceContext; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVDXVA2FramesContext { + /** + * The surface type (e.g. DXVA2_VideoProcessorRenderTarget or + * DXVA2_VideoDecoderRenderTarget). Must be set by the caller. + */ + DWORD surface_type; + + /** + * The surface pool. When an external pool is not provided by the caller, + * this will be managed (allocated and filled on init, freed on uninit) by + * libavutil. + */ + IDirect3DSurface9 **surfaces; + int nb_surfaces; + + /** + * Certain drivers require the decoder to be destroyed before the surfaces. + * To allow internally managed pools to work properly in such cases, this + * field is provided. + * + * If it is non-NULL, libavutil will call IDirectXVideoDecoder_Release() on + * it just before the internal surface pool is freed. + * + * This is for convenience only. Some code uses other methods to manage the + * decoder reference. + */ + IDirectXVideoDecoder *decoder_to_release; +} AVDXVA2FramesContext; + +#endif /* AVUTIL_HWCONTEXT_DXVA2_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_mediacodec.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_mediacodec.h new file mode 100644 index 0000000..fc0263c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_mediacodec.h @@ -0,0 +1,61 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_MEDIACODEC_H +#define AVUTIL_HWCONTEXT_MEDIACODEC_H + +/** + * MediaCodec details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVMediaCodecDeviceContext { + /** + * android/view/Surface handle, to be filled by the user. + * + * This is the default surface used by decoders on this device. + */ + void *surface; + + /** + * Pointer to ANativeWindow. + * + * It both surface and native_window is NULL, try to create it + * automatically if create_window is true and OS support + * createPersistentInputSurface. + * + * It can be used as output surface for decoder and input surface for + * encoder. + */ + void *native_window; + + /** + * Enable createPersistentInputSurface automatically. + * + * Disabled by default. + * + * It can be enabled by setting this flag directly, or by setting + * AVDictionary of av_hwdevice_ctx_create(), with "create_window" as key. + * The second method is useful for ffmpeg cmdline, e.g., we can enable it + * via: + * -init_hw_device mediacodec=mediacodec,create_window=1 + */ + int create_window; +} AVMediaCodecDeviceContext; + +#endif /* AVUTIL_HWCONTEXT_MEDIACODEC_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_opencl.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_opencl.h new file mode 100644 index 0000000..ef54486 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_opencl.h @@ -0,0 +1,100 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_OPENCL_H +#define AVUTIL_HWCONTEXT_OPENCL_H + +#ifdef __APPLE__ +#include +#else +#include +#endif + +#include "frame.h" + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_OPENCL. + * + * Pools allocated internally are always dynamic, and are primarily intended + * to be used in OpenCL-only cases. If interoperation is required, it is + * typically required to allocate frames in the other API and then map the + * frames context to OpenCL with av_hwframe_ctx_create_derived(). + */ + +/** + * OpenCL frame descriptor for pool allocation. + * + * In user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer pointing at an object of this type describing the + * planes of the frame. + */ +typedef struct AVOpenCLFrameDescriptor { + /** + * Number of planes in the frame. + */ + int nb_planes; + /** + * OpenCL image2d objects for each plane of the frame. + */ + cl_mem planes[AV_NUM_DATA_POINTERS]; +} AVOpenCLFrameDescriptor; + +/** + * OpenCL device details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVOpenCLDeviceContext { + /** + * The primary device ID of the device. If multiple OpenCL devices + * are associated with the context then this is the one which will + * be used for all operations internal to FFmpeg. + */ + cl_device_id device_id; + /** + * The OpenCL context which will contain all operations and frames on + * this device. + */ + cl_context context; + /** + * The default command queue for this device, which will be used by all + * frames contexts which do not have their own command queue. If not + * intialised by the user, a default queue will be created on the + * primary device. + */ + cl_command_queue command_queue; +} AVOpenCLDeviceContext; + +/** + * OpenCL-specific data associated with a frame pool. + * + * Allocated as AVHWFramesContext.hwctx. + */ +typedef struct AVOpenCLFramesContext { + /** + * The command queue used for internal asynchronous operations on this + * device (av_hwframe_transfer_data(), av_hwframe_map()). + * + * If this is not set, the command queue from the associated device is + * used instead. + */ + cl_command_queue command_queue; +} AVOpenCLFramesContext; + +#endif /* AVUTIL_HWCONTEXT_OPENCL_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_qsv.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_qsv.h new file mode 100644 index 0000000..35530e4 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_qsv.h @@ -0,0 +1,87 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_QSV_H +#define AVUTIL_HWCONTEXT_QSV_H + +#include + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_QSV. + * + * AVHWFramesContext.pool must contain AVBufferRefs whose data pointer points + * to a mfxFrameSurface1 struct. + */ + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVQSVDeviceContext { + mfxSession session; + /** + * The mfxLoader handle used for mfxSession creation + * + * This field is only available for oneVPL user. For non-oneVPL user, this + * field must be set to NULL. + * + * Filled by the user before calling av_hwdevice_ctx_init() and should be + * cast to mfxLoader handle. Deallocating the AVHWDeviceContext will always + * release this interface. + */ + void *loader; +} AVQSVDeviceContext; + +/** + * This struct is allocated as AVHWFramesContext.hwctx + */ +typedef struct AVQSVFramesContext { + /** + * A pointer to a mfxFrameSurface1 struct + * + * It is available when nb_surfaces is non-zero. + */ + mfxFrameSurface1 *surfaces; + + /** + * Number of frames in the pool + * + * It is 0 for dynamic frame pools or AVHWFramesContext.initial_pool_size + * for fixed frame pools. + * + * Note only oneVPL GPU runtime 2.9+ can support dynamic frame pools + * on d3d11va or vaapi + */ + int nb_surfaces; + + /** + * A combination of MFX_MEMTYPE_* describing the frame pool. + */ + int frame_type; + + /** + * A pointer to a mfxFrameInfo struct + * + * It is available when nb_surfaces is 0, all buffers allocated from the + * pool have the same mfxFrameInfo. + */ + mfxFrameInfo *info; +} AVQSVFramesContext; + +#endif /* AVUTIL_HWCONTEXT_QSV_H */ + diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_vaapi.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_vaapi.h new file mode 100644 index 0000000..0b2e071 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_vaapi.h @@ -0,0 +1,117 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VAAPI_H +#define AVUTIL_HWCONTEXT_VAAPI_H + +#include + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_VAAPI. + * + * Dynamic frame pools are supported, but note that any pool used as a render + * target is required to be of fixed size in order to be be usable as an + * argument to vaCreateContext(). + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to a VASurfaceID. + */ + +enum { + /** + * The quirks field has been set by the user and should not be detected + * automatically by av_hwdevice_ctx_init(). + */ + AV_VAAPI_DRIVER_QUIRK_USER_SET = (1 << 0), + /** + * The driver does not destroy parameter buffers when they are used by + * vaRenderPicture(). Additional code will be required to destroy them + * separately afterwards. + */ + AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1), + + /** + * The driver does not support the VASurfaceAttribMemoryType attribute, + * so the surface allocation code will not try to use it. + */ + AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2), + + /** + * The driver does not support surface attributes at all. + * The surface allocation code will never pass them to surface allocation, + * and the results of the vaQuerySurfaceAttributes() call will be faked. + */ + AV_VAAPI_DRIVER_QUIRK_SURFACE_ATTRIBUTES = (1 << 3), +}; + +/** + * VAAPI connection details. + * + * Allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVVAAPIDeviceContext { + /** + * The VADisplay handle, to be filled by the user. + */ + VADisplay display; + /** + * Driver quirks to apply - this is filled by av_hwdevice_ctx_init(), + * with reference to a table of known drivers, unless the + * AV_VAAPI_DRIVER_QUIRK_USER_SET bit is already present. The user + * may need to refer to this field when performing any later + * operations using VAAPI with the same VADisplay. + */ + unsigned int driver_quirks; +} AVVAAPIDeviceContext; + +/** + * VAAPI-specific data associated with a frame pool. + * + * Allocated as AVHWFramesContext.hwctx. + */ +typedef struct AVVAAPIFramesContext { + /** + * Set by the user to apply surface attributes to all surfaces in + * the frame pool. If null, default settings are used. + */ + VASurfaceAttrib *attributes; + int nb_attributes; + /** + * The surfaces IDs of all surfaces in the pool after creation. + * Only valid if AVHWFramesContext.initial_pool_size was positive. + * These are intended to be used as the render_targets arguments to + * vaCreateContext(). + */ + VASurfaceID *surface_ids; + int nb_surfaces; +} AVVAAPIFramesContext; + +/** + * VAAPI hardware pipeline configuration details. + * + * Allocated with av_hwdevice_hwconfig_alloc(). + */ +typedef struct AVVAAPIHWConfig { + /** + * ID of a VAAPI pipeline configuration. + */ + VAConfigID config_id; +} AVVAAPIHWConfig; + +#endif /* AVUTIL_HWCONTEXT_VAAPI_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_vdpau.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_vdpau.h new file mode 100644 index 0000000..1b7ea1e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_vdpau.h @@ -0,0 +1,44 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VDPAU_H +#define AVUTIL_HWCONTEXT_VDPAU_H + +#include + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_VDPAU. + * + * This API supports dynamic frame pools. AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a VdpVideoSurface. + */ + +/** + * This struct is allocated as AVHWDeviceContext.hwctx + */ +typedef struct AVVDPAUDeviceContext { + VdpDevice device; + VdpGetProcAddress *get_proc_address; +} AVVDPAUDeviceContext; + +/** + * AVHWFramesContext.hwctx is currently not used + */ + +#endif /* AVUTIL_HWCONTEXT_VDPAU_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_videotoolbox.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_videotoolbox.h new file mode 100644 index 0000000..d35cfbb --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_videotoolbox.h @@ -0,0 +1,106 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H +#define AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H + +#include + +#include + +#include "frame.h" +#include "pixfmt.h" + +/** + * @file + * An API-specific header for AV_HWDEVICE_TYPE_VIDEOTOOLBOX. + * + * This API supports frame allocation using a native CVPixelBufferPool + * instead of an AVBufferPool. + * + * If the API user sets a custom pool, AVHWFramesContext.pool must return + * AVBufferRefs whose data pointer is a CVImageBufferRef or CVPixelBufferRef. + * Note that the underlying CVPixelBuffer could be retained by OS frameworks + * depending on application usage, so it is preferable to let CoreVideo manage + * the pool using the default implementation. + * + * Currently AVHWDeviceContext.hwctx are always NULL. + */ + +typedef struct AVVTFramesContext { + enum AVColorRange color_range; +} AVVTFramesContext; + +/** + * Convert a VideoToolbox (actually CoreVideo) format to AVPixelFormat. + * Returns AV_PIX_FMT_NONE if no known equivalent was found. + */ +enum AVPixelFormat av_map_videotoolbox_format_to_pixfmt(uint32_t cv_fmt); + +/** + * Convert an AVPixelFormat to a VideoToolbox (actually CoreVideo) format. + * Returns 0 if no known equivalent was found. + */ +uint32_t av_map_videotoolbox_format_from_pixfmt(enum AVPixelFormat pix_fmt); + +/** + * Same as av_map_videotoolbox_format_from_pixfmt function, but can map and + * return full range pixel formats via a flag. + */ +uint32_t av_map_videotoolbox_format_from_pixfmt2(enum AVPixelFormat pix_fmt, bool full_range); + +/** + * Convert an AVChromaLocation to a VideoToolbox/CoreVideo chroma location string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_chroma_loc_from_av(enum AVChromaLocation loc); + +/** + * Convert an AVColorSpace to a VideoToolbox/CoreVideo color matrix string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_matrix_from_av(enum AVColorSpace space); + +/** + * Convert an AVColorPrimaries to a VideoToolbox/CoreVideo color primaries string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_primaries_from_av(enum AVColorPrimaries pri); + +/** + * Convert an AVColorTransferCharacteristic to a VideoToolbox/CoreVideo color transfer + * function string. + * Returns 0 if no known equivalent was found. + */ +CFStringRef av_map_videotoolbox_color_trc_from_av(enum AVColorTransferCharacteristic trc); + +/** + * Set CVPixelBufferRef's metadata based on an AVFrame. + * + * Sets/unsets the CVPixelBuffer attachments to match as closely as possible the + * AVFrame metadata. To prevent inconsistent attachments, the attachments for properties + * that could not be matched or are unspecified in the given AVFrame are unset. So if + * any attachments already covered by AVFrame metadata need to be set to a specific + * value, this should happen after calling this function. + * + * Returns < 0 in case of an error. + */ +int av_vt_pixbuf_set_attachments(void *log_ctx, + CVPixelBufferRef pixbuf, const struct AVFrame *src); + +#endif /* AVUTIL_HWCONTEXT_VIDEOTOOLBOX_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/hwcontext_vulkan.h b/deps/ffmpeg/macos/include/libavutil/hwcontext_vulkan.h new file mode 100644 index 0000000..2688a47 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/hwcontext_vulkan.h @@ -0,0 +1,382 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_HWCONTEXT_VULKAN_H +#define AVUTIL_HWCONTEXT_VULKAN_H + +#if defined(_WIN32) && !defined(VK_USE_PLATFORM_WIN32_KHR) +#define VK_USE_PLATFORM_WIN32_KHR +#endif +#include + +#include "pixfmt.h" +#include "frame.h" +#include "hwcontext.h" + +typedef struct AVVkFrame AVVkFrame; + +typedef struct AVVulkanDeviceQueueFamily { + /* Queue family index */ + int idx; + /* Number of queues in the queue family in use */ + int num; + /* Queue family capabilities. Must be non-zero. + * Flags may be removed to indicate the queue family may not be used + * for a given purpose. */ + VkQueueFlagBits flags; + /* Vulkan implementations are allowed to list multiple video queues + * which differ in what they can encode or decode. */ + VkVideoCodecOperationFlagBitsKHR video_caps; +} AVVulkanDeviceQueueFamily; + +/** + * @file + * API-specific header for AV_HWDEVICE_TYPE_VULKAN. + * + * For user-allocated pools, AVHWFramesContext.pool must return AVBufferRefs + * with the data pointer set to an AVVkFrame. + */ + +/** + * Main Vulkan context, allocated as AVHWDeviceContext.hwctx. + * All of these can be set before init to change what the context uses + */ +typedef struct AVVulkanDeviceContext { + /** + * Custom memory allocator, else NULL + */ + const VkAllocationCallbacks *alloc; + + /** + * Pointer to a vkGetInstanceProcAddr loading function. + * If unset, will dynamically load and use libvulkan. + */ + PFN_vkGetInstanceProcAddr get_proc_addr; + + /** + * Vulkan instance. Must be at least version 1.3. + */ + VkInstance inst; + + /** + * Physical device + */ + VkPhysicalDevice phys_dev; + + /** + * Active device + */ + VkDevice act_dev; + + /** + * This structure should be set to the set of features that present and enabled + * during device creation. When a device is created by FFmpeg, it will default to + * enabling all that are present of the shaderImageGatherExtended, + * fragmentStoresAndAtomics, shaderInt64 and vertexPipelineStoresAndAtomics features. + */ + VkPhysicalDeviceFeatures2 device_features; + + /** + * Enabled instance extensions. + * If supplying your own device context, set this to an array of strings, with + * each entry containing the specified Vulkan extension string to enable. + * Duplicates are possible and accepted. + * If no extensions are enabled, set these fields to NULL, and 0 respectively. + */ + const char * const *enabled_inst_extensions; + int nb_enabled_inst_extensions; + + /** + * Enabled device extensions. By default, VK_KHR_external_memory_fd, + * VK_EXT_external_memory_dma_buf, VK_EXT_image_drm_format_modifier, + * VK_KHR_external_semaphore_fd and VK_EXT_external_memory_host are enabled if found. + * If supplying your own device context, these fields takes the same format as + * the above fields, with the same conditions that duplicates are possible + * and accepted, and that NULL and 0 respectively means no extensions are enabled. + */ + const char * const *enabled_dev_extensions; + int nb_enabled_dev_extensions; + +#if FF_API_VULKAN_FIXED_QUEUES + /** + * Queue family index for graphics operations, and the number of queues + * enabled for it. If unavaiable, will be set to -1. Not required. + * av_hwdevice_create() will attempt to find a dedicated queue for each + * queue family, or pick the one with the least unrelated flags set. + * Queue indices here may overlap if a queue has to share capabilities. + */ + attribute_deprecated + int queue_family_index; + attribute_deprecated + int nb_graphics_queues; + + /** + * Queue family index for transfer operations and the number of queues + * enabled. Required. + */ + attribute_deprecated + int queue_family_tx_index; + attribute_deprecated + int nb_tx_queues; + + /** + * Queue family index for compute operations and the number of queues + * enabled. Required. + */ + attribute_deprecated + int queue_family_comp_index; + attribute_deprecated + int nb_comp_queues; + + /** + * Queue family index for video encode ops, and the amount of queues enabled. + * If the device doesn't support such, queue_family_encode_index will be -1. + * Not required. + */ + attribute_deprecated + int queue_family_encode_index; + attribute_deprecated + int nb_encode_queues; + + /** + * Queue family index for video decode ops, and the amount of queues enabled. + * If the device doesn't support such, queue_family_decode_index will be -1. + * Not required. + */ + attribute_deprecated + int queue_family_decode_index; + attribute_deprecated + int nb_decode_queues; +#endif + + /** + * Locks a queue, preventing other threads from submitting any command + * buffers to this queue. + * If set to NULL, will be set to lavu-internal functions that utilize a + * mutex. + */ + void (*lock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index); + + /** + * Similar to lock_queue(), unlocks a queue. Must only be called after locking. + */ + void (*unlock_queue)(struct AVHWDeviceContext *ctx, uint32_t queue_family, uint32_t index); + + /** + * Queue families used. Must be preferentially ordered. List may contain + * duplicates. + * + * For compatibility reasons, all the enabled queue families listed above + * (queue_family_(tx/comp/encode/decode)_index) must also be included in + * this list until they're removed after deprecation. + */ + AVVulkanDeviceQueueFamily qf[64]; + int nb_qf; +} AVVulkanDeviceContext; + +/** + * Defines the behaviour of frame allocation. + */ +typedef enum AVVkFrameFlags { + /* Unless this flag is set, autodetected flags will be OR'd based on the + * device and tiling during av_hwframe_ctx_init(). */ + AV_VK_FRAME_FLAG_NONE = (1ULL << 0), + +#if FF_API_VULKAN_CONTIGUOUS_MEMORY + /* DEPRECATED: does nothing. Replaced by multiplane images. */ + AV_VK_FRAME_FLAG_CONTIGUOUS_MEMORY = (1ULL << 1), +#endif + + /* Disables multiplane images. + * This is required to export/import images from CUDA. */ + AV_VK_FRAME_FLAG_DISABLE_MULTIPLANE = (1ULL << 2), +} AVVkFrameFlags; + +/** + * Allocated as AVHWFramesContext.hwctx, used to set pool-specific options + */ +typedef struct AVVulkanFramesContext { + /** + * Controls the tiling of allocated frames. + * If left as VK_IMAGE_TILING_OPTIMAL (0), will use optimal tiling. + * Can be set to VK_IMAGE_TILING_LINEAR to force linear images, + * or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT to force DMABUF-backed + * images. + * @note Imported frames from other APIs ignore this. + */ + VkImageTiling tiling; + + /** + * Defines extra usage of output frames. If non-zero, all flags MUST be + * supported by the VkFormat. Otherwise, will use supported flags amongst: + * - VK_IMAGE_USAGE_SAMPLED_BIT + * - VK_IMAGE_USAGE_STORAGE_BIT + * - VK_IMAGE_USAGE_TRANSFER_SRC_BIT + * - VK_IMAGE_USAGE_TRANSFER_DST_BIT + */ + VkImageUsageFlagBits usage; + + /** + * Extension data for image creation. + * If DRM tiling is used, a VkImageDrmFormatModifierListCreateInfoEXT structure + * can be added to specify the exact modifier to use. + * + * Additional structures may be added at av_hwframe_ctx_init() time, + * which will be freed automatically on uninit(), so users must only free + * any structures they've allocated themselves. + */ + void *create_pnext; + + /** + * Extension data for memory allocation. Must have as many entries as + * the number of planes of the sw_format. + * This will be chained to VkExportMemoryAllocateInfo, which is used + * to make all pool images exportable to other APIs if the necessary + * extensions are present in enabled_dev_extensions. + */ + void *alloc_pnext[AV_NUM_DATA_POINTERS]; + + /** + * A combination of AVVkFrameFlags. Unless AV_VK_FRAME_FLAG_NONE is set, + * autodetected flags will be OR'd based on the device and tiling during + * av_hwframe_ctx_init(). + */ + AVVkFrameFlags flags; + + /** + * Flags to set during image creation. If unset, defaults to + * VK_IMAGE_CREATE_ALIAS_BIT. + */ + VkImageCreateFlags img_flags; + + /** + * Vulkan format for each image. MUST be compatible with the pixel format. + * If unset, will be automatically set. + * There are at most two compatible formats for a frame - a multiplane + * format, and a single-plane multi-image format. + */ + VkFormat format[AV_NUM_DATA_POINTERS]; + + /** + * Number of layers each image will have. + */ + int nb_layers; + + /** + * Locks a frame, preventing other threads from changing frame properties. + * Users SHOULD only ever lock just before command submission in order + * to get accurate frame properties, and unlock immediately after command + * submission without waiting for it to finish. + * + * If unset, will be set to lavu-internal functions that utilize a mutex. + */ + void (*lock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf); + + /** + * Similar to lock_frame(), unlocks a frame. Must only be called after locking. + */ + void (*unlock_frame)(struct AVHWFramesContext *fc, AVVkFrame *vkf); +} AVVulkanFramesContext; + +/* + * Frame structure. + * + * @note the size of this structure is not part of the ABI, to allocate + * you must use @av_vk_frame_alloc(). + */ +struct AVVkFrame { + /** + * Vulkan images to which the memory is bound to. + * May be one for multiplane formats, or multiple. + */ + VkImage img[AV_NUM_DATA_POINTERS]; + + /** + * Tiling for the frame. + */ + VkImageTiling tiling; + + /** + * Memory backing the images. Either one, or as many as there are planes + * in the sw_format. + * In case of having multiple VkImages, but one memory, the offset field + * will indicate the bound offset for each image. + */ + VkDeviceMemory mem[AV_NUM_DATA_POINTERS]; + size_t size[AV_NUM_DATA_POINTERS]; + + /** + * OR'd flags for all memory allocated + */ + VkMemoryPropertyFlagBits flags; + + /** + * Updated after every barrier. One per VkImage. + */ + VkAccessFlagBits access[AV_NUM_DATA_POINTERS]; + VkImageLayout layout[AV_NUM_DATA_POINTERS]; + + /** + * Synchronization timeline semaphores, one for each VkImage. + * Must not be freed manually. Must be waited on at every submission using + * the value in sem_value, and must be signalled at every submission, + * using an incremented value. + */ + VkSemaphore sem[AV_NUM_DATA_POINTERS]; + + /** + * Up to date semaphore value at which each image becomes accessible. + * One per VkImage. + * Clients must wait on this value when submitting a command queue, + * and increment it when signalling. + */ + uint64_t sem_value[AV_NUM_DATA_POINTERS]; + + /** + * Internal data. + */ + struct AVVkFrameInternal *internal; + + /** + * Describes the binding offset of each image to the VkDeviceMemory. + * One per VkImage. + */ + ptrdiff_t offset[AV_NUM_DATA_POINTERS]; + + /** + * Queue family of the images. Must be VK_QUEUE_FAMILY_IGNORED if + * the image was allocated with the CONCURRENT concurrency option. + * One per VkImage. + */ + uint32_t queue_family[AV_NUM_DATA_POINTERS]; +}; + +/** + * Allocates a single AVVkFrame and initializes everything as 0. + * @note Must be freed via av_free() + */ +AVVkFrame *av_vk_frame_alloc(void); + +/** + * Returns the optimal per-plane Vulkan format for a given sw_format, + * one for each plane. + * Returns NULL on unsupported formats. + */ +const VkFormat *av_vkfmt_from_pixfmt(enum AVPixelFormat p); + +#endif /* AVUTIL_HWCONTEXT_VULKAN_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/iamf.h b/deps/ffmpeg/macos/include/libavutil/iamf.h new file mode 100644 index 0000000..1fa7389 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/iamf.h @@ -0,0 +1,690 @@ +/* + * Immersive Audio Model and Formats helper functions and defines + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_IAMF_H +#define AVUTIL_IAMF_H + +/** + * @file + * Immersive Audio Model and Formats API header + * @see Immersive Audio Model and Formats + */ + +#include +#include + +#include "attributes.h" +#include "avassert.h" +#include "channel_layout.h" +#include "dict.h" +#include "rational.h" + +/** + * @defgroup lavu_iamf Immersive Audio Model and Formats + * @ingroup lavu_audio + * + * Immersive Audio Model and Formats related functions and defines + * + * @defgroup lavu_iamf_params Parameter Definition + * @ingroup lavu_iamf + * @{ + * Parameters as defined in section 3.6.1 and 3.8 of IAMF. + * @} + * + * @defgroup lavu_iamf_audio Audio Element + * @ingroup lavu_iamf + * @{ + * Audio Elements as defined in section 3.6 of IAMF. + * @} + * + * @defgroup lavu_iamf_mix Mix Presentation + * @ingroup lavu_iamf + * @{ + * Mix Presentations as defined in section 3.7 of IAMF. + * @} + * + * @addtogroup lavu_iamf_params + * @{ + */ +enum AVIAMFAnimationType { + AV_IAMF_ANIMATION_TYPE_STEP, + AV_IAMF_ANIMATION_TYPE_LINEAR, + AV_IAMF_ANIMATION_TYPE_BEZIER, +}; + +/** + * Mix Gain Parameter Data as defined in section 3.8.1 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFMixGain { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + /** + * The type of animation applied to the parameter values. + */ + enum AVIAMFAnimationType animation_type; + /** + * Parameter value that is applied at the start of the subblock. + * Applies to all defined Animation Types. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational start_point_value; + /** + * Parameter value that is applied at the end of the subblock. + * Applies only to AV_IAMF_ANIMATION_TYPE_LINEAR and + * AV_IAMF_ANIMATION_TYPE_BEZIER Animation Types. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational end_point_value; + /** + * Parameter value of the middle control point of a quadratic Bezier + * curve, i.e., its y-axis value. + * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type. + * + * Valid range of values is -128.0 to 128.0 + */ + AVRational control_point_value; + /** + * Parameter value of the time of the middle control point of a + * quadratic Bezier curve, i.e., its x-axis value. + * Applies only to AV_IAMF_ANIMATION_TYPE_BEZIER Animation Type. + * + * Valid range of values is 0.0 to 1.0 + */ + AVRational control_point_relative_time; +} AVIAMFMixGain; + +/** + * Demixing Info Parameter Data as defined in section 3.8.2 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFDemixingInfo { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + /** + * Pre-defined combination of demixing parameters. + */ + unsigned int dmixp_mode; +} AVIAMFDemixingInfo; + +/** + * Recon Gain Info Parameter Data as defined in section 3.8.3 of IAMF. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFReconGain { + const AVClass *av_class; + + /** + * Duration for the given subblock, in units of + * 1 / @ref AVIAMFParamDefinition.parameter_rate "parameter_rate". + * It must not be 0. + */ + unsigned int subblock_duration; + + /** + * Array of gain values to be applied to each channel for each layer + * defined in the Audio Element referencing the parent Parameter Definition. + * Values for layers where the AV_IAMF_LAYER_FLAG_RECON_GAIN flag is not set + * are undefined. + * + * Channel order is: FL, C, FR, SL, SR, TFL, TFR, BL, BR, TBL, TBR, LFE + */ + uint8_t recon_gain[6][12]; +} AVIAMFReconGain; + +enum AVIAMFParamDefinitionType { + /** + * Subblocks are of struct type AVIAMFMixGain + */ + AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN, + /** + * Subblocks are of struct type AVIAMFDemixingInfo + */ + AV_IAMF_PARAMETER_DEFINITION_DEMIXING, + /** + * Subblocks are of struct type AVIAMFReconGain + */ + AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN, +}; + +/** + * Parameters as defined in section 3.6.1 of IAMF. + * + * The struct is allocated by av_iamf_param_definition_alloc() along with an + * array of subblocks, its type depending on the value of type. + * This array is placed subblocks_offset bytes after the start of this struct. + * + * @note This struct's size is not a part of the public ABI. + */ +typedef struct AVIAMFParamDefinition { + const AVClass *av_class; + + /** + * Offset in bytes from the start of this struct, at which the subblocks + * array is located. + */ + size_t subblocks_offset; + /** + * Size in bytes of each element in the subblocks array. + */ + size_t subblock_size; + /** + * Number of subblocks in the array. + */ + unsigned int nb_subblocks; + + /** + * Parameters type. Determines the type of the subblock elements. + */ + enum AVIAMFParamDefinitionType type; + + /** + * Identifier for the paremeter substream. + */ + unsigned int parameter_id; + /** + * Sample rate for the paremeter substream. It must not be 0. + */ + unsigned int parameter_rate; + + /** + * The accumulated duration of all blocks in this parameter definition, + * in units of 1 / @ref parameter_rate. + * + * May be 0, in which case all duration values should be specified in + * another parameter definition referencing the same parameter_id. + */ + unsigned int duration; + /** + * The duration of every subblock in the case where all subblocks, with + * the optional exception of the last subblock, have equal durations. + * + * Must be 0 if subblocks have different durations. + */ + unsigned int constant_subblock_duration; +} AVIAMFParamDefinition; + +const AVClass *av_iamf_param_definition_get_class(void); + +/** + * Allocates memory for AVIAMFParamDefinition, plus an array of {@code nb_subblocks} + * amount of subblocks of the given type and initializes the variables. Can be + * freed with a normal av_free() call. + * + * @param size if non-NULL, the size in bytes of the resulting data array is written here. + */ +AVIAMFParamDefinition *av_iamf_param_definition_alloc(enum AVIAMFParamDefinitionType type, + unsigned int nb_subblocks, size_t *size); + +/** + * Get the subblock at the specified {@code idx}. Must be between 0 and nb_subblocks - 1. + * + * The @ref AVIAMFParamDefinition.type "param definition type" defines + * the struct type of the returned pointer. + */ +static av_always_inline void* +av_iamf_param_definition_get_subblock(const AVIAMFParamDefinition *par, unsigned int idx) +{ + av_assert0(idx < par->nb_subblocks); + return (void *)((uint8_t *)par + par->subblocks_offset + idx * par->subblock_size); +} + +/** + * @} + * @addtogroup lavu_iamf_audio + * @{ + */ + +enum AVIAMFAmbisonicsMode { + AV_IAMF_AMBISONICS_MODE_MONO, + AV_IAMF_AMBISONICS_MODE_PROJECTION, +}; + +/** + * Recon gain information for the layer is present in AVIAMFReconGain + */ +#define AV_IAMF_LAYER_FLAG_RECON_GAIN (1 << 0) + +/** + * A layer defining a Channel Layout in the Audio Element. + * + * When @ref AVIAMFAudioElement.audio_element_type "the parent's Audio Element type" + * is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, this corresponds to an Scalable Channel + * Layout layer as defined in section 3.6.2 of IAMF. + * For AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, it is an Ambisonics channel + * layout as defined in section 3.6.3 of IAMF. + * + * @note The struct should be allocated with av_iamf_audio_element_add_layer() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFLayer { + const AVClass *av_class; + + AVChannelLayout ch_layout; + + /** + * A bitmask which may contain a combination of AV_IAMF_LAYER_FLAG_* flags. + */ + unsigned int flags; + /** + * Output gain channel flags as defined in section 3.6.2 of IAMF. + * + * This field is defined only if @ref AVIAMFAudioElement.audio_element_type + * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, + * must be 0 otherwise. + */ + unsigned int output_gain_flags; + /** + * Output gain as defined in section 3.6.2 of IAMF. + * + * Must be 0 if @ref output_gain_flags is 0. + */ + AVRational output_gain; + /** + * Ambisonics mode as defined in section 3.6.3 of IAMF. + * + * This field is defined only if @ref AVIAMFAudioElement.audio_element_type + * "the parent's Audio Element type" is AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE. + * + * If AV_IAMF_AMBISONICS_MODE_MONO, channel_mapping is defined implicitly + * (Ambisonic Order) or explicitly (Custom Order with ambi channels) in + * @ref ch_layout. + * If AV_IAMF_AMBISONICS_MODE_PROJECTION, @ref demixing_matrix must be set. + */ + enum AVIAMFAmbisonicsMode ambisonics_mode; + + /** + * Demixing matrix as defined in section 3.6.3 of IAMF. + * + * The length of the array is ch_layout.nb_channels multiplied by the sum of + * the amount of streams in the group plus the amount of streams in the group + * that are stereo. + * + * May be set only if @ref ambisonics_mode == AV_IAMF_AMBISONICS_MODE_PROJECTION, + * must be NULL otherwise. + */ + AVRational *demixing_matrix; +} AVIAMFLayer; + + +enum AVIAMFAudioElementType { + AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, + AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, +}; + +/** + * Information on how to combine one or more audio streams, as defined in + * section 3.6 of IAMF. + * + * @note The struct should be allocated with av_iamf_audio_element_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFAudioElement { + const AVClass *av_class; + + AVIAMFLayer **layers; + /** + * Number of layers, or channel groups, in the Audio Element. + * There may be 6 layers at most, and for @ref audio_element_type + * AV_IAMF_AUDIO_ELEMENT_TYPE_SCENE, there may be exactly 1. + * + * Set by av_iamf_audio_element_add_layer(), must not be + * modified by any other code. + */ + unsigned int nb_layers; + + /** + * Demixing information used to reconstruct a scalable channel audio + * representation. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_DEMIXING. + */ + AVIAMFParamDefinition *demixing_info; + /** + * Recon gain information used to reconstruct a scalable channel audio + * representation. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_RECON_GAIN. + */ + AVIAMFParamDefinition *recon_gain_info; + + /** + * Audio element type as defined in section 3.6 of IAMF. + */ + enum AVIAMFAudioElementType audio_element_type; + + /** + * Default weight value as defined in section 3.6 of IAMF. + */ + unsigned int default_w; +} AVIAMFAudioElement; + +const AVClass *av_iamf_audio_element_get_class(void); + +/** + * Allocates a AVIAMFAudioElement, and initializes its fields with default values. + * No layers are allocated. Must be freed with av_iamf_audio_element_free(). + * + * @see av_iamf_audio_element_add_layer() + */ +AVIAMFAudioElement *av_iamf_audio_element_alloc(void); + +/** + * Allocate a layer and add it to a given AVIAMFAudioElement. + * It is freed by av_iamf_audio_element_free() alongside the rest of the parent + * AVIAMFAudioElement. + * + * @return a pointer to the allocated layer. + */ +AVIAMFLayer *av_iamf_audio_element_add_layer(AVIAMFAudioElement *audio_element); + +/** + * Free an AVIAMFAudioElement and all its contents. + * + * @param audio_element pointer to pointer to an allocated AVIAMFAudioElement. + * upon return, *audio_element will be set to NULL. + */ +void av_iamf_audio_element_free(AVIAMFAudioElement **audio_element); + +/** + * @} + * @addtogroup lavu_iamf_mix + * @{ + */ + +enum AVIAMFHeadphonesMode { + /** + * The referenced Audio Element shall be rendered to stereo loudspeakers. + */ + AV_IAMF_HEADPHONES_MODE_STEREO, + /** + * The referenced Audio Element shall be rendered with a binaural renderer. + */ + AV_IAMF_HEADPHONES_MODE_BINAURAL, +}; + +/** + * Submix element as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_submix_add_element() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmixElement { + const AVClass *av_class; + + /** + * The id of the Audio Element this submix element references. + */ + unsigned int audio_element_id; + + /** + * Information required required for applying any processing to the + * referenced and rendered Audio Element before being summed with other + * processed Audio Elements. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN. + */ + AVIAMFParamDefinition *element_mix_config; + + /** + * Default mix gain value to apply when there are no AVIAMFParamDefinition + * with @ref element_mix_config "element_mix_config's" + * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a + * given audio frame. + */ + AVRational default_mix_gain; + + /** + * A value that indicates whether the referenced channel-based Audio Element + * shall be rendered to stereo loudspeakers or spatialized with a binaural + * renderer when played back on headphones. + * If the Audio Element is not of @ref AVIAMFAudioElement.audio_element_type + * "type" AV_IAMF_AUDIO_ELEMENT_TYPE_CHANNEL, then this field is undefined. + */ + enum AVIAMFHeadphonesMode headphones_rendering_mode; + + /** + * A dictionary of strings describing the submix in different languages. + * Must have the same amount of entries as + * @ref AVIAMFMixPresentation.annotations "the mix's annotations", stored + * in the same order, and with the same key strings. + * + * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47 that + * specifies the language for the string stored in + * @ref AVDictionaryEntry.value "value". + */ + AVDictionary *annotations; +} AVIAMFSubmixElement; + +enum AVIAMFSubmixLayoutType { + /** + * The layout follows the loudspeaker sound system convention of ITU-2051-3. + */ + AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS = 2, + /** + * The layout is binaural. + */ + AV_IAMF_SUBMIX_LAYOUT_TYPE_BINAURAL = 3, +}; + +/** + * Submix layout as defined in section 3.7.6 of IAMF. + * + * @note The struct should be allocated with av_iamf_submix_add_layout() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmixLayout { + const AVClass *av_class; + + enum AVIAMFSubmixLayoutType layout_type; + + /** + * Channel layout matching one of Sound Systems A to J of ITU-2051-3, plus + * 7.1.2ch and 3.1.2ch + * If layout_type is not AV_IAMF_SUBMIX_LAYOUT_TYPE_LOUDSPEAKERS, this field + * is undefined. + */ + AVChannelLayout sound_system; + /** + * The program integrated loudness information, as defined in + * ITU-1770-4. + */ + AVRational integrated_loudness; + /** + * The digital (sampled) peak value of the audio signal, as defined + * in ITU-1770-4. + */ + AVRational digital_peak; + /** + * The true peak of the audio signal, as defined in ITU-1770-4. + */ + AVRational true_peak; + /** + * The Dialogue loudness information, as defined in ITU-1770-4. + */ + AVRational dialogue_anchored_loudness; + /** + * The Album loudness information, as defined in ITU-1770-4. + */ + AVRational album_anchored_loudness; +} AVIAMFSubmixLayout; + +/** + * Submix layout as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_mix_presentation_add_submix() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFSubmix { + const AVClass *av_class; + + /** + * Array of submix elements. + * + * Set by av_iamf_submix_add_element(), must not be modified by any + * other code. + */ + AVIAMFSubmixElement **elements; + /** + * Number of elements in the submix. + * + * Set by av_iamf_submix_add_element(), must not be modified by any + * other code. + */ + unsigned int nb_elements; + + /** + * Array of submix layouts. + * + * Set by av_iamf_submix_add_layout(), must not be modified by any + * other code. + */ + AVIAMFSubmixLayout **layouts; + /** + * Number of layouts in the submix. + * + * Set by av_iamf_submix_add_layout(), must not be modified by any + * other code. + */ + unsigned int nb_layouts; + + /** + * Information required for post-processing the mixed audio signal to + * generate the audio signal for playback. + * The @ref AVIAMFParamDefinition.type "type" must be + * AV_IAMF_PARAMETER_DEFINITION_MIX_GAIN. + */ + AVIAMFParamDefinition *output_mix_config; + + /** + * Default mix gain value to apply when there are no AVIAMFParamDefinition + * with @ref output_mix_config "output_mix_config's" + * @ref AVIAMFParamDefinition.parameter_id "parameter_id" available for a + * given audio frame. + */ + AVRational default_mix_gain; +} AVIAMFSubmix; + +/** + * Information on how to render and mix one or more AVIAMFAudioElement to generate + * the final audio output, as defined in section 3.7 of IAMF. + * + * @note The struct should be allocated with av_iamf_mix_presentation_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVIAMFMixPresentation { + const AVClass *av_class; + + /** + * Array of submixes. + * + * Set by av_iamf_mix_presentation_add_submix(), must not be modified + * by any other code. + */ + AVIAMFSubmix **submixes; + /** + * Number of submixes in the presentation. + * + * Set by av_iamf_mix_presentation_add_submix(), must not be modified + * by any other code. + */ + unsigned int nb_submixes; + + /** + * A dictionary of strings describing the mix in different languages. + * Must have the same amount of entries as every + * @ref AVIAMFSubmixElement.annotations "Submix element annotations", + * stored in the same order, and with the same key strings. + * + * @ref AVDictionaryEntry.key "key" is a string conforming to BCP-47 + * that specifies the language for the string stored in + * @ref AVDictionaryEntry.value "value". + */ + AVDictionary *annotations; +} AVIAMFMixPresentation; + +const AVClass *av_iamf_mix_presentation_get_class(void); + +/** + * Allocates a AVIAMFMixPresentation, and initializes its fields with default + * values. No submixes are allocated. + * Must be freed with av_iamf_mix_presentation_free(). + * + * @see av_iamf_mix_presentation_add_submix() + */ +AVIAMFMixPresentation *av_iamf_mix_presentation_alloc(void); + +/** + * Allocate a submix and add it to a given AVIAMFMixPresentation. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFMixPresentation. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmix *av_iamf_mix_presentation_add_submix(AVIAMFMixPresentation *mix_presentation); + +/** + * Allocate a submix element and add it to a given AVIAMFSubmix. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFSubmix. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmixElement *av_iamf_submix_add_element(AVIAMFSubmix *submix); + +/** + * Allocate a submix layout and add it to a given AVIAMFSubmix. + * It is freed by av_iamf_mix_presentation_free() alongside the rest of the + * parent AVIAMFSubmix. + * + * @return a pointer to the allocated submix. + */ +AVIAMFSubmixLayout *av_iamf_submix_add_layout(AVIAMFSubmix *submix); + +/** + * Free an AVIAMFMixPresentation and all its contents. + * + * @param mix_presentation pointer to pointer to an allocated AVIAMFMixPresentation. + * upon return, *mix_presentation will be set to NULL. + */ +void av_iamf_mix_presentation_free(AVIAMFMixPresentation **mix_presentation); + +/** + * @} + */ + +#endif /* AVUTIL_IAMF_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/imgutils.h b/deps/ffmpeg/macos/include/libavutil/imgutils.h new file mode 100644 index 0000000..123a9e5 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/imgutils.h @@ -0,0 +1,377 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_IMGUTILS_H +#define AVUTIL_IMGUTILS_H + +/** + * @file + * misc image utilities + * + * @addtogroup lavu_picture + * @{ + */ + +#include +#include +#include "pixdesc.h" +#include "pixfmt.h" +#include "rational.h" + +/** + * Compute the max pixel step for each plane of an image with a + * format described by pixdesc. + * + * The pixel step is the distance in bytes between the first byte of + * the group of bytes which describe a pixel component and the first + * byte of the successive group in the same plane for the same + * component. + * + * @param max_pixsteps an array which is filled with the max pixel step + * for each plane. Since a plane may contain different pixel + * components, the computed max_pixsteps[plane] is relative to the + * component in the plane with the max pixel step. + * @param max_pixstep_comps an array which is filled with the component + * for each plane which has the max pixel step. May be NULL. + * @param pixdesc the AVPixFmtDescriptor for the image, describing its format + */ +void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], + const AVPixFmtDescriptor *pixdesc); + +/** + * Compute the size of an image line with format pix_fmt and width + * width for the plane plane. + * + * @return the computed size in bytes + */ +int av_image_get_linesize(enum AVPixelFormat pix_fmt, int width, int plane); + +/** + * Fill plane linesizes for an image with pixel format pix_fmt and + * width width. + * + * @param linesizes array to be filled with the linesize for each plane + * @param pix_fmt the AVPixelFormat of the image + * @param width width of the image in pixels + * @return >= 0 in case of success, a negative error code otherwise + */ +int av_image_fill_linesizes(int linesizes[4], enum AVPixelFormat pix_fmt, int width); + +/** + * Fill plane sizes for an image with pixel format pix_fmt and height height. + * + * @param size the array to be filled with the size of each image plane + * @param pix_fmt the AVPixelFormat of the image + * @param height height of the image in pixels + * @param linesizes the array containing the linesize for each + * plane, should be filled by av_image_fill_linesizes() + * @return >= 0 in case of success, a negative error code otherwise + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_fill_linesizes(). + */ +int av_image_fill_plane_sizes(size_t size[4], enum AVPixelFormat pix_fmt, + int height, const ptrdiff_t linesizes[4]); + +/** + * Fill plane data pointers for an image with pixel format pix_fmt and + * height height. + * + * @param data pointers array to be filled with the pointer for each image plane + * @param pix_fmt the AVPixelFormat of the image + * @param height height of the image in pixels + * @param ptr the pointer to a buffer which will contain the image + * @param linesizes the array containing the linesize for each + * plane, should be filled by av_image_fill_linesizes() + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_fill_pointers(uint8_t *data[4], enum AVPixelFormat pix_fmt, int height, + uint8_t *ptr, const int linesizes[4]); + +/** + * Allocate an image with size w and h and pixel format pix_fmt, and + * fill pointers and linesizes accordingly. + * The allocated image buffer has to be freed by using + * av_freep(&pointers[0]). + * + * @param pointers array to be filled with the pointer for each image plane + * @param linesizes the array filled with the linesize for each plane + * @param w width of the image in pixels + * @param h height of the image in pixels + * @param pix_fmt the AVPixelFormat of the image + * @param align the value to use for buffer size alignment + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_alloc(uint8_t *pointers[4], int linesizes[4], + int w, int h, enum AVPixelFormat pix_fmt, int align); + +/** + * Copy image plane from src to dst. + * That is, copy "height" number of lines of "bytewidth" bytes each. + * The first byte of each successive line is separated by *_linesize + * bytes. + * + * bytewidth must be contained by both absolute values of dst_linesize + * and src_linesize, otherwise the function behavior is undefined. + * + * @param dst destination plane to copy to + * @param dst_linesize linesize for the image plane in dst + * @param src source plane to copy from + * @param src_linesize linesize for the image plane in src + * @param height height (number of lines) of the plane + */ +void av_image_copy_plane(uint8_t *dst, int dst_linesize, + const uint8_t *src, int src_linesize, + int bytewidth, int height); + +/** + * Copy image data located in uncacheable (e.g. GPU mapped) memory. Where + * available, this function will use special functionality for reading from such + * memory, which may result in greatly improved performance compared to plain + * av_image_copy_plane(). + * + * bytewidth must be contained by both absolute values of dst_linesize + * and src_linesize, otherwise the function behavior is undefined. + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_copy_plane(). + * @note On x86, the linesizes currently need to be aligned to the cacheline + * size (i.e. 64) to get improved performance. + */ +void av_image_copy_plane_uc_from(uint8_t *dst, ptrdiff_t dst_linesize, + const uint8_t *src, ptrdiff_t src_linesize, + ptrdiff_t bytewidth, int height); + +/** + * Copy image in src_data to dst_data. + * + * @param dst_data destination image data buffer to copy to + * @param dst_linesizes linesizes for the image in dst_data + * @param src_data source image data buffer to copy from + * @param src_linesizes linesizes for the image in src_data + * @param pix_fmt the AVPixelFormat of the image + * @param width width of the image in pixels + * @param height height of the image in pixels + */ +void av_image_copy(uint8_t * const dst_data[4], const int dst_linesizes[4], + const uint8_t * const src_data[4], const int src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height); + +/** + * Wrapper around av_image_copy() to workaround the limitation + * that the conversion from uint8_t * const * to const uint8_t * const * + * is not performed automatically in C. + * @see av_image_copy() + */ +static inline +void av_image_copy2(uint8_t * const dst_data[4], const int dst_linesizes[4], + uint8_t * const src_data[4], const int src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height) +{ + av_image_copy(dst_data, dst_linesizes, + (const uint8_t * const *)src_data, src_linesizes, + pix_fmt, width, height); +} + +/** + * Copy image data located in uncacheable (e.g. GPU mapped) memory. Where + * available, this function will use special functionality for reading from such + * memory, which may result in greatly improved performance compared to plain + * av_image_copy(). + * + * The data pointers and the linesizes must be aligned to the maximum required + * by the CPU architecture. + * + * @note The linesize parameters have the type ptrdiff_t here, while they are + * int for av_image_copy(). + * @note On x86, the linesizes currently need to be aligned to the cacheline + * size (i.e. 64) to get improved performance. + */ +void av_image_copy_uc_from(uint8_t * const dst_data[4], const ptrdiff_t dst_linesizes[4], + const uint8_t * const src_data[4], const ptrdiff_t src_linesizes[4], + enum AVPixelFormat pix_fmt, int width, int height); + +/** + * Setup the data pointers and linesizes based on the specified image + * parameters and the provided array. + * + * The fields of the given image are filled in by using the src + * address which points to the image data buffer. Depending on the + * specified pixel format, one or multiple image data pointers and + * line sizes will be set. If a planar format is specified, several + * pointers will be set pointing to the different picture planes and + * the line sizes of the different planes will be stored in the + * lines_sizes array. Call with src == NULL to get the required + * size for the src buffer. + * + * To allocate the buffer and fill in the dst_data and dst_linesize in + * one call, use av_image_alloc(). + * + * @param dst_data data pointers to be filled in + * @param dst_linesize linesizes for the image in dst_data to be filled in + * @param src buffer which will contain or contains the actual image data, can be NULL + * @param pix_fmt the pixel format of the image + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param align the value used in src for linesize alignment + * @return the size in bytes required for src, a negative error code + * in case of failure + */ +int av_image_fill_arrays(uint8_t *dst_data[4], int dst_linesize[4], + const uint8_t *src, + enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Return the size in bytes of the amount of data required to store an + * image with the given parameters. + * + * @param pix_fmt the pixel format of the image + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param align the assumed linesize alignment + * @return the buffer size in bytes, a negative error code in case of failure + */ +int av_image_get_buffer_size(enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Copy image data from an image into a buffer. + * + * av_image_get_buffer_size() can be used to compute the required size + * for the buffer to fill. + * + * @param dst a buffer into which picture data will be copied + * @param dst_size the size in bytes of dst + * @param src_data pointers containing the source image data + * @param src_linesize linesizes for the image in src_data + * @param pix_fmt the pixel format of the source image + * @param width the width of the source image in pixels + * @param height the height of the source image in pixels + * @param align the assumed linesize alignment for dst + * @return the number of bytes written to dst, or a negative value + * (error code) on error + */ +int av_image_copy_to_buffer(uint8_t *dst, int dst_size, + const uint8_t * const src_data[4], const int src_linesize[4], + enum AVPixelFormat pix_fmt, int width, int height, int align); + +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of the image can be addressed with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx); + +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of a plane of an image with the specified pix_fmt can be addressed + * with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param max_pixels the maximum number of pixels the user wants to accept + * @param pix_fmt the pixel format, can be AV_PIX_FMT_NONE if unknown. + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx); + +/** + * Check if the given sample aspect ratio of an image is valid. + * + * It is considered invalid if the denominator is 0 or if applying the ratio + * to the image size would make the smaller dimension less than 1. If the + * sar numerator is 0, it is considered unknown and will return as valid. + * + * @param w width of the image + * @param h height of the image + * @param sar sample aspect ratio of the image + * @return 0 if valid, a negative AVERROR code otherwise + */ +int av_image_check_sar(unsigned int w, unsigned int h, AVRational sar); + +/** + * Overwrite the image data with black. This is suitable for filling a + * sub-rectangle of an image, meaning the padding between the right most pixel + * and the left most pixel on the next line will not be overwritten. For some + * formats, the image size might be rounded up due to inherent alignment. + * + * If the pixel format has alpha, the alpha is cleared to opaque. + * + * This can return an error if the pixel format is not supported. Normally, all + * non-hwaccel pixel formats should be supported. + * + * Passing NULL for dst_data is allowed. Then the function returns whether the + * operation would have succeeded. (It can return an error if the pix_fmt is + * not supported.) + * + * @param dst_data data pointers to destination image + * @param dst_linesize linesizes for the destination image + * @param pix_fmt the pixel format of the image + * @param range the color range of the image (important for colorspaces such as YUV) + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @return 0 if the image data was cleared, a negative AVERROR code otherwise + */ +int av_image_fill_black(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], + enum AVPixelFormat pix_fmt, enum AVColorRange range, + int width, int height); + +/** + * Overwrite the image data with a color. This is suitable for filling a + * sub-rectangle of an image, meaning the padding between the right most pixel + * and the left most pixel on the next line will not be overwritten. For some + * formats, the image size might be rounded up due to inherent alignment. + * + * If the pixel format has alpha, it is also replaced. Color component values + * are interpreted as native integers (or intfloats) regardless of actual pixel + * format endianness. + * + * This can return an error if the pixel format is not supported. Normally, all + * non-hwaccel pixel formats should be supported. + * + * Passing NULL for dst_data is allowed. Then the function returns whether the + * operation would have succeeded. (It can return an error if the pix_fmt is + * not supported.) + * + * @param dst_data data pointers to destination image + * @param dst_linesize linesizes for the destination image + * @param pix_fmt the pixel format of the image + * @param color the color components to be used for the fill + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @param flags currently unused + * @return 0 if the image data was filled, a negative AVERROR code otherwise + */ +int av_image_fill_color(uint8_t * const dst_data[4], const ptrdiff_t dst_linesize[4], + enum AVPixelFormat pix_fmt, const uint32_t color[4], + int width, int height, int flags); + +/** + * @} + */ + + +#endif /* AVUTIL_IMGUTILS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/intfloat.h b/deps/ffmpeg/macos/include/libavutil/intfloat.h new file mode 100644 index 0000000..fe3d7ec --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/intfloat.h @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2011 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTFLOAT_H +#define AVUTIL_INTFLOAT_H + +#include +#include "attributes.h" + +union av_intfloat32 { + uint32_t i; + float f; +}; + +union av_intfloat64 { + uint64_t i; + double f; +}; + +/** + * Reinterpret a 32-bit integer as a float. + */ +static av_always_inline float av_int2float(uint32_t i) +{ + union av_intfloat32 v; + v.i = i; + return v.f; +} + +/** + * Reinterpret a float as a 32-bit integer. + */ +static av_always_inline uint32_t av_float2int(float f) +{ + union av_intfloat32 v; + v.f = f; + return v.i; +} + +/** + * Reinterpret a 64-bit integer as a double. + */ +static av_always_inline double av_int2double(uint64_t i) +{ + union av_intfloat64 v; + v.i = i; + return v.f; +} + +/** + * Reinterpret a double as a 64-bit integer. + */ +static av_always_inline uint64_t av_double2int(double f) +{ + union av_intfloat64 v; + v.f = f; + return v.i; +} + +#endif /* AVUTIL_INTFLOAT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/intreadwrite.h b/deps/ffmpeg/macos/include/libavutil/intreadwrite.h new file mode 100644 index 0000000..ffd15a1 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/intreadwrite.h @@ -0,0 +1,677 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTREADWRITE_H +#define AVUTIL_INTREADWRITE_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" +#include "bswap.h" + +typedef union { + uint64_t u64; + uint32_t u32[2]; + uint16_t u16[4]; + uint8_t u8 [8]; + double f64; + float f32[2]; +} av_alias av_alias64; + +typedef union { + uint32_t u32; + uint16_t u16[2]; + uint8_t u8 [4]; + float f32; +} av_alias av_alias32; + +typedef union { + uint16_t u16; + uint8_t u8 [2]; +} av_alias av_alias16; + +/* + * Arch-specific headers can provide any combination of + * AV_[RW][BLN](16|24|32|48|64) and AV_(COPY|SWAP|ZERO)(64|128) macros. + * Preprocessor symbols must be defined, even if these are implemented + * as inline functions. + * + * R/W means read/write, B/L/N means big/little/native endianness. + * The following macros require aligned access, compared to their + * unaligned variants: AV_(COPY|SWAP|ZERO)(64|128), AV_[RW]N[8-64]A. + * Incorrect usage may range from abysmal performance to crash + * depending on the platform. + * + * The unaligned variants are AV_[RW][BLN][8-64] and AV_COPY*U. + */ + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_AARCH64 +# include "aarch64/intreadwrite.h" +#elif ARCH_MIPS +# include "mips/intreadwrite.h" +#elif ARCH_PPC +# include "ppc/intreadwrite.h" +#elif ARCH_X86 +# include "x86/intreadwrite.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +/* + * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers. + */ + +#if AV_HAVE_BIGENDIAN + +# if defined(AV_RN16) && !defined(AV_RB16) +# define AV_RB16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RB16) +# define AV_RN16(p) AV_RB16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WB16) +# define AV_WB16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WB16) +# define AV_WN16(p, v) AV_WB16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RB24) +# define AV_RB24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RB24) +# define AV_RN24(p) AV_RB24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WB24) +# define AV_WB24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WB24) +# define AV_WN24(p, v) AV_WB24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RB32) +# define AV_RB32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RB32) +# define AV_RN32(p) AV_RB32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WB32) +# define AV_WB32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WB32) +# define AV_WN32(p, v) AV_WB32(p, v) +# endif + +# if defined(AV_RN48) && !defined(AV_RB48) +# define AV_RB48(p) AV_RN48(p) +# elif !defined(AV_RN48) && defined(AV_RB48) +# define AV_RN48(p) AV_RB48(p) +# endif + +# if defined(AV_WN48) && !defined(AV_WB48) +# define AV_WB48(p, v) AV_WN48(p, v) +# elif !defined(AV_WN48) && defined(AV_WB48) +# define AV_WN48(p, v) AV_WB48(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RB64) +# define AV_RB64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RB64) +# define AV_RN64(p) AV_RB64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WB64) +# define AV_WB64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WB64) +# define AV_WN64(p, v) AV_WB64(p, v) +# endif + +#else /* AV_HAVE_BIGENDIAN */ + +# if defined(AV_RN16) && !defined(AV_RL16) +# define AV_RL16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RL16) +# define AV_RN16(p) AV_RL16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WL16) +# define AV_WL16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WL16) +# define AV_WN16(p, v) AV_WL16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RL24) +# define AV_RL24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RL24) +# define AV_RN24(p) AV_RL24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WL24) +# define AV_WL24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WL24) +# define AV_WN24(p, v) AV_WL24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RL32) +# define AV_RL32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RL32) +# define AV_RN32(p) AV_RL32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WL32) +# define AV_WL32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WL32) +# define AV_WN32(p, v) AV_WL32(p, v) +# endif + +# if defined(AV_RN48) && !defined(AV_RL48) +# define AV_RL48(p) AV_RN48(p) +# elif !defined(AV_RN48) && defined(AV_RL48) +# define AV_RN48(p) AV_RL48(p) +# endif + +# if defined(AV_WN48) && !defined(AV_WL48) +# define AV_WL48(p, v) AV_WN48(p, v) +# elif !defined(AV_WN48) && defined(AV_WL48) +# define AV_WN48(p, v) AV_WL48(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RL64) +# define AV_RL64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RL64) +# define AV_RN64(p) AV_RL64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WL64) +# define AV_WL64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WL64) +# define AV_WN64(p, v) AV_WL64(p, v) +# endif + +#endif /* !AV_HAVE_BIGENDIAN */ + +/* + * Define AV_[RW]N helper macros to simplify definitions not provided + * by per-arch headers. + */ + +#if defined(__GNUC__) || defined(__clang__) + +union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; +union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; +union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; + +# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) +# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) + +#elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_X64) || defined(_M_ARM64)) && AV_HAVE_FAST_UNALIGNED + +# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) +# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) + +#elif AV_HAVE_FAST_UNALIGNED + +# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s) +# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#else + +#ifndef AV_RB16 +# define AV_RB16(x) \ + ((((const uint8_t*)(x))[0] << 8) | \ + ((const uint8_t*)(x))[1]) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, val) do { \ + uint16_t d = (val); \ + ((uint8_t*)(p))[1] = (d); \ + ((uint8_t*)(p))[0] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RL16 +# define AV_RL16(x) \ + ((((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, val) do { \ + uint16_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RB32 +# define AV_RB32(x) \ + (((uint32_t)((const uint8_t*)(x))[0] << 24) | \ + (((const uint8_t*)(x))[1] << 16) | \ + (((const uint8_t*)(x))[2] << 8) | \ + ((const uint8_t*)(x))[3]) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, val) do { \ + uint32_t d = (val); \ + ((uint8_t*)(p))[3] = (d); \ + ((uint8_t*)(p))[2] = (d)>>8; \ + ((uint8_t*)(p))[1] = (d)>>16; \ + ((uint8_t*)(p))[0] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RL32 +# define AV_RL32(x) \ + (((uint32_t)((const uint8_t*)(x))[3] << 24) | \ + (((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, val) do { \ + uint32_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RB64 +# define AV_RB64(x) \ + (((uint64_t)((const uint8_t*)(x))[0] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ + (uint64_t)((const uint8_t*)(x))[7]) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, val) do { \ + uint64_t d = (val); \ + ((uint8_t*)(p))[7] = (d); \ + ((uint8_t*)(p))[6] = (d)>>8; \ + ((uint8_t*)(p))[5] = (d)>>16; \ + ((uint8_t*)(p))[4] = (d)>>24; \ + ((uint8_t*)(p))[3] = (d)>>32; \ + ((uint8_t*)(p))[2] = (d)>>40; \ + ((uint8_t*)(p))[1] = (d)>>48; \ + ((uint8_t*)(p))[0] = (d)>>56; \ + } while(0) +#endif + +#ifndef AV_RL64 +# define AV_RL64(x) \ + (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, val) do { \ + uint64_t d = (val); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + ((uint8_t*)(p))[4] = (d)>>32; \ + ((uint8_t*)(p))[5] = (d)>>40; \ + ((uint8_t*)(p))[6] = (d)>>48; \ + ((uint8_t*)(p))[7] = (d)>>56; \ + } while(0) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RN(s, p) AV_RB##s(p) +# define AV_WN(s, p, v) AV_WB##s(p, v) +#else +# define AV_RN(s, p) AV_RL##s(p) +# define AV_WN(s, p, v) AV_WL##s(p, v) +#endif + +#endif /* HAVE_FAST_UNALIGNED */ + +#ifndef AV_RN16 +# define AV_RN16(p) AV_RN(16, p) +#endif + +#ifndef AV_RN32 +# define AV_RN32(p) AV_RN(32, p) +#endif + +#ifndef AV_RN64 +# define AV_RN64(p) AV_RN(64, p) +#endif + +#ifndef AV_WN16 +# define AV_WN16(p, v) AV_WN(16, p, v) +#endif + +#ifndef AV_WN32 +# define AV_WN32(p, v) AV_WN(32, p, v) +#endif + +#ifndef AV_WN64 +# define AV_WN64(p, v) AV_WN(64, p, v) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RB(s, p) AV_RN##s(p) +# define AV_WB(s, p, v) AV_WN##s(p, v) +# define AV_RL(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v)) +#else +# define AV_RB(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v)) +# define AV_RL(s, p) AV_RN##s(p) +# define AV_WL(s, p, v) AV_WN##s(p, v) +#endif + +#define AV_RB8(x) (((const uint8_t*)(x))[0]) +#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0) + +#define AV_RL8(x) AV_RB8(x) +#define AV_WL8(p, d) AV_WB8(p, d) + +#ifndef AV_RB16 +# define AV_RB16(p) AV_RB(16, p) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, v) AV_WB(16, p, v) +#endif + +#ifndef AV_RL16 +# define AV_RL16(p) AV_RL(16, p) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, v) AV_WL(16, p, v) +#endif + +#ifndef AV_RB32 +# define AV_RB32(p) AV_RB(32, p) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, v) AV_WB(32, p, v) +#endif + +#ifndef AV_RL32 +# define AV_RL32(p) AV_RL(32, p) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, v) AV_WL(32, p, v) +#endif + +#ifndef AV_RB64 +# define AV_RB64(p) AV_RB(64, p) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, v) AV_WB(64, p, v) +#endif + +#ifndef AV_RL64 +# define AV_RL64(p) AV_RL(64, p) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, v) AV_WL(64, p, v) +#endif + +#ifndef AV_RB24 +# define AV_RB24(x) \ + ((((const uint8_t*)(x))[0] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[2]) +#endif +#ifndef AV_WB24 +# define AV_WB24(p, d) do { \ + ((uint8_t*)(p))[2] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[0] = (d)>>16; \ + } while(0) +#endif + +#ifndef AV_RL24 +# define AV_RL24(x) \ + ((((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL24 +# define AV_WL24(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + } while(0) +#endif + +#ifndef AV_RB48 +# define AV_RB48(x) \ + (((uint64_t)((const uint8_t*)(x))[0] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 8) | \ + (uint64_t)((const uint8_t*)(x))[5]) +#endif +#ifndef AV_WB48 +# define AV_WB48(p, darg) do { \ + uint64_t d = (darg); \ + ((uint8_t*)(p))[5] = (d); \ + ((uint8_t*)(p))[4] = (d)>>8; \ + ((uint8_t*)(p))[3] = (d)>>16; \ + ((uint8_t*)(p))[2] = (d)>>24; \ + ((uint8_t*)(p))[1] = (d)>>32; \ + ((uint8_t*)(p))[0] = (d)>>40; \ + } while(0) +#endif + +#ifndef AV_RL48 +# define AV_RL48(x) \ + (((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL48 +# define AV_WL48(p, darg) do { \ + uint64_t d = (darg); \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + ((uint8_t*)(p))[4] = (d)>>32; \ + ((uint8_t*)(p))[5] = (d)>>40; \ + } while(0) +#endif + +/* + * The AV_[RW]NA macros access naturally aligned data + * in a type-safe way. + */ + +#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s) +#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#ifndef AV_RN16A +# define AV_RN16A(p) AV_RNA(16, p) +#endif + +#ifndef AV_RN32A +# define AV_RN32A(p) AV_RNA(32, p) +#endif + +#ifndef AV_RN64A +# define AV_RN64A(p) AV_RNA(64, p) +#endif + +#ifndef AV_WN16A +# define AV_WN16A(p, v) AV_WNA(16, p, v) +#endif + +#ifndef AV_WN32A +# define AV_WN32A(p, v) AV_WNA(32, p, v) +#endif + +#ifndef AV_WN64A +# define AV_WN64A(p, v) AV_WNA(64, p, v) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RLA(s, p) av_bswap##s(AV_RN##s##A(p)) +# define AV_WLA(s, p, v) AV_WN##s##A(p, av_bswap##s(v)) +# define AV_RBA(s, p) AV_RN##s##A(p) +# define AV_WBA(s, p, v) AV_WN##s##A(p, v) +#else +# define AV_RLA(s, p) AV_RN##s##A(p) +# define AV_WLA(s, p, v) AV_WN##s##A(p, v) +# define AV_RBA(s, p) av_bswap##s(AV_RN##s##A(p)) +# define AV_WBA(s, p, v) AV_WN##s##A(p, av_bswap##s(v)) +#endif + +#ifndef AV_RL16A +# define AV_RL16A(p) AV_RLA(16, p) +#endif +#ifndef AV_WL16A +# define AV_WL16A(p, v) AV_WLA(16, p, v) +#endif + +#ifndef AV_RB16A +# define AV_RB16A(p) AV_RBA(16, p) +#endif +#ifndef AV_WB16A +# define AV_WB16A(p, v) AV_WBA(16, p, v) +#endif + +#ifndef AV_RL32A +# define AV_RL32A(p) AV_RLA(32, p) +#endif +#ifndef AV_WL32A +# define AV_WL32A(p, v) AV_WLA(32, p, v) +#endif + +#ifndef AV_RB32A +# define AV_RB32A(p) AV_RBA(32, p) +#endif +#ifndef AV_WB32A +# define AV_WB32A(p, v) AV_WBA(32, p, v) +#endif + +#ifndef AV_RL64A +# define AV_RL64A(p) AV_RLA(64, p) +#endif +#ifndef AV_WL64A +# define AV_WL64A(p, v) AV_WLA(64, p, v) +#endif + +#ifndef AV_RB64A +# define AV_RB64A(p) AV_RBA(64, p) +#endif +#ifndef AV_WB64A +# define AV_WB64A(p, v) AV_WBA(64, p, v) +#endif + +/* + * The AV_COPYxxU macros are suitable for copying data to/from unaligned + * memory locations. + */ + +#define AV_COPYU(n, d, s) AV_WN##n(d, AV_RN##n(s)); + +#ifndef AV_COPY16U +# define AV_COPY16U(d, s) AV_COPYU(16, d, s) +#endif + +#ifndef AV_COPY32U +# define AV_COPY32U(d, s) AV_COPYU(32, d, s) +#endif + +#ifndef AV_COPY64U +# define AV_COPY64U(d, s) AV_COPYU(64, d, s) +#endif + +#ifndef AV_COPY128U +# define AV_COPY128U(d, s) \ + do { \ + AV_COPY64U(d, s); \ + AV_COPY64U((char *)(d) + 8, (const char *)(s) + 8); \ + } while(0) +#endif + +/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be + * naturally aligned. + */ + +#define AV_COPY(n, d, s) \ + (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n) + +#ifndef AV_COPY16 +# define AV_COPY16(d, s) AV_COPY(16, d, s) +#endif + +#ifndef AV_COPY32 +# define AV_COPY32(d, s) AV_COPY(32, d, s) +#endif + +#ifndef AV_COPY64 +# define AV_COPY64(d, s) AV_COPY(64, d, s) +#endif + +#ifndef AV_COPY128 +# define AV_COPY128(d, s) \ + do { \ + AV_COPY64(d, s); \ + AV_COPY64((char*)(d)+8, (char*)(s)+8); \ + } while(0) +#endif + +#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b)) + +#ifndef AV_SWAP64 +# define AV_SWAP64(a, b) AV_SWAP(64, a, b) +#endif + +#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0) + +#ifndef AV_ZERO16 +# define AV_ZERO16(d) AV_ZERO(16, d) +#endif + +#ifndef AV_ZERO32 +# define AV_ZERO32(d) AV_ZERO(32, d) +#endif + +#ifndef AV_ZERO64 +# define AV_ZERO64(d) AV_ZERO(64, d) +#endif + +#ifndef AV_ZERO128 +# define AV_ZERO128(d) \ + do { \ + AV_ZERO64(d); \ + AV_ZERO64((char*)(d)+8); \ + } while(0) +#endif + +#endif /* AVUTIL_INTREADWRITE_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/lfg.h b/deps/ffmpeg/macos/include/libavutil/lfg.h new file mode 100644 index 0000000..e75a986 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/lfg.h @@ -0,0 +1,81 @@ +/* + * Lagged Fibonacci PRNG + * Copyright (c) 2008 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LFG_H +#define AVUTIL_LFG_H + +#include + +/** + * Context structure for the Lagged Fibonacci PRNG. + * The exact layout, types and content of this struct may change and should + * not be accessed directly. Only its `sizeof()` is guaranteed to stay the same + * to allow easy instanciation. + */ +typedef struct AVLFG { + unsigned int state[64]; + int index; +} AVLFG; + +void av_lfg_init(AVLFG *c, unsigned int seed); + +/** + * Seed the state of the ALFG using binary data. + * + * @return 0 on success, negative value (AVERROR) on failure. + */ +int av_lfg_init_from_data(AVLFG *c, const uint8_t *data, unsigned int length); + +/** + * Get the next random unsigned 32-bit number using an ALFG. + * + * Please also consider a simple LCG like state= state*1664525+1013904223, + * it may be good enough and faster for your specific use case. + */ +static inline unsigned int av_lfg_get(AVLFG *c){ + unsigned a = c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; + c->index += 1U; + return a; +} + +/** + * Get the next random unsigned 32-bit number using a MLFG. + * + * Please also consider av_lfg_get() above, it is faster. + */ +static inline unsigned int av_mlfg_get(AVLFG *c){ + unsigned int a= c->state[(c->index-55) & 63]; + unsigned int b= c->state[(c->index-24) & 63]; + a = c->state[c->index & 63] = 2*a*b+a+b; + c->index += 1U; + return a; +} + +/** + * Get the next two numbers generated by a Box-Muller Gaussian + * generator using the random numbers issued by lfg. + * + * @param lfg pointer to the contex structure + * @param out array where the two generated numbers are placed + */ +void av_bmg_get(AVLFG *lfg, double out[2]); + +#endif /* AVUTIL_LFG_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/log.h b/deps/ffmpeg/macos/include/libavutil/log.h new file mode 100644 index 0000000..ab7ceab --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/log.h @@ -0,0 +1,387 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LOG_H +#define AVUTIL_LOG_H + +#include +#include "attributes.h" +#include "version.h" + +typedef enum { + AV_CLASS_CATEGORY_NA = 0, + AV_CLASS_CATEGORY_INPUT, + AV_CLASS_CATEGORY_OUTPUT, + AV_CLASS_CATEGORY_MUXER, + AV_CLASS_CATEGORY_DEMUXER, + AV_CLASS_CATEGORY_ENCODER, + AV_CLASS_CATEGORY_DECODER, + AV_CLASS_CATEGORY_FILTER, + AV_CLASS_CATEGORY_BITSTREAM_FILTER, + AV_CLASS_CATEGORY_SWSCALER, + AV_CLASS_CATEGORY_SWRESAMPLER, + AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT = 40, + AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT, + AV_CLASS_CATEGORY_DEVICE_OUTPUT, + AV_CLASS_CATEGORY_DEVICE_INPUT, + AV_CLASS_CATEGORY_NB ///< not part of ABI/API +}AVClassCategory; + +#define AV_IS_INPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_INPUT)) + +#define AV_IS_OUTPUT_DEVICE(category) \ + (((category) == AV_CLASS_CATEGORY_DEVICE_VIDEO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_AUDIO_OUTPUT) || \ + ((category) == AV_CLASS_CATEGORY_DEVICE_OUTPUT)) + +struct AVOptionRanges; + +/** + * Describe the class of an AVClass context structure. That is an + * arbitrary struct of which the first field is a pointer to an + * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). + */ +typedef struct AVClass { + /** + * The name of the class; usually it is the same name as the + * context structure type to which the AVClass is associated. + */ + const char* class_name; + + /** + * A pointer to a function which returns the name of a context + * instance ctx associated with the class. + */ + const char* (*item_name)(void* ctx); + + /** + * a pointer to the first option specified in the class if any or NULL + * + * @see av_set_default_options() + */ + const struct AVOption *option; + + /** + * LIBAVUTIL_VERSION with which this structure was created. + * This is used to allow fields to be added without requiring major + * version bumps everywhere. + */ + + int version; + + /** + * Offset in the structure where log_level_offset is stored. + * 0 means there is no such variable + */ + int log_level_offset_offset; + + /** + * Offset in the structure where a pointer to the parent context for + * logging is stored. For example a decoder could pass its AVCodecContext + * to eval as such a parent context, which an av_log() implementation + * could then leverage to display the parent context. + * The offset can be NULL. + */ + int parent_log_context_offset; + + /** + * Category used for visualization (like color) + * This is only set if the category is equal for all objects using this class. + * available since version (51 << 16 | 56 << 8 | 100) + */ + AVClassCategory category; + + /** + * Callback to return the category. + * available since version (51 << 16 | 59 << 8 | 100) + */ + AVClassCategory (*get_category)(void* ctx); + + /** + * Callback to return the supported/allowed ranges. + * available since version (52.12) + */ + int (*query_ranges)(struct AVOptionRanges **, void *obj, const char *key, int flags); + + /** + * Return next AVOptions-enabled child or NULL + */ + void* (*child_next)(void *obj, void *prev); + + /** + * Iterate over the AVClasses corresponding to potential AVOptions-enabled + * children. + * + * @param iter pointer to opaque iteration state. The caller must initialize + * *iter to NULL before the first call. + * @return AVClass for the next AVOptions-enabled child or NULL if there are + * no more such children. + * + * @note The difference between child_next and this is that child_next + * iterates over _already existing_ objects, while child_class_iterate + * iterates over _all possible_ children. + */ + const struct AVClass* (*child_class_iterate)(void **iter); +} AVClass; + +/** + * @addtogroup lavu_log + * + * @{ + * + * @defgroup lavu_log_constants Logging Constants + * + * @{ + */ + +/** + * Print no output. + */ +#define AV_LOG_QUIET -8 + +/** + * Something went really wrong and we will crash now. + */ +#define AV_LOG_PANIC 0 + +/** + * Something went wrong and recovery is not possible. + * For example, no header was found for a format which depends + * on headers or an illegal combination of parameters is used. + */ +#define AV_LOG_FATAL 8 + +/** + * Something went wrong and cannot losslessly be recovered. + * However, not all future data is affected. + */ +#define AV_LOG_ERROR 16 + +/** + * Something somehow does not look correct. This may or may not + * lead to problems. An example would be the use of '-vstrict -2'. + */ +#define AV_LOG_WARNING 24 + +/** + * Standard information. + */ +#define AV_LOG_INFO 32 + +/** + * Detailed information. + */ +#define AV_LOG_VERBOSE 40 + +/** + * Stuff which is only useful for libav* developers. + */ +#define AV_LOG_DEBUG 48 + +/** + * Extremely verbose debugging, useful for libav* development. + */ +#define AV_LOG_TRACE 56 + +#define AV_LOG_MAX_OFFSET (AV_LOG_TRACE - AV_LOG_QUIET) + +/** + * @} + */ + +/** + * Sets additional colors for extended debugging sessions. + * @code + av_log(ctx, AV_LOG_DEBUG|AV_LOG_C(134), "Message in purple\n"); + @endcode + * Requires 256color terminal support. Uses outside debugging is not + * recommended. + */ +#define AV_LOG_C(x) ((x) << 8) + +/** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct or NULL if general log. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + */ +void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4); + +/** + * Send the specified message to the log once with the initial_level and then with + * the subsequent_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct or NULL if general log. + * @param initial_level importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant" for the first occurance. + * @param subsequent_level importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant" after the first occurance. + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param state a variable to keep trak of if a message has already been printed + * this must be initialized to 0 before the first use. The same state + * must not be accessed by 2 Threads simultaneously. + */ +void av_log_once(void* avcl, int initial_level, int subsequent_level, int *state, const char *fmt, ...) av_printf_format(5, 6); + + +/** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different logging callback + * function. + * @see av_log_set_callback + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + */ +void av_vlog(void *avcl, int level, const char *fmt, va_list vl); + +/** + * Get the current log level + * + * @see lavu_log_constants + * + * @return Current log level + */ +int av_log_get_level(void); + +/** + * Set the log level + * + * @see lavu_log_constants + * + * @param level Logging level + */ +void av_log_set_level(int level); + +/** + * Set the logging callback + * + * @note The callback must be thread safe, even if the application does not use + * threads itself as some codecs are multithreaded. + * + * @see av_log_default_callback + * + * @param callback A logging function with a compatible signature. + */ +void av_log_set_callback(void (*callback)(void*, int, const char*, va_list)); + +/** + * Default logging callback + * + * It prints the message to stderr, optionally colorizing it. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message expressed using a @ref + * lavu_log_constants "Logging Constant". + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @param vl The arguments referenced by the format string. + */ +void av_log_default_callback(void *avcl, int level, const char *fmt, + va_list vl); + +/** + * Return the context name + * + * @param ctx The AVClass context + * + * @return The AVClass class_name + */ +const char* av_default_item_name(void* ctx); +AVClassCategory av_default_get_category(void *ptr); + +/** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line + * @param line_size size of the buffer + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + */ +void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, + char *line, int line_size, int *print_prefix); + +/** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formatted line; + * may be NULL if line_size is 0 + * @param line_size size of the buffer; at most line_size-1 characters will + * be written to the buffer, plus one null terminator + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + * @return Returns a negative value if an error occurred, otherwise returns + * the number of characters that would have been written for a + * sufficiently large buffer, not including the terminating null + * character. If the return value is not less than line_size, it means + * that the log message was truncated to fit the buffer. + */ +int av_log_format_line2(void *ptr, int level, const char *fmt, va_list vl, + char *line, int line_size, int *print_prefix); + +/** + * Skip repeated messages, this requires the user app to use av_log() instead of + * (f)printf as the 2 would otherwise interfere and lead to + * "Last message repeated x times" messages below (f)printf messages with some + * bad luck. + * Also to receive the last, "last repeated" line if any, the user app must + * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end + */ +#define AV_LOG_SKIP_REPEATED 1 + +/** + * Include the log severity in messages originating from codecs. + * + * Results in messages such as: + * [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts + */ +#define AV_LOG_PRINT_LEVEL 2 + +void av_log_set_flags(int arg); +int av_log_get_flags(void); + +/** + * @} + */ + +#endif /* AVUTIL_LOG_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/lzo.h b/deps/ffmpeg/macos/include/libavutil/lzo.h new file mode 100644 index 0000000..c034039 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/lzo.h @@ -0,0 +1,66 @@ +/* + * LZO 1x decompression + * copyright (c) 2006 Reimar Doeffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LZO_H +#define AVUTIL_LZO_H + +/** + * @defgroup lavu_lzo LZO + * @ingroup lavu_crypto + * + * @{ + */ + +#include + +/** @name Error flags returned by av_lzo1x_decode + * @{ */ +/// end of the input buffer reached before decoding finished +#define AV_LZO_INPUT_DEPLETED 1 +/// decoded data did not fit into output buffer +#define AV_LZO_OUTPUT_FULL 2 +/// a reference to previously decoded data was wrong +#define AV_LZO_INVALID_BACKPTR 4 +/// a non-specific error in the compressed bitstream +#define AV_LZO_ERROR 8 +/** @} */ + +#define AV_LZO_INPUT_PADDING 8 +#define AV_LZO_OUTPUT_PADDING 12 + +/** + * @brief Decodes LZO 1x compressed data. + * @param out output buffer + * @param outlen size of output buffer, number of bytes left are returned here + * @param in input buffer + * @param inlen size of input buffer, number of bytes left are returned here + * @return 0 on success, otherwise a combination of the error flags above + * + * Make sure all buffers are appropriately padded, in must provide + * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes. + */ +int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen); + +/** + * @} + */ + +#endif /* AVUTIL_LZO_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/macros.h b/deps/ffmpeg/macos/include/libavutil/macros.h new file mode 100644 index 0000000..2a7567c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/macros.h @@ -0,0 +1,80 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu + * Utility Preprocessor macros + */ + +#ifndef AVUTIL_MACROS_H +#define AVUTIL_MACROS_H + +#include "libavutil/avconfig.h" + +#if AV_HAVE_BIGENDIAN +# define AV_NE(be, le) (be) +#else +# define AV_NE(be, le) (le) +#endif + +/** + * Comparator. + * For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, and 0 + * if x == y. This is useful for instance in a qsort comparator callback. + * Furthermore, compilers are able to optimize this to branchless code, and + * there is no risk of overflow with signed types. + * As with many macros, this evaluates its argument multiple times, it thus + * must not have a side-effect. + */ +#define FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y))) + +#define FFMAX(a,b) ((a) > (b) ? (a) : (b)) +#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c) +#define FFMIN(a,b) ((a) > (b) ? (b) : (a)) +#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c) + +#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) +#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) + +#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) +#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24)) + +/** + * @addtogroup preproc_misc Preprocessor String Macros + * + * String manipulation macros + * + * @{ + */ + +#define AV_STRINGIFY(s) AV_TOSTRING(s) +#define AV_TOSTRING(s) #s + +#define AV_GLUE(a, b) a ## b +#define AV_JOIN(a, b) AV_GLUE(a, b) + +/** + * @} + */ + +#define AV_PRAGMA(s) _Pragma(#s) + +#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) + +#endif /* AVUTIL_MACROS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/mastering_display_metadata.h b/deps/ffmpeg/macos/include/libavutil/mastering_display_metadata.h new file mode 100644 index 0000000..52fcef9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/mastering_display_metadata.h @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2016 Neil Birkbeck + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MASTERING_DISPLAY_METADATA_H +#define AVUTIL_MASTERING_DISPLAY_METADATA_H + +#include "frame.h" +#include "rational.h" + + +/** + * Mastering display metadata capable of representing the color volume of + * the display used to master the content (SMPTE 2086:2014). + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with av_mastering_display_metadata_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVMasteringDisplayMetadata { + /** + * CIE 1931 xy chromaticity coords of color primaries (r, g, b order). + */ + AVRational display_primaries[3][2]; + + /** + * CIE 1931 xy chromaticity coords of white point. + */ + AVRational white_point[2]; + + /** + * Min luminance of mastering display (cd/m^2). + */ + AVRational min_luminance; + + /** + * Max luminance of mastering display (cd/m^2). + */ + AVRational max_luminance; + + /** + * Flag indicating whether the display primaries (and white point) are set. + */ + int has_primaries; + + /** + * Flag indicating whether the luminance (min_ and max_) have been set. + */ + int has_luminance; + +} AVMasteringDisplayMetadata; + +/** + * Allocate an AVMasteringDisplayMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVMasteringDisplayMetadata filled with default values or NULL + * on failure. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc(void); + +/** + * Allocate an AVMasteringDisplayMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVMasteringDisplayMetadata filled with default values or NULL + * on failure. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_alloc_size(size_t *size); + +/** + * Allocate a complete AVMasteringDisplayMetadata and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVMasteringDisplayMetadata structure to be filled by caller. + */ +AVMasteringDisplayMetadata *av_mastering_display_metadata_create_side_data(AVFrame *frame); + +/** + * Content light level needed by to transmit HDR over HDMI (CTA-861.3). + * + * To be used as payload of a AVFrameSideData or AVPacketSideData with the + * appropriate type. + * + * @note The struct should be allocated with av_content_light_metadata_alloc() + * and its size is not a part of the public ABI. + */ +typedef struct AVContentLightMetadata { + /** + * Max content light level (cd/m^2). + */ + unsigned MaxCLL; + + /** + * Max average light level per frame (cd/m^2). + */ + unsigned MaxFALL; +} AVContentLightMetadata; + +/** + * Allocate an AVContentLightMetadata structure and set its fields to + * default values. The resulting struct can be freed using av_freep(). + * + * @return An AVContentLightMetadata filled with default values or NULL + * on failure. + */ +AVContentLightMetadata *av_content_light_metadata_alloc(size_t *size); + +/** + * Allocate a complete AVContentLightMetadata and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVContentLightMetadata structure to be filled by caller. + */ +AVContentLightMetadata *av_content_light_metadata_create_side_data(AVFrame *frame); + +#endif /* AVUTIL_MASTERING_DISPLAY_METADATA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/mathematics.h b/deps/ffmpeg/macos/include/libavutil/mathematics.h new file mode 100644 index 0000000..e213bab --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/mathematics.h @@ -0,0 +1,300 @@ +/* + * copyright (c) 2005-2012 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @addtogroup lavu_math + * Mathematical utilities for working with timestamp and time base. + */ + +#ifndef AVUTIL_MATHEMATICS_H +#define AVUTIL_MATHEMATICS_H + +#include +#include +#include "attributes.h" +#include "rational.h" +#include "intfloat.h" + +#ifndef M_E +#define M_E 2.7182818284590452354 /* e */ +#endif +#ifndef M_Ef +#define M_Ef 2.7182818284590452354f /* e */ +#endif +#ifndef M_LN2 +#define M_LN2 0.69314718055994530942 /* log_e 2 */ +#endif +#ifndef M_LN2f +#define M_LN2f 0.69314718055994530942f /* log_e 2 */ +#endif +#ifndef M_LN10 +#define M_LN10 2.30258509299404568402 /* log_e 10 */ +#endif +#ifndef M_LN10f +#define M_LN10f 2.30258509299404568402f /* log_e 10 */ +#endif +#ifndef M_LOG2_10 +#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */ +#endif +#ifndef M_LOG2_10f +#define M_LOG2_10f 3.32192809488736234787f /* log_2 10 */ +#endif +#ifndef M_PHI +#define M_PHI 1.61803398874989484820 /* phi / golden ratio */ +#endif +#ifndef M_PHIf +#define M_PHIf 1.61803398874989484820f /* phi / golden ratio */ +#endif +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif +#ifndef M_PIf +#define M_PIf 3.14159265358979323846f /* pi */ +#endif +#ifndef M_PI_2 +#define M_PI_2 1.57079632679489661923 /* pi/2 */ +#endif +#ifndef M_PI_2f +#define M_PI_2f 1.57079632679489661923f /* pi/2 */ +#endif +#ifndef M_PI_4 +#define M_PI_4 0.78539816339744830962 /* pi/4 */ +#endif +#ifndef M_PI_4f +#define M_PI_4f 0.78539816339744830962f /* pi/4 */ +#endif +#ifndef M_1_PI +#define M_1_PI 0.31830988618379067154 /* 1/pi */ +#endif +#ifndef M_1_PIf +#define M_1_PIf 0.31830988618379067154f /* 1/pi */ +#endif +#ifndef M_2_PI +#define M_2_PI 0.63661977236758134308 /* 2/pi */ +#endif +#ifndef M_2_PIf +#define M_2_PIf 0.63661977236758134308f /* 2/pi */ +#endif +#ifndef M_2_SQRTPI +#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ +#endif +#ifndef M_2_SQRTPIf +#define M_2_SQRTPIf 1.12837916709551257390f /* 2/sqrt(pi) */ +#endif +#ifndef M_SQRT1_2 +#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ +#endif +#ifndef M_SQRT1_2f +#define M_SQRT1_2f 0.70710678118654752440f /* 1/sqrt(2) */ +#endif +#ifndef M_SQRT2 +#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ +#endif +#ifndef M_SQRT2f +#define M_SQRT2f 1.41421356237309504880f /* sqrt(2) */ +#endif +#ifndef NAN +#define NAN av_int2float(0x7fc00000) +#endif +#ifndef INFINITY +#define INFINITY av_int2float(0x7f800000) +#endif + +/** + * @addtogroup lavu_math + * + * @{ + */ + +/** + * Rounding methods. + */ +enum AVRounding { + AV_ROUND_ZERO = 0, ///< Round toward zero. + AV_ROUND_INF = 1, ///< Round away from zero. + AV_ROUND_DOWN = 2, ///< Round toward -infinity. + AV_ROUND_UP = 3, ///< Round toward +infinity. + AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. + /** + * Flag telling rescaling functions to pass `INT64_MIN`/`MAX` through + * unchanged, avoiding special cases for #AV_NOPTS_VALUE. + * + * Unlike other values of the enumeration AVRounding, this value is a + * bitmask that must be used in conjunction with another value of the + * enumeration through a bitwise OR, in order to set behavior for normal + * cases. + * + * @code{.c} + * av_rescale_rnd(3, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling 3: + * // Calculating 3 * 1 / 2 + * // 3 / 2 is rounded up to 2 + * // => 2 + * + * av_rescale_rnd(AV_NOPTS_VALUE, 1, 2, AV_ROUND_UP | AV_ROUND_PASS_MINMAX); + * // Rescaling AV_NOPTS_VALUE: + * // AV_NOPTS_VALUE == INT64_MIN + * // AV_NOPTS_VALUE is passed through + * // => AV_NOPTS_VALUE + * @endcode + */ + AV_ROUND_PASS_MINMAX = 8192, +}; + +/** + * Compute the greatest common divisor of two integer operands. + * + * @param a Operand + * @param b Operand + * @return GCD of a and b up to sign; if a >= 0 and b >= 0, return value is >= 0; + * if a == 0 and b == 0, returns 0. + */ +int64_t av_const av_gcd(int64_t a, int64_t b); + +/** + * Rescale a 64-bit integer with rounding to nearest. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow. + * + * This function is equivalent to av_rescale_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale_rnd(), av_rescale_q(), av_rescale_q_rnd() + */ +int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; + +/** + * Rescale a 64-bit integer with specified rounding. + * + * The operation is mathematically equivalent to `a * b / c`, but writing that + * directly can overflow, and does not support different rounding methods. + * If the result is not representable then INT64_MIN is returned. + * + * @see av_rescale(), av_rescale_q(), av_rescale_q_rnd() + */ +int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd) av_const; + +/** + * Rescale a 64-bit integer by 2 rational numbers. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * This function is equivalent to av_rescale_q_rnd() with #AV_ROUND_NEAR_INF. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q_rnd() + */ +int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; + +/** + * Rescale a 64-bit integer by 2 rational numbers with specified rounding. + * + * The operation is mathematically equivalent to `a * bq / cq`. + * + * @see av_rescale(), av_rescale_rnd(), av_rescale_q() + */ +int64_t av_rescale_q_rnd(int64_t a, AVRational bq, AVRational cq, + enum AVRounding rnd) av_const; + +/** + * Compare two timestamps each in its own time base. + * + * @return One of the following values: + * - -1 if `ts_a` is before `ts_b` + * - 1 if `ts_a` is after `ts_b` + * - 0 if they represent the same position + * + * @warning + * The result of the function is undefined if one of the timestamps is outside + * the `int64_t` range when represented in the other's timebase. + */ +int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); + +/** + * Compare the remainders of two integer operands divided by a common divisor. + * + * In other words, compare the least significant `log2(mod)` bits of integers + * `a` and `b`. + * + * @code{.c} + * av_compare_mod(0x11, 0x02, 0x10) < 0 // since 0x11 % 0x10 (0x1) < 0x02 % 0x10 (0x2) + * av_compare_mod(0x11, 0x02, 0x20) > 0 // since 0x11 % 0x20 (0x11) > 0x02 % 0x20 (0x02) + * @endcode + * + * @param a Operand + * @param b Operand + * @param mod Divisor; must be a power of 2 + * @return + * - a negative value if `a % mod < b % mod` + * - a positive value if `a % mod > b % mod` + * - zero if `a % mod == b % mod` + */ +int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); + +/** + * Rescale a timestamp while preserving known durations. + * + * This function is designed to be called per audio packet to scale the input + * timestamp to a different time base. Compared to a simple av_rescale_q() + * call, this function is robust against possible inconsistent frame durations. + * + * The `last` parameter is a state variable that must be preserved for all + * subsequent calls for the same stream. For the first call, `*last` should be + * initialized to #AV_NOPTS_VALUE. + * + * @param[in] in_tb Input time base + * @param[in] in_ts Input timestamp + * @param[in] fs_tb Duration time base; typically this is finer-grained + * (greater) than `in_tb` and `out_tb` + * @param[in] duration Duration till the next call to this function (i.e. + * duration of the current packet/frame) + * @param[in,out] last Pointer to a timestamp expressed in terms of + * `fs_tb`, acting as a state variable + * @param[in] out_tb Output timebase + * @return Timestamp expressed in terms of `out_tb` + * + * @note In the context of this function, "duration" is in term of samples, not + * seconds. + */ +int64_t av_rescale_delta(AVRational in_tb, int64_t in_ts, AVRational fs_tb, int duration, int64_t *last, AVRational out_tb); + +/** + * Add a value to a timestamp. + * + * This function guarantees that when the same value is repeatly added that + * no accumulation of rounding errors occurs. + * + * @param[in] ts Input timestamp + * @param[in] ts_tb Input timestamp time base + * @param[in] inc Value to be added + * @param[in] inc_tb Time base of `inc` + */ +int64_t av_add_stable(AVRational ts_tb, int64_t ts, AVRational inc_tb, int64_t inc); + +/** + * 0th order modified bessel function of the first kind. + */ +double av_bessel_i0(double x); + +/** + * @} + */ + +#endif /* AVUTIL_MATHEMATICS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/md5.h b/deps/ffmpeg/macos/include/libavutil/md5.h new file mode 100644 index 0000000..fc2eabd --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/md5.h @@ -0,0 +1,89 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_md5 + * Public header for MD5 hash function implementation. + */ + +#ifndef AVUTIL_MD5_H +#define AVUTIL_MD5_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_md5 MD5 + * @ingroup lavu_hash + * MD5 hash function implementation. + * + * @{ + */ + +extern const int av_md5_size; + +struct AVMD5; + +/** + * Allocate an AVMD5 context. + */ +struct AVMD5 *av_md5_alloc(void); + +/** + * Initialize MD5 hashing. + * + * @param ctx pointer to the function context (of size av_md5_size) + */ +void av_md5_init(struct AVMD5 *ctx); + +/** + * Update hash value. + * + * @param ctx hash function context + * @param src input data to update hash with + * @param len input data length + */ +void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param ctx hash function context + * @param dst buffer where output digest value is stored + */ +void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); + +/** + * Hash an array of data. + * + * @param dst The output buffer to write the digest into + * @param src The data to hash + * @param len The length of the data, in bytes + */ +void av_md5_sum(uint8_t *dst, const uint8_t *src, size_t len); + +/** + * @} + */ + +#endif /* AVUTIL_MD5_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/mem.h b/deps/ffmpeg/macos/include/libavutil/mem.h new file mode 100644 index 0000000..ab7648a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/mem.h @@ -0,0 +1,607 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_mem + * Memory handling functions + */ + +#ifndef AVUTIL_MEM_H +#define AVUTIL_MEM_H + +#include +#include + +#include "attributes.h" + +/** + * @addtogroup lavu_mem + * Utilities for manipulating memory. + * + * FFmpeg has several applications of memory that are not required of a typical + * program. For example, the computing-heavy components like video decoding and + * encoding can be sped up significantly through the use of aligned memory. + * + * However, for each of FFmpeg's applications of memory, there might not be a + * recognized or standardized API for that specific use. Memory alignment, for + * instance, varies wildly depending on operating systems, architectures, and + * compilers. Hence, this component of @ref libavutil is created to make + * dealing with memory consistently possible on all platforms. + * + * @{ + */ + +/** + * @defgroup lavu_mem_attrs Function Attributes + * Function attributes applicable to memory handling functions. + * + * These function attributes can help compilers emit more useful warnings, or + * generate better code. + * @{ + */ + +/** + * @def av_malloc_attrib + * Function attribute denoting a malloc-like function. + * + * @see Function attribute `malloc` in GCC's documentation + */ + +#if AV_GCC_VERSION_AT_LEAST(3,1) + #define av_malloc_attrib __attribute__((__malloc__)) +#else + #define av_malloc_attrib +#endif + +/** + * @def av_alloc_size(...) + * Function attribute used on a function that allocates memory, whose size is + * given by the specified parameter(s). + * + * @code{.c} + * void *av_malloc(size_t size) av_alloc_size(1); + * void *av_calloc(size_t nmemb, size_t size) av_alloc_size(1, 2); + * @endcode + * + * @param ... One or two parameter indexes, separated by a comma + * + * @see Function attribute `alloc_size` in GCC's documentation + */ + +#if AV_GCC_VERSION_AT_LEAST(4,3) + #define av_alloc_size(...) __attribute__((alloc_size(__VA_ARGS__))) +#else + #define av_alloc_size(...) +#endif + +/** + * @} + */ + +/** + * @defgroup lavu_mem_funcs Heap Management + * Functions responsible for allocating, freeing, and copying memory. + * + * All memory allocation functions have a built-in upper limit of `INT_MAX` + * bytes. This may be changed with av_max_alloc(), although exercise extreme + * caution when doing so. + * + * @{ + */ + +/** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU). + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_mallocz() + */ +void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a memory block with alignment suitable for all memory accesses + * (including vectors if available on the CPU) and zero all the bytes of the + * block. + * + * @param size Size in bytes for the memory block to be allocated + * @return Pointer to the allocated block, or `NULL` if it cannot be allocated + * @see av_malloc() + */ +void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a memory block for an array with av_malloc(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of element + * @param size Size of a single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * @see av_malloc() + */ +av_alloc_size(1, 2) void *av_malloc_array(size_t nmemb, size_t size); + +/** + * Allocate a memory block for an array with av_mallocz(). + * + * The allocated memory will have size `size * nmemb` bytes. + * + * @param nmemb Number of elements + * @param size Size of the single element + * @return Pointer to the allocated block, or `NULL` if the block cannot + * be allocated + * + * @see av_mallocz() + * @see av_malloc_array() + */ +void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib av_alloc_size(1, 2); + +/** + * Allocate, reallocate, or free a block of memory. + * + * If `ptr` is `NULL` and `size` > 0, allocate a new block. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param size Size in bytes of the memory block to be allocated or + * reallocated + * + * @return Pointer to a newly-reallocated block or `NULL` if the block + * cannot be reallocated + * + * @warning Unlike av_malloc(), the returned pointer is not guaranteed to be + * correctly aligned. The returned pointer must be freed after even + * if size is zero. + * @see av_fast_realloc() + * @see av_reallocp() + */ +void *av_realloc(void *ptr, size_t size) av_alloc_size(2); + +/** + * Allocate, reallocate, or free a block of memory through a pointer to a + * pointer. + * + * If `*ptr` is `NULL` and `size` > 0, allocate a new block. If `size` is + * zero, free the memory block pointed to by `*ptr`. Otherwise, expand or + * shrink that block of memory according to `size`. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already allocated + * with av_realloc(), or a pointer to `NULL`. The pointer + * is updated on success, or freed on failure. + * @param[in] size Size in bytes for the memory block to be allocated or + * reallocated + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. + */ +av_warn_unused_result +int av_reallocp(void *ptr, size_t size); + +/** + * Allocate, reallocate, or free a block of memory. + * + * This function does the same thing as av_realloc(), except: + * - It takes two size arguments and allocates `nelem * elsize` bytes, + * after checking the result of the multiplication for integer overflow. + * - It frees the input block in case of failure, thus avoiding the memory + * leak with the classic + * @code{.c} + * buf = realloc(buf); + * if (!buf) + * return -1; + * @endcode + * pattern. + */ +void *av_realloc_f(void *ptr, size_t nelem, size_t elsize); + +/** + * Allocate, reallocate, or free an array. + * + * If `ptr` is `NULL` and `nmemb` > 0, allocate a new block. + * + * @param ptr Pointer to a memory block already allocated with + * av_realloc() or `NULL` + * @param nmemb Number of elements in the array + * @param size Size of the single element of the array + * + * @return Pointer to a newly-reallocated block or NULL if the block + * cannot be reallocated + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. The returned pointer must be freed after even if + * nmemb is zero. + * @see av_reallocp_array() + */ +av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size); + +/** + * Allocate, reallocate an array through a pointer to a pointer. + * + * If `*ptr` is `NULL` and `nmemb` > 0, allocate a new block. + * + * @param[in,out] ptr Pointer to a pointer to a memory block already + * allocated with av_realloc(), or a pointer to `NULL`. + * The pointer is updated on success, or freed on failure. + * @param[in] nmemb Number of elements + * @param[in] size Size of the single element + * + * @return Zero on success, an AVERROR error code on failure + * + * @warning Unlike av_malloc(), the allocated memory is not guaranteed to be + * correctly aligned. *ptr must be freed after even if nmemb is zero. + */ +int av_reallocp_array(void *ptr, size_t nmemb, size_t size); + +/** + * Reallocate the given buffer if it is not large enough, otherwise do nothing. + * + * If the given buffer is `NULL`, then a new uninitialized buffer is allocated. + * + * If the given buffer is not large enough, and reallocation fails, `NULL` is + * returned and `*size` is set to 0, but the original buffer is not changed or + * freed. + * + * A typical use pattern follows: + * + * @code{.c} + * uint8_t *buf = ...; + * uint8_t *new_buf = av_fast_realloc(buf, ¤t_size, size_needed); + * if (!new_buf) { + * // Allocation failed; clean up original buffer + * av_freep(&buf); + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Already allocated buffer, or `NULL` + * @param[in,out] size Pointer to the size of buffer `ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `ptr` + * @return `ptr` if the buffer is large enough, a pointer to newly reallocated + * buffer if the buffer was not large enough, or `NULL` in case of + * error + * @see av_realloc() + * @see av_fast_malloc() + */ +void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Allocate a buffer, reusing the given one if large enough. + * + * Contrary to av_fast_realloc(), the current buffer contents might not be + * preserved and on error the old buffer is freed, thus no special handling to + * avoid memleaks is necessary. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @code{.c} + * uint8_t *buf = ...; + * av_fast_malloc(&buf, ¤t_size, size_needed); + * if (!buf) { + * // Allocation failed; buf already freed + * return AVERROR(ENOMEM); + * } + * @endcode + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to the size of buffer `*ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `*ptr` + * @see av_realloc() + * @see av_fast_mallocz() + */ +void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Allocate and clear a buffer, reusing the given one if large enough. + * + * Like av_fast_malloc(), but all newly allocated space is initially cleared. + * Reused buffer is not cleared. + * + * `*ptr` is allowed to be `NULL`, in which case allocation always happens if + * `size_needed` is greater than 0. + * + * @param[in,out] ptr Pointer to pointer to an already allocated buffer. + * `*ptr` will be overwritten with pointer to new + * buffer on success or `NULL` on failure + * @param[in,out] size Pointer to the size of buffer `*ptr`. `*size` is + * updated to the new allocated size, in particular 0 + * in case of failure. + * @param[in] min_size Desired minimal size of buffer `*ptr` + * @see av_fast_malloc() + */ +void av_fast_mallocz(void *ptr, unsigned int *size, size_t min_size); + +/** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family. + * + * @param ptr Pointer to the memory block which should be freed. + * + * @note `ptr = NULL` is explicitly allowed. + * @note It is recommended that you use av_freep() instead, to prevent leaving + * behind dangling pointers. + * @see av_freep() + */ +void av_free(void *ptr); + +/** + * Free a memory block which has been allocated with a function of av_malloc() + * or av_realloc() family, and set the pointer pointing to it to `NULL`. + * + * @code{.c} + * uint8_t *buf = av_malloc(16); + * av_free(buf); + * // buf now contains a dangling pointer to freed memory, and accidental + * // dereference of buf will result in a use-after-free, which may be a + * // security risk. + * + * uint8_t *buf = av_malloc(16); + * av_freep(&buf); + * // buf is now NULL, and accidental dereference will only result in a + * // NULL-pointer dereference. + * @endcode + * + * @param ptr Pointer to the pointer to the memory block which should be freed + * @note `*ptr = NULL` is safe and leads to no action. + * @see av_free() + */ +void av_freep(void *ptr); + +/** + * Duplicate a string. + * + * @param s String to be duplicated + * @return Pointer to a newly-allocated string containing a + * copy of `s` or `NULL` if the string cannot be allocated + * @see av_strndup() + */ +char *av_strdup(const char *s) av_malloc_attrib; + +/** + * Duplicate a substring of a string. + * + * @param s String to be duplicated + * @param len Maximum length of the resulting string (not counting the + * terminating byte) + * @return Pointer to a newly-allocated string containing a + * substring of `s` or `NULL` if the string cannot be allocated + */ +char *av_strndup(const char *s, size_t len) av_malloc_attrib; + +/** + * Duplicate a buffer with av_malloc(). + * + * @param p Buffer to be duplicated + * @param size Size in bytes of the buffer copied + * @return Pointer to a newly allocated buffer containing a + * copy of `p` or `NULL` if the buffer cannot be allocated + */ +void *av_memdup(const void *p, size_t size); + +/** + * Overlapping memcpy() implementation. + * + * @param dst Destination buffer + * @param back Number of bytes back to start copying (i.e. the initial size of + * the overlapping window); must be > 0 + * @param cnt Number of bytes to copy; must be >= 0 + * + * @note `cnt > back` is valid, this will copy the bytes we just copied, + * thus creating a repeating pattern with a period length of `back`. + */ +void av_memcpy_backptr(uint8_t *dst, int back, int cnt); + +/** + * @} + */ + +/** + * @defgroup lavu_mem_dynarray Dynamic Array + * + * Utilities to make an array grow when needed. + * + * Sometimes, the programmer would want to have an array that can grow when + * needed. The libavutil dynamic array utilities fill that need. + * + * libavutil supports two systems of appending elements onto a dynamically + * allocated array, the first one storing the pointer to the value in the + * array, and the second storing the value directly. In both systems, the + * caller is responsible for maintaining a variable containing the length of + * the array, as well as freeing of the array after use. + * + * The first system stores pointers to values in a block of dynamically + * allocated memory. Since only pointers are stored, the function does not need + * to know the size of the type. Both av_dynarray_add() and + * av_dynarray_add_nofree() implement this system. + * + * @code + * type **array = NULL; //< an array of pointers to values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * av_dynarray_add(&array, &nb, &to_be_added); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * av_dynarray_add(&array, &nb, &to_be_added2); + * if (nb == 0) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // &to_be_added == array[0] + * // &to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * The second system stores the value directly in a block of memory. As a + * result, the function has to know the size of the type. av_dynarray2_add() + * implements this mechanism. + * + * @code + * type *array = NULL; //< an array of values + * int nb = 0; //< a variable to keep track of the length of the array + * + * type to_be_added = ...; + * type to_be_added2 = ...; + * + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), NULL); + * if (!addr) + * return AVERROR(ENOMEM); + * memcpy(addr, &to_be_added, sizeof(to_be_added)); + * + * // Shortcut of the above. + * type *addr = av_dynarray2_add((void **)&array, &nb, sizeof(*array), + * (const void *)&to_be_added2); + * if (!addr) + * return AVERROR(ENOMEM); + * + * // Now: + * // nb == 2 + * // to_be_added == array[0] + * // to_be_added2 == array[1] + * + * av_freep(&array); + * @endcode + * + * @{ + */ + +/** + * Add the pointer to an element to a dynamic array. + * + * The array to grow is supposed to be an array of pointers to + * structures, and the element to add must be a pointer to an already + * allocated structure. + * + * The array is reallocated when its size reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem Element to add + * @see av_dynarray_add_nofree(), av_dynarray2_add() + */ +void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem); + +/** + * Add an element to a dynamic array. + * + * Function has the same functionality as av_dynarray_add(), + * but it doesn't free memory on fails. It returns error code + * instead and leave current buffer untouched. + * + * @return >=0 on success, negative otherwise + * @see av_dynarray_add(), av_dynarray2_add() + */ +av_warn_unused_result +int av_dynarray_add_nofree(void *tab_ptr, int *nb_ptr, void *elem); + +/** + * Add an element of size `elem_size` to a dynamic array. + * + * The array is reallocated when its number of elements reaches powers of 2. + * Therefore, the amortized cost of adding an element is constant. + * + * In case of success, the pointer to the array is updated in order to + * point to the new grown array, and the number pointed to by `nb_ptr` + * is incremented. + * In case of failure, the array is freed, `*tab_ptr` is set to `NULL` and + * `*nb_ptr` is set to 0. + * + * @param[in,out] tab_ptr Pointer to the array to grow + * @param[in,out] nb_ptr Pointer to the number of elements in the array + * @param[in] elem_size Size in bytes of an element in the array + * @param[in] elem_data Pointer to the data of the element to add. If + * `NULL`, the space of the newly added element is + * allocated but left uninitialized. + * + * @return Pointer to the data of the element to copy in the newly allocated + * space + * @see av_dynarray_add(), av_dynarray_add_nofree() + */ +void *av_dynarray2_add(void **tab_ptr, int *nb_ptr, size_t elem_size, + const uint8_t *elem_data); + +/** + * @} + */ + +/** + * @defgroup lavu_mem_misc Miscellaneous Functions + * + * Other functions related to memory allocation. + * + * @{ + */ + +/** + * Multiply two `size_t` values checking for overflow. + * + * @param[in] a Operand of multiplication + * @param[in] b Operand of multiplication + * @param[out] r Pointer to the result of the operation + * @return 0 on success, AVERROR(EINVAL) on overflow + */ +int av_size_mult(size_t a, size_t b, size_t *r); + +/** + * Set the maximum size that may be allocated in one block. + * + * The value specified with this function is effective for all libavutil's @ref + * lavu_mem_funcs "heap management functions." + * + * By default, the max value is defined as `INT_MAX`. + * + * @param max Value to be set as the new maximum size + * + * @warning Exercise extreme caution when using this function. Don't touch + * this if you do not understand the full consequence of doing so. + */ +void av_max_alloc(size_t max); + +/** + * @} + * @} + */ + +#endif /* AVUTIL_MEM_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/motion_vector.h b/deps/ffmpeg/macos/include/libavutil/motion_vector.h new file mode 100644 index 0000000..ec29556 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/motion_vector.h @@ -0,0 +1,57 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MOTION_VECTOR_H +#define AVUTIL_MOTION_VECTOR_H + +#include + +typedef struct AVMotionVector { + /** + * Where the current macroblock comes from; negative value when it comes + * from the past, positive value when it comes from the future. + * XXX: set exact relative ref frame reference instead of a +/- 1 "direction". + */ + int32_t source; + /** + * Width and height of the block. + */ + uint8_t w, h; + /** + * Absolute source position. Can be outside the frame area. + */ + int16_t src_x, src_y; + /** + * Absolute destination position. Can be outside the frame area. + */ + int16_t dst_x, dst_y; + /** + * Extra flag information. + * Currently unused. + */ + uint64_t flags; + /** + * Motion vector + * src_x = dst_x + motion_x / motion_scale + * src_y = dst_y + motion_y / motion_scale + */ + int32_t motion_x, motion_y; + uint16_t motion_scale; +} AVMotionVector; + +#endif /* AVUTIL_MOTION_VECTOR_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/murmur3.h b/deps/ffmpeg/macos/include/libavutil/murmur3.h new file mode 100644 index 0000000..d90bc2f --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/murmur3.h @@ -0,0 +1,115 @@ +/* + * Copyright (C) 2013 Reimar Döffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_murmur3 + * Public header for MurmurHash3 hash function implementation. + */ + +#ifndef AVUTIL_MURMUR3_H +#define AVUTIL_MURMUR3_H + +#include +#include + +/** + * @defgroup lavu_murmur3 Murmur3 + * @ingroup lavu_hash + * MurmurHash3 hash function implementation. + * + * MurmurHash3 is a non-cryptographic hash function, of which three + * incompatible versions were created by its inventor Austin Appleby: + * + * - 32-bit output + * - 128-bit output for 32-bit platforms + * - 128-bit output for 64-bit platforms + * + * FFmpeg only implements the last variant: 128-bit output designed for 64-bit + * platforms. Even though the hash function was designed for 64-bit platforms, + * the function in reality works on 32-bit systems too, only with reduced + * performance. + * + * @anchor lavu_murmur3_seedinfo + * By design, MurmurHash3 requires a seed to operate. In response to this, + * libavutil provides two functions for hash initiation, one that requires a + * seed (av_murmur3_init_seeded()) and one that uses a fixed arbitrary integer + * as the seed, and therefore does not (av_murmur3_init()). + * + * To make hashes comparable, you should provide the same seed for all calls to + * this hash function -- if you are supplying one yourself, that is. + * + * @{ + */ + +/** + * Allocate an AVMurMur3 hash context. + * + * @return Uninitialized hash context or `NULL` in case of error + */ +struct AVMurMur3 *av_murmur3_alloc(void); + +/** + * Initialize or reinitialize an AVMurMur3 hash context with a seed. + * + * @param[out] c Hash context + * @param[in] seed Random seed + * + * @see av_murmur3_init() + * @see @ref lavu_murmur3_seedinfo "Detailed description" on a discussion of + * seeds for MurmurHash3. + */ +void av_murmur3_init_seeded(struct AVMurMur3 *c, uint64_t seed); + +/** + * Initialize or reinitialize an AVMurMur3 hash context. + * + * Equivalent to av_murmur3_init_seeded() with a built-in seed. + * + * @param[out] c Hash context + * + * @see av_murmur3_init_seeded() + * @see @ref lavu_murmur3_seedinfo "Detailed description" on a discussion of + * seeds for MurmurHash3. + */ +void av_murmur3_init(struct AVMurMur3 *c); + +/** + * Update hash context with new data. + * + * @param[out] c Hash context + * @param[in] src Input data to update hash with + * @param[in] len Number of bytes to read from `src` + */ +void av_murmur3_update(struct AVMurMur3 *c, const uint8_t *src, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param[in,out] c Hash context + * @param[out] dst Buffer where output digest value is stored + */ +void av_murmur3_final(struct AVMurMur3 *c, uint8_t dst[16]); + +/** + * @} + */ + +#endif /* AVUTIL_MURMUR3_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/opt.h b/deps/ffmpeg/macos/include/libavutil/opt.h new file mode 100644 index 0000000..be189f7 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/opt.h @@ -0,0 +1,1187 @@ +/* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_OPT_H +#define AVUTIL_OPT_H + +/** + * @file + * AVOptions + */ + +#include "rational.h" +#include "avutil.h" +#include "channel_layout.h" +#include "dict.h" +#include "log.h" +#include "pixfmt.h" +#include "samplefmt.h" + +/** + * @defgroup avoptions AVOptions + * @ingroup lavu_data + * @{ + * AVOptions provide a generic system to declare options on arbitrary structs + * ("objects"). An option can have a help text, a type and a range of possible + * values. Options may then be enumerated, read and written to. + * + * There are two modes of access to members of AVOption and its child structs. + * One is called 'native access', and refers to access from the code that + * declares the AVOption in question. The other is 'foreign access', and refers + * to access from other code. + * + * Certain struct members in this header are documented as 'native access only' + * or similar - it means that only the code that declared the AVOption in + * question is allowed to access the field. This allows us to extend the + * semantics of those fields without breaking API compatibility. + * + * @section avoptions_scope Scope of AVOptions + * + * AVOptions is designed to support any set of multimedia configuration options + * that can be defined at compile-time. Although it is mainly used to expose + * FFmpeg options, you are welcome to adapt it to your own use case. + * + * No single approach can ever fully solve the problem of configuration, + * but please submit a patch if you believe you have found a problem + * that is best solved by extending AVOptions. + * + * @section avoptions_implement Implementing AVOptions + * This section describes how to add AVOptions capabilities to a struct. + * + * All AVOptions-related information is stored in an AVClass. Therefore + * the first member of the struct should be a pointer to an AVClass describing it. + * The option field of the AVClass must be set to a NULL-terminated static array + * of AVOptions. Each AVOption must have a non-empty name, a type, a default + * value and for number-type AVOptions also a range of allowed values. It must + * also declare an offset in bytes from the start of the struct, where the field + * associated with this AVOption is located. Other fields in the AVOption struct + * should also be set when applicable, but are not required. + * + * The following example illustrates an AVOptions-enabled struct: + * @code + * typedef struct test_struct { + * const AVClass *class; + * int int_opt; + * char *str_opt; + * uint8_t *bin_opt; + * int bin_len; + * } test_struct; + * + * static const AVOption test_options[] = { + * { "test_int", "This is a test option of int type.", offsetof(test_struct, int_opt), + * AV_OPT_TYPE_INT, { .i64 = -1 }, INT_MIN, INT_MAX }, + * { "test_str", "This is a test option of string type.", offsetof(test_struct, str_opt), + * AV_OPT_TYPE_STRING }, + * { "test_bin", "This is a test option of binary type.", offsetof(test_struct, bin_opt), + * AV_OPT_TYPE_BINARY }, + * { NULL }, + * }; + * + * static const AVClass test_class = { + * .class_name = "test class", + * .item_name = av_default_item_name, + * .option = test_options, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * @endcode + * + * Next, when allocating your struct, you must ensure that the AVClass pointer + * is set to the correct value. Then, av_opt_set_defaults() can be called to + * initialize defaults. After that the struct is ready to be used with the + * AVOptions API. + * + * When cleaning up, you may use the av_opt_free() function to automatically + * free all the allocated string and binary options. + * + * Continuing with the above example: + * + * @code + * test_struct *alloc_test_struct(void) + * { + * test_struct *ret = av_mallocz(sizeof(*ret)); + * ret->class = &test_class; + * av_opt_set_defaults(ret); + * return ret; + * } + * void free_test_struct(test_struct **foo) + * { + * av_opt_free(*foo); + * av_freep(foo); + * } + * @endcode + * + * @subsection avoptions_implement_nesting Nesting + * It may happen that an AVOptions-enabled struct contains another + * AVOptions-enabled struct as a member (e.g. AVCodecContext in + * libavcodec exports generic options, while its priv_data field exports + * codec-specific options). In such a case, it is possible to set up the + * parent struct to export a child's options. To do that, simply + * implement AVClass.child_next() and AVClass.child_class_iterate() in the + * parent struct's AVClass. + * Assuming that the test_struct from above now also contains a + * child_struct field: + * + * @code + * typedef struct child_struct { + * AVClass *class; + * int flags_opt; + * } child_struct; + * static const AVOption child_opts[] = { + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX }, + * { NULL }, + * }; + * static const AVClass child_class = { + * .class_name = "child class", + * .item_name = av_default_item_name, + * .option = child_opts, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * + * void *child_next(void *obj, void *prev) + * { + * test_struct *t = obj; + * if (!prev && t->child_struct) + * return t->child_struct; + * return NULL + * } + * const AVClass child_class_iterate(void **iter) + * { + * const AVClass *c = *iter ? NULL : &child_class; + * *iter = (void*)(uintptr_t)c; + * return c; + * } + * @endcode + * Putting child_next() and child_class_iterate() as defined above into + * test_class will now make child_struct's options accessible through + * test_struct (again, proper setup as described above needs to be done on + * child_struct right after it is created). + * + * From the above example it might not be clear why both child_next() + * and child_class_iterate() are needed. The distinction is that child_next() + * iterates over actually existing objects, while child_class_iterate() + * iterates over all possible child classes. E.g. if an AVCodecContext + * was initialized to use a codec which has private options, then its + * child_next() will return AVCodecContext.priv_data and finish + * iterating. OTOH child_class_iterate() on AVCodecContext.av_class will + * iterate over all available codecs with private options. + * + * @subsection avoptions_implement_named_constants Named constants + * It is possible to create named constants for options. Simply set the unit + * field of the option the constants should apply to a string and + * create the constants themselves as options of type AV_OPT_TYPE_CONST + * with their unit field set to the same string. + * Their default_val field should contain the value of the named + * constant. + * For example, to add some named constants for the test_flags option + * above, put the following into the child_opts array: + * @code + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { .i64 = 0 }, INT_MIN, INT_MAX, "test_unit" }, + * { "flag1", "This is a flag with value 16", 0, AV_OPT_TYPE_CONST, { .i64 = 16 }, 0, 0, "test_unit" }, + * @endcode + * + * @section avoptions_use Using AVOptions + * This section deals with accessing options in an AVOptions-enabled struct. + * Such structs in FFmpeg are e.g. AVCodecContext in libavcodec or + * AVFormatContext in libavformat. + * + * @subsection avoptions_use_examine Examining AVOptions + * The basic functions for examining options are av_opt_next(), which iterates + * over all options defined for one object, and av_opt_find(), which searches + * for an option with the given name. + * + * The situation is more complicated with nesting. An AVOptions-enabled struct + * may have AVOptions-enabled children. Passing the AV_OPT_SEARCH_CHILDREN flag + * to av_opt_find() will make the function search children recursively. + * + * For enumerating there are basically two cases. The first is when you want to + * get all options that may potentially exist on the struct and its children + * (e.g. when constructing documentation). In that case you should call + * av_opt_child_class_iterate() recursively on the parent struct's AVClass. The + * second case is when you have an already initialized struct with all its + * children and you want to get all options that can be actually written or read + * from it. In that case you should call av_opt_child_next() recursively (and + * av_opt_next() on each result). + * + * @subsection avoptions_use_get_set Reading and writing AVOptions + * When setting options, you often have a string read directly from the + * user. In such a case, simply passing it to av_opt_set() is enough. For + * non-string type options, av_opt_set() will parse the string according to the + * option type. + * + * Similarly av_opt_get() will read any option type and convert it to a string + * which will be returned. Do not forget that the string is allocated, so you + * have to free it with av_free(). + * + * In some cases it may be more convenient to put all options into an + * AVDictionary and call av_opt_set_dict() on it. A specific case of this + * are the format/codec open functions in lavf/lavc which take a dictionary + * filled with option as a parameter. This makes it possible to set some options + * that cannot be set otherwise, since e.g. the input file format is not known + * before the file is actually opened. + */ + +/** + * An option type determines: + * - for native access, the underlying C type of the field that an AVOption + * refers to; + * - for foreign access, the semantics of accessing the option through this API, + * e.g. which av_opt_get_*() and av_opt_set_*() functions can be called, or + * what format will av_opt_get()/av_opt_set() expect/produce. + */ +enum AVOptionType{ + /** + * Underlying C type is unsigned int. + */ + AV_OPT_TYPE_FLAGS = 1, + /** + * Underlying C type is int. + */ + AV_OPT_TYPE_INT, + /** + * Underlying C type is int64_t. + */ + AV_OPT_TYPE_INT64, + /** + * Underlying C type is double. + */ + AV_OPT_TYPE_DOUBLE, + /** + * Underlying C type is float. + */ + AV_OPT_TYPE_FLOAT, + /** + * Underlying C type is a uint8_t* that is either NULL or points to a C + * string allocated with the av_malloc() family of functions. + */ + AV_OPT_TYPE_STRING, + /** + * Underlying C type is AVRational. + */ + AV_OPT_TYPE_RATIONAL, + /** + * Underlying C type is a uint8_t* that is either NULL or points to an array + * allocated with the av_malloc() family of functions. The pointer is + * immediately followed by an int containing the array length in bytes. + */ + AV_OPT_TYPE_BINARY, + /** + * Underlying C type is AVDictionary*. + */ + AV_OPT_TYPE_DICT, + /** + * Underlying C type is uint64_t. + */ + AV_OPT_TYPE_UINT64, + /** + * Special option type for declaring named constants. Does not correspond to + * an actual field in the object, offset must be 0. + */ + AV_OPT_TYPE_CONST, + /** + * Underlying C type is two consecutive integers. + */ + AV_OPT_TYPE_IMAGE_SIZE, + /** + * Underlying C type is enum AVPixelFormat. + */ + AV_OPT_TYPE_PIXEL_FMT, + /** + * Underlying C type is enum AVSampleFormat. + */ + AV_OPT_TYPE_SAMPLE_FMT, + /** + * Underlying C type is AVRational. + */ + AV_OPT_TYPE_VIDEO_RATE, + /** + * Underlying C type is int64_t. + */ + AV_OPT_TYPE_DURATION, + /** + * Underlying C type is uint8_t[4]. + */ + AV_OPT_TYPE_COLOR, + /** + * Underlying C type is int. + */ + AV_OPT_TYPE_BOOL, + /** + * Underlying C type is AVChannelLayout. + */ + AV_OPT_TYPE_CHLAYOUT, + /** + * Underlying C type is unsigned int. + */ + AV_OPT_TYPE_UINT, + + /** + * May be combined with another regular option type to declare an array + * option. + * + * For array options, @ref AVOption.offset should refer to a pointer + * corresponding to the option type. The pointer should be immediately + * followed by an unsigned int that will store the number of elements in the + * array. + */ + AV_OPT_TYPE_FLAG_ARRAY = (1 << 16), +}; + +/** + * A generic parameter which can be set by the user for muxing or encoding. + */ +#define AV_OPT_FLAG_ENCODING_PARAM (1 << 0) +/** + * A generic parameter which can be set by the user for demuxing or decoding. + */ +#define AV_OPT_FLAG_DECODING_PARAM (1 << 1) +#define AV_OPT_FLAG_AUDIO_PARAM (1 << 3) +#define AV_OPT_FLAG_VIDEO_PARAM (1 << 4) +#define AV_OPT_FLAG_SUBTITLE_PARAM (1 << 5) +/** + * The option is intended for exporting values to the caller. + */ +#define AV_OPT_FLAG_EXPORT (1 << 6) +/** + * The option may not be set through the AVOptions API, only read. + * This flag only makes sense when AV_OPT_FLAG_EXPORT is also set. + */ +#define AV_OPT_FLAG_READONLY (1 << 7) +/** + * A generic parameter which can be set by the user for bit stream filtering. + */ +#define AV_OPT_FLAG_BSF_PARAM (1 << 8) + +/** + * A generic parameter which can be set by the user at runtime. + */ +#define AV_OPT_FLAG_RUNTIME_PARAM (1 << 15) +/** + * A generic parameter which can be set by the user for filtering. + */ +#define AV_OPT_FLAG_FILTERING_PARAM (1 << 16) +/** + * Set if option is deprecated, users should refer to AVOption.help text for + * more information. + */ +#define AV_OPT_FLAG_DEPRECATED (1 << 17) +/** + * Set if option constants can also reside in child objects. + */ +#define AV_OPT_FLAG_CHILD_CONSTS (1 << 18) + +/** + * May be set as default_val for AV_OPT_TYPE_FLAG_ARRAY options. + */ +typedef struct AVOptionArrayDef { + /** + * Native access only. + * + * Default value of the option, as would be serialized by av_opt_get() (i.e. + * using the value of sep as the separator). + */ + const char *def; + + /** + * Minimum number of elements in the array. When this field is non-zero, def + * must be non-NULL and contain at least this number of elements. + */ + unsigned size_min; + /** + * Maximum number of elements in the array, 0 when unlimited. + */ + unsigned size_max; + + /** + * Separator between array elements in string representations of this + * option, used by av_opt_set() and av_opt_get(). It must be a printable + * ASCII character, excluding alphanumeric and the backslash. A comma is + * used when sep=0. + * + * The separator and the backslash must be backslash-escaped in order to + * appear in string representations of the option value. + */ + char sep; +} AVOptionArrayDef; + +/** + * AVOption + */ +typedef struct AVOption { + const char *name; + + /** + * short English help text + * @todo What about other languages? + */ + const char *help; + + /** + * Native access only. + * + * The offset relative to the context structure where the option + * value is stored. It should be 0 for named constants. + */ + int offset; + enum AVOptionType type; + + /** + * Native access only, except when documented otherwise. + * the default value for scalar options + */ + union { + int64_t i64; + double dbl; + const char *str; + /* TODO those are unused now */ + AVRational q; + + /** + * Used for AV_OPT_TYPE_FLAG_ARRAY options. May be NULL. + * + * Foreign access to some members allowed, as noted in AVOptionArrayDef + * documentation. + */ + const AVOptionArrayDef *arr; + } default_val; + double min; ///< minimum valid value for the option + double max; ///< maximum valid value for the option + + /** + * A combination of AV_OPT_FLAG_*. + */ + int flags; + + /** + * The logical unit to which the option belongs. Non-constant + * options and corresponding named constants share the same + * unit. May be NULL. + */ + const char *unit; +} AVOption; + +/** + * A single allowed range of values, or a single allowed value. + */ +typedef struct AVOptionRange { + const char *str; + /** + * Value range. + * For string ranges this represents the min/max length. + * For dimensions this represents the min/max pixel count or width/height in multi-component case. + */ + double value_min, value_max; + /** + * Value's component range. + * For string this represents the unicode range for chars, 0-127 limits to ASCII. + */ + double component_min, component_max; + /** + * Range flag. + * If set to 1 the struct encodes a range, if set to 0 a single value. + */ + int is_range; +} AVOptionRange; + +/** + * List of AVOptionRange structs. + */ +typedef struct AVOptionRanges { + /** + * Array of option ranges. + * + * Most of option types use just one component. + * Following describes multi-component option types: + * + * AV_OPT_TYPE_IMAGE_SIZE: + * component index 0: range of pixel count (width * height). + * component index 1: range of width. + * component index 2: range of height. + * + * @note To obtain multi-component version of this structure, user must + * provide AV_OPT_MULTI_COMPONENT_RANGE to av_opt_query_ranges or + * av_opt_query_ranges_default function. + * + * Multi-component range can be read as in following example: + * + * @code + * int range_index, component_index; + * AVOptionRanges *ranges; + * AVOptionRange *range[3]; //may require more than 3 in the future. + * av_opt_query_ranges(&ranges, obj, key, AV_OPT_MULTI_COMPONENT_RANGE); + * for (range_index = 0; range_index < ranges->nb_ranges; range_index++) { + * for (component_index = 0; component_index < ranges->nb_components; component_index++) + * range[component_index] = ranges->range[ranges->nb_ranges * component_index + range_index]; + * //do something with range here. + * } + * av_opt_freep_ranges(&ranges); + * @endcode + */ + AVOptionRange **range; + /** + * Number of ranges per component. + */ + int nb_ranges; + /** + * Number of componentes. + */ + int nb_components; +} AVOptionRanges; + +/** + * @defgroup opt_mng AVOption (un)initialization and inspection. + * @{ + */ + +/** + * Set the values of all AVOption fields to their default values. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + */ +void av_opt_set_defaults(void *s); + +/** + * Set the values of all AVOption fields to their default values. Only these + * AVOption fields for which (opt->flags & mask) == flags will have their + * default applied to s. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + * @param mask combination of AV_OPT_FLAG_* + * @param flags combination of AV_OPT_FLAG_* + */ +void av_opt_set_defaults2(void *s, int mask, int flags); + +/** + * Free all allocated objects in obj. + */ +void av_opt_free(void *obj); + +/** + * Iterate over all AVOptions belonging to obj. + * + * @param obj an AVOptions-enabled struct or a double pointer to an + * AVClass describing it. + * @param prev result of the previous call to av_opt_next() on this object + * or NULL + * @return next AVOption or NULL + */ +const AVOption *av_opt_next(const void *obj, const AVOption *prev); + +/** + * Iterate over AVOptions-enabled children of obj. + * + * @param prev result of a previous call to this function or NULL + * @return next AVOptions-enabled child or NULL + */ +void *av_opt_child_next(void *obj, void *prev); + +/** + * Iterate over potential AVOptions-enabled children of parent. + * + * @param iter a pointer where iteration state is stored. + * @return AVClass corresponding to next potential child or NULL + */ +const AVClass *av_opt_child_class_iterate(const AVClass *parent, void **iter); + +#define AV_OPT_SEARCH_CHILDREN (1 << 0) /**< Search in possible children of the + given object first. */ +/** + * The obj passed to av_opt_find() is fake -- only a double pointer to AVClass + * instead of a required pointer to a struct containing AVClass. This is + * useful for searching for options without needing to allocate the corresponding + * object. + */ +#define AV_OPT_SEARCH_FAKE_OBJ (1 << 1) + +/** + * In av_opt_get, return NULL if the option has a pointer type and is set to NULL, + * rather than returning an empty string. + */ +#define AV_OPT_ALLOW_NULL (1 << 2) + +/** + * May be used with av_opt_set_array() to signal that new elements should + * replace the existing ones in the indicated range. + */ +#define AV_OPT_ARRAY_REPLACE (1 << 3) + +/** + * Allows av_opt_query_ranges and av_opt_query_ranges_default to return more than + * one component for certain option types. + * @see AVOptionRanges for details. + */ +#define AV_OPT_MULTI_COMPONENT_RANGE (1 << 12) + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return A pointer to the option found, or NULL if no option + * was found. + * + * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable + * directly with av_opt_set(). Use special calls which take an options + * AVDictionary (e.g. avformat_open_input()) to set options found with this + * flag. + */ +const AVOption *av_opt_find(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags); + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * @param[out] target_obj if non-NULL, an object to which the option belongs will be + * written here. It may be different from obj if AV_OPT_SEARCH_CHILDREN is present + * in search_flags. This parameter is ignored if search_flags contain + * AV_OPT_SEARCH_FAKE_OBJ. + * + * @return A pointer to the option found, or NULL if no option + * was found. + */ +const AVOption *av_opt_find2(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags, void **target_obj); + +/** + * Show the obj options. + * + * @param req_flags requested flags for the options to show. Show only the + * options for which it is opt->flags & req_flags. + * @param rej_flags rejected flags for the options to show. Show only the + * options for which it is !(opt->flags & req_flags). + * @param av_log_obj log context to use for showing the options + */ +int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); + +/** + * Extract a key-value pair from the beginning of a string. + * + * @param ropts pointer to the options string, will be updated to + * point to the rest of the string (one of the pairs_sep + * or the final NUL) + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @param flags flags; see the AV_OPT_FLAG_* values below + * @param rkey parsed key; must be freed using av_free() + * @param rval parsed value; must be freed using av_free() + * + * @return >=0 for success, or a negative value corresponding to an + * AVERROR code in case of error; in particular: + * AVERROR(EINVAL) if no key is present + * + */ +int av_opt_get_key_value(const char **ropts, + const char *key_val_sep, const char *pairs_sep, + unsigned flags, + char **rkey, char **rval); + +enum { + + /** + * Accept to parse a value without a key; the key will then be returned + * as NULL. + */ + AV_OPT_FLAG_IMPLICIT_KEY = 1, +}; + +/** + * @} + */ + +/** + * @defgroup opt_write Setting and modifying option values + * @{ + */ + +/** + * Parse the key/value pairs list in opts. For each key/value pair + * found, stores the value in the field in ctx that is named like the + * key. ctx must be an AVClass context, storing is done using + * AVOptions. + * + * @param opts options string to parse, may be NULL + * @param key_val_sep a 0-terminated list of characters used to + * separate key from value + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other + * @return the number of successfully set key/value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_opt_set() if a key/value pair + * cannot be set + */ +int av_set_options_string(void *ctx, const char *opts, + const char *key_val_sep, const char *pairs_sep); + +/** + * Parse the key-value pairs list in opts. For each key=value pair found, + * set the value of the corresponding option in ctx. + * + * @param ctx the AVClass object to set options on + * @param opts the options string, key-value pairs separated by a + * delimiter + * @param shorthand a NULL-terminated array of options names for shorthand + * notation: if the first field in opts has no key part, + * the key is taken from the first element of shorthand; + * then again for the second, etc., until either opts is + * finished, shorthand is finished or a named option is + * found; after that, all options must be named + * @param key_val_sep a 0-terminated list of characters used to separate + * key from value, for example '=' + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other, for example ':' or ',' + * @return the number of successfully set key=value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_set_string3() if a key/value pair + * cannot be set + * + * Options names must use only the following characters: a-z A-Z 0-9 - . / _ + * Separators must use characters distinct from option names and from each + * other. + */ +int av_opt_set_from_string(void *ctx, const char *opts, + const char *const *shorthand, + const char *key_val_sep, const char *pairs_sep); + +/** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + */ +int av_opt_set_dict(void *obj, struct AVDictionary **options); + + +/** + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + */ +int av_opt_set_dict2(void *obj, struct AVDictionary **options, int search_flags); + +/** + * Copy options from src object into dest object. + * + * The underlying AVClass of both src and dest must coincide. The guarantee + * below does not apply if this is not fulfilled. + * + * Options that require memory allocation (e.g. string or binary) are malloc'ed in dest object. + * Original memory allocated for such options is freed unless both src and dest options points to the same memory. + * + * Even on error it is guaranteed that allocated options from src and dest + * no longer alias each other afterwards; in particular calling av_opt_free() + * on both src and dest is safe afterwards if dest has been memdup'ed from src. + * + * @param dest Object to copy from + * @param src Object to copy into + * @return 0 on success, negative on error + */ +int av_opt_copy(void *dest, const void *src); + +/** + * @defgroup opt_set_funcs Option setting functions + * @{ + * Those functions set the field of obj with the given name to value. + * + * @param[in] obj A struct whose first element is a pointer to an AVClass. + * @param[in] name the name of the field to set + * @param[in] val The value to set. In case of av_opt_set() if the field is not + * of a string type, then the given string is parsed. + * SI postfixes and some named scalars are supported. + * If the field is of a numeric type, it has to be a numeric or named + * scalar. Behavior with more than one scalar and +- infix operators + * is undefined. + * If the field is of a flags type, it has to be a sequence of numeric + * scalars or named flags separated by '+' or '-'. Prefixing a flag + * with '+' causes it to be set without affecting the other flags; + * similarly, '-' unsets a flag. + * If the field is of a dictionary type, it has to be a ':' separated list of + * key=value parameters. Values containing ':' special characters must be + * escaped. + * @param search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be set on a child of obj. + * + * @return 0 if the value has been set, or an AVERROR code in case of + * error: + * AVERROR_OPTION_NOT_FOUND if no matching option exists + * AVERROR(ERANGE) if the value is out of range + * AVERROR(EINVAL) if the value is not valid + */ +int av_opt_set (void *obj, const char *name, const char *val, int search_flags); +int av_opt_set_int (void *obj, const char *name, int64_t val, int search_flags); +int av_opt_set_double (void *obj, const char *name, double val, int search_flags); +int av_opt_set_q (void *obj, const char *name, AVRational val, int search_flags); +int av_opt_set_bin (void *obj, const char *name, const uint8_t *val, int size, int search_flags); +int av_opt_set_image_size(void *obj, const char *name, int w, int h, int search_flags); +int av_opt_set_pixel_fmt (void *obj, const char *name, enum AVPixelFormat fmt, int search_flags); +int av_opt_set_sample_fmt(void *obj, const char *name, enum AVSampleFormat fmt, int search_flags); +int av_opt_set_video_rate(void *obj, const char *name, AVRational val, int search_flags); +/** + * @note Any old chlayout present is discarded and replaced with a copy of the new one. The + * caller still owns layout and is responsible for uninitializing it. + */ +int av_opt_set_chlayout(void *obj, const char *name, const AVChannelLayout *layout, int search_flags); +/** + * @note Any old dictionary present is discarded and replaced with a copy of the new one. The + * caller still owns val is and responsible for freeing it. + */ +int av_opt_set_dict_val(void *obj, const char *name, const AVDictionary *val, int search_flags); + +/** + * Set a binary option to an integer list. + * + * @param obj AVClass object to set options on + * @param name name of the binary option + * @param val pointer to an integer list (must have the correct type with + * regard to the contents of the list) + * @param term list terminator (usually 0 or -1) + * @param flags search flags + */ +#define av_opt_set_int_list(obj, name, val, term, flags) \ + (av_int_list_length(val, term) > INT_MAX / sizeof(*(val)) ? \ + AVERROR(EINVAL) : \ + av_opt_set_bin(obj, name, (const uint8_t *)(val), \ + av_int_list_length(val, term) * sizeof(*(val)), flags)) + +/** + * Add, replace, or remove elements for an array option. Which of these + * operations is performed depends on the values of val and search_flags. + * + * @param start_elem Index of the first array element to modify; must not be + * larger than array size as returned by + * av_opt_get_array_size(). + * @param nb_elems number of array elements to modify; when val is NULL, + * start_elem+nb_elems must not be larger than array size as + * returned by av_opt_get_array_size() + * + * @param val_type Option type corresponding to the type of val, ignored when val is + * NULL. + * + * The effect of this function will will be as if av_opt_setX() + * was called for each element, where X is specified by type. + * E.g. AV_OPT_TYPE_STRING corresponds to av_opt_set(). + * + * Typically this should be the same as the scalarized type of + * the AVOption being set, but certain conversions are also + * possible - the same as those done by the corresponding + * av_opt_set*() function. E.g. any option type can be set from + * a string, numeric types can be set from int64, double, or + * rational, etc. + * + * @param val Array with nb_elems elements or NULL. + * + * When NULL, nb_elems array elements starting at start_elem are + * removed from the array. Any array elements remaining at the end + * are shifted by nb_elems towards the first element in order to keep + * the array contiguous. + * + * Otherwise (val is non-NULL), the type of val must match the + * underlying C type as documented for val_type. + * + * When AV_OPT_ARRAY_REPLACE is not set in search_flags, the array is + * enlarged by nb_elems, and the contents of val are inserted at + * start_elem. Previously existing array elements from start_elem + * onwards (if present) are shifted by nb_elems away from the first + * element in order to make space for the new elements. + * + * When AV_OPT_ARRAY_REPLACE is set in search_flags, the contents + * of val replace existing array elements from start_elem to + * start_elem+nb_elems (if present). New array size is + * max(start_elem + nb_elems, old array size). + */ +int av_opt_set_array(void *obj, const char *name, int search_flags, + unsigned int start_elem, unsigned int nb_elems, + enum AVOptionType val_type, const void *val); + +/** + * @} + * @} + */ + +/** + * @defgroup opt_read Reading option values + * @{ + */ + +/** + * @defgroup opt_get_funcs Option getting functions + * @{ + * Those functions get a value of the option with the given name from an object. + * + * @param[in] obj a struct whose first element is a pointer to an AVClass. + * @param[in] name name of the option to get. + * @param[in] search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be found in a child of obj. + * @param[out] out_val value of the option will be written here + * @return >=0 on success, a negative error code otherwise + */ +/** + * @note the returned string will be av_malloc()ed and must be av_free()ed by the caller + * + * @note if AV_OPT_ALLOW_NULL is set in search_flags in av_opt_get, and the + * option is of type AV_OPT_TYPE_STRING, AV_OPT_TYPE_BINARY or AV_OPT_TYPE_DICT + * and is set to NULL, *out_val will be set to NULL instead of an allocated + * empty string. + */ +int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val); +int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t *out_val); +int av_opt_get_double (void *obj, const char *name, int search_flags, double *out_val); +int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val); +int av_opt_get_image_size(void *obj, const char *name, int search_flags, int *w_out, int *h_out); +int av_opt_get_pixel_fmt (void *obj, const char *name, int search_flags, enum AVPixelFormat *out_fmt); +int av_opt_get_sample_fmt(void *obj, const char *name, int search_flags, enum AVSampleFormat *out_fmt); +int av_opt_get_video_rate(void *obj, const char *name, int search_flags, AVRational *out_val); +/** + * @param[out] layout The returned layout is a copy of the actual value and must + * be freed with av_channel_layout_uninit() by the caller + */ +int av_opt_get_chlayout(void *obj, const char *name, int search_flags, AVChannelLayout *layout); +/** + * @param[out] out_val The returned dictionary is a copy of the actual value and must + * be freed with av_dict_free() by the caller + */ +int av_opt_get_dict_val(void *obj, const char *name, int search_flags, AVDictionary **out_val); + +/** + * For an array-type option, get the number of elements in the array. + */ +int av_opt_get_array_size(void *obj, const char *name, int search_flags, + unsigned int *out_val); + +/** + * For an array-type option, retrieve the values of one or more array elements. + * + * @param start_elem index of the first array element to retrieve + * @param nb_elems number of array elements to retrieve; start_elem+nb_elems + * must not be larger than array size as returned by + * av_opt_get_array_size() + * + * @param out_type Option type corresponding to the desired output. + * + * The array elements produced by this function will + * will be as if av_opt_getX() was called for each element, + * where X is specified by out_type. E.g. AV_OPT_TYPE_STRING + * corresponds to av_opt_get(). + * + * Typically this should be the same as the scalarized type of + * the AVOption being retrieved, but certain conversions are + * also possible - the same as those done by the corresponding + * av_opt_get*() function. E.g. any option type can be retrieved + * as a string, numeric types can be retrieved as int64, double, + * or rational, etc. + * + * @param out_val Array with nb_elems members into which the output will be + * written. The array type must match the underlying C type as + * documented for out_type, and be zeroed on entry to this + * function. + * + * For dynamically allocated types (strings, binary, dicts, + * etc.), the result is owned and freed by the caller. + */ +int av_opt_get_array(void *obj, const char *name, int search_flags, + unsigned int start_elem, unsigned int nb_elems, + enum AVOptionType out_type, void *out_val); +/** + * @} + */ + +/** + * @defgroup opt_eval_funcs Evaluating option strings + * @{ + * This group of functions can be used to evaluate option strings + * and get numbers out of them. They do the same thing as av_opt_set(), + * except the result is written into the caller-supplied pointer. + * + * @param obj a struct whose first element is a pointer to AVClass. + * @param o an option for which the string is to be evaluated. + * @param val string to be evaluated. + * @param *_out value of the string will be written here. + * + * @return 0 on success, a negative number on failure. + */ +int av_opt_eval_flags (void *obj, const AVOption *o, const char *val, int *flags_out); +int av_opt_eval_int (void *obj, const AVOption *o, const char *val, int *int_out); +int av_opt_eval_uint (void *obj, const AVOption *o, const char *val, unsigned *uint_out); +int av_opt_eval_int64 (void *obj, const AVOption *o, const char *val, int64_t *int64_out); +int av_opt_eval_float (void *obj, const AVOption *o, const char *val, float *float_out); +int av_opt_eval_double(void *obj, const AVOption *o, const char *val, double *double_out); +int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational *q_out); +/** + * @} + */ + +/** + * Gets a pointer to the requested field in a struct. + * This function allows accessing a struct even when its fields are moved or + * renamed since the application making the access has been compiled, + * + * @returns a pointer to the field, it can be cast to the correct type and read + * or written to. + */ +void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name); + +/** + * Check if given option is set to its default value. + * + * Options o must belong to the obj. This function must not be called to check child's options state. + * @see av_opt_is_set_to_default_by_name(). + * + * @param obj AVClass object to check option on + * @param o option to be checked + * @return >0 when option is set to its default, + * 0 when option is not set its default, + * <0 on error + */ +int av_opt_is_set_to_default(void *obj, const AVOption *o); + +/** + * Check if given option is set to its default value. + * + * @param obj AVClass object to check option on + * @param name option name + * @param search_flags combination of AV_OPT_SEARCH_* + * @return >0 when option is set to its default, + * 0 when option is not set its default, + * <0 on error + */ +int av_opt_is_set_to_default_by_name(void *obj, const char *name, int search_flags); + +/** + * Check whether a particular flag is set in a flags field. + * + * @param field_name the name of the flag field option + * @param flag_name the name of the flag to check + * @return non-zero if the flag is set, zero if the flag isn't set, + * isn't of the right type, or the flags field doesn't exist. + */ +int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name); + +#define AV_OPT_SERIALIZE_SKIP_DEFAULTS 0x00000001 ///< Serialize options that are not set to default values only. +#define AV_OPT_SERIALIZE_OPT_FLAGS_EXACT 0x00000002 ///< Serialize options that exactly match opt_flags only. +#define AV_OPT_SERIALIZE_SEARCH_CHILDREN 0x00000004 ///< Serialize options in possible children of the given object. + +/** + * Serialize object's options. + * + * Create a string containing object's serialized options. + * Such string may be passed back to av_opt_set_from_string() in order to restore option values. + * A key/value or pairs separator occurring in the serialized value or + * name string are escaped through the av_escape() function. + * + * @param[in] obj AVClass object to serialize + * @param[in] opt_flags serialize options with all the specified flags set (AV_OPT_FLAG) + * @param[in] flags combination of AV_OPT_SERIALIZE_* flags + * @param[out] buffer Pointer to buffer that will be allocated with string containg serialized options. + * Buffer must be freed by the caller when is no longer needed. + * @param[in] key_val_sep character used to separate key from value + * @param[in] pairs_sep character used to separate two pairs from each other + * @return >= 0 on success, negative on error + * @warning Separators cannot be neither '\\' nor '\0'. They also cannot be the same. + */ +int av_opt_serialize(void *obj, int opt_flags, int flags, char **buffer, + const char key_val_sep, const char pairs_sep); + +/** + * @} + */ + +/** + * Free an AVOptionRanges struct and set it to NULL. + */ +void av_opt_freep_ranges(AVOptionRanges **ranges); + +/** + * Get a list of allowed ranges for the given option. + * + * The returned list may depend on other fields in obj like for example profile. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_freep_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + */ +int av_opt_query_ranges(AVOptionRanges **, void *obj, const char *key, int flags); + +/** + * Get a default list of allowed ranges for the given option. + * + * This list is constructed without using the AVClass.query_ranges() callback + * and can be used as fallback from within the callback. + * + * @param flags is a bitmask of flags, undefined flags should not be set and should be ignored + * AV_OPT_SEARCH_FAKE_OBJ indicates that the obj is a double pointer to a AVClass instead of a full instance + * AV_OPT_MULTI_COMPONENT_RANGE indicates that function may return more than one component, @see AVOptionRanges + * + * The result must be freed with av_opt_free_ranges. + * + * @return number of compontents returned on success, a negative errro code otherwise + */ +int av_opt_query_ranges_default(AVOptionRanges **, void *obj, const char *key, int flags); + +/** + * @} + */ + +#endif /* AVUTIL_OPT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/parseutils.h b/deps/ffmpeg/macos/include/libavutil/parseutils.h new file mode 100644 index 0000000..dad5c27 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/parseutils.h @@ -0,0 +1,197 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PARSEUTILS_H +#define AVUTIL_PARSEUTILS_H + +#include + +#include "rational.h" + +/** + * @file + * misc parsing utilities + */ + +/** + * Parse str and store the parsed ratio in q. + * + * Note that a ratio with infinite (1/0) or negative value is + * considered valid, so you should check on the returned value if you + * want to exclude those values. + * + * The undefined value can be expressed using the "0:0" string. + * + * @param[in,out] q pointer to the AVRational which will contain the ratio + * @param[in] str the string to parse: it has to be a string in the format + * num:den, a float number or an expression + * @param[in] max the maximum allowed numerator and denominator + * @param[in] log_offset log level offset which is applied to the log + * level of log_ctx + * @param[in] log_ctx parent logging context + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_ratio(AVRational *q, const char *str, int max, + int log_offset, void *log_ctx); + +#define av_parse_ratio_quiet(rate, str, max) \ + av_parse_ratio(rate, str, max, AV_LOG_MAX_OFFSET, NULL) + +/** + * Parse str and put in width_ptr and height_ptr the detected values. + * + * @param[in,out] width_ptr pointer to the variable which will contain the detected + * width value + * @param[in,out] height_ptr pointer to the variable which will contain the detected + * height value + * @param[in] str the string to parse: it has to be a string in the format + * width x height or a valid video size abbreviation. + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str); + +/** + * Parse str and store the detected values in *rate. + * + * @param[in,out] rate pointer to the AVRational which will contain the detected + * frame rate + * @param[in] str the string to parse: it has to be a string in the format + * rate_num / rate_den, a float number or a valid video rate abbreviation + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_rate(AVRational *rate, const char *str); + +/** + * Put the RGBA values that correspond to color_string in rgba_color. + * + * @param rgba_color 4-elements array of uint8_t values, where the respective + * red, green, blue and alpha component values are written. + * @param color_string a string specifying a color. It can be the name of + * a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence, + * possibly followed by "@" and a string representing the alpha + * component. + * The alpha component may be a string composed by "0x" followed by an + * hexadecimal number or a decimal number between 0.0 and 1.0, which + * represents the opacity value (0x00/0.0 means completely transparent, + * 0xff/1.0 completely opaque). + * If the alpha component is not specified then 0xff is assumed. + * The string "random" will result in a random color. + * @param slen length of the initial part of color_string containing the + * color. It can be set to -1 if color_string is a null terminated string + * containing nothing else than the color. + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log()). Can be NULL. + * @return >= 0 in case of success, a negative value in case of + * failure (for example if color_string cannot be parsed). + */ +int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, + void *log_ctx); + +/** + * Get the name of a color from the internal table of hard-coded named + * colors. + * + * This function is meant to enumerate the color names recognized by + * av_parse_color(). + * + * @param color_idx index of the requested color, starting from 0 + * @param rgb if not NULL, will point to a 3-elements array with the color value in RGB + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_known_color_name(int color_idx, const uint8_t **rgb); + +/** + * Parse timestr and return in *time a corresponding number of + * microseconds. + * + * @param timeval puts here the number of microseconds corresponding + * to the string in timestr. If the string represents a duration, it + * is the number of microseconds contained in the time interval. If + * the string is a date, is the number of microseconds since 1st of + * January, 1970 up to the time of the parsed date. If timestr cannot + * be successfully parsed, set *time to INT64_MIN. + + * @param timestr a string representing a date or a duration. + * - If a date the syntax is: + * @code + * [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH:MM:SS[.m...]]]}|{HHMMSS[.m...]]]}}[Z] + * now + * @endcode + * If the value is "now" it takes the current time. + * Time is local time unless Z is appended, in which case it is + * interpreted as UTC. + * If the year-month-day part is not specified it takes the current + * year-month-day. + * - If a duration the syntax is: + * @code + * [-][HH:]MM:SS[.m...] + * [-]S+[.m...] + * @endcode + * @param duration flag which tells how to interpret timestr, if not + * zero timestr is interpreted as a duration, otherwise as a date + * @return >= 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_parse_time(int64_t *timeval, const char *timestr, int duration); + +/** + * Attempt to find a specific tag in a URL. + * + * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done. + * Return 1 if found. + */ +int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); + +/** + * Simplified version of strptime + * + * Parse the input string p according to the format string fmt and + * store its results in the structure dt. + * This implementation supports only a subset of the formats supported + * by the standard strptime(). + * + * The supported input field descriptors are listed below. + * - `%%H`: the hour as a decimal number, using a 24-hour clock, in the + * range '00' through '23' + * - `%%J`: hours as a decimal number, in the range '0' through INT_MAX + * - `%%M`: the minute as a decimal number, using a 24-hour clock, in the + * range '00' through '59' + * - `%%S`: the second as a decimal number, using a 24-hour clock, in the + * range '00' through '59' + * - `%%Y`: the year as a decimal number, using the Gregorian calendar + * - `%%m`: the month as a decimal number, in the range '1' through '12' + * - `%%d`: the day of the month as a decimal number, in the range '1' + * through '31' + * - `%%T`: alias for `%%H:%%M:%%S` + * - `%%`: a literal `%` + * + * @return a pointer to the first character not processed in this function + * call. In case the input string contains more characters than + * required by the format string the return value points right after + * the last consumed input character. In case the whole input string + * is consumed the return value points to the null byte at the end of + * the string. On failure NULL is returned. + */ +char *av_small_strptime(const char *p, const char *fmt, struct tm *dt); + +/** + * Convert the decomposed UTC time in tm to a time_t value. + */ +time_t av_timegm(struct tm *tm); + +#endif /* AVUTIL_PARSEUTILS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/pixdesc.h b/deps/ffmpeg/macos/include/libavutil/pixdesc.h new file mode 100644 index 0000000..ba2f632 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/pixdesc.h @@ -0,0 +1,440 @@ +/* + * pixel format descriptor + * Copyright (c) 2009 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXDESC_H +#define AVUTIL_PIXDESC_H + +#include + +#include "attributes.h" +#include "pixfmt.h" + +typedef struct AVComponentDescriptor { + /** + * Which of the 4 planes contains the component. + */ + int plane; + + /** + * Number of elements between 2 horizontally consecutive pixels. + * Elements are bits for bitstream formats, bytes otherwise. + */ + int step; + + /** + * Number of elements before the component of the first pixel. + * Elements are bits for bitstream formats, bytes otherwise. + */ + int offset; + + /** + * Number of least significant bits that must be shifted away + * to get the value. + */ + int shift; + + /** + * Number of bits in the component. + */ + int depth; +} AVComponentDescriptor; + +/** + * Descriptor that unambiguously describes how the bits of a pixel are + * stored in the up to 4 data planes of an image. It also stores the + * subsampling factors and number of components. + * + * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV + * and all the YUV variants) AVPixFmtDescriptor just stores how values + * are stored not what these values represent. + */ +typedef struct AVPixFmtDescriptor { + const char *name; + uint8_t nb_components; ///< The number of components each pixel has, (1-4) + + /** + * Amount to shift the luma width right to find the chroma width. + * For YV12 this is 1 for example. + * chroma_width = AV_CEIL_RSHIFT(luma_width, log2_chroma_w) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_w; + + /** + * Amount to shift the luma height right to find the chroma height. + * For YV12 this is 1 for example. + * chroma_height= AV_CEIL_RSHIFT(luma_height, log2_chroma_h) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_h; + + /** + * Combination of AV_PIX_FMT_FLAG_... flags. + */ + uint64_t flags; + + /** + * Parameters that describe how pixels are packed. + * If the format has 1 or 2 components, then luma is 0. + * If the format has 3 or 4 components: + * if the RGB flag is set then 0 is red, 1 is green and 2 is blue; + * otherwise 0 is luma, 1 is chroma-U and 2 is chroma-V. + * + * If present, the Alpha channel is always the last component. + */ + AVComponentDescriptor comp[4]; + + /** + * Alternative comma-separated names. + */ + const char *alias; +} AVPixFmtDescriptor; + +/** + * Pixel format is big-endian. + */ +#define AV_PIX_FMT_FLAG_BE (1 << 0) +/** + * Pixel format has a palette in data[1], values are indexes in this palette. + */ +#define AV_PIX_FMT_FLAG_PAL (1 << 1) +/** + * All values of a component are bit-wise packed end to end. + */ +#define AV_PIX_FMT_FLAG_BITSTREAM (1 << 2) +/** + * Pixel format is an HW accelerated format. + */ +#define AV_PIX_FMT_FLAG_HWACCEL (1 << 3) +/** + * At least one pixel component is not in the first data plane. + */ +#define AV_PIX_FMT_FLAG_PLANAR (1 << 4) +/** + * The pixel format contains RGB-like data (as opposed to YUV/grayscale). + */ +#define AV_PIX_FMT_FLAG_RGB (1 << 5) + +/** + * The pixel format has an alpha channel. This is set on all formats that + * support alpha in some way, including AV_PIX_FMT_PAL8. The alpha is always + * straight, never pre-multiplied. + * + * If a codec or a filter does not support alpha, it should set all alpha to + * opaque, or use the equivalent pixel formats without alpha component, e.g. + * AV_PIX_FMT_RGB0 (or AV_PIX_FMT_RGB24 etc.) instead of AV_PIX_FMT_RGBA. + */ +#define AV_PIX_FMT_FLAG_ALPHA (1 << 7) + +/** + * The pixel format is following a Bayer pattern + */ +#define AV_PIX_FMT_FLAG_BAYER (1 << 8) + +/** + * The pixel format contains IEEE-754 floating point values. Precision (double, + * single, or half) should be determined by the pixel size (64, 32, or 16 bits). + */ +#define AV_PIX_FMT_FLAG_FLOAT (1 << 9) + +/** + * The pixel format contains XYZ-like data (as opposed to YUV/RGB/grayscale). + */ +#define AV_PIX_FMT_FLAG_XYZ (1 << 10) + +/** + * Return the number of bits per pixel used by the pixel format + * described by pixdesc. Note that this is not the same as the number + * of bits per sample. + * + * The returned number of bits refers to the number of bits actually + * used for storing the pixel information, that is padding bits are + * not counted. + */ +int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); + +/** + * Return the number of bits per pixel for the pixel format + * described by pixdesc, including any padding or unused bits. + */ +int av_get_padded_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); + +/** + * @return a pixel format descriptor for provided pixel format or NULL if + * this pixel format is unknown. + */ +const AVPixFmtDescriptor *av_pix_fmt_desc_get(enum AVPixelFormat pix_fmt); + +/** + * Iterate over all pixel format descriptors known to libavutil. + * + * @param prev previous descriptor. NULL to get the first descriptor. + * + * @return next descriptor or NULL after the last descriptor + */ +const AVPixFmtDescriptor *av_pix_fmt_desc_next(const AVPixFmtDescriptor *prev); + +/** + * @return an AVPixelFormat id described by desc, or AV_PIX_FMT_NONE if desc + * is not a valid pointer to a pixel format descriptor. + */ +enum AVPixelFormat av_pix_fmt_desc_get_id(const AVPixFmtDescriptor *desc); + +/** + * Utility function to access log2_chroma_w log2_chroma_h from + * the pixel format AVPixFmtDescriptor. + * + * @param[in] pix_fmt the pixel format + * @param[out] h_shift store log2_chroma_w (horizontal/width shift) + * @param[out] v_shift store log2_chroma_h (vertical/height shift) + * + * @return 0 on success, AVERROR(ENOSYS) on invalid or unknown pixel format + */ +int av_pix_fmt_get_chroma_sub_sample(enum AVPixelFormat pix_fmt, + int *h_shift, int *v_shift); + +/** + * @return number of planes in pix_fmt, a negative AVERROR if pix_fmt is not a + * valid pixel format. + */ +int av_pix_fmt_count_planes(enum AVPixelFormat pix_fmt); + +/** + * @return the name for provided color range or NULL if unknown. + */ +const char *av_color_range_name(enum AVColorRange range); + +/** + * @return the AVColorRange value for name or an AVError if not found. + */ +int av_color_range_from_name(const char *name); + +/** + * @return the name for provided color primaries or NULL if unknown. + */ +const char *av_color_primaries_name(enum AVColorPrimaries primaries); + +/** + * @return the AVColorPrimaries value for name or an AVError if not found. + */ +int av_color_primaries_from_name(const char *name); + +/** + * @return the name for provided color transfer or NULL if unknown. + */ +const char *av_color_transfer_name(enum AVColorTransferCharacteristic transfer); + +/** + * @return the AVColorTransferCharacteristic value for name or an AVError if not found. + */ +int av_color_transfer_from_name(const char *name); + +/** + * @return the name for provided color space or NULL if unknown. + */ +const char *av_color_space_name(enum AVColorSpace space); + +/** + * @return the AVColorSpace value for name or an AVError if not found. + */ +int av_color_space_from_name(const char *name); + +/** + * @return the name for provided chroma location or NULL if unknown. + */ +const char *av_chroma_location_name(enum AVChromaLocation location); + +/** + * @return the AVChromaLocation value for name or an AVError if not found. + */ +int av_chroma_location_from_name(const char *name); + +/** + * Converts AVChromaLocation to swscale x/y chroma position. + * + * The positions represent the chroma (0,0) position in a coordinates system + * with luma (0,0) representing the origin and luma(1,1) representing 256,256 + * + * @param xpos horizontal chroma sample position + * @param ypos vertical chroma sample position + */ +int av_chroma_location_enum_to_pos(int *xpos, int *ypos, enum AVChromaLocation pos); + +/** + * Converts swscale x/y chroma position to AVChromaLocation. + * + * The positions represent the chroma (0,0) position in a coordinates system + * with luma (0,0) representing the origin and luma(1,1) representing 256,256 + * + * @param xpos horizontal chroma sample position + * @param ypos vertical chroma sample position + */ +enum AVChromaLocation av_chroma_location_pos_to_enum(int xpos, int ypos); + +/** + * Return the pixel format corresponding to name. + * + * If there is no pixel format with name name, then looks for a + * pixel format with the name corresponding to the native endian + * format of name. + * For example in a little-endian system, first looks for "gray16", + * then for "gray16le". + * + * Finally if no pixel format has been found, returns AV_PIX_FMT_NONE. + */ +enum AVPixelFormat av_get_pix_fmt(const char *name); + +/** + * Return the short name for a pixel format, NULL in case pix_fmt is + * unknown. + * + * @see av_get_pix_fmt(), av_get_pix_fmt_string() + */ +const char *av_get_pix_fmt_name(enum AVPixelFormat pix_fmt); + +/** + * Print in buf the string corresponding to the pixel format with + * number pix_fmt, or a header if pix_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param pix_fmt the number of the pixel format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + */ +char *av_get_pix_fmt_string(char *buf, int buf_size, + enum AVPixelFormat pix_fmt); + +/** + * Read a line from an image, and write the values of the + * pixel format component c to dst. + * + * @param data the array containing the pointers to the planes of the image + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to read + * @param y the vertical coordinate of the first pixel to read + * @param w the width of the line to read, that is the number of + * values to write to dst + * @param read_pal_component if not zero and the format is a paletted + * format writes the values corresponding to the palette + * component c in data[1] to dst, rather than the palette indexes in + * data[0]. The behavior is undefined if the format is not paletted. + * @param dst_element_size size of elements in dst array (2 or 4 byte) + */ +void av_read_image_line2(void *dst, const uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int read_pal_component, + int dst_element_size); + +void av_read_image_line(uint16_t *dst, const uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int read_pal_component); + +/** + * Write the values from src to the pixel format component c of an + * image line. + * + * @param src array containing the values to write + * @param data the array containing the pointers to the planes of the + * image to write into. It is supposed to be zeroed. + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to write + * @param y the vertical coordinate of the first pixel to write + * @param w the width of the line to write, that is the number of + * values to write to the image line + * @param src_element_size size of elements in src array (2 or 4 byte) + */ +void av_write_image_line2(const void *src, uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w, int src_element_size); + +void av_write_image_line(const uint16_t *src, uint8_t *data[4], + const int linesize[4], const AVPixFmtDescriptor *desc, + int x, int y, int c, int w); + +/** + * Utility function to swap the endianness of a pixel format. + * + * @param[in] pix_fmt the pixel format + * + * @return pixel format with swapped endianness if it exists, + * otherwise AV_PIX_FMT_NONE + */ +enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt); + +#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */ +#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */ +#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */ +#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */ +#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */ +#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */ +#define FF_LOSS_EXCESS_RESOLUTION 0x0040 /**< loss due to unneeded extra resolution */ +#define FF_LOSS_EXCESS_DEPTH 0x0080 /**< loss due to unneeded extra color depth */ + + +/** + * Compute what kind of losses will occur when converting from one specific + * pixel format to another. + * When converting from one pixel format to another, information loss may occur. + * For example, when converting from RGB24 to GRAY, the color information will + * be lost. Similarly, other losses occur when converting from some formats to + * other formats. These losses can involve loss of chroma, but also loss of + * resolution, loss of color depth, loss due to the color space conversion, loss + * of the alpha bits or loss due to color quantization. + * av_get_fix_fmt_loss() informs you about the various types of losses + * which will occur when converting from one pixel format to another. + * + * @param[in] dst_pix_fmt destination pixel format + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @return Combination of flags informing you what kind of losses will occur + * (maximum loss for an invalid dst_pix_fmt). + */ +int av_get_pix_fmt_loss(enum AVPixelFormat dst_pix_fmt, + enum AVPixelFormat src_pix_fmt, + int has_alpha); + +/** + * Compute what kind of losses will occur when converting from one specific + * pixel format to another. + * When converting from one pixel format to another, information loss may occur. + * For example, when converting from RGB24 to GRAY, the color information will + * be lost. Similarly, other losses occur when converting from some formats to + * other formats. These losses can involve loss of chroma, but also loss of + * resolution, loss of color depth, loss due to the color space conversion, loss + * of the alpha bits or loss due to color quantization. + * av_get_fix_fmt_loss() informs you about the various types of losses + * which will occur when converting from one pixel format to another. + * + * @param[in] dst_pix_fmt destination pixel format + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @return Combination of flags informing you what kind of losses will occur + * (maximum loss for an invalid dst_pix_fmt). + */ +enum AVPixelFormat av_find_best_pix_fmt_of_2(enum AVPixelFormat dst_pix_fmt1, enum AVPixelFormat dst_pix_fmt2, + enum AVPixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); + +#endif /* AVUTIL_PIXDESC_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/pixelutils.h b/deps/ffmpeg/macos/include/libavutil/pixelutils.h new file mode 100644 index 0000000..7a997cd --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/pixelutils.h @@ -0,0 +1,51 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXELUTILS_H +#define AVUTIL_PIXELUTILS_H + +#include +#include + +/** + * Sum of abs(src1[x] - src2[x]) + */ +typedef int (*av_pixelutils_sad_fn)(const uint8_t *src1, ptrdiff_t stride1, + const uint8_t *src2, ptrdiff_t stride2); + +/** + * Get a potentially optimized pointer to a Sum-of-absolute-differences + * function (see the av_pixelutils_sad_fn prototype). + * + * @param w_bits 1< + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXFMT_H +#define AVUTIL_PIXFMT_H + +/** + * @file + * pixel format definitions + */ + +#include "libavutil/avconfig.h" +#include "version.h" + +#define AVPALETTE_SIZE 1024 +#define AVPALETTE_COUNT 256 + +/** + * Maximum number of planes in any pixel format. + * This should be used when a maximum is needed, but code should not + * be written to require a maximum for no good reason. + */ +#define AV_VIDEO_MAX_PLANES 4 + +/** + * Pixel format. + * + * @note + * AV_PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA + * color is put together as: + * (A << 24) | (R << 16) | (G << 8) | B + * This is stored as BGRA on little-endian CPU architectures and ARGB on + * big-endian CPUs. + * + * @note + * If the resolution is not a multiple of the chroma subsampling factor + * then the chroma plane resolution must be rounded up. + * + * @par + * When the pixel format is palettized RGB32 (AV_PIX_FMT_PAL8), the palettized + * image data is stored in AVFrame.data[0]. The palette is transported in + * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is + * formatted the same as in AV_PIX_FMT_RGB32 described above (i.e., it is + * also endian-specific). Note also that the individual RGB32 palette + * components stored in AVFrame.data[1] should be in the range 0..255. + * This is important as many custom PAL8 video codecs that were designed + * to run on the IBM VGA graphics adapter use 6-bit palette components. + * + * @par + * For all the 8 bits per pixel formats, an RGB32 palette is in data[1] like + * for pal8. This palette is filled in automatically by the function + * allocating the picture. + */ +enum AVPixelFormat { + AV_PIX_FMT_NONE = -1, + AV_PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) + AV_PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + AV_PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... + AV_PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... + AV_PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) + AV_PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) + AV_PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) + AV_PIX_FMT_GRAY8, ///< Y , 8bpp + AV_PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb + AV_PIX_FMT_PAL8, ///< 8 bits with AV_PIX_FMT_RGB32 palette + AV_PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV420P and setting color_range + AV_PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV422P and setting color_range + AV_PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV444P and setting color_range + AV_PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + AV_PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 + AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) + AV_PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) + AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)3R 3G 2B(lsb) + AV_PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + AV_PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) + AV_PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + AV_PIX_FMT_NV21, ///< as above, but U and V bytes are swapped + + AV_PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB... + AV_PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA... + AV_PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR... + AV_PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA... + + AV_PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian + AV_PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian + AV_PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) + AV_PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV440P and setting color_range + AV_PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) + AV_PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian + + AV_PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian + AV_PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian + AV_PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), big-endian , X=unused/undefined + AV_PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1X 5R 5G 5B(lsb), little-endian, X=unused/undefined + + AV_PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian + AV_PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian + AV_PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), big-endian , X=unused/undefined + AV_PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1X 5B 5G 5R(lsb), little-endian, X=unused/undefined + + /** + * Hardware acceleration through VA-API, data[3] contains a + * VASurfaceID. + */ + AV_PIX_FMT_VAAPI, + + AV_PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer + + AV_PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4X 4R 4G 4B(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4X 4B 4G 4R(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_YA8, ///< 8 bits gray, 8 bits alpha + + AV_PIX_FMT_Y400A = AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 + AV_PIX_FMT_GRAY8A= AV_PIX_FMT_YA8, ///< alias for AV_PIX_FMT_YA8 + + AV_PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian + AV_PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian + + /** + * The following 12 formats have the disadvantage of needing 1 format for each bit depth. + * Notice that each 9/10 bits sample is stored in 16 bits with extra padding. + * If you want to support multiple bit depths, then using AV_PIX_FMT_YUV420P16* with the bpp stored separately is better. + */ + AV_PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp + AV_PIX_FMT_GBR24P = AV_PIX_FMT_GBRP, // alias for #AV_PIX_FMT_GBRP + AV_PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big-endian + AV_PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little-endian + AV_PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big-endian + AV_PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little-endian + AV_PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little-endian + AV_PIX_FMT_YUVA422P, ///< planar YUV 4:2:2 24bpp, (1 Cr & Cb sample per 2x1 Y & A samples) + AV_PIX_FMT_YUVA444P, ///< planar YUV 4:4:4 32bpp, (1 Cr & Cb sample per 1x1 Y & A samples) + AV_PIX_FMT_YUVA420P9BE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), big-endian + AV_PIX_FMT_YUVA420P9LE, ///< planar YUV 4:2:0 22.5bpp, (1 Cr & Cb sample per 2x2 Y & A samples), little-endian + AV_PIX_FMT_YUVA422P9BE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA422P9LE, ///< planar YUV 4:2:2 27bpp, (1 Cr & Cb sample per 2x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA444P9BE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + AV_PIX_FMT_YUVA444P9LE, ///< planar YUV 4:4:4 36bpp, (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_YUVA420P10BE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P10LE, ///< planar YUV 4:2:0 25bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P10BE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P10LE, ///< planar YUV 4:2:2 30bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P10BE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P10LE, ///< planar YUV 4:4:4 40bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA420P16BE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, big-endian) + AV_PIX_FMT_YUVA420P16LE, ///< planar YUV 4:2:0 40bpp, (1 Cr & Cb sample per 2x2 Y & A samples, little-endian) + AV_PIX_FMT_YUVA422P16BE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA422P16LE, ///< planar YUV 4:2:2 48bpp, (1 Cr & Cb sample per 2x1 Y & A samples, little-endian) + AV_PIX_FMT_YUVA444P16BE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, big-endian) + AV_PIX_FMT_YUVA444P16LE, ///< planar YUV 4:4:4 64bpp, (1 Cr & Cb sample per 1x1 Y & A samples, little-endian) + + AV_PIX_FMT_VDPAU, ///< HW acceleration through VDPAU, Picture.data[3] contains a VdpVideoSurface + + AV_PIX_FMT_XYZ12LE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as little-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_XYZ12BE, ///< packed XYZ 4:4:4, 36 bpp, (msb) 12X, 12Y, 12Z (lsb), the 2-byte value for each X/Y/Z is stored as big-endian, the 4 lower bits are set to 0 + AV_PIX_FMT_NV16, ///< interleaved chroma YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + AV_PIX_FMT_NV20LE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_NV20BE, ///< interleaved chroma YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + + AV_PIX_FMT_RGBA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + AV_PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + AV_PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + + AV_PIX_FMT_YVYU422, ///< packed YUV 4:2:2, 16bpp, Y0 Cr Y1 Cb + + AV_PIX_FMT_YA16BE, ///< 16 bits gray, 16 bits alpha (big-endian) + AV_PIX_FMT_YA16LE, ///< 16 bits gray, 16 bits alpha (little-endian) + + AV_PIX_FMT_GBRAP, ///< planar GBRA 4:4:4:4 32bpp + AV_PIX_FMT_GBRAP16BE, ///< planar GBRA 4:4:4:4 64bpp, big-endian + AV_PIX_FMT_GBRAP16LE, ///< planar GBRA 4:4:4:4 64bpp, little-endian + /** + * HW acceleration through QSV, data[3] contains a pointer to the + * mfxFrameSurface1 structure. + * + * Before FFmpeg 5.0: + * mfxFrameSurface1.Data.MemId contains a pointer when importing + * the following frames as QSV frames: + * + * VAAPI: + * mfxFrameSurface1.Data.MemId contains a pointer to VASurfaceID + * + * DXVA2: + * mfxFrameSurface1.Data.MemId contains a pointer to IDirect3DSurface9 + * + * FFmpeg 5.0 and above: + * mfxFrameSurface1.Data.MemId contains a pointer to the mfxHDLPair + * structure when importing the following frames as QSV frames: + * + * VAAPI: + * mfxHDLPair.first contains a VASurfaceID pointer. + * mfxHDLPair.second is always MFX_INFINITE. + * + * DXVA2: + * mfxHDLPair.first contains IDirect3DSurface9 pointer. + * mfxHDLPair.second is always MFX_INFINITE. + * + * D3D11: + * mfxHDLPair.first contains a ID3D11Texture2D pointer. + * mfxHDLPair.second contains the texture array index of the frame if the + * ID3D11Texture2D is an array texture, or always MFX_INFINITE if it is a + * normal texture. + */ + AV_PIX_FMT_QSV, + /** + * HW acceleration though MMAL, data[3] contains a pointer to the + * MMAL_BUFFER_HEADER_T structure. + */ + AV_PIX_FMT_MMAL, + + AV_PIX_FMT_D3D11VA_VLD, ///< HW decoding through Direct3D11 via old API, Picture.data[3] contains a ID3D11VideoDecoderOutputView pointer + + /** + * HW acceleration through CUDA. data[i] contain CUdeviceptr pointers + * exactly as for system memory frames. + */ + AV_PIX_FMT_CUDA, + + AV_PIX_FMT_0RGB, ///< packed RGB 8:8:8, 32bpp, XRGBXRGB... X=unused/undefined + AV_PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGBXRGBX... X=unused/undefined + AV_PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, XBGRXBGR... X=unused/undefined + AV_PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGRXBGRX... X=unused/undefined + + AV_PIX_FMT_YUV420P12BE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P12LE, ///< planar YUV 4:2:0,18bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV420P14BE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + AV_PIX_FMT_YUV420P14LE, ///< planar YUV 4:2:0,21bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + AV_PIX_FMT_YUV422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV422P14BE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + AV_PIX_FMT_YUV422P14LE, ///< planar YUV 4:2:2,28bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + AV_PIX_FMT_YUV444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_YUV444P14BE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + AV_PIX_FMT_YUV444P14LE, ///< planar YUV 4:4:4,42bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + AV_PIX_FMT_GBRP12BE, ///< planar GBR 4:4:4 36bpp, big-endian + AV_PIX_FMT_GBRP12LE, ///< planar GBR 4:4:4 36bpp, little-endian + AV_PIX_FMT_GBRP14BE, ///< planar GBR 4:4:4 42bpp, big-endian + AV_PIX_FMT_GBRP14LE, ///< planar GBR 4:4:4 42bpp, little-endian + AV_PIX_FMT_YUVJ411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) full scale (JPEG), deprecated in favor of AV_PIX_FMT_YUV411P and setting color_range + + AV_PIX_FMT_BAYER_BGGR8, ///< bayer, BGBG..(odd line), GRGR..(even line), 8-bit samples + AV_PIX_FMT_BAYER_RGGB8, ///< bayer, RGRG..(odd line), GBGB..(even line), 8-bit samples + AV_PIX_FMT_BAYER_GBRG8, ///< bayer, GBGB..(odd line), RGRG..(even line), 8-bit samples + AV_PIX_FMT_BAYER_GRBG8, ///< bayer, GRGR..(odd line), BGBG..(even line), 8-bit samples + AV_PIX_FMT_BAYER_BGGR16LE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_BGGR16BE, ///< bayer, BGBG..(odd line), GRGR..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_RGGB16LE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_RGGB16BE, ///< bayer, RGRG..(odd line), GBGB..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_GBRG16LE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_GBRG16BE, ///< bayer, GBGB..(odd line), RGRG..(even line), 16-bit samples, big-endian + AV_PIX_FMT_BAYER_GRBG16LE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, little-endian + AV_PIX_FMT_BAYER_GRBG16BE, ///< bayer, GRGR..(odd line), BGBG..(even line), 16-bit samples, big-endian + + AV_PIX_FMT_YUV440P10LE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P10BE, ///< planar YUV 4:4:0,20bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_YUV440P12LE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), little-endian + AV_PIX_FMT_YUV440P12BE, ///< planar YUV 4:4:0,24bpp, (1 Cr & Cb sample per 1x2 Y samples), big-endian + AV_PIX_FMT_AYUV64LE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), little-endian + AV_PIX_FMT_AYUV64BE, ///< packed AYUV 4:4:4,64bpp (1 Cr & Cb sample per 1x1 Y & A samples), big-endian + + AV_PIX_FMT_VIDEOTOOLBOX, ///< hardware decoding through Videotoolbox + + AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian + AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-endian + + AV_PIX_FMT_GBRAP12BE, ///< planar GBR 4:4:4:4 48bpp, big-endian + AV_PIX_FMT_GBRAP12LE, ///< planar GBR 4:4:4:4 48bpp, little-endian + + AV_PIX_FMT_GBRAP10BE, ///< planar GBR 4:4:4:4 40bpp, big-endian + AV_PIX_FMT_GBRAP10LE, ///< planar GBR 4:4:4:4 40bpp, little-endian + + AV_PIX_FMT_MEDIACODEC, ///< hardware decoding through MediaCodec + + AV_PIX_FMT_GRAY12BE, ///< Y , 12bpp, big-endian + AV_PIX_FMT_GRAY12LE, ///< Y , 12bpp, little-endian + AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian + AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian + + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian + + /** + * Hardware surfaces for Direct3D11. + * + * This is preferred over the legacy AV_PIX_FMT_D3D11VA_VLD. The new D3D11 + * hwaccel API and filtering support AV_PIX_FMT_D3D11 only. + * + * data[0] contains a ID3D11Texture2D pointer, and data[1] contains the + * texture array index of the frame as intptr_t if the ID3D11Texture2D is + * an array texture (or always 0 if it's a normal texture). + */ + AV_PIX_FMT_D3D11, + + AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian + AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian + + AV_PIX_FMT_GBRPF32BE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian + AV_PIX_FMT_GBRPF32LE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian + AV_PIX_FMT_GBRAPF32BE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian + AV_PIX_FMT_GBRAPF32LE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian + + /** + * DRM-managed buffers exposed through PRIME buffer sharing. + * + * data[0] points to an AVDRMFrameDescriptor. + */ + AV_PIX_FMT_DRM_PRIME, + /** + * Hardware surfaces for OpenCL. + * + * data[i] contain 2D image objects (typed in C as cl_mem, used + * in OpenCL as image2d_t) for each plane of the surface. + */ + AV_PIX_FMT_OPENCL, + + AV_PIX_FMT_GRAY14BE, ///< Y , 14bpp, big-endian + AV_PIX_FMT_GRAY14LE, ///< Y , 14bpp, little-endian + + AV_PIX_FMT_GRAYF32BE, ///< IEEE-754 single precision Y, 32bpp, big-endian + AV_PIX_FMT_GRAYF32LE, ///< IEEE-754 single precision Y, 32bpp, little-endian + + AV_PIX_FMT_YUVA422P12BE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, big-endian + AV_PIX_FMT_YUVA422P12LE, ///< planar YUV 4:2:2,24bpp, (1 Cr & Cb sample per 2x1 Y samples), 12b alpha, little-endian + AV_PIX_FMT_YUVA444P12BE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, big-endian + AV_PIX_FMT_YUVA444P12LE, ///< planar YUV 4:4:4,36bpp, (1 Cr & Cb sample per 1x1 Y samples), 12b alpha, little-endian + + AV_PIX_FMT_NV24, ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + AV_PIX_FMT_NV42, ///< as above, but U and V bytes are swapped + + /** + * Vulkan hardware images. + * + * data[0] points to an AVVkFrame + */ + AV_PIX_FMT_VULKAN, + + AV_PIX_FMT_Y210BE, ///< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, big-endian + AV_PIX_FMT_Y210LE, ///< packed YUV 4:2:2 like YUYV422, 20bpp, data in the high bits, little-endian + + AV_PIX_FMT_X2RGB10LE, ///< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_X2RGB10BE, ///< packed RGB 10:10:10, 30bpp, (msb)2X 10R 10G 10B(lsb), big-endian, X=unused/undefined + AV_PIX_FMT_X2BGR10LE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), little-endian, X=unused/undefined + AV_PIX_FMT_X2BGR10BE, ///< packed BGR 10:10:10, 30bpp, (msb)2X 10B 10G 10R(lsb), big-endian, X=unused/undefined + + AV_PIX_FMT_P210BE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, big-endian + AV_PIX_FMT_P210LE, ///< interleaved chroma YUV 4:2:2, 20bpp, data in the high bits, little-endian + + AV_PIX_FMT_P410BE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, big-endian + AV_PIX_FMT_P410LE, ///< interleaved chroma YUV 4:4:4, 30bpp, data in the high bits, little-endian + + AV_PIX_FMT_P216BE, ///< interleaved chroma YUV 4:2:2, 32bpp, big-endian + AV_PIX_FMT_P216LE, ///< interleaved chroma YUV 4:2:2, 32bpp, little-endian + + AV_PIX_FMT_P416BE, ///< interleaved chroma YUV 4:4:4, 48bpp, big-endian + AV_PIX_FMT_P416LE, ///< interleaved chroma YUV 4:4:4, 48bpp, little-endian + + AV_PIX_FMT_VUYA, ///< packed VUYA 4:4:4, 32bpp, VUYAVUYA... + + AV_PIX_FMT_RGBAF16BE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., big-endian + AV_PIX_FMT_RGBAF16LE, ///< IEEE-754 half precision packed RGBA 16:16:16:16, 64bpp, RGBARGBA..., little-endian + + AV_PIX_FMT_VUYX, ///< packed VUYX 4:4:4, 32bpp, Variant of VUYA where alpha channel is left undefined + + AV_PIX_FMT_P012LE, ///< like NV12, with 12bpp per component, data in the high bits, zeros in the low bits, little-endian + AV_PIX_FMT_P012BE, ///< like NV12, with 12bpp per component, data in the high bits, zeros in the low bits, big-endian + + AV_PIX_FMT_Y212BE, ///< packed YUV 4:2:2 like YUYV422, 24bpp, data in the high bits, zeros in the low bits, big-endian + AV_PIX_FMT_Y212LE, ///< packed YUV 4:2:2 like YUYV422, 24bpp, data in the high bits, zeros in the low bits, little-endian + + AV_PIX_FMT_XV30BE, ///< packed XVYU 4:4:4, 32bpp, (msb)2X 10V 10Y 10U(lsb), big-endian, variant of Y410 where alpha channel is left undefined + AV_PIX_FMT_XV30LE, ///< packed XVYU 4:4:4, 32bpp, (msb)2X 10V 10Y 10U(lsb), little-endian, variant of Y410 where alpha channel is left undefined + + AV_PIX_FMT_XV36BE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, big-endian, variant of Y412 where alpha channel is left undefined + AV_PIX_FMT_XV36LE, ///< packed XVYU 4:4:4, 48bpp, data in the high bits, zeros in the low bits, little-endian, variant of Y412 where alpha channel is left undefined + + AV_PIX_FMT_RGBF32BE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., big-endian + AV_PIX_FMT_RGBF32LE, ///< IEEE-754 single precision packed RGB 32:32:32, 96bpp, RGBRGB..., little-endian + + AV_PIX_FMT_RGBAF32BE, ///< IEEE-754 single precision packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., big-endian + AV_PIX_FMT_RGBAF32LE, ///< IEEE-754 single precision packed RGBA 32:32:32:32, 128bpp, RGBARGBA..., little-endian + + AV_PIX_FMT_P212BE, ///< interleaved chroma YUV 4:2:2, 24bpp, data in the high bits, big-endian + AV_PIX_FMT_P212LE, ///< interleaved chroma YUV 4:2:2, 24bpp, data in the high bits, little-endian + + AV_PIX_FMT_P412BE, ///< interleaved chroma YUV 4:4:4, 36bpp, data in the high bits, big-endian + AV_PIX_FMT_P412LE, ///< interleaved chroma YUV 4:4:4, 36bpp, data in the high bits, little-endian + + AV_PIX_FMT_GBRAP14BE, ///< planar GBR 4:4:4:4 56bpp, big-endian + AV_PIX_FMT_GBRAP14LE, ///< planar GBR 4:4:4:4 56bpp, little-endian + + /** + * Hardware surfaces for Direct3D 12. + * + * data[0] points to an AVD3D12VAFrame + */ + AV_PIX_FMT_D3D12, + + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions +}; + +#if AV_HAVE_BIGENDIAN +# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##be +#else +# define AV_PIX_FMT_NE(be, le) AV_PIX_FMT_##le +#endif + +#define AV_PIX_FMT_RGB32 AV_PIX_FMT_NE(ARGB, BGRA) +#define AV_PIX_FMT_RGB32_1 AV_PIX_FMT_NE(RGBA, ABGR) +#define AV_PIX_FMT_BGR32 AV_PIX_FMT_NE(ABGR, RGBA) +#define AV_PIX_FMT_BGR32_1 AV_PIX_FMT_NE(BGRA, ARGB) +#define AV_PIX_FMT_0RGB32 AV_PIX_FMT_NE(0RGB, BGR0) +#define AV_PIX_FMT_0BGR32 AV_PIX_FMT_NE(0BGR, RGB0) + +#define AV_PIX_FMT_GRAY9 AV_PIX_FMT_NE(GRAY9BE, GRAY9LE) +#define AV_PIX_FMT_GRAY10 AV_PIX_FMT_NE(GRAY10BE, GRAY10LE) +#define AV_PIX_FMT_GRAY12 AV_PIX_FMT_NE(GRAY12BE, GRAY12LE) +#define AV_PIX_FMT_GRAY14 AV_PIX_FMT_NE(GRAY14BE, GRAY14LE) +#define AV_PIX_FMT_GRAY16 AV_PIX_FMT_NE(GRAY16BE, GRAY16LE) +#define AV_PIX_FMT_YA16 AV_PIX_FMT_NE(YA16BE, YA16LE) +#define AV_PIX_FMT_RGB48 AV_PIX_FMT_NE(RGB48BE, RGB48LE) +#define AV_PIX_FMT_RGB565 AV_PIX_FMT_NE(RGB565BE, RGB565LE) +#define AV_PIX_FMT_RGB555 AV_PIX_FMT_NE(RGB555BE, RGB555LE) +#define AV_PIX_FMT_RGB444 AV_PIX_FMT_NE(RGB444BE, RGB444LE) +#define AV_PIX_FMT_RGBA64 AV_PIX_FMT_NE(RGBA64BE, RGBA64LE) +#define AV_PIX_FMT_BGR48 AV_PIX_FMT_NE(BGR48BE, BGR48LE) +#define AV_PIX_FMT_BGR565 AV_PIX_FMT_NE(BGR565BE, BGR565LE) +#define AV_PIX_FMT_BGR555 AV_PIX_FMT_NE(BGR555BE, BGR555LE) +#define AV_PIX_FMT_BGR444 AV_PIX_FMT_NE(BGR444BE, BGR444LE) +#define AV_PIX_FMT_BGRA64 AV_PIX_FMT_NE(BGRA64BE, BGRA64LE) + +#define AV_PIX_FMT_YUV420P9 AV_PIX_FMT_NE(YUV420P9BE , YUV420P9LE) +#define AV_PIX_FMT_YUV422P9 AV_PIX_FMT_NE(YUV422P9BE , YUV422P9LE) +#define AV_PIX_FMT_YUV444P9 AV_PIX_FMT_NE(YUV444P9BE , YUV444P9LE) +#define AV_PIX_FMT_YUV420P10 AV_PIX_FMT_NE(YUV420P10BE, YUV420P10LE) +#define AV_PIX_FMT_YUV422P10 AV_PIX_FMT_NE(YUV422P10BE, YUV422P10LE) +#define AV_PIX_FMT_YUV440P10 AV_PIX_FMT_NE(YUV440P10BE, YUV440P10LE) +#define AV_PIX_FMT_YUV444P10 AV_PIX_FMT_NE(YUV444P10BE, YUV444P10LE) +#define AV_PIX_FMT_YUV420P12 AV_PIX_FMT_NE(YUV420P12BE, YUV420P12LE) +#define AV_PIX_FMT_YUV422P12 AV_PIX_FMT_NE(YUV422P12BE, YUV422P12LE) +#define AV_PIX_FMT_YUV440P12 AV_PIX_FMT_NE(YUV440P12BE, YUV440P12LE) +#define AV_PIX_FMT_YUV444P12 AV_PIX_FMT_NE(YUV444P12BE, YUV444P12LE) +#define AV_PIX_FMT_YUV420P14 AV_PIX_FMT_NE(YUV420P14BE, YUV420P14LE) +#define AV_PIX_FMT_YUV422P14 AV_PIX_FMT_NE(YUV422P14BE, YUV422P14LE) +#define AV_PIX_FMT_YUV444P14 AV_PIX_FMT_NE(YUV444P14BE, YUV444P14LE) +#define AV_PIX_FMT_YUV420P16 AV_PIX_FMT_NE(YUV420P16BE, YUV420P16LE) +#define AV_PIX_FMT_YUV422P16 AV_PIX_FMT_NE(YUV422P16BE, YUV422P16LE) +#define AV_PIX_FMT_YUV444P16 AV_PIX_FMT_NE(YUV444P16BE, YUV444P16LE) + +#define AV_PIX_FMT_GBRP9 AV_PIX_FMT_NE(GBRP9BE , GBRP9LE) +#define AV_PIX_FMT_GBRP10 AV_PIX_FMT_NE(GBRP10BE, GBRP10LE) +#define AV_PIX_FMT_GBRP12 AV_PIX_FMT_NE(GBRP12BE, GBRP12LE) +#define AV_PIX_FMT_GBRP14 AV_PIX_FMT_NE(GBRP14BE, GBRP14LE) +#define AV_PIX_FMT_GBRP16 AV_PIX_FMT_NE(GBRP16BE, GBRP16LE) +#define AV_PIX_FMT_GBRAP10 AV_PIX_FMT_NE(GBRAP10BE, GBRAP10LE) +#define AV_PIX_FMT_GBRAP12 AV_PIX_FMT_NE(GBRAP12BE, GBRAP12LE) +#define AV_PIX_FMT_GBRAP14 AV_PIX_FMT_NE(GBRAP14BE, GBRAP14LE) +#define AV_PIX_FMT_GBRAP16 AV_PIX_FMT_NE(GBRAP16BE, GBRAP16LE) + +#define AV_PIX_FMT_BAYER_BGGR16 AV_PIX_FMT_NE(BAYER_BGGR16BE, BAYER_BGGR16LE) +#define AV_PIX_FMT_BAYER_RGGB16 AV_PIX_FMT_NE(BAYER_RGGB16BE, BAYER_RGGB16LE) +#define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE) +#define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE) + +#define AV_PIX_FMT_GBRPF32 AV_PIX_FMT_NE(GBRPF32BE, GBRPF32LE) +#define AV_PIX_FMT_GBRAPF32 AV_PIX_FMT_NE(GBRAPF32BE, GBRAPF32LE) + +#define AV_PIX_FMT_GRAYF32 AV_PIX_FMT_NE(GRAYF32BE, GRAYF32LE) + +#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE) +#define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE) +#define AV_PIX_FMT_YUVA444P9 AV_PIX_FMT_NE(YUVA444P9BE , YUVA444P9LE) +#define AV_PIX_FMT_YUVA420P10 AV_PIX_FMT_NE(YUVA420P10BE, YUVA420P10LE) +#define AV_PIX_FMT_YUVA422P10 AV_PIX_FMT_NE(YUVA422P10BE, YUVA422P10LE) +#define AV_PIX_FMT_YUVA444P10 AV_PIX_FMT_NE(YUVA444P10BE, YUVA444P10LE) +#define AV_PIX_FMT_YUVA422P12 AV_PIX_FMT_NE(YUVA422P12BE, YUVA422P12LE) +#define AV_PIX_FMT_YUVA444P12 AV_PIX_FMT_NE(YUVA444P12BE, YUVA444P12LE) +#define AV_PIX_FMT_YUVA420P16 AV_PIX_FMT_NE(YUVA420P16BE, YUVA420P16LE) +#define AV_PIX_FMT_YUVA422P16 AV_PIX_FMT_NE(YUVA422P16BE, YUVA422P16LE) +#define AV_PIX_FMT_YUVA444P16 AV_PIX_FMT_NE(YUVA444P16BE, YUVA444P16LE) + +#define AV_PIX_FMT_XYZ12 AV_PIX_FMT_NE(XYZ12BE, XYZ12LE) +#define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE) +#define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE) +#define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE) +#define AV_PIX_FMT_P012 AV_PIX_FMT_NE(P012BE, P012LE) +#define AV_PIX_FMT_P016 AV_PIX_FMT_NE(P016BE, P016LE) + +#define AV_PIX_FMT_Y210 AV_PIX_FMT_NE(Y210BE, Y210LE) +#define AV_PIX_FMT_Y212 AV_PIX_FMT_NE(Y212BE, Y212LE) +#define AV_PIX_FMT_XV30 AV_PIX_FMT_NE(XV30BE, XV30LE) +#define AV_PIX_FMT_XV36 AV_PIX_FMT_NE(XV36BE, XV36LE) +#define AV_PIX_FMT_X2RGB10 AV_PIX_FMT_NE(X2RGB10BE, X2RGB10LE) +#define AV_PIX_FMT_X2BGR10 AV_PIX_FMT_NE(X2BGR10BE, X2BGR10LE) + +#define AV_PIX_FMT_P210 AV_PIX_FMT_NE(P210BE, P210LE) +#define AV_PIX_FMT_P410 AV_PIX_FMT_NE(P410BE, P410LE) +#define AV_PIX_FMT_P212 AV_PIX_FMT_NE(P212BE, P212LE) +#define AV_PIX_FMT_P412 AV_PIX_FMT_NE(P412BE, P412LE) +#define AV_PIX_FMT_P216 AV_PIX_FMT_NE(P216BE, P216LE) +#define AV_PIX_FMT_P416 AV_PIX_FMT_NE(P416BE, P416LE) + +#define AV_PIX_FMT_RGBAF16 AV_PIX_FMT_NE(RGBAF16BE, RGBAF16LE) + +#define AV_PIX_FMT_RGBF32 AV_PIX_FMT_NE(RGBF32BE, RGBF32LE) +#define AV_PIX_FMT_RGBAF32 AV_PIX_FMT_NE(RGBAF32BE, RGBAF32LE) + +/** + * Chromaticity coordinates of the source primaries. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.1 and ITU-T H.273. + */ +enum AVColorPrimaries { + AVCOL_PRI_RESERVED0 = 0, + AVCOL_PRI_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP 177 Annex B + AVCOL_PRI_UNSPECIFIED = 2, + AVCOL_PRI_RESERVED = 3, + AVCOL_PRI_BT470M = 4, ///< also FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + + AVCOL_PRI_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM + AVCOL_PRI_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_PRI_SMPTE240M = 7, ///< identical to above, also called "SMPTE C" even though it uses D65 + AVCOL_PRI_FILM = 8, ///< colour filters using Illuminant C + AVCOL_PRI_BT2020 = 9, ///< ITU-R BT2020 + AVCOL_PRI_SMPTE428 = 10, ///< SMPTE ST 428-1 (CIE 1931 XYZ) + AVCOL_PRI_SMPTEST428_1 = AVCOL_PRI_SMPTE428, + AVCOL_PRI_SMPTE431 = 11, ///< SMPTE ST 431-2 (2011) / DCI P3 + AVCOL_PRI_SMPTE432 = 12, ///< SMPTE ST 432-1 (2010) / P3 D65 / Display P3 + AVCOL_PRI_EBU3213 = 22, ///< EBU Tech. 3213-E (nothing there) / one of JEDEC P22 group phosphors + AVCOL_PRI_JEDEC_P22 = AVCOL_PRI_EBU3213, + AVCOL_PRI_NB ///< Not part of ABI +}; + +/** + * Color Transfer Characteristic. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.2. + */ +enum AVColorTransferCharacteristic { + AVCOL_TRC_RESERVED0 = 0, + AVCOL_TRC_BT709 = 1, ///< also ITU-R BT1361 + AVCOL_TRC_UNSPECIFIED = 2, + AVCOL_TRC_RESERVED = 3, + AVCOL_TRC_GAMMA22 = 4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM + AVCOL_TRC_GAMMA28 = 5, ///< also ITU-R BT470BG + AVCOL_TRC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 or 625 / ITU-R BT1358 525 or 625 / ITU-R BT1700 NTSC + AVCOL_TRC_SMPTE240M = 7, + AVCOL_TRC_LINEAR = 8, ///< "Linear transfer characteristics" + AVCOL_TRC_LOG = 9, ///< "Logarithmic transfer characteristic (100:1 range)" + AVCOL_TRC_LOG_SQRT = 10, ///< "Logarithmic transfer characteristic (100 * Sqrt(10) : 1 range)" + AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4 + AVCOL_TRC_BT1361_ECG = 12, ///< ITU-R BT1361 Extended Colour Gamut + AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC) + AVCOL_TRC_BT2020_10 = 14, ///< ITU-R BT2020 for 10-bit system + AVCOL_TRC_BT2020_12 = 15, ///< ITU-R BT2020 for 12-bit system + AVCOL_TRC_SMPTE2084 = 16, ///< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems + AVCOL_TRC_SMPTEST2084 = AVCOL_TRC_SMPTE2084, + AVCOL_TRC_SMPTE428 = 17, ///< SMPTE ST 428-1 + AVCOL_TRC_SMPTEST428_1 = AVCOL_TRC_SMPTE428, + AVCOL_TRC_ARIB_STD_B67 = 18, ///< ARIB STD-B67, known as "Hybrid log-gamma" + AVCOL_TRC_NB ///< Not part of ABI +}; + +/** + * YUV colorspace type. + * These values match the ones defined by ISO/IEC 23091-2_2019 subclause 8.3. + */ +enum AVColorSpace { + AVCOL_SPC_RGB = 0, ///< order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB), YZX and ST 428-1 + AVCOL_SPC_BT709 = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / derived in SMPTE RP 177 Annex B + AVCOL_SPC_UNSPECIFIED = 2, + AVCOL_SPC_RESERVED = 3, ///< reserved for future use by ITU-T and ISO/IEC just like 15-255 are + AVCOL_SPC_FCC = 4, ///< FCC Title 47 Code of Federal Regulations 73.682 (a)(20) + AVCOL_SPC_BT470BG = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 + AVCOL_SPC_SMPTE170M = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above + AVCOL_SPC_SMPTE240M = 7, ///< derived from 170M primaries and D65 white point, 170M is derived from BT470 System M's primaries + AVCOL_SPC_YCGCO = 8, ///< used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16 + AVCOL_SPC_YCOCG = AVCOL_SPC_YCGCO, + AVCOL_SPC_BT2020_NCL = 9, ///< ITU-R BT2020 non-constant luminance system + AVCOL_SPC_BT2020_CL = 10, ///< ITU-R BT2020 constant luminance system + AVCOL_SPC_SMPTE2085 = 11, ///< SMPTE 2085, Y'D'zD'x + AVCOL_SPC_CHROMA_DERIVED_NCL = 12, ///< Chromaticity-derived non-constant luminance system + AVCOL_SPC_CHROMA_DERIVED_CL = 13, ///< Chromaticity-derived constant luminance system + AVCOL_SPC_ICTCP = 14, ///< ITU-R BT.2100-0, ICtCp + AVCOL_SPC_IPT_C2 = 15, ///< SMPTE ST 2128, IPT-C2 + AVCOL_SPC_YCGCO_RE = 16, ///< YCgCo-R, even addition of bits + AVCOL_SPC_YCGCO_RO = 17, ///< YCgCo-R, odd addition of bits + AVCOL_SPC_NB ///< Not part of ABI +}; + +/** + * Visual content value range. + * + * These values are based on definitions that can be found in multiple + * specifications, such as ITU-T BT.709 (3.4 - Quantization of RGB, luminance + * and colour-difference signals), ITU-T BT.2020 (Table 5 - Digital + * Representation) as well as ITU-T BT.2100 (Table 9 - Digital 10- and 12-bit + * integer representation). At the time of writing, the BT.2100 one is + * recommended, as it also defines the full range representation. + * + * Common definitions: + * - For RGB and luma planes such as Y in YCbCr and I in ICtCp, + * 'E' is the original value in range of 0.0 to 1.0. + * - For chroma planes such as Cb,Cr and Ct,Cp, 'E' is the original + * value in range of -0.5 to 0.5. + * - 'n' is the output bit depth. + * - For additional definitions such as rounding and clipping to valid n + * bit unsigned integer range, please refer to BT.2100 (Table 9). + */ +enum AVColorRange { + AVCOL_RANGE_UNSPECIFIED = 0, + + /** + * Narrow or limited range content. + * + * - For luma planes: + * + * (219 * E + 16) * 2^(n-8) + * + * F.ex. the range of 16-235 for 8 bits + * + * - For chroma planes: + * + * (224 * E + 128) * 2^(n-8) + * + * F.ex. the range of 16-240 for 8 bits + */ + AVCOL_RANGE_MPEG = 1, + + /** + * Full range content. + * + * - For RGB and luma planes: + * + * (2^n - 1) * E + * + * F.ex. the range of 0-255 for 8 bits + * + * - For chroma planes: + * + * (2^n - 1) * E + 2^(n - 1) + * + * F.ex. the range of 1-255 for 8 bits + */ + AVCOL_RANGE_JPEG = 2, + AVCOL_RANGE_NB ///< Not part of ABI +}; + +/** + * Location of chroma samples. + * + * Illustration showing the location of the first (top left) chroma sample of the + * image, the left shows only luma, the right + * shows the location of the chroma sample, the 2 could be imagined to overlay + * each other but are drawn separately due to limitations of ASCII + * + * 1st 2nd 1st 2nd horizontal luma sample positions + * v v v v + * ______ ______ + *1st luma line > |X X ... |3 4 X ... X are luma samples, + * | |1 2 1-6 are possible chroma positions + *2nd luma line > |X X ... |5 6 X ... 0 is undefined/unknown position + */ +enum AVChromaLocation { + AVCHROMA_LOC_UNSPECIFIED = 0, + AVCHROMA_LOC_LEFT = 1, ///< MPEG-2/4 4:2:0, H.264 default for 4:2:0 + AVCHROMA_LOC_CENTER = 2, ///< MPEG-1 4:2:0, JPEG 4:2:0, H.263 4:2:0 + AVCHROMA_LOC_TOPLEFT = 3, ///< ITU-R 601, SMPTE 274M 296M S314M(DV 4:1:1), mpeg2 4:2:2 + AVCHROMA_LOC_TOP = 4, + AVCHROMA_LOC_BOTTOMLEFT = 5, + AVCHROMA_LOC_BOTTOM = 6, + AVCHROMA_LOC_NB ///< Not part of ABI +}; + +#endif /* AVUTIL_PIXFMT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/random_seed.h b/deps/ffmpeg/macos/include/libavutil/random_seed.h new file mode 100644 index 0000000..8a47be9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/random_seed.h @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2009 Baptiste Coudurier + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_RANDOM_SEED_H +#define AVUTIL_RANDOM_SEED_H + +#include +#include +/** + * @addtogroup lavu_crypto + * @{ + */ + +/** + * Get a seed to use in conjunction with random functions. + * This function tries to provide a good seed at a best effort bases. + * Its possible to call this function multiple times if more bits are needed. + * It can be quite slow, which is why it should only be used as seed for a faster + * PRNG. The quality of the seed depends on the platform. + */ +uint32_t av_get_random_seed(void); + +/** + * Generate cryptographically secure random data, i.e. suitable for use as + * encryption keys and similar. + * + * @param buf buffer into which the random data will be written + * @param len size of buf in bytes + * + * @retval 0 success, len bytes of random data was written + * into buf + * @retval "a negative AVERROR code" random data could not be generated + */ +int av_random_bytes(uint8_t *buf, size_t len); + +/** + * @} + */ + +#endif /* AVUTIL_RANDOM_SEED_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/rational.h b/deps/ffmpeg/macos/include/libavutil/rational.h new file mode 100644 index 0000000..849f47f --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/rational.h @@ -0,0 +1,225 @@ +/* + * rational numbers + * Copyright (c) 2003 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_math_rational + * Utilties for rational number calculation. + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_RATIONAL_H +#define AVUTIL_RATIONAL_H + +#include +#include +#include "attributes.h" + +/** + * @defgroup lavu_math_rational AVRational + * @ingroup lavu_math + * Rational number calculation. + * + * While rational numbers can be expressed as floating-point numbers, the + * conversion process is a lossy one, so are floating-point operations. On the + * other hand, the nature of FFmpeg demands highly accurate calculation of + * timestamps. This set of rational number utilities serves as a generic + * interface for manipulating rational numbers as pairs of numerators and + * denominators. + * + * Many of the functions that operate on AVRational's have the suffix `_q`, in + * reference to the mathematical symbol "ℚ" (Q) which denotes the set of all + * rational numbers. + * + * @{ + */ + +/** + * Rational number (pair of numerator and denominator). + */ +typedef struct AVRational{ + int num; ///< Numerator + int den; ///< Denominator +} AVRational; + +/** + * Create an AVRational. + * + * Useful for compilers that do not support compound literals. + * + * @note The return value is not reduced. + * @see av_reduce() + */ +static inline AVRational av_make_q(int num, int den) +{ + AVRational r = { num, den }; + return r; +} + +/** + * Compare two rationals. + * + * @param a First rational + * @param b Second rational + * + * @return One of the following values: + * - 0 if `a == b` + * - 1 if `a > b` + * - -1 if `a < b` + * - `INT_MIN` if one of the values is of the form `0 / 0` + */ +static inline int av_cmp_q(AVRational a, AVRational b){ + const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; + + if(tmp) return (int)((tmp ^ a.den ^ b.den)>>63)|1; + else if(b.den && a.den) return 0; + else if(a.num && b.num) return (a.num>>31) - (b.num>>31); + else return INT_MIN; +} + +/** + * Convert an AVRational to a `double`. + * @param a AVRational to convert + * @return `a` in floating-point form + * @see av_d2q() + */ +static inline double av_q2d(AVRational a){ + return a.num / (double) a.den; +} + +/** + * Reduce a fraction. + * + * This is useful for framerate calculations. + * + * @param[out] dst_num Destination numerator + * @param[out] dst_den Destination denominator + * @param[in] num Source numerator + * @param[in] den Source denominator + * @param[in] max Maximum allowed values for `dst_num` & `dst_den` + * @return 1 if the operation is exact, 0 otherwise + */ +int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max); + +/** + * Multiply two rationals. + * @param b First rational + * @param c Second rational + * @return b*c + */ +AVRational av_mul_q(AVRational b, AVRational c) av_const; + +/** + * Divide one rational by another. + * @param b First rational + * @param c Second rational + * @return b/c + */ +AVRational av_div_q(AVRational b, AVRational c) av_const; + +/** + * Add two rationals. + * @param b First rational + * @param c Second rational + * @return b+c + */ +AVRational av_add_q(AVRational b, AVRational c) av_const; + +/** + * Subtract one rational from another. + * @param b First rational + * @param c Second rational + * @return b-c + */ +AVRational av_sub_q(AVRational b, AVRational c) av_const; + +/** + * Invert a rational. + * @param q value + * @return 1 / q + */ +static av_always_inline AVRational av_inv_q(AVRational q) +{ + AVRational r = { q.den, q.num }; + return r; +} + +/** + * Convert a double precision floating point number to a rational. + * + * In case of infinity, the returned value is expressed as `{1, 0}` or + * `{-1, 0}` depending on the sign. + * + * In general rational numbers with |num| <= 1<<26 && |den| <= 1<<26 + * can be recovered exactly from their double representation. + * (no exceptions were found within 1B random ones) + * + * @param d `double` to convert + * @param max Maximum allowed numerator and denominator + * @return `d` in AVRational form + * @see av_q2d() + */ +AVRational av_d2q(double d, int max) av_const; + +/** + * Find which of the two rationals is closer to another rational. + * + * @param q Rational to be compared against + * @param q1 Rational to be tested + * @param q2 Rational to be tested + * @return One of the following values: + * - 1 if `q1` is nearer to `q` than `q2` + * - -1 if `q2` is nearer to `q` than `q1` + * - 0 if they have the same distance + */ +int av_nearer_q(AVRational q, AVRational q1, AVRational q2); + +/** + * Find the value in a list of rationals nearest a given reference rational. + * + * @param q Reference rational + * @param q_list Array of rationals terminated by `{0, 0}` + * @return Index of the nearest value found in the array + */ +int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); + +/** + * Convert an AVRational to a IEEE 32-bit `float` expressed in fixed-point + * format. + * + * @param q Rational to be converted + * @return Equivalent floating-point value, expressed as an unsigned 32-bit + * integer. + * @note The returned value is platform-indepedant. + */ +uint32_t av_q2intfloat(AVRational q); + +/** + * Return the best rational so that a and b are multiple of it. + * If the resulting denominator is larger than max_den, return def. + */ +AVRational av_gcd_q(AVRational a, AVRational b, int max_den, AVRational def); + +/** + * @} + */ + +#endif /* AVUTIL_RATIONAL_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/rc4.h b/deps/ffmpeg/macos/include/libavutil/rc4.h new file mode 100644 index 0000000..bf0ca6e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/rc4.h @@ -0,0 +1,69 @@ +/* + * RC4 encryption/decryption/pseudo-random number generator + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_RC4_H +#define AVUTIL_RC4_H + +#include + +/** + * @defgroup lavu_rc4 RC4 + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVRC4 { + uint8_t state[256]; + int x, y; +} AVRC4; + +/** + * Allocate an AVRC4 context. + */ +AVRC4 *av_rc4_alloc(void); + +/** + * @brief Initializes an AVRC4 context. + * + * @param d pointer to the AVRC4 context + * @param key buffer containig the key + * @param key_bits must be a multiple of 8 + * @param decrypt 0 for encryption, 1 for decryption, currently has no effect + * @return zero on success, negative value otherwise + */ +int av_rc4_init(struct AVRC4 *d, const uint8_t *key, int key_bits, int decrypt); + +/** + * @brief Encrypts / decrypts using the RC4 algorithm. + * + * @param d pointer to the AVRC4 context + * @param count number of bytes + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst, may be NULL + * @param iv not (yet) used for RC4, should be NULL + * @param decrypt 0 for encryption, 1 for decryption, not (yet) used + */ +void av_rc4_crypt(struct AVRC4 *d, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_RC4_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/replaygain.h b/deps/ffmpeg/macos/include/libavutil/replaygain.h new file mode 100644 index 0000000..b49bf1a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/replaygain.h @@ -0,0 +1,50 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_REPLAYGAIN_H +#define AVUTIL_REPLAYGAIN_H + +#include + +/** + * ReplayGain information (see + * http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification). + * The size of this struct is a part of the public ABI. + */ +typedef struct AVReplayGain { + /** + * Track replay gain in microbels (divide by 100000 to get the value in dB). + * Should be set to INT32_MIN when unknown. + */ + int32_t track_gain; + /** + * Peak track amplitude, with 100000 representing full scale (but values + * may overflow). 0 when unknown. + */ + uint32_t track_peak; + /** + * Same as track_gain, but for the whole album. + */ + int32_t album_gain; + /** + * Same as track_peak, but for the whole album, + */ + uint32_t album_peak; +} AVReplayGain; + +#endif /* AVUTIL_REPLAYGAIN_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/ripemd.h b/deps/ffmpeg/macos/include/libavutil/ripemd.h new file mode 100644 index 0000000..9df9f90 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/ripemd.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * Copyright (C) 2013 James Almer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_ripemd + * Public header for RIPEMD hash function implementation. + */ + +#ifndef AVUTIL_RIPEMD_H +#define AVUTIL_RIPEMD_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_ripemd RIPEMD + * @ingroup lavu_hash + * RIPEMD hash function implementation. + * + * @{ + */ + +extern const int av_ripemd_size; + +struct AVRIPEMD; + +/** + * Allocate an AVRIPEMD context. + */ +struct AVRIPEMD *av_ripemd_alloc(void); + +/** + * Initialize RIPEMD hashing. + * + * @param context pointer to the function context (of size av_ripemd_size) + * @param bits number of bits in digest (128, 160, 256 or 320 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_ripemd_init(struct AVRIPEMD* context, int bits); + +/** + * Update hash value. + * + * @param context hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_ripemd_update(struct AVRIPEMD* context, const uint8_t* data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_ripemd_final(struct AVRIPEMD* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_RIPEMD_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/samplefmt.h b/deps/ffmpeg/macos/include/libavutil/samplefmt.h new file mode 100644 index 0000000..43a57a4 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/samplefmt.h @@ -0,0 +1,269 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_SAMPLEFMT_H +#define AVUTIL_SAMPLEFMT_H + +#include + +/** + * @addtogroup lavu_audio + * @{ + * + * @defgroup lavu_sampfmts Audio sample formats + * + * Audio sample format enumeration and related convenience functions. + * @{ + */ + +/** + * Audio sample formats + * + * - The data described by the sample format is always in native-endian order. + * Sample values can be expressed by native C types, hence the lack of a signed + * 24-bit sample format even though it is a common raw audio data format. + * + * - The floating-point formats are based on full volume being in the range + * [-1.0, 1.0]. Any values outside this range are beyond full volume level. + * + * - The data layout as used in av_samples_fill_arrays() and elsewhere in FFmpeg + * (such as AVFrame in libavcodec) is as follows: + * + * @par + * For planar sample formats, each audio channel is in a separate data plane, + * and linesize is the buffer size, in bytes, for a single plane. All data + * planes must be the same size. For packed sample formats, only the first data + * plane is used, and samples for each channel are interleaved. In this case, + * linesize is the buffer size, in bytes, for the 1 plane. + * + */ +enum AVSampleFormat { + AV_SAMPLE_FMT_NONE = -1, + AV_SAMPLE_FMT_U8, ///< unsigned 8 bits + AV_SAMPLE_FMT_S16, ///< signed 16 bits + AV_SAMPLE_FMT_S32, ///< signed 32 bits + AV_SAMPLE_FMT_FLT, ///< float + AV_SAMPLE_FMT_DBL, ///< double + + AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar + AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar + AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar + AV_SAMPLE_FMT_FLTP, ///< float, planar + AV_SAMPLE_FMT_DBLP, ///< double, planar + AV_SAMPLE_FMT_S64, ///< signed 64 bits + AV_SAMPLE_FMT_S64P, ///< signed 64 bits, planar + + AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically +}; + +/** + * Return the name of sample_fmt, or NULL if sample_fmt is not + * recognized. + */ +const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt); + +/** + * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE + * on error. + */ +enum AVSampleFormat av_get_sample_fmt(const char *name); + +/** + * Return the planar<->packed alternative form of the given sample format, or + * AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the + * requested planar/packed format, the format returned is the same as the + * input. + */ +enum AVSampleFormat av_get_alt_sample_fmt(enum AVSampleFormat sample_fmt, int planar); + +/** + * Get the packed alternative form of the given sample format. + * + * If the passed sample_fmt is already in packed format, the format returned is + * the same as the input. + * + * @return the packed alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + */ +enum AVSampleFormat av_get_packed_sample_fmt(enum AVSampleFormat sample_fmt); + +/** + * Get the planar alternative form of the given sample format. + * + * If the passed sample_fmt is already in planar format, the format returned is + * the same as the input. + * + * @return the planar alternative form of the given sample format or + AV_SAMPLE_FMT_NONE on error. + */ +enum AVSampleFormat av_get_planar_sample_fmt(enum AVSampleFormat sample_fmt); + +/** + * Generate a string corresponding to the sample format with + * sample_fmt, or a header if sample_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param sample_fmt the number of the sample format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + * @return the pointer to the filled buffer or NULL if sample_fmt is + * unknown or in case of other errors + */ +char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt); + +/** + * Return number of bytes per sample. + * + * @param sample_fmt the sample format + * @return number of bytes per sample or zero if unknown for the given + * sample format + */ +int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt); + +/** + * Check if the sample format is planar. + * + * @param sample_fmt the sample format to inspect + * @return 1 if the sample format is planar, 0 if it is interleaved + */ +int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt); + +/** + * Get the required buffer size for the given audio parameters. + * + * @param[out] linesize calculated linesize, may be NULL + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return required buffer size, or negative error code on failure + */ +int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * @} + * + * @defgroup lavu_sampmanip Samples manipulation + * + * Functions that manipulate audio samples + * @{ + */ + +/** + * Fill plane data pointers and linesize for samples with sample + * format sample_fmt. + * + * The audio_data array is filled with the pointers to the samples data planes: + * for planar, set the start point of each channel's data within the buffer, + * for packed, set the start point of the entire buffer only. + * + * The value pointed to by linesize is set to the aligned size of each + * channel's data buffer for planar layout, or to the aligned size of the + * buffer for all channels for packed layout. + * + * The buffer in buf must be big enough to contain all the samples + * (use av_samples_get_buffer_size() to compute its minimum size), + * otherwise the audio_data pointers will point to invalid data. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize calculated linesize, may be NULL + * @param buf the pointer to a buffer containing the samples + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return minimum size in bytes required for the buffer on success, + * or a negative error code on failure + */ +int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, + const uint8_t *buf, + int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * Allocate a samples buffer for nb_samples samples, and fill data pointers and + * linesize accordingly. + * The allocated samples buffer can be freed by using av_freep(&audio_data[0]) + * Allocated data will be initialized to silence. + * + * @see enum AVSampleFormat + * The documentation for AVSampleFormat describes the data layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize aligned size for audio buffer(s), may be NULL + * @param nb_channels number of audio channels + * @param nb_samples number of samples per channel + * @param sample_fmt the sample format + * @param align buffer size alignment (0 = default, 1 = no alignment) + * @return >=0 on success or a negative error code on failure + * @todo return the size of the allocated buffer in case of success at the next bump + * @see av_samples_fill_arrays() + * @see av_samples_alloc_array_and_samples() + */ +int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, + int nb_samples, enum AVSampleFormat sample_fmt, int align); + +/** + * Allocate a data pointers array, samples buffer for nb_samples + * samples, and fill data pointers and linesize accordingly. + * + * This is the same as av_samples_alloc(), but also allocates the data + * pointers array. + * + * @see av_samples_alloc() + */ +int av_samples_alloc_array_and_samples(uint8_t ***audio_data, int *linesize, int nb_channels, + int nb_samples, enum AVSampleFormat sample_fmt, int align); + +/** + * Copy samples from src to dst. + * + * @param dst destination array of pointers to data planes + * @param src source array of pointers to data planes + * @param dst_offset offset in samples at which the data will be written to dst + * @param src_offset offset in samples at which the data will be read from src + * @param nb_samples number of samples to be copied + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + */ +int av_samples_copy(uint8_t * const *dst, uint8_t * const *src, int dst_offset, + int src_offset, int nb_samples, int nb_channels, + enum AVSampleFormat sample_fmt); + +/** + * Fill an audio buffer with silence. + * + * @param audio_data array of pointers to data planes + * @param offset offset in samples at which to start filling + * @param nb_samples number of samples to fill + * @param nb_channels number of audio channels + * @param sample_fmt audio sample format + */ +int av_samples_set_silence(uint8_t * const *audio_data, int offset, int nb_samples, + int nb_channels, enum AVSampleFormat sample_fmt); + +/** + * @} + * @} + */ +#endif /* AVUTIL_SAMPLEFMT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/sha.h b/deps/ffmpeg/macos/include/libavutil/sha.h new file mode 100644 index 0000000..2e1220a --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/sha.h @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_sha + * Public header for SHA-1 & SHA-256 hash function implementations. + */ + +#ifndef AVUTIL_SHA_H +#define AVUTIL_SHA_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_sha SHA + * @ingroup lavu_hash + * SHA-1 and SHA-256 (Secure Hash Algorithm) hash function implementations. + * + * This module supports the following SHA hash functions: + * + * - SHA-1: 160 bits + * - SHA-224: 224 bits, as a variant of SHA-2 + * - SHA-256: 256 bits, as a variant of SHA-2 + * + * @see For SHA-384, SHA-512, and variants thereof, see @ref lavu_sha512. + * + * @{ + */ + +extern const int av_sha_size; + +struct AVSHA; + +/** + * Allocate an AVSHA context. + */ +struct AVSHA *av_sha_alloc(void); + +/** + * Initialize SHA-1 or SHA-2 hashing. + * + * @param context pointer to the function context (of size av_sha_size) + * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_sha_init(struct AVSHA* context, int bits); + +/** + * Update hash value. + * + * @param ctx hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_sha_update(struct AVSHA *ctx, const uint8_t *data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_sha_final(struct AVSHA* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_SHA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/sha512.h b/deps/ffmpeg/macos/include/libavutil/sha512.h new file mode 100644 index 0000000..a4a3f23 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/sha512.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * Copyright (C) 2013 James Almer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_sha512 + * Public header for SHA-512 implementation. + */ + +#ifndef AVUTIL_SHA512_H +#define AVUTIL_SHA512_H + +#include +#include + +#include "attributes.h" + +/** + * @defgroup lavu_sha512 SHA-512 + * @ingroup lavu_hash + * SHA-512 (Secure Hash Algorithm) hash function implementations. + * + * This module supports the following SHA-2 hash functions: + * + * - SHA-512/224: 224 bits + * - SHA-512/256: 256 bits + * - SHA-384: 384 bits + * - SHA-512: 512 bits + * + * @see For SHA-1, SHA-256, and variants thereof, see @ref lavu_sha. + * + * @{ + */ + +extern const int av_sha512_size; + +struct AVSHA512; + +/** + * Allocate an AVSHA512 context. + */ +struct AVSHA512 *av_sha512_alloc(void); + +/** + * Initialize SHA-2 512 hashing. + * + * @param context pointer to the function context (of size av_sha512_size) + * @param bits number of bits in digest (224, 256, 384 or 512 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_sha512_init(struct AVSHA512* context, int bits); + +/** + * Update hash value. + * + * @param context hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_sha512_update(struct AVSHA512* context, const uint8_t* data, size_t len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_sha512_final(struct AVSHA512* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_SHA512_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/spherical.h b/deps/ffmpeg/macos/include/libavutil/spherical.h new file mode 100644 index 0000000..2e90f77 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/spherical.h @@ -0,0 +1,243 @@ +/* + * Copyright (c) 2016 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_spherical + * Spherical video + */ + +#ifndef AVUTIL_SPHERICAL_H +#define AVUTIL_SPHERICAL_H + +#include +#include + +/** + * @defgroup lavu_video_spherical Spherical video mapping + * @ingroup lavu_video + * + * A spherical video file contains surfaces that need to be mapped onto a + * sphere. Depending on how the frame was converted, a different distortion + * transformation or surface recomposition function needs to be applied before + * the video should be mapped and displayed. + * @{ + */ + +/** + * Projection of the video surface(s) on a sphere. + */ +enum AVSphericalProjection { + /** + * Video represents a sphere mapped on a flat surface using + * equirectangular projection. + */ + AV_SPHERICAL_EQUIRECTANGULAR, + + /** + * Video frame is split into 6 faces of a cube, and arranged on a + * 3x2 layout. Faces are oriented upwards for the front, left, right, + * and back faces. The up face is oriented so the top of the face is + * forwards and the down face is oriented so the top of the face is + * to the back. + */ + AV_SPHERICAL_CUBEMAP, + + /** + * Video represents a portion of a sphere mapped on a flat surface + * using equirectangular projection. The @ref bounding fields indicate + * the position of the current video in a larger surface. + */ + AV_SPHERICAL_EQUIRECTANGULAR_TILE, + + /** + * Video frame displays as a 180 degree equirectangular projection. + */ + AV_SPHERICAL_HALF_EQUIRECTANGULAR, + + /** + * Video frame displays on a flat, rectangular 2D surface. + */ + AV_SPHERICAL_RECTILINEAR, + + /** + * Fisheye projection (Apple). + * See: https://developer.apple.com/documentation/coremedia/cmprojectiontype/fisheye + */ + AV_SPHERICAL_FISHEYE, +}; + +/** + * This structure describes how to handle spherical videos, outlining + * information about projection, initial layout, and any other view modifier. + * + * @note The struct must be allocated with av_spherical_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVSphericalMapping { + /** + * Projection type. + */ + enum AVSphericalProjection projection; + + /** + * @name Initial orientation + * @{ + * There fields describe additional rotations applied to the sphere after + * the video frame is mapped onto it. The sphere is rotated around the + * viewer, who remains stationary. The order of transformation is always + * yaw, followed by pitch, and finally by roll. + * + * The coordinate system matches the one defined in OpenGL, where the + * forward vector (z) is coming out of screen, and it is equivalent to + * a rotation matrix of R = r_y(yaw) * r_x(pitch) * r_z(roll). + * + * A positive yaw rotates the portion of the sphere in front of the viewer + * toward their right. A positive pitch rotates the portion of the sphere + * in front of the viewer upwards. A positive roll tilts the portion of + * the sphere in front of the viewer to the viewer's right. + * + * These values are exported as 16.16 fixed point. + * + * See this equirectangular projection as example: + * + * @code{.unparsed} + * Yaw + * -180 0 180 + * 90 +-------------+-------------+ 180 + * | | | up + * P | | | y| forward + * i | ^ | | /z + * t 0 +-------------X-------------+ 0 Roll | / + * c | | | | / + * h | | | 0|/_____right + * | | | x + * -90 +-------------+-------------+ -180 + * + * X - the default camera center + * ^ - the default up vector + * @endcode + */ + int32_t yaw; ///< Rotation around the up vector [-180, 180]. + int32_t pitch; ///< Rotation around the right vector [-90, 90]. + int32_t roll; ///< Rotation around the forward vector [-180, 180]. + /** + * @} + */ + + /** + * @name Bounding rectangle + * @anchor bounding + * @{ + * These fields indicate the location of the current tile, and where + * it should be mapped relative to the original surface. They are + * exported as 0.32 fixed point, and can be converted to classic + * pixel values with av_spherical_bounds(). + * + * @code{.unparsed} + * +----------------+----------+ + * | |bound_top | + * | +--------+ | + * | bound_left |tile | | + * +<---------->| |<--->+bound_right + * | +--------+ | + * | | | + * | bound_bottom| | + * +----------------+----------+ + * @endcode + * + * If needed, the original video surface dimensions can be derived + * by adding the current stream or frame size to the related bounds, + * like in the following example: + * + * @code{c} + * original_width = tile->width + bound_left + bound_right; + * original_height = tile->height + bound_top + bound_bottom; + * @endcode + * + * @note These values are valid only for the tiled equirectangular + * projection type (@ref AV_SPHERICAL_EQUIRECTANGULAR_TILE), + * and should be ignored in all other cases. + */ + uint32_t bound_left; ///< Distance from the left edge + uint32_t bound_top; ///< Distance from the top edge + uint32_t bound_right; ///< Distance from the right edge + uint32_t bound_bottom; ///< Distance from the bottom edge + /** + * @} + */ + + /** + * Number of pixels to pad from the edge of each cube face. + * + * @note This value is valid for only for the cubemap projection type + * (@ref AV_SPHERICAL_CUBEMAP), and should be ignored in all other + * cases. + */ + uint32_t padding; +} AVSphericalMapping; + +/** + * Allocate a AVSphericalVideo structure and initialize its fields to default + * values. + * + * @return the newly allocated struct or NULL on failure + */ +AVSphericalMapping *av_spherical_alloc(size_t *size); + +/** + * Convert the @ref bounding fields from an AVSphericalVideo + * from 0.32 fixed point to pixels. + * + * @param map The AVSphericalVideo map to read bound values from. + * @param width Width of the current frame or stream. + * @param height Height of the current frame or stream. + * @param left Pixels from the left edge. + * @param top Pixels from the top edge. + * @param right Pixels from the right edge. + * @param bottom Pixels from the bottom edge. + */ +void av_spherical_tile_bounds(const AVSphericalMapping *map, + size_t width, size_t height, + size_t *left, size_t *top, + size_t *right, size_t *bottom); + +/** + * Provide a human-readable name of a given AVSphericalProjection. + * + * @param projection The input AVSphericalProjection. + * + * @return The name of the AVSphericalProjection, or "unknown". + */ +const char *av_spherical_projection_name(enum AVSphericalProjection projection); + +/** + * Get the AVSphericalProjection form a human-readable name. + * + * @param name The input string. + * + * @return The AVSphericalProjection value, or -1 if not found. + */ +int av_spherical_from_name(const char *name); +/** + * @} + */ + +#endif /* AVUTIL_SPHERICAL_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/stereo3d.h b/deps/ffmpeg/macos/include/libavutil/stereo3d.h new file mode 100644 index 0000000..c0a4ab3 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/stereo3d.h @@ -0,0 +1,325 @@ +/* + * Copyright (c) 2013 Vittorio Giovara + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu_video_stereo3d + * Stereoscopic video + */ + +#ifndef AVUTIL_STEREO3D_H +#define AVUTIL_STEREO3D_H + +#include + +#include "frame.h" + +/** + * @defgroup lavu_video_stereo3d Stereo3D types and functions + * @ingroup lavu_video + * + * A stereoscopic video file consists in multiple views embedded in a single + * frame, usually describing two views of a scene. This file describes all + * possible codec-independent view arrangements. + * + * @{ + */ + +/** + * List of possible 3D Types + */ +enum AVStereo3DType { + /** + * Video is not stereoscopic (and metadata has to be there). + */ + AV_STEREO3D_2D, + + /** + * Views are next to each other. + * + * @code{.unparsed} + * LLLLRRRR + * LLLLRRRR + * LLLLRRRR + * ... + * @endcode + */ + AV_STEREO3D_SIDEBYSIDE, + + /** + * Views are on top of each other. + * + * @code{.unparsed} + * LLLLLLLL + * LLLLLLLL + * RRRRRRRR + * RRRRRRRR + * @endcode + */ + AV_STEREO3D_TOPBOTTOM, + + /** + * Views are alternated temporally. + * + * @code{.unparsed} + * frame0 frame1 frame2 ... + * LLLLLLLL RRRRRRRR LLLLLLLL + * LLLLLLLL RRRRRRRR LLLLLLLL + * LLLLLLLL RRRRRRRR LLLLLLLL + * ... ... ... + * @endcode + */ + AV_STEREO3D_FRAMESEQUENCE, + + /** + * Views are packed in a checkerboard-like structure per pixel. + * + * @code{.unparsed} + * LRLRLRLR + * RLRLRLRL + * LRLRLRLR + * ... + * @endcode + */ + AV_STEREO3D_CHECKERBOARD, + + /** + * Views are next to each other, but when upscaling + * apply a checkerboard pattern. + * + * @code{.unparsed} + * LLLLRRRR L L L L R R R R + * LLLLRRRR => L L L L R R R R + * LLLLRRRR L L L L R R R R + * LLLLRRRR L L L L R R R R + * @endcode + */ + AV_STEREO3D_SIDEBYSIDE_QUINCUNX, + + /** + * Views are packed per line, as if interlaced. + * + * @code{.unparsed} + * LLLLLLLL + * RRRRRRRR + * LLLLLLLL + * ... + * @endcode + */ + AV_STEREO3D_LINES, + + /** + * Views are packed per column. + * + * @code{.unparsed} + * LRLRLRLR + * LRLRLRLR + * LRLRLRLR + * ... + * @endcode + */ + AV_STEREO3D_COLUMNS, + + /** + * Video is stereoscopic but the packing is unspecified. + */ + AV_STEREO3D_UNSPEC, +}; + +/** + * List of possible view types. + */ +enum AVStereo3DView { + /** + * Frame contains two packed views. + */ + AV_STEREO3D_VIEW_PACKED, + + /** + * Frame contains only the left view. + */ + AV_STEREO3D_VIEW_LEFT, + + /** + * Frame contains only the right view. + */ + AV_STEREO3D_VIEW_RIGHT, + + /** + * Content is unspecified. + */ + AV_STEREO3D_VIEW_UNSPEC, +}; + +/** + * List of possible primary eyes. + */ +enum AVStereo3DPrimaryEye { + /** + * Neither eye. + */ + AV_PRIMARY_EYE_NONE, + + /** + * Left eye. + */ + AV_PRIMARY_EYE_LEFT, + + /** + * Right eye + */ + AV_PRIMARY_EYE_RIGHT, +}; + +/** + * Inverted views, Right/Bottom represents the left view. + */ +#define AV_STEREO3D_FLAG_INVERT (1 << 0) + +/** + * Stereo 3D type: this structure describes how two videos are packed + * within a single video surface, with additional information as needed. + * + * @note The struct must be allocated with av_stereo3d_alloc() and + * its size is not a part of the public ABI. + */ +typedef struct AVStereo3D { + /** + * How views are packed within the video. + */ + enum AVStereo3DType type; + + /** + * Additional information about the frame packing. + */ + int flags; + + /** + * Determines which views are packed. + */ + enum AVStereo3DView view; + + /** + * Which eye is the primary eye when rendering in 2D. + */ + enum AVStereo3DPrimaryEye primary_eye; + + /** + * The distance between the centres of the lenses of the camera system, + * in micrometers. Zero if unset. + */ + uint32_t baseline; + + /** + * Relative shift of the left and right images, which changes the zero parallax plane. + * Range is -1.0 to 1.0. Zero if unset. + */ + AVRational horizontal_disparity_adjustment; + + /** + * Horizontal field of view, in degrees. Zero if unset. + */ + AVRational horizontal_field_of_view; +} AVStereo3D; + +/** + * Allocate an AVStereo3D structure and set its fields to default values. + * The resulting struct can be freed using av_freep(). + * + * @return An AVStereo3D filled with default values or NULL on failure. + */ +AVStereo3D *av_stereo3d_alloc(void); + +/** + * Allocate an AVStereo3D structure and set its fields to default values. + * The resulting struct can be freed using av_freep(). + * + * @return An AVStereo3D filled with default values or NULL on failure. + */ +AVStereo3D *av_stereo3d_alloc_size(size_t *size); + +/** + * Allocate a complete AVFrameSideData and add it to the frame. + * + * @param frame The frame which side data is added to. + * + * @return The AVStereo3D structure to be filled by caller. + */ +AVStereo3D *av_stereo3d_create_side_data(AVFrame *frame); + +/** + * Provide a human-readable name of a given stereo3d type. + * + * @param type The input stereo3d type value. + * + * @return The name of the stereo3d value, or "unknown". + */ +const char *av_stereo3d_type_name(unsigned int type); + +/** + * Get the AVStereo3DType form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DType value, or -1 if not found. + */ +int av_stereo3d_from_name(const char *name); + +/** + * Provide a human-readable name of a given stereo3d view. + * + * @param type The input stereo3d view value. + * + * @return The name of the stereo3d view value, or "unknown". + */ +const char *av_stereo3d_view_name(unsigned int view); + +/** + * Get the AVStereo3DView form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DView value, or -1 if not found. + */ +int av_stereo3d_view_from_name(const char *name); + +/** + * Provide a human-readable name of a given stereo3d primary eye. + * + * @param type The input stereo3d primary eye value. + * + * @return The name of the stereo3d primary eye value, or "unknown". + */ +const char *av_stereo3d_primary_eye_name(unsigned int eye); + +/** + * Get the AVStereo3DPrimaryEye form a human-readable name. + * + * @param name The input string. + * + * @return The AVStereo3DPrimaryEye value, or -1 if not found. + */ +int av_stereo3d_primary_eye_from_name(const char *name); + +/** + * @} + */ + +#endif /* AVUTIL_STEREO3D_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/tea.h b/deps/ffmpeg/macos/include/libavutil/tea.h new file mode 100644 index 0000000..dd929bd --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/tea.h @@ -0,0 +1,71 @@ +/* + * A 32-bit implementation of the TEA algorithm + * Copyright (c) 2015 Vesselin Bontchev + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TEA_H +#define AVUTIL_TEA_H + +#include + +/** + * @file + * @brief Public header for libavutil TEA algorithm + * @defgroup lavu_tea TEA + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_tea_size; + +struct AVTEA; + +/** + * Allocate an AVTEA context + * To free the struct: av_free(ptr) + */ +struct AVTEA *av_tea_alloc(void); + +/** + * Initialize an AVTEA context. + * + * @param ctx an AVTEA context + * @param key a key of 16 bytes used for encryption/decryption + * @param rounds the number of rounds in TEA (64 is the "standard") + */ +void av_tea_init(struct AVTEA *ctx, const uint8_t key[16], int rounds); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * + * @param ctx an AVTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_tea_crypt(struct AVTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_TEA_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/threadmessage.h b/deps/ffmpeg/macos/include/libavutil/threadmessage.h new file mode 100644 index 0000000..42ce655 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/threadmessage.h @@ -0,0 +1,115 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with FFmpeg; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_THREADMESSAGE_H +#define AVUTIL_THREADMESSAGE_H + +typedef struct AVThreadMessageQueue AVThreadMessageQueue; + +typedef enum AVThreadMessageFlags { + + /** + * Perform non-blocking operation. + * If this flag is set, send and recv operations are non-blocking and + * return AVERROR(EAGAIN) immediately if they can not proceed. + */ + AV_THREAD_MESSAGE_NONBLOCK = 1, + +} AVThreadMessageFlags; + +/** + * Allocate a new message queue. + * + * @param mq pointer to the message queue + * @param nelem maximum number of elements in the queue + * @param elsize size of each element in the queue + * @return >=0 for success; <0 for error, in particular AVERROR(ENOSYS) if + * lavu was built without thread support + */ +int av_thread_message_queue_alloc(AVThreadMessageQueue **mq, + unsigned nelem, + unsigned elsize); + +/** + * Free a message queue. + * + * The message queue must no longer be in use by another thread. + */ +void av_thread_message_queue_free(AVThreadMessageQueue **mq); + +/** + * Send a message on the queue. + */ +int av_thread_message_queue_send(AVThreadMessageQueue *mq, + void *msg, + unsigned flags); + +/** + * Receive a message from the queue. + */ +int av_thread_message_queue_recv(AVThreadMessageQueue *mq, + void *msg, + unsigned flags); + +/** + * Set the sending error code. + * + * If the error code is set to non-zero, av_thread_message_queue_send() will + * return it immediately. Conventional values, such as AVERROR_EOF or + * AVERROR(EAGAIN), can be used to cause the sending thread to stop or + * suspend its operation. + */ +void av_thread_message_queue_set_err_send(AVThreadMessageQueue *mq, + int err); + +/** + * Set the receiving error code. + * + * If the error code is set to non-zero, av_thread_message_queue_recv() will + * return it immediately when there are no longer available messages. + * Conventional values, such as AVERROR_EOF or AVERROR(EAGAIN), can be used + * to cause the receiving thread to stop or suspend its operation. + */ +void av_thread_message_queue_set_err_recv(AVThreadMessageQueue *mq, + int err); + +/** + * Set the optional free message callback function which will be called if an + * operation is removing messages from the queue. + */ +void av_thread_message_queue_set_free_func(AVThreadMessageQueue *mq, + void (*free_func)(void *msg)); + +/** + * Return the current number of messages in the queue. + * + * @return the current number of messages or AVERROR(ENOSYS) if lavu was built + * without thread support + */ +int av_thread_message_queue_nb_elems(AVThreadMessageQueue *mq); + +/** + * Flush the message queue + * + * This function is mostly equivalent to reading and free-ing every message + * except that it will be done in a single operation (no lock/unlock between + * reads). + */ +void av_thread_message_flush(AVThreadMessageQueue *mq); + +#endif /* AVUTIL_THREADMESSAGE_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/time.h b/deps/ffmpeg/macos/include/libavutil/time.h new file mode 100644 index 0000000..dc169b0 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/time.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2000-2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TIME_H +#define AVUTIL_TIME_H + +#include + +/** + * Get the current time in microseconds. + */ +int64_t av_gettime(void); + +/** + * Get the current time in microseconds since some unspecified starting point. + * On platforms that support it, the time comes from a monotonic clock + * This property makes this time source ideal for measuring relative time. + * The returned values may not be monotonic on platforms where a monotonic + * clock is not available. + */ +int64_t av_gettime_relative(void); + +/** + * Indicates with a boolean result if the av_gettime_relative() time source + * is monotonic. + */ +int av_gettime_relative_is_monotonic(void); + +/** + * Sleep for a period of time. Although the duration is expressed in + * microseconds, the actual delay may be rounded to the precision of the + * system timer. + * + * @param usec Number of microseconds to sleep. + * @return zero on success or (negative) error code. + */ +int av_usleep(unsigned usec); + +#endif /* AVUTIL_TIME_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/timecode.h b/deps/ffmpeg/macos/include/libavutil/timecode.h new file mode 100644 index 0000000..fe0fc83 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/timecode.h @@ -0,0 +1,199 @@ +/* + * Copyright (c) 2006 Smartjog S.A.S, Baptiste Coudurier + * Copyright (c) 2011-2012 Smartjog S.A.S, Clément Bœsch + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Timecode helpers header + */ + +#ifndef AVUTIL_TIMECODE_H +#define AVUTIL_TIMECODE_H + +#include +#include "rational.h" + +#define AV_TIMECODE_STR_SIZE 23 + +enum AVTimecodeFlag { + AV_TIMECODE_FLAG_DROPFRAME = 1<<0, ///< timecode is drop frame + AV_TIMECODE_FLAG_24HOURSMAX = 1<<1, ///< timecode wraps after 24 hours + AV_TIMECODE_FLAG_ALLOWNEGATIVE = 1<<2, ///< negative time values are allowed +}; + +typedef struct { + int start; ///< timecode frame start (first base frame number) + uint32_t flags; ///< flags such as drop frame, +24 hours support, ... + AVRational rate; ///< frame rate in rational form + unsigned fps; ///< frame per second; must be consistent with the rate field +} AVTimecode; + +/** + * Adjust frame number for NTSC drop frame time code. + * + * @param framenum frame number to adjust + * @param fps frame per second, multiples of 30 + * @return adjusted frame number + * @warning adjustment is only valid for multiples of NTSC 29.97 + */ +int av_timecode_adjust_ntsc_framenum2(int framenum, int fps); + +/** + * Convert frame number to SMPTE 12M binary representation. + * + * @param tc timecode data correctly initialized + * @param framenum frame number + * @return the SMPTE binary representation + * + * See SMPTE ST 314M-2005 Sec 4.4.2.2.1 "Time code pack (TC)" + * the format description as follows: + * bits 0-5: hours, in BCD(6bits) + * bits 6: BGF1 + * bits 7: BGF2 (NTSC) or FIELD (PAL) + * bits 8-14: minutes, in BCD(7bits) + * bits 15: BGF0 (NTSC) or BGF2 (PAL) + * bits 16-22: seconds, in BCD(7bits) + * bits 23: FIELD (NTSC) or BGF0 (PAL) + * bits 24-29: frames, in BCD(6bits) + * bits 30: drop frame flag (0: non drop, 1: drop) + * bits 31: color frame flag (0: unsync mode, 1: sync mode) + * @note BCD numbers (6 or 7 bits): 4 or 5 lower bits for units, 2 higher bits for tens. + * @note Frame number adjustment is automatically done in case of drop timecode, + * you do NOT have to call av_timecode_adjust_ntsc_framenum2(). + * @note The frame number is relative to tc->start. + * @note Color frame (CF) and binary group flags (BGF) bits are set to zero. + */ +uint32_t av_timecode_get_smpte_from_framenum(const AVTimecode *tc, int framenum); + +/** + * Convert sei info to SMPTE 12M binary representation. + * + * @param rate frame rate in rational form + * @param drop drop flag + * @param hh hour + * @param mm minute + * @param ss second + * @param ff frame number + * @return the SMPTE binary representation + */ +uint32_t av_timecode_get_smpte(AVRational rate, int drop, int hh, int mm, int ss, int ff); + +/** + * Load timecode string in buf. + * + * @param tc timecode data correctly initialized + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param framenum frame number + * @return the buf parameter + * + * @note Timecode representation can be a negative timecode and have more than + * 24 hours, but will only be honored if the flags are correctly set. + * @note The frame number is relative to tc->start. + */ +char *av_timecode_make_string(const AVTimecode *tc, char *buf, int framenum); + +/** + * Get the timecode string from the SMPTE timecode format. + * + * In contrast to av_timecode_make_smpte_tc_string this function supports 50/60 + * fps timecodes by using the field bit. + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param rate frame rate of the timecode + * @param tcsmpte the 32-bit SMPTE timecode + * @param prevent_df prevent the use of a drop flag when it is known the DF bit + * is arbitrary + * @param skip_field prevent the use of a field flag when it is known the field + * bit is arbitrary (e.g. because it is used as PC flag) + * @return the buf parameter + */ +char *av_timecode_make_smpte_tc_string2(char *buf, AVRational rate, uint32_t tcsmpte, int prevent_df, int skip_field); + +/** + * Get the timecode string from the SMPTE timecode format. + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param tcsmpte the 32-bit SMPTE timecode + * @param prevent_df prevent the use of a drop flag when it is known the DF bit + * is arbitrary + * @return the buf parameter + */ +char *av_timecode_make_smpte_tc_string(char *buf, uint32_t tcsmpte, int prevent_df); + +/** + * Get the timecode string from the 25-bit timecode format (MPEG GOP format). + * + * @param buf destination buffer, must be at least AV_TIMECODE_STR_SIZE long + * @param tc25bit the 25-bits timecode + * @return the buf parameter + */ +char *av_timecode_make_mpeg_tc_string(char *buf, uint32_t tc25bit); + +/** + * Init a timecode struct with the passed parameters. + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param flags miscellaneous flags such as drop frame, +24 hours, ... + * (see AVTimecodeFlag) + * @param frame_start the first frame number + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log) + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init(AVTimecode *tc, AVRational rate, int flags, int frame_start, void *log_ctx); + +/** + * Init a timecode struct from the passed timecode components. + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param flags miscellaneous flags such as drop frame, +24 hours, ... + * (see AVTimecodeFlag) + * @param hh hours + * @param mm minutes + * @param ss seconds + * @param ff frames + * @param log_ctx a pointer to an arbitrary struct of which the first field + * is a pointer to an AVClass struct (used for av_log) + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init_from_components(AVTimecode *tc, AVRational rate, int flags, int hh, int mm, int ss, int ff, void *log_ctx); + +/** + * Parse timecode representation (hh:mm:ss[:;.]ff). + * + * @param tc pointer to an allocated AVTimecode + * @param rate frame rate in rational form + * @param str timecode string which will determine the frame start + * @param log_ctx a pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct (used for av_log). + * @return 0 on success, AVERROR otherwise + */ +int av_timecode_init_from_string(AVTimecode *tc, AVRational rate, const char *str, void *log_ctx); + +/** + * Check if the timecode feature is available for the given frame rate + * + * @return 0 if supported, <0 otherwise + */ +int av_timecode_check_frame_rate(AVRational rate); + +#endif /* AVUTIL_TIMECODE_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/timestamp.h b/deps/ffmpeg/macos/include/libavutil/timestamp.h new file mode 100644 index 0000000..fa53a46 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/timestamp.h @@ -0,0 +1,85 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * timestamp utils, mostly useful for debugging/logging purposes + */ + +#ifndef AVUTIL_TIMESTAMP_H +#define AVUTIL_TIMESTAMP_H + +#include "avutil.h" + +#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS) && !defined(PRId64) +#error missing -D__STDC_FORMAT_MACROS / #define __STDC_FORMAT_MACROS +#endif + +#define AV_TS_MAX_STRING_SIZE 32 + +/** + * Fill the provided buffer with a string containing a timestamp + * representation. + * + * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE + * @param ts the timestamp to represent + * @return the buffer in input + */ +static inline char *av_ts_make_string(char *buf, int64_t ts) +{ + if (ts == AV_NOPTS_VALUE) snprintf(buf, AV_TS_MAX_STRING_SIZE, "NOPTS"); + else snprintf(buf, AV_TS_MAX_STRING_SIZE, "%" PRId64, ts); + return buf; +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_ts2str(ts) av_ts_make_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts) + +/** + * Fill the provided buffer with a string containing a timestamp time + * representation. + * + * @param buf a buffer with size in bytes of at least AV_TS_MAX_STRING_SIZE + * @param ts the timestamp to represent + * @param tb the timebase of the timestamp + * @return the buffer in input + */ +char *av_ts_make_time_string2(char *buf, int64_t ts, AVRational tb); + +/** + * Fill the provided buffer with a string containing a timestamp + * representation. + * + * @see av_ts_make_time_string2 + */ +static inline char *av_ts_make_time_string(char *buf, int64_t ts, + const AVRational *tb) +{ + return av_ts_make_time_string2(buf, ts, *tb); +} + +/** + * Convenience macro, the return value should be used only directly in + * function arguments but never stand-alone. + */ +#define av_ts2timestr(ts, tb) av_ts_make_time_string((char[AV_TS_MAX_STRING_SIZE]){0}, ts, tb) + +#endif /* AVUTIL_TIMESTAMP_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/tree.h b/deps/ffmpeg/macos/include/libavutil/tree.h new file mode 100644 index 0000000..bbb8fbb --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/tree.h @@ -0,0 +1,137 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * A tree container. + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_TREE_H +#define AVUTIL_TREE_H + +#include "attributes.h" + +/** + * @addtogroup lavu_tree AVTree + * @ingroup lavu_data + * + * Low-complexity tree container + * + * Insertion, removal, finding equal, largest which is smaller than and + * smallest which is larger than, all have O(log n) worst-case complexity. + * @{ + */ + + +struct AVTreeNode; +extern const int av_tree_node_size; + +/** + * Allocate an AVTreeNode. + */ +struct AVTreeNode *av_tree_node_alloc(void); + +/** + * Find an element. + * @param root a pointer to the root node of the tree + * @param next If next is not NULL, then next[0] will contain the previous + * element and next[1] the next element. If either does not exist, + * then the corresponding entry in next is unchanged. + * @param cmp compare function used to compare elements in the tree, + * API identical to that of Standard C's qsort + * It is guaranteed that the first and only the first argument to cmp() + * will be the key parameter to av_tree_find(), thus it could if the + * user wants, be a different type (like an opaque context). + * @return An element with cmp(key, elem) == 0 or NULL if no such element + * exists in the tree. + */ +void *av_tree_find(const struct AVTreeNode *root, void *key, + int (*cmp)(const void *key, const void *b), void *next[2]); + +/** + * Insert or remove an element. + * + * If *next is NULL, then the supplied element will be removed if it exists. + * If *next is non-NULL, then the supplied element will be inserted, unless + * it already exists in the tree. + * + * @param rootp A pointer to a pointer to the root node of the tree; note that + * the root node can change during insertions, this is required + * to keep the tree balanced. + * @param key pointer to the element key to insert in the tree + * @param next Used to allocate and free AVTreeNodes. For insertion the user + * must set it to an allocated and zeroed object of at least + * av_tree_node_size bytes size. av_tree_insert() will set it to + * NULL if it has been consumed. + * For deleting elements *next is set to NULL by the user and + * av_tree_insert() will set it to the AVTreeNode which was + * used for the removed element. + * This allows the use of flat arrays, which have + * lower overhead compared to many malloced elements. + * You might want to define a function like: + * @code + * void *tree_insert(struct AVTreeNode **rootp, void *key, + * int (*cmp)(void *key, const void *b), + * AVTreeNode **next) + * { + * if (!*next) + * *next = av_mallocz(av_tree_node_size); + * return av_tree_insert(rootp, key, cmp, next); + * } + * void *tree_remove(struct AVTreeNode **rootp, void *key, + * int (*cmp)(void *key, const void *b, AVTreeNode **next)) + * { + * av_freep(next); + * return av_tree_insert(rootp, key, cmp, next); + * } + * @endcode + * @param cmp compare function used to compare elements in the tree, API identical + * to that of Standard C's qsort + * @return If no insertion happened, the found element; if an insertion or + * removal happened, then either key or NULL will be returned. + * Which one it is depends on the tree state and the implementation. You + * should make no assumptions that it's one or the other in the code. + */ +void *av_tree_insert(struct AVTreeNode **rootp, void *key, + int (*cmp)(const void *key, const void *b), + struct AVTreeNode **next); + +void av_tree_destroy(struct AVTreeNode *t); + +/** + * Apply enu(opaque, &elem) to all the elements in the tree in a given range. + * + * @param cmp a comparison function that returns < 0 for an element below the + * range, > 0 for an element above the range and == 0 for an + * element inside the range + * + * @note The cmp function should use the same ordering used to construct the + * tree. + */ +void av_tree_enumerate(struct AVTreeNode *t, void *opaque, + int (*cmp)(void *opaque, void *elem), + int (*enu)(void *opaque, void *elem)); + +/** + * @} + */ + +#endif /* AVUTIL_TREE_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/twofish.h b/deps/ffmpeg/macos/include/libavutil/twofish.h new file mode 100644 index 0000000..67f359e --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/twofish.h @@ -0,0 +1,70 @@ +/* + * An implementation of the TwoFish algorithm + * Copyright (c) 2015 Supraja Meedinti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TWOFISH_H +#define AVUTIL_TWOFISH_H + +#include + + +/** + * @file + * @brief Public header for libavutil TWOFISH algorithm + * @defgroup lavu_twofish TWOFISH + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_twofish_size; + +struct AVTWOFISH; + +/** + * Allocate an AVTWOFISH context + * To free the struct: av_free(ptr) + */ +struct AVTWOFISH *av_twofish_alloc(void); + +/** + * Initialize an AVTWOFISH context. + * + * @param ctx an AVTWOFISH context + * @param key a key of size ranging from 1 to 32 bytes used for encryption/decryption + * @param key_bits number of keybits: 128, 192, 256 If less than the required, padded with zeroes to nearest valid value; return value is 0 if key_bits is 128/192/256, -1 if less than 0, 1 otherwise + */ +int av_twofish_init(struct AVTWOFISH *ctx, const uint8_t *key, int key_bits); + +/** + * Encrypt or decrypt a buffer using a previously initialized context + * + * @param ctx an AVTWOFISH context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 16 byte blocks + * @param iv initialization vector for CBC mode, NULL for ECB mode + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_twofish_crypt(struct AVTWOFISH *ctx, uint8_t *dst, const uint8_t *src, int count, uint8_t* iv, int decrypt); + +/** + * @} + */ +#endif /* AVUTIL_TWOFISH_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/tx.h b/deps/ffmpeg/macos/include/libavutil/tx.h new file mode 100644 index 0000000..4696988 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/tx.h @@ -0,0 +1,210 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_TX_H +#define AVUTIL_TX_H + +#include +#include + +typedef struct AVTXContext AVTXContext; + +typedef struct AVComplexFloat { + float re, im; +} AVComplexFloat; + +typedef struct AVComplexDouble { + double re, im; +} AVComplexDouble; + +typedef struct AVComplexInt32 { + int32_t re, im; +} AVComplexInt32; + +enum AVTXType { + /** + * Standard complex to complex FFT with sample data type of AVComplexFloat, + * AVComplexDouble or AVComplexInt32, for each respective variant. + * + * Output is not 1/len normalized. Scaling currently unsupported. + * The stride parameter must be set to the size of a single sample in bytes. + */ + AV_TX_FLOAT_FFT = 0, + AV_TX_DOUBLE_FFT = 2, + AV_TX_INT32_FFT = 4, + + /** + * Standard MDCT with a sample data type of float, double or int32_t, + * respecively. For the float and int32 variants, the scale type is + * 'float', while for the double variant, it's 'double'. + * If scale is NULL, 1.0 will be used as a default. + * + * Length is the frame size, not the window size (which is 2x frame). + * For forward transforms, the stride specifies the spacing between each + * sample in the output array in bytes. The input must be a flat array. + * + * For inverse transforms, the stride specifies the spacing between each + * sample in the input array in bytes. The output must be a flat array. + * + * NOTE: the inverse transform is half-length, meaning the output will not + * contain redundant data. This is what most codecs work with. To do a full + * inverse transform, set the AV_TX_FULL_IMDCT flag on init. + */ + AV_TX_FLOAT_MDCT = 1, + AV_TX_DOUBLE_MDCT = 3, + AV_TX_INT32_MDCT = 5, + + /** + * Real to complex and complex to real DFTs. + * For the float and int32 variants, the scale type is 'float', while for + * the double variant, it's a 'double'. If scale is NULL, 1.0 will be used + * as a default. + * + * For forward transforms (R2C), stride must be the spacing between two + * samples in bytes. For inverse transforms, the stride must be set + * to the spacing between two complex values in bytes. + * + * The forward transform performs a real-to-complex DFT of N samples to + * N/2+1 complex values. + * + * The inverse transform performs a complex-to-real DFT of N/2+1 complex + * values to N real samples. The output is not normalized, but can be + * made so by setting the scale value to 1.0/len. + * NOTE: the inverse transform always overwrites the input. + */ + AV_TX_FLOAT_RDFT = 6, + AV_TX_DOUBLE_RDFT = 7, + AV_TX_INT32_RDFT = 8, + + /** + * Real to real (DCT) transforms. + * + * The forward transform is a DCT-II. + * The inverse transform is a DCT-III. + * + * The input array is always overwritten. DCT-III requires that the + * input be padded with 2 extra samples. Stride must be set to the + * spacing between two samples in bytes. + */ + AV_TX_FLOAT_DCT = 9, + AV_TX_DOUBLE_DCT = 10, + AV_TX_INT32_DCT = 11, + + /** + * Discrete Cosine Transform I + * + * The forward transform is a DCT-I. + * The inverse transform is a DCT-I multiplied by 2/(N + 1). + * + * The input array is always overwritten. + */ + AV_TX_FLOAT_DCT_I = 12, + AV_TX_DOUBLE_DCT_I = 13, + AV_TX_INT32_DCT_I = 14, + + /** + * Discrete Sine Transform I + * + * The forward transform is a DST-I. + * The inverse transform is a DST-I multiplied by 2/(N + 1). + * + * The input array is always overwritten. + */ + AV_TX_FLOAT_DST_I = 15, + AV_TX_DOUBLE_DST_I = 16, + AV_TX_INT32_DST_I = 17, + + /* Not part of the API, do not use */ + AV_TX_NB, +}; + +/** + * Function pointer to a function to perform the transform. + * + * @note Using a different context than the one allocated during av_tx_init() + * is not allowed. + * + * @param s the transform context + * @param out the output array + * @param in the input array + * @param stride the input or output stride in bytes + * + * The out and in arrays must be aligned to the maximum required by the CPU + * architecture unless the AV_TX_UNALIGNED flag was set in av_tx_init(). + * The stride must follow the constraints the transform type has specified. + */ +typedef void (*av_tx_fn)(AVTXContext *s, void *out, void *in, ptrdiff_t stride); + +/** + * Flags for av_tx_init() + */ +enum AVTXFlags { + /** + * Allows for in-place transformations, where input == output. + * May be unsupported or slower for some transform types. + */ + AV_TX_INPLACE = 1ULL << 0, + + /** + * Relaxes alignment requirement for the in and out arrays of av_tx_fn(). + * May be slower with certain transform types. + */ + AV_TX_UNALIGNED = 1ULL << 1, + + /** + * Performs a full inverse MDCT rather than leaving out samples that can be + * derived through symmetry. Requires an output array of 'len' floats, + * rather than the usual 'len/2' floats. + * Ignored for all transforms but inverse MDCTs. + */ + AV_TX_FULL_IMDCT = 1ULL << 2, + + /** + * Perform a real to half-complex RDFT. + * Only the real, or imaginary coefficients will + * be output, depending on the flag used. Only available for forward RDFTs. + * Output array must have enough space to hold N complex values + * (regular size for a real to complex transform). + */ + AV_TX_REAL_TO_REAL = 1ULL << 3, + AV_TX_REAL_TO_IMAGINARY = 1ULL << 4, +}; + +/** + * Initialize a transform context with the given configuration + * (i)MDCTs with an odd length are currently not supported. + * + * @param ctx the context to allocate, will be NULL on error + * @param tx pointer to the transform function pointer to set + * @param type type the type of transform + * @param inv whether to do an inverse or a forward transform + * @param len the size of the transform in samples + * @param scale pointer to the value to scale the output if supported by type + * @param flags a bitmask of AVTXFlags or 0 + * + * @return 0 on success, negative error code on failure + */ +int av_tx_init(AVTXContext **ctx, av_tx_fn *tx, enum AVTXType type, + int inv, int len, const void *scale, uint64_t flags); + +/** + * Frees a context and sets *ctx to NULL, does nothing when *ctx == NULL. + */ +void av_tx_uninit(AVTXContext **ctx); + +#endif /* AVUTIL_TX_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/uuid.h b/deps/ffmpeg/macos/include/libavutil/uuid.h new file mode 100644 index 0000000..748b7ed --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/uuid.h @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2022 Pierre-Anthony Lemieux + * Zane van Iperen + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * UUID parsing and serialization utilities. + * The library treats the UUID as an opaque sequence of 16 unsigned bytes, + * i.e. ignoring the internal layout of the UUID, which depends on the type + * of the UUID. + * + * @author Pierre-Anthony Lemieux + * @author Zane van Iperen + */ + +#ifndef AVUTIL_UUID_H +#define AVUTIL_UUID_H + +#include +#include + +#define AV_PRI_UUID \ + "%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-" \ + "%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" + +#define AV_PRI_URN_UUID \ + "urn:uuid:%02hhx%02hhx%02hhx%02hhx-%02hhx%02hhx-" \ + "%02hhx%02hhx-%02hhx%02hhx-%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx" + +/* AV_UUID_ARG() is used together with AV_PRI_UUID() or AV_PRI_URN_UUID + * to print UUIDs, e.g. + * av_log(NULL, AV_LOG_DEBUG, "UUID: " AV_PRI_UUID, AV_UUID_ARG(uuid)); + */ +#define AV_UUID_ARG(x) \ + (x)[ 0], (x)[ 1], (x)[ 2], (x)[ 3], \ + (x)[ 4], (x)[ 5], (x)[ 6], (x)[ 7], \ + (x)[ 8], (x)[ 9], (x)[10], (x)[11], \ + (x)[12], (x)[13], (x)[14], (x)[15] + +#define AV_UUID_LEN 16 + +/* Binary representation of a UUID */ +typedef uint8_t AVUUID[AV_UUID_LEN]; + +/** + * Parses a string representation of a UUID formatted according to IETF RFC 4122 + * into an AVUUID. The parsing is case-insensitive. The string must be 37 + * characters long, including the terminating NUL character. + * + * Example string representation: "2fceebd0-7017-433d-bafb-d073a7116696" + * + * @param[in] in String representation of a UUID, + * e.g. 2fceebd0-7017-433d-bafb-d073a7116696 + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_parse(const char *in, AVUUID uu); + +/** + * Parses a URN representation of a UUID, as specified at IETF RFC 4122, + * into an AVUUID. The parsing is case-insensitive. The string must be 46 + * characters long, including the terminating NUL character. + * + * Example string representation: "urn:uuid:2fceebd0-7017-433d-bafb-d073a7116696" + * + * @param[in] in URN UUID + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_urn_parse(const char *in, AVUUID uu); + +/** + * Parses a string representation of a UUID formatted according to IETF RFC 4122 + * into an AVUUID. The parsing is case-insensitive. + * + * @param[in] in_start Pointer to the first character of the string representation + * @param[in] in_end Pointer to the character after the last character of the + * string representation. That memory location is never + * accessed. It is an error if `in_end - in_start != 36`. + * @param[out] uu AVUUID + * @return A non-zero value in case of an error. + */ +int av_uuid_parse_range(const char *in_start, const char *in_end, AVUUID uu); + +/** + * Serializes a AVUUID into a string representation according to IETF RFC 4122. + * The string is lowercase and always 37 characters long, including the + * terminating NUL character. + * + * @param[in] uu AVUUID + * @param[out] out Pointer to an array of no less than 37 characters. + */ +void av_uuid_unparse(const AVUUID uu, char *out); + +/** + * Compares two UUIDs for equality. + * + * @param[in] uu1 AVUUID + * @param[in] uu2 AVUUID + * @return Nonzero if uu1 and uu2 are identical, 0 otherwise + */ +static inline int av_uuid_equal(const AVUUID uu1, const AVUUID uu2) +{ + return memcmp(uu1, uu2, AV_UUID_LEN) == 0; +} + +/** + * Copies the bytes of src into dest. + * + * @param[out] dest AVUUID + * @param[in] src AVUUID + */ +static inline void av_uuid_copy(AVUUID dest, const AVUUID src) +{ + memcpy(dest, src, AV_UUID_LEN); +} + +/** + * Sets a UUID to the nil UUID, i.e. a UUID with have all + * its 128 bits set to zero. + * + * @param[in,out] uu UUID to be set to the nil UUID + */ +static inline void av_uuid_nil(AVUUID uu) +{ + memset(uu, 0, AV_UUID_LEN); +} + +#endif /* AVUTIL_UUID_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/version.h b/deps/ffmpeg/macos/include/libavutil/version.h new file mode 100644 index 0000000..753f85b --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/version.h @@ -0,0 +1,124 @@ +/* + * copyright (c) 2003 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * @ingroup lavu + * Libavutil version macros + */ + +#ifndef AVUTIL_VERSION_H +#define AVUTIL_VERSION_H + +#include "macros.h" + +/** + * @addtogroup version_utils + * + * Useful to check and match library version in order to maintain + * backward compatibility. + * + * The FFmpeg libraries follow a versioning sheme very similar to + * Semantic Versioning (http://semver.org/) + * The difference is that the component called PATCH is called MICRO in FFmpeg + * and its value is reset to 100 instead of 0 to keep it above or equal to 100. + * Also we do not increase MICRO for every bugfix or change in git master. + * + * Prior to FFmpeg 3.2 point releases did not change any lib version number to + * avoid aliassing different git master checkouts. + * Starting with FFmpeg 3.2, the released library versions will occupy + * a separate MAJOR.MINOR that is not used on the master development branch. + * That is if we branch a release of master 55.10.123 we will bump to 55.11.100 + * for the release and master will continue at 55.12.100 after it. Each new + * point release will then bump the MICRO improving the usefulness of the lib + * versions. + * + * @{ + */ + +#define AV_VERSION_INT(a, b, c) ((a)<<16 | (b)<<8 | (c)) +#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c +#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) + +/** + * Extract version components from the full ::AV_VERSION_INT int as returned + * by functions like ::avformat_version() and ::avcodec_version() + */ +#define AV_VERSION_MAJOR(a) ((a) >> 16) +#define AV_VERSION_MINOR(a) (((a) & 0x00FF00) >> 8) +#define AV_VERSION_MICRO(a) ((a) & 0xFF) + +/** + * @} + */ + +/** + * @defgroup lavu_ver Version and Build diagnostics + * + * Macros and function useful to check at compiletime and at runtime + * which version of libavutil is in use. + * + * @{ + */ + +#define LIBAVUTIL_VERSION_MAJOR 59 +#define LIBAVUTIL_VERSION_MINOR 39 +#define LIBAVUTIL_VERSION_MICRO 100 + +#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT + +#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) + +/** + * @defgroup lavu_depr_guards Deprecation Guards + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + * + * @note, when bumping the major version it is recommended to manually + * disable each FF_API_* in its own commit instead of disabling them all + * at once through the bump. This improves the git bisect-ability of the change. + * + * @{ + */ + +#define FF_API_HDR_VIVID_THREE_SPLINE (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_FRAME_PKT (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_INTERLACED_FRAME (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_FRAME_KEY (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_PALETTE_HAS_CHANGED (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_VULKAN_CONTIGUOUS_MEMORY (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_H274_FILM_GRAIN_VCS (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_MOD_UINTP2 (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60) +#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60) + +/** + * @} + * @} + */ + +#endif /* AVUTIL_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/video_enc_params.h b/deps/ffmpeg/macos/include/libavutil/video_enc_params.h new file mode 100644 index 0000000..62265a5 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/video_enc_params.h @@ -0,0 +1,171 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_VIDEO_ENC_PARAMS_H +#define AVUTIL_VIDEO_ENC_PARAMS_H + +#include +#include + +#include "libavutil/avassert.h" +#include "libavutil/frame.h" + +enum AVVideoEncParamsType { + AV_VIDEO_ENC_PARAMS_NONE = -1, + /** + * VP9 stores: + * - per-frame base (luma AC) quantizer index, exported as AVVideoEncParams.qp + * - deltas for luma DC, chroma AC and chroma DC, exported in the + * corresponding entries in AVVideoEncParams.delta_qp + * - per-segment delta, exported as for each block as AVVideoBlockParams.delta_qp + * + * To compute the resulting quantizer index for a block: + * - for luma AC, add the base qp and the per-block delta_qp, saturating to + * unsigned 8-bit. + * - for luma DC and chroma AC/DC, add the corresponding + * AVVideoBlockParams.delta_qp to the luma AC index, again saturating to + * unsigned 8-bit. + */ + AV_VIDEO_ENC_PARAMS_VP9, + + /** + * H.264 stores: + * - in PPS (per-picture): + * * initial QP_Y (luma) value, exported as AVVideoEncParams.qp + * * delta(s) for chroma QP values (same for both, or each separately), + * exported as in the corresponding entries in AVVideoEncParams.delta_qp + * - per-slice QP delta, not exported directly, added to the per-MB value + * - per-MB delta; not exported directly; the final per-MB quantizer + * parameter - QP_Y - minus the value in AVVideoEncParams.qp is exported + * as AVVideoBlockParams.qp_delta. + */ + AV_VIDEO_ENC_PARAMS_H264, + + /* + * MPEG-2-compatible quantizer. + * + * Summing the frame-level qp with the per-block delta_qp gives the + * resulting quantizer for the block. + */ + AV_VIDEO_ENC_PARAMS_MPEG2, +}; + +/** + * Video encoding parameters for a given frame. This struct is allocated along + * with an optional array of per-block AVVideoBlockParams descriptors. + * Must be allocated with av_video_enc_params_alloc(). + */ +typedef struct AVVideoEncParams { + /** + * Number of blocks in the array. + * + * May be 0, in which case no per-block information is present. In this case + * the values of blocks_offset / block_size are unspecified and should not + * be accessed. + */ + unsigned int nb_blocks; + /** + * Offset in bytes from the beginning of this structure at which the array + * of blocks starts. + */ + size_t blocks_offset; + /* + * Size of each block in bytes. May not match sizeof(AVVideoBlockParams). + */ + size_t block_size; + + /** + * Type of the parameters (the codec they are used with). + */ + enum AVVideoEncParamsType type; + + /** + * Base quantisation parameter for the frame. The final quantiser for a + * given block in a given plane is obtained from this value, possibly + * combined with {@code delta_qp} and the per-block delta in a manner + * documented for each type. + */ + int32_t qp; + + /** + * Quantisation parameter offset from the base (per-frame) qp for a given + * plane (first index) and AC/DC coefficients (second index). + */ + int32_t delta_qp[4][2]; +} AVVideoEncParams; + +/** + * Data structure for storing block-level encoding information. + * It is allocated as a part of AVVideoEncParams and should be retrieved with + * av_video_enc_params_block(). + * + * sizeof(AVVideoBlockParams) is not a part of the ABI and new fields may be + * added to it. + */ +typedef struct AVVideoBlockParams { + /** + * Distance in luma pixels from the top-left corner of the visible frame + * to the top-left corner of the block. + * Can be negative if top/right padding is present on the coded frame. + */ + int src_x, src_y; + /** + * Width and height of the block in luma pixels. + */ + int w, h; + + /** + * Difference between this block's final quantization parameter and the + * corresponding per-frame value. + */ + int32_t delta_qp; +} AVVideoBlockParams; + +/** + * Get the block at the specified {@code idx}. Must be between 0 and nb_blocks - 1. + */ +static av_always_inline AVVideoBlockParams* +av_video_enc_params_block(AVVideoEncParams *par, unsigned int idx) +{ + av_assert0(idx < par->nb_blocks); + return (AVVideoBlockParams *)((uint8_t *)par + par->blocks_offset + + idx * par->block_size); +} + +/** + * Allocates memory for AVVideoEncParams of the given type, plus an array of + * {@code nb_blocks} AVVideoBlockParams and initializes the variables. Can be + * freed with a normal av_free() call. + * + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here. + */ +AVVideoEncParams *av_video_enc_params_alloc(enum AVVideoEncParamsType type, + unsigned int nb_blocks, size_t *out_size); + +/** + * Allocates memory for AVEncodeInfoFrame plus an array of + * {@code nb_blocks} AVEncodeInfoBlock in the given AVFrame {@code frame} + * as AVFrameSideData of type AV_FRAME_DATA_VIDEO_ENC_PARAMS + * and initializes the variables. + */ +AVVideoEncParams* +av_video_enc_params_create_side_data(AVFrame *frame, enum AVVideoEncParamsType type, + unsigned int nb_blocks); + +#endif /* AVUTIL_VIDEO_ENC_PARAMS_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/video_hint.h b/deps/ffmpeg/macos/include/libavutil/video_hint.h new file mode 100644 index 0000000..1b21960 --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/video_hint.h @@ -0,0 +1,107 @@ +/** + * Copyright 2023 Elias Carotti + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_VIDEO_HINT_H +#define AVUTIL_VIDEO_HINT_H + +#include +#include +#include "libavutil/avassert.h" +#include "libavutil/frame.h" + +typedef struct AVVideoRect { + uint32_t x, y; + uint32_t width, height; +} AVVideoRect; + +typedef enum AVVideoHintType { + /* rectangled delimit the constant areas (unchanged), default is changed */ + AV_VIDEO_HINT_TYPE_CONSTANT, + + /* rectangled delimit the constant areas (changed), default is not changed */ + AV_VIDEO_HINT_TYPE_CHANGED, +} AVVideoHintType; + +typedef struct AVVideoHint { + /** + * Number of AVVideoRect present. + * + * May be 0, in which case no per-rectangle information is present. In this + * case the values of rect_offset / rect_size are unspecified and should + * not be accessed. + */ + size_t nb_rects; + + /** + * Offset in bytes from the beginning of this structure at which the array + * of AVVideoRect starts. + */ + size_t rect_offset; + + /** + * Size in bytes of AVVideoRect. + */ + size_t rect_size; + + AVVideoHintType type; +} AVVideoHint; + +static av_always_inline AVVideoRect * +av_video_hint_rects(const AVVideoHint *hints) { + return (AVVideoRect *)((uint8_t *)hints + hints->rect_offset); +} + +static av_always_inline AVVideoRect * +av_video_hint_get_rect(const AVVideoHint *hints, size_t idx) { + return (AVVideoRect *)((uint8_t *)hints + hints->rect_offset + idx * hints->rect_size); +} + +/** + * Allocate memory for the AVVideoHint struct along with an nb_rects-sized + * arrays of AVVideoRect. + * + * The side data contains a list of rectangles for the portions of the frame + * which changed from the last encoded one (and the remainder are assumed to be + * changed), or, alternately (depending on the type parameter) the unchanged + * ones (and the remanining ones are those which changed). + * Macroblocks will thus be hinted either to be P_SKIP-ped or go through the + * regular encoding procedure. + * + * It's responsibility of the caller to fill the AVRects accordingly, and to set + * the proper AVVideoHintType field. + * + * @param out_size if non-NULL, the size in bytes of the resulting data array is + * written here + * + * @return newly allocated AVVideoHint struct (must be freed by the caller using + * av_free()) on success, NULL on memory allocation failure + */ +AVVideoHint *av_video_hint_alloc(size_t nb_rects, + size_t *out_size); + +/** + * Same as av_video_hint_alloc(), except newly-allocated AVVideoHint is attached + * as side data of type AV_FRAME_DATA_VIDEO_HINT_INFO to frame. + */ +AVVideoHint *av_video_hint_create_side_data(AVFrame *frame, + size_t nb_rects); + + +#endif /* AVUTIL_VIDEO_HINT_H */ diff --git a/deps/ffmpeg/macos/include/libavutil/xtea.h b/deps/ffmpeg/macos/include/libavutil/xtea.h new file mode 100644 index 0000000..735427c --- /dev/null +++ b/deps/ffmpeg/macos/include/libavutil/xtea.h @@ -0,0 +1,94 @@ +/* + * A 32-bit implementation of the XTEA algorithm + * Copyright (c) 2012 Samuel Pitoiset + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_XTEA_H +#define AVUTIL_XTEA_H + +#include + +/** + * @file + * @brief Public header for libavutil XTEA algorithm + * @defgroup lavu_xtea XTEA + * @ingroup lavu_crypto + * @{ + */ + +typedef struct AVXTEA { + uint32_t key[16]; +} AVXTEA; + +/** + * Allocate an AVXTEA context. + */ +AVXTEA *av_xtea_alloc(void); + +/** + * Initialize an AVXTEA context. + * + * @param ctx an AVXTEA context + * @param key a key of 16 bytes used for encryption/decryption, + * interpreted as big endian 32 bit numbers + */ +void av_xtea_init(struct AVXTEA *ctx, const uint8_t key[16]); + +/** + * Initialize an AVXTEA context. + * + * @param ctx an AVXTEA context + * @param key a key of 16 bytes used for encryption/decryption, + * interpreted as little endian 32 bit numbers + */ +void av_xtea_le_init(struct AVXTEA *ctx, const uint8_t key[16]); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, + * in big endian format. + * + * @param ctx an AVXTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_xtea_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context, + * in little endian format. + * + * @param ctx an AVXTEA context + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param count number of 8 byte blocks + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_xtea_le_crypt(struct AVXTEA *ctx, uint8_t *dst, const uint8_t *src, + int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_XTEA_H */ diff --git a/deps/ffmpeg/macos/include/libpostproc/postprocess.h b/deps/ffmpeg/macos/include/libpostproc/postprocess.h new file mode 100644 index 0000000..5decb7e --- /dev/null +++ b/deps/ffmpeg/macos/include/libpostproc/postprocess.h @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef POSTPROC_POSTPROCESS_H +#define POSTPROC_POSTPROCESS_H + +/** + * @file + * @ingroup lpp + * external API header + */ + +/** + * @defgroup lpp libpostproc + * Video postprocessing library. + * + * @{ + */ + +#include "libpostproc/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libpostproc/version.h" +#endif + +/** + * Return the LIBPOSTPROC_VERSION_INT constant. + */ +unsigned postproc_version(void); + +/** + * Return the libpostproc build-time configuration. + */ +const char *postproc_configuration(void); + +/** + * Return the libpostproc license. + */ +const char *postproc_license(void); + +#define PP_QUALITY_MAX 6 + +#include + +typedef void pp_context; +typedef void pp_mode; + +extern const char pp_help[]; ///< a simple help text + +void pp_postprocess(const uint8_t * src[3], const int srcStride[3], + uint8_t * dst[3], const int dstStride[3], + int horizontalSize, int verticalSize, + const int8_t *QP_store, int QP_stride, + pp_mode *mode, pp_context *ppContext, int pict_type); + + +/** + * Return a pp_mode or NULL if an error occurred. + * + * @param name the string after "-pp" on the command line + * @param quality a number from 0 to PP_QUALITY_MAX + */ +pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality); +void pp_free_mode(pp_mode *mode); + +pp_context *pp_get_context(int width, int height, int flags); +void pp_free_context(pp_context *ppContext); + +#define PP_CPU_CAPS_MMX 0x80000000 +#define PP_CPU_CAPS_MMX2 0x20000000 +#define PP_CPU_CAPS_3DNOW 0x40000000 +#define PP_CPU_CAPS_ALTIVEC 0x10000000 +#define PP_CPU_CAPS_AUTO 0x00080000 + +#define PP_FORMAT 0x00000008 +#define PP_FORMAT_420 (0x00000011|PP_FORMAT) +#define PP_FORMAT_422 (0x00000001|PP_FORMAT) +#define PP_FORMAT_411 (0x00000002|PP_FORMAT) +#define PP_FORMAT_444 (0x00000000|PP_FORMAT) +#define PP_FORMAT_440 (0x00000010|PP_FORMAT) + +#define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale + +/** + * @} + */ + +#endif /* POSTPROC_POSTPROCESS_H */ diff --git a/deps/ffmpeg/macos/include/libpostproc/version.h b/deps/ffmpeg/macos/include/libpostproc/version.h new file mode 100644 index 0000000..e77dff9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libpostproc/version.h @@ -0,0 +1,46 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef POSTPROC_VERSION_H +#define POSTPROC_VERSION_H + +/** + * @file + * Libpostproc version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBPOSTPROC_VERSION_MINOR 3 +#define LIBPOSTPROC_VERSION_MICRO 100 + +#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ + LIBPOSTPROC_VERSION_MINOR, \ + LIBPOSTPROC_VERSION_MICRO) +#define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \ + LIBPOSTPROC_VERSION_MINOR, \ + LIBPOSTPROC_VERSION_MICRO) +#define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT + +#define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) + +#endif /* POSTPROC_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libpostproc/version_major.h b/deps/ffmpeg/macos/include/libpostproc/version_major.h new file mode 100644 index 0000000..8136ee9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libpostproc/version_major.h @@ -0,0 +1,31 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef POSTPROC_VERSION_MAJOR_H +#define POSTPROC_VERSION_MAJOR_H + +/** + * @file + * Libpostproc version macros + */ + +#define LIBPOSTPROC_VERSION_MAJOR 58 + +#endif /* POSTPROC_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libswresample/swresample.h b/deps/ffmpeg/macos/include/libswresample/swresample.h new file mode 100644 index 0000000..0e1929b --- /dev/null +++ b/deps/ffmpeg/macos/include/libswresample/swresample.h @@ -0,0 +1,587 @@ +/* + * Copyright (C) 2011-2013 Michael Niedermayer (michaelni@gmx.at) + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_SWRESAMPLE_H +#define SWRESAMPLE_SWRESAMPLE_H + +/** + * @file + * @ingroup lswr + * libswresample public header + */ + +/** + * @defgroup lswr libswresample + * @{ + * + * Audio resampling, sample format conversion and mixing library. + * + * Interaction with lswr is done through SwrContext, which is + * allocated with swr_alloc() or swr_alloc_set_opts2(). It is opaque, so all parameters + * must be set with the @ref avoptions API. + * + * The first thing you will need to do in order to use lswr is to allocate + * SwrContext. This can be done with swr_alloc() or swr_alloc_set_opts2(). If you + * are using the former, you must set options through the @ref avoptions API. + * The latter function provides the same feature, but it allows you to set some + * common options in the same statement. + * + * For example the following code will setup conversion from planar float sample + * format to interleaved signed 16-bit integer, downsampling from 48kHz to + * 44.1kHz and downmixing from 5.1 channels to stereo (using the default mixing + * matrix). This is using the swr_alloc() function. + * @code + * SwrContext *swr = swr_alloc(); + * av_opt_set_chlayout(swr, "in_chlayout", &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1, 0); + * av_opt_set_chlayout(swr, "out_chlayout", &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, 0); + * av_opt_set_int(swr, "in_sample_rate", 48000, 0); + * av_opt_set_int(swr, "out_sample_rate", 44100, 0); + * av_opt_set_sample_fmt(swr, "in_sample_fmt", AV_SAMPLE_FMT_FLTP, 0); + * av_opt_set_sample_fmt(swr, "out_sample_fmt", AV_SAMPLE_FMT_S16, 0); + * @endcode + * + * The same job can be done using swr_alloc_set_opts2() as well: + * @code + * SwrContext *swr = NULL; + * int ret = swr_alloc_set_opts2(&swr, // we're allocating a new context + * &(AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO, // out_ch_layout + * AV_SAMPLE_FMT_S16, // out_sample_fmt + * 44100, // out_sample_rate + * &(AVChannelLayout)AV_CHANNEL_LAYOUT_5POINT1, // in_ch_layout + * AV_SAMPLE_FMT_FLTP, // in_sample_fmt + * 48000, // in_sample_rate + * 0, // log_offset + * NULL); // log_ctx + * @endcode + * + * Once all values have been set, it must be initialized with swr_init(). If + * you need to change the conversion parameters, you can change the parameters + * using @ref avoptions, as described above in the first example; or by using + * swr_alloc_set_opts2(), but with the first argument the allocated context. + * You must then call swr_init() again. + * + * The conversion itself is done by repeatedly calling swr_convert(). + * Note that the samples may get buffered in swr if you provide insufficient + * output space or if sample rate conversion is done, which requires "future" + * samples. Samples that do not require future input can be retrieved at any + * time by using swr_convert() (in_count can be set to 0). + * At the end of conversion the resampling buffer can be flushed by calling + * swr_convert() with NULL in and 0 in_count. + * + * The samples used in the conversion process can be managed with the libavutil + * @ref lavu_sampmanip "samples manipulation" API, including av_samples_alloc() + * function used in the following example. + * + * The delay between input and output, can at any time be found by using + * swr_get_delay(). + * + * The following code demonstrates the conversion loop assuming the parameters + * from above and caller-defined functions get_input() and handle_output(): + * @code + * uint8_t **input; + * int in_samples; + * + * while (get_input(&input, &in_samples)) { + * uint8_t *output; + * int out_samples = av_rescale_rnd(swr_get_delay(swr, 48000) + + * in_samples, 44100, 48000, AV_ROUND_UP); + * av_samples_alloc(&output, NULL, 2, out_samples, + * AV_SAMPLE_FMT_S16, 0); + * out_samples = swr_convert(swr, &output, out_samples, + * input, in_samples); + * handle_output(output, out_samples); + * av_freep(&output); + * } + * @endcode + * + * When the conversion is finished, the conversion + * context and everything associated with it must be freed with swr_free(). + * A swr_close() function is also available, but it exists mainly for + * compatibility with libavresample, and is not required to be called. + * + * There will be no memory leak if the data is not completely flushed before + * swr_free(). + */ + +#include +#include "libavutil/channel_layout.h" +#include "libavutil/frame.h" +#include "libavutil/samplefmt.h" + +#include "libswresample/version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "libswresample/version.h" +#endif + +/** + * @name Option constants + * These constants are used for the @ref avoptions interface for lswr. + * @{ + * + */ + +#define SWR_FLAG_RESAMPLE 1 ///< Force resampling even if equal sample rate +//TODO use int resample ? +//long term TODO can we enable this dynamically? + +/** Dithering algorithms */ +enum SwrDitherType { + SWR_DITHER_NONE = 0, + SWR_DITHER_RECTANGULAR, + SWR_DITHER_TRIANGULAR, + SWR_DITHER_TRIANGULAR_HIGHPASS, + + SWR_DITHER_NS = 64, ///< not part of API/ABI + SWR_DITHER_NS_LIPSHITZ, + SWR_DITHER_NS_F_WEIGHTED, + SWR_DITHER_NS_MODIFIED_E_WEIGHTED, + SWR_DITHER_NS_IMPROVED_E_WEIGHTED, + SWR_DITHER_NS_SHIBATA, + SWR_DITHER_NS_LOW_SHIBATA, + SWR_DITHER_NS_HIGH_SHIBATA, + SWR_DITHER_NB, ///< not part of API/ABI +}; + +/** Resampling Engines */ +enum SwrEngine { + SWR_ENGINE_SWR, /**< SW Resampler */ + SWR_ENGINE_SOXR, /**< SoX Resampler */ + SWR_ENGINE_NB, ///< not part of API/ABI +}; + +/** Resampling Filter Types */ +enum SwrFilterType { + SWR_FILTER_TYPE_CUBIC, /**< Cubic */ + SWR_FILTER_TYPE_BLACKMAN_NUTTALL, /**< Blackman Nuttall windowed sinc */ + SWR_FILTER_TYPE_KAISER, /**< Kaiser windowed sinc */ +}; + +/** + * @} + */ + +/** + * The libswresample context. Unlike libavcodec and libavformat, this structure + * is opaque. This means that if you would like to set options, you must use + * the @ref avoptions API and cannot directly set values to members of the + * structure. + */ +typedef struct SwrContext SwrContext; + +/** + * Get the AVClass for SwrContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + * @return the AVClass of SwrContext + */ +const AVClass *swr_get_class(void); + +/** + * @name SwrContext constructor functions + * @{ + */ + +/** + * Allocate SwrContext. + * + * If you use this function you will need to set the parameters (manually or + * with swr_alloc_set_opts2()) before calling swr_init(). + * + * @see swr_alloc_set_opts2(), swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + */ +struct SwrContext *swr_alloc(void); + +/** + * Initialize context after user parameters have been set. + * @note The context must be configured using the AVOption API. + * + * @see av_opt_set_int() + * @see av_opt_set_dict() + * + * @param[in,out] s Swr context to initialize + * @return AVERROR error code in case of failure. + */ +int swr_init(struct SwrContext *s); + +/** + * Check whether an swr context has been initialized or not. + * + * @param[in] s Swr context to check + * @see swr_init() + * @return positive if it has been initialized, 0 if not initialized + */ +int swr_is_initialized(struct SwrContext *s); + +/** + * Allocate SwrContext if needed and set/reset common parameters. + * + * This function does not require *ps to be allocated with swr_alloc(). On the + * other hand, swr_alloc() can use swr_alloc_set_opts2() to set the parameters + * on the allocated context. + * + * @param ps Pointer to an existing Swr context if available, or to NULL if not. + * On success, *ps will be set to the allocated context. + * @param out_ch_layout output channel layout (e.g. AV_CHANNEL_LAYOUT_*) + * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*). + * @param out_sample_rate output sample rate (frequency in Hz) + * @param in_ch_layout input channel layout (e.g. AV_CHANNEL_LAYOUT_*) + * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*). + * @param in_sample_rate input sample rate (frequency in Hz) + * @param log_offset logging level offset + * @param log_ctx parent logging context, can be NULL + * + * @see swr_init(), swr_free() + * @return 0 on success, a negative AVERROR code on error. + * On error, the Swr context is freed and *ps set to NULL. + */ +int swr_alloc_set_opts2(struct SwrContext **ps, + const AVChannelLayout *out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, + const AVChannelLayout *in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, + int log_offset, void *log_ctx); +/** + * @} + * + * @name SwrContext destructor functions + * @{ + */ + +/** + * Free the given SwrContext and set the pointer to NULL. + * + * @param[in] s a pointer to a pointer to Swr context + */ +void swr_free(struct SwrContext **s); + +/** + * Closes the context so that swr_is_initialized() returns 0. + * + * The context can be brought back to life by running swr_init(), + * swr_init() can also be used without swr_close(). + * This function is mainly provided for simplifying the usecase + * where one tries to support libavresample and libswresample. + * + * @param[in,out] s Swr context to be closed + */ +void swr_close(struct SwrContext *s); + +/** + * @} + * + * @name Core conversion functions + * @{ + */ + +/** Convert audio. + * + * in and in_count can be set to 0 to flush the last few samples out at the + * end. + * + * If more input is provided than output space, then the input will be buffered. + * You can avoid this buffering by using swr_get_out_samples() to retrieve an + * upper bound on the required number of output samples for the given number of + * input samples. Conversion will run directly without copying whenever possible. + * + * @param s allocated Swr context, with parameters set + * @param out output buffers, only the first one need be set in case of packed audio + * @param out_count amount of space available for output in samples per channel + * @param in input buffers, only the first one need to be set in case of packed audio + * @param in_count number of input samples available in one channel + * + * @return number of samples output per channel, negative value on error + */ +int swr_convert(struct SwrContext *s, uint8_t * const *out, int out_count, + const uint8_t * const *in , int in_count); + +/** + * Convert the next timestamp from input to output + * timestamps are in 1/(in_sample_rate * out_sample_rate) units. + * + * @note There are 2 slightly differently behaving modes. + * @li When automatic timestamp compensation is not used, (min_compensation >= FLT_MAX) + * in this case timestamps will be passed through with delays compensated + * @li When automatic timestamp compensation is used, (min_compensation < FLT_MAX) + * in this case the output timestamps will match output sample numbers. + * See ffmpeg-resampler(1) for the two modes of compensation. + * + * @param[in] s initialized Swr context + * @param[in] pts timestamp for the next input sample, INT64_MIN if unknown + * @see swr_set_compensation(), swr_drop_output(), and swr_inject_silence() are + * function used internally for timestamp compensation. + * @return the output timestamp for the next output sample + */ +int64_t swr_next_pts(struct SwrContext *s, int64_t pts); + +/** + * @} + * + * @name Low-level option setting functions + * These functons provide a means to set low-level options that is not possible + * with the AVOption API. + * @{ + */ + +/** + * Activate resampling compensation ("soft" compensation). This function is + * internally called when needed in swr_next_pts(). + * + * @param[in,out] s allocated Swr context. If it is not initialized, + * or SWR_FLAG_RESAMPLE is not set, swr_init() is + * called with the flag set. + * @param[in] sample_delta delta in PTS per sample + * @param[in] compensation_distance number of samples to compensate for + * @return >= 0 on success, AVERROR error codes if: + * @li @c s is NULL, + * @li @c compensation_distance is less than 0, + * @li @c compensation_distance is 0 but sample_delta is not, + * @li compensation unsupported by resampler, or + * @li swr_init() fails when called. + */ +int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance); + +/** + * Set a customized input channel mapping. + * + * @param[in,out] s allocated Swr context, not yet initialized + * @param[in] channel_map customized input channel mapping (array of channel + * indexes, -1 for a muted channel) + * @return >= 0 on success, or AVERROR error code in case of failure. + */ +int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); + +/** + * Generate a channel mixing matrix. + * + * This function is the one used internally by libswresample for building the + * default mixing matrix. It is made public just as a utility function for + * building custom matrices. + * + * @param in_layout input channel layout + * @param out_layout output channel layout + * @param center_mix_level mix level for the center channel + * @param surround_mix_level mix level for the surround channel(s) + * @param lfe_mix_level mix level for the low-frequency effects channel + * @param rematrix_maxval if 1.0, coefficients will be normalized to prevent + * overflow. if INT_MAX, coefficients will not be + * normalized. + * @param[out] matrix mixing coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o. + * @param stride distance between adjacent input channels in the + * matrix array + * @param matrix_encoding matrixed stereo downmix mode (e.g. dplii) + * @param log_ctx parent logging context, can be NULL + * @return 0 on success, negative AVERROR code on failure + */ +int swr_build_matrix2(const AVChannelLayout *in_layout, const AVChannelLayout *out_layout, + double center_mix_level, double surround_mix_level, + double lfe_mix_level, double maxval, + double rematrix_volume, double *matrix, + ptrdiff_t stride, enum AVMatrixEncoding matrix_encoding, + void *log_context); + +/** + * Set a customized remix matrix. + * + * @param s allocated Swr context, not yet initialized + * @param matrix remix coefficients; matrix[i + stride * o] is + * the weight of input channel i in output channel o + * @param stride offset between lines of the matrix + * @return >= 0 on success, or AVERROR error code in case of failure. + */ +int swr_set_matrix(struct SwrContext *s, const double *matrix, int stride); + +/** + * @} + * + * @name Sample handling functions + * @{ + */ + +/** + * Drops the specified number of output samples. + * + * This function, along with swr_inject_silence(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + */ +int swr_drop_output(struct SwrContext *s, int count); + +/** + * Injects the specified number of silence samples. + * + * This function, along with swr_drop_output(), is called by swr_next_pts() + * if needed for "hard" compensation. + * + * @param s allocated Swr context + * @param count number of samples to be dropped + * + * @return >= 0 on success, or a negative AVERROR code on failure + */ +int swr_inject_silence(struct SwrContext *s, int count); + +/** + * Gets the delay the next input sample will experience relative to the next output sample. + * + * Swresample can buffer data if more input has been provided than available + * output space, also converting between sample rates needs a delay. + * This function returns the sum of all such delays. + * The exact delay is not necessarily an integer value in either input or + * output sample rate. Especially when downsampling by a large value, the + * output sample rate may be a poor choice to represent the delay, similarly + * for upsampling and the input sample rate. + * + * @param s swr context + * @param base timebase in which the returned delay will be: + * @li if it's set to 1 the returned delay is in seconds + * @li if it's set to 1000 the returned delay is in milliseconds + * @li if it's set to the input sample rate then the returned + * delay is in input samples + * @li if it's set to the output sample rate then the returned + * delay is in output samples + * @li if it's the least common multiple of in_sample_rate and + * out_sample_rate then an exact rounding-free delay will be + * returned + * @returns the delay in 1 / @c base units. + */ +int64_t swr_get_delay(struct SwrContext *s, int64_t base); + +/** + * Find an upper bound on the number of samples that the next swr_convert + * call will output, if called with in_samples of input samples. This + * depends on the internal state, and anything changing the internal state + * (like further swr_convert() calls) will may change the number of samples + * swr_get_out_samples() returns for the same number of input samples. + * + * @param in_samples number of input samples. + * @note any call to swr_inject_silence(), swr_convert(), swr_next_pts() + * or swr_set_compensation() invalidates this limit + * @note it is recommended to pass the correct available buffer size + * to all functions like swr_convert() even if swr_get_out_samples() + * indicates that less would be used. + * @returns an upper bound on the number of samples that the next swr_convert + * will output or a negative value to indicate an error + */ +int swr_get_out_samples(struct SwrContext *s, int in_samples); + +/** + * @} + * + * @name Configuration accessors + * @{ + */ + +/** + * Return the @ref LIBSWRESAMPLE_VERSION_INT constant. + * + * This is useful to check if the build-time libswresample has the same version + * as the run-time one. + * + * @returns the unsigned int-typed version + */ +unsigned swresample_version(void); + +/** + * Return the swr build-time configuration. + * + * @returns the build-time @c ./configure flags + */ +const char *swresample_configuration(void); + +/** + * Return the swr license. + * + * @returns the license of libswresample, determined at build-time + */ +const char *swresample_license(void); + +/** + * @} + * + * @name AVFrame based API + * @{ + */ + +/** + * Convert the samples in the input AVFrame and write them to the output AVFrame. + * + * Input and output AVFrames must have channel_layout, sample_rate and format set. + * + * If the output AVFrame does not have the data pointers allocated the nb_samples + * field will be set using av_frame_get_buffer() + * is called to allocate the frame. + * + * The output AVFrame can be NULL or have fewer allocated samples than required. + * In this case, any remaining samples not written to the output will be added + * to an internal FIFO buffer, to be returned at the next call to this function + * or to swr_convert(). + * + * If converting sample rate, there may be data remaining in the internal + * resampling delay buffer. swr_get_delay() tells the number of + * remaining samples. To get this data as output, call this function or + * swr_convert() with NULL input. + * + * If the SwrContext configuration does not match the output and + * input AVFrame settings the conversion does not take place and depending on + * which AVFrame is not matching AVERROR_OUTPUT_CHANGED, AVERROR_INPUT_CHANGED + * or the result of a bitwise-OR of them is returned. + * + * @see swr_delay() + * @see swr_convert() + * @see swr_get_delay() + * + * @param swr audio resample context + * @param output output AVFrame + * @param input input AVFrame + * @return 0 on success, AVERROR on failure or nonmatching + * configuration. + */ +int swr_convert_frame(SwrContext *swr, + AVFrame *output, const AVFrame *input); + +/** + * Configure or reconfigure the SwrContext using the information + * provided by the AVFrames. + * + * The original resampling context is reset even on failure. + * The function calls swr_close() internally if the context is open. + * + * @see swr_close(); + * + * @param swr audio resample context + * @param out output AVFrame + * @param in input AVFrame + * @return 0 on success, AVERROR on failure. + */ +int swr_config_frame(SwrContext *swr, const AVFrame *out, const AVFrame *in); + +/** + * @} + * @} + */ + +#endif /* SWRESAMPLE_SWRESAMPLE_H */ diff --git a/deps/ffmpeg/macos/include/libswresample/version.h b/deps/ffmpeg/macos/include/libswresample/version.h new file mode 100644 index 0000000..d1795b5 --- /dev/null +++ b/deps/ffmpeg/macos/include/libswresample/version.h @@ -0,0 +1,46 @@ +/* + * Version macros. + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_VERSION_H +#define SWRESAMPLE_VERSION_H + +/** + * @file + * Libswresample version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBSWRESAMPLE_VERSION_MINOR 3 +#define LIBSWRESAMPLE_VERSION_MICRO 100 + +#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ + LIBSWRESAMPLE_VERSION_MICRO) +#define LIBSWRESAMPLE_VERSION AV_VERSION(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ + LIBSWRESAMPLE_VERSION_MICRO) +#define LIBSWRESAMPLE_BUILD LIBSWRESAMPLE_VERSION_INT + +#define LIBSWRESAMPLE_IDENT "SwR" AV_STRINGIFY(LIBSWRESAMPLE_VERSION) + +#endif /* SWRESAMPLE_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libswresample/version_major.h b/deps/ffmpeg/macos/include/libswresample/version_major.h new file mode 100644 index 0000000..dd13f2b --- /dev/null +++ b/deps/ffmpeg/macos/include/libswresample/version_major.h @@ -0,0 +1,31 @@ +/* + * Version macros. + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWRESAMPLE_VERSION_MAJOR_H +#define SWRESAMPLE_VERSION_MAJOR_H + +/** + * @file + * Libswresample version macros + */ + +#define LIBSWRESAMPLE_VERSION_MAJOR 5 + +#endif /* SWRESAMPLE_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/include/libswscale/swscale.h b/deps/ffmpeg/macos/include/libswscale/swscale.h new file mode 100644 index 0000000..e575695 --- /dev/null +++ b/deps/ffmpeg/macos/include/libswscale/swscale.h @@ -0,0 +1,460 @@ +/* + * Copyright (C) 2001-2011 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_SWSCALE_H +#define SWSCALE_SWSCALE_H + +/** + * @file + * @ingroup libsws + * external API header + */ + +#include + +#include "libavutil/avutil.h" +#include "libavutil/frame.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "version_major.h" +#ifndef HAVE_AV_CONFIG_H +/* When included as part of the ffmpeg build, only include the major version + * to avoid unnecessary rebuilds. When included externally, keep including + * the full version information. */ +#include "version.h" +#endif + +/** + * @defgroup libsws libswscale + * Color conversion and scaling library. + * + * @{ + * + * Return the LIBSWSCALE_VERSION_INT constant. + */ +unsigned swscale_version(void); + +/** + * Return the libswscale build-time configuration. + */ +const char *swscale_configuration(void); + +/** + * Return the libswscale license. + */ +const char *swscale_license(void); + +/* values for the flags, the stuff on the command line is different */ +#define SWS_FAST_BILINEAR 1 +#define SWS_BILINEAR 2 +#define SWS_BICUBIC 4 +#define SWS_X 8 +#define SWS_POINT 0x10 +#define SWS_AREA 0x20 +#define SWS_BICUBLIN 0x40 +#define SWS_GAUSS 0x80 +#define SWS_SINC 0x100 +#define SWS_LANCZOS 0x200 +#define SWS_SPLINE 0x400 + +#define SWS_SRC_V_CHR_DROP_MASK 0x30000 +#define SWS_SRC_V_CHR_DROP_SHIFT 16 + +#define SWS_PARAM_DEFAULT 123456 + +#define SWS_PRINT_INFO 0x1000 + +//the following 3 flags are not completely implemented + +/** + * Perform full chroma upsampling when upscaling to RGB. + * + * For example, when converting 50x50 yuv420p to 100x100 rgba, setting this flag + * will scale the chroma plane from 25x25 to 100x100 (4:4:4), and then convert + * the 100x100 yuv444p image to rgba in the final output step. + * + * Without this flag, the chroma plane is instead scaled to 50x100 (4:2:2), + * with a single chroma sample being re-used for both of the horizontally + * adjacent RGBA output pixels. + */ +#define SWS_FULL_CHR_H_INT 0x2000 + +/** + * Perform full chroma interpolation when downscaling RGB sources. + * + * For example, when converting a 100x100 rgba source to 50x50 yuv444p, setting + * this flag will generate a 100x100 (4:4:4) chroma plane, which is then + * downscaled to the required 50x50. + * + * Without this flag, the chroma plane is instead generated at 50x100 (dropping + * every other pixel), before then being downscaled to the required 50x50 + * resolution. + */ +#define SWS_FULL_CHR_H_INP 0x4000 + +#define SWS_DIRECT_BGR 0x8000 + +#define SWS_ACCURATE_RND 0x40000 +#define SWS_BITEXACT 0x80000 +#define SWS_ERROR_DIFFUSION 0x800000 + +#define SWS_MAX_REDUCE_CUTOFF 0.002 + +#define SWS_CS_ITU709 1 +#define SWS_CS_FCC 4 +#define SWS_CS_ITU601 5 +#define SWS_CS_ITU624 5 +#define SWS_CS_SMPTE170M 5 +#define SWS_CS_SMPTE240M 7 +#define SWS_CS_DEFAULT 5 +#define SWS_CS_BT2020 9 + +/** + * Return a pointer to yuv<->rgb coefficients for the given colorspace + * suitable for sws_setColorspaceDetails(). + * + * @param colorspace One of the SWS_CS_* macros. If invalid, + * SWS_CS_DEFAULT is used. + */ +const int *sws_getCoefficients(int colorspace); + +// when used for filters they must have an odd number of elements +// coeffs cannot be shared between vectors +typedef struct SwsVector { + double *coeff; ///< pointer to the list of coefficients + int length; ///< number of coefficients in the vector +} SwsVector; + +// vectors can be shared +typedef struct SwsFilter { + SwsVector *lumH; + SwsVector *lumV; + SwsVector *chrH; + SwsVector *chrV; +} SwsFilter; + +struct SwsContext; + +/** + * Return a positive value if pix_fmt is a supported input format, 0 + * otherwise. + */ +int sws_isSupportedInput(enum AVPixelFormat pix_fmt); + +/** + * Return a positive value if pix_fmt is a supported output format, 0 + * otherwise. + */ +int sws_isSupportedOutput(enum AVPixelFormat pix_fmt); + +/** + * @param[in] pix_fmt the pixel format + * @return a positive value if an endianness conversion for pix_fmt is + * supported, 0 otherwise. + */ +int sws_isSupportedEndiannessConversion(enum AVPixelFormat pix_fmt); + +/** + * Allocate an empty SwsContext. This must be filled and passed to + * sws_init_context(). For filling see AVOptions, options.c and + * sws_setColorspaceDetails(). + */ +struct SwsContext *sws_alloc_context(void); + +/** + * Initialize the swscaler context sws_context. + * + * @return zero or positive value on success, a negative value on + * error + */ +av_warn_unused_result +int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter); + +/** + * Free the swscaler context swsContext. + * If swsContext is NULL, then does nothing. + */ +void sws_freeContext(struct SwsContext *swsContext); + +/** + * Allocate and return an SwsContext. You need it to perform + * scaling/conversion operations using sws_scale(). + * + * @param srcW the width of the source image + * @param srcH the height of the source image + * @param srcFormat the source image format + * @param dstW the width of the destination image + * @param dstH the height of the destination image + * @param dstFormat the destination image format + * @param flags specify which algorithm and options to use for rescaling + * @param param extra parameters to tune the used scaler + * For SWS_BICUBIC param[0] and [1] tune the shape of the basis + * function, param[0] tunes f(1) and param[1] f´(1) + * For SWS_GAUSS param[0] tunes the exponent and thus cutoff + * frequency + * For SWS_LANCZOS param[0] tunes the width of the window function + * @return a pointer to an allocated context, or NULL in case of error + * @note this function is to be removed after a saner alternative is + * written + */ +struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, + int dstW, int dstH, enum AVPixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); + +/** + * Scale the image slice in srcSlice and put the resulting scaled + * slice in the image in dst. A slice is a sequence of consecutive + * rows in an image. + * + * Slices have to be provided in sequential order, either in + * top-bottom or bottom-top order. If slices are provided in + * non-sequential order the behavior of the function is undefined. + * + * @param c the scaling context previously created with + * sws_getContext() + * @param srcSlice the array containing the pointers to the planes of + * the source slice + * @param srcStride the array containing the strides for each plane of + * the source image + * @param srcSliceY the position in the source image of the slice to + * process, that is the number (counted starting from + * zero) in the image of the first row of the slice + * @param srcSliceH the height of the source slice, that is the number + * of rows in the slice + * @param dst the array containing the pointers to the planes of + * the destination image + * @param dstStride the array containing the strides for each plane of + * the destination image + * @return the height of the output slice + */ +int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[], + const int srcStride[], int srcSliceY, int srcSliceH, + uint8_t *const dst[], const int dstStride[]); + +/** + * Scale source data from src and write the output to dst. + * + * This is merely a convenience wrapper around + * - sws_frame_start() + * - sws_send_slice(0, src->height) + * - sws_receive_slice(0, dst->height) + * - sws_frame_end() + * + * @param c The scaling context + * @param dst The destination frame. See documentation for sws_frame_start() for + * more details. + * @param src The source frame. + * + * @return 0 on success, a negative AVERROR code on failure + */ +int sws_scale_frame(struct SwsContext *c, AVFrame *dst, const AVFrame *src); + +/** + * Initialize the scaling process for a given pair of source/destination frames. + * Must be called before any calls to sws_send_slice() and sws_receive_slice(). + * + * This function will retain references to src and dst, so they must both use + * refcounted buffers (if allocated by the caller, in case of dst). + * + * @param c The scaling context + * @param dst The destination frame. + * + * The data buffers may either be already allocated by the caller or + * left clear, in which case they will be allocated by the scaler. + * The latter may have performance advantages - e.g. in certain cases + * some output planes may be references to input planes, rather than + * copies. + * + * Output data will be written into this frame in successful + * sws_receive_slice() calls. + * @param src The source frame. The data buffers must be allocated, but the + * frame data does not have to be ready at this point. Data + * availability is then signalled by sws_send_slice(). + * @return 0 on success, a negative AVERROR code on failure + * + * @see sws_frame_end() + */ +int sws_frame_start(struct SwsContext *c, AVFrame *dst, const AVFrame *src); + +/** + * Finish the scaling process for a pair of source/destination frames previously + * submitted with sws_frame_start(). Must be called after all sws_send_slice() + * and sws_receive_slice() calls are done, before any new sws_frame_start() + * calls. + * + * @param c The scaling context + */ +void sws_frame_end(struct SwsContext *c); + +/** + * Indicate that a horizontal slice of input data is available in the source + * frame previously provided to sws_frame_start(). The slices may be provided in + * any order, but may not overlap. For vertically subsampled pixel formats, the + * slices must be aligned according to subsampling. + * + * @param c The scaling context + * @param slice_start first row of the slice + * @param slice_height number of rows in the slice + * + * @return a non-negative number on success, a negative AVERROR code on failure. + */ +int sws_send_slice(struct SwsContext *c, unsigned int slice_start, + unsigned int slice_height); + +/** + * Request a horizontal slice of the output data to be written into the frame + * previously provided to sws_frame_start(). + * + * @param c The scaling context + * @param slice_start first row of the slice; must be a multiple of + * sws_receive_slice_alignment() + * @param slice_height number of rows in the slice; must be a multiple of + * sws_receive_slice_alignment(), except for the last slice + * (i.e. when slice_start+slice_height is equal to output + * frame height) + * + * @return a non-negative number if the data was successfully written into the output + * AVERROR(EAGAIN) if more input data needs to be provided before the + * output can be produced + * another negative AVERROR code on other kinds of scaling failure + */ +int sws_receive_slice(struct SwsContext *c, unsigned int slice_start, + unsigned int slice_height); + +/** + * Get the alignment required for slices + * + * @param c The scaling context + * @return alignment required for output slices requested with sws_receive_slice(). + * Slice offsets and sizes passed to sws_receive_slice() must be + * multiples of the value returned from this function. + */ +unsigned int sws_receive_slice_alignment(const struct SwsContext *c); + +/** + * @param c the scaling context + * @param dstRange flag indicating the while-black range of the output (1=jpeg / 0=mpeg) + * @param srcRange flag indicating the while-black range of the input (1=jpeg / 0=mpeg) + * @param table the yuv2rgb coefficients describing the output yuv space, normally ff_yuv2rgb_coeffs[x] + * @param inv_table the yuv2rgb coefficients describing the input yuv space, normally ff_yuv2rgb_coeffs[x] + * @param brightness 16.16 fixed point brightness correction + * @param contrast 16.16 fixed point contrast correction + * @param saturation 16.16 fixed point saturation correction + * + * @return A negative error code on error, non negative otherwise. + * If `LIBSWSCALE_VERSION_MAJOR < 7`, returns -1 if not supported. + */ +int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], + int srcRange, const int table[4], int dstRange, + int brightness, int contrast, int saturation); + +/** + * @return A negative error code on error, non negative otherwise. + * If `LIBSWSCALE_VERSION_MAJOR < 7`, returns -1 if not supported. + */ +int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, + int *srcRange, int **table, int *dstRange, + int *brightness, int *contrast, int *saturation); + +/** + * Allocate and return an uninitialized vector with length coefficients. + */ +SwsVector *sws_allocVec(int length); + +/** + * Return a normalized Gaussian curve used to filter stuff + * quality = 3 is high quality, lower is lower quality. + */ +SwsVector *sws_getGaussianVec(double variance, double quality); + +/** + * Scale all the coefficients of a by the scalar value. + */ +void sws_scaleVec(SwsVector *a, double scalar); + +/** + * Scale all the coefficients of a so that their sum equals height. + */ +void sws_normalizeVec(SwsVector *a, double height); + +void sws_freeVec(SwsVector *a); + +SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, + float lumaSharpen, float chromaSharpen, + float chromaHShift, float chromaVShift, + int verbose); +void sws_freeFilter(SwsFilter *filter); + +/** + * Check if context can be reused, otherwise reallocate a new one. + * + * If context is NULL, just calls sws_getContext() to get a new + * context. Otherwise, checks if the parameters are the ones already + * saved in context. If that is the case, returns the current + * context. Otherwise, frees context and gets a new context with + * the new parameters. + * + * Be warned that srcFilter and dstFilter are not checked, they + * are assumed to remain the same. + */ +struct SwsContext *sws_getCachedContext(struct SwsContext *context, + int srcW, int srcH, enum AVPixelFormat srcFormat, + int dstW, int dstH, enum AVPixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 32 bits. + * + * The output frame will have the same packed format as the palette. + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 24 bits. + * + * With the palette format "ABCD", the destination frame ends up with the format "ABC". + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Get the AVClass for swsContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *sws_get_class(void); + +/** + * @} + */ + +#endif /* SWSCALE_SWSCALE_H */ diff --git a/deps/ffmpeg/macos/include/libswscale/version.h b/deps/ffmpeg/macos/include/libswscale/version.h new file mode 100644 index 0000000..51eb013 --- /dev/null +++ b/deps/ffmpeg/macos/include/libswscale/version.h @@ -0,0 +1,44 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_VERSION_H +#define SWSCALE_VERSION_H + +/** + * @file + * swscale version macros + */ + +#include "libavutil/version.h" + +#include "version_major.h" + +#define LIBSWSCALE_VERSION_MINOR 3 +#define LIBSWSCALE_VERSION_MICRO 100 + +#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT + +#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) + +#endif /* SWSCALE_VERSION_H */ diff --git a/deps/ffmpeg/macos/include/libswscale/version_major.h b/deps/ffmpeg/macos/include/libswscale/version_major.h new file mode 100644 index 0000000..fd259f9 --- /dev/null +++ b/deps/ffmpeg/macos/include/libswscale/version_major.h @@ -0,0 +1,35 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_VERSION_MAJOR_H +#define SWSCALE_VERSION_MAJOR_H + +/** + * @file + * swscale version macros + */ + +#define LIBSWSCALE_VERSION_MAJOR 8 + +/** + * FF_API_* defines may be placed below to indicate public API that will be + * dropped at a future version bump. The defines themselves are not part of + * the public API and may change, break or disappear at any time. + */ + +#endif /* SWSCALE_VERSION_MAJOR_H */ diff --git a/deps/ffmpeg/macos/lib/libavcodec.61.19.101.dylib b/deps/ffmpeg/macos/lib/libavcodec.61.19.101.dylib new file mode 100644 index 0000000000000000000000000000000000000000..1577a2f4eb0803b199df1a44dcf0b5a8e7293a9b GIT binary patch literal 10226704 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%0Ag^$gw?S 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

j| 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%0ATuu@PlIVP`u~J}8NP!2J%jv}GrZal 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 z z@m8K;2!+xe)i&M9n-+KmH3KVhz-x=Os%}j(L0f&nT$^kYtK`6xgsi;@P9wb{{i6a zJGa@glbSeM1J_zlWFN3Q^y_o^_@v|c__mVI@^Qf;7#36iWw+bP zgSRE`b>_wx@-4!PdPiG5qyGBwK5RuVd450pXglkv1G~hJ&^y_qmccjZ2vc+>R~GA` zt9+r_Fz0?}f=dfOiFAkx_mZ)er*dqr``PE+XEb^HcBJ=-dU*sVAjfq3myZidR`=Ku)TM27F#}8AVe5{REsarWa zf1o;F!;Z$>7jMw`kndxmaFoE04SrNc?>FHS-2bTbL#Hplrw^i?F#9@9oLs~@G#)!M z&lvI@=eLg!pKm2`JtKU+m-Q!cUYv#MiX{K_AN#uCdpi3jY%d;LXkYUq3%pj;<{bf+ zNcL&Yc`?L69qq^`&abdy>?QEVq$G+xv$5j8f%2MhE|H&>!IIX^x))H#lOjK zsQp=rL(c2OhckgS@fljf+a|wY>>K#*iJNAf*0z6^?2lvG?!%`MqFnvy#0gNgGT)jk zf3fV&u+R!|DG`Z=|0Z?3iQ7S4|=X3aU0es+%K+zwz> zew}l5-czg_v`&$nN+ag@L)yLAwhC5Y<2lUPTkZU0J7V8r zG=l8vEV$7B9(?)`<3zCRZky!0gB_mDGSg}w*x`u^RCoV!CE>WAt{ z^hI&d`u;<;&01P9vt}OsAe}vX-nJRge<$C+2TZC%--{l9#hleuF|MW`X$~AQ#@oh5 z{~q(Ge_y_FtS_OS7i_05Iwxsnwsk|L+bWZPqj-Q-FlB&)qYm-tIF8cjU_yW zy&rL&(x<>U+w>E9L>Kr7+4mlO7OZEvopus1E&$i>QcnWLlhrl(3+fsLyaXN@+7`U% zKLr}kP0W}6Z3xyx8=v-r_kG6nBj6ov+DLDEpRsk|9o=?a99HpVwS!K*?5_OKC!(=R z?mfhU-^Y1PyIpylKOTA@NICVthdO2N(f-P`Q!LIkAA%h#uQA3P)p?ORo39sMcpkPl z54;bUqq%(hJasj@twTAZik6%DPpi+8&Aoq}AHtJVuj)LGHnwC$g!iq;S;gw~hcgX0 zfpvX5{6K9>PkKx39~o32zl)JI_+Z|nUX9ltSDG&mINy85-}tfV2WN=J@dEz}jIqZw zD!0*L_k&sQyT6+i1Rqzry^ZDW%&te@a?bW6H%8fYz`mLI)!4_)Wieusnu(doV_ZHq z{_&C6!^X5N`#Q0b*i((I8{O#dm zx9TjZ5#(xvmX_@q@laNYJA-p_l4~ZQb9rVJ`|ypV+V~UO$6Jvf)29&o1vnpaehgmY zDI`xu;ncle=+e70dt2g}#j}K;@}a-)(Q;}zJt7a@l=-*S0}eQ=9n2?eLUGuXIzL^wK@Hf85C zZQhiIuIKDec$@O|*!C^rX71vD!lv24vpg?*fk&Zl4J3CP>*&gr&U&zNxa-zB=&AB_ zE2=t0hd1-BV85Pg1?!FfWc&QAza@znCpUXHl!wc)FMkWYQ8XZ)^sp-w-3VT*T$#Rc zjH&j~{(X-Ve=lFJc#Efa+P2Iz;tj0KMr2q(Hu-kshsT}fdm8-L!+ZM2(Ik8j*d<@e zZ7+zBOYSp%pkme=TC?m$9w@H|ei!-g_sN%80BpBn!?NA!jd|#H(p_>HlO3!VyRpZI zluLql*qnQ2&bNaFb8PfQ^nL7n+1UA3P*(3fyeG!l?9)msWwPuTnZago(DiE*)6C-31swwGm_ zm~*>|?1=Csof-SJi7j74eLg!}b}{$&)7K%a|6gS9`v=BWG_B8 zImcT2g9pxv)Pv*JJ4ZNs9l>8NbFpRIhz-P3_1wl-Exs)reFhvYsS8I}arOMBx$G0< zfBP@7&phhnt;vTkaSnR4*atsjk4f<$D|&?+9(FIX4BC1O{drEB6_tKajNMB-XE!#_ zj`w7zNNZzF(R3UfjOQj|js?eP;8@N%>BeS#WjH!cHtTPMqX&Q`0fTJT$-vM#{zCt1 z;;Fu@ow{VC6)YZV)dFL!XdZercIr}|8<^9qVCQ1?Mq@*rQ^5ak^B;er;zsnp6I+QIc5vCei)UHJ{+&nt zq7~V~u_;gOq`n4Z{T%GbTJw9*b&6+O#>S}mDgAB^*ExJ&ta@c{9z?x-C!2I}DQBxv zpPuLO{EC_JzA+x1x5WFlzzWW}JpP>gL;IIw2M4wTcVY+chi}=zpMcIZ=9M1?%$Qfc zABbMj2<-Rtjd|6l0cXsA**E6G=XKE4^XJd^@10cUf9d$;aTtEi}L})bBx6h z*Wl6@?4hM8w4vuZ+g0P!%y*5@_q%qAZ!l$qW9gu4Xj5gD!UyN^d&(Z_o8%heo9P-> zBRhJ{A1(^!gVPC=6}`67&uU^B&P?i_`X0Yx##nP`(LbCyQbP=bIX?s$CHYi}jrcU$ zs@Zi>u!~rmI{XJIXFQx$C!CCYIIER7jqf4@da+A)AUpit=d!A9bl2Yc=Yhe4M|uky zc!w@my@+>n^zJ*(yEA!LW!??0wt3g;-J4Z)oAd6vPZRHkRIh+f?9sbA=N)-;r@RWj zwQf8ExIUO|x4t{m?4@5@bo(hLN8@wIu8BQWcG07^6(gf(Bdae$ zW?zWxz5u;`Rx7gH==H?h1RMU?JJ~zxlF#t)ygNJ_s*r^qczGv&iB9|yo;&7j@E$FC zAopl-<2u$I34LESqI$_dd?*(3NwF8%$V2HS^~l3w_Q%$@VQa_603Tmlv}JTeYxK*2 zRr9324StFrtC#{wx=(mpXnDS?(a>&qTjBB=^pN(r{pl82`dgo$JAm%qicC%^w1aC{6Qo>d2fgTx*%#YE-=#LX zAhH`>GJ&6!l#xF3_ADnZNA)$arZZ#JPj(;t1Nu2SkoH@cchBWI@|f=r=v~~#`2TpX zHQi@(+V!17b@tnR`Nt~pVOFu0W#4WiF>pQFXVks~xx0XUFte=4!es-Sqz7yS7ngdw zr_QF&y4N+9hAzw*=Gjw_>5O@7JaURySnZoyO+U1!$n(_dES<+9dt?84zY?#vf-}fE z#~1mZO~&_2UE(bvZ{c$JC(F^LD!i90Uq@XbXvRO#Di}#DStsorq#flZ?j?q^^A`!-!tW7_2no zlh#&th1T_-%@vo}!zkW`oitTA_wOt)`^qZEIs4A+HOi6p`RBN3z3-JBcNFvNYUU60 z?#HejfTsHAXUj)7=N#LB<{IO+koQqv&c-rwywu3fZu*3s+xQK!buR#R#iOY&|0%a~ zHFEV}o!y#$X(%}TYvczdZgRQTi5p_Aw{He?^bxdp6ZVcNS7T3hXY9>JcSW`=WN*PV z$u19V9mby0z&rTBp*6hIK2|-GZq$lhK>N=MunTxoiL*p!WG*iBWI$`^<6-`Le~4_M ze=X?uA7f82?Ql+Q7xyiE&-2Nn2JE= zp1$2p-O}qtKOXNG&Xls2b;BoSVmng4qU6RN*yxIX+m%ehR_feiy4LO50IfLtM4se3?Gph9HM!7$@TWG@zvk?552N>a>66CJ$5rp{ z;hn}r~wr03@Wr|e+)x|+HA#qnvX^Pi0MC#&HryZZ90Nk`Dwes4c=02@aPm^`_m zs6F4oM*;O$@LYZKl7lCkn5Ue>yUw@l@cC7oUFR*df*bIq~7ZZgi$E@|mem zs)x9-zT97DV6$6dMXsQq7BNj`POG2xFf;B)X(xPMcfmW%yGEYxJs&$Ky4_OXzK{Rt zCB}v+dV^l~J%m5$&n{mhe7L8U{>^X?ZhZey_PwE}99qR(IpCZHCLf(*3)0~w|6)(c zVf+c&n<*W<8sG40cv3kz>wL(XgUE{V3$1O9ZYMWA`uf7Qi|;E-e(&)cKu)v`8*bvA z)(+c~d3H|Uv&Wbh(w(*sVV^{iWnu!<&S8Ao&vIQuTXo3MyS%eLdFS=!tY+rfio`b; zS=%(9R36`+(Qn#Zqe>6f`nMSvnX?C9S(8=HyF&K92v%Rt%CgeatXmCCn$zjl!Y8rE zV+42Lga_{>XWBc^$7=9Zaxpp|?U(#ybyf-SF(q+&p%1qbfO_nkeBupE`AF#4dEjkj zlo=Z@Lt8%L4yu8bXTf85;W>*ov;Tl+!M4-;$~Usc3t%teS+Fh8_k1ts-fa)??5w_L z`8+F8-DmMUfnW8Hy~hFgC(nXyQ~Sz4Mtnm+<)`v|df)Rd)^rBO={)~R-}8K)n|i*& zbH?cy{@{_Oo+6%KWJOBtQKk9I{SH0Q{>54Biw>_SYa4Fg+BUE6yT(!RcINS2S>N-$ z*fdOiWjw#E@41iX+b`qUm3_}@M#lSmCC|Un_x!ODaag~>^TmD7yPyHnx5YgFcHi@S zo}0dXo9ESi&qW*Ct9f=^-!sw1_Um|ty*q(}$5ieHp55Z~-*;+r#}T@#<{C$_CP_3LO`bu}|*zDe6%v|Sf(TlFQ{R$c6uFm0F9 z&&TQSwOsSa4G=rGu(jCsls4psqsYFOJ?PBx`DyP>GCX7r^YT8<{@YG22I+^$-iY4S z;M*6ks{+26xz-{7Q)|~>#@^d5YzWdfbeF zmePF_vhNVOhGgGXenvl|&Mw+drj70QSlxrcw`lc7^z8}!FRBZD@7VWzyR~R~qu#&9 zRruEbFXFd1x~-}5zik5-3108#{t?#8qK(^-g&Gh2|Dt+sqTGpPR`6YduUGNjLrwtg z#WHIruN5`d!SQPqM_B6EKo_q$KCqAjjbdxsD+uYEQD#k2SEUA;%U$Ntl{%D%w!w`ku_S?SP;XM2EQ zP8^;R%FF?Vs(2Z}Xr2K_!->y;rS-&Tz@s&b=`-uC{(Iv)kfoCMe?hhy`*B>>>%U~Z zdB%IsrO5attgRQ4*Xj%t4|LqQvxU%!vyS>=|LBgL8BGW3)0AD&&RX%~T^UV@ zwWM(MdvGAVZmX_l?bvtLZep+aW%Ntu@7Ns!jqdV-%CZ+yI$GyM>jR^s9d&fH&gM7v z`9mN5(~JMFVY2m-f6~}U_982ole%LD8p;gmbbkC6Ipn&sBINXWndggE%`jze9vh** zJ;{rby6I2U+mW=*i~L(nJtduEBeG?LRL`Wlo$_a9M{@01o2^Or&B*ay!1ewau1VjW z5hyII9cLGE-!LO*a1qzlGu)FJXV{b0%*YuK;{Ki)-uvuGpwOj+V2<$eD-GPtM%Z@E}TmIQ#k6vN4)3veY)w{aeCcB-0%i7|E;#~b5%~v&!eMf z-a>z7436o~PdWPYHH=Nj+g*^*^+!?n4(ziDeL5$Dm^|D1A8+XHGRCM@CpXN#;O zqR9X>SwdaXm6AKGZO7f`+S{@h+1n;irWw0d4fa#`sj;8QCM;Pdo9x-p?NjKHspyeb zb@jCDBkpCJpjQj|XJIeP{-%4`W@tJ4TK6)1+Y7Vrf}XjCkQLchN=*s>O<8h}85=fb z3!&x0sFhm8FPlBoMb>>;*_P^AnU!xfnmhsXcqciUUFlxdP95l#kzPBwOZn2wJUBb= z*gTlRJP`d40AI)E1M}d+1wOM!%Hb8VrF?ciJO^%4Hrd-A*R{hoXMy>0UE4}&|5`m; z~s8o(v$iXvj#H%{WBx7g_tp$e5Q%VeE6Bf-mZSJn5#~n zU%eO`hx+*#I%vYru63YnIM_V)5kt5y19*)c9D8*s{^C0Fk4vYjd){T@0j(AuE{HxL*3rEj)|+dW}A|0{MaBxMdW-N3L8EbrFB|=r>kG zcVX{pS561UO@7I@=~L{CLjO$ct+|@Z_-Q(ruf>dmXlWa9*)7Wpqm?Pv6oU)vEasqN zPg=;gvNh!KYgukbucG|SLi9>tB>vj$?XJ{#>iNy^5Iv9B=6OBO1-HKSjJAR;iwmPM z#;fJqg(m;U#$OP-37q?Z^FW&MNPniJlXj1eC*-K=Q@b%M82=)d-R3Y>k8!u zo!WW>#5@2fNM zGY_+BtJ1C74*c|*Cy$J9?DqdUpPc5*iC>l25y78FEWh}KV8JJ9V5cv~;7q(1T+V#^ zY`&gEPJGR8GhR1MbjAzW7(?HYP3L&NLi`N&Hw#-Zyj=SZ&3<+pJJ^2kPn?7N`unh( z8rbJ>F=Z7N^FlF>gXIAj%HW+r#Zfj6KpWEBoAHqw%o*@aApp67x8Ju z(|BmNmvd!eBdzGjzxJ+^y;}KQ!|;I>@QnR8LI+Er*#%bQYQZu(WO8O3Si;(u%^q1` z`8lwViz!+UUa|RMhqbntG843?nlkvWeo7g|iwAZPLqwTzTz3#76edb9VLU&)C5w)u_%*&n3Bek7}Kc|7~YU*sHuE1uiwVrm8 zH-%bP4(&~=S)iVk8h07olKH}py8a__`?=tak#S`}JA13dCv71?pP5btY^qK7Y z$9K8#^Usq=!iMJLl~H^>`=CqVbHhjO$ZhPw&M#W(z!v(@I41`JxjD9E?;*bfxT5dy ztdU*BziSP-k9;zX=#jzloer-E!28%7JURQY`w;UNzXkh!(G6zu&7;_T<%ebC)E4EY z*~$3SyNr!I6r#`FC zIcFwpAqMXz^6|Ie->Agy-h%9hUrr7qQ>^FCifjY-nvWZa%L}t#v=VyoDEG|WA+u*j zFt4C&E@d^2wZFrs0560dUMl*!vu9R*qHgFQ{k3&v>6boz!-c@V5!;3AiABh^qA=%e z@NHtgYX1arO8XSEG@S1&_}M1l>i|!JubBFg0j;Kurm3{+@btGRyFJS?xt3ReyN!<= z-^R)6|71Jx%H}(jeJs>lHSQvR4tsKJe%h0g46N#Z3wVmpotKJ^Ofmj*=@P?v&pL3T z_}a#?)=|&x-TSP;o_QNbgwJm|$LiT$Vv%DgUI%?RR>xgBCk(j3%~Qbb@WjvRdpp3R z_0=hn9~s{F#s1Cizo4feFLtvh(Tk78vX_ii4z`U$+(-8OhThL$ab>@Yi~pOF2P|E5dc4f(*3nHPLZ)xpGn13Uo+aerjHPRJE4$G}pRL-l zRg8W0={l!3Gw|`x?baCiTn{?>)k{S=K|}X8{=}J#;}y`5`ohO z+B@IZbSe1{a)4nSZR*)A=#Yl~;<{x%JVLsbY!jvIn}3eFYKVVfy_33^`d;U|YrU^$ zt=T+s^tHq`lp?P*etz+koq1iQ@D%CbJJyH(hq1m>Z6|Q4_F`WZzx;eZt^AQcfz}fG zuVSGq7|S!kbp^Q3=UR8C&avwA{j-m=CxFZ?M;6Gom(Yn7PXWERIeM{?vFsO>?ZK+m zyZ$+NB*!zp58dAF#4onA6)xWkPgVQUb^I$b+Ps-oPde`{_|L?#Lz+Cdr;qlMH$`Ks zJf`V)xYKS5V51q1d<9RNTou1q4Bh1L{VaZq7$50v70JkvB<%ITO8)!dp22_2V!Y;O z@5t+Vo@f6bdv6{dRh2D#pHr1U4Vg(G6hj6?Qwg&I6^G7*np6OVfCFuJg4lhlQh>&G zAZSbg+nb~UQr-0R3Vj=}wQmv#g6%-{1i|iWFd7-U(YE`$0!|qa!~s(do%gp+)d`gl z@b>qrn!UwF?9()KQ5mVUfh}4pejQ^|Yy4toZc-Pmu16nV zXBb;7zFcGW)Y%@!PDbipMZXl{Y^JT_&I$HZ*$1WUEu^KS;`>0I8n1<4ffi>E8}XOe z8&dz3dy{F)MC`l_@|pN;R>u^Z`EB9OV|(j0UUQTZuxI7^-LVI;ZLsx}fn#T@-D@$y zPY@GNPb(tL9H9`eb&N-7$#uY#1`JZa#LrFT>_P8aBjdXQ9EknOm6A`>za=%l^tZkz zh^657=jo75|ZF_xw({JgQpD_y7S>xC5XK~57E@#tq#HMIsOfs2^xt!5)#y5ff?515g^ z?P_AN8C|1gBDj+C)o9r-K0Z>4UOI@U*#L$Jv2Tb{#@nh;EcAk zF%z6XL(Z*B+$1<3g}}P1b(fD~cx7xe7s);$^zdr%px>nwT#HG~ z+tz7&s5#T5rp&mFazbmpz|4G3v{IMU*-ZX@w72l zTHqh|;Rj#C`0P^+nrw^Qkl27OVKTI1YZ~?~_T1G=fzd&I4(xwDb|t>J$m6K~2444x ztu|uw`5Wku7kij2wj;)uRu?uZcdi!Qw!|yM!yOj2~)276^_yRwL zz0d}+3)T3nt8&=qh|!7+^5Z`Q@0556+)1CMuNkzlSKHGhrchF|jlJ$TyvP=02jOjm zfBp~fkV~52OHs#oxAQ*791`8r)6g{;3+xFzY4l6*b{+Xwb4HSJMZP_gHiXU>VpA_T zhWE{^Wvp^IXO=lBH0%M|6#R-Uh^%AIZM;p;>_*nxm){JZb(dGd;`39drxF*S z9(V*Nxx@uTZ@I`u-N}KzneBYj>2e@I-V59MfNUPx3cHT8WDX_Xde#hgD#8kNgUkpy*FHz{g=1lA(6pk%x(go zB9rZhKduEADHUPo1-C`|gs#Z^FD=zq@bYQ<};;T*S8F$tM76TYI9^68w_yTKtaRml0X z&;sG{&|MSvxh6sUaKqyY%6yP{93EHD!}^lAf@?T;7XDJ=3c~kkv1orq-kfg?716Yr zqoRXmugozUE4In|$Hs~ioIl^sTHJ?ymWSUD(sr*Q$t&@hj~hk46}z1ze2o*EqkqMn z3km3Hu{R`6Kt;spg4H#YIhLQwnWj>#`5uGUI%#tSHfrz`IiuBzR{D59^}1-sOrN@p z&{Fz~t=uBnFP<0Q2HHSY*5thd@Nk_*=66_3!58VH9#e2XHc+!Dm!c$UF$HD6&-tFJ z#Wv3&MrR)K#8B;d=(DsZv|H%G;C7$Z+a-2k4zUYQV2fZHt(J&gmF$UPYp1<`j6RY7 zv#CRT9fj6L@fMgwE=>6kbefjj)m_LDDeHqahaz`G5EJ-4Tkh)Z;6-3BfZl#bVCTGT zJL99nEO0S*5?II3$RuKXC-$s`chK>(It1t7xV0uFNz(;nQm0;5IKDmTWAy$@8>^t% z;dsAmaQ|78W_-JI#)bO8{v!K;^i%pR{g-~{Fc+l1a({u`A1pY+{?8)%(i(o3(s${% z>`T&@b@W@-hO8I2tPjpi-OyuM2m0BrfhHU-_sN@OJRiEc#Y zfo`H(x!#_JZb9@5Y02mq?o_@Jy-V=hK)s9TQ(V9)@{#B!wmlZLVhs4aKo^s0@re#b zO9yYEJ@HWfev41$gO(1C`qNigwKEefo%;LJ$DWTtGw*j7*T-~C`0a|p_Xmk=C;P|0 zzZE>++EyQwl^W%qOL&u;;bRuTdpsP1M~~|-G5t?qf2HRa9`gB2d`%WrN{)`av!=&lsb1+?~NDBq;&>1!XmHdRmmj`B^vJ}JHCx-#@h zT7L8m+wKj@u%i1J%lwhJE+dsyzu5N3`Sg*bn{vy>H!?PI7lp=)gEwURU_I&7^T7H1 zmQX$Df_~A+xb^2Zhvi>=KL0;{6V@(kw0W+qTh^+)`M;gEy5TJZ_cBHw@_Re!!b?6Q z>F_{G-oHpZnqNHlw$dbWj+B?Y|G{^eKb&Q9|L=(ApHipr(~>4rAPSgm3MxG?;d%B$2aIl^}XC12`*lf-w*Jcejb$H ztN9I1|4V*9GEgS!TNjD%Y#jbK@%Z5+;Eywcvx`LZHc8sqh45{S+|%11Yp^;PYw*K2 z;r}?>7dzG`q0{Ne`9i;+@ngF|85_1gV)t@<-LRHg=$d}liVD4TS&#{LsFiJ9bqh`P z&G&X5Rs3=vsR^9)ud{|Y-|+&YPel&h48OXDI)e2@w%iFVIgbDTBG#YCYQgk~mRjb> z1?^;owe!=9wZq+Rv{NJPP)D#nW2hZs5zvnKU~fv-zZrtxI6n}1VusLxH;qkS9OZsu z{Fl!C65SuLYx2tsTkss|Q2txsp0WaKBCwV{mfO3QJTj-7W(56kr2fbF z9h|%8b$l|P2G1ki_ISWNdRz&Nf))mGJ-kKc$?Q;2!X%X?v5BB9$?AL%%bkc2#DfsQG^WV0}x3KvqIMvG6p3n0W@|c->GMAj;bMTH} z9+fs4q@J+(bpkr7)$`W*dTPj{`xj_qzw>0x(bv@0jwQ|p{k^A0;Gv7_jdo%Oj0zI-e$vl!i446l=(e*NqUOt9QhOe(~CnGq7 zSFIq1tajfP_63z5U7f9aU2W(tFoSj%Sg~sLc5_#8A9|Gx?2t#P=p{-wEbN^3(!J;ddh)=B@aREZ zP-64go6MWG!Mpt%e75WZLMQ*kTX=Ax2eo&?F9Gvw$bH@DZ-kHXAlqQqs@X5WyD$6* znsIu9>N~?Z?8m&(A09az9Ys6{OJ>2>1xHKOSWiB-es@o=w{=s#l{O}D z$gylyN=Z64H(R5Xv-#8NY@TUe+jRU+;?a#QAh!7)cg5c6miSIImTp< zQ*6@F<)go`-iA+|$PP2HWwI~^-P#yfdQ{|r)V%%IrbX_*?!?P$uRU(9xvuMFVo*em zPp}Yw(#mUBSNQ#*{7y;e{7}h;7WwiRyX)qgHywWv zdk5OfXmw~YA2FsaqZQxjsmh`K?%Z!ylD>U=>F?5>Hcd^RQ#R!$;@$2(QM&5P znwy%>eslBDGiqGs88trhW5zEITvyQEbbK(TADHA_gHC#yMXBsk&CaPN?&-YN5OWXu ziruV*c*aP^W-0maR%5+Wm00gtv9&Xpoekh!#^e}gJC=H#&n_V{vV#=OKU2isVMuZLD>p5WuSRmS4LwQ3~%BX=pvIw%X# z7N-;1GW$Z>B6M45mwsp6xm$~%4~6W9H*#N4@c!1wm*5pcdy2Bg(4wp%Zp|8n`*Uip z6JAQQkJ=ya`}A(^ox1xslvSz20F5z1V zUKl^hXX6a-7{8BwFv@ogt5YkI~?ETQQY@QoP;`JTcR&6sVBy4 z53x-}_Ps2=Sd)E&_vegHkThj9{$OhHYS9yClpyOs%LI-x{%dnI~+MleMOF3 ze?7D(ix|KAiE~dbtv~1sUxNaChQmq3zge|AqL2@L1T! za8^^}ufq<_ggqhj#A`ZR>M)tdB&48gTgq6nPw&pZ)~1ycJ?8J&6OU8RBSqFtFPdu- z;42cPPT9AI1FM4UF8!rG?0pymaEo2)CfPG`$t(L|xSW{AKBSiy{@@&TM3SdHtlqPv z$@#z3A^VRW16$y@1331Rrr?M1p8^|rufaFHhrU@AWOZNbp|D1j#2{U z^w+~V)pG8%WImtO?=D=+Trb3bWgdIuj&Z|Es?l+-LGQGKdk;NoO2Uq$$SbXvDgODK zWmH3B*q;`~SdwSA0GoDJg^pL^b8C2O7}t-tmB1!r@v|`a;nBs`V|V@^$M)yDOZpHR zd+cO3F)tFOpXu~d;>P}%|2;wd`0o5WCiw2-|9aYf7QJal+UvGM#2f5j?~KV%{P!4@ z*$vqL?m~ZmGw{ZyzhOJe_cMHtou>Goc|O?=#Tn6f+A zADwQGw%6`pe{^!shqKC5QoMBGf@*VgMIL?c<~;2|U~qyj*^`~z58|vES7Mo@XtBSe zv^y)KdQPERvrbd(oja5!^rxb;-<^Ng7!7{yciRMC9`&52&H3(?jx)5kku|)V|NDSx z5C2;xuD9LnzQ+-le%O{`7=7=@A-jie>YGN{Y2bl;@mtk+k8irqCU=#*qmI6JvSGb# zSFm2~9+PLOOTOL1x_PxKx#UL5cF?burBXK9v!1y8Z_vj+`k2OkY~{Rp7x>+(#&|Z& z4Eh7Ls2hf?vjv>$b##D-chD`;-$l%w8G0QJQU`Nqy}I6(CVkfN@$qH-^WY?VgFeq$ z4?%qW{roz7oA0u=jxfuK{Gyrs9fo;C#rX?G3#+71m)D}D9adW_MTo*~CN zxy0fadK|6OZm^%)f!z3P*m#~gA5-W#;1fDf%bfoM{yJi#HhAw6{umzVi0pwD_GyVV zhHXf17V^Pz&X7()6C0tA%UP?@Jm9qlc?UVf+Dw}E{VDm5EI5xk^zSG6Zl}H+RXr;< zw`SGQ?8ffzbI$$@$c$~2F;kzD^KeOnU+#g1E|UA#nlI0@m%|$tadw`f8hTXr)u!~k zrjTs2JAcl2p9&AQn*MEvrU>oY01qJh24@ffInOLZPm+qBMB;`*Yp!ZchtH-yle&LN zV*LIkTZu7xCpvVgx9e!|4rOf(>`m9|UM6Epy?NAGSV-OQW)HxJG-9ih!uUxng>Go^ zt&wsbhfe|is+OwpR~8cYy*9zb8SS_kn}`jvY4tQ;ANQ1c>6?i?9b6}fya%jDgqDlE zT}WH(Da20YY}8=3c0Gn4{`JcAx$xTJhhR#3)7F))o%NipVL!04UfRnu9l~dEo>2mx z<8zi`gNd)1;6U_VuBVhH@n02N1Wx5pX0U+cDkvmeG*fG3|vc`eOrYRK({FL>S# zoOa{}3-rH8wU?W*Qz!#R(C>ioT`KMAdMw%36$QHq=1l92`k7r&fAI4clY+RUzH|K6 z%iy!7&FMtu;4djtQ+{PHd(`tkV!y67sM`K4xDtM*44SUXlG3)E2>(*Zd==i_f_;;e(5zl&_eywkr~tL`|OHHWHN9* z51*lp|IUe;eWHAmvztQp2eAQ@`Sb;_wP80V`t|5gU%I%13m$Btob^o(p3f4;nHV_m zDl-4;UJS0Y+qH2OUx`cm-=lwy7rVoz$CSO>-gfnhe(7=c zXjl68GRRa1^}?$c`mUU<0dO@?GI zJg7Er#fPO4x~G5Bf1B7pYq8tc%3YsZS&RL?UTzKT$$48?ot65xrSx5BQrI_OJ>Q%!eF@ySjtx4*ZT*`x`3q)Sfno!|5sqC2A1%8G#X8r<1d8K73zGP^61Yr8$B1a zWAJ_C7oPK}8og*`%re;T3gwPyaP|~9tAVF}Rp>1E<^F9=FYwxwJi7-u{Gi3^wT}j8 z>F8p>`>PgsX6FB^(A`q_u^rIM{nS}6{n5q;8wqFuYxb<%RgeGM>VxQ`~Q zK)SAL6yq(pHXOm<4jX8JZ4$P8JD~}afw5MN_FAB0g&{d)J~XV*ocj|KdroXx%$P3D zH*2XAzHgEAWfy%Bn+>6j^8W|GB(N>xEp|SpOVA?=bf;c%%+_g;YnWq}*qI7#4%Roc zznT~Q&5jUV6kj-5^H!dnYLvGj&)&WsSa;@4^>%=h4)(}6>Xf*|J~g^MhqdGZe|xZv zkaLxI(#7Usdio*TR6}egI;Hq`h$koOv`=JvXqTsTs&^VViZhsr{}9&$t`;4#SiG^= zh09)CiVjL*U9~-;+TUTU{*`$w{V>6QyVyrN_qU zTwz5ejyJ#i)=B)L2y_pT=pKe4_YOzyH6iz!(QgL*R1!yHyY+o^L%=jr^z!J}Brd;3 zE63+LBsM>GE!ko_Bszj^^!=}_4HNM+a*QS|hS5`EI};YeC>^+jmJ1#G=Ak0mETrul zf#C*Vxt=qHIh-j3dEAGY!+pqoZ*x!Wld;OInfP+Q^!?b9y;CeDjhCBB?A7B+x`KA~ z#FeuLd2IL&Gi~&iYBJcy{L3=?(~YFJ5f5`K@!Hn{tI+Y!h;1Wd^=F&nJ2)~o`-Q8c zN=6dDD1#Un(C!4MF|oZ=;!BX97^K>`%Kj?lKL4BA)P>v=(w`Hv?R;CE&nImvq%3&R z%GQR(RFbl0M&(NG5M>>zv!h+n;CoUUZ@a%x-q|IQhz@Vht*w3 zUa^reui3P@&}eS|oVumWcE&7&c_^{nU97(%{QsLR@Xo~jDEf8%W+!>Yw*y5u6Aio`*LhuE0Eaf^XJ# zyQU)FfCJ9^9dZxA*yxmmtyc!^V?=i&wlNYvPU0R3FCp;hWp@Iz=p@7zN76<2EB|#I zBm?^w%akUeNy6u@0N#=4ytZBw^cn2S589V>ejgic@Y;#q=WFy9z4!xaZGaamG4-Ur zHsW86#25Wm@b!*ilxHq^+Y(e_QJHp}#P-HjFe@1U3YoBjcElc0(>t-o%Q2eV=%@4r`NlXXHb1*@Pe@KgeMc%OZSLn*L_*b1*TyIB@5-)lx z9iQ7j?^`7FQt+K&RZGI-U>*H+P!81NU|lm>@&65f9BsXa#lgB9m}R~H%!q!EckOV_ zKA}mnPY8d2t|Xw935$U>nld5-|AscsiHvEyRID{Mc>l&SbYR$4-gt<6EaTB34kHE@ zHp{i~+=+tztu_(gKK7t&(S@NGt7lG~LPqRieQbpXE+$S%CV8WP@gw3+Ofg#9-wCbV zl_7dAKHELS2x>q+dQFYWl(-(P(DJS5k_xaHn@kze5p=>U?qiJGnMW(pad%W%(cLHu z-XRwCI&8o+J;I*#wkh!7qI-Ca-=5Y<-bqHQXFGcivE2Qps#?n|?2qikqpCqxWegU6 zI$R0V0=JA&1aZ5zA#2L~CC^3Tc8wk~Zr8iay{jp+m3U{h{4TXBXUlMIoK;;*K;d$=~KQ5pP^t&-btO|vAo)$*E0Vk&qM!%m|nsIKk@SB{+M3BrM$#7 z5gdLddgpV*^A$)*BtW}XKa7vd5bFpUJzM@%TA&R^ZTi9m$tR zKO{EBba_+%x5ea>Hl&WT)b*QHiJMAOl?om2qCYRZXIz3kSMgbRtjPYSjE2m~YU$n< z^l$Ujl)aPlLcjC)y(aW~4ZpdEPs>AW{mJO-g83EyWX|8U-;w-A@1p%S^BWzD_M2EF z9%L2!8vL1gxKFO94qgNOh$j=;X)et0X7Ush??%onvxtAi+Ck1Vcs%g7BG;Zomy>Z> z@O}W<8%&oetMc(*6#ie6dke&_BbL2Ajy*n}y`K9cZyEugk*LK)KQUFooiryl4&vu<5@^II!#0~p3c4@yf`ua+hfZSEnd8P2( z*g0?}oRyZih5Hk=|2@BqZfZuBbs3X`e8F_~M&P)Ec$&3V_6qE(JEx(0tycU!Qs`g)bvO6tOibJ&eF)ID)V*~!u{q%_w`Q^5!Aqw= zi;DO@YERwflia&`9C%M~ufsahig)AhS}@zI!9+eMx?kE@D1A=_51a#^t-DCsYs1Tu zuRN@5+E8V|k>2j)@Upa9A67PT&A{CAX^`;(pJ%N=vwSq>At8UAIy zYTC?Wp0RKFoX`*a>dy*qohjvS%-uVnd}Mfe!zIg$ers_1ldAHL!pmpwynd2*IdGi% zwK01+X{ShQP)B$h@S8pLk}>;Ya0*=Ea4rp=`7Hc5aC`eF!)F8Q!djm0cagWw4xjxt zFz91ak1aDe(8gpl>H7TY{E;HQ+}eEj>R%MG%|60>^mlP?X;#h6UCTHVsbc;yN3i2y z4w}84-&F!KS7h(&uOHekdz*~8(AyZnJ?pLU$tM@KaR*{7xS$&d(zjly*f-HxvKt)KOsi5irRe235mKa#~|5 zT-X+*d>&CTf%$p*C390(f%rc}d%J;EVp)wo8?oR))l}R`xiiH|U~~G^EnhsY__qM( z{sXf^cg~D%&WBf6VodaYVMw$R!}Dw!^WpSMMNMalv6Xy0S36r2yvllEePnjt%37?7 z-D1j{;uV-?!w+OO|-A@#~U1J?`XOy;Y90iQ=X>-;=y z+&H_md^UXc^009$l6F~h2L`RVmCtIr*(1sDcCvoUS+k`fUPI`C$RifY%6Q1!pBtL{ zlbHJwn@^kjoCj(!G55s}OU?)79C0pXrLUvdKV;k$mAmGJ-tgT_+GyaxM(!uF4nKvz zN+!Ol^ilLcYnY?gQr^n=fBnmOO%}%7grB~PF-xh4spu45oH^lQPMDb!87&rVKBSz8 zsIW7RJs$3EJQ1cutpbCL zpS1fm^t{Ido|$8vzYdP0iL&^#XyaJ>hP|b{1nR?bR4<-d2N68`BpT+O`;Tv#r<&L}43{ z919J-4!JGOn(2hMb&fO5$aH7y#fRUQqQ;#)!Q9FKhI3b<2l#{Rxxx5xyP@MXoY~7a zbc)(~6a9hkN8dcOh`qjqJ%1s4{{nb`o00EtBDQ+aX0Z7I^!WSJy&2d7sS(hp%haX} z1%1NIm=fUg+p!ffo0LE%aga=QV$YK1=H6s;Zb-iz75r{D5l5N!i_GRs&bl)X<}hzB zQ|xus+ZJ|nZd=Z|t@sM&uGwl6o@Agek)e4Jyr{rj%Q~Hzdlfz=NzGgDt@=dPi%G59 zY$rxSBl;QH3k8SZm~$2J6(?2+yiqgXO8Mr24rcQI95MyG$yMF(Mg{P{WeEn~(sYA% zZ_s<3tKP}jZ@p7Fdz?MG(J->z%zQ}6Q_h-Ln{DWGn+&FQ3vK7HX6<|GHw)dCG}+(E zX}^&6g-2mMX!pf5l6H{TV)pH$eHq-*>1xK0n>>1qpmVpr+$jD29{9eLEY%sZcQ8Mk zAF$-E^A~^g@X<-}7H`9K%#pIB?5LXjz&zk`R!!dGWQ{bq%Ny`PJVzn)Sg>;>e|$UJFYcTPUF5t~&Ly7BgZ8;+6!;G^Zm#Aze%HN5 zzxxlgm%q-R;m&k?8*iUMIc*Hmh|5;g=_ulkwr*@;@R{H&MDE<;u0h^6@m$Yy1JCU| z-{q0WRt9A}R0r#f_EnO>}PMyKby} zjl812mG4q_oic59A9eOopXgA_sqdhc$E?*CERX+eI<{-%?_U!tWR(Gr8M?JwblkGEHd~)}gt%_H5ttt{L;P z|H2x1;giw6zw`e2r#9a)-p4kN_r1kC`O`7JPO~yg#@>Bz0dj!ZDzc7yRspdJYOVIF zCboCh~uNW z=!5C(7@yn`m{dgjH{=D%ST9RiFDEH0esb^eP2l+e7_{~!4{J!zBYUo%PhuhKdB1{J z&~YT?K0w|IAjiIsPM~a8aBXUM6I`h#4el@dakbg@ybd?t&f{vcP3Y{;z}FYlpB%!O zl1dyZV11Ww?~$&-nV%PMhuTSvR@ukTfB#@qUXzxG@hvBpXdv0Q23~V!e95>tk+}~#S z7;d%+9?nUd&hT;5`#F-a2y0*R^pD%ndEP*8wmkop$`uP=scb+e)v&l>$yUy5-JIiI z%{m$hui#nxO6BsOyiy50^mrC~mxv7sJo+NJ%R{~|Pq?sr6W_D-^68Ynb71)*be7lX zJgs#iZ_xA<<8z_Iv`SJpHscQ9{_&Yi`U~S|r zXTS&0-P!ndLh5{sI{)o_ozfSfX?f(8{+U8$@`)7}%eTKvJ0l0SBmI+hw*M{Ij*GX} z4rNC3?M-Rta@zUf`F5nw(vC`AX{YV&V3~Ymw=sM>LKzv0mGrqqjq$WBUcY1?`3{25 ziG1gdpiwdwE5JuMzTDvRa{W8FSV7ropEQPC5?<+kFb02>tg8tiZYa zSLb1!M7dMYa)EaZ`32s>P`Py-?1SlTmF0J~RdR2KM`F_C@ZI$(>6erK!-46IpO8MK zu(Et*VPy{aYhLSHw2`?ZO9jR@(r+Oh7{k*WUm^Ybg_Ry)6kOH3 zOuRnYD>slgVPIZ?t9%&gBL}7z(sp?ab&LC&>oLz zaqW^6@X^LM*9W9uJ}{koA{Mz$-&iT*mLhY2`=f3ZIDo-JUk2cgZ{@(?p)cX-ohL{K z7asZ|I96%#Ee|ucD4>?gGaz7JD#b zrp8m980~}aj?049I?YyZE_Mv2+(ciYf_`JpqHJ?+Vz#+vQFiys%5(NA%NBFI+G~C~ zG1~+mYliQ{^8DJ=xSDG-a&xmY=5P*yJdpt(XqsDqJi(r>W|Xf%wl$S44yIF|@XMyM zP#f@{7I@m?vsFhK&-PSzk5-?Z`s~zar#?INnWxRm#=dM8x<9QRsl$RiW=c-dU^P*X ziF*Xi)MXu;rH|6KS=#Om_Car3`eFS#(TAQYdpWU~Ceg0g z2y}5yy_L2_CN@*XlDs&(leV!7-ID23dVwd~{581l1=k_@z>aJna;7~_>9t>m-kScu zs>IFCOwG+Mq#QhP0J%9^lU1}b1%4;K4$eF!-gL0MSNlGAOsJz!G0oQS9~wVXJomPY z3ym4=Yv0-yWt(1Oj6df68E<3^8Ed=Q?9B{RA1#`Q4xPHP)VSG})=aMxTv_O^DHq<( z3?CwPbDZBJQzmNPClB#`vJ!7WHYqyjcF282=7|I6%n9T@(_M?RO^q`DLNb#kA7yP3 znZfK@oNYb?Y}8?)U8mV%b<(cH&@=4>ZpxYd%v;$(I@YResGa2XW6-b48r=j*kRUuuhZIv4A`N2N^Phj6Z1nkSvWn6_Hn;Y3| zG4$#Ip741feYs8g@{6!Oq{sf#b7AdJefWN;4^REi`+&c}1^Aaf*y)3egY?7x`6EZ| zjKyO1um^YskBQcwU9VIY>0^@r&-Z6OaLBxt@dz-N+$-BExqEfC`#`8K=tTqHGMBES zj&IZD42;8 z?dEyu-nf|D%IS&9f|KY_QVa&qWy#LfmnGk_dXk}Gb8Gbe%4rYh{PkBN9+fNMMZo6E8@n=N0nijYZXJL0Xy0|Nsl1^qon66 z5t$2=_{;_9pqz|Ju%1^cx5xF)UJ&0q%Mcai&5wGe@?>1^tPSAqRcMoQ%{cC`$*uGn zxa(GY6{AevqR8Qu!h3aMR}j57-*4HU?~huP7Z4wd4epg8AB)_dh>yh^Rbxt?rM-@C zZaw|r~whkYYnS@^md z-JdtSjoq3b$01wC#5ZizSKP9Om{VbOzJXoV$Hv&=m|^ps+{0>Z-=1YXZH&(B7yxI` z7et5iHQ?L@oE^Z~;a(1$FI7zC$Y zXFYIYOH#Zua;}s3_ST~9c5C(aEKjTGiPLi9OY?Fo?i3yZ+{-wa!T(WkT8&MZ!uVHX z*QN5V#pclh?iB3RdpIXxFFut2^fb+8e*TW6O+Wod-%QCnOUx184eX$+%1GsA?0oOY-InU*OD9B0Xz(cN=4x<-Qe_xs=9S zl62*CFfLn;A=0xHonbfr8Q2AkI&qycA{JeG3U>lO2Y1OlPJ5-tXF=INa zVn=kS5%H(9r)}x@rs!w{Yim7oyd_e;M~`XYdkfz`nmKJt3*U37XX=5in{TEL4|Pm^ z7<+f}c*tX&GIh({dJc9GR8@MC;98`SzC(9FZE=G)l)YylX$O1M_*NAHCb~fHk_hQ@iC^|A^9_k z`zifYZ_ZsGL(KAX&eQdRZLt*N(ZX}f*AEuK92Z?Je8 zd~0mt<0QD0`7j1tnwcARbBu2*@?tCL8%W1?zEbW!?qN(4$@4gA)3mfW(qfxqNi)Iw zYkVU*d<*9n*3|rf2fFNWyLyZNqz0^)h5i3rMV8>4XKC>KJVV)kq_eN@6P;%ixhD&M zG3y->n(vn<(voTat7osdEW&R_hAP6p(|S+5&-6#?Y2*2fr&kRe|8V%-WvcRx{r<5D zGAB8^xXO+Xi+QfmZ;dPPbB?({lgH`TK_zaMSxufLJgvQQT!Q4O>l-!O^cr=2tp^ZR2ppz;6GKialKPb9CoELyuKMQB^z|I>P%^5}{Asd66)JeQrmnV(nj4w4vECucPU$UG+S(~qzBkoVm7UOi3Z4|8Xp#HrzoDlA_jJhkKtrD^$+ z`7Zei3$&QJrb44%lR3~On{t7Zev8cAioHV{`@9L*8LI@1PZyp&274~>&mG>Mm{(== zT3Xe^at6oUb7$8HoRmqCdgj2pBfFXB82y&J@&eFu?c8M&GN30u%4^-J2D0Gu#O6DS z^A>NFb<132wFcGdjoPgSoMvpd_-z3%mc#-;k*vu&8ES%sIaZ%o>B zpCR5?mTu6#>FJM>et$aYmj}~{7JqaNWhbM3KT1#beV;bOF8dDcoz%QUdyj0sO?!`OzD0W{H!srOqnj6M zZ(H-t+Ivj%eC<7=c`omu|I@|eR%XQI_L{+$Nl^ldVuW@>dzjxct`^pIA!ou}=pU@; z@aKZ>a_-n>57hE@hjbNbq5RCPBT|NS=fkenH%YN*dX){x$qn2A)e;%Qa)`3dbGaPz zU2exsoDDYMFD2>1ue8YTDnrRm^IU5K_7zdCOs!459q~037=>2Ine6tjgK$c_MZlTK z6SUK?4%x1>HJP=x3!Tfez|;av9g(qC;eRe{JIkTlcSyUOK_PQ%`0p@~Em7#E<|qT?eWdAvl=!xq;1%II%&=3mZY_tCn*h^ zW7Yc25_h2i*jjixcy>lcSsUPw1nvg#66Knz>8C_DCB6s(6XSJQU`Y$ZMfe!Z1=sVy z^?bo~Wb~l=g8DA0ua$GxaNLTWK|g(`Uzv*83vJ7Wc4b4evOU07&OS;^k$5MtSzLBU zCh&A&TO#$Xp*|gF0$+c9%(bqU)#uEiIYgfR`6lC-dUNjY6k=PXDY?Iw7#C@#vKaIg zyVF|>zESqyIVE-5om2A2Bi{#b9Gzn0Ws^`IN`sL{pfNQ*t>S$-9Mm8~{k zH1M5e-F43d`jQ*z=h!QQobIU@Ra3o z%JZKYBSp^9?g)8rloB{OTk)SYI-A7rz6<-P$?!@$qla0iz#Fwk54XM;sU#eW9Dik9 zm0`q9#KA7-eNR>XPoF|A%)2&j%jPQMh^XzkO%1JAd+)9)_~~wB#Mnn-w`^gqnMfPW z`*#Ti{@T08mi&5Tfq(hRu_Z5=m3vn}lg=2|+uq{$$GqpWZ+v9jV8hPLQ@H)+)#yPN z^}!FGCT%J>ieaAi!E?>$_j=aT{=@TDf5aJ5;HcW<0frvp{O*{Q8`$=b{J`W0L;H5K za`iVbyC(>d_?HS0DByXi7)s9mWw!C1C8fmiUjZ=unj4F7-fO72i+ zEsNb>oH<5|BiDHoK9%1LuZY-q+m~V|+_|(b>XM@6gJ;!^))?Z^>ytqG&MbC@pVm50?p~99f|UF|EJpYS7>tf zyD3_{8?$j#@m27MX2w2;u`lFoSvx0s$c>Lt@SJF?VT7miimf(i##xDbi|<5vZ31_Y zCv4qp!I!z|7B$fL2ZP3AHXbneGgXVXd5Id>_Z#_*eH?3c2fv$#8U3YexL=ub)ladf z$YejlW~;&qy|5B%q1j^emm`a?*LtkPs**D0=p!;iF|C%PD{!X0X1k**p~RCN^wpMf zl5aWrCb^euI)xRQPT_UimLc-(v_U5spO*0j{@0PEwyI-2t-!OB|6An_0)CgOc@=kM z<*v>n-k6M|@TuBZzICOqfbn>YaZCCAunO)0TXZSh2wns~;kd~FH;p0OX!d^-asz3R z%BDYQbK!>I++i;K*RP1d`aoXbkGy|t80Ig<$7s@1$UFE3x`6vQ`1?KImJG)qlDX1o zxWQjLlK%XYV-*gM%;iSrdL#UC8@{mHewY_{nl>7LlkaajkncCKKZxH<#`IcSql_nW zy_B_{25o7+1)DR*z!{2(0uRYpNlcXSB_{Zc@Nz}0^X=4ae;9vR&REyr_cH*`m(BEv zu13o8kKiyh|+A0r{T3%J&ZNJwUqDcMbLFaEN>u^-Qg;*zF-^kCL!{slX8J znT)Q=mDXlUA@)fvF-D{xJ6MD5#N!zfezP^9R4vo=IL+zw7u`n#G)??m`r#|P()TCe z`x-sJz6QmX;b!vuHXYfL{)%jvF*Arap>fTB$mdQYQ*p}oh_8#kn$(p8E>5z({yNsM zDV113vS+r*Jx%n@lo#~*mvd=3cQXalc+(GT38qNS;aI;4GU_gHvF#s*KrS}oGPjm~ zjSn%gr}XjDaRW{?Uz8~PhCQq&kqu>hCNZu%!H27AR7v!>l!TTe2EVjzt;+T9I+^c( z1HNjP8dF>ioTrKLg70p^t}oF~evw`2GCpp5_H?Abg*+|)F!*1O zR<4S*ylz_oPP(!6bt1dU(~S((&AzSw7aZhr7qm*eDUII39|*mDe)xs-HVylbr^N<= z`6V>N0?lv|yG8%qOkawblcIMK-~^A8aRa(ZciXh%st;?c}wSx0t+H%-{RS zTcqVRd(6}8Y)#Z@QJ!9?@y~q2KeM8i`5@zmKVCp+y+$iCuJSn;k0#bmTIkn2mYoBMfhdQyv-Olyrj`! z^h?_(pa&=6As#TqY}((`H~V)sqyM+#js9AcWF~C08xxFvm;QSsYn(FnS=hVAkN4Sc zzpvMvH>_9IeP>tS3o>`U{HpJXx$K)_-}CGzk$xHTrS$Wos+ch?CnNp)(sC=hLjC?o z`mNK*hiCdk=e80W6|2-PJZnHQ|N7Ig6I>EAr}3eERw z1AUWtOS{mEpC*4xP~Ut=^v$okS2(a~u?nBi!XD9r{#%oYw6zt*+-=b2uK1U?zM*P($+O_C0le+J+~}W7-&!(_eqfz-8l9i$)<2?bA7!Q7>1Q6d zozY-=!}cs?TPP>_r{bsD0`1!e?Nh-4vc*E=MAlHOXUfbCHu3+Hx@D{fe+$pI3s~Nu zy?1Eu&@&rsH@WY2bkN>uaIl+i602(0t_c6G=OX+u|IlJTY3B#AmY`n#aFwkDANOFp z(;v4hSL1n}@RskNYD>uYt445#ooV;MWq2k+E%-W^I?UvwsWi5?r@(&R_+mDEg$+*cHH<#ax&KT@d{0 z`D4ge%o&K#rC9Q>;5=vt{vg%d{UT=t!ZSso+mgAoJaXI&$uIflxmWhKMDKsQCGCyP zE#H(K6`io~`BBs#Lz#BfTD)UoyUp`GB|%_X3QxKN`m;hc74K7{JS}?~(2tuv_C4z* zMy6Hhh?%;J+-{BTS!lz~og{W(k$s_>eZdvl@0)}-K+Y6;)Qp}}=U>hmlug*@B{WVc z@HfIQZ!z}HlKo9+Uny;^z(%VX7VMic z`-5YNj0rSoJv3-1dvQa2%0fH(naR)qIb$n=jtlMH`XqON;H%t;|AY(w31ZVM5S(=f zm z2=?a)e^Y*bpgDh?KNCBYLhMlFw{D}-n3*4Fa-!$%dgy5LvAlrj+VwP35x=D*x0{7uNA}~!DF0s|be+8TBPl4@pu${5k2MHe}b6s%M0FKs!qZV+q zt4dj5NB4xi6nKj2$CGmi_cf6*7aQP2@=7~vh&S;rb8a_t?fCP38VrZP zWA3|sGY_ju;?MZax!nT%ODZy0hu9Wx^o&mR9sH~>uH5Zn-weg>`3~!t7y^QS!8LYY ziFLr`=6;=PfZ?l;`ev51f5~_8xfh?It^9AKTxVE0`G&B~T{vT#!2&6vAPXORV zNiz}OOs_}2i66lly^QeGtOpD0LDr}2|5o@_&EA@IkpYh?v@Q~QDE-&xiII9_o@6jb z1cp0!9t^>&@p*&l6doA)N#lVFsZ(gI)LBcrTWPZ%+L{4=>S$BqObO4F$oGe-H@w{f z{$IvppmdZI5`cUEPGg| z>Hm9sSl<7oJq$fZ{~nf0JW&}F75qKH@BO|Yjd_Xro_nru=3eG@IGuPXTABGnneYEU zU*NwOU(iGR%}enGEsuTs-u!=yFL-_Jx3~Qoyv#qt7o;;E{-=DwQy<|2JBTk3nl?IA z$N%oWsg4frn;EOH^=F=+;5_;S;~_H1DE83(tAq2qPiRM1-^|Wf^jz?<84tt%BI}8r zgy=B-hHgpMX^4FEDYAMQvg7!tk~Vcwrp&Pax-@nFbxRF3*NLrw{Fm6tYA8)1EiF{9 zUZ2#j*Lebcqv*0e*q*d0;_JRq4LZ+&ZIhh)2+uC^NjR^+5}GSELmMW(Zqv?s)&%7k zowsk-Y=*4GEs^t`JE-F$c>5iy;@4$EWQhyp&0W|GHN$_lz+<)`GqkX0ioBTvpJGS0 z6n-wqf5!Xl?rzP#NtZ)+0jr#iN?wseMQ(A@h7%rlJ+L~7J?wFyQ|RdTt2vgPp{8 zY+RV(Rk1nMb;yF#&EWL-{e814zU&(%I>Mcl(c^+HC(VSuJ4GGl*UqXm`lVn0F%Qqubb+e@C`|2h$%83j|EC5Y5FV7Tt1%E^I zC(X2NuTn<{ti|jpwZKsa9KwTnfg^>w!g(;MQ~0n>)iF!@ul3z=wbu7=o3KA@Pf8qs zpFaojvlsk_=L_Qb!u!1S80ocn%Etb?c{o2z+-C6+$0+dM=lY(Ib742Uo$ElpA3ws4 z$=^-&6|+8V0WybPQ!WQaoI%@f~i!9Igp@k?Zo3t%ssrOllg%!^LwXdUAn zen*fxGRTh%jxD zle|*5F2~Phj5Ylb^w_CJ7dtf?cfL+HG_D&O=Zq}YXq@OBOvDFtv0f$4#!K|+i+j_3 zu3h-3T1I;9Pd@5TQqA5I-^Gu0LU5el#Xi6NlfEZRo(CK*3-QNpf7I`a;k^gnT+RfS zakeb^g@==KRo9Di{HBS=Y=x>a>n`x}L%xe0y__Y>-3ubOyieZy*$Wl!zB+~v`#TBP zIxvSNUp6u=wAO$B+L69S;wOn8uzPJjJ^<_dx4>uTO`Nsm&gMklGR~c)J;|%(dy#yP z1@mcnj-1aUFm6#e+lcX`pIO!d<9c8;q5I3Y zf>>3|vkmA%>i&`Mum3XNpM`zxT%OmHqP-o^(+=N6=t|8(Vv!~sW=woB@!oCNyAn5! zSbx|1w`04J{xCMNmf@9|uMV%A8Z*2yr(<~KvMOcFT@R~c9=&#rGx9q;N~HBso;i*= zPST1mGYqeMnzE0P?~e~hj9EjzG`{CK@|@VU7N;E;Ub!865UG0^^(^Ci1obFNgw?1R zt;-&cDUmdu;t9isSN@W`FF$P5@|7uyRpGnB_gqCOPW`Xpm14irB6g@kkGXfpgl>fU z<0{s0Rw+2BgErJd8+uq*4bX~<@kA}qeD(=0ot%ak7bem7$LNMS!N!=@y|s?4loY-&X(1)lB1qdZvtprbCv z?5$^fIxQw^;p-V*3%IW*hO6`a>-|>nw;cQ8^^DzQ^YF?IjNg=l!z;6+8H3k{SGF*Y zEmf8=&sJH-oVm{HyeG%&yjhL2a-WX%@$8$Nq!mw9hgZf@PX~EB$oocB?3f<%ddTC= zE_T9e7H72%ue5?+X{&|0TKIl9bve~o>pXbDma3Q%N#iM=jGeiOyb{~VL>m5o_~jFG zh2OQRsW{_L!z;%_KmS7Co{AB@pV*Ql!GZ*3{fWF^g2vRwB;kknN@e}Y>-|M;^O&wH zii*v^VUEPlL;p`*DfF|Bew*pHiF#Y9H$5s?Z+M+gQ73VEe0|U|^)q~B$$JO3i*15q zLyRvY8e8b-vEEG9o&`SAJ{_CU=}O>J*6*9#15kS`FHrm6vgR107y~pjv0wM}%P`n$ zX-B@Laqe>xdZ>RBJ=Yq({hjt|W5#;xsLzb8a2@rT&r0*|Nlr+<<{|}F&?!x-h!(z`jkZ*)tUH!K%Z(1!FyfTN(|rQj^O^k6}}wV zuMC~AgS^n>BVVwFI#=JnSI!&K(EqoU-|tX43p7j=IWDn(-Uxo}z$r0X_c6vxu}>3T zWiSqP9E=|Vhw@G885Q~_vD(M6x7H5QFV~`9u0_9Ghkm)9eNWdf%Wqx3T#a59I>ert z*!&Akha&TQMDy&^+>1&ZB3HVh_u+ib31R?zoBxpP2jcseRP-aq2+pMb!t;V5b@tEj zXS_c$WA@_VakFQBnKBEym-vE7nf)_!>g@ZirrC?5GG@<=iJQGRkTUDRFuaJKZ3536 z9+?|&(cc%oxnkD;&UpXjt61*POKcXoUFOm<9=-nk)c^UHQ)kr@tKfq9l+K*NufKmj zUCw-(5}Hq$ye-Tp_PV6ND6M{3V+UAcI{Y$r#0+?1<|irI_q@;=)Z6D?``n{085uc#H-?z~3?}z%0RYUE_ zV83U6a=za}TXguP-{sVQe|NCo+v&G~NAM#3BUb#VFSfvgTryrJaxLpEd`@;f2>oL{ z%Kh_65d{HzGVuek#j+~97cQUpvMri(xE9q|jPKJ%Ig7p`E?0cAHlE=u>fya@f4*2e4|G4$&TkZ!OA1cZ4 z(!)JhO#fHg6>*CH9BHzS-!dpOl1J=cGWwyElI#&F3$LzL7JL|yY$fh7dvUVoikZRu z$1Z={2G6=6XNywtz>I&ht(y3zjXT;s2e4oILfYXztzKYB?khNYn|syXWa56~K#-6; z;jcFAHH(w4_^a(hWz+x|MjA(2|9V={WEV%ZS~3dTq8y{4!ay8>0Cidu` z*hud!%1G~slAn(;iWyTV4@Lh255IA^P!-38ErG^7rKMu05_`40q z_yyJApmN5Owj5)WCm+ANm+61@gqLk!0`n4JUgBQ8cL^|m1@UuT$SaoF1)F1p7t`M_lFK4K+B5r^jE z%8ysYO)-y&%Y4=5gV)`?dipBL9fsdJTg%>1J3o&-JW}I5P7*&!WR+TC>*;dR2--}g zZ`%G;IJ@6Bz3xA_CwJ7Ag)jB&xL5Wt;>!lKJUeG;cW)2QUqyb&r==^ieb|U6%KzFU z`RpI~7T-|d*ZrBbJo{&Bd*R)b>wNISJtB`iP~?_xi+}gkW|27t+r}!*mc7`k?T24l zgkKM`YF57uP|)T{&YX8LPeS_Ljry6h$iuo_P&qs=HUxY#`@G1*3G`|CpmSd*=f3ke zqf9}EWtmxTlQMGdD|4p@n&N?`$UQC%=m$I#u{~m(t5vmP9sMfYzZLo4gZ$r){O>`|J;mLj4fI#n;mp%?I6=7|edSek z$o&oYX$Jf2*5vVk;%`znyb3dzkzmUT20T|C@@7 zB8!}w?2o=BT>gK7b@0L`(LP;fuMNrU;rf6`^Z^59_#iL+zveaL>H zjD2XZjC~($Egho#9hYct@eujL+nYD+(*0{4qWteJ(H?yB1^5qduZ8wx zoK7-k?-`BF6Ng{A{l8!bF?c)=k#;fs9vmWnc>AriC+(->4<+qKeoOmK(}nF{Puj)W z|IQHk!`q)_x^#ax4N?B_OSD%zME>yhYQCktz9GuPdt9`CpAL~fyuF@pX>Y0dLVVsq z+Qsm>c!>Pr?LmJpxjxSgQJ%YdFWO%B5c$K~gMSImAI0F6`E&obtRJW4!v0=Q+Qs_& zogwmvw?E4gY(Inc4e&1l!=lidS{@Pnb~^OF1zI9=9sjxkYt9qO|BujHUkg77{a+ti zBWFYJ2N+YS=abMI|D*vpxHVJ`yGboQ9JZVJb}9NvEQ$-(cl{;svu=p|;rMw77%tV` zDC>poC6IQp@vsh&KfFDo_0sMAc!=^fmuRnYi2UL0ReVc(kx>`+Pa*AM{X+=50RQ3b zou$2SdhLz6bbr4aePMmKkan^5ZyF+hc>6a-hvr&{UVFZ!{WC+<*L{ih-yI@8~& z{Y%ZK@5T(#U(znx-y!mcw|8UArQ7>pi1H^c(carb;}CSu#Wk9aI= z@UhX(KOQlRz=tBq${z;3S{?CjXJcu@Kt)X$NXWWPv-@en5)Q*iveEYB@ z?`wuA@9VVNVMuC!V^~uAA>zL8=S(TykejU%FXl30$ZTaiGa1j5s>zGbdG=C8(PGQw zFfQec-FEV)kyql)NZPB|4^Y;cW>VsR%(rLA|IDHvFWJYpn%&OTVvA!in7ty?U&i^{ zI_-?kQ1Y@n!y)xgh>$ZoLrDQ+c_-!bsau~1<&0aZLGf@Zz&zv5SeXyxLCtTSZcwb# znFH|#h4D}F?veBe(nD#Q9*J|e6O7*|+9rnXk^P3z+yRkg_5>=Vw9 zT{3x(A#d*I?$E*cv&hf5`BFmpFE)19W6P|qBXC*xuwewg5bHG%@eXwh9*b#9i@!|Sa{f0{ujuTW zsY7%+TATyML{U^NPDb9BeZ*Sl9vEXpaUJu&Th6fMeqd<9dg=<2Kmk`etb!vz<|BS-D*_v8Ddg=Bxi+cOmPc7GA;Pe?^7c@yY@V4+XrmX z^hMU~Y2&2Kj;fRqTh)k)hUpt@bD;%d%XZ3`mDxagHR&E~ZHigHPBjR#ifsbAf~y2( zvq|;V1NS6g&Kd&d$wRLX^fr2Ho0BrH;Qz2yJ*zUWpfQQE*K{#X z7Ur8(QQM;;)blbg_Iaw>z6-c+;yDC0j{Mx!%&>vj?f{MTREnk6p>F%!JrWyqC=Pl~tMC5nRl? zYhWEsR!!brdGD-x1N`pBPT)*rT=AYY@2r|IEZ+Kb>pQD{@W0qQ_xPx*YtjE^CXY!b z2?o8ar*3GqdxnjkdyyY}z*OMWv67Ef>Qy?>lP=99_nwf1A}wbx#+ zy?0oc>mg^D?>Osf6S2EIyzaWR?ZhM%kivRcIq!pji!hJ8$=IQ$#^Ilk(Ry@WY z?@O@vg2x^6c9*3U_p(DX&Z57(EvtoIVjkf)vcpS7oXG`?0qOZx^vG7?;qU&dN zd&SS$!`o~zuCK26F?+GiCwt*B$E2)``_mFT>|ra9T~(Iy7WdA*=?r&0Pi*cj==6Me zgzE@=RlxUnyTiAZJ4E)xB)PV+r|zS^C+!igO8S*C;7Qj>M@H5<>YAd3t;`s+E`_su zz}PE>po308{uDsZC0e{|#}(^ce|8MbdKEt03+#?DPo@lIy&twE=rW%9tcQ=6(^dey z!?sA@KE^%viZc2;R`quZ{T)kx39fho)Sn^k&>z;R?~wtIuonccN8V%iTuEKawRm6s zz(>26Q_q#uBX=QH!Y79ZR(4-2$l#rYi`au>eD4n2)NQ|csc?{5FX+PRKBR?bJLaF8 zlgoO^L1)w7y2+Hcf%rtrJ|DyV^5Nv8ai328zN|pp?giPs_OWN9>n5<*XzWAS@yMrM zv=!%zyV{jH>gt%(!#0gIU_(wtChk1AJbTnp_HXcdffo;6g5WWZ%fdYdE_l7biw7@3 z@YvHX3zxkr4!mCA#edGI688 z1+SOb1mGnIUh-w)#)1o8FYw~QOAx&Nmx-Hz&0yocESp{S@Ri#>*Z1&D_5zb1eDFaL zd=Rr68;SWe=SB9O`Y5@ps+Zgs=G%mP--LX>{ow7{BboacU}KL0Z_LFv!ZY77z{Ub= z(*GObnd2B>W0@q z5uQ2YP6kgbuyMflV$Qx1K6IXVUqbf1pm}1=#;|s+>-KPLoG*0ke(G_h#<5;|A!lWO z?P<*_Jm$l?Zod)FSg#6?d9kk9Z^Sd!s={M_tn2j~@r-q<@Iuz=H{uyGXRJ+y7qULT5ifMUk=ZieUw-eGD*mVT=`hEkXy)6;yw6g1pJfGEYkInBf@uEN_6V_gG;g>N^zyW z1Ou2XD(B4jg)rYWr>K{DM95Blb$^M?_q_Z$m^_XT8J0d0}91z1%0|d6TuV zF3g605axR>L9aKgw<}e0de_n4CDi)@^*&F%>!|lsY%gC%SS)+J&9{y`4qHTY>b`JS zs^s`)0G|QONnlTcGd3=PGfDBTPaLtn%7Y8De>EXG^^*zYnJQhvhOHQxSPASS2k*#! z#INtq+(Ea}#``em=H#$9zpnf!Z43UjQ?I>vpQH8*{9fnqd;J-o+L!3I8jIYLsHGdVCM7&vl_xCt{1QP}aRgbvVSa;ikH)?FyIUV~QM=#zN zr}XPW%Xx;D737wNg&o?uPMdRv+{O{Cs8aeXH|-9kMx$7_`{*>^^uuiuXTcn7-Z za@&6vuRy=tg}xXc9q+ms-AQbuI6Hc7f01Xp{xKW<<4*L|IB5JS`_#=^7`j+k#aKJ= zQTWTy9p9Bb3!F{hY+^o^qo2-V?@Hi4z@c_W#YlK023>ViRE%pZ?Z_S2oD)+xccA~8 zc!G13`d*@~k?8efEp2^9+w6})?Fjq|^yA%@c3z@xX+zqImo~8w9&ThpwBYD$B{bOB4(5nb~ z`3@Fkzvv&FE%tCOAN)jtw0*XfW$>`PrE297?vZFM!?wP7-|SlWNZqX+`MBiog&qC! zdvVCLUifz7FTq=mzk#BDX$5ZYnw3&zU+5 znCF0f!vZI=O6t8W!lB@X0r!F-Cq+iR(Z74W;mFMb&Pku!kL0KN>_SHG>Xq#haGWiL2W z_W?WV>gZIZ^Vpoo!{|hjg}*`;3O{jIOkg#ENB&Z?TRyU<(UOB75H5(C1F*IL02{4R$xQ z8jH-xz@8s#xA`gs&QjM=>}e@4(^&JAkEN`P`owmX7{VB%&D|nDfRjCCm*#SbPr%xz zl_E1#JzcmWH%E!wG<-`UGe2jYi(IX@MYv+^vA##C&-88H$ow3}5Aqmoiwu=}b`FV5 z0AKD7{REv%WJ0T9Z_0j_!?}cWbM~pd?3?!w$07GnEufur^vXG9>-G9NZH2j)jD*gE z7cRI^@LbgB0``p|H}ieWkWoWcF1WCs{bfhIwtUIJD`u}PO&|4KW=7oF(u`5h@!LB2 zt!mNiscMhuk^>9np5Pw#7=3T~L-C!g{gtf!g{=JoTVsjHdXby!kcGGBaISC@9|9>81;9am@Rt z2J8xWM__l#8nMT^@Q($xwW16;WOJx_+713t@JE3^N{i9=K})|XnRl7bmGD`-J;4`m zcP2=^aS!VKt^`NQMdr)h&NAoq;P0Z|1fyTFHf8QVwc+bx-o zuU&H=Sor6j*KX)Ou)dOg;2U*|zk~d@=oa64-pj-n8`1N;Q>M?mUf$!p0~0*&I&6>g zZfWbU&btM++q|#QjCt4F>T%w|51#jkOV2y7MbO}HnfJ)cn0GgK`HLJ78%No;=z^nm zFUS^qYV^JZ*<-L#$6{}0pmUn`)DUIYhH-zPR`MzP;ArHB>7zP{&yu$^d^^Lnk~sFe zG1!2k#DA3?lNuHwzIMu@w31Qmb7QgdMrFHFKlQ|<4#5Yi%3>*F&(6S>>(*X^(H{1E zxAu~a_OSE2wb$Qh51)7i{~y`)-N%xvf^2dP zouiv>NxXsi+YKMS$;Y(GpXdAAmj7Sj`=xC1BjEp<@;JNKlZ0(ji9J369u4sSp83(K zzq!ek`h$o_SCu{4S7o;)R6Q7(xFaUq_a=7wsU%nGljw_82k$1vo$NF1b<-Z-gFF}e z`>mJ=-$&?@w_&r3-93~z$D8=ZO?ZL%C?-M?BYp~P9RyM1DJi;gO`_hN8G&-?^i`!Qv6|>LRMb-@-)L1ekx3OgCqQ;V8YZ^<2KigO`?)Ao!jN^?Z zSK9ZLj2g7BWOVMnk}-?+l@wraj9s&@WNl1z>h>5{>N#wW0FLI zsl+!u1@H`c4M8x^!8dOJa}t~n6QiC7vTkg6@EBHY)N2E+h;$05Iztd5WkB9c`Y_h z2K_hfjs5g>37^HlD%%5oFnurE_-zz&Rp*B;o1@;aIh5X#qwB0rV1+wqs*I|JMD&Cp=1g{vm#38~gva zt}E0}{BifVzzFzI;x{AVz1ZEvOW;E@Ca1=TPG66&2V1-|kL3>ZeYq2fJO_MZws{iI z842%M<3Hl#zifQ?Z6xs4c#!z|FB=~o6FblvACmaoW#hwFBZ0TZizG&O+4$cw9&{yj zOYTo6{otRG@Q*c~B(b{7ZXcc*3A{DF6c6uRHhw6da7OV`@uN_=^%**JsO;*6yc&I7 zOzN00&9G(vy3A7bz=LKCS>)Db*8~5If`5c>RXy;c8Bex}ytv%{z(;Z5s(1|bU2eQd zYzRebQx;p~l`#&OD@W3bjs7{lN$~$%|309be-lb^6C3+^Ikx&*?|7EidfVa zjzr)4v!YX9ndM6TEjUXB&Vu)X1#cYtd{sn*>zpIW_cnFBaFZVAI;|zT-bW7-|KJZo z+O^`piVpJ@{$}y_iax!RIz*>7<7yHolbF~B>QJ#W`ui6BJ;E6w2VsK`x>=^o*=;(T^ECRhnpMaAd&SYR*#FHq z+8x9tCBZew|CXe@Olz#C>fPhw!? z4Z2hg8~qSnc$fS}Kjxqh^SkSF`mrJdKPtGp=*JQ9ZHM$ja#CXKF}_`vepusa5`$Zr z(^&E@{!ep{j-ekP)3(IC#?Yqln;!3z*cyDtZxSaITyt-~Vel#E@)_9TWV@kbkeysmx_ z!&Ln*+Sb*N80Jc1c7i{`9vruOiTH&XyAvNSXVmfI+2-{a$73D!WCw-%Z<8x}j^lOb z?Z1N`x0}uE!XN(o;$imxB(IX3L;HUf53&ETc(DD$;tV@B^B~^L&220hwTO3d*O1fr zY-33h^t8t5B#%L2b$V`t6ImFYD1Hi4HcDL2jMs^rye-9csgc{T6dcKI5ShP& zI^OKWvsb*0j2GPZ8QT(zOix5Ei#%V)*#(j5Lx^8W?!!9vqEo<{wsxpYmzbj&8{AH8 zP-2LVxad?fHYhm{>-juH9TF!L8-Bl>mq4y_*V(+az@K10GWP^q1nmO5kG%o=ojsu| zUKqL`NFIgk3HpBEB#$Cm-c4k+=dCfsg%5Z4=^;ap zm@-u2gk~JEjP)%4FXr!hJ`!7$|5x(;G0XqU)pt2>;HV&nRmBm_7-2nS@yyX_;)rIv zQ1pQ#(C4Fg*~=Y?H?Y4yZznGXddl8@n_crf&z}1h`L!9yQrY|WY51jq&j3D$z4e%7 zUmZsM0xLQ3W#I19!a8Bsv0p#L+-;z}P(0SU=NPhxyj=31#pkBuy#cJ*j&;7?K<-K$ zY%Fpopy5L&UJ0E&}_l^ZtawcAu7#eX!$rl&7 z9{_$d@|Ckt{AMHn)?OjLyqA$-5-XGZeDre_%anX2$(5J5T#(Lg*F3V1NzS6gE=Mj~ zl>MS5ekrjGt4x%5mZ?+ZkQW)`BecY;kaL}UrSIYYZ(^AykBZ-L6!I?v`8U{*e`An; zqwTu<8sGICL4$rAWOXii*%SYua=@p|YsYE5HF1T;5gkI0>eSf}C8{7uDkvLu|0npas{F6>-T%aLFCEMMo7WI>L~>F7+iS?szy3#d|G$&n z`!^(4bw9_}6;H-Lc0|ur?20Fc#*hCy{xLJ2EWVes)1p&4c_PZR4~YWUTv@K=dn>@@MmOZmlC5$`j7XyO+ej-LuYnt~7V ziy6K+t4~aPU=pu>9=l6o(Jv5te1i7gBEBrS=B7{VHjB_Ul8N^J5?{8JwRtH&qx7`50;Z&>_br>IZjITEiF zdr9KfLsZ-v9oq1LDgPHbOqoUZk$uaIWB-brafxBSto&b`GZsGtJ_zxDS@nw`{}=X7 zsQ;^{JlnskZqPlZt$0^-)1iZiW#JK(7u zhOH~}B=);$o0~Zdx?S!{y&ImwF85uoU2e^9SPzd3#ZK1q8oK-dVwYR>V##yZ0qlBs zaS6QjJiKV;+Mc6tI*)bXn|+l&N<4lsJSDO5Q_Q;=AGg}!OK8vPUzIrjV%i%lasF6W z>Ph0{;&V0i@B%F?D4u@;z1_6KO@0(#ti<#shHj0Ym%)qs>GMJhKMF7I1J;bAn=$mm ziYI%vza@{?jHfTeb~1F=U6*5jmpznR< zug?7dt(A4gZL2IWzB~9zSD~ zH-Xc*gFxDFGTs>IBYoS%8QUn@6T70&7Ue?MN^mpADU5LhW1K=8Gj>|5<`)KWr zYqY>$n6nT6qSbyFr?ty{)&4=H4OPdvx7zM(E#gea>OopV{vs`K4!G41YPGAQwRY>> zG}8W5r?-7tztRRf?a2MYHg)F2MlOzxdqwP=RdtZ-9Y)S~IA;YSYUOSEFF6nMmAVH; zf5+xHZwxnaHs&|9Q%YZ&T-u(eZq;fNsjHkjIGu6YtL1Ut_5-ontBrPB;3WfYYqYjU z3-h*@0(*>eGRL|5ZkS?o~}R?r+rJp=jhC=kh^1 z&04wpfOp#8ON}g@`-2hMkypQr2>g)09}J5K{1_U3uOM}cpMLncue}hQDV)7L#N7vH z?A`{~_1@Q3Ghe0HcD$8%wv2mOhSUG=gY)!$dH14!-M$O1s_Mt=ZRL)CZp(|*_T*6} zeQM@CXw|=DvwwZnJ+Nt;w6XczNz%r7p)_tA&tXpGPSR%DJ3m;fwc$sVF-M@s!`DgO z%aZFl&`+f8XQgfKGL<_witTNaxH~3L&U`O$I9o^X4gq(Na4$P$oVgbmX|suUokQO` zIlnZQckOdH4`Nff`_?uWL95)CA_F$=?m0%gpL5^y>vNK-4)d8h1U|W`i%;ZD#60eB zo*KjN>7@i|`Rds?sp5$#2x#L^zG&gxL zzoX+RlTWEj^;7P-lRJzAM%wwFw6oTJv}Lg4jteWo;MH(=H3D9Zgjb#LYEene)DNL*dox$F#N@ znKw;))n?y1cVQMh&Uvmx=1uFx``?rm&V`?B+)4jR`DXV6wb4_qHFOs=v2#jCq&4g0-l&NiExRYLO9#T6l*rnzzPhA}?^DB;3xM<9B3v+pA+^ zTg&PD#}4j$k+)#vbN!}UV>mZ1vWGXa?>ghC*gS%MFN@XMr#zsoyd7SXH&f)zNqO(5 zWkhZ*@~HKA3^I(jXS0agok`T%Gl_dN56^Ww|B2r+w1nmncK4Kp+R6&#huJUb|3(Mz zS-Z4XTNrCgwDxL0`ldN-frj<)ryY8*9-OS@a(L8DKeBn>)M@KytYI5#SgS9kj&0x% zit@HUfX}3y|7)Du9@ay)!jP#Gh2(u50o{b*3O;USR3oq4=tj!U-srLq1Jrv zCvmo~eqX-Z#%|oa1%7xESts-I8hxs!Pm1Ol=9)}W^ls9S7qpiduI-U|YYx-)$l8%R zf21v053GY-xdSE#h_`kACT%w}Hnm2woobErV~wcw$eI(p1FY+I*0sX_jsA{RFSUMU z9nOF+^We|v@aYZk>-DU|X|*kbr``b{D;}S~IvdWXKOYyLi?fr+bM4w6&KYaz7=LqE zBl7ml4|4S}|5#*viq=pra?*}mwb=p}_-!k6Xhh!0U0r2!y|r?e(G}2MW6THaNkKC9 zZtz8hNSTZ)pK+P%Q0~GF-LI_u8AyK`ZEcfEk*{;1zn3=U-5QbC^Z8%u_3J-0d!B zJQrMWtehqHyd!hQa2NgF2-XAZDU*K4-SuY*Yynq9>D*5o@pT_NlCyZPJL@p_HSgta zm6utY^*bI(i7Q;5eI@tKALiZZ4{iPLS{`1JGCNtzChmE*jJ4HF9cc$AWH&t(R{Qy2 zt$i_j=oZbZXu=yWyk#wK73%NZ);#EaqB%`#KhGZjML~EVCY|>Xgh!LE3pBq|lAU&k zZDl(9jJ#D9C3niBV;n~}V=X24-^tEygHB(vKE|*1K2hyREqW2yJV#PR;p^EI%Uqmg z9>`nPKd`Ob${8J3lr}z#enuyIvjv~Ks}kD4{d20;{tVyq!TB@$fB7xg8W(>fe0*%wti(qGx)t%-e-gM%`0rQ{z4y-cy)R2d_J+ zU-Y9jtaTaZYWgny&EWqg{%@p><}~=5IjiOVp*m#vOq=FQJFA_|EPFWR%bw1TNlpJ$y3_{+S9N z<-$)ntkt&^|8J(BxA3XpvzyO$KFj&!^Vzjl{Bgp&_Syx|f(x?dj|lTNtVSNc1kK&) zIkj2LvAmI1l)>8qHfQS~#x@IiJQAAEL{X&Z(XKII@~I$X&~3CRC@m6RI~ezxW*;^JY=^ znOE%Y5jIyv%V@2(8r^o|?(&p0wQp@y`vhw&FxuFE&Am6k*w*stm})tUlTVN0}D2w$rf^|2N^~HN=ZAHAzK2r9-jCVH|@jm;< z4!f_Id*8WBqw_6uH|tL1M)Npt!yv|Z2s$+lnp%4d86o$$okA~?y*JH~RAe9goqKsd zEvOIYxYOv10wu?fUSv0Ir1R7Y|uLCvIst~(gnVruQ6_PBz@0;9-^1sM?cKBZRFjD%c0NR zm!i*LojxKDv~=h*RSSfnAIY1?N;hGwcQaP=&bp4Ny3UxxxW>uY_S@ix?l!_X_&{WY z+!bk_mzQxnnUe#(y$$a??{y1LoBZ4leipkU4<1Q_M+PCgs_hX)a)*DlJ+df|zXyh~ zc5Kc=2P5Ez*l1T#ncVYlFRG&~-%;B8TJVK`K1yTm<^|8)C=1QT0k`0O^fdJRL+sZC z$%z-^klc^I_dO^=>v;e-};-XR$w`r9CM zmlSV1^N}U`qJ9UVZuiK3+LLZ?>h*uRF{$b#pJ4q#x7U(ImJG?Mbwkf7j7{iV2rb+h zzukPsk?ebT*gHYv^Bd#yUt)Y8tV^!C`@5PuR9849{H~Qg?#y_7^J(l~;jIYzeV6F& z{|98rvpvX?He^Y0uq@dnvScXp^4Hc%s0=xSY>DB0kWIXoik=-^;(jNkC%H0|ebtmL zvTmjzSJJnC=iWP@tF=E$t}He5!y$IHo;N@{kt?#_|A&$*qAOlnuKb8OE$8$1T6>F( zwO2vkW$n%4?_XPcQ|N!l+S`?DjBgI(Gv(C;;AHK|dUiqABG%l~_7Tyt4zISX!~VAZ zS)z}d>u?VH5lU&db?6@c?bhK)`f@Al@IRJ)`!%>89qik#!Rwi)Nqj={AbYw;cS@Kx zHV2vX+d=w0N1PKRW5w}`S)(6gUXK9|0Aue5Re4BCjSIUx2cI#JD_ z+AT@QrNlCOt?mPu%06Y@J@$suV@A-go@9e_$TT-^y*`0mRkVzG`T=#O*^-KG#NLv+ z%f4H?CB2DzCu~VR`vdMRap+R1v_BF4ZH#c%*?>8Q9+ZxKCHlV~S$819ndKj*HB_TV zA7YFPsnZGEng?sPh`n|m`RHf7)Tv~#wDU0Sc#mm;Wx$qY)ozitJ_khc|?=cU~1bnEom8Q#km1Rn`TQ zj$LNn2eVD=H|9~+eKUQRF&|*wl4ahGYPJ0nH1u4cIA}|3GpRp?@rj>DpWE)b zD&tYM(B4_WbG$IDZIbDWQGQ07t>{(?hIS^pP1Z3lfjH|Lk=kG9&( zBy4Ag_Nw$Pvmd?yzKcId?%2_=BacI44L?&J`f!@um&P1V5kux?kfr?6AcaHBqi?JM{J_`ZJR9E5YA+ zqxZFHTU^mv`dlAQUBGVSJ3hw1O!)gW{3rB~^(%ib-nUoL16^s4(4w3%NdGV1r{Cuw ze`Opi==Y`gR_J(0>~Z{(=NLclkSn^CVvn(hPmneJ9el51t8ee!MK|#c6hS-TXJD1j zU=1*Gr*Q&nublZ8`d7d+LZ{yi(gF`Zs|E5(3fnrCWwyzf$_JI=2gCmi9RyZr1&_b? zG;mknSKL->PvPD>Z*7Z=3mGvT{%Trwbz2jD7^z>zhU|D%-I*+YAZ%s);B)a`w2!y9 zO%$K<9_BoOzrwf8YAtF3;TPF^WxVIKwuw=cCw=hL+@$a5??c_qda1(qBXu?7ck(|g zvN4Ih_R{NTk6rhr3T_i?FbCQs{iS2#pO~|W&_9*WaG3{eKJ$GbX+N_xw^nF~j<-kV z0-3aDq0m*+CYZj?0P|Byf27_Kl<9M<%O}(B%A)R`?(|mtIuM?PW>Wv8bZg`U7XUvh9O)3k@3kpQru12zJ_&vFLPI8Z}jBB zb58st&i-0&;pZIur?)0*XNhIZ&nMPptv6Hgmf>eeiVxTvrE^>0m8evO^}HFo+v z_-(%0oDj%cHE>>=|tK1-7VVPHgtt-qo9=TB{sQp{Wa1l$BA&Hizq@rUvcvhn)F)b8-u7(b z$qO9)S{?A)v8BZ0krBez`WPEslw8ML%{VHw+ZX5R}@D921DT*Jm1l|$eyOdAV z^oLq$+g4=g&69fvo`9y-GGx5&+Zov_uqmXhbFQ1>1M4Y!wYL`d34il_tXqfuXxoA? z^nq~pg9!E_Vh8Ym@K8VEVz)4krao@yPMl$bj$9X-q%&qeG{Wu|@=G2(~rOanj0`t!sur(1{dtJ2GBlw~>Y{X`h z|HbEDi|*Fy$f|SGk6PfqVy>gu$FZHq%RVl)ZS+*$qY!jFY)di zwole-Th_8N=3DmLDIRzuPMiPmXl>WbZNmZ;Jh(86_w0(IVk+`&X&*eBi`;+*PxP%$ zS=XEW!x-l*-k~XtZkxD>{>eIQG3V__AGHpr$zEX4=pTUbhL!gI9)EvEeP$ivN4$e^ zr}L(~bIXi|^2oMHwYTza1N!PgcvR|b9&Yf;{e4xvqo{W)vV0nK{Sdk=WDREAG*;1m z$@z|_KE&@miZbc9+0Hud?cd7UpA_;taqO!6u(pZ#1{C~S%lI5p#(LcTdhbAF2woy( zrRZPV7qNZ~dWetV5bZSC+9nPRf&Va(G4i|EK{XNhs0+O%&Z%01HkG&S@Cp3epIudb z*khW`frV}>y^5i=E?6SG%kjr24y)iDQEuTHKm@zj^ zhkyC4DK59Il;0+;hG*swe?p(xtj}#_#!ZRLZBpH*>{m-1oQ)WvRTkW@|0a6EAlfp0 z5s`eK{Wa_SY}=$Ikp}D=U9f8`u&0T)O$D~}^R`KgT?TA(7p&B~U&=qDyq8fvK1ub( zZ1-QJ{8QRWG|EeZ%dP#&1UCJXwn={4THKd)9j1*}V>!@;vxqjI2d=4=HdBo{+q%kg zDgUXIpP|h(qkKqmXP*S$+NMkT*U~nrkoNr4Hvs-CLH{A%oiq*kVESrHS!W&W8-8f( zJeU+XDZI#fjs{-v;JZDcu!X?7+miwUi^wu!{B!+xdENbqS9|Uo6Q~}Jet}LcG0bNMYd4FISeTVl zi;ww``0gC=yEEetDNg)#nb=oWf0pPqO1HpIcO0MYVEW>u{%5%4T-x>DrMZcu>p>#3UFob_{zmcF58pH(7e%IuY^?cEn}0uh#l1iCx{;BUGmjZEvZS!sl#y+Y z*t$imWm8U?dSM*(mHt=TB>W@q-A><3II|p^a&9;<`F}ungvW)i{yc%c{Ab&wMcaFK z&g+7qT9udIiuU&o$U7WT&*G_S{&yAJG^`WO4o~+H{`e30XSz||6kHxB<^N9kaBm6x zx2xdp;a&L9ErN2***3BN{iV^r%wDmvL%kCczBv# zCjGba;B>~f44It&+s^(}7TnzhJBac#QvMsteFi_j6kL8>%HL<*P`-GM*ORwE8-H@i zC3ts9O5kSX*pEA9hwKYUb?wmWk8RTL{&g}JX{qelJeQ=K|iBM>oy@=KRl{ z?hD9jwa+Z}sQM03mp@Tr#M&OoQJKs*ilJq{4W7V-uc8~ye;wVxI&Tjzyf^#g`y;yO z%lw?6Uh$irPU9_Z##Z{Sp8p~BrP)$iML(B5USJPDzdg@g?rmM^$&ft5xhoa#LikWM6rW`ourvWv^`G4aU%UnCWo3WKN)c zg3xyXI=9f@4ecdnTZl|;VJ^|p?mG4iZ(I>a9Em+$h<=!vaUjKS*BV65iH^(X$j;KtxVbdOiI&+-1__ot-gRfoac~t%wuIP zdZszPLqp*22IdeRDujn5{;0=oqEsBx`4he0PWml*C(^%V^lt{Sl0y2oY*bDyI!9~n zWB5GiABUF$Mf7h5{VU9ZC+VM${uPeW+zS>W$KmA}s~w3+@L=&4QOV;j65Ub+s;1bJC~omM_o|uyrOqkX&^PT|)eeqDve@u9pxe z+QK}1Jlxw(OmNSOj2GUY;74cD_KmNw?Q>TgXRZAQuma;ZVonQe{aRhnU-DTb2J$iM zMR1(pX#7@Y!)9cyoO8s~y$x=8?@~1{YX1>m$QE)3u$cr`;)mci@cy_@>@Dw3-f_uG zs#3gPGeOb4@hf=0z>vkC>%R%lJ`3)P@Kotb@IH2z;=9a=opU9;xLwL$q`b%|FAgr> zBIR|IV>2rJH-gKbkn&o}uQAq^b5d9Rtb+3Q^z)duY1OT)GTTe<_-wFc}nU9d8Kv)HN&d zPCDe$j~Rl$)k0_Im7V1>4>?j^ZK3nl;Bt?Y|CI7o#yBUB3c?>N{qdVinm1NPTV-HBocr4$^Bj9u|rEm zqdP|jM0Pz)efdwfO;UA?ppMb5hV^p{{F@E@?LFZCLC3#W@SnmyBS*0iK1p*#wYHJ3 zQ@~qQe)x_(Q1$Wtf6)S}jlr}roHmMzvrn$I)C<3xHDkf`K5F2) z4BTF>hVRq%`lWfElY@J}_g>YBpCS00419-y9|;W$W^r#w7j9?2o#S*G(splf^B-=T z^h`lapd9{hHs&LbvSxGioGA|cdZ;cy>XGmVEtSRzR z*D@z(hEJ^(zp&7J=0I`|hdbD>oUH}iQT+bJj=mR)oNguiO7%Uw?8}a)2Ef1B^rely zT%aHKMh>XB9$g@)4<^qZ$kfNxQ9bt$^kM7Twn=U9{RQ~`dU(D^J|E-m#Q8Ni+8Ss< zzpHy`XBVR5qgRTaTUqd9cNhQA-Yn?0wUjl>T2SR-x~vh|ENf_*l&_|IgttMJ-)Sii zLm!gz2Pq$Il-C58kEgtGcgMsh(5s+HWk%aL)&68?V(bT%1$pDU`UFo82S>ZVZIaN@ zUjW@Na-TnYp&_>_3!V#xPX)g8Ue*Bf>fhO6)kQ1&O_|W8i=tcpHC?n6+NBp8x+wKY zF0zCD`=7ezwKC&ew(75oG5GtU|JH@Hd5uN?#gFyZ+AN^W(z}f|sn2ZFOPf>4yC_(k z(n%j#cOT09t}^H&wt$m8E7jYeU^iLjm-&&sMRY-AYVR4~c~>f%S%*D$Y1r$4ZCb&+ zuJw9Uz3E-^Dt-8+lrM+olskuLlevB@qJ<+()JqrWO$|7KS-e5X;L3t`yY_FP#eLAC^fqWg zx!CxI{!m%)4f?}J@J`cW=v!gbsp&jr>hZS;eG90Qa@ku9J)^SV8}y8$)ahMBosSuH zjt{Q$X6p1Vq)y6f{-tBW;wKEa{4Tg>8P9a!w0vxD%GW%@-ea!)m%8ADKele^nE0g~ z-$;?Sq=vYcmA2wXQNEESlLHN3ck~sRORQn67hPJuv!^FqVE=U5w5yy6jkl&GXmd^7 zv=Cj=%!e9De>R1u;H!-(I)e-lefRgYX>E(Wu6M^^a%+Xhg=ZefQvR4+$yp-T?HSrH zLVx$zQi>j-eSgO9QwG6{McIldAXkEk(U_PzR7{L)NA@;3b75$ z+$q24Tf|#MH#Tyoc3E?$_TH!aVD{3 z`hFz0DLUgnQe=;J+4}ojLl23cK5HhvApG48g|shcqzh?Ze71IMa%=n5v@f_V#B$Cs zx8Ju7z-H_368ezS;C@8>PV{MjZ2)PrT9Vj1MYiZetBss7$-kfBAZLtR6>NYk@j>N< z_@H_kcNy)9Af z7Ztg73Oapb5H)6bu`V;dD!F6i*D;ksaOwhTK9QrQ{g^m;4*i=1-CJm+<#!@zOupaw(0}= z?RoTDKlOy)oa;Hcy-RnJv8j5R^?F2a+b?|}hUSp942~0=yd>nZ(2c!C)rmfP9(`8t z8+ESjq0W8-)wrb2oz&TMt@JI|gU&qOza76TI+Lmkz4SafsmOsPMgG^EDxdBTDxc1( zpB{G%s8fA?Nw4=bd&iHdH~pF}{q#J#snp{a{kF{8VAWAO@nf#g=?zbn3%;jIM?H^z zs?%wDH~mz#eY=h;V=6J|)L=8{bd<4i{!8|+OnkX&Z0N1$(OGpmQKv<3?WFyIt~wV> zo#Ta0(>+esgR0{*c<2j!XKMb?n_ua&^VXR2cYm5bCU|Ndb(CI(-6ysQ{CWm@5Yq{q zfhY0tww_1M4sJyUd_Pa;Wi7pv*QLHgflqqsCj= zH5Qr62N+M|Fvi1JGMT%@pBeOX4(c4U(07&4Zz%Nr!YD88Dqlo-k(3Xi{41k8W^gCI zv{NAEgDL;oDE9}K|D%)-qP)W>e=WFN@kfS1cgGA5vU+@&>k@PyI3)0Tdq>|~bIb#V z1og#BTj^=E6*)uarSjnNY$?Bja+gtlGPrzQJx=M9wFs@X@~N~gJ&o? zSj}71Tgi{G@@pP-HJdz3Ok@?b+c7nX_{j`UW)Hln^plN40(S%Vs=z^~OTwKR5?BV@ zYXS$okPqE>Rn_Mi8psE32s~)*TjyH()zH9=lnc%Lm+I5{p@BI91HI5;U;PFCWk2*i zKt4`rovKahoC>_6y(P9HwEg)x^rtvzCv-y}UOe2O@%OuY=>k^|Tw@GylrJ7J!&6TG zg~p}C!>nxv(fHNjffS>km!wDRu)qMbZ+n8w z%C9lX|2?=Izrs_ch+j9%-%F|U+mzmFz|+S*>lqFcfixKI*6(DseAhq zR~2WzR8Gq={K2WBzmU(Ou~+<#GO@43M^dv!tHs~iSA6_m;A_q&f8aIB^VevBr|#j5 zQT6rh?vOJ^InYebj&wM#{Kj)eKlvefqvS%!xfqGH&Y+JitR492h?{wRxh+`U2bHt7 zUZC8~S_sWORymgBi%BjMzHfELypa4B`WeVtKecT>=ghG;&XS)xUvlvzU#pZe+fx`% zKIitf;y0K4Grt}GD6pD3qphFs^bgYOJ%nyWzR!Do`IzU|iCMI#+mb7soa?r2^wwUy zmz-bPjpBcIl(&5XW#p*^3dtY*;J6m(ut%xfKgoH`C;lutvedQLp44ii-;%#@H**yF zW}@U!w&ix^mL@vA?J^(Z=>KZqSCa>tf1KR=0cCR!m+)Jz)*$C5SN~A**}C#V&D>Ol z&%EXu^J>DR-6J`zLB7r1KRnppb^F2#T&2g2GHsn1Ho>!ttXXDgg5h*kB$ zUydGm>*}WETjOX~}lzgCa!I7-f!W*km&6EmyE=G(|! z67G1d;iZy(^EjunxyqJQSC4%%3t#JkH_0m`CY6I9_Tj(ezhB3G_Ge_u50EKhtD4_6 z#ok@@u*a3;T#M-U1Z51cj=IQEiq_}$-|eRrl- zQhk;7n&Qj!lpvgEsoMcgKK8Qe!{atjb#J?;`f>S0>ixl{u(q=XoG zEkfZwmhoM0!2QVSDSuqIAyi+mF|6>%fKA6x{mjXItTgh6kno90TWP1|0f!DBND)nx+_VzcAp?yF=k#1#atg2HY{icq>dBvM)bl3;4m~2Yy{D!B*vD$jUm9@e z6QOXAN&m5f72J8JXU$)nfwkNZWb$BTv{u!W-8M9?z+Y|UeS3({x*vFAAFDQ^wFXr`e(P_-aeX=(K$7wfLdbt^e?E-Nq_d2)E$h(I-YvcF2x z=D&;%(CUcJx|6fK^(o$l1)PQO?RYrl^TIo`Z$_@Y*jsCeA9OTj*TC#a#Efn}<8ak+ zW_YZPn8I;KT-_(gqiXgAH7S`>`>iUq$8&t>i*Mto!8lU_9x|333$_9zLoX@U~(jx5&JcI~^6Ud8Qb? zstW}%?vrbS@nsDvT3Gy3Pf>^1$HD^}sUtJN?h!pMjlbo+*-ts&f1$wTK3UMct`o$| zr7z;YSx-G)>}26VRZqa~abiDy%{afL&tExG>dF^+Jt_F9E)+z&oysru`^^_P=Xr8! zaNWm&RsA%5Q~0XxkovKW^?vrR$h7r)Et7Ve3!>a72VVl;^i6^PPlAtatayEy$G~;E zPdb8eJ85L`P0a>Z=G2RA+(oBI&v`X28DDChIp4D1%Uq-}e$JbaGcWXube}w-1@VBi zbAoZ2^qV04!)ETHU!?L`T_}ive}Zw>fUD?Z@ly>Id~(mb`sWniU|=IUh$j&}(uk?A z#aG1{8L=&o6yS5Q^1AdXpL)pt(`5;=yyj?!u2122vBF9pz60#m-g=wmI}Le=|HTTo z2sj^b`I2`od+h&mdWvcPQSPDn7(e%i#2(gQ2bwYWGs#gXD+GdFXe3(3R(1 z0)18A@ts)Pk-m?mopfwt)z0fifAFD%!VL$m3ENn~y=B1RO9_P=DB}~oSo-~r0f$c| z6fRN57j3{DHsJ8Bgu+Eh|3qh&_4=OdSB9?oZg<$fe1`lKeOTK5z^D^HOK6?vfD`*z z!TsLp;Y?^!3p$v{%H_z-PYai~9p(;%BIM=UgylmIrp!c+awgrk7oG4$bV8A( zvhL%cBXXIz$-5~n4tLfEwkQ{V4W-j9;*7x|?D>4|M$q|>cmaBniWjiXC0_8OKE|Fv zydbo%2k9$0>iYPR%X#m2j9;^;OE)8twrcBp9TS_UDEo4k^&YxoPO*({L zU#K;=s{mh!6<5|$F}T`SdK=}RIz5MoWB>H7Ik zckS0*`Sg{YciJq~+QnWxz}}ik9AP`LWo*Y?86&S!e#5L!JDxhgd4=+g+8(*oI}S4@Qv(p z|JV4yYE2^tqI|RXem?o6;sgkIm`I?!|p7 zE@V6V8)vaR&UA_QCD&#CN-J*hY3+Nj);!~6?9gB%v6CqcoPRx~aUV-qAgyfh*@gH@ zs;4^Js`p2>RX?RQRPT4Tsc}_#0w-75JI5GxR^@tXZb0|KADxFEJqT~s)!o`U2A)=Iv^7)n%!Y@*!v4F*@F^jqcjZ1K zIY~YI9zQ|ZfeY?VuG-~LG8+D!*sYBNw9!O9hUy!%I}oR2;I4vOf?N4? z2NkQWECV-_Hft7X9`TzAPuHZt)BK-DJSva-q4J2kbkZ{WnxOeSj=eo!=yMx7DC5ZF z++*!+yn97mik{>&Sot}Zw(^Aji*O4MNT8OSM^V#{2%5Z`CsTAg3pmiBYc z0H0j#&E#C(%pHb-Q%WA_eNg=xGg-wZYmrl1Z#C$64dM{FfXkG)~avrq7Y1byoeH*HcO_PJxj2(XbJ?*7`&lo#6k~b!J z&57kH&0*Rk;TPd~$t8uaA8%m~N3J99GqajkX$^Z0+XGKO;Rp!bX-kjA7W73gM#fvl zcpN;{hd=1!JiW@>u$;EN^K>2)9mVa?d2Qpe>}>fiXCJ+cZOYVvuSq_kXBBdGFg|Hy zzd3%VE$u3ie;J%tJ%=wyx5f26Wn-jP<-N%~AEW>FFZ{N34(BUxfF~w0m*2xanuEWZ zHDx3BSM_nowL$zXJW@$tn{L$SrRE*G=Xu?3-&MfGpW_?&A#XN{I>tUU39Uzpw?$ zXhUKkGXLA(%JmcsIgqkHQky7ue>~U6+pq)q6|vH`Wje9ZdBo5fH$6J}_4upZ>lSz$ z%J#o8c~H7-dCo0mv-g$$WbzwH*Sg=Hb)CCx>a+{{O4BYhmTL8lr8YixJ`O%%e8TG+ z$CqB)*!algFn_^oLzWGGtsq_ttiDsfvvxavsW94G-((Lw@3$*mXuECW=C^GRZ~nqo zu{p`UX>$So-nHwr_7j@7WNo^=WMQ-x!M(NpW! z#pUw*Ba>erP`xDkrCf^V6{kOzr#Ap2Ooy3CB%UY*OJjiv(&m9HJ267J`a(^cGC(q<8 zNFwKu*pJ3$aZVgIey(%xq_0K_AFN=H;=+ z+oQN2abB`}Be0!vetU4eCy4inUtkP%mEw0&bwyLxL9IdVJ*d7yJDY=Sufd-pd!NYE zJp44Fa&2A&X9L~Aa&0}oZRPCU4UAXL%#`yEy~dfCc?M0II3ueOuWN)RYt$V^iFH?? z(~ZW?xQDo!2fUv3D_thtB;zL^L&*X3E7@!O`#W@-DXhD$It}=I@jr>&V82%TH@b=J zRR_5Lq89v(j8SZY+Uqor#26IKz1`~?OI@1yprkHfrLMdk9csU;+1@c>IAaK<5$8y& z^3##?Gj&?-eca)3nQeS-$~k>(vS$0q_{hOfZ2+ssi}gKYHFar}ss3?qWT?E4lKzPg zO8WOxhezhE8QHt{SqEqEOW&Kp9$I(a9;iS@NN(nhg*DmrD@SbEdCJ@Hh>Q0m9?%*# zqD#Ddo7Zy_dRb-0k(7i8?Pj^Ve6&3-nl~Mz<$bLWSqGo~t~$lE=VhJk{E60pu6lMM zv7No_OQP$+I}>Vh`HLMRYpmw^;PEVHJf-AmSjX6kjV^Z_Sbsan`Fim^S%1T~QMENW z__sQK)A)_C&XqWp%<0CZT0`ycr+Z#RMt+Pwa^u+t-k&M`wZ~TcIyuinJgaU6^S`|0 zlj6hpA`U;WGx|exkHfn+rNpr=cm8oY?>F-I%yiGA^7o_Zp4syEPt!ed^7m898K=}) zpFxaksCG638pvI})wC_+UV!|`L02$%>qvp7b(_1*t?X~T^tt<)H z?EO;jBl`Ua)X|UM^m`$;@>`Smn9$AWqtbH^VB7D_jnVh+H_Wl=IKtBfjLj=CTH(tZ zV&Lhn`aY5N@k2fPzj`5i_1{m>_5-o>AHS1^?9F4Zg2xhOuwSunCOrJ|4ELs=&vZY! zz}rx{H_u)6_Kohd8^UT^_B(1n-EOb__~*7-rQ2xSxB9YH`@3?s1Tzo1w<6F52AIltkEwk}K-N^muVJeP$ z&GO``e%DC+vgbR(R+8P=4%{l7aO_;J4ARfiaF2XuaC2yG9Rnq#}~2vqS2vQYrRKM#$Bihx8vKBd6GCw z1?7EMR}uGk8zymHRkiuALjtGpqnP;ua)*Za_)ata3fj&OgJv#oL&UXOZ({%AZ^O?8 z4u0mIa2^Cla%q|)y$xb#uBOlAR+M0`-0Y9mN}SXq{dL|W>qgH}h~%CN@fG@`y(Mno zM8_9CkO|HA#yMNLvuFO^Xzi{H@}VTwE_0I39bqps zf1Gb^M?csj_19dXCE(*(>D>Kfij)0vW1Y9wy)UzZv#RZR`!WyF|906gBqmP&g|4%w z4^_U90r0bVCx-M_@=|(={Xczm@V#qtcfI(jB=<({z>qWiQJk5V`~qEGB-ZWirS9gL z^z5RpGyDbI5v6f{BlIq$P&!z7P~WTYQNm+l=jAh38u?HvkAZp8=azB{KM34+WlqJH z3m?D(I^5m(L@hiZXPjmMCu>Y-Df2J<(i06j91`!3U_C{$uAHnd?&F^mjqlP`YwfSo zdLPJWgWiq911Io9zs%VJWrJ|OoOL1RAk-Q1Oy;;y&XAXNKSQq8pE^UHT=!|S${E;I z!1;0A@2c~nj3b3{aCTJrc8TfhJkL4uP`G%ZUv5|I*55}fi6Qq}wWH29CD;9ic4Qux zF^7^Pb?y#$4n9iv8o5&NpL%yKBFyKZRaGbFVf+Hrr z9k_gngG+tb8LC~*+J(YB4O}|0Z^g?3dxh5Uq)A70jySpQpG+R&{BRI&Fh?5&pP2Z4 zgYXyOukt(aA99vBV~94t2A^|3&Jnkb)%K|NIX`Tb`?<_ZiQtnfuGZ!-W6g1n*a|0m z;tJrD4bn@|M_-$qCk};M0-TC}3*0E9KF$?~!u=y~68~21;`3Df<9zWc%f7UTcCGnP zHgFoTJrs`k>axhqF#Kg#n>=>cXr0IYI682CDKX(W##v!_+gi7*Ka5i-O+aJJ97u$sKmXB8ZPoQvEm%r?UoHrhYe+u87tc82-#g}CE zb@mw6fe|mZj5~Dg?U(+E4MH2u_@|ukv$SExUuEt2u}jLi&r8vfGsjkXOMM;G(Il~M znU{y*5q!*AqBdV*DkTrbD<9)`=@d)H1^8lvaNnHASr8*<8pSv8UO&zvf4R!;{t8_{$wNy&^f}RE z>v9JCpQ$4syF=Q~EYfA6)8X})vQW<8=(oaN#jppgCGx(S!HA6y~h$No_J0dl5uKcG&N1|riInd4RWN+j21 znd9Y739Br77TE7f|BaZpj92jscS~5|gpXzcS1R^MqCQRq#~l-)aJj%K8${r;jQY51 zA`~tgIL(NQcgig8oCtzrK1NCZBsWy*OVLXFtU)Jsu4=qE9F2NB#vp9__z@xP}=6`73lPm;M{^?oK*!);6^MLsEacQ9tpqOyuk3(DY8J z--va0(v)+zq4mEa^?zy9Kb!i`8U7~D-dbUW{x!gAe+E|OX|Cq6BU?+&bt>^HbSraR z|3upVqN6hpPjrK)p`)x7@_9W!;``oZyy1bZ7y5ooh|YSXGv?k)<)~I>aL?1+kA%;N zZHkS}8o#T^ustj}^VmP3>%Q`Xhb($vH@Rozl_B@ig)X9_BljeqzH{AEXPT{VYcqS1 zjK#D~fD^m-h}G^rhRqdfW0`rnr80I$a4x#lZeflq3%El`_6U&$!u!McEBRvWj9u*Z zpYb;7cYu2}Iz0U&=j6(svm{&o)JH->h>o zm~(Ii_v<>5@WmjRYq4vgmDtp({NpQw_BVS-{^SAr&}l2->r^@NJM%bYw3aPi21)tpBY}HTd%cLHed%uinkx@@l zur4M2eu;X#l6xk;5^`gkkv$HXdoQuBkhQZ7*e3Du32l1w?xw)S;{y(XdkVO%l4mAx zo z1HRF*+?izZS5x?$~xY%LB`wId+qGO=KDNdzC6jJ`W?1* zUOsjXJl5QmXJ1)RY!4bkr1anPu@GZy?#i>TEI0t{;I2LB!YM1=gpEPM&A4uYH{-9qE|9RSD0?jT)|VEZ&BoV^UQqfTywZDn$?@Vh3KwN_hxy7= zijIz=j~M4(En-=C{F;;-64s_vQx;~Mdarh5eag(E52fUW5hqI5>6i~4OAE(l|9VDx zb`j%Wovi1TL{q=;Pb;*%z2r=>?1SmsX5IUV)Gd2rLV3zYXeeAx6F<7h39~+$}q!-Oc~p6+;l&ca(Ug z=)fX3qG(fWq&Dso#!jltZ3we9wA7zK17{yq3FlUd{8A zKM!BZWkUtpR;|b=jju<}qtJC16bt5AKr!27YeuCV?n=kS5 zjJ8Q^2He-roa@ljUS9``eu1SScnTmnfzNVqu@ycZ$k zjY+r|5=2E>t!)p1cu7drqNhrrmWZfvLjdbRY(3Go)~am- zL=0dpRD}evdB4B?JkR8rNx;+de%{af$9yK4z4mSGwfA0ot+ju9_nbBCLB+m->D&o8 zw19OfL|SOzpRz0V`m2NmoOD-1n(0%y-KXR9zl}RI;(^wKiS$Xfz<>9(-u!$@^y!Mce67t&htF>abG8!Mn9mwP9LM6L{jIKA{6@l) z*FAD%k~e>==PpgksJ-?DKeqeKlF`1b%A{w%Z?K{|u5s+BF&P-vG*3YP5@u}!zjt`$k+)W5H{hGO*2f#Dyj=>$@w_envJQPp{N@H?5{@z_KZWPg zY1wZ~8zj@3A0NVR$#x06UygrNvR#3El{1dQ>+R_OgY23-<{x9L`};$G!#kh4$Io4g zV@|)+C!NVA)7H281)>`3D*8C(g=Au>hto&iynJ?DcIP#Yy;uD+vM|EP!cp!EzfYWq zu?5n<;0yiG2ZQOuX_xxdos?bKM4vw7u9Mp@Kl{X|`0&*?oewlFlJyY0sl03Why(tK zd6oY3^hHT&wI$D`ge&*kV`$!;fOY`1H$UI6XADXAj-hzvmRXKJT`{Nu^e>fH^jtp^ zLnL0Ruh0$Fd_)!oX->L)oTa&nY?mWLL_ z_OL$dTmm1;|LWIy>0sH*@ibb;`$HFzT}E`<`kVW9%c0jEP>wtn5u;pApNfc^?Ep6d zJs|EbjLv$W_ZCXljqFLEb7qkaaF{cTEvM;bf0FI|Z@baO9eaKGJN?5Zy)`|~7NWJ# zJ@-jBxR*RRvMaEsHJ}fhJd*~*<=O4z+1tN*@CVpgYsD|!S<^Z0ul>Uv3ppn;S6`!l zJMzHNA#TN#Q!^m${G_^{r@lJfQ&ZmE{lhw^mhbJa`#;SlPu;1#@-&ji!lq!(n1}m^ z8wNS$za3Azg7SZ)@-=5w{!xbqANHnO2VJS`_@et)|M07{yYW<~T~`Abj%6nG#B2!r`-dxbUl!hn9oh8j+*9J(m{{N8UCamFVe{6vE{H{~mRQej>XH7av2xyi0PhpK3vp%@)LZ_~ z{^9E#n{atj0DbHPXY6}Uu9LYoJM^+mFhzud0h)#cTWKhh3kFPnxgl*ZjPci!*lO}i7?YUgfd z`6&T=&EwmYees|;ySvK%FO3zluD%#s{op`2i?%PNAIs>+SJgke&xd61y7nBaHS@JI zqSx?!Wd9lTll6eN!gR*i$3C-K=Zf)pj|Yf3PaT+5n_uCJ1_ou-4kuPz*fZsWIol%> z$3I939iDs+^o(gAHoO9is>H)}*m{E?+iz z$=Tw6#WX7qte6f{9R7of7fqNlv!fWvz>+J zuG#W2>0y;!J|W%QIhB1^|1W`aocj)z&-!fn&Xg+W3>~MlY|WC+()*p_ z=LlX0(lMY+CLQR9}nMDMjd5X@@cA!$xdD6z3ILOU5oDUita*(?xlFTg_O4j zI&iOTx=S6pp&4=Yj)86kbP@S5hadxm=>`+cUEgw9C(Qa*5{!NseupOpql2}sXkCZz z#r#$r3PwvR%JU~y1oH!|X7Cz=j>ECT0YMzyoe>C}nmCN!?SrzHw<=CI< z*aymImV}onp5s{e1&8Uk?jp<1W!nANFoTh5+Wyh7=rPV%qE{cfDxDZNPdgI(@LT$j zv(N2Ac5QH#-G{D99~cxT??bD`_XBSqxEHPbl}qUZWkva$c51vd78f1sKjm!Ne@2<~ z_v zJxA@++@yWM?X1sb_BrJ#)|KP8_LdvFUgr%a>b+F?Ke6+hdiSW_-ZG%y z$+FNbgO$X>Atzex~8QrT1+IJ$`Fp%oZ9#E`nV}VPXp=1;r=q z4Yi#2T^Z3Ejv7nZQ<$4`zcpq+bPC^$YwKHcvZ6;^etw~6KeNZfj%yH4_Wu>RlDx2A z>Ret^c~Sm#-1p@@yQ7(Wi$B4#>gMIda;fgey1FMF=AOci=Znl9K90IpE&&(JQ^y#} zm0sUhS`ul~_}uKb)#TS7fbfn{1~+uljxk_yqWivR>%XmKo3i50eJVSRaV#b7 zMDlF%pFbe{6UNNUOa89s?=v-i+k4&yHv2JS6u7~Rkv)ee4>0$WOgr1`KB#=PZwBp) z*@x9eXx&(F%C&uc3FQ}^OI(z5H&*@y)1C_lgwx=Kkwps}5BQ`y{tVya%7^aXDSww+ z{-wS1m0vhJ9PI9%6rjJU_~!EPv2pKpl6+Pn{BE*$>5VA)1P0=3yM=pFr((NVi(Zd^ zZSeMrr}N8l&V9VBJ<@!=HLzrcFF9=-pDk8$<@MMTO4&pI2Vc(hR#IHrM$-O)4Qn^C z6YBFJLz5n(skf3#*7KfaC2c?b5Y`&uE3w6cHT^zz)uKT)CTI~0Qv`g=1s-BOi=b(R3tez*3 z;W?~7W;~|%jK?<_j~1^?!Ph3_=w$mv+!}y>=N*3^JTmfW`<~+G{%N1TCwP4xp7px* ztp~HUUbi0EnH{ZSZt85382c&ta@T5|tq%Rg*%O%KW{fP^-g@ft89c3ymmc7d^M)-BVg2L|Zg)Fkcq(&xPOmhqd~buZuV zQg117XiNFKFPe?~{w6dL_6cvg+qV?bcPbrSuCMg*q;FID!R{$qJEco){b%>QyO1T- zxtZ^j1=?Fqd`BZruDF+>d8~N$0Jy#Z?0AW>N#&E!bJ=%xT*&%k+lgAs%18EEHx17e z$EmXsaaj#u3>dyX8c(Yjf@dW&Zd?WTOm+}wt^H>gc6^iP<@h|3xq6L>Y_=+&n4cYf z>jFdD8Be;W^adRdYoPf`Z*$h&y>NRzio*uU+tsu>{|NS?5 z#F?sJ=Nrj2@k5+xZmZ^fMcG9pLuL>C-s$#Sd*^f$Q{T*e-ioBG+E7*`JOR6a+N-<8 zLD>U*$%D-O43FH}vD3qv22q!Z*`%&zg%xM7I}zS})24Usa}aarC!dMgR2#3c z!m=BbgF!Zxy_h#W<^{m+mOLzfkUL-x@!9M2J(v?W_Jy?Z63U8bzNoAVeKwD(d((XZ zI!pQ$bVh%?)ECaXD|JMXFPJXh<09(cNxc1V-a~2R8{Okg$wk(^>$8^@`l1)Pyn8+; zdd&5M_rVkKP4VPA-(w$SuBg7E%KUu!zo+tUc`i1y2jH(6%WNiThc|x_X2&=n?<$yz&Qa+=FiXr#l(* zeB`M7A;z7vX*Y2`=$`W=w^dL2%vs&c^{fBwJn+ z>&;fZds&m6dVj}0XX@>j)Kl+L)!Tc|ORU#Y|Nqo?y=IKx1Aovn&ot-7v${VzJX@4x z&-r{X1rz8dLs$9-hwc_IOyE@qZ8qf!gU~~-cI83e_NGIBn^SIGZ@L`S|As?%heP*= zc)Br^H%#@nI&{RSh-b0-kH^!i{xsG9x8pbH*{^Udd?@`OA4282fP1#?fbpssEu6^ z-(lboceLTVd%iQ}kMx^_=J8;X6Zf*7JL)bbxpWio zSLUuyN~_#X{S&DljL^I_lyMe3p9-esS@1fvaaDFDaf_9?zcX0om8bW=nm4*i=A{fx z4>)|rM_*a1K6rS1GTzRIXO)I;il^(#HZIw*@dJ-=FZ-}?0wTPn6E5ru__(8iudW99 zT+SIz=Unc$FMgWuhKKCf0m-gnqGr)Qa9^^s&_(wBJ|*-qzNQ@xE^?c2k^5WE1c$U- zx5{t7A#f$So#D2Xx@TQsYi`6Au;4CV{>`gKMw=8PJ`u5hh8!rpiebl3O*i~^@ZA$v-~Eu zVIMqpZFfhHT3=S?vbRi z4opP8@Rcssyk(s?Z@kl|HwQ5GfviaL-&q@;K~5j2xY^+D&p}RwyI&0E+i2!f+Ig$9 zpW!|0EsTR@)jlTQ>sge!1)uGitPzUCR(bk%-;xl%{m^8v*~S$#@&@~BQ+W$wEc~h9 zy}eNGA07*VpP5R$gYF0gJa6J{%LA8x$+=OLr#0dzYdH6nh?DMlui|7_p<2s($@fiG z*AUKh=%URZUx7~+9exAn@mylxY`oB6O{4zIo1MC+xPmhWc%hAaL*JDK5BkCjy%4<6 za^5zStw48Mg%`>gu6^#!FGK@AZ2b5zQkgfyJ-DGoy>LT^m!$N88`_0zOTG_tziJmB zJ035iX|F$}=>tArW8AGLg&jIP4m-5t3NxNv%f{OHp`VyCvYK>u(b|;E+tIq?6r`QP z5DoDik0Cm&>AknRA9;r{`3knsuW*;^VczTf{_aSq91PJ4FrY5>1=1e@L$n+Wp86#8 z2JG`I!2PY1dqT4m~ne1KYAuS60PF=UWV4Rg?oUX(08@xWBRWeeZwYx?9wZOxA0tbF(Kf%d7mHuP)2&I3*g#aK*697% zucdQ*LcMLHxR=Fm9sK6DUwzDDe2P=Typ3!%cF>pO^jGC`UOZI5`p`gm$V=aSCf`4x zcgvHkDMnzQ%acFnM?dhStG?s54zRWmEW$krX{z7IDZJc=oPG%%L^cia1b^0>vrd42 zJ0JYp`QYEqf5d8@5B}|+*?V+nx*(VKgM+sU8CzA^_;~2o_L$!tl&*$ zl~@iJGqAve8CU>jVA{RB)8}9Y7J(U91TJ3=n1Q(tW?&AOfw>N5U=etIdBlO_fEk$U zUGN zeM!U~ybA2W$p035u)_EFP1qrB_h1iB2gj-41lWTG|8KDesqaMCgTwy~?7>}N54QJ# zJ-7?(!9D*A?7@Ak`%}MZ8T`S9@zx}*^;5H~<{Ge!Pqv<2&7RkCt3AJW?CQRtp1Eh% z0kH1e^-Sx)Ea<9l(S8#NYiBC^+YJc?Z1v%s`tspNL z)Acir4rMS5OdfEi+rVbkexUwjKx>uLZ|L-!{POFqK&AeEf;A|BomOu*)`P33n9e7# zKbdmComM$2BbhRCQaUG}4UgUa?jtQn`n22MUEyeibEwug^`ZPP-50!0|6O|VXCF4X z*!uOr#nBgNi}3u4z)NuH+;U@U|K%4(pMlOzH|5xC;HFR&SeQP`0hI>CKNqpTH$q!W|9Y^T-;2X?zWgLu&Pq$fa@N~RTiEx!Sk8U4 zdu=FsVU$OvhK@s)-1H9kX~EB!J^{^#;2=s44F)uJrG|y}-U05_JU5@queiP8j~7Nu zPsFoVlcHbtq`CQH;|RZBSH04Cs4s}l)6U1OuU9*%Yn$*I9i1p{e0<5#*nL)Tb=|R$ zOx?;@2rF3csRk&&9Gt{q*uCp-bYve4YnNWQW@XT~Tm^nE_|2WfT}xkTfOZ&tN&JoS zHoNU{`zOAp5`z#5Ulh&q^xxCowV^L2n|K}K4Cj7)KXO#kgF)TFIlRG%V+4=17ytK> zN3w0|xZxu6_O{XczHyO#{^vY2A00+(M3D6==WZ*y@+-V0$UIC>i8L?ArUCxcy#4$? zE4QGrm^+Haxvync<{C`314*;3d9yi}oS9+e7k@4DYJMNId;u|2#16S-940UC05tzz z_8#Amk^uY9s-$$z+NmYjY0gUnV|5mHaxMTLEdZA2Vb;#&H#qpzFM-#6Cs^IW=>IaGjzvrIgV?Y- zz^!uex{DpW?nPsEW><{q!Ry||+E#v#jo1BgS!U?oWlLTRj_twgcH3#%;$U?b(gwX# z6~IqW0Y0~j1vE|g)L?f996WaI2j%PsTI-}6OUFegI@Cg)iE_7{HL;#_QxACEZoRTK z{#5+A2)h8XruDc6UDGLRaT~TQ%?1=~f+@Gp0@lpS#Q7zbQ@qn?ili>1-+;=mY2M&?Z|*;ps0b_R>zTHtAcr zgCg9W+rj@`Pdw?}9$v)a5m=ktehKd~I~hMHI9=Y~ZsfNXFuAl31;DN^x(40w3gS*! zFYhMiu%4Jj(_XN;-F%XZ8zdK5os++VKKq~G@^Lq6sQ6M3-fsuIF?qnw_U5^kJf-JS zmqSzkPp52fvt2sL=N$1LoUZ!APC9tm-t?JDKilaC{kmKIB98a#9^HCBypCue{E5{V zK&}ISxj4G~c=zxVt?h>9YnMd735~{8F*QTTcYE=r(eLqhCVyu-c*YIL*pb_Zg&LAZ z)~0lA<1KW1Y$Ypd{~pde#&^Kq55EPUf~=?PfgQ+XIs2P1jE~%&5o$~uSv&sKNb`;{ zj{I-vDM$7xm2r>qPw1SYv0jf~*~d6*ztQGhDV1kjh+dQ%=m)u>y{;%XrryAx$$*#*?wJ1 z4rBSFX|^1J>+8+)d-V^jF7>5cbN0z;@>8F9pJ<*M{SI@t9Bk7D;#=yWH*Epm)LZVa zDOXs*%+EI~kjq}Uz!f$w@Z|}(z~5lM`@iA>H!xR%y!n{8*2MO>@s~tP)pieda09s0 z4L`=liQbyaoOb)5vHTLeGg!gMvSdrYS=<#fSizp(vbi5;u!23m1;G>+RzdXy*&B)~x#R5N)dKjUcdERI@O?Q2~zommml#}q=IDV@ZMhJTfZR?Tu!r3R3_Yi#yebb8mUV7haj=V!}`VJni zTc`T&qwl&aUO&@G2dCJZ-t|Y)!3S}FlPujxo7(U#8Ej&QAHoSbr1s0_#Bb7l_0D(z z9k9Z|CoTq`csBUNb2!&t2|jT_ANa&Z$4bB_Zn!RE-N&_&=FVFq&8M@52%ELzCe9xb ztJQ16mJLQWpwGh!KKI&;bzd2;cbkM2oWvb|KiC|}V05H_d)hDVom0hX8e1z^!7u;5 z`;p*JF0Z)ouHfS<(c|ZX7hH+%Zuok!-h|g%5B7cKr{G%~V_5@TIp;vloe=GpuOJa8 zIPdm|?u(odCpgoWntpG;NY#WpBhA-<$!qF+si!`@Z6iN{aDr2)H-|f2_ohXv?jw(( zZR?x%=pR@^8QU6Y35Yc3m&54&cVG)G#Xi;EZ8ZjwrNAZQ%$snExvHVe0Be<(PV1DB zxnGZq%8#w`X7#siGKy`J35(YgAwWiuJa8I0$2#&sI;xWveAw{aU({t?cwCyUi}-~av8vBk@O zM}H?ZqK7}#6bbQujIjgZLo1nhw>8K|8!M8m^F#RacH+;|+ip#Khwe%n5xOgI_4VYP z>PxP?8QE-sr~8IjjmY?>!eD=MjyUvXy@^mg_;Si=2XkFMSH(RFhx)*9t9g&&g&Esy zK946`R~`2!=e>x1_fL6X#4bHI+AzWPQKX%knqGXjbroyk;)%SqvS`AeA1leS1{eFX z&Y$leaiI9T+U$A6csHRZjy{9fVD!UvW76_Ekh>w&DIdo@v~d>q{?pK9i+!0Tt0(L< z@8!7ujt0ly(U4|!Id^)DpF?NyE%YORpDEKHNZ-8B3SEcZVdFYx9}qUs4*XSnPQ{ly z9DGjg*YLCH$B~fEGCJ1;;A;SWCi(F1A~QS2@D>6-49zFW_WQ_=>qnHoveYk3=ib;5 z-k9ibjf=;3_F|+>x14heSY%Hk7h9MM)vR3`;jLfi88FCPdva0&{@9t&Dt4`Yj8g{K zV=k@AdRpnocl`t>9n3LrdOhiV;zgfeJvxFPTWvp#Ov*PU{PI})!5Gsz{vFC}8;3r` zdeaTInC4v&eOi76(;u+K?D;p$_#f_pUU&)(q^~mL-GeEn{d5+;Ne*NO7tUDVGOJlJ zGFy?6ql`(>IoS6-wr;H#F@5FzbIklKrJMj|D6jHNCy!}Mdwg4nCwas|mqX6y77>qB zgN_>HZ_R};-{pJ)W!U;pF@0$*18>aRmn)SYovnfN`oWyxI8*My7bmPSmrm!inb5U> zpHM$65;o~zjCs>9ReCn*#C@4`u*JOTlSz-D5C4vKtq;Is&UDz!WoJ87fSs*@eEK_= zczyMwLFeO9rY!KZ*jLT^XY+q7WtD>K)_@F2hcmtvV$Z9i-L8(QJhRB7HI*`3LxV1j zK1`X+OSQqqGE?8cHB&5{`W8UvJW+rC!QR-$ee7$HIWE*(5V#Dxr}_r|*xl%-jC*St z_+wrk>?ThH+&A$+bERQ`Isdf^d(2DsHgpzuSVh;+&$&y7wO4P&kGTOhfh{y-n| z;{bG8-wQ-TyMjs9bNb$atZZb=k-LLsV7*0$T zTd>~THfueqR6B{;l|5hUwRARHH#_nE+!vmw_sx0XCUiPjZ}4_f;9>iXyp{Na%(?>J zo85+trV{F}V+{^G;?Uq1GBn`4xip2)=w3yQ{7Iyz(@yCfLB91{>J`(gr2Fe0pwiR8 zx|Wad2}h^F?=-06$HIKG^_tyA_nd+LF&+J58u|yi$34F2=>y{R7}*w(n}f1<>t0Sk z^?LNKeNQ>I2W-0?qlXf3Paq8YDe&AGmVbe?EpEx1)zvvrZ8+W7}eU$%Y@|mp47ePwc(o zr`kg0BKTW{iVZr@u8vJ{PZ!GUD*+sJAb?y4_%*O-)KNcy)!n@ak6d#;aQn-Wz50 z!mFdckNEv$cy+sb;nl6^jaPT)|HtJoi!WbT3m@JDUY*nabC9pom~URZx)tEnZNv7* z8y{TZs2*HjwP(q1D$4S~AzHlm1>ycBSAGB=|7P`HH1o83vM(F7GJA``tDC;Gu=PIh z>h8}j1FvqmgIBi@xnE)M>c;eqS4Ug^ZM-`Akcd}zc|}G37T=kbTiKIYe++KjE(bG0 z=cb0!BM&Qna24Oqyl4&0y0q84`2Cl9;t4xOo3r#L?^*h8%2ynu8v|K3kNB@?C%zBs zU8i+kiJME@caqMkyAs10ha=$L5$hLvocj$oJXIKOhd1sTs`bcwr|7CTSX01yD2Fb< zyHmQ?Fje+U`t0V>y1N*BJ7Jl4fBQAR)nVJvx$lecriS`r*mnzT?7MyFE338s6XTGo z-?mmaPb8jTIqUo`_UKyHsnw*VEy#Pk_|@v>*`%%KjH0wPtd+H-r7xKHcqQ=!HaV)fx+Y)9aFPu3n3qP^Zdp$qIh zv#x=ir}fmErnj8flMe>iPvk%IrXBc2&t7tBLfYT$z5HN+byasTz4>Bktf?P5aZuiM zbsF-cJIvT%;^ao_yL}EnIp)CsTrGK0d~*-3tM)0yz-iBzzRt1Fg5M{ZxCS{W<$Tug zy=me4$EFz{m|UWPUmlK)cbh%k?d z-vigW2T#VG1Kryt|0&oM`mwk7XO9oC*Qa7LN;5X2UF-$NXnUOOpJC&k7NtbG_H&k> z)%fq@{Ea*b&fj+(oImag3>I$R(_`KS=Wk@6IDhNG`CA3fAM?}Tm@${YF#B`%a`xe; z@H_r*aQI`emL3*Dn)Xzqhkj zfd^OQ;QHPBbEhw0`?-D5z03cRy&cT28q(c<96W=#V$Ry?N3qin_B8PP(!ldu?cn+C z>=V!L0r33P4;RmG&gbI!rJWGZ4_g=g*qOZwEVeb^qt$W;cs(&C8;AoOfZgr^@cf7= zZ~9qA1WeUaE4L1}=Dp7ONB9>X^7~hrXX_b{64uIN>;Z~5)fpdIovZlJb=(pC{`25) z`m?~h%K-20yEdlZt%1G!0VdT8!vV(}0nCy{*>%Kdj}PBUWy^ENs%i>N9hKbClNM_ms{$yb3J7 zvD9zg20X*;HEX>(iuz^04Oq-NJd5?Xh;{ig*5{eL&oKkLuZ?e0LmPtl24n9$6T8%b zZQGpPD*{G0I$!m0=D3qHM=9y$#8br1!W+T2BVCw{HOzw$yxfm1vuNYM&^w%gz4>Yq z^2r{qu@R5$@tGN3gl%}gKQAvWDJ^|I;{*Q8JZ~9A-ZD}GX8+Zm<)w+M2bzEM?9r{R z&F4CFwx8>ae-(S}3C@M?ek=WKIC0a{!GbblQlD<#rK@5rT1K+(^4_Oxf$tL&Ytq3b zboWl}&#sL^_rTj<$Nq_(ZR216JA4E7149ocp-aEpp?7g+UZ9RT*1&*+@1gr69pL%Z zgJoA_pGCQU*^^)OU9CLm@95-18}{BG4)SJ?SAU7wL2jNJ{S7qJX-8tZv16FF4f~tjxv#(n!BFR*I`B zV7;$D?92@?F5UL3f1Bu2ope*uYZS|W)S(04(xqDg-H*jz`3?T%q=ReeP5+V7Sr?7$ zCxMG+$HTOifoJKZTPGgE6P*)mUAu4FMu;<@mk;~U_f20@rbhSK=ZV-_aRvJL-&re^ zCya9-JKXX8B&H zCl}f45jc$E^%un>-s-LCXU7@V5UaK_t;k?7ZpDWv+v*dHRm~~fa~ODnv3~WmD3^W= zj@K%14MD*+_>5;(ROWx^x1O6__0*Cz$<}j~oUfNF#sGar{lq>Mht;@%GiU+j7#Rkq z(HmTR4m^{2TH)CBI`Bn~g_zza3x7{EAj&nKduVk>JkG=Vc z!R|TmbM|J+H#T#yuZ)kA@%RDbp>gGY{-IsSSnwR|a<85d?cn@0g}+^#$r=Y|QfK$T z4Iu|(GP^be#^gR|1B0>+&LsNgn>Eza!Cq1%-W=#3>cl5?L*edq+CiY587Yd(R`W7V=HOFEV=S)%nL z2mjDz(3!q83U_izeqgwbM>&Qwtlh5UQ0F;T^S#SDmjt|6ln?i`(X`LOp-iJ~tS6J# zGslXspU$Fh`zrf|Ixn)z(0L-1yX~>P{?w8)(D&N6_ms06-PkSbPn6RFMv3qgMvvv4 z1@sZgyL`CZ$BO=78gD7^`+|?V=iQqy*HuSsUAbhCSyygJppmX+eER5DZft=QU)LHy zz863rx`cIyk9Q92bJrc@{90(XUD4ZSpmjs|mD9nAtYLgz8-nQ@7?zS*ts9ro$B5SG z>=Gjf^`lDcbp;GdTdr*zz$F@Qe0;K%)H7#fTTmQ?(G_M5cI^tWdE#T9xc7i%!#$zx zpif%|ZKvH0)T0=%`Y|Pn>6ui|zUZ}Y$Lepk>&HMbv_Z7^e!O%sod>$Jppn1W@Bz$A z+3CfH6kBHSr8#v?aQFb`rEAMCgzngH9Upd{lMdFUo33&`CcO>(CGlUeBMp?Jy}8f! zd^R{L{k4Iz(C7N5Id4d>J*f%3Rb$haEk-_rE@a~K_Ljc(75P9qZZz>!7u3La@w^6% zO11w}Wb~Ul12FC}e%?GJid}eU&H1z+A7Gy}TZcryCL-VV}<{F<%Lc< zxS8Jc8l|Jdue{Vr2QSl2Ur5`km5#o?vd}F*BbKhQUZQmT;x(j~6F2X!&0FzPoAqo~ zQ2yqw3t5}510(Yq@oG`6S=VI`thuGu$Z8*aI~cmxGW(M^EpAQuV@y}sh;_H&PrjamSl7_hdw|xAT_tuxJhW zYVesJyB*9K;*ZCdl-Twa zx5?Lo89JRdL|8wyCyG8Wi~Iwv=k#}K1@ou!Tlv}#bCDero6NqF%N<{}+3^o-I^y7k znm+u)#tT*Zi_oEt@@}qae=Y5g?PqTLZ9F8kf127)Y+JB4ojc9=*XhGi-p)0Bh|-4* z?p`>o$?ijD4EJ;hePF!ia^_#W4_{EoHzMs~{(lv0&^d0uR+WTzq&oeIvZoA*bOkEx zz7=qGP=1ZI@{Ks!f66?@m3Qi!=4yPu&Dawg;FbB>{f;1ztlG|oP|DRkbj z=tY#{>gsVc?3vh0x+bZfrDhI3+rnDnrAbA%i0#=k{88}#hI`YsU&|kGqVhW_f27L4 z&n`dbWaW4Hqo+YDUVgfvI(u**b^SqQt#Ha>z3{druC31`M?WKu7vA=oOPu+7&7~vI zddqTnyeaheVbKGm{q%C#MP$=Y#%7d)?Wi9%r2g2F0@(CZjZI(s$BqQN2`|p8*+1C7 zYaU~Mp&xR-+7$Zo@aS!l6Jdoi=ge=<43FN-Z$;Qxgx^|247$!eE6Hc(Gx)8VQ-#RO zNXahe@Rj5@X<)b7^DV=q4^_I(K%|f6o>2k(m)>Fas3&9XXbs(v61`IG*yj0dYl=B1 z*X%~`U@fO@t)bKVMQ1`M`>f;@Tjr*>zJT8Wy z@LsRqN&7ha;42A@-wthTuG#H({d+f&@5|6CUbV=v{RlH!n6jpxJ>!czb4iTrAhF?s?MrYLaG$8$Ru}`Epmk zsPupie;`kD!ig=2?L#ZjM_t`dKGekhC>L4&y!S!|N(QH$*smHVd)Ux*CU&u7rR&CF z$71JBY=ey*dvae~2$?()cC6%IXDP{s?Dm||=Dy@$#~L{?*s;l>d%=Y687o_tc4b22 z{I^%pZ@`YNfljuf6XC`_1?J{q&QZdS6>jXtvuDc(v`M(J_Sg<>LMNIuhBBpZC-E%| z*1L39g>#y)VWm$C8@8P9Yx&flKii&1;KRCQD1V{khq!;)NE@K(__TYo8E?kg%-LtN zT)%m2%u_sLF6`JJ&Sw0!Tf~qgH3k@)zzvb+8IxukT-qDhbL5ME-#$NV3hc^q&kwQk z4$bM2p#c3ceFa}u?Nh%l)4d#Q;r6*gvCLKsPgZq$aYT0^Z$UcG+2NXWYja$^GkVwioTuKa=&#xvWGxi$Qt^=*{8=!J zWi#&!e|8S<_??O`!o{C`8NAn(;LolEfA(JRXJ`6S(#G@oo0SrWKYOp`k4tm$XNCVH zJBRRR@3qonG{3P@O15B2s>J?aSyJBCl-&3f12Hh5K< zk8OtZ26TL4)~gI1ShFsj;t$_~E=TuW!E8~Sx8jr+pf4C&FlJp^&5_rjZMlFlp{pTo zNHO1r4t!acZXtAAq3f8^TkdyVz?|UiUe<}BvW5MCZ`qc8*!4CN3vJ2*H`Xm{1vIV? zOqj7_RsVUiHxZ*t-`O|c)OpR!2e4v|PWA5T(PNbZLXEsb@EAUeJg{PC;$PLirg-1+ zr-P;7;>8k2>ei)LcIi-Q)KSNM)?=0F+$qhjP5EL39Vn5`(U-t#_}72Kzq2~0$gZb$ z%?BIS&sr7)54HY5`;3$f|GhRi>CD)^HU-9yGUs$}T97t&xaq$c>BgML_O=VrZRWr? z!z*xE-S%sI%ETY;x2kUT^9vfNpK+Sh@DTj!+efoDv}%-XN7_qleBb`QwV^MMHg=@H zBF{k&u4~YP>#Dx*INm*}i}h#x6@|K!uvYl4Zu`7rDQwqG@J)9mg2ePEjOE%R;JGrE zYk5VGu}lkT97DV<;l*lw>h z=vzkFW2ttzV`=)dewy7Uuv|~nr)A2IO{mX4f!%8Q^sf38_}}%(pV-#nO$(_*e%)i0 z{d@YfN9(3+4nv!4IqvDxm!Q{Mc9KtTpXx6x(0p5423E0~w-6b6Q|0rHUHzp_IvB;? z^qorQE^8y{!SSghgh|}Q*ynL3%LE57m2br=Y8}Z2llWI)66^fK99??^Oyc9<*4_X% zZ;ze9ZL_`S2$MKO9o6`B6_+^QpLIY!A|k!G zz6aRrO?}|X#_9uC_89S)roMYlT;E5pFh2Nuz4g^EGO^@q%fOWN^1hO`>3(bdElxUE zvflJEr4#QWUSJEExBUaaM&IU_nX&;Y|tyJv47dv)(4ex0o6VlyehcImhKi2gV9Am6Y;Yayu?xr(7 z*FWgA8~j+?50KHckbWJKOu(0N(gWkIL9XAVy2o#_HgLM%J@>42ZMeTc*Kp6y@(l#w zp>)s_W6bsyk9nf|yD9jSg&At&DW2>O=ajphJDj`^u^pS_)Vr<4EBIcWlvKHa^VIqz ze`Pt}6H``aH*weUOkdh-jocADYv6$NXSi><1zT?u>AH_Nm439)@7<^R8b7|;YTV6T zp2B&Sx#xMOr@t3Kx12Rcad87V%RB=v%-{WI<*BZZh_89kcS^}K+|vwG_A{&*jil%M zGV}JK2M#6gdhTkLQD*~~qZQnrOg-b(Z0=F!1;C{&0+-TzPqQENPjXk(i%U6=wuJ7n z2JPTZ=8F@oP(b^x?qh-pXzpQ}`Esr!YeN|e9!Xm{Z4pM1orL#?&_v-r*jA6IT3u%SIu~)oAE664Jg?{?DsG$iWre;oP&`k!E!bcIeAI^s^Xm#=TE^`B@Xk z`|aY4bz#Q)7<;bHF^TD|PWm#xHTazytp=e6xDRa0 z-!LP8?Z{z|{GI%aT9={w{yHD`9l!0ypzHusAcieW3`z~_lFsLfLy$e-X}*ir_Khu^ zEo|Y3`-k2qwjkig&l3>l?)ciFXHDbHK>HrKnP&;IoE4Mh?8-*1C6eU>#^<~?@U;;= zYo{aA*TX+|?Ua4D$iXe1>j^e{6X$RE#lF+PeZQ%S z!~I3gW1;2EX{o-{+I_^?hnD-V4podAtp7XCNNNlYu?D9yr+H_vqIF5#pK5EBgXBsw%zvRKE(BxWvt6YrVd~8YxZIv=i?;S9vcri1AZAi zWY!gI$0hi44JNX^Z`$z)!pl&9b#B*LuRovfy-eT#)je7KckO+jTv5P2zrDf5DfU6v zJ}YCW;yI7r?bKV2i(`(^uorEwDv-G9%Wjl4&eb0X?lMo3#*Rs`{ zy6oRxqdxic#K)18p>w$%=U_EWglE#5So=2>)}`8aWcWYV`Cat{uvK)}`@^Qfiv!W& zqyA?3UAckIDXBzD1?)&SRh6^aV5j#q+ZrUTrkIk{`e4U4hQ|FPk~wVssCo zt)=wqD19u2AAiv|{dcjp|9slep(pdJOvXO`y=mN?hPS~Su+*nn7krnsCWDwk@jA6G z(m0-bn&^U)Ud1jo6`w_2=2w?av<%g|#zoPtinQNwflz%sIkMB_aD%!Msh;^vq7poq7kMd{v zN4_?d@@o~7HawCaqI^Ds3MqdTb8pLO;Q!Jux2_Aouv0sq`gY`>)%0;6@~U>tPW4^A zhI|83tmfhg*5p?QN0#J;2V8CHL#L^Dc9rQ*E&V~iJ@ncL^k(u^W<(yUOtqr#QD5qy z2yZ*!S4YpCkTUxG%v>v4h8#(j6^9^vp@00+VuM+P;sw6iNK8{vPN4gnn~*l#Whb z3y)U$hrPC+I~KgFFqq#aRbo4!4}n{BQ*I^K!tHcB817DxOImqc3e120rRa?})RrD*5ei?oh z6j%DkTl0$Pm)_`@T99`j^lUBtO08wjGySTeUn%gK3ph<07o(fk4=`hLK4Wr(GY#)U z4V5mbaYAMsW+(u0fXOA)--hplEc^WchmrAaKQOC z7 zAl^XJo12vjc*`muyJrb`#mhC!Lt>E*)G{XE71dr&pURlevH1z_&SrjUT^4^d#@H_n zAC;dz&wcu?2hu+DpP9GDmzMq=Vo2KtCeK+j&>FPno1+Fl$=?Hc19`&(+b${K@4}TE z=4|IXx!t<8Uy60>P07}+_l~TeGj8RRx2#jlBLA>&0j1q*)V2nRffq4lH8bLpzc2dN=+pcx>rk=bNlzIif9a96{qNbb#>3@N&ASG$Q5Abt zvz$v5R)N`HVaw2lxW!DqhHy zN70OdJ`b64%UFawUT5Snn|@>&c|1T2aiTmbujFxJOdg>{9`9itOO(g3M;oe<*R~|c&rv=0kKTNERyLaiW z6Uo{tWIlK6MYT!Xle1;suE$-^ZlNC8+uV9o#~aik9fS3(g!OFkQ~%R#&Pt9>x3=)< zfl(jp;Yf7zJ5(oYj(tDu*z;fzkhT^6EGFM2`|vb=2KYT276AopfTLnmWd! zzh+p24IO?E(HsP*$LA70CwteCbLghnIrJQ> zD+pGv-Y_y4^jp@?-QWGQ+k{23|BUr|cjnLm_R~eav_+vo>$3xc);~5e7c7mR`9l-$ z@?V|K-0$FyxU0{CSOs^O)aPciU-N ztFG*v@~eK4@bW8cJfW|Qy&?Q~3GWdOw-z5BzCPRN?dATc^6PCxjk}+Dtn<;{?tA9W zwCZjvr<|6{@&8>NX$A+V+2q;Ocb*BH+rJ8ZWOnD2eb5KFr`R~g3a`HLzPXET{PAtX zwmlTOtLgF3XQjUnrKYB5vG%GhPcV;V|0vb>5dOc6dyKLtEt%YR+wcJts(-Vbc1^It zvrY}xPWfS^YxoRn^EDfiyE^ba&N?+vn}2$w>+PA==4;m{cLkwd_4>J|(4Xo;r;IU_asO=NYb~A0x;G1Kr&>?_$K%WSsp^l!cu~~> zCQ{91oZ~OV|8<#lfvJ0XzqmH5?)Urq&hKY!8eC7^!fZBUJj`l73ykf30|VxqvO3-V z9vw26WRI;t23>j6d9fwGbMjtviFN#LyTq@}I{22+D|rJEs^M!;(REpBz7!dwZ@Ot}9~jPtj=5pV>+DSzR{PM$4IT1r=w=V;Rqr`!A2`j14mmY+bvE7m4qv>o zEt|(5;j1v4O`fxzJO|^;7B4d?yA9v9p*x@VUo|H)hsL!bCd2FjU(@)W>CjKM!r0xy zsh9h%n)(-Oal^OK7pR+etsl$tRliwmJ@L=9K`;L^?X7bv|#ZCJ!wZc`ry&xI8(_TZ@=H}?#pCL_8 z{a5@N>d&d3+cFioyt#8q+&aWNUvXrf7DYOACU^g+p69FG#|;n7g_VUa_R-0eFh zSbHIB)Gu?a&1UQ-O|kjwVxbkA-MY)IQ zqje+nzaRz#SuCGzO}gf$IaSwI&Z#nac^k;=4GH~tg}l4PpX;5x$mi%R_O4>it-J>~ zWqjrc>>is!-w#DsvxiNrDqm8ZnqC`W4>MS6)`fB9s*iWk_PPa5+xJ`Hz5T4KuvHu^ ztcj;}+rLfqmpb%It*S|^S4rdQoNISkl zJA~P+wXlZqr2ReR25r0P=)`iZ6>}$1ZZ&w#9U~&m`>=bZ@jhCpV$qB8FJSL_NbleU zczZza{%knKnrG~lW3o*B?jEE$=h`UuB3trx@29SoLFftCH3QfIYS@E6w~j9V;v&vJ zUvb*L3qIz)Xxn@a{@N?+@WfgZB1|5RpO7{@0Q-k+WTMNVh4!JYalLT%PCfue5zac{Y8E^ z{MmG3{p4GcPht#BS=q=x`b|0INWTf*VDzl!jztB!CpO8H1>Q@aI_;^v?|v!rMU0{J z)5aCZB>M5_%kB4xrt)@l0Xk^W*zw`1#E#sJ-e&r@DZV`M;wtq|?{%wx_gNfU!Sg-U zep6MtYzyZ`lQ$<2*B0e1BySFH+#5cww!%SdU8ddj@wDz-(%id`c2^T;XzJrVZM9FB zh_-B{#?|4?w}gBx|8Vj>#F&Zio_;^k**)(!oRd19j8rw8pR`2$2xM{J_9|-u;{;p0vQzjyVNJpY>6u z+P;DgGU0dl-lgN@r}g6JyUPE*lmGc#VP9OO^DuE5 z^VG)$w84z`f5zw4c)!A$Teru_`^#K=Uv7z~)0oYm9XIwv_n@wv-46YK<%T={qaeKF z3P(nc_s*yDn)>+JCGfwEe43xzat*%=t|4aOmE0)j)v8-rGZcq(guV4wd6tR0>SS-o z^oNPNN(+hSdsz4No~iU4W6z}Az4$ivQg+=q);si^@@3&ALE@hp$6%xPryl6iy=Lr5 z!mVlGw;=X=?1rWu#ddX3NBC#dacinw$5>At+T+W^QFG>`p5LkuxpqA-_8U zfcyU#-eX@kL7t!0?@5byefH(4F=GHUV^{t}y*NLfelly(sz<^|^ol zyZ|u{oDt`CmGw7m74FdcPCf4Zo5L@$hH|e{^}xTbU`2j@K)n2Rq{@9O=N|TMv!=K7 zZmZ3w>bWauuj2MpPD7zDZ0P4*+^cUc{T=F`^cvC6^x6ArM?Ae`bp*0nO8lOoD|YB6 zU1G|0`%(y<_pH2?KDB_!V)D%Kg^QS5jl|gG5zCPhN*!U^w$d)cl`YBp1lF|_WW5dj z#^jyr^y3e`X~$ER=)34gDcCHA{!0%1xJ!HW`v!c4_n}Yy9r`wO8$*Ac)1T^idiDD+ z^r23=jrj8)4&BJ9apj8c_ZmO$ff>4m4&9pGbgx3ExIII+$QN#7ZY{o;F}Tqe9zD{! zP3L;EUIgs3u*(a7{Tj`Fa>hs<~oumFqui;EkQyI=TYwd9B(2ltEdU%r`e_BBE zopBC=Ki`lYs7=~v?~~??#CiW3cyD1(RP18WMeMV@16V|T<^Gz-8gD5G2kvTo9G__P zNRlr)mASeH%zCr_e%%+xcgc!7o>dxu%jQixHUs&H<=g!YdW7@|BWpPsc7E0h?|JPN z>fX#4L|)Jusd?kjFF7%N1N1G=IrK9fee~^kdhzgb_*T8yp(}RizCJ9j9ip42vHb;f zI>XLkKL)!->&o-^Rew3xGV!4!k=yU{G3(1m+{G=k*Jj!1+%vsBZaw!f+I~g-o9uFn zD)Y^_jqWvWyl3SZw}3ltciXy`J8t{vbIwm~YzpaE8n>YT2amnQIE`kU^geJJV?X*0 z|KidW-Sb92Yc0;v_g|70>-|>ghFkt=E!hIU%y@ibcpM*G{Y3NgO7XYJ;oFJm8)wXM$dWc$pO)hGS&ho zu1d1%<`++-qpO?={H^sUudnvXVm1LO@p=FlRm~)QbP=4#VFok zOtKbF2DdRV@Ovcz{CN#Cle?;kbLlq~{i`s!tMn9W^Nw%(hpZxAB!u6#@zUh3@>2pO z4G#sH$GbfK&vbiiSts3feHh}3b)Q2I|LZvGz`NG6 zr{mWb_5F4FTDKBf?I{lqP}!}8=i0U%@4DiS_YTU=xyPZO;BPkcYfeo667+R8^}v>swD|N4w^GbaH16)Vqgn zTYpI1EqB>v1(r>Dk+Vaz;pel%-ARE1W6}A4CK>&C%94ibmWCT66qODPeCu45`8Owx3I^%dH)$^?7rDO`M2cJ z{ji;UpDeCau|y4C`~YG~gT!vdd~AihN#Vrc<7-=6{6=qI+jH27mtiM1wll}qmfLK{ zliBeA88Kg55oc3tyZv7LddJuHEqrYwBi5w#__vPWYpch8XVwAyZEnBZwb1poJxn<* zE!Bk;v8~cscnkL{pj(A+tpeX#D!P>GSIfq)rh4y2XPeJCdHRUyOLH#; zOOLg~$QpjN#BwD!x2yh_C>Od4`OfgCJ$jL~c?tfsz;OGwFt%#Oa&r~_v>^Vp8qWB! zH#G36x#bojWA3_g8Gm2Q9BFH&Z`qNmpyNw3YZ1OQH_xx2X?c-2Nc?AdTe>_9{?0|c z@5b@o%E7?pDKQMS_s|11US_Nu|I_m?#*dZ!Pk+V6(DEE_sNsKd>s(dLTsg0EGPcQ~ zFW6^FPG@^_1(%3O*rk`Ugt?5$X1N z(prcw$W4#&pT2)n?fW71LRa$zYtj;QiYoL8$&hI;exSsB+EZ^*{~sqGbn^c+oM+8T zB{nL5e3tw_YeN-zz5GAz`yE-q2jrG1{=cNP^-852jvxKQ4{iUh%y2?9RzA zC41()IuWv+kbz zHO@WGTGQ(KR37g|w{q@w>Mec9uJ>ePK8*h4M4@wK1AmI!KDW=3I>xbNy`(G0*E( zb_$nqkn(fhtt>;&ar5=3{dJ6&;^0Tpo?+O+hhYnk^To7|M90E5;lW;HtPU1t>K*R* z-_eP?%sArP(fd-~JWkrdLVQHyPn3qQXcTFT-NCZiJ$tEm{{el8d>cNn{?)Vob-)Wl zhrh<{kLdma9d??@AK)K1?-Ub{?rldmaaQ{%KeQ?(x{p{Z+8euX{v&j_cgUBF9*~&F z?9=2KhK?wGL^g7Cn<~Q#Vqx4ixN^R?d;Q$Gj9uLlbO1O01s_N7a^7$bQ2>NG23`%Q#xh0+}b&1 z+%=-@7aC8VJ=+uLpAJXW4h!1STkN-}Rp)x_Hrug<>n>0`w&oOfjl~}B@=@a;TlgVj z6so^&_Jgj5ORUYZDXN|L3N~dfyC_O|T`3h+`5#bjk;m>0o>!=SLr;5LyW+2zqt+tb zZ-FP&?fMM1W9M!!EYLc(sSsPYw;eV=Ia|?|9AY2ZXF7D)xcj1eS#cOQLWl1O`Pfv3 zZQG@jjE_S`+HOFv!4GB9v1z;Mg`|6R)hO+)Cbpq{?$&U5Z(H`JLTuS?UhzzJ=>_n+ zZ6SHSwAJnpHf%4AYrnom@uru45d#y1v(+p)zKUGBW!h&|d%_ZDL5V9k$~{x|z_vq*#<0 z@BupcZLJHfd9shTuXgfbH%`o_@_(xGr&Ip6uiEXvUYtlLTXDV0Cw{a2m9N_K4Lh+* zCmtp<4s8Xb-#DkrtasRl-SpW0hpqP^%26z5`yz+V(Q`BwUb-6SN~c2ij#D4@V7ENg z*TFcIDyEb4p!)e&hYnk?m+r67R&!|-*)J*^Y%qI6FT7&wXbmKuUrUs%~yT|4-Ci(9c>!1N%oGrCe{Cd7HLzl)2Ar>YFqw`Vcg(uf|Ke zpS7U)=AqI3XIPEG7`hKS&JWEdANK3M+POjepGZ3^3&Qm)Xe)Z4p*L?X*|tA-{Pz-n z^A7&r2zQca!^ab>p{;?6{?S#~_|U&&u{n*DJqygDa$he;FyX=1uXgefm*dSdQsYm2Lj&o;Wsx56Fwk$wLt$)Zlk7eo}YC^xE|AAsU==UkKDL{ON-g4MV9H6jRQZFMmhC5)n;J&HP zZv4$I?04Stg=r6QIAa(Ww+_YKG|2uqnlUJ`<8HVUKS}*o+)dz$p12#eRdF}oyi=yr zF5(^j%gD;zvQ%#F!U%#AnyK*@h5dbAT~(*Tdvr(D(f%LSUlt!2d8xOp`0Pd&%D6XQ_- zU%Tu!5o6<~t4(fv&0*S9O^iceJ~F#)fx%?8`w&mBJw|;v3wqFnrZhlX|H>}2f85Pj z)enoGhc(}dJPcOBQ16`5JTh}|V<7s6qw#Z7c)(`fW~D}(&>1?=83KKuy*7n%GonvG zGY+}*mans!DWAKZFHwF6`b7CF-J26>sAp5CDkHj9^+;Fao$EemT0<39^nPgSc?&Kv z-PH40TJ%ZkX@79Gy^i7!ae1sUC}s@m(pYCFOw+otNq!JFU1Q*`Z{LNdrNlV2=Q(uv zKl-ApmHZIn(2mc+l!xELOJ~jroZnx@XVBJ<^&7f|ZQUjg;wZk3i)fQMw`|CcPG45_ z;<1|&&RFP_ZkxVAT`kFWyn@P^ie9L*zmM~)kq`V!-nutBzNLkd58@o^cRF&1U#Ty; zYt@&2os$*Yx$no9hdc0@2$y>Sca&ZFf9QO0ifb>)XnO4n{QoWceaenAB3+GOWyHP5 z#eA^uwx1k3;mRo)>l$8pqEDPRBZJ>ekESy24LeUlvnxGHOy}^xSmCO1kM)cmU*ry* z(;Z)A$niy{E<3p|a^wChtIRycAL;hrJ%^pU8T|#UNUb|H)P?<~^$0%58f-EyzC#Oj zy7?q~TCbFUJbzE%qcg=Q%2A9+1YhJPe0VOtwpX_G=7o{%n|;v_ySj%zaq09f-{S7g zPtKg)wc(+nW?>1)S6%vz?#Vw=%p<-d*~Wf|P7ooE(``dFW7p%i%4nL-*tOi!JvmAq z;Y_XNd%kc-Y4>N#wloIuNh$U;L_0&ohZl2qD~-Eb+_Ov@_x;FH?N{?(!mcVmPPMgI z_Z>%Pu>SI$Lmu5<6lR6+3xY$z5dd3aeh&9d@e8MNhj*VaUUP}X%HqEKU8y7T?n=A5 z_?x4yo)wyvj*qwm9enXUl$FXot*Pk5#P-gcUrK&tN_UeRnOE#fi`vj@bl*`pvt|xH znq%(#jSdqFO8uWL+uEQubZ_^)ar{;v@x)2Q6@#I0O)_!DDc~vei{W(W-oNy3@t^{K zONhIk`>~Hq^hLTRg8d)bWktEaYu+=IztYeYSkb(Dr*#&mq}A^4S6q9|Al@&4hBr*+ z>8`fub`hIGTi*OSZEEXpb=Bc7E+1ppRl@ud_JQJTWOvEx4{m=Bc+|B04%(3Ym8{2S zagT5o7>Ja6)#&ZP19|YEn%HgKZ8Uw}lpEcXpRrE)9tHP&2=!K^SzY<8*G2wF^D6nJ z!7i9O$iKJ^+ve2gk`}kY+o?C(x=P@5+h@Ol-};d^0FIT;JPY}M%c6_(h0Cw+Pq{l# zKk~V3>gqlkMowK-li!Z zQ!N|lf!DZGnxb}}N4v50R}iZu4Ego`;RhXJXgi@WNDJ?>#g>uM>OwU`WiwJuQaTOVOwls7&Pa-Skrrzz0WE&d*LlC+ z_r5RSe7=w0A3QGip4U0&b#kdU{u>Wm}h*C5r z>$=c`_(-*V3MEc_}4;H!^}>Wm+ikTTuS zB`dwwapKmx)mu)za`fJ+9x*)Z-y=C&!`m0SQ?diR;7_M>e&1%o6Q>eGEa}~WcwlfPt`wsqKMM@J*?XzqGv4(Dl1Tq3dgjmu}0u{RUkX`d!_M7lG? zCo*~Lr%C<+=%ks;?ZmPi8>rR$xX%TU;Y6qU8oFguJ~@*3T^9Ku2e{Q(pydO$d9d`T za-JPz9;?xH%h+=9&lKNEX;WmCNMsd*R}r6Un-goSBFp}Uu~y$~juk&eALpyw+0+{3 z67OZJCu=aAxlH|y36H;G<2$oe46T}biJ=AF!ZinY>-?U>|F46q7hSkohkSGW&VzrD z6X9*%Y7x6k-*@Z%^jJRgkXKTk6#iTBSb(#2XtXa$&gwta*=bSk_d{zFphb!IQ?aSwAaIMa z4L!KvB;R*0fL@W`#0TXH`m@LKsCmauGZCEDfrnM6io2P_`&lx=BDqgt%Q~O>cDQTh z_mU9Yv0UU?-Wi+O4X*!OekaDyYOiD->&d~ZE{)GIF9$a`Vc~I>! zL{&Lve32VjaV%w@Up=GDhu??KqK{N!4!f<-{jxqq=K4V6a&`!<=SGf*b3*^JC;E;} zP7aU*Q2gU#SclOL=R8Gk8;tfW`mt!|6xu9D_igUqGOoH^$CUaoVbVUpPHqNxKcA^A>(`su|lA2!|1xUnKpb^A3E3 z&SjbAaVC)~Z~ap7eOs|3Nh|0}U%ie8TaC<5_wjT2PeN_n|*W&N5=2 zCgOYCOZx|ryXMk|7u~m7ucSDSfBh`p_BQ;b>qp1wVw1XzKl0vJ?YXrN`L*YHBA|)R zBB#4}Oygs+PO5EW5^GJYoc9}8lfv_iwq2{Uw~4GH?Tf4IKjtJSqly*v_8#^no-z?s3lAP3(6^T-^E#7JKqID|d57 ztcM3Nrz;#LeW^43V~_qZIKiXJ{EH&Wu43=(hQ39))U5$@{fy%3*%L z=iIyUzu>)YY#{k<=(_riap?Dwi$~<O`DuGH4%xGu7@H#8MNCWxx&n|%ne*?Q9pMKb|&J;LwxOyP`j$l zVx!H=X|sHsf#>VAS^PWYkcp43MdE;tnrkMtaa#$-IA z1Mt(H^PwD%d~bxO?JBq{-^smFXhrr=hs3JL+RfYgKwbkmUXC!WzJf)df6|2{!ih5#mm_P zHRJ^+e{P(_)$RYGt6(a;h_N;mJrTaXG6yne&FHz+nGZeqzU!Lu?4M_P?&fnlYwf!b zdJ{X0c_wpDE%05;eFWN;-x{$^*l9Zfx|TRUwRdy558LS3qNls*w~Dc(jzAav`wBIm zY7c)NOS_!?$QxqkQ0vnW-iF{j5u7ELfuhI%#FATlj*7cme@26c+;H=pr^F;jmuL%I zoTYupVFxZoY-=}M(uIGZ4_EE%i)HT{`aOmFAY!q)!CUt5Vbt?V+#l=UKNxH9sl_LT zkCpusZ^9pr^{6#F7^`F*-^GiSecE@~m!3VW@!ukx^Rl7$KIC#$c=&s^`!jPV@2;!< zzXk6lUwWiou#Ohd1NTsn^W7J>IK-2-h1Zw$+WAN1Pjuc2-_BTrC-Ldyj1u1owa#aU-`%9%pQ)$f z{Mal0Us-4De+u@Ep0LjYTP=EUfsH_Bid1n?RXGyt&}|(p{q+{crE(d_ob-t^*0I32 z+gW>1Xx4&%6!>!V-D(`Maa=(;zroALnJazzE}XNfrcay>-!Jq1o!DjeNX@e|J?M$1 z)YQ)O)F8tt{Qcp5$XHhk{+ikLfH>~V-uejaT~=PPz%-=;56fw=mOb*z>hsWzoQsZR z9=eh|bS87jX^=~PS0krEO~gD;#V=h`_Q3=0okXtwJ5H=yG2;iSg1Nv%zaqNYr-*}_ z7m6J~|54{|ozTO_Rs2JP{==sJBjH8(3$mK%y)6C56T&0bbYyKoN5FhEi4Meqk-0d^ zTom5kp=@)O-Xo2%ZZUjWtBTNl*x}oNZ~h(aS-zy`Jgjny=Nv@eQI^FXSWUa8pYfUK zIzH!3?Id&^xq}T|M;5w{zs%IO4oBA!K-bY~({%)T(RGY8bsa8z>(qTM?*#Uxv@GRA z__px$8_&`cko{!7ut6M=dpkDhBi--q!_0g8TQ7vqp~&*{m_zT)9brEG8^q2swLNo7 zTsK=BcM|q?mH1Qsh%6)i{<2PQ(Wm9-?GNi?xQg*OU1XG%9a$}`6ZM;N&JNj|?ejW@ zd2PNCIMzqORrdl1j~OBJe?y1i?~b3hhq=DggP$F9-NKqET8IkSorM;D!`f=s(>8Zu zRsKYH`L$Ah9p#q4uNJb$E~EaHQhqJvqs{s^hRUV=#Zq2M`8cyY5MEv&<;yA0@OoIg zBfa_S$=z~aCOonjxKmBIUi|e0?o;5(uL17#2Hv_b&MjNKcvDVpxGh$E?0ho6S5YU^ z>)8PgMcsVfCV*q}m6YQvq2|aJYD302M#_sQ$2UWjw}+P}OZhU^g>v!V3cRRI9{2Y- z##$~8x9N%Q@HrXli|v`Q(3$BI9?U&7ER2qZ))t}nsJ;~Zmvm%3W9;`MMQ?=Klr^&S zAEGt3r@!+S=!bBeg}apZSnzw{_2X-LvbT^+z!#sT-vF=)S%y1;K`e^Vmk6r z40=fMW6-j+f-w79WK4!>>#lSEHD1@?!Dg&YRobV(Qoc#bFYL%VVC*U0!3mYWO}Vume}`xG z16Ioi*4STFMW2RX?ep_@>N$X|o=?BVUaKndjt%Q~t(0HD{LvON<&*$$qUT8~QnFrE zQR?_0yu86CcpShtTKuCA@z)A%RiD?9wQn49GHqBqK1bI7T>5=;w$OJ~(LLi;jt{F` z#=MNa8|KmXnOEpBUyaxCInbS-4c7zDIcl75Y|0NH(+7C-G(a1zv@LSI%dsgb8NF3! zL|+|SdR5{XF1>>{`Opuooo70gsbM@+N$8YH8-hW3oxQXtd{J#s>>RBCGCFpEq4%eU$IYv%j@fSq* zGPxDpcVTymW!~BtPsv-eJ*EHdqkj$l_r^FY?#+uXr5>P{7j z8$2)85L+$tGmW(X&bNuX&+X2jPD{=6H5t0t)W-6D_p!D$c1ISmqbjC?*wL_ zx#+TU(Pft;^Zzx5F1wijo!ouKrHxGfoUtCCpw;KXQ~jpB$d(}k;$CTtVu5RA(_K1=c_Zbt_T~EH8!EY z^O;Al8ydzg)XOz!I!Gmt*!{0kiEat z>91j|(O+>Yyi@d%z;5AQ!8+F!p_8=3j|0B>jP}el*4e(svZiYM1@Za{&Z7gIA$^%2 z#W&vw#bho6Cu#2Of3)DP29K4%H6$@c;96Ky@li-SLo3)J zd#GE?u{bZUQ8t!+%zY!dR_?~e63O1m zHEkSQ(D_3LO*z;(thTKAIE}d|Opvy)3v{z>s5+)?ZDjK1*xTx=PFlM_3{UpNn2B2)}kQx0~G?zr_yCAXsZoW()|z%{~qM8_#MjC$&d z%|+pc4P$KSs%){f*y9Dd+c4e)C$Fk^49Z&#Avl?bzQ7e~w8Oqod+r1= z1`p9+Y8P*I#`ab6S_}7WXs0S?XU`Y`*`pPL-!JW1?ZCBgFITXIA-{f$eg*b+V7}Dz6k-&#tGOR4s(a^=ZMYVO^xMWvClear)9UHKhxC((kNpVEUC zrO)#P|DS=~W8&7_JDm91X+Ht?xhbFBm>O(P)@%!OsQrjuiSob=tl59&c+Rd;XAH7@ zIP6AXtA79%n1BxKKC{i-v|yWW)8_raH9XLsxxR1s*`n5CmYaM7@5Cs44cUobku%gwsW!Ficfjr zNNp zJfISGt}0uF;n!T{u1V1E5HpS$|t$RqyG+=-u5?mH%UCzCh%y1ZWUhr z!sC0!vJQQw`SN#)56=PCAG%g>zv&(BHQ*Zd3!RvIyEz0Wbdn@%x=-kY^Ka#hvf{I~ z$p@{zy&+#`YdxN&J?~ev_uCm|LAVV);hqrunt{6&I19(Gd%`^+`27dC+ih@XhxmD>fsFM;c0!u1koCUC-QwJ(7CKX}!0!S6HR2AF%|(GYGj zf4gg#zfTQb762x&(TH_@k9$UYH~VfLHpUFjm&3?>%i*J9-<6mLJDsqWbvf91ozQ?~ z+s#AIT#Ict554(vn{D?vw%ufK=x*Cx-S_bm+IFQ3JFK$pR$$wm%ULY8T_3hQ7yoa; zj%2g%*5zQ|wf2HV17n$!)DPOTj>~%`)N{gLo!E6Pe;0WlFTnc`Vwd$`&zK;xJ+L_8 zs89LbA9aHL@#Is2SdX`=6cQ^a}*>3R$ho8gG z*^+ysM(M9`CfesZ$Sa6dc$+eLvqIk1RcnC#x%;@q_Iyx$Gjh*s%(ExXgT|Yt2DTRw^e|^{w4m-f#v}=m~Lu{J7O;IUv z_4WKd_LCfsCEH4$$Fb|$ZLuvjorY@Lw8O5U?ZSrktg%bZ%|4F(w#BB?knt;6o89#$ z;G5rU&k`Q$f)+*hBJ`Ui>`5!4?WR_?54;%CK zQvM?4SD58n!^^Lha`O4KSa&aNKv?}Nr2Ki#JLSwp7|pzy zXK&XN4mGjAI`Woum%fE$>@)l9Y1;mPk{k~nRQ8LS0F8!wNb*!>UZv9%yL_ddb zXB0Zh9dZxs7!!WWiQ)5rZ`f$` z6*bAkr#S>KYqkrR>PJm{fDzuK@Q?S_!#A+|ogBo+qAl=AxDc9Ye%Nf=jXnW=Wgq;wH_>kET@Qv8eMPDj9?Ih7@^O=Z_yYbCU`5o|e@xM!7{kv7iZi;hDt|{TK z2bk}J^t0c_Q&oQjr|73i`w#FgBXJ?KL@DF z?qsg7m-V}sIgs;~z5=2Uw+EaG}!x^Jb@gCCg9muj5~#VuyXe!K16h*T(8s@Xe9=`MvOb_&7QV z<##3elJjQ?Kd#C-9)h=MX(xu|Is+<*5^+zQ35!sskz10pQJVN3A zO`^UGoB{{ucwA#o0P|Lwekm}@@8?+86hAmQS^MtoG1e;gFVpn%fz9p3FDSR0UywC^ zvHM?nC1YXkw|t&woIm&mS>@Jv?`EFFFGyk-#4ku>5?R|V|H)H6LE;0z+@k9Y)s?wz zdlp^^?H$B-Tke8i4du?cZ#VGj=X7|RojxQ6IC!^>cj$jR%DHoRy@&nK8y(fTFDF+w zF#ofi8i)RhwDSY)^s+bA-g89gwZQCT|BL^%;GpE4`UqX_8@b$-w)~psDQ2&!G2v%q zAJbySq?NKSf#E!wyaj(51&5E39WEcZh7ysN=XtjDdDr6`$NGID@$2cOUfw?>CgMTq zzk+#yPKWq^2Irr;wputTTrZE%51>0H}r5^`}7Ve++zJfBvXQ}#H z`U-Fl58T;v?G#U$Izm5>IhS@r_U%aJ-*QOWhS%&sPA+Ol3!6g+b6C9uo=tfp>$UH2 z$WNq<^Pu4hk*}5-bcbnt=I0Pem^;z)n7Eq23OSN(CxZqk?ZS)}@&1Blqh-VPnLjbyz`(+3E3XAsl zao3eQOAB$okFiG83sjCcUEn=qB2-@V&FHm#_?UOXuV-?9Q}g*os6WAHoy`9Q@EFQ{ z$SX6^7bv{W4%z&Jcp<9|knxefC)dy`DEX$5`>AE8Z=}C=`V+fBG_p-G?eYdie8)}U z{=)XVr^3rWUdb$bwlF{Q3>hlAm=v4HSbbBMapM02b5P_dRP8F zVl1RQm;A7@FC^~!0(>7*J?)v}@h9uP-<3>GELf{)%VoZ+#P>|zKmXPpdUJjRbt!8S zUrDQfS&L^lo8AGBV%9=(_-u)N*Er+wk?alb3g9G%PcFWXxe4LEj}`cyZy8|nR{S5W z`ZCUA%!pG{D`5I(GjI1^*8N{uW^6J;s@J8-$nc!Pw6Rr^{*L2cfShIqw>v4;A^2d+7;fwgUt7uYTh0|BiXr{5brs`8f06 zd^)^hw@HWHa;`ln<&)Sel()P`Tt$D=eo!8=7t1q-%e~Z+bkX69#=}6J3_LW)#hH>EOeP|(vH<;H2N3&Smi#g_UP0k{Ta^Furll3 z{Ldu)4<{;{nyf$4tt`wA@oIm)h;{FccIfwrb8WnSH}z#be8kz?`xp9BXMI|No=+QU zU(|)x)6O3X*(1%Vto!G089Y5IfnZdWe46pkMbtQ(O2KZ+OLxGc<=;2nOBRCOJ0!T%i#ZmCkd1 zD009A=v%GX(;++XSq0SZZ{6L8)Lt&%HS7D(+N*d=qTye^W=brac3MDT@8S)A5TZEs*ix^h}`Fos{%lt=izH|OJ6-9;XoaW2;V>oBx%<|&!@?0r* zQa;eq5rvm~rMxfY_?xTtv%_^r*-}m%Llk~os(eGJT;_kGlt+Un_;sJZbo{le$>ZY$ zHy7tc)EDO(^!-MN_Ju}LXhYs8aDt=rhhL{S!KHg!%f!E2V8A25Iy*;KAb&WO{2}M> zCl^xgu;zbAZ3o|F-uKwn#OFaa+4XCtQN;mva7@8&xyl9DKQlP{)~TpL!t z7x!Fz!-zL>!1D*F`YP8;RZc(NRL5Us%lM%i;`rUl86)r&_$9S)?nurVe3S}OR*YQP zj9y4$z@>jHFN{4;M)!OiXFOr$$B0liI3ssPgv!Tpa<64Zu8y(6GN-Cnysw|W=2=IF zrgDt@zvb$9b$fWOjzPgTd*Tw)OPQ6&BO+L4;LKgn1`(4IPi#s8F)D+JRT)Aa zkD)a_dmfK9#F?0H&S$I`b)oyVkr%chd!lb!Q4+sC>G1ad*Ei_<+46cshw^$9Y4y9= z)7BgGhoJvL&IVtESG_@>vQ%4vow8t;VB;E$XO z`>9_vlDAw0w^s}u$1-rc4BXUPcHa@tOUE{j_z7c$ACy3vi8>x?7 zdSo}aQhsmdEU?D$^DV&fU3gtQuu8wgJRl?1|7AG+%ieq(xQ1gU9CmCqoaM^%X^ctWkMI$ zZ`=9a&YMNf?`~H)U-4=A@Qt^J=rQYmpMQ9ax8o9g6EYc35_vBc{k^{)Q@T1kM)a89 zjUsm1;Ad99vL^c@lY%+6_elT$Vt(k?S9(@T zs3&mX_xY{NTebr`ipYz^Ir;vMJcsVubptpJ05^Vf-NgS1z#|vc3>&Iv+=5+}91s(R zYT59+@1KI#xgG%~bEwBno{E|?hsu2@L*Caagf?88C_9JWkURa8X>T*1IYX5{x9d6n zpG`l{^O-kP`Ruv=#Q*0H^*n~INAB#8=L|tF&b#USjV!PF@a&Oq{xI^S_kZ~ESl16e z_L1D}kCrAIYg`nmhpn-kXU=g!9o=H)p#0ywbIlp+i%6;*R-d59)F*gKXd}fv*dsFH zk{h(|%USQ-6fI$HiuZxtwd?b1Yin1!Z>u%ll8TN|c>;yjz3BI(o#C|MbPv`?QU7S$ z2m_Zhdf?Jj10RpwrcnotGTEe zW9)I(Sk66bkBhExDf6SrTc+>BOL8WPPP8fK;}gR#1it(w6MnV{KQX=6_TQoXxzfJ8 zX)5jKP4xI?-{@)O_eXPXl)Mh}ra2Nz=e^TaAih{0zCV^fQRP!x%$ocJF0Ve8t}9>l zZ_{;O-i=EBIktb4+ZW6YWb#ULY?2484|VVT1N`F!`h9$QS?=oWRZi&iSdnetneYa0 zHS+b0r`{UsmCIYE;5#>xycBCSmE$0n|5Ny1{HdlzCbm6=&Q$hu<1Ol3Y%02BY}gzu zqpf<{O7+v$88bM8CwT&^OxP{qu!6%Mfo*u!oTp)vJb%S5sm{lV1H<^Uz-|V%P~J2Z z*&DuBOb(Rxfm(-xFAs+oJRSkQS>7s@a|+%l`%Lzg(C9XJwu*UDIAss&F@}}2;gz>b1t)m1 zg4@s&t{6D&4<;PE+Ml^lc<~hfnS62%sd`7k>j}P#qf?oQSm|Rru&MHvsr13QpxWduIQw}z8n`Ur)ElPKCg+CW zAo%#Lwy#VGt0Qe^2>$YpskF`cV%4cZmUF$rJ%PIZe9ofn%=1ML9t zT98A2yhGa{pI*I-Si*%$wrs%{wy-a}Y!EsKWXuZk=cxXDlG`yPUr7J|eUkp~H|Ka| zipT?seve-kStB$l@hKyRmFH*kc?`N-ojgQu!8fKcVdUe^cte&I{@nS6adz!zF9-P} zId{ajT6j;!N!$tUF~(UFF|5*cbBagWiIn-_dkWtb{>X-{=saQ~V`4=n!)};gbG&bs zHRpYS_d#t{i*MPgo(~Zno&B`U78unq$ZYC^GKGOwHh{=Zw_b_l|V`{&X+7y};o? zcg9i+Xa8A7vW~1hD!?W9$B)dEJ8|Pq4Q3yAoBMUd-+wp?m z24nng>bvF|`Jz(z6nSIG8QS-6!LtM4UBOsAXMlf1OxscJ5%OkvD(kY{+)ugqj2nBo z=iZq~KjmcxO^xP!6?$KfJUWki_8NQ{++)`#$-0-^uVurhBo;JZ?$UnfgSfKE{#%!b zZ$|uV>5qMzKpUH0)>g?JKHM3j2j}t4QThme^PP%bQ|4js2zSRP<~%^})*9ugc`(kr zYxw{DC*U=e#ym7G_mJ9H8?u*A$uT;OIarHaV9mjv(?fHxS!Bb}@Q@4D*qe$b@+NaP znv7=bT7^ktwF3;AyfYlmqRE5clE<2=_j-jU|2V)?!5vQao9w~U8Mlx9Q~^)UU_O>$ z7jurSNa|$nayMz&zDW3*#UCFX(u0TWW1QaWjCJteZtQCr>vsNk-7wE1JibDBBmJS{ zoZQG9y1;2DFizH2{`aqg_t1~*VK+V~awkImIg&Hq;CmKNvBorv@l=t2yAGJo0jtLbwN=L-H3YJNtV_kL5xko|m}%+D1jj?2?MqWkfo z&xiL;R(zUus)pD4(3`oAcB$V2Ka=BYeTu^0eoh_W9LVLIYW}G!vl+iaHO`T|NpCxg z?Bgtu`B`L+a~b2z>N!q)jeCxB@o>GIac&1+SxedTz8$Pz95j}dTUK*@x{*VPyQV7J zOc}P~?Y~VYC)==E*Ddos{#(<B z8@ay(dDNrk{7HHOxrLXC+$VPnHUB^Mtk+-WKi`~#$I?B0nE&n6 zZ?pFOY=LHCCr#s5;_I4CWwp5UnDnN)PB$>_hb&H5K5 zs9dtvovZ%kbd@87{2)zbU$s_yOW84p?811>NJJ&_| zWx+ca=O*V^z0w74yxkK(wp9N=bh~HyCu=;S|BHp+9|kVZ;VnZB-CFrvs($TQ?<%*W zUtFH48#_#%pOQK5N_WSSGB@Wk?>$Z~?u(A~&3p29D}CznRpR%#X?bo}LU)t9 zGSgUF+Gr~Jy60ZqBl9k~1J0x+ouS(#6XzPk?@$(cb!E)`ok> zhxKo}g85^V3_W0s?ti)1$cemvSTJ{hnj>^l7QI-q@CA&sJl&)dGbgguM+*Kxq8paF zGH<_NpDScen)!ZKQh3hcMo-t|pNqWpk0fyanJ*g))^G{bW=g@cKNm~5g z2;TjB>EWcox6OF)mG{y+0t0;WoVR%&^naMH@)F;D5_yStr*~-mv1#$fhSM>)(*I6+ zN8^CO^VB>~((0@63)^&2-!hp4?h$pbCZ+14LuC%?_6$hTJL!}6W9p7Rkiz{Ixfog1 z$v*5TN^~E4*VL1-f2=#yKKQnEx9~GI?-|SqcZ<1^$(62`28dpKatHHyY`ZB_%Us&- zU*eA_dL+49bZ&(HCQ%K=F(OQZK+RwQ~LL0?nK-(6ppp$dtA~_(NOoX zSImCkXI4Ksv~B6DM0RhcAMI3IKa&QTx+nVKf2;lJtf3QmzT%JPdln@VUqo)ycJ47V z(53puF)xN(SC_*ZF9w|$>uvF;tLdwVIjPPt`ttoS$kUJUNPgh?tV7N1S9)sh=4^)N zBY$}O4;cGpFY&vljT*XP6Y#b>U)`(Y(yTjQ-JaSsb>|a2T&z#~-oft9=ghI+6dJpn z=hoN{@&8kdJ$0P1M(Y0d(;&4**xKElkDK*pgz5`luxMV^NSFFT_pFhse^tC%Be_ea z(3bk-H+2_G(Y|+BcflX#dps$jd(ar}g1!vsowI?xUY9e(+{-3y*yk{TIV?{#=WtKF zIwLmm88$ahj}FbvxG~1u(7rJ@gWR3>n`0Xs8e8|dStRr~$~HHj#hY_8(A{~5S%1Ie z>J8cO>~oVR^^Vcl_qMbaWBjg1xdWSg zO85Y4mT>SM?lCuYX6=NRsWSqf1`9@LsXu&ETiKb_NO^!W?-LuZ6MwKD9)ef)ZO{Du z;9#!HI@5QdF0Y&Kf|cvCPZ%DCE@dZpG+f_ly=7k~{tFf!vhHoHRl{|iS^k7_xfgz4 z%p0d_?54j$6LON|Da5z1NpfxO=2PX`wD~Jo{U3b9J`YC!TcrQxong5)>)p_CzxK@e zjBPl+2^VLQOVIR1@Zg)UadOC4;VgU;Ugx{rH^HCFTilEC%0zw_{{%I^wiwty%ig@E zQ~4%{Pr`0sOMnxW?He~qy9qJIEU31VM|!f zILnJVv-a405QG-WS;vNDok9Emh$>`Ie9(+F7)oB(VYO-a2;i5P+0R^SMO#M<-$6aB zuc5Vf(ANd@m0B2F)25=TP&|at)^BC}OFFZjVNQ*?36;y5TXy9+{J$TXX}COu-}m>^ zHaR-PAFVaP$RnxnF>@|n7lzO9+8yXUCxB1&Wt~})4{I~~qI=Fo>2Dl;9Rl|6^ygjF zsq!l-*lzg~=Lqk(l(w*S>=4=N$58yg9rwS}-d3Uai#xM~cAT@x;YXcav+)1Key{3Y z5}wyU8Xb3XlYHmY)es9f;+TFTF(9XUJkr+PX^(`Rrl zKh2me{9i4He$Tb&V`%NY*C5;Q9ld$}Qv3Wg8Zq4m9;VG8FC1FCnfci)^OI+rpWIMf z_d43y4Ib5VZS&&~FMnIgb33#C!dqF$YY&9lCx-xv3s~l_CB&|$@wxoa1NpI$v6XRSyq5@F`p8BQMwKYA%lyJuxwC&rM z-(F%{kKd$qd_^7d&z8l~e}KC3_VQAG^S>M(OTqp-lGAUJ{)@b05#kR`;-fW)Gtu^2 zoxFh*Xa2?<*X7`&)tB$$V`cK-sv`WXEV_M~IkR~19q^NeNzgvLYd`B#gnyLcKG{jr99$8~DNlr8W&RS&-^d%d4%S38Y*v@84}aJAAyRf#{99j;CK zKgHk?svZ2O?B)BV{A9|JAyqm4Q}*&Nq zbJS@;j=NI}jZtJNE8nRL916#Es=Sudt}$#$(*9BGPI3?IByY=1^rpGA=etI8KN_di z??)aiY6|7~Q@A&dRK6Z!M>+$18^&~I zTsXSE4I-aK9!hwZOB!x8~IdHu%pNw58a4f!x)cZN14VQ ztV8Z#+#m2C8*=mpts{o^oQy;4jq=^{S^ET^wT#CNpS9Kqt;{t(++WR&zQ*paR$}v4 z6T4?`{%U_izXR@dMfj{)>uAyRdyF9!U&v1fkv|bQ?($n@zerpRKDc%6wf*q{(1vt= z*RSU2p}3lM_NDl(`B-nc$9`)0t(AH^F2--o!?^Gls1v`n*5#|STRHQh@n73`gXV5w zeeSfakD61P@7nX=(l893c@ug7o6p(~?zBgX&aDaHvz9Bi4t&;j*?iWXM{m6o{gP>; zsmsA{%^IgguUqjoIaYdJ4e?5uPs&(`ATE!QqJKhK3)pv=X z%mDTy{xJ#;ADrIcRs+}24>){b6db-c-QmRcy#l!MxXvsKC%@@;Qy=uZ8BzLtY=rW= zITQQQ>-gPdv##h^s*d7obJgmyResao=27;Z>>cafn(k|?_ROQ{YR{Y@>)W?8tC;#F zks~U{t~KnJ)*ehW_g}Aj&!%%pqaE3I6PVYl9@D0X{c=gnMJK>?vB&_hb$}HX% ziWgo6o-L8lwHv8l9w~f!h3A=JD?EWmOjvwxtoah!6xjQK^=h4&gXl}>eH%V}!|~nA z!gp^tzI&hGyC;1L|9g#`*|T2H$4+YS6yb%!Q?mEufdZQkg>}h3v-JBU2z+^;6)VpFL>i6?o(UDLL zo5JPJkT2c>_FVIK9a(aQNq@OAcT;GezQq6UbNv7Qe5!V2PtIw2<2Y~j8q@!;b=+q? z{Qsg#JF=y|51zX5MCYE(5Aby1A72|eqGg|m|KG#twsWy_?8FA{8*b{e@Y%KK-{PCI z>E|luvU*s1<^`;!#WUoLkoA{*3&dE~IWIj&#a|~POG(b9w~%?{oDQs;P9FLQJ@DJ< zy7Q%R%*j;ry--(&nr{Rp z#bd9XrpvxM$~klt8Q{PlyxArD`?|Z!5^n<|I@&|z_8%(r+tQJ>jklcT-Vj5M;5N>f z<(yY}W3jO#SGx09<20}57KgMsGdq|4yq$48&CUoU%u}z4c zSI(;FvC};QJAE4GuiR(&P42mi$i*)C*ag0wSZX`|qDzc7_hE5Sgn|G3aCs8=rlN8! zC~xfF0Dt(m%G)b8VeubPc-1(=@!HGUsxy?aL_e9EO+Hk$R>egQqo0Yr^wS>dXBYjH zf8LQLy2@Flwc_TiIbMZk}_2y~?ZOBKv@Mp|JW|jNT z+Nf2@5SAD8{Jqa&-4H4ETpv6D4YaQMYqa6*5&(C^zFSsjwXq`5MjmfzTk?2|j9Z+7 z9Kjyh2@NQ`@Qt=RhB{S6_`zCr1cyB8RM*o7<*IGyNWtL)Yr#p|Uf>G1 zfh%;S%JF@*%B7ubDgO)YP;T|B@DO~VGgSxQSF4V+Ie|J2uTm$$uj zIim3*zT?*=-y2fG=#zY233@E_DfDsxeozUG$p0qYR5>RNRP^ZS!l#4zj270L_mNPHyG<`Ao1=atPPSfY|e=BtBWbdP2 zHT08PCk64d&h{JdmGC}K{_@e@GSR)L{u58{0e2N}S}kznfI}an;L3Z#T?Sl(AGiz~ zTysyj1;CX*2R{Y3R{GAsXYBmjMkap^4u|QZjr!lv&t7=r+xT={?}&~2jp{&(II^-aU7_npMoz7UUcId5KYVVoUDoE69}=$&uvwswKY=nPxkI_FwV|AaREVki8~3GzxE zNYZ~Lu4N~DSZFZF1EGy2B9}qKJE7$OetyQ@38$?R_(ub=vu*wG&1Q`Q+(BEf@phzh z)&_W=VuzezzVMu8i>cH6ICBo1oXL%u_@c>}H{%z=dFmVr&0}{7U{4Kjc0@~Ck9+GS z-c7alkI)@K{7)?X!J7}j54`P}jo@OR<5p<4eT<^ns+BCqD8EbGKtR1M2>pqvp z{MR`<9QxhNq0mQTe9wLO8)VELbI1N3#N0WVJK@>I%`~C`KyMmqg>Z&!tcipNl`#nnL zw~Bg{2i&|7!dW4A=45=;v-ms?FMR@EbyrEU@>AbUj-#13FHwEmf$Y)FU96S6*nZnx zY#%;m(bSbY`npRC{ub&KcDhj2|oF| zOkeh2&3$5>)#@y-7_9CBlUa|WOQ7%j3_thsjatER8#x<0p_2~i z)}}ncy<`)*$)}JrEZt-xe(siTatC?^KYU~h zekp-x6c0Hfe%^K(pT}NrDC3St@DkvX2X}*%xg1BF$xrfDYpOOBWLwZ(O7u8>4s_IYHW`(&nt7UEW zYg4Q~(yX;%exJa1$6A}BpIIAZk}de7G@juw-j2Y3r~BMrP20CJH-%?(WL`8}QVM8{ray~Rj?}V@0@iK90a=$uB$DwJ6@U;WN z``K^K)SmnIQudL(zQ}UwET29~@8CR9XIYwg9**)VIY{=6-1#(OUhH+Pdjs|BoQ_B( zmkAGwqMqzob?#|~uc7$0$y%;w?W&iC?zVD%$~o~Be(tI+_b*j%W~iQ=m%pQ)ybbA# zzcas;^EL}#ZHZ+f*H&HPyOAoMbz-HnBIE&IrL{@+`L{C+t) zF7~#x>E;Z#XhwYba^-i%bZZCzx9quuU$vJN-FN4uC0DVNwD|D=1+(_r^RZ{|m*BRQH$ z98*wxs1%!k=o1Eok5SFv$mrnye1>t#{`?bfWvVj)T9h+l>AB#FE6q8VY2$&Z1hIXE?jB?fIDx=Q|`r~zXaxyZ1oI&{9 zliSRgyGZzeTC=}L>ptGf3y`~#xm(#l&J1fmTI(b-lHysk-bJ$wD4ECKB19O~x$6JEg)>*mp_9f~bwqNdQ#KPEd5c&|k$x{02 zAunwlqVJUbB08Gu$fvrP`GZzs{)%kK9^AQ(m^J29?H$pBA%_oSPIIRkIn`6oG45A# z?*C$*sgkexIDF$J$*U^uu9&BEB5Q$dynBhKmEYVq&ol04=%cN3yMggq|6_Bia(_Qa z-z05t#x`P)vd@#qFsA@7`SMva-YlCOHs+@pbM?%QteC$bKLazD_g$Re+;VzDnb^8x zt{Zuw#1^|_zDzn088fdBpX$zVc2=+*Im-@=fRE;Im&yD;>b($N?-S~&w;|7@9(Ne4 zzr!;2nB8WdyNy0mv%~sqq;A7G^m)$zL*0AA>()!%EOJA4dk62pX2l=Ti$v=$nfel; zH8sz(;`Ld~vweO|I>hdGy8bWL)yZ5mvxi3v;l7z3sUPNi%lm#PIfr>Om9lU6{vzK8 z9JuwP_Z-f52WtIzdvieL`(tN#&L82de9zIZ@_mOU{`6Z10)GTu(xj3bvUO-H9$oAL zKFK-Z`3}A6Ab3=YV_=*3ec#9T7x~-d7}551!+}n5L|ZF(O8jD=$dEyWzoK`mtbwPIH$?J9#QP#Obw?83dB-HJpo=rZ4KBhz zon@mEuq)Ne9SYb5t(*JS93ITveGsiLj*h~w->WYgJY2sBTZwfhsQeY^x}~4MSz1SK zOq3od(mI?Y%-=55I{rfcXEC0@Bk&$#O4U9~b5^#}wwt!eS5fJt{lFabVeDt8!7Ep2 z@yPJt=|FEMb#jxPl^SC`It_n0WUJjn$x$=M`2X+xFK?@|_W8_j{x^*Mc}H?(zx+q@ zU%-d6lr=q--~R+IN4T%_D_x#_Eoba|%QLd)68F_FDY02tOBm;%N8UlI7VGmS3Aa z4|?jC*stHuB{2-|=C~`r zKFiy2&xqK{Qy9m$k+HQEGu)LejPovR67NTAAIzuCLCbH*ZbI+3*Ad%BF7Se?M1G4H z$nRHW4~o>L3<9SWW0EVInR^Ypwx$iNjK}q*8QM%MxsmwFX&*%XI3s(S7Fn7$@s6Y% z4Sxz~a2aJ!^En#&U!plmr9XB+dT)|&Y~%oygfR&lJ=^Q@J-q%?ajG~q6}C7X8Q{fws=oGn_MTjI)|Nqfc9 zv;?8)R`#>lwp_GX?EHOJ;JNc^B4RY+)RHS>X|t9#oveY-sFOAw)DgNlAGtvCG+Ae^ zvuyRM#%OKI>Evv+_m@k(n3A)y>8C?@qRjna_L%UKuepbR8#y53UdB6c`YDxN@P$o| zdu%Apz<-5advwHr${glb=5#c)H+uQ?*^&IeMvEw2HgR3jpp&$Ol!%DZ zLF?8f9ibg9O4BF(s_EntS8>VAtqyH`03TQYPx)XI{xgl+>RI=?D~IF9nB1OuK5sRudje;OlDiKK(O>SSuM~O9)TLE9M@8#{MPCWM+s_## zQ(iemuOhc;tDMc;zm+YAJZ!CU=5qg5-|?Ypm9v!lfP8mMr9zD z$`iy}WUx()*Bixodbe4=D!lv=DUYOly;m)gOf4deL;5d2r;3JmYns~?1U@W`J_X|DxvB8TiL(V4rk}?AD z4CjjJdJ^_m$@hVL%NyW*bdk0D!cziKTD;f+yEJkkP$w#W?yVvZ9%A2hMMSrW-G2$P z!tv7_^+(S@FY!vauF$%(ymGIhllUud3XVNjn<6&5Y1r)ElKY69RrKW>%RFO`h>D&m z{>fEE-QGjVU`?ujVvN8zfpLO^!hh{_-b4xcXx@1z^4pJ=@Ai<|XZhan@UKB%ZcXxf zKKE&@87vuF~KX(mx6Sriom2D5yIj3gn(hzu<^(>W#;6-H z-a8kycqGodmHymgdyn;2`z5e;e$6Q zeI~r90lHH7i9Wi$Oa0z>v}?*c#Bp2r?Sn4&!;3{CoyS5!QHRFdw2XStwZSt~VnZ{f>>ov`ux zD~)?y$$WLMTMEvNE6v}oGkz=Y7rN`I^^Z>0$Ai}i_tT46`gJ|_V3MBnzv`rA>xI-p~T!5v!tgG1SW@0)85uPcs)ei8UpR(>pIgbaJ_i)kQv2IOHJw?BebyKnoYoYuTI8W93 zZM3cBQ|vY9qVczk8UHY8FUXg!O4i??kDZjMxggfvJ{RxYga7ER_AIGeEWB8F%ahFC zt;~_02H|%BU;bxfFGiP?Ww#Hc&S2zrx7aHy`rFDl0H3r9EmqTu%m_zgU_EbuP(YE8=w z&J$snxEgqhPC}UZKuv}&s+?C);@0^uGLHk=eJF6_UW5H8oWjHdSVZF zo$t}a=y9%9QXB)&OZBf6IlIpo^r%C)Pos0>{x{FaR1cZ+sT;lN$@2UHQ?^n71b(a1ux?5R4@n2EA zo-=hmYj|Ma65-QTMZAAw@dw!}qKiHh*{Aly^~leUvqrSv3aw8o(BUec%iBAh-yAlDDY4Z>>RBXRH1DrnLW%x#wxGmAWFIs&jz; z6b&#|iw0&u13_H&rJfj<6`DJU2jdOmVYBTiJaVThJf4vGsX8$p6{1sM?l$2ID(~tP zfkzy3av0p^LO)+i4sK}jn?7-sFLqo|_U#UDz4*Gs%+w10$bPu5Y{IHYO7| z^|{c_E@Jx?-z%H%QFm)}hP&38zujj1MjT@I6ouuFKUt>RszTD5b z;wG-s-$A^nV*|uQ%H!XHRc%FA06F z2JSu+j$A#x!953DHSa?1e87YwM^A5XPYT@2U75R~C2Re{_)*zNeGN2am&JoNF2^|i zO>7ap*8BHJeFgP)vQBF5$wg)LFLR$E{Oe|TJ9(x=$052Ab@q{G%5SYRdK6h_=LFXK z4}6~7ZN0Bc(fhLAftB;igqK;gwsbVKhF-6gy%a-UvesAlEYr#YcW9@}zH%+p>P2pI zy~J;Pk3w$;j&((gLwX0n(IND4BX5eZzlE=T3Ct7k_tg($|9tnAd-C5U_svZ7vf>ji zq%*-<}mCee?GzK0c~{?#`7@Uke=xj@+Xa z%%|Znp8`|JdyonS*;Bzx4wpmT2gbYHgh8HFFpq}AyaP;Xi2)<`Chn}0P27~d%}p$* zbL_4prI+Rt`vf*Obx*3xNesy*)_IY~SgWs=x8Mw2hs=AryFuwY+?-QmvE9LU>vHPC z>pn{iYCClst~Bvw|0sO5@LUd$fp2w@34=aE!Tcs1MhB*RS$mdRb70b^G_5yea-3u;ubTq^!?W69;F%ur<69913|SQsDqh`t$}*ajD`3 zbve}`SUaEDM!UT6nRx*FsO+uP$S8KcsQB8=vHBm8<5b_X=9huzksN1e{MI@gWDgvQ zM@Pn+kiq*7@@LY5IBWyc^~C9YgZCWeo5bF;WKg;1G$S*gW8HK9dy-qq)E(!eknFq+ zTHY)&{1b6XZhPK`{LZ_Of}0Z=R`@pf5c;GIiIjT}ZA3w<7C+dh^gknNpCs;GTWG#r zCv_Q@b#GuOm9mtX`yrHP*WNnN-7CN!>?>6oL?7ga-hN=3~-@&8d zt?ZwsB69gzYa;ybE!MG|_aKG$`pEa^M5fP0rrr6p34c5UFEsEf@TuIvv!L5XU>d`9 zqfPE#QuN2aXN(fB^epE$ZK-}YgnXc+-_5imcloijW2bv14?L8r`-JXAKk+Xk4s9nn z(il%u4!PPa{4M(LlS+Okq5mAl0i4V9|Nrb|BR?BDa+RM=;#n*iR{Yn7b5BwJCAPas z1b0kJ2QK;AzW+V*GtHnGY1{JuSNFqc&G5%1Ph0MIb5D_{O>9pY|5}6oHLvV2wwuG; zCG*gC5O2S=jWLxz(|f+QHtLnk3gv8b;)AGc+R@>8+YUklz0gXXvvrhyujqf+ix#~w zpHW$yRz+a7W~b>ibE{K7xZ>$x~`WaWXM=X-LoH&}BtqCfG~@uTZU z4z*$;L-Bh;3s!ETL;U|7^W@EhA4nUVE4j26eboX_8L>#eJL`n8NL5AtG{sNEN9tkP z5Z|F{c+pjvyzN07PTC+Z`m4$(l6+53!6Tf==Qa4(Eh67j3in0HnYDvl&VKy3w~*_o zkr-b^`{aD;PAlSf_rxIdxx^OVO+PYErX1Pid@@eI5Lsicxj#)_Q0Hb39z4=DTzHY> zXfMn*?xrR1BRMPc;757zqj~s`l6#?TIyO4)G!pNm-sJfUdc9We3htjSP`UWjo%N|H zy4(Y>1C~}ysz@p+%UC7$?|bBWlNe*J{zLnYjNrOvL2>Rw8~kNrVoH_bItV-UL0H#XniefVsB4)o|=c5 z)AXxo>mS68e|OrsHKhxB<}&4yb&q9 z#~F=n5I!e+`ZHUuL41+xj*@F|?CMq98qIuzt)`#AncUg`Kib|sKFaEN{C{>gm)(Q_ zApt@_a{*yDTtu!}rDX}XkSJ=z8`=^G#e}E`S|y?q0c#+(%_^U2v7Zuw+9VbmTWv|T z8bxXF(&DAmTWh$wA*diK2^aHw&v~9__u1Wqw%_0P`v)(QJagvEnKNh3oS8Xuc$}uG z)Od3tGT+wBNq+W6_%C@EQtG{!eaXGZ65`b+T{ERNQPWvSq zf5+sPcP;L`fA`sEUwLP7r{Hm1PXlb)1uQ>W2|e2ARqW2;XUIf;;Q zkrO9ATagv`!yN_9|Ji4{th93ml((S{zC*1A{G@Bi{b0Yr7pvD0lUz{QZ{kHi@kZo9 z>Jq5$nc;UXx)`&M_rIiWL5sxjK3uKx7N-qjEz@4!SP|Jgf`5%YcaO6z(VzcikMEe) z$o<8sd>4Ew{}I_g2u{`aZQ*^l(swcMK?e@NauI`-UBYxw}liboyrPGnmR_cpU6VFdgJpb8MGpU_7gBp6g2eBZJ zntIcC6Kq$Vy!rTdXa9|Ak3nw8C+)l%TgH#AU5{a~7M$KnZy+^#&eeRL zP4s`jxjRf(UNF?ZlerYx*^SPY94zsfjvO>u<*(e#{&E>Q+J*0P0l6nf#P^AwK7wrV zd-==wit3OLk$YrtVt~K5%;a}yA!eq>_aokD9tSToALyF&EV;xzj%m5w|1`871fN>F zUxj4fwBHWjQ(5#!bb^m}@1);@M_4ngWk(-lEtiIDd6~mhk*_ax*t?Jqk!x%JBKxPs zKP9viOWi8^z!y4)2@Z$I*D-Ji%p7&Dt0@^0x(gsMryk(^`GpSS1g3O`!H>%ffBCB+ zcylaI(rz7NY5lBA)ei_T2WcM+P`Mf(LdX1N z)mLVpU|%V;FJ{g8n9p@rX%pSzlZQVZ#yb@|OX}jt+S+IE7M<)Z9Um>D%Gc-W3-yaz@W}-5&jfxQ zTVM5=QI}vOd0qI2#7>eqO~kKSD*MWB`+4$R`0a^@xqg*6cnNt^a;^yMa#shqGaN&G zDkNV^{OF%>-hNr~Cb0DbapdJuuQ))S{YCWIhTMxEJ3+=^e2?Kf`8vxp z2l?)n+)ANG@Rtqc?RoJ-?Fq?(qUDYlMazLC_E>r63w#;GL#0n_{UWhzod2_|Vl#AP zdjc;q^>jeLT3*3q;Iqh5#PMBcO?JF35@VKBg<1>20n=qNdB9O6)-l* zPjiyf**0Ep-%j6!w#3AC-~`V?^o_~|IzE-$S6>Bp@h6(&6h64+ckl#exvS?;cY3$f zsU{y%@?!;FVlJW=4kU#5C-WNPU0o66%hniA0NYgft@vZ9SD^S46RY_1xbTN}?W#_! zRlZ5dkqk^X`k{7x7kHu7?@Z=hQ|7|O87x5Vs8jNG<>wLc+?VH#$dlv-W_cbDTn_w& z%(Z-*%+HsjSD-mx=8Jn^O6Ir=rpCv8u)u6!`L5`EHx%zwG~T1rxB?n$-{373aJiX} zHu`{%$w%N(+hqQRPH($#cKsCjA70BDg0}$^MV`eU>dA5!w!yOk^nPHv-ro_%wSaSp zgS}H|sl#p%TAlkAto$K!Df4jzxy*;BRoU8eF7}ZE=0 z{m8DI>guLy<%7MEe%CpgiNk3Vf^$98;c0u+*CclX)H-`c;&h%I;y;OM?r)1&8^hxK zAHq}ZW#-+1Jh9Ko9x8Py72h9<^Izubzfr!4oGV^FkM4m!sgeHbSZ$)vDfu65ajxnd zbVoaIOKk~KcRl$Cu!W*?Sn~zwpPRWuP`y22@Kf~TfrkP+a&*GrcHk5q+O(nHWZWY^ z?3(un;lCjl|1A&2*DPy6<@Fjkkd-S%UPKn8k0fkk&N6-vGJTXe^2GKE<`x(5b35`| z&i|h=&!rWkR~}`4M)Chc%PCK+T<6c|N6vrzy-?13o56iE^DgU7bihdTRN(iQ z)>qN44LxhhK|9|^A`5M-BgucC@_~D$NzW1b%Hem(JwGaI@7I^sv-U;*ps%&gyX4-d z=+bGGlFJkoU&1ar=6Rx*{}KEj3J#kk-xqzSd%eK@y{~^gaI&wMb^~`1IyW$9bC^Gw zr*i%;bM0pSBzHBje9do>Yneahb2a+35*;M>6}VSXbSr0*FNg_#K}_&i#Vsp)*?T1l zpI)-{ZeNSeE0B2=+Ob8Py^ zs)-?X%bRPlkLuAI^yvm>*#8ozW?#b&I#zN;sIG*-z6@-oyln?;47o*X1tv564*L#Z zihm6Z=Mmyw$|iLFioJiJ_MDvI4)R7p0b6}cMC-tswn(_gUz_Mi{@*!u{d)&9i2k#{5q z`xvs-_nlaOuleqkN0If1koBKl&(Gw}wmU}V6xi60*k6`*W>lzk%KUzT&M2_;NnHB# z3o8nkOV+Z#5d9{xpTDvHd=b~D`irvim7fvIB?n#UxoOO6TU@W8Y>!5+J?PBc7JsNY zzF%=x6+P;_clEpEoBChpOy>jNa=mHL9k_$e1^iPej)m`MDoSM|2CWh-MfawfFc@&lYnhV%1lT5RG=T1m}Cj{LUSQ**K1zO# z$SU%u61RV1QI5b2k|AS@%%8xf2G+c{kZ!^ zuUWMgZOQ(-&PDqLasH{`*}_`LD-O{qX9d${pVSNcUf#BoF>P0|sAG98-NTLqHnZ9o zo5Z@FVQly#6@GVU&06uFFZkuHFTwwufxoJI*c8EEWxzHWu&v$0I)QEekpcT>1J)O+ zvtXs+Y$E512Y^L?1mryvp#{Ibn!l=0F0<&P|6RlUtuyd`V8DzG`JDx3BQULN448i! zFnhvbs)1>~Ux#r5!(Kl@&SLh3poAyj9#KXZ1IcoaHVVg}Z}Bp*r1 z`?M7QJx2}NpR1HN6QXDuz*>>mRJZM+^=7ku6YX8m?Pt+m{OZ>B;`dNvUEk0DD}yI7 zFB|juSV)#+&IdA|zT1sCf6ajD2#4tnOy&v$X14)zUHHA4SYWi}hFtVld9@Q2e+QwX zI47&0p&{S+Ip!?`&yH|BC+b@_|*X{(q1s9X1F zG5wrfH4T_o>R$V$Bh?v$?Ax#bZ{hwv`%gx)V|k|h|D1jK%gAl3Ppi=?C*b4LQuUw5 z`X!!8?d3gM?HFo`;nUVSCTG}eD)-jeD{n_#7w^8Qb{G4n_M#Rg_+&42Q@bbQ{+Q#^ zk4wWA&yw5_XTt*8O8i07oYmrg(}0!#Gcz^+oxi6x?oH3*qq8w4J9Il3PfUG&rf#>A zBR=nh!`|?f!`ARMcfaM{O>VK~zuu?$(|Zx0!hf^3p|8IbyR9ud{qY=EWz$o0kVr z3;A7Wliw3G&aG#szgtjNzN5g^Jm2HujrA<@T*%|}Q1@KU82C#c&d+Mugswc&8oxPR z+J%oHBp3G+W68R1h+kXHK12*vVhsD)LmZXD?+`EgF-Pab@z@am7xzWr(C!bzVFO3k zblcmJGJDeDKu+z*sjWfYWWjEyK5eG|5OrciUz#hOja=SGW`dE(f7Rm z4S9UGRq{O^e|;ZcQ1?ezM17uk$Hh<;=_+zAMn~Qb1&~Oba3XZ z>h1GN+bZk_)qY5}(pl=~JM{O%e9-tAuwB#bZ=bp;hIJOpdW&P-#iL)G`2FLUr`U#* zju`4zIhZezC9T0Z%-2*3-pm-^_SSgY_MBmPo>8`h!p-;V@+`Ib6QT7@?w4);fwsIC z`eh`td>OKQOW7?uwj;}Pk>%}Ke@%A+XMUUO@;%J=j_pa!AM$O}_Or$Be(va1xc!2^ zreB6Fyxpda+fL1Q?t3Tx-_mcFt#|ns&-^6)m?NR^6I3+A2hs$2Qv4=scj4_e%bWHkL(aL}PaYZFOMvgldiLLxKIVYJWDNH>Yw2EVNR_ye0_th{=`jMJv27v&C~q<;`^n0QZ{z& zv@!2?`gcG_4D`e@?{W3{>|5qLN!Keu3Bx=R(NCA&+ksIFIeq+BvP)$1`)Y_$RgK=&L!8w?Ea7VzV&a& zwZr!IH`m&b4?FUVYzK9hZXcB(rzM%gm3)d$UnYCmI71%UNAlsPg879GWA2rbW3?FA z%8LwG_K}RUj^+DUp9;P;0v;Y+2fQ{`*YBlqT7`mhjtE;DcHrg$*F466OVBDLA8|GK z75s#7c%eBDc;9G)j&x1ki<>Taa(yR-;TG7*z_yMwaG!7Btc}Jw8o1gV18278Z9&!* zPHl1+&PCwNmi|2k&f%I@!PSMsN#AL}X>J3KH|N!OhPcD<30!aBnui;G^WMChIZ!xD zbHiX|4jjN1Utr+mt$E-YOZrl~SJ?-;z7e?2dpTDPGvFo}aPFy5a9;q|nytf$jb8^n zr4MT>^L_lEP9Bi_ez8IOFQRGxMA~N>w0{@*!Pl?$gT9`yzO1pu+_olBdR!#pz-F2tWS>O}-%pO$E%QDbvGpl&uw%Y4&QdxrWmQ zo2%af+Eu0-{S45Wn6Ji?uRP~$QzYY0GuotUO={kJQ=(}4AK+@q&kz&PXmtAuX`gDe&yLmGkCV4s^!7)k zeM-mV(mUCQh;@`^^Ii-4u1?R$D0+S%^plGt^v574r7Nfp4&R8u6_&o^(#NqQy4|(3 zYwcr1b9=;qr;f07O6mQT5KX1uxV-1foc+t?Uq41`%$zvuENAdP2hbDJ ze+%`VUDw;Loa!eQjD3;AymHpsl%rL>laN{aWrDr=OU`;no?t)9c-yhOSpI*8dz<{< zlCAtP6Qr-zr(!BZHsoigeN9m*zn@(-oxLazTV+~3dy}$JGGa9Dk^obq>ltU7u4kON z>?xUAMaFIDK=~essc?QAO|$c;3;%A2=I-eA*b+7j`?>E_B+c@>J5$NL)c04p?@naI zdCcW?e&zDYIU;fom9w_k{z@KO#)X~NM0ZFY>=pOGb9=|+AF`gG>o?wCn&*>zm=%@q z^UzS;53mp0RrHg*y=pz{O`~lkHS1*G6W(>lGqLH;EOTJ%MW0oywrQCCI?%AqD|J~h zWl-`GUpYgcvff0d*!R`gUI>?|HPCXCjLTeW=APUU4fj3ZH1grF-``O(IVP~ds@VY(KkzjglWZ+pwU?O(zC_@fjWcoSCIz>rq&VCT zkbZ5zRpNIGuJK>SsQ0WR&kI@VybyifIw)RqQ+0fnT!!K|Sw(4sR zynR}*{XS`L%(ZHNJkC2GJ8r@Fxa0fCjn{QS^jYuBGIXhN-cxd^B}MVA0={K_i?3Vw z_A|{JIMJo}rp~Db-_)9fZ)#2c8@~MkT6yy*#J4BV)$lFzc-Mc;H{z3z5=A%G9CI*Q z`>*)+h_pXxY5%eo#<#_sg}T-{(3ei+*~J+-f&C|ueW({_qNIAOJi9ILA_t~wog&`@ zkZ)y^j_Tt-n4;l3((8;KMt<%PK8WoaFM2b{+wxuFRMdp;a%fHBdzSl6^ZBQEIyKo} zfxh!TPJN>Vy*&q+vqRuBZ7`807WP+s$IXLff6RZP}3IJ-wh8dbXQ(HKBH2F(z%0-mWE~H+jSO6sgT3 zdvIVuqUT^q4|KoZH%NC4bhnDVYSO))ciyqPrKYpsk@^6qK5==zxt4bX$A{A+cfHIp zye<3{yOlAN#SN^!#5SP1G_jBO)B>mHn?l+;BHIoMwta=R&HdE9(4sbJpV-$siN2?t z;XWsRm9n4scnieUeiB+_o=Q$|SK#01CgRBRqULpWiaxJfQ=B^P0@O#v%{hw0kVn?mpTnJC=4W z3H>7GHO6yrZ4Y!4KaPVxvOlIncc$33Cf)1%bu+Ja&o>#&%~j#_Sm*TyXi@p)Ve^{8 zyxKh9q|kO~WZTfZUMk~fj}?1OpV!pjysG_A=Jw(6xt-43iqE(OUG6^6rJqTw^!046 zAM3il?-ca0pQ?2om!#}Z{Mt>4=n~b(RC2G-6;@xIzPDb6Ubz(gQiz@@K;O(Ek37E~ z{iAH%ytDuL-b$QFKl7YPiPGn>%tNzzj!NjS+Znf|M!}t~(Cs=!v)FdM`+Mb0raIo_ z9gJR6`sTgpcAwF%S!8TH`$fP0-hAF%l6z)qzgX1Y{}^w;r*Bpqr^`j1)Qr91dt_*jjnf+Y z4V1Yt?7A}WxG#%sn#vn@8hiHCKHBp8iKCZxv)8J1R5~E2zhl8uYn-DLo|({-LVNs( zOK2ZXLwazZKG{kChV7=>&FSxzTFpK7d1LQjp8?uxoC|dO656Nr_x@r$vED~|9nYdp zO)WljMd#Rodi`%~u~z)+#rW4l=YezE09_8*>*A2Tcw~^+#kDSEGJ(A=vHr9XZ<6zi z%xBnsccIp)<~Mtge|%qGliI7e8&L;MZH|;253vGj@$PUEvnWfTekt)c=e=oHiQmrw z&(MoShf?IuPAc)V{tfy)%mM0bbC`RWau+i}%@kUwQk8&FNEZ)Kw++NzLG;1<9M!M5jM z?{!=?CyV^nU&nbi*pjM`jq++??D%S1Kj&_wH^9=4{11lvg^?f@zN$}N2Ynn5KwDtEjXULok&%H7m(Y(7JE4R4P5_q14^R!|Mv;ph3r4_zzCpUfhc~|9du9mpV{pgXSRB5N>At1{&Q1#$M*;KGPJT4^Qp@vywVr2oT#3K$C-c<5VQfd&qjHz(G_fIb?N;vZ zns|rkBYbfg7ih~RkMPJPzNW-1?MfYIA~>tlkAhR)!z%!%#QET3zxEVgr^MoWUG(#G z>LsZ)U&fl3_2bEUop^gM6>s0oTS*=peA^Mh^T^OIzG0(bcmK*ma8SpnjVSltfr1^!ZT~r58yM;zjyj088&#q7C>tiiVi_;ShP?MFU+;Zb`+`5Va04%^6ta^#$t zHE({to{nzIIZ4fKxfh81d+XUt5@?GI7ADYE@;Y2LPeLKzn^v4RZfY`b!qT=Z>mR&% zKd>-?x9)+>5t($^w5C$@hBKMGnFOsqz#kM(~fexVWC@@n|BYACgRp&zGRYFW;-de+(-3k=$wSs$bqI0h9ih4y^j zlaxKw9YMRifo9Syeucr%?Zh`HG2vB9G!J)q-VfNem|B>G)CW?Fr@ zE#ZyT(7TqobY{JmzMH%d+ACV~BWQKgrt3a!`6%&^Ft<+T2ESpGj9c=67QtJw4RXju zUdp^MR&VKWpU3$<{>DC3nxlE9E`)E~IcOQB9n(BB&KBFXv&GEiK5{ztGcSFxeM*Px zayj+o3GE}%=kTX!{e9Hfu(_&bzU8h2^WA8j@3+pRZrr$rKEPF$pzeSadeEyI?fnZq zw$#Eqi|E_%#d?qlYSfn(p!+1JXyVKb$W&!fj;(*;dgPZnbojJiPnX0ACU>&+Tx zt%zKT-0aSNFZ~>{7)INZ&?e`W_4fXWo`t*;z|W<_HP5;3pI+CJvT-s0rtmMHf9J|2 z`o_p5LPs`AE|KUf(N)%WQAVS$TJdqNLv|D#`9yjy(SU|L;J3?n?BaEC#&`0F%qMFV*5y5 zkQ3U7r8K?%Byx{#lfB)^`WuAI*%;?$du;hyc(vIcSDr8b$7vT8Cu#E@Bd6c#(8i^+ zmJ3p}q88S`NaSrd@866{N=$qR-8@?6DK;Tzvn{E-0T~n>&EiOHg};XeljCxgR-eaS zmPd|@=s+jqFwYSMz`ec^ujVnLU|JSoQBRP*Ckc*wf3=xkB-qc%39j3^o~pE9ntaf zzIlOdu+s5XJ^AnG*aIDN9D@_zXDtPW!+UJA?s)Hn_jcQ$@$o6%%k_UOnk(whq zNA~rD$c@;UvM$fAn#~-~VyFn3!);RRsq=){Jvhgwgb*+`$q3C^>v(=tp z?htmZB-zv3%K*^2>A%*Ol|tc(j;cfdMI6bSMDI&ps2hd8@g4- zAvPB_N!a~&J#Q%b&O2jKeu}hC{1pF>WWF38h|G`Te>e2y@^6C3jn-JS+3qTDW(`Oz z*%O;uxZ&=Mt5_Gyb2-yV++hWq*C0HE~%IcePj(&e+79m#~-5xgN-k zk@YYGd9khs_R*#ru&-r3IJ4eR>tVC89z=f4{rca@;h6u!^-$*czq=lK{r^}G53s-f zpR9*3cBO3G$3IyQkv6HB>uT;#Gc-fTXAW0;RNp)C#f)c9VNa5MhqHwEz8Xu&J2LkG zIZwp_S4@7A>^&;q2pIytLcz9LV4367Kg6adKZ!j^|4yz^5EtK1@V%A#RjauRzYX~_ z_aND$=tSd|x+?J=N@od?OQ1c>inQD)HT{ zo8zKm^J z#TcZ`LKi5s+?YpRlL=?~kDmno zD{?L}Id83-3TL2 zri{7p{Ex@~xxg?MY_BL7B?r@{_$7C89eGZQkK|fe$NM?_D8{c|#rGD;7gsq}DcCIB z&#>bY!+*1m+$hzSJS%J4PiR|7Os9(Ps;$be(%bf>Z7u$E!COjxmB6^EkGt-jIR+gg z!*IO`u1s>2*6lUElS^go>s9%VFMZvI#&>e4tlwXd@8nBV@qOLD=6Fkai%Zc={*)E& zcfg4+eck>!x}1_XWqvp1S#qX)$SHC#dEH?Hj(n-^;3ffAEN6!!1{`@(-NB8L^}!ip z-RA}z`BB}$Wy|`&FSG7T1CG3??%>jdK5U_N-xzS@Lv;t&Tj(RMBWD2dD~HYs;kJ-z z2URgY>yf7%;PE-UA^y^0Vo6r{6CI=E@0OANxyaULdB2gfPZc~By)upSbQOFfpWygD z`5E3&&*S+0+*PV#{PJ@aH4_5;LOD#x?|+~ruCUbo~{JWy}wK4vqj7M;^9P3tBP^ala z{{dhmx690pcE{*?;{<2X+c}GB+|v;Kqi|ve-~dQ<4`Z+BuhZyuv%m9xMQut_{ z$M0_KFGxGOQ*@s7n>oLV7WDH!d;Y#h^!wk>^&S2F7T?`7&cQ!)^Q!`LTlX-E4s`SL z0<(v?XRU}FxZj(j>;o(9!ErT>^#3-3t}wY|J^otoeXQe?HR*2UXJbve59)uHHR%rU zv#}=KNA;g&P3Bwj3jf{tv%*7tFb=DIw=lY!mToUBLgQ5C5(e=yvuBaxQCB&ZXtOV9C4G<5b}} zmsY>nP0~Ir?=o}`F!C;;+%FaXd4K%nrte(*fotifjI*RC>+hS6IQkcE82)d4)iqY% zS1hqc!oZ1ayU(zwm{FVj4PAa{eNMmo zs^_?mHIL2d{O|HIpWqx+iVbnDyv!=};o?n(-Arz#nKvVAkvsd!J}l*XJ~~fwGKohv z?hWM@HcCz=d2o%AlX(xhmh0Y~MI1PEC(e}5CE(j8xgz3Y21ey$qH`o4vy}B!O52#G zX-$!NnIT*Q2}$XBm-n0S$7gxX{L2trDEG2TazU^Q=aY*e`Ib_bQuhId+lAJ;kc)q2 z@Pd3x6Q}UvpU9n$T+33vmwp}0vphF1wo0A#?s>5g+M3C=tO7=OAvRGMFGiEs!x`3^ zqZ-214KJvTa4ufVq(5IrR~RoU(8vEp4rNFOS#l_6XqV|{4Du+=xjqcPR9+BgWtBTg zPC^&C-4Qur(5zTo8dz-cX?h-_-in4G7Q#|Gx;2_n%w6>*U6r*XxuPY&l@vx zCe5}%IxYE7kbK#r1r?a(+>gOj)|H#JvXw^OKzk-Z&$)gJx9`{C&&*= ze&jm%QOS9^B_TOt-rlCYo+D|tSMz4ck1Ue$vv<9k@D8wgUSt@oB`0#Wj9=~*gw0!# zF>iWKq}et|rzIb9zQ`AQSIdTe=a{#5jd=^@MVdIR^EM1xB(AnN@x8D-$PjF3-Ub0% z$v$PBH|6W^F87hSllYFxeLU1PVR4+X4#|Hsaa-3TZ`3PYsLqJ2#q(JE3b&r~*v+1G z?wrTi6Fu))R@-GdF`I1(SL^-|avsfnQ}|v5pNsLWZ0l`&C)d&Xy;A0(SI4A9jI)ZE zmE<;V>u11{-)M#XA+Q>@PaWUu@Z%YIjg5QBYg|bkleE<;ud(qYd5z@!Gi^BO+|huAj@ z$YB(Fbpbhz(>SxJcGIr*n)!uhdu7*=TiBm5E0~!*z*uq~|4JWX-z*@{aUp%Ec5|-w zO1`6scRzVgraZg?y!chj9L1MUcFmJK71g(qqj(&f#EhkgPvzh3o9Eg`uwO&>?b$o> zoqAoDa^9;n>twjFEfUDn8cd888>40~`HFY&|HiyQ{{7gz`JCImSqYD?9?tubalY-7 zC6_whzTLf++=;>DB4A&(4Yk)#Dbf5&#;1}?6`!}gHcs1~>!80b$MT)99L$XCRdSoTX>t)205b~BHkH?3`?%xT-r3F=Q}tf{HOg)qmA6% z?5Q7RzZ*G)*1pCIee44=CY`Rd2IuF492P$4%5nfDUR-HnnZdqgJDj8ZkzW z-tTSRXNg@uzn|E3FJGtBxH<5Mw-C9CLKmTSWSsFAM94f&HCPmE?nhEYkz{=IuqW|;WZ^j z{+IRq_$lpb*$Yk&^ff7YA`h&NGbH&ng;N{{>F^mEWcIll(8V2+n}MN7Pu)H8#aJ z$$vZdK4Ip*O8iavC9lpT*Gc7y)Z|S#U&Y?`vX>lYKZ=6=ns*K(VBY}tLtuY!JauCx zwWB_*C1+`;8_p|+9-OL^x)ZhIZ z9K>F(brOf4sP10Zl(>hI0~$KNu7OwS%wgsPYz*dwTD|(YlNu;iIFZY~z^U2`0@u%g za}JAwivzA!>MjV}00XXanE#Na-&epVvZ?e=Jm>ja*z=_Jg0!JVf|9fM!`m#fw&CZ^ zv?(5Aw9#uNP=oz~D0=n-mr1-+;m+2)^~5{Z%R5AJ?~gNECb~4ZXFRLd%UI0Zn0v;2 z;(>~u%n@N@kXjHj26@x=Q~s@@pH@%DlZ>Aj zXx+u%_q+Cu@Ym&02l|77etD0=`NHO+=cN|;bYe>{#wq&Mnz3z8A9SAYVYSDMbIV1@6R2O zT;Y(MNWP!w5o*pq+MKPo$^S%Pjr%}huxUZx$$P;2vUK=*d@b&mZA~8h9d+<$D(`)C z^5)%6?yJ_nILk|or-^QCEZIMwV!TUVj`NrQGtU1Td%XY0E@$;z&K*A`ukLeOM((Zr z{Q2^X+^226rk_-Jc8E^kZf3jGhE{yuflt{&Q>480h2NF>y|t#g74fI^jK3{ZH;EP?6iQf3*eNMmRhg{D;H4jU2{9>H=v6|;lylkQ}1aPqf?7pGU8{8ru~N>FbR$=kJJ z%Lpv`@*Q#n$v4%KJ?E`{_zm(Ei|^g}ooPwVxdrr*$Nxj8wBB0cexmnMZTR^Oyk{)? z=n>v|R(!rc-n(>4FTQD$8sPha2jaa>YQbsi_Rkd^n`QF!ed;zuj3p61`q;xoHcK6v z*G-jc+!>cyi&fR9K=r+kumo|w;n^tN#M9_2?xLRy+ zMbmih?h~_B_TX*QX0X7T^E;eY~H&HQUe`#VlJJlr#(=BBp%5OeV)eIB?y za@}#Shki0S!%07ZyQi$2LOw#r3GRwt6)jtek9DJi_u;M)`I0+Cv~{q?-Q`nqrRKp< z=m=o9IBc4Cn?+ZNe#oMhYArUnbi#ORYg$u-4#HOS-Q$`1zm7 z8QOX7ecAN4yRGK~_T@DEoYU~LW(`U9CzZn=WuMADf&L9cSrfO#QMdLMwKp`D1p4|9 zGXEyb8hAP$o)+H>PczUv?9Hw|?&`_s`8o$~wsk&=9Ms_-uQGFyhH;nD(tZ)`%{}&0 zetwt!wWZ*?oqdFTIpaKSc@}=l0Q1iQT57L8Y^@(^*elc_OIEhcX6zJVd8wZQkDN7@ zypY^ue>><)-tAOiHSP#ncxdVf*)Ow>!oOl;F8&bb{g8UkitfeXZG`UEWc<9>smA}OII~twV@Y#3 ztk~3l0@n9E126k~9`cemEUjBQegu41JA3dA27E%i_u})lNs9JY2Y1_M3G{qPo6PyV zF^C-f@fEe-HRcr$=@I@g@U_ zd*gMR^tQ|}{4&=C<;>sZz{$G$Fy5P=sZF?>e@Yj>9}WLq;F~Wq;QtlxrJkM+o1Ybi z`xS7H2e$Z9gNFU_-fvke$j6?%o4FI)jhxC{-v!;x1qS|C;*?K*A@TU>QgiIt@ODCf zy3jwz=wnx$*F_&&&JXFKA9L5lm*1hzUz1rgF9Dp8hJGltZ}sqa18yL)ff#Jas*p)*EuyuW;Oy#F^v|J@m5 z8+@_uDe~@=v0v8Y#hmA#!1tF9$9v_z$V;qoHNVZ_>s#jclBMuR&ZaWIz_+kRZaESk zv;kgCz&;pdoEFYK42y?`?fGkHW7-(cm!V%r7=7HC<*kdevigN0t%n?%2>;8`%xcI48AI!K+EF6~Vh9OYEx^ zt=K3MbK3E+c~?lkBP#D;%3Y3+WPXV)N*&d@4GX<#L+yU4t-aMebG;DWpV0L*bTxAp zt-ADqq9*YRAUke3d!Y;U^+&zP?r6l`Jl4kiO6?SA1YXf7cOxYp-U2@HGqlWmpy&nu zpG;qB&8N8ibqTY*_GB&jWO=Md@@cpOzbRg71#RUFV(ClCNZkl^{+KNMlNu}ZRl4fp zl_$%M8XgvS8ISoEvYdx=Xd`#1rA<}&#kuoY$L@IE8(wW64ZAymSDemDsXw6 z569_w%qB18T+|@%rr}c#Ov0zY*&SS*HSl9a^m!Cq5@S@jsDTn7$Dj)RY1ZVH`&)tU zM&s`k{BlmsBaRKcGkbm5e6Ge{*R09;RQ%ql4K4gWfSefdw@6Lz0OwR!L~Rwx1=MSO zpZlzOr2QOc)#qk;rWBnG(S#?Y3tg4lCe^$NXPn=a9QX@S29-#P-&2y^L zT1Seydjs`z>Yl93N&b?Xm?O(Mbvk-u7y04E#D&l=jd@ez{o;EtVS;BQ{J8H2kONu2 z_}k^Ys^DvTfX6;~6L`r5Q1F}++j_gJCw3-$L63rEcZxQ&e2d-FrO9H3+k{e5I3x|__F9$ADd`kj{FImwS zh=!Xf^bzAxaKkm-?rOdytY4FFyWqoy0R79l6};5m%@aFq9(7r};j_Ts2YjonOMyox zw6I6liyw=7mT2g~itqUeQSFD5TQ{tYeMThGto-0;lVU z#*(UVoC22sT&1j6fzx$FV@XFeoCcgv*6UT+I_QWh&i}i1&DLe)#>BAxP2S94oVBu6 z1vmPFJB7+mAu$-Sw-le=oTU5{cYPM}*#jT7MqlQP+TEQ=^S)!&GDYfVX zUy*_DU^Kp8$r_fLa{_mb0hdeNy@)w}9JtzV47m9UuBPPKXgI&n_q74{eFILTc3}j* z2ZcU)V^{iJqzOKmJt*n!Q#@;yvUt0w1b-?;QH*mgUQ+1nPdf2v-Ijbq* zUE)aiOM!1bYQXPOwnSq|CAF<1@a6$0@9QeLf8C~XycEvL=@q4 zi^Mq^xYmGy^BtQvz+2ug6~(WVJ?f=#@jDd$E2zsAK}&|<|I}#rFPnbe*l)(oQyc2y ziB%o$(qmO0N4M`I?GG7aUNqR-@(O1v)-d2ha_iubU34ZIb|0|CpBOk-7&wdZ#YN!! z2XLA4zOL~9P6O`!Xt=k4YyH@OyW4;x-y{;>PT*=kGT`nr;2sKxTfH-|W~l#qaa&?i;*y+{4qTL7-8C;6=`%Z?&avtXqN| zL~Jb$JHKg#<`;jbiWmN*kN;FjjAs`<6jk5W!Vfd%ci=Gc`*)o-_p02L)cNoWz6@+~ zYNOAqTZ)}V-j>4M&lbXcL~uJiyYQc=I=J27eiPia??m7RpNYFa{wAe68pGFs$keac z?{+bc+mNeD-q}@iw%4Yg(_+G9*9yNFc}f7?R7 zg*hMJ;1g?oGxV<8RQ&i7!&oGK0n6K2VecLhi+F=Qu#){O_%6|t(>jCi5v5Sy z@X|cX&*ta9{DAh@!Q_G~Th7E4V~o|j2V||4{cq`V5AnYdLDx>`8UtM#wniy=I%Vwb zX5BTZ^We1BTs!MnKAo7wHH=a6s^l#qlP>Y4OKereo1CAAA@(-dg)l;OhC-EVh-@P_!HN!=+;k{)FR;lexuKzg+rypX(WWxI zjVTkuX(KVDJla$u6Ou!x+9hb-?)ef+9!qaxb$y80^(A(fObo9dc`PYWZ+vhT3Du!k zrgg%PJtgl$2l2%``Y~lPo}aU2oGYPO;mlDmdJIqevbqwq4Oir%`8ycSwczJ4KkES=ii4kM5xhu5Z`- zbeHGmik{3^%iT$Iq#9H4*eE(Lk^Wa0bpFJcgVt!ci-6OX8*mRBa5qx7J7U};fNNf6 z!2QgC3q-@62VCW?2HYlm3f!Z~NY<9O$~}hu)R*S}GU9yHeVCXrh#VRDo!DC&IT{i- ztRl zelO$PUccCQL*x!>j7N;=OZb{uX3+XeV@zkF;R3?{n+&)u2Hd*wQTYA^oQh3~3_WSU zIVVKHy$4+J4-9+_23&14-0MQ0#3%*d(*|7b#3+2tLf;|-?so>9nUu>tod1MXNf+!mp4fdTiTG1tto_$GsM#oV52u1duh!(7Qdj;ik)bM?^V zD4HImFBO{vt!sL;&_`@it&s@WY;?L6He2u$msIjf%r|SU5!ae` zaTG0!fi1q)822uN7AI$Li+stRF<<&8E~)14bP7l}_0q5XX!g7*66#B=imuyeOhEa$p5cG?dMAS?;3qy7|R>(#y&u9o7xBXzihyO zYERiT@0=KPH+z9*{_U1&-g?;|*bjA5PQv3HAlGPsraY zrg?W8dqbt{74o-xr+Gc{H};2C*&pO@_fPY#mpwv$egHhf4f*_t+~jwA7~e)M$e#f+ zzR4E;6q@`=@*Mnq5ADa=g6-p^J-M?YBkr5bw!J(DAL*g(o1wNR7a?B~m!z$di?wEZ zYSiD}L;J<{VBeogdn1q5z1eJ=fK2w#wyz`D_I=t`UTEq2d9%F>ne3tc3!(Nc(q7_{ zGVXtvZJo$u4{dLb3HIGY+ggc9n&UoUw&z~e2{UIcWJ9U-)Ddc5FYP@>-+kf?d5&Yg zduZDj8|-@%ZKYO_^j#)v(L;`a$Ta)iLUQ``bs5Xt_kgQ7E{N+vaH+S;Ok6YLyw>$3 z`Xx%iMF-X>=eXJuH}x}Xx$Z>Q zL@SSi{9G9y#?K3&E0dU|6*kYLAK2e;ey3)_av$}{m7e(CG;f>GlZ2gV(zDQ@5gRv1 z;|~lPkqx0ywMEalgl=?IGj&wd-xyyRw8~gAicP9LhM4LjJ;;e=O}!`mN*u(L z<)j{D`DSMry}M}VBi>=9YZ1JcdP>&61?MiJ{U4+~aS$u)BK)^X_JIA4F?X%cz-#g~ z>Yvf)tyq31SI{HB%ekbH-_!Zt$nP>=@;m1fkNnPDwf>ghv0>|f%kLs{{9ej=!_Dtv zvj(2-nn<6GCAAkv?TJ?Vas%`>KixHHv@t)$YJR|jPffKy6K>1O99i4nE$umnE7)#q z_Lt_ z?;_6NS8^7=f;0K$BfPGqdArKs>$g^w$eh8fVH5%=g0R@UM`Xi(o;&pnoLGJfJ5 z-NA}n#DeFEgVc6hEBUrD&>9QPanMd3)61Rs4_x>UVvP5V^*2KCAB666XK0-}$&mto zO?U4UE}(xEHw^hnYD&6!kML^XRNQbp=N|kA_@s#aJ98wb;|bnaS&fe%u%9>M251!l z=q@FWHh}n{kIgjaIM+wIjVgoccI&D+`SyTR#tTlU3kXj?0>LupGJ_iOYC z51qvGO+Sr#&m2A-#D|hZA1A32TzC)JzC%d-zMOso`S-cuHaO?6)W5t;A(_E z;~lHg^9{Ie-q!n(&?m7%8Amqrj&DiwIMldX!uuDzcT4{gGZgsY2HtMouDeb8KViV- z7~|<1{+5`GXNmNG+<+Tn;Opk?x*LJ3lo%rY_GSLp9?;*uiF{+*TDL^KqyC__y_Nbp zou5DtIahL~ew12-9!q~ry@8P0@C9(#P;X~;bxjO72E2hBbPkBs zo^5^5x4n`(z3`{gX?c?%2mMzZr*#%nFUuLjT|+x{(10oB4yx!ErB|Nr>+fK!-RTZ< zKa%tH-UaYh_8Z3Na!gK;H&M`KokzZ%{_e=KrMac(GU9IG0sJ^&Qy)61YO4Wu~xa37jn*eP@$Er4KrA_y5 zQVx~cL1)GWb?X$FPjsuabC+L|TZ%7by~F37pCbM%7dg1jhN0Zex9Hez?)jWs$3DJa zYCiY;c93;mC7+Rb4c*nhQ0u&*(&qOt&IEEbZ{+{G_;)=vp?C5azpUZ>RT)<~$#InT zeKKse<<5&Xq|Zszu9S0G+5?-@se5odKYsJ30C)JEhwgs2ZL7w6MOx>XcKw|=b*|=| zWbSVw^Q?i!l7l0IeERbH*dLO2x7O#~&G$LHBjYZclp7!yW&v*|;7^}-X0p~K@4}q9 zfgI^~xesQ+$$T~D-8|a=8gq5{{K}$>kdI>7qlfyM*0YDKzr6l&Pb}x&g<6H&Lp#|X zFRE2ByGPKrDW+Ekv-8n;55hS;cYzV@**RhdnIp`_heQ%oYkMCYsY0ic5+see9zO| zOIziL^HT%jxH(@o&Rt4&E>!z-H?ni?w@Z2VaI4dQ`92z|FY1MAq`72MA81FG!+Q_=F#?3~TpJ z{!_P`Z+?d4Q|CwMEb+?s&^PKHwD@#+A8rt`&Ur-qOmdIq)b03Hx585k&4NR%n>`l= z^+9 zc05EK&xO37vp;@%eF1HyT>*AiB5mKe{;9{yk7xUjmc;l!b0jp}N?VVuccSodJ#Due zZKX{+Fy+bG+c%@vJ}YtfKObuMx02($tYYboFKpV#SjJFeOQ=r1#^-$oe*N|X&yGI$ zH~zNUlPmZNVzsv~=MH-pI7^8?h|MMKi;4Fy&C9ATxZdYYz=l2oZXa!z+HKVZgM8k0 z`dMn=aHDgU&e!y@0{0o;Zk_4d@mKmkgdgK_?#%y|zJEgdxwZwlPlx*UJL&fc`Yl6u zpnp~rvkx(@cb0Aud=CFnaB=Q@_Li3y>=4?L7_;F1+%YC+J3P6p!n5+nWo5aya!>fJ zESt!hx{tq5aKhI%?yAZfIl?>?z^C>SyZ`6`8+>&&%&oXZXiWTseU>xcyk+*J>SI^? zyp7O$>j&-~pZE89f3n-13ysO}{OzZ~4earJgHM8&H`9z}c6j9u@rwSI8hB)` zmqL@rmQwAxUd9;1Jlp-B0b}q?(bEp!E)4R`y$Y2=X_J#9J>72iHzu&QE`Oozx&lRny8$W$II!{RQQ>?i{%8uiW13Bx- zIvvQmtd;v;oLB4Ynm3<4LBa6Ofqov;b7JJY+6!0}TM<}vpL*{Axl!=Ebr1%Rk3<8$ zSz;;Jh`?7UI45^i=sTFh1Kc+^q6g*vm%yRBR8AxK75s#7c%k_S@S4O~gbvQHa@KUn z*`N0ethfdC6JS+s62Z+GR^hCT#`$;PirJ49&TR5VIp-;yylr5`xd@!EOaBsU5uC#{ zuY%)^11p^L-3(l_#8d>1^Q-Ecw+Rj&f3i2r81gi)g6BPgp5R{szLGsz z!Ozn4Jl$-qV!Dj|M)D~v@+34Zf+kI3EP}s4`2!kD-j9a64!CBCr3ldMhUNlS zDfhetuE>CUC>m}Ca6WlAQ{?g*<`JKp+P}_(!l>ri9gsfA9iy6Og{jzvVKqB0DkV3D0;HBCe^0++-;tqO=XJFhMG>Q%`d!B z^L`LGRhvX;+M=mCAc~)($Q7~BWR6$Pzi#1=+$+)fuj76;9A3uz7P#dd1~uMS(EaF~ zE$?XlSBYVmx@;(LbE$)viC=iAoR@h6!P>9jd0xg(e5LBOwMBoBGZD15*rAp85Y)IP zkgsB)RoV#8D)9*mjV-2L0{<7mZ}=^E zOIGy3o;==Z=n4Pxg5U62v}7Cbyw}hZ{BH$6z6!O!%9zpFPIR68?#!$#YU!t~e2H=8 z8+Y@X7ilkapX1nb4lcZ|Dfvntqs-Z~8_+Gxh4X^-MbF7R)35BW3a;uqVYCYTMBtUr zUf`Hx1(z1C*9C4QaHcW{?R&b*@&qcs}0h~4ew2t}i zer|ex56^1<1g2`oto6uMzxj6m!J)c6^e+AR&-D>~iJZ^5YpdXzbvSdq%Q*fb z<6ynx_mKOz>Rl7$y)n=2P&iFkb3Mtu;lz)09e_Wi$(?AN`)=+5zAtwuKSW2#`WN^< z1}(?J;f0oM(4y{?2`wqeI5v!;sg-&Hh_B7vux8$`RwI2I=uroa?r7 zR#bD+H!iHNJm@g};j{UKM?_!B76{8OYsrM8RD%&hT{G*TXcA1USl}C zNyoL&pnRNyyY~oAJKJk~Hc8S;qVdIPU{iUyx>;jRaZW{SK?jum~bj7zU}&hB4vx?HdG9@TDCX0Y94+DXj^Y3H0h zfHsCNHnOi5LTz$H9;q!K>T4kF5x}kAiR*DH+nf)s= zW)9%rK>npwoW7l0#OcwzQZjTbE9mQc?mF~=*!b{D`3%>O^P;~eoGy3qmPR+UtjrG5 z(#gDQa-SSp%Amph+91YY)SZbO`&XfM?X(lyztfSPqmO@3wev6Ov^DC^M7F(|`Xt62 zeN5Y8IRnV}|1y|1M*W${Hb+Bk{zer=ZM5!HeNrz~Vuy!WPan{>*3iGs>hIDfTKB3pV}}RZ zyh$5P_I{z0zTE4ldX>CEa|SeLtpASJg`dN<{<~gPkMKvO*ag%W-e>IhzroLB8ISOB z$#u-1=wbLaCx#rIrJh`|8BBd8c_-vBZuA*v0I~gR@h>adYR*%><%8_mrf(TPdT00h z{#+yZh!=1`Z=q4KJheS|)qE_SGcZ!y5c0vku0c=WNeXMIdP1|wt(Ow?a1nbDJ_m*C1>z0hvce7lR@Gh* zoYxrp^gQAX7C6zr5^EgJxoiM3o+-6c1b)5&|3c633BaoyDuMsL0q^GCP6Yl~atkDe z_3iuM7u!YP7Y*?`MDJWP1V6HI#@`s;R>s?YE%GXBM8>;>@%A!oq$?!u6&kO(kHld= zUr0Z#vNoj6(jnM229E;aZ3O?jf?v+YLes6r81lIT)E#cdkOppb9uxQ#;J)=nvD+pp z+1k-_y9C<#WbH`1JBN5BFJbA5A^!3^hxkjE-srvO?jinO*xuJeliKgbP4u@vrPZ&- z{+?s2-XwlDvDw}Ds>KekGVJiqFC3mzBjhdwHn@f6NE`f8#;Ni|=)a0uJrakNeiyLT z4q$(`Kjo{J{^g8Z#+alA%dc1$OvO>~HbYsxvjU7g#TQqV42-WPdhmU>0j( zCTn5_>t%X9YecP=tsjd0B5zgO`R)KN2KZRkN?hbx3EdYY77uT0@`mU>TyvhEL?1o( z4|Fnnhr~2X(F1oG=k5UK?kaw-;CCaIShIJ{2x5rQxel)|UaQSuhfkSOuY_~C#44SP zzfE$tu@^hA7ll`>x0;eSsTDmwB!79}G0!2A|8ndaWKjG^;0b&yIen~Mo4Zi8?d9&V z?S9&+H6rcoHnEv%@~$)euzGH{$%8oL@eX)UE9*nxxtpWl-|HE^6!=WTw-iV)@teNb zX#6({e#3VZ=xxBi-!uFbf}j0G(bG@WOsFX-&N0sUI)35R*TNrJ4?_0<1FkL_t{u2q z!(S0drw+om%ms0zh1^F`W9>CE47c#+P}fhf#eQ0}A6l9X-$d!&%nAj+vS;|cz^gR^ zO{E`ZR!Co>qvj;7DO$ah8q_j}0Un|iHVav&nt2=~6pGn|FY z&qVfTum+~HMtIL1n^N9)`{)BXN5-(9B=Gk{zV`wy3HaWukv{c@W^2^9x7?+@T@(D*AxeYN5oy32>A=lv~xeguVI^_3SQ*^cFtbT#K%Q}%`o1@(0)aIRX#5cI1 zH*ixwkCMqu{EMv9L)dGroZ0trh8O)PV-k6uB66wnP`KBV=dFGno=9Gq_`HcD7D=r6 zhSj#Ka`^cx^bvl6PA5Mf8L#mc-N)&kd(#L1B5qEid>8m5muO8+{&r-xuj%U8{6wMU zE7q5rzb%Q&Pc&(e^WOn-Sq?geG#nxq<5S1rhCg;Ouk8PVU*=@qxABwlTNDY7wo8bK zpVfaCT_xYY8sUQ;>dA~}UQfqQj%Q9=7{hMHkWuEz-Mm^`ZX>Rxblc_8^On_L=IwIk zVJ`D=8S`=}^HYd!DGiw&xvD)$3Drm7qsNs{?Xjg-C-gRCfZTa`SE5e! z)ywEB$#d#m&P$JA|6BS}Yw(KE%03i-#*Dq#a*`WbDEf9nZasMn4fxof;=K5q^L^f< zj!`)Uw#38@yz9aHw~5&vEqMX4;6&EH-k;0pF9ETxeAt=w%BD~8Pn~*~yp-|bO4#v5xQkL_2@@RSo558O1}vzoVm+kWq>7a0***!M-(ym{ocuK0Dz#y8&=-O;m8 zG_r0%m>yw|9V+ou-jNeqTgLZe85jOv@>;JXUNO#@+&te!Y-ciWdWhX!`llFG=SJkP z;>8$sCRceTlbwD!OUNBu>ls_ONAx@ssdeBM{NfLemwCT9m-C{(?05ekbMGD>b#eXw zzc-tN-2?)GKtezh2$x+D5xFEQVwM0J60I8XZc8wWwbXj6L_tlW zC@NZ`wnXs~)GFH6dTBp~i?AVpSp7(X*!-Sn-t*qPcQ?>}zJLAx$YXaiXU?2CbLMvD z%xmVd9&vYyzfb1b$`b6Gm$DE-yycwbdz9cCm_aJ6a?#BlPhPo@P z_@dr*k=T;8zLI&QS#%|P4ETkYnCmNPcl-K^w|G>X+RYEx_}9%$XfdWcPO7a9C{#K;rHWL4Z1I$=kszd-*v-L{4fRXkQHCqhF+B)o;oT2 z$EQiYt{YOl#rPH7>_;Tt^h@6G0YB;7Sl^6lGv4w013dh)ZW12J#9a+=2Bdv+;D!G- zn8R<8%XR-eb;m&V4<7U>Ytrs-+}`gmG+K5t-r3t;=1xn-wZh-phr`e707v)!WMB6U zF7NlHMoTfiOt(KqR%a}~%;vk{Bj-JgXJsA8x+G;}uq0_jaQ@xSfcWL^)AOs68U9tI z7m}9q`($5X$Qh{D{d_I`T;38aAkPZ9KWOjkyx|kOcG^Bf=HO$$-=l0Y+tq86-=#~e zX-jv7`QD#>Jc_l;MC`^dcQfpENgwXhE-$f_v12fHsqgtPc3Nx0SpNIYgTLI>I2M1} zRN`dS{_pA((f;Rq{KB-y)am;$mf!qJObT@v9&CD#6=D z4C2o7qIuhG^6+2v9IW|!9mJGg>;@0o;qBs$jy`RYvDhxF%qwB|$Q;~jlOwRntl<3p zi2>2w{Sli)X82cuAzesX&X3)`!mkqpGQU)cUDDpmuuF+$mwXl2<&PP+|Mz2=Tcgi{ zZFe9xRs0PQY<%HIsiDdu*5AD2CF=?Md6{V|Lz}JrV?Xki zllMQ}fw1FH^%3`_aEXMs@U`|Q!u!wgZf9MWFJQgm| zYtT0sT{E&7k9Iken&;71+NsxL>?z2u?-dw#1PZ?i{#PU^ut{}}5!MGO9rMSHoH zZ5*F__YlwAC?_I%bjP7}cE*HF^B3+*BX+#e}Deo%YyR_;7&XB$T zrczJiO42Ra!56a9A0@w2(yM#1g)B@V=8}zqDKxgaroh4#vhs~4pZ%<12{N=-!UOxu zS;2adSi{A?(lUc5WY4!pba@5x+@sUM5wfR$A?ZIO{a&38evm!=?~?vg(uuuRZ2@kO zJ^ceoU#ziLxRZPP1-!RR9JHbZx5rNV2DG^q@Oo6IgV$qEe^t^iC;f4q4o;6feUqdw zBE4CsgU@46e@fEJNq<_WgUe%2UoYuk-YkAjr-R31Pk%_#d7oqPi#i<~9((#4N&hkF zFY9#f^4il^N&01^|4FBVyJJtUlk`iquDGxK|BAKKc8M`<@$0$_@OJEFR8xil7LL+C zxH(pub$8d^r#~s9kAiU%OFNpqW?cV=)_;C4#*X70+W9Rl12{WYIby3N$j}bX&Ej`- zI`}$Py2K|INqSjVzQWWg>&4VjeE>|I0{Vhr>Ig>89Uu5PuQjoCEFQ7_;c;XuKc_4I zj!vO9@pPhTdt=ofgw{B_E8oJ<*&c(T!@6{}VCY!+i&Wn;@#E~eTM3`mGyBHSIR*J+ zF?1@uylcb#ous7M8Vkq7(y^DL+QEjSb1h{w%u^@#x$jm z602?|7EVmvwpG}0a6UPg_M3q|erDw{@o(bt*syQjC66&(>wdYF&&0lo%V)#A`6K!K z#AAQ?u$9NeyNSzV!@Aih@_}`u>h-df&&0Zk%V)#6d6azZ#9n{-v6aWfw~5PR!?yXY z$akVH>t9wr6Wb;(pAFaMPVz}y_Lpg=YdbXYY~u3Ra5rud`6e)y(pQqaRz4HUCN7^1 z$L31%<$AR(GJiY*E{x(a&*EWX*u?R$;n!RW4|$KnqLF!lKDn(zOdjFt_*UW#P!^Ety zc*tC$~o>?YQ`E$)@L#Z50}u z#$JyHw5)bq8V{HSR^A;}TWU-id*03G&_9UFR_!>zYDW{F#>yWl+tx>(C0{E(AB!ep zry5JfUdH3lN^FKjdpUZRduP_~W99vw$cOL8q7}RmWmA-MhSVE9*EX5BGMwU@SZDHk zGM;ZUu(m2 zp>4(Y6H6<)4S>fY@)?4+gWr9t;Ok(wwSu?9{k8e>8=E!cH$M5T;OraH ze)IVdXLjG}yUE|k+avbY;1I{_3p#EO;h%`m;s%#7)$b?!ot2m!{YJV3}BS3Fu}Xbmg20*I_TJ z-e8zm>5tN;vm_nct;2p)I@l#vy0rOpNym2UuqTxcW{H(9`6o#_XTx>ams9Rlyej){ z^NsT5q>q(!?70qmQ|Vxo*wc@bbo?8t9?Uy+^k-EL*d%tkA<*UG%dDe+D?VV7Sm`2% z*hemYjyn3g$`2NaJ>4nk_%`aWbCn+q5_|gh*amXUu-=rxrx|sxeNpCr_oj^0!^NFf z`+HJm$$0)|Nxkr87DGGlJn&+P zz1qx~oa})a=Q0jyf2%#e(qC3uF!C9!;Jm2 z_>1mT-EBBU`+tP~zM}5XyAJnEQ}v+^p6`32+Bn=}GyCk;bjkq3qU>tsF}oc^ zXeJE|xuCJ9d7%Fi3=73$cv>jT{p#T{G#!jn9oUkae&(GtB_xDRTdajug5QTR47{?0l7T}+{z0Wn|nVxUOO#s2}@W*G8+JmaKLCZC5MI4LyO zc@B6rRzEUhb;MsUvQziL3niY0ae1!uBIwLmQ>z`s4{y<(4_z(eb0y;zu~^gQat0$f zGdt(l&PSwwzSoOoQ%s(A#^Sjvgw~8JwRo$(Y{RgbCH&F<*y^PPUDp_lRW`oJs@l$m zU6YQ!4aRBl@vmg>Z^x{u=+d|&W=vbu_-x+&ICf0ifo*a&@ZV$BM77uCXv~_Mk==)0 z{u{iSk;lNRX@gJk*{%n(z+*|GzQz0w+c0b*dgcFWY_j3kymc1sz})R3Up;F8xqmZ< z*qD0eea`#3J!gS=0sc(lqE>ZRIQ&Gi_q#&QdH!N+18G|uhRv^NFNuAWxo2^8SAoK; z*=b_dShCphYL-La%KR;3>{=OP@kM1YE?M<*QLn^Bx?ab?uCaJ4`_Z^HPjjB#jx7*( z7Kc$Yhq3%<_%yfM@M&V_annwYjZd=}J2@6UO&{yP-hTao(LI-Q4Bo|<)~l;z?I!mJ>RIc#pbLXdBkRH(M^^RhG-E+>KjU1b2k>dEd{%5gmFR>!!}ZYr96cv8 zKicPjUDiCb|HRPGNUwXqFLyRK7J*rF2)l^oC$YW@;OWm~ZN&LOJ@mU1T%{@xcr~%~ z^QC;^5`?Z8n;VXuJODE{6Tac#`y{|u7yZn5zn%fg> z^X>`kJ1!-UOZqvg^dpugIO~l%$ifdtXV6VH76PiB6|XGYwYrsh<;?P zpW>H$z+kiVu8}SK5uJY`=gq9?yKitdN&7K3mCXmQrWmZ64lrwE4Z9K^U~2SY)DX`| z%zyd=oDIwy!TLvJy~2zkvCE+B{mNc!nct%)S>G3vXWpgkY4rN@HTH$VBaM2Syv%r! zI9@iKn!Dg-Fqag=hdA`>1fNE9zZOjX*&3h5ji1=wABd~$Hg$1w=rLK3$-eCawNH(j zKW+yLNZyS6Pgovy-XeEo&GzAx&|UB+MycCPY}$bl{_ZCB0WN41_RWv&*f;J7_KgeN zkxCo(4eus(yU4%u41dcm@GmRDzma%Jg@N;9I|hzRVc?X2_fkST-DShT5qb*)XBDxE z76#5&oRwc2xaOrn2~LH96LJg;=3e0UHP9v-Kb`Q>N$df)ZJkgc{JsL)<)Fm8CHG?B z2;T}YaDqi+g4JN)fDbcG@MtQ?8%#(HR)c{f*fc@SV?OJNAQ(9Nz?tcl!QH$XtQwI) zaB!}pu7bfM)U_cNs5<-~4D5W6u6%<YUd)>qf+-K>Lb`if-Pj>(;NUZ=bFIP;0ifY zdy-7doYe_w5p1DfQ!l|5dPeKyef0VP{GnBtIm8d!p!mwzJt)DI8pZb)HlCqrp|9XctVm|*`>Zh@0uyM3OKs{}z(!m8X$Ipyr z@%_97T`gxnjk31jt*-6F;X)r!v|s{7XxUf30&VWeUHR)7_f@)Ud{p}Lq_Y;AQ4hXa z?A#{)4Hxpcem^c09-{V?8?8O%&sj^|DtWSX9j5j2mAd>MzU7?%G?MONJXwD{W1km4 zDR@Dad_wmdk#7?6nSP{g72pKf(}R-Ec~B$i>&M|k!%w03fDvTTT@Ihyr5>CCt;YwW z(!mC@(xse$q;uA@9>0vz1DHVe^y?(uLph|c$6ph+$^j3^q7&U;0bK*m&06rB$Kk3IcD(v76987H8-wHd~Bv+>t7A~P|zo9y-_y6-?=-lqJJA6k1_ zBlQt`4wLS38Ouj=b{y zHU7W;G_51Bhb-AehaO~aFbNI&pczATJL~6WYJmck;kFm^cU8jVDqd$-S1O$ z;0^Uf*9@J(eckmX%Ez}_@P#ZoDK|xQ242tlAL(>(h3x4GlFqt&eVI-NPspBrxP)}> z=&rv&r-LJ8Pyd&sv-WNzUCv>!5m{%gE&@ZyqO%mq`IxvI!qFW;MXYGy6m~>zT^+i_>T`Ozq^|$DHfDvTTiJn@iM=R^-M$(D#oc7pg ze@hK-Swn|O-^IAuHc*`bt*!w3$4++*bPepicd=Gh z;{=#L_Vg>cE8({my z(g{w_PUv!3XYXSCRJsJyr!Trsp=)Oiy=%1Q2bND?bRR(1z}|ZoW2x$sVEFV!_om2) z|4!y{IR}#UwfXk?Jm#~x%xiOqo#)=v3iIC7QO2Cr-t^Pr{F%k@jErB5NmVg(v2Dy+ z?e!KaeF0Fa;pGQwuHvP9_rDL;yCfzgl82ZB=-+-o(am&NqK-pWm*;m?S z5_v7#6kWTM@I`3b^p@Wm@Umv;lOEfQ)wM_WIkld{HpAnMCfPT;!Tl^mm$$QSaI?=7 z{-e;P`#8R1ldtjJH444*UG94hfzN|6b+`Jn;*A}4#H3qgtGZx^+hfwh*tv`cDnE88 z??l+^6=kRNgPTb2>%2g4zvQ0fdd7G)?|}^_WB=h|#!$v|SyQY3g9Ttggg z2LH4w4=gV=|5Hvo^ZA&5`u|{e+2y!T(wWaaq!)t+FeX*|Fv0Dz=&U(XFuTTl$Q;Dn zK4ze%1FtKNj=MeC(B*PwK8AZ_N*-{!EIN_v7SRuLzlZdC*7ak+y<#riSOi9wMQ4>O z_*}{GlQ~}Q)y3j+sWY+vfXnsMrMK3oK4HV=vdR&^q;(fdaJk++gEbDe!FnwUk4x^} z{UYW*?FqsY?-cPDJ)(KF{FqIm!_G7?Y=I!Q!&y5&fL3?L++WTl>Tm zIQIR%U%eyeFaNbIMd1p#Y}i|B&6seRxy}K9%aYM*o1Y=;+HI^cv5ED`mznhjcgv!a zy7W-jR%~H?icSY_%btEn(y@g`(i^db^=X&+1ZzvJt-#u{Xst3=P@Z4L4)CfJ4H#Ro zG>=nm06GJk5x=Y89jLfxaJBHAuRa8>)+_i|7ia#1cxvkm&b;d(XL}a5)>!PW9a~sD zS?H|uH;b+pPiutOC*y?&n`yG)Xo=5!{ppu+_Rx!orDO(6D^}*SkhfOGj1uT=7+Q)R z46RuD+0g&L+DEe3#~is+pUR!f{;V4ZuzpNq9XSxc$e<>B>mUY5CzHREz_ll0N_E7HaPP`6yuft6*^y$+unpsO9#m48#7 zv8fK+8^Op@IshZfqO)wlKnJ)y#8?&Z99I_=25_ZDb>8mxkT2yZO)(n~$%-o5l=IrDCXK9_xP zCA2HSX&N){Z-FrT)$ghYbFOR4ha5#VJgi?McRBmt2f@Nxe8$It@2bfJ;b4i) zw}VZ!_>8|pJIK4!8AEHszp8;&_QLh>PMr4%^aH&+@oQRjR=Tv|UR^1&;BNvWJ>!im zWBN++dFI_4s2py*;Fl<*Nvy80VPMsWek3+Bc)d^f zj(PJ_tsfKnD@rCC{?!>G6MJB#pSM4w4$nn=44d?14 z(GPoKrJpzd0e$p2mEvu~xEiDNa|QZYJVfi~%?ARm4D|EngMmgqm44oQDBu}t>1QeW zi9gp;^MVcQ>Lk$*V`F7-sc&Th`dN9a&$J&C>no}bHk_-X56}-|;Dh8@9K6lAkBL)pg#FR2?5D)%t@NSsuyWtcShJV4tv$W|R{YH7+3#xC{W+mx>TOSt zq)o~V%|2S%A9H!n<0$#g9~GJ!lNMEGV036=OnRiu{~a9~bF{Rp@A(T&i!Kwoa@O5-muoukzwC4t_SXRE zJFLI!ex~II>&v1O`8SIE;!7jFco1_Y*i_0s!TGZ2thrDyzD|7~`B+QULkFhyv^p@W zRDHqtvgn2H1Mrpcqwadm4{R?hJ;IN6^uSN{VfFA~EjYdICQT2fS6}oarF_N?!4bF% z9IqfaULwl_8plh`%L>EG(X`fSVtC=7n8vxd!tlyc7+#+|(9QYIyroOcH9PM(eb3ua zyPmhlKW4FJ&s6j99_Hi!nM?aIRtPSal(&pA#>u%`=aaJ)ewX;nR%-mN<=}S-rrsrB z)W~|>@}-421CCv5Kay<4q8|H=t}(1dtYVRMXgi_%nbrD}j{pHXei1)22-;y^HbEx{A1Ha||tr=_HCf}WJ%i8bg zv2;i6f5g!Vp4dg~GZWcoDmw&!%(5539((A|thu?TAZu>H8he28UB`&5J_Od78SlZ} zh!wqU`8xH9v?V;Mr7h_@vX*vJP9b;C_c=S(9BV`ROxB zPTpOHzKZ{i2cJdt12D$=%J(Dk_?d?j`^`4%1-6()XVp(|#THBb=wFGcnhs2{zUVH2 zu9be1IMCu}owE#;xLWhxIsDFnu9kT@k@tXv^Skl>_h(78*ZV%w|yzVvPH&mHmg;}&Bn}rj$n=%{dQ+1!U2NWF` zVSUm413H`RB<1~R>bxti9<2{)yIw6ckpWH*B|#{c$SDmY~CDIBuB7y4T+NU~v(RhU?0 zzXf+p%C~UHI+prd#(_;{m2dh_1d9w@6@^7MvUw9&WD+|kWr)6~*|5mIy%`*^3jU6m zcw`b2B{U*$_)^}71efA9+V?T+;Ct3(OZB?!OWGEH5s*?nfPP%qfPv= z4vjzN0$WO@fj_3wz#o&e6u~AF{4w--g!Rcj#>ljrx} zXcOVvv2KX>+ixMjI{GgrAiM%hCl3L|( zmx33TngAx*XJGTpb6({WY_cGJ>)tX4+R7Z{#ZDp^W#4|o{b;b*Ec;UR>2Knb?J81Z z&5Q!tc3!G6y^VTQa)+mwGB_8S29{lSV&K-7th}<;QTf3n`!RZuF;wRMwY+J$ce1}* z+U^ms$cDgA^18_D>gkzQ!f#~y$fDT_&VN;s@xoT-Gq2++UkBeip!WtUU-Bj!(_O^d z2xi%9%uxr}pZp4(vyan^P-?AI%31G5!CsR#JV3h}%x`_+u2sG~SKf|MIItGx8nLLWv%p*%TYXD`g}Y|O zJ)7fIFXr0W@Miy-UyNPYvDRe05rw~G`eLKnL*lu9SbA(FeVnev-hYgXP^`Ex{maMqOkHheXaU(P#IRa+b#KQm^%*E^4$ZTk8~ zfUj2h_UUqtIIXU1o}5u{6g)MvkM*u+c2lR3?@}jXgX%B1!`H}JpM7o?`%rWEA6;q= zw~ybavnIWOIGCHkZTnAUI4Q&LDIbb)|GG0W*i;MoQ9pOv|+P}p8tXU$(r{* zu-PJf!DdS$*81=jjAwS=UJT!7;46MnkLGJ%?;Zg&RQSrhv`hFK>F55W_!7Zc%R=_7 z-wX=X(Pb0-&GGzd*XmCfkRge^j7wT#b)yr?qGef zn0(wDnz0}K)#b>2NwCoetO&Sr<(?Ve!Cq@4K3(o8d601>>0U=>aLoO0`2>gU@SXwQ zL(GpmpSQ+z{K3i}+KUxeN*N9KL+exEmy{Vyyn9OkzqI#IHFGDv@cKL(RvhsSR$D7u zye~a8Q}W{^AR$ueBFj8N*lB5tdyJ_iMWZYfb6r!NJ%ic!6NECEnj=+T{)A zy9ZWTmR-L04)(>~s~-Hl#H-#290GfzwEov>(T8JtU$5Li&y$4B#T{+H0^SKU4XOED7zFp ztCw+twpgpN0+r0@Jz|^aJ`dZB_%+UsUq?K`-p|~N9UH&bZnM@tYzJ%aP)vM~*t5j{ z2V?#p=>u1#gigoC?ffEr;E^GrLeds($yn1@3_+gw>%fu|+mwC&SU$(`Cw5=%XTISa zemXP?OYZ-8=kOfKe~deaxw%GY^YunX&m4&zcCg+`VBO_p-v>LLZ$b z?QNY84sBk?p5p#YV~zOGR6UBpAq5l9qFGKIx(b=U@d0p_*CKC^DY{1J@}lVuKqqIB zVcunGqR2QSS73i&$I*5-_$y*uyZl1{7jJ)OOHA-*W;^`VJ{Z3`C zjoxI>vX#B1>Nls(ifWIDZzh*qg4#zMKHd$hZA z?$$NzsT;1}#y!|UgNwS2gu;(|s{J4KII}*q$GfxcUTyg;I!gT^uqH#E9}2r2V$Yw9 z4jr%BMaIUA<{j+qx6m$M4l~yH@9)Z|eyb}yyahAFA9}1o;xDu z*5C2o5OkNUOAN6ORd%lO*Ny?V(jTg`<$s-gQ>D%BReM%t>q?j3&WbBb^e$y3^Z7P^ zpHNo$ny&o$lmQqx?QPD_h2T{i>^~Ksi+KMprc7yzR(}?J)aS3Ts}MG{xUh#c+>2V>sey>$0s*6 zUeEvLr-eN3y0S+4S$K}oE&p@PP6>77^=qn6UuFLPFRrFn$8oPBeRb*~B}}gST?0q#3_P$yoEg z%5v}#zCl+vJenA4Oc?gAYxuBW_E={~V*k<2H2xPHG1lQ5ihgGDDQ8GCKL;O5|c;8B<=A~j}gk^?+eDV z@3;^2?b-92EW6smK3>k-W_}LNl$2k4jPkpB%P*Dkmz%Lg$k4KhI@LeyDkw%)&!tJ; zQ<&=&zjJ!|ZFkOZiqxgX5vfao*k7%xOG`cY-7Be+ycr_8O&spO<#v2ia{mHk>zL#3_Bafm>ojB9eUu@(9)^r>V-JeQdx>$jC3i2ZzIS*Q zV_HpDe%EFeCffWrwSD=!W*msHaUq& z)i&1yuO4_xAGBl)!;d?O>aCbY`o^pDg~lnX%3kJk26SrgoC97tHa&wo^GdJVGJ55= z+2T&tkurA3T4F18sJ-55yO{-ocQ0k32VW!ptxBIL+N~x@ z*~W9CpKDCs#nm$lDrqy(ilXhxW}6@968G-y`Sb#fhrjE}-3HZF(d2=VH8j3HxzN9r1}aF=p*O&mSsz zHiL6(<^=e+FZ8$YuFgmM`Tqv~pZ4V~e|g{GdiR-x{=oy>Tl-+_9N&+IyMpgK`UgKi z_ImvM1ED|Y9MC+a>Y9QOZIMpjI+xFPN$37zXi$QKHX?iQvC{~X7F&QX+iHSc9i;&+L|5h{d#2Xc;LtrZ5d+eI78xZZ?~3SNiw zefFEa9Pa#ZFKU78`@-k>TU>$T28TIINK7=&72VaR*D0Gmf=mzX92RUp$e}^tg-P!%JoeX)q@a?L_mw@xdZe26+|Pa8r_sg1boEJnZdiZdiWpjTwn{Us;(|rg}&ZfGC}E$`?8_Uj+D;X=(cTXevNCEalP2n z?jduVEZuxF(ckT7t``|n;df=#l7fj#t}H0UhWcmq58gf0U+}9DnZXZe(;n*o6_^np zR81=2F6!6PmQse?nUwbP@*eeGr+dP?Mc$zJXIBkR2~MI;2k<9U&G81gU;5!{cnw-| zO~FQdFB>UuP{P1qh`D^wlIsd`62PW&lpKB!c?KcR*P}Co4aUG=x{=O$x_|Scs%r}p zjKU9{-_9v0G@R9=PFj&v&P*xG2)9+gk*e4*i}o?Ux;HgVuS?tP+zK}tTcLFE2$ zmBaC&m(MS#!vW{O<}*3hp1?TuS9BDHUlVPRLK`&G243{h#2nvD8_0L^rF+;XhmozR z(o-P&>F{aBV6jutapln3{L!h*zwmIwqX`~j$99``K>ICk?TGz+!y7uQuocS|_OLG8 z^}*bx-P&%fcA7*vZA)*isZ27a^T1Yyl;0?E_f`1?vew#5z5|@?cfxlcXZ;79X%p_I zjss^;3iiViDJFEbLVFF$E{ z_Mqd9!8r*D)q|EV&prsBQHe&#IAVmRaQ|A`T=Yr*KDXotLv$KiODz6A`g027h3uu| z9{eTr#ijgxoSYbXi@tZmzXkUwvGcWE+OJP}9gJ}u*iH)c=D0G9JGqX~3Dix-bytEh zeLsD0GktFbvHlY8&v=7vr8a*>UAAGTIma8OO{wJzJ%Gp!gtYQAI~SL6QN_;Fw6?~6}m&vHsvzBS*f`I`RZaWm#J{%m4A zDS(&w9@X6Rjx)sB+DE7GX4uRTdd+gMcmA{1MOHku%&XtbWPO#d=hY?V+}FhXV9k5$ zkX^=Lk=N_?`_{-f&YUQ|!zOfY&PRTqeXVyXeg-+?6WeATI(=E8alNdqto6k@e97|m zj;m~ydS71F39@FEbwUfD&gvTr#_*^1ET#T#**o_PVb6TB_@R2|X4yBdO>lS0*=Gf| zafG?^A?D>UZQDqnkuu~vvQCgS`*7Cm;$u^~IypHc>xX`fW#L34y~i-F6Prj(pRd+| zVPaHmPBry@r$oOu_C2eHs@)7h{I|=z%Q^}h^3FIr}Q{L3cab|QrqID(n zO_;IBDeG*5_u!G)+FyN3U9ENaXYey7Dt^8W&H+92g)rld>`@XN{UZCh)$GGt@wZ$1 zyHEL@$=P@bI+nI^(PqQkM*2n6`$n++ZYneef5N&^?XPd;jp;thxAxh)S%0}-#XiQd zc4V#h9cw-67vQ}rktd*Rg8IlBI-FUb9X^A-5$mot`n9s_UD5olx~-#bxnoRSDPGvK zTF=3kxy~o;B6Ek#w}N*pbFj2u*2RNWn+==gzej!#IX^8Vb6qxj`Ae4e3)$C!awq-U zD@K^>z>40slRhBpzn$z~WNkTB>|gxuv|Hs8UxCOo2Aw&X?}S!-nN8@lfpdEqTe2>c z_55(vo?_Qx_XcTKeY`xp!4jQ5Rx=KG{QYs=QZg8uNwA7Ko(#s=9Nv2F=;RSzdt z+0J96@(>d{ zxu+|6+m@VC&{dsD46}V7V=FV!t;&@6oSP`KoVO3Hek%F5N<3;(qA$Ec;VI0B=#aU8 z5%Wjk!2W^3v}ITIFfjId%aAeJvUydvTC<$pH~3pF6a7eBq4Y)ai*234r{qy@Rxw|O zS^MQUvO5>yi&gatyQBJoWvgA(Rqp7*%hy30c}C^>)cmlcXIkSe*yMJ(8-i~|jZ<08 z*I+At&hw=oG|~?g?;BGhysa^K2Yd};3q?l7_x4<~4^T!9-&LJlsZseN{gQDiPudT^ zy!4F-k9mUvBGa&QQ$zAOWOl#a{;`(-+4f0h{}^iak9G1Uwdp5{?H|=rfBc_PhUy=3 zu6}#Dxo>u?%~p5@k-j1^CRxodqJv!g@?QFjI=7#9PCzh$x>*NEOkW#&U^iX^j8S92`Pf%m_Fl_MSy{VzY=Vf?>XEHo@uIROg-Zn6? z-#&jC{ouzFxn(@I#$hRAJ9AnCbCm4Ecmplu!msA~VOe(*_qL)iTbc9QS=->73*nm! z{jfCpF7M$hW^=Cpmcrw^|Bo4Kqz?78xs+ji$h=8Cs;EaZ^(dhp#Z?|zC$k4}bw0v+ zVHq+AZNmrLU4q7dW)bv*UdvchBfk0z|AKeceWhO8QksgWca&>ru%*WBWnZv zyo<8^-J@7L*QX5)8rxY9O-o&4Vg^Rz^UYcX#>SlF4?FS(Uv=b~A;ctP;0GRxzj7F5 zWKu?!@|l0DW1t%Cci4VybZ1ibcCWE*)X4OZ;iGJ^dBz9vJMN@!znzYsc}lnGcQl5D zcHLl|2W2!bXUrHU_I^@#zM7lyqth=|SA++}(Tx;)I}y4YX5-_-=fOIRd%)do4&w!5 zCU-hm-#XxzfNrHfjHkZs{f$jI8HU1Qa*c7Qm@U^B!`FVi(XIO5nL|Qf+T@Y(-`bPE z&G+Z1Pwqr58-7WZXJd3883(OAG6p_Io?5S&$9){Oito{NqTsAd4vmz3qT81k#qVzMGa{mfl>sYNH{L?P%?a`Bskn}^VP4b|7 zp7y96quS$O#gTYEuZ#S7y3WrHHS3HI&E9TO-b>K=N9*!l9IEDaRUh`1v9ueYZO_#_ zUmofsPA}so-cfeCjf~CwR%6<=(Y7INC}&2${K=}a11;n~UgzJD5>WJAN2lKbefe>k zes@Yh$yJvbC)b_Gl{-?`;UnrGKDZqvftPoe1Tx+K$X4Zi8=WsQ*3$pmC?_{tmvbN` zuzR$pROPuSE2=Cj&#TZkWNG?;r35Za{lqMzwQu^}l<^FCj7**9J6jpK!}}~_9rU$B zHT_}gj;QFw-`-#nYujS3W?~r46Is zmj>E~6Jv1=XU998q2i@E=gFE&-hp(b8)f0@MDOO5)WGKE?0~d?hnjy})uX|1sXxJ3 z&C5$aw5J(AFm4atk%!M`)a%*uE~nCC!3f@(#m{Q%!?J!{S3v)8n=-grb4x6|$7m>P zT%Odj@UekDtGr^c3>!-(1j4Mn8~6IOZIA9#U$R!3h`wr*yYpRl-l=@3U5pF&IrX?u zoEMc(boM@S7)hoa_5C#6KjP`$fUec4=~6Wvcb@F^S`I&Jth*CgmXIemLFXB$^SH*w z$*=*sb^|)b?)o9D;~AUkxruUk_$q;Xw1wg0h8|#vN0xi@7U&21VHhFgBu||1hpl?29d3i&!nLa6Nyg#$XQ@X1h6~#wn%0Z^wugH(xsQmOB z*B*V2=ZWqkLO%rhhW$4Brh&ftFMHJco37v7p?nCk&%cyE)%Gur4uz4+^~l-21lFC0 zE3&+md2J8$V{DLEZM)trTiB3K|J!TU$+NWJCGmkYQ5Vbiv4S<^K=G%u_Kk|0AkISB zId?uKuKi}#g>(9`7bjLo#v(NaOcj4}%-ED;v@|kiTVvAY?0q6*Qi>jva$?4$^^8e* z@nh02kiB7-DZAQNOLCK2=$5W?2I%tMy}D7WGqQ@p&osCv78lr(S1_YhwPA{nJ8+ zySj+qjR#5st{-~qHJ>_9pw4^8kMwq=l?J5VE@+cqTbr$XS+;Q@QeWMVSu-S^JK1{^7+9i)jo%cXpqE)wMTcOp-3-FxL3;q7?(l4yAf^BuEm%y;1I<3%KYLvQ|vC4XCQetCCX z#zfJh_#Y0XaE5{2*6r?D(8NBk@&xWpu=ZeW@Pm>iVyfdGF}!RobAWf%ox~8igNck~)*fQtVD=BMYOinym`pI5B8;NLI8zm?cu=J4NrujcS=6)#28N(znT% z%owZko-m>BysTY6B(MJ!bRuh(e(W6?yDoP6QiVq{_NDT-_nrTB@|L%l`m9f-+&Q*9 zYbN$t<_qL${e#Xk(4pR@UVA6;OZaAFJ+0cmm^(za{wX@UUq@ zMAKSrA$oa0S%f->--*K?<>(&p>YJYWmO)?sq^|Eov+XZ*=Igf4G~52$zVpu^ zZ*7y7d9u~^I?tLZeU>>x9ah{>{H+O0jZ>!yYMj2@$-=n&WLd|iKl&7>bF+&EY&>6OpoKa2D;YYYr3rW2V{9z*e=}u*iI?@P9zlU#R7%jiZc(XPoI^{8)LZ z!?%?_BlC|(Z1=pR8YLHalCkAnF8PVOQ)Ay3sb)J~7EgDP$bT<%GCu80^|^QpN$Swn zU)Nz{e4bMBG!SQ}c<)K|U4|?xFPyD>w)2tAo3!$Q4&n~vu7zuO&S0;zcChqq+4ncz zbEjHA7r%O^!iQAzX2nqNPJG1nIw)Im<%hn+c7KWAU>de#gv>Hu0neo)bZ1#*wO5@L zcYy1%5}I+hdrFnh);4Y^KDGJkjNs}Qu)klKv0ftkd}LYbbO$S$g*-8r>om%*oDl_`sd7%Y{yBHerVH{{LhBkz5^dCwwm>s@BvFlQUAKSNdc z{ugrQd6;v?E%>hmE5ozT`6;~j=Om{ZrHZ`J1gPl?i(*w&ZRsNbEs zT{<=0;&{5xp=%)KPPN}xnyxjT?nCIx@6dGLXu2^oY*YrJ_?!I`s$DnIp)|D@3)UJ*9n(;Bj zAXVdiLCDe#fVz%6InnRa*ZeenH~sl}%n_-lMV0qHHN~mU-R;9@=M{(9f;N zMc--S&G!lL@o|UOBlg62sLt#rf>U36M_Emt`@stQU~~Di)FTlKImCa#I|y!dt5ENLHN?9@J7XeGAJ zvXgK;?v8a&jGU<@_1?_QkexytZ=qPX8d5GdiC& z|38k+rfnks<>vZH^p!bD%XU)qm??e!Im)VCWGicmrmc&oeM0JAZmY+1`X4x4QijAQ zG{G<8AKVq4-;!_7^Ry3dqepDUr^?$_v6{2)7<~sRui-Kq?JUlQ2KaqpYkl26F)q(9 z$YWe;%QM^X368(Ao3D+Rl-<-N#pSz}eEy4V`OeaEeG*UmQ)t^SA3Dq#Xk53B*wZk3sg=EY+*VW<&BM~; zZ=a`soM)5wV#6o6L#m$CS(RTKub&xGewnTOdDx=02KhFgeggEh=h(`bZ}^^JepKa% z?D_1K1{mpT%s#bWRDCU3mmq8Tk8C`CtmWGlO)vJCCi0zSqg|wF$GD<+3#}8{hEf~t zPc>~#JZ;y>v~P)xwu*YQ{_>!ErK|Vi^K_D@q1cw^Dl?D7b3TG^MCBVpyg^JG|C4;} zr`z&fr{#Jzp7tYXYv0AZMCJGX?*t_^((ZMal5YH zg6KTbMh{5+PJ`C6_dDOj{Xu z8@@_wj93#*Uj+Tnp>Oxuc!$)Oia%sP6mOB|&3@c*=03;O*s#CAjMMP!yQfTI%;a1` z^ydC8b>e@o@LS&x+?MstfRNn%6-+?89#y^X8xXSiUIgD--a(f!M9wJ=@di=7lelg_ z>m&T`^sRGuZi(h0>ls-iuR%u*Q_Z}UOMNvS)-_@u-Vo;rtaAm=N8&V;o!*)jC5Py3 zDteH2(Iey6pAFy2^Jc4iTXF`&d4icYi+gM~TadhC$lE&EmiI%(0+|PH^UJ*pb58iP zU+$-y{p*c*9z&#jV(lWf@i*Gd+S9!n9aA7>_JdyD#E8iIso|6R$EtoCF?ezdAm-|-a}ldW?~!2`e>P(F^}`@xNXh9NO$BrbyjE7Cm(M)tQUyB~v#R-Ie`` zM>cxnkze4qV0FnkmckzUHSfWJ#}yxEHw@gIi-<+LkeIX!h)p}67_|k&*PRFcQrT6+ zuBkhwV-to3UA))O$eUg+F#dBK!>YNjxZtS?scT-~F8AgH*Vo(G z?+Z`!ZuQXSH%L3$`@B~#A9B>UGu_88FWZO?B6olLarbwNGwSXy@prvgFE_ia_`B7k za%Y5cCo|93;_sZCGwbH2LYtLPe{>6Sxx zs@PqJrX&8YBh3>$<;VW+!>Pt5Wq+S=u3_UXwmO+S?R#_{;^$7^St9W*+lnsZY{Et> zeOqF^Zrn)w?2gD1IDL<%|7+j$mC(2EB9`->JIXG0vUZ{lDfB(!0|N!YWeR)CJ?fKe z7i-MIQO0!>Z?Dg89PAHV$vN@>N6Lh?jsZ(Xv9~IH<$ND+;Y}|^zB4H^$B|mS2pqSy z#3zj6a|wQ^5@$-VG|%trkH7MvQSWA#IQ+i7jGZZ*Qw7Jrlbtg5o$L~IKAlp%oPC$l z$wQnG*y<@d*-IPwzmPgEmbeVxZ12%s2GEvyue+r@I?KtHTYoPv3{}hI06Q& z@KNQwG+Dj%Vowiq|Fd(d&d-}SyU9O42VF2$mJs83DRGVJJ28$I^1T@R(S`K!W6^}c zH&f+p;(WxWFKf&{@C@sgziGQT-Ux`!py&Ng&Nup?-vNE@Up4(`=+UX7ukD-uW8wdi zrXOdcZ||G_9pV3BSAGZf=E2^YCK!RH-`W5;uM!y}C z7#q>=Ox_Dr-_dVA-?{S}n6GTsUHu4U6n{Q6WH|gkH0&^r$k@7hhtY*CZmihE*@{h9 zVvA=?rvJR7>wSsgoBxONeJk1L$Xea+=B%DNxUU*{o|iKKulw`tFP-kvWImOQr{+iT zleY3n|83L!PUh_LSoxod&+nD|Z|VFq6n2BH{J-n+|8AC_TM$?NaLNCM&VR~($iFH+ zzgzOZuJfN}1O&HLbkUAp?QNy%zj%6RJZ;mk!+)fK*g&P@M9y4dbbR1M#@Ef7=W;by zZ>*?^r`rWx?VmK=FEw3zJl$u|`8m^8MmYFq`to55p{KSs9JHKbI z>13_%qRgg;&j@+%pC0O1$i3tT_rUbS?tl^CuFuIG)vQI%mpD*#^sM%|ToygoO21r$UUHxA)wjyW+W52QSCxI{Y`9+X zAEG|;8U8BAyYm}-oi-iQmfMQnGw%hx#oYJs)3hJw+2|5Xt@$m@oO#SAc16x4{{BNh ziOt_uaV`ET8xN7AP})b%vdN=lVEw0PKZ&QE25oJljdrM}oraGphObxZC+FQ3-{G3} zzIfW>p>2IkXczmG49BsjXP=|S7Uo{p*sa+s$8Tkhm$6C5AY`$3x0PwlBbPl*|6XS+ zH{A$$e)9|b3$9eoJI|Bz&asSjN`JEdkKyq+bH71f@XHyuCA(M4Zs2>e(To1RnuPw= z+GrCh<$94ajQeb5%r<;n(8$=kg}(Eo z(W1snaA56YLlHWY{n;Mw4xdN4hMaFxuf`oYzK+j{{|OjV8s$uyb=+>^^VFF2SI#MI zGFxrEeFORBtXuN$CjYyVf8dnHr7`&za30x5{tqSpJ!T&SuZefZ;j=f#*Z8lTQ20`# zTlKxq8S}mv)Dm{)PZ0T%vB8~;c@^bx{c&Sa+o|gO@fG;`f35X$DdRz4W=(jsCpD9C zRE>YT7e?;b$~!bN=1TdEJ90zeYjnAPq1?aga;aCOTz?Vpf2~CKFZx2 zU9Q~2Z$uXMw4o;%W2+f|pGr;%uIfHJuz!ocWixA$l+z=WE8&J!lc|2H`L zr|zeXSqn2JrgSc1Z`8^EQ}JJf8UI{O{y$+f8BUm=p@P#9eAz!ubg4l|GIMm`=2!H-;okifBvuPk9~^_tl`c2 z^Z!ovlugL)z3Lnl|Egq%=RVT73tqi)%F67ji0tm_eee+31p`rJpTEHfOc2>`8+e_Q zJ&9dMZA)#ke+wpy=!tpK_1Lfw=dH|fs=sZkSdY)tX6rIWy>$Zpn=|Z4|GuAb$MQ{` zgU>XE{$=R>0c}SzpZ#8)8}s%u{>d2HXP|Ar*~a@3aJ-l^tHyKwP2R%CSig7~%SG1V znGsn>9L)yi7KYwA0#?p#t`Tl@q1u#rv=E)FV;^VN$yRjY;y$q0lp4>UGD5GASCut@ zvPR*ze>ATudE)A^MTCY-@bA{JbaO`--8x0ow9wZM2{2aaH_eF|?J? z8gkZc&1?Te@2pouzJx{cW|!%6JKn|q{iZh>3pPI2i zqAOX?sQz&l*g~HU3khbd@&#U!CYYAnvNorMhV$vm8yGs$dAxV$U!uoI!R58)Qa58{ zIp^Hc)>Tf4&CMw|(s`VB=ku|7vLbnoAWy5DVUwqlm?AaC&GM@|E=M{?dUyUNHt+CA z-u>ilm$PfDJXr@}`<0ZP!}nr2e?jNovwGu zS}(n(+n_6+_HAg}FR{_SscA35mmb6SRcLE3w$X0o{1AUwy`1$Sql-5$!;Eq2`)mB4 z?@Gp(;(0Z}E0^=`h>V;QDcX$q{`WAnt>@clKQw$pslO|iIdN}Jz+6Yf+w^Mk84Juk zy4Z2!$IH}P#f9wWZs%PiwRZTHd@C$Wez0;F?^UcA_tHLmlKgV6y=8WQIX}QSdYu!@ z9aUZ>ZEDLWwtpk#sdMd}e%1+;_pgP4pVOAA{eF+n^%He(1#E22d}4I_Q}Q;*dA8MN zjEkN}{J!G9_e@uEmPhBYud^-_`#aN?w@IBnvfem)p0ml5TWZU*0l)AR-ZPk~)^!_; zJkevhy*xj8{qt>kpVj5nA3e`h@-&=b%kzTH(|+_kulbE;9WM5e5=&$gg zDwui27G zK;qLnp5VR=bC&dvRMtS1GJjoTv=qD9PqMDdd@OZDCv*PK*gJlan_nHSz~}syCn#%8 z!ARkah3=g0oIpA@rPiJk9W6o=p6qDZxsEssn>{L<2|Lw#GY30vm9uQ@vP0IJ@KAkp zgFlc=Sz*?KUl=asJ5u{YXbSJ291u*v#=XmY9bgLK^S{mj2d{zko+>*}mpz`cSM*W# zjftvkgRKKtKYcN?$Nn7lFVu9C-?g~dusIG#Ktc_FPBcC1ArI1((FW69f!2&29>#w=lktzAV zmV5Ob=*!DH4%}JomU6w_3u$NS=Jwz6NUE_w@;9CC4VG;Bb=f<#BX?PX9bh$r_ZH}Q z-e{5ewt_XE(!mI=gB(7eXAO=ncUJVFi^L?Qi$69qK5)L>fiA+Ov~4n&Nxs6s{0!`g z_FwtUiZYkO9TcpTFyq5sXxvFD!SI$uV)^)dq91-+fA`8m+{+r}eK33>bd%-WiL{wU zcQN%357aUZ;ghpJA4XeRm5cR~|6~A`frNO_TTDT-z7c z+(?_r`kFQ`>!hwvCa2=DFAQ)WX@cxII-xIhqz2{xXVM<;(H_-RSJqVFUzIYTQRgm_ zw-K6m=zG#;?y3njqQ4P=i8Z3TOg?2SmbM39p?WXtM6v5O_9Lnt`)Qq}I$CJ|7V&Ya z{_(8%d%P3aTcz$C(udy0B!_-LXYIMVZ^6ImEpPCymY|YD-h^pOVC_B2xPCi!DtjEc z_ow>is^rkk&t$A=OP~zK1vh1MFs5Xo6RY2^gwIy$lT+obabc%IC+~Aed+<(Mi>!Z@ zoQx$C7(?bi#+n#kyJh1|$?l-{{%ZnzW!&+)M(ibzN+Z9i4@2pr^m7w`vjaO3JCD_4 z2l^esxM=FqTcdPFyPhDjl1FR{na<#12HqcQa0O&<6X+>rLt(+)F!@@Yy+;KF#Mo z+O{%qLd}Kz9ZGPe&g63yZMqM>`{2Ret#lu@BzwB2*gs1Dk{GE@_H3db$zP8yniwA~ zc{`z*NZU)fGe7mzbWmnKpYTl=zLJmjMP9e)@Z4~P(R~Z+h#o#=Jh$xQcKY|eYJc}# z=yg6i?nHmpd{%KcG02!%$k~wG>68CY+>kP28SUH3Z^0bwk1b!#p5qzjhOd|#4hF8O z>7UR)bpv(V>`3ce!5Adx#%jIV#C*%#S2Iabbhqjo!S&0_Rz19; zY(H`xKpw$}1ZS`8S!{MrKX-6SLQ1fZzEeJESZI-v8od0R>7fdve{g-(H8n|wKd{zF zs@{n$jN|*8MpEi#BeA-I-*1pU&q}Ay{mh=uZ!q}MPf9QXUm=TNPTr1xc{1{!qvrcT z%=ZJE*D+SfTCq{~VxKJ&{LtyrUpNz!Gx?1be~sT0|F4Jj4QJbt^_zpZr^B?R;KvXFITJoZasC^yeKkB-KE`Q(-% zQP}NvjBl`{H;$_Ggo5MY37*S#_M?L7Qo$Hj#yeYnM_2x%gM0C>A990*g$^v*KPFoE z;?ZSB%b(CJxH3aIqd!T@e!Ir4X-F6l`qyYv?&lwNbpNn4n$L^Kek_dg*N9~wbucq@ zX^i|UkbgAt3(mUQbF3Z{vSYi;TK;z0vo?YD)Y$HdZWmYxHf;CHp|fI11an|Kc|`Z& zRM!8Tk6U_J8qq^M4tT8mvG40_kr)tHZs<#}=S427Jc(UNr98n=S9|ff*rdXzAF8l- zg!UXsPd4jNnP&Llb+F>h6BRG(O`6wjJooUn)pzKsHBskDPQx9bYL7QIxr<;>7ItJReVsw5BwrUcdg)M_sX~&86&oht`?9dSNu_uXPnOC z!G~tcQ$(KMLDw$+CZU_4=r&gDi>8zM-wj=Z_?m?7L`~O7e3^}((5-+@-K!8fVl$9+ zW5r0~s$%E@A|E~|#czhDTNO`tjmTG_=}ysfN8;&zD)NcnNyxXO*e8x9KWd|pZK1H zUzw)6FP_dT@?EOwF3@x*a7R5x&p9HW_?(0v@d>Iu!tr!NMZSwP-A^=K?QwDZQbj)T zI|;wbHQkuwpFRt7tM7|PDcbBHy7EkwkkxzV1!tYm_ z?o{UO82$Z5g_G@LMMG&C_%bXu2cubUzpQ#P1~h z9@cb?|;? zT|`V`Og+AVu6&xN`$*FX4nquG2Xwh|&qDZpY{>`yLJZv((6vv|bf0Ou48aEOojYaT z`kTmilBW9~O;;aJ_pZo?4@#B0L(_d5PxqS0ccP}-t?4RR`^1#{2a!+iPe?uXYPy5* zbQ?sziJIqNdWnl4$>y%$e+g~&Hr)1_#-f@yL5 zek}5h(sXH>Zhbu6c_Lq~rW>s3vcNuwX}9?zUyi05rs?YA=?Xv;_0S~ zd?Pj8@tUq-MpU`72A(MLjWFrl#~FhwM>~9i=_2RZN|y#PfibckPoCD{n)m1=Q|D{q z=`x_J&C+z^G+iYzelh$~pz~*Hx(S+Y3~_cbbOv;CuR_)RL{0ZzJl%I=kS{~ioovZR z99;~*ebCho(R4GCe3heT`&z)!lGrqG>B^QpkPui_;sC4JlPbQhRN_PB9{SR84t1v4 zg{@_sJu`F!tU}of*w@c82H4+3siQ1)uR_{QzcnM}xnA=H<$ii6eh2;$H(N+M0=|pl8B7m-e}mJzs{$Eg_AGW8FNK%9 zM=bl7;_6ci>iZcVu66R(E^%%B<^FsTvG#6aFOf^}&E%}84}SN;r`2Whsl0xu&&u}* zJbI9EB6=)9zC-Bm(A9%OmGbtbZ=O1@A+OcDM`CjTn(dd^Mq zd62abS>-<5Ds=fGzGP*;Z$!%|yhLZM_!`tcZAp^4dz6bzoL78QbA3|Chiu;=+sD~M zLO9ELb2LUCV$LiqdG`H-2f$B!FKTa$?p#arUy}C?DwoXj$y;$dkw@YjRXP||_@1`e z?^J*Z%-gree#`yJC*96@;{93t*{tfMS8XMa2-|SdN zTM~yVZ)W{28$8Ov$OXF-txG(#@!Qi#yL;3_d-U9wGx2I=%*g5Q7_Vw~k&!+Y} z{TphNjSZD4_-Bv9xBtVOzsMUVLmD&IlqVbA<-AGjO2lWJ044-9mE7GB{e6s276@4x5#Wg_osR61M}JXI44lrAYl zbXkEeMUT=)mm#a@wH(~qAC{huPUfMTx!gyY!~4yBznLfZPrgN0TV$SSJ2@mWN?(;e zCB6=k>wYcQ-=KM6@YGPHwtLkdu?5SIWcKl)&G!Cy7kQ;WTJ8OR^^w@y6W_=->rJ^Z zzLBugIbkht9|VlG+1dC=rH^B${~v8{9$$5F{r|tSa+9#{t0ZjZ;;uk)5jBLx04|8Q zYe8c*K&w?-C89OJ1#d*#yb%?b3JBVS);8_Og|xPfOZ~*IskT=8X+MoDnn0~k6%rQn zeZJ;B?|a`j3;p!>c>MmzBlq5O=FFLyGiPSboH?iQ-32{e=2GLKojqOVW#iCGdl9EH zJ-my#xjQfh%FSTz(wPHaFz(6&En7~e^gi+QkKCLV-c{PMjQ0lcU*P-pw|kg#vC&TC z2y=DUjE?x;yH)zK{~pR1`x|w{&UPY-&$%dV*uFgMxq-Qm^uFl-G8bx|Q%>xZKODRw zg)vWM9;7AB1ID(hbR2tC+Mdc>y`3>>>g}}^d9B+j8{TJOGxomyOnANwXig8MjAFwZ zTURErXe2N1;R6%sPmTXI;3+n|!5d@uDP_FF?SOX)c*@O6JoJd{CrgOc#@*3G`LgRS zS^aU}sZQiVKpGOrTvwU}4;aaWPWy4jsfPA6x?zthj3 z;=}Lf|2B6FY3UOWF<-B&a@-NjRmC`cpD~DR>gE2G|4(i0?H*nf+&2uyPE0;$@OH6o zXYyaV=*}^WB{|8Pu@lCY78J&~1Bs;$SvP!?6OrG+;YD^`A0WMypkc;)XzzHO#2cZL z+vd@!qDh;k)6YV@;k{VVe~|M#e&bCq5eaZW8YGlY08zW{?WHFw#aaZvGwcK zn{}ZEH+ep)?Og}eqY*7`{ zX#3>D{#qR1RsCh!N*;B;&%(5|{($9KZH3oALHEgLwT8+*oxyv>OxB4WtQR44NESLI z8y%9)7^ZFioHasYsJzTcvO>%w>ELTdhSrq~46PfUQs`bq{bnC?J8K@YJ2a=C+xAY6 z@X_Bgt&*9y&L?j~3}>)I~O3?C)N;jY&^mPzPSmoiP7t17cP z4ZA7*!yQ=LJL%!0r&0Fd4rMi$Hup2W4ytpd%4-grI(txOTKMQ#%9VCeZYFuHEw6V_ zE?0Bf)SF$`_D)LpDDh-9m%aO!gxne3)!aWm7H{Txdn1*#drEf+S8^Z%NWgJtV$TO^BKF@yfvN08lP(3nU4RrY%uf+;iy15M#AjXPQglH5DJSee)u7 zkdc<+LK9P~K>jnS#E#(2YdV-y2lNV%ga>i z+^lsM{ws-1m!E~6;ZA5Iv=5cq{Yij^>5m&n8d=rdSHl*{>kI?Wru>DekxS{*7_>OM zm^OrnU2&+C+^V~f-vF&RKN}MK42GZFtN=gv;unzSkRzS;_8_Ni8v2bSbgAs24&9m_ z=5Bqx-ddSh#jBI)n|`huVcP0I*W3k)&)3dgm;ZiBM7hZFEw4kU=TK=Td32bY0Uk|z zn}&PsZU6Ry2WfAv=Ct2m2N?5R^CC+aryY*-qGAYau~yuNu?O099wxsB>k#^~xr_Om!rV~)*<&k?KZk?! z!nEPuUmcak=iW#nedQngLf_W4A2SU{S7?j{4#ji7Vo{zc<+FxoL>g7x5Zn` zeMAR(Z;8Kr@XkW6`ZJ%9QB(InI^+Hv++5kv#N%K~vn)4>ruKF(fY&73m}m}nBBPI` z-Sz?FVdxU`Jjg>TcktEVFCJ&<_IJt+-e;Zho>u*1FjpII}1I>HEb7U_QP4=11oOKQE3(2_Zhuc-Z zY-Z4ujjNh{rhLDMeeUVz&{#KxyY@q@BZkI3+;;@(6OHSkQ6W2-PlJ7D5{>;HjSqbq zQQwEbdov&!^P#a=b~B&G><%=3GtThwC!fY7?ll5@NIuVlhOw2Yf95(7or4=}OpML{ za$Yg~M?050L;Mf&>aMhwc{7v|{ zWi$P+bw+$#Zr`_E!2Lxx_&0!WVvvBZcs{DPUUnqb%H?*gB*&8-j|pZye3*WyQ2XkU zP2O`iP;d3sPDHkhhTBJ7no53?At|ZLKJF+XtNv=@3G@${IQm)h^tLfZJfBdC@|4tH-OQV}X8h$s_^>h;lWZjoTL*5~+#g#B z@fc()sqXEx@iyGx@YdzPR%>&@*7){t>Ky?Oto{A5q13+nzr&TMyA9gwgqwQClTXCP zdO1!!yNV}QL7U35(RNLtk86748@j~HiE(I*^9P-~gfBWVAaOW9V|g2mWCbUtA}ut4LDPOmMV)V)0YWfStj zxz5Pb0w;1mx?gmfI8$`A?HsMac2lym-vZ^*L zh35+P)n&v~d5QjRsPf{Pw$P8fr{j#nUdq#1wWZf`r)Ff_^S@I0t5sfWF!&9u8Cnnj z?yViQr9(YCM9^k*5%`WhBR6ai;ty58DRTUy9nScm$js{X*4xPkSf zE4x$v*G65Mm6AFyA6xeK*t_9#e_IXzb7@0;+M;*02iN~>*3TT`t6YFg;@`Vt8FOH6 zR?+&Ub`H#84&W!ezJz_wc`5mOn|f>-u5#@&(l}f7V4V)JPG_-S&t~7A!`Z55jlZ8( zE@bxNRdKskfzvjOy||IfZH&pM-g=#(wm(VR&tvcDuh;4HJ#c^DtG+*S0&Rc7;?d{Y zo7k};Cq!rbPr!E`xA^qE#%hzlesAcEzf1HV1OHR#G6wOrOL2fY@bVtGxsQ6ZMK>S* zVvL2^&wM=@-`AyzJ2zqz^LB&fiS<0(Cx2bRcZ%8`8{)jsOn%pJAM&vi*Jbcf=Y;;=gppPh*#ri*i zSagQhd}J)pHlNo6Pt(3{TN-1W$U)g8Ri1Z7I*00Rqy>KVV&lFBpVX%&IIi-@x1mQO zD^7BkEW5i9JIkbl%X)HO!dW0tho?&tc8@~%tzT#B(i<*YkK+0+x;Wp&95cTWLnuVu zrp-H&`4-JPpi@x^9gW{jj){?L%5k1c#Sht(JDvOB053OD#>9S>>@8()!F!aEYX-Zf z+y|V2i0d7D8G8IT<)g{vRqtiue~qp87S0T;8Q!=g9caJ!A20szvphX&_hHSQ@kW4G@lD&#C-AX-G-20tPO*E;P|S`-k-3LHelvF59jjGw*#F(;ayLzZm?#fWP=o z+m@HGt10Gap6%O>$@rrGJB`oRE&fluJ=`Yh*u-bm8zZ*SUzpP+zh;b>FNV*)+@%NV z6`fb0vsr$LlI@>+vTbmylW}hV_ebCs-Dc~2&FVeM938+rm0jN6ujC`@qn*vGyze^W zmJv(C=rQiXk6cq+Q}#pV8*5>-zn?R55I)F*joq&@jo91rQ`B5NRun1m=f^*|7w^FP zL-1o_Ka2N?Ig!PTq2WE9JN^#1tH52n%(nAQ#v&IUi3hTTcKPuUjozwCF6-;9*S|yg zCARIq^5&QB`!v6vdOI+`a?WCYWrszZJFi4s#2LKf4e+!R`>bqZ&qH_fO_uJ8Da*|~ z`;|A(UT3d`?(WRvMtlwew0s_)fL76smeyX6$NEp(Js$rR;Bmktc+3imb`pEpD$HKr&saS-oD7{f?gQRF1zc~tgieHiLYVy`ku zd+Z`}OdWE1yO2a%zs&kGdm$oVte8 z5%UIdS^7iptE=fI!d9w~2*>9>6Ro4epM9X=~AvGrb*6WNRGa#1~S(}L9HrrtgC zB4vMW_jJt0WIZh%vlZSe@K-#@oq*}{XPAHf`Q73ECs3#K%wym?@>^6ppR?=6{A4`Q zeF!}BMpomv9X-VO=D%b4AjVlox+}pinrG?$z{7utcchz`&zqPp@8~n_D=R=}p) z%>ORxj#9Q_x^35&av~GbtX!XbZkPDW!FP%*{tfUrfH#lG%U*buyg2U6S5mfxPRpN` z+WXFw{2U{zTbx%UpC#(|tC@@N749gX4PDoFt@xW}>$}P3ui(GNQTnD^dh?0(-$i>% z#J~I&C4WnEBD3M$$oZP0^2#YWZa%S}%y)E!+QweBZXbH0dUv}Q*QW&kq%P=whzy(o z?c4%O``jFFU+>_5)D=GW9pk|_K8oU{7`>u(aTqz8uuquJgQiFFm9GhX!(5&>m{>_h zj&^iIlR45??USFPXwJ4gd=1~Gu6O`H9sG(jEdE^drRF~UQX;!Ge3&)2HMuV}Kc5}J z{FGm!=I1TsAtC+aHJh|0^}s`9s!3y0j$Dx)|1 zW7EBR1K9;kKioERdF5&coNf*0i5;gZNz1hqEAjNmgR3pfws@ z=hG@m?KB3H#DAVgOLoE%=4ib9TFRdvD8I3D`Ee>Q8!Nn<@-vDQpXIh@@~6ZeKsV&D zA4HDmhsk93;ZF3N|`?6U% z%lwWqP4Z7vnOkh#Q$ppYKG)NurtJLmPWAnQvc~Re=2c&_7dPb|VjNhPHr?4bvKPMf zrghWp-scivF@A4WToCpap$jwIIhPdg$VwsBfm^&hHak>aLVS>B?&(Y)M|&jI>(8Ui zT;8odLH&I!@9X;}`OZE5XkX*!V0@C^?SX%Tz4Ht7z3kw=@0@)3&Q<^6KO;M#`Xhf? zf${f>t)CzFox6^<2!4&)M1Q@+p2_sjd!75|F7=Q6Y}7xtFY?>kC!2QNn9-?Sew>+G zpJe^leZ0ox?!KOGZ|EMs6#RPK#S8zNeIw}bHf%DHIp|bV7jMynvZ6lp>sm)j@E6NoDEze+|Bv0{PZNFF4Tb-J#Xr6CnEL#jF8Z>)g0C18vb&P=qisot zH?q^Q|9bY=3$W|W!@f5cJKr4aeI?jq&#%G$XYS*te`nx^%Dd-BDruYet%QfzxB5n| zmR)v6_clWLUmU`p@gV*e@@JGisVw+D5L;o{#`E2*m4jW~%U{F2eC$ERqED%*T-?Kr zRb}wmsTs=JAicShv#tC=n^Va%`qBLh24a(nVIP#vdE9YiS8WTScgpxK{AS-S#ht6? z7dF`Q$I)Hlv{3wx+8u^ol)v&>_+gNDOn0pJ@!!M=f_@ox$g-t(7fOeyKCOABta+*v zn{pd(`Xk)uPs(EN&i_lo+#`%3=ecxq%d(uX$#pCnPk;|2@Ar5-+@|_<_wqV%yJ(y4 z$cMp0$;CsT#Qx_-sdI+OjitAzgUO3EWc!XoM&_n`8$7L}Td@0v=wFpTkMi2%MfxWC zq@fSG0{?=nQ;G_+GMq?g$=!u>pr1|tt+|V`pA3a}Jh_xU4dGAVkn1WntNxrZ(^pN) zo4#^d?(~Xj&YJ1Zr#@8t{MhMhr;VAuhTo(7zM9`>@cT@De}LaB`8~$(_fKoXe?|Of zVb5#H#;!?U?9CxA3u8I=q?{+`o$;l@b?C2o^xb`|L7_o0#ddb-zXN&rMQA@@e6)#? zD<6b87iT?LFvxK~BX&h|58^=J8*wdp!q6gtgz7MrxJd(&Pyg_mo;?vWrkbN!(Zne_BjFBF#4u7%lHJu9!D?9pAOl~UzAdA z^55m)Ym+*3-^x}KyLEwl(GH=nG*4PiBL>ZfJ&f;i2pQOn-ObRe4w*Z+A3r^CgY)iV z3!KYdzP&4*;Q4DFUmu+Flx8Zwp zFyPaiH2;ai@{DYL__m+qr`?nU>Fk*<@mPvd-(^p@~ z?nF=aq4CgEUXDXOu#;bkUdZ-hiJ9-x6TeE2lo3l@e$#jN_G~jbWjO)I8(>mKpp?nmpc031A~kn zr;f|1W3k?mbW;aynuNd4+wy~xT$K^WHjDd&8tOfKYj6Bl*y9H1oBl7%a`*Hh=T4uB z1ulJL?!=*g7iF8*I+4S-_9BO6ayc{ZRej^-R#VRCV9GUP&y?;ZFKcA(U}eZ%qrg`o5G&Wru9{<>Fn954u@nA{&V(7em+0`8cJ# zP&^a$X0L;A@0ND{}X6^c16iZ^Jv5FSMyx5Jal|<} z!D)MzJVLK)-+IA-cpW!@=lg2>H=j%CuiVSp3Z7-HG`O`1+~NT4&3wL6V}2>Tfm?Hm zv)|8qU_O)gppd)=&yKNlLIdM5Ho@Y5C4oPNx_$}H;`!7CJj5CP znKK<%d6E479t+Oz>Fc74>B}Eq=J9?snZ^syD7pyvOBOzVP@E^#@qNKBqz>TQesY(B>-+}&F1xwk|gRTUFU zTk*xNXa6&wa@)wa^_un{UrWe^#&SITto_o13r6E3wYdbI$#Z4!TD!&@1m5EF!F$`b zEt-f;tG0bZ{WqJo0gti2P@b7+xFAC-TWjOJ~>YCGr%o`H^>+oiL z#cH6lEp=Y`FusS$v1a4~aGU3Op1|qYuGv26tQb<(`~fo4^+j!{Na>n|AfK z@Wy0#f5E4EbgH?(sm`8P&i@yyw_jZz>gBvB{)jJFr@Z7L#cbm&7~(A0yvQNO`rPto z=Pp&8JQKt1wNssi`6oO3owixWnjUtJv5xfLxrp^G&+`j2@>@u3kJaQzvbre~9+#l2 zicV>r@`EgApvIIr^+HGaeG9n^e@<*B?%}H$`)+Zr8tN_(4r7Rp>YC20L)|&x%w(_8 zu^ux|Qii)zSR<;Dh35V3UDL=L<`$|R`ipaPC!7}aaCq2w_cViZxopD+WS^*J95{z{ z!Z+>v!*F*j_(7g@zG`9q8u)d?-4UY4*s#~{M8nki(0I2$I64c3p1n9y%~>@_PrAU+ zT9W6|hXboMe#D|z489LefWN)ve2fCMJIjB#StTmSLVjY&7Wf*vaSq67Mo6N zD=>9}I|rV_oC&uhoAPITew?KPKSl=1^5S$Pqqk|T8gI*k6O%1p_10MY{4q)RUj~2i zIExPsa%s*FA@X_D;g@g?G~YvBhQ2(;9lzqP9X?<3r!oDxXn446tj#xqO~{u;|E=*a z2SGm%`uL^P(1!NZtbN*_Z{^Nh@kh;=?{7DAr1?|+2m0{UfysTCHwZfhwxDYHKr#Q* zu@889>-xabDGLW9f(7ksfY3xsMIbUz2f$ zgX4_wa56ae7@V&q@_DU-j=$#KPyK6Yd&MwI6I+MD4~&udK=Zslycdw~5ptJt zo#koAgm}9<@-z(^MSU$#;QKs<9_YZ+;1exRLpd*Z&r?41>U#xvf~L=t_8G{|q-ypU zE$}yP3+J%O_RZwR6XQIpolirjBB!ljE4XG%z}?%q6}dN8BIda#Z4pfq_s z*fWrQhSNG_VhBBkE;4moS|vFGtDSiB2lP7oq*n=`}vD zS**2tS!*Za1G_hE;>5itl7oo84jZ4?@I=P4u7>_oPR15|F>6?duuV>?L3f>mUfg?r zQQZYuzaIWTP0onzZO-J6v9)jK``j0EMoi@UUcP_p-s}gB<&HzNR|a z2benHKdH`>Mu)xnh9>IUm6+o@>3>sSgIC{aw!W|X^+7K-m^~Kl$f8d*t}R1MjNN^! z@c*iz?R%L^i|C(JzMH+#F|TbcKb%?fW%`aW>^G72?>+H^@DlhJKg6qDmig+Y;k#cC z@Zz_9+6nGQCl=N9l>F`WWJz{awQmme=Bi(jpSdYRcz=+!?0Vwfw+u0HkoVmn9s+%% z@i6uP}>zf%&XIMh_4ZMtvz?D{Ry2LhMCKhyyW;_UZR5`dDYt z<`YMT)z88B=bD?075?y}4Y);VlF*KaN zd;P37O(c%2cn`x%%lFc2Xw$x}yV@5%*Fo zX{LTdtL6mvYxZ~TCF8$eHp*Sv)$ebOa&P4K^sdjOwV}sPbgu!<-e5uggZC%p4t|_7 zbnc%#9hr`=Uo~fP-S3xyo0$>Qd9Jp&XMTMB^Y<6u(0%(mUb!KZOFw4T^V(A4m-%}= zjnz9E-?v)}+Omm{jUG-7cazm5+tb?UC6p4>*S zo}rXY&)`mef3!fX#aD{0@bJp_i$CPdAT=qQ5 zZT^kz4{}A{>2PUiedXSGG20W9AEw5(hp5wEf&i)A> zLUh*xnvJA!qVw$bPr7_`yVX#}W2B zj7y0A%|F=X*{?SI$VqM;^R-(#b53@j^Xbq&&RJcZ!D_?5JlXxO_E)NpKIs;3&VEnfO~+lMcl*15kgEvkElK6L85J{$sWdf4JGJiRkM z5*=C}!Slr3T z4r?TLE4PhhJu>n=>CAW;$@lyHnG4v+9?js)Pd)*E&m3Q3p>6Z5H z1g_dp4ek2xTbx-Ir)W}~o^Up){_oko2WQ+IWB`8;!|R4*+zslJ?Uvq!mfpC@N%Yo% zlUrkPF0nW-B;%|C$EgnJnagN5=XX6w7CDmC8EMjwU>+&%Q)TI`JS8*+H3Rsy|y zC>P}(M0-Nx|MRJ9m;J?lv_)=ibuGE;%r`N?rgI5 zwPJf2OI|~r*AM+X#TCua&-9=D2YagXxYx-eHj9~S_{JI83q|7X(cE~iAM{d@ca<=e z6i;XmcWXZ(k3kb}(G(|0Wrs4Cbl<$%+LJ=GQTx^w{8DvBCr42BG-R?JKHoarqo4#k zbQ$H!dN{Hpy|9G#=$xLHGUNH&QR~jh&6@dqZr-|c#*F84xSl^gr%Zo7w-?`g6+fTb zZ{0a#2dz6NZy4Y4b;?cQa|SqB>&^+knriaiY|(ok%|&btW^BvONg9*B^mlzZV;z_$TEmzG3p|FPBHUM9pH=$2kOZ6-?$Alet?^79oGiy$V+k8`*oaRZO`9N zl=Jr?&moT|O8)f@jW!PfH~kFD)9HyhBVD?NdQ8qn_04396HUgs2b`jtJz61f-bbDy zebQZHmp{ZEKYKzW2N7(>$WaY+<2K{n30gjXj(k@1{!DeAW9zI+K6@{s&dsH^uaK{C z)3K|0x~#FZXTlDoHY`*d*c0}nuS7Eh%@F%^?nY|EZkjucKD&{!+9U4foSdmWhwz}u ze0{+`Keu5!+~@c2EW=lAX+?5f5$aORd^3jNjGGhZtG4vBWZY9NUp~zc_;J2grn{eF zXY7(MXjT(P$L9+l*|uN$d|hbyie@CqENPR~rDd#n$Adxaf)a2wF2qx(3wt!962%3p>38hV+~Gkc9_qP#!e zQTd{<*3{63H_#tRd-XFi-D~}}T~`#D-N)%?=uGPo=fkISyXahM+jzZgV`BnOvhWA^ zZPFVw$<~)G&bUyVmT(%tsh@9gmROwS$vD3NXESfn%$XZnev^#*0=PxI zLldt2LR08VQ~zy#{aH!%SF8RDZ2jM`IIkq*Y!VKAroM^m+~0=W^~j89hoCL{_)1$> z2s-+Hy)g;_Rh$($KyaIkoe`-Z9pOf0XTVCL3tx z)c7p?A?@d%Ww{zpW4FYHG~6FcXqdhtk9tsdE>Zn6X}k7ioU3AbC!qGgZ%lhLjoV72 z+iHu`bK+%v8PL7j{>SK>V%vXfY&{DTxEkY&sb}+a4<`gpoOY$9U7f)9X-jXu5ACM& zEbWIZ?P)#Ze28|T#zt}S#Wy%H-a;6@U5mdVfnN;%$>0|$UcTD)NWEw0=-DeyQ}zF{ z2R@4U3g3y0D`vjV5c&UDzu+hAi5mF-3jgJ|#obu#p(lE|BZ?{(%v{!1*m`rn@UF25 z9jmy1KCMz{RYY0~qASXmx8B@0Z2CNfy~)^y;hDY2SD2P4XXf1gUS`j~QT( zPRcryY`-Eu+Dn-}rYw6YuaEy^%f69Z_8rRRo@vX1lkeldZ}DGA_&cEJNqT^`ZDD=pK8bS1B=s~jPnCuE6drLN%vgNPdcpm|5^(%C>SjEv66Jjv&y#%T zTN;$hr;l|W41KcR+_%d=)W}%xf$q2!%a6iO0z1{xhGUHKQ_)!gyo z*X@nXDb_Ypo9yd#qU1-u&gv_0n%P5z4y-qJ0$*RMZ;6k+K{4~qeKEM>u#+?}kBodw zOZaR_KKe^O^fpa2!IK|bKDhMjf)IRZ?KOM%a|Xxxy_es2;R_%8bbXS&Uhg>Wr0$9# z(BqCHe%2tDxzC^K{Jai1<*v=NK6J z(W48tphs2iUGk`J*8I1>Kf~|h3I57M+{0~SEl)cqaXvh!2lp3xi>7w^^L=^3|4i-t zG4(mUnakkhgENl#9AaFz%DzYppCG^A1$T2#OOLs1#`BE?y`9i|8k~w8+i%c{so$hm z(c!+`b2MxCYI0WkwB;XKz!}yFwN6od=iPz*RyBNtGA6pjQm8otm}#%{h}~<(*ZN-$ z<=QLnapUp6^-wZ-G}S zr=Jgh&C-+nE1%z5XesvBvzbK^Q)g5@UtTP+XTW(0-)GhD=kdE6{E8ItiPvOklc&$e zzroU;Alm%hD%$i}$GnWYd0Vp|SktlgDQ$X#w^}if)9I%S`YV%u>p}m8@PE##@#AR* z<8|Q&T@{blHQH%o&p9dTw{^LHuR$CbczBn3l;;5ft) zi2={Q5Il4;yzVb0_g)ZhD|q#s&7$ZX11INR5dNg##0`mZZ))J=+6%%T7Mye18rB{I zC&!)-UqxFq&PFfNZU@}O#1n~5w7BHf^Kpy8tq}Y&;KY13w8*LF!__a#1z!mKObaKM zUJ(8@!8xZzr&u^S^n&m*!509ZYT@M03&Ix*&KWLxu7#5`F9^R2=sCs$n%-Y7U{xae97Cr4cn-XJ*V zx99^Fe&g6Ac)j49*P`FD@Wy2L4#B4ZUvJ^$q6^Zm6`V6%^ic~Z2VD?eEjV#QqEA>j zx#xoL&4TOP_OykQb1n$qD0m_8XDpmtb3u5O;GEy0&slhp?^o#Q#hBnzfN!^Oa?1tF zR|w7-F8TutC#PHxzFct5Y0)2Bc-$AmqyII*&jS9Eg_A=rSiVef&T7%0SU9=kg7C$H z6GtTaa|-GcDe zY~bU7|I5OOQx}Bq7o783^q_^4!z~DJ7JLlw!xm2NwjjJoaL#GbFD#s#Z9({Zg69HH zov!t%v6NhGL3pF!qk(5yI62ya@CLz80G@5(jfVLytjpulPw6}AvkBZXnzYQ z7h4csD>!Gi=wJ&c2U`$cEjZ`2=x_@so>>sSS@2=NPq1)ut_9&61t*?JlsGkB`=`X= z+SgPG&bdu-Y@%akMMe`t?e(F~LW4_=wIHoE;405qbiyo;7P-}e@OuU4>=vD9;p9{c z!oMN-K;WlZIJwk<@UIHa87_LJg_A=q2>-I+{ee&M>-X(fA7)p-vh{Bw?2#h;hd)Up6Vk%FWO1m z@fkYgMXL^+H7m^CKbe;HQ^B+5_e7I(rs9VvH`=eU!#)wnjb`YQ8*SFIdkT--;l;!c z_Ct`rjiQxBn*%w~E`T@1O^DupnKw=YeLIrZz5(=8J+T3TeET`j)K{_{zDyq}2U-l@ zgDi5ORbm^+xMWtOmHbV+SNnHWgSJbCd>?zoP5C{!r3-T-Z3Lr zP(ZIPE#CSDdF2LBB(XZZe?K?ggX zd8?{BS<%ydto-}q?^H+Q@7f`Lh!-nh4rh%L&K&1+_L$8XWEN+&nKhhA%sK7M2M2E8 z{6C3vabqZ@z*Sre&4c)Fj}*8(gdHf^kN>u$&{Zrc$$R{_@ewy$zaiuC-+mjxmdbC) z^&9lFspFBU#_rORmOinCd#GmabvVP;`e)eNzcp|}6EVsc6QlgsoSm=%FPO>y)^d&X$wsY#4sLS98~^Hz+T1MthN5XY?oU)qA?ko&ARv^m4CF8@et!c2VJx zQZJX0e?FGoMfyN*s2W_(g~)#NVd15O*Mh%mtmc>3K0i0w&%tX#wr4I|4xSU+5(gJwrLo zQo&23f6|lQBF}V+>dZKj*DRI!cvN!H%h(b0dzJE;dGmGPcEL4H8e`4ZB^o2_THD5$ zwR^wvnEAMpi59`JX>FTe;p8t1!aoo^8$Cw(GVX?COO@Z-wuu&>TxCK0KY`yAg5IeX zPL8r5{I`NjF9Me>blaH*uS)sJd_3u^*TK^p{%uo?t)x+T$$a=K`2MNjvdc`h@YZDb ze+iC`jMsCnt%p2hK{_?yEk-uB6&FRGL8g>{%!kKqpS-y$V9Xuvv}MZ@P2UD4KkpjK zg&*(Zwsg=RH$0TkAHHrpwqhn@JOf!^{D~!DVyCa}-X@bYKd`?jU)d7w2+=PK?t+)k zuge~~8{RkZ{x{_y=jge$ z|0C;Qv$uvO{MFuz79A;aQDHERq`#SnRY0SKR&++pgeO9S>8H$mV$=c9^H6nz5 z$U;wKvlisARyy00#^*Gr?LWz3_LKiGhuIP2c!iZ?=`^DkZ4R>_%*yS4Ki2vL)*x7nw1{wN{em}H=t++~X2HUwY8X38q}SPk1q7V(s=dt=rp6l{Ic?|h*3tq8PofDbVB48(|(PZ;0qYvOOXG%2%k&H zU$&7Pf*Cp9T~FJhZ1NNP_n6*3A350{%whIWCj7JBhA0zapM5Q~l`}E@!s1BVq6}gi z`8s9LcGItZ{xaT;Jx$xuzf%^_hqHP+lhp^N{`+VvdbDkk7oR2APE&s%XW3U(KkILZ zG9jC*EJUud67+e9IA@iwO<6bo{pk_qENikf*Fn?Lr5akejTGv3Qx>WV*NI{|hDLCev>r=rk~% z>Z^<|Plu+Lqpee013Ajhgs&#{VIvqTa~44+bQYQMul9xM&_BYw(Yh;m^J$&u=Jn)0 zYDyb{KAp#0o6DS=!`v%j4xZ2cY&QEdFMdu?=EI`JTQIZc|7n<6^A$HSh-2DsbC?Bx z-@}@~xnqB5{BW}-1Y!P~VBn7oPg)bgtXKPD(h=S7r~SK|U<{k769;B6bIZGv-Cs(+vmjnEcoio?XSn5qJZC;!d&H@NV>i=Xyz-mn zF`m>}ZraLw<2WvHSWW|1G2W=pgOl4V2tQHqwALxP_@9hJ4ukn7bPsFB<>S%ju2yGD z)mhCwXh%FF7fW*e`_TBB{&&{oY-rp4?*3A8rTO)1OnRt(Y-rW&hx4gl`(D!y@}vdv zj%6V8*vho;HE{By1>v6yj;*X3_%`;uWxO{tc;rU&@zi(wz>~j&?s2QZlP))MYxAM~ z7yN2ZY|4@oEm-!il&!~JX3BySFKhFlZByCVwrte5wR1M1-rtHpY-Oe_IPtPJ|Jfrd zJJ*&a2by26`snABb+DstyU3@V41Y;*Y-iQLmE&v+Z`FC1HmO=`1v;i0dCylom&@%M zw8OWv4~*y0e3N>neT(*CBinYh#Ur=bMU45T5Wa-iZmMZBJ`V@B=re85=jqs&s^L5T zNPE{ZF?qbZLbe0eRzK%i33WC5vi0H^cS#5M9N>x>U}WmvvF@_t!Pks)OM#c+n-i=< zdDXmeo#1{6c=ZDK9p)VPfHkz5elVYV@tL;j^J3Z&EdN%JhYR!FxgB^&f=@otEe5`g zI!vA9{PM@oKTD~9cRxh`vPPAq4WAdfZPcaYn5bK~y@)qwLqZ%9~bAF0_m#<%NF!G@qYf?zGM6teNZ| z%^Mh-FYQ(AEJpUpm*$s|4C-thw4u0^l?}z%CzLNOU_((JpJ3UpY$z)!ub8{?iP2i6 z&rK%p+3{@#_+KqJc)YQwJJJ0+G1Qd{&Cipb&pHr7XMKtc-ogIPAhk{@fPK0hQ zbN7wjmOt|F1>s`^=gjv8`xL_$`S*hG;lMqgn=WiRGrEs;9rUl^Tvr=EcN4=%`S9ZV zHFDyqzZ~i*dKvpAePnbJx$rzbyfa8^8t|7mo6^tnt+D;MUperCc>fe0{rFwp>Za3= zzJHebGrq^UEbP8cpT&J}$cq=G@i%BR{g}GwGx_1f>x%o+c|5%XUIlNI9;B{KoEJVI zc9VQ^%(_56JfEh&F38vVOApeYwa^AndG89pQ`FWvka*BTyzd3q6}4S4D3KR0Jc`)P zd{+#pHv9$Qxjdgd35w@z`iVSvemy^gpWNr6P5)HW_UIUR2iMPiXZRxbosaMH6@jP4 z-@^v~QEE*-ITXq`lj@$UW3Iab#>vF*wYl!zqK-A(eI2rK#eKROPd{IqZ15@YwYVCe zLX#h)DB|b1lb`M(ej^{1i3=OO$&NjF?t-++RsK2J1-wM96 z@GckqXTSqqZSR<#Acvi7kfv|QVK-~pU4=&%d3o&oI#ky0laKiPN-Fz;hJ$e0BS~hM7F@Ex^>rv8>MT zoXr}&=47)*{0+Qr=kG(OxbKJ#?GLfm2l-^PSrg2rSg<52N1 z;~+Wwklcs5Uwp>)>&67G`u)$~=B}q-fg767Sv>MY`TZ}NzXh+Uit*WQ;pB(%;iB_P z!M_b1;HuZq`hmsWk-!zLpNPM2F?aUPi^%t-fw^g9g1mk~nzi5+Jp@hRus^nbF#Agb zeiFsddk#G3LFoB%_7h~pr%5iqAk8Pi<=$WlhKBBSY1ZlP*VNC@!4}l@SUi5ZyY6`7 z34D=g@HV#vzNQj;N4Wvzi&MrNGwmfmV34=3!<+I?#=t27C;FQ0KXL>5cKE37 zvBzsezcbwPs6Ut|khV+;t@h4T>~|yi=#Ch^8?vd@laDzlb7AUpJx#7Zznrh9fByjT_f5)DuG#7y<@YmshunVA z6?ZK+a~m6;XePZ)2-x)e{C+=$-sTln2SHOhNIF?QI;=-Y?*%i~Nm2dVhnSWad%cc6O_SKAznKA`Zf&Ta?aoVWM7T-M>fYGH`Em+*IgOCLL? z+kiigKi(gHH!ZwC{d)_#guHmdkMR~k@qtVkatZo;$IFax>Sj@<=_`y0WsKZXcXUc} z4#Ad_W`--%Du-WT@&^v_cp!gZM|x+f{-xAEmHLUXr8k$JEF^q({JKw6z1ViqCj+DC zpx_*d@4ehJ-5b?!^i_zMN1L3`vgz2g#H-11n86$)ZrDow=JQN^BmK68Gkgp_44&T6 z@Y@Ia?OglYAn!ND(2Nz^--da=Re%@dCq7?OB8DF$zfGNEc$hWm@w41(;5k@6zJ69t zc2DmBi_?xwaW4ecu^rdTX49b^vg4RO=|{X9VjD$ilj&#jwRIem4@Vc({iYKAcOBzG zI}ILr+B)HlD5`r6yozi6y%+B-85dIzeHERp`v>x~F|NwRF^t$rh8FqRI?>`T=!ekK zd*A3>TPJzhy25)Fydu_(H+h#C?6Y{kw2;%byFPooz;)DT@MgxDctslL6k^H7sMq{P zY$E-p__8K9Ci9}e=8%kD#2U`LmONDw1BiCz#ODh+Bs=nZw|Hf)KMAkh&h_xw?#skG zDl0&5EFi82y0=UE*ec`$9-LbZZP9Vp2m)R6sesTv=%%@*(f;-JLwW~Gj=R<7G*ZiMRw@lAt^(0l&es- zx9FGVMHGw4)J0y#j^)NvPVarAH_Rg+qs1d1V@JFZ!lQ4d>HV(s!Fa0=6swcE%vcix zN@KlJzfrIGjkjz1?N!Yq>M+0Y_DsKhz}oEbn{IN7MsMHT?j_xiWn<{AbKUX4jT|kta@3ix#$s|mcI2xOz9dHn zu&;Mnw|kCz=JD#jrT$*LR^g=*Pdi#hck%P1&!fT&UMq_tIIakMciY= zy6F;j+f?@;FrB+!JsCN`r&2zeZi!E=C7DLEpwG z7wYaz@xJ4}Pn{(vq6h8{>>tRj=+jgm{b+2L^z%_dpax4b%ejq&L?|xpR_U9`Wj#E5hH@{Kq1)T<3*=rrk{HjOcCYtJ zD)Ds2u^;>e`1F&}E!f`_4=j2^V}y8?mo6F7bq+=&BjjN8`ILpF&Dv;qBDZ6Zr;zyPPAmqFWVh_w;NMBT#4$)mzXatozE^xd-F?5Cn0n@}@{)A- z55Qy4Spq%j|1HRREW??s{Cs6-B*lE)!aaWFH~Idg_kB8k>6NSazRCOkfxfTh`&RG! z%3*wefbZY+zNd`h`?vW1J@0!3ItIJk!`Nva*4yhK@9{kjy#Ef~Oka@4G1wQs{DOJI zyI%3#O#91TM^0sTASa}ezi5v*zOSP)bBQl;KWhL!nbG@nKPRQ}6(uL-c>FpK zmwI`Q{5o|f8T73lrTX!QlrM z8Sd5&<+TRH;a_#!QfNf)ZuHtq-b$ZWwb#$v*hqWj9~u3o#Uo#3S9ouNr}wL6(pRe* zBh{SMO+S*OvMcluckLXY<+4z3*`5dKN~(dZQrxCQ@+h+d?-V#Z6)Y~ zHA`0%nt66>e|)(7H7xGGx<8oXbL6ovOswpe=)V}{8t_xnok$E@S0(g~E**g`1t$BT z>cj`YmpK4@aPij%Q{JlEu)pS7kel>R2)Ve1O=e!iY4t38h?AISN+ z1{w~&2KkheT>AV}cF6g;`%BZyKl`L-xb;@W0!`2~y1UiO_ql!zIuqThb?Q*I<1XSY z!WNt7^K9xqbm>epS6Z$ps(Xt(pYqF;kHJyqU-QMCb?nMa>DZCz*o&FB7cqY?WFB9@ ze4d9t++6(O(#`$zQSMgn;civ;hVpYZ`;Bu#uKeKio8i&s5Z$tJ;D(Xp5FJSl(OuXn zgJt9TBXXj7!xMzX>E0VM_q!qS9jG^6wrzsB6S;xAVE_I%N}UbVb;5mmS0SC0LmPV1 zmR_`}H*M>KPU?$JO5`3rY;%u(ZvE(!bkh}1+Z*^!tkT^){@?z-<3sxM491{>vq!@T ztgo5%=58^Dyan@)Qf|NUjt1AgCd%nt^=0`4 zC%=38KM;M+A|2_AuKeJ1Z#x&7x{qunKXi=z$I4flzNS7BrcaM93&t=Vw4HHlEG|ss z2EBuR%;g=c%B8hGqsw}SkD`;5ht-z}WTde;kgxPy%2jao2-$uSzemVLY2IQoMvEAuBk1T> z^r`wy`6$iV6P}f;G@t)VkjWNul}48qca+D*V)B*xb^G(?#wdGC-l)cYhdfe7>uCkP z*d66j{xreglwZO4d?2IRw={F-nhlQVRI|rTc}c~LXCuRgq}Cvu(WL+N$@O{Ctpo!A@ZSK4sIcTG2-WDkq0$>&uft^xqQCS;OXbq@ zUXQfikxi`K1iq2GK>pLWz?aO)XYoe-$W<pBKJ2J;-@}HJ4ZkiAI@Kc#dJl~Yz z>&9INZDj7?r=jrSi;Vf%Fl!PBaI(tk61Re$Zebc@vG$r@8}UeOrD}$yAn1B zBWqXY#B<|rr5yVdBWvp8E06Xl(3{Gq&ovK@BJn5o) zST~3}y1n@d_HZ5Euzo6&)AMbDS?Ok(kattK@{U!U8 zM&)Bw|8(?iyqZ2*%oz{g#zvEmHQ?Lmy}>^I`_Q>6f4ujhtGj>q7W9$I555uQ4cuUS zq{zkEnD^Hc-T!X=;xXjEv3Te}n-|@C7w+qt57}20-;HkMy(Dqi>SC$n2k)J~ZYsV* zPY_T3FHfhpmE3=wvE6IkksO(~PCw6gOUB+1(HlD6<%H3X>qB|(J<*nyKT&Vl_pDCH zxnfnDe$35xCs6()WaR#~FU(sy-3vZS4(NtVr|#&j-rKp3W#je-%9T@2?;};NVJ-V* zjeHe$$irg;y`nx7Rma@p}#R>J1fpXv=R3{CaQT zI+hLcdm-f{BP!RhHpSz2#tljQ>TQ(tG&Z62X3yyP>ov+BMmbW4vQP8<^>k+IIPc`= z`0w7lZM{c(J;_rV^D&)ynZf+bWS;h5uNPvkm&!Xy?~P=VJdvv?C{Jf0Pf_+gzD#vo zyChF9tl}P^r}QyvNAHj)OXPy|WvLn6>dO-El^fq3laQsykcB>xY4tn75jpOqbtzvE?%(kCm8z@76 zXit9U!=v2cl5_OPTRR+fa$hR`RYSMpwrajzq)hVTi71_cKnmRVE?n=ANX z6Ys;P5@kL@zF(n?-b|V@6P?Hs<`cOvw^wq%wFH@OPGhcf50Wao4L+OgJDnXDAX8oT z^=}H?&!Jb(J9f!Q^I#_uJJ$YxYVQ-2bI`MXd%L9X6uN&CefGbG{t3`O+ztH>eX~mR z+5h@|(?FRysA zf4AfV+mNY?{?a`3;_G1dJH@FAPd~%WCvW?q1+p9A+eV(exNV3y79Dk~XMdM%==kqa zUcLK2T89&F&J*i!Z65mdl7s)h>(|<1t6y7L6AmIz(y#0fjecbhP#4g#wbHTv`aF`p z%~d=q*71ODtt}1swGRNt;eDO-X~QV&&tr_wBYE-?bXGAYzMhgk{U+nCI8?s=j8R59 zwV6A&B>l-+6x5#?_?aJEmK-x^478Dl+R}jjyh-$VKNkYOc@R2a=b}QtO~pQb2i^rX*~li^iNesT{&CzquX|)gM3`kGPvl-Hw8zh?Z&p% z365_3x!~xs-Po=>!O@8?3C^4E-S`&zaH|WeO3{Ts5M26<`m6EP*)u$W_nOZ~2OT(! zGK#gbhq3T!#&J8$@7|)19@{f9fgA6O4mvLlT!%A#Ctb(fTf)7kbX_s;wwrfW?2wPi zBI!H)`h6ba{f53<4z117TfmL3`#-d67xPPd#NF6GI?+VOm5M*NTGyBg0mwJ)-jHw4g3qatb!m4!UeL z_hNBf=Is-cVlt#~hvwP2kH1$`J@VH#dr{BMT^st@NoN1T`5^vIt9ix14gQ?fo2rWP z5YL0c(p3PjeQLOx+fW5a&iXavYEYR^J?zK*aL*naVB0x7kzU*K4QmK9KT--U%Qj*@%frfeK)~Z z?y>fQyH`0b=b-iCZyLXsu@-Y4s(p9LDT?1zduaP9E^*juhmJkfE$6J_$A{THK>I+i zy^77Wr$@?}nNDs0jJvRd9d0jZ?om`%vigJ_iqW#G)NzyXu~S+6HuX=d#h)=6d@n{+ zGCp~xEdIyfFFs`P(>Sl+oI);#WcsG*e=a}190g-ocPB^pefGs;+gQtd zS@L6E`SnYVocpi=BS*ZQmw!!dDKg~aNq!b1KNZN2-s>Mvc3#DoY1m(u37nGT`v~4poGjqnGxV$9r60&j+c#GS>OXG}f zrPhZvpl;Aw6;V{K?QAZzA~ldLm7Y~QrtzHiVUvh%<{I-}f- z_rTMW@HOV+&_7033y*V%!Mn0E-f-}8W&aT#=MaPU)amvt=ha^fJ%690^H@E6N}i0o zs~kGXf8%=ais{@ldhc9=@$7=K?zgw$QzP46Khoxo{iycNp&wx`|cGkdu z1^jPgPvN&Q2;U+&bK_ZmZqPO#-mzW1!R;yrd;5&;-+~6mF=-C-7IcVb=d8_h&Tt>1 ztp~9;3{G`k3~`oj`9Inhnz1ho#=fBS5Z|S@O&h;*hP(TYgpO4|R5K=Kjkv@3PbB7f zfjJ8#t)H)s(>y=EAC9Rfbf&u}P*1SGbZ>GlbvmpQ*!=3sI1_vQe`Y7%R)SZ51U&JE zEQZ(*8Qi1ExHmxaPH@c{A)3BCR-BbYQ+QtiFPHgl>PG$yy`Gbj@YF9ifY+ooLG)O^ z4Bql&Jnb>B1aC8Q-QaOnHh9gQ@h%d7S}#P8v!h3Ea#FpbH>5X7M;jmm!}^kU`}a ze|L!ULPIfqLHpjCt>2x5T1U(1O-!y*1F z|Ea07cFJ+b=FiAm?tWW8XHZk-vnfe@uA+a2tAGC4UZA@((cYlq48b5uZKp(NA0?^dRuftqf-ixvOhV(w-rF+zq+AudL-VSTcMG=t6hGIhL`3AJtNI` zq`0B-6+4Dt7sz5=&(CWZewh1;GI($PBrV+bKk4Bz&OV{MKM$9G!fgI_F+aUHcb={` z>&F`rcl*~_=bAhoV=JaC=l;UY;-2j9sag9D>K+0=wS4wD2ftfXBVVVd&T`!IY)&fO z+iRRkxyRGG_ipOx?tOi*c@mci`uI>xO{z1v?)~`=*5SX}y%2p|S-fUJ+0t;~|MKo- zv*%kwzrJ|v&*)m-IT&60pV)GTSY506z`jfKrm7Tu>z!x3_)0yQGY)psYT#w~ zw=;$dK4xA&%h(uv^rnwr49s6Ur8B>wamTJ;*R!h9D-*byQ=bctjkKEeu6ZP}ZoGA^ zsuW%6)0AxQ1Fs32sNM5bm7*hq@Lhsq3)Ozj@Puyk;i~6<1XnB`&YA{}PW0iLfA0uR zEFR_UF>rKY5dLeyu`6ujTYn8cY09C; ze7YU`Y9ci1u_xGArNl{1;I5(#+Xcs-AYb7+bkL-xkb zzx&cy^jCT83A#fj2jhY3t*)v=SBciO{8giCnz3z3U&Zh-kdIo%$3=zu?eHhuQU6zh zzSUb*r2)OwhAeKzrXV^Qqox-&k5D=M5gtyI(|DS`27yRuL;FJEYNMO}$LOZD(oLWG_W=VHE3c{; zy|n%w^b-5m68hY{Z9?}fLhs=Jw|zA_sTn<`chb^HL(xg?=&M7(j+j2+{j?ny#cY&r zillkE=~Z-73|+HrX<4DKqx?1o_0x+h*iY`Xe#+;Yy-{s2FVXZI-%t4>^v;Fop9|1K z^Uz0gxrdrlgMKnTbVJge7bM#)tmE>3na&$7$@$*d@}tM!itpQ*d;3_|7p3GZ%ft6z zJ9BLx>$|?|4d`~}*1p-^cljo4XD;oV>wT~Ius!Kr%RbL{rYclE*~G&M`udvoqEqwH zLBZc`oV%*zaT7LU$04S?+)eSu<}W6kM3YClia=5 z$ER3+RbM;X==_K78o1#Z&O|4Ex96-XJ^7p@+OGv@pU>y(DYF?H zsVU>_KZyZ+PAA&i#J|1!DP#X>`2MUj-V@;I-G!m&?Gvj?XP(=MUKMyv_Kv5FJ))r( z>x{Qn{9zY0^iH*SM?2%)BmU5D2JcLZS9V^fdT$qhx(m`da|-)t=1@%UrkGo!2NA~- zTOhpDmd<4VhrS5zA^kDwLB9i-ZSQ!>COGBGkyX>y zKPL0G3YznvS>&I^rugH`|HS!{dK={x)-~`IES9$;>bRT%72S+Wt%My;-dDwRe6t^UB8?L)+ehm&Ncb z+mhy!V#k^BU`_?`exW|-BEQ+Q{{DnH<>T*!u0M8~Px+K3zFK0h!d&uk#Y45=oI{`W z_bSXGAO2c^mgdhOaGN-b#`i7E9UoV;9uXXS(>8y9!kh`h9}=8%XM9h>TnWP02#$Tp z#!s&*WsU^l_X^H=G#)pdxev+|VjKZI=z1GfzXj?~?OHY-9iD_g%1TJ!Lm*{`xjN z`YZ_FAvpa7yxf#G?<+muMD@$2xlg^swd1uY3#OB40StTFF zN9i}St~4?hulw^U5f@uIEc!8axns#?dPh;+66CL;cX(asx}vs*k z&!n{Fb4D*4;Y`YZ2m6Tr@8Uc2JpUuUkLCM5zH=^YCa&P-1mhOHvPssm0Y0BbM4_FPF?HoQ)*0^{!X2EkT0~}wJR#96)s)WThfNgVYTCLb0acfDGHrA!Y z+8V*OL2VngrG5JN)Uatnx?o*M0L}0HneTUQzV~L)_Vqk}+}BO+oH=vm%$YN1&YU?@ zd`g<@1L0o5>EJn0^l@h1vJihvaOk%8uX5vld#w9RSKTb?RmrzIVH*|H4{KBxZutK1xCJ=SaLs`oKtU&KDw)LRR$el**h zA7zYi&yU2b9mL#g{JMA;>V=2oHZpOl9uMK){x_{oRIH%K!;(R9y4AWTJVdFbA`?GfMY?)ww(GM>+a&ykI2=m7CJ^Y!ul`5qmuPYI+J%HFI0J@!9&fsK6e9>qQ%&ol>i3qSi= z_RDcr3U59e(n>uBH$@7^*tgFAQg_u{fkMUw&uev>4rF@pA&7x4Z zdG|7HR?FtwF*~o7xthaVZN+D>Wl!fc-yCF3O|1JI^_pb^YQ7TBmop+hUn`5b$L62k zPXKG|K*6Rt^_}?8^p-`-EVHjoxPQAE`@nsB;zIP?1?am%^xk~*-#qrU1-#+p?rZ&h zMyFNgM+e4UMqe7L9tqfi3-dD@_$%e`eZO8`ik;G+2zx(Ba z1vf4awhxj&M>>vpqej}U5M7=QhL(CGKgfWE|Bx{?aYx>`zntd5F!mPaZ;}!2mF}WF zaMm|scl-O|-JPk7{4r$i<@w9(m=021aLZ=*m&falNj3Lw@)eu!?cM+1ZQ-itsrT|} zW}UArX1%dAsh_`wF6q#C|Cq0)f2=bW?icDG`)Z9%4!NNIYk|9-5NrFL5^p`39K2-P z0sLfFu(q@ocVAa5uDCw*ttrO}KYQxQ!7H}qXuc=iBZ=4XttCULqqrlh>^3*y&}-Pe$A{PL|Iy06m& z9Yu;if`zuV$9cpqI=>49)b*OMD?&!<6$j8-tta_4-*`*)7SaqWxiKYCc z?UVZ(ADP{eGr+YKM`0_bZpEIc!AIIZHNAlLMh7wqcP>FUqSw}L#%Q*%cuFL+&_i!{&*TguhuDcJy zXLO7gm+rPF-Ub<`YWcSW$394YM6I)H>H`m|Vbq2J7@>QZG-B}h|eSfBKucDrG zzV5CzzCoY$y~mrU?=ZH!&(g@dqMl95IY=TMd!W_WI4-UAjl3}$hdr1G`zK(t75nVc zTi+l1(fNQ!fYVv_eTUyhRPNcTzhqu1QMnC#e5 z<_$2(;=9~SoC=-tAqii}$}_hKhxV@X*jEV8VeT;N-jwF1x2IKnbAo;2-ZAPswt2(N z%*Q#O`HoT7e8g_k-4Qzn`jj;ER|WicN6m#Gf8)XHGoCoX{DQnG4K`ih;x`Am9Cn z#W>8Juf1y}$MzoHnE0H?5`D~x^|Z^HvtkxGY?cHI4sT};+_Q4!w!_`-eT{ba!%q(P z_CXo7|3I$f|5bgRDHBI*Vi1oY|2vR><*e|Z(O5ltf_}&D*Y{-l?1#~tMHT4VP<^h6 zd)57>3S?{^_-CPKBdZ_CR353-&{>hjnEa!Ao=}s=;M`-(o2;TsF)aQzB6qpDWDHz@ zcNDp=oi9JTXEzRIub_Q-YSMjN_fCRx0`(oQ`p}pAp11xOtdRe%Df5;&+oX8h6AyfH zKl~yeK+kcn#}jX{rHnC@9wOeAHPL;uvxj)x3mGTlOI(ZWa*h=8#p5RTar|e9$2D~I z5s$kDy0Y<)^%Rf$J>5?v9`}B}6_5J>-=8%ecRYIB#9DpEc-)cF`~OBfZmRHqN<6OV zyDuL1D1H63cwA%OTr$F2pWL_?>40|`WBInt8sWv^Zo&>5^eOV=k4@}NetyvEo|RY` zvVKLYqa;7a5pz?H{OGI%8k>^iaPLNLj1QIazGP9> z_a@oly~p1g9YOra{jUCh_vu6S)nTX3QF@ZguN%ZEsx3quQBKd4sVd=NL z@Y8;}c&@WN^t`3p!inZx(2_0rC9c8J>o5NuO)VQ4h~{bu@8X zFVhFpZV&OT2N@fqb8kcEvPX!|pBdfPm4`n=e5+~aQ{r2{PMeO-alH6emnVratK!>E z;F9B84Qvnbt-l1;=v*(p)xh---}(%2*}nKz1J^@*Yb|j8_*MhgLwsvBaQ^sK1J^@* z>-R*TFTNGHgT+J1&2U?neCu5CUeVV>e5>|&&ndq3%6k^P!kaFQDd)R!t^>|Daju2< z=F5n4EhJA_88Hv@PmM0`DaO^%_bD;1$3cVRi*Yq|dWdno7Py99VqA?*{ERWKDc~vp zUyN}z^!j4O4j}*K|7MJ^I=a{x@S>U0S+gT%QAn^M4TI zYSss0$=)kP7ylo`xYCb<#kV8##a%M5dH#EiPYB-SPJ$dK5?m4aDcT#NX^^$db&0DnZ^kP%nn3IoV^Bed+VpD%d z|C)(Cjjs<$v8fktnHUTmr|I$rI?rc!S7m%C?kV^hbe{8M664cb{V*i>Vqf5zC)Av8kq>Pshxqp7!wgIsdKLRD;K-V@^~1 zpAwtuw%w&uCR0a#XZf=Jw_;PRK4~NNOMCeL%h*)XR=fHF*!Y`ZLC) zUT$MjS#uSWs&@rUOe$-yVp0Rdn7+cgd>|!l;}gUUUBFtrDlo{zranPD(FLr@`d_iB zPY_FW0lD?`zhYCLm=MjIKTQ9pl_kffDn}MRhNjT4aJSf0cv~l(n3Lo)P;4sxg1Ww9 zQ^8r+Q*7$r-1h21J;bKQ%X)}Sjh7Ld+SV1D8ovkp&X>Yf)$A9_mwtx*0`W2#?|AlV z5AjBG(b2|U{S5I&M#g)HH#!|0{&*t;*F(Hf1h}Z|RP9OZUZaP2qb%V3@kR#Uq>%}G z9m(TJ;2PNLdA?TprSlXs)8`%pe*9s-Z(T}?A9_)J`3&(xmKXkgM;&!-{E+2=zkG|z z=|Ah%3R9jGKUA%9#SbCFw$J|h4~VuSozwMR=4bT}vqm??&$IC}>8_vIi)|Yj`wo0C z?F=22kY{WSytQXA1Bq+;GV;TlLdM@z!Jej-yk;|xjdsio@hzB40se@!u4?4>DL51T_;D~B}%-x@Yvb>qPW3-b&?m_c?bVmirw)faj0^DdvcCzT z6I;k3rdX~P;04@>@?7sY+PO$?`<0YRzw~}C=+9x5AZMHl`sJ*B z-zWF$e8I|^r8`;9u0Rf|k(UZ!TcOp+*g#jt@cFy-kuzIgGWI5QbO!`~e_X!&<*%w7 z*}}&kmn&QDm#Ht@jPHi?U9H#OPm-lc0G^;j}w?};eS zV{bAP@nk3!8M5&ie)+k{FF(W*vDPNY&u-StPs@>$EI-$kt(d91!A1G0NGU$io z=RcL3AopVah}`_81i6{h`}vjsJUKyb&`;V!jIn!&nPXz5$WA>u?~Lr6k{P=ap1XH_ z-Sa-}@vW{>-1HoDnuE=!^Ah<(jxt9oMmsZgo^E{3S7pXZkT2y?*Sp!uV_pp}Im10e zcH&{~FCOCEIQbFw8y|W3CwsM@& zC#oByuI|&C_GYNwF_C?HiO)6mLKk05y_T+eA2Lqa_%c+_@MgB^axZm9QeE_|sXOyn z_dIwOYan%_iqTPBq0`_fadF&;ef3ARue)fr&t+=g zi;3>3?vq`0f35cMVVFMOp?Y3Sw6C7V#k6_Qqnr7*je7E3#QVHjb=~}CetyO4?mNyq z11Fycb*mMFWBK(IF`*^WL(AD&v0BN8;&OxsU6OOE zQ@?=ue1zQF`{pF^-u7XtONYk$8_-cC+uX|ZH<9U%PWbM{R{MC+6W{MpeZ?ar@ZF1} z_SKzW+x}8l+a=H zn4G?IZ9jekx^S&@;UHp>xqGpA2(ih$H*@h&?qUo}$oq>;Qy1TJEjGHaZalhh`kuHQ zTvv=fw6D+-)WOx*O zOn$#$RQ!E}yM-T}Q~>N2?rxZRBUEoBxy+O6b?Lxc#CP=4xxDdY^{ws0BlN+q_pS%F z2;Zu~jV`b{*1~IC{W?$bpnLx3&Je8s?Hu=g2j)v%u}{xkDE#Q!5JyE{MXihVk5 z5_P4Q&b>qMt}g8c@0$}Dq7Qv!`m|bg5_8Lo$EHs{9hNToi03tQJ*_(K9J1}i>-con zC&*zr{?vTn^SO_p{QCV*jn-=pb<0tMN7P zK3&yJyRy*=fLAWlE?y?aAos+}*QqNX!MVI2XLVz@wtTwjSHR0hPyl?+A+Ien4v8_t z@wR;9@SOOAZaVizYAZ1|INmRxKB@)Y(f$wk#`im?b&a2^3oFq{<_&{W%as@Y4Cy89 zaiy1v_jr0~ad*A+F!t)lD=$UIT!OB-7@czwy5~afL0rH+2=@&Dvv+i3r|LqV%QCT3 z6Y$;In5O^6hO>74yU=ml_1e?-8Dmg4zA`J8zT4Psb;a#j-TZDd)L+F6obH}+7ZA%O z8?}IsiG>~Rtmr8=z{o>Ub^^X7)R`!L`|c|mxNY6x#sFvihpERp!{tMqKG_*INB6a^ zAh*%!UFTrhpAQD!oOiqa#uWx`P4;;uOX|h#d4|t?8ez z*5J!C%?!pUOw+L z#>XyZjvJheo5iUy`wBR#-hFqxi7)ie#dd56_ie#*8Oynh=^W;C zK6Ba4L#LRof9k~8 zzF^ng#<;(W{Lc4ZOAMIy7<0^BJeRi>iSXj@*^+tXG!M?!JE2CF4eo=9uzuX-;MTdQ z!JTgWxpnyklX|7)cHng%N4~eQ_oc*CPkFtF(app6S+}cplJ;W3cO`jS>-U6xVDR()`9^rq+jvC-2ULZx|7P9>yJY>?an>kw7Zcu8+3P3w33@% zvF5Az4q?lMxKq*LRW>?du*6?_nfk0jm+$HcXi@!T;etsX{C4;X1ao?TLo@YLIs^v2q z!9HGmUmeJ6L8o=}5W}BuZMuElyA`X-7o4g3@|lT;^HWyHZ<~5dH19U^ww;^fXYb!S z7nyb!MH1vj^xUEPoDt!hSRfps`}&*vIOe@O-U>|KUj*jPcS~aeXQlm1AKR})^x>e3;^dqaEE9k zmA2B*8N88+&iKH4lO#cBoZO`|j(Pi&`}-lER&ThvFu2KLtzP&L zeW3F+^04{dstTLC8^%A+{9dB^ihX7Un=_dFaqxT#>zhmWmEiO51AKJ*bih%@Ty{ZA z%9SqNj8`|hy?JlxuEoF6MfcUT(_MEZ(Cy9r-L%D=nSN57?yF~pQk`dAdanVGKd-!- z11)*pH-V!;K7*8NW^O^g9-p7jc>3R|3D=^&+&+&S zv+jLmo44C%uUCf7JwB#83U+?040){7yw@2(k9Gd%1Z(4)`>uZd5U=m)hqtZ^SLqz@ zt4rj^l^q#?z7*&Tq8IwreB|YikZ$;pdl}f0mE$Mn#s>YBdwkrn!M3R{Kt}PCFSv}d zT@%K{_WNvX`QYVWmG9ym&P0@RaxZlo(2e-Xhn0{Inm6joit&}pp8a^`T-u%k4f*hh z{JV2pyQh8e3;Y(KECsrPHGaRcrRm-O`Q(1#OQy&All`>phYm~69LY?t^vt2neA=E3 zJuh!*2rk~$xg+rU;Tu!DDMwV1LC~0xi-+FUH7gy?=*B4<;H#iofCD&Q!p*z zPNL`&pX~Y3_u-SyI?X*f&eXF$4lXOgPS8EqV;Fmb#6R|alU>9bv16G zKt|aF&TGo8JT>Q<_2LTT!R`f>69C(&!wCdp0qUhdn{@M^{+w1-G{EVo=FWOa8uG;pdTwjyqVKFqy{?^{6bO88D-JGk!ofR0} z*2tNmWJ7bTC{R8eIIW)vb1Y!ap3Y+|&SgyIGB$IVU)aq%T>1Iswa9lb2ubKexm=kNS! z#~GP;6WhVc#DBv3#p3I5U z*pFBCyq}WXhGyf3AL4XqUK!av^TZhYY4;tdiCy-+)gN|#K7~w_E0#j{B9?l2f;sma z4_`}$M7zzKRLvXaQ<27$@)pKa?Z?~wj@s>h$27U!`)IepySr4X`Df<~I5l5dy!rAA z^t$GY-s}0KsOK^GRN06BG5DWAC;Yj7=^ZmIk9w22zeA_vI}g29eDU;!`oE=z{;Rxy zsc^e|=neNSa7&)eJEva1b3UUyXMKvi>_*4-CNEElkHOx3W7pzWQ?AFk@XV~!?I$Mq zh^%d^HzZ#CqH8Nl@0GZB^eT&^Cndnk#<)&$hRtkzMcmPoU9*u;}LAgMqv5 z+^+jyqG=Vg2^C;a^V%($5FLBOjW9y}kQ*|BuRbzNU8OJ9&39*9~kDcYAzz z*MRE{V58a-3zi&@2ClI?TqAIfY-que1-*0a*nRZUy{NM3=iQPk}pbIA{P9&kO~4^xgu!w=??h2H~S|2+DM`0V9)G_cGe3o9B<2Dg0F%JFE* znLD<8yNAopn}@*F?B#(ou*?|?D_rBi)r?>IG1s?g=8C^OtaAL(%JFFGGe`X8gH+C1 zq8yK=oVnpI@27Gv$D=7{PWa1@iasyLqbX-D_{%>~c@H@rb#7tck$($sWncSj^2~2~R+tHLG^ZxQzRqo|>H08*; zzkG+vz1)tb92xhQ|D5t_ayxzn8a^$i&F-TT_6EeXnY{tAY|s70oT*e6-*QI68wHj( zRxZB7Txd{CfbQP0H!yTethc@RxGdJJBk%g-<2)R0%v5FZI`=&VWMufo;F14dc35fJ7!x0-{n3$k z{qb>LePTLn-gL#rMa3WOJydr9b-ma)Y-{C)JVU;KE9W>d@(aADxYs$v#u1Ou(RvPV zedXmVw|56Q2in~DfWGhk|KJ*IhdF)6JX-l^0e?I`0QoRF5cxO>`OrS3Sa&aw5&z!S z?j5z>ev5u7#_>A(VPKIB3oE%8g3LOM_jTmLFy+XEEtfnDP&w-=7W6oe_Mf@!RV!aK&&(4dv=ObM>enCBBQ>d*> zXN7^gy*u2~!ml|hxZ^yyCzIfq+cm%$n?i8p>ooZEMu)$@z-;SY5S-r&y4-+&!61y%0OZceDU!(+BdQy`;+_y2JT+q%$~hV zM#JKnl@;yP2lO0!(5L+gEx(5r-cfPenR-?iub}05+K^6pY=Bn|9dTY!{!@=vAFoWz zGyJJMIC@s>Da(V(#Ju~`qyK~a#rx*+;Zt)i_Wn)lw%@NS;Jv@jTtC00H^@ExZ|_Cu*9G+JaeU3L%ys2ePwv-~wAT!ck8}QH`{b7k zKWz_-He~2=;v8&WdV~EQus!Wh(1&lxSNqO2;c!p>{P*$Wq0X^ z!1tRLvGTFs*X~~IJnj4B#}7k8`L|sfcKXgrgp+f$w!O@y-vx*}`j&IXv-A!9UN^oZ z$Mh}B_U#3C4E%Cf2;PQ!-ErPx_miQN1R2VQ2eZ}wMh}j4)bMJN3uk3WG8&g5(M`L} z>%BV2g{kvcB5tkcx#Dky2Zvskk0vxGYq;)V=^nSK_gZ4T3E&?`z2>ib^(J`urv?*f z7fr*3{~iwxpP}$)4R)5reGw&zb%eV=b)0ox9qT`QEfG$*kI=`4H69%P!$b~n-O`Y=PUY)p~*sbHnsg0=3M^-ii7rn!S zBVV}T!MIQYJsLkt&k6i}E_JHE(mtaY-CSJY!p3nz?*^6M9;eq`gR2wagtHvDqT4(; z{HO-s(A0!+65LmT%f1yj;^G?dqcT=HCx7G5$cE1Gz5*T3u1Sq`_~*TEoHg%dA8Fo? z0$0P$ZkzEpDN_RGtjV8rMrBY(J=R&)nCC3Y<-PU!d8frTqSG%xrM&8G}bfYVq8fomxC;D|XiaO)D`@`3B1-{ng@ zIPQNLxEH#^{S&z8wI1AP4{p+sgm#5*KX6Ww2RGKqt6~3MzD=TVderobkp-ef7_o7;>xSbla5xLQ zaG3sw6Wf}A9d#RU4VQXwyoF%k&Q5}({Zin{FY(}5%M2X%MXX(*^+Wtz3|#bL5016$ zb$rjPDQRDYe(E$8wgzs zcM&lW#5{E@K~Lv54UGjD$I7e1RUhV{w}&U%l%Tmvu-_sh!I%DN{tJ*)AIukWsfv)yP1iIEp)~F8N zfiZJ{y1lJY7pnae)t6q{UpK;)fnZnr-&FfksKXi^8j;e~ez*RI-1e!vf3F*NX~)R+ z|3tMP0oPf*v`_9q(+97<Wzpo5eg^3>yfBt8;-T=%ByM9JTnsFM2 z{N!+-kA2iMod@VFz}OD8BV)!teO$=(PoFj_cBITFCmx?&pXbP0a*hsvmss16pwry3 zW}H&Vxt`PCS)sn!aTQ-|%%FHH+ie##6mhruNLdeZfIX-)9gF|3!cX2f$$`N??9=i8 zQuxUicO~Zl>Z@|KKgt<^)&#vx61OSpMj4*G_NF(d!lTWY+P%*j;O+YPE^Evd@H!Kq zMYfLBTLpdB*(6%By*k#`_*&m}zD1n|-91-3*6yh5yUuFrWQ$L#V{MRqZXLTf%%?vu z1E*Yi1`fSrbjc|h3HnrU&jVMj`y#@}J$3`PJP}S~TL+x(eHyrl9^AI>a6c4%x~DFD zCwOp!#w4^Wd=H5}#m5NF+91oj!+l5e5gTLRtPS#Hceo1CM=ZI4vo^@V?r?XDz7ZZA z_J`^3)XZ-5-7fmL<7x1nW%<$_ZmHwH_WU2R<9EyO1Uk1PtMk>qVrA6+2XQhPLs~qt5)9>_$ zd+KIA-h$m=`0I>Kpj+cVjy4o?Y1aJnS;L;{oMvFJ?hY$mR^H$1W1$_3M7Sm390;5_ z*Ag!-_TZjLgj3retN-#_3vQtYw=WTH4{+}TXU-}Fcew{Qsk=Sd3Y`4;2H#aq-c{I2 z#=lBjIcLsI{xj#<_?YB_{di^Hapj$tg{wZ9Jc1ZZojvy>F1A1MvBWE1K9G3X5V6at zUOY8^T-u1AJ7?iTb8O89rwGwiYC{;8LnObhWq9fJZ~z-#~JroBU6(7 zqDSbD=hvJF%`dxW(oMzqHZ81pUJ9)7h2odNk7@jwvY%c~i)!qfit%Y$c=7a$8cY13 zzapQKDaV&-%O9cK%BlRAufW&r|JOd_WpMZF=SV*4WFuSn3Bb=&`#%5%KdQlZwvGLC zZSL7B#~1oC^UaiF6Z`AuseBXV#PyhRY++lz9sH-N{6W_zYRd76UPr&=6SZ*b`#V+D z*n6+w>)b%@w8k^x|FO=n^gL&n-eLICQ|slsUUuSB6`3vHZ=dnI%xFi=U32bxJCNE| z`h927&iC$m^W^bPtn{SWHD&lF?;zIu;E?q6p=+E=J6}4bE%h8{(N}`y!+(O`$@)ht z@U5|zZkoTM`(AnmVwRj@-%Sd=g9>{P`x^sr)aJGEx#QopFfE2fj;-SMsq; z?XPK{vEPmZK1*A^hVuA)#b5bX<#wk!jB(xAMeE&zBPBj$`^SS{fe$MYhY6`{uGNxW1==E z^KI?eE#PWi0WSBPjk@jW$qS#@P(QepBS$Ft=i_!o577w(c)Iy+rZttl(zB3nR0xIwp{X1r*eFslem{^ z%JCuE@_fpTeBkq(gpbd~pIBb4`ZrQO)+@(n=&%2P%5N}lORk83BM09gb7Dm!b1p(1 z^FO}A9O&arEe|?YxO8;k(OmpGc&e}aY%={mb3Tf1bkY=$Cj5k!Ch_Dpa7C9;ezI4N zf6$hTCuJ(f7dnYt2!6^h^1s>kmq1@o^euw_R;Ka0*>a8F5sm*s<`d#2Soal2e2=lc`A4u z{GlfQAAT?C%t^eDYGfiwXZ{%2YJ8%4KR4bcKCgJ2=*+{5`@3!Sp){pEfBE{j}5N zExxVz+JJAXV{y=Jv$*#*|3aJD*u`2KY+toDeB7I@f^X}O?42I8y4(1&!nM~R2LCVUluWzO^5Jh5!>37ar&qjcjY5FyqVU&f5VD|aX0>^QE`9Mcj#mE zto9lHe#;+~y!O}72j|T88RYG7@eTv8e{2ojj5yw}fwz3-r{ld3ywMr$GgjieQr}j| zUOwEpXd3;GuU*D(6|Oyw{!g}R7rrY?^BVXNpP$UtyTMsKjX7uMJU*-5U~g0Vrvq!( zG<;RP!Il8qjE`9J-pmVpRK3A|5!mum&^vam!#8DN^P%^DRF3a>5`8wf@Jad0|EThl zD90aS%JD_na_KFtl!{LfBEAo&!PM*k3M`${_-EF9N+PzS+;+P<=<8L@s!W8{YxzW zrpoabH)1b09_viYp`8%9E_2{l0pBI?=snifjAh53wrZI3o??2hKT!Nk4_F1-l`wQ8=l0v=)U>(9PW=UKP6`3(U9x>&xfmYA9(a?XV_P-aUw0j z(S^iy+!|$Xw0Vg0-aPJTwg*S&hKLKy1phAT@4EAp*cR5VF|<)~{Op=YAoS`ikB(A) zkBtBGgSjXCC39XNHCORRsY!J7hYs7may^ZQh8473HQagqS@Jil-4O9IlYr~I+gUc1 zy;TW#L-etPeMD*Q>>A?5+SVNBEDGI~u`rjn7?;vN`b*BHXoPsTg}KCxajz^g>sn{o zM)Xm|6sOLK%>B41#re1hp6I>WJ@{y*UmmWC_u-{!ZBxcMWFm9&#@MZ2iveaI*$iGzOjsnV{%(qk`{i{-0p500tT_;S~@o_ME1#nVL?qX=V}OUzemFtseg z_o8#xGX})*1j2=_*dI4RZ)oBxnWD9neY_n%#YUw&&B$-fw8lA(z##b7HOT*+{%jmFl2>daVnyb;bBu?VQ~XZ|cy$&8fz& zuKTpT;<3P%hnT;kjg4Mc+?0sxBJ_I>y00hSshP`rT;FLUzSBwP8y!$rjQ`ZqBOQ1z zZ4}`T&7nN>mCk9C3OzV{r+&CKz-1G6KIvkwe0f*-67bxqa{Qo^7JB9QO8xb3Re1{K zmwV;-NNxEZ>MvC}v9FV^^2+gz+H%==ODK14>71?{6fLgpo^b!)^@Wba7dj80W&ys< z^YL+>hp+Qoa%{{cf0mm+=Y>ndRe#JLQMH@TulXFl@#nxL=DbjhY)*ExUjFDpWDDQ* z8>PgzL}oj&+KLW9l@V9{&%5rl4hZIkl zLOdn9DF>Y?zk}>b|9x7?_+DZrtZkz+iygmZ4kD}aN6N1A!%NoU_rutyYy-9&xosi7 zc_;nJDV;e}z6rG{zvQEyj(i(h{doNC4xr6}d>#jvxi8U+{PvVPopFgN=ZMDnU+e=1 zA-~F{aQMamW0jcmPh;h~Thx`ug7;wxLgw7}nU5HoLyV{8m5uZF)9d$F9fjs1!zM)IyjVDp1ZQ@sC&Im_k*)<1|`ci5aKn||ZwZK!sfXE-~r)%@aotwU?0#^vLc zvzag3&0N}_HKHmz+lf8#o3wCt)QQ#b?Y~zNS~NTIENgyNU}V|7=mgQGztgcja=;tz zKeAS5^rQNhFHr8O6uwIql7A!MJcCWqaXas_SEo$hRFN{WFmTuOO~YAhN?4ag6LV)6 zc0_&h9TU-b1lf5N+WfS5d@*|NRrChy>Kmi5)v$p&!ssCB-xc(|e1a3ZgKyaeC28oO zN1WJ;#2UZK92Kqp_DU9T?;xmirWAB<5E&(h(BoN!bMDk7uiUTNP5F!q$g@Si8#yxw1<<3zg3BCumi27PGID4v%DRczU2Kd^6%vZP}3KH|$dV)`G1xW@5B{ z)<9=j8Do~pT~NL0egGS(Fc__06&PLSkoWG&y-sXC>%+CI51Tm4N`tpk?wPY~6|wWm zk4IT-Rxqti<-=)XC4CqJ{kpfBO76YLs+vua-OlU63+%Efj88gkm6eum)9=EQPu(vt z=90sXU|MZ6cH3^?l`~U$CZzK&`yKl@?r&#MHw4}@i*q(z9(3xJV{&&evo_4Ss@$SE ztD^VqR4hGwo&}$?p>Y;`&W6vk;PbWU_0CmJP3K;xUG#;njcf{yRK5{MZ8nI zR#na2?T>=GXELgGa%boL+5G=3b5%O0`PXSxnzQ0j2!3duNRPjQ9H%q4=1rcmY1-;z zx1B!zoSNI1BhOqMt{TETk?ycE7lrpm=JX9OR+}?wVnYa=C-Dm^&n^k=xw#^7<_L^(A2MKVjRZX3js(M-G~oII(m27B2byBk4}P?iRGc z7vU-gHc*WZC8)f7GdI14-qpMH!~_j%368Cu#e6PcEqf4~ZZtHT`^wwTY%9dq^6|>< zxu=fa%o?@BU8BB!+=%!Zwd&Gv_~Vr?)=WgkI1hhjf)nkSG)VFrsMVVDy0;d7yz(Wp zrgYtja{uq^?M>OPCSJg=PkDDU6Fs1Fhp)op66Sd+_iS>tkGpH!!ZyZu7H7((!!~4o z_Ipwx-#w`ydD@)%+8dl{_+0D8zctC&?rUE$@tk$VPtJ_(-od@6H{Ekt*#KJmb?&n@ z=u~B2k9~EAdzS$}O*Uc<}G={V?#=#U4C&pMrw_bMN@SEBs45c=ygzWpQ|N zB7XF}u|+yx9KK%oIcqTV5U1P7-n->mViAZBl)qy4mz_l|^rdBl(-CUkOzg3P)+iSkrZ1Iw7`utrL64*Wch!)5aUJKkI3u{EM{lCieo)bMh*NdiAPKbnBT| z8#lk9zuptnYv7zgu_2A*dNFM^_g&}zssEfkC^n{%TtFe-+c5PmIVm;+S`3}NwD)c5 zMv29it!Ua@;N%haSNZG@Pl|E3Ft3?D?xAjgzWpB9=F6Nj)XvTn?vH<-xFpuSLwkor z)P~01jgceoChaP2aWH4iQ7``5)VbctGv|IIcq0kjWBl;Inl}I1z0IGBzJ<2U(HnEV z;1|=)2)=n~mfd2@xNX(Ds6pyY=@z@DyF_ zYx}$0jibNqZx1qU@4qh)d&lFe_7ob&ee_x5PeR+Oa?Ts#G(7ClfIsRb^otpv7y6c= z9JS9`gOSr8d$Qolm?3bUh)M?<%!PNPwlh=>Av+f0AQhl zcB)Qx>(EEph!c|P1k^vy8Cvc`=AK8sc@v@YK2Kh#BYBx4`p<=bg83!>G-68=czzh3 zC)JrQ`scWH%-FqT$J-}k9!++65Xf zHnFd&%Fpq&`Cek1W_$}0$0|RGhjl6N=WLJfDFJt`uRA4Sto9_;!LF=o;C#W=U4gvL zH$9%e>GJ#?mFLkH>7BHI$?=Z9tt@`V#k(IkjprKhnzIY~5#{{B;2Y8%-y7hI&hYS& zE2aYZH~3n5#y1Rn4QF`xMs>&cOVKyY!F)#|zDs(>*Q)k8Z!q|d?~d<#DnHr7m+Ql~u4jCIRQsGi7rtWFp_4ChRr_Ii5C4SDx8+mK}^E_GJ!qjc%tiiN* zCbUjRMr_?D`>xxcx(??MrtUc&twVDY+Dq^&yZ@eQY5V*$!o|K@oy}&-5jkqcwQftmxrx7>tyzvtRY%Q zuRNJ|{rF@Z8-`^8%5Pl)eU z`q|0axSPC3W{e)_n`djFt6H(x(lHArnD+%uy|)tU+5TX68Jp;K>NP9oT6W-N)RR3m z%p0e1QxnE1x$gDUbw+q~ubkk@QbFH!t`Pr*d3CPw>fF+IokHs9?Hxnok_p}P>$g-s z#M2Kqs1NR%_UEM&>|K`1XCIjw>v%iewGnP(d>P}O#`hG_r&w(G5x?)rIE-h1maNxr z0T!QwtLN_YwR^X(-G8ZF?q*1?7WUrmaB!KN!~S-$OVqC9ItMwu1AF-kd>i>6b()cX zyL2E1hgZ;hE9VF+b z{`iS`lH*kuBh$!v2>6+N4j&ol-uF1xIWDS@UN6~VAv}0#d&aZ2UhyHlw zMfkQZ#K(03zOF*{zVkV6n8&`)&FO8{!>YvnhUEA05!^N8!x>psHn{)|Tw`~*$uJo|K7-?p=OR8BrXQzzfayN|Y} z7lx~TmN}wIzS4W}1O14<9b#Y|VqoQ~@&Dc1S;>dN0qni|<6rNGk27fenxRSfoAK@8 zPu|)*Ft9a}lOLJS8S3IdO4$MY4jtqdSwVi02K+LdRaWNL9Uq&Bza=*#T0aH9z*Npo z$~Zfj%DG9|>0>@e1uM5)~>8zxGZJj=kF}V2jr*W19GgtU+mPRh?Yf;iT7Q2VYo_j zLB6MUeCN&h82dV_xE0>X2i%kYw>>xz-ne}F5I(hde9EJ*sqm^)yc#H8Ia~KW?VuY2 z_$foRV;QqU_=_Cg#@a?78;^&t>gx#N0QjiCQ}F$$zxz*)*6$9g&m(L1v39DzE&Ntu zXdeyj-F?8&YtC6NF|;S<_g&>U^%KxpUA{QiXWhviojtQeqkNGgYllFigUwXJ8Gb7< z89Dt!xoVTM^kwp^N#FF8Ye>GJv>fi7O?H;;Ar1mQX5B}j&I7mgtPU3PHxKF8c0unJ21HHx2JwH^P9t* zdeLxi;F#P&*-qYk$_i;eEyu}Q1&!I*74r4UpF0m)L_6pFg=y3wKBO>2ozzL(TMx{f zkht(EaTP@;M@7EkD8jKo%u8 zE%+N-PR196%wcyKnM?I#uF#XYkAV9X=Q_!9r+%nRV^2&XXETX@LhB!VjlKb6ayQ*^ z0cR*X^j1qM>k02UEly{B8N@m>m@||iHRO`$x}$?{?|sJmHpW~2#5tp!XLJTApJIuV zvN81D;+d(bW09BOvX@5S!(ZssJDdwQuMKQX9Tr@OKWMmQDl|TIY(^@1cbts2iD74v ze6yk3j$N2K9^dDW`bFkB!Hv0rj8_j}-zpc^&Mt(849 zvUUmmeeTzsEns7r@(U8nwYL0N$i@7HS=eI z(YdPvnPs|@Vsy}Lp8mles5bhRcc;)NrcbAk#}(O<4*C=0Z*277xVG`w+r9Cvgg!S9 z?455#Dj(pL_rS9&R8CBXeCy1sH(KG_4EWUw5Ap(c|8(NYuWlO~2yVPHn6Ys^wvXPT zui$)VJ!=qpbR+Mq;foF%U-U_h@SpQv`MTu;?@ZxbfPPm{FBHgZYi13rrd|tiGx@qF z@0@O8ZGO#qIs(3<6T^Odnc(wmsiuUpIdqxM##4dUxnxf;_?0+E9)UjS+vXBI1<(>Y z^$ckC=xR8_tYy{E)yn!Vn2(NeY7EU6oEGcgw=?F2s}5!8o?P#5xF*a!-fhic&i(s2 z#?pMg^L{m&lk*2@eQ|yFC&MEL+y5*0>did!{OLb=`IGy61d;X^lYZ*_=lWy(h1d~ADJ|Ck;mf2C4m($l4JeFS|@K5cFV3$CdK4imA^il^;CTF(`E0L zTiRxUul$ov+>2fL=URAc6MH{FMz6g@_I}@QZ5o<&-r*Y?@!~f14?Ew`Oim30r*n%W zxKiM<^`?Zzkoy@1E}GX3ZZUAm``rq^YKZUJ!kxtserw$Y-l99ewD}@-^ylc4?hkTK zyDW!0gK69waQ8&HZF{-z5a#aSEaHZ)WgcsdQf_wblP+T}R4*aEhw~}@USj5Zc;l99 zh{-_)LxJ$CTW)YVo)bJa^D}&_FVY*I4`Byk`%mON-2S$QHQ^3^kCF@A|Jz^qts1-E z|JwlaV>#Lj5P!3Uas4)ZFfw+9D`QsX#n)ruL-oIamE6$Z8t!wIvKG9^UO@LkOg-`h z3%{+GPrYNrKhB8_pMl-NeJhU)fI1S9Fxu*zE0huR<~{m_mt%mGJYcHx}WhB zO=j-=xF56(bMY~k_p^>^OkI3k??c}TzUFt3zaV^vmeiY^yq)+)&G`+ucXNJY`6yl$ ziI=CgPtQe8a%gMI@lIY&Hs3#WmMdm7GS;cjnc}SIjgOCt{=MFK!9zdpc^Zd3i8AyR zerw*{Ib#d*P?E!ZP+O-tD~voO%_qsjM&WPv@GtdrqRvyq*GF9*YzJ;NaM^DI_XJ~! zz6r{It}_%L+!EmK5P$y1gX4V0z=cO9z=@|f0ayJNaF4=A&SV<#4;$F8b%$L7Z1lf9 z*ylJi;Ve&b6(74jBV(hX=MZ@~62{P@U+r0Wl1v1^*YIZ-UyaV}>fN)A!^K10@n`J! z`}!_g?<~vy(h!LXZ40MwT8NWo$G<(?7@!f-T?P##xPch2P8KPNwU> zcc9<@VCf=1$bY$XwU>=@>+a}I*JS7_dc)F19nNW_1I3%Gjt-n*c={MQ#?-dAMrnQy z7XO>5r@48+8>c20&dx*8XV)_E?P<~Xd+MNbWd9l5)5t9bZd+%KSEq9z`t7$K{(pFK zb;{=wV3YB068_h^@XwKb{Xk+Ji~n8Wf5pT9FAx90MA&5fYlVMj68!1WGR2=^7jGqe1_(+ z59R+5|F__a%<=y}irhWOn${q#Bb@`#KTmu9&4aGY+W9PgjuCx7_2|3Cv!BKdaOKr! zn;rvPa~*K98y-Ohf7f}2;f<5HhUbH`AF$;=@o@go$t$DJx#xwejBK1etlL~@-;R9$ z7^*G=Q(9?ChDFS(Bsqf3kRc*x}pkk7@$3l+v%w zY%d!cIl7V9YxcyU@!K=?zOca`?80y7&F$dL{t@fG@CL_iOkM5dt-m8{_$=b6%JGFr zzaN!fU-U`G`{*+~xH=G%-7P(OEw~yUb7?FES56?1ru99`+W%6-Ap{lY|ft~ z$1BP0y_oZ=hYzs_l^r@Px*`R-Q$yS_>W550|6+WBPY`oQ4CL_A5HdG;XJ#>Fv)Hdx z@VoIVPbH@)G+KTAd*rI9+8g8NQt}K;Ng@pG;0Grk60pu@5BB*K?Vp;8D-vyV<%0OC z`uBs*8SwRuR_0X=`;?mL(Y##zno}k>W~K+6=~K8bF_k+JCytHQXYYs}jRvxg7M?mQ zLVjfv3qSu-&hN%^&wxF5IeXR|;3L4-K9`?21zMJJr}xR{^YhBazm_@mXR{+Gfk$VM zf16?UwoUnO<;4#CB&Fsb#47~`kURQ({M`7v=Z}<+R{PvEd`!ImyLb>jros4_hTvm5 z#^i&M4~YG4T|6Jm#ZJdGVh`DqHYvs{{iRRtuV)O_r9@pGuqSonyvflDZ68WjGI)2L zJ)_|fdr@0HfpW=yHg5&yg9@JmHU*()7GR}GUDdbO0-ghBnxxhb= z&jsMnyTJG$+%pUIo__e(RLViLeH5Ag3GbEx;Q6 zz#g}R+%EWj3z>VjmJ?TL=@oCat|ap!l|B@)&(*uY>)0=vezI5f*Q)?V?**-6A8E?j zqx#FsRgUjq9d@-T$Cmb&FIPEtmWbud3!(Qaz_X6MRm)&!+G9hUY2w>H_=f&z3VmUQ z_0PolHk1C9LEq|YxH|`*b%$=v4a6&QS0oZ}3R4HCrsu9EcJq4YQsP*bMV{J_8DUSm zxFOP3!ydMX+%}V_uRZGozO(Lfmfee9D#a(CGrlq5USCS-XTR4cIz*FbDVgFl**ktw z_Q@5ml$*PPoa?-b?rAH#!QD%9j%e=nwOnj`33YydSKxa25-w)GUBtY*kok83^RSS! z!}+`i+|QgvSiZhPPM~Id2ik|)-*l&NfYw5O_y2Z3zv)d%|8KwGH=P|y9(hCdJ-B0h zcCFYu-rctzf9X6~~0wm2nUpD_3Fu+OMK4%VH6uN<3eE@vbO<9ko{@ofNS z$l_#QZgJ*=vlX0*MX&Jf#clcH@Sp+Tf!&Lz`{Z4`*g-jY$fiGzjkAt^8rft&ZtKf# zdR_QAE3|ti=24Tk2XE3ITzleje7J}ArbafgAG&@{G;iPOu0MM>en;s6Yp=b_-)Dd? zn{!0%c@OUmMXpCT?;Ftt@6JQ_?G~+f5#XDTc255qG*%pM{0-(FqIedeJbn)`Hlo|S zzZJe!kk#uvXr32-IE09xOM{NGlt zBzw=(S8~2iAK&0Ju2_?XlAP0ww2SqBFcl~!Z zr6eX8Z*e|3HRWv-b1u2>R(@F@6RMr*ZK67>=V(^mm;z?)gVU-eh=V;PEk7 z_%$AUDRema7b^bMh1}?o7S0>gfBXp*l$VS}CO`4u@F)1; zt_DuNgbKcQ!nwe| zc$9b7(Vs_(heh^H?2?7#z4%kqsm7mR^aTEc)yU^M_TOeL!iOLoq0;Xk+n8!2P46RQA61wMqsHxG?el&$QdpZ%F1pWUO0{%?tXdW!v#!(s3g8Riqv?a$`!1h(_~t>8_A;lw zg0s;6tFc*qdtko~GGo|2%`zS@ z`)OO2!dPlAy#*Ktf5JNURnS|feRLd#J@j?Z?EKK(L$9CSwRfJv-nor9q^a0kC$b;b zzSr)bFF0dXwGd{1D}jm~wIuDpz8cE*+urP0TyWbDrruW8Dvp9Z^?|ugk*a zgGcg#Z*BS?=;N)k!&O%e8&P#3pT7MB0r?2J?(X6vn2{Z=$4_VCmu}|_yPWgH{Cqbr zLUy{jr@x?r^F(5!I@sHDAI%}|zzHA4-_SXM+@|Q9a^jGQ_fkwjQ~tpeb9VpKoN(1P z?pks;G%WlZfn&bLb2A*kM&OQZdsZO5Ewp;$gTxk@{0y?0i4R#coj&S5Zz$lL78=%Y z<$C^~KDeMzxZ1$g5*(Fl^E@0tugoV_q=j2glV`zF^{f>P(!^M6Ds?%zo%)aIgF&YYlm|8$SsS(_3+79xL9* zgOhA2o_85=^2K~Gz`68$$9ZsyU-9AF$9i%ja1FdK|Iy{aNJqNUp}70!ZasEk;{;-n z&O+ZE7yV94SxU`FY^(2MN9CqNAhFR|H9BQq4W@bg;sL+XAw{N1o6Tx$UrD{^v2Bo(fSWq7xb>ddT5w; z!p_XI>1WmnZcd(uCZew?$LSDmed632;|K6^@`T3!IkPq;qi_Q`d5DLL=SvcO%9li3 zSw~`?qA|6Hm@6UH){H<#`qARlNR|2xzc;6hDhpy$934wu1NvCNe!Jx=d_eS%n2f>@ z_c=p>j6(V`jQGR)6#6lRH|Z)SG6$(6KFj7Y<748IGTqonVtZQ4@@te=9*X9&&9CFU`-q8%3 z{gj2hff&de`K$uAoSYp7-z~sm59qu_doK%n9{%<7`P>ey;24yIeBj)Upd+I2l`EX&QGJuTXOZ5X=08a?&-SY z6HJV0_K(Xb#)Wp9ikGLDc6D}fKJ6(-j%n{46PM9c+(`MvE*=T)bHG(Yzi4PlN6&uF z8D5g_tSC8$cdCdhoxEp!aHr1xymLR@LCCRxbLQ7moOEAr zmuOHJdhp5{VV#K0$hXR zdvp3C_bmhUy+?YP6CYe0WX|?u&i1dhvB>5w06CNVcL6RW{?Q-vZ}TOcNGz)ICHns{F|9i0Iz!h^NCYk92j$JRsVah#NL_K zGSQ7u-H0qY*>h^{QLOSDC#JYm(SJL!snU-Qal?CEyQ?mL`PoK4E|gtEjByb$##X+p zTxB1FeVEiw<*P{UYpD}1o5OsYg>DaN-tqr>Xt8;t)c>ip-A2Bso9NRN?msLhX1(z7 z4Vm|r-ZXPQ{hC6*HgMkciZgRMG4;a^1k-DUNB%hFlPU4~sd!A?2Wa#9x<44sRbTfK zBd$5^?{jj0)PM3Db?jjt=6{fC`aitaV#?>~#s{ed*!r@MZ6iKMP%K>o1}HhtO6%nEI4o zmx~VxJ-nN7-b^f={3+$yj{&#uQKzO6e)B$|JrAn1=V;Hcep-FKoA|pD{LuxR3#qR5 z$egKF`h4HuVkxkNeD6$JFXnxw^&;_Ibw8~i zqL1txom=7Up;;?5CKo_QIdp8Rn9x}`0cmsdrOFk$P8rW zj-;;6N4d)vUhM5pmX6<~ zzdLK;Uv41(X}Y@?S~)N?H^g3uyiDOnU(VLG&^B-4e`V&v^Z9`>g-erilzv)!Kc&4E z_Cz`4=K1dlPNbDPAE}Jj&f)Na{AUsPq`ahNFDE_)GE7djmI>Tt;Ej~W&E1?)wR>61 z_hHxCHK3<_Mn`Y{wHdd{!K`gNlxwehJ|o@pQyw$vQ{^wydZ%@^26~=g+$=qjKziW} z=+R!Y)JZAZfexEB-dVPW?+qy_Wsky_%_+e$)~-cU`ftdrg=bR(X|L8W#wQLQl)ja* zeUWvL%NUC^cC*0KfbQFK4EOXFIyJ0Q@q2ou@W`&yX8^YfT~&y_)qO$TTlstN#9X!Y z4}9O-0z(S78W~A1+lq|TP(Cw|k=u$-P5ao*o_uUUK1z|jROBOseEfgv-aS0Z@>=+Q zo|y!mnaMeUBoiP= z3)tE+!6??+&2+mr!Bc@K3byvNcLUmLk^zy5lCY)ue(RYGgpkm_@AqEUcYS}%^~^kT zAJ@I^b-LGDx8(bU{swjp;>WI0@Z%Q7Vh2ACuugl))vB>p+_xNPW34pSDx|BTv+8S= ztjF#hV68e>E1h3M7sD}&7uV|2*r{{(p|idol5ekNt-i(wI;O`^P0hb@9y*ETleHTk z2M;3m(ueS%-ygasu$J!+i~TBH32c{qRnzqNp`%StuP^;IxjGM&hIkZtcD)N!{oFgD zlX`)@08bAAu(kYxk%Ul3jTd28Ht3nQJx=tZ|ZuWECOO`NC37nj&gd?JfW@>P5{ zQh|T`!b{%u#A35iw^$$RF)r!CZ|RL^3f8u#DhWGMoog#uueTNLy8ooF=aaQLCA3+> ze5US@iw`^wmROCG@3EakSn*TVg}An}{bI7da~*oIg%m5|b(Z zPP)zf`)1#>UrTB!psbmD;7j)3w372Dtx`YYl* z-~ezC{k0o7TpW8_tHdV=+*P3oz+k_LcB2d4*T>PA@3U1`&E?LmyhO^W%&{oKaAAz> zMaH;nu8dKOUpBXiF*X^%E$FM*OYA$!>zIebwj-%d#wTOb7~6rv_XLo?XLlW*5P;?e zx)mk&ATajJ6Z{7sYb77t?+;A~9DHz5|H0KU{k_;?4m}vt?;uCuA&1$!^cyApX3j}B z3%$d((nQSb0m>@)zhuh(D?0Gk}!B(TuSvquwlkf-vszuglk z!Y}W@-zEe;UK7?UQ`+#`({*p;p`&@d=bx^`M{F1T?!elZ{;u8$fwM9A1R9gwCq5b| zze8a70Qbg$mp1BYnftA#G0$QzFx7NGGm9F?!FLn31N;XqtgpNACST9lfw&rAYd4v_ z8EX0mMa{~R14kzWil{HRStPbS&UKmw@#q0^cKi&vKfgh#-2gomc)EGFeQjLb^Stl+ zU_zjcr@SXNx#g#Pm$3-1uHt!s|DPTF|8@Q+uU)bZd(L~rK9xZ^`EC1rVD?D3qD^UQ zP2ZVR=NoKe7JZ8yOU5dDX8GxX@}iB(5_D;O+})oIlrLr8G9Hz6H_%5ub+8xfcv(N# z&U)gNr5!1^PsRm)r<@wNZU*hHRg_m`Oikd5JgbN;I?#Jhz{d0Eti^BFF6!@yX$a`+ z%^K@#&ANZcx-VkAH6_`*ogAUNS(jfAuAB7p4f+(^lYEm09GX`Jmqx;ap*XO&=ls)7 zWN;0r zkvs14y88xZ|GjZM#W*DHOnYX1=`nc0A8tT50q==d>zC)j)uZnL6EG2+htB05pkM7s zc|bE^bN<#+N;g zbaKsqG4FikeFG>X2Cx#3j0Mgd0UmXB4}>X-j={tgRNCN@PmNK zrg^399&GO!(9C1lV!uZp)rWpv_eHYO@3$(mE$m@4`1b&Ov+7B^ubcA`+f7P>@QUU; zvRkK5>9j61DA%nTXYoeYteU$II#|HIMP@nrm>TVU*H@Hx3YfJMzk2v~XI>ZoI|t8Q zC{rr7kNJM*+BS8wbrofrALT4FPdOcg-%ch5DUo($k4X%0@jB<$9&%O})A#r8u(t+E zGks~;5{2H{`sbZbCm*o=eCX*==bwKHeddFIj_`dpP3bq?q$Jv>yl?GEP_C;QpXk+U zs^+FMmYs}M&RKfN=`1<7O^jD)XoI2ToaA@FPT|uSx0F=|$4&Xt2E)BqDH+A-T5R`G zRlV zx+i_ip#OIpi^bSr=v9YPQe)`-ezDp(M$F(*EK7Db#DoJC&_`c4}w7@6#zU-opnS z-gjv$7XB3ccYLA$4LbpP@&)*n$N41ZE;4s+1?!SYUngg({+?MwVB8SrJ9E9zG4MnB z+dV=%&&TnQ*Etdfs+PIL+@m4 zoH0UYZR)O86+d=aH<4q6AN_^zLv?hC`A)h`@r|P`O$+H#($20@o6h^Xk-tss)#@7C zTnlw24*clf2A-~hH_3kXm)cwN;gLO*GgGdn#y%IknH`E3zi1nHlh}>n`uT-90lRs? zKOI?IJEXmxzpi@+I(~S{yVl1P<+=sLAGE7cj%dcu*?7E+c|X2D zGFDl4q17Ur+9~H(?Pe3@gdd0boUFgL_oAGv?M>4006H;y7x1iS-37m7Js%`Thpf9_ ze{Y|=>%uyRY@pm7z#3n)hYrOvu}y!7-Y5NuPNylz`rxz!J)lB#4Aw*NsRlixc%fa# zY13FGH}vkJK2yBV-Ce>9eP;?!tq9|nRtU%XMksSpF zBKM14QO&sR^lKu2b~W$i?vvr~i+OJvr{w*7aE{^oWRU$@1QzmJ_ES8+tB~WXC@1^7 z3OQgno|Ef7FI)$D-O_S?AomoqhWH_f%n^o%nX$>d?Bh&cJ9u1y&E5u$$x_YUN!5hyL{=hNTmw#y{$ zp~tq9hb+>7oC1vynKj|Dyd>_c*MA>f{K2K`z=LqM5wL+kN>Z3raa zsQcN)OIhytatEOgQcl4?L~S6Zo&RO+4@@Et6#ChOaZ1A7V72w07 z8P!e`b4@Sc{-c*RZ8NNMK8fFo&&a!P%tfx42A>BuYm=3PipBWj@V%%EJ!(376f%QJ z^yJJ8-)2RL%R-MTFUn;{d0&Vy7NEa`ys!ABy^1?+CV1hFXH}YohExO z;-%cXB>!K;%iPxG%&C?=!`%?^Rp2G}Lg;u|^}_-g%g=|?AgLe5*P;JaviHH2qvW%y z4FYcy=Wq`2x&*zzvLMUr=I)*B2*tOBd`6E=an5}=azetX)M&?^b%wI`afY%}6C=tF z1LMQ-F^*dBq5Y<~vgnwoS?$Z?9iMSeSM0U1j&?Q1aZ-(TEUdHb)$v5)>d+AcKDPfr zH-kp?RlJG}qyiHIdXLd>iwLcACcIXM2jd#go=gTtHuOdqTf+B|H@;vks+gOhx&b{j zbY`5-TEAi#FMe95Gr`BE)P~aE{Iji9$`3C)dw5yO9H6Wzr9pBRUAy@abDG(t)R~dz zEYC#vYIvG&H`Hm|(*cdu+aG!c-Bv4+@^#nm(B9)=&F%jtJx${KJ- zxg|X(v<~#A=lha%xDu_`7?YJXNMcO4@!ifkI9MmwxQMcB=DUTboEN`9dllU8Qj+tS zwVCm(1_s-qVa@!Gxv{{$NR4rwQlnhvYlu_M!Oo8SSE4>{U67;1?}HY%qEjA9#m=d} zf6TfdH6+(O&HG+Mn&S|$5}(0m?6lnzYp@sN@27#Y;CH(rx}behwA!A5tW;J1?`F>m zW4tL1n!CbSYkFDka5uSO2IXHp@^9t}qjI|B&TW4f;Or)N$J5L1QZ1e4{Wo-$th2V3 z?4Q&56!%T_!jEpx(pqN~*gAI@CV2Pr`4C(E4))#;(1X^}@A|)&=|}$KfV} zYB5vi44>=xBvW@TAI+ZGdOLDwh)yIjr=+&ov?DpTULhxammwvX#afQEp9fx-yLBSb z&&HsqjfGZe&?*zO%IrUbkH$Cg(Re7MAyEG^XBXLWr=py57%t?+n*fbpgFMoR4P9iB zk6$G2Ig>Mb&S2$ir+!|M+nB{2UcXiS-z5H}TJDYJy?tF=S`qF48 zeSbo&0YBHR$(py?F+X6xO3C#P>9cy0R>$vvj3GZ)sr64(%CFB;mTaQ@^%Elkz4#A0 zrf79-3C_9_%9PNi!_M#VLw--!>MD$BZtZHNJa^vp-hGCo;I7F68}J?e|0VX4|G~fV z2ejF+AzTd+4o!ICmW9N$CBXZFf?AaZ<-hmxikM&4xyAAp9 zc4MO4M^`I3rESd349>T)Mgso|d^~zMe_D{KEWw$%6WurH<#(_4$a5WU>#jPn`bIq+IS?W6?q-6eDX zgMEIW2)W8Oaeg2j{Mv>5jV^(#&YY2lC$V0IyV87ergh;xu+ZNxNb@E0-fRiso!i{8 z%ncmv@rC{9y>)Wm-FNt%9U1!mDBm;lu!DfVD}eF*K{&SpXY9hW^*+OG$EEtdKt5}6 zaNY>4xZBSyIS;z=Pd-3ddCJ;vN_5rF|PIHR8u;Xdo93a1y#8eho|MJ1jd^Av>M{ze|~`_zvC1 zQ=flPim!<8-M~x#-IU}TKlJyRB;C%|6aIhYIG@P2-^AV|=h%9k?_0TtWbnHu**BZ- zLKDP>b)ns;3A&sv>oJ4>W$!y!w=lhH$Zevm#(L=T z4?3*{oiz&m)s0M8Q($(KV6!Nhs9n3+ZQm>YM|R|z{G7PcJCV!DnL%7oC^pxGe7FnV zp^v$5oKJ9G@ImsW>F?ecuj`e9^Y|qD^>?qzeZHZ+vmSVc$1CtX|4<2ZyBPXi1RcK> zdVUM`wwpQ64xLk6nES(na|bVKY2&-}2MrCi-+d7-HT>7he;V{XJzlBPcE))nX$ zCicJBEkvg1F&bThiy}|7<9A*G&9d;6yusHyCwY6a4E8kD6k#u0|IW*(L}*C9h>^5B$Zh>UUdlFK0u*X1BHW za2Aw;%~Ns$=PTCWy_A()sGG+-=N3;?5?!2w*NA?|eh^<7u}>C1w|$$J7zySS46=vB zH=zX@|MhjyF`_7ysKCpZ^>8F+;@^&Pv9W$T)e9v zeAk1|P!o02_sMi;e3{6#JK672hdYzo z(ABrvsUtk)OT&1Jw9{osb9BktwV7hyU|cDT z%f>U6r|jF1yqVhe>61|{9Tv`@@$-;+%Nf_ff5n#teXrzO=v4HTOs?=`a)ryj&4g!U z{?|m`UA*^G#zC3loA7yFH6g(PesSqppzYd*KqoxPz0Th1=Po+;I#cV)iP-y9<+S%D z@3x9)Z!n8Bt+8N(0TxdB?8Oeb8y#N!hfW})c5)UgaLHqudGL3}|f%U*!+DPC$TVxaAU1yQy zR`dV2;X5mN0-qMig*C7t5?MMP`kMe9PJ|vOAxDqX<16I66MN#G3%PH;tMrdY*G!t= z?4QH458IL0Z1BNp*^doG`V=|-48IR!2NC?Wur9JsiDd~?PmD{bnV6E`o~R^rfIBBR zuWDYB;Y-ICHVfFrAO~S1KY9xO{24m+X?S=e=b@7x9#fW)q$F&>*0!5^@}hBf}8u zPz;LWc;O6hhC+_*hqbav5lWu&a9ml2rsT;PYX@_|j^f*=DnSdeMlzQcL$r4luszEY z*@0Z5F>bl@uKT;Xjr7vICgAD$hi(U!<-oKI*p|ZAmT*^Vq<(&M&n)ESc?SHGhu<@- zqNfal`LvN?jy>@bm_I!P=B~d7^W`C!b4GCq%ufUJ&wzOYFjpU*|9*Z{$frb!az06( zD93u>zoB~h+(OOhbprqRhbs5Z1pe0m{~X}20q6L*5bR@bj4L~}L~#i0@5QOX_v$PIQxEhUjFd?!GF8|W<+U3tF#efRmw_r7KhB3n?m)N6 zhZij;?r;-vp5AMnftB3NxSjdC@oPP?Z+q#9ffpZaP+e<-Pj9yZm(wTke_>8F_W14F z^#1YZbH^&znHd9i@zUp!HMT&f_c6BJzzP~u8VfHPkg-B*V<~siXmRXPV=ZySTxi(L zuBm=tt~Tj_Rhu}rOd|*S12y;0)ePKYP&0GxDPSh^h+}R8YFy9-Zb0G(5Idd!x&oKu0cQGdmJW*)qr@%ivPqBr`JfW!$%@AveADm}Sb?sc+ zg?S#b9;v>6u8nyfsJ=MQczvGn`aFluQRrkW^E!;&vQLc-?q;qsHs(vN_-MD6d8W!d znWG=sQPyTR;}G0%B`6|Xs?|BZ#euVD^-~UMc){VJIEnVpFE?_2m2pJtcf^_DE`~Bw%fCsy|MZapL$+gyVCQ{y6Ci%H!ZZZug&%}1B-NY z{Nv!lg|cf;cox@PEVr;OR8DLGDtHeM@j-u&V56n3DJXd|hSC?=cam?pll|1B7+pQc z@bG-bW^`oU?0mKGcU7;d5r*`Fo0V6EAJLYs&+L?I`5YE#;F~iSs!o<@~yVO{B0d2*4Y#xDA7)FxoMr3*MJ&>osNM!mmi$iz9 ziXK)K#~xsBWNOao8P3eBA|}*NkBoX``WQ`3zeaQZ$88;Ix~gTS8=O~(k8m1I~tx?%scM6aAVMB-SJf~vUe8q z*}~dwMsIR6=NK)j^X-G#-sX7a2>bX*#$7e9Dt9?vl{It&_eGqAo?8W~E@!0f!1XoUg zD<|pWQ)G^v;NWX-(uYDHlwnWledy~?AF@Xz#!dP-@Y#TVZ@vGk&{Mlw@ymPowVu5<)%#*X`^Bg zkI`Y;z%gio!C{`#;K{nW!BeR^TH%>G4og}2KU^n^`E*m3nC6-4eBi}L=EC?dmghey z-}JY^aVw!au+tSasG#Q$x5?+CS87cyrN2PWJ_Mh1K>y|ZP2qhK`?%>z?(^iM>oLH* z30ixQkNn=rcs4nlflfa8s>PkjZ|@9e;B7w8AUFDSdGmG7z&m`lv-fuJ+hbN*4$ipQ ze&E_$?9!k2*+_fyb;KK@#~zyM3~c^Mg#8e9+Rf+_TMC{1(W>&wrWXwMrb$YmnKDAR z@$YOA|Ip21&mH8katFuL27^!gMN8?+%;nf?M)HmlS6$gqngb0!20vYHSkl*>&=4?S z^UUU*oC7o&MBa|`t>M#!AFc3O+4m!z3CMea?ZE31M|vhl;lmjXFNlFB#3F;oA&bYO z*ChDQLLWbzrSuYO2BDU&Ud4erEgLCy5}kV74@oL5gilVpmMSj=tfs9D(s(w9jo@-Vx@n> z|57;K9%ny;-|-KCVUID%)w70pRW-@d!&p*|?M~=n9vKr~yXjbR!%gYF9FjC3cft|W~4swLp zEN(XFu@rXv#j58hff{VUZG-RS%v@rAYsin`b~gmPc8fRasg_b?TJLhswXzkH;{-PF z>ga-iv~z;;;)^9QQ_|MG*oqe@X1z?!xKNpJnm<6&d~lm2K=10leo<~Sw=_J_ zH|N-k;N!p;yWptU{<{_tXTrF;64Y8bYw2bmUbZF+(tXK;Yl7_{q3Tx7*{Qn*+#a!f zOS;c8SRPz2?fPfz9Sc}TWGnVrdDTpP9c!1%_i3Shq4ItBn5Qx3W1B-`mUd*^cAh;i zOI&tCLiIc)Ab3(@P?EC7DSGUU2Hoog?@N|X@-?BK7FWCHY9^CcQPV#dajd^i_kA6^ zhrnYl?d0F2>bl#AWur2EcTsl4|1vUsrKA0~GQ;N@?Y}oNeDnFQYqL_j03O{{gB=Tf zz0<*bu>WZ6l~0+^;o3<){I%lVVLr{KXm11asmB-D5UJ{LtsJA4>okV_;mjOm9jhF^ zZPM45^nqU5`5JxT3t)rS=zZ+GypJmIstA0OwG;f6J`kO*6`K?EU zOVZW8rktdfHQ;2J20A&%lXc^qFIVbIThnl{AX(#9gSR(z2vVs~d@KZ?5zDNc>bsFLS=hSjs19ks-Frjy&SSh2(PcdMX6mO&%YUK3w{Pq8eG!?#0n|20tV8Lf^p)AtE= z)%%DJ%wMl`F=y0p?GJ4pGe$UVzdhVPjr|XmHyYMzXl#W z;`qNl+4qLt2DE=NxQ}dh=o8ifJ}h#;%hc_%soeD;CcWowi@-S-pvttW1QbBOZez-kRL$cST1 zarmBK9QxkGW-jnO^buo(A8$A^P(E%roI~fcdkVX!_|{Xe_>1kOT?UhT3-n^sm!a?3 z?B(jg_Z{>fexJ!XS6Qr5_XB8e*Hvn*!Wn(nB(*kU9M4j&O zslSVIul%c0ZpSx4Wbv$*yx6YH?qZ(We!I749)5JH(l2m_-zEt@90!&ojxj37ca5wo z`$1&O`fK5_r`W@HD}h;$8v^N!yL<5^^n*Qjt?#GgvmCL#@)^DfgLqN|?c{!ek@ulC z(}yu#$EQubx=dSI4Lx>eEv}YvZ?fYjJ<;s7P+AN%nY?{>b`Q@o1y!&svUcaM{A3F?7C@d4Y|$!YqU9guJLtIMwc&%^A$LX zoT>hjv!Ex{CF$&eN%_$1AviQZzP+j#C80VYqO59KjD48Qw5RaZYkd1g>+h>9-|O_p z87R5i>1S-h$nvu<3WUaicQBAbjYiVsMEvt6-A#2R8LN0FlZ=T4$ zMLaiCMq~ZR)8-wAoV*X2qZ3$Ie$hhC0*jY8Yy4Zy?rh$rh>RS|c{Ja(c)sJy+syaw zm+{YdgqVd#Qqs^FTqW2YD&DjOjr?cjd*5$Eu}Ej(aYOjrp28o`_SG>L8T+&6>fe{U zJ|rg4?tWOeql^DlbC#v)7FhkTmF{KyGeK| zuVbFQyg@Cu$O`E@IQ4Gz6N+nc0L@b+_t zdp6&x@9}e=7yCtD>naK1Ue}+XN$JQ|tcC4JXf3+m!@mVMHhq)d^bf7C_R_z5B5OE~ zHDrxsJ(iAZ4BQ^w7Zw+^GoaFp`73b&e@!PE@ zUxfcBavpwAnX~dfXJ8d$IS!0JgciOId?V7oQ+jed@e_O(oBb(cjN=q`>&4ag>-Y7( zhn-&T>-}t9a#`${AGMxVBfK*W9d$Y8j=XqslpUU;#Mg61w;Dg!_o#Op_x#4;o76$Q zxJez>xT#01aoED8?lJ1dDjju-){$3H{YER$(__7RJv^Tye z$E$4ITAEYCjYQZ{X8y#tthUQpcWPaHn&3?%<@Mj3?WD8!&jXRX-jUP4w2m$`rN{eIp{Y{E%nOxr5f!NHhLWRM?uv9sT06B8 zmc3K%hHkcP>7@PB=qvj9%3|zVVpDh*+qQfsrm^lZ zRlyewUkB#8A6udO+fM9I$f#)rYw4?8?A0s5^HtESY+IDKIXc=K4V@zIRo|BXsek_k z=)pdCxY*eqr@h-K@2h^mGZXkfUVV*6?5O)VkCFK{t1({e)2x4p9=H?X#pG3Ub4P|7 z`s>E#TaPUMHaRD{p$&rL^1Et(leOhF8$LS2_QO4SzOor1Iw1Qn2%c847d7^x#$Fss z6T*An2`uW@D1oooL$cR(x{lnE{mp@L;>we%XQ98N2Z@d)GIl;bgCeJkzFSSb={%ut z$%6l!=U`)xb{qze7gev`dl)|OA~<+B^Ihw^;QwclKWdFh=%|ZxbmYB9zNB^?_ld9L z?&=qZ?3tJJJ#)kw@==emoTlCk>g7Ab$mZT?55zm_;5S`9t$2F0grNq;CUDLHUm6Aye{qn zj!W6Y;JEC8Q}}+?g5x=c7)Q<{acQ;SGPY|qDc^Qy3aVfV-l+sYK=Q|xMb&SssaW25}> zbo>~JcR2r0DR$5$*h6o_F1i@|=py_Q782jOU=?;#-8Vt6`}}pj)4)yt{?)anEZ<+k-)*yfAMzbJrA_QxpOgRPL-JdTZTOhHf0?=6#N5z@WDhXE z+S8P?Ko8CE`+V@C6S%D8<5j)eqTsjLoSlZwG^5&N&j<|n@vH<6`@pFTd2$wfinG#F z>mGXlJn|1Sue5gxBG}kipSn=G`WL!lZOD_|KmS6*LFOJ zTsGxqyVxCUf1I~={_euH(|Om;8E5}w)&G?nI+sq|Tu6R-qOj$9Un;mF_x^r0hw<1a zc)PJpPoVGhj~DiBw2(uWJ=D!U(8f9Y_i}#w#oeKJv5&yvzu@!zG0#u1YfHYO^<%jg z3m?S><`=Fbv1K1o?y|C5i~L_loPVmh`g9Z z9r70I{*Y~7KJvbMUH$uV7CXIqrKg?z64R?We}(_Z`K#~B42)|p2uwJ_yO#=pt>)fw^scoV|L9y>ls0eekJ}2@zH{Fo|3J3tp3FKU ztA7Dp`{poT=GZ+PzE|Ji+n)`58K*&|3~<)$tSfzs&t^mxzT5X*gw> z-;aSo7`BFK&i;s*ly|dMtVa|6<9a#P<1d_XTvB%H0)HQUDub|XN*pY!ui2&T3M?JK z(nQ&kb@f|!1Izy%IEHXX=Ec2u%uC>znp+q!+1Cfm(+dOR;tTq#r7MhBl&HM#_SKbrC+g{)+aPGcO@t*~Ed%;gV1~81nPu$?E z0>)LhIs>nWe?hG7Cq4w;p>a)MTpRUun$V_1FY4=NABAzW4;&Z2#}J;5YdZ(rzW_Hv zFiq8QyW#Oged{;e*(W)-H*Q$k7p@zsX9ZuagKH2f--{ej1fCFI)1UkMn!XO$?Lt4qUx?h&{S}d$+|8@`uOg(sY#Lk>a)|5j75eLn3&m`9r#bsm1uucU zRi2Zb{S#y@z%MP;+5dI+T*x=kik}}i2~1?4i=H4hnG^IUw$pCLp>1J*K5EeKk_M-a z`thHzFBzZaK!=m@1z+BZKhp&Ld$H=Z`qzfe`nN-mcZv?j8Y~;DdGq+ZLY$W#FA5F| zPKciA#=nHaz@&4)sAyV2K#S(yOye+I_=-HvSxGJW|LVkRi>9f8p?fckp8|^s;OoX& z%o*GYH?lW-fcqph zRkt5y@(lBh2yjK#=_A%78{R8()>LxjkI}r?cjDRG7jPsGy}4rSCiiZ5;8) zxgoIKs0I63N8!!F@7xCm%2jMr$OKOm?w#f9!N#C}UpdA1G2iXbA3JM<9WJ*zE5tuD z=MC~to;v@Wr{qeki?k=a@)AA?zqy1@n&Fe<;gjeUm+(p9OC#~gyMdGB6#7L=spKxR z!?Ui3Phy}Aa-g?2);TgnL! z9ab*UR34SOs&d&Gm(&4zv8iL)zne2V$uL(aCdI}8BL9fq%r`_0by6+q&Z*v*Gc@eN{S*3d2wE?Be{M$uA6So3%dh{W*n!?jlL&X zv!)wDJp6g=R^Lm6(4geTgjz~kZJwkhy%Xr>0;y|9L?kKpzd*D&E>UH{kDPu~YuSU=WAU%w0GM!<qJxNxtM3hD0?~tm$ev+X${v|J2+Oc+ zuonJ53%Rf=X8zuT(5>r`1;X&XOa@?VS>!#e!k0?;zreW%n1}XaNKVw@jSLWEp9sB> zd~Lc6fX~%X8NmA*xr|s3o$qH~?-RPvjjcof{qQv3pTpma?7riC$5%~aBA+Nck?E5- z7XACrC;R>oF1O=q-*3a;ciDZC+ek0-^{ahHhSq;?5-~3DU~Cz+cJg!+XQU8k^fqO} zy7~^}Wx+)^Pmx*vj7%cW>OnhOW&(D$LA`!IXWmlQ%Tr=b!g_nw^Wn7{w1S#((m#3TYx*0>>ukh~$PfoB#&5h#YN6v@mnyvMb&F(1n zs>lZVf9&(2|7GKMi??Rbk56JsM0OLOF?5WrbJ^2YJ|B|ruhEz^Y+nnH z3Grq8`1F09$6atO>}~w`^nES)W9){ zJB#FwNFUqewm@$_z18K%e_zM{E;WSzqN8P7)N>iU{DYb5EDSgN>&ik-2*;~n4UduQtq3PG~6#cH=ef?g! z&!@qtv^N-4J_bI<_U-eKZSMBpR9V4i1)ux)xcxUB#D_7zQO(QeetTj+c#^{x`&_yj zrRQ^cw`q!E_eP?V zQP)bHCiVw*<=Iv1tZA~p#Lit*Z%H$O2Y15zyYT^5s9(Uizc)3hWf$!v(oQA0(2udt zn7!`L|G=f`4|pEuPT6HW9}#8bxSP}TTi`dCcBgUCkLn9P42sAHrYWoZ-!+zn{D@ z-TTuwuJ%ryp!t_@)|N9S-jai_)=%EZ@qY5=bl#i%h4i zH2bH_ALD z{%+eb^hMh>te>o#g>^GWn7x&Di{H##D*aJ@GjOQ1$M_F|18tPEyfK5jJyX3k+GAGEp?Y#5mc&!#Z2JG{R+BGU2}-+!eTEQQJ#*NTio))f!`$Xu_)xmWCY!um14-+K5b<}QA} z#qUCX7e4%~xq{z?{Cn4rX9i7q6v zLo=Ure2&S~lgwbk8>^vxc(aaw{meBI;(#qm*5tM7mZ`Zt^XPClgrJtEztfBeBMU zw>k7xu=F(lsg`-{dFeA#i?n>BgC}(}ixSHomH#uG@jIQ3mQ3jrSwvkr#iQ4II5ust zj%$Tp$7qo{Qa@AMhg?+fC5zC^G8ZOtjq@9@z`HYU5yCMfX|1DI;; zsGAder{$TdFFa=rsg|?!JEvxrN6LOcS@Ju$KA>ze<-Ux$!}2ucJ}@M^KA_xF)w4XW z7%bj3#AJU7{geDt$B`92A6&~>z~Kx&n%{fG*m{SDdgk$#Z{t6B7G3`=@0NPb@-D?f z+{=;_&RSCHjjeZi`e;AZ^#SnsK;ZF6Wa~4YGoI__J!O$T>saf&dbM@DC(m;`ZQel} zuK>?i%;Q~mP?ubHmRG3z3Uzs(*h1Z(1Dh7=<}#jdvEDB~qP8Y^W_b$1zm0rk&&rz1 z`BV;m4C(3^_x``iy3gaRHXPUZ#xB{nHeg-NT59k*2Y9ZT%q|D}kDMJAtvInv%XG$< zP^PG$$zq0Xxo(OpTR@H-a3n#?e8XCgTo8P@X&H9*8qQa(+mTC3c;eq*=b&DR$!y7@ zUHnWfS+t9fk*kDuOQhX(afvP|BkzW^J!+d8bQoNam}m>QPy>FRFxngoiA8KD_G||8 zUd-pc<6WL3k@znd;$3m9^%49`u8FzLa+)XaEOEfD7C%ZOu_ckjrqna$k6v!J?o+gy zA1NF3Im8(@SmQi7p7&_y2Do9CrUmTW;dc4znhw_{h1jJ`=%S3= zvBMcrSr%<()8^1MX&PK-8#-$-e&5mf=5B{XaVq^4*o3S6AORZ z!@9pT1dm=C#3R9{FdoH&Lq>2YpFD%7U-nw-!J%5kH;6+%>u1N)J$q>5r6D*ptQ{SP z{%$)rD;{t_#~+Dh%!C*JU&9?_+W&8Ghxp1t+!@#)adsBs?4s}^iH0A=K&xW$FNq`0 zF5dsqSf&3%V(gA3EB$HcTvdx3bbb5yG^KwP_F=Ild_~U0FYufACOJ~Y*G1qXyv$V6 zQ2NwrQ|s@pD-8Vh+Vz1ye629B3IE3J$kO(4+qcP?PzmMm*V!g^kD9vbzWtk*_^VC$ zAY=c?XFtjL=j3$-TZ75ifd1DayVxwq<$roPe5vy8rTqiY5bhM${m!z9cWp+do6cu7 z{PPq#TRyTKcC&KP50+Ga=9vuN7=yphRO^Jax5ydtmJ$(P|7w2ik!yU`oJU?V=l?Cg zHs@#Gvz{LGMMLfk79eB0q3fsAXm5!cvU2<@ukBZ;UW7Q`;@7AGnsj-&B z(5A!d3}ug1PuKSczGC5c`1oesAA_7cz)j%u5k7zKKO5mY_^gpw&I2f3oaJOvw=i~bUk^AYcK9%?uxZp*0;_bvp+T4phgI+3dEEaESZ%%6pu?nx zb(ze%42R8^z(sK9*Md8x;K4Fyzf;Z~z?~2-Tn-x@U+xHeqc67nM zY1krd7L$V9Q63t?+GN8Y`XSYuz&hV;H7=*s8dc72ShpP|n~|1xDjGw?69F(>kO z_-sa{zZ(6sI)a>tytAuXC$>fILy@xF)i6R?6L)nDE$e0Po1CF`s~EquTLmqvp2zqk z*W!?N#V56TF*X_eGQ~%Ic>ChNZ)e|BV>5A64&7AG7hvL@$Pz0V>q^>OK%32sRqmY& zV*g>!1@yj=L!@u1EBm5`cI?m8~cQf|=>aFI7 zAC}S#W0+v9U27-yOLue0}H`BroizoHa@;2=NkSBelN>{ywx$ zC;UC8VU)4J<1dtzvB2XO&D*4pWhgHexZHn(GZ2ei<5ap5c&vFyJz!&L7T9bUaSk)Q zmzLeV`Eq$fVEE~#OUt=8(WZ0cHXmymQkHQ?H&J#Jc(4AhGJB>H%GE8;`;ntWp3=Y1 zQv$1*SBx6t`jmOee?vbavw4vpB^Iq6J#jIgia|L}bVTA(0zPE8CE!Vp0eKT$)q-3o zF-kdOI+n!`!xiawIekdn(g3=miX3-XY=G#BUD)X}(Gx|6I7I%?p)!OExzyai9EPvXAV$TMtRzjU20woQ2-rL}EB-XQitl&^%>QYjd63v!E_(FZ!>qK01_} z3>&AfBnKUU9Mkv1rn}gOrirm$8+%apV=q2&cc9DI*^fP2m4GgHBcsUt z?7B>4(q$?Oa*Dvi0X*cr9XZ{O{4eluAg6@jL0NF4J(E21I~zwV+nX_@Ec10|(C&_n zBbMEqerZ_?_KX4Q=rZ6A;%=e!BaP<}`7bVvhw?6RV3<2D_TgacjBEYR zz8rTCtH(UIEW2`FHOq$8VP2hg(btYE_tm!a@_Lq~)XNC%-BIUu$K~~0cTlh6%KbTR zzr3Ee{9=D1li1lOVR|7tpU}f&Wg(g93xw0U!p zKZM>@$AxfS#u>)nPR{>E+fTj7DMRUt8#(3B{*me3X5^F$Wm)%V&VS9ycShXPV#9Pq zU0S{!S*3=!%#rq8FS5#ow!sgPRm{q!5!>F3j54&W1$#vpCx)(%PS3SV%kD--F=vcC z=0n&aF0{-17Gj6Me|AJVQG=c6LRrQub|SNLO}J5et_hK>>FX4?gR9HKp0 z$OGoek=yN^q|6qaizS}$GjeLiH*7CGj{n1l;ExGBlr<2X8|nWrehU8B@C()Ut3G)b ztiOn-@DTk>)+BfbjWa7xlopxDaf>}xa-LRT%XKps;o%FagWQ*))Si6v@nuoDQE6L< zS(o4KFE!(H9h>-q8W+Evyq(z{K71}RYM;+(wl1j7^0=X++YJ_7mJwVJ&J(<~c!TT{ zu~o_0tcFcb;zMeXwImO`w%_5c0e;93E@)hBH}~_|*ZIvRWQwYvs{SfulB%)F`EJ@s z7kLX@k~v8JIecVGHFTQ+;@kxnh@&}LVH_Vk#QL?ZJ?E*Qy%O@)nU|9D@y*T4T+DR= zeoyth|GwmX$mjl0<}CJW3u|+1ame@n!&{N7@tGA`AbnI%F0l9BNnCvUT(8IOv`UfsRsWBQG8~N`7$_zJ83MX@e5)nXKA-u#*zM;~OwogZs&g&wW?% zy}-o*A5z%tvgJIxYaen%xfs*8KE=z_=mvN>mda z{r`5eU*tofd&s-_j#HK9lNx>aSVcFDi*MZVPi%~j?6 z=kRv1liHxACS>ZGX$5|Fn#f67CqCGn^#%5zW53s0p>mH5Yb&rBYPXefY24*xLp~GS zm3%+=5V$Xt14e(!)UT~d#+Zb64O z?+Eo*E&2&CsTO-UJQCX5U$QEywFtUrj=ps-`gU%R@w!#{aQ71Rr&B*Hw_RzjCDgs7 zZ`NZse9qi)<+*N#-wm%99Ky#&gV7=Q+3Wo2J%V(*D<=M=u~LVt(u zk??z$?5l>5J!<&AsvfqlL~q{Ic)9I6ytl9k`3BHmmv0`xpO+X^fg$qba2S4@7=+RO z`_>iyyPyB6p)v44S8qBpCVaBjBDxCq#n5*(=WL>HmlT+Mz1X()sixrW>Vb0Z;m~av z5<79hmIDrVCW%cXWIy>7x_yAXA?H~KRHgq@)}H(M~EEFEJS#b=%WuW1Rtg8D7r| zeGoc2TAjzR(+#f^L=K5@Ub!!Phc2xrv~`=)&;+gf7HXUb(**=)&-N zLKk8;sF)iSRsKP8@OuEIeNJKXUekyE>2`x&Mf`N_?_y)I0ys z68v#)!!Kts{yB^A(^*KI!~*iYxK`o6qvv}$cp{-Cybf>mU0jp2a~Ho``Tq8haw$Xp zOCIulJm2%tBeIaiM~^iza5rS=o*V6Ir#;!my^z4`4x6&)gSFS7KSb6(^RuU|S&R3! z)~s^cuSX_rhaPLl+M1f?=;7?2d*73GUwf&HEjf`zhp3)*&`SLG1sR(=nsnIhA}&GB zbi*?ChsN=3e@aVgDMq&Dj@7nZQx&^|K1)n;*N@pnyh-iz_-tJ%)KpRE>Oq>X%@ z;Ti5*xScqPe+6F2_+h5tr+Lt94+KGw1AUE!H{sa?1Z_&B+!i zlUy+_Ed^iB)ToX+Yg|WNT2e>dTw{vmE@PSnpIg^id|>jk~go9H7B=C(2f3>jQ??prx#!05$5g5@`V3Su`nlNitFsX#yOSC9#7a z+m61jDN9y~KQ}hXDa9Ra z0`%&o@^m@-=ksg>M|b0gj*Y-lpBP?`yHClz;W2)8G560&+Y=wSD;ALjUK;kmbz%zM5`NZdJGE6J?xbK)K5O z$(|ot2Qr*FpLA@q-dbhzjOD*?Rd;(@IKTOhyW4XI-=*xY3}am%D`PC-`fm}ZzXQx5IOcHsdY8%vGW) zqr=TJ$0NK(dxV(@wq_`MK3UjV+l;4vkB@L%UI_2Bq!c%I<*=7)`G z_6%i-_+pmuk-Kc7RI@i4zsg12pT19xsX44XYK=)!=DvV0^FH{c%;N7S*JK^JCabs$YfXkTkRow^*pd>{(2dER z3m%kzPMI~7`8s?-?uGb@7=(Cr`LybK$sb`NXQPEXwA?qvl|^xfmOC@b5f#mo zJ5v>ScGT4y0$ZZEXG)FgY+h$+U3Glh(N#$={I&ho{eL~V_RL?mtXtU1f8H(UZ`u0% z`32tX`yIgr$Z}DyJAK=BM*8si3T!74Y-Dz$1lLM6Y zD+-W7kT0U_&b;mYMm>*Y)O2Uw0%VY=9PWjcXD(cGHDIf}6v-VU$>b>--{#$_w3sNL@gJe{UioeYc9yh;KoNJO zEdYl94{7fn7iF0@{@?cu$Q(F>fP=}w6Ek=sO`$Re=zw6D;BIBRD@a?wsAaV!9!DWX zhs-HDtURyvR2zd)n$F^-kz9lgn#W+yj7@2;^hymnrl9fM3}NVh}Xca9$8G2yU=* zhBEk5&S0O6j1zh=)<;agPH^b8oFy##RpkxH2=(?HvE3+CYfCcAO-+^4(8HPSHIo^? zs`qsB-+_0vaelGLC#F#Ur_cmKr`!#_Zsoh^7aHu7&A~Eklp$vukBHFE?|wn&u|@^b zj3lpoAK9v#-wD39CI-Gw;QQ?-b@L@oTnck9b84XfM*3pK7r;ngGQ#XRhKZa>XXc*9 z`Eya+MNY|F0H@B(G42cSvde5^w12I9JGnjA z`YHZ|-$hYA{BMey=rE6?-Gg~f8{yb8R^t67I%aXNzg~%zZ#tfdCp&Nd)yNF-kXNhl%&%wIm%vav7bk{yr8837*usi+kXk_S$uDcl=QKs0v#H5{} z;`e-xC2g|z29ip}un18+9JHBgCL(Qk$MbA7*}6Z2C_zowjL zboQLz_p|4$GudnGS2E=`H+)rHJEdv%lL8J&{zu`*b3NcuwPLY+Vm*6x-R_rrrNz@+`HKaW+mBkbewxi89C|P)49(Y!nbg~ z0YB;7)49)5_{MzdnCo=z>D*_9^DUBZ%x60HbnbbyWqHRK_l=CjO$K|;Q1T7|{w}@8 z^FBtIAAAqxe@Nf|JksmMwDr>e5dQ1r zKlR^Dc|&LuZLPWVp1}Lnm;Z zSCC%Me;xk?-UPO4S>tt#d96~rE?TFDw$nq~2``~{oq{&K5^gHK?42&>B+LAlv95!2 zF6SoQt=MxuV;*m29-lAk*Yv_(#ob7`j}Cmb>FyAFP967q=EcUGCb?cR8M&G2}oCcR8)+s*&C z_}`EJw97k-_X^(i{MYe+6X`dTez1x3I>o!3_gZ;R;C&YVNxxar^Is?bd9Rgs{_FTJ z=ir<|-}5Q!-@*7VO&j9KKSJD3=ztuR7!2%j+I|L&>tkO}Q3rK*vgd8w)jM5myrEUr z=1oyA(JJpJ68D0+7COYo9-hh>vO;&L&>cFbv*bLqOn^q|-*Pi)oy1ob*-SmO(_ZAe z5{u$3?(g#LMeaW*FEB1zQF1?LFh|Gc`4!!yk9wo*hk9$H4jm^>jL1=-F)p9ad}@F{ z4m$VPe#Kv~0r@fet|=8+l&Z`tAhxl@nW_An;-59w>Ft=Q_G7E4ZL!9H8d*w(|*lH0N=;jaQ8j;aGut+Pn0x-YCQ&o7A6Zq`w{dWHf@b$`&5c7%oOP_d433IIkM}MAVYkHgK&!1HNC!SIL50A3@ z@1dd)L`LVWBs=_H8Pt8h+K#rnf?FboCoBwCVE{i--6o*y=lpZ{jQoJOzI?sKPb~YIJ8OFW%-L6Wg;`p1^vSO4pb4&rZaASN zn;Ufl%?p=?CpX;}k(>h!@fLev&V7-|IZG2ull1I+?__5aza)m(CG*PJ=f1%wyit6F z@dN&FdQ9@`OA_Obe5cO)=oP00U*nRUI@R&b_NOi1er)%D$eQ|EA76ChHeK>t1NF&o zFG`H-y`auJvDIlgp$sTFqNt9~x39FE_<(q%tY7gTzULnNZj^rAMc?*nb5&>*dOXBY z#M$O5u=~4px!&qONX$NyBLcd+@|9d~_wCGeoieWKrCj8d3Gm-W&Ldf6srrNJt!l}I zo--7s@Xf$^td;9jZx{Yl)(|BgefZ(k$_fnzIF}Y)9(h2N-CcMz!d;jKZ+NQjUFDs9 zud7?}o0M8?;z)}uqwD=ZTrm@}-ont;mafMYuax=j@&^_cCa3 z-|%FQ?=P&;KcNc+9y5sJj=l>S>nh7mQ@vyMBJ^MEx8~nzyk<$S$Uc~7iK}Ac>bf1A z0-w@lN_OS#N@=q$PENK)d}y&!j+J=uobTu8oT+%2PRXavzG?|G#@orXT(`X}OGui1KJu$QCioO87~cAEi$>! z;d}pFLVRO4GPH%*4#?OsmtG(AgUq>%Z4q?WZ}h~MVcm&6+^xAz?~b7vO;z;4#=DjG zPU^B+GnzE}YTM=S8GMuWcG4byqT>G++o*4j>pfp{9?gYX)qnCU9cRGMHs;+Isf_EI zgkR_j=%axni6vDD9`U(|>Gl`+G4RuuXP0|VonP+l{1bKX-t}^fr)v+k7a}jn#~%AH z{XN~-PodNH@8@onIH)g2dW_tC(By{2OP=(-fIsTWT>p7jF7fhscK|n2r47XA-csT@ z_X20_Y~h=WGfRM(p3RKosc6sHTFPYq1xFm-yCkh?z&wTVBNpiU;C7W5SMLw-`)G@= zbgb96ki5XhM(De99}MuH{g{9B!FN0VXuI#OvEH6N1N`UT=KFTuZ{hpP+>6F~ISat$ z+d060GJmZ1C~GIJEYf|9d!9YQeVltmM}+%R?!<#&zab8(#IdArV?&k3liG9tmgaZx zU98G!Yb4gkLgb`LTxXF*&EPIEw{o6jACvy6@s4o(*3WI9?rC6s`HoEWbe+1*vk*Sc zx6tnI*^JIqo*xl>$o)a#Rk`0sELi#Ou=_jdKlTi+PR4J&YUvi3(SvJ_y#OqIe2d2b z{K>fVXO3hHjB;lTWWVvf5aUT^o(s(FGYs&ezFK(Xuh?_t-;uza`~KON_T^}g#GB5L zIUC*IGhXsR!~5W=J1b~kDSmFuor&+g$Js}h=;Dq*pBp$Az*nkxzx_(__Uct{?+3u1 z$kxv*>}y&aqicNnzjq$NSKxT<^Dof4Z(Aq>+8<47NH_kNx(Z3BJJ(YB7%s;e&d}=R41u`44R!M*gG0 z{J$Xo@GJ65zMp8D#3H#!-#Smxw(eZ)wcvNL|F)_LHhlWV5nDs9X&E|YyzeXO|6kg_ zD_H-uAGd!z{Kx;L4_o`nNS*qB@58(F!PnOZBW)MjNBSZCsk7J@NFR>+d#86)fUD?7 zGO+uf=0fIuOT9@IdJGJBL1}sUi*o0l{tTbHc5S5!+-7hC$ypu zSWZy~b~~8QPHe{x$k|dBa09q8F$;SzaH5>a^=`Q)zcM_%dG33|p*tCK(lQkkKu% z)|8126P28XiR@DntJB}Ret^HXX@LJ2^F0eWmM7}9Bt<=3$ z>i%P{xB0u?ae|MJ0c+{x{cQJm*U`Q;kWbz>xO#!z1SNqb5Xj>r&$s_nyr-`FwdYL! zuRM>EhPA2T_4*|talS{OCFx7gdg545W&MI@Wvz8XQwokPxS0FFN9ZIv`QNi8(R0_( z0ZpAB+x=ZG;*JkR&IOIrwbJfSl;0f ze(eOm3ZCiAAM34RKWE(LrGcwghfQ~N_nYqO0ylSqo4de4UAK(&c7cPsz|CEm4|;9L zTN%@NxzGadq=z;Yra`mtuJSJBlv9qjCxlLSb-oR5_YwcQtERavb3tWK_=4uPIq)nakq0_B z%OJDLrk#nNg1y5oE6!X!5-83vSxeb>f9oG z3-RpPGxASki^tf~?s>BAQt7L}g5bLj>`V&qjp+U-cx88{YcjF?jo8e6!Jf1VUdc-N*hTGEMQLka6pr#9ZvU&Shl{Rjc9VyGTd}TYVYNiQ! z`UE@ij&;aBgEYkq=swnC33|nnkI4ajq;Bb#$lByNl)Lwz)(r_$eg#zR@we!Y@W9x3Om`k+}1<&kb>U-k|II$pss_0^BG zb@JWH_l$kn*#>N6dx!()Qk4l`(>EV|Q+ADW$vV-|w_w{dX?wgro;Js0TZ_*53B^t9 z+B3Vp>YaWBJ`FwRbfGD_C`07lqEk9cS-y8{ZQ~f94&svju*?L?Y+@YFy+F)fV6cSt z{SXEm$Xz97h0sGX)*4I!PbOq8X4XSEmz+`XIOnv!v`lfICLM9-90#|pwd~wArn?#( z5kr2F`EF37_Ll=UX^PpEeq&zS;3Y~-ZR#G&O!(bd%6iLfO0+GjpK>S#vsV>7Am@{v ze&@Qjg^b;4`cy{VZE9!}G1a{D7e3y?Q=vDyNOIo;rpj zi|Eh!lw*}F*7kJYSlUkga?XHntfm{`yfm}f_d%i6r!$z&4mMf8IZo^@{0)SE^(Wf> z=cCZIUg%Af^(DNi$b#V2yuT;*jg&{6@^1En>6P$GU*C?r1^W{@>s!WWK74BuIMBG% zP-+AR8kZ7d0v!0gF)=bmhp!l;2&Kl;=dU8;SGN3(>lM2)w`_Uc_2tx|^=pFNKaG9~ zJ>Ri%TB}A^gz8#5R+h9Xp?dC9xhvdnYxUE{ZzZO0sM^}BODK|a>EC4>o55LCnry-7 z_=a_zSsPfN-HX8Y`UIQw!w9c$?az56&@B$?o^q43t*UB7HuI*z?f+oI)tOo35t+o- zciFuXE4q?0C06i8>ewrFAg2&{#Q5i*w!pvoA4X2W_h}-lkh5ola*EEo?0y35d0&Oj zsP~;v z4a!<;P9FS^=)4Wxx$OPO;M~aI-2ch`qar%KQDP+hTzsT&(C3^*-;Dfjt%33ll<%9V z_zh)Z&&poFCHqXC$nB7yG!u_^J#ys`_0e?(Z_JV_k1>-j$n zJ(Z+6TD#2h`7f|k z8Rz=C@}cbWtlhU3DarrC|7H9?T3MdG0^HrW=UUeZ{--Hn=3Ur(q%G2w9<3SKCiqS4 zu_XTdbr-@WV0#&JMAbPq!~2fpn+=!}{E5G5Nd#p^m?B(bcotskOYE6Wq3=A6>~S3L zz{%n7*msVCHxJR~VZ@&sPM%lyrMZ%bLDn<&SqpSm>sc;iV5{7zth_tom$rd;F!nf*M5Y22?v z*2F(wk>YJ0p`2EpzxiUvVC7;4ZTU1A`~=)M(0>Zu-Zcqa%2pMn!x^ZnDl@BdPi#$Y~homcRK*pM6OrsjHTl16S4q-}RIAyg@zAWMu4=pR6XEgX1c6HD?>SXCSZ9 zWHrcD#LuUju@OB*7jxdtyop^%H?&X3V7qszUU5{jW|tk0Z4{j510VhnPo*(_KWG0L zwEes`igRqh6+wJs9y7(d6r6J_ILEbEO|I(WKdtbd*2N)lrX9qMQtr5@KD!}uQ$$GQ zi@-^(=jMz0#!ZpV5GAT?;L%a#1Ir`RLc$}Jx{ZaW#7+u$@oZY zf{sJe&b`Mtr08P0<^CAsaEdVzzF`f|GB)eAZ_zCcw7;XT?q!UP*lEce$y_xsHe0yl zo4}pGu9djTg^JVb;NHMpaG)mJ7#LDae6_!(J!cp_i+djTwA5LnQX4lGD{b3~6=m2U zHYv_|V!r8TIsG)02XMzm;hiW4Tz}X)zp|%resi0H`zUDx&*0s|Lg#)7+-33Y6!7_( z;CeOMl~pw_`!x6atM1Ppql?BCAUaw03HFYX&%O(rAba3wu9FwTCP2SvaSV20mnwbw z;ocq4x#^Qv?ago@M~Cl%_Mwl&t|pGQk`sKdh8B|N;J0dMK3nJy(nJ3R(`)&m1GPMT z->Z4I0bjv1#7KAjupapqtV`PAkoPOvAu$l;zcm89OnZv7G_;j5o-92055GyBecuX0 z&EHF-y$h`hJu``QU(TEeKUHtw{IeL!M_*bL!nxK`Hf;#LPp-<$mgnHN$&7`eKRz%9 z;KbncV&m<~Abs#XqsqpSYS7|+-=OVsWG?z*S&L0=iHSD2xWCIaleVlT9;(2C8M>+g z-c0u4(X>s23Dy3}X!bT~>rlSWn_tA~G&TyK)@duhUhY3$y62Sp~oxp#PWD1F(9zOx)W7EHT>KD=q5%xJrJIAbR4 z2lGZZeRf5eTAFyuWV~)+EKl18dYydR z$CbhuW~fd}l~QN%po5hC!#Grz?7?n8@nBE!*@cLW%Rda8`u|3Y4~TNBnPjr} z2;E^~ujoV`vrlK-FLt)pZL8PSqnnX4m-g!7_Ct%EDWW_-`iYE0d$w_a5<6)ZFad6c zHt=E}5#Kz-FyUM1p5|eAP zd{ftO&g;|RKM#M;x~?|FtY7y9JY#)?vB%1p@0s}Ku4>g;GZ*ViiFe?tXO6yrh9%yi zclG(+ap${LPxI%jb=r`D&$Q>T;@$8Y`^62jl#9*p@O(h|s{y>ffjFk>;>Axk!ecf6 z4V*8uX__+qY$oTWkXLBj=069%XJQW}I%}Uk-R3i!ta+aE#dfm}SzY(T;{~k8AIvUJ1M(*!8$&=SIFCT4NDdkv)}lq`{B0P1-bt`d!G2 z8>oNV>vvdRT09{6ls?C{l|Dr2qRd+_^3K^9(hkRmYi9If7ylLXUD2Y53C#KC3HEuhhhcAzvuOj+XPqx3n0{%eChkJX^D=5mf&2{f!f(^e}Vo! zhJG8GXI}EwCX1YRIg>N!f^?d|*Ra8REw`lZwTOOkZ~9)#=GX#H)eZJ1R^4#__H&u} zp2EdtPe50+bRJhcVoNLKpQVkmK13fluuwVuUwRw7#lRN9o&TUtsV|QDq@`wH{<0sy~-8Wd|j%80^e}SJA zc1-XpzFy8QAB-PJU;VN#^&lVooa+R#>OWtq|4FScKIB!wGPJzI760@TXgj_f8)IyfzQ}r8Q%*A$cZeyV)owh=Y!4@eV}Sov7J? z&j;tgC;td9EqYXGv|rUTp$%MRkTYK;mN{p-3Jx_aMIWpiu)ivSJp&)QeXp!qw^xT> z9=Nibx&-Hbi;OUWas@wZpp1>jkRQUA3GT}nLV4JBXADuj1^mxgqJI`q@K3sa?oUQ2Td_OR#^fk?d^vl zQcDjo)nV$Huu8AQ)-TQd0Ni2gL?-7kaW?B?x!x9CUJdKpY-0_`{@1Cq*O*u%!EaqU zV2-q=$5e0g;oKU5n`WJ^Mtm@rqmPyPb-B=k_g_^iXR2G(^_H<}oY{jNi~(A}uxqTV zP`~&I75Y;0qz29ybkBfaUmr(bkPB&jxGB&F19KS%Eh74ty(WuG2Mv5>f8L-!Wg$Hi zkRy!ym8=ibK$n4jc<2XmV6%~a80bd}c?*_(|NG=+s#o%~kY_Ue@%$sVM$T^t_NQ3- zL%Tin$yT$VCs&PgS&bG~I{lNjOML5d;F|SOfjIKQZ=GlVUda9}F-K&sCvo<>8M%%j|=BiOZZ40ZeiJ)rRzdJaj|4bE2##bT-Jh6|X0K zx)omlM<{D(gAN%bun#`;YiqVW!mWy)i!z`)=ADbP`xk6qXOa5OK@a)R$4!Q2x>9~x zPB|Um(2EOig|3S@-G1iO>b&m=?rt)7$Iz8z_$QKGd z*3WY^O!0!#G+kXUbcgI6^|o8JGqPrIPF7c#-TNy!FDp!$2JK|JOK&t)>ymASocFZa zl<2yH@m;;(k)EzFsL3zBme2(GZIaYfgF&pN~G{_)^AKkZ$QUt%kCljf^}ztSFZ7O`9}Jl&luz}M!6owL>nXKp``;jC<6|bvj23$`+JlS>@|8O z>{CL_RouIjP_vDD&&(Z^!&$sjb&Q?f^Ho0Q8ZJi8Xx(p_qYE+bRKp#!MgP2v^}siW zF4VjfIthD<>6xsnrSe~72--7exbiH0-2!c2@b`)y2lCMo+(#PBuGbmYBJPiH-ya*A z+&RpY+z6fBA6ZWiG;4<@TkVf;PFzbC{cqGIaK?9{oXe;ADTrL);=+8|nn#;+>3iVp zlipe#un@vHgz~K)|H4RPpg%^>=P6;<&#*l^9;fs8CFXdP;-3tEWeibXwZ);=Nyc7P z56=m{b5%Lo#JBoZqx}g7xX!USu{3jXrt3lIHU~7^ezj+O;ZQkS&Ezm;t+w1so`$M9 zZQ>(zD|k}yqiZN*#8_C#Hr^9&+hioqD$6L^plCHHcU4!^V zk*=Gw>cUy~qC+-u_gtmKwM;a`@%`1=w5I`FKU-C5W{1kN$vit$sWD%??So=?(U+jH zNB51%NXFzeb#CqJ-x%`K6 zKa~G7^of&td!Lc<{kBxGcC5_x9OL_OzJH4D=QDj6G+{C{;lP#`W&h=j!k`^8=dn(g zd@E?raITYA=6~{L>u0nD8D66uJN3Z&o6OoOV2$0vTDzGwcN4hhM)0#v!#yISOI7r( zsfvzE|Jf0g%>JY8`Pn07wcvYb0X`_L7guOk3{>f zTzAFH$0%U$0I)ZeIX%F99AMpX{x03%c^1n;|ZgkO+Qif{Ab~&(iWxWU6 zA!Rry!!eXK&)SeS2y99l;8$6@CPy^uJ$i%U9f5Dk?r>#XHF_TQi)oq6Ep0#8pxWFg zm)4ey%2Ey<*mZ+jWPxY&=<&bH{{Y#c27mZL0DrqV7bLONJvqxY(}o;EpB7@iG9PkC+7|5yB~K`AdoHYJ!g?jb zA#%>G7xF*g93;nc&pm1xgUoW9A%G7;NEb6GtaL5^`L5xL<=Vg97Tpp{>Dr{r?U4S4 z(3T-pcemB`wWW@>)GbPii%!3sE}XG-FA6VRJ|d(PKd#t6_SLm!+XMs<-cW3^2PUm2C&JSq=1GKWWVp&Pc&B*vF zmc@?PhwObMF-i70V;^7bEV;jUS**KwS&7O%z9|7cDfbZctB-CtGXIZ@jL9p*+iN~g zG9^F1$dvq9yg7MgNPEp!i^7u|IScN|;)vuE@X9NZ$2D@k+f$r__cXB;KKx}gHvTcm z|6Rhn^T_;X@LliGC782EB-!M=vhgDlY>(*rarR$a(RL-Q=o2N*oD+qOKkuKhM~CU- z&0pbT_uvvk>66Zs`5)-|n-`@2-uza$F8M=U|DxB^SD0s@|Nn^p*u@k*%l@3i`??J& z^Pg@{ng47@%KS%lp+(PgHqE2J?(^v@0?(YA^xO2`2cGe*`AkU+JmWiM$c0x*(;G9*w(K#z}C~4xko+3>KbD;3=^^l2E6AgK-x$R|<_V%)3 z1M?zv3@FQORcb4W)!K^4H1a5Nk=8eUeTjwtX*?(ISx}s`XF=p0v?FQd3&nTQrdizc z`KJq;IJKU+O(N~Jd*(-8w`YEF{kA`p4CMWv&PB!la4w3RLE42}i%9!xNe>JR;{T*Q zOCodjEGhoPIluUbbAIIKq#4fDL%E-DeW$y-xL0>~Wbf@6Q~$+f7@|)7*UIMNUanQC zj}+IXJ`!0sJ!9&GUt~-@yP~%MV z_~8}Xiktg|PBn&vOf_+}Jl$N}pZka0U+Ko#ziZwb<{PTZ>Q_F&K*vg6Z~7rze9DK zi(jeRR9r%tSMwfLptkO*+dOwu-KM#Dq?tuMdj8dN*M;j^ck`@U89TLo<%YROS8kk} zMjBQAh3H#=+_s~lNtKx*Gx4)zlQT|KeUI?uP;L1c5BZD#}uB0H|_?93Xfk@FqpHmo!$}L z8@S(kM@7$lIZ?@LV?vWh@q7y2FdDi48TObCbVo;#C8Ss1mz}4W%*T-}RxC=1o2i7% z%NtW`(IHb;(EE#RRvPEJiViMX7w$R*ua9g9{BLyZLN^w~W1Z~xayDu>eqcYO(}lk= z%n$JRTfmj89)<=$)^ID&64#(Ia<4_otA-8_#xsC7+nU!N=@$Lm_rCoq5_v+rCSyr4 z5nB@a`={vaZ;)qy3l04U@@z>jGSxgMv_Yi!id|LOiHxJO_hn74-HFUsc&{#aFEcdZ zOx0NJi(S9Y2o4tcunV8srHr%K>j`Zb#kH0`q=*e4_5{c<55H@&`wzZeQ1xP#t?9sc zyXR1z-5W99)-(pa%Yj{ETnFIAPV1v=(db*Xy`m;Npk6_{^Ac5hxWskvME4r#o z+h2p}f3`jUPRS0Ie@5D_wdauK6z36MZbwpSbi$z6t=Ovu(@HumJ#?_7jb4&edMQ0= z*OFGo6ng>pQs{&&*bvCLL$@#=X2%w6bcLsHMy67WAEfvmVlSB3yGQt`P-we;(0F0c zdIo4dBm9)f^9^=H$KavF$IyUIL*$PGvh%%$hcsAxpbYpkhU9sz(3pMlfUS8M(QXyF zRJ}32Q8BMB*|6%*4?GJD8i8L^gpy^T?Gh8quvmwF&6sS!HcxCmr9DT1GqG2C@qV?j zET(6|H)j02=!2|L2l12yZp5~yJ{>!zNU@hw=AGZZdYxf$v#C=2RFKnFG6q{yI8zR| zP9dMfgA;ibwEAJOA^j4W#y+dvvp=iADz;DW8SVZ@hK_F9HyNG7;;7{9@TaS|Pv+i< zUg8wCRh`6j=tMu#iCor-esvPMFLdkETXr>+*z_A7=yv>}WdCC?JYXAbN|tq5G}Kd) z8HXI7`tL-~C^ojM@FRR@gtE47) zs)w?X*=Xskcg2@>>Fhbkv&|zZ%Zgmz_MoM-+hos?xI2ZscSjP>Eb(l0z=iau6WIypzlsfcOfz$ayvmJD`JoHwyi$-23%puu?D+5`w455w zIUK-oFF4MDd`obqCZ93~FHs}x`!xPccdyYx+e=3>;tz2%RCm4m#xivBlePvd#6G0Z_-bm zhfSL`9!p@>pe7YrYEoj`XDRMo%N2JXwobe64sUE{4YVUq2-dL|9Gb_u>B29Hyl^l7 zCqH;qY2nh#`nm<+;~?%PK8ZtcH|t2l-M~k6VO&5yT?8KQdO5^egq}|1)4tKFr+2X8 zU3IQ^Tn2p~FwszojiJZ@*X9k35A+GU-_`V~b5rpp8NV4BRtB;+(HHAwzeNwTf&F*@ z@eS+gn{SPR3}5a#_CL|B^w;*9=f5*HZeV{unvX3BFd(uvn9@dPXwUf3%!yWSL)@jY zoK3y+i4XN6I4y0kG=6k_^sBabZrRu+5-yf+@(e;ey4CMF> zWSl?O)&=CXg9EQ@>rnXU4e+D_r}g06`Ly9t+93X1f`2cK-F(<7-h1;!=Nty?8h}$H zaB2ch&A@56=$tS6cTZ6K{gG)YAt6y6*yb7FTf|<^uC!0=NOVptK$ar*$QjrHSd-wz znMc7d8Cms~jA%u(=`gcr6~dQ`Jjcu)RG7Bk^22lm#8xK$$Tfod1veiK$e2eJUY{{EBZlco9Lv>*ztTNb#txDk7z7o z%{|LqbSJUE!BOBntwZ3wf6G6BxnPVXGylZqb^*Muh-9#s!_KCa*Ru z49sh$*t;=Ko>~(SUFo^ z687KLt5;culBcfnx0(!ND0xJNQ9ERh)M@avXmx{jxvfjgA(_g19&Se4y z9%P)BrmLF0sQ3_xUAy?+SAT4Z%v+Mj}*u|ESlX&US#06Ra9 zmlcea)gJQy4{rV=oD3FxE9)`RQKyGy- z@~4W_H!Ky429$m}d9bS%IH?0p-T+SW1_tcGcV{iP+)SS5EAMH0o;){`=lRsPEYA&j z!&0m0&4GNx6C&SoMQ0Wpa>-K-pJzIjl0EY(WAi&p== zTK%_Z^}l_o{y@I(*Z&6fmnn)_fq#&Cmy>@}Wk7CNOa453it_05=g_Eo3esJ(u2>&+ zTE9aaZ)DY3R$fu>%D#Fxvp#0g&p^Jw`lx`#pQ*u^=gRNoqoJ_MlXGD}e=O@?d7kz6L*p;=K!ur$J>hhmi ztE3CA)%gFzS}lNX|0z8Ge_5*^>f;-~p87ZTerT>*!=dlt@hJ7u-fja=%U)j8Cu1iz zA-b%0Eprzqml`x)*x(q!zCQw7ek2DU9PmU?7NC&#%i!MB(BFL{V=Qa(OLQ2r=HSUo zj<5y~;8%aDBE)^VLUEtbhifwKX?-&8TJURD`W{QeP}w`esjES&%kk@J$XY_?Wq{)+ z>B{CEhc+IJ9DEz|wiH{yin{fdPtmD{Vn6XYWxfSW-duH0+gq%~m6Z8b>f4sL7A2K7 zXtc}aa#s)&avPW6+zQG`L#86IuoIn_oULx8Prbtx&vDxN8Ex)>Wo`-KyD|PBDUhi%zkD{p~*V zgeNDDaJ|^4+jx()WMGe*2_09!d`2_p2asooP9&Oq2ht8&-b0^3j7f7KpIy_5G{YxK z9&CWku1agRceCL#A?2{q0Q` z6+`);^Q@C*d z8G8$Iy%J}3QfMI7bjlpX8(b^RvNqsB;S0xw49>TT+`)jIn{jYJ4kzc#W5X4f5n69H zq-gg4^CIvOlsPwK+C45}_KKf`vnK!Iiw_G}*e!BHp)C#6C1o=n9vKfE<52-UkO4d!kWm=WnT9YX>sc3>_*F>V zP&LGc39+37cd?$I_<}h*itG|E!5tfFtUFez%Bw<`eaU|6teUe!<@@rQxjWG3rKDDl z+=0yPP%G^K4{VeDTVTh*b&@^!3-|)~-fpq)pQI?=PS(WoMN6K%fi?x(AvO@wu1?yZ zM2{MzM$a9jyUD&I&yYSy`ktOWYmma-PTyr-C|{cs(XC4QJ4Q|t%$=VhaN*vwU>UHb@7_<}G+E1as#n@124Qs`n2_CB+hHa0&XvfG49ylc+_=pT4V`KOTH$b1Qm%6PP}Z*>zB`3vGBp9C*O z8jP-X#w1F~9@Iba+*8DQc9juR!KX>n6 zNUM@ZM_xVaKExw3kZ-}K!VikvL~NW5bDt>jVv{@rd;)*$)iHLmPw#NxZw7rUyzcG{ z<#e7Q5nLRw>st;TdIRl#=K=VwzI7{eYh~S{Paa*k&^O;!lhIa)PgpMN7QgaAGAHjm zz!(B=X2wE;57KJ?!6)AmQ_PTBHmH^H1(zJua0%ZRFjgAQ(boNMfw4Zkg1j*0qB<{O z+tZeGWEp9X+ll?$zhz@iSfj*0OTd3XWE?VQX7(;=pTJw{qxl!D%zIi*<%KlGo?-<@ zi5ya5<(O&XWbr>>9DJ-NS-V?UyCT1l`Kn~T0m>kFwvSwU2TSQI+VFRQ-n?V}b2l^l->me!-q3dk*QfIW(}JSh*C{SQONubdX;m ze+KKDJ%7LT;*C#seWkuq{fnpmZN=ZkunT|js|;t9to7?8&$qY#l{Tr&GxN=y2@mrP z>3>K1Zz=1e-J{%blvSxq*l(aL!{Yu;DFX~=D1Z8cyJ?#ShY2lZ*slq{UIz|va<-9t zm$HO6xVSKnI&$gvo}caSbN=2R^>+aMh3<(m}umS>HPV%t!*JfyX3xxTebr*bK+ zM?X_W<8yHlc!;eWg^$;A%}?^6?!#RZWu8=T{>AcZm5bW*C%Yz=;a6O~TGwh1(T^@m zS1w*jD}1jVteBEPj_^^L8|B12m5USV&o z(6vvjTcNbp>ZpHBZtLAo=e5>7t!rJjMr~bgb53*)a!y?Tox!s{54(F4mxVnmR`Gws z-0fVWYpX<#SSj;uaROJW`vu0xNxD>>@@hH%9_G8qU-mFJPm|ZlxXnT?T45uW2=i1Yq2W?oDhB&#Cc^ z?K;J;5O;XJ$P!qi3C!hd>BuGE;fbAR+puD(XEW_?*QNBd)0bwG7N6MLydt+}@A8zM zM|6t!qgjFU$ey)xXhp6ZLL22S>mtzBAKRe))I3x(50#O`nW9{@+83R9%7rTY+*esR zgZk#&i{&$NFQ$eh&2=uXy*>q>XxgvE3hCg!m$L^e*N_*OD$Bd&f^(R1u@d{-`dRY6 z?|P+7nd{73aed_<`Svhpf#enR)Z5T?yu$kedB3@bynY%UAIu-abLDSxwKBDNSRU$b zW86B}mnvuQeH~^0&3>^GTVhqULwjwA)Y`Xu)%BH6^ZzBv9o7d2B>^}X+6M<47|(M4 z{f_StKBeb^Ty{z0dazz_Yz?ef>^b zU;SIU*(;wS{Zr}T?#4WcMJ9ID@h!E_7#oA@E%e?WA6vag?I zoymT!ggHyL&>q2$9mss`tg-pOQ9Td;Qs;RHSWabasL1Qnx$j{t%4oN&FL*o+cN5!8 zyWiAzS4gXpR_r|Svp@X&Bc{f(eu^J@@ipYvZenjWUfv_Vzc@WM%Z>DD9Dc zt*2iiyO;Kzf7sM0|NY45MNanw|D52NZ}={_`V8+ud`9_Ndx<}H=zDgyjO{lvw$vG{ zV+Hv{XV5G$P@sL%)PVe2`X+c?>i!?<5S*#KQ}>m6dg=(&bw!_odjflXkkP+j37|f0+l(kLW?hRPdk%1GMAMeSQ65Kc&o@)Oc`uV9t?YYjaQR zFztT4?~dKP_CAv_{59$Sz;%hudVyIpFct z-ZdpHoWp5`7K2ZU83F$Ue-(={Q_17|9oeUAQc7=A74OTTQH2IIDpT^majnDyk90}; z255cZ_s--i{;$wwPlEn*5qlrGvFNWke-k>_S%(fEU3aPCH#k?6{E26SvmSpBgR5B= z?Ixa#->|wqkftKUW1w#1v#U!koCx)F;2U=q{n5E1bo%QR@85rEXi6qF*I9`fT5NAK z;{Q-xByx*)ELFE~Mlm)iU-7Rh^2RnB{Xe%w_4r;;Jn;U086y>X6g}L*y!(f_8<;1F z%W?J=Vu0$1c~dIz49%}B*YJs9^O}-@=;#CZDj9u3JUW_zEf9%~U*ShtNuCUBErsst z(1*2l==-&HjCM}+50`SND|UIw@4-vKGN0!8EP9mS`xCrxnPK-fvoBR49|^Cj%JzW& zp~D^3__RbY4)6UkqA8NG*v@#*iCot9HS1wbv9qmZ27W&9=SiCr+))c(YKt&OxLSA3 zY}<(~iOd~(ir6!IbZ#@Y1P~h)KvRlRHKTRyO@!tDA$*IlkEWY zNB+=eb+M)NzR9CpUn0}d?78*Wmuog3CWj4s)7!`sv}u_}9h$u}_S})WNb~*Vi|n&` zz8}1FidZE98`r2J(LGE4spOBsZdr6ClK)g1b|OO$TE0{x%~#gjr6S|#%Om}M=_aL3 z;4T+mm~7Vk<@rf$xrMorF)kb0Gr`0-?ER&w$@u%#B?fH9MW36?cud0QBjbhNW6z<+ zEk~ZGrFni$iC#5cn(H0tjjk*=i*ltrdw9?Icw!H}%Q$Xf3}p>OG_5WXJNpRYCA6yH zMUm<6TE5he!n7jFMLaCc{^!Tz^q!>bZkAaC%oRb!0aht!ogY=`AHZ5x{;@c^E^ilCpN=BuP^4_t~w`fP}?WAt926_ zu%BF?t7<$t@(VWyx3~*)@wrlo6C`Vym@1trK*DQRXdvD zxi0rh*3^KOPieQrc@$hP^+~-x`Xx3Nl{zPJr3~Hs(R0cid`lZT^PyAWKPur}uO;rF z>^Y)8l(}5BX?00FbJ;u>S}&~7lY{U6hE2D7YQaTPK6G_o{bHjo{+IDuz3{z<>yiB! zj7j20Wi3$jHXm~NX82{#1Nqq6BqgWqw`wpV??d>GpVZ-C*{e1+lvw)uFKrpu*MHH6{&)=H`^F&9zW>V@EPLmt$KZ$UFtVm( z9)8%K>;GeW2KM3EE84@p|DWb$+5b8x7Hv*$WKRC_y*WwN=ET=sz*&fPuSK<(t<1;Q z>+RlgYP?x|>pb9R*+0auy^}pe;)z|ck8I5wG2DHwH?C1)Om;kY6ETII6920^xQ7+J zgKryqwyf1JSfj{=upJ_9G&WGkWW7SWi_e+xL09;dZp~{R3hf-&uf!%P_-_Mr5&PHH zJm+vtH~&xSMrIJ70c>|tW(H+m%f9DZi9G)YK5WoB;1ls-`z7?pFQ7w+e>t-hx}*dd z+cacsp&ETQ>tb9Z{WxqaB!*adwA;Eb-IeOk`>PdSDO0=Z-hy1ou`S9S4&B|#b8Bw2 zdv0ZOTO{(c(btS?<42LHZgYUo%gjJ z9Ex3Ff)ab%o%gqipZCH3_9v#+jA=uT8xwiI>XkBjrHmcvgVGGCgEm$o??k?v0{$uw z#xJ3*)_7uws5)E0;11lwn{z70RembPkyl!~OXhd`Nx4@+2RyqUqJe z_cxfPi1b$C8yWXnU1`6||7$w+>yS;SlRlNcNuKh)eqi^~qECevolX0Z+2*RuB|4e( zc~`|M(KjI59yLhpcgvI%;*JD#cOo-2^yK<&H*#*broTZpkL@FN$FYpX6RrrCc{Z`< ziG46{3vDUW^Bvgk zmf5|tDI*;H)?E51I=YwfTZ^I$v1#p9BOG5okDV_5DyJwrlJ8OJ?^|A0v&V}MR*;rC zsL?V9vHKWUdVpA1Qcf%7NLx-`rA(8(N@#5H%X6Ur)M&HCSCz_mgfpfZU0rCC_%%h3 zK?|^V&fCTKbs?jr57Rv70&+@ex07@R_*DaGi6Q@i%G$U9PN-y$tt?UCF)qsyf9|Y~ z-u!WgL~bSgwD3+Vz9DuHqWVmCR+~8o-srmB^LA)t@V# zD~>CcD~2nYD~cr>(>A8?a>QyfMw3wp;#@RRoJV$IZ zGvg;dS_bA#bjS|qRiRIjxoiH9CdS(_K$+Hko#Guoh4_H@v+YOE^hE;knurK?bWlWQbF<$Jd^7# zuG_gvxu$Xzaoxg|&oznbI<5&^W4T6iWpWMY8qAf#mCTjM6~`6DW#$Uw(l4Lbk)P;R zoy1aP4fsp!-p-rt-b#4nOf|l!N;Np%L+58T;=d1mnZ&*#XNQ<0R++1pDbsvdXS(LijC zW5^w3eSfiMr2Az4aQBzgeTsLf{}A=Zs4Kp!1pI6RceuHv4dviF!8=ms zB>a_IInUbxZ!hqFseH!nH1&NA-66Ec8SrD84&F;KJ5JIr8H@ekT;vRgk&nd=ZhNLg z|J}|9o~xPFwmvCfkNhUj&vE`uh#FF~UePDaJO$yy=s)HsodTQm>ix!FrG1QeSeMb9h1)P_M*k zVl01HZ|>G*mfEd9u2*3$mm`y(9-HseuWxQSj)-o7Vfvrx)Fm2yBmkwOqkssxLfq&vZ&-$J2 zisv)%y?J}{ycNhXB3VmssJf!hSc4DGuzT-;Kl+;SI!Al`abnAppvfIx z>XSRXjW6kew72ni$CFBmT^=q&B9dd^g$e%^-Am`gIRl>->((*R>U#Pmb?F4vR z@}Efkm*vEe4=rCRk>)GwJ;9j)!8{LxLw70(juYG0z}uT!zF8EV{5Q^E-ifd0hufdB zytX7h?u9`y$-@_pYLhylU(b92tVJ20zRL7( z7>Czr(-G`9Kc+n&{qboF{mXtW{bP&N``VzeQn4o!KW!`5H#aImADiW56aG$A0b?4%PdiLWykL=q54+0BS#Cc3%?gVxPHa8NdCCxt2Z2&%xQl`kT>~YJ$ zr(9;PFfKh8xLd>Fg3AS`gWD^iztR`ZZ!>aMHD?f&K3`~c9cNBIWo|{j9OR9C#ZEc@ zquY$#n#cmh5BF>Q6&}K0p$tBzd#vJtmsy+V3-B_{7vdVFpTRV~l{X6ybMQ(VfdCJK z?P>nF{}{(O>s(ypUi@B!C$hrZiA{v>X2tvdwTc!eXRj_`KkzN>d6@PHeV)MCvk9C% zE6*x&!nzA_$d=+XnW09%BRe)yRwr>dt6XrL9-h_Xmt;w?bs!E|76>5tCJmzl?t34!t^U z!EpP0gISrDq*@%^*hCeEDTgW@)!8ZE=;x^-rvd)E^PI@Mu5ZdvHQ&fXnT+*+g(?%a z;D0bP5qm-QNx`!XOV!fu*X^D!|5i}7f8>a!FW`^osF4!;^UxYKN_+$lO^s8gjbR<9 zAUBxhzV+O4ck#J;_PhJ3a}4nnvY4+);CmTAYv^t8w70pk=z9ZqGvh~^oZHl7R}B76 z^YE#Q!AB}96uS=2ypG04O8o5Hr02YB!4Hlt@XhG3;*0dO)r^k|u+#VH06#@tkw;707=VRfIWpeo2KV6yB{Kkbl)IktB#o?JAAWJFri1F= zlFauq@cn$~;9mhRq8FUO{pWd}m_zV62QS4%9Io>xqhDEy4r6J);;mxMb>`#G*T)kb zi_&{U2UCykVG*!X`Jm1-X(;FJa=xkfS%}Sy;J5{YRrl-Q){mACbklzD#lZcO@N-+u z_{sY3f;SdD)oRWmsivG&$eYZnY5!7e^j{THKG+*PKgd~`OC_`)Noqp!X$c_zDdmCF7oxt*?yUq({)Ulejxc06taa1;Iym>qEx6u8>cg|F>H45NCZLZ!O;hre-O1V-Vcp^|QeVBs3 zthAr~WVG~QmZVuu-NUv1A2!iGXc?`qvOa=+m9^^{j4V3P4*G9yDRfwStoZCqT86Bj zy>w+?edR+h*EfRo87u?4J7j77!4q=sSOPlY0qD+>T6({Wn%B9M*mL+=7^pu*P3n%{ zQ*Y^Du8y)Fi(W_Xbe25T6W1tboJo0SbxB2%&quyvSNEkAKbrp<;ePbHxJG-La?Lo# zw@0f(>XJI8ZcEF#!FK;IXv>6DWt=u2_^O=*AJii+ma>`ioSXPhTZ(##cjX(TOkV`t zJp$a_!uLl8UC#F&=l5Ni?|S|RVP_fhWdwEvzEJ)NeTLt<;nQA7`#_uQ6gz9xx$Pa|9SZ)h+2bGR~}vyOndqN=K% zrQq3Ftgj$^i_EU9_RZ_dYu~s&wXTC$(Pw^RRPOnM;Ny16zrU{yyV$FKNtulod#|a4 zwke1}7eKj&2+oaoE6=9*}by{fnX!T=kFN*prb;8us8%s+GpFq@D@# zT#k+5;L{hMX_t4NHGk_G^lkL9lK)0*x2v&ZnHg$yYy>wM@RJSrNgEt#ybEj;vFCmL zPrXOxP4M7Hobg>rS;i`O7hpqdmdB#AYhnN0!v0%r&2HMi8F z(PiZx&@)r-6^`btU}E)4-sL{eiFbc29wq znKG>Twx$Knq3erSSMZ3?IB;j%|4qQJ$CQ`>FF5O6ehcHoA>h0TIql(<)Sts{oeoc{ zU~3Zk{R`-!{3id456?T$(wF&7_D1etiP`3T|6%S~<6gLDy3w!1PQL_cVDrQDOE?~+`+?Df!GybkhDZns_>m{q+t=zqJHST^i~Z=pjiwKJB~ ztBOKT`~on+FydbUo~5iGopjnf+6_&NEkM6!QX}2v)U)VBmKR>i#yNe5-05e`Be6Y3 zW^6{6CwYW+qa)iqksLybYHg*y>`8RK$H*17IpwJ1j)}_ZLh@pW?pXMrUh=JPP_2Pf zaN-WZKQ2#;j41nfy~lbl?=N|S z8VMiAZ7b!oidrUee|N?P^-$InSF;nHqQN&nb8P&+A;e=yzJWl9cW^^{;Sc+7g!Woh zTW5Lb9f4bzc31O`m3Nl$PN+YFR}sDXXZx8K?k98)um?gT2k(J!Upnud&$gCbNL6C9 zCP!yPFCSZ$^@r)J#ik>1X?vkh`A%hp3tmC=YN-(s-t+6C$RFW|JzpF-^9$dfhW{aV zefa&}6^^oA@^|)*i_Ey%wK9)o#nChO(tjrJHw}e%aj;%ac#YuCLg8P}o(tNh@K+L@Ug>Z9 z;zoVm7c7`dpbH#+cZAaa-UwnkL>3-J-cQ~TE&JCQRvTktx zjx(sG>?*a^?0U29ioT=Pl(vR?trFWA%fLyUf8_aQ4{9iXkOOhJX^*EtC8D z6mu#XrpzXnyTlp!MP}|I79a(=>>X8B_{$thyJMH|o!Nq%PXDHln8=8@c))Q}>6!k@vK+`K!V zJIsy^Zr?h4l74WicPe(m24F;q&|Mj+Mthb2wsE^!vA2_5kzKr1kH-q~g*D{|wM(}s^ z{wExF0~15eZI=c?s?kQ_c;%vEH84JL=a z1bi`mgZJ%#?;aYvba)v$9el+1n2_IjHhH(mJ0 zZ&8~(hu`<`{cT{Rn#bVVBk)UT@pCWdnG?ME<~SpMhdCL(r5oiFy+oS$V7L-FgQJZz zxCS_eWAE1R&S7|!7I@8K@&(D=oe7UCv{&*6$Q^CjL|*0RUCnmJR9SmuS&rBAYN~fG z@r)~$j*VS-I4iee>DaP}gVVh=ijsF-gez~CeQa#S;VW`?+g%UuuDUb#nP{_Z6SXP| zHRQ?gZ^R~VqK-x3C)b|%an)_PH}n7F)VDYUPc+v~JSKa6J2sg$_nYE=gKc^;zex@O z$yFnEp;ORoXu(@%{@yi5Wehtw$(uTgnwYOn_TE5Ft32?Kyuoj-J$Qxpst9G_pJ%yp ze>8CIi62$1&wbMzW4ln9miyF5*TcW4xl@oHGVh%~2_vNnVy=!={-K^ML zdRp#%y!YQ#_vQX5L5cYx?fGC-$y3Js;mLgYW|LkEtv*g2GFexurYwxcX3&dIh^$@oR;S4|`l6}G zIh`DY$FWO<;c*-Ah_-HY<6mdnRYKgpWuvlel(YKo^q!e`rTK*oaT$YJs&&SEb_07R*3hI{9Vv0$&K7S z@Dz8`Gb^EM`g~}uMfuOc|J(V$IRZaf?>^(XQ`uU27@vxWnBuhu(NTJ^aT&41%u`~C zhk?(FfPp28HN1YnXw!~P!ZMEk&jkNh;jcD;AAy%PZtp|?vXe99hL6%%ch&vRSbwPE z%LT6FVV|^emj8Z+9Eam}t^5;b65_RW+uAH&0RBMQeuC|=%H&#;f!(=;`spV*m&MfQ znmt>I-I*VhQTJS_Wi;crEq8XeDbdhlQ2%U^milK$m3geYdGcWg@{N(3NxMO56Ix*K zDbNzp**tYIZd)R8(R9Zy%xHX-p^F*tPnGxr%&V&GtE?4Tcq!jaLuC6OLw+IKVU08-Bo%nK9;eS_+Co9yhh%84O-#hog(}rH0JCzZ2p}N8}ap?P<(wj zuMYf8j1BrBHt1Sl5{k>u4fj8^ZySB%Z99s0bcVWMXhBR?cENpW=HY=Ra&qP zBgqB2bDg>Zy~d(S`sn4(`l9xY_=4d3aasGwM5>Mhhn>hwRkZie{^XamZ$L&RFWqJB z?PJN~z=pJ{6Mg%L(LKt&{6%BS7}#cww$p&eG~i)RQS$b&&I9b--rbE3)|-nBK2~5Q z>)og1&go!2|IK{%@aYfDYXk2u!xvoM5BqUTf4c0)L?v%;sLy@$Dfl3L%AN>581JM9 z_iQKqh+mYvBYsihFEiNB)PJF$tS{bs9lxap<1V)k=2EcD`WME`{TIf(`pd=~U&b1M z?~pNF;4v|3VyEZ=epSFva8=elpEY|~yR3U3>o#Bx{Os2%d3%6+Wr6fXK09&^$TMPL zGc?)??3V(2&XNIp4Ilc!b5``l=S*}PI&(OAbN z9M^98vUkUoQ9JPReitcu$>4Itm>bs0x;1DiG%P`bUJG7+CGLDX2!FwceIa}}zB}Yc|&h0knan}nbr%n9-RGYWw3Z*&BTMdx=ybjx+$O5hZ9C&=y z`WkESE)K>#UWzgL@*I)hW?n_itDAX=jFleq#8=Ks<|MkEo+hPlVDx1Fz~3kN#a@2u zt=Lax&N5HC%=srKC%Fl|J;RBG;SOKL9gcm(e>h8-CH{3rOw@2!t5UP^YPDw5)dL&M z%>$1pYX-0roqAQ|rG%E%tjRTo+?1WJy#Ci+d7is0&Mw`xhFaBmp2=2c*GX4i9dRE{ zXiz#eY&?s>*E8YYCKSgS6+9oe78GKotXOzg<6Elv(Z=79D4BTt`P-! z-L?XrjdXS;6a@RM9q)4%SLSNuj;#A}w6iOTcar6u7^gNC{(Qrp9S$|hS2W@lo8`d= zOCKYiXvd8I@LL{wu(U>EizF{5cbUi_XFfzfI(~7#XO!~tVG}VeJs`Z5B0?z?sL*t zGX0#UAH#0Rxe+<|FtHy}d-gHpi4NpsZNAGlMm707cOkzb-+3I=I!@yrS2efrLD;8O zQ0vT*T&rX|cY79#uYt#*_&wFUKbD#uX_9}#s_#w0)<(ObF*E_Q)y+KVDN@M^;7cj@6SXagX$jIZ zy&y=hghmikOihhKKfK1uQ*p|oBgFG%s@4o?vw<_Hsl{uB=Sl|-$pz>-p=T+`xn|DR z>4BZ4y?=|_mJ+MXGUWGrM)<@Qs7*viG7eul+8Jl!>G8gL>^aoE%`LImye{lGHS8g6 z-YEQJ4snvoD2WsNF`vSBqmvjl_!z`cJjf~$pzk|OQ%`*J<&v8C#!p}M9gU`3lG@if5^Dchxeihq4 z@KG$+uhke!W2{x!BUcQaOGL2EAEXWMTX@gHdqUf0s*gDC;#~u7FAwwO@x76KT^6d{ z(FFWk!HL#Szk6cnJuds(c>N^*0pKh0xY7RV;XWtro1j0(3#RyvRV~YH`c{p93;*}3 z_$Y!STacLs829+FCdV=Ivd-@vm=)E$xwOd?<-Kv5vb9&8fe)qKh>5y~d_a;T*vA~A z$r0QzN$@3jr_1;;YZJ=ykC>??jxKP0a@mDjR;)%=T^M7EDUlkdZ{XXAUgd)1bE)9& zG3NO0@Ije;8}KmBFuL_U5s5iF!Bx*n&LsCodNMvi_&#duuu@i(NG_rHdc9=busAC;$iweD z`CTIyi=E#*_*`^|&TS03Wn?*tHCjT>KhL4frCr2dmILo;A^qtGtf3fvi0H9ygqBxZ ztnLzcnLv!PuoD~G^Upk7y5M{JRzip0y!$uhZLRA@l^uW=e+KvrsQ9?UpS#rgYZY`I z=S1!^_#k_rLFhC#fj$2>Fx%Lpt_WWRFp}Cf8ozm7zBCu{GZj7T*Ue>t+grN8y?1af z``3*wOJ1+8xSjoxxugotAitI0GGD(o=BBmh(LuG2iHSX+7OW^>zF8I}XXqS{f#zVKI>hP;Cu0sM(mh&u=Dz7v9-yDF*dhxijO z28Pt)c3%w~it+I|o1-?jkfS-Ek+;2S*UDRfVZPa>TaZ;WWCq1@-P)AYTh|_8?p^pt zD%do;(D#`RUg@0>iT)Eh*n^FB--Wns;XZn>OP<9(iH>|0I=(m4ZS9Lc-pJUD_Y`@G zH<;~#qsYULo9^=etShv(dBX;Aw-dTLct+k&p7R~fQ9bv9$Y>eprHbP%Hj9e?Jik9~ zn(Tl4uLHA1=K4~nXBt6?8@X-8E#CD$bB`7PIS&yNLTgM)FD2LBHyuUnS7568r$udJ?L69bVF>@`Tq(&cQD88%(-ynE#6}EI5OW1W4=e2@0hX-^jI6r zR(;jXddDNoH<$72e{!eaIzgHBIJncp-B`}uSd)frY^1vKX>cH8WFkKNR()c#Yi)|) z1iXkP`ayg^cdb)Ff>SnfH0bxvCoiByZx{oQVX}HN{iZzp z-i);YgMclxwsY{dgKK;HUs>DuvJ&7nbZt{Vv#tPrhu0`@7FWeIC?8h3_8uL|LN9s84U!IW3deZEU_nGV?>FXM#!4)2rr5gGf#IKq1h9ta$D z#<^5~j6B^2?5uiycz@u#-I3XS(8go>c;{oEA4s!npT@c>Hjm|=NlLmN`ot%*) z_}U1+Y22~s#H*l7mH3qx=|Np!6~5&*=wYSM!ziIgeB#sQL9gCn z3(8JHUo>Qca^^4j9d91`{;6wxSMk5lW$=NzRa1O*&|u>KY*<(Qbw9n+KNVi40+e5>A0g_wc3R4Rzr7%euQ~)=DNSIBHx$7SYnqs zcBiAP@mG`lN4dKjE}$n;?e3=cl-Q9K50>72*K;d-hmD=am-nm(!Ht&6pXs0Lox^7hZ zJQpb2bX=A)rzFSrLyFzQW{&rKa??2g_tsR>}zth*xO}-v-XIPQZ ziCOe^;a96c1L)HqfsUaI+o|LHfzrhD2Vy@usrV^0FLw9-`ss6>LMuD*vAWl!%>Lqg zBdj~VoVJSJM58IryYFc&Pw3T9nk(n}80WeN{Y(HqoCb6fjgd!k4*)NmorTwXOU}03 zAJf6NExY>ekby9afpW3sWo}YswI#K@9W`g3q2KjQ$lXC z4F{b@E(00667~y&M}83Q>6C|=8z0O)X5yM7rwQk>h9ba^vzqDi;uY| zoa^lBiZ-EzQaez!x*pC>J4o%eQDxCHgw9Z_Eo-Y|EA#TLxnlJj*rKuV`37pU0(+q? z@ap70F`-XUeFvb;OQ0_wlPlmX<9|3)_T26j8;*Cwk=zZyVlQ;(Y`Fp(T=UkqA~)sz zi90r(a~6-?UBfTixr}_Xr|0llJNxySY69xT&X5{`C9ZGT~F-t$7uj-k()Ef19%r$w~hywxU8;0ve-PQlm zNtgdaV)OgU$SDdQoh>I{ENlGOr22LO?=TPQ#&=BMK27{;!3oRLny-g-2XcaIuPlw& zp~c(1g6EA z=Sij2tDV0l%*iqTLVC?9)vfknp?o3X{fuZpT^xg&Wddv~Dr3geEDHF~($^x7b9L5BhX)+qS)&zz#>z|7+257-0a z{z{QGM|tHQow)u;Zq~Qj^DOXu5<@3@+lgLA_FimkVx!KFS5{b&RaEkur?%HSjzEt~ zUYz1P#Ao6DOkZJp{dRI&$Mmr7Yt?ACmCs46f44H)H*9pqj@>DW??K@85NE0%f0_>~ zD{@yMbLXS8X5Nc_h7Ig7@c9v7vICe%T-UvNFs|#*z~q&*KNDA#Q1(g5Z11Dy_BBt9 zXkT+HwJqMB%o#R~)_*YLF$cAvIk)3m{+G7v_4RH4i~Mthd+x}DBg9vKR=b<_8iMP=Wa8}0sAtf&7W9%N$Q^*|IV66vQ9ZiQadEP z-v2Lam9`tpgX=v}-k0-8b)Lj?`evGH^71AS-=f3?0^~d=qjGHctcsi|xE2Gw%ilOr zpN9OGJUWPXG2mVHp-Xtz4&Eu?odVveA-uaOgm-D+T_JdvX35x52;OZP>w4tZTPAu1 z*968NV+St--yUKg9{}GT1K)b^`8-k`g!NxFf%R(!tgFG3>%o(6f+xQN);;JM4=7gs zzq0UE9n$6^x#&w$-v-v~kvg2@1(({jm`2#7O$%*=?|7YB4ufd z=4(Z_E&Q%Q2cZo@=l|Cn;XBEl6gVmTzNMunL>Cgci{E|5?3>R$=!GB9{e^kleL+1p za}!$a49OWH*V>t%6FI{PAE_Dlsis%L#|gde`aXP2RYq<;{J*jodb2%v_X)pU4jr~} z_w-x=y$y{$pZibl+y?)lyq(ZfH~Zf(4*3rstEP=6bc})AqpIE81Pzuv3dl^0_K5sQ zn@D&JXH{$NH178gpgqF#jpQ>6T!=P}_FYkM#g1NRu;9Q{aNsmFxCWT}fcYlY70q7W zQyJ7jn%MtnYM)BI-n61D?@gha0PnE>3j0q@Pd#NujU$3Kw^!a_)NP1h|0RB3V0RmJ z0d7*FZK<@)qHP*+t1e>trCm1dBH3>rW6OQLm9bMfv(eQ{4E<*+=RBIbJ9_eQ$BSwV zvP+CEG2|$u{m~{hCV9ANMcPfuqBp_+?4Qi^Wi7s^E$gPfoSVowEOOjdgV%@-bc$Xt z1n(fP5n=Ee5^psd+erOwE+anCkn5NS_K?eXp?Y}q9&{Xo&*9OB@=EpGm+q%Md4V|m zg)gi-;axz^0dg^&BS)L$s1_M|>U{Rk;MMH9-aN3##r-OG4>^MSmvQGx{wUFtd7*_% zIrEa!V*a}J+ym&=df;{T@vM=#H36e7z$;uo?~RbII9yLIdj06KUZ?okjwDA%@P6F7 zdaA^1`|bfAJJo1|_p(E4=5uGZj8o#uYo{9Z2D@%YR|_u4UmbjFike{Xt`p!#pB?9V zD5u?YVmG_5BNo`hIH z?^>6in7~=Zj9-N>nE0THPC|6IjjUJrO5xu>cxISSd|{Du4c++u(0W&dbmP>{i__V! zu%1Hn6Qciyr!!*vMQ<(rNPom98*$Z_bR9t*|7Y7by83eRh0o>O@4+7?c)w@*if-A{ zR)6Tx(jINsN^M=n4o$tur+s?!iTWRZw?A+rcyl<@t0RvE;MoJrdnxhh4ePX|hIJ8f zJJpKphJ)M5n~|tDy!eD;9&jzRt%67CmK3^47zbmJ9y{{U9FUEsrCKJSYj?F{l5McbYkg zJ?|abpCP7kz)GCT?7ke&_mG3|5$NC?Y3en;!|bn96+573y9Uo#S*pSN1^dxXznj$XZ*u$IgKlXTcX~YlD{%yce1xdU2sM|KQxs$FHr2^C~f|LZ7_sPXjn5 zvelEsedWD0#b?M^wTJRV#?sL}8**M+q}K@!HI0w-9!LJ&;sCbD!_nhi4_`oc>Vs$7 zfPa~ryCjA^Oe61{OS5?ouGzCXb)@PoRP5fuXywfao{9hDd&qRp{d#BHl*(sUpRrHg zu~{SUUP>@O)9n#1-|e5wKe0in$iBUOyJLfrsNaqcZp7*pZBozYv%i~HXSa!di2i-~ zCTrj{@{iDd>T3t2j!1al4B0^L*^r#GjJftu16_2XJ@EKFSKQDn^!Jk_SHI-Dtgial zI7cGu7IE*==fc1Km%Eu*zJ4chKlN#v*A5;OsCM!ZC3xqi?#vb0KcaSHp6DjzjJ?Mh zOMx~9@`;ZP-9Lg?dGH%g@i%}ztCRVP{8s;1jbCIfz1Hjt75t~->cfmg`mx^|ElQ27q+=tN&5a+2tZ-4D3>mKG>)Hj=ZTl{^(SRp+i2p8=s= zsrdROqt`~CM!bdL!&Vx%ZrzEF>Q#LTZ9KHmq}D-!;``5Yaobj*+uUG^F!C!(TsiRs zhK%;MDZ+O^&Kdc7HveNFL3BZeZfKuk=z%KF#%&9qv-^22ZP)UNO+KUXN92wIpC!jt zxte6y^cU#Mv2!c2Vy{1fpJR1I?wl5$AK>}(`0D;XWvdA0J!tqO!1jl6l3ez)I%ZV>ayDTMJ*l%C~Un z8h)Yr=JWq2@Y(XYlX1HH2NI%wzPa>@Y04YDzC2&=E!A!H$e&wYn`Gn$5q>T3LwDzm z(`&`&V%B+cq;dD%q~FsQ9o7EF7lU`-_UM0BoDklql{;tX9Oa%Bf9hn@)N1^F7j0d8 zh1`eS|0BK0$0uD_0s4*S?<(+T&eV2C^myR|qxGyALA^@WnlWYfFz@Iej4z9hqF&@{<`o|LcCN$E zoO87QmU~ubsnI1Clf^A_#rLJOnEOz4m=b>iFRo{DE`(RxfZQ(U_$gra2{y4${yqdh zCaS)RL;s&@^8JnfKOr_I_&KcQeCYZ4@c!I%wXgfLzm58a?_GW~aPDQ3PjsQd?`CRX zguc%*Q(MZ_|3}`d=msC}{yBclD*nwT{G84BJ4cXHY#6x$v)=p|`X=?3#fGO1jipZ* zZq$3+6ZV~1X!700S^WE)pdYs61WqS*rgFG4d#x!e$AfKBBj&kg$)5PvmS zhiy?M;ECMBB`PMt|bF(KWf)sX-4qpiddt@WoCT2>G5> z#axOr%vXbPh9{~29KiPsKbvY|3?2A#ZO??qs(aq-%*5|RYKW3kzFBGwv?MBX;?RW% zUvX0ewNjSCPqf_W*VMQSPs=2~V_14lI&s}aHPJagkIK#QjK9m@wc*Rx%EPim$rBsBX0~tJ;Lm1UyXgCTe$KTM)mWy+^&JnXm0#Dg4`M;+H?V zS?SMUZPm!$&SA+jlCeX?^RDFMe-PX&mNKTWO! zK0CRrsGmFK@6RayzeC?I;``rEzLmd#)9-O-{nhx5 zSp8>Q{{9=u7aV2SPxlvYj)Zp{Zp3s%1md=RbhE4fS0;g9i2=Vq{TuL00Df!Yc5d%W zQ(_(mem(2WWf{Ql$_7T7uTXQ1H%JMobazqZf8j@Y&^>>dG5DL02;LQUc8z@fqWDm~IiEs9a$y}zDk zp6BoMdrH3?-@on*dsY_ab=;Jdvl0G5&R8mE`u&fo#jucbh7XJloE3Ud4c=d}dD-;p z+k*IR(6KhVZ#DB0AHzM+@5<_+-3xaGvE4p!fE^IS{egp73G2+i!GHm_B z_^bHNn&G99pIX7sW%{y^tvKW(wJzwBKD0gjR!n1+vyC(9<4gup(f7;vaxYa2j&lcZ zfcF+ZV)1nozov7qM);Par|2cmvEWy@M%@a1MVsjIYj`i4`taH7gTB?tX1i{miT^Tf z;Q?b_T;pu3q3;Skn0v66_f>KareI^l$C>qAdY_1in1gEyN=)n5KZ4Jc?Tp!O)SkRu z59T1;Ok2@m+(C@AU9sDSw%rt=#GI*0Yui~vUW03tMZ$YB{)*GwtK4tM_1szTGOdbT z58SFO+G!r9@8vVR{wTBEZNyK%*ywl`{lI4CFSRnglgLG`TCJPjndtlHtHXSM0PlK% z$pv74>eW==dvp2xz4`9bzc=6b0XaqM!HGj^w5=R{8nwY%_T?yx9>S(2-v^|282`WX zIJr21y9(Uj-Pogzwgn5x}}A{Sp3_f*9YxVJF!RBhwPEj;NyOH0{8(V$I1B{ zikc<=^@D3xw4IdPcF?)AtfP_t?a$kXjA&n!KK>k(Nnhyx&gPh!&)(FqAYd;rfV_PN#z zhw=_!bBN@geGJ+4D6(1u_J(78w!WC@^B-*3F0grG&8jwuiM1iOoxh>5`Jc$6lJn)* z4X(Ch$Y^K5p~f}$wtW^x*BdZ;&GA=rr2F`!*BmXX^)fh}M6ReWRu)bF)AF|IhmzZL zaD{nfV0{bRlFM8U$^kCh`8|Y8!J|3TV{BtmuzA|o57EPnCX}}*}G+#Dyf#mo* z$e9s-Q06SM!Nr*c&5hXN&LX=uh>ZJ^+I;p*VRM5T5tM=1AIUAV6F)_v7k`D{3g24- zKRH7mutyh=bQSMeX$~K@x>gTe8^3C(c|55t;SxpX+spK3z1bqVMwl=6&`<`0!T-$G_9CXxz zXSFZYI{rDL)_pch@Nqb2^ZvHetULAo;XBSM<84zusW{Q_(ukyel{4Gqd~GNU*1wau zievC@5_8gojUW;o&QWMn!@A)+4yxmAP53G_JQPK{OKX-G-J|M=4B69$naXVA45$kD z+}0LAH)|K$=0f|9hIo^=K{b1u&{GL6i993lks1QOMqhPw0?#9P4lEngrtJ+X{uJw` z?Px^TM9sMwt>~JffX{Jox@pq!?K{ykHN4rhy(!J)Jx;sh=%!lHKOJPwxofb(_a^u;n6Bo?q zk9g@FACS+cfWPVYNA376wJjeSm$=~k<}(X?ZKsw;Uw>i2i1E9ZzxHg($fKe6kMZsT z{_rE-@f`0z$op^bzPvkZ{9Vg;CqA@b_Z_eA~3)=vv27hX@`{ z?qZ3jK+fCNKK5()IOxw{-@h2+YoTxOx%9u7AH3bx!im9JQj$|;{AcFYF)A@9%GG-kz zmfeuC?3vG^2kH*P4Ebt3a}}OP>}1l$`l!dD>z86P#r`L;nI2$O#5>{f+|UP+>52@V zO=GN}4edS|e?*WU4L}FNb$6%gpRKz)s!Yq4d0uKOy3(azz>g002krjy{(|tZy{5>0{>8 z#~Qn;R~bHV@x*H%Fj@32WVExu`Oy$wi9GN&{Z&}OBidW^Rc+3ZYdET%X!dM4f)!tSHD>A$mcv1;}4amYPKiY3!%}HBjKbeE+9OQ#vMA9Jq)%Jxjfh| znRY|<3~~4=nZx*aYaC}K82i8W{maivk&=k(IKE5?*NacrWp$WU=8Ep*EB(2?ZXO=` zuHy^?YeV<&9{$*aXQwO9&?SD8IY}zp^z_m6*u`aoyY7yf>0bXaG!wJ<%#7&BMK`+H)1 z-F)wSH*VX&CiTrP(kV$yjy2Kck56&=6C%jV!C5JW)^=4__G$R|*;5a1FRI1nM~;ZS z#K6F__?NlrN+VD0F=C!nd`gzm=4^HFoGjyfi661V0Ut2g^tKsZ$7=Rp>IZlwSA3++ z_ATV(`jDJVUV=qMroJ2}{$zew{{gJ0p_Dj47R{r^Vz?&Nn3KlfyFyl(xkCmgIb z*Mi@;_^nrm=tkvFCK+^tXNE4Q*q|GS9aY2(6yYB&@Mr-Z@_st!zw)P({5mvb13pV# zoT2czA)V0H!gn>_^^EHVR)OkZEcZP6l$c=gNj|_`)rMb*z^WRVnR7hb${hRA*I2I# zK5yZw=z>rh`nQs zYpr|DSmMSKW|XMJzNusReRSyeBz_+q`kk5$$U^LeA^%siKjrKX`sl&+88FpsKJjBI z0uHiXd|0=p?zb5Bz#ZUcJbtY4__11s>_>N|;iI{=Fv4oQCwI&Pf0dj%@#J{84xQ(< z=sxG711&@sDs^mwb?jQei!j|oUp5%uBkR14J5l0$3OK8;d`P`h@JeDc!h5TsOX!Hw zY!>jZ5_%?dO!OLhh>m4|cj0{-#Fr;*KI*M`9Y6*Y_-L9=tN@ zIe!<==P>r+^*^;%F2Cl{Pv6CCjYKOs!zM~vC<`+kxKU6 zLOum2{9iHx8wubznqNhNX5Wcz#x;BcuI(wqX zlcHV0vy8(1apY_{Zwpe0=xLF@CYd>LosC zYss)=A2I6Ql*6ZUEu0JDl5$JXQ{-bis1ZE!-|4qZYA0`rGDmV+Sex&}KYv`T^m7Nf z$d*96+`Nwtx4NBvt*_kamskv)@7gc#^tUrl8||S1bEM6wppGpD|2cI1iY_)t))Fgy z%e(Svfqo|2l@$}|A6^_C@933E;(*x;k$eeY#Q-q_k@IHpWL0u`o{nV z2k=M&E@Pns5VoI1hnTa-sT(=BhfF4NoIO@r3yw?f@L98v53W&WX~d&z z=3L3+L|z7Mj;Hl8YLIgthGADRX*m)nWyIZ6Gv*XEW5^%EU#RXPHDgXuGv*XEV?59+ z;g4pkTD5}C;>oDH{8uvm3yl8=eN=LX*Tn|os3g8?j}kp7ue?J1{jMAOayqPq{z~#$ zchRnrTDlteRY}g&j^P{qUFcIht0V_i9Qn4!wg_LF{vFQeb$vM>q7UqYZg}d6cZ3fR z8tQ?DN?fP`r&M$$z{9}lY;bybar2>Xx%$tbw-I~}zh4Zl2+eKB-_3If-MU4Y^~7tt z{UYa78Gb9lc&;vVm^-j1ieEw|I3|3y1}%6LxOs?0&?cSW4p!zE;}y92cdcF3cN&<# z6BS?Fgh-XI`*8$R^Dd;4mM0}sPT<}38-0P~eN9+|KBGF-%`GU$&rJCKRo-^Kb8 z*Wu3)f`73k2+t4ElSy9d4pX6jGq{+nM(Fr>FKUu?msIDu_N(;NQf0k5{#{HAO}7srOxhkH~r8Ej3&6O%>VM zhZ-FDrbs>eCykEm?QBL+@N4!9srZd#0;GMhVteuZ|sS*OhXh-tVl01ty4*fI^jhXvFl zS+-_+AF`v7XF=ivGq|TqxTmF#V+Qv#Ioisc@(DlZj48G`xu>0}d=~J>Jq^F%mN7bk zK|6Q8g*(3%I<2jXGw$zO&rpwn`@17Kcz@S3hK`Q@Ec2KTpV$iBYg|*+w~QLg9`0?8 z`2C@GcZYFjI|lFU8umx->;mqdlib;VeivJVva5gcq+B9Xq#{E2w zvtQSQo&s9cog_I3gY{ZEX0Y#L4~n2^?QzJ>oTF~=-{2eK`3?_}s=E4b1NXbxhY7b-^bMHe1H)e0x!q}wc+<-r z-orWWc|qzQa^@$v`rpOZNBD;KIr~aM%6Nf8(AS6D(C`n7&7-}EX3cjW{KSCxx`=Pm zT9^MKI4S4!@0_W0c!`hEGZ(`X^ifOlqbc~0!Ec>1J+WP2)kUoKCdQVvJLBsdtI`iU z;IsCJV7$LXjrA46V;yGR>GRXQngx0u;vr-{_`1%T8|E8gc=pg^oM#Jnjhv0(-gykZ zVdj_e4Rz3O(UVz?J6u_DEpm$FT&n|rB+odufkhqDfh9gtr}FWoa>K_!m(xGG;g^!f zMPMU&rDZ;Y@6DBXn9HBZ7=yGP-{(4LeVtYE#Zcq*wL5<~l-|!okM$V%gx*3&&t}kO z+4Hf`*M9cT^8H~W#m_xRn-f}&e2V=Pp3wu%6u4$0D@m^JZc|)moz>#KQXT94hgr!e z#^&st^tPi8T5Q3FQVjg|u(p)@e$XfDOTF*Dz7+6J(VXK4&j@`Qd9M$p2W;FMGB4R% z!G(cCbBui#8AABNDn5m0{yv}Le_4SZbc&pv(7Z0f%L#7m1*UR;DgTrDJWs6@l`6sfDVra13&+=P^+~@EI;)9}@qw!~v z{NC{o@k75&tk_jmCR748Hd!Fw^icEn*IaFDriS zUF4lD8V8*b9*qB&Fc;C43G8L9Ld%(_Uc>LglL&$hRf5E27;ziRV#mw6W^W?0SbKT6i@6&{zn z0Up3lU$=N#+A{_31JnMV(JDd)zC?Pe4@ zeQP|tIxz6IE2tX?q(z<4Nog1;9H6c;CjJz{4B0 zmWW?%{T~09k0m|@ouJ6H#<=T2-67*K7lZ zuR9u8zt}G9GsydqsQ9b7Xs8ol1WBZjsb{&zS1MoYS?-#<{cO-vbPE z)~l1VQ{WN_T$)(l0%G}P{4K!5n1hr2Z1@?7FY>z0}Y5>L=&PRg)=JEXYQEB|YU10T=a>QJ5z4|9=U|8Xa=M zWmLS6r0JtH@Yut9b;zXo*z+T~llJ^ec{dzoPW0I2(DJa~UzNa(``^gBu|`?ZjDAjV zrw$z*G(VstAITW4GKP^8BmUpciSew%70ii&FIzY##!>S8T$U4qahYEzCq}%HS4eWR ziceSsKb&F?4;BvtlYaDaHA=3C!Lg#uKCz>E z)3A#&-WTT<3Hq!UwjS<`diHNH|AqlSt07-@5d+;6dzZ+6*_p`0k|&~@HOXDz=HA#_ z8q8g>l$erm?uz8lzFwZY!eZo;s$ovG%*g~!g>zS!pkLwK6&iP6vVuJ?D~MC!+!Y?? zlrQ`=dn)sJo!mmy(2glTctt>B>vaCy=<0rouS&+q1e?GcAJZYea#o%944ecX-zfAX z_@qwI5FCA@a9_MHI`o_I&P}6zcK)v;F06|49Nt6d+8`c|9r}LXXoHUblrz{>4(@*g z-DqB6zf*Pfi|zTe9?WO(>3s{KFE>GFZiL<}fbPtPrX;#q<5$z|Ryb?%EmPPR3py*w|2HsYc=IO52=5)IG~cRI<9rU{ z1?x->Z}(NmS>z;erjGD-qpOj3yOA3$(ABZX^J9?b9~eKv>zu@M^tkVijA(xEMsssL zdAEeeu-zf{-w5IcMzqLYFXMc9M?dFpFjLbb9 zD|rJXx9%R~I>{R#w&C=uOrxfnN8&hvRi^N+&Z`+4|TO@kFDD;;SyA=g}?`8hI%s+-t1)ftO#yLjK-XXqZ!tc*R z=Qe?RW+Si=+VTMVT0o5I)9kC{#krQa)>QmEQ>jaRM^P#^p7u4HiB0`Ae0JePd+>cf4kGsy>~=&H~mY^h(74RBha?TOo`sZQRGO$XC(u=?3tYC)gt4( z+L*F_#ggEyT(8DenOqOorzLuej)|@cooL?8{yIk@v4(M8C-JJq)EJTb3_tEgOU>X1 z-!u7+d{x>5%`4&lJcq7eFFpvZFFxQnfS$JXft}l%!0Xqcc{d{GZ3U;_Bpy216r)Ga z@ELhu%Hx7{1I~(!2Chr)*9P(=9>wRmDZZUtBG8&|L?s<3ZucZ{qQ?(DMgFrf`tcW^ zbVN~OxRr4Zat|#fu7&d!(@5MLzr{SS#>BRMV}UJySR-}8Z7ptee4<|!-9kNd{4{#5 zKb?%*7KXFHTwpJIAbSzs7vVL!(Vg|63oK{NUfR|>xbrM(QoUoczhn)uYvk0B*u|0< zZAZzc#=!?&w_xsB~$nBicmm{)a-S^;O;AxwoA5LPCTfoT@Rq;_HVY~B| zwzg{UMh9;i(h|J&$1=Q<&$cA*aldzRf>#H>mV#f!>zx07>@a&|#11pZuZ|sl3V*^e z#123Cx!B~w~%Z6kLeb=3s^LH%EPz)hYefxp1o4Jy~AL`lrB?ca=!m4@*| z&VdV^xZuiS&Z@-3uEOV_oHHAMca(VZI%0%-gf7e^7T9bFoY{G8^M{YjZ5F=kJ@mw# z&xrmKdc%CVHy6DGtjT5R75+UQ+esbs__`Qi(dQ+MqxR3*9~d#bb?mRi@t!nU0_{J( z`R{wdQ;j$~mHprIzj50l7*Aq+mC7zku-1IT(0!X!BaTAibmbg~jP?p^5qczcj|2G7 ziF{?qQd1KR*-GB^^Si`&{%q)T;%7C+7<~WbL{MkQ|HOQXj;#DImtus)H&$XmcMt6c zAH9p<^Ak=cj8{h7K>U*Qkbh0Hc+|HmHn|22nyBKmxopmwt!^iJW%Bpi^37KLD*S$vXg2|RG8R4MFU-oz^>IPHlnef{ni>N6 z_&+GAC2L>h-txp@8+iKiSj0o4je2qZuy5e6{uH-O)_Eq5`jpsMz>EEbQytt9V~u#j zu0LO@A=OJvU8QO449|3Y<_6}TI9wf!MGot#dhofOI_Zc*HPp9rLZ5 zA^8y!^!o2BizIiaJiqzTdPisVQX^ix8vT`f-H5WsdEbZ$pQHH0^$PahrR1bUC?jje zE1zb7t2WNbK1FlSKfUHeOQf~)9I|GU$>u$Fi{kG!CuH;r{}IZCb)LA6-qbh9TXfWM z-X!yi)^lcVb;vmQxyQWzU1HzVNc6K7eJVNK^wY?-sx2V-yX8FoyrsVM${)9^{Kxys zj89%yW_Z$6Uzbhkj~GcEFyQvu(N{{}znyc2jM2^5PR7O$r|k$i+X9mX7qA(G;`+o7 z)LwPDA7~>wCLKOs-kZvM5>GdO3HkNspevfF%<|G^CwHB#O3#&ADGlJp^U#2NbCf=P zW|KqwBR8mHR_;}sjGV(V2LBuNSs2Tx5%T7NhEiJ^e=f_ zBtFD$&Ykl`bJpSMhOVn&U0hkiq;dGQQVR#&zv#NXONlcIeQ$lS!9o5PBNkxaZtr5z z{mU5SNy}*X0+$jOYvRb9jDDU$D>5KY-l>dfGrP=A+1j%V{6pI~h-BJjr{|$(~8w zoa2nqc`xS(9_<;<_dXeq`AO{_*=xzGAoDWv6!ZRY`j&YeppC@R+c`S{a^6WlN7r0} ze|XF=z6g#iWsNenjN7>m*eObmv=@8gUd9CYCGhcBWV|mfil)uOYR-=F6cwXdEOZ3xI=3Dv>NB- zQk!|yan#HC$-2U}(3(v>w(Qu2wrtZ_Yjzr+h5U_HV#7W&k^_af zr?;e5MFaDXX6^gX9|>%xhT>&=S1)fHU~V?}1gSM3`xcpY%&{N+eI&6t(XmQtIR2Ko z_GOcIA{2kSJsZ1M_T)DllG`fWr^~z$pFCr3UpvoiYm6<$YCRLAl zwqfy9liemX0lK(CbY`MQJBO|a9yw48FNWSIyeGLk!MiX$65Y^I=u=jy6!AdmnOk_1PvbGtS`kF2BTMHJWng>;#^Y&+42l7_<5UepkK2 zM%vD!Tg-+o<_`xBKiTTIz;}_Ad!dm5#sU6DJsHt=i_Wf)&&FZIThZ>#mK zVsAZ(9=DZtdqcEU&i(Vtkj1gjv>sgGOvabxIPiU)^&JpDBfiVL_JV_guUo89-ri#J z{uL;*4#<4rx%Vq0-4{4dr+~A9{!FO~#&$1ZjYe+JiEj`yO+L^N%`E^AQzKkfMNx6< zO0rhijPEuj+GSIeu~sF8PZxiqXdj{2)YZvlY0RCNP~Ek^*6|MC^F@#Mtaq_Z3EmMB z+a1Qmld3%+ajM^3qWXkS>fvtBg>UF)e&Kspey?VJPJVZ?e|%^Et=z%&25!l{TwF(t zhQ#llPBv<@>=VCPi`}TrBD|Q~-{F3OcC}GudUgnpLU*~)sl&&#wi0vu7v7N#p}2g3 z%{1BwO%z-dy!JlI{mM88zJzv5-8Ifg5N|`{Weo4g=^61xPK)IaIn}mPImMAhIftWe z%BdUq?VMWhqJw@dF6_gN;%6W}R`KMPFt_}kxm<&ioHZ0v%ZHpG1|KK-FR5?nvE|N5H|R8ZbBQ6t zSA5i$-}j-qdPDB+!TbI{iTCLH{hWWR?QU|UTs%40R)ZD?eLWQX`K8v`=l2y`UQ8!z zuWUsJ^MCKp84AmfM&QSXyx2#4@}0o#1LJ#q%SR*7!G8vZhsob#`S8Ze+V|NMzqDQX z1u(bZ@6<<4-?|Go&oOkv=+3kPv1w^WK60_;b}QdDp4Ek(VZR#8Ni6%THPYT8Hu<7C z^}OSSC!NY3U88^QC3?Cv|Ma;`UGXs6XUTHafWPs zf0BNunm=y`yBV8@@YKyFmtXoS`7ZNUQ*wky?oiY5Kg!A}!jD>uaOHGF6y;=q4+7^Z zA3VmR=)Tdz$h%xji>m0$^Uo{h7|);N`F{qV>*IsZIzG(_K6{#HyMxcX#FR@r?bH0= zvu2*P2A}O68+=yu$qm70FY@e_;ImHZUrD}RE?xJHJD_ z47!v7T`Doo2{tIchtE}KwVpc<`KSb1HjO*F3D_L)iLSNDA+l1*IIXN@UA-)X@N+TBY&pM-^QCRVG_#&I_17r=d9>LFZ_;YA*@Ram*O%ez zBKNt$qrwC1<6VO<$!Vkpr&`uZ-D+KpbT7kCS6^o;)8!MMPmgiibo_PoR6Yy%iyv1e z>pTD+wBq|iZUqu^~D7EApu;UDB)l{@=~-1YPHOSLD3R~6h7UKQn)-@awUoB;CL zS>&~2(6#50;ieHWf%zvbw4PPR;PDidETXqUQ zc4V{?lLhY>em|AF$H5E%{-)y{a7F3_=giz_wEb~`YAsOIj6=f;tf`90ou=5VODx8BTWWNHEmg5wQ&aeK z@y9)?qI(u!ZQ(nwMCbBna$13BTMK`kG$_M={0D5`$%gIwvbfJB=nI4Op1wL3C0tMJ zlTQa;4&XcTw8XEaCmD8l(dne{yD?_&c;CC|b;9r8|H;71J>mB^2j_G0f8w_NC8P_g z_(!PS)Um#|L%+5EJ@i|2vQK;qjsC;GogZt|W0&7*`a|zkj`RJN_ZGh$w@pig=HlyP zWnVL@h`Yh(=W?4`Y?;P=hArF34XmL{DFI(IZiVjACK=q58n#aAX^1Vn9$X0Pdd1&4 z8M)b`a@WyLe6+Nw_!G*Qj3fSFf}8UO<$JMh9CMsQC(?i)8nM5I|De=frRJ-_3uN9A z<^wLTzbfq-!D-PEHGtDoE0NQYzpT)i{H5rPpdWVVfz(&fMHj%lrLL#Ezl=G|uev-( zP`K`E_#NZyRxR&)0eRy%F_QPN*5j#fY(I`~TrV+_$MN0Mm(8~=le3InFmraW@9B&! z{g=?cz*Tr=$>UeTxvw&_C}g3dA@JLFvW)uM0L_|u6CvU2yj)vcwO6P{gJ4s4dddrRK+=Z8PCRy#2z2#S}i<6d5s}CM9j`=v^S?gTo z!Wr}hpX=kPG-GbPzmMDY$QRAso?@KA#4(Dml6W%>U5d75ZChmqIC#(F;%lti=yx>n ztD}iul{FK$7Nif#1m8OP48!s$FviAIx&htcb^I=IqW#R#fG4mo`8bf})QTj5*8ieb+DLxhdgLdX#$+*O3=4l@#=XB9-)Svrua_6Rdn;lB5z+@LT zQ^AoX;0QX(4CzB7ha353SEev8!GS&OwTxS=##5KO#3uVLzOcsrPjRiTWZvxi%69Aw zQVa5S=2CU2AkV2PIhU>b+Y@}xu-BC3et zj*W}jpmj!0FY%qOUJUItWCL_(FV>@PGsW2--Wc=`7F!SJNX|U^+?HN+667h(JAW`a z_uMy?T+vrZd@HtaU&GVETx_-2>bp$HTk~JpVcEZt7*LB>VB5!jau(jILtZE$J}8hz zy?F3^8N43$z=h;nid{Zl^Byan=51B2-sWM-nr2m5(}>TMAshaaoGFYWK1->Lp_!q} ztV2f*7#N6l4q!hWAolE&xhCH>WV2V`SzgIV^VONx{iJ)t@a7!GS_@5E9GBt~TECYy zT?7|9Mz`l$p!Jpbr)cKU2CbK8bD;I7$tU$ z^aKAopMK=r6W`J=v`g}RY=v(T`elKBNq!MaVq#8Jrm|3SB6e{`>Zu*;#veFbJGPlU z5V~GvRu|^ikvAOr)suF3d%4B+H=zT;@Av%eAm6+BJ>OFCw_VV^s!i&`x-zFXeVFQZ zrbbZrLi#{%QIp*D{9c?I;lx(t8^iDam@vxO4IS+vuBxjy`v0Zw&Eumi&&BWOnMq)l z>|q@+$%Fuzge@u%+%ic3lMIUlS{2)7LpzfJG}whjOn|5f6P8EQ+C%IwtV)8Z;L>K! z!9xJ0Ac7LqF6W%GTC=cPmqfw*zSlDujMmeh^M2mvdoI;`ofU)cZWB z1lmBK?7&VUK3000$k~o9#F|N)*}eU|&$S|>USF#1S!7pix1UW`y4%>3Nvilono=^d zlRJ}NsowM_&WXN%=%rr7M`8f$>OSC{Vu~_N>ZUe#ch5^pKJ}5y?op@z*f`>V$h+8p zez~Jhu25Ou_R;mW3)p_^!GV$|G=(^5E4IHXa;SR9iD3rz+|Mfw9%NhZ^F~KG{QW1; z>z_ccEo0Doo!}hcFC%TNgNKk9ii{$BGVsOq@@y%*&sumxT_4%YbIJ9BI}K&%I>^IZ z(fXVF$;*j<<{eYRt(%EcLf^D;i<E4LqC-WEM zAGzhnYNTO7NTe}pOk7A*N?d4Ea$Mx@7xMc>+2f+f6CBk#P`eskk>5WmEv~OVPS?ee zCsFc=1o=Q2Q?$h%7q1Lok{>o9E-mHexR~k2_;}@}C20}zJA~hHy}v{G9k2iXSREY~ zH9dy^%905Y6XIHw$4 z7I}L#YL+xwcHdvRx9ql`ydG^zi#y>Nv$uxaI`t|!sL|mWp&_!**sb$}dpwnEL7M;C z^`61O>$3M<^t*2z`by~Zjs4*)NDh>Lx<8s))Vh%@V@WVunvL?Nn4x>Q;Ze7EuwnXWw;bBd zIhMT7H=eQbOy0_nxh|e79fv;qtNQ#IYM4dj)y7PVg?i#CGmxKah@HtY(M32qX5zW4pu+TghmU4_h7=9R~HX&!Pmu*dLkxMXEc!B3U6oHbwb*sCQM#oHsbWabitX?b41K76E> z$aNiGOaWiq8TohkVkW*zI=JH9rpz$y1#pGnjv&5J!4KcW7xuVF;!!W}8K`Xx zs{n7L#bHmlVecwLR!bYzV(Tj}3ZA$^n;C|Le&n}sfm|DP0~e&>uYJ{X6fC~fdE5b}Mm?Gr;XT!R^(3aC_T=5sx-9hKdtb+UB?Mr3^H*qWNfw%bHK$8Y1_CeGqIPf9xctX42IP}4%jQP?{UJN=6M6UfytuyH7G zwOQ$!Ob&tQebkwf*gV0DlCxm2G9cv>c$m+ibyd_6FpqTlbMaHN5G$S9n=?BDm_LHm zDT8(DWSt6FqYJDNdNVzTcphsshIR40Y;=rat-v$B(wCJ6p?|@AdPlLdsdlHHKLR~> zt(ioyyy;roV zTG7X<);^-Y=D_Do;uSnM_t)C-Up>2!IFE`+8hak|#X{xE{Bwh~!QdPReYHP@-4}n? zbMTfO#6VD6pz*V=@{{_#uJTtb@P*=EodjRn#+sO-`};zF>hyFnN#Znp8U z;d7aPSqJS0VMo@4HM+4TtcQ)<>YHY;CZ(*&4Az7gJ)fs{O?<$D#6RuByG5sM z_AVNQ%m>~%Bh(7o!}*9Bb;7m*KYQv1S}s7h zj`QBzy!Q_8iQi4|okhUn+tkqu_9gcI8qSv3Q(x5Okuch>vB`76XT+C4#`6w3E9ryw zEs|69H^?^yYJ_*@M0C(RUz17xS9fyyDMLtS0=|^t@F9zfEBw^%>RgKsXm;;>gYEuC zpC^9F%=1$3c#kvQ+vIqFhp41W}bcD6CUvY={&`Dqx)E(V|$x<){J^v;%Y6s zn5XFHq+Lo8>Uqy(p22vrQsCD`&Y^hK+Udj3RN&+yx-#&lHwoF`R8~@_b)G>tYq$e=2To$zIRF0$-UQZ$lJ8vbY8SE1!cXWl?+u6cDe)+u z8RHtSVV9J1Fy~}!?L}msV0-8AISazB!2MU~#Xdqt3ifNH-D|ujFiCv^-M>QMauH)6 z*9$K-;n;rBiHbj01GNY|jC~yN=p`;!p79F4{*GrZ998|D@2Gw+=MP(yOY9~h>mDU; zM$WmMaXBZs@L+3+(f*V(?jsM<1?JNQo`X;59D{$n_)A=3+>-bEU3JjWs1=ViXJa2M z<~)@#&O*j6u`nvJFnSye@htWPCFZ;0U@{B_Z{p3XZPR!@)cs(y9s`qf$W}S(4cm4l z#PVHnFu`||J=2bR%PM(pNt4!`G$Pz_SO8%-* z`)zhbu{af@mH2d?H+a(~RoKdSK8^UAgvZsn!W%>nsF^(>^10E!9|@#;*Skn_QhG}+3z5(x(GaUf(Mhqw4fQf&hB9S4QN4GJFx7C zmOPw8y&cd8;9ak~!QSgM6S?slG;<;J!P`q8EUC~Nk`9TRr%TcU%ttS>h>I+Uu@dFF$$t`a{oLR->#h;cqcJ>>b->&VSEJ72gzPUc&O!X2~zu zlV&J$^M3^Yt@8gw;C~YT#m~IwUyS4~X$xAny9F)*7lU+F>x!pQA2dVhEke5E4 zJ=gVm0lGJc`b+~Gjr2X0&t`a^@46n!J^V;`=T6XoOe1Uo~5WFStew zUpuxf@sVCg|Lu3dLvQVjEqExvhX&_#u=gH>p!VXI)4svue1xt>d8cQx@L_GN-KnhP&K7D03;omiFZj0{ z75x(Y8+zEQYoL7t;l#Ss$SX@F{cR_osIHpbyF5 zCD!Vn@);kIH@#O5Ni(B=aJ+`ycBLBIq#Cu7(~9<&Y*kyaM$zmQj={6is7CEl5 z<4BBxuFHA8ze8*~rCUQCZuBg~6?@M>Kit?8@pmCyiQmY2`}kcrn0lh%nW@y7Dr8(g zQ!8Sgq%N3T>)IJp`wHW_w;`r>>G9aw9KL&uq2zW9C%0n+vGkF|)JG9pA5DyX3^_bv z8@hXQJ09*E+wo&XuhC^rnC2jV*3-y)Cvu2IGo8WK*&iMBveKmuy}9Ogl51|C9b@T`R$lodX>4cV# z9Hq5q^E@^b{XTI>=2rv1J4S~#m`_U{0dfYw^O(>f+xlZCAots&Pv52Woc=15g`k9_~&o&7@8*-wQivxjnj$}8d8K)zplIYNuVwq|^HP5xx!BCoB19-@!_ zuz$s!KkE+2;u6#5>HbQhAd7Uy`VL~yE0s`JNNGa4!d&91sVTNE zY+_m!v?z+$c=+PzQ>sa?hb`;dB)qU1qDigEyj7}}0q$49fl~WX*6Ap^Zs8YeEW~4< z=%bh9U6 zuR;x|c;4O5dQ1JFCUj0wt7$KbYs9>*UyRP0wJt|@B=uzT_$~JDGZLpio0?||du({9s@d;ZE$Ci5hUGTM98Lpk>|Oq8_$f=mAm1GF zURo0R`J8-9E!#X`&(3{&!Vz1hs#+u#a_u0C51oN8>x5BT10OSWPNAje)2`do`q_k+68mbB6LJ<*+tZ4>+F#14ZpDM0U?Q}E*|Eo3~waVSpu?9-pD zcW`}!3&Dk=KTPI(ZK>1m zRGm*xU_GM}kJzFWXRH0}vXl1Y=*Fw6>QhcHJLyz^_R4;KpB0$07<_rJW%|jVQd&rD z>b2Cv5g5w`#xgkjZR}kL>-(TnInj@A<-9WfBXY0U-G9B~Y{;oQvP_$2WjPIt?f;p$ zI5A}Sk4A(H_)$_w*pC$UK}k;HGlEZI+#$~3Db7(QYhScYMW$Um(5Blyx4khM=k!v%MW++8ET;j10!W>SFZJn&?$YPKBV+*gAa zI(1x1t^jZ;co?0Tsj&urLHL0TbloZFU}u3}^jh<(*%ckZ*&$wK0x>Zs(C?lIQ6@({ zZitPRdVvQf_@dF5?3oi?SAo5Ocq|_^1brI(Kw3nkFKzYg?gYjlbjQHGZ19oMYV>7Y zDM&Y14LZKf1m|uYzGK$G%B_n_{%D^yl~2fjCM`~Sd&H~}rDyIa;rEErEq7#9zA#It zONv3qM?#m~9V zAf8}QV+pzQh0pr1f6JZ0^=;GF*3?NpB)tt;Us<2EecCz0HHT-*jke}|M>~4%0mjqI zr+z~|x_HY}YPgxmkJMiizD$>e$Z666{mN6Jb?}%S_-g3C;W0bL_x{FqQBDo-AkQfL zi|-}!E8wTG(?DMICEjk+Oni)yWgN^`=fBeuwNBx8i493uR@!C8*Fo|xn^!-XzlQH> z_-zaNVTp%M0v-(Tr&$w*>$&z%(++!>|D%+!+O{7%yN`S;Z&xO3BsoF_7k}q{*6jL< zxyT#&$Q^T#Kkh*enN3cwS>y?wxd{10&+9eg=s&0@yvBB-i+J!)kyXUc^c%9uY-4xZ zxoFL_QqcytuXwtxgjjigo8flsw}@UFyom zp7|ZJ60!HKjpPb&!y^d~Pt6Hm+mDS6ro<=pJo9bX!Q7*`w^edFa4#1A9^YRRZJJoK zwn(L0^2mP)zuGp!*=;&8$=9(>Y3O24-LfaS&h9nji_zsA)>L2Pjl;C_$TX4%cqs2) z8?AId_kc3zRermnO(y%FY}Kjn*@mEFs~YhqY7i?ix$@2b2aP7zAnb4^>aK-wJs|52 zM5iY;9ELWIN7fCA{rl@5a@Lc%M?UoET6A#x(KEVBz1@WmdAmPh+>*Ca+7KO;jLW^4 zu@A+D0E|k$M7jUj+${3W4xpbwjop!A+X~D-!vbaOWC(BusA=XimUEJmU$14t zc`^}Kd7gGYyhYLTyd=`D=+~a)bBbqM%w3b+BIg1_Dag4E5g*tJMAl#~B5R0mhWM3- z1AmJQ;XZsUHXhFm(H+nw(}8RJl`)&%C4o2p!~|8)9wc|P%{Q?Dx_S@D@=d^1js|5Vm++jAE~oqj4F)_fnFBCTV>PFRA)jQcAKkhjAsUL zT1kJErV>6yaUrG!ah1HgU>STSb70(hZCqrGd^30`kkh<44xPhpb!A{Yvi60y-TM0V z6;s)}Z1ykBD5+r|#$Q^meE?(vy1}uudK{;z6HW0~aB=t_;dP3=f=hmP% zx=!7}JVb_sPIL;-EOU`H4CGYJWXuQje6l^+{m7>p3l1E>_y;nNLEIb6*oQQL*WSI6 zU*lP&JL9oH&Svy*`Oo2#70$Ow;7)Sk$=Rn)BSF!+{@i5WZ=?2(Uwm-GfXP&BV{Hqu zduI;O%;2Qt1V>$j9oe2XB30Ez?n)POMojdm!?rfA8M#&s?T?$0?Ku3$C-Y6TAvi7z zpU}^@88m8TYn@hbo}2#ZOZ0G|;2qO&tIw1>(r5N0E-g32d7H+tM%2Y|(B?4}JV;E& zaO}FB#yCA@+2{2(A0VfycjN(bCMYpmb5ngT^2cS7KTdLyy)hb|gSrcGX_dA&da_Se zdKWbRp64r*es433I$%Q&U~v(X+QfUiuwQS*9z2seoAJ>6IBec=Lx|JI-gcCCrLSXp zU*sP~M|(6<+O~QPX+E2Q=Umv^OuwP5N z4d=JA%9kbDv<$%@27-=hQ zwcb`IK0#;kEy`MI)m%%xOC?^o9DnRJ3CcVn26kg z{MAl>5^G!S_2_eS5ZmHVqbpH4J1g2Y3gv{sVdUGklZYyGx0Y+z;Zn zgl)_J6}0D0{=Z6FvOmA2tyXP)QYlcNsV-Xn%k*0|Qt&+@!skoA3i zjR$%MPJB}D?~rkTYZQIVTd|<|uf~BXhuFs_sc$TO97_7Yc8IvQQLa(G4;1IJL!95| z4gDBzKj7s_9mYQ}ES+=+xRG}RZVn~AZ#%^PzOSD{`bqnR-p_9t`!BseYyNlI{b1Bz zY=2?z2?A?104_B(IcH_UC&cPVx3yy zH${c}as`*cuQhO%9l&@s^T9qkrJb7SiQq3os4}IvXy{x=bllu5#q2Vel_@6ZM?Cw! z3!Nvpw>5V_9C7UL*v>2X2ZYAo(h1yo?+@3!xeL+-7oEk6S+vutXl_BWg5Nsfl?89_YLy%q z)K!vPLWRki?)>X3?t^CC3+?(oH0*oOvU%|HbD_okbXt7>;n>>iEA};5#)uuw;@wUxfW+pB z9W948WKL2$CIj1!qt~|MpeC)4N4^&P-*}o3_d*C8i`N$+rOfUBX$6G8nBr&-Q#VF`q2yHw9{_FdE@R8tJr4Kd#nCB0{15`pk-oWQZa?SRAZw>x2!FOc7 z2iU`6-tF6$(4S&`o(9@pt&dxtNnu>>mnUkrNZO6& z|4X4+u59MNEi~I&fRFxVb&V|^SxWQ;@e#;Wd>`aoAHd)6U37<05#R-AT@(0Zhk2@X zqfInP;tBJ6~12mH!|LKH#boKV>>eHty+@MguKEis6T(&Os zO>!>B=Zs4iooH*#j9tg+Z?1&8SPKSN6WYhWF75ala?q2w&VETw(&Jn87U;aEukcIIQ6;{Nx#U&u{R@ z*w@ZS!jmZ>-VU+r3tx&Z_Y!#W2(Z|0#6Jbxn8Nw%1n$C!buzDfu`YZ_MgEbIW9uA4 zt-kdytp*P%zHzMOC3xLPYXo7;a#w&M!4{|t1X%Siu9fA3Uu!5QQrv`Vg4&aa%=&uLd=;!DQD3y{nPcMXvcA+tM}QOza<-=zyh` z+HvHg55%@(jO|>7ZAWseitZA;gG@Tadj{EF_vPJ(csJfS*emh6!MVNxj7x0GHemi2`q~7>)k!;U z=3L60Q<<~)NTf37Jm@gI7`!Qa&ir)Wy+Ol#ru|cVmJ`M)-y;W`8y^mto8E>EUxMCt ztiA16@k@|)Otd4q+2pi94Pke%ojIXX^xxF6vYp7B@@I0beq+yi+b?CEzMkVy^i{S- zYz_H!z4JVMV+{tghF{-*hWolM%Q(nuzubc?s0^5hTqbMdq}fA+jjX76iogGU4hIP3>)DZs7^ zTD9=8mCu9^r<3Jy64FYxWY9-@tH@B$g| zDI+JWvB`7tOcvwW#=R_jbPvJ{92|MjR)Wr9tJ2RpjdhfE?YFMBsXSlgROYPmq@|}p zvojLG)A-p&8=U?$gE=MIp!oglOESI)@$e6(J!^EDXWH=uxGhx2ZJ*2z&{pAv=yye;+w!Kr;JlPM|i`u|%H(JEWC$eVa4# zFnI{Wc%NKd-eWt~>$xr-3BkWB1|Las`^+JBEbX@m8ootQBT64hx0~?iP~tzB1<&!$ zP1F{Ud}b?+u~F#bPTgcEi#V{sb_$uu3l9?sd|bhwCn`TlyNchZ*m%y7XRn0yEAf;x z@8FD=z>}5?hxg`u*3;%X%su-v}a4lkS`bcHh`ei>=dlpfZh z2s(2dzs^^Hr{lDD2_F7-QI>OD(MM=QrA-;Cm;K!!L@sXc^n-`yU~dEB+_wF)u=E6PAtJ zD}E!VRP0XZ$v1Lu@za(0<8ohKGMm0HtsGZ(oLn8mms;N?K0D&^S=L9eiS--{VZGMt z>vi-S>lLS6W$bAOlE_747T?>}4;l9k*6l&hgU!z~-W{BS9Ya_*_Mq>&?U*{!7itLg zJ&&J3!t#gqCM+GXw}iDT4-4>mvUc_ffwdDFeLOV6x`6TO>(whuUEY$_t?ygRNNo<| z&#>WVfz6NHa(aAP8TlBuForaI&h=c1xoJMTp<-DYx`-y?$oh^)Szffa@A|Bw&m8*G z;Ro6kfFDC_R21+NZn^_hU`Fl@gkun%_G2YktepBA}qJG9X{BoNmi^is~!sq6TT zLxb`-#};ybi#{FScb|2k)BiSnY!m)y$M8oRhYy%{O8Brs{BAOP{eBXb5z7mFVlOTe zp3O>Lm;l~CU^AJ>zk;s<_TLoqYpVbHiU6+pVZHbSO3ilzJd+XLDFhxW6ke(yymtQ^ zytWCuSv#=mNQ=-!e-sLwR;N za~cM}{h!d8=gv*hW6k7VJI@JDo58tln}2(qX{gONFf9uG+2BU#r%r=JUeIldjKQ=c zTr&~ldPHb8@3sBD-e!Ja7`(5|m%w}RYOJ>i|6F}}%zTVL}X=|`cV8R$k* z;oF7pItty)h4*U5FUHI{Jl5;;TM4ati)TewkqfMDz$SH+cD{~D3dBSGe-V>(j4}OB zVz1;m8PESTCh0An4|6-xg_qB;W3PZtS%ArS1${o>xq=JSzPgxo$YtTyBfN*6Dq2ZE zM`b5o6P{h(yG2zdZtmx7+8UABWC&B6u*WwEzhK4()E;hfmHa-oR^)*U;}GvEVxA*uLA!_R8o2ok z*X9Vo1U*vdJxRVDip96Xy)ga32<6p&Q6avw5@axi{s0 zvUAEAuI*6N=pDnIPoL$ts{6ks#=RMWKVrz9xrpRFjbC--T4+D7MCX*Zkqw$Vn(0G{FbkC1gl zmk=DoRJkY5_1+VBxN(oM==W$_#)`kr32E!RTxU$@g4ZW-ov{V3GZ(JQxb*o|6fi%Y zt%%>dEvolg3)i9y%$aKgnA3d^@t^VCH)`*;AP9WvUg9gca#J`>sU@rxmq`C+~nmw416);8prbH*Vlw|Ps`ZU43Ol`LcU z+Nm!+_VhGk#M*wpc>L*mu(!hpb-odm`Nj6AIbTeTn*Bv(l=BO*r5pZh>B%JNuUOQ+}QQSN@MyHs=4H+$ZS=lYHISfjXJ{UHFUt;MCHSCf4^0bmGfd<8t;> zVSUQ2N?8lEy*v`XL-Yl0w>kYG@IK@A%G8q3xlcSAKDS&g`FNL7X>+S4YY6j{ z+^lb4&-jl><-~`q|2|~8aNuK~($8DLd;1jDU;pm!1&_@`hdMFm?vT0i?gOk*4)04} zNsO&B489=qwoXNzy1WKCZ3Xw8z4z$@ni=AKk+yOKE(8|T$j%D(J_i_ySEKbf=p0}L z`L9#tJU1{CuPU8|{H|BX|BL)DFyiYG7_oX25|LYg50&c?$R*O>Nc!7{e5J4!rkn7q zIJa-fKE>o!M+5V~h5M#Qo|d)rUccw0JJkJ(>H3V5IfD(i-~c|L4tQ~oT>5m?np2ONz_O4x(Qe}G?84Eu5R)G=GCxygG4AbT%UNvN`+iq$!U7vbV)~Am9 z=WkQ=nt2(DCG`w+N$d^O{A_H4&V4aR>0TaI5z|htkh3M!W|%8}8xoUXYy8s>&9%zl zuE|}4$?1xpfcU(`qnl`8EhGvLhg{NdZTFG(gRM!Y)QTZAs=G;@=f38^t;`KagFglj#M+m1W^ z$*Y*YZ{FtW&J5*{;ZT_y0 zcP=Sl&$r-X2Mvz4;KP!!N+}b&ORwD|y*zyQ65%uQ)VQ02wv{|xR}-+$1nnzca`x#q z7W`Vg*U zZ4xJFD#I3EM6Nk<9Cb9Z2B+7P_h2(~BEK^G<9NT?mWoeK6|ozufvK}b6<8SBn29W$ z%_sI)&$BI8dnTU+=bx@qkmXeE$Z^(}Yi%z$r&vA1=C=Kgx>(o=9cq%6vdrCl_+|3k zty9y^prfgxjl;ysw4HQL$q`%rJI*PGky(xa#~JAPDuAmD^vp$ko8VdWXYX|`Gl4@) zQyzcX983NM_GS${uAO~xD8kzg_p1EA2F~q9mtz1PW&dmb+VgA$zDBa|9n7K1oHIGz zJZwoP`pgRSb~*UB<}$~6V6hxH`~rCVA!n-Xvwsd7JKKSckH3bEzPTRvxBUayU~WQF z%AvojKBA47OlTx=vBGaE6;HQu7JE2{(2A#_6;BJkfnIEChZmPKdz)&q4rYu&c>3@6 zddS?i7}XztCw52b%Io_ed|UGk082bb6BxI=O+Of zW|inhZCm|2+5cZWgsc@AbF=WYVl!9^%_uZh#0U;4jEKHIpK%0#yCV|)Ro|cC5TC6^r~*^2!J@-!CP68-MD zVv!Zfb^){QxJ19u2`BA{d|t$R(ua)iO~&W!?wRaPsqlMvU*H)3t9hFZ6)|tHetpLx z&r>j?)@j67j^`!*t(11a*j|4iQ9&z!b0CwbS%`F%f3sjWbF7{)WwzMLb$yD!qd ztg(mj7BVK4^-E+ObC`?V|GV1P2SecjqrtZ^;N4j8?*Q=dKzKlWw&3~DD~K=Z#v49c zPYEwUjquRvU2Wr)?wv8tZt)AnA6GNYF=*)Bx=r|IpUzgglZ^?J++)GjteKBFNbc&- z#yh*+=3;+2^Kt?sIjvv%mT^Cc^iSMxJ zn9FA>{_^iB{!d3J-JcBOT&J-=v@3miu^~%e>3oKHetDy&t@Isi%fP)NgHromq7$@9 zd_F#|?M6q6=<8d+U#ICuc-k+RUscSL_@8ZFlH+x!?@Ul8Rc-oZel9ratr+M`DEUoT z|1Al``a1a!{g6F7!+#m`r^H3qW7A9x$nLF2`l0W{{sA7GB>oXc3>DBabEga4#y!mS zhy}m4Jz4(Tm$2)h`(Mj*9gO8DdwrVwDe6rzFyZHO%#vh5n#Jxkb>P2bD5% z;>^qYA#`uVTeb|I&)Z*bbInfmc|9w--i|Q&YK~=f!}GklkGUO%MjlHMe;xM z&vNf@EA$DxEN~aRpU4`WB1gXLx9pev|8?;B-(>kcX~pcRDa8$Z-GI+t_}z7poD#rl z1~9jX-0Y8Kj?)%iourvwUY!rW>ubAR=^jgaUjo0xcl+JoLB<>X+`%zg&Hgc3+wI6q z`nS@(f@}MLJ%M?~KcEU7(oXVDR*mL8zDwz|>SPwaFYp%VlmyOqA(xQn$1ir%>Q@x) z!V4h{Ut)tayP@xon(G{MrunPMbLHV(8DlDXA7l%BCoA&5m^`gv=SXlTwKp&93Uf5D zrt-`#cw5d+YZW}!#SBG{Q`-gpG|^`AWK*5g_8eF=NZUCu);CB^);?zruTHJVzwd5m z^HQ;CMbGIrO>}l|CYHEp#ZS80S=SMn6@KB*#MfH(VG1_d;B&ekH9V-?H-1U+UH_}Rmq8uep>Q!$ynJ7t(^EzD|XqcRC3zwn&B9uhM~VTdEeqp$efYk zs7EqJ6P{-me44DE*mYMJ!?lcq)XtThAne}-e71>=_J4^T_gBDC7ydy@#Xku9`fAB< zzSpP?VNZhB!HI$EyA7K7FBMDvwbL0oFD*G}ehYo%eBXG!EmdjI+u4mjRNw3O_FjKZ zc(1{YlBe?p-c3ceko`T%eqkGH^{jGe5^KBk%wWyJK3o`0UDzcSeSaOqy#)97DD+V5 zp|Zzaz+N|Y= z`*SDx4pyw_DrW!4D}Q7E1_bwy`@#J)^w~S9VYm~#Cbsi(?8j0wxMPLrgojyWuLNIO zID;~7vC+N;&YuGO58+c_q-Hz(xa?IIuqE>q7#PBy)gPd)Cj02VUZl@s9kN{z=cn>p z;P$8Fuaot1vsP`R`!{@skHZIv7R~g~s{F^snd+({r#Jtc`BbbKqpcb-M*HN8@{?7M zn}!*vbNFaWZ0)a}nb!R){2K-S^|bRy&vfTeF)SAwzD8?v`~CxE^90>Z?r*tc{#ufn~ROt6$ck9r#WG zX4{#&L%vh{H$V$JtsMg{GR)ci0ktGNnRB{5j_B?q%Lm0wQg6EX zXW*(2lzS$5rg43&Tp!5w;rey4v2PK&+b=#werNLAy;A%WIJ>L(#^+jaBr?Ig4}c?~ zBht^A5mL)_80U0QqbZ6UVVre2%bqgu6Z;|WIp8ln52$|6B5+A2JU(q_AcGXrRtC0! zReTQw#ye9A?9MwhWv;t`|=~N?29Q|wzIh`EZUbAH>Z2m&xpTV=I+WEg3lCv^w5S2 zc#`v!INjNtMT~1ff-^0vr3Tw+xHoGzzQRe$Qf!7-Rd@o?3&=aWc=w8ohj%0{HbW^) zv$w40JJM_4y}@Sx!H~IXus#DcM8+%pMg0B=oj!1+o3pR)@dTMO`4(tT^nha1?}DEb zA4)g8*b%P9hvWaFVh;xn>;vm%6DP z6Fd9nYyj_lhHtabqMVSObtdw0n&G)7!rx9-$SEQFLp~GmUu!D)9Kv|+;s`|x?#sLR zFV;mDTeS%h7GG3xW_KE~?rD>NRpS4Sfj?M})dU?-+n{W?dmN86U!nQ(_GB?(Tg1U+UsFi`?blminbz(kTk zwT8}L(7a7Cx{ULant>@Ti~jKY=_~^8h&+0NxhAj*oav!iv8!5t59m#K~bHMwoJz&vN ziQAgN`wJt&d_HhHXHEA<6q@?&^Ptkk^%Z|#_XOD2bz9S4kF8B+{iILPl?#4p2hJ@{ zYJSjf*gW#mhVH6sGMjwAfrp;~KR<^5HTWu(PDo!12dO+PTD#OK7WblFQeCbsh4*bSP;B3MyWuq3F}OSZb|G?&zg`E?IWz@ zXbA%kgmc~_IPa01_bASLbi)tGr&WER-wOfpkHeURVH4+Hq!Sw3;H*y z1!rO$^8ELC{+B!t>~<%w95~l}(@il`xYrRAsH3|XzFKmx7mm1pxzx;Pk3k+N`nra0 zf~U00fd9Xdxt-~$&;J{^;3BYc1sy`euI>HptL)l~FqvHN0c z=c1!X;a;#-PBMJ4Jl6&vTO|2=CXCSr!28&F<}m&vRIJhUiAV4q5q+W=o#k7DWKI@u zUZ1*ARyv}#39iBRz&QRL{y$lCs=aHFqU%)IQ`%&1v}vZzYQ4=A z@MIqR##(GR@neZ=;ymbc`edwjly*cnYw>C*3LXDxa_HyGzGudwG}h zlfMpFT6Y`yM5wJ*j=$rL_OFf8Ug4P>VuhX>OZ$?7H6){I=b|AJZiH7 zOF4S~U!SK^`d^!`_&wAeGBa;0aQI#OD(5b^ufele{e8|O`z&W@b#VPdCTL#fZ>6mZ zYm}Sw&=ZRcn2YZ%xI?d(*1=h;&ZyM$7>VAo1KBx2RjzMXt!isO4%6!UCHkwEgu{QE z8`i!Yu2pA6@Y~d|_CSPIeRhz}msb}L*5xwbaAR`!wClMk=)(6*yZ#k+_rHwjr+sOR zY`lE0(%t!h;DBQP&r_*QU^JzyDRwp(B6EGY;2{Tk`yk%1I09$v`xS z7o3sGxI4E23sG747KfEO!Q=7a>XM?L`<2J&(bjq%;&%JX@ZNi%q_fOlNf&}99n^P$A71;@?P;E7=0!Sk=5d&aQy$LW*Z+3GcUzkIZU zE{-_=myppOP_OTyE!n$r#t=^b3#qN=WeoaWNex~4_wwEmWKo|!#{dki;~6h|CwQ<1 z`%r-~j6J44Ib-&YpdVs8PBSj48N7)1>S%wJ&=dRnK%-Lr*mYGVZ|GqMwy4A{@aq|~0 zeVg`cv?*H6{fn9xsS$Zis@1jFYW5u)Yw)jAt$D7|upZs=)+ zpS-BzTdJD!cB&><4!j-XH zzl>4nBRYC-Cvt{67M$H{OOT9ZxScr`>P-j^k@G5k6~3FZ^>@`=@X->{m6^R;a?q7ooqoyXB>bse{zvj3`s~y9HoOA%6b;Vkb@5LH?+t<*3=<>AY62>Y1 z7>#$}JA$mP`>m6UUG!{M;n&OQHyl}C;ap4m3us%Tk8(&w@%A;gB=>^!62`rn_SPgE zv~5$n8ez z#OF0z)?;dHd`n`di}MpaCt~B1wQwQ#NlZaBbC5A(8x_4orw@7RDl&_{Ucjr2yXPOY zoyzkW*u^ryU!rG{Hf4|2Fh?izNN^W6E6iak>!>gf1(^$-Ky*2NIK>lI+hpD?%hH+? zu^Yv6Z4q#gKzrf`(05#3eLa;%(aVXBO<=*;`&;^7bDO||(fi^gV)=T}3Kt8yMa` zq0%NW`$plA*vbXd^Xe5tT7?6cBF6NM2No<9o!EI}h)aIU_kyK?eM3jYzJ=(v3OO?} z4$-@m5Equg-pe|<(8tMI$#1z|gstZcce~61xvZHL z$op6FWzWP6?icVbbVrBba$r*6uUJ19hTd~wAn&#To1LCdGhg13F(i)cn%o!ux3T8} zV=^bnZ~tH~E}72UbX?MV2KvtFLHgULC}oBL^|q{G%A~%12XINC@4ovOJkv$+XsejZ zD%L>eu&Z|tn;D1f?`p;|f^iso@ktWnko_oO9O#>)3l!CxIboG;75kLkJMSWW-fE{6 z8gvyt{xl!K9p42nBY~9?U`F6Y_PPjo+5ct6WEqPK93nWOpts#`Sc5kDco6d*4jOaWYT% zgT8W@+!MLQv7>5!P$sMXst9GI25t)HlL-a&> z_7+=*F(pN4U9ZaN=`tRSkH0EBkktb#nLg+9;*}W)Q(@DeRBO+gMU5uj$?m6ZkKEKoLs+% zGbMUE_zd`0sWsHv^!g(wQ({!OI_ae!e{b`|H-4xJlafI zmfHN5L0?x*>Z_Hr?x~DR#)uDr517H;klL9FemjKxT>-ooOJ0WEQ?#lt`~0s+*DCq1 z-+Sy1^gqT%!KXK#Z@Ep6uU_!4v9&>XTpoPBc7isGXM_41^jEv>S0-y&eXjNDwRYQw zq-l3>y?wmWp!fA|n&`f7yxS4b{p_|k->lu-=epkJm|L{5-@f+ZEm|_yZj3W(ik8o~ zzB!gjdc8xvziYQ>Bfi~6%|uP~?l;=F?>6mC*6JH=Buvul9qMgVP10@5!TZoL(b?^` z-I}BdeuT@Rf*D^e~R$aGi4YaMd^WLrcy;0n|(f3bo*PiFTiTvKl@PX~1oGjIK8sT%8fEl!bAvnsX(5wCVjS-9{w$49rb<$SMmy zT%6~%&rfqCuQUxat+Wh_4~^1w#?rs+kv^^=cWO^C2J>B&`4y6{51owU?Gt-!q(8Q{ z`ipzI8w#<Y`PM`46!e|PJ%wFTn_8is*l~M{UYq)~G17H>WQ)`ivSt{l<9_o7 zo78dt4f)8WZl%OJ3GJ2d4Z!~?HPTy3ANa3Ck3(Ln;akQd{s;BM`W@v=$an=Op}+AS zMK9i&>g-<1nu@F;@#MSkqY)WGY@@P9mx60lb*FX*YlQBII+vDBykCGQ_W&y1X2ngH)pW$2pRZZM^YuFip9ay57d`OSNjedM}J!UZ#O(idiy!$qJI;F0Uz+ope;1apNCAa5Ma+gt) z%ty?ip1X`S)@c{=pPsu+;HPsgb<|n^h0Ldh@vL>2hY4K+kLh-x4(NA931f;Kqh&EB zFJr3PFs=Lc8Op1_WK5^P<40Lrd@fpl#aK*#TY0k0rF4G|tgWef(rQcBu|*q_;E975I`dK7E`5Q}V2jxhO@0wKFbfcMf<^;)_0q4i^{) zbxO>g_#%lPk*vG;PP8)@oxahxPOEmA#c#mtC0~%7n`eP5z1=Kq(6g29D$Z5g-Qq_w zTB}08DSmrZA1C88VQ8oZPOF}F5YHsOeuEo7FHr)%K^eTe4WCuuTK3U(7yq9@r%9iz z|5c&?3HYG3Vfg{l7=M!&`ZaU|3yzbk{T;lAeA}5qZRj>= zv5CECFM*bj&#nsiY?prFCoVWyH|E*?jKHjk8dS=>oxr8^*TCAcmMN*o-PN24sioL~ zeULml=@+nHh`zy#{--lCee&nxGtBzRa~-^s$2;#P?q2oUZ5j$V92XlRjzu zAF}-K@*MY?qmYkIa6c;XgzYMLDvG*im(&O=HO9P6Y3l>J9^gafD&txdz(-f5{-M|t zCEvK58Q+7}I`5t^Z47OPBXc*YVXn*nc6Y-S)^#IiLSp1ksl%Ja_eo=%6^wBL_%b*K zJNPmxalb8!*yA(e4EVa4v7P#E!%vPiaf7GY@jg?2)tG>CYBsXeq!`Dzw)JP8J?R_%E5KS2ek4-&?vzYMT*P(?^y|We>}RMj-o&-13cn z@HcSa$AAs^*0r|<@Tw0w8pKUHUcxtF(Z#IpUBGG>xT%J-bqP2+4h%IN8RrY)+J`+4 zH_KXGW?fIPMwjg;Y?nC)$Kj3Q4H4dmo7dX}kBWbS-~-7wFJm+H$||CZk+liVRi{79 z7o0zDE%WVUEhG-8k$DJDCjOmw{f_!A{5DZ5$5a2`JKUU zFmcvC|MFr)uQHf@I%OCPCk24a{6U*xez&{*B}DdP#s+>^l*e}r!nS}(FVYZKkE z4Or#b)cwGHD!2>WEU>{n_yeKO0Y0Gv{-I!hdZ%|EYX|Qu@l_p3E}j0uheLxmA$y**T2|#-of5NT z^=5)Uh32kJN%V&UyN}{C`03|2WSNawkKLs`dJUUzIQHWKFD)q#&GQzqhx$9?67g*x z?Dg?K2*Zv1mi^TCeLC5;`_Z8-)?39m=oe7 zqi{~-n;b{CnxoKh3;|AwK@i@?#QK<6n^a)j#QK<6pH8FdGD)5xRR!m>$MF8*pJ@``bFa zTwp!&IQz05<*bL~m6CRarpOr1T<@7E`ysh~bMWc^_WBfDah5FtE+j7L@7L>_anOos zPIrr}me1wnYCcaf#%o_W|yzu zeNyn}!)k=@vg55y8P_w)F0ER>X+782E4>yDV`zn6Y?VD~<9%zU#7`SiE*vyyk*r4` zr?k0I*XeRTLc(a&{1D%Y|-D;9IDU&XS2TO3z+n|^Jo=Rde+n{D&W z?il~*{kedAAosrV?51k`Q_ve|;v1f~h1lj$ z=hY(UlhD?LE%o!;L%Vbx?k;E%d_8Mj(JJ%3#9rZdoF9en@l}3%k2!qk|65zk;XWlw zVlS+XmH6k6EZyEbJ*i^p{*aM%QKJr*%UG!J?o=h_+ zH>bt4%va$(aKCY-rQjEDD7zAzk&r5&X+&rpc>43SD>pqB4PMnGftbJ`ir&jyb%#-zo!nE20t8MiL zqqp|uHMU=HW+ow9{BCJO^QUnGkM1*sb^h+TOu{mg5GAsNu$W0e2$>jVpw(iZ62K)3 z!~(6dh$Mh^!bD*d!4e-?+>&VOQfZU6c?7IBf~5r&ZR=B6tV{?hxIq+}-}`)K1_A~j zeERhJ`u#DlnfZL~a?ZKuoO|xM=bpRR-XhNv?n$UmR1!R=GWKnf_171>9!`Fl_P5ji z%e23p_FppeHIo}zYz^-siSuPlYgiv@_&Ko4ys72B@jI0231T-x=L^nkv;LKRJkAnc z7}FYzXMIo~GdWk-hdCjhxuGvHo(cZE_0XhedmU?)E{VUgmifk8TezcZ^_CJ1-9b(U zU00#E_bV+gl$ewumOS-_1sxkXvqoaCUgNU3YCnbi_`ucJk947Q(l0e+nOxNQ9VblxNJQ46k+T)%QZ)Ez3HIpxR4r}LRz zy{)9QdRufIW4sx>1qWsIp%SI#(-__%74+aj=3s!NOfz}=&S03>muo^nf9A$KP%Y& z0)P8fYz@8rzg4%|X?M580xht5J84&REp|s!NqIAKV3g;RYpYw2XJ1**T;zS3^_H|7 zgu8C3AMT=y+hu(0HH_2OmjU-}-wo~$(0M`HT+Ud12~G!r=Mdj-an{kleo1IL!Eb3N z*v77k^ZdN4;zGHS`Cj;^lXlvnm9}6A=Vf+GP|7>T7po>ujk;sP%D5d9@>e4ZJCN%g zTcVXZdyJ#betl_q<9IvcFFafW-F11}sd^*eUujP%KQ`W~zBfLNd$z3Hn`GrqF{?wZ z`er-9JM7RE!SSPh5Pn@ACp})(n@n06Gr`pqEpl+aP60AJ5gg{y=Uj)eYSQY*t5ze^ ztC8tSgXXzKt)4Jv^|q2=n{(ozJ-C3+KK4TOwYP8WH+AMA=Ek$jzK1THfli!GJhQ8@ zdzJqj%;Xm?oyWC%m9|gL!3eAu=*<}Q5_&V_GWBN2CG=)U58W1W3BBpp&3?UU@OBKy zZ|$fTy&2-yo8-gmU2pbm`#jBi*P9oXJx1H#(3{YEHsk2yo#?<0^k)a>&+r>xmj0G{ z{ZzSg)XxKEzQ3tI{q&TwiK@}tv6(*p7U(0};9W!Rw@h^Cuz(H?&J(lLp74iU$dlig zBQ7l4>s)nij>vE2TrqP*NRK%}`5)#8&QC%gq2agB5wyK5(Du1Gf_dfJ<_KseZ+~d6!wsD;IX3Up_SeC- zjow;v!0Pby+ICM`e|H}I_s(s|kIZf3E}kPe!-o9-%X8b!7td|VcbeOtz2w{`aKm5A zE(7lGIJfEZTK#3feeb2`1r0r#tyhWq%p!i`*feHn0n z_}$<>Z%bUB&iYE`PUQa(-#f_{?e`reHT}2#n>*6*js8{tEqSK;H@(Aep-pg(E~q?j zV-!>dZ4AGR`fUvEWTJh)jbZy2Yz*dvb2diEzhq;)j=f`Fkl~*ju@{`|Wz5drG2t8b zNw(iM5W8S!5Bo&)8Rt1XrPdu2q@Juvq>WPR`SPkhuVL%&GwX){L7W>xw_ul#i z`H_H0)3)r_dF13EZ)SN@OC-4&?^ml^>#TfOKX|O{yRrt!Ec34^XEC=6e@NZTYUc72 zikF;Vo@UBFpgz{Jmb&CS+4DzhRK2WS<_FfI>>KTqx?8C${zRP~)MxGTe9_6lUI)Bs z<#RD#rUuuh)IAiSyNNUJ8Tk9{Rz4~@Vaiy?Fn^~|CTJ_$X*&Ygoa&ESieH`8LVSfY zles=vE+3v1IJzeqxPvehJ2wn_H=MP<*7${Yv zamQd^e>_rq1+hr@a<)SIe)t=}&(+9XZtNeAF8k|f@k_^vuNW8?NZ;La)YdO=Q(K4N z?-kyb@;WWHUgc%peqJ`GpIw^Vr>-V{+UDi#<*REpWm4w25x?S)*ONb@-Rn5}QN{k} z`Cupo`2Jlmb>tY$-N442D|+l^14J2yFtzl_2%-H;B(18qv5Ma zR+F7&L;jM?-pJ@Y_G~4m!b$_@iP`sPA4^^KdbTcIa$52#NPBr^e;I?ZM;Y4hS%!^V zZxUx=p1enIx6jXJ)*Xh+wM0R5Dk%k^^S z%k7sg%{A>AAA>*<0D|7tyu` z|M}Tv*Fv*N&~73$Ea2>IKId*)z<{oqc(siI}uPqsDz{rb^Cz%;+Mo&JyzK6iB|DABQ9F2~Dz}dJNfk1DWlaYxcLq zp_N_l@FrRf-o?=NOf>iiPVDnGl0Vf%{#0q#&UwDq$>SIjH+AVwWTA`w|L$nc1ylCe zpEkQ9hHuf&bmtQXP&!d^Eyz6~{hL~T)4kCVL(V{Hm;DeQb;{?W`#4|5U4(ry$Ui81 zYIgEo<+6vC^ordh@hYNIYU?++mKursAf~rGLK!7+)smaiL~crfN#M{P-QX%Et}EEz z-2L4fw}c1#OVRt&p5EY^Lz%)U1-XaAl`i(AMr*%1U(a^Dd*ea!MEha1Tzxp4y%pe; z^6jDI53|&t>m&c2?u}&f2$a1-Z(qs}0_H>PCrAv4#71m2bH_3Jp2+A+XTp`%&*@k0 z+L@7uAKN(4bC`EWA~=sg*#}#?H+C_m{yRYWcFsW`5{ohIFaPY$>Eay3Y07?1A7{cH zt&g*hwS@hwne?ZR@9)FCZk|c~hJwOecSKSS=S21kF74>c;8--g0^H=jljk-=QjX6M zn`7e+?hAOOPCLgdvqX_smGj`r+%>^y%xs2fl?yN3Is4jrNbl z0G+;a7Y_R@eWdKscJgJCd-RNI%PIVuKNivh&leiW8^gKDOn&R|rUr1~Z2mC8Md!bP zdV4+FKFe|FS$C;E}M+(U5gA(LKY_?lLh#dxG(k<|9!E7 zckr&e6mrteX71AI{Lk>wGA2P9H=Iq$3F7-J@CA?2a=u*ZrwmuJx1bmD)+*VDz(IIw z;PFJA4(*-cqid00=97$>J<6xDXC>`RS@(&Q(QorE_}_LcW%NG&w}VIN%2028b9`T! zAD8jXo`Rm6`omwu_m#ZGDQakE1#uy-e}2!K5$vIu*y1v{S zd~*4lRb^EzF^kJie}eDvgfYD7g@herxHNG<_B|o-dF*{;@A4$)86qpQU#v?$$-brJ zv(RlH=5^^u&NGRQE7SW8=`5n(M(LM6>9^1Ofj*1r^Gf=O;?qoD#F=T z_YA9#EpT{a|2geV_KLD&cM(5eFjvOD=t+K_J|z}a><95{lbiTlpOQ=Z9nS9!;`?pB z3&=gbg8rU?-mH6`SNcyro5G!(>J^jErcZMG&aiG}Oj_)!7{hAi%pC3@mK-c%|A>B? z$p48X&erX)S0v{~Bsn*t;EiZ_BnDoIg=gZ>*L@m4+^jTy_BdnI(;l0}83$-1@k$zP zeSvN9CG%JC{wU!I+1L8Ia(bh_Pr*Ip1G$GBy|~}RURu-AveQLNe$tYsrYxKqx@Kl7 z^HcRQ+wXLo1NNrP=+BjP$m1Zt%K&o9B$L~wU(<)gbSe3%mZJgt;DEv4mE2#O4e|QC z&mP7%?5BKabat5woTh=>4d8e^xRxLX*D-Gu&+mREM9&xT(KB*4b~yCt2R#xglSJA6 z)Jdl90O&CgdKj3)g7;+^n+|!@Mxnt$?q&P@vy15T9I>%SSf7Fa0PufRVgcCaC^d#R zmm0(Pgz^b#-V80x#7jxOo6i>gN8=Ks!TTEnzB~SZkNkOE#<-N7$$wMqd=GTOwssZmi17wxUG`o+#!i#FnEyt_)$#uLCs`Li=?JZQy!wffZPiaie^7p6{A!-9c7#;bR6ki#UHxQqYyrOd zmC6hG;9Ri!NJ#;EPdBjl6x@f3<9Dp#2ITn0fE;^}<4EMVF4?F>d48-Yt-~+z{>RnC zu^``{)F}J*;>&v(p3i4rm2+KQMPZ%HdWF5#%6#Z1GFq(YXXH*kgTAr7OHOLDoWme? zCuGaQpzg^cF5(x+8FQ+25Bc}MuKhhtS59WjDfB{b2J`a zo8Rb{=_J2QL(e2*$T=Omm3iCuv@Xkk{$`xUOlb21Xmk^_x)GXvA6fn$wnmsP#}7kK znX|;saU;Wa?gO@44FiY=B9^q)YzpKGlX*(`P0DssR&%U#6~gmV;c+|sZHIsD@V3zso%SZ7uMFB|=! zpNL}y&OkrXenDXVmG*lrYZaJoc=O`2o2e%;(`B^T0e>B1{ocuZI}BT*jy~$tLiWPH z|K@f0WuC>?Qj85zi47rem4!$hl{$vYucQ4h`icDR{fK`=&Oz$yIjT$aA(3+`O9=bEkjas@^}3_?NnD{MVdM4Av=Ge7??g zi!ZEGLHlwqG_mmH2oGthf{uHaXPncQYoR0OB%BhrhK|P#U@tCFgCSN9lq9amZRfos0vm_ISrarWBSiCI&U3bL#rNmU9T z1M^U+_-)6mDtVl{ZPxKQ$!BgzWL0`t->M@a1FJ&9BCGz)v(+J5$J@_YCjLrcQv z#8&NlZ)nv~M{L!}HwKr)?HyDSo)%jbzVv4$C*Mdf85*&rWN4UH6}}kXyH0<9Y}e*7 z$TBvzd!(|@lxp-^+0Qq;XRVqD{QAE5TaT9%yp>+E(qX77;92@xX(iUTww0t$N~%f^ zt&z5LpRULRG;vLZUP2=?^PKoOQ?YS7iK(dL-Fzj|v$b|b*4(%iS(CIumh@O-iqV#C zDUI7TO#Y{GM^33N)w1pWysSDa?Y!V`Tj5?ZiA}~PxQhMO&Kl+enP=%c4xjr1@n=Z? zZtgTJv$by$8>16`6gxuf3|UhYao4i!iB?*FpFEFTBC{wn?cUAFoB6((gJOC+%FrB|u?zX!Pyp_d6^gHgd4cxt?#CTRHQTq8V-Coelo}j&84dBw5*)qQ) zUB!kqpo718x0%F`O1wZ{e5whzu+}~Cw9B_vZB-7|xN5*T2|Zn{D%&OYl(P71kn@>C*Smf$-wu4i3u|3#fLr8S;$w=-Gf!7CK6Ux3cLn?3 zHRvhfsUj7-hg{K|E7g6~4<9huU*-J3rO%5;3{)p=l;wv;`s@G)S_!oxNtH*NA-UzjuG>(-J>+d;(JRm1Y+Evk$tPs$-udK?s|hx!povZ%VyTJ z;=5i~S(ELRI{_;2Gta_)+=4Gg^iRT1AMY%Ur}i4K6B}+2cJ3p z@~6blcN(Bi2j@xgLHxO3OawlYc-{AA#{QP`tjJ^^v-rr>!Cr|QMy}#E;}gNJGh@w< z(0hYT!i)QCQSF;p^TcVy`b!?TTIku-Ox!T^jWi)g%OeNavmyrA;|%!a9SgL5Q+7a~4A5{!KTz=QKyPt8A&-TD?p0)*M#6{}>VG-3D!uH&;li z#L!po-wmv#$GUSg<@r7~a^~d4YpuR;_3HL8rFFz~#rt+%^@C-Z+*J@a>1^V$qx)Gq zuQOREpKUO(L!r*WPg-U~ zN-MEdt>16EYU`)I^8KF{s=iNEo*goqntiudyyzPj_&=q3!ogYcA#Uo4)EMR6*(Hbg zZG9s3dMm#VU(fIN=2R(s4m&Bs_raU1C#1^v^y&%BDL+aAkApYT#`GN%68L@SM)nh# zYxHL~Q-?A!Qik#e`5!4|%tg&o=Fk*rb9PleA8U)m;PFYSDcMr-%kctJO^9+mdyOTF z3W(!~aGc!A{Pk_sI}sY&BC&IO(F?LZlKEcrgv9z0v$#*ky|*Bin+!{^333d!%M zEx-1x@2K)(nR;3uQ~mduQ=cl7IT#+=tp7Lq$Jh7xy8UGnnm*OudF9gv%KOWNP{#P8 zEu=^N)4}@2W?S)n`x_#j`m}KH+n<*CPU(Fpr$X*H7;b1*zBJx(Ft2*TyR)^7|0HtMlVff7yfSJ0={a zJ@t(_C5NQFlpgI3_-1=EdbBsKXM6GfcGBJ`EzxD{z0#^fiT?VAH;^xB8yV1L=BevPs&hqJ9l`U*E#*XU!ijx?_8vFPWbuc5cIuR@94V7?A!0xKU(u;>lvmml z<#Ra4|6JropD&nWL~f_bn7|*x?~`RrkUd>q<(cp*WgJpQ<|O`4kTR6jx>b5oaFEL7{B-@_*4C7*g~4KE1z%KfxjVcUUt2l z(XL)LuZ6U+X793LdM=o{1ac){N6H?M_^%@H`F#`-<@p$x_HH$J#lJ0kNH6diUNyWv zmNvY!G29SqUe}|I;2u&PYn>?8tq)YrZ&^z&T;hYA4^(F9c9p~hy{sDaxShI`^JOGQ z#D!&ydKrl=jbtA$DqmmAxMFFS`_h}L!O3b_{$Ndn>amt>Z%Lh(TCbd$`%sJ$VU&!2(&9a_(b1lL*l~G=6`y__x^`yF?pwP)USe-)&X4uhVcUJo`Z#YT^Bikg zIUDkTtGYGQX!bkhgokO!6)_sYx5`N93KA4SH}#lf08q3*@jRv z=kdJao43k(i!-EFau>3H>Mej@kH8y~C_k9b6JrL|uh#2?n5BF^<>jp3O4gXu%C2g8 z!Jv>+BDP8HV@Rv8w)poQB0YJEKaRafRdqUwy&Y>Xd*p1*PVD;AV%LAUjvP#y=aT1`^g7=+X{ax_cZvwRV3K(Z1ds9~^-W>e<9qCtl?d*w-k>ALnT}|?K z3}p?SvEKEN_zkeVYx(Ye+Sq7^J`uyKT?4Z{u17gT`*nJn_xp*}u7nrXxE|*JKd|q` zNAxmz>pa}));UyZ6<>qt#Z@l5UGvDDNTwaE`R&@C4su+(Gc=D09Qq^c++WsJ_=CG1 z^j*bs^n_Oa%oyKQ-2I+Dxlzk9duqUw+=1Q|;BkB?`sFHOBJhjU!UsOaPtM+JCVT*l z-7(I-o8e1OAns1?if0Y3^QFEPnu(8;Gy3=*IrG%gCkj3&FK=k6SX$PyCUlK+>L_w6 zoGpFGZe@MLU9BAzftWegBs+biQcB`}s9>EsQ^_LQ79<%2Wob-%5ry3agvd1n#VPktEAnMYL?@4P=*?~nG6 zv4`~XS>u8_*7$3Hr>Oj=Ek%^$OfEj4*ppW9lXkA74LKX|0Ciqgqbr}?`9N~>3*@T7 z_ZzH#KlPibkFVQYT#0YDM;pSgcJYne3eU4oA@s?pENhv{XODri=Fnj3PVP@-uS@Wr zbq*$S`O>EBsoE=pboay6ndj&dpYy$~>d^0M#&5OH$JlFXEZ<6( zjdAdFhU0&L2jR1bjSsoL#ugM^W@b*w;=Sabs>_J<=y!9FQ$_aQJhC^(JJ!Xn=vET&w7VJ?s^W&A4G3XSu`ux;ha(vJt(J^dLF_f0pFsax*V!QOO?d z^;^5td}ZGe%FacnO3bB!Id9O3?u~8>WlYH)Q@%XsjwtG-;-@HIF|E~}P0o4x6kB1d z_!c;$s@$?Qa7NXC{)qA}rQvz~jA}%6wToD8bKUMtPhI(4jK8T;WBi=~-|{ieVvB5w zzp0jf?euFaAJZcHvD}L%_n~>Ymqgz)?m4$fZn%Fiw+Zf<_^@?;0pD8ijktOp_qT>- z2p@{?<$*Nrb%~1f>;-3mduRDa=iqM6m-E|xxP>1D?r6@|#sK#THOlPWJ=~LBQBK|_ za!I|gF8Ks-ccW9}%)P+v`obKmmbLURvQ|4PY`CW84 znG;3l3oH_kd;txqEA#usG&F;o2i%IG<^8*dp%*G!Ue;+@N4|Q$pI&rNke2TI$aA`A zT5AqCNjy;+-vc#e{hd53TQ;q=wuqc%)c+&<4`RcP;UoXAgO(}KRQ%AIQH!vtN)B-+ zangq5WYF)Grk!9La`&k8Bkv8gVdNca4;Sk}SI@pu1MMG&E;6>#r}TFm`ALZ-Up;Wp z&$RRXBsQH0Ki`iIE3zQ4Nc~g9EyiP)y=#bf`s+v>V`9^hi|QQM^+GWZiaX~cuepyr!k@~WgngUlut$O{uCHE- zj~3pNeCQF_)1sfm&dGx}JmBPEjvYpREIFg}F*@oF;;+`KG3J=R-qG?LeBG?3diP@c zioGIyqWk!mLsj4_BQCZ)4cngi&G$?9Cj0Wnh%@x)4J7yFRR*@O|Vahp{3ix|H!7qKW|Jv&3?v_XszS}!%)l0 zk(@IP2`Sk~pJP(r-4qg|mE2qL;rOTU55GG;spQ>zlIs6Ltjb^R>0dv@c>7~vDM=-N zSp7lC+?In?M<*RA`EcO2sweR&v;@kwQuY94Uu7L0O4%nUyNYsi2Hsj#kaXX?P9AxQy$qckP+Uds9x_q1>M`75=KFyqtHhWsgJhT(O>W zNjWXwl<@_7UB5KMo82X<-u^R;qr?r{@-_XPQvFKIN3h>upBwc)Ig^PEFhULBob2ycp4k($3^)A>&TF2^Z)A^a z5BXemoHcN6q~A>Xm9m-iUB=l5iMcKWXSa+AG)Av?_15=d`j&cSeB$Z5R_G1R9&omi zvqA7h5%yiPjX1Nw*rtQ8=zbaB-o~=GettwhQs)93(*ii6uWVOn8LtO$>`B|;xcUOL z^-=b_(l?L3rJfxegY>PP%pHX6DXzH2kL&iaT1EprC%Mgg_Ag^AG~P}9B52$+WVfD& zNa)MFa{+xN4&malO{MQb_^KbYeR!s7e`pSQCN2Ix7bPcTG=Q`8>DI?p)5lf%Y)m_l zyc?X0)PBwi`otF2<;HXweHx`taP6n|Ge1P1Zq_>by7^FycT{=VnD_eyaPAYIQFe*` z%jthjpnt*nyYzqLadNE%`qyzr&%O^o3r{WTm!R|VrEqTgU*h~4eF_gJ2+rSE?Joy- zxNPZp9)$wC~m+$X5zgN?@)N}Xb)xcQVe#$+8L7Dg$=l9zJIKECl=WzTt z$X+r1n82r@CqDlMd*$lh#_Zpq8l%hOvpIUPnmYHJu)|7gB>&U zb4CokwEZLNmY^LkXB3|Rh67c87~ZB&fdijVoSxSmzk_VC(HqD~{1lm5(V{C#n*%P2i zWzMEq<0=LP#;dY(7F(LZO51^;*X+{Nb{p9JWT5Cfk;hyN=+NtQ7Q z(Bp0T>y1zLa85(tV<%=&_QL{j{aN@odD)_t;23@HGGHtE4m|wXmh-TE!8xx0Y~B^S zxVM|}Izv8Vf$J{gaIenK_~XQH+mT6*joCxJyvbcd-fn1J39SWoIZH3FtKcGi2kj!w zl#n6wx9$t+v9@^}*=&NIh47V`^`lL`d)P)7`$7V?kxt7XZ5INU)br2h{rqd4fGiB? zVN3V40n_Ps0Cj?Eor~AUz4dbw{YV{|&y%n{>*uguMSsg!>`C|Y{{~`sb13sY#%epd zNzU81S1ge{6WL#3pQf1o<8gEN0NqZMJGOfAm+12H^mmhw8IqirF9!)t*}x|A^4G{f zlA5H$mdjY=8Ob>k7#rEgmNSpCmo0h8b$PIyhkGM_gPw5z6}UICUy+jIhk53R0U2fZ z9c1qPzkoRenBDjr1l~>1QeY3lEb-{VPd#C-48UBO0@?1lCb%5g{_|%4 zx;{vMkz?tg%4z;1_bauz=E3de)(6~AklIu#vM!`&)Fep7EFXMO)r$C3oqvBYLf zs$7H2mZkqCd4QUbA$q(g?+TApz#|RhD#6cnZryS@Fg^{8N$8)iiQ7yv_IC;oKMJ30 zhEHY#+2kJ?Sg7{Wf0NgT5CX`ehH9JjJ=w{`lg3>>0KL^H+w6ttsgN9#0vN(T<+F z817X8x!m20TwaXBg*HV(QxUM+0&oZUTzG?=BRXFMY5u6h3m}_j#zAyE=YhmWr|Y_& ze&5lwC%)&oUlEhf+P9XwKm8@S4(yt) zrv{$WQxgBaLiT2v?;cu;KBa$|Hx{M&`xjbVyq=b4K{z6GeDRvNBQad8>JDoiuXe;M2o|pZe{bRinKcef={>qHb>D;qR z%*d(qNsS%EI1DtIJmm4&f9kW)Mj!VmxY^g#O#M6(KO`|EHY4{pBp@?c%7Qg9?AzhP zxIYyi9ODx~{)SHKR7~TZys37NnKL5XVbIcv-BQV1UpcjWjKm}ygTI-R_ZOl|G<1p9 z-^6}&hNr(Z#7p~KwUygjG~kFww@+P_^IYZ87^rl-1hkm8&WFF}Q9p%ywcFWemwn|7UA6}_u^!tmaxQtT(gmU=qE}@OC?EQ|+;ekoU*cl#BY%c%loKN<&H4b`#xh>(}9i}I=NBeJULsqW^teOck}sP{kP=seI;ez zX<}o_dgj?UW$e;y>zPZ@ImP6%w^zF=$fIN84mvqIRc=&TBWC#T5V2cT{lDn3&g{Tm zH!&X(M$X<57i1=eG7_B?X^iyz4!o{Ie@A0$t;Oz&Evt8}TeW3j9P^Fx=lfl$ySFS% zr_7D$qf;w~dC5Jp|3hT?AAFwXjO(KETUw5i_y4F8@9eJbtIsok91~4WwQAzp$kDXe zsO$dQCqG|*lsH88edA;f`5F0Xj!xR*f5!d3f1u7&)RBGQM~z_-ACgyt`*ro$Pm#}U z+yT}-+>kwodE|Y{enDKtD}3Ka9f`3B1+EaY$+KFC_S{!~Ys>q?l?A_l*RfP#&GaN~ zzD!#ZOAt=E*T5%~e6n)3o_W^waQRCuU;Z$r{_Tha&-O6Kl0}9Dv*Z!mEVc-BRv1Dn zKOBBv@~v0jn|zcrncaPfZ-QUs9H6u#?cJv+t+$~6S1Y0BTNn$GBRQW}$46u*|4ZT+ zuJ^Ak%!Bw^*#vcHQM61Uj5tS?mf>Nkc&Pd@Dyj4Nq18v7H2 znA9|qJEt7u;#zf^BVFR=vGssQ><;bv>eltF3AXb&K)wKdZ9p8K@PgB-%s7*%w0=$O zrmSN`H^(zC_9X@)S^6jbVc>)7T&IbF>^K_IH~^dK40+MMnr>|TjJZ;)ysM><~!$y-c+Mf-b zr0Y7N*CKS>SJNjpu7_S-#8BpPzGfzQ4$hFz>=bkqJ5I*1lCue#+|LFrpTRy5`b9uL zU9O;?KW6WFJ;v`$qNDW(Q7a$jdF$dv9d=o-B*1@P&LwXmA9a7V>%Y*W5@U666>;mUh+AJp-1;iw z)>nn{3E^XGJ~*Iy!pp=4RbtOD|LHjr#g;OY&rEd4{h~Y4p?xOfh8+`wopWN9>U}}t zX0WG3XCERi#*h->;a+ynq_TM}o4F^uI;m*s{m63K(py>z70sN6EUf~^Ih=duocy%a z104?zF27~WtHdjY(Z-Y?MAuIl7*!vX*_;6(o>S3bo>TYXODTJ)<#a@nCn;QHHz^>y z{`(F-Uwm83LxyKgFoO0n?W-Rez9{xbo^BCm3kU|OFj9P`Jo&+$9^)Gq1Sw; zCd&MGLB5Ye=&6IO!Ma~b`PO`=(w@Y>ifnYEv){V2&-#ac9>4zVvX>k4h^bqHA2d%% z&7RLU`5>Gc`6W$(m_@C;v1Ka!(S&{|s)_U#|1r(8Ce+ayLyX%;G1abLz;AnN#(QI# zx3Dpv7aKF1{T zS?(V#qE2D1e=Xx zlu!HHk$r=|U*)&NWoX8J&T{8yPi+{n?*07ve7;zrG)nxQ6`M}afzZd%D)-IF@9tGb z^4@6V4=|C-C4!tTW^%hklJ_R6(KgIs&lq&Q{n&HicJBQ%6MN^>*t4}4J%WAKuuvlp zk*r5E2Tieel7~KXc%l9HRZ8nH)$FV*A25CXtktgO;Y|zcxOZIWLyVR=6B@Di;*@(^ ziuSr)$4m_i?d0VkCjQMe^Z`BeKHkXQ=!*RE*Yq(=?_=ojiT11;itWE({XpJaXC3uF zdTW&{>J5MU_fvn^4=35jjCb1C!56W_XDs;d$6VfyXBNiZldYejIZoZRoO^jgjda$r zH}$}dTG!qYQvb^O2dE!upk1DO^ESA$-`LLc?E3q7eo{4?D`~TmKL1p<*%f1JSXjCI zs(Ntl+5=9VmE;cy;N;xMT9CY!_T`!N%vsD`QRd-2aJExV&L`|bFSe75Rp_Zv)`#zV zd}_YkzPRK?IWP^BK9!ee$nfC`2A-VF1lw_{UXi@35|1m z^jGmljjQ4ZO$$ds<2%s_W! eKwAG%vJl;_J#3`p>2GD{mMbt*~j)6|5z)3{9AITIh#&0lSF{dVpz7tUNUu70-?VV(@X?lwd?N0U?Y0Q*5V`|4cF z98C-N+%vAe2w!mV@^Si|M$5pfA8i$Om%jO?A;GzbvVTo{$hGO^?chDOK2#mxeDcRv zOmDh-EIEVvo5!kgW;^EqI_^+7i$N?Pbu0NS0aoba>|`#G{|jh$gu!giG?<Xr-qqNI2Ga)!1{Oq z+U=_7=a-S=#JQfhin{~VSf|jZv;S&W<<{nfMevW=5NV#LkDpl|2lL9GxiWt!e3Plm zmcZwv-JtA6-1CTQ_v61_m_fg_hH&#?rLVJKamw@|hwpQ}_C@2ug1d**f5Wz6Ihxfktx4?%*s?jO+SNR@trT1xsp6R;25_~2qoIg>}7rbAYSm)aH z(XaIOcBwID$se?r=P{2x|7w-%>9x--`~JbMH1Ul07v{7-W~=-T%47xey)p!?=BrgOO4 z%nJVLN}~CgL3JKOZ~OIQnE5^M9Y((@GH?suYxoXB_5>DzcPj1fp-d&X%z;1C>b9c~ z)9O1}dpraF@?8JVx?+zSa_&ER&>4%)ioGYT{vIXSJi};oz5#tVA+tH$#r7_1v!mo- zjWmXvCj6)CmkmPa5#&loo`I{iaHH!li$v$=>SJ6(c`Nkz+Z*d#zkTkdg;sRh zVDMX|Mw!V;VfH!6M@_rYjE|fJ3!xp+9kanp>PdOA+i#Jw*x;R%jbyH{F=oeZW^Kf` z+`B4ws0#1PS&qlh+7 zQSa0}BkNB|Jwu}T*L(`7lc+`5AD~>eA=(@XPd$JP^&1mr{}_Hs7!z$jfex2(Ih^k3 z5}7YiVs*LR%lHVt-=NP8(dNTu*6RHJAYOa{26M_ueeR6jSN{XWt44lR%Y4MtlwpfwQL_dR);6~r^RjCY45KY<1Giq zj@O?JTvFV2AY!~_JZ)^HU7=ON^5V8pv|$}ykd^h5>$0w~O`!b=`nxM?r2Pq&D}Qor zR^IrctSy;&mbP(u`n!~Si`&}Fd6xGxQ!P8j`RQq?6`EaRkv6uD^S6J+{l#q)Xd|Dx zGpYN2MyjPdMQKyUjJ9mZyvFkAxNG$GEZ*X_ndWOOkMa3k#stguaei7~@vyWx!O|8n z!LpgLt6}^P4N%&4+QwQYjT>T_Nqfqet1Su8EeyJSn69)fq}{)d8wV}NTZVx9heMUN z4{7sv<8t)A692Qf?LV~~%K$#VH|JQY`5eqt+HNGjTfvxgy^L{daa)0wZh71`)biw* zq58A%CyU#j)P`D)W~5t=jP;jGY%Fe@OFK8(23xj`Nz==PHW#;Ds|~iy$rx!_Gd*RbFK$aR=URSX8%e)`a;?Q}GqjPGyEDdE4C6-V<>K3l z+oo$HET?U`mZM{GEpsS;I9_R61q`2q(4E(3ryEoeq_(I6y|2?&rE+TZqrP5OS$bD%iJ-6vDsJLb`RrP zkzunKa|1BFObF=ii=D$eYOv@hoRhBn$uhO4I{daL&ohi#Q-nOT;Maaoq;p0xU+xa|}0`nh?8Wqrg5%P;x;Wv0#I8|Q~J^ykHG2M0LX z1~R@PKj9~342N30nPcd4yd~8(OmZ`~4I4Ae@^a=?mNU5%EN8EBw0)A|Xxqwv2RxQW z-oV4~u;`)uOuOY!jM6r995jbFa^c(GW?X|DUt>9x?r6J)ekx5vb$aNu$hZ=nbEV}0 zcwqI|L6*K5IhNS5=!v0@wj9b9QT7n{-3WfWZCRE-j>)n}4ymw@rZ6@`EOmSg=*F4m zA(rhCLo6;nv3#E5`N2#_TNJcdG&a@38epCB#T57>)zWMqVJTu<*3<5?%#oIU^OURu zwEY@o2V@MfG-r&nXd|_(By*}I8@~NJ-*e%gQ`EJh!)&$;zDHXskl#34NY;ncIhirS z@=j*9CFzHeSsN*TIy1*|#_VW&6gsZfQZ4V>2U#lYd5pcyGH{q7>k<1H%cJ%ji!)=8 zWuASAW#I6LELTRJB^J5=e#UT1(oJFL=nPVl=oOUg9+obuQjGIUvaDPsG@`2;~=sh30{|&K;Mv6a zG!M3=ey&II)64l&a@92@({8Xoy|3d@oZa;2_lw`i-rDV)uk3MGviQDt-YGu5B<>LC zJ$HIAZ~9c=?Eu~a;Ehl@9~Y&Zl(YWgoAU8o?pC)^Mt)l%k@kE; zl}7!H)SyJ~@9{qd;jjS*V=&Seq`f2BPY-msH?Kxnpn}Ws zDGKWZvp$wh{3q^6?@P*`a0kb@4qT_gD+13C;g#x`kZAFv<}aUoRvBoG zb~u%@!LfQ4JlGr3VUc^`1sBQ1E3oDQkB2=W;h`1k_zEj<==^g_tiNAyTt&aLHY%+} zPfuy|5lewDPv47gqFsptkoXE|SNzODJa4AmW9$*!T#tVc9A)ob%6H=%3znDI%V7B; zDbG8pb3u80BbO{Mev^yK6AL2cCI9a?+UMPI%4YzN@SBXUoZCJ|d4YXRfF_Rsi;ulf zk5TQ@IZmd%YP0>c;<5c+bN$%pCZHf&OE{w`aTW$gbuDUkY}ZTQ_aK3 zspKJ%)QyhCZ!$7E#OIUcq!CTFHNS|4RU!QT#hJM3v4!e@U6?Qpi- zuXB!{uMu41;Qx+PWky4W$JL(kj9$McL76e@A$(@Y*%atpxY5yC z7ET@q;<+5;Oa3|t>j&}PYvF4hmJB~E!+=Hp+rs?+pQXIdcArZNc|vb{2YXmr#Lv$C zxAx(G205$9;V3eYL4SICO@a2P@9u$X^`OB2HU9VH%9)|l_D?r>$4_yh{&o3YmT=DhbPVm9^hAojhl zPTK(O4-(t2(>Czm3hmFqhrjX+_z6Bi`fQ;e9Ui+Mo~`V=XtZ4@_|V^pKzVn79t!0P zBRno&VS`RjEA;7x=g;*)E|kJbiLs!K&EyUV)(_AlRe0kW@OK9A=f8}#4Y_)Qv6L|u zog%oWkdI|2GAH=E+4~p#3;A9Q4@RH^bj5Fczlx@%m+tGKFUH|M1^0PwbPj z7btRBzrKe&t&aCT`cLqhs4S?7IFFZAev8bS0xY$wPxe!`2--h*Z*UKeMIkYBB|`TgU*dl$;=j=J5O@mR zI^Y9rl*-w{JJ6LFADv%(@Qd)mR`^J0Dmu)~c>jR*^)Zq1#1RGStAYCM0e*7}zwv2D z{|yS%(W=+#FEo?-!S=V%zQCnrKBMF!ZwycgR~ z@Rm8hoo}H>8SNYRb_<_D53x%npNrVc%Oi+o2_f!Q6n~ydlTce<>mn$yC}chG@$&!g4R6Kn#v6F`sBe2Q=iwYK z>y-R0QOu1&o2?^VpU2k~ycF&2e^%#@rewZ-8^A+!-X>y5;@~TESlI*oCg#-2?{^K3 z#zWZ3`2Y5p*c+F-Wc$BRyD4pj3;qJEYJ2T#wl4uZKzh+~pbPKn8cr%v2q@ z75Qu8Gou{2MYGKr87jPott0JhCC0=CJ=*_^`5D-cV^hDLah*MLdBlJf(4z85PjcmQ zHC|IAohy*XW^`E)pHA|z41>OjJWL`z;X`uYJolW9PHMA z3HI1;z5rn5yx zoNh0uZncFdU8TFGoJrM`v%)jeA2k!2q4eEBxt#@$)+4N$KH#$%Tz!u@&_Bw^AaC8p z-Nr)C2I2}INprMrqmNne#~$d+IO(}+_5hQ_oOJwRO5;4%KbuwMWHWM{N!*643(?uR z600HW2l<~FrSyp;&W{{Bx%TBD(`!SO+#-|WeZ8W(b(U)C+(YckZt&g%>`BA{YWm#= z5tYvn!|*P0(IECcd?xyFCwf3r&g;kgfPPG=Nm+0R7)0lh<7+_;zeP_<-FDGkbNzMo zd3@&zeO;>SX>_H~`CMJ*_+Z^K;BS?>t2pffO9H+ijH$;`QzgD^uG z0_N-)B`SNR#MSJOJ4$!3pRj{($L$u99zQ0!`D4cUesFmJcs;;t2i|$WJ0EzTWnVW> zjqKb5A3KBaI{N8!{QHC7q$3B@bUK>2gSrCP*njijW63QBw(FqZ18S7{dT2QeT_&+2 zpYUJyK8fd?_K9&=#wW{D;y0@y3+l4hCKm(K8$AD*=X=jRe;~OSIukEqzF#%OeQeC~ zzpEKm`K-!2aBv1_UI7l3;84Lndx{#-=^-{NIf%paejJ*6!67rvk3%`|>pC3RMSr6k za?#tl8ggGw+ZD7ul^6}?n9gU=EyiHmlM;3MZ0MzJXUhN3Hni`p?c0qnwuy|pcT<>5@V@c%iSr7q*7*M+8+s{2|HuJK7a&Ohh{u4fYe zcWplxY`ewZc0n&~@9Eo1+n0g!Bf+*u_SfOg?4|8a&QE`XCc+0oPvL`0&=dXXAFJp6 zZTIb^ZL_SI{}=R@v7-NP*1Zh4ZVtlLkgVhUv9}lbWexQWxGsa90#_yLk8jky47f%G z;Tqe9P!2@TP<+JCzOOGd% z{oPCD=w6h#!8PL4Zx<%@#SgK}!Ft+n$6V^XL(qTzIdh%d^Q?tqs_?z zZd2b}){nUpM|el`ec-`S-m!eo3?Jnk$M>>dkMuV5!zSo2wpib$EzM^)9^^bh1NT;I z_vYu4<22`Yysu{6o}Fe|{}TC;<+qgWN;j=1FW*SH!~39edh`UwRDR318yl>aa<;)r z>tSNXB_1-L`RxYkRGXBS^!9IcLc@dfqe&eD+?TlIg=E;BijmZ27e!B9diZ$Y?$OehLfQAEt|7ki zGwk3)pZM1V+A^gz$RkU!BPD)$G2hces{7o@cel|1Z}ol$mF*U6sQ$`!v5P*Z58<%{ z&C#_4p38;j8s^A4>Wb-dFY->2kv{?BJ*-RiU>gm|m-w)ZvLR|~!(`cSkvyF7`rYWM z3Cbw9@I)N83Nm5^*KV`Yb$FtGY^B_b*x)I3O19W`vJNDU)>Zc4q+G3UEOd%*numS( zfxu5aO*x_8>u`{JW5!Ck+n`yTvfXFqT;7KKE}38Fp^NL`y*pWdKT6;2?DxR;+slv{ z8-5ANBU=ak{BZVbO7G^*Y4|Wj>0h}OU0cRFwILdxgPcQRJaqVHJ94#X+i3RYTgw8t zmtBOrdkQ?b=saF>21CDl6?(c?<>!_uu{rI)Q&yyO^`r@Rd(CK%f=(~`$Gv?BWu9W~ zlL8#btI(oMjm;6dL_!~V?n8ch(h%C|G-N)RAv8;YW)8+(`0Jo?$Am5D>TZLw;ENZl zlQ+Vv!T#a5k#ECmLPx>%I@*5+8GN|Ad*sV{-G`HfZci2(+CADz zf1;aYOor-XlF(FovU{}bySe8SK{F+%0e_0DuiUKRwQ1z`ebdp3jS^S!Cg;vr%Vc6t z$yiGMMuXf_ZyW0^0Dpn;?HeCrIA9v_xgT5Mdg5@rC z&l+;1$KrVB^;y4)&!c=A_;gQH_nn@l61!tSpBq_wgm5>pp(!X+iO7`XXO{TxHEX%k zjdK-Wg1d&CrP$Fk(6K!XI-zSMpK3>y(wc<6>6oiD>Ua$tt?NTsmqdV{_zi4UN3MM^ zyeagtZ8_pkmG!TzN14l9@}E1Oaw9Zbj_`)`zk>dcuvQS>@`c3atRVK^jIB_% zu$r8^#>)B3&!txrM@P)%y|?AJ-p1bGAz&4s!9DctCa0fIa`Vs3Z*AcFOWN9TkK-Xb z@2xdj)5=}fo-U(Y`DA1tnPr?hOQEq{RXpX~&sJWfuS4}`$fQSPqU^7fRh7<8d|73G zRk~!Z7kJ8v;SJKG5jz`Q<6*ttHJJB4`fX=#B8XQ3xaEPHBiv70!Chz|v^Yjtr<#=E z#OEfmv4PH0rNkn=zImGt+6#+)0^4ZQcUM(EjBIb|j8wrnA1py?Ak zbmW~p+rgPz13E)+IJ;~TyfzV@DVLmHG2R_qjUcUu+8V>mVF+rI#0mDnkMJ>9;jXo&{)GrFAR(D03Zc zZ4dO#d=TFhgZ{)8(RHlo3b9j6*e%un>>e$1kIYZ0obxF|huF{|DGK-bp?CiKB7B3g z-cM|_(xTi3^jB~`O#Nr~M$tXN|FddL>qYk|z*$-l=B>ZqZ!dfUzi9uwRff+F+(x;P z#j*;ewM_U){^J8IgFk}p?g~-Xm$Hvv#=L9_Ri~F@ugG1DZtf3I|G|Fqq^(z4xra>l zol6VMXUd)`Y>d!lG@?`HXIcN|ql@r)p*w>5IlgJl1M%y{KecD6qicouu@>U@*zVc1 zXCXe!r3!OzMCVrcPU^jWCub^T%y_>0PDj@)L?Px5SPCHi`my6?*yjqp+kyc*irbL@)XRR`lz zO#KYik7A3YBkbX_oJf?wX5Tjzssa6Xl?Vf+{S_Uy82q2Z+ekG(gKkFq=${_kfd zz%1DpgbA31#mt1oC`;mUm;{$311JG)wWlXRx=b>FMy*X$Oaj;@nXrsfZKb~kQQIVl z;wkiG>N$siwI_%oNNYVk?|ay^CIkekXvTthzt=PKBw?-f{ND4P_TwM(nP%R8; zzOM^XLOl))O{0 z{3Ku26a)1?(L#-;{Jhu9S<}kF0d&ukKKk8>-@P1|qU-riac<9mt76QZ_~kqC^_2^3 zd9Ps$c5dKa;LE+hR_3GgDb{v?rNA8eW6eTM72GJB=04N0!+QEP`Y!jK{0saGh0c(5 zoj*md*I?>c`|q!E7X3r` zQVQ{CetW8KO6L>IEqYDo6P%r=&I<7D$TO<7+mJPzQ^WAW$7=&#r_vrTnflnz@BRO1 zTj0Hp|MeB%HG2Mq^2~lh9*K`4xt#R9Qt-;oDDV>;2X0#|3us?-d|>i4ux!RBZp?|u zaCG93e9L#xQr7gYO!y9QQXWLt_8uwFVJYQ4&a4eS0A76+JEaRA&Y6JF$DBFn`UF36 z-!u2_H(7jU*8MZFBMWjxUk>kk`YpIO4SucbxYS+vr@kpVp45-h^S$cV>7)C<-^usC zfc8XpypXPD=xM#!NM7Wh7kWN0l>Rdo_;(L9J%0guN+$Ncsj%~phqMEKycW2wH^zCR z=xeeD70GSS8iMc^(b)rb@S5^NhRUSsZi7u1FKKC4A+)pya+BRwN z{xq99d3VN}j$5?V4$e@YJZ@g?*t66=FKr3u{S#(AxMyknJd@+r2Rj0{Ja`v=R2y}G z*Q{TS=*i%GYrToN_+#G`FE}pGz0mn;#;woqnt}P9tMk8;H<6I|i<8{<9v=peSI)HMT~%H+PA z`nyf&Ae^zWjA73h_vzcS{4*&tMsOe#nR2{ui{NDE2Yplead2tJA4LbiRtw(47zNMt zzK<4Lb!6KwDKGnNRyWETVwiVr1c&{R`;R&2Av^^6>9(6XCC$8-+{bzW%1}`@u4~aJr@demMQGMsrU*^95H3!onq4j^`JNafS zaXSxu*0;4A_~5_D%fbei*nAJzF7tO%4&66V+R|8`5xC3!nTKWqzXITxk3RmZuusn{ zdd2`;tcMzTI{tcEu zWKt2gyEx4TZsJoYaH(RfuPbuhpTaiyK*r8tjrH{jD z|G+TTd*OFNAN9x{OI}!?Uw>0=@OIwIGnJ<#j(}b^tQUrTF(M}qpc{802Xr_g6B_@n zAXtjb^U*%%F6{!dMtl#AR(%9wA%Km2%OQu3vIc>T5( zc+cL{$LcG-(=PF$eoTHM!Be5JQKQt9Cx)rHwRb+y{!L(I&`EDEKcrjn0qoWk@W#w;69UaY3@-5hC*%h~YE?-%`NHsTaON*>m%TmB~fi57FX!^3BXkL*_!d~QeJS%0Zu&yPJN%Uh4{cbHOsW};rXEk zY=$i8%W}QwY?t}cMYn{8`ui64C+#Wt#+bm3l*OK$Rt{aZ8s*?|MVvJg9ZzKG1K5MaO;4jcbYrN9lV%s{?Weq zFy&X~GAM@#u4Le`Y`5n?zapR@#lF z-2)3%;B{zQaQi~K=jpo(S`GbEuWM9B;27<__3gy9miU>vt}OGZR^*4Q@q(+GZ$0o) zWyB96=h6bkh&*{qkNt2CFBKhLWV7(HLil~w4JuSP_J-E1cT~vvEZ6Dy3;tdU=8xc< zBz};E#D!USYqCC;@yH5=%~IzecPoCA<;4G4SSEfde8#*>$G7`H!H|Hl_VP6Tw3DN( zYY*z{E5q9g(M9Sv$ofnCH1RK3w9Bv3{r=c#UX`o+PXuSmHVg^WO>&18HsI%s_*Lp% z@VeVo=t6w+^xePYtfPj^G$A_&Y;v#YIX_U9;4ynP4Eu%k31Aa4n_SnhZc`pR!aq&? zr06peYpt1BIoa%!t$;T1JLqtIi1|Xl(BUe3QmX=E z=y!+2SxSVa;1OLz@mVe}?bT%!doC6*S1#n14gaAHKEN4^@H4J$R-VP^alod!_-CJ5 z(1y&ez=mXx7uVdUMDFwRdu{nzuWhu%3s6&?+w*&^+qGW7#k-(&qn|eVnU21tnC}Jt znpUwrN5I!DA1>YJt?;&|{YX{5B6*vkrNQ=iFY%K;{dPWQNPn&CB4x-Tkxl2yXG7Q1 zz(*7KIT&Yt1ir6FX6pJMYkP&{TN4?ZGFti9z6J2-;}!w+@W!dy%u}PJN{Ou=(BokL^T74SI$z z!8?s-uKb`^d;lA`cX5ABM&xCk++o@$P@83i0swd{0GWBpn}*v zvYs+kd^~l_h6J9khmQa^@iWwe12PuzHF$SmJAen?Wwaq}7Zmn-3slIcQ|A}@d=IQ2 z>t$E*J?(rd^Zbh1YxrW5+(UIbucJN1xf(lg6J4qUc~)Rj@oDMi-)cNJLtA61_YS_J z4P9TBdcEjBy8jZrW+n6?xMcV$X(w_%d7wSPse{y?h3-fHx0IoC={gQHrQc(t$i3)E z)zo)hT{ADeo-zU*N>TTSKcLr-1ojbsj$7c)9`t%(-+hL?bA2z~D>B*(eOrhNsTPk) ztixxzY*jwyVr^m+V|x!=3eX3)_;Y}th5vs4oUDt0kFwWvG1t@i{(hO4duxLY->M6` zmS(M!wZ~F?qMN|2h|RU9;C>gekW{jKZ_q-f$c|yX(|dur*r6@ZwDHdHEli}0E;B|r z!#IwNUPa%;*O9|J>0dp%+7r-V=dv&?W$cA^Y=0ZLxch9nlzR1X@lDr|@LCD$!%wb< z*Z+VzT5R~W(1XR-IvifNo;oLeW?gF`DX!&UUckz~Gb1n1u|c)&1P5BKiV9#mohh59 z&WO)qo3u&YtOXM17r0|bS?WX{q))FcxcRhvcRTV`WWDHr`q-wB&rj%=v3-THiTwGa z(1GsDx$v4s8S}Z7Z$<7I*KTYHD>xwW(Ig+Fb*N=p5q+9WTgdB@`VxCU`cTLIP}5F# z40$Xk74XZrVMDB3lNU5r`sYO->tap73y!wPKV$I9KRBB8$G$CkpF5p_A45~p*E;yl zkLWKl^Q8FlI)Q=vBW(Kdvz?u>T5xBgrpILPxo&leZBhIxxhi8`b2y1PP{Vx%_fGD; z<71p_snh7ctjh?VWhMMT-|x7QeA(T!C+D@Y(HA#@FHZE^Vq}@<^Ahj1{$$_$;U|~w zOA+1sKg|Je#RI*JLB}hBukhy2=xa^IwBEOg$G6|4={Z{;q1~6inYi}f`1Q>cpJ5d8 zcL?%#C^qacd;peK)>DG@b~V+oEwaWU^Q%V_3P59R4E+*2Ox8GsCp~%BY-b<7J$%XY zz0jAOrFdF+E$_;~S)su)Y}i`vAEQ5l3$hov`p6vTD(*iuBm2<-J_)aP?kQL^MCVt+ z<9G93@THvpdgcl~xuuqvX?4q@0$=6X4FX>;>WB*|CD+q zE@uYxA--d4xjV0wJyeEYy%stuG>6;u9x(;+eQp-tXFL2*e4l0HTK`9`<*coa)9*~^ z$7#WK*navqofG@%>tnvLAPc4L{h!6OijQ2ySmtyrTXmgxDEqmztZBMW z8$G*|@$2QIuk0`X2Z4d?KTzq@yu)WA3)EHK;pU*XcxJE=KQ=nhN#OD9AFbx!!?$Tqu*Vs=5dZqENxV-p#rQIS@8Xy^ z|0epg?F{+TxnG^}##4J9afjkeacyrtqC&^bv93K!m+rfVoY%zVOh|i5RgS@@Eq+GX zkFcG6%64G#8}^7KvqwZ9Q&mns++Jc#-w>GLOX;M(vJvcC8?HkCApe)EP$x7a`0ll< zEpC4Lydw8HwJWE+G8UU_&G5ht(P6#nRqmf#b6G&)$In;m;mNF@F`k#fC~t2VUa6z+^b(q`x22zJ5M$xsvmFn?9MT z0tfk-I2U7s7CtW3*8=wxydKs~MPAKg49!=moKEJ&!n~|C)jNa-ZQO9?$*#$q13%|n zyvUm{&nbeg3!(3u;n_E_78&N(|3QDVqD20vN(*bI7OnZtETw|!@VDQ7FDZF2pZw4q zgZG=kmj|+cfN2{G0Hebmb1^WA`4SAJ0->8Etif*Oqbno`UyGOJ{y%e^1ypOolfn zwMo08qhGq6v&Xhy>@{pL!IyK#ahN(qFMf!6jd3J14&n8ckA`LOxoy2me-8tfsh|0|kUzqZJ0CJ0kv)P3 z%fJKaZ(yLmZ^0WPbCKNk`XE?=V-CIVz+kX^yA&*5p>EO3F9eHQ>G#E8A@q15SnP3}@9A_B&~9vR*R}K6{Wk?85h? zpaD6HwjCKFv~H^9Od$M2XhCe`gJGR0EY}uY)z8D-jB7Am7G`!m zaBYg%tuAQr2y1v_@TZR9y(I-cC;!+-Ce|gSf1+1P-9kHZFZlWVr|3xFnlW~vebI~7 zBYy|uLDa$l9WM!*FT30wdVe@&kpb`VZ^+*=y6w$%QgLcOZs^FQPvP<%06H-I_>%TzTsp0IO1Ql+zQ{s zXHo~;@#};}lJ7#sBk?Kz2|GSaci}Ud$*18b_TK3qv8Gy{$=ce;-su(CPkOACI2G#3 zHnlpjQJG3#--!Ys0itPCgbo1QDbFs1TYs}v$aSO(wOQ37qZ&h=%{!VP#D*~1~ z?(aQlDhO>@HODEwT-^`B+BwLQ>{ z#2F#3VW^uv$^1`@QGsLJPhbtc>H7G2li2&;lo3nLX8y_D+)a-9m7E3K^r}jH-Wu&{ z8g031(T%EI?6`c^58vTDr|c!_L6!(hSl{lMq z!cywp^irc^6X#|(a&C4OXV(~0!VI3ba-P=7b2(R5%6V5iYvM8BlM7pR(h#eCHF1(p zZqN2l+A+yLN5%SGJ6!%-6frk;IQ_Ts&z4=kM%-&x#o}DoiL_js{414rq@4dKmG_$b zTU6dA^fKw!%t(J0ZfmB z&pa{5DRL|smj%W)*7s0;=V4Q-Hr7r4cWu`UVxe!@ z(SSU*=(gE4^v%nhTeM`q*hF36gcqD>Hl_FunCs8eKQ88PH~hd}+OpHug<`J=4OT#F zjkHq*t?BV)A~AHJ)3+LUF5eXKja(NCoq{9n*bU+%TLArt4Q%0?Q}pvY^i!UzUStuLwGk>zj5bW409PbvIL_Jr5WbnEdeT%5s^ zzFq_Gx|TBC#ENm5hwtLMlRaVsK-aU(skYbALEsxFIZG&ZiOh5OoImG%-@yLJ0+-|& z_DdcNH93oVBlp!AIcf7cO-by-(|SDYamiX5J!UbMn2&TGnC$ za{U$HnMHhZ*)J~Zb_bZtGUoD9bM{^KixHE^^;KfOTZd$>3yrZ{Rl$A(!Ci^JO8+Y5 zeDpQi2)~W-OP^91e=2*-i_O+uKIS-Dv+HNDV`x*(+{%8(iOgd~Ezjupl8iOgp{--~~vNbAU(vC!%}Mt$I&r^uYF)0dw)v+A^_PR8IKk+eLKr;cau#MZz>XT&L0fLYu($ADKIm z%>vW#w<&G2__o26;wM+e+^;de0{?C~-^4zwCqM3+`ZLPNGug{}sWW57J_~~%ShL)% z#Fy@$SD_2F^l_WeqJhuTnO8YmwD_z!y>Lz)}Cozk|75GBk5t)-biV z>sr+sr+!${$h;Br#WMri^fA9Ojw0|#@cC=fo_1};0$?n0VVqXAw;0~xo8f-kcP4M$ z>sku)ZSUE{TrQfSl48u45lc1NvrS9#S$MY9WcQCCE-^Chq~L^%>1zi|t9rC+ZF*g_ zv++#d6rmxBe^t->PUgnR{ML+dS01KJH}=KL70%oS*8qH8V{W9bG;L&$$cTS7jYO^y ztA+aH`L*<0-t{1l(O=&Qv?2@tSv;&?=e>~vh4Cz04|B50s4Nuf@6#07c*hk@< z7NSdRg`eqhz<9nA9L?bSI@)r9qn^>0c}Jm_8ZFvq<6V#0=2?UcUP+s>$5(vC(coP( za9AX;jEuF-)T^JTfe!Ss3%)+cnRMwZIZbA4h>uC|b}ITqDf2$Rr)IS z=DBAzKK=Hq`kL&;`1V=jW=@;HM`PS~%D5x+GXgwphp!6#iAJVN&n|24wMB!P3 z>wep0(PgU9x6UsjQ;FRzGPNBZJ1}np``gc5PnWzYvM)_wF1gBHqtAlpMt%_Vyf#BF zmMfF1J627%IwL$LGNkzJFNG7&%$~Gbu}q>^%&}T*F3bXSu^W%$@jbV zM}_B7{3S#9PUfsy2C7Fl7G8;7p-taozmvtG)^Qr4#Oa@gy( zka*zulIL1K3d?7iKju=mvon_^C0~e_dDBG~Ui!G@8~H&S_>vX#+Edo&Y~;gWZ^zqD zmZ;lAe>!{p)8G?A-@}Pzl68;LeVK0nbHiR2|0Di~lB;_;d-7S|bT9Tv8oXEb!H66X zJA5O&{AirygsV-AbrbuirnY1|>khIXJON)$Z2~qY{%P^C-2iWVkM^3Cy0=bix^ubt{>WGm^Gg%>6QoIU;cf^3^l~}9zKr|L)YB- zz8Y!YO3n(|N4xbAE$Ni{fkSd6y=VTR<2g0dzAarXEMv^#f6lyu zHN78C35ZSAQHO6VqL;Su?)*K@VPCKK_yo3v_pqn$$N8MUw4}O5hwWd z?w$VI2FD@JIRc}S|JB7gD{KbgH`jqL(vLpYq3ysNJ4iosC@^mV_A&0-k`I7)9B@8C z3>9)zy|sOr+qnbyFD$RjU8qcRYn0||g3s2R)+*E0tq*SJx|n_Y#oEZL#!}y5%86Yi z&%n(@?i1OUANVHuC7$Dyct+Nv_8H3T+YmqJ!FQLha7d1_8fEhBU_PRT)ZdxL^&#^L zhnoavX~0u;tafZ)rkt+;WAQc5$mHAyF!r&&+?b+r1?Ru;*>X@Ce%dw5I;3J*iMxS~rDsr8g zoxX&}WAjzyW>T-Lt=Snv#YDBHm@ynP$GA4}{RjAC_A`bzbNr6US{&u#7{hAE{>T_+ zF}N>)OSeNCACFPNQQ*^WqSRK=z0bv|kMY~!>vTDF+9;3EhTpN< z6sC>a2hm1Rd3mmL5MI6h*#KU>VKeZ`dKPVL9E4X=z8v4G^yxaD{{|nq==hEBO?;hKZTQ^6dk1rCS!eev?_Mf8$W%*0nO&_VqC@0#B0&H)7l2n@kZ$A7M}M-=(q>?9jWl;wrMu# z(dH|@y3t|x`EtiF9$5pAhK_yEu@5>v0{=K>j?-!RIJDdcEuY9~a@)H)1e*i7dp$|)ZOWJos%eT;nH#yh!fzFTO`)T+!Q|5TZ zl1q+bN%@l8HxuArjN=&Nm`xuR`xduvVjOem!wVU^9l!+KIe#3I+s{Y&)r>>>(j#LT zs)EO`dw`|OLtWc6hp+9ql@7+0`#kmeC}TI}PLp>R8fzK!a;dS7W!~)9nPO%B{$Gz- zA8)40dzifR&2j9Bpzl*=sx7C(>-cL5*4V@Jf&O$)P14##ldMbFT#FccDRA*T*XV%% z=N1E(Mr70xEq7W4?+lr=i08KeFTrKuBS&>yUX)ug2$!QNFETdzx}mZ1FE||oPA>wd zn{=GExAlP2J{=c)5nNb#L7euN`*MAM7N_lJ;leTId=ohR2C_@aZv+<>@$C8WDvz1?0A2_! z2(3RqiP(OOzsAYi?QVza2b$p2?hJ389lYM|rX6Q4wMD&^Bh(7Z)w&4VHs-_6< zc!NDv7v>$&{rXG_?HS{^5be8x(S>N=&R7o+=WiD<6YT&D$!?kMkV9WMU*XymKSC3>X5wCEg|zUIiC<{Ctc z*}(Mk=!XK+b7lGG(hq^>S^6RH{B!!D_|9bv&OvkUp`R0h&o+@8*{oSI_dONm$PLkB z!}3q?Q|AAbK`=c}zr0*k|JCcrnU@|zI<#>iJ--|Hh^{X(<_paw^`14C{{>xN`l9Rm z=th6_^MP(>j9~^eH}Sa!U6*5RA@LaFEXvsFa1P6z)&f3zecpBpysVXX(L8UC=s|{! z*~_Rps`3)%_>nj|jM+-k2Y-8H#hry?!>Bpb5F@-11 zh9`B=AKlJGhqc0g*o&d>yJU~~y$9g`@~odH<(mRUvz>m{RP*qg2V1A9;4kMupHdFF zX-TPf$hGLh_}42<_|c8?`v+c8fin;5`%T}%kHDIj#BVrz@7|~1zL7Ia?75EY;nUa7 zx0?cu@cf1=+SaAt;cZ`k75NQ5D6Qb9D9$h$}c^Rw=FScAvo(<^2*9_thMYJXI^FqA-T-muD zm`z0g@An08ES@c_U(&Ol($NBz5#of7S_{tKlTIrZe&dgGC0yb8_kv2Z;^I2VfckYQl ztB=N`UnKO~STU?C8Tx1wZUF=_q2Hv5Zrmb>d^4 z@}GL#hR~rai0>C=54=NsZ#jF^MQqID5(^w!?}p}&fNP=~&CqN<7kt`+ZZCXV;AMdy zcMZ**CN#(%-L>nn(JiA?Vj6rd>p%MDmt+4s=bCjMV;R@B&Z@!Jt|10azWcPYtdCv4 z!+bhzl)5+LfA`J*yzOOS8%cZ9X)lfS8PT0}KSO>Ld(g_-Td4o@*42XjDRm())+*N8 z*!N$l!B<;=Lk#e3`3HAi1N^aqaTGHSi?j8DV~`l{;>&F*`220x|8|DnHoE@W^xyVP z)yw~#3jUP3Eb;E3$ed{St91nDTa`QHDG&QN?-simA8emyuUHS>9D#nq{B3l=S6-28 zLBA6}epXJs!xFE8h0vO1WJW;oPS#U|2E+6>Iw1C;!5a-)Tm!8bv?#fVXJ`r3H9(7Z zpF@kW^m9&m*xwNcUWEM}@oiGh@V{E2J12O!6MU(lJo%7a(l^C(=@T-d#Fi?)TCArzhP`g&5pQ~FC9(^v;-w~s4?Q58KKbd3 z zaVpN8F92^cR7_wQXFy+ED*HswKYuA_IbCDjPTN?M(`A9ySTnIqP_4FTv$Oe1_FQrf zr8!Ggt{>08tl8wL`M!J=u+yI!i7|;iebj7r*=w}`dp76BT8ZV4%#G(am$78t4&pe(Kki+e`@SW~e?Xv4fn|Y9Ac5oe>-#hI*I*p)1bQdu_k+N{mq;q|K2|a9KYt>Z!Bu>+RUVN zzm8ISf1RGR?xPXr*5hs!oI@Q(fA`bh;&b}MI>`KA(3kJhmuOEas=-|<~9`QX#c;lBTlzVv41uB+nQn2eSAo&rN>KZ=evRw~Q4;wkBJU}_>*83v;{>U`Ym+whg&c#UCS18-eTKQ4) zkhUiFpP*}nV;rF~N%>R!`|1X8%;)?IaLoNBj(v$^=i}Hf!!(fCbrBrfHR3P8v8pd| z>`NRwAII3#c^)5o7azQ?<06MyXMao10j#dpZRL^zzAr>(rXdeIkzKmJ`bJDRe+@ZZ z`t!Hlt@Kz9mSh#Gzb|~fvnui|i}U;Uhp)2+)mMmo)$9BE1?p?j2I_l0e7*Cf$TO*r zpnz$_j$mWJK>zRy>h=BL{Q9~q1NB*A!q-KK1NCLahObMLRi#a9cuH(!(Yb6B*nga^ zg0koR+&wZz+~Y$A{O*ask2Q=Lz|YwKdJ=lBzdStthU^GTo;9_0PKaEO;!Fo^HBJiO zAL9GYso`s@YvB8q83W&!^Zje?@crBJ{mtR)o%092?{p4)FZH`_58q3iQ7iYBd&2j& zy2y7erq--S2g(#Tgs=aV?=825;bXlk0yFwwxG-`Z>A&rp;d|Lz+~o^jHzpzDg2JOT6+KMp9|kN{vuL_{@4F9a!r}We+^%+ z;`{nt;p?66MBYpPe;>Z?{tx4sxz+o>BiCb9s8wM6pW*wZ(#IFW@aX>M2#lyB>t6@p zB``j+Eqq_e_np5EUzfi;@O{gkf$s$duk8)re^b7HCw#s0y@BtujIt3JxZV%HyMyno zl=rG||0)t9{RRf!l*lz@Dn^E{XY)NVlXRMCy*lz<`ad;%y>puJ%-mX-8@Z0ape-+a ze;svXeLviO`PzX#cKslH-SDLG%-m}EQRF&ON5xa&`)umC*xu8Tqc}4(OjUZ&7mYI^ zj&x!!vZtHaKf%^V+>hDN-LIS5wyq(rxP7?uw+^rCw+@Tu;5@)^U+POw;6qE*_srHO zx`UVTzTV*uj>zDjGj6i}9zHXB8D~a^>-pK_3|2jH+tMg^4Etn;U7ZZEudRZ;{g*mZ zaH;cbA@&>@XAAA4uvO^uwJK{}dE8CCr_8Bszlgn|-OFBN$=h3w55c=XpZLV4)+%yG zltmLW+ojfM88gqQ6;H?RM<3rF8x`C2vt~y*IpZ@I%si8^VneKn*xKof*2fmipAlEk zvOX4C-)xpRM58uLT1Fk}#~WhRv*~e`>qf9NEx9AV^^iup-wMJMI4iK~mO zMIPr^eb4ww4SPgv?QLQ+0-G-L5LXf3xG3Y}Cu_;YF*duO>u7nVMcY{`@)YAobS4zr ziz4-ioh$VeKCC4H`)b=eT~&n-=RaP|zIoOm6P(s!4{NX0vhUPGJH^nk>>-KX-srHg z7o2^qfhKHF&cL_5z?{7}(OtDi>!{v6q@y~PJuSPb;{)p)&ysPfitqHeD$WCGRn92# zIdTTUrKxJy5bDSG<3lEbP?!b-{Az+QBBzd_E^lDbug_edRzxv)HBycOGowO1N*CXv!1yLpTH)@*_1Hb-e2xURdrC-k?BJnK2aI-rOt(% z8blXD6W2f!w?h*WKkebT8`=wnCcr%l_}ajp{R-y64SYPn?I?SE#J{!^9BRgIv3Ps4 z<9RLG!x=l>j{IT9*mX^I;`wpkea<(3g6Bj7<6dO=lb5?gKjK@?vgtUh<3H^l1g{Sf z%T4fKaIzU&R`69nXV3dXyq9+eOz;c#YIDx!Yek1tn zHOqd+OP_HWjK5C7CGgI}Pu3`lnLp={V*9!H`+4wA@S-S!ch>FfH3i=U_t<-nUtVJ! zNNZcde(<}&zY_=dSDgg^;!O$mc$-StZN1gAYNDz-4z6wHdF+Nsc8PWI!H_xj7s_2# zKK7FzW6fCb;vjfY6s6|c-YKuj2LF7N5jt|cods#!#L73t50&hHeZfk<2h(*@z`~8 z{fJork6n@4=?y+7Z4zr9YE* zseDI!I$uo+^Huoa;bAkWD@B)CQkNSXeVaYOd`F*>!njDBiaK!ZfX+W1VLawcmCkpK zcRDVH-=UKxl-tf8Q`gVy9lMqQBXZ|-->zDZFc#s#N5*Td-SFYw@ut=;#zWBQ)~pB~ zXX$u+>9w@Kn5X80+bPAKb9rhJJk)H}=C;`=KND;dt;D@~y|?isD;np%g!&9UAdL zBNAuPvz;8boDpMfC@_&IPzlFVZuPt<{2JN-pHF6hzxJw%s_0*3`d4n>U$qJvGx%=P)BCGlr;ozlWDGvW zkX_}f%4Xcz@Oc;ITvb{8!Zh^X&EwDC&o1#Qpsy_A0q8X5T-Uv!R`!dE=pwqRDU7KEozM|7_~6A;KwboWBBf__zkglRkU1} zvEto17X1C3gFczh+`6wwU3ZW+el)2;%g=21P*px47QE7^NVo`Kr8 zKB14HNFTEzeKPuaAW7Qy7?a82zPwqrc0i96Gzdqo0{HxW5HH z>F;}I^|$Pb%liAP=OI<9{g7(7IuYs@2imeXg>g}v2+?%X=m-I~r8cNv?|(0!cg z&Li$|2Dl|ML+I~F9Op@HbFRyJnzgo@S@*e~{c3pya=t4hF{l8#+C8RtaZh&9;=Y+tdTh(Jk9rv*b+Vg#6YCQwmx?;5^ui z@ZMWLZ7w;Hw*KCnP_7LjNg6y z{=k`>@ALn@O0qv29p(8|e0=J=@d>Fblqq3h`VAg4G>dL=ashh8N4IR(&n{l7Kew=6 zcj9!UKb-aWFZCzty#ClP)So_L%1GWR=wgipI9q_T=mbLNKH`a?d%jf+jE(>!;WhBY zO5r!cYi1MY>w_^WApO3Q{>mAh4O)V~RM~wqH~Wc2;eMQW8z&F_eECzRs=KOoROeL5 z`5Vs7oD>}>pjrG0Rh3nTk~*pnPwuF`OPTD4FYBm&H@l;HxiZ@q0`GTIJF4HiqN7^o z;>O!l!XMH)s^1^eQ7y2)E6U_qW*L&Y!xEob0L*hT3+y>n6U43v!1Fk-LhJ<2=g1fq zNBSyrekF5#slH}jpsxv4i#~Th-=mLzppSwxcSTDdZK)du`si84xO1v9&+4a~)zbNI z6?|88$FXjm|B4>E0QwNUdWHH!Llj!qg+LrUYC-^;sp7X3`^*@Tu|2=dlonNQN zrY^klMvr-ts#SW=U8;_$;|PU%vFH$%joY+`ddJK1@OCq^tjZVtCra(l7D?uMtthx zD`(r;<1{bx5pCWZ@Pr-cW1@o}Gbgl(&L;gev4(JxJqymNo~q)ney=1e)0Uc*Q)p*j z&^!wksP5O8dGYvF|5bmV*F}!J3;X*vU&7zF=1YHHI7aS8{e3sM+l%=P^7jRctPLLL z4N7u5T+H7WbWz5~uixLtb+kN#j|}+x8tp}qdKN_Ni3nW=ZSQ#7&-V8<3QY!u7PHUw z_nmrVAA4%f_V>+px9`bwI|qDyt2|4H+l5Tl`|RvUYj;}k^=&V0cR7_)^b8O5((mWv zosBxfem-|F;;&1ZwLPspn!HAnx70Y7(1u}ePGV2Z**?CNhL104)}yN3@bNtjt$gX@ zJKI0lFUNGh%KtAuzMu_U^Y9z+@ip4d#o5n;Yl0I+@KEtB_xt$3H#@j7$j2AdeSELh zI0yWDYdouFtM=pI*Jk!3?&eHi*uS?*{Cn*_VxJiPJq_G13j6okv%xzbWqji29^w}t zU%TMuSw246M$XB8F!AvvdBDl+DsOxLJ@_WE*Fxr`Y_v7H^b(tQKzXv0HLU@hnjhFW4dBGodFznA;DgL}5{ygwS z_vf`YNenQ4q8mO)HQo_$~ede;#Yj zd;S{yc}73~R{VKZ=Ie|4^R_My`}49d;m_MVgcvUazPw-*JZ~KOi0;ed`X;XXeRqqY^L)W?AdSP=NeM=&Gv$aV^e>H|88znf~WF^xYWQ6@u@i` zQ^HH>0sM8@B74M!2-M)O)9@EdUl&FC_5%L87nxJTXLqr_;j{aT`ZlD>H_)%>^ZMnv zi@xKdJFjm#Petd`d8+8T@YH@E9czu};&<3bM||5zzRxId_)`0CzVy-k)%fUwVpq@R zH{hddvS&x+`k(R9{pDo`d~_Eo>$zmR13tR*%Z^5uJEzZveHQl7dE3wS(fM_MKoR<- z;iL1Rw|LI=(V=@>z(*I9`?^I7yn%QCiEG@ zKc}J74D!#lPqyHn!)6=s&ozmEu6+VJ&oT6*bNq8j_~&##hV=J5{~Y~|MQNo4w&JalfDl4=6vk~zPWn4Rc$V@F4eBK!u$Rk z{BwIQ;-6b{G5=hPQ=RzIKli17?o0n%c%Rp-m{d4g7Fa2|lzxF+NU;5|1^v@02 zgZG8^+kNSu`@HKIU)(>p=L`DhHvg6Q=k$L54f*Hxd{O`08{RMda|_e|tbcBR9=`O? zUDS8@f6+g87Ji@WpBn`Zf9aq5o7h8lzOO6iOaEN|9=b36bD!ToXO{hQCia<|*>4`j zzVjjMKOf2&gJG?wh_Pav)%u8Y2C{#aJyalSHqmFdJ=v!xT4jWv=q zQ}jkzyG>)?-=8>p@`Oo+zGITJ4XJJNY#ZkTa(%#%=v>v z#x}KPn96yYeF)*)b2kH*n}E-a!086yHIse$>`yj_^9nm@$2vp>U92}reKzWl^ZE2O z(N3K$w3Vva?B(R1>Smv?oUhzO zUt~OG%!$;OF;4}usL!5PiC93Ai7#_NUf8dwJd6wn$cc7n)mAWiiiru1FJtp?Be)jF8weAnk?sJyC zHn^RdAm6=44n*=~<#E30UWv`8*PT-lSylyPL@Gokct{%Tzf> zX!7~N<7nt6OJa28XZmAkHzr->+2^vKk{G2nXxb8Rw_CZkvJYp@1hr>(cTC_-;(_*Q zF}@D!7aDE8F}!DA@_tA=+rTr8z5|1)ZG!vMlg2sV^pUe3Jn*|_hkWDj>zh&v9DS@C zgy^^Mi0EW@ZsD)S_-C-s+xaVCOKiU)+H~f}1|}y&`%kdv`J~gGcW`1y-m#q8ybq?j z^Nx;oSNk&d5@*})x`*%MAJI~8Wnc1v4EJewx;kCDUbUBwQq{%8{w#=!;jD(GrvUug zMt^+TDn|@$vYzEHrtJIl!+2gS-$H+f7)Ok9=gBwZBJewDubX&-6X@^CA$HdcExNLt zSZ)pAU=e2qE#QphO#Z%wikP09KajEZkFE1kW9zu+*a*)tcx*u#n|d}r&h4(ft~8o8 z?_}bH$@nan9^W4Zk59h+OUK8)sqpv;&Kh6$m>_4;H29whK4^v?M!^?{ATNfJ=QMt= z(C>DU=NEd80Xl<5Qsr(%r!izhC!Qy(!7BzJ5EoBsrTw&IU_haj*qk zx)=JEcWFB(1k)A_58b!S{F3bZY5q7av<;c?@srw={nv0_@28rc2d(RsA%PgysbX2D ziqnP!;`4_F5{N(EagEyhHSlu#6>3k$H{t_caLlqZ|4bS&YE*Z}^#`u5y*^WQymi#) z4w1*_t#80PypNPU-mv{@zpH#M62Zbx_ZAAn#+dHcABC*PR+cl0(=zNwJe6S zTr-ic&`QtK+WdFpY^_hy_mRZlb8x1mn{zCq*fTICsy4CrE5lm5zotTC65OFAX!!`a zagOx8c&`Ru?U}AZcR}|>_l%w=XY-vo(ASmCPnG{h3uZ4h&vRyQzW5z2Sfttg6=O%W z9{xFP?$LselVhxA8FBm4$vad4-!3BF$Ji0mj{KZlNI3<;&Yx&gY( zo*1J-$0n=LmLF?dYLR!RzC}*Vp~T>1&tKV(wfQ}?>&;2j`AIjjvBKoAm1d~QBXXUR z7%U_Hh8jhLpxoLyhpz6pKBH;FlFTS|OXjG|IY-#9P@vUbUtt@!_maftHE zey@UcwCNg~kIYWH+BH@STG-2$^{@)oWST0sUrub!f63SLT`%BT&LDcnB?j{*sy%tB zqXWJ0_8R7_0sbOmkh%KA9LqWJIL?X3x1DBgPIHz4q-v9~^_W#iVy8$RsvY2BL40gr z6gV!pcTnONATv)gzlT38Zasm%BRG4U^F1F(%#L|(;6%PIaI~JiCrRXyMRp{20UwLZ z%VlcnxiCHO%#gr`Uz3<0No_xQukT685AA*|G`;Je&?T&HC*urQ7C-b@5&us9ElaKI zELMxZd{w?Kdw#g%hmQ6@Xu9Mooc)S@Z93O_*%Udyl+^Z3o}C(Vd#g3a9V}l(Jk0!8 zu2bo1Nm)U|bt=YvrtD7bj5UGyAO%Bvt+R;{V@u?l8&0qPPjyCV9oMgau=aYbE`O7` z!M*93#<)#SFN@zKeSQ!eXt9+9)0pQji`~Cc2(-k`%<>PibikGT{+sacDo%}oHpE#P%I*EB=u`9{p z7FQA^4r7UBOs6A@ykU|DF#DTHYp0o${2i0DP>X5QRmOMnjl6GV%pF&0q0UM9At&Xn zV|F@PAF-xV|2!-4KX8W|Qk#{g0L+1(V z`j9@C{lpq-Su$!~5qP96ZRLD-a@%U&m2I$wygw<@>$B8oTMj&;Z4un=rc73jDJVF0 za{7&}AG|WN_4pOcHE{+67bP!;6WJ)bMm~GgJ_Vn8!S7GN^;6)y%2R=l!2e?}tJV)W zvm^Yt3!FFj?%U-_Yty39N#T!O_d!?GlOfmN%@20L@4Fu2*=SYS1V8QX&-ICVe~y7~ zAJG5f*aRmS`$^8t$r(D%#I~aU+Pe?mMCc@o{nWmjTaEUFu1*9Ob;w2=37hDfJf~X8go1dA?4Y|8tX;P`G>^_es7s^!54g*9A+L zCj~8wmzB897XM4&lcjuFNg>zjU3E7yXOm^gvXZZIFEN8!<^A2^Z-2`5cadoafSU$B z$ASaye*!nyY$kYE|7p!WP16DvdH%8$+75pgCHLE`p~8PE3R&*cwpfULAvow=tZi}g zlRnR*PxC*yMaK`}{RT`6_vHtR{v$tFeApc_VgVPI`+AFGI(}cA@%mHq&Xn!5Kr_HV zkM&!)583mdD(I#Sa>0ePp%EV0kr>!V{|nRdLxrmM7xU7zkc`*e_xD3T#Kh07C<6yK5{Gz#XjbdLgIIF-MD~95H=!26Da4 z@=9Kjfn0CW7o+{z#2Q{q-0>b_u}C>1)-d+69{1bFJ1M^i-Xi_*^IZ7WF7!SlhPmhq zlJ7%u!WC1W#H26cTg&KS^T-|SDc7vUPG~~*=?Fg)x$V@F?8R}(e*0(3OKwN@+ti82 zJaHEG@!uL+1W#P~zuA9{-LdJmmA~Jn*?N#M^IyjXui$+#?}~X>EVw;Vo%He!c^R;M z*0;42x)6MKk92=3_P5Mq{~Sgo1@2-FjX9F}lJDzHYOC;CLoevKLz~}P;q7&5$c(#&DON9E*2`rc3$3^WOCpZOdBDUKd{dSg;v76aHu?k8u&W>HK$h zuse=?;hz&9*3ZF@>~w5N4P0{D-GM_kVyBDV{tog|yFAhIjtWYA_dz(Y zx!^!j;NUls)<))Rv(V~SDO|u&%VZU{-Qq zFXao(w}v$EPymm0w|@lNr|=FNJ$)@FrV?r)lIO8qCwkB|BAkngOT5JWa|8PrH)(n`uw_Wx&JaHH^bIu%vAzy42FTgP~?xy zfykd4bTiX*ZNC57#6LTiGA1A8WlS=c*^Ei>uZ?FJ!1~;=EG9>3cr0riG8UPa>_M{B z#d~8cNAYnk0`Jbx0b;wLENw!TN_p~zxpW#}EVD*3rz2I4HAkD@I6X1AGOZ*?-Zecp z$T8;F2Aqnq&lf>Iv(Xg-INFWzO(d^?)Ej=6p}!jsTqQrkadW($m*h&y#luVD`}315cf1tI zi7+ve6G8GtguinJ;`r`(Bu~jCeBUn&>eptyUwg;}83&9Ld|jMlu+UySF(vT9CGF1G z;}~4en_8Sp`ga^y-<_^aiNBxy%9`C1@7hhSm3Uugnl^t;oZTO{Br$j#7#ydqxbnN( zj{|dQ>m>Efh`?YnFc>@*!V8}TgYdfyz5fD($-v-*Il&cAxiJ469muJ;Cs*m|KkdmX?R7-;=4;JnD(9AI!9 zzvSS0PT=!OZvk6%oY9~hWFX^tma!8PhVs_l0Rq?yj;#Kra`AM(5cihiSg`a zJg+kzu_J{4K}&jW)5$&~w`rYYGq{}weZ=Gp8P8KWq zc4aJQ@f@F#f2B_6HEHmQm_hkhZt)KAm=ECN!efj+4CXOX&KQdY`jI?9ostKL@^Rz= z5}0-~mZIa5}M?&#~S)Y=FQOkzTiQk}2@IAwSx%dZo zW~pm%q&=!Cm+`DGhIKA{jY^BkOH01|-h({T?O*Io8{_k!`v`8^pQ|Td6FF{}vn-@O1^(MxUiEGq{ru9Z0!aQ(C*BE6F&*c5OH} zsBY6T4)36GY>;|c1CVjBU_;yCe$18YWohjV8)}@`DgLx-b+YAsHUB={HY^FQ-2kt} zJ{Z&4NR=fD03dbY`|J*zZjAbq@l8XtO?qTY3 zQ_eD$HMempr~3n0J5FlLmgm#QSL;3tVm{Pi1IY7n^8DKI)$^K*Leka|>~?_-di%X% zpA=%h5B8CWKgENeXjV^A-b(aMpEcSp{K;p1!{M2n6r6>ha`y3}ycc-aWQ~znA#27o~zjtv2&uq%X9rAl2rM?K9bdr*oa=2HAt_E9;Bxei(;zyij4lm=>0k0N7BleBp*{b`Iu~!pMczv zJ}u+<0ep@Jnb&pry9=+ze};d^j@^P!sHAA}ydXZh%47J`QlKOKTb?7&N{X2W@l6)I zjnChd;%_jexLR4m{RmyKX!7I16l~K9o_jRwu30Bbkyq}#ZnM)>w6i?7LW}mxItY2T zHWwd^4al|l_{#Yndv>qxf1woN{W}-Q$0%)=1EMBiW`gV*rFb* zrt-FetJ2qPJDfc|pZ3jn;iHqWNIi0WpULLO*O7pq!{^8MD|jPtlYCn`?g)-t#Lsn! z`CKDBUFLHscEF(dToaG|`FZA3o5=d|p!r0G|JnI08)S17qZ^3LF$vH`JYh~=Wh(@Pn9WA+jObPo=2EJzl zz}niE!{5*48sCVkexWr~|1xV1>R*vIyNNcS$CJl~HDgyq>vqtR zh(59!ScmPPux~)@pu5Qd-^84i0+(6jvu~mgFYxSK9ps*Vd#BbBz}_iEmzXt32bp}1 z4zh|d8ttyp+YQ?}QqGv;!FG<67yCxq|A0AOZMXW5Ycc*0%BSa|69={>5Niaw)O}f+ zrRQL8-~7?guD~RX+=87QioIF2i5C1)Iy|l|3Hr^K`4>sPY%M;}lwkA60H+V&FTyi- z!>=U<%5JUMvATS5?s1;oT|TkDtp)hXq%Db!A?Gw@T|v%giodr3S<#40@YD9J^j(f) z<_WG!&EtP-ArW-$iLfb z3g(a7?#N$c3Mv(2S1Q^@jyQV;|7B6iX&R*x3ho)5Sdjjv<1UK|?it!UeWAr2dKa7N zJ@oCLlCS1H;?^q8>Syr#hBm}=bNa6w&qk?}A5L#}BvbAbvGa!0*4vpw{BJvw{JWnp z1z#!ALa#0}1^=zl6zo`K3T}VQ6x{bcQ?O>JI@yW;{^#t=c@7?}mowP{zsnrz|Aewe z9ls-2w&(ygiNs^Y#*uwFZ!fc<3#faaOl)?1w`00r>S|xs{M09=5&qxdcYf|n-&UiH z#IF>XY@?q?m|F{NEdyQ|<99fs=xf~pYhLa9MS07Cof`X!qxM~E-lNFq4P$pWmUVHB zOn!#v%a2;~L^dqroqT@~fAMnOeT=U-Lzz5;GEdC7uD}j#<_Wy>PgwJmGJ7bsK0Lb!olDlb?R?XS&D8`y?5ULfVZa6b ztk`VxA9;w_vc%;PJ#*td3cfn+p?u@1EuUVqz zvp@8$PQLAWUj?5SxAQ5nIV30T2c;^si|10Og*e3B&&0QO4pn=*UW{w)dXiYLw`k~s zwQqIZP3-^gs?Z%7!`B^tpXbZnq50{<*WK_;QRv1i9uKzNIx=-$!nNz_O(R`d=(2af zv+n0teyB7TJv4FS>C|;TlilyjaOe5BKWZN5YMOoRx+d1k@zMMG~w^w{mma%uE2Iy(C}=LE9#opbS#6q-{XkH4}_V zt2NVZ7b4ph1fxI~YrDH#tTxF20dHhboA3K`W`Yqfb#LANey{ywUNdvfbNxJ@=kt8- zPhYUGItZ`3swScA0X}^NPUrCgr{^5>-jkP*BMJXwmFMn0_Z&J-1D|`U+K|dvTyN&?Q^tF)svKCKLf3+db+eLk8kNlB#>Gxd9 zoa(qQC`nDg%~unbe$D!XvW3jKsbGj7(tn&?dY^NmMy zuUx-HWeu{F(Y{>MKS1MDofPaRf22TM0 zgbkamvR3DTen5dJFg5FP8;$Qraq$LVYE`a?@Cu{Xl&b7j(g zO+;H%`ygAu4kf8-PUdlr13(2U!om1lguj4xjrtv1pKtS zva1H?DdQoxiNNjS(&Kh$b$(+R(DMcOO?Jrb)`kh+9P2_&;aa$FW zGOhO*_m+Uy7W}|Yw>hde;kVVwI9&Q(neWUmn6KkgJM^j@dexLw&z;M$&iT-*cIZ_+ zd!ssy3kq$CT>E2)&vQy=sSEwLz~+pjRIBSr#LH=zO1UQ>srt>8Ng^ z4&{?iKgoag%W1~Ei7`JBxWSJ+hT)jpvuYGqAV;`Mnj|Q;x5O29D_Ve`rrPwC8O4oaz^u z|ATza)x@U9u-E4^?!JPXoqGyy_MB&bCO~@6a6I-{a z?x7#i`VX}>v6=P4d&n8S>nH17_FXZ}jcu0ZT|c?kyE8?pF6MVOzl+k9>bD|$ zIn4-td5XJ5R7aj&H8VbQ@Fei3@$z~V;O7}*VdzQPIIfyKFL7_& z@tqSqecaJ5|6kr6{vY#vlXaozB&O0{+htf4S{asGiic`XL ztq9mv%^CI)nEh&a1ZKC+3B&9mV3srIzXxWw8b2Fm4@F>>W2~;2H0MK@P2#@}v)jWk zd+9#_Gs><)_ol<_51#_sf69FmkKvOJT`Q7%mXK3~&YgX()UUOMu?Csk-Z zZDI@2c_!LPWFHd`Gs?3ZJy{`f8Y`7imTs@aHfq7n?+z^P{U&qIi zW^G01j{NuTP56@{8;V?bW+A>DOC2H3Cg1VS?4WmZSbo&?ft|LX_HG$9YcNU)LmH+%2!OmM(&Z;O!t>Q%y};ND+Y<-lh{t-y&5QQ$Ct81y>g2E zRVDDk+VXzsUubj2NOYczQO1=*dykG+&J}KrXFrYB;~h>dK_|?3HE6iWa(`(9a-&AM z3^m1*lDo~C{Vhj-J>%2wbi{Y_#moAYzS=m;hW0gvc?d7s5NGn*$K4$2MTcoN-(Skv zK>P`D9d#M~a;CP?ZoTx&*lp^Sr6$I%@?QABFEFkX#L0~UhH@sh!o!cIUHNb2yA%Fu zuEm5&f5Kb63v9cG7lwLf6Ze)^7{W#rV!s7D(Y*;Qh^O*>+C7v#V}Da2@n#OABc#Lo zwq&2gmVAeP`=NtX(82CGVwaA*Pl(sw*Yf^d#&-%INzoZz;9IZ%j|o2Uc^6%N-{7;q zOZ17}Q-A;cME$+Q&FTM7%lank>+7b?*CXvo42OyTC;5MAY|}>hULCCWJF8Fb#n#)H zo$fozZ}BVtm!ajK8R2`8{}CI0lC;x%o$BwNsrdDJvqt)UHMIPXM)^92{-2hj&vh>2 zNIkZ#H1(F}?*8S__fMqwo*nvscB*eT|2GW6@; zH&yS;Mqh$MVmIC~v~JXB{e2ei#ZMsPgJ|0$L*LIG?b{Oh-)&UFYq|Fd-=?8uo*C_H z;Qtf1(grm2(whD#-6wIf7iK1HHRHRAZ_qQe(H6tLko)3M%=_3QN%O(iJ@_m&s0~(! zx?#J!x}qO?=qq7wIKW@?tFC@C-$Ea>SoWsW18+?1A^FYRpA}q_HsxFL@xFVjO5C4; zxIZIt;s);XRQ0E(fKd)Zqq_6{=5GeU2I#O<2FXXm(s)`~dI8w=mR2N`k|zJ#mInzxHM4F9-m znr(HQJt}-N^J$3Y9ya{Z87F=PH@z?Ye6Vf~<18djv4B`@;sF`|r`>ZsurJ{-@ds_) z?8i%aeNqe|Z8Uzw*wMJNcqJrtv^Vc768y~VACa&Pk_>gO# z$=6e+gj_%6`?|31Hkha^e!oxiUtFk!p#4Y6<3@Q$hZcsqS2{we%;5Vd z-fJ;Ylp~HGd|JnTt6fQMeC%7_wT$q#KH%smk7oU*aIZ4s&E(G8G3oGL?6KFO{}*m` zgx=t+m3za=nTN#MH_*3@zOydPC*>paxm1=peeSaK`FY9;?Ub`I1Rr$_Jz)8iErH|M zB6htsu=wI*#eQI@q0<$-FAHx!B|g%`p)NcyDU@m`=O5 zXC<~9);$_JBy-Xcuzh;#j!Y{CH z<@T^2igOgcVywI1m#Yulo5UWiwKliC%N`x8=yLFT#0UsqDEhU=1u4z9^_YAm=Xnoa z3T^J0Wc1%lUtfQem@Mew+N&Q595*ZHSAzEfD;1tvzArkJ&_%}iPD+dQxIsC8fp3XJ zIXTl28Uvh(b1wZOYyUcBw&Dk%zr%(jvf|Kpn+D%a4Zj;Zq~1H&EH648q5CN#bCmIT zYJXwwVXr`k^tIc|xVk5W@!ySJKzzG4@hn@lI9rwe8LMQE8ZA!I85G6BD|wYbkg<1j zr}F;wTJ!gYYu^3qtYRV()=v+1Y&YSszeBzmyL-RuqR7OUu6 zeAAh82-rwl`kj2V^%}60c3uaD($>F6+PXjt==W($e0a)P8(?yHNe(^%tce9#LwG)E zuZa2d<$AvA^gFJyHrt?wcFxkd?19F6t?6Tb6~^mvtkFr<{|)*U z+#Xz~bwdX*mVR`4q4^uS_?vl6SaqZz@O|=C=;$!mCWj-e2=Q`N$P(N3x_enk`QeS*b^l`JV9%Qb4%(aiX zp51K-tj3q-9P>%|^PHnMyYA``TZ;InD`O5@GnDXr65hY<=u?_bpIqj>qr7rf2KQ>Klf(Y;weX6o@U70cD(n|^nD@C!3HF55DP`yI(|elv4EDQ2 z?{}{ipZhkcH#i@KyQjp@BVo*5tJF_4BoG2*AVLze}81<#m8e8c@FSBdA+ghY^T|W?l{2yOgxKE%1f13l-;Gq zIy2(pJaIq4-Ut3jd_vccH!TtT5%_-}y@v40E%@~;2mjrpN&}7f?v$4mgc|9)gmo!N zGkFWa!QNphmf&NtK6kO*I|to_;IE50T{W@+`kUUSzM~{$kar?l3!f*0cs_{tgZn`C zgzOF3BeHicu;&H}vxE2jDeQ+L`GI5~xfqL!^^mbh+1Kb>`dR+xa6f-!ZwoJ?pWC#f zMPs)@2XP8`^iURm)3zM$1$lP8(*h58ekVNZo?%5E|I^6w;KCS+(SKB-cEV9J1L-o!(;gT5gH}*PR^Km zBlI^@bg7PqTydoVo9Jb-4s6#{&F5ZH8fe&3sQWYvPv^d43%UYx5dLU!mXu$T6ezzV zDIj@(mf4F#h0?#>6jIP-ZI~QwO4n47hOX3e&vYXhy z8e_7?dG7{y@ZWU0;q%@2Ti?l?rA+%s#sCbWQj}@PRuaQgdS*{c=^65Eoc(6Tlz3nu zxLe71oGNi#2D1lVcJZ>G;|~<2BxcnZ%U1ASY@1IoAERs8tiNATObnv2nfE?)P?cH0 zK0}EM&Vv^LvEl0Te*z!V z`&nynJh4TM@^s?g1k6WFTVeJsWBtz=b(!?#!Vy`z9J}U=$y;0C)80YH@O5+y3n?pW zKA&$XkBt0sp(8^tdnaXY+L`0!~cV|NB?v7qs)DBgNX$!&Gv?Kbj#%0k8+HtIeHDF+j^H4AyNT3UOzPwvWwU#y>d!EjNZ-ar6K3{Npx#IRB(@`GemW zSX^PAA6PYN{(o-%^!t(d)7Bc=`Y+9&abB8#WNaUszl=XJ|8KoFkaF4He7aD})c1bo zEy-Jr>`fil*&A~HI>$MxCLkxw$A-6yv%^VVF=(-_Pj|~1DEk7s=K+^1z-6J+9@`=7 zD$bf9{ECO~3D`j5qGP>HCgpHDzu|#>V$*$^J#(Htqo}c7waQav;O^}LMYX63Hh$SB zi~*VNh>?6%cSh~4uG^7iS;>9PS=a~mxmHwVahKI{M}ei&HKwYNJDyuqLr`*X>F}h@ zZs_uWYWAqe!Y=T>9Q@0W@#=Fk>2r(uw7G#Zm*xguRe-0TG`AS$bIoVWE%OuRCSw?! z+t~l)+(f+4*spq?bV9|DX=J(D)LZ_C{5mKPT)>O z_bT$(u4j9s~z+a*&vc7~%n&h)~vYvKBoy)aL6WezK4LH@gO9u}#)Rk@#l&5Ls*u@6Scz zn$N;3FJNwQ5gBkHvdc@vPl_y%KSUObK}KmpUOvQpJ=EWE!PuLju-YN}fw6|ieg$!@AC0NfWbTo;N`-g-(Rn9E=AHc+^Nt%LgT{Z# zyiLqce8dmn3*u(plZma8vEdiFNXGQ`!hb^Fuae&h9l24pzYP!gHF&@T#Su_7M|FIR zquMlgjMuhY@l60my&mOU34T#Q?DnxrYw0z_NOe_4`Bn_mymKZysw-y`Z+UNGy6@hE zG6nyjEXQ1DhGVYhb$n>6;jt#`qvW@SEaU5C62(I zY?eDq$Pve#;ZAt@uidBwB;Mg>CBY*7_2CD!hCc9X^biBFxCNfw&G#7S`y$4g#b+#Y zuDmqoIm~&E=a0;JC39YRY0gIH9Ok@|InROLTzT7_RV%oIa11_xe~WW<@Q^lX;78 zm%yM&O|xn*AFL~Y-+f-^Z{wzw z2D+liqYAE>C@Xu;TwEHk+)x^rz#7cw)AesvM<3)~vjp@{<(ZS4wcJ?WU6e~yP2Su% zhwaXL4e9r5FIdNsC-leKLF?;@`L^8kG3mMHgVtO_v~%UXvFR&$zfy^Eo{v>*m8=Us z!kp#GdE=oYB-lh5r*e_Xo6Mcnz7bqj5WWs+y%6e+7Wwn(`xJ%Aa~jBOE&s~{lMVBhz$W-XZFDsaNtn9viLN5&oj3|v(XzY>CE#{o1Ezdwlhy9+iKB&2Oq~TpS>JxRsuP|U-a>} z)~r7|&E>EyLHAl#v-arw*v-;t$4`D%`=Wx-n1+pk;_Pdi&G4p;V_vXkiS48r-a$24 zS`TG=wP&&A?VI7f&-2ZWC_b+@m)S&ieEqQ^zsQF&PN{3dpK=ENHhIa);Z%HzzR%|# zgNhzFEx41MBmGa^3K zlT-GDg>R9|J^G$7>3hQcZd-Of=+O8Y?E1~x#>PTNNxKtaXoPQg8LEV{w#S-@* zcz+4!4`uo$!Yc{P|CoXegnF{KTks#ce9!JXg%8v#z#e)qRL(D8J%x@8>>Ku(a{f~b zxwB!PN{;qV&bcdgcgd@3+fiuCVT^X>E;#`zB6vR^K2Gp{TTNP72|6$IXyjyQv`z%C zCuE0ZbK$WbsJvq8OZX^@uG-^T-R~h+-;?YaPgd7<5Bd74$Gv3TrN%owCll58X%O>=U?a=K$a(G+8L!oEQ*sZ@$T;5Wna=ssYdpJGSTkffv z)lE)rLrtrBWzt;Rpg(}vq~5^yWjJ;B;s=z9{`D9*kdci371?76{~PIJo#2NtiZ;!` zIU;{NT4<}VI|800N1zE>xD=g?o7mSMd2^|p|<8*janb-H2R|a#s$ejLQwR*EX zYdXMhh4nPMD&QRcS9Y`7$Io4}KNWE6PX#W5PbVRe*!caO+h z5uHmMZN<~pe?{hwW1NFBw~Q@rTA}SJ#`YjO9PPj)UFRb5wiA7eoWsl|q%n@qE1!vs zBl1}gd#Q!?$whuiKC95>>KI+FZbJ5q<A0Dht2(OhvJf z53gGK4zj0-n>{i{RlReNrv=kywEAVZKBR+kML7qFRmpRCs7o}8Z!GGeH6RczX z@f}R;LGN~){VDRa%CF|q(zx4oz)7pkW!?^5b!Fl1EmcFc3 z8g*KOT`;W6-8`tveg9_cbLcE*(AIH7w8uP2S^V3{1-4B!#`G@Q+Pq#%PlT@B$C)^n z{qaKQWbZE1Ve34JRqjmmHQm0VgFNw@yVNw_D($efi~r~z5)+{34{9%=r;hjBJc|5# z6R_=I(-8f*LQJ@Vt|6{R@IhF{0g+}9pEt&+TCv)WltTL zbMz5+RY$62?~+%|N|JT#tJbB)1osZ)(Ax%XJDOHrHS3rm%`#vZ<#~6?!`2zlrYd*U ztPbSP5cTt@f83DbdF3A-wtmlDJ?j{4%ouyjI+Jq8t{h%QeobeJF{R{P!>An5Gau)! ziEYo^zvLMF;<0N}(vPh-lpR~2l0F8w&H@)gMk{UJcGOy4J!|P${9C7PwEn@6PXFoj z-)vnvK5RRy=6zmrsy%g0N?AYh=kKuD4bJ2D`aFJb?S}`DdV{tzXv3lo&l;m1Myi;2$|dU^S%u&=5GC7y_pYz)6S2lx_O_ z1y21soKkc+=`j3y5PX#pD+hI{u`U|-AM$Gmx0Fy@U;*;)@|7Qz8^duHUy6)U#sA9qu?^@G97#t zf6snnijK=25nTRojS}4s_Nn0V?clPkQ49FGZO9tk7Nty=n2n+Mx8xH3-Deeewg8uH zL*V(n%kWR&IoS75cuKubf~V9M{2PR4Ke2Nm=5Q_hX}~bT69P|u?p`}f@Z?tTBoDY> z08cI&Q=F+r!W)dFH)UP}?5E#7^X(-U*iRR(O-;YRe(GPJnl5yTGqv;rd*HU}8C8PM zFPO=-WKy2_OR%~fSl!0>h}qX+^$4(&?YEhD|Wlu8ywoigr9`B_7OyDEq zz;3(fIUQc9I=nKBBRpx3Kcd4cm9}mh`#T+8sTl&VRObbQwS>9koIuX{BzRo_UP3Eo z0;dbe4;jX2j~m#Ezs4T?*|Wf9!Q;1eJRadCrs@(N?*xzk5+5yI-eke< z6oWh-i_Ry`FFa=URSp}naitbrZ>{gj_NK1d5{RiJHFKnwBU3Qu^ zk@ajy^jd@1VuRRX^Wp7-tO;v%{xoY+OKv+^lM>b>N7m%2D4X0Nft}miJ4y8qj8y`A zBJdY@>;65!{>*S>#LM762;-5lFK%x!rd@)49hj@d!G7it*njO3?B@f^dBD^OY)gP~F|aT41M@KKjRN~&JRi<`jdCW+ zn}NLrpXcG+jWrCq63tyFQP6cGxu3&+(2^U!yX-cbh7UpU9Ax$@`OYV=2C%*=&9Qdp z73dA|la)Au<;c++MV7ueuMFcBBKD0Cu>aU2Z-HlQFv8mhr7ZcO3f*hadkjUp#YcN3YvXJZU@Q8BpW&n6>uH zVsg*aZL$jN;(*6X@D=gE<9GxfgR!`Az(e}fZQ1niL5~bg@$@h^3;p`%DAQM=N9EqC zfE_C32Nr_P{FN538@Fdu2A`$G?k~|-k|T7N*%2_U zAC*3g*xBQTk)Fj@E7KbB4Pl%|8f$AG3K>Q_8*0}-)RUw7M|93Uh##_D{4w8|sRZ6% zYVfDuRm7A?>?pKd85FNe|M# zM{nP2DSp*eHMD&T_9{1RFO{~rKdI?AIR_uEey<8XNRQ)!PYa3AE~YyVPj)oLELm~YDVI&&S>x~X<+^Hc4Uh-D)_jj{LHDqYH%S>V#dXcGv z5~Gg~K@9ur48Pks3*z8S`}p0*S(ABFp)KE_cwUS_E`pwILOwi)4|o>m+L-s}9387U zwq$Y^=0cChxL0(DEq89_J}dfox9B}K;tRdfwSrvIMhkwB9(8h^H4EB*if5j8U|G+tE9@ORfbU>u*hNvW`=t8AmkZ_?ERL;$!_7 z?^h-m?1dF6W!ytJUFJ17m#Y}dT=L|dg2$A4gK|1{heh|}V_nEQsXs?C+GSoVc)kL? zhxk!0gO)Et{y6-*$sMu}`L5D!Z3c5tB@eEwD`!LLN7nM~aIAtn7k}ap);ZyOOW=Qt z;e(6dhi`&UzL9vkFrPfQ=I_93^e_EK%6%9c*bjgF7UP!tW8Xn06defurqlMn;m8v@ zy8_xwTtKOu1@aw^0UjB#jV0^xN7?ZF&u#=K!8NHjfRFM%bf!Wto`2VoCwCToNtX*0 z?u8nKp8do6w0o&;Cv~&0`ki%v+^KV@KVVQj8#&J}uOl&BoD-Mo>3vd1`WzZh*uV6j zbzAl2bAAVT;9cfC7!&yjGVn&`Tz~4La~8W2b3Rh#o;gc=yyZP}3lh`0xQ^f1R~^&G zDr3BWPGRGl;klx7-m2X@GQB)fZ%EnTYms@K01TAJJg4~iWzSvMcfagQTX_5lA)nkilEpbGGper&4Ze1YfW>_~^_ScFb)QFiQp zs{&7<>&NHF-Ni=mF$%nl2JeP}r^AuYG=D#`SqR*_z*-FA-@D+S_$u%JNPH);QqZ96 zO!C)6D@oDxu}4!XpNDRsFGmI)2|kUA#Qdb914wE64)AYXkm=P9EDY`Vr{a(a|AQ~y zYHNP}?!v&nHzcp4;uHI3>)C~&dVJCkJa6*7@P^4JWwTV`JH*R^j{uT)Lw z)*X3L{&warF-Te1WIn0yXka1zfAtgkFQ)(5#Jr8EEDT)ty2&^8^$*AKNo|dbw1t6b ztN%@69f<{z@wF0bTRe;yT;`^1P<$JayH*k>b!kqNm2zt2-DAwG9ZCy108Yewd?r0Xd@LhAGHgqVuu@?*rfOfi?(Fx|Mu!B0uiL zeiAQZcy(duW8?2#7}^ng@5x(2x`QN}MZn+Gn7$L7BFi8Hn4yyv_vmJcSaTSsmN=dXE%@*{To(kY}J9!`^Ue$cNz1az_m8>cZ zlu%}u!9t9a*)xwZO^@oIVLwT%C;H86cba_Crbe6T?CH_$=M>^v!AopmnqBVx`z^NT z{dQueSp()1S^@7Px=`X(^S;GCEN0)@=%W{3cj>DqN3p#I{=LEaiVjooy#Cvc{_<}t z{n(!MxZ&>cg*GL+*z&=;&%Wz?8GUaqP9AX_dM>fk{Y!s&>C6{CzXAMyfHUIE@F-_f zRFuW5ML8S4c4gU92}#9xhqyV?Ae>+_3&M>cY?Qx?^SyzdfWM4 zz4sb#7vF34UUjgK@4NP1P{NBa~8y_)_qb%R#_icQ(elaS2E6?7+jzIjr z^Sgyg;?LGcm$lre?wpypt{xe51W=XEpd_%HF^u2q4!7gG>r2lEW z|1NpB9vCYNc zEF+8~ER6e8`(Io>RquO%)MnxjBYhv_oEn__|771IF6(=xV)80{viKD8;p|N0en78> zPZOVZK3#nJ_#}|;B|{zN*-5_Q!CVaeOZVx#li-l}x9jpDc+lgF#hN8X=|yq{#KvvOxp-bkgv0&w$I~T01cyz%^?p59QE#>_t-CxfXw7_Rdzlvf8KP-CR z;=}is`c}q;`#$xn|Czq;M5k56JWcpslz?NBH);Yfn8;c`$=wcX_& HjWA8{^Vf zpUkL2$D2o7P~IAF@5Sq5(^uV~RBa-zfp`nw9&%=mg$Kz(f3^~yNb(OMmsJ)-=K9~> zU*2E2zv|EK@1F&p@cDA~%AEkRFT@Uq!%JQaYwyWIfna-{-19m1_L_|3TK1lYm~5}A zqcU{5#Y0*mF(yZ|LB)BZF9rTa+tMpy)zu0%(C-?nr{Oihxz`S?} z%qIZzP2g%A-|bn^>7MCPz<=Mz;D2xk{154CfRb%uxa?`xswuKo72LJpWgQMh)?Z2i%?{4+>ra|Zi@|N7*< zJRN_bua3{t*K5!L+l~VNgjR>&2|iB5E-h#FQ`}p)nNK1(se)&d?@dTA;J?A-$h(T~ z=vYVIq{8_0g|pT4r)Ec`_ra_7)kKxWmtQjrpEw`)wVXex$(#^$&jiul5fveV+d3KodR*{_*6mcsc_AI)OWDP;jrBUdZn#)?ggp!&rmK z!xGXrI}GVBJEGGQ#;^v7H(SJqlY8VovKDopu@=G)3*P-z#=^S%&5VUL`aEMnPw=Vw zs&|LzNhQ|e_3_wFPZZ{rbGOMz_EIZ$xDITPv(S?~H^UJ~L8sD#uj54G5&Sb0(eaKD zpR)~oi|?WbnaITcGiM@q-n`>(iv#(U@6-9^KRI2y;mtDxEnChU{>7W*RNZnm>mT3j z!$RYt{L53?R?0JI27(LYL_Z|;uT=t5k5~OPgziUj zebgF92T#K9%beaqo;FiXertS-j%klo35oyRH_)$(zFPDRGUpC#zOCFd^UatINhv&& zx;@D2-T0?y1?URZ(cY9_Du>0lauZ|BR!2Ea%4qV)lT-MY$|9L}?{H*x)r=qdXs3V7 zFdMx27K!DjPvS5)Y-#j?Zu>y^w_a-CI5qMO)_lA5UG9R5$>zjwFS>fyiKr6z5gb}n++$e)dl zc)Ll>%iW#XM?VvzWCK&pvP0uT^P{o8POX@`L(AD z0~zRv>cRQ9k#qL`5Ls^m`8l()efaGs!U%HhoZgRQsUx=qT3qi{QW50YuLq0JeGiru(eP;0wP~Uz_UtF8MN^ZOig? zudp_oq8)+8Z-`F^KH$iaJv_5v6K`A_ekQha&E}|XD8x6QxVXg3T?KYkncBu(wR+hr zq+GH`^zjYD$Vou1mmur6U(vXqa73Gm4omVrtiOSLS>ULwoy}8@y?&JEgzP6|w~R$$ z9iP}E@>Uvr1Eu86Wj~0on$&T$Y$z2SeJ0;gd@Fn#_&x!gK3F#wIL-l{g}}7{{phcB z8DC?*-Q@F9=u7gAeij`Zw3!I)dJY&}cpiAgky}mRG-ZrW{1{q!u7RUw+Re@~H;-oA zsmQ!(i^x?4?aWTBE7iDDB|~+*Sx-If_OZSOzHN15eKXYh?cMHm9psvuCNU&7qoX=s zz4Gox-j^hf^}S$d+-^a4*2L%ZB*iarc<2D{w#AD5x?y_{{)2;lX#&d}U|CxR%s3a> z@8~VDQ>`%g@`2+{WbMDS2M6XvaVA)RRSYnT1$J@3Fdke?@Sl2cnE$D4;LcWJ z(!7fb_(>e`7R%Fn-gFu*-qQ>5If-^`fqtFekmk5}I_n>kR;cqXb{E4#pJ+J}960_a z_uDk$zj(fYXQmWKo=eeYwye+sLZ4fifBlLg-6v0c2n2_-(UI5l-Zj2}=P4dt=Zh^0 zov#(TY#m6L;@=Z`h3{DK$C*$BK!*F9OGl z#4AcXn}hYn^M5P#l<|>zu{Zj)JV!|S zBR|AXx*u2km-=N~((m)bKicp8Qh!|k%c*hx7i_|2itv z9lxPe>@nT7yvtUm%Y9V)DO0rK!!q^XF4p%{y@oy5BzejxPdTBt^~_7#&H0M&WB0Cb z9oMq(cQ$lc`p~E+xrmCYKi+0}0`?X@l-2J(*xxy%3~N6Ya(Tlrve*ge9zERA$@ymwJ+Mc!hIGdg> z`IX&QtTt?KgjRaNn$}_>`VkWO@-H$&&|2-8Me ztg+03pJ@YgnZR6X6X$vAr#tdH&ZQHo5^|v$CC>@ zNAZho{?b0#G1gbayyZ;U@c`>s%KW30Tsb!~6wPyjdi{ma6?nQ0yn847`=f14zREX~ zHsrmuqw_V$FgqSl0(ItMWQdV%jV+d~iq=09|0w*o#Wx@w_6z%eo@uLNICSEU`hbml zoEwlUG;;gaBQLa)KkI(hL&|rig>m*2^^EW`VuvdS2Q+i)40yy+ecyshsnpG*9idNh z4qtwDx_>>e*hqK9NVHy#76uF8~Mi`j6OrCoiiXVy*OdlXHB( zzwDjK0o@)SdHdkgu|Q@JYHXBR)s6-{kz!$M-}SZa)Jzes0>3Bst-S!a-=urLn$0!T0!O@9Ws7 zS$EoeyMg4FBbFNU`#?so+a_JyFU`8*?`mr02=J^f`V1DjgT>%_0S`s$!=)9 z$OH1<#s5a=c!o{Hf?^=w;n z1LK0PO|;X#_{jV1S|BqvDsD$o)CXk656N9?-fQuDRyC)E_!un`ACmzct{)N~lY!1v z;$y%iJvS|SNH_6HdVEZqAu41cHl}ry7SPaRwpumLcZ;`mSX5|Fk`^$H=N$PWv2Qdvn7$5YOD6Q4&j2g`xPm}7XW=7bxeJ@m*>5t}nz-~` zxemX()9w|xdVz)KU%b|X+*A0a&K$3~HZI-Ey9%B+{Y#Uz!VqIQH0F?Xb>{?PtMPr| z-8_EV)YKUb$R|D60D|=8vK6`3ab}b2*y}3Z5D**t*`I3uN$^!Yyw58j?q2pE^aj1! zv~1R;Hv^gj{6!Do;CvO|s1x{hcFS}6htCT<#@Oqws{513vweBqbS3=!EpX-(eEi_MOKrf< z>(8JuT695Pd2IH~?UL(7nHB&}rh$*Z4xr^V~y9;JSk3t>+#hUjggB3|JHalRNlMzUPWEnPbn& zBL8*z{8RO_{uDW02FIo7^G|O(mGa>;>%OVnog?{Oc%J;>bH`xW_z$1;J4LREv^!+J zm)aeiFXKql+f56%Yx%H^%)xfiGm1|0^Njm~-fv2{ts!Gq=tCd(&^3EL@+`7u;_odq zjC|mp)A^2&@!!L`ArpOngpTDF1=xp)rd%y>0zP3G`hySFErMp>4DDVB4PO8)pAR20 zk9fNYh_W`VvTsG+AlBsoIUD?KZFifvpTmw`&W4^?*Re*Eixj%j3O(@{Qhnx~im!q= zF|AW_z|?OqSDUs6jSbcq=Ji|j1{U^9IpzG6w^LShVD$zi$-*4Vsi!}uuFEhtG+}_) ztiilP#Q948l}+SddGf}&p%;rMdUxR4(T)#Co{PUDi-~o_L?V3 z`izRRi@Ym`_}x@9-?Hk39Ph5IqJUQ=9xY1?h)vMLGY`)W;v*R(PTK>G%^|Oo+;KR8 zzE|Tbc&H|&Y}d7OLlwmnunq66evrN&RQqS-jaL$fj`bSKKakaBJw%_}=VuvOKBT5u z_Nb|zW%%CX2U6MvjcCVLr0@BOUi@tG2GEgBCiz#|sP9=P8MPUcfx+ZRZt`5(O&~XU z!upi59i?+aiA9sWlkwfj#V^Mf8Alf7vs}wNvhdv>LwU*DmV4D?1{{!FQ5k<$DtoanoN=$3^)hzrK2=FRTfD&BH8M@^!nHh!Uub-FMMu}pJM+$P zUbII)Xj$m0n6(?;=w`Ug%y4bkFW`hw}nL%jU!D?}F~Naeg?9bG#Mw zyPAHv{zyMRhK_S0IOoSC z&X3T@?^&(Kn2)K0(f!jpJJ9xfKV!Z8~4Nn5ML-aSayufJ?c6FDZ8Q7=bXD^)@^s zRW-Zxv!ETA?&7znW}amb|J^EgZT}zs|NjpE_h0|l$N&G6GyWIkjFi72Ib#uWM(qE$ zIFX}-_CmLM(f^cRTXV?=polp9@+DsmXs;$O5}SKD zeQVQOtVM}RUiqVUh!4TE`rqDHTJA2NC3!={RwcUgqLE6Tmaw(7C|0R%#c#+(SxxRy zfsYd3f+F%swDx}JTTnFpQ_3AytIAh=IUqWG4V$*f61KY*eT()7`^7$}om3YUH83U_ zD}5B%$nQX(0uzCUwmhxO^%dTwne2Y-a`}m>9#4ngo4shalBbWkM$IddvHu`Cue@z; zwI=NnXn$$U|6-`tpAXLARYSGp-YEKIbY4+sw6FZ$EgsXh z6kXARk&V_>w6RBgZ}1Nz&Zks#-7CuQ$HA{qVuKR+U-{EpLIvded`#Np`F#9zMApC4 zvoVl`ZQ@jcA^lr>$9S)fi}v22L|J}K{Lpu}vj}@p(lpAA;q%JxYHi2X$E6>$r;sBt z*>iNtL)MMNHtm?a!76v~{aETL!@ad!*CW0qsi5juPMe`OC8VdN4Cdoz^02%b}9PnqTTgYCw_Gv%5mR> zQ|Lqq`MSNtDS6PFOPvbpEM<*Kensvi>PkJ8*t6T{Lu_(uXLP(>Tg-h)KM0R+D6UAoa^~H_x_X$e?0@8$BZ4y(z;P2}7yJ+#-)i8!hBfcA zUEACh8}IGHzTF2dz5Fdlhsj_P|7!itH5)Lu0dvvM3%o@pDN$pYOH}YN{K{l+OZ)PE z4D_&QxKimrUJ-oVfxUC7G1YV1Pam-s8Ivsxy0g{b?HcSMFNjUVl{3o?JWF1j=$(hp#VYXkiRww*CFKa*MxHxqPvBOI z@8m9Ermt@;aAkb?+-tTA-}L=S__II<#CE*=Uq8OKYj@oe`sP!&gzjM+CpZ^WWn<~> zoR8RzDsvd87GCEgCGi?}COZN-M!VVTL?(8*I?zKVR=8{(B{f>IO-=COZ=u_tu;b#> zkQ^*vk4pU>+C8_Y&`)lTq{do-M{?T)ndFv+jmrxIQ>gQ+gt@8rGTW=1qXYF?4 zJfz>V$>b1=cA#?(_kE~3-1m#sIUSZr-`GGe^_@+B-NtOYhHcrrq_x9If0iZL9odvE zT4&eC2_4q^a|8d2b>a099N7hq55nHV-peprJSLubSTB#OwL@^{LGJFV06)&M|2Dli z$=lBQbb&XGv2prZ-32Zsx;?Y<|7_HKtR_JBV%#~iq|R#gXjkVXZ!Eqj9U>b>>QsPZ zjm!re^0_G^^AUfUApWpI17r_r{1#jjJSUgf;5bX&`xb;edlrO>tFt?5`K$py2V^eL z1<{}D^pp1Er^lzibo-i))5!f5lxqhrQg)9T@5uoNWbaG)CTK(xd`pw-$|Nb*01Xt} zy7ShJoV8KGgW$J}L1@|_t_rPlaW|;@7vXWZ7?0#4o2o)5hSUv$o6!;4DD|aJsXMq= z$XBS}TlqFTiriT+cy5-r{4mg9(7c(QQ@yU{JK%GY8_+Lr3?|Ox`NK?3d?%d6%3c7vO*U zhuEz~ltV-RZVt3Z)$PmW=&yut;~tPQWXS4nY#HRZuQcu6SZaQHV`=g3hV6d0t3NwS z^R^jo2^4=hwG98)Qg@cw>BLto2LFl+@MW7yzBz04+A~%0)vG$r+TzlWj>)wRq3~1uypVV0spRTjswRTd~1VfBn@TQjE#BJ&E zFoU?;8g~op9pmYKyv4eoc!O4JabQ3E>&_KpSwp%1SaNTqw4E5P;jbid3m?rxBQVZX z;O)y#%~qn6c2zO97xmX3%`ESpT@+>TX7Q~=sXRBdf6{sk${@+CK{@=3I&-Z zaMuPrB<6Sj!_k5LTlhS{r!?$`Whqq_kKjE%7NrNqa9(+okodCLp$onE=GY3zNimb$ z8IRmwdVu@@;ZIR!|T&D8K@A3Rjjr^X<@9fC$N&K#g{6>y7)kl6K^A&UVP|sBEh55G8 zhi^{E8in6*3;uqK4Cx2{;g-;K#pSb>P7TKyl}}2u7pohRMzA;VsSRmr@>U51iV1;(tMdm5LQ6X(Tu@$Vn?z3<;I^L?uzJ$Ewt$yfTH@*c| ze{NRt)^7ZgyZ0!8-)*@g@KWO)fvyMc2<*GIAoS`N3PSsTy&z=z`Yoa0t@x{4Wob6U zXUcsr(>aGt)whJ~wU*`_{8tWqENoX^bUE(-X+7b%C0 z-1#=LhF?*p*W&+D0lqdp>$Pr$KPGQw=vMeG+nIZhUdvtzE>&!y6!9PUf7HEse3a$Y z@PFSkEceW00kRKEHi1my2C^iI%_O)a8Bj@3EVd;;TayfGqqYKyB;b-{Kp9QdlD>`T zV@rZ@X`zzVJ_LQN0W7Y?E`DA>`#haV5Tvps0?qq9_kB+?i33uf=lA=)zdzaCO?K)R8c$h=og+t(^nLXi94tm@bi7w$`@wERTI(g@BuIgP0 zKRn=Z_Zq%WPJM5Z>px{b+Vt8q-+^llSjDeGt}np1DEKRP`?l9yKJmpL`ranXINt&M zLIfY7ccxP}=m5Ta$H3D;c)i5UgznYK^E2i7fomsUaku~EwV6Kg(>};}!|$bAd4BTX z=MP*)+u$@}+xV@7zyFl9iyg?QzckRND(&JICC^?1PIFC|PwFry0Yh>>%mVK~f9Ca@ z3fqI1u@*(wL^kbY9<&wsARio6UCUnEiA|*Ux5zs9{&oKP#@>D$0{b8wa!<#h4!4Oz zt{n#_2Va}60-bM*;4PiRK>0kU?i_|P8j3qEqSURzlF zcplJso-MnC{HVGuVYtmBzmeVNby@9PcfYsi*U02A&u&>qzfyzIiw`1lIA?FWiSN0{ zelKI1j~rfaae7;6&z1Rs6Q8^6?t75=fIFOjf5Ls8f1d~6eg-*F+E}<2c@NlwQxp9Q zt?|gpTzSs>vINSKMhKxVbUOOEaLhZ=B$$V8Z7oF@~c48Sy#_P6*ZqcVb0rDEX>2Aj^ zH(KPMX6!N_H@n+?JNo7qfZJl#=IL7C?!8;Jd-7Q?+3ZCn+v=SQgtwO|t}l{gUl5-` z_8#_}bL~ARc|HZ1;dq?9L;L~!Nowgx&dRgxJ@QWY-gCC+#inX!Z^&Zb=`#16<9h7;Ys>><();VmFjh-yi=UXdPEjkO?>$?=w^28 z0ab}gu7-Z&;!Hh%F?uv|t-01bqDP93aFY2D{p-xVHzLQ*N1iQ1t|e{$t@H39ya6A= z;krN6xa2X7eQQS|`zCWQg=d^RJC=9GA^VPR5jl;sh?n|nGwx7&4=_fNhZCk_^F<~e zi%eXxbg+zD@#OIKipTjpI=nrk%X^BH`Q*4L4Loc0Yga1%#82;gtRjtE~2NofVJ@r6o1#uk#{I<0}nZM)sjjXF*N7mKgfAYI4)83*X>+08$d$nBi z`D^)IWd26()sS`dXOMd}&Ag7>tKDq=M%L9T%-@swooxO_9@etV-GzSCa*=y%$eUQy6{cRo4z-n_0i8@caL8L~%K zRFe<6Zx6C%8Ft@nQJu5#Y=7@aVo|9I4>t^Jo%6Vz*F%`h_IP%X@#`Y9Gq$hdjWSp!w zd}i5?L~r{W^1#sbChy5RLH6n(@AT^O9x~+}XMe|#_de3)y}FE#`sKZo#5sHpoFeCa z10GU8QrX(c7@|yEgk-!!;GzaxpvTWI!uHa|c!kf%zHHa|Or6eW0`P!d+B0Na#vXys zgvKso5T20?Px)LQcbq=%v+<44xCikW#(cKth0oa18EfW8PLXXtFJr9i8^^$@@ENfi zkaJa+Ra1EG9%!%Pw^#Kp7g-fPDsvZ-f#muuWVOYw<@rR84Zj|eRqqm6_1Z7Lw^(FP zcvkp3GVdZ!9n<9wLq``rCjIEL>J`RZhOUXMs>_r)hMXd_5xS?#l)9`sa7~vT!HprS z4qVsUzHD&YgJso$X9r}}xK`O;eqzFWQioY&RU?K$VAkdC{{GDC3y@VWF=SQADWKc; zO<7g!Wn!P}q)u(cD~6n^<8S5={BcjmpANGjd&={l>vAeS@Zh^24z7z#An=G>8nHd@ zeW^XJMQo4jwfLnQb7zhT8WEcBrcRgS7wLPSSR;6|*tmM3nL~et|BA2P>WK2`9+4Rb zQ`t5g%B>zs1`h&Y8DM&ypF9%ZS)?|fKXAGU-`#%yr5 z?Ta3JgHr4CD{GzmInVse%C&+R&Ya$LHmmBLhla0T_}0pt+0XO#U)5w=OUB>yY(6Z39(6-1I zT~{n{73bN;%DI@=Ti9MXF=1@+T$itlezMUm?8NnOjx*W|op{07I_&->QygPUh`Guh zuC!yP)z2FCtFd0s&OT%r)@T_r9cx|ZVe*^x-T#|4-T&K^^)j%72X+t(b(Z?JXYTzr zve&ne!EQkoTZl~dP2{zkk=I7*^4iHMagAs5Es=c5l7mHLGuw@Y5>GNOU$uA-BJ0=V z+hE_snFF;&@}reIrLL^(8PMM|}Y-(Fm$Zq%AyAQoYtCC1UA z#^76O)VubIZI|Dv=+29=9a|Zjv@7k4{m;Swz|XGgJxCj(2gtlgZt1`?gRcb`cjc{d zV|PVLLKDzRrAu*14BR$ycAVl&QR3Vjobgi&Azt2vr&c4+={^y1 z*8Lg%IsRGj{vmMpD7ae&9{uFs@%{2T*QelQz3UIos8w-e+eXKEV!-8*H>UV@F#eZc ze#EJ)DR}%d`prk@o$~u;r-BWC2kkq+ot(3%d^l?_{o5NZ-}gq_Jv-b=_0L~=#QA&n z{T=X!9PoxM?!CvC-@5$n`$v=&CYL#CN5qf)JN1|Qlo8z?aJCfQfh_>Ph|%5<-lR=w zyYN0OE}c)o1D3ICIOnrom*HD7OmT@{jtjYJ5qz@N%yo0Fvm!ZbJ)RYvMr^xHv{PQSrd@^Cr*mE4 ze1dCzuUp;?W)8dU^c}-lGb30#BUwWlYsrQlV@F;ZsHxDyyeG0oK4cCTlP6{gd16FX ztr?*-N*rV7LhMl3hJD~~*I{>iG4&;O5sw=n?wYf-mkQs?1MXx!mj0g0;u^(9*m+oK zSJ0_4r^YpQ67MDJ$j$qyDN6Oz@=XqhbYz9PY~>wgV!;{ZSIU_{8u}x2qhCufuf2(0 z8oHKlUfanU?MrMCnoeCx{)$`G_RbU7#%|#^c+eK9?SGO!t@s{MFEIsKUih!zMq~=1 zm8Z$&)iI`rGefEOAT~l|N3L(=y2AC&hZrAcOuNWYz#i^U;dO$O?qS>~<|@3sOy0wO z+~~%SKD<4-{t(w|Vrj1-a(f@rUQG=51zvD+3>~fm{v>!3K9z^9EALbW^-QQmDZjfj z{IYiSIf3>U^9;5^y+)vZ|FTTK;6?u(m+99Ia1MK?(%wN_vu+;%rYl>h6=yg5l=Xv8 zz0}(Nt7W<$IQ?4f7=HlWt+UYWcTs05E9m}R(51YS_Q%(+Jm9Fga-5p!-#nH5n|jqr zD=K@m!)r_DQ-5!L6`P|ElwU%c-vB=r0as7F&k^A%d zH^>#d%T5jKHvHZG04~&6eQf!B*T6F+_awYb_X!H7%2@=TX!J#5G)rp7`l+1ss;*zr zkA*R(!Os%G!@&K@R||MX(Xu9_%V*fI>jJCSKK8Mr3)sWQ}I3Z(h0dqYG}&R3E;w@PVJpzWnkgc&XIh?!1Xw*wonGgFQ*;U2>;qv1gWN zxQVwaVVxDT-ilav*RuYuVb8j{C75~DZLCXu-wI~7vo<5wWbd=azANXyQV+0a!2fYW zzs+I4+MDP`{+WY~fH=ipkw;AMnGPJY!KeG7o|zTo5!bF9RaQwZaV_1JT}d8svDvj; z!@kEEjM$W%oY}~p$K02uT2s7LYtWgkN!fPxG6!?2tWU8?fX?qd<@A4X>u^^Pd&OqE z-KWmIX8R__8kjkv5hdhV&(LRkcE#X&N;4>Y>#s#cO z?_$ZVkamTC0sKkX_hhMZ<12Um(u&M}5it<;^_9*`2QI)iprR^n>IBm;23z-cD9Y|VDJZ<*?De;!}dBH}sf z$b%<#(z!PGV;b=s+Nud>RFD$Y0Te zpS1&5cDB+~e06lYDqlkCzVf4Hax$quaY!UnSqH=vfVK@IKh=&XME|F$W4>uT}Y;Um63vVWfD98`FV$h|gTcTG~7@}M6V^b?$ooeSQ3 z0vYu$)Suo3&Dv=f9~o}}YhK4Cc$@=nyvR7ugV#maZ{|El9zSsOJh*GPV7JIfRZ{;o ziuNy@sx+;$Ieor)G3_{MPTy_E#|T-o9A8?^=3cSbruj0kzn-SPi!v>)@xQQ53yuU= zf-{+WnfK4$ENbyEpF#&h0~&2wX){1Q1d(aP?@V$owgO)_?;b+-X=CmWTcfl00`GN| zw^Pf!VTRb$KA5=8!p_Rclie#FRQpwEH8D>9OeIS@T@59j5}#=CQ) zSWhx9bCy?b{{whxO*!LCaBi z$3b|;#}0Sze|}>1;{>v`g)s-LQP~=JytuL=m%WBFNX@(cxpmHU;8Sq7?t-_Z_Fa|e zuP;<&Z)YEwcE}pd9n^oE%`2F+zpJISiW2tyYLH%)AOpi zGfrTSleG_T+mK!~%b$j<72<7Q+e4 zE&K4&8mqq<9cfFkGGFuz$=}?$;O9+sX~Uar@O`m`1h6g3nh#iGr~_bY-NKk(Wz5Tf zPuA0F_V}vje9m>=Ww~B+ygp#fvEtY-&jN>oR zYaeGioh8crneYJUzH|ck-NkiT`;t>L#AgoT2fGWt(1l&jZKKu!zYE|ICxNerab6_v zh2IB9YQlsuhclJlkI_93XS#bsV-MlvpN~@m7#$_}kmPxBdJExYyJ@3nwrfvu0s1xe z!D9Ln{wDL{^O8fGu}jRo>=R!039q?NG&8OSbDzjzO|uSlU!Z8<>ZHveaHj$9L1YDi z`F8@7%n2~a{0K}T_$2qjE_ibQeu$k!&%vO7k7{_Y( zqSONrzLAb^j55sFn=S^ny}@+<33_^T5^a?Wv00yAwXY6S_G-9}0cc zm@%T#he978TUC#e^&0)CgZf!KO7*2{Hebe{3VxRvDE!?4^05z7GA68vvZM-cu<+ZW zWlRv=26#s6_ts^kW^m1Njq)nB0FO!@VUa0zp1A*g$&Gjoa~qn=a9Wf3kaPP)>|3Ed z$pN0c;OP+Wead)V1Ye(7W3xy7bN2f;n0XbBG6p@bLiQdfb(+X;73;lZ%A?K~!INsq zn4oIu6KbzkUd5;MXgd4SPaTOq$?Mu@$?9JES>OB<_q!iEd6&CgWJuQgd&O4dQ8kNr z1I^oo?3Kk_Yn4CBRatWaeaa=eN6DX>SHgS9qx7HXT}MCkF*Iv`x~;|P$>X53N|Xya?Jp!hUyv=k@EA znf@cT7~hcH5HLZz))(bM4Mo+CNwQ_xF-NpWS(Jwc>d-bNK zm#@xfQi&I}G9b_HI`~S)N-@nSeedGo1<@=N<&zqK!jv15O z%L|o6&rQlmZ(+y7&Npv*V&UKKQ_K41SgZg3(o@b`J-6l-DkB{aD6yWAJWGs;=V4`p z_koUwoc}fd;f25F+5J5Gd!GHi=li)2C?gz;lwsa$Iv#LN0>0-2Hf*LkZc;ArAHmOJ z6nr4n66;-$45I+^XmBy5A=5u4#_qe=9^?B1xVydNQr}Tvp2Bzf?-y-XlxPq2cRUvA zbt)aT&Vu=C7N*m8K7FUt_hQfD+}EHjMN#Qr@fLK{ICs90D)B6OUx$!sPBdTDQh|&V zMStrOGW|Z;gD2w43(nhuQT{p8pKn^v9C@d-HHnP&Dfqg5qI>zHLbGa&_wdd~oFa$G z`Vn8ta2jr~E7L_L>dUmWA3{G`V^iC7URgYW-_#mI&R)h?=k7#4iB{%a7cDi0qPo{0 zdq;6y;)JMWA0JB_@>{NrR$eMSP;`+`U4F;*B`c0Be^!lkER9m;;q&Rp$DXyUW1VwK zhu>+TZsn-gBI9I~MU}V`|0Xromp)2)H(!bAUJEX6TUoVT;(5B@ht0rt8~r`9bG`Eq z!1gHe(GGYA^5lHE-lj%*+E%sMF9A}cLRV%#o54n{5#{B(nx^2)AR%6Ff=ZgExDtTbu{Dc^nOy7H>lStSKL zYv$=Xf-keab|zimFJjKRkbPv2?P6X;K3@hupUY>CHOfJ58qfMw!{eG&rTXx%9>s2- zR{i{xN1Rb5%W^L?_t;waP>9!_V2>5PC-QCIYqPpVzTNV_`{uuaFS)GuF80N6*+F=O zg*6zsG_FzjknkhnW#brgI1Pl_4`Ksv$++4j_6?EgLb6)}_%!s_VaQ8LNXOey_`wza z|8+6B8O^*%o3ZU^1x0y5bXPljzJonKYee$QtQ)s91>u{L<689F0JeA)7-Y}P!!8xv zQq&@PzUcV)KK33)E-4>IJ|X5oYGpK%x8SE%2YaK#C%HLyu9Z1a;zM$$sdH{9{OK(J ziZFP{Wt|k*U(j1WOZm)|SE$=+@>Q){&I&_z3Tzzs(_e#~H%q%`J8Q7r@KEUn#@ipq8cQ6j)&A}=iDMm! zEd)Ex0sJ=Vc&6Wulb_NX_yjx7D#f1=y!SD&!>jH!rE@NcYy3P(>6IGlBAewAktLMJh?tY=RXmQHB0cL%D5_n+_Fx`c0_9J{8^0Bv+L$A^{d&qp7Lzylfu(W`0586w+mf)B`9ugd-Kce|Op(7V)i#3zq4{ zRO-9FThZ6IO?0X7zE#IK-_!Q7z6#0hhON-T-Y#(%$QHd?io5r!$?g@@f6>oCTS2tB*N6bo}P*auls;1|h9i{X4r@20GE%#_GV-fwj z1$$>2@3|`no|k)p{BM4FjR<|my8Y13Ipa1 z*r;j?XIQ78M{;MjYOD?73%n)tdklVZH+j~|(J4D(l&#_Gr1qk?#%l0-96e(>wM6cD z#_F$_!MmKzq%p7L{jYX2@2QKi>*H7RTk_j#*aRwDt^O`KZz4yFS4}9%QI$Lg^7NJr z2RSvgvYex-xen^3Z7G!hqsnp)rsitwbuK>eq3Qzoa3TF(fe+(mVv!^UIY@h5=s1qa z?&V%pEAdQJmNWm=g43Bi`&aZk@Lsy&nQ4AIa_}*p|AOaFl({$g_aSm6yGH;PJrP~4y#iy+# zX|PY5#BvF~wN+!s26r@<2K!#TQ}zpuTHMYtvO3WKO`0*`kSd^Z15JbH}6m#-Wq7kUOaZpZN;i?tCF*e2Jk6< z1r2#gW4yZ(xbEmJ6mjIrb>Q9d8FQRZrIIf*lz_ek~#7jx#JMuXE%4F0<8 zk**5PTE*rddhup>(d*-s`BiF^uYvdKrs97F%?XTE(4oe>S7EaxW*|F}HUuYPJO7w@ zn%c+N$O!TOd{$~1? zH80Tw|nPh`o*`|ca72>&HuKSGySdnZzv((HgF8JkG)8q+jZb5 zWJ?n`9=$H|vuzQcU0+Il0s7fH`T{?3jLRSWFQxsG7-iZYzIog7Pos^R&N0Z7vE&cf zzgVr_`!e#{Vs*;i=hiLUt429E6>eY6+Fyp9ni%f)k62@}j{s*V_tQJz%gFtdShkn> zq3)1323b$u+dv(nSaPgO%}ZE4LT-I2ZkUJuo#OH)10klnd$wU|6T; zyBb#ptc)Sr8;w2V5#+PCRw?bzb2h2tfBJfz4#MZ@(SG<7%hu`RH*B6VPk;DdgXbyq z?2FKH=-Fs&o&wj~zr*ebo>-sVD*TJuHS8PFUhK6xopH8n(D(=Wez9rj^re{Bevq%r zTA#6B$+`8Jdkf(!1;~9y4c9tsU#V(>_abN_~%u7i>aKYDXq!W!7}ot4rA>NZzZPjNd}fy+O{Y5Bze_IrRpGb87wCz&Z5>g>!2C8t2r3e;Vi1eM{8#!1w9n z@0@CGe0&=C)bpw1^Dv)>_&mtx0X}Q_ ztl?A3r)JjB`RcQ(@19toGKUuS1}nY<22A6Jz?2dJrg*MZ{Jg-Wttx+?oYL);rS3dp z;qoe|)vd!S);dZUuvRx^!os|~VaitPfbEV)q z{Q_)Hz?}fTp8((Y@aeE5_zqV6u&1xt*0>G4?*Q+Mq2C(tzBt3(8xB*?qW{=@yxA6y zA5xyk^9sCqGkb%U<<4W@n)WobEHWE(t$%B?jO&`)_*Rf1Bus5)M%Gj>=w?O(^T-ob7>D2v}M*)C;dUS&04Rt zr9C*C|AqXw^54>yu3p`iU0bjsV`9gZ_F8p?st#|nOsu)`6>xOVaAj-V7;@^6`#p7v zdNg55{l);f!v#kYgN`rOdnb_F>auIvZSc5y?2`4Z1uga1n%xt%Ch>)oc&iv-qXxM@ zu%^C!-&EC~%DKE3ULKHIBH?Y7YW}Zk>(qs2TMrFx>u%O5G2ObYQ|4)Ct*VfJPC2of zz3`~M*OhnsWhZ3qgW&xM_ImMCl(WNQ=n@C5O18)X*x~eCGQ(&$)+IcWwE#c;n02N5 z`5-@~$(+GYrEk$w<-J*4lk+Z~_owon^c`BO^sldjzS&k{8AhU8Yv|ZEc&?pw>tNkR zwH()dfRxsdY$xmQz*mla8vub&6s%oh&;MoL= zGNYV1|3_9_BYWN$kr_Wh_wD9?8ve2x`6^|v75k9hchoQ=|1Y$0V|4P&z@6jEg7-(B zFMY1o);YV@KCv;2u?L@xa^)~b9_&3`@s`{}ZB338xIouJc7==p{! zC2!EP;9BHr{aIb+F=XOy+HSaA$rG8l^2a_WZR_WR(x*JXJ0^FAv?DUR+{>9*?{v|Y z)NGJKwP^31L(!{4Hc`xl~zHE`xushlM7o-*Yb>@(3u_G}f{IYqwKR3my|(%DJ+a*tQ&Z?}dyXp9&+-w|?fxnKCjidMInj<}Eho zk@@Y-sm#j7w!*oO)_o9L@IJ1E+6vHC4sB`ZLvk*gqx-q+!OtbO%ysqPwo=tm)k;wI z$S``n!Qy|FvB2@d_Sh-HSkPG7xtO+cN02qgYKg-Fy60h>xurha+~SXXZn_upj*rQ z&!N9{8#E3>Knb-6pQoHixC{d;Hno)q3Bv4WESFEE?_;*4Bg z;-Aiq-4>~pnxgt$ z*c@!+sOScd`Bt0va_m=vcjLazpUeH!*^Eocow?Sub>PQr!ZybL3&xZgZ;Z45`a7fi zo4EdDOtLQ!b9ImSxMr!!Hf8OaQqd56toNF=253WkoL&HyHu`D< zmNsM;mm1v~)*ssBh=a6JHTIi@aFI1iWGwdenQz_Rqxkh`s6(+7jQqz2rD| zVM~%4F5&pzt=b)jt=ZXoSEa@+0`BXu8wqZ@hdX??r)RB@^ACyNz4Xk;nE~w6`Wgw* z;JSGK2xzSyT`_CL@}5-cJq4^!IbHZw?n3XWhn9o~XxOS{k0SQ2y$7ByW7W*DX6t+D zZl|5O+`?RXnac`jfEX)>_(TNB41y}=k-a(8tDze{aLdAPn_S$SPqA--4N%0-@Mkpjt`9X@8y~%efux)*G*8U#i{zo zv3BAZH}b}qAh^n6E@bbjwkVAnel91u7WlbwZ5h|F=Jd+-Kx)7g>vevtErAC$b_I~2j&&1w4wUqNh@F#N3*<=w1<2P`m`jJy~{K-C3 zgiTlW*%1EZp0vFr75+!xUGy#MtazdWe~=Vk)_8a>a^Ta%$_5hf3;7@J*OHDdfSxP< zx83v|Mc-AfsHTN#im&)>Yi=EJ7c$0Bzan>u-&^)`)Tah^WSB9s*Gv7YKw9oh@y!z4 zA7nqc3|yDrJF_Q%ZLOFy5a^)$B>R&Uo5g*moOCW6ir+Hr50VX8uhj~6cGmCcq4>Hy zUGXolruYJuVR<1KNDS9l6r18x9)$KSSLJm&4FA(0waAE>%Iik2!H?m+PnpZZj8kOp zH2m{QMk>=k1J|+mF1=lON6%=x`>`YFi$~Jm-FSq0JV($wj}T}0GI_@G@e`Ty%SW;4 zkMi_Ue|*Z%H!PfD8Rhs)9ql*@ZqjI@qq4k5#m8s|=U&fD-{Ab1>l;?O^KQV0v;dyA zvvP4ydQ`_>W^3X{_WH*3)8+4fLVM{Kz~7Wn)UmO6g@?&|iQw)Cuzki{9A&+}Q~86Q zQ868V!LMrLsDA=mt>GK-B7RjzcwVtgp71DrJ(~IU#)E3c&lG&DVwK#VjiDXGmxHrU zaG=ot6l$4`PJ4Ib6lrI)QhLdxx1IQA%sYx6g@4$*OGaE@!vE1nh>gI;z3~zyw)Kw6 z3wzLG{mlpQp&-|$@YV}C`ylAek6zqu*vf;}?2eB6NO|8%X>s9!4`X>gT4*a=q+EWd*1Fua{lRc*#HIK;}|H3lX z7XU9o=JMc{t6Ci3XW-1l{g|%XP5d)CJ(BVJGR{|IEtX_vtq^+ot4bV0ti3nzOqtZU z)paiF%wsc2YW+a&#o5`Lp>6)ZBma}^z4xwFUY2;vR`^dyPRN4q$rmAUZ1yhP})E`zv%@yfO?=s|2ewO{l-c^7t_ zdxpaLZ;Aff&1)6HD?_|`RI)~=~FSRubIDbkXHrD^qkbC;|x+MQTuGi5{h_{?w zM;sOBDj3WMD%G-I+A6YoH0Vz3c%ma}(6CK;hIp>crQOJltBGx*{;bn}sfs@iwb7xA zPg&!)Ll<|jZje!W+E~+^wQPKWHSJ~HG;_A)!|u}!U2LKD)`b)IIQQ`J)<(5@D$V{D z8@U4Y{x+z7(T}=m`w(r1LiCOSolI<0qE| zxQtkqL2drcqU&+t{Tn!l@ND2;c=piQo{cY)c;rDaEI%7=BRqSb@vLizZ@h~$uoC^e z% z_hm)j{Lr(7Vb6ZXvj>*<&5$#c`@pkp6f$8lFM3E(0@ub8p+)+ToLLUwU&gqbS!3&7 zZg8Tbc*H)t?z#Gf^{UM=hmVcEE}|W+^0pq0Hbi!TXKvJJrgbOa9ya{fy)70 zKH#!@R_kyzEF=$%V;LVi{RrQP1}@=8VuNT+->r|2^Uu-}_>T{`@@eBj;ELk;65s;A zW4wG<4KFF-KQYqo$8*x~bAhL?4;$xteVl*L$N8z%fe!;bNp-LXMiIYYjFbID&WhRv zUZDfoJELU&S^EaQ-_qgHSo@*9Q|8XCPM(lOpDyT&yqX(TQ@&7;F9dI#9lU4EBfi?; zhIo$FaD2MKXQ%dm2R{Gr!Cl@tao1;+^OX_UYe!_5brrH7c8 z!pa(Py1yvr-Yv*b4-prrOsO4Y>v;SrTO;+m6L9xsW_W1Z+A=+Od$z`6?Qu( z(6l+rJ1M;LXWm(~mb~-Ou$KOpjkY@COO%d(z(*T~{lxu6En_J^|iBVtZG}0RcYI3Rq}RV2Ta4?Z3li`1>Xm@ zk@$~eZ_}_n;ZO4thhhGD>TOr8s95g8e=Z^S@E^ri~XAK#eL29lD_79W54EmsmcnW)7{{+6FLwYLl^Epi*T@KR;-GPb4?$R zS%og^GL;pp)xs$aH!1VqBu1_%mU+VlR>v8RK5v`;|2uEgZHQmgXRTI=>le9L$B&7d z5Ut7nE%L-3@K$23L4B_^*KI=_wn@S3zxrO1l2<=g@$cqcY5OhSk1U7d?e$gpwbuB)TUrqbTW#}J+*9>F$TJJH2i|PAId}Zqdy>9Q9uFpyJ zw`asPlFuUktNZ((UE9OXtIxPH4f_Ar`ALNL&WoQ!c<;RUiSgcac=1=`aa5UB@O8!% z;l1-3Q-t@%Y{AmOqzm{>ouJ+WUyt_|H2bT(Rfck%Krx z-7a#GOLmNM`tZwYUeoTzVp#4bXjKQ*S$p430Zk#&|>NjPWE2NIlkkr@nxdJiG4_7Cc<^Id(l;{ z@b|IZN<1m@4t8eAGu5%+$EC`LzrE8T*O(X6w)|4ze~j0C6z)$m{J8&e4BsWgg17>yu_ONBQe)>hx;b&RTQ#e@H-+5E;x~kSX-b+AclX}Y!~!*= z=PCSejv;;xpSaD`#!JO7u>+sT)CaA)PjBirOSPJ$%+Dp4jhvGYJKp!C=++k6TYwMm zK5_tvA5I#%i8o)&`@O^hksB{C2HivSQhrM=CL3|HuJkN_1A1c)=NHu5_PNm;L-BxK zo|Ab&*L|t5C{3S}6y_w9`(p4V(#tU*c?K{tj}FSi&h=%xCobH&65*HGW?#2|L#AjoFkZZ(9ZYVkE^5+7Rr*=^f zw!-c@`tqpY3;rlINlO+he(_mOy~3#HDg8-&qrep8yhev0{D0%z?ipYad-QN%IPxp4u>*f%!KK($I;lnUA$}x( zihSPx_>{+~*Jz!&aoAM*e2TRVdMhjHXsi-#8_zzY)L z1xfINWOzYJ%Sm(n>psuc5pB?}jzcXM-{&*xG_l!z0bj@}cemte{;qCa4c&G?H`0$=zM&OaPr*glb};sefk|I@5ji8~3lOVoHd!gg_h*mKT5p_&R{E`mA+e)cBwr! z^elEMeaXEJ&SPsV%C^HXU$${B%YPyZz*YUe;)x}NCD)D64 zU*>S0L7su5%lLjE#r=iwL!lq`vT0sERjR!t+txGF#o1{-XQ%0$o!Y=}w$5t`RR|(`SzC%eV?trb&o(=YbaHTuG$Gb z=YL_XWOOqQEzpd!ql8edee=bI8lzV})n_aS}%l+;Z)T>(LZr^9uvY)am^BR$7QXNK2 zcjJge%HY(DA$Tx8FnMl^OV#waZo%WOj6XTE>7xYym4->Xot&d&i@a%574aSKl^Fkk zSLu~`E;M7i*-Q1>YQG&H*C>4kn8!r?JC5Cw?5c~^`Tw1@$VH7Fcit1^T&TOmou?Ax zEwKLx*gL<29yUEbyZ$nXL#N&)eagK%xK}rG;8`#K*IZ$YIUN{h^Ix7@%x|d`kT3W1 z2ku`X|7Q>UpUHoL@7OIjyK1Z*SJrVR5`?#AEw*e=TUc!{?dBRQ{IMJ`K8p)>XpL{>L$@Qo^w}H3<8Edv`_boiQD0e!%qQshHj#FwW8RHD<?Opyb1mD zI5k24z}!pjK205)Ej0#C@}8{AV9wkY_~o8O;C!i$^ADX>YLY(h=L^q=!1D_5?4~~h zrm?L8kL0IZG~3nvEPPn%pYO|X`r#W#g>NjzPcGxxGO58nrGtJ$>kB=xu@=}fGAmZd zweOn$vnE%paB}a@P8%$@ne23kdN;sYYqQhpRHiH zUrQHXSFJ^K7jhRoririV_cX)LmHf6MLq2;6XOZ&mY~(oP$H2AtrAlodo-N|pAo589 zd5*U1t=%4&e6wry8EZ8*v-zR<=e#HPZs=TcEXa3*#qiN6!4Cv~pwi3m(O9p~$8Kjl z^|yrfyDyvDf=|Mp=KguuB|OnnA4dNbL+C=<5Aj5JWY6AM@m1)pHFC7eOmxBdQ1IE^zMJRh2s*8WCPxZpr*vE$X5R>v9Ff43SQtB+0aFhJ=4XW8D!5ykBFBx>!CXrJ~%F5a6xxToc9ae zZO+)G)7^J@ZV=A}CtHX|VXc@o-yHfJ6%C=g8+mUip7)K7YZRD-?^nX#1Cx_o$lSWl z62IcEo;vU&cvqkg&g-YwF;42rZL|SfHu#Zy9(*;y$*uS238T&>w{nnfXN15D{ zy#>RM?hh4OYcs>vT4gR*tv0yC96UB)6poUk@$K& z*WzmYzCTCDe3rcB-;98}hs}15g|)N9Y-d01T$VY^UqODeB6JsWQoVO<0eT?cO~k@S z!fVCk^T+Ew;7ssZZjDTPf>(K_YY1L*!|T4rSPi^3 zfe$_Q|6^oq^3{o7wcw`lW5btvHaPD3MM;au-ho?-C6}e{Z(Xv<;+Go6UC1FN*nzs> z>)5xuyWnS@ca1!F!sl)HTnpdVhG?OjwL{E-zQ$TuWBKr$LtG2-d2Lr^?&ZvBEbu&St|y^g z-FMC8IYPs3a6OS{kPq5uE1Yg#-?RpHP6?}hf^6DfvHypR2;0{BDn z#mwT0+<0I={yO!)Ey}GJGf_>{_l%)^Hvm`XIpo7geZOM%Eqif~CBYN8hrC{K z%Cvapf%m3ikNPoudI9qBNp!Vx?+<%4VvDHhJ~h?m*3Xbso=fMsztN7|vz=c2xJy+W zY0;g|lv&CcIY$>=J#Thm_6h9fUy@P5nbtcBM>l=ZH(&PolS$C3#pz4LF4@7JFE;*ayV8iQyH)t~ef-w<#3hE^ zN#4<)$F3OKo8&!X++(Juj&@fcU_7;UxBnLr#+<~M150mqg~oldP|NN$#~nUjYZm3>D(VdKW$t?xC?x*tn-)u_bl0^gm z56J(e1OGqb|6=MF3LY*84@*8N)OGev%=sVX*}ohA3;6%8{O=z4{|EVhWZ?fU`G2p` zb}hETH{}27f&V+@|61dJ0r!8${}bRzcup6*r)VO1=dkxEC9 zN?ZBEh5Vn*e=Gkj{J*Mg$t4|ER=$qU`A%|w+lIF(y5t7YB|~$yKiSYJ zS94CM+mMKntEZp4?;JlyWSVe&%}PI_uSK%uMQXc~w$Z&xE2OPjVj9bmT_L-(w_LZ| zzgL29qsVSIeImB!L|;-)T+?x6zAn~z6?SH+zfIo4F{>qZ{zi0|@#Ke|NdEfyI{$x1 z+jOyC?3g?^ZxMdNAD0<9ZsZwXnfXlmC4Q|wn_4^Y4io1omG|Xt#O91#q4UhF^grve zj;#N1elI-J1@AWG9HU0}P@PG}9>Qk`zx9kA`DL_>rOA@wSv}dn@74@w_DX6l_oCA! z^Ios6`=#i*pRBo}%)dHq(4R{k>j~FcvaE*fGzC4d7de7T!*{cVNu*~hrPhwC92IV+D3+##~Di8plHx{SX#>vg<22jvnC z;cXmvI}P6I;5!RwEByUT#u5I0B)o^eFS>R3`>*4#{;#}WJ>>mN^ZgbR{&V$T0sPB` zy#G3Rjimp0?$u*2JlFdxhrIjA<;J@P&7J#Q4gLQ;{49sk`ragRnbEh*PrT}M9FK9Y zXr5v0tJ|g~>h!a`zu$2>t-lV=J2O5o=PZ5@%ylNMhj3oOyF>eYIjqk_`aDLT`^`QZ zrzYrqt{&3ov*39%c6WnL5(nAehW2?!ggzUG^m&}K3F-H$2+!8@tjv|*q#wS^4V*O2 zNYH8h?ji8a1}6faK?moCPiRo)dnjJK^ecTnVKH%XjoD`*c0Sh8T|@d5+Lt~PXsgBY z)qM`_?|Ks_iE6w<$H$m2&qF*kW2_fr?uE~t?>t1}b5qSe{}}=AIsNb?I!?T)w8N|V z=_15?t{Z}bweXp`FuDj|KSSx_8xi`9p--7>1a3(fPn`XldK zyv)r|ydO=BYy7pv?9ZIz5U;#)NPkP=yD~n5KO~-Wtz8^peEaB2*0(-Bbd6()12_$> zwMc!Q?;Kwgq0e^u?8m9BGx`)h5Q*kr;Mpex7v^*OhtT}gA^5P0UHCj{UTkDTasQZ! zj|ArXgwwrZhsk$Bd!_hm4Wf7KqM{cWd?#Vh{xp=n#9uJdeE*O>w=qV^-8~eZ+f8`l z)da`!318;DqK^)OhxK>9yf@PND>eHIt@%KPdqw;dWz7B|{4G+yg7*;J*N52-hvFep zztiYfXhQHF_!TjKR?VYPQ#pv7BRRx1YX6E2P>Z%ZIFEBAM%x@aEQz`;OU_%xz6A0H z;X-6unHxEq3&Eh7=hKm3hyw;`N95XV$ah=enIXCME^NZ9U(4#=($Y8I6Jef)@viKl zp?&gXBEAQc4E}sFBSDv=BIE1>Qzne}1ph^x{XN0x6F;W+65!D%7bLs1TjH96*qLW= zZuUXdy}3I~7#cH@&I&^S9NBdFB;lOtt)Wh?e1F7uNMGoF%Fq{z@#hcDR(gx^!4J+Phxu;{T8gdFz7HqH zH626Nu8-k7CS9ri(=cU*_?7;Kc@kUhA!Ocl?OB}PDx-WWDwm57sQ42~UK|%6@p-wB zkNAZK$i6^SRIt=7I2}qy!yYqAy*66;b(*xvbD)L2! zL2BAu4*jLe8o-A+Anj$CW2Byy-u_f`jF+2ZEHuYR?F@a4W6+@*lxgC36B^&;j4g^b zH*(F+cQgJ!i|;XfQw8^t@O-K>(_ zZ20VAhxqF`{0RPhPFq|!J!VWIXFR%Z2J|R4cA=L%>sU{|=rZ&ZfG!(Zhk58{r_j&j z4E>a@pN;L;&o*cL*<1%HgVsTXDYK4+cbpocpN0AzCjFwD1?cw}_I=@7!QU$FHfsI| z&2BbyvzNT8%U`GKW|hk|Vq6tyQgo<%bTS`0SxAm~2>4Qatp7y6na`7tuK#(j=w#;g_qlHDD<*z)J?zis zK9@2`&IsWr9{e2pk{)KfZ|GqI_zjnfhQ2R+bU+U?-v30`qt5+)h_?^uU?%Lk4t4H# zL$FKV_Y4{PZ1U39h0(@W!T#Wo_m|H9>i0vi+vxvi=)fU4AVgow;te@X>T@KkDUK89 zCaFR*(Dpu4Cwid2-*}y-XEW~2*p3X@BzdrGfq&+c=tS7sh;C?M9!>i^%vv7a^+>c9W0|DLV?{*(UO z-Ew)D4jaPV_^@$|lQtPgkLa-`{*o^>lCYkd#hJIPgRYUQo_shJ&UtQS!c7@9YL;779q2Gh_D>8io`JzsuBZXwx zlcv6Yx?g8A=ZpS2!(`Y&a){Yqh(06r_lDUYXK1>P6r#(Jec;9+<6BA`NM{&bhOeig zc)dEp_*%^V#!)9mbh6MqZkw8{+XikL(%)M8(=rF<@m&2~6QRHL(jV(UAD?r;PjZ{- zCmE?f8K29XzkjvAYIA&#MWE%XFkJVb1D`;53gJ7%2Sh$Kc(*aXneg@Vch@XL-QM=r&$sDn?ip9@SO-fiJrfI zjM3j_@^cr9J#t8YR{9ekmKO8?v0vjqqx;oNGxwu#y*|VflKaO*AMk_Y=z1YMhUj*{ zmSEsSRLC?p9g~TUX{l6e*@xj*$`9E9#|E&Ih zHvg~E|2OOZ-TW`m|2Oe}Y6KcNDE$aNz~OY!r-W}$aOds7&r9Dg@cGRGkD@yVv9-F? zc-_BObZ0I7k4|t5-x;FI4&gf)5$5f6`W3z->xBOL@fo7a0bSkXJG!oZe*06T{(eD! zo%*^&H_m`AV~z1`vnTeCFMJ)y_+J8L@(ku7v5i{ z*ReEuW?yh-8kUOWJ62)6_Jy1D*!+vfSe15OL?*zwb>3a)${PB@9(c|9>K3m-4N{?$2-#GDq#+TH0f|?m2yU<4&<8-@_ z=)>V_OYHb{z+~*<=iUnu_&Q)43Oo*eJ~Lnp;JYJ!%|l_^ zXTlZ}JV!|eHoiO1NI8#m7B+q|fp=p!(j%kxwV%lWBZ`x$4Oq`OmE!W|#sl*0xK3ZDL=W=|RP7_P$;=LER z9~9rl5z5x$ICpOY`L`tQ?XoEi8|8XFITbm3o2LJk9EDTp%oV2f8o9zO%zY2J!n)|AsJ33OCsa)P zifd+*`0?o1A2hE6gT{4*oL>^-Z~~s%h^@3Jr>4D`8Wo@UdU!_zZr*7?u$;4)1 zGne%&{*@w|h;NF-vaQKR{vhW9e#QPS>-ow;;pX zs5g+6uIV-vIkOM1btZ^EZ?!fnU{Zti1nMgJRR955bwr z_@7B6Hk$ky`hRG92{oj{ z=*MZ|shm6oE`6V*Msk9Z+dKllcVsOaYfWsg4fner^YZ;E@U`K0*vwj72Yv0J%|l7# zs-%w{#00|w<`c)Cr)i4+5YMjXS>u^z@^EXd(X{P?{uimXZizkY;2D8eQx*L16uqXF z$DO~h{BNFIs#)Pyd(jhJpd)_*8H{)M$5eos%WR7P9>(U%k+ z`+StVfEkh};jUiPGQ5{lK~ING2=eB2vAR7< z?=jA&i?@i~-sbz}#Ka~SK8^YCng;TfmZ;GUSDC!V1+U2`X2*g~wX(Lj{T{2++Xan? z?YUyL`|&`T(tFn>7dIKP>?y5l=;I^!wi~|0J~HnvYM1rl6R8q2JssRio!gUR@iB(p zM8@p)xO)Yzn~95-*ca`hi<^|;1#JgLYHiBS*JlOqQT%B~ADyMD?zV&0k!|G`!~biE zrJ!x`Yp>5*I-=uBb?4ey7L{6U!)vY#@Vs*L?OElot(|qyTGY1KqSDs2ZRI1BHi5qq zn|1}hbf=iZ5FFt+TFv;#JuqM72*Kwm;&QAe+ye7Hc;r^& za*p=+O^Pd2Yb{jAaxgpwEcvJVohjTK>xd-W%$R8mfmLKIUU)j?;u; z>{S;O42rR>B>u~l{>P17)`Ty`*nSngkuF- z|8hM`BX5n+eExm#V|Z}gB)4mZn&ACZALAc&+P?rg+e|Eb2j?R{qK?3hf5NYUr{Ozp zSCASabCIozkXghBdK%A$uai&Ab<$!v_d2ojp5(xmIPv?)*CBfU&~;M{9>pL0@r8oF zfqI=%8&mLDudh!d4pr7?N&1J#C`q27{?}i%J{QnW0A0tXs-vG^t_--O=Ir1;OXVDQ z(W~q;19eP~k@G|HaA%ooA=vk5spLya1D*rW_QAeKb>Hk&LK9)W+3EOZPsdNWVxij= z^5xiupYloeG?DYe>2Ix$(|yh)_V+H%;)llChSOuX>?O~KWOG}dDhv2e~IhA!g z7*^)Ogtc@CtkZzC@f-L)Tw~ak8Ve0SD}l3O(%>~Kwny>pXa&v&{HeqB;j_UR?hA4( z8ry&+!Etv+6Ivy|@D9eb`TGU!#l-p})6B~PpPhF~ z{a(pglSs&4P3eEG?R)a+i9Itn3qJ-PJMb(@XWdUd)3!g z99Cl-`_tW1_U`mK_p4Ffy)UnGzQA)a6P4v9YEp^tpl6Z0hGSRN$CG7_hq?7J9?5T| za&IB$$iHJaLz?ejQ1STM(R4aHJ(2J5_ELLqZ z_XUWyAc_KQecazI0kk9p1jI^$(EPsZOa=ng-h2O;&zW=1K6|gd_S$Q&*Is+C{WYFF zkfNqo$m8H1k(6+P{puF>{}hifl_B#cT8NY02A=8}CuHjKlQWfn_UN58Yi?E@(ZJ;) zFGVAAj=*-5ynv!#N|{si{d4+$8vL9-o9(}Kh%4tz?U@??$DWRfhB#|#hATVn%{BH^ zLyRZx*K6(TJ|5c^4RhtBMX=w3^X@nE?XAeo^FFTbP^{S^x11sGMjSfFe4eF+ zsp5GbJ3F#RCM9J5U}(I0aFZn!o=jG3`@GtT9h+8}J5FzT;*N>*!)7Q5OfbY+`=RC2yPA0)4P0yNv4*SR+6^tk z3 zHS7TxZ!`p=SnH*{C))L-uc{|!7W38z?oJxVI-4n9Pk9e{{})q!7IW4bu5zuMyVhm2 zw$+2vm5hPdu`IE!+Ts~;WzuKP6G`YHKf6`v7McysnWfB?2`f(5tb-tsiO;djNaj z$d9fx?UJnLV{c5Fo@=3(9EdgKK!mrhE6BRuzliZV&$@GAAn$)AvaiJJnXRi! zS5>wxW3K2jMb+x2QnO{7elNMAL{Iz~c?BiLOL&af)hf9k!nYEWRBs&OS%u$sKCw-E zoR5|634d`}o-%p%xP$*k#T71}C$h@Qu=dWG2LEEKp2$-qAg*8y}|6p&+mO9euOZvs&Hx|~2VBaQQuHzDQOC6OFGcSLy@qMKw zcyHjp$X;_Qt?M^=d#5jXcvkMx$7bbLub!2A&)QkJYu6eAmG1A=O55afER*)5&YlG?=9aB0QO(92EG%}nU006NOY7V$e>UJccI7`cBByrS~X?_I`&^u6-o zWWVg`6dV|4nK~*L1m7EZCwc5Ln@t_$8}VNFZCLBc`-mxj^syDc*&|^XTL81$)J5xAH%)z+8gtl|ouS4yn0?#(qK#_T& z4{tI58=jAH>{u|;`vUrZ)7{v;k(HXNxst=GvUFq+hNo}2jFZ7I6avF(+8qqXEZUZK zdJ3O3N5I9~=|{S1dT#gFLyLa(iv6#K|)` z-#SCf7@0;nWV!Mx_MM3>ntk+qo34MW^ZMsiV8MB`my6#&D+2n-SN+wS0koPzO(ad z8YnAv!chHr;j_OG`@-P&6Dc>A-(-Gz{j?=(Ug}*4-5OYM@H&>0;~_hWOP3E!?Wvxcd} z!_a->pZhQKq0d7+=*w*XVa}UtflqbHz6HK3qU{s%?PyEN-nP}Ht!-_~Om&WpX3j8^ z^Nq0MTTMS3StdHy;C7@A_KI<4pUFz@pJmv0%grMc=QD90%B$FLy`0U0&p_@&HeFdK zLUm--nNnmAX4hnFQTz=e zdu^qirVYf>rgA16Fv2f_u-z4cP0q0lo|7Ul39plH=dk!5CWk#9uQ*@4aCxWD1$B3iozvQLEWftd(R^_6D=&XB z>+^TNn05WhFE~G{#~icfpkv9)UsT1s^@U^aDdt(xg{pTSEuE(oEg#RfpHFc0ou2Fp zY=-U+gEOHovE9gXxtDj1Jd-nk1!ux*rA_&^n|$4lpN)+7EoYxAb3)Fyx?mjQoRvS- zcOnD77{0FYz_^Eaa-qkQ(7y+{Zx-KHW}8y>F%P!s^I+^o>*aZ1)#pLs?kpeu?OBYz zK2D1*=B%MMQ=Rmc+#1ld_z?G`n^U^+RWo;-=AkP~MTY8u&QG##w$pC+nP2G7qN&6D zb@2at@Q&^!&+5e%4_`ZR{$c8{cut{oz6pH9mB>2b#%EC>umS&- z`^8_(AGl{70oL2UP~c12?Z(gdB=G6*n5G5iH}ov;9)xatpc$c`Q`kSmXY?fVhq1WQ z?hS+6pXFIbojgnZY_iwI z{eNS-kZ&xz^7Jyh87K2_88fq|0h~GbeM|QvUMWA7GTh6z zivJ;cPJ@oy=!>N>P4CA_)|1pNiC*jw<^RI-%Q6S@&@SjAHGh=1f%%$x^C+)E{@6&F zZrZy}+IuqCH`gTE8u&k-|9gi7^K&}}=7PX5FPk#oe^Q?ta-Yt9H-07psS?eUkLN0V zm32*I5BXok`>4=!=8UZI`g6uj><;qZF)&XzUr)QhwQ8*jG!_&R=a<-a*Iib0lc3F5 zY-UOI{m;ycLpFnN8pwNk6gg>UgsVO6abx?=hyj^tM9{(Iiv1iuoQb>DU1nRY}j5Ib7i3>EKV9ebBw1@BjDoHL5w$;0|7KB!{k zwPyI(Dfrkao1n8`1iA7om)n!`0!DxhS;qs9}IjaxVx8nqz+l9zO9babry2Nef#^t zZ9GaFul=uJd&mB(0l4nsn~(li-(20F(VXR;j_kgfd{<}k;v6z|Ka;-E_x_bCa2C0_ z6M8tpx$BuXHFS)^2D(xieVLD`UKOU!&c_aiEmc3`;mDUk`&}=(`7h*5TE?&I1{I70 zfuG74Ze{FbOuHDbWaKDWZ}6=Ky5K_=)+OSC$j54Oc4aDJ2FS6v&Cp7m5M_e2P|Uh; z;kF;Ne#!m$AAP@d2Xfa==1&)~A-B+f^JrI%lQHB>0$ne4*jC#ewCUiyV#jzDUo=M5 zbmJ3sQm&YCa=xqRuWpg?Dc4Q^-IR4xmRx1E1Z+$(hr4R8t?Kcg7Ij+&!C(Rg(?H!O$|}mHLknZ5yED_^KayY|R>k0#c&=mUuPwv|xPVjSCV4iv zjJ$tFVh4cj9OHEDyLG(VDR6jPf!nXC{}^>O@&5QC<^}U_6Xirs2;HBzC_k|>-uav} zEo0xs*mq|J&r&bGxuGLUBiF2E^;sWPy^Og&_Ja3r{KBm5KG9u?n+ga$blo61hD{!s z@7fprpaj z%jv7;e!`nhpPM+NwyJSC?l4#GJ90IV`-AIhV5tC>&A{Tu*H;jy{5YO-1pft5O3pVA zkc*jE9gC+2dx5~YU5oO)$L}ORnKJ^HiGB+#a!x=o`DaXg-?zmr_??-E-Tl6^G#q4VHq;#_3C`t!Og{9WWF8H8wg{QCQ+RF7wuHCEy>*SvH)^ZK$31W*eaJF>8_G$iB+D`~iSYN2HPw6zT zN{Yk}YR2}!`4(GgcQ1U}k!}9Fvn{gXTs2nuYEt4KadpUCAs>R*p+Wabp`$}fv|Y$G zOSx)={>ARc|A6AW#L$2IuYFFwmw74QyW#8b%s%2_0)iaBG1%?1i>rni`z>SYL06c-psD}6*!1a}} z$-dPtF-~eq>vvp%Dq=eFv~W*W_M>*EW-4y`4lz~S?*(T+1TQOfdsnHS>+<2e;A3m)VDT3ZB>w z|9#~_*HcgI%<|m}oN>Tuqkcd2cjD)=rdgfasH0Is#|u;bP1K*~A}=gDNot|;u4Mky zYjK{R*h-dn@(e$Xe-mZN!QNxVUM)KF%j{=e!uYnJ2XAA1w@m}Lnq5EhV+XK{ZGb$6 z?59>GqTg&)?7P;;YdBlkz=x-mHnMnc!Vb@~lC9wSD7JKBuUV&pe!L-@OzS)GA4q*& zk>s{B5OWrZeT%s!bNVa(f9u&3yA7NP8;-p&0=r=(_CphPL^F10OY2wIh2?CC^Z1ho z?9baT+n>j%zTw!>o2WZAoBXZ9*U-yEUt9J39EaE<#BLz+SksH#V<$+KoTahK=0-RB zQMjqNkTTNeRaRGE^(%86g<=!nS#q5*!9h9E;ckd-D$c?-pP<=o3-DnD<*;G8?)tAw z)cQ@xVP9EQ-&f$`BelJh{3w0)4>)gxdyVVAz;~LA(CmQyIz&HWmnh_n_pRVa-s|_q zU)c9ztKN&Pdh3h$s|TK&(l(WvhP2qXLJOg1g_PY2zMCxh>=n+Lo<*KC(;p3fGiyd` zDRzwcuHLN+EWOZS{MM%pfgOg3+R(SAG-OcfYmJDgT}2zhZ-ocs0aFn)(i&k5=+EK1 zS3S4zJk}LxeK;z&^|2_w+r`|_RP8Fppml9j?y9jaM+IYWQ}V3kCzul^t;H^N7829C z)qSOX9d@Tt@5`#kID?6{rTsd6;JRZ!qG=pll~O-Hu?FI7$rL zO(y&ShGgFn){4oD;dw)XuW4pO;0|JFiPf@6orj4D@i5O$SY3S=k+*Ax_D(wuJ&8Pa zO6V%V6==dw-aSN3*-3m^XKcfaz4*Dik+oLweV(kn_;W>0YctsWYZ!-p$Y3XTEB}sx z^)&{b5v##3So7O!@2Pno9@q}PPVb)CdYb#w^1m*o?DUM0@uzIFow3V9&*IA3e;DhO zvSQ=AT%I{`Dmz*)C+}zD-`x-2SaW|v;IJ0mvkf1bw7InQm5z0__w?c$^F2{}eXo=` zOitDO0r_*Sz^}!4_Ob55BNETS$2ZW|P(Sz3Pmw7FPl9(JJ{yS}{4M2Q_KE9W<)<1!p-fiT_0zXoRl*I?A^LaOPEOL>9 zvxD8>$PvEtjuXF{+3J>ia4-wGQ_dBZ|Hb?lTbaC{#WN2-;myrUhL<_`A^+B%tWdR8 z^8YqfTSVPfPj$^=zHR1Pq3J5E+1_34q&{LbIY;mabO5~mRp9Zw0UnG$(nJ1qIeTUw zyh*1mXk=3a_N!RVS|Vq+tWSHFS9VB!jxDR~&J~rt4q{J>-gfvLE3$f}KKu}R-Q-r# zX|A4pabwA!dv2SnbryXPnS%JC?FGX#f_gVP+I-{+u{X;5P2jsLgP2&&Ua}kfJ%a4@ z=!Q9tqs)OZjK>X>6?zpuEi^2&{841@^aP{bCNWOUj9-i3ne{6~r~A-J)`I`TJl}@> zMP$HeesR$0+S>Xj@6lp>@0(q<+Zl%-eGV=A0GU4S?)dmP{0MOmS;}H9vCjRPt9Jig z@$q^YEygJ_&1qze)1ybm>*cSr$HzSsQ5Jh$;$*$-XnXwrx`?v(M_VS(g>Kuy&sy-^ zoXmXDSo5G=f%m~rb!mm0b*YH;sgQN*7S^lp;orKswIAE0$WxmP*erLe1D949TJe*v3$0U* zB7DU26a4NXwcX8C;&LjGY2f`EqT`Uq6nw$hFe5!&z20pk?mdUNo9rQe!RbB7&pqhV z*B6b?dBve@*pB`0N4sA8oZQHBs_x189DjNH5aN_SRTDl(o>+=+{S0N!P$rf<1oD47 z|Ks?-t9I$dH*4>`n4Yy@q{^B;o;y>eY1UccBXNDc6FLo0R&GEv5(` zaVNGV(dbU-osH0PbezQQ5GSjMhlPf(#g*7YCC(E(=s5Y2;KX?K`B$MeJrw^~nFdcM zM#&Vt*PeB+$P28U%Q>rxv&p{vk!r2{L4My)h)coNAD5bD{NqvjBr(C*jt?p=51AGn zSJu#Fj4S2RSi=X$uZ7OIlGsBzN6(DRFfPs2x+a_bLdafQK3>qfY6JbAT49K(bJoD6!jQ3E!ezfL2${Htj5!dLk8yk`3Owq2snd##< zUPrk)V*9{TX(%r7+W5Iptd*Rn_W*wMp}))3fZfHx9T6vD+ng9}$!@AMu+l5Z>X zZZGfmqK6))&nH-~iii_36IUW~=U)8Z@~lF$_GBOn%Qtc^$Dr7f5B6&||6F1p-Y3q* zp~YJB(p}jO;z#ndXpe*V5vfb!jf9`=jR?*SUK=(Wn`syV{heHAkAz>6td;_S^S;*;;eE_)6+PvX*&z(ZxUD|a5czLPVN%$$wk zWX-aoCq|(^HnSHb8hz52Z*?-qot_b zf#rMQMNYH1*vk3#QjgRTGsTtDPJJ)uM>(6}Kh4y&7`{RsdjIn^&1znSyn(*F2Yg~T z`+%GTx;|zlCN6Z=pdq%P&&XPjJidNjZ0~fFtozvZ%{;dx6!aB??{VNjVp+zb=fc;$ zV#k>Yd~!aZ$gVE_8-@kzfhp)YViotHx)<}TGop9e!a?PJ^$q0~@XTcm!cd8A1+vvD-m-ym};hUaTa8WSmyWjDhGW1T9 zz1*R?cF8l=5veZ=-2YE-Xy^?hGt2z{H)uYMbGJ-9Q{mV%7&F=5ahSErA+!_eYIXd( z3YcqyGL#2+$ekt;ah0P4nWy zqJLwZ&{!`FtQ$u3nJ{9ngF5eRJ2QQGoOvZ{r`S)IaMfvlXS#1FdS0txXKvOA*OT4w zz+~1qlX2+2R4utj%6A*stIdDMtIuwbn4^qWn>K`O!_UySKO(c5fi3xxcHj-{OI?(g zZw-{+#X2BmpQ7A)%Kb+692k;%7C?V3hG9JtPbcNOk86{v9&&7S;(KyjTJRL-7g-%z zf;DxQqo<3xUCG=|*oAygJE8p}*fl;VXrAte=jmrXxxiU)kIGH-pM77q6@ZU?*3Gx| zn2>K;D`jmg0yh@$V8R~Ig-mI>*VWr~PW49L$euEA(~~J{y`|@Q^!t<8N!JQ5BfhME zM(`}kmyyTX!(F+*BDV57s&&~So&MjcSsjIJoa$?6)nxS~`+V`Bo zwj<+=Eut71RqQL#T%~W_@H%UvD<@T1dfp7$&`Ot#e%HPRKW#M6$J4&>uIN#&npf!C z1nTC@IuDBxaJ!yt2gX>Q-`+3+6g!RN;7+a@3rOyFDAb?;{Q3+uYB=Sw>e z%etn^L#7_-lRSH#XF@}A&X4p@;9`yk$N#}=$KQC>_$$U=K67%F&*rawR!Wyz1j3No$^}M{ND7aou6d0k0d+oz=pif!o2Ckbf!P3Y}tRC zf5@f9Y_v^Of$WP{>P|OF-MgsUUY7S>7=3=i?)bT~*=|?0-wwwJU00O09klJOnphJD ze@p!ic5(0{wl9w#U5s;>8vFEE<%2!Q=8KUdhy(thz0vO96z*zYL!V=2K3y6!KCtY4 zo}X^~j{gJ3sq^vh_7ZRO#_a#RC6GtF^j6lChGBC9^RV9uPdh@K)KL@uNo2;%ngtyN zVd_Ap!RUE`dB%Ug{%wTvWjq{PtGG{Z2s>~VexEu#2wyt$t7TYhz(pIWzn~00!DH07 zi?)waZsEuCJEXo$=0Y}Y*bKIPH&NCfX4C6TM;1a3FOfQ_zohduY=Q8Wv6Me%)SREf zt3E@1dQ7#X)M{iOc3q@`hIfL>?Ijd7}B>35k{^*1TO`I)lf(9LowV9YG;s?sw z7UTDxwrQD#HQ!DAO;0?!(PnFk$&dcIFt*mYZcV9W&x^WD;JmctP|;V&#NYpUY4P{p zSQZ6s$r+38x@~-W*P%IYM5V0tIEXD_etkUhY&x*)&_;QUz}&$4tIzKTbM*QBx|XnB z=3UdmxwU5Sy?SYE?dp9a{XWJ^d^xFW3|{1`^1>?erj0k~d%{dV##ZjfUeM^Xvqzz( zNi$gss|MObC(nm2;28&38K?TO6@B2=^891NO+L?op$9x#Lv3+w54Hl$Kejfj1K#dW z%?;+^|7w_$9FPY$@Lltg~OvW)zMm+}vxGn{?p(UuM4 z`F`$-s*cljhJ-U^uD;mi<2zb8yY)1B*%`*>EV{8mcF(5_b0a1FMw>M~&SlGZFg78N zwPF4ipS@yJh9_S&+S6}T2}h7arEK&zeXOFw5b6lyQo`IWyfKHY#lH=$q8szZ{QTdi?jsxy+d}r?ptW z$inL9yL6jY?|qT}uffR~&gT2PC!+P@ZL04idqJBbqkZQ2@7J12o~YIF-XN1}tAxrOsUSKi!e$R%D6c}QrnXAJf~d<$*W zl^xEvQ#)k;WGd}TALM;E{j09x9sT3o0p98T>x8C`jOA=)-apPBW+_{YEd$+u>E`OL z8`C>B%}IM?(;O51k^1I`aMJPW91~}eb;j*&4%4fv?RlI*(N&Mn<8k~m@JQf@m$TBCKejy1<>+Sq zuc971_hw>l^gUd_nx>BpaNe}(p3T);ZyXF~G~+8Vi$&BG#DTduRNm0B>7MkPo@ZRI ze3L(btG(dRk^YH&Z#DB*@OU=pBb7QFp5Qx&=jwMtCtbJU`!>%GoLGs!t#)>x>#!DB zy}YW!7jDMpv9s3gwGy)xn_#t?ebwQ*PU+8+xx|>t_aPbKWxjbAePD65rz6^E^|j}^ z0&R|{6ei|@`m^d)fpaHu8E;y4&e&(?%vH{@JhED~cN!XI6oiFT`j)eWpBuLYk)Y=Q+?3$KB- zlX)rU>QlIRPKvE`D!LU=2E7+YF1W4HG^?{hc*b$l^_zuWl;sLChv~n5jdzvr$Lh zW<~-(0K7bbwUw9ydvOJE0G|_|^9?-a1K}|ry!%AyS=MlYdkJfXD>iJ-$>~L{Lc3S! zV$d80-@+?|4}{7E>Fr7xp>b(C-Y&`{oG8X}%2^q$z@Yu|_J zxJ+x*aV@Qhek64`J+wg`PS3S%z_b3r{8a;Umwm?G3pcp>WZmqp$KPKvq%6zKzPrh+ zjpFB;VT;%G6XwvW59hFVI4;Er?(-PGDsW%1+36|5*F+3O!U^PtRg`m6rg+d852in7 z2p8~?T?1=q_xt&QRUgI#HVLocmj;j3;IRgHtN|YT{FLYKQSjJKcx>8m{=;JxJhq|g z%DhddE_4(BnOj_aaZj>NHHP_jh&;kMZR=TUoNOz@~(^jGx1{*^|2xh8ac zGrB(h+uN+@{!!RIqFb{D?@i59eSPSAwdi}g4#+yOEk|sCLHmg4cVE*d)9sA`)7iR1 zt^c+5pyRu3UvwuO{$g+M(JxGOMFa8SvkoO`W@}RsaoP2zlwsJB?dXL~^~SQ0PB{B# z=!8>yr~d|>uo8b?RR(@Va!idy--2G^rEjZ=7wXy3f?W5jW!O$VJ!4wzshT=_lKq?5 z?5f?i7JHPfWy5UZ$=$y-I%d}y%hq5!nDtxLT9HDIj7e(BdGyWm_=hdp&Ro&`@aqMt zv0=IS@8-V+`OnH2$n%OJYMI0hZUQEa`H+R5s}=k83FyU9XGy{Kz*@V?E@z5oK<~dr z_Lm&ryLyE5xo-cN^Pw`v) z1zXi8ef`g@z+az>9j(Hc(leiVD0J5Z-PMARyNQJ~qYsB*-K!=}Pi7BMGJA+L@`0o; z&h?8QUCLAs^k=Wiy1L9;x$x;=nbiYj%v##jW#)Yc+kHygTmA9ti)houd^b@ib{}$W zqi2Ad{N0N9aEbCGp6jp?1<6t%LHy|zC54uNibUVF5p={jtk!8#?M#w*l& z)W}{IY&7DxJx1S|zw3|S`$^M!r=cq)%Kt3p1UAV)X9~WT1bi9rR$~79ZUfJS*Z_+% z8H*RNHPQa86p7V{a<-!{wJ%#5k|VnREMRUQ5m_dFR1b4%Gq`<|b-JJ- z(f>7YNPmyfw^5A!Xs!|bN`OhF_fFT#{Y#>blOyOuyLtC1zi@uyLm<9x{m#_h>BYd{ z2Cl`xPzY=imr;cdFso`Y`?86#0|p;wMEgeOOz-J$EG;JHe=KD=&$vVUontBE=DnNP zA4j(AiGaSc+2_P}?g_|1X^)k81% zGqysjT@SI&W0%*UQHkxS2KR-F@LjNnc5jZvEe-K!afY0^PAepEz8m=^a{NQ z?H!{ppHeo0*w&k;NBFj=Xx}3IcrVo~s;R-}&=Hp8OETV68)=NR*5HQ--WS%^;@=2_ zCHr!Xvucw#SM9h;vev|f-rrhVn;3duUb`a6mHTgDDZUlP+x4yzYjNtTR&6b)-C9|=9;FE`Q^;EdRkyx7}4V^LA%$ zePl|cF}e6773q1HdV7r#ZGFZ_-9CRiWBo&+ss2=N7rM#~od3BZVdotWmZ_3l@&U`c zB)Kx4cS29&`ez<`*R#0ePUuT)b55)4$<>_mdQwX%c4MC%XB=)lY>e`}JGoh(_ioOH zmHBg+wokBTNIy=#)M8()S=_VI57^&!-<$KYigLc|o|tpjL|1F`rMI7QhljUSPi)*8 z7q4s*_xK1ln$4f<$?^44pOJ8pr%VM%}7% zrper>c#yS?{41jvqk4Q5W3fGlZ2vt*qjMbN<_3Ov-T~~llbSixE`~N@srx3y zy}}1gVpr0P#h+$sjx6dmrN3n#rbSqb@K?E^heG(V@K7r})B`PyqaU91ckL%xe?0Vs zGu*5d@RlOsEeR@61>8B-;Xd)l;S#UX8t1=hbe?3a=hJEN5CVWlYpB zHn?KOK=|9xx{+mtW{F!c5#QKkFQoio^7b~c|0Zk9aG!QS`OmSgoo8M7FZ@`tFY2hi z)`hiwik|lw@**)v>+fW}aRZ0IAbpXxq%X6u4NFXf*iZ#-vk@4LX3y7poe6FCfs06R zBkPZWeK4ZGNdMjRznZz=t{YL-gKu?~mNMx*{73sAsz0w~(tm zt5-J9UgDaw?`FL-*gUpLetQP(7^<+{QuiqA)dgv9*~9h_Kk*Y~Yf+j9A8UDqGI%pt z!&A8@j;K5XA6zDQPQ^BBo94G;d$q~CYRVSWq?Tp$_fN~v-y8JzVxyJ!ZLDDf_VJE% z+RLQ9^t9df^iliBZNWY$RI^BSxDu9lN{KA6GR$C;dh2 zg}{-|ySR)4_4ZS zel5|{x%sx`PWm>HF^#iC`(mdd{~*K0LPuh=*rCPt96KG z9OuPk@vg;a>iLuy%*;>w^|2G5UC6KWP5BfqF3l&#gfms)a}Ici85_L?Ivx7~zJ2H( zK5=lo$>PHg82Fs^7@9n|J=#>9nxVXLzizhM9@=h6mAEX%*T_3$<%6G&-fe$G)gOW% zA9%a=g^uS@-3*DP;;7o_iNbPh*if9 z=HK6lEh-=Tb5IW~6HVHo^*U|vd1&TOGA2lh_4xlZ4U7!{BceTJlhIije@T( zVGhq8;H&ox$U7d*h>Tt?UX^)XAG6&w3+b=CV&&P{h+WXfD%J%tY2 zHrj2qU_0;2bOlBmoz@fBJM=o~f4gR}-t$v`>HeF4yUbnp3Ux0$^m%bp={*xRFPp>t zer&t%Q16@(ikP~{luxL$egb4Z=k-5%-7HH+vZ(L@GfTk&&#)ZH{rw1 z(_+0x*jKr_dU1}0K9m4^_TLsBx`nZGwne6(-z31}yuMHuD6tl-!1$1aVa61ddU!JJ*%>V-y{w3pD3)(IRUS9JMOe*Gd9laEKcSi zF+J?z6nGkkdN;E_>AFZYMQCBQ&63jM(Y$W*w|Mcboqf%3FQvRQhZrQ2no==>SR3L{ z@qu}dus02##CCW15WkzX*-d=I0q(PZFvOo-{ga%>>DwX|Y3+;JXCKpIP3dF2$3#Y2 zkB142@Zmd?$|T<9n{bc~4)nVJJ5jH@4IE`h2=9)y{+a861ZBG=U(@p-=;d;U`b%!k z_Bn~qIDA-n|MpCa{dn4+?I-l_T)E;qly=$}(`@WrUhG{Zb=e!oT((t3S{H%)Yul|h zhT64Tk1urv&W72nB6I&=`hB^-cML0YM&Jvm9aqyVJnmyu&Vh-NbFV&5_RkhuuqfQP&t^0qU;bcxnQ1 z(#T?B1L(euwV^Vr=JXi!eSFyPc7K5hm=`mLJBfGH`Mb48`)}ey8DHVk-N-Q~;CaHU z=YQN!JmV~QV=+9^4X-SMXBHx7-_pwdbbbAiTx{3MpXZP>#U?kD`8s_D=a*+#{6okQ z^Tu^I_|8kBA)fM!Il#U8%h4Ge|Y&8+Dnt7|&^ zrd-jF3_48uyV3Gac{Tx~1DNuFNo;5$XN1;mp@VPJN4`Y&kbNv)0mFGoaTD)Mz?G^E z^URm^2)$&FK}~;(=kqupMC|3C^v3IXV&?HJ{))59jT<&d4))w*^kH}WSq*tWcXM|X#9$dB{;UcT!z%D${aQ$(!VU&de}a;a9c==tRVuloQftl-2X~tKPZR5Q+7{pl{#dBf?ddk6NX#FZ_jyvK&US9E#yK8wy>X;6VpjNi4nfxj(|>>PB^i%jxY z=99#eh4zIdBO`}sMd~%(DmG2xJMn2i8$Bj<=HMt>;e~wq>Bw|B9LQwEW=s*fNoQ_| zd@KH>yhs%oN}uwOf9qMd7`t+lF_{&>gto$0XC3IUX zHv62faBdlz{<7O)3No9Xb4 z=KHM3hJb0;4LZ%o+uk6Qm zBP+8{vF8|NZs$Cg6-JAX{Ubf1-wND$@Xwv_w4-u%;*B?AhaRTqt2qGQsKh^;)vp}C zz;^eELG^VoRyp*c2|ur>g zh0cn9L~d~AZ_z+scio}NkNAwO{c}}7^1Vq8(sJ-YEXq35&t_h_Ko0Ug?D&N;X5c3O z`>Oml#tfT&t=L$Sz{wB5&woYiykqOM!d#Q4rk!7?TE9j=(f8|N=Ord-UBMree;qg| zBQIx@Az@!?{tZ1=>dIogQne({X7JoqfS!*WSqKlrFTc*C4cGGp5xa3YC(p$S6*!Nd z>jC^+_fJ(*egnL>k@s^?JoVUa^Bh568b&`PUxfqyokxx<7d)Bq&Q@IWXiJ-=%0GkO z_8Sb|&BdyGD|KLFmwn|^_5GK=nXS)avv0{G|0UzxHJ5dOcU#$?BW1R-AEr>Q1(6q@ zGY+3Li@YcGW0hB6JDNy5)j<1lFLmEej?yAvoW?#J^W*rFS=Z%Ujy`zW$E?9w$S#5d z7dlSvgo3_j`}^N;vA0FdOYm#W4W$o(x6Weqy4Ww7SMf<{%F)HQrg4To_R#lDgP!YC zmG=cZIhOHN-G&e7pP>ImSAMr< zC~@$!PU1{4e5BDoC(bi=ReW@Abjs(88se`XACpr2E^~dVH3c0pA$Ee=etMVF-?O(W zXRj7*m1o`jpJQk&bx(~UX2guTA<1|XgSm5oTNhf?3oc)Ryp5PY+`>h`*5A+&K=ZawmPgyzAST)KW)$^ zPD^FH|Htyl_#Nr{IO6aBVZA?8fs66%w>J*$*?q3R{2sm$S}->S$KO;{)hqOom8o8@ zV$7-yS9pw76WPe(*+d>0Q#8B)dWeOd>pA0aH~DPzdR7PPNrsN5BVYdj8vBSf??d9_ zpbed#H27N6n7*CRA97}51N78J*-g{b>mrY(L1+DcQ;uGET;YAL8sQZtcm=*$ z+mRTaJ$2<7=U3Q{#xqx#U*uEitAszw9BUewkN;g}U9YCFC)kiQt)BBGUzp4sdoB3A znL4}KQ&V)vMNDKcmt$6bVKHl>txMWDH>jM2atZl=Uyimzc={oD&caWk%ZH!!mtW*u zhv$qVCkb4oymM!|a*Lx4W%bb9CicM8BcG&U)3qk5sm1h3?7B;VX%_JL*e`kebmfmW z#`<2-tiHqW_g41Go}M832z!}Bb8ud`|7md8#rRb*XZKuZ!0H4H)QyaeJjtGLc+yYt zU3SG7^gW#Nu1kM6l)V&krpM5>(F4~hTurNjpo<>&ZB=FW~}NnmG>C>y2$Jg zKzF^!p2=2ME^F57CMEq&_9)h6MK0?G=&lnTPV|`2J6WGDtkj6#1YX8j%BAt%%(v{J z@JQT;op?EN8e!v7iBeW{2YIHjC!|9o@@{8_dOaCA)Wq5mq74&q5vHYA=)z>;p88o2 z`t}IT;X4s}Go@k+)Yw}=9A+kU3myId{#uw2tV@CaG-QdwVZnQi`*d`G=hx=ZKG)SGuAq2ggm0d+C&b> zO@MCbf8bL88jnP=<|N4|n@$QoD396AARh(YanlQ~_;TCfK` zScL3QDDu=$$$`l@rWEw;i9yClG4xSKA7%Q6BHNK$#$U+$3&e8md1G)q2KcrNnj=X@WM z`ItLFnGf5soVAsL4@L6Ph5-{iGG1(Z0)JLYkROXY*hAS$)@Adf!8Mpz#NO&?{G%R6 zZx{RJ=NU}wTl!{Sa(Ct}oFg>gPyW{2(8&kHwjnkzV!W>8=a^vZlf9fKW4?db<~V=X zP<^d@UFEwj3ce-ok$9{?Au%^y6K0B^d;3+fZxgX)2~YW{T83~lRqiYLtM!cuHs*AfOb413i^D|xs1JM{7nH5bIHN_TgCcoVs01y zt^W-Z_>)`>UC2#c@bZwplZM=1MGRS*X4;p|nxqx(`QnJy`9%i*4Rt%eurTH(^l}*w z(=cq0rpTSy zC}U6is&-1RTurqg4%_nVSFWnM3@&hqcy=;OL*yg7W+-_<;DE1wYRrPdx{IzNQaN6K)D*r6S)5 z4nFqucH_rLo9Vi!9@!kjI(n%g(sd~s0MNtfETg%;<@c>u&dYQ8&l>U;^iKC>Il5_`yvM>6!bO1AMc>-Unsj1{*{&t zPdl97YDyK^fm|m=?DePJhF=$55V(Zjq~m9AO1&viIaE#ka9+McV)}$uJD+Nt(fI^F zAHT=>t>jnFZw0>x_}#~EDL)UtMf?`>tKjz|ez)-h_ZqOLK_dctVs1k~_=7xaM8>uA zT;NP4CJA3?-)D@S*dL(hgA()Ck8gGfc^vWe9()g-cpT&E#9m!IHF0Azzw!LU5BsVX z=UWHPuRmIm^FH@7*TnxBBYQoOLr&1oO;z{iVB_)crCcNb@mc!^c*sFw_umj3a)p-E zvzoH^@}69KdOgy1_7@d7_`CfT3O_ILkrhhyEDT%8RU5d*^&B;}kWb3sDOllUpVY(l zf)&{v?>l3CM{DIC`MFl^m9LX~u{Cw-_u4i0alSLWr)}FA-b+kDsut6uvA0Y5Bz>2d zF@ZB3Ufy&cel_Un1ooi{jkq>joW!X6^TLCBD+G_{;r&M{@GI%^nHykF;a!;(UX%`RMUh=JbMn&YZSNM~)5?&oz9*C(sckH%lICyc;;2 zyVzd=4a$CId=VvM>s(Kc!_Tn_yOQIQv1DBIJ9d#d))0Rv_pgvEn=N#+X!;Aq}d8f2Q-(UF8erlaJt!LhnAE##~ zFvwbVn0NK?*a2R@ZZNM;XPx>-{9SCnd(Ot|`8B?rtKp|Mw3<}DKXF%_zmc|g!RzHL zq9d%!S;OHi$lYR(x}Np1i}6;CasC|wFY>~FaFuU}(|jXjcMRpLkUhzR>rWt8LM3Ip z=yMl!n^;FHrEcokMm>G3-Tz}9N8+xo1Kt;^W5fTVj;y4DzAVoFl=an2pQiwm$j+;P ztCceeg|Cj~Cpx(BZwD~S93Cli1U-hmRc$@&(^#Xq`d%h3VFU$BLW?n5r%*PD61 zSX265W~V{D(L}u`@EsuQ_jFR9(838~uB7kstdZ~B^BH%+HO~t9R`9WizI376>o~Gw z>oF?-0-jac8IKEpk8AnnzE5oAc@D#GV#Ti(g?}v?KU)m`wphkEPGZI{=TYgpP4!ts zo*1wR+)-88`<>fG*AH*I2yP@^oLqIBHFRYyyMwiC1Gpf5I#JFGFmj~ES z&b6hcvpbfxN{&5kgulzjy2XBj&M^%$3Rye4SnINw8-?f>#xgaf+?DBjCNtkLL<_S@ zzOuf075MT7D`xi5x5B58ZS}qgA9B$r^Dvcj9v*xS8mKo6>3QD4Ts0)>d9U2q7^<+vW#Nl! zB?sAk?8j|#Alra9u`eT2`8j_hSL)nFU9w-bkt?~6tmlx$PcnbxD)l+xlcr1kQ@V}Q zo%Fk86=$W2OfroaxR2o}A_GcZuAi`;=NOZGef7kt7=~Jh!N)$K9vOp%OmMOaA0}5F zmou-yWquHs_hDy1mP;%o9@mUc)jipeYr;p;HQkU~NKCGYXI(cKa?8j?so%@HJVS1R zd?UC{58_viqCITD8rPGP4e0qQaSrdvljU7=GdUd?gD&P0JQN#VLU9T)8k%Y!=Ox8xlxHST2yJCwoC*C)&i0diy-mcLO0Kd$Olq=cvG1WPLQP#oEL@9WsHf@0 z^>#KK=8&H&-pscWCte+iJrbXzh4|1`-dTxFEF4ttEIn57UGleJXC+qgFtq-MN#uQ% z_-qs3LOV+68ayb;LCyLm@ghyMIT$uMchCept91Cxp1qUUqeMGx)zw$Ut><6*r$Y|n z(GEk$f1r%eQ#v}a(9;p>?}DC&jaD`vH0Pk~U>e>Dy&Yz}WPWbd$d!&BZAuK%bUo$i zUx(P@EcD4id?R!)2v;M@w#KO`{f6P5)wI_=vmjUMN+++K8M-^M2>%V|?%`wc+&;R= zo{Vo*_z*HtqTn}F_iAt}b*BScsIQ@Z44xNyKj`NV`91`5tERQ31GB(T4bKqx@_8@! zCy)=j24K>FsS9|-A1r*!5Z<)G6xOgI2_AAj;u-tX=o+%uPH0Nzv&^SF>iOm|LFUK^ z;`{$HCXL7~GA8+4^}gJtY}e672u8^V7{YzpxAf7Ct;Lj1ewJ^0Pu-^Z%pv;f0Qam( zo+Rc^2=~Gxeneko-^JH6iT@kuGdA73n@3Eum z?_W3j&-4DT%xUqXN}bofKh67#=<`yhX(TuyFXesk?=RV}a)xhCvQ~&JEV3*z8vA(? ziig8vng;QhmH{3!1RSk^$FwkatjSk+OdB>{`8IJde_>tF`3wGE;V&oQFJEQ~FB_`! zmrC~53V+!Fz<*fc0k**UbYVKfojjSeBjPQ4)~3f`ON?yI5I$Un?p259T<$^19x7{2be3( zW^~0W@;324k2s2HcCr%&}Rzel$Nv)~6GaBbm0piSE9{ z$8?c-FSPgX$UL3;ePY{}nXbN*(BHMRH;%dmKOr0l9)rAaWEuZ2_fPofPW&RmM?2*T zA8lma|K@Lpm+gg*{$KHzFY$cLS&gecXS0<}w_iXLp}Bfkcn|#-JoFIjl>_`y*!&v7 z)0l7VOH$ch=Fa~Wo<`&&oriGM;rSW7iuHZ)Sga<7)-+z({`s2c?_gs$d6f+t_Arq_ zbh(0O|A;T%%6Q2bg?QrIeEUswF5|P;er0S-b@sAK>~S)0MTfg){(exv{O&(MSt1L_*;>!OykWd737#(iTvB81=~Pp2^6BA z@5RScl&o^Q@nd-?>#>=gMd?A^rg((PZKFQcBR#gf2VLE%aXumOJSWk8#&Y(c^wCjU z-RmF*Mq~&%o9!g}<|<9qUVcX&%+R}4;pEDtUD2J;@BJ@Re}xv+GZWcY@>sjc{T+(k zuu#V~-nU`btu(X8pS-u$3^fIN#le4}-FNBVd;C5J?zzxHTpBT!+;?)_%>Ki)tursB zk}om+<={1A`^-y?u7=Xgw^Z!I*cQXW!U)-KDt)BJ)B6Z9-;Yj-!lxAODb7&kEs4r2 zYvXb1lXbY|CZ)#~{+@f`4K0eCdTFZsCGJPj56R(uJ-GRlzCWQVONy{w|93;{&8H{v>B$d9AX(i zen?A6USvqAy<4T^8jaRmVu%AKm3voASj?8^HpTpoYh-L#%xCMLk9m9j=9n#yyb!Y` zY}$k^!$)2J+Ko{$uf?g{*T{wOS`=e$bT}uop5x=x$Ky5N{T({m7I3=-oV*s-5cmw; z(F%Eg0OT2(_@{&tP#wE`X=FK9e<1G2zvS;RVy)`t>8Y@XzmH|-<8l`D*51w;lG1%^i6m(vp4fv zyy@Qz@Gj(%+AeIOCUhWOZ-!@g0iRtTYCX7dUL@7tQ!y&-1zb)@3%7db#fA_ZYv(k?diN);zP&&BeyBWT?t% zLC)Eh9@MABANLWzAME*Q&a>F~e~wPnqK0^W{?>Z?cfemCYeDeoune#nZ{cxfjc zS@4fMdw@QDnEpq5heefqpZniZCdH~szQeb77*i+Rk@;WtJB-7e^|Xr(QI9oSPTSIN z`V*g<`H_7(@00ju65sB)AN){m$FeZ*8^2y>58O{(v4*l6>LYYmRwDxnEZ-Ga5>&~b zX!}FMFy{{TQWf!CQi>}1GvjFo&I({Zg1Al^L;DYn$t9GDYQvaVaKGNZm_LlM8 zAG!Z6a3%v2@s{PpmUur>EA4+J-db?@+q>;$Q-O04W#wLQDSaGHKU(-k8`O{K)D`N- z3gBJ=+{0)mXINNSQs#$t_G0UBH8F-lV>JVC-9g#gC@Xy%LES0zM>n{}ajzUUC@oq|8q! zGtBuz9mgMorzB^dl!tbu?=oKU-6-nJp-cwXk-&Om#-Hua@!es{qTlItKRD1gIR`xj zSf|tec|)-MLdwXv|2D#2CNzT`cGv~-{|3iTU`W=-wvay62puy9QcmJWev|Pr^$gYF zs$%U;qW#wmiPjcFn8$atzg*&4hSA;%@V&w~T*o&uUHJ;yoBqJavhxx4c&Urre8U7^ zi@2h&m%PPw823NtDswB7ZxUsUnNwmXYKaeCQzr-Ql(MD@P6QuvUBs_IS$*U}ElyX& zsKfudjS1Mw!#$h-pX>*a++GQ7!UMbDIa$bbW~KU!-0wjS&O#2B{R02+tlWzKKxWsF z-3_fF{x_R7UHIQS{H(0~tH)VVLOgIhJn$9PzF7EQTv9`+ZGi8MBhKrX@I7o@!uLF! zd564(zp0`0DSqGIb9c_4;GuuO|JH&leEnOG**}CvzGA<0zahx?Zm)bG2O6`X8~Ia> zLoV~Zui%Y;FhmqjJa0KdR?yfQFcpxsTs7yzIErY{%6QX9DFCs5{g~q&;}% zTIiWxwn3FhPO+!2QzeJLD|z07@R_OaxG8m#)cI2UQ0F4#&4niA7kmg_9y3H(534ZG zSp12T2ikcWo%;6!Fv^^0xjX2eYgrKHUH|JR>`&jVN_1H1yVU!8;^K}+4WA@+>un&P zE<|QL4$bK>N*POv{yvuaUe7pWf1LWI4&waFrC&SXPmzWe`#Jop_uW6TOmso{_IQ-i zVZVO>?w7#JA?jss?i6`Hh2Q(!9}gQjN$QdNz1+XX`gAw_tmiwSMd|C^$hrdW0m=nw zI${t_N9Z)Y>r{xQBmPI4{&H>sbeoT^xm(Zg`{mpnm+ALCY%fB;tD#dXI@e(Ooelkd z&i;~E^-F!dJ_)Zq1Kmb5*Mx3;@I@Qn&fMe88N)h#oxV;-cpiJpZ$C#LjvH<0(Ls7G zue>kkIP@&Mu7&;Dp>_H=H2oL$mLH}*S)*5iFC+C|N4*m7zYxF2;i%w#;KS@8|K0Yr z?2TreRB~x#1UR#(+&Fw0;?o%XK7w}=M`EPxVR9tMJTUT1@{%54k0A26elC^ZTzu%C zG8VD_pSyF9kE*=({@ybQnM-bygpf>-NkAYo0X1?-riz&)BDo++LiH5SDPXjn$p9Mh zl7NsP+6H#8jL_Oj-vYH(0-{)L&Gel2aH}?mqCnN!o>KyN$%U&Z5HHR9U3+H2a1lM{ z_@2*u-aqCud-m-8>}NmETI*Ts_pA#wz(V7l95vp_`gp74ZgGeV1h(8uWFxwu2|SRbQ<-iJR$eYPi< z34W1d4CPpqx^HHKh+O=g&G<@NVzUdb zVk|ci54q|2YXTc2UUl6yfsK6o*9{3g!*|Q`69VG1aMYN*LHsl5$KI*5~39qLO#;P6mlj-{XL#snlzQ19D1cYvBxPlV2o3lLuwI-WI# z9F$FaZyHXH0luFnZ*~6AH|#Ts7s_6wWGVEgDSVvGv7YDGV9;}c?#ABR&puu;eg)W= zHvBv5*3q{D@GD{qdON>`FZQF@BgDX&7Pqf#E*Ws9fbs9JGzAZGPF0)s<|tb~TEm<* z4FLliaJ^IJ@vbubwm<4CSf4)0?RZ436AW$rkV$SZ-xR@JXTjUKyszjdtts#h`>hhM zS41qO#2z|%Ms9*hQwIu;pSGc%_Cj%->F_c!1P4v4lw)Vxp9SAF<2UX&kgV$-4#rIQ zpnU|jFz(ArN#QyAv3l9n?IYA+>(EJV=R*8j)xjyU9<1lLiQGyi^|F+m+=H&+id<(w zrk0z17UBlsle^X-a-2B+d9&O6SSg}zHaY7;_! zkrqo+3iy^@tEim)o6Fh%rk}ceHRi}UR1+c9C!0kBTtIoX#m@qeV2O6N;Sy{3(iS7iy#2#<7< zN3OFbDPWqQ1X7PY_*mzmc>UNS$2GC~v6W-TME3+(J(9!(0c><6dvbF2F~tuJecF zddUpMy?SrT)#903lW+E!*;y8?1s{_}_B|42F0R@H-6d`&_W?0Bx-6k~%|@TUu*YDv zR%TkQ$?!vG5jc_xUXV!MKH}$FZcMAzoL1Li4PPfU-i1ze;(D`Zez)jU28*kk@v3IL z4ui`JK3iLvM*`m;R#g!DP?iKfJ4R{ET{tk+G;TKIi=sWEVX|3?znAm>f0I@Qrj3@N-do_Xlp5fez~xj#?(2XbZ^0@HUW z0g^}rWZujZnyAxe?x`dOr;F>H4fnPcF;2_5_w+DNZ*R>Ft;nG?{I_}=@#E>_T|Rkw zy7T0WDXl&OK4R?sIn{xcPB4;gdleg=A&a|)O>>H_u!**#$G;^q{#@teI!CX1!C0dY+9G2ed1fPfh*s7O zc^7%EJWuSs$p3=v$Tb@o1F1_dbNU;eCI5^6t%AOi_gnsDRgBNSsIErm6(aK^i%j_Iy~WqCm3T}WG>do zJm4=W^9U`~Z37e7kBubs--R!)Np)IsiRJ8XPxP~oEdfWk&6D(9>avQ?QN}Y)72%tm z^EUUACz0Q?IbO>CcNc5HQn1`^u|w|JWRu@YP}ZFa_CC7jDM2TB34G$Ch3>JKG3=VheEgFd zs_{YlR%)ns(uO0`P`7p*dOi4aYB4e!Sy$dLSC=I_u`BN#ir)>gvWIJ>4c`dj8ySN^ zywlM!tbttHNE_?G9h%dqr8tTGf8=X3KK!5ap0d9!>%IK`G4mzj-o|JY$2b>pupzLK9$qDEhB&)06pPdkm_cEk^(hw+)C8UsDID*?$pwbpm|E8E&ipLWxy z7TQ`9ZcFlH%*Nh5x_ykcwf4x@ZetT|Y>8?^=yI+hHb6ckZL9CA+sURc*nC=aJ2GDt z+%J67MDFeX%v?zuwT3wIV8v@5-&eOWlYWph>zw%>Ch~b`yB*!BcObN**Hnb|?+dCARH zmP5X7;Whd{jsH%gbNYsPS}nwOd|Mr)36BeZ7h{X-{5?ypJB0n+%sY1=cd%cm7m}*; zm*`K9I(!C@$0pkH!S7CUnwAI8cX6%gi4sck?%Rw z<8HyGDq^og{M!Ar;inBhZ3w>kTdsHJ5QD)-;=UKNX3k^WevXVrFG&;GaGL&f@!mzq z43&MkF62!&`U898U($4O(3*8CYj)>LH;I4CIk92ecs}}P zRUd0F_9Ag%H-Py}1b@69{IL{Ymr(wiu3>+iEwKZu->|J(&gZ4~QWdRlWm9`}_^ z)BwD^#2F7p_AGvBkNW1e?MBDlOkTa+Id9tE03+Nz{0;k6fdHh&e&qlz=@{oU4f*)sFtU{J}*lkNA$%&u#Fwy*@D^YZJA7 zr;tBIr)+#-|<{(C_Rgfbp+p={n*(qHKEc)|5(dXYRP^4s_L@1E|+?m zQrFA4!JLd9;!)f(9v8#I#D7O(D4f|P&U9?#{ove{V6VRKdYpye1fL8if7Se}0?qg# zEF<1qBTgWmar66T>o#9}I6rE`!nkVFo!~OyhGqC}<9i(Js|CkJ2D`scP6K083dTd4 z*HzrgdcF(%<^=fbG-u8`c8hUPrEBD?_Hu9wvB}K%>3GFIfPH5#v8RHy_S+rE?597( z|4C#h{=W_1CDtD-z6+gm|0_~6-n8Kve7{0_G3gsbhpR-UE{*E{sHpyr3ito8(NuY# zp5K)`E!Z29-xZ(TpwH!TPUD@#7Rx2pZJ;`kuu?Wot}bqEQLVey^uGtbjOdQ*N3`?J z`-3+{?SHdPuR|SEV?=3`cwhS<`~uJ1Pbh-tk~y2Zo7Xy=j91JMKet<(c!xwsj)^&E&8zdLExc z-nD2kd(cC7K2f2jFT4I{o=-0~SI)-<)$?4+-o5xyh&{BX1iof%h^~bgsl5u$LXNca zYazxGCmnMRR((BtWp^rIz4$Jaq33Re#yW^U**UbBdhU{2KUJR-{B5W0CzeR;{xiH^ zBYRL5cxN8Ixw5yaC}2a#Aj!oeSnJfTlvQA9PN`uiF$Fuhx0^P=1bV?&^mg!PXb{_? znRdLi122ew+=>#fl`+cDV{xs_kezn-Px?LA}?w`WX6&sszR#Y``n(K)d?`=BW_uD<3>)R1W z>`W%|&W_y6LjDa#4qis=%#hYkk+~AT4SseuCijoTLxY{Qmv{n$7sm#q?(Dtb-Yda% z4uGYNVa(-SWy}tO?fq};wrs_;<4ZBfiAt z*XlU?ijt30bRA8whK;=c0d$AlcyJ?$$uwFwbr>yt%zR9I;`j{U6U!%N6FA@4Tyiq3 zFH&Aquy^9Y@SBkXc}4gj(#9B$cU?zKMtrtraO~$;Y=Pa354D+lcdv^LTnWD%$Ho!g zx?h^DS_ygDZ)ZO(sWz`r@Ph5|;|zRM@>yT~=utCNYtJ@p6Wg`QIKkX3EyZW7*-gPh z?mt31)Dheuc>SBcy9zgh)8Bm^HL|&HjhdwAqYx|z|DCD3!J!zBo^`Z!7$5S_{YFTR zH4lAJ>Zt$uA(ebXO;zoDWc*Fkcj^3oCzdkb`vQKK7s=Bk$c~;=?){{yg%kzfj}-x8R#( zf+w$`jYkzF`A6P4g}d3i*s40-c9CnNmVP{&V3;bgHDyDUY4{l?-|d}Sc+8xvb#Tpc zgSC>XkHDT>_<$kvs&eC5KSstnv&kF$ z825Bd68VW-3SUpmQ}4_y<8duA0lgi zP5(atJL(L#H8b-}L6>!+a~StDl@4V+JNG`h=V#m_&s8$c6i8hBee~sXf2lLV=Mla? zcz*wEXWz|iW4%vTUc8+>;coQv4FicO&8A+djaYuZ1#3RcnlP0-SPFTv-X|~C4dlCu zBUjc*a%J^iA-P&z0cg!V7hLNuX#1FIKz&GpB90Ez$Zq zeH%^RL?`}{)K>iWqQEh8ymoA-zwkJ*-O1!;w++ci>6nmQos^wadF-;}6uIw;+Y?>8 zb8dF+R+C&;aQ_tgw25at>m6OlI@I6417M~0I>p&Na-!4hRGnrw`PYm}T^HD?i~gE9 z+j$pu9q}-E;0T|f5B88ZSAC;z8u>*;->#DNJC&Hh&Obsc#NEH^+H` zpE_8(nS%&lnR1HV=!N6g&>!K$GQLG7i7a@LSa0D4=)YC|mvhf?PWmqUlo#u}#3Wv- zzq)SyHS`SW=Lh6?k(iV+=$eU=Loe5x?K8oH&ZS5KO)WT3bUKpAyTgF;|jD_AvB%qnfE51^;{w9{dq{ zMG|dnLVv)%*4x164t&R?>m|L+uiPVbTJ?LdE#;mo&%4J&p3cKOPvo}PP&|tm*33$& z>v+FmU?sj{wz5XN@Sydn;rE^SQQwQ7gICLZb)bX1jqZ3FodJDi@2%vv9E>cjCnvbr znWymo6HLpbrfaQ+EN$5}O~ITT%WBc31$VduU2g&Xo@W@OIgDAl9&{QymA*(jO*Km3 z)kDbMxJj)M`YaJoBigDku3j z96o28%=gDP{VV#jN(~X}&&&VCp1@di<)wzEU{SHBE|+l^Jj11|Mb|O!no&Ho$BEto zCg;N5(-f{9N8g2Sn#D&Nn?rP9o$fPI^jf#Q^jpR?lJ63mgB+;E@XdDJU#0Oi+p6eX zx8kGHoLGE@XX|+mOz5uIC}TyxWRHBWZX^5dJEP1}0*}yk|L?_0U~%}jq7Kv+ag0Bo zo}b~j;9&dlNs(Nj!XFRtUn90mB%i^lTSIkA%EIA_eI7Dih`OBYv!k$YEUxigk zk$NpfYLJ_pwd>e6xUATG%h4Y?;YsPAxxAq8Uft(*puY$DrdEfIy)CKL;je%PWS*FZO5!8# zajJHG%zTWQL;PXlJn+6rn{HfcpJB}K%N&mWNU!aIkJKdS=LYC#BJ^}UbXCgwP|^yW z>GpDjCj?s%9{QN?p?n_#@7elZ3bG!bEAXh?Ln&!u5B*U;hffB3vBNm``Cb1^yXRsJ zeM^$}h|IwjKATS>$V+#Y=!>z%e5;!} zkU0`pDE*m*{P2fn}$hF_)8vS=mqW*h2zlCRi!t)-N z+-cC{pSXTi?Z7~L?R{;ge^OGme59N(8y|l{+LAUTkN0Hm`z`))TMX1%6n>TSrApvi zoNuB&O;_Ia&QA6fW&ib;%(0A{cLe(iRZ=@c)<@HZ2M>bpkZ-IrspNt+TxEV4BXHDn zF^tdedRdo8z7F)tFU$W`I&jZ9{FP)qs{08MuAH!MTnK!Z?%>K)qHtK*{{eKx9suPb*ybf$x;(?@| z=7Ceh@IHwwAosB7f~T?VP8Lw_lm7LsG4%GW=JP_B7na0t>R1A9wZyVX=Ax4^E~oDu zOU#>Uq1goX%w|ti0*MW?+qS5Qc{3Sj@S>_bt5pLx2;R+cU96qjD#ocr21EX_;Xktb z@iP#8QRt>mun5)!KXQN0!i1~@YyaX)$zqVM@^H{BUBt(yS4Y_SI-pvcWKQ`2?@Vq&p<8J69&*yEMt*TewsG78A zVwIqudD%Eo!QV^v4MTO@<(a}$-8{F4d+-rm(UPNzFKE?ro_|xr`nI};yV^FB6C``l z;A)Zc2Ik1f=U2nG*&k*empo|9x_m_F_@Nd<)|5g+Rt|GX%{TIDCT}QWKG)H=6X?St z2a6k?Z@ax=R$J+VgR5g`FP63j@OgUpAM78}-Ukm3$eMI{==lAg#%8TmVzVBmz4wt% zAJE>KaC;6V(NBZZZXy?1F=KHInMKU>26E&Fitv?PCu7R|LDvD|^-s(q=CR|ZZ4=a= zuAOoazX!v^znpR?R=KHU@T@7<4<0s!9BMat#!{#L1LZDbOw3I)2j5QJ^;uIoQe!r) zG~vtQ*g8QO6*EQnQympQ<&*u$`V@ST;nR=743J-YfDuyZr+SMus6&*Qv$Ydfd3Aa8UpVbLp~dE;0KjS#HYfS8$)upsyxr*GaIQbzHR)j z^5L1QE6@ifTUqzHMuV?~=PJR7dglAv@_eHU<-ZV46z{Ku{-iypnxIwixe=YdV%w-) zay)v+s9kcNF|tWr2u=2p8M{UU`~xqQIq^|{YsZ9+o0=ww580=zd%{Oz--)a@fK!~` z|97zOGUyL-`OT8!VY!SRki)ttHYgYr&wFxB{s-SY!H}c+V};I>W{Il z9$rLDDSYxibA~MG70l=$dj^N-pS*YH>XKf;dEeu@S=-%Oto{Poh(CKMH1>I9hSHAipP%HjRnTC&qc4 z;;!Yq#mzV8U7WW}P~7HX#l2JBVQ zoPU##4Y@3sY)H=U>6i0=7#=!qYEiP{ucB@wev2K*!UW&GRFEYC9zU$ggvUknqO8|DD@Y` zXQG67r9Rc5>#rwRU&L0{rclQy2`Iq0GV z@x*?$WG2BL=s}4}$|iFXJ__-!8wVEFyP$TFtwq%QM zF!vCDVM%hGVBBnp%9yF#`w{k5AHE39JZrgJi=8={^P8|KMP{^^Z*u9sxi``WsZUWv zywy7HL4Plh@tUD3ZgOB!LsCh(nOqsN&oP;ECwTU#TAodNBHR0@L2``Rg`@Rn4XEzF zCY@{Ke)^~PjW+N%54_5=}0rnSxz044Vdj&68jn>!86d&O6qjcv(GeDYn;2Wfl36pwRWdX{V60Q=R_CmVf| z^M7aV{%ryJQK?n;aS{ACi*Xj({tVxh1tW`tpP8<)2%koNFCa#Ffzh5ak2s=zYIeb& z-niNMkm2?rHGE1kYKH84z!Q|?hmHI;)o|_(zGn@oR_cc|-Vj>U&dCE2kNW2Opx` zBiMx!MSro-hRk28&;{*~f31H$``dLG>cm%ty>^@MsPM!VL#jUyzckhloABNYHPye7 zyl@|*drIuo!J%rv$#uR(=B!%y?{d+L(21YHKbrSObZ*GHpdC9z;IML-?w)ck=QT%JHYRUKjWUds}}iwFj=n zf9~hRX$_+v&74y*$+M(rTxQ}_? zd-mFl4G;4ixmNTsx#oZ&9rrnM%rrf*ZOnC}G1lEUNexmKTv$n#8%8^9y{-XhBC$9Ipk+9a}ePR znVZNwMdq!8>#=dt{-bSOtesf;C^RYcInL71Ae|lsca6}bm3b4IY=_>?^wXq{HA25< zX-;TTt|>MS`bwI-oOh7=6kq50T0OkR^E<&wzllC{eIFhMUliV8|2@nb;_GkUAoOlx zo@72`uTjRpThtWnV%#N$H+rsQE|`}$MRrBTH_T6Oid>Vq6q!{9ZJBJ@1?Xs~{vuWLBfoBxz9MGmoO$jXLdy|?T*hKAvMAO3H8x4-?n~5KR zms7;&Y^K$$8RONqQ|R;rI_fpn_bl+W?Kjx`wa6#-BleDA|7JU%CELbpG26#$PwgD9 z-SF~w?T_T|tX5KYog$CU1KwGMFU>z)|7UDzhcU_D3f^;Ok)!&j-W>86>KKBvA<7Hx<4C} zsTI6Ypq(a`JyY=n$th$7XAjn^Mt6^Kh{z*-{J`+Rd(@5Vuu0^7;DP=zEW&16NB#pJ z?T+U@#xZ3X_f@EN!PIQNYm{K+L=WR=^|v6Kim-=dZX$EC0~?7k+bg!KH zTTNO`g4*V@G3VHWuPyMlk#o;);r-`Ma%pcY_B0%spr*dQSZNUK^hspSQF6mgVGY?0 z4?j94QG5OM(RwZUxvD3KZ;Ew}ia#)Q8eQ~L_8q#778kXa!MsY{YgCJWGP(tObGqH> z04Kjra7chQMse`BH0h*?9Xxu4@WiJTMrk+r+O{pj>9d~f>p^65W<=8jHG#MdSz^+%6* z+K%8${v5}1snL1YM5TT|ywSd`+3qM`?l*1wk$p6_6|s3Ix~O|lgT34e{rZ+D4IRU_ zPM8_jG{L0Ckbl-x?cJpk-_2SxtFE4?%LTp&-ahM*Nb^1?^$Ng+NG``Q9eRKgR&Pu{GUhS_7Rfw^N$ zI)8}0d^h}&e05yFn5edW2riI-uQv1&cmp2kQb49}2JHIK80Q+}tt)(C{>l1V*t_3vu=;(_%Kh-lE#CY> z-M+YG<@EdO>)Q5JrDiq4D>d*+I_an9!7D54^Xp|z_QESKkptwkA)#{4j?vl~Ifh3c zA2UchxqFN@4_+CB9dy!=Y9+6D@OSwZ_Yvf*;K}3lL;8_7Kv z@JXEE0zMfAwr~z_a82!)3Y|CntoN7XkId^s{E->+ALkGHcMgB#SDeEiDs-mv2iHkX z*$995;g3f6Bg7Y$Knru#0)J4e_lZ(?uNJ=8bvyNX;f>|+hVVoSyz$KZ!}ZU?4|joI zAI-Od>p7~AjCy(<0osH@10U~<(>AS(7X75%NiGn&5@i0`gQ07pN91T`7fkbhIE36 zKF|YAXR;ob4U5(XBG;bP2Re3+m~9eI1VO zXa9Qq&XS-hiM4newg)<6M0c`aPsv()99|K6SC1dBU|bsYixvPHbkwpA$m$D z2C?~xc+0}zqY=6CLR`aLH7S9+C6`2a-HohSvewHQFYB-}GcgcZi^-*V$+ftYwfH?g zcd`}_c;(`2@lW-&IPt%@7Kh}^SFOcuvuwzhufG;A4$GMF+;@SD*=M{!#vDgZ8No%* zkuzLZTQfBzXJ#c{TFyK_DI{l}kNc0y8TxpRoS8NC;&O)TiiA&?&o5hpYgvP3zLDwF z5Td@)&&6jsWEV&4eV3FyvryRrwm)n(7E=gFR$*pTd5&AQ7RL}%8t{fO>TxoYVZX6J7Tpb(ShWxry*PgvS+w$ z!JIaSQPtOIBW)G1KF6R>KDD(_8?e1l3+c$|fw-N8TIwGPwRGYl9#;nKI%CXm1-&(e z!TG)Qf5W$LKl*GrYxH%Ej_SX8hZPoqC%SL_+4R5H*R;J`otaf+yt%FvdG-s%sJR={ zQybmJK+ z*9eAhFm9B!OWq|iwh?(Fw6jI_$Kf9@ZDs^A+>BGoqpV@O(PepW+nhDA!FF`nHLNkB z%WetlvIpjQf(LK&1V30=?mVfFv2{Za^79buH)FY1mvgl5<^H)V|H19G#%oD|fq_Hl zw@1)#@i`8>xnOqNel=OwZ@rVQ(9GqP4f*J|wsLDjQCPq2G>&$)tEQ-T&DY~%a;RR-P^dFRbaf@U*#+|SQHQJ*}(-jPIu?3y?2zyGho^OJF=Rm*0Q=Ky;2B2v| z3wm!0dhhHj<3c?3{n%h5<1c!d%vb0-_UhZ7pCWtlho7!=E(KGErmQ~IVy(bl+C}`Q zQ?*)qut^VB>iKB!N5!ASVCNd*pSVu0kH{IH*zAmBC^p?rK9tn|vdtPzpAmc2n;g=! zCC}0~ZLgljzDtiWnN0{JjMJ{totP2K@bJ>{SQ)hG|E${qKzb z-;C+ltK+p(*sFg-zWid$5be)z6lxjZw?p9XKN~Zw@bPA`@yXd6Y`|WN*s79iMBYXC zT5MFQKj)*Z0bJ5+S-OwqM3Vvl0e z^+xO5JtO0tN5)wD_3aGSga}p`(YLRP=-bwketlaowvfJ^sbfl_Z_9P3!Wh_DojWtE zb7!1`3tORa9Rs^5q*D+2EP@S3t{>Eo4R>H?i{71M%!tyv&;H*zvfQcb-K;U^;=>|O z(l>aqx5ZwF?z80K(XlY=L&V@-sC&PP9uU&K(>L_u(+K_V?TqN(j6+!eULhFQHsXSE zz{gx6{d==uUFhG?(na)dY^b}i>+cTR^@4l-jBDNSqr`I!<+rYXUlkWHphE~hM)dD| zvGdQv!bG-|QXlI*K6fHp2E1~vY`I^TEvM>#f^6B(de+Lgrz2Z_5|%CL$QHrEGOE*c z+43Z^<(7-cmJk*e(!c*6g@qM{Ws6{8)GD)zObOZdLpDU-DX?CQ*G%xDU_y97Rl6~S36vmv)*6hP)*1|aR6guy zU~^9u*+tHkXsqBIoB&#i#=vDBBI7M%ADM^9`v~n_OPi-f&apS}Df(1sPwOmR5WWAE z7m;%>gk)G|znqI)pLtf!RY&lJXgPQG|IX?VzR>l;S-d~87j~TfdRRT=V1(&lx_b_7(+Cc8HF=kAm1Xg zO)!Q_%CY}OJVBRZ;0fo*vGeeR+29Csz!7}l2!3#cdEf}0_`Rnim!k0mkzElvrDK`! zd(TGd$-&b{*v~x&&y2{fFrIluL`FS1v0uMBgIqaBPN83YiVdb;dr`Ub--~JL@`nC+ z!AwNHM)$WL*L?DkOX8a1$0>SMZb}%}l=;r&MXd=AbD9uvLa*uS5`b+YyghHxqQ zBV!W5Id_4_MAo`6&Z*Pc!5>yS-vg7nB;Faw4B?$W&iucNcZRWP!oU^RJ4vX0U8pjRB;7&;$~ z)f}tAk7XY*K3uzC$KZhJSLfydJp3enGf{Z}y=hDAhw+_hj^qHu_eHQq$q{`s^B}%Y z;#UNEdd5Uf6H76Drwz&FdHnlI?=1XnO!yE<+?KZ}Aj!$ z8{L+5bB*K?B<8G>=Q<>hpy*x5mU5o!ICZfNd-TxAsU#|JG{V|hb zzsTO$xp<%K(eKa~|< z$4})9`dwxe?&mPt{1st+wE$h!0RFaQTOqh#A-G>5xL=_b2d;l>7}sBfZT_$G|6czW zb%=FF7}x&`w)qp-=KI0@{&MRtrvEFp`QNJTS^LAd{&Z~fzk&Px4cu=(xL-TC-$`)4 zd4^1IKev`?((XTSA3hu_1pkZpr{H^_$2SSCFXwWJTfy)7{|8?c-ZN1!oE3g`!2d{Jm3nZ% znQ>>a`iT4%8Kmd7&Qa<_uFrzEqj5q9eupBT)A1qf0!MTrKi@VGOMv~IOD=n~$HWE^Id&FvjL4>Q~E375&rusS>_GPGTr_TV~`Q~71oh; z`4ytuF!mU&BVPo2j9`slrW5~H>~9}y@TL6j(8n&}cNfAM{}P2YUd->V4b1Qe*hfSc z7GI*Uzg_=YAQo%kG?CYYnq z7~1z2yiwlml6vodlaG=3(fOcL*_ZUhemTDAofj8afM1cKUMS;4t`Q@CV%sx)(~cAo z|HxkP7IN>-did|tB05-ZW_Cg2`_8)0l03b;$dM?zqB(nQRd=cOr1T@!!>@c8O7Q-2mN7_njM(S_wIE=0{O&t*Ci=qCI6cqr_VlL zJ~7mdd`<+EfRX2r#}PlJ5H|E)LrvQV?)lK&6nxtE{lZt2IO{7rM`*9G=f6f7;1^x^ z4))=1WKQ2V8?}e2`SmN-@n4f?@fk2P`R|Vl?r1xy4$$TqO5J@*s{aW7&G%9R?Nn^4 z_Rd3|hEJ|jQ{Q?BpHFg!mXH_r6E#))UE<`z{eNezUUAF($>`00UT`ma4KW)W#&rKE z{6eMn)QI|mw%@Twol*ZlTc|Exx_=I9J^G7w#yG7UdZ8P$>blkRg!g1y~`Jv%~Wcn+6-Zu8UuQDWC9UnM#9mh(JMH93|4c`;R$3yX- z9oKA~aO@;G#XJfz?&}hhmGAw+_V=0l$Zh5lI!ZR!T*r_0jVpsbM7Qc82d{;iaEJMC zc}`RCQ8hu^jc@IK;u1~B&tv!_teAL(mi*Ax1_!PTWBI?Q+P9%^NkC}wEg9VvDzo#;Gy+5 zZNmg=(|G)a_3mNW)&~C1_>3AfGS55WP8^^w5|{t>_PD_5hui^j;+~N8qvMZ%nsAu@ zwZP-e+scC~bMIvC#b3n8w<9*UZXd$??+0Hx!iiC#XEy-hG{_Fa-vBY|& z{WZ6(Xb!mukO6@gtyNx_yHi_e_Mcz~}1{FIQ1Lm<4ovnX+8r*F&xYqRA z;;L@OcU)fX>LQ3j1heB*D`yr(?4^sVyXvUkga+P{|vTMm?i z2`2l6=8MRYDY9vXs`w8xCP!$yQKjCJ9OFAAwU_2lXZrx-zm4(N=Y+ZGWp3Q534w!r zmw4g>$9E{f6aP#;81y{xq}&570p#5GUBXX{En`_&{p7xqnm zU7#QT^S0HYyeZ6?(9jglkJkT7@ZX5+l{{rKM-Lzq+iloH^eb)Ka{IIe1#P;%CbTQ_ z)=#?yZSBl^=QWnr8OU6jH{r8SM&z#UAK#b9>T`8wsB^XAzrVgCYMvfuo+9t2_`~x> zJN@&uJx#{c*Z598%wyvY3-9@`q|Q066`d@wREuYJ;|&r1v6 zk$D*<$KiQ-4LKVR4Mh033;o~RaCSVvsCrF4-#KH#81DUqaX7`iy%%|NJp+AJ3oHw$_kAUjDQV#f(KJv10FXJ_B9CvBX`M178WB|2E9yIYPVW-I7PD z7GJM^n+RFcOFpx+%97*ht)S*#L}$2vV5-)XV4AWtp+f8OE4}3B?%n!O)3rxyl-_5_%O!qz zUL|{cF3*>^O7HE1R+}b}bIY*kH?sv>>?(E|0==3yk=_S zv5(vg7L|+tnV@s+QFXHzPPfzoL$7QOSt~B~O13kM2{;Z`| zwn-gWnLCmiAk^xU{L0do_HcgtcH+Y&_n2T#l3VJRl5d3k@JHVuw*&Jcx#8a>H@wf- z6f9yLj3-aFJ`P}Q7S_gE^wws^=UqNC_n@;Y{Q6v9^U!*5kNzLD7ypM?*Nb%$rkbL*@KKS5s?k)SW z;kzW){YBr!e35rKyhaKBp7#+PRNm>gywiH>+`l$d!B?dzg?d)h0nfE`LbGo_q!6P> zPGE9im%=B)8;qA*_v2yQjuuRACBJ2u=9+>hp|Sm{x#zGST=p>h2i^LSt0K!H^5QW3 zWEmK*{Z5V7b}=SiXuyPCdIUO~!<;WAepAjjKo^m}4_oNR z0_for=)W~g6TgQhDw8bMc{)v`>NK&DF{}oU`f{513*%?MfF{<5X=44C(1b5c6Z059 z0EB*;m<&y{(|^fB`BgNr^FKfn)nS?dD-7bZ7^aDR7omy2TtE}i@A73dF)oTGrY|9{ zs4=zjnTycGhA>Ucka=bZc#0M|GOdj!Es0O1MH2+yNImthiRu1+7Y^`fS2T4G~Fy4 zXwkY~if^rjZn~kb2;JNd-F!-Js`5Oke_`JBZF~?#mfQ>7WT|O7-BcR?bF!oi*=<4& zmsu|^Oa8k1tStFXwc^|X-zS@PGgEXmqXzJwfQ*z)8@>=_2lkb@|t8#z%X@&q~& zx@kps(AQ$lo7u~7O3tKIPp>YECBM|Ftbi6CKcN?yLs>tCuB;Q9g0<8J=mK+TG+279 z&{iYzrw6-I=;z~9Phb^#eRD24I<-Wb(^I8BTyVxh;+?^J%<7`wSXEDOHu*;5>5GLu z6zeSPTb0^fe8|VvvmM>Kg*79?v~3tT>5WaXRWx1#TQTym^npG`q%Uz5J)q3g^0b&0U8%pPyy z9eThFkf(uoa*Qlz{Xfe3FLk;d72{*A=PBJ<{h2e$NoSA6u;RIbZM2sN6%u^Y%#m zKWk)FA9@ct4ZgDW&+M0MtAe}8)hT-#x{f)k(ELToKI{YP=rRYY*}si7&Qd7HCcj_{ zW{(ocV+`dW>7m)>xu;8XJ0d=}1QBfg(f^ZG$@9IPT{4otAl2=38r z^aN|yFRgN!Hr(St9!jlZ*5|#;cxS;4o%ze2SjqLy8YQsIkh*II`R+tdfKIATvUZyo zyIQadKR*1kEgo{YP(N%!GJ2WSMeave1-SuTkvvgq@`(eykJQHy-3}d=HU?v>hU&73 zuh74h_C4Nl-I;>VdJL^=@w>|5xrU~us=u;swEe3RY%{QLhwRHWdU~_qm*1B(1((t< z(Ice4erU$a+O@NFS=G{|t-O=jzmERqTAPBM__4yHDWiF|mz-})4W?a1s&XQMds0OX za7`E2G^T{=BCn)BL%EiFsv`HxbA)HarkDHs$LaZHPjqLY>n6a1s@ZB*2UnJ$V>BB~ zl}6T#1Bayk&Y%r*_oS@KM&A5V+?{DiM=&)4^ziw7rfj=pR-0Nzuhi1Vw*y>_e7q$=~KJC*quB4s)Ezwe^T|p zJ1^ZM*Xn&}7?L7=C=2&N=G4TTcDj@o|44uO$iG!NTIxkK1^@cNa9uO_w{x_L-V)}|2>$kkkfV75QUl+O?#1jmB$@Q@CAK$rruO$Cz<1+GYxs++YSL3uSJ^{vk$AWqF`4*#=ZE(C@=TfE~g3j)Y zADnVG&r1HyWq|<|b%jr5zhbY6S3>7ry)0nkTwV4a`xry4Yb@^q7Ky(`)7~1RO}o=z zyXUC~ld5Z!hn^@=VznB@<1Y2*7tW)`W+Xr5Hs)hG@vRH^fLq%7gq}HfOik1N8QM*w zz2nG{L6)u4rQPELJdfQ>-T0en=ky{&e>;N5NIO!Wbq#H-lQviv?lu@S!+d4WdfGan zdK&U+XUwAH>S?t57Ip=oSrr(=)ur^U=E3BwQlk=-cIcm;6IO7@pK-4|yVP6P*8e{| zSyU3fh8XJ=T(gI99X3Qs9lj{0I$3-oQl?fmQiJE^&5ziJk#B5(!B|;jxa^)fSq5X2#-X|CmDgJ^}ycgJ0$wJin1Kmvb|>jnQuQ zXBXa_<|!N(e(&t?dta42wbH>m$NuIK`&GPiwvw#Bv(3m?6|Hh8KX*cuSi^-&jT(qK-$vPl%@iTl`L{`dLBWq<> zt+%k2y!7}NRha#`f=32+-rodnXYR>^ZaUGO$N{E_KTotw9f6K1?TK7Hy**c#r}8|> zDX|-el+h1LzAMy_T}-Vrzt87Vl5e*PYEJxkLKz-O9b$^hxTdPUN_Q zT3@oRNL^OetY9bW;-H*RJ%`iiA+ipBv7j7%r3}4g68g&x=rI$?4S#(rdX1j*s=wdO zLjoTlQ{2D3bk07}Z@lO|jtQZ<*JoI3>RD@8kB*njHum@R$Mo+2>yPC4`KQxzI^{{d-4^sL{ddPN_1_7SOG)kv{~m>$a!I@4-%Zr)a?vmGS+kgWt3%{`!{eC-rMy$Ntmr&kprtvOI_W@xR`WwORb; zxqG-LbUySPbe2$m!td22*U7WOzZbieX+uld-z%29oubcC*MoNN+(&G9eaynY4=`qtKHc$ep*(Ca zBPbo&#oN8lf1Zc{~NS9y0`JMT-r4)EMAGs*>m^`Pir@LQXjHuBlf85zn(xo1XP=b z-SC?&oUeqQRb$0QTnG|a0&VLGhzsS9jXGG@u zJ!pL*?S8>LWk{BWA!>qMq`Y2Cpz3y(EcOP`<>`Ra(pMp_3+H0^fF%s zd-0q2?B)GX|7)7)J=u)M0b{aDY~!J^ zi(WXyc)Z7WBr_g2`|{f)&i@ehZ8GDsS$>mWKyZy@#^+6bCmR(lc7&%;?+@b<>%Uz; zeuU$E^lgb-C^D!$OBkCwqUh|7TSN3U@s@MxYykbRL|yk@W|%Lo41Gsv_y(@~5c(~E zUL@yB6PTOm1kK=$^+Un&@Rj?jyq95G_LVPmu6D+PSs*VbZ|j@3o_5Zs*Vnd~R%OSY zDTq8@h9doIi#1sQIsAU%&l$RmQhpx+lp0lJn+AV5<4#P(Ef%aw%XM z9(1Y5d@JBaYvp%%z7=X=Y~?rp6;caKa!&+Ua{}b5J|X*kX7qX|@30h_G^5+gv5#Xb zeG*v<20Gr1Y+dTRqR@<7jr?y$rps|T*G7+REn|z{>!6F(mp*A6KivKjjM|9~iT*Yd{cRZi`>8IQ()8R$ zvOZ2_uGdntOY&ca{H0Sj+(3KH%!5Pb8rdO!6n|!po0((N!hu=QdUqK*U^6&|h4ZJk zyR=u4RT<=Tqjs9DhO;}zZZm9#A~>-?HIpML*ky=G1)@5TRnrS51m@6%~CxxijF zI}cnISSHvDb=M-;OBppu%nKV=W^c>Y1jlpyFQslK{Ob5IHYWX+{}uk1|K!+-zmqP% z`Htuhg1PDc#Yf3^j-%y!r2X5Wq1<~J7wH>1r{1qGF6@`7zDaWC?Q!Oo>H0<9Rm3=q zHm~ji`*3>58Cs8iEV_)WC-^zbIwE^$xtA-gOdn`_k2Bx0I`>!McFRKTT6ks`G?bfgeOtvsQ2K>& zeb(1N*1b#hSzosdsq&0G@Zj8*>)Yg6@|*+6+B}7Qa>-q)5O;yUlGrrzE`2+UV6bLv z7YjCw6j&^eYPx1&}zBxMg{{i&W4)!I! zSTKct+(>^W)2~YUSAlI+PVRf7Zd-Zblh4`DI%SLlAC}tODmi{KT#uF%YCiZSm-k*e zPil+pw3~~eE3>kv2b{JOnR=Mo0u|t_8gWs}!I0Qr^E)}#eFD@3&CeKG`})R3`tBRC zBxqh}UhVv%WM6IDFZNm<+4xcS)IWc;VaWR*ITyaV+GH-@<=9r((@d_7qa#`W!C$|p z^LwgpLkPcr`(NRAE12*wrB}w_G&zUGzBn~f2}%u&Nqv2fi!V}h3Huyb_#KQCyEAi_ zgMPw);>%aniw!QgZNVf@TL*cSJBLZmm!h{##(~sJ8|3f7E; zT0*VnCCyK`*stl@81Hl~G*(+wi`JPJ+uBzH?n-WYnGd6yRoOuu@%QN40qo|3S72NupZ0wsr^B># z563dcT~8|1Vbj;36*+H)?thp2?W{p|)*!Fk1Fe3K@6#cyc|}Qfc3_754q*x_O5V&4 z+{W)&&)Zhr_A+%ON@Y*N2))HXcd^jl0O&9delWEj$|8p(INC;Rt51;sVy}x#b$X#U z_{-&KqV|?~1M9rCYY;Ve(FLdF3|+kxJ?p30N}&02=60l^^$GZM_4VK@LrcinVXg#Y z5S+y?`celNtzI)2A1JVzy(Zd!l{H|e-4lEbA4c|7Tz=~C-AEnpHQb{;)naduVR+t=gFI#(5Sl47DPs-L^}kfyUf99h2+r|))+lNJUkr--fdQ%3 zpH~zVeiP5irCypmYj7pc0&6>f9!3q1`BnT)JF-HUQfO^1gVrWNb2mVH6QRND zk$I)9(4;Q&Ov=N1O{Ql)G9~}%Bh#6_k4)K0tI34#k;w5hdPW8z*jZCGf_3f;!H zo`hCKZ@DIy^{T8Xn0vXW^}b<4SNCjGTgzDIOv8t+?i{1&wMc#Z&V^>BCY&q#MyL1+ zbjFd-Tvbxa^mQ?0r+4NVTV)OCx>5vg4ahg|4e-I!F|A(mDA0EA()0LWY5!8|{6?O&KK{aIJstI|@^A22&6d!!K9w=d6In87 zLreHspE8E!*vt05;(gs?h(+>!Gh>+>mX+6vOko{9fWB}S&%73y(#-R^3Rs(YR)!Ti z78*60dh&Yurb$k@Xn9~iPrfvVl@+I+_=y)3!~`xfAh>j=-3pdV|ivS&y)4(x3WI* zeEh~_|DR)Q1!%o1Dg2u?;mjoVdaR+^x{|XlZ!a+jUz6^apGQ|;Mt}e7yz4T)gpZ#6 zn%4`h+*Yz(u`d8+L z%X#K_Xsn&*g=FQmg$qPhVhf1QKlviMSo)XD@r&op@t0jE^|Yd8@0VRC^|kI_(D<0p zvFOF(=P&Zh%UbbhE&ZB(Zf8t)GPbWWrnTRt z&sA!@H$`oG3%*z%rqhTl4B@(y(Vr{Pqbty-%h9XL(8VXAi-+)sOW`ITqi=tLzMXsd zjm`x0=TU`azAMqYU86j$E1g4EAG^lT`YQVv6{Cl)?!E>+n>-pl{I2D{?jmXyu@3>( zlhXBnxO?;XD9dy4`*~)PFiZA80uvx45t*5=MZkd8G69t=fRfN!ZTkkbOC|#-qLqLl zL0l3hEF+w1iKlU?$^;{#aGE)%zp{B0h#<=;J;&4jSkyYnu%#*_BIf;G&&-5L3aCBy zyr0ke$9!hydG7VPuj{(6``Yd&(HlkBBm8;D+==MQ6BOS`^f9g2?d06xidAN9z=k0* zyCDv_yHZV&vwRzOm33izG8lMINt3Pw&S! z#2c2!@i&okX=^q*1oi>po5$dpt?*8v8_`#YTrPT?#XmHp%lbDVpL>zdU%iTa&iVPO z^7#gQ%Y=TO)%aK%Jf(kA0_*%NYgIsg!bkREkK-=mj1=NQ@i7qnZzS#al~*=|colP2CS^uf~3#IJ$rn5(_8epnEnc6kDo02`^1Syu#?Cd9@QBF#l%LY_JLX7 zJvI!p{eAdq-#t5A?l|SZi4uab#{X~PMICef8@$jD3VfS*(FtCB{y)GALr4xw?ZJzI zO`>ZOyhvr8WM9_!C3qpS-?xDm8$$c?_j~Zd()3;W{C;>}1~0<=&X4cXLXrLGA6-;X z_Jc3^Dbphh!k3P*XNsKrDFX3qo@U%L3nx;R^QM!UWE!uklo+$W;{#4^r zi(LOGJ|+Gl{hK~|D~OKQA^hh_O9~`?9Pm?hmqpawaW$*HFHZ$>C@Td)#PX@Pak2hLm z|2?lCWEXstbHc=bFz$T62Y1pn++nZsRO{2eF)tGvpy1AAa7X4B#-C--NF;AL4^4d) z4iT&IH~Qo#X#N;=3-}JpkmFcW{D?fmnL}SWH>HmZDeDy}L#{xEtV4#Z4atyeks+OZ zc;YXSQzFOyRpY*r9^4<2ArB*4)Z7}BAvyRO9ks%Kwmz0YP8NpM7 z{()DwVO=f$;e+g;ts#ItEYj9s7h41JV$N?0oPk#q?|5{zwqXwMNNf)a`F#OgEr>Rm z{n!ysV&ixg-EMFDgI=>g)M9^-doO!z5FuI5EjEY|^o^ayjSWKhrtpQm-=Yn|CvqM1 zEjEZ>0efkm!`P%>xxO9yLqX^qJV^K(`VFx^REPQ*1h26n7db1woxZH0efCc2i@j6q z4?m%=JL$(tKehCu?E$*<%i16Y^`VX3Az8Jr4dP1WBnCE8_PtWM|Dv29|JG-Tl@?u( zw%@bw2W=8J_t+$s5es%KJJKd`bsyKO+RIWdkHeAnvI}8*8E2Yy@byaeG7Vo7BJedN z59HwYeGFTh;Oj>GR>L+kv6Y2!_DZ~>^>XKs0herMhLFzgw}P+Q+74(swKIsXzXf0a z?mqBi=&{R%WWz{X*?)xk5L?;b-ABYc!sikVN73a8j{X~cXgDf1a^szLC-%QOa)jX* zFiErHC;iB7jV9g@+pxiShuvxn+tShlD*BtOK60M{JgyiZwltHAcq_{uV4IetB)Ip%MKn8EW7P;W&5-{DAca(_kz|N{ zNUkDf*&&1O#lQOX+y8pWwssYp@c$2SeEhe8;}Q5*a2Xs=|6jmy-PLeh!~1_Qj`zV^ z?upmv;r|O9kHl+*+!Y$Ghi%7t_29WXRPuI|Q9L;P1hK=*k2 zHe&PeyO^VP=4pB<{AZoKw~2oezsp}vz%Q?g-WT4jkHVg9Lhoiq{}#);ILgE`z632cv~7H6-lzB? zeHQY|lQBzdXa#W)1=udEIRG`_#oGTC5Udr;U;(PzrEYBXERYaf7+iUXYHF8#{ z!7no$t08;XqY@YSR+i^_e6x#*HOryDBK(ZJf2l2TS~osWhEDAyzT37ZR+Jds8?^t& z@Y(T3{LjRfTzr1;=`68fk7>J&d>^6rH>g9eQ(}|^ba59~&{t7rmYjVL*o;}8AI%Dm zJslsbfqd>^4eZo!r+&DOopwz0dl&75>xavKpYnSm#yN-B4CA#=l(dD$eK)aAJ>%jW zCF3fBe>x6My(r_c()Mcb?hLeXlsVawRTFSMR zqUVU1rvZOnsk?!=d+)8i>)j#kvvv9#tBc-@^QuUT;d4l zGR|0j&t;ruaA_s>u6lB*iSI3ZXaR8n+C7unH}N6);8mP&npbO&d9MUNd}3 z&LcDF_Zq%?%E5<5Nd8Y0vzY+ZR+lwaGcQMV{@a z%xgTmO}-1qv@EBMuYyU9zyw%m-^eq)V8UEuBj%b&djb!MhwXufG)@XVzBzA#u7 zffwv68eWWI-H(Rga5Mym`2RD_dzL+nxTB7d$a(R!oxqw8qD_HAHs3vEbV|o4%DhKA zQbzVU(J}YHDMVM{xr%HMi4*<#{~oXk)vesmn!l&vgv8S%XgDEw7#@SXm-Uud8_8D^ z#tC`W122A`d1$EyGaGHkL4&Umx3i5k+qZe;`l3wsZJr-Bt_;L|*saBJ3opF5WD0x& zxf$LlexUfD3!i>{%3IfX#Ls@k?~>P@V{Ne~d%EPC7|Qc}cQ02C3V$-fPple0G4${g z(Z|_=i|o@TXhD7(pi?{RS^z)!M&;or->AIt8I>z8zK z%Hevx5AbR4ZY(J#XN7CWP|q3c5mx52jM$`HhcYW^&w`euJ((@U8qLb(xpk~E%euF` zg(Cs z&A2L1PYkc%!anf)*T6LM`Dxw+Rc-ACpEr&p1_A#da4~s5{I8k*A0^)AUh=(8A;!)@ z-i1)vj+|?h*<pF^d;#t=?@MK3s|C8}?7rr|=HuR03ukae{zfbdKkuRo9 z0VjzyNCKyFgSav2X6E%Mb0mhTe^0q6coOiDHIZ^w-U*y?fl($ocDNU}BlmUB`rI$4 ztew2m8sH+K*>^IwZs6LEE>B=~3YZ;7&J4pK!1G8LuwKa1Q48+oxxnEpaL5G?3B$-vbvjoLzq1YO zA3A-Yl{FMx%zXdumdy9Zw$vln%KtU0u6XSG_qTjbfAI4Oqrl723UW7inUhIgmk@sy z_z7+b3_Gy34Wqp9vC%wx?F#EId&^|jTl;4HW!*FDrg^6-YAdl19n*m`vDYP8w6U1> zmhroe@18Q?#wp5Vfu~X?6FjYw_Zse~t!1&nvw*ZAa9_r|T*<8wEbEi9WB4yPJ{mtG z!Oi2uB~FBAjiHXf-vgc18WYTGSg*wEl%!028w97aLa?0`hAlCn0eujLy6ZR-J)q3W z-g|FL_TH=(fursoWmeYSds_5a@|_)gRuX!a9Pw;Q@LASg)&TrXoI;wMYqEkBT9kP}! zXq_A%gtv@CU@AO40UVIu!qa7p9mL~iE?v4->kEGO7HwuR#?bmzN)WS{-5N`rs`BzF>(U!g4?=4fM?;k1;2y%t>N>IY2J8U5T7?9FGS+= zSo#j)bK+(3`9K68lNe;d;|y}9Yv1ufd>#ufX6h1K;d7d-AUOsE|3p?;!*8LJo-)Gg zpn)W8!%`-Z7*yH+d)|leIoyW4OA>qxmi37omITiU{jW^?1vs0P2qE^6)jKX zalRwvfhYczxG&`Sa^(4A)RS`tvVbN#d~x5ua+Xm!)95(c=#eX;ICDgMjfO`{UcZrC zPsvld6y4+_-TfQ~(bFB=z%#?7DS}5`{tQEx=-)oU|I@i@TIY>Z9bM&mV^92AH#S8- zeg-mcEBIHg3!YKhc<$7Lr|_&-*}o+((GuQ$L0OpxI#Um^5?%el)$5DNn^ubdzz-c= z6UZBVgPR!a4~BVEWm(BD{taE?2a5K4A-}sh)B8uDH^>a;-gfE-w~8;@4B#7%%k^gz zba|OWWc;BD?_z!)(L-KbatkoH8CXmOCR2b-KIgo*wKLh|d}~1RaMxl_lesjKFEZS2 z0deRj^!@GHIUU>MKM_Cv+!x(>4SGwlExW*LR}ID0dXuZ-%@vkv?g(n<+aR%-&}&&p z_7r+`(yqY32n^)6(5swBZ5uD0|BhuVKGChn8L%Q$Ue18>Th4%no0Mex^{Y$T-+uD} z1NsXC`p(aR+4p~F?c5V1Ym(Yz9OY=Sp$iS>RTxc1B{6ue(AM}o3d|~+Brw^F(N9chir?unD?&~Fx zKcxx%;yMR9gJm-*(?pr4ioK7&&-)X>_u+H8@Qm1;+2FUH|A($5RKvU(o@Se-~e@{PFJc?-Ij(xte4R(P zOy_Zb7Ty1fv>W?aZ`w6OyUW#s7l?2FoVeK!6QFZ+=n_9GI`m#NJtnd17_^|w$<*lT zpWz+B|MU&b{Yw7d8+`Xm?RW6`T7EmT99|PTin37rs^F*S+y$Sp*?L?d{4}9M2$zvq zlJ-!UiVzMj0*B42NjsZ-O01dih(Q7y>VFn0`#s7&#Q!@f`vtu15qR4#u>W>fM|sER zLjUZgMi1BT7()^EV)P1?!OTU_PXk-29#NV6H}omlth64ABgU^~#K zyYLU^{h;7`XyG||pU|1NQI}d=PA&%KT3oF{)8KIcnyf}AC3J0rt~EG>=vv?)eF_{R z`QXVh#Ir)%<<~ldKYS%0@I$-hc89l6_V|dl!#p6&GmOB*kFL|W5`S{ahxJC{<8d{< z(H5^T9(=q*yd%sT0^oz|Zq@Vfowm+4+RcG?xZoWwc#8|(a_U~yY)$^CB zs^{YrVxZ~IPYfYG4ITsI@?(Dq^4&DsT}S?H_Zy>>It})+OiYG2+X+&64N!>U)Re-Sg+% zY$LCxxh)6%wu*l?e9=k%iwg9e{3o8<=rV4uvt)or!V?SNiGnxcXPf&k$?L92?@`Nz z-e2#vS1%uSQ0!!%UZU~Wd-m;w*e=U|I=llF(S;6d%|MSN_5>q&G|(9&Pe#U7*fYV+ z3G&W>USDO;E6}U0cMI+0PY7(?S-buP_?FoIUV!$?(XUEexs3NVVCL6PY$9*Co4Ir} zb8a*c3nK4Sa&%1P{W&x3fWy$7c2*?DtE&qi1(6j7;R{&Fe}kUAjPo({bI8OeP>r6k zhBLmSrer3#as*r7nR_`~sZpC9==APa4JO0z{gxxT_~Nrpd&|-9l2eU&%+e2Pos3+V z!?}%bP39m+jl_NS^f`?2&EbD8`I@>|@7$~-7AtFY1i8N+xvWu*bDbU0XmJfcU}@&F zpJzqzAmDW{_KWTbe#T))QsA+s*7L|f#5x}|RzBQf1BOeO&w22K+?<>9Ig67AvcJg8 z(!an@a=zRVg5e(Bz~Tz{7&+^U74YL1l_2^TW?ibm~+Q6=24D)Nc4FI#>n@faNEGaW2~Ip zQXfscdw2JEugMQWJWv)`UQH|2> zqETtz5N%2_4A){Lk|rAywY;F+tZ9I<6P>tQ^&{GHLr=uaVdMXs(iLgPxner_7oscSU6Gv#{>7=Bi4i z%qJt-(V-GokAHou;O$)cmGz5dY&O={$?qKSwR{M8K)gA33oSrLJe#_+ibN)6pD2u! zLldU|4L?~1uhZn2<-@Kjhi+ru#9hy}yUJUf=#J1GCg)&-D(0?(xx@L*`FTEjlNb67 zFn_Vx-M43?`z&)`gAdc$IBa}sqPaQlw&HD^LCdi_3;c^R_ha)?OHb>^+KZs0dSXN7 zI!`W|uEv^A(}%ryUJE%@1?M}KA@9oGBKhIV$Zu4DT+ID38vUOG7iYq=qF4iXbJJ=3 za>BCD9>vkMf-`=APc?kT4NP`(7A8MQ>${w@PwHb^t;FhERdjsLxh+<7i7w`7MV3OY z_hjtI3cUKgU<}L(g)%&YHoCwA-zz%qeo&)bO|zBR(`7!a@qOiUCwAY0eT=m`HO}F^ zo%}Y5hlYAQ=-c!a_e~7vxJ}4)c-?A(W-~1&e{KN$Gpn?Vp12wuJwAkI`Y}!O)L8c! z&SL>|ZfDUgZetEPv%ni8wpMH>3DoI0Ube`kCYjHmXOi5l$LRYgcp~!zMy(>#%lvjT z-=6=>^BrK8kniv&=@Nurb-arnE0OlB(9XlukH5(g)OT~fk41J7U61rv%e%x$4(ud} zt=;h3IC91%uuk$$&aT*TFV#i=Hjnq5nLX0B=)n*1K7slNn12TE_wl}i_es1z!}~w* zK1u64Nz=90GcIX6m;TS9r+KhX`!lGIZd2=D+CRYiUgHCnk>mTgPygJ}JNs;Ce9}K_ z+q*vN6IuTZ?|a6__*e3NEc2K7uY<_aZ8o<&0jLlFL zpFSEKKME~v{4RP|@I>^qk}Ka34ZeUMyE)g5Mm9UGo$KPYbDj52EAo}GDGr&e8JVn^ zb|%xud+;pj6ZmUw^o$4G8Hs*2j5{{Ujzw1yf>kB?X|?f;UK*dC%XlX1;sZH1D6>ba z@vR-;mxh;_;AIH+;?b9Cb`kp89h#4!Dz0ZP#S@j;qw+_!0^3S*W>wChUNdLmQG4bs zI?cHEjZzk^VKWNHzSYM-Z`rCQ}iNY$BboM?`r%dwsoW$ z+gcAi*l&FMG+q25d+J&ZsCdq*siL-kn z+HR)ZxY5d%FboBMPc!bL@L`eX!)qz$3(cO#cwPfur-1Kkz&CR3`ws1j8_Hu3XUBJp2-jPe#y|gRw zGrPb@-ajsVhG=dT>vlTj5)Hk_xP?A8(f5AV1-hBkLnpxcZ|DU0$hrtlj0QeEWx;`F zXfSfW)6;L5CP#DMyfxF&VqpAz`PWK#_uh-$X@avdUJd`^l`Vp!qgnfSWPt=-yoM(- z9^pH}r-jbLJXhu+Yx*AZNC?Xgp)p0$k&G!^e+)RdfqGWvv4Oc;BgQxi_@C1DmpE;I zS;ZKiXN+Mu3e1HDRvSYwr>_~%U_5IrbC9*3NMFK3gl1~tAJ{&&2oDbN-^y{k599nu z>6@{Pq~DWTzp?3p+hIH(%UHotZLGV)W95HeSjs*ahO_LYqVrtMvj-S^JTw&=n?_T9 zX%BkzOMA3m8*0Bc+qhx}qQKEc+dLt|zS$rvMoX`FE>xxY3$A?PJJLsCa+Nf8D4ZKa$PoQ&x zUzu6!I`Gg)%z#!Fz7Q^Ji|Ji7LAC0*gz_IX|MEpQRHuLj7{OzAYyddzCJa(G@ z7=Y%(a zXJS{Gh~J{EROdnWk*wWCBj+ErpyPSY-crVk=4HDg<4V{{uvQlS-s!XtRj?>O}l;xTr}GAfNFZC`GCz^ONybrEgm)7ClKekLK*=Qt%Pp7)2*aX8H>#kO2z zbp9isySCG|HWuLa8T{}BAF+SH8`hl$XT%S_R<9J}FF#Ah=GWI+{QZD)XnYy?UK)Xa zukj7)Jw6+D6C3hqCvEqPlm0Na(g(Tq(ED@(gOT)=Nn1C(NKR7KBDS{$#q9fhcjO2R zSWiDWjK#)QrVp-lcQ7_yALfH}y$E)S(B69fi*=k7ws_f6+s{S|X}US;mp5p!p3 z+T2Bs3(s9_MAf0WUv4g^`Z;`WLYr3BiF{g@;4U;uep1$3qtEb~CHH}!8()Or_%07W zY5#Kl)&fK5Zh_hdcf?mu;3xDhW7-Yw2;SIObMR5)5rQ}HpCH~O1@T6B4En80JSK!U zO>);Mcw+}|v^KyS;WHZEfUANxQrFf8Z=7Mg!RN0ngf~6>D}*<}wiRi6lGZkOBW)K_ zw@8l-2_HOLW~+t!P3(otp+9HsX84-St3bZPIL>@U{|){2g0(KRj(+`MyA3{NNAEM4 zeW-AA-TG(AhqVO0lwqt3?0dg^w!lQzya^qS*zx3lcz^k-eBokO?<*IGeNJS86U0cK z7$>?~wMlfw%lXXN9Mo+ZZ$>Al8q7tvIG$>XH@S;dhpn3X85LkEd}ljzG60hdHNRsA zbjG-nWlpnaD7MIbN$lQQKFM7w@i!_qZymO8J+ev^w(w~D0b;x#m{nVFOsbXxweOg2 zWK5D5MshO@Vq8{owxlzzKgFlJMfdHW>5x0YbGNhCujjrO*;{2kCwM1w%8@xyuUelH z;9Nbsnw%wb#ua?NOMde#3p|x)_hc7*F81hJz1S{-cSzQ;){~hxJbZSWIhZq|mfzrL zvY$QplaOD*7uXkM{@7v;NiLbs={rN8-|;-T7QSkYWZx3s%5iTb_un3i{KeXY*SGNg zA*Dr+3@#1OUm3O=C%JUd!E}W4>1HJrEpC6h(IW2xDRq{%lx6Gpnv}eXO!S}7+qpY_ z51du+NY&v(_mzy!V$!SVJR6A_^&^`JkB=oTvuua5U^)M(mozfT(NfR7FZEUZOII?k zvRTT48M!Mhr@NPx#QGH5tLUIdqCb@~o7ADn^_lNkq--<$SeeRw*OZO*slCggSw%13D8@mzX*=Jcroo4c<2J1X-iT|_ei_PxL6FL(=*mHLT zedgz=HOYd<)y%ID8HqE-q1R|{v~zyTet`pH*bf}`)82l@5N}g_uW4h6cil2!r6q2b z-V>jWO$iv@&m9~c=y;D~A34$eB=Sm4$%hFwB|lT6i;s?HkA?3(nHk^k7smYd7gG;k z>-<^E+lK9Ty~&v09(LIB_9OjEUm7c8j&|LW`?%#Vzl*lL+^5`O%00L=qx5BMZZWP~ zCp>QXbiCpl7uR|HPt};>ZHl_UOy1E|8lj&T0G| z3Ck;nezwb(vy{F)Frr+n;R@waOW(Fel#4Qc&2pwIlpbNk3 zeEXF9$(70tE`1xHwx0INuT*YG>D%O=?r$J$nm% z{%!q%r7sPOsQ>nj@c%3I)f?9z{QY-qmv1w*^d$|yLSuU3rmtD#vB&d$^WiV=#*uqljl<6)*0m8|&W-Ss9H*-CrbKwv8GW4n4E4u2?`t_j{nx2~Ci8&h3_6Bp zczU=_f^V`-#%18V*Qk=hjlKJA#$@;YOXe=F@8_-#1LJNB1$WF=#5 zDf^+xl@mNyYtO9kIb;8t_1KkLi@lGQ*i^H-mAXah#)gf*d6aMd7b&m1j>meYZ!ViS zV@KJj%ZV>yr}P^~OZ*gGu6(c(7jGK56cS z?!2NwiU)n1+$Gns0~?_xS4>rjWzr)@L}_uxwcMB6EN$cu?! zZP@r+B3rP2<$oRIG41$q3wrMf2Fhr*Q1%*;_eAbAB18H)v)1*!6PPs%-^0;8H7IZW zt{I=jtH@lR=(#syw!^mVR&wwm*KVYZw)x9Stoa7}r|fm&yXp+x?Ouiq`yyjBap%39 zpSjDr*iTtAHsK1@WG@2WkduA*n`m;plY85Z)W2sqam$OwdZZ3GdProP&o^m4UtLmv ztFFJf{QHV+8-BEI`Zwac49+DFpl-#r`J53=t&{0Ho4$?A-$4Hc`a-_;mD87;TgvH6 zFt=TDkai)^KtP6&e0@Gk$S^1oAO`311^d;vH8-2;$cZGfC zb-BL&J=B-f^U~M9=#1v_yA+#ouF%S*n8^vqT}Q7A_P=#B=S|=&`k_cTFPHu^j{sMp zpVZ=}Yxi0TIGf76t$pS#cMtZR_Y0x1Yyj4OWX=!$KZ-4N9<^i zG3Rh#Ed6@3{%9#;4n=BO@m~6svyH$&@GcVGm+SYjP`?6e?!h(xf_?|gDedWZt10!0 z{qBkASLXXo`u$m-ezo~NN57$UJ`z8`UT~H9R{WjwEeOMz`FmJnX0rrB$+&~F=lM@?G4 zLA?4VaE=Z2TTZ`WyfPRZzH{9D(jDsiNa}zq_AR&-?E9PJ)~VNmJVW{p!#WJ--RN(i zagC0h8XX6H#KUyF7g%48KV6QF4~P0;-AdZ%Ypc*P>zeul?sQ>YH6Dpx>`08kzBNXf zC2@RzOS_lWR%qy((C(X|{DWgppZvdY~mu_ayO&iZxLbQDTsx-yC|4tn9 zgvKGXEPV4}#&Hh4sNtDX-v)B8q_u$OA^JKWpL#|55nC|!Bjthc9(^7e1>d?Zc`xMz*QDQYf8Qo;|0&d0 zU)m1$WkjDRbNe=Aj~$`DMD_^JOOri9bZbS+Uv&*gDlM#JK^2>04sSz-Z>`!>JtofDtyc}Rhis8HWw zUMMt@W)05!Tb4Cm7kNEQp9!IU1&9Ad_5qPKMsh!7NXFS3lXgWJM`R5J^xHFc^tIalKmF1e&R=JIq-_|rZM{umL?7V27H~fOt1cDh59dN?SCtKlAL9(A^shfo|OY|o2{wDM`Ak?qW`5)+4;2q}SX-h8ci;-(AJY4c* z37jvt?}vDJulZfr7^G{dCw+xw%dqaLM)WTeIoJPleplNk>Ko4Q{nKCD`7Zk2M}IZg zj17k9-D|_o3wcINOW+)F6XCHQxhg;EEth{2`0NXfJ3MCLzvnpzg!}b>#Tlgi>SvH% zFnS}@S6?~Bh<$_K) zSE#T5q1@T4uk46m&CH7~>e;=E2Z1^LF`$kYFT^*R*lt1tb9asJy}uiySJ&gPzYg9*XSvV1x`;jPFVM4{q&|BbW5+-^05i_ZZ<_brEtz z#W&p7%0lCiF^C+wM8+U?4&+EPxnTz0pY55%7;oV75V=IRE=E_akCbuxH?50Fw;w^q z>3inAm$5ms*>m-&#Vf9&!;9gp6_%$Z7Vn18n2v~SLtg@y-JG%0@ufK$!sjqNg#Sds zL;BR_4K%7WDG%E2p(VsM9P^WPY|;N))XZ9i~TYWO9- zWCOu3@mm*s+sOZCD$+}9k(0Cg(9cxtcS1ihhp>z+wv0#``#{>GA1QY^xi*gSk@S3P zXnxX8LO(oGFa(H^F&1!wU|7#Tl+w-%6Q_5Ihj{)*bYWpU-w=}7 zHCvbbhwZIb-@E8r>WVIGkJt{b6<@ep@xQtSKcbuQ zdz*^?+Z1xXNPfMLU)@t)%Ph2c0r?MA0L7Hq8*dY{CHsL{lq?;&X2bfCvV?B z#BklJN}I%u<3DK%>||WzIXnpO^WZDiaS9*jk@z?mGL?heX&-1Meza1T=2rSmwdom` zwk`hjug0pv27HL!#*4SEwO%Z6JJpod$triFr4ieUA42e6=>APv^jAK# z`{_BUoq09HL#WJ8SHm;*Xx4F3L6nkLdu=|k02$ZSUaM*`1GP(uEnp1BN_-LFj{$rD zB)1oLQcG$%&d*i@}ExdQkkEC&}Z1h@-4+$X-YC#fGGHWwev67i##GyHex+eE*GRmOC3 zIwpxcfd4A_fumB^?y|Y-)WNN73HSm~1{?DN$`#HEfqHITA;QUg@ z+Bg#VN_R@?FE+ zmocw<^J{zt;M10^*gizg`e=m1_Y-oe$hajYC|s_BoFHXtY~WGwqyl(LA2sw*t&0t0 zvEQ4(u)-p>v72RrQ2XW^~ndY}(&U4SV*!y3$sfO!#l zskf3Rto2&uAp5tcdWSu*k$W{nmgCN;Cb_3j@F!eH)`@$ulB&&hF7qedvo)Nn9GWaR zSHRi|&Rq!L_rKiXRbEuQau-?3E98+5k{lEbkX*M zncFM>J%4-UIDWr<_x8$#x)}S%N{YQ7^4dE}l=(3wrubT2V)2`b-h8hTU3~8&ru2V* zBsTr={^s;8j~G+N>JrTzN}_rAwU3+6Dv8C3OHJvXtTpDhA2FvtHZU&z3CiqOf3)Zw zHKF+JVQb6_vzD9xLrpOMlP<;lnl9RWZrF13d%7g^$HSHvpH*Va%XKNm3$J<1JRZKa z_8z73-fJE!{*W;o)FlC<&>BoHs!1Ew&j;73q`XpjelA2=JI}RRKDnH`)Sw3g@ zoaQrvG9BBM$`7AYDnF><{i16ZopmUcXNHmI0^fZ6q$(vIX9qd|cSGxuFjTHpZWA~j z|G3|M0!!)dz5Jt#4gf!L7MRbF6Xn2;qlWf!|c>y*M~_=1&aI z&HTy4$7W7_?8TW=9{bJwn;rW3AJN{_n+ML19vVCI--q;{Ieh5gnOV9KLw62|ov9nz zf97MjU6h6xbzdZki!LQ7p zGH~k5Db~z*aQdPlAKx`ab!SY{b!6gu=%1$ff%V|0>@_>!X&09igTqD08-?T#58f?1 z={NX-Ef+Z>3i%@%IV6Vn{U~Pu*Nxue8A{heWQ;e9u!=s#~HZ%ZxDy*guSk??L?Fg9*Cd(0r!=w9}e>Zy4_^>80Cd#HD4eAVRMAML1I&G#9;M-vCSe?kIr#HP~KdXxL~M`~pe zI9}GJc03QSk^YMq<7DP7@q!lMu~lbj-G-e1E@KMkK-c84+pV5-#@9{E(TnUw8I$qz z=ld-A$!fVD1-V6&y=sZ0%uolqhT#WNLmsNPUP9iiPD?j3RvZ3o)=>rIc^aU}PT}_D zToC@P^|irDyhnd6-XINlOYFhLC0D)d$+hvjsl7RQA(a${5&BH$*90k(bX-sfh~q4-Yxd_?Pis+LCs%Xy+LB zut*(+I>veI>Fl>^m8~I}y+?ZOMZ2RTWWkd%Bc9l4n~&K${8JT( zu`tc@%*<?b{m32fgV5@r`ZACXqobPk{T9%T#lPA*pfwXW-I?_^3`>QlrI=Kd!e) zXR}x7xx;{)Q-~SGpT@WCdev9Q8jFnA3@ldy%hSLzCntE%%rl%B1Rwrbp{zN-GtSev zP}R=M#WrR31!VT4YMd(*n6KatgSu=-*L3`WYk%lKr$H{*msVJa*_a59Cc8_yH-(tD z70Sfx{qT4{vKWWg{&Oi`P1%Z<+*(-|WmizvO`MZUH}U#n-rMj`mUD42?K>lZHbt$cWy z*o8ZGBOC7_FRD!)lI)!~c-$D`9SgyuRi_>~yjMp&jcPF$sqtpJEg`)g8Mhv}s2sD=b`5S>xu-KX#e9^*_*-%qZd)AZ%y8FBlE?sLwcn82QVRzJp`xHKb0a!sGf zU1Qng96gb^5zo;~rGq>nvy1rMjNIdbZ}rvPB~DfF5gDb#9a`%O*2eCv zXpuAPT%+TuB7Db-ss^Uie~`~POP4ggDmHxuxZu)!!OgB>&Rc>9^&cpe3q~tza(8~$ zb5d{a6(ci`HI^8eHC1V)r;EnA_pukhXWTyNHnsEm`a9D~UBkt%JlNK%;qO@vsBz}V zaskzBmiII1t67I1(M5H^G4zH3Q=;2No~ZJCt2^VOvY;M)&)ACciEiR&MlLzK=vBsA z&lv(g^;z|*a$S9uyNFM5s}@f~e-l<&M7PswyVSqnZa5|>JZ={_86Ka(Ih{Mp!BP5) z<$UyRMEQNpb0zb9wJJ4bY*G2d(Tt%U{@#qN8#xZq)saK0IP#hNk6ki$(Ps1kZg9yN zoj=KDvgS2|GiP6!YTLvaw-CJAk3OKVaJ1V79wx@en#bfPq`SboYWSE7dUJv6E^zPw zWnKBk^lspG0==afoLK|DodnlBc z&fo6p5N=(=+*W}Pwb0Ruhx3DUgw8~;B^BgoHKK`zRIB!jyhx-L?y z4lD37iN~!24mRM>rdso4?xG9P+PTx&SyyNS1`b~lXT~DtC2bh^cI>daGm-ygj~Q~Y z`)N7D_@Oy`ypzb`DE_S-JC1TrS(xuLvW|7|KH-I?o0MF0rII9hGAAdka7FUX3*?=1 z{jqzt%t!btG?ldCVbw=Iv)qx?ac_28%97l!)<1O5wn9s7@O&%2&ei%jm*bsoZI6{b z?hh{}uiO51_w|y`bUd*V;r+CRdCGX|XdfQxopLSvn_~0WD6|m5$`6vccsRA_gO|&4KA$*J{j;U z12J+2%9X>{Gt@y3`03wTHF%sdV5LRQH|Qoyg6EuQvcV^hQSH$?uX6?Hu=|b#aFJoLGWIDck{y%vg>N z=`&=C=T|uvWvDkV_yAcaGiv)?s+qB+l1qm1>#7n-xEZPk+rJ=XH)rA)QNc(I1y{H`j9yXm=)6rKD6;6`6Bv&z9Jb^>g^|tSU6i`a0sG zX09Orx}4K8`Mt-=84elGr!%>mY^+b^&YN)DIXks#*G&~qJyv2beB*(er4I19g?sEw z_{|H=#qj$ici;Ye@QX8VAN<11j>rBoGx>?X%*?esH8bhi%`>mt`J0*JcK#;*fxDiX zIqM1j$J}(=b*Y*61UXc_S)JkJnXRK`L>`1g<>)j_Q=>fXrAn7>YK$jps=*UI)#Qnp8tdsdHQrP4u){YL`TQaH{8sop zfv<1G@*n-p*=JuI;<-@9eN~)q%S88nz2=*D2;1GE?tAI;Tk3}EN%_eCQZC%qS$$&h8tR%Tb7lZAkAR7cCz0_;p9xD7 z(pLim>FcPfE(oAsl5^F5by(6WV)da@PuU>wzoUEh$LYj>KN;mcHin!qF8J>#hd0w! z;B4Qd^S0kX9CoJK(0(uHfh3dr*pqs%9l73$9Pi(#dOvjc^PVUrukMXX*P096Py3&o z>Q$hv6H}4t!vEt`_c6}5Cnh_(o(w;eGB-N9mh)e9X$JPHa-B7=UGD#SG2dH|X>4et zPeYv1?awAp{^jXgy&qFf=4s{NBd-cZuHU7QTXAts@_~@p}3Rzi*}ebk3;;bm>EQ zuF)&y_CPCXqzb(nZK-Wsxo`Y)I4`8{Vu~zsU6T^v7pIZm-pd@8bQb;X(c!~# zPakf)t2^4UApW{lmNB=-Hf&O%55|9Rh~uf;rIv;cRq|2Bx)aIIbvJZ-`sZJxo#|hr z9oJX4bLNMRu2U0Y8{kz*Q9vhB|4ASfY*D#Ya8%71-y;|uT$_-^AF4o62obx?bm2~f0d?o$~kP;Az=A1enliJ6t0q7kVl(QBY6xOj`HT zHQ4J0@4CS)Hnh7#HngXa(<5OcIn*y_ODi|Squ^zMsjw&DiO9zMUM9 zVvA#b4{QJ@IKz}!)!Oyt=r!v^_8~_zxvPWl{?sPh&>+HLAtWym4_v9#D51aTs?q+m-s;fixJXxdV zaeW;v&DdqB_d^Lk9 zcb(#?L&j}Kj<;Ej={fmJo~ma~PGp|;9B3FF$&9!(b2I1GMl~)Fz+MU*$D_L_aj8SD zo0~GFi!%p#pH=k!@mkDz0uqN6z27_Dp;{fywR$njMMVz{OctF~5of+1NO@%GNu14`lowgki;lof z9)8=5{^;uxlQ&YwMR{jc;<$;F_r^OW71Gxv?mn-hj`)1w8&qOX8d?esCQa_pFDS_6 zZd{&;ExS&S4V=4l#P;de8|<~j=r7b6irc_#o0_WG}R9Iww8--wJN?ep0m-uKL>5Y86mq_kfsJh zQ|V26FPPRnmn^m>+55$2SX1(=0q8?`roijf<*H|0mU580v6_BCS%tI5_GD$t7poQD z=W^c@HhKfJT!*aDNG@3$cl2akoPwSb-8p6JzJ}eVi@8`=D?N4_+r~?F8*4x4B!#}9 z|FYZSTP8ou|9chRjq$`PF;?efCCQHb+qRk&Ss&vu>J6T@ zF)?1V-o)=%ese#XKHh^(rRztd(a-GquBSas@n!rRx}u#rBWVa3Lc&($X zoViWz=Wpe_4J|)S-RBvH*b7gvu50;k_&GXap+A8SX9b~YGxl+V%i(KJ3%zpzKX_Y! zJwfDr(c{MPtq6_2G9CMprn@~Lx?ABT2Y<~y@xZMOoq_D1VzUx`ZqQab6S|rKeNBhX zilMh6crdp1T|pjvrF(R`^!>OGE2gQFJF-64M?rUb?#R+1->XfcckPdUcnk8Vl2lW& zi~hw9uOyNS4j4WNE&j@aOleoT)|2n#=@Z1mX?Ed(t}J+D%{_`|8g&%pbQL+~b$-{x zldG3J%Fp})oqmPDWuOat-0Yf170-8gFY$W{a9+kdeo1%BLz_!}?KvKII>XD4(TzuIW?0Udmq!?nG1m0m?6x@&kfne^m7hqZAia+uNAr^B3C>^Uo~prQe>e7jXj^!_cGng#xtjm1 z=&#@vPl?Q2%vi;q{9DHQN5;AizV$uEJFx1v4ZGtR=YOR)7|=D`Z89*<;Jrv@#<@;6 zz)|Ne0bP5uy zF0yKQWKODTrEB0d=nMyQE*R_RvXDdNhtO@gz?O4Q`6uYv@wYoMS@Ct~b@m_iQ)U_7 z&G-6$NIq_x^17jG>P3U{dUEG`=;zSKUkF5bJ2+!}0lyYIneeFN><@1XouCgn&bdMO zNw<#NQInxNffat3vfmG7Y$s!Ce3IXK1#k?IA6)L`nZZYL4WB_a`3q-=k7=hreU^pb zEcw%CRSind-IEI}<5@3LlkVo4mh4+=TBa!a)+vwZ8uXO^iK1(5+&(sN3b`Xu$DPsK zk1Dtz{zKA+@YS>M!LokH%*cXr7sD}Z|I&|{^<=*n8%K#AdVkCLLQ8b{3oVZ+(XEd? z64mfiC8~AX_RIiz;AdwlQRXS!S-VZuX=^C$OFe1-xIVE-?u?!E#;+`6UteRv_YXg+ zSodU|C9nfqOJ$|CC26rzvR$8OzWe>kmZSP4*U;D3S;pc&#`f(>d}E#E{`V)f_}K^U zuiVhmvFQFz?yu=OvuJGR8P0m_J)ZsO!7|A2rn2vRsvp|)C9syhCH_fx!pq!S*}YBi z$vn^D)00yWp4;om*DKo(eE>d|FMgrLP<3NN26VaNR^(c8u#c>Kq~+wToJZ{J(`vr2 z_<07z`N@2zt7XP;^3C!)j`Qe7)oh+I!10usd}A}%3mcKG^MT*=m$+YyGO>5gZJEiL zd_TYA@0{QAt{Q8Wy0LeT!e0Q*x{57znYqbc`MVagaqs%_=S>YJ<|T4+9Pg}*qr$k` zQqXKj=XsLg&ZpIL-pBzSGXHhDR5y0^KrQmH$j?#C+sL^XU9Zn9c%zsCqSro!ZEzcF zD|`j{y5uZ)H=jM|wnyU96ZVdAZ{{45xHs3G1Rfo`rKTlUr?loSO={S#a*xUOks2P6 z6V5EUg5x1Pl6C~v_%1Xxs%DqibZ_4Lm_=mgGVb^jd)kNZ0DFfmu>D45b{#nmMej9- z-yg0e|Lq-0*9Wi28M)?=@Q*J>qyK{@E}#c*|3v30bZ%&IF7~z@;cO}S#zcQ3`eFa) z)rbAl(36u(?wN!%=wM*eab!+E`@m`H2^?s%B!`dacN2kw=(YA%Hnp@@R&<)kQ(Fx_ zxWHerH%?b;eD$O98eUyIw@JaHAK!SisoGKW%pLXVPSN$z1pr{&A2%xjT3+e9}*nYHFLckP!yUi-PTymNokijvownjW};J>3L?6e0)v9?9nC$Y(CJXmPE{d~|TqW!$$ z%jUm{@94*&w`E3U5YMMq2JyUFAH;JTI9}J;y|wKVbkq{7$(n2UiM(P5uLI2a zB=bGhudsN2WjT5Cl?9v7Wr&~E{#D2ZYLkuOK$aWKjG)E z3cXQQ^!N^bYkN0%C}aE(+=v{bj7RGID>CMJ zoVV^m?zo`~x*u^TtS9KVE8_~!8~spM5pp)4z!dCQwmw5m z4Xi-cS@GqZwI?~Bws9}L8(N-={dZ$`_tul}%$&t@J9AXd?Tbft+7?%IPF`&9JO=-E za;6BwSLWZF=FHIC;IE{)IN%#eb21lcOK42+p)bAN2TU(dzgMQW9B4(OH{fdeK~u{} z<}ecZ#Kt^izX8P54==AA*&=%mx#zdC7#^{GEMxB#x#m-3xBED=i2Ne>Df8>w_6cA-1)JOn zk$;r*z>bz+Op4TzeOKEz(~*OpOj$f_feMdFss6+1#w+>((kM`f=7{=oW>-2FM4_p6a3_vemjxNq_N z7W^~K^A?X5K7np1HX!nZ$TBYM4jF1vU>SRZtiRkDd<?8QmyHV4@BNKFTCdB zlJ9dK`5xzz*_=;GIj5AMqnPDw%f5YH_pYFga{M#N>*6?jh&)!zJOrMCC#I28yu!z4 z0j91x1({rS2emPtFeJmo9oxlLvEJw#~Es%>$rf#*U0(k9?tDDMmfhC zhp>M|2YIVYV8ydyg}W254d?8Uy-NjFhNe~Ez2H9nGp+lp;_37CWPE5_yNO|vvxE5R z3e3W12WcnFSBl{Q8H(A}PC0m}c}f)bs(;bFHPYuzp*{Iu78}eZYgMpMV2`o=zr?+J ze3aF-@c%qBNqA-^cfxI=xp2)S0R%&sQEVm&YDfS}K&`ZI3B=1xCP9Oj5(E-1+K>sz zD6JLxX+Xs$;Zmsfh*i`>tnZk`P0y=l8zn{4t-I zd7gb)d+oK>UVH7e)(+!4l^mxU-{d-V)2`Tu7HRZFdz91t)ilm7X7Nt;vsa!IpY%ey~_=@Yowl5tDgs+Gg5BMJcAd9CFnsr+h&W*_{M|;AXxni>j<6JQb+a&Fz(EdTQ z$!o*MM0`Q9|NDQGgl&d*0=F5sB~Kf%#2M1oVdz5Y(dM#~BO0s+3-J%-T+GIq*#_>D zbpt0dzNpMv<8L;by@h)uHqu-qI(!=EKCaP&--9HuVW-)W($h2DWrYTTxdNEmemHXe z``FCoJu-Mp%2z$p+rAS!-%XkH(73_jBHGXAEF_(EM(=kAxcJ>7!Nt64-aQ?}#ZlT4 zdN*mr3!u}>yqQ^Jir@|O>28Zj@C<%aEu8x)e(E1JnXnB-IWMgVQ)ATiJBX@Gi&4i$ zE>)wHOF|nZBYs+(^2KkKDdWg1&i{Xu$2mkVVry91k6z?FM$To{7)G);8QOd|wv|@$ zN=w}R7xBcxP7cVR|3#hT2}-4lb<#B+oz|jEd-YOJ*5}Bu#^~HGmjRn3?Wid=#h0GK zPG`X0W?`HX1ECB-4UFIu&L@nIk&l57u@Q>0N25+HcE|#3lC^nCRmdJ9F{H`J*2Et- zST7n!9Qr%{p9_hBYvcU8mixQp{;S$NXO$V6EM%?DQO%t$z@-A03S2611!Fcg=<(iRK7p;xaMhvdoJ~l77twA0 zj-9G4LaAbo;x+(t6a8@(XqkR6%`5!h$o~=QRXR?^-X05H#YaPM$KGJtUm`|X$g2@o zZM1q86Wfnmjn`8DY;7~9rDt?yfM3ox{+ZoL>bS56eg?e_ywgSQ zP7#}STd8&GB1PjE96JA^p|}lS%Fo8=w(ZS%pJjrxz&#_Q^mz>A5ffWgS|ocNBfb#W z9KexJO;zzZOK490+`L7eX{p5TfU8>c0-^7h;W8-k-`?giaPdiT^fdhhmSB`D0De$MXre6x(Pcen9ZB`21|nyXu7$K!Cuw_$;Ob|&>@SC6 z(=_UF8ztOF;)2Et7?Yc_CcfofFZbvgWLt=a1Mx+%w5`K6b_#HzXJPkl0xs!S)<8Me z*WbU}_kIWOWv;n=kMCjNCJ*@KE|WL(JK~y{htF>L-;77qbLP9kbe$thZ^t>ccl?jh z4)Yx^bL~Pm({2ud)QkrPcHoQYpLT3#=yIXM|Sd*cq0JG3zpzKxp^ADLXC${_# z_?CBPWR8Pl)fD_Z75j8~Ze~mYzEPV~N>pF&%g*jU{S>=BbRzF-Z^M_J^OpWF4_vFi zU_L*E_hgNhc^JtWps~l4Gdb=^s>G>mfyjm$egB!z9L0Rx4-W|r|CO-@_`Z*BLwESK zkkrCjg78*geywU&P9x7>U2$<_#HkG{r!X5Lc5?*l>F3en?aXy5?j*6w1i znHQm(be?hE_VSOAd!O@8r~4od_G5n#9?WGuv&;NZhaBkL$(;MI1BV*Ar-sh&dK8)! zypLi}9$quO?Fj2CG~il6oJg;nneLO=>NLiCfU}` zlg;$I9o`S!_wcvd^U(2;vH1ZR%SLQL25oj8Atn!BoObjl(bs0F8?5?$Ug$4{*hup6 z!L7z_wT5*yL{GzL+j$9nNzP{#W%|DNl2gi9Qbpz)+3C;72%9iaHd$JGn{2%E!_tVa`v@?=< z)v(QJG0HTVYk`Y1=~rsm2R8C8JSg*FV!k$TP7d8;6S;bR&M@*Of|r2&3h<8bsL<3& zGx4VIP8(;XweU=%iT2jUZIQfS@?4Yuw0}TTUilYjqJaJ>JMDJtFTY`q+wP_gI?^nB zP{nVx9oZ$c?NZXF7jR}>%bBX^Vv)?R?3w=!z6juZMDr_O;m4?SWeXh1%23Z@d^x2( z7xdSIPUI?OtiUh1-`9{IN!n|J=FV_GNodX_ZZ-c;$`-Nb4SfDb+LyKqfQ@;}lC!%4 zbig~FQ2g25J=x+T)5sY92>u(H^IApAZv2ul(g*soWBa3XZBK8?N|!s)hBu4uFTC>Z1Z|7xJkrn4>E|KlGMl+Pfh&@f z+X3GQ4`{#?nrESrf2I#*GDmhk{nzHuS?4h5MDDbEfxZQX2kS0ADKOUnL+YpawDNmL zkgi=px|X$A`fW!>3r)+~8sM|b*G_3q*760SPk+^u-Nl$L-uoMP@N!wylW#gIIt*uj z&-eQJPEfnG1p#^52|cl5Ay<6IF3$;Y12)ZklW(BBxOngHbX@>FM3?VQY@KN%m1z&r zXUQg~{~~RQ{vy9`ec$81*exX9DHmJ|PR{=%e#-%5&dHFD{_J(Vb9xOh=<~e&`rc<5JQEx% ztTFl>jNtO8w7CGib&Gk1@846C~RVmGWJ{d)L#*qfL3-_u4f*c^r9~z?<-VPHJFZ zE&7!F5Bkz<&P$mQfEz#KOTbmjJJ%+I-z9!4%uNyde$n-0Za)(GUy6*1;y&El@b~9i zY@@PH>1!b|!)5SF`!1y^h||q^yKm^@g&*9|i=)%@CA_fxL)NkAKwqvPf0@{O=R6g2 zp^Y)Mg>arWtryPY)OB@;eL)+0It&Qr>Y_2Wxv!mqB)9i|lHA z3)~2=vflK{Yx=MXER&S(8uT#X=>zIDy*#b4HV4-BVE@e5OH$rc6CVv9SmZZ;Fx#=G z)!K*`n3v!i&b*)aDZc)!*$<44^o?Y1{9s38S>!+-2-Ik8o#90Sb@Jzev7 z+!keJjrl`jT4jIt0pG6Sx!q}_l$VFIpE~dz@=rn2vWJtiXV>HC{&_n7r#MGKOFU2E z`y}?hDZnVQrIq)S0>1-#&iWkRCdLlWa_2x$&eeR!w}EHEn;N|7`l0Fgpc66 zF|^T-kKn(ci~^@Ws!}QzOgTu*yR5k~_cFITkoRA(-kjni zbq!8(GE)D0$hwic!hPs2m2I#8Z0kXA(kpYe_l^JLmZ1E6KD-wv|IRak$AnF~{r`Xy zWK$L~+afzTAMq-c%2DZ0`dUg~p*{xU>tLuI!56-F#CcCUBm97TY(&2*u{!;)eZrmt zdB+|hOJPj^!F$QECcj;eEB-$VA3?iIq%C+so=dEQ$jGC-oBeqFpt_Cdx1l}RN${+3 zzjG~o=fZEzRTjX%*m^~tifoO97i;ovzPRS~n=dMN?uahQRxZiDqZWE{y{`CcfkChP zi`)S0OCo%0n9FgDU%^fh(syL7Um2rr5gl7#okk9b(PA&j694spU1A+$5xPp!zrSvG zxb*P8CKI|@+7zKn}KjZ9>j+@YtSx0g`I z6~E4}!pjEe>m|VjV=Q@8)t|El#ku2+_y9BCs%_gW_L8PJ@~^1GzZ!)$m2T1Hv(!ah z;>Uz;;Cq+xNIbUSIb_QLZr$g2Byl=3eC4FBnS+F(7&w-phW~psGcsl)IC1 z4e}oSK=uSO27P}8%v)(&?1;&SL$=P#b!z7Pn85TYa}=7-o^_G9V?Zlfo*x@@R$y+> zFW@i1$+Ex3ZE3ThD`T^eHP{u8zvOuSvsZJcOP(Lowo}}xI}-iJHJWufT(h`VYc|?N z7w)rHeRcZ9ejEhe zy8rP&U0v$$1~(eGNW(VIU8&6l$o+kaR)&08;KKj3-8em+JX{t{ZEvZ9cSM%5hmEhr z2fx7(DAx%8IElP@7{kOgSZRfPV!! zsu_nDsf=?c^dPbZ-%8I!#@L1);-*Zx+hs3QN14-!TNWE)GI?-w#a_TX>9RjKrcnDL z52S4qd5Ue+Gr8^dzW)j7eg7Zgy)xD0&bG_>uf#{VSRYJ_3mxuHW2T#;;O9?!UU4sB z9sQ&S+iR}B>64ym+TlDuaQVsWnJ9kA=1-_ce==V-(=e}Xe?yDrcH6a4$??hi)k=l< zp26_2mi4md4au_>&Y5cjd%_{mfCep?u(g_-G-yOK<@sw_|AfYd*}2ao4cb&xpLXd) z?E$fS3cUXcJkYrYylKdeOAi;)#w^+@pv{|U`zFqFZ^Y-^pvwT_ZJN`fW_PtGE8UG> z^@y(Ncd;hP97($}wi4Pkzn$l|yqo9e&Q6OBUprg4_)eHS3Ob(14bc}yslYgrwSzP5 zHLSrBf1(k)kQSbjtWc=r$9S zZr7uX0a2p_s{#~%0u57Lto9vsQ+SLCG;ipqL1-npuZQTKXl!%^|ut+hHPQ~)Lp>YLgVV; ziNo-7>#hH?rpu0}sV{rpMq-3S)(D+)M`LqHE-J{yH9Sl8#c%mhG=6DEL>C;U`>kKa zvy*>f9XjIdMy_258|nPgxd!}DzWpJk+r*i5`%V;0?z|J|IqcDIe@UKjXU#?gjeD)TJ<@b@te zIjeMyuknj~5dQ)x6L>$o*~NR&A6?KDGNaQ14a-Dg1o@`K-9Z?&k z-cj1SkOmysFXD*xsyu~nsq1z2i^Ru@?2_?Gf3nXPxi*V@!4~=|r!VgvyILyfYd1N4 z8q}+n71CydYAP$FzcTvUM84m>?hM{3`a9|$rM(Lp{ponlEx^7$GTSwNrcHbTIZK{L zBq4Ep7LS?u;kI`kFV==`UuL6k8UI=SNAll7ju+3-DZYC}wgR7pJ<~++Fqihp3*h^h zc8EppzGmU`EtS_fyDOowDP{NB=K&MGF>$h{#<}jZ?^EN->VbJN^Ri*mJ;Dy;^If-J|q%fwfBa^=|kbdwj+rwlcB(NSxdn&elUX%K&Ha{4v?@ zlmW}^swN#*dx^h$%ak0y7h5zkCj9`PMq+NIp2!UG^XkO++(X-L;4&GMX)*^Hj8WQS z|IePWsYT>Z5o=DlDS2wODS4Skt+y6Q&J5acab|+7>D)ydQdjH}vImhfYSCk44Uqa0 zOPYa?N)hu{ZZgb&QXOF_4_D{^R2^>dL>cF=Ag3I2*6Wunb)^ky>p|$&wS={CmD7JO zJf;zg@#Pq`>5K0N?fY3Kbm(EtDr@zNyk{dWwrK1SNmDr+^NTJO+{<;F?%@1|=cYT@ z2P2m>WZMC3Zt`8rx6q1dT!CX&yfVEEJS}2Ooy3oVk75sFDQ7Gj;Suo(+(f>xed?q# zTR8cHfnD~UVk<9=RTgwSv$?qJhGz0DHE%1tbm#G$jcVm>k2F}_@VWS87R3a7xMh5D zuIhrny|gPh^m4a`#EmfiV;hzdcR88-15>dPmzfd;mxTwB{c3vIcI@5oa9l?;xz_)4 zcw+hxWt!}jzt338sspgg8gTYn#s46>@p9~nBHJT*uk!@wE6Ei~WiDkTo+%nU+2D<` z)%apmxm$p9SqZctbUd1O*xWdWO=vz#yu`;1<}GLOC3Df{hI>~&-i#ksCw2wTs*#C# z`!mR0ZSqdz+Z`eKNu5uKjw*U`7c%!#}8985wG%7_Q zyof#q9P{MPji2Yk18%pMDIp~!&BiNI|Guj8mE{48^~)TDV2 zt!Ze{=MXyFC$a+hA$j#mpxYzpDKe)g_@{5#e}cAVnw%?SofEm#1P^RL&bXN` zkspyJ<*3M-hW#0xXOU;;*n1ZC^i2C4UJc>cq^`xM<gVu01Db_rk8Q=TUuf(AFbGd214A2rNvDTDY1M7-l$Uj;40^6xXigLuWB}a9Nn4t zS`&E|weZ#|_vl!goU!QRrHohlW6clM%f#0TfA{o>t8$Oe!MAt!{!DMADbl-<`rFAx zTu&P{!gf)|1#)*WxE~{Zul)gj8H!)_U3$KBbo0N$8$&`NT-Es#2b<6YSKL?#H11-H8bxGi>pv)YAPqVQ+o zUtBt_TnE_;fGZ2QBIkYlB5);m3L6EkRlE?<^k^)p$Qk%wAPPSnhR9UsLwrbvpjj@ue<| z`mD88o?-obn{&-@+LS!% zZ&x}WUr(H1IqTNz)LVD8v#C@uc&AwkYUTK_PUmcnFXGMwsS=2~NB(Q15NXvn@T=s|Yi_-mY zQv++z|G|H1q;Z({1i5hJtinZ}dg2o2zfIjguf)f8>d0*c4`(j_J+VAHW63cVOF3lM zAJN0*eu2;!3RW2tYg^O2Tgcl|u*#tSeqYhN(D<=h*FE;%Bfo3Q?y>LW`$K$`ds2ws zM^?N7oo_K1z3Un8zR|&0Y5EZu%FQ=5)mEi0Zw&q~Se`0*&U`1-sLovCi^YapNNy6b zGh(~#+`%67EbGc*@G}~kTgT^4@FaG!ao}ZXn6hOt_Le1^X4>v#uH?DE?~>=)Uw^)Y z=PueR|Mg7UW3;uGkB9c$%&S@1T)dCDKg`0gOw4aUU>xS>NEFW8qa7mcLKT zVMN)P<$t*E>iG}2&n(}Gsr&=-Sd|$Up?hyf00>MZr^RzvW5S5!&f!b-CY5Hk!wft zqShm~9=Xxkv>*HL6z(S&Kcv8x3Xe^h8MAE-{584=8OvP<7mU8G<5xu_KH56o`zG_g zQ;8s#1#%Xi_$Bl7fZ}}o<;Vo@L-5I;3}NZRh;0>~{CwfCZ4W^+|GMJy<@-)2SHAM1 z*ZRt8ZZTynudX)E|5p0c$#0>f9AHp^3EGO=$L}@3 zBYaoR{*b*Hc?Kgpcfo5FtW%E<{3pRbI45NEBOyV$eI+CI?!AnUL~zH{-Rm3Ol4 z_WxhPxxx5N*ngjn@QvlW8hb%Cwt|wi5xx|8{(6KjNuICZ`7))u=&gFiVmh!{CoaNo(1M?t=zJoFI(~IalV?@Q@!2a^ACF>xb?W=<10tQ>N8C*<_l_mk zIJ)+ID~T^9rX|^|Ec+N;H75F&vX6&uv|i(yWREc_+4q8{^Wf+m`0id{e2nk=z{k<3 zceh^iFR|Ocn;W<7zE!c?&R1>rULcQ4NjdE;-|USuaCZkeTVn8szV~PJi9fd9-viiA z$|l)G2ZMIV0fk&Hs`4z`NtkDzh)+KcUXodZ*5EHLIF+$=5W96&Zzs}o3jO;# zJlAmq?|a!p==!x{@VUl1{nvsgkqJett-8&E`ECLavX=tS7nTfv!Yb|NQO;HSDo&GL1LFqaBeI26Uu&8 z=DPuXR%oK_RoWep)9TcX5~uV7c>VkE{6cvD4rIXhuxsCrFXIs1t}Qfh+M+;5248!r z#L0&FKAo&|LkBu6pT%ISJbp`4-D=aej`@bBE^IWCH)lF@Dzx+YGhx22p~fbOHL#E~ zS@b@^&$*j9_lz9k4IkySH7e1Cni^49J6)N6AYo`?2KwSYc+i8KEW5Bsr*WajJ*+!t zng5T@D8xfW>UJ*=`P{@Vb%OF<%4aA;4|!xi!?U+3FEZ%t3B})ljjoROp4Zd787^{q z^S%t9*AvXyfoqBNp8%f>i`bUFDq-6!Xr%pN?t_pvnHQ7L4D_7g!e)XVbOxI8z@KLy z7QG?ikca(VIr}{i`;@a8s=srx>i58(HgplUyWQSyQFVV^nSW$TaVNBP_6&0aOl7oh zp?wduoC#c_3yNP)Iqh$JJ>6Sxiu(Fqa-r>FIqiFB-|OzQ7ky8U*^Uz&$eJYWm2>x5 zrmI|UFP~@9-bX``LBLGh-JyTfZUu6QJduYy%whlb1Go&p-9einTnbJ~<-g#BKI+LE z7Q#sldtkv!3436HYkLrO>4TgJ-hq7xj%H0zvT|tiZ`F$b!|RpqG5A=a_vyAtg_xJK z?5}pLsJJ+Hc|{9BE-&ArMS0KfUqlRYjOP?`J7xX$=tHVS;?VVnK4?9ctJpqz|IU2M%TZ zj!D~BWL`Y1#&8csR8i4#`oey#GS^B%>SQG>Cq~|joDJPYAY~AYECI+w=mvXUF)_vI zi1&L=uNO1In-Cb=j($j{J`kFEj_bk3(9 zeRdQn-Db*Ruj_`F4t3n3a88HJ`4Ks*xJSrE3~<}cO84>-&a;f@edu>?;Ov0@Y$mgJ z`-%rHnwf(Vr*bJhT&XfMKgjB;+~p6n?1=7~-cHQwH17Co^T^qb<{hdI^M+*MXyDXk zVX3qGOZF4U6wX(|^_Ykcu%QUw9)cdvvHrEq$Bu;EIhlD~$1{;XS>5!_n-mt{bdPC|1qnD0;R=YR#S#7csyLeKnvSg_eyJQk{I9F+TVXg+g zb$#GO0N!S4`{us3#{}C>Xa0fZP^gc^WgRn?tZ1L{P1;XZ6FrG9Y_tCSjV)HOTM=j9 z%{h4I;`2QVw!gRXVjJ^^{(9-N5j=-qJoE{EkC|o|qRlhR(IFWtvPAZYXR(b*o&_$; zTHXw;?BO0DcuUWVfu7*=NNx}{LC-%^OWq4NYiI6qSBu!#`qPZii`b9#b+ZP&?_SY+ zOdio+TC=@mspEt%$!+YV}HW zH*x3RJ%7HtrAJei$sGS48T$wJihp(8ZGR4ZBm&#R`&EmVNE0rH^-(-!5jqv^Qw;E%O-a8`|{}JFzRT7AykJfQ^gg)O1_Nmh6$H0-g71)dgs-4dj;^Q&SL z1!wc1vs2Kt+}$HMJEIycI?f`mUbY{()*tSCLu@uSE6EWhcG_cO4AI^R%b`iunGe@D zSbu5ygY}N(&n+J}V#2od$`CI$C?ED+U7y(*Hq-lTEH|Tul>*9N`JbUoCz7OeH zC%IKM_9rIz-3-55;P*)QJ*t=AyP(5Al!Z$5Q~7}_^f-^EPo(bVi+=H;K4LN{q#Sd=hafX@R#-64YTVC4;&PGHF}%54jVVTn@+DGMwEJ z%u)Lg))Ucju!Wqx{zh9zBKpc3H`^|(E3loq#p!oI=T<(~vtPc7PZIL7kk7yJ5!rbT z9%!STkFf*Bu8!EIVPijvuG0lADHD!cV-1S;i2FW!wmCWe2==F=hUoMQkxJGD=;fLf z_qC+0aJ6XM-wbTaa-os7rPya)y|HQXw3ux%rWo%v(?)L7OtIdN(JABj#2U!OcH8EK z=g}|aOh!{b{6wzB`T>+R=gJB_wA+Lm?-TGI{%+DY$iTkC!H z9oksY+xCW5+o3e(B(3Z^K2>_#ea{^BDTW07zKc_wIi-$K;+%Xc`E2HMfKMUz)4k+O zujl(byq!#brd;$Vp&^ZVCWo@W16n~xv!H|fJFrvhzl->dZleFbnctkT>%a5)ofG^G z{R++L&!ORt$-(E7d5)jF{yc+otqk_~G1y1o=N;`m*bL^td$ZxeB6zV7o}7ivpr8pJ z{YJd{H`d?~ugcmi{>&j>JxEMrvW0ytcXp%W9BYSP)8W^4__YHVGgg_mnaIc3IYDhY zh-`cdo_jlbxc9JmID4O(;w5}K;kQoi(UV-`?f4Y5BM%P3&+Rda|KJbJ+r;+RL7jF( zq_;gIys6y~kp&1ouZxBe`we?2Hq`&cSF3~PMboD8{uJ*okQR|Gx)zv_}Iev z0(?x4VD|j9|B|r@eEA)mOE$x!2U&M_!=tt1hHRSyEo>M!d|M&=f`5T0zt5-8n3!&k zQL>uhOYxZ~AfJ}xLJ_`P179`@UtXKvWLp)X=jSCqh}X;>%ElTiXVtUd%}74{_t@a4 z!e0I~2l*2pL)n9H9wI&=lHWXOzr!neZKLEHeKtY9p((R`V+%3yo!08`hVxlux=BH&+XSo==ogg?RE9_5qiGYMIWA(cKuGm*33iov=Qlj|2E8453hdqlBuca z1|{o|8JiyaX3whK+h*VXi(`?ScYm_`{@;CaRz3NNXVu%=Jmj3H&Q0%ZBfq5NckV*Q z;IHI2E)LQGsGX`JnxIbIdB5SkdUILABwPmgrn?;G&#t}1TVcwaS z5p&R4xuY#@eqY@-?i|tZk=Ei`7n*?SdR4kS>oGw5Pu2Jultr~1(2r=+mIc`832EGe($xq825KnOj zgy743vE;brVb}5;_(AqpmP>iZz46#)@pUUv6@OVAe9au__r_yOO}jyfx2o3kzyC^d zEROQb!QVKoNBa0Wtbf9XO~&5F*d-t1N9=0^CQ|?=yTF*NUga6ZylBu!8h2X=Od7tE zuTodWD)isY9yWxN#$Z1g;6(VXQ_910X%R|x+Y?T|7Fm-`9!t+*);rD!b>5UZ)%4@$ zp4T$^A&!+gZ&@47U&rAm=pgN%2Ii^_Jeq;ExvY%5yxi#v{$@kNtyTK3 zEzHDDm=v$gO7{vrv1|Fw;0>I5&O)=-GX|lLzhgtvbMv#-%Djtx;&=4dfzO7VFEMwz z--FyGEPa*(YvDNV5vEVm@|T)xPtmDM1-8o$ar{!~17=MA8-X5iHrqs=nR zo5DEL7^nE_?91am4(LPZPsRzKHrJH3%}7yeZqTrG+SH-mWYwVixPpt~FYj^s(K)*d z@HLvnd-#!ir#5WuKtD+jH<0SCrB0qw3*&=22 zJ5xqcm-S5MI#kDjE}oNYsN7Es%Gb(Ir2Lct<*zoxt%H_D?r6xAH1dbC7k)mkmc1~( z_CI|zaMwYbLGkaWjO1e+%Coix{mkyNTmq@^kHi2^X1?_{u8H!c@EaYiX(=(mqxszp z&3-zDev*L`-A#MpDLtpW`1Q*DEA8YoX|pJ@AAdgY-6-El^gV&&0s54Ey2#G%M*{hp zxd? zja%72EMWf-q3<8gtpguj)yKIj;bk}9X6W0gwBCTO!bkJw;YU;$^pzIdf{FLZD;17g z$*a%v9jqM^Uzib#F9PS^E_f+Z_F%-+;18zXt&Tk^K0TH@f8l3~LDBD3m%Dzk!FUQ- z6T}~~44NqvI-*>GQscKE*FCz9Yc<5cE0Xp_s!m z+Sa(AXa@U~TAeS*2lv9yt&5Ne__Z$h8#>-Y=y*Dv%#P`eG3|gh%D8V$axY1qu#O?f zzj$oo&nQh+=v(Zm*zk&DE`Igo$&9Y)p?2Evk!c?dj#x`==!2c$B8N5DjXoHDzl*vwkLCLg-%#!BZmt6E%UfpHfQ$o(Lz;W@C zYQs=`X#COes+5m?Ew4$9#ZLaa+@=$%q4EuK)#f4t7h&^?_)lk39(J!pXc(JVyqtBM z8lv7};5$j4F{cgWY*@@4>C$Exc8msmu!_b@J`7{}`iuF;A93GluU4WxcRst$TB<4W zJIB6ZJ;Oft5lzV+tjs->Sx3E{WB*|NU6_)+&RyC<+4$12zq6JmDDmq@vR6>UJa0}} zZ{<0^!#%&7@`&}9)cLXdo|fNI_QSFNVcnUa#QmISKXb^{ya)Fo*zcn3BksFeq@K*_Z+Oo<_P&?=bW%@Z3FP}8 z;C`mx*xS;TkF~!{^@XcLyuT#R=pT$jEML*a&J?HPE@QYw+7mzYui<7!Umxr3O8m2N z;AUi4+y~_I{5!U`i)D-LUvU@Q)5?UT*OMdXE=f+9yEgf%xj!&E9p8~MoICztgkpyV zeSc8QUKAJa>xvTfbgUAEjG40}UYV1Wpx6_KEA|iY)11IM|0%lQ@9}4S75?d5kv#u) za-4p_cZ)K@+r~OED%@N2p)$(bhA)7|?+xS|;r=)8zwv$)&&5tz&E6$8zIN+JLpEBK z*r&GsKK9A2_eMOn^+K3$>#MOp+qynXna8<8Wh(3WW8^65K^~sQUi!Bo=<2M2a(9LB zwFTK1In3F;_t(y*7g)QLaA)@#`pcni5i(5dt(xmzyT-j}X~dG92lh1&)%bfjGbv)7 zkhUB1YW!1xNn!kAlgAIpV?mGU!Ddo~KacpH_-ONE<|x*BtuM!n9Ui-kwC!@!HoD~j z_hfr*@OLA>r5~w7JXU4eb3WEzb!ZQ97hc-c`+TmzeMIG6F3x!cXC8hFzUujAZHwzc zF1GD_%(^JN*5k#lE@M^Jw9ZhR%2H(wUi54B2Y;{O_v^vmYiGz>9a@(HvEP!{vH-b% zGxGl?)`1&Y56C@zZ$3Ugf!I~#`{umoV|=y5ooG>iv=Srr#H#i236j_1G`c|Jqwxvi zH!1%;JipTYN+CI~vHqD@cSUcu5szVJ4YYBepyiS}k!bQ=&%5d#?7+_59?*? zuO2eL{BKbX{OgN9BInFTeBi2~-va7|`jxt~sUtdvu4@nvSWiE*rS6wej*jeHM@N#9 zb#|&#hr1{MtFE8S3F;>v>R^xbmrZ;)6J@-CH|=Q`wf0qa%+aY`TI zmslU=e0(Wzy^Ri1k8ZOQnZnww<3#4m3w}i3j$}WUj{mC0*b3M)2yABQNAO5Fnb*Rh z`3{-ajg+x5_K%F|={EKpb?7y-q2X#3AFXKt{JG7FL;Eaedcm$AI<%{ltik%EO}ja? z52R1QyGEa`XvNWJRkCE>WDX1HU-q)t)w{H)*7vm3L*xZ2VLz@+wO~_`IgV7#MGcIj zo}2+6p?6iQ_;l>7TPU!V^O3ga(9T46Mb{qMkU3~heQT@SRlz>1xCp(ljxp#oFs)vP zrHu2TMSqE?{5 zm@zI!&Ogq)ai>h{!o9##n0kc!B@^fG;qK04`j6r+X`N;a(GDrQ4?5htbE7`jd-U>$ zt((A2p+48qj<@=?cR2Wd&Z?yOZ{h3HpFb+h(T+_~%DfXMWr`6S=0}}9SwWh;oWFpj zP=}?Dw>;6&jv3IQoU3Q@*`?a2hxjDKpMqNtWAV^8b9GtY9{N6PP`*}2_|gMia!*HZ zpHc9$j9>Z;jXwjrYX%20ekm`s;bHuq_-M!5gS6W#EBdt?k`tcc(GD56@VD@`@OXdz z*70hM*5$}{){u_8Tt^xDrTBhy+(!JS&=mD;?(&w|s>LGwrriWKL5pMN+?9HF@v{T!0;+Qe$m6{>3nBUPTt9!REO7l3i0WaJmzwjoOXxo71`_3t_fLfgKur{tr`0)d#@tdkCB7I znuAWB!MvddX3f&515VPp$7j|~EpZlb+IXH$-9qYGs4Md&ag(ywlQCg4w8;7#+@}@K z3e$5oS_&>Iw$O9YH;QEjyJpWKFh2%lzGr1J8HO?iG>q%y6&82y0z zLpNB+F^B%S2;54nPR@-=Wh3*~Zq#iP_Sh&j8^fj-Ga0cPCNcQ&7l~UVEow>=GPa%br0v^g95 zn%t*B%-A&UbxLo@yRNhL#oDdpjq!4(RJk8n-@$ogA^2$HoKa-WXZPneE$#~3XN&z_ zY&)CtT(RugN9cOnr8NN?Q|%^$zgqm2pyAKN&V$_;`BC`{|83l>a~4!@e>aLPc1%pqC zF3$AJRtD@4A{Sh7wY_!-k*#8fKn7h1*&!_0A!f%mY^@*$(S=>1^Hrn2?KehZ?xVb! z6P2cpc#&1^%L4gu39`Ax>DOq zM*j)+7x~D*9BAYubd+-!w1RKNN#K|G_YKU$c2ifj__*kJZyWD>kU0pA>r80=*T?(r z4b4sLcptW6$p_V~*Lh&P&&7Ye&H3C7L%VVZr0Ej5tS#j6oKJ3OVr;Zr?0!+i^&-bx zxR>V7@UhK;j?mE@){f_Ey&!6ik({W-dk~rpB+%LZ&UGbaH^W85R{H8Ut9B$;Q zc50R*jc-HeQor&1Qtq> zJCk_cHbL2}{O-m}C3z7SwR>2vSYtL6BCArN0orO$N6vB%!CIBAUCn*iGnCD?9aDX2 zRjw}6wfcJ2QcL+0@R7u&*LEoWmkeg#Dex#cBxKJNxKDFLvxEG1pSUb`7gQFdY@-apsm23E1K~LA4Ah$%OM-eYZa;UL*Ojeu;$8pG|4d} z`@+y2)TUV0RQ6|P_#%U~zmWZq=#Ckz{e|q+iqLU(NemDBB9GWVN2xv!`jQRZM9v?z zDI2T@&;?v#ZyIItjpSVn<6!SSwVbudOWd9(E}3;J(vqpuc_efms8jtEaRb$yQLa+v z6@c%N@JezH@ffR>1vTN17N4$R+}FzPXhu>NWUky-;smv__fYK}Tl|x5&G}o=YE> z!_v2pWFNcP!9F*0z4{?7Hb09DRZz}qpMZrCz?7f7i#3r=+b;Z#!#Gd^>MjP4x?{RcR`EVWnh@9gW!tcVn z@Vvb|$h)#ey$z0vz|pQxSR=yi*>#j_pqzJSy>8d256Tl=)={qcZ+&uLu(o86-uz|2 z&h-!5`Kqs-3gD5pM4kvthk;3N$DsDw8RY$L>a(#^e6U+I$#&L zWnJr)O=cB`JbQM?_9%2B_D8WV)CXy$PGFCg_AJerVF7xfUwus%o}Nv6b*$-}-(}S! zU(-G1c3I#0ubD+Wi(?JHpY!CQ1|^{`xSyTFTE2(1d@t*D8F>bag6oJGy;WfJ;@=}Q zy^nR>Gu3O|b<;Pb?a`{EPz}J^JHIk^a4PFS@4SuI$JI**SCrxDs-uYZWG!8!;}bg! z?TL*xgio>W?3$!H`t#mEdrj~BOjUK8=Rc%{Y*k;61b(5-{w{r9#ZI4rEuKBgWpq-&Gts99(|^jTi|s5+?CFE)Kce@1N!^SAdSW4Z zqS%g;u^or#s`@9Kp|C$~T%!6!cP^*SMs&;F&|^LHSQs8!%<&Mh4<% zAYQ~4C%UlUrE#t5kUi3?oGTp?y%n8RWcNYzSFuM$GAD!SA7?qYuo&#w0#B*Hvn-Q+ za}c(N0>A&4JYNy`y-pEA#QE4ovXqOrA5Zm^Ky#`k z2c0t=+)CTIJd^!}swh)aV_O%FUY1WCIx;yv=Y9NRpc9GR8a*j`+mxxX+s*)+oD~~6`z-~wnZQ<> z@}{+PrFDMcC~3bB9?6rE4?d&}<-1BFTi>JX)>8bVN`bKy7{{`AXi$uv_0O-fejsNN zO1NkJvz$dJX3L#?WL!7WM!5T~uAS5udET57IEx?;U~&GqH>`EUSn2&vTd(7Rc&>SO zl4C~BN!Nwt7xF)D%!<^OF`VOuVS~+4!a7f3mwSddx(m1QAA8LO_Npm{7_-C+a&}pK z^3x%`Hglm7jk%l^)IBuTlY_uzVouxFnj8nXS4w;Dk>VZDv(V#x&|OMg*YquO?Rs8$ zZB_i1p|trEgVOyd^HUG6c{pRzb)4I<^-f`bL%zaS|05?`_HXz+>wbA6Yp!&TBmDRO zcfT|697k}i!*n+=-2ne%cMPo)1JC1n<@VEk^7e{4#dE47WVaU?Dr>C`xt@s}6nlus zicI7}XfLC&mkG%Vp=ZiWtw*M9?6<~xkcH(zS*T%im-1<>u_C`@jdkIN+}Nx-lEbab zPGR3pz8YU+>=)$vI`-;|lCxj#SsIQ#Vnp*Yu^EwT{9$}$8=G?-Um#2I$Lu6${(|P` zavja@_2@D%S<3CD%`mGT6O?=vZT_W4Z?pFBT3w#?Zv zRV&4YA@;v3pG$ljTSSrMR2{??A?L>hyc1i5f(#Qodl9%5J9&9~*( zciW(!I~Q=qCb(_KKIq0i*Z_`GIFpt(H0&b+Upjm$wh`oGaF2ZGvOTf|TMFk8{r1VG z;68c7Lh@O%Pc~Uhz&Me1GPhp0oX(iyV)y9c?Gxxjx^v% z2M+P+Edmac+udbjpT>H<)y6(s&Mh(+s|`3ZMeeX~zS0?JI_-+BAPP7JI|B{b3UX*8 z12{4$FSde0&Mz!?irv}b!4|n7boL|gnYlM61Nej&SZ}&2fUzF<&^xx)17CfR&L^rC z&OjqQd$6;d!4LZOFI+V>;41rcK~n`g=@`D(Yb@=U>=l{n!}AnQyG; z{LYOF<*w^@_)Mg)=V>R_eP35>bnAO^<`^~luzps2gmLYGzt8EgMSC_)d(1kC@|^Ql zqMIx@*l#TFP|ue7jy{%m^zt#D`e~c2nUpUl7sjMjQHguPqlvDb0`FJ^UY$G@;q95H3!`f=0pNXuYqC3=wb?N)k^nUvc z(c5QZk1OkEkE@FZHv9(~E*UFNF-Mp86SSLghEkZ@XTy^^9&#Ujxnu%R`eO}(HOk_e zSkk{-qq2Q8aDc-cW|;JR;#!|zD> zE8viIbvE+8p0!{j`b!}^)*qj9c(;eOU>EN^d6(m>*QbCs>h-#p`~2v2Zn`q89_Z<7 z^igYD#jf6!z4(}%jU+VRz~#C?sS_H49Q zGMxCHN1fcAsAPrO4M(SP*9Cm1#JAxfI@kvE&X8;v*q5vcA^9eINa1z&CWZUY`|1qj z_d)0X@ozDwKUEwek3F$hpzVI+55eTwI(YlC&;G`I@Qcga=+6h6bUui_jE8hSc>2Fk z=eaA_xgx(c2kHz)x1OLL_s{kOGI!tR3`As|=rv{7VugN!ynyYWb0yI|zU3KAsDGQg zLf6e?KWD?2OZ2lc)_C22M_)_v-$Abux=y2i*Hp#d|6ZJdcOA>wot%aJSI+LPq%Swp zcSv6zfxi4r&hDg+oZYRP)^~O{0{DBr!se32+1=l`N2rRpLh^FTS>p)wgl6#C2p=}V zPnXM@z}cPHi_XHM{polhjWpA5fW}QeFLWBRQDUFeZ9)V0PXld9Qr|PcMtLYg&fczC zc4|_eZ{|Qg7ua@xOV|XDkaPhWFX-2inqw2IQRYZS=lf*!V7|#lTwqZRcC)^uIda<=DyJHuu@dLpTokE>=K$ z_>k&+fiCmz9`u|&x{MC!IpWW_N5;*&LiC)XAS@Nop7@^&>*%J#JO|HZ_*cOK4H+L)c5x(&&)@|54_*yJJxCHoN>Ky#*W`_CFWpWGH~8Eb+h&Ps?3&p;AG#f!`WxU)pQ$f=)6bH26r(|o!&n& z=w}c8_4Lp=PcyK}IZuE-R9_)B;Qr@5f-BaBcRkRK+?gP-BTsez#ea0(BlQNJ_Z)it z>vSyZxa>*1(DAMyEP?*SkA$-;_WGi)TcBfoJisD!JSPZ?H@N0k^s|ceV6Fg^tB8RzZCK;drBCA95Xd$O-209R9e6)rmz%MjL$+3vwlzi5-8~IuPgYR!wdpN3QRvnb;OJ zuJb%OXpIsZ!n1dyo&F=aDl`z=dDa-yEcd^jcsi+94vXx|gwOk*6AKRHocL|Z)dkPe z`qP8%Pr)2`bl>a19#87L^<0wd;d{qF@a(ErrZ&?qdymk$6>aNwe`!~rH<7!0lX}m< z2A<9J;_<~Khlg`Xk-GzRa5--h8WCG*AC2^#JIVPy)iAd2e!Cz44c~|zZvX*Gr zY;t6du{}m&XF)&H$7|tT2D()BD&>OM-P*8Iy0BCJ0-nWB`q)O=o`di99_-JX;5%Xv ztb2&F#9qePK_u+Ma%CrZi|QdWGuHd3|_Szg$$tc|i_cTC4G3cH#wJvPi|0sctF zB6T+bdxbk-H~d#Yv+k~_}CbUtxxP=^$X83wqNm)ac!oZ`+|0`dSHkg z{kCpTlXwS-UH=FkJ3$+Vv4cfX9=SMg4mk;StFbKt$0q7O1{_O+Ho_yR?`%DSj!iy^ zsYh7*Vu0gg;7B$^dtzVQWF>Da_Be7_JxA^tL!{;1ARIp0sdQI%O~D=~aAXGI5PMub zawVFWFtO>Ko3_~+9fV`II#P!riarDmk9(;;r-GM2oI>*aO~Aj8db`o_WxR6V74~Hx zbKALtdn%Z-VzDVpe3alelXlAS`xoE)iL@hUwe|3X4W5yR?h#g zPlna@ht54JG)FcGzurBPNP8w}BUN_MpbtHCE>XBEnc?q^py?kb{58~>6 zLV4&R{&Uu<#%N=U){xt60uI~Zp>m&MlU}}UcyId~C_jyT&;7(>l3R7&=X!pO;myOM zj4f^C=6z+HlC=*%;*xQSo_}#a^5Q@?KIr5eUabGFaMX?^4vV~4)dtDCKnyzezk^SQ z+0yZEE;A4dnyxmTz$fg}n}{tZ7WyKv)jYOtM$MTuGirv^+#s=VB{$K2H1`1)@Qok& z{_k-I5#vo~>~B%mwra@ygQt-p24_`A=-DWB{=tWoDxT?afz9F@JuToHt=CyRbpF8= zN|l^(xXD{0=V{_IO`L;S{1R-dM$9i9*JtmNItN!@UOwc*U|Th6ej)iALN-CY?AmWp z7N48`aP+m?7gHoY-FmzD-3(s#ayzeHHvURwFZWB;%RYW3cn2x_({E9B>y^q5n_oC_ z0M34KrLu$I0pEvjjECV@Dm%#7p1u+cgOq*lTa<0SQrSW9u=h%32f@RmR~p+O^kBVG z*+Itk;+0?+r0lQ1McIG3QrSW9@V~EAwhs@wKaB8Zo$4?Jc-e0LNife(>H(c+B);>& z%iX1^@hGjmQcm)|J$Otk1RGe95r6BIzx&$(!$Uz9z9* zBGb}YTSc~)wvJAc-!qACT2D;VdTnu1X>49{sdGuvLF$ZgE3dVabB+7NFPuWRKA2sB zOm*P(QZK$lC-^4ugwf)gEUz4>#LO7~y#48Hdm&%ZAj>HCk< z2A>Y=1akDmPD(PxW+oAD{jRwx|B{PuOLzXI1Hc}cd-J6z;66a?MD*dAm%3QTNs)+C+GA406ksOHl*JG=84fA&xQ{-n&I;7sBk1=li8C1q*S zjjW}5{V9`unkm7nsLo3#fk*JCn4GVjd`5ju=Cw6A=98rnw4Kl#C1(lm1j|Z)&qVm{ z=2@s8i7h-}PVj1{GJO*BB^(2>3>rF+krBYYuBZd0ta(XT!d9IHotvpF_RV2xrwcccTEw|`ed}FN5LN|Y8 zz5cdviG8yVPi09v8Bgo*Al@{O-cNt{1h&+)l%&)kY-HT$*Gb|C`kgN2uE@!L(wSSn=`e@jmgE!%iwovIlkUi0HU@AUv_z=td zcka5WN%DG@2yHT_LZ8ArHkBL)_o%m|y4z-?{zuBvRCnVHja*Nx-8!D7ed2Tc&Q$Wg z^l*>B^}y=L)9?_A&YBsCnqBxfSQH zf2&+{*O2eRS@wLQqtwxdthu(U!$LYrl^OcgpOH&T^b&Wxv&D?gCb_eEW!xs!@nh!e zGCk+&%k`YMM9*>b*K^{(rsoueCv#RHI?f=n{M+a_SJYbuS$nRiiwvJ%Xd9phTu~R{ z-iTmKa<4x0e?<=%1coc>0fWHse`O6G1cocF!F@3F(gy3FtZj{k8lC=kz{dw4a#rQw ze|8EUIJhG4dyV|wlEWesiMT8 z3UDB5M3b}y7)8ox1k=g02OwrBC?{ek5fcJN6M-U$m6*h0JA#^M$Gn!;&`L~f z3>h5Kz8>E91cv~CGJzcH+%wF5ioaMI1H*HW1s#kqC-CKv9 zQ<>&$PM)STV^`JqCN?l%r5YWuVYi~K{0s1jqGzW!*F{$4tH`3gr3;&tWSga=wPzkS z2w#1cPK)ap;7q;bPY0GdV5tR`S^S@h&yAy1i}yJ9J!DJOturpo8tBaQatH8xz_{{X zJk537SNKG0VY4lBn8k+tNKP)Yl>EL&?yo;5_q-U1K_LAi?#H|XCUEIf%iJxb&sAdW z>M%Dg`2}Lhhz=mID73Aj2gn$R9?%9nqI>K$=`OJ+H$d`X^EzxmXYu#ZSw2GFcmZDZ zC*VwYWs0v2nlu!@xj`ve)+}#AD6*SNve|%a_U8~Qvkxpm9VS83VdP!_#~O4PbgFB0m|ruV=aJ=B&JijxrPRC7k{nTF z`Rj4T_n1DxTm1^>RVm{J14v(qUrKl^Y$#0`4m! zK0spQ`6by68((@Uzv`u?2RB6p<8*%#zxURK6&p9yUApH;9r2tOm6k4ljd+V6R;Wn_ zZF5{P7PTOH*c|g&>=CgKTMEWT%^`LR@u0EWMg4~^>5wtXT&HH3_ozc2R3b-PHqIa0 zY}JkNlrVmZ(`J#o7&gs^2Qjxd&QEViMCv{HOuC5)gi0BHkWxJ zZ9Pq_sI8GM^Jsjtp1uDm&bve>eSlxu2gaz>?P`?EV;k+QZO|p<8BJyf_rRxCT9MXl4Z*m=(JXThS}V7zgSB)cw!T_yMvglhH`ro(b+}li z#W)ZfxqL$hwq>H%8I=};ZTb-d_rY(1zO;TpS0VfgKK;b8q%BV>I(CQE*>Ws;@2$yh zcuNv`>vEf=lXN@rogDid?I)RkS&Vr$dZQYqvu2gsn~~u@;iXy7r_h@ndg~;g&|LCu z&gLxg7KJHR(VwBGYxLhzc#X$W^nTH09k_!Sd5Ht8ejK!|{^U~6;56il$ija? zPTswQHI=MWc8>8G4%oahKZ)^sDQ9_cRM@xrC96LAWOnx2s_1O~-xJe1C)-^dMNE}T zI`E%E-Y|I3s>}rzry*HeqZKJxR^fxhX=o8$GLZHk*gw@p*WO3-H8xL)^J+jQiod1! zL@4mX5@ndhl;E&rg*jU!?um;r+o*H4Bs117BW=K|GlBm*c>X57D`949aD6hk@hy0d zq911Y4*pBuW0how}sav zk$3H0&RfT7`H@*lnCWue?7>`Bx76_-b=R{N3NW|)`T?m$0*}FN!TzVwfvh#I_3iFV z$wJ@Wuj$!6`@)DL5{*tCgKi#+JvfegJ5<(MnhkiZ0X?2M(d~Z({-@XZ20({BmEjG@ zCEq~#y+CQ|>CrdzxOi9U8hXadf2E-(Noo3a0c#naY1LY7J6qBWCU5ZwXN!yX6MRpuR;-d%WMjUMP+D9gf_~7I%=sRh6BZ>0WB26!L1?c8Vb4RaP*a@_7_vG3$C9%9c)!7h@GJkx9=y>eCR+7!`SF6Eyu zr$Q%gXgm`Ayc1n^82m0pcwU&^dJl6~_?^(Xthv4Dh4$oRi2*oTPtwKE)THtn4utmzOlZ z+%Kyoh5XaX7dCGu;mW1 zZ3Oq37zc?9CGBiM?$&>#meuSf_A%?%`X950vIBb@I&rR~gE!F; zq`c%&4Z|z~R~2(<3;K+ebp$eZ-aU^$ex!?W?O34q>65DRf4eAdo$kBGk906r$9lj0 zhHt+e7Ut{d=iJ`WU)jFp=kT(4rCZAb4IbAkzE8<7cBLD7dS29UN#CSxKi@miF$KqO zO?QGvomHpNoz5zHz_Oh`sQ1}Mfx!f zj=`F}=Tp`i7l=)=$&|pFVxYE;NyFyoU&6lAHN2&jvqj9=@5LUuxa1wpf5Mr-JPu7o5vnSJ9mv=*~9QcOpAwjUxK5VlQSbb}zCm+iD`N zRiRBOBc^zw*C6qC(l!J*59i<h5I6<@EL&RP7eS%E;^m)bi z*&D$aG!nzx^pa_vv_V_kL2U5sWehrqL)DM=6=D)eOc{wM6pU9h1pD5A#&&3v`(TpL>iuxhERE&HqMCVlH=kZqaeCIDXwrfw7bPLYsZa2T{3@c1(1OIoTCXRTcaF2X&}R3@85c(le8TYq4aa`H(#?Gc zz7C#a^!@k<l6C< zDL4tI9*MB?qJ_Y^vYqqbq3=o#cQ~n z@vo+J+pklfz#ulAYug#Y_s@ajPcNF*)nBJvDE%j-zeu{^M;k-%VjGa)iosjl{l0g$up;2>UbjYBJ+Al$1sK8Loarm z=)a^xXT8|dPw6fk0WAsd!l!0AJ~c&V)+Iu3%{Jc-J$7B@ehKZBU?X_%izoBbM{ayj zd}@k+#(wv}-n3ZG*`sR^zSwDNc_yt|;nV1T#i5xQVCiY%?C1pL}Fr9WI!j*}sOO#3StyF7+ zJF9xz=nH$UF>6ITe5sIpvbIR0?ABhG*Yv_Huu6K~HTB51cFLqurj{~Ne<6Hlo9Gzw zn{=}$nEr05GQkbbko&Q2;MeZpfHz3oy?w-ddO>1@4e6S+w@jJv81@(IEYAPQeSvx< zb$w2<_XT2|l`moKEcPB^B6Lu0TUp#X|CLo#-^F*gp%Kl(M0*HS4u@paomPaNjQS zR$;@u{4II7?{&U)V5hwN%|6`M$TxgruY4Of+_zcUiRtq#bGUCK-}Z6`+2yj%;l2%g zQ+o5+MkqUM8M1FT5LdLuLH5^`_{{UdGu=3`b8-&qSd)v3ca_$%DNs@+Z&_cLqTN z^WjaLt3r74O!NUQeNygHS{TuXQs*-XVqwS{{eqO z{ZN;6Cik#$m)}re2;tmLKGCn_e=fg&$!{5p68?Ad+s*Hncx!V<=QBQzj3OW9W^hK5gMOdfgCRdaiNFP+HV1$WSEc@~mqq3}iWj8-Gs z_e2VP!H>x!{8H+v>6IOIjd@UB+}dXjlp^6t2uJIf!j-Z&MX!D@bs z?_e%(&nqU!!mVb99lB`{{`G2v};`po^S zBER74=*i3@_Q#IlGtx@~2WeR3)^$yC=Jde>V{TzuL~>+r9&w)e~$j$ff}lh7D-7der`=&&JruXMm4z#H(Ldq46DzM-+n z5_{9wO9w)8?gFLhy(@F+plv{E5dQR3-#*sn=fcGXM;uP{_cr$Y1jb&TaxnXjR9_A7 zm4Xi=v^y2LY{VB*Xjf#$MB0KMotufgWX^kKE?rgrUWc!Zw!cAUUB;h1J=p%VbYBYf z9HRXy1MTZoSqm*u)c)HQwI2_ADr(sF4t+R}y!G3y7xiU+EBt3%bz(Vl-$4vq=5}Cc zYfWN@UPm4^=nDd`&?i^rpD4jMQa@CKtK$>VBT0t_ZNQ+X?P;F4b?ET}X7=Js=3nVD zrAd?NjNvxsm&j4+m)Kckj-`@U<}*G7O(l=OTLmwSLnOLIE_5$>sb}&`_V9Bn!U{@K zq8(G=yHEU>@mi^rrJTmD2E7Z95SnnODNXl+BPmyj&nauq5Z^m!E9%A7MsNksc?w)f zjL(j-%7ngSQcByxD`ZUKf$=h~-%j`GWX>r+@O{EqKioUkAv!{)o!iEI4Z(6-A6&Qu z7tn(1K4LJS<5c$Yn-D$(7j|$Va0@PGmMBd(^=XtHUqx8#0zsi{(0@G0FQQ{WY z$0LuJm*DmAN#I!wUg}4oKg>bTGdr;*g=jq*8js?My>+Rgp-Ko`YXctM1O+F1Q+riz|lGMyJ>JeC&dm1cHQ`dIJkGKoILST_QDg+k4KB7_DboBD5 z5G>5ebLsFFO|lv`xo$-aP-Ceggb-lTgjvG-MV4eoQXjM z&WS(P6sR3_ll)$|MrqnwYrUy&87=?rVZL+lXyHqxX;n@5QI>6j*Gaotn;(tV+U%gs zDdf5Q{k`G7^Wau^V&6JXj#V18dgqPsjVAwc;trs)kh7q%YHBeLd& zwvcx+j#hq0@;$)acI}Nyw-uT)KvSWyoLO#-6CHc1Ef{Z|bj|0c1pU~-nX(e};Ue}( zmDL+(7e!ayijFi_*6{aWS95bub{jI#KBy|6z$sVZt~-Rgp(A{+feRUrr-jdrnk)9x zgMIzdvWPJ!X9=)z_^@$cN1cuxS#wB+f!EGEb5iE&`T!x!A+$6mpxn2jri>!C~I8g5HR%P zeYyQzcHau>aU(O`&#=Zh!P*C0i;qK5z}e!*hNqU}ONo70_?Y&;BKZG4{u@~1xYrZQ z4|>anM@YJ1ErMulrh}ZB+o#ijigeb4Qo9oA=6^810{?__=#n`b)2 zpT@Tzd+5-vN#)RQQ2{n-?8hC*xOm1>_9tbnznMJl{n<^{R;8>Rc>i^nv*}6t5~Aai zA$rJ7*8GApL-<-9{BPxd(KF7bHQ=`>g}cVT=-FkM#{ER9VUqh{&W9z#`zwq|258a` zFR?R6{3%M4;Lkvs{FZ!jkCmkRnHz$0_p7rUrDJD1rUFyW&aWpjj&Cs68nF-y?By#^SGCQ`J~x;&}F;Z`YUf<9^(Nv?M};M;Lfej@(pg)`#LzUn~ZzxS-llCJwiS>TiAMNZ;0A}|B^wBxob4uDp&J+uMn!srxb*8~H2h#RmRy@+x zX5wx%_`diHi@(ut!I52G)ifXZ!QHB{p?X5)_vlQXt?a{c_o=T(H#CriOnn&Jtow&q z-S>FFwNZ(&ChPwwV~kFH_*3wvs8f%+3xo9E{afzlUIAa^Ueius8{Xtx;bcy5uf^d` zV4no+^8FjVF;()IfVIt(=uHB~wiPS7N`NiXHhIHEZ4HqC%!3vQMoB6Ei3-tp7n}Abjn;7p+o%pKRRpLl7H)NkltJkD~=b-HR zQ<`rhX*EBLUDt7c+&YmR^?mZL=l5mWtRC%~&;K&=_N)p!)R|(&J{xr8~D0T)h(B&{K&mx_~hl#{N8a zlhi1NNd}v9@=)fq*pz-jzsrAk<^G9>e*@i|WPkm0@caOGThNv}&)J>y=ZCu7Pr!qr zrM7&|=I0}iUdcUQ9R>e-it&Sv4e;6;^jy1Iz22cu@=iu~nYgcT_e0p%+H^_nhPlci zt2!|7Nd$W3tB=dvPtE0?lp^+YkhME(&0~EE<24w4U@-c?Pk^s&Sg@U3Vj_mxsb;y1%MvZFwsa-My-*l(Kmh_6=t0K0SVV!`6(n4W$q1n;fK# zt1xXSO=TWNC==fAy+Ju+xt_SYT&5B9AU4(M`1$%9o*p84>g zimj#yY$A0=?%iQMEqxlse8`hL50eL6EF@1PdA7rU>&QcFxxgxTOMmK-yxmkte{bi!@rRH9yXj*!+VkPg zXOV@2%#Ml%{u@09;Je#Z{0B#2V^*VGd*H#H^hwq|rHqx_(XjzuRKi%MRSZq4WIgqT z9)DyNAGlGn_rn|6E%-73hwx$*UBLZA;rsT~T;MWPY%v)q>t|0&=Dh4p8J^ARuEw{= zaQd+$R-GY`dlui~?1_QXlaT4OtIc(j(52G-1^!HZ=f=it#kc7m#dneT0LOW5cw5^$ z?ncMkQbLGPTJKgzyAe&;f`RQ900VSW9Cthtdbk(AHXbLX}WyD{@Y zbOx)9dzXge^OB0*Y8&gTWe+utJ=8pWt(~g%Xi!h!ED!Ak_fZoYpTtKjh5kJPznu-v zuFjL#_zq`8l1RV$yX?UxHl7Jn@Rz=R+RK!a7!=nlN9;&kp075e?o^X^OAaHksKEu8`% z;`bbWe>2tCP)fe-#FiYrZ?yM!e7k@@^r9a)o8HGJ;UP|A+P*YzIp4dH9YQngVH|cG ziu83NTS|~6X~+_3YoK0fN9s8_iaW=tt7^K# zdx|vz>+r+xmX>t6(2Lqj9bI|h&T`XmWjVavXVn`6He@?~3cF_Zcb3m*jcz0jnu@hD zFXddoG1g_PWi32O*4K zrJB8d&Pw~S4^G9`)Spt5=wF~THJ6unX?yYDG*|iy9=q_}b3bccGPjVi72l6G z&c1xtJC2p;gqz^&GR`tK&E=E3CZivU&Wx@ZIQC`FJnl`B_2!Oj=Q#Kl{y>b+d+2xL z`F{Vs?4u@YdjZ-WZ!Y}X3tm#OHRZAPO`~3kODgtJ*{7)#J1~5@1{;(ySLqg;ln38A zNkjLXsHZ;$zKcu}+eGT$`cKkq&At0QG6(wFnN8$%us*;JrpeTjoi*#ZBT(Dlmiqq+ zKMeW@sfW6*@qHZhV{DSTK`twIUN2xwzV7u83dTtu)EI?MwoxbX=m$0q;I}~;fDeJ@IkyhF?hBrAMcs zQ{I|1{Yr-2Iq25mBs;rO1E>^;S1O4yRaW5h= zuwx(gF#6o1R}X!Amr5HtbZ9;Pyaws5b!rn3U0tY5aU<|@)TyNl`P@!oIZ^K$9YD{*~*L+e-1Dm^~O z26QJQ{WZ~VGq6PfTcie?_-CEhbbJ+GRE4+{VU5Yr*{uBe_#f z)>P;=O#>>__~WmrzOU9~;d8~EYUm&0qxL%bLx)9~$e4Az--4&5C}Q_3GY{76#)sQ} zpv0NcYlNQ|egd56V1Derrm~!-$VEBCt&a4}Mo$c+ML4!pn38C(Nz+5K*;*4t{+}%5ZfM?O7xy54W$zZBuX*grm3d?E zXQ|K?jHplxI@6G^?A>3$SL!qJZc&q5_fvdj5^SPCk&wF@(_*mtU<+qLWN_nBe|6!j%#}0=GiW2(vwV3*Kc_2YiZw1-M?22g{P;|3TwQp9i+Y*rvH9uL z%UmnZ3(uh}ZK|>PsnnNFy`mdT#eUF${6CAloIsz(KltSnp-rTjcG};hl1(q%#E{9Lfnz zn~|NO)1o)!S3j83lnC9I6hf~hD|SozR|0SUe@!%13`z1*Umm(_?H^LT=8C~d9@~+` ztas9|KMXO8?b5)1_5hz3StWc!>NE1~=zfRTv3w=_uxX7a4xi2#2(UI4_^@Hc_7EFq zD{=XPy!>|f^ep(b3%;EP|DMU(HOm2{fS<3xDNOiW|%hA!H*VV8R9h?=MI-=Sfg@$zd*q=$aBpZ3e#R)&&JOAq_@%ya!(vjS z1ZL=6U|y=h9ODUSbwxCKm^XEARf&IOz{Ok_9BZ;jHG4e7-nw#6_Vsn5Z|`b>232$g zou(@U&v3EEgs%R8{0ZqL>mEm!>D5DCxkfh;f7q|*WI@OKwiGGWqdlwSF6HaT#=^#U z?Z>PwQ!E<{(3jMq z;{Uh@-QGJSNS9ObCu>j8?Cgi3$NUKB|7q;(WB7fB7*J_9DDw{L2D{e2yEN1KrM}FD zjVlH|E%7sBACDESSrJnpx?aq0eDlwaSIXy7_6|?R@(dGv?up>Jjf7}LTf066 zJ$yHXJ3@g&bnsZSbMn|hx`MO%Dq?Ydn5a;<%Kbb_*xvaa)TKm2e~*O~B=;LSJ~o;3 z>@0Hzvc{&1F`vs(%412_#XBcwKi02cSd?Y_T=Hb-RP(t4rCiVV1p}10dla2HyGogx zOGwqDJx*aKFqs%cE zWk?H4`#Wv@h;-7v*OrIxW3SWJRPe`HV8LGzeNuo=0e8vL-#NiFb&_+kjee>0E4epa z@O!Qh+>(|tNQoQExJ2us&2yA!^O+?|xzp2mi+XqRV%?Ua*~+f4CCNjNFLrtwZgFHW z-YXUD9CX6X$OY!-9@Xf19eS?Ec6Sn)B(|2N&{%Ao5?jpt?hu~=o$49(o0W-Hoz7!| zuM1rq$0oVp;hZM@WBMdp#L%QH#v+A#kv>(8=4pSuclmwr(_givWUhM5P;f85SGCzP zr9P=Eg}Ow>W-}M2v4*SPn-bUxFBfj~!IK9Ghdozdfh&wY+PA~cu3iFP*0T>eEoaSmwn zJCngBcm1^Og$J^xPCF)dgR`fIUd#UURdG|Y;ISS0{@9$aA2$WQrODmuqPTTE`tU<% zZZ;7^#mw2x2+q4kvWF6djE+WD$H41i;dycJ&G?3p94x$7E%U+)>`Sv6 zrW9p2OiGr09$jiJve89HzgL5I z5bzezRz7XcrR_U_VGer2Y;5GW1KTWMbP?wzZxJwS@aGk&a|@A`Dd5ggr25j(nUMeI zUSYg1z#rEwUDfpISf%?}`0MC#ISr>+qm6lQT0^>EP1Q%Rb}|R>Rb5}l zfB2;4?~)qk>@I9g3Cu!=kvwMnpbE3>fm|&g`XGKc++#BD)B}cwP8a-rNmWzzd^T+tqWPK%N`#1a%o#2}srTZ)3cuc4Iii!EqhX0MBTlMLVmE$8e zw6TzZp$mNIOpcnHPigsfv-9Qd5r}Pmw+u+GlEgni7boPgcfdD|1uU ziZYfmPYc61H^BQi@OK0M6zn9n1ws4yt-x$&EthLkc1>Kxch;wxZb$i>ByBu0G#T4G z_|>WLUMH{w`;yQ&kiIxi2K#dSX6cVE(8``VdQ*26`97hJ9oVure%Uig#$VdDFA3`J zB6oZ4QkpUu_fBF;59Zud>Kph8y%Fx~+^TC>j~Q& z@HQs-XDChI0EhHjEkX}ipvBHT{59+LYGP)0&Jf>qgLwcv%$^eOEy+*ZkeUK-D=!J! z8Q<^M?0^@Y)M1C{wQa~cs0(^Ez&B0UHVW0Do+{|NUY}Z8j9r9y3TCl8I@M8}wLNYr zZ7<1G%2VZxBYKcpCOjLR?(jz4Ag>A^dJG%<-Q?x9g$xuULo4 z`pc~w2%X;1ta64^$2s2|#bizKOl(de6nb_PJd0gWZHWZ-0u2b$}C<+g@;c;b2HdHX5+ z1(*Y3kLd)r>^sEDo}KvNwV%Z1%s6T5JjTd?9k`u&>tGI^WG)qA_a#R5dIx)DLSG9n zWj&w97>s62(^c zd8I>c>5*Sy$Vz+%IQ#Yuwi@v}_!gc00{S@qwvGNNeb2+G-FeB*%Rb+=j6bxB?J4L3 zJrkYe0QSgv*k=3MuZhQlJ^YHF^tgrA*M47xbr;^6o!mb&K7!W0i8F%*{^p2(g_O z{Xy+6*_YMb*(dGCg>mcf`)DlMr)uTIcDiMNva5#Ys{*s*yFK;!-}Suypu`?Nwkq<* z)5US?J{sd}Sf&nWcN5FDl@^b)MfgH3!bosZ=k6K!08wN7&XCD0&ZomD2q8I?~B8fSR?xwo%orZr|nPR0e)SQ z%Q^%a;$BO?K1sXJ((ZBZHW072#H`4jeu)Ds5)0f(+%?CZ$A4Xm!5Futl;NJ3#JmMF&2rCZU`g;?%tCxPCK3;>Bt_~mQcq1{QG~&}h5o9o zO6)dp@Ch`Zs~>1iBvy0`Fz@+7DccACZ1`N6o2n+7Lv=-9O90;!Z0r$A9skz1>}Sec z{B-8#($7N9>PkNY%ulyf$tbxQy^?h(av;8vx#|8*_4;b&v5ap|irOt_1UmGw+x?7j zhdu_M|7e~lo=Bbu9y5=L$H-&g>Ce-TC!8m2d*?pYcM{siY2rqF?{1y-q_b;u`NA%I zuY9A+)4R~QH9pQfK0K2O`L7n}TT##JTA{&bTcsFXp?$DC)U~1TK#EVo*@y9E|oI^*oTtr#|1RH+gDfm3fU?SyN*pu()WqB%D}> zcQ5ZsAIKdJD);u$o)MY~!KYvg`I5P;;6tR~L-afJOZ4979hasb$%{05XND_HgMn*z zc9gb37?RAOT&1}x##}8 zNB^sNo%8FSNn#^BfX?KH7x>`?>=}Ce%yH)YIho`5v6R~5IopqKwZuo*%6=lcU73fs znX+O}YFv@i6oD++{y|pv8GTgh8RFB9Em^Yr40HD&`xs|z2NTa!3@F$!bF4R7x3@f| z-`?_r+(Gw2hTI#;-HaK}Bp#wn=pK{3l#zQ(GDaRu9LxH5C*{UcE`xGq?DL=1$2LYW z1|O&~+Fh4Y{vhQ;_lrpR7|O?tJfy9kgY9BFp}g3+q|LRIDYT9CsEm0O{3ry6C(tt? z8oet7e~c*z|I*?)W~(mVvk*CX4*szdyZN*G)4XSo6=I85V$TL`#j*UJI~6=tGgriJ z{_J1UmdhIV3;az4*H+qonl)~v8t>VPEiH?2o{B$h>lZyiS~xq-SHU;sCqcfB{;Zut zCe94@Sf%kKvdlGbZzlIFPLg`@PxahOA6RpjrSP7`eryDRNlDZ8kyD`!6L63(Z8&po zmSQ$PLE78U-Ym|;_U6ra1$d9KpDi>UfxI>DO~E(I5D49i(7`^v?8AoUto*ifZ;W!c zyBYm>t?eaOi;nmcq6eq^8-B)y6iaHDYQ|^0Anfjv=9Q$a;#=6=#m(V&mo^h)VD0^z zTrIB}Mrvi2Zg#b-85(0v!}%@dZcpd~3hGqV6?gZ-=F@zCW4o(m zh9%xAZSC6WYT0F&U|DxZKkfgUZ@O9ru(JcExsSeT4SfjTjx&i zXWeYL$+CJtyfrMYpLJT?K zCEHGXLt;K<*~eM*qE+S5!kcbSl1{=b=-v0}Q~wQ>~uu$Y!6q;M8MB zlsadVo|qvUf65;DW0lVvT9dt2c#UCm^?G-|YOhWeAMYgg<`Wz7Pt5=0J3TK}{f>R4 z6ns0HyCyl&Ma7@FDpBdKc|zY%pQmVNe#K|2jaUM9VhPaKChjThCX$y=@>S>Ilh~ir zMHboPQQE=hxioC~xzsOs(elFMLwR%i^~sC=*3Nzpc2+GPWrJ^Uq?H3dp>ow>SIQaj zv9M+Z_hI9akCoZj7LXNo+N=iVW6+pw?Ko@@@s0lm-@l06yE-~+cMW=aGHcx`){Zrt z9Wdg*Py^f!;1=D|%h(wr4Q5&M*~1M?@2mSN>$*@IzsOd6q2JZ|pdH#3JiB{X%GZJy z6MU=&c;pd1ycVBh@m)-VmZnlyEp6kQsriPqGydG^*PVwBFEm&Sj-9=Dle*r$)HCsN ze#Z26_=w=`+I)?~JGh*WKBZv?tc?N|`l99S9XF{n@50r2+gVdm=lAlN&R?C+%Ua2J zoqX?hU7gQ`PIhg+-@|`}W(>px_&IB-5Dx#*+r5T!9Ah{~;KkpVx72}e(`CBr6q@)+ zADZ~-b!g($jT%iPKoc5$2`%)}aJAz~U9v8K2X}IZHde6asp)b9+gO3mmD}89) z(A{$xJ|q4u*5W?!-E$rIJ_^$8S=JWU!nftyD|K0!H=~hnf-|AfZ=vtDXPmna41&HH z-@SvB?gQDZL9vxxrf+Cw`_~e0@cVPp{`Hl*9fHT(`oKB;I&fxYXn5Rz9XQ+0U8zg( z=sHK6)Oqb(lJRq6FT0FK@&<^_E%bLSzU^nO&bJkLe!YDD(|z)RqeYyRbw2{F;bU>V z_P3nslV9cvYk2pge?PxHa3z0@;Aw6jJmp^pPgOxYJ$5}j`LEQa;Yn=se-BS5uFf04 zc7MJ8+duD#3_=X0bJ;*mq*MZOQ*DG}i zeBQq>j;sN$OK*Sflh+2l{aJ&rTk8kwxezaM|LID;f5bO5_^N~O9Y^k8%Qp;1uhgZ% z_eXpg{tjQ;^3m0K(>|gvXJ7qZU;YjIP>5gqiILHF4ttQHC9mA!NG5)-7Q;887&|Dj zN73W@j+d+fLv^_EYw;rw+?;>g!dsIM@mK0~2=BbF&s@9z>ba)jVAgnzCvCb84z|Qx zsY`H>hQHI_8>8IlK6#l#@5@;h;Je;<+N1j9m3hROZRx}H^0q}>$y)<`$Xyz;SE1=I z#HH@5zi9p073|NV>-5KMx>A?Og45_7e{W3DH?JC>c62$$>$))d`{;281jfmIV4QLt z82v#Qr(FleYT_#Or3*89-rs}K-bc5qfi`7~F5@Qdnsz1r!hm4ABd^nLTVHxa7Zu(9 zTG=dqi6Pp%_T8pKFJupGD*JEytkB6!e6@e1G<1JOd@%MxWxb#-Q08q}9Mt&&H*2wc z4s*s%^F@&Q4B^BWz&;#~{bxfeeoRZkH&n+}HFaWZ$JVyKp|q-LFlS2=a}*zSp_6l# zjy)W)BYgN<(>eqDrS{33!=U_4OAH&1V3TfrS@Ol>n=`m^KY7~F6^*3h6S&LYZ?JbL zYZ?0zqjru$^KZs(FYyX~C-q@V-g1+&OM{VqC1ZP*er#f&Py7uH*h%Go8vj|lh_BaS zFS^7m%55)oHp$(rdq{5wmrJ=%ap#JqUC*-ryTcUYjX}>CR~eHu?yYg&bNI$6#D!G$ zrdT>gD33|}{gvptV&ieBQD*GTfmZa^!Qj7dyJFjxeUEC|G?YA?Ig@r9!BHOjaP90D zIY*c`G^}uUabm@5$f{~mM@-(3&3f(EtmEhxY57zmYYMku}dr+BakK zbYp{YfFBq2PK74Y->F|OW3!0$JpR^`7qLc*EOBUe-m!lw@k-ChdQZxAnu0WBmi0XO zy{g$I>o+rYfB^ga^i7KaD0$^RS!_0kO|)aCo>}z!L!KUWZ~#Zyd9fvnGh<4YWKPw^ zc#8SYy7cf_T~vFr8r6P}8s)VrY5-q`dH4kQD!bHkTUgUfa~EeGW8F7Z7v@obX(?%E zRJ~VdIF|BqJ|%-O8^`Uwup{vf@2`p1Ndud`_CU>~rj?dB#`W*#4 zud(JDPPwVXzKq4zJXROwmGY^;5e-adx#PA&jrA&L3p1@c#p9&Dao~LFw?X(~$v;&` zd)Q!P4f~-Q;}zciA!Wptw3GkPL9l&nDA-(G&XUoYXE{glG;l=G#$Ir{5qtuh77z6_ z<-Xudh`?bMJ(u|t8L97r2DSOThwm=n6C6OVhh;3qZpiQFB(IUYM#dnI2j7eCnLMXn zpV3eQotN^|s+_^*8LTSZ;?KWjah04e4QxH$GY^~VfWGq`n$+gT)}cWf72m|~&2`R0 zeYZ+!lDVD$EdRAQVM9$~Ra4`z+qLsHer)#kO@oqTFQ}7!`^ng+HGaT;n(zaEn!drn znL7tIci{``;R`E6e1ZK{nezw!-L$S6zTi$!b{(PqB6vcv@C0q14{mHF-3?E04-WDJ z9rWHtJ{7$}iLxrE8*dPty zxB)(J5?+x9{?gzFr&c+ePP6ZOhP|$Bw?-uGQ6oItINv7ck8Wr0bvt=J;CCT)dKh@n5d0U66Nz6%&x1`{Q_p22Px^#QTdS5Z=y$hVqrWAZ-R$(s_ zf8iqT^$_0T9IiaJn!Rt~Ezk_}fxCHiCXKhC>-#=X<<9AdfXdoe`~syf(k~Y>NPI{A zz}^Y$CxPAWFlgg)3uDrkCqcy8zKYyCA$>RCQ>vYN$LD1*{R;A`Wg4$?sDr)2uRN8e zq~z8#ukb1_{qx*6DCr8%O52bPKP&%n+&bCEmGOTR9~jxAkUe4OFm|ebsK*A(r`Ugd zLWMT;L0%^I8`=L4z_-O_CH#@GI%k59eMeuCptG}ja`Q#t5Up9j?`1dDi^K+`2 z5YTi*_@>O$Qub%Gc{+C5_vUGWs&s37eh_DK;9tV)y{uXM{e!a0$oh^LD`h(9wTAgB z^mP7#tcI;A;EVASyN4G!#l4KK^m7$QCbD##eU?zpGY9z{^-_^o;Hxd*ve6 zCee=Qw03l&nqfH&T09WZ7a7lL+6O*-l?NrI!jq&u2W$8m+7la1ExzzUdk(Q+(Dfo2 zJCi!l>&lRLaKZet=9jfY4f)yonW&aL)RjBL*?oEKpJflk6Z-{P^Em0(i@-0ov7?NM z=;Vg1@!o36OW!0dgzGnti|+wGS=fc%B~5Ueo1{#vqRa)x>>~W28oUx~z*X{SRZ}Xs zm6*F?Zxa8dm5hhr!o!}c?Bk^I)Bz)VG!yH2Ps0~P_OC(xT*#&=Ass}p8e~?G6w8zPZa)Op6ol(YT4xR2of)8KqN`sr&cxbN8%>D`{? zY>I?t-p4=U8OG%`+I|MybMJEd$N2Lwf97o@X1&N1)~6Nl?Cv6TCBe7UeYss^N_}fu zAOM{S4A7mgur)m(wpI9GY$@Y_UDwn89c$|w@i}8osPIeC>p$!4FK62FWnEy`D@~Uk zosB*JcI^7Iu6<=fdn!_hQ-1ghmT2Ht4TXYo;8&JQqqSghnDgE?LXO~(j55ckbXa9_mdX$7h6>R zQ@r8%T^Re#qbRH@8ZSt-di?%*?%usT=3q~*>}kI|1Me_Q(7FgpSxO~Bk$^u zc0}#?Xk^qnzAfX~{L!zYo}&KMAMJ{oN4@z+--z<{OIW-%EMf5>nEx)n^>a8Bx1((0M55(z~3Q z&#IYzNyfCD-}gK{{gUkQE${{3o=p>cvs9yZwVL1jBz|2_$-N%z&poNmYhI)Nw0Vbp zlw~vfYHQRVHv7~cH-Bl*u$*Au&8Obo{Jc89c|z)VOU9J(mLv8Fmi_F*4M@Gw5;NsS z%R=gWjyhi;J>N9ZlAk?_dtNes8L19k{v73&O_{)V(k_2j%41STT4K11B*s)^iOIgl z@*Hg*VQ=v2d=|?8w0VE#ILma?NXvd=>%UKI{m3k({BvM?6?mVd5BrIcw3%lIcW)eY zW?QAc{oKj1IU(CBccOew+J5d{-Ouke_L1~?q~$64=cB!mee1O;p z_q4R9T9>Z|N1xNy+lJwNzTd!i?nnWLzv}&7NB)RnrCj8@LDpn4R@mhIYglLYna{E} zya_oi_oQ50GWYWRDEW8d*ZjYH;D7nR|1CbieKqg`jhDj8KzN|6U?8}%!kpcQof)4f0?J3 z=V6w!Whryelc3LEMME|Y+1nk)SFT)3n;&k^6AX?6z1M^?jRC>02{Eq zO?|^n!MP}NE?vE0xs=Q4TaNjhjekKl?PfFovzh;bgHQ0IxLh}LTl%Y-Y!(~srAuAR zUjy@3_U)}Jxla%u^nZ5#-ZSqX&))-DY?H~_cm>42Fue5^^;a=-Y=5%NR(=%|t?*6< z$E%Fa?M2)@oAqC|#k2Td6^;xD@qg?vnvMXkze*?gTTmysO8)l*b%MOUdcvjeG@an; zd_kR{_L_Xt&=ZKE?VUc*x&4kCvbG<}TpM+G`P!%>%h%36c=y`byE4~Ay}5i%)W0uZ zGrQmXr)Ix;_Zm%Z%{V$D>b9esqjn%$e~oPY5}9}cnRo)ZdIFicS>DJ>k+TQ?t9bDp z@7*_h^M5T^{N#K0&+aGklC;eq{U&PZ(VL={9sPGr_MZ4?bJQ~AtjN=4M|VU`JUSsN zuTL_K%(H^}&jQJaC|n~yS(^RGt50!u$&dLDT@k>~SX z+4~1%?$X2;X1{~Xy?_1-v!^3>@3@;H(rHCmqPoSq5b<+XG<({u-}xCmL1Hm&CD;6W1FE>xz|hP z%OPaixoJT;mXUprcK6r*q0_7)%O2>JjSm((TfVa2h^*$J%n8bGrkxYyIgvTu@*pz! zXEtZcov9NnJ835$dHl1~iIz8*+jlaDXG|Goi6c$sv5R@Qc1mzgnwigL{vWhY)aGae zzs<~zUjwhm;&$dr1oO_!{QNbtIP}fTJQkU_nLJy`bKjHK(%UzC zZ{hCHsuyQm`Y-1G%E3X}cp@qIUS$owSEtOlbW7WCZ`j+zy-z;sZl2EbDs&RVTgG$$ z3U_meUcO=+MK=qLw~V#Wj?m0OXl6&R9<&)f=$!%6G(Bi1v>;`kqMk3gEA2D*{z2$w zKXlWVH~$g-J(BbXxsUNE>HkUkfYh5T`=N_3p_{W)CR#qmUv4k<#D}1pkMXf{vKE}q z9^6FkX?q^JDtOf1JRbeH^ppifD{~dVyefY8OWDWQx zH28by%(C3RT6hhpIWs@tr*3zq^h;pbM%{I)#r!vYdg^~yTI1{0u(G<0 zUnb7N_O=Z_p1v@?r;qqvzHP)revf>8VZUC!_sDmOe0}?Ly?m$07a`{W`t#0pdFin3!8!& zUE!YZg?%`dvPx@swF0cdl-95#5(L`pFnKWo}{4NR^s;F9O>*{!P&ZtujqY#&Z!#i%W5Ka z1+naPzOVM_d=7_lF!_eJZtWn}`ER+8`$g{KP8k1ue&+aB9z2RakgSvJGo3AOif@qE zz2!_xW&ehg?8WBZIjF$TJ}a?m@NJmZ%^gPF9kioXRponGgNfe9USymy?)Cg*tB5(s z{@F}@lI8!+_-FpIc=!7w-cO7e_Fm#PHQki_FAJNKJ!#DzY@!a8 z^PI8DPL+DM5O2HzxN7meF;|2ac;|a|r$<_Yv8p)R;weqt&3XPq2F_eLhA4Bfv+opm z1YWU+)31Cl=NXF*IB!2DvErv~T3j5a%u$B2b~J39tvHp%9o#W*#z$Q2<@hV)FJ4i) z`-9OD1s|x>V)t@xP*w1q=RCof<$PC-=K8tp$%B(Us#5m)=BGJpqQ+yNAF#xzWGsDB ziQTEgAA%Sk(Z6|?wD9<6|H9dn5r-1b$k`NZ`DboW<{sm|OS$WFOj__OgnoMCfghsTbev1FwZd*)4V;z6m?$nVSb9ZY=vA*+cfgX#UO?ta z0Kd_b_z_5dWuCDg7Fc;A=p)%FencuU!+YCn(XSn8$%DqkMj&}c@ZLP( z*y7FhO;L@vL`2EA6uvFs+XB8V?ER+IOB<{E)Ze3*a}oX6FX_*|iGlqSBl{>O&PAAs zf!!b8)vxh0_|dnVP5lmDb^%`Y4SG`-dXwR2RZT;%*K`o?ZYA(6%a2?472iYum+)WC zuyWq|Tv&qhd@=O?DCaqcN}M|OrRsaQF@?RG(q%UkxGRSibTUWrF)BMrd<=UmF+Dlo z)yerTbUW<~=N{?_o#8ZahO-gB8rHb6{@43E%$!eWAKH8JbzQ>+;@dn*d>hWMH#w4( z2_JK|shxe}Z>@@UMt6&j{YTDu8AnIN)pLic)G2qtPF1Is8E%b6I8^O1SJ^V`c zjPu}U!SieG>>CKI6{@*07srX+Y?S8yfxaX?2?)yK+O@q;mN zKCmwwLIcN_slHEgRNrUgC00ZNF_4Egeob5s{3pwjc5FzLcyLY4 z78jRT5pwr+9{s+^`zz*x%o#ab?T4RAY*^WQCq9j~_r3`qdx8|wuizcU5)0&Jt!!fB zSDbaRLem19$SN6Msi#m?n*K=+k(E)RY;6TX)V z|C_;{(DVlQp|(yGyq=-1|LKnB?}+6n=f>o&*U!l>ZE=4>{wL^4J;WIAp6=YO&r^0R z=(xoBRTr6xlnUP$+XA8swefr0&`110VCP z4c`Ugsk!R$;-$wlg+k2erzM)_n@}GEV9#2MHVmoyfj!?>4fy;UW zJ}108Qkx1U0Xa)+@)@D3j?f)9sqP{Vi>bM3lHWm z9I?UrmXkPmp)wzU18YAeBN_j5^Z&)(yT?aW-wFTc%p`DTCLuQxD%zKD;K*p$#5}sT@w)#z}-$V2{IL>HEtug)+C6Rs@qKMv)pV8L_lzDx840c z5YRfgAW*6>Am(|0&dlH>0(H0D?*5*qf6VL5`JQvW*U$I!{oFqWY~k?PuLa&#;!i&s zd;-textzYOQPWt90q*5b-tmZrU98Z50tXG?lP>T{X|V5PxhGamunV{#RzPzG<1QFL zjuvB@i&zc#I}XOSZh$-AcgG_E)~o%{l9od8+h=Y{X{(cOD{1cpeUZ9yj3!q*^OZ{* z?X=NOy~OJ5AK)yOde*Z)+nHnXLRf^}4#E#hxyIZ>le=!ATp4rCxeiQl6d%xm8dc&rz;^+VD1pT|Ofpa6dPyU7H z*ORZGL`IIxuk6#;tDX^GYYX;Z!ei2=&a2oT-D>`o!Q@SYE@$qNIq!qxE6Q6g8gFq_ zPRAadb-pWCNfta@IRhIjV8u2?b9@4ACNUV>4Fh$aZ5U(MGXBjvfO7?W<+6|5Zw22w zgm&6DU1N#hqQM;cF~Xe z4V)?TMQpq_8&cdaAtS1+RLWL_>na&0c8{r@C%8A`BY$9^k}bTq9lA1i8FK~P{~?*; z|GJ%cq-wv)jE>GmF7CUoia9koe zhm1*%L*S}@rK?&FG0!9LO?xD2<;3<`xf1b2!@yPy8|9kV4`5!4s zu5Km8-HN};$U#njnIXy2tt7e6-sH26OH};F)+%NDnb)5eDf16236^91(Ic=H7Us+j zF3mOcb&vd^&uS_y$-as9?8H78$#?dz^<8*c?PEE;QkgF{#!}DOEe+PwGZeen#-GNX zd{e~(Ef282f2eS7(`FmOsz_0Q)3*-JrobxAMKv50O}& ztg}uZ1<;9H^GN+Vp4dE5&$Bj|b|t@Tk7t`E z`6SQs%d?U<-^lk8_hO{9k(S(lFF85Hu1G--ihl!k`Bg_Z?bZ7Cj8jVNTT9h3_#QsEPkZE*hYv8F4wQt?5MJSMEsd^Sx2N8)H{skI9RQ2yK_Z?vf3 zqYnDg*ss4ADQyt`{f$P-4ee{*Qxl2H0S=T{QN`p6Xn+rQgO8;xS+k|!rpOvdJXLA` z!jhjtzkLyJUVC+(-gYZ6b`F~C_nafTtuS(=E%0=Mh7wyBJ4Mew&C_!(G>#ZpZ?Zc} zs{5I|8K)iyDzVOBzVwCMC?A5u6KPl8(PBem@-jb7+!GHxXdj^XCcl>6l6^M49GQ_G zGe+#@#YaQNB6Oz2srCG5lYb{;ak1Z`W7J<*^0qz(@lA1pzc1eZ7Idh}c!&)@*9iX| z(=;9#p*E$Kc)*%hViG*Xb*ZD^autz=mRjGwt;+iNZA%w(zgW9$OTxzwdd2oNu0y!m zxjNuukfS_jsJcx{t0iBQtdB-)cjpd6eBO@Ccy-56bQVf%KKE0&H*#;_ek%9VxR2#N zhWqK<&)~i<_kDI0F9^-^JA$iI*Dt7|&Sm@z&UFj6Fz%+z>2`@hDR9sV9Eh#9#6=!- z_xc4MM_I6h-(Yp1cj!sQcMI1%;`a>Rt8Lcng|1&gz0SV7ZX4RS>Nd%5MtvnV@;d#} zFi4M;DE6Y7t2Wf`n6jXmZ?&W^`f=uGpKs}%>)_)3KWmJ@ZTE&)WFCpo{7KAtGIO57 zocCwW2Q*zm#&P01eVaZ3cJ@Wb-l`-=NgT4(p~R&Rugmus^RtZQ$qlMcOIg2Q3-`jW z9HRZ>hF!NwpPr^{H~-HgS7~D%&O?h_;5^#J|EK!ECuFKQf?wJwlQ{fOpCpeN_v?_& zuKWJhZyU%%xbZb@bIq_>c1x_s<-K3=&r~h$4q&nJvaxIwuwKG>Rlv_PGR|I|n-{E^ zk{1N`b)I1E9lHF~?C{)&O?$3NoH^p_A#1EA_I>*0zGW+fXI(aUq4}={CEKJ9%A@Nr zP=D__geUcQ^L5z=(J%agWaJ>60fO^B0hc}mE|ooYd@g=Me}k-=oMc)#?+{+d`sIs+PO5D`2xnDV$R=MFS&YS<{sbBXNO1N z5x6*3 zoHO74p$(#1p>@ zUMVkhMRq?iU?TSh^#}DePi_8mB>68EB>JQKSV14F{wdKf{gg9>IXr4(uL|7!_~)^{ z$h(=0XBF=TN*~O|FTi3F-;AKK%r+Umv2=X4$TKTHH=bPw&Xn;)zLR-a%6B4%)8|QW z^QfNl^bMXLC%-mlXMgR?&g24}rx$r|4SZp0iiR!re&R~nk%bn<@3W4=A0~@>SHd?+ zE`{0jTllv^HO@5(nba!EC2rRec&`=U#3o{rnFVH;ufR>p1esG0ZOK(%hqn#BY0T4p z>d;{ZSRwDR#SzXyIg|LicH)i+PFVsk(z=>>XuK=@hRn;)-u`^c(%}~-e}8&GaAGC6 zZ)Bcds~D1OQd1oEk*YreA6>vl2XN(T!siNlRODj!QRYy;cC&-`Dv2Su6x<`_BAa)_ zhRWsqk@wH>ZOP3AIqj-4X=bdtu!jD7f%7giK3fj>^}2ljsVqZN=XkX#Fj8p(mfw{e z-?E=o{98y=Hx1D57l$c9H@S#Eo1p}Mk1SSV#HFFbd6w8W7nZ~} zJq^4+L(EbQ{5k9H#`*y5$sW?sXOu90o9eMP{DZ;&EVOksdqH@aPR3P2ZjD@gRG>|; zp?Wnro^g~A|J1?y72cM(Q2dz+Gb|3yGx0-mh%85Zjsi1)`LcX}F|r=7JayUrTu4feG=;* z`ay43@6*5L`d*TD>GOpp)0%9IQ~Zu?%)8(eZCPPXF?mmldEA>WT5`-A|`G?lsRi$5goD0NQ%QN|$W zr7mX#&W5oc8#A3bjl|tF(XN@g-S;-vyX{l#FX3BRH!ZJaX9hW(f7M_e10E9@l?NEz z2!411d@3}Q_($q|(VCJA<18lcxP0;(+7DZA${$<5%6`atDC3|te$N>1>^1fa@%T)= zO6&q3kDMDRFw351tiRpMSNr>&zxm9aYn{vRJ&gKmO_5tI5!7b zQKP}^)pqCQ1g02s8aVTXhCpstRLyx^%&&1ooW1GxykK*F=-e0jLj1M1AuEcU-Hpo? zf79)1@B!wa6L=|(@6!VB5ITIvi1^eSn{u$M` zlk&*ftv_Q=>dyj-?;_9iee^CkR`wP6W3S9T>mzGZ$(lsIJ$%R-^TwWN?g(zzpfWGcAHqQQC_Rx6bT5yvx zvC&MNVX05*$A3<6^&0Mlju3i6%DX7{Kxb$-5Ss%Y%fHsPTqh{c!2{;mc=N@=p_U{6hPD5H80z=KfkjO6o z5DazD*0tbgo1D2}x-qH^`db71r7LFlI{DAK=<);p z=ca(4xTYgF$>;i+f%T{U4(c@58T?N#PxOEPTZ#Uv(nNptszh`m={I|Rl<5ByIK+oC zH3EY=+}@-5T&%Nv&)PLbJ$pC5G21s)UQ~X0P_#CzxLVwEDc7rmp z0DFZ0E%S*UAeTD#5uXLyicN*4IG-1|o>fwk?KZ`Em#XQ%v@xdw*Np?J798OlXx#bI zj{y5v-wV}W?uWo`V30D=2A%sh-v|x76xlWQ`=M(!F>cW}>Hi2OkC^tI+^DLjh)K38-F6K&8F-{k#9=6N~S0JsD?wtsppG`-wYeh*h0^Rrm4 z;kDLS>pSH=##qgs{8rSnef_Hz%#FHl90(qWy5C0|Gq@KRD3%yQygwy;Z{yy^z1XGd zFoJHX0H3*A!}pEc+xk^47{$E}JUNkTG1u{216;>RIcq+aYa>^|(*dqoTxHz5*wX@Q zD!l7H@b>UMZenL!*h{0?_)1WF3d*CMSo#qjwN17V{8@jDeC7cvhQMG zGfD1wE;>|OQq=;Xn;R+Dm`{D~h`lTFL=Sa}+_{){g>Kfkm-8h+8}hDJtILhXRWY{_ z-b;88k(sR1Wd&)?7txhC$O;=2A=|kjO58oaS@lI#*9~WLe z#1|Z#iB6$Xm(RW%9dmgrXQ<>MxV+{LWH?30auy=fS%7S3KKk5wOwk%($R4NqOVq-7!r8=wsRI7Vza@o~zJ^!kbk=4@Y>(3~&zl zd4kbv@%OBSjZ*gwKIr_PlpgVb~1zostprd;6Ci2dh>*3X(IS!8^ z{U2vk>m63bf7)nuY`S-z-+~Rx>a_{=r{mvwW-NGrhdR(QdTo6DA#{$b*7mD^hw@rA z!PQ6|*jKy62FG@@!R}$)4QiqrJB1>09)DNj5(s_Wh~IjEdx;-_9Z9E+`$@F6~?b`4R2N+0GK8uK%FI61RruD1gN&}X`wQ0BM=T3X2YcE@l`D+U+1v`=}IsX%Q%pr z_$B^=$h-!DZ-RWoz5=I_^Jm0B@9_=F4q{z}=9;pT-Q8O>V~R`WDN|&8z)DGFYMSF0 zp{$!EO2@HaQKOFUhC|cE3($*63Zlb!U>0S((k|Kj+jmj1;t?s&%CkN#nA(Yc4c z^D=!ShoB>ldgAGu;OjX0REsPyPWr@E=)85(4NDPlX z-Ox{8bCEqHkstB2n&f~6@F&ujOvcv1yrL8GZ=&u*MPjr~&Do^aO)P%q)eO9JFt7Sr zNE_6hK;4Oqv0F{-6u##SVP z($EXt&?GooXtW;q`NvA|hOjQE9(k?A2~Q|U-aOz2r~msi3WA<2=mmq;s$HJ)WXVsw zN9}3P{cfgr-|w3CcmHl6@yKjXPR$7@+GNk%f?y+Y+eC*{MLi{wq)%Gav9{EpU%~q zJg>v&VynV=tH+%h46X4DdgSOi>&sjehv|}S;26o%z1WyS{x4(&twX(OB^50Nec3x| zntL1dJBKO0w>Y<)oY{V^clQm)hoY?qp;3;ZGrk0kv=_N$bUUZ;Pf3r1S7d*Q&gj#* z1x-O@UsZCCE@3xUUH^gZ!pdF{z4;4$!*Vj{lq%py_=+HHM(pz%9#flo!@? zTd6;!Q@J5o+LN57c2|Ci;Y z)ESYJcF-2*yDlU3AcL)@-kPusHd@Bzq0VaR6kIQD39grGbxjCgSJ#Aay@z`_S3TV8 z>+y`C$Gom$4y(pMW3bN8(RQ&Bc;Xz$uUa* zW{JzFaml)tAP29ZTx8$x0N>TDW3j9y&xAMMXGn2q>`xQ>(*u7i{Jo2_rFslH?z4T% zMlnB}QM!J+hHpaa@x@vRy%Ui~M%GGTJbFE3ZKduGqpcab(p&vqgWpW7R`2?J-8R2O zC5|8dTb=kUbV^Pd)#C0PDY0&Gd>Fr)l9DM#HK*1 z>hDfb(YZPO=bu;nAFLtoBl_;Z66|eP<0l60*#Fpov`OgR>{$gR*=xtwPhR9~n#r~O zVI^qKnpx6`O#2q@b1cM=8*6G>6YmTzA4g;uYg=WjpEUWC{74uW2| z3Hv2-(z(~JeXN1H)Dsx{7F;Q0`IZr_71%tGELH=m{s^0Lo^0^jY#_Yzybz!YQ^tHA;A z5gOx@7{4`~SAoMk$6rZXOSDJ!h4`C&JytowdVA4LdWApQXRvy)74!zun5&10gNR(E zkzXKHo(=L|z+N>V_xP}MEa4sMgs&X;!Hf7+%nIez4lrgd$>O#CwXs?MZ=AXPCt9V|0d$mL5ul1?G7+YiQ*vtFWRZ3kJ>T<2!UT-Pc z-cn0lUDVY@T`xfk)KXUibsYq5|CzeFQuF+$Qu6#_M?U+<$g8PSg+H$ZPh?Hg>9C_R z-ZOg{JH9Y(d;-`j3%rwN**l0Y`%-M3zRy;%&&=!<*=N`(771_Q=I6aR&b|@&uLHLo zLl(4+XJX@g7}}2W*5L)eZ3MpwP4^PEB^!BvC$=SV)U_Skk`?T|)^I&_)U%O#gwHVW zT=)#)J?eGTQ3rH!f2mvc^=Pi0bRG8o1l$P8THt~ zWs-N$z;`mvnQQPf)b)VIP8FZE50SCU+*rOIveOg)58#<)g9FDL!q4x};*ZN~*DYxot7zFqOL+RtK9@$sXqb$XW9t?sKJ zADXL{`*)^~A}9Pi6>c@o@{Ve;H1e&NF>CVf2#dG)u0Z(~Rm%$8xn;4yY!IGmNhmppF+#y;NQ40bWj z&a^y#9X72E;Kak&ht$1LYu$tm{weU?OQV%n;VFG*--8$3UzRO-w+EEuv&k%chi_1kF`#9Iy z7lp=gfO~a#b3OUyd?#4D$2Dd1L7q#0MfMAiI^h-id5An;2(} z@iC3V&OhWI(MjJ0z65rN?_Jh8-fNZpzL5KJ&P2D8=Gsa5H}~f~(utmX32VI$m}q65 zY-`F}+L4JBtjTT>yJYMH^*F0jpi|O~H*{K%$%yRQEk0pm={vUD4$B~~=-g(#S!t&q zu3FV(*-4!*6Mt0p{UPFA%Dv>z-bo)%ai7a||B*WD%&2xM;SpMaL;PKR(iZwDeV+)u ziho^M9nTcTAbpZOc&)jc$lS@i$@rm*vCkjsP#!I?2+ew7i8I(uUD`iZEuI;MZC6vJ zeH3slv0?=Vm(aJ_5~EW!yLasNGCy(dIm9_e?&3bcy}(NIks7PmB6W1K&s4M7rYe42 zR%JB0JBd?!hW>T3mjuQt`F`aSN>Qi43ivOJT=du+BHIu3uQR;23rC0c_MNK5EBM-$ z(X8)neP564*QD>^``E)HuDyqsVV4%Yhj(~o507ULBU}4#-oy2(mQ}o{{);`#nb>;| zPrUTS9(Eg3^*wx^J$ydAhr9nodsyU^pXhry<&WRPVO$iwhclr?p6vUl-@}XOcR94I zTS@uT?BV>U;Pab2pW_i|k?9E0H~XF1&{;jgdVZg6%(M4{I4pvg}`xJ69Tv zZVUc>0dT$t+EJ&)?uK5(wn}72>t4r4gY&s`CM{tp27FvHQsL+8uAS}4ZU)DS&~Jb9m-3zBs}!kck!L@-sG(E zCq6d3{^OFHT0}oMlzZi#;q?jS_VTe)tNf?$;#q~gd`v-=|Ii)7>)+-7$IzS`p##Ru zqHOl?`XiLtIrB7daHWD@IWqAVkcE7>5c#ZPaJMyg7ZqR+>A4R(^%7-5{r&U&-*aPU zYD7j3571r-{Q>VWg8A70XiA!q|3XhAqagmY$aX^VpAXPye2AQG1&k){|IK=y|K*NWZiSBR0Q!*a-t1=mT-&k_}GG|(t&#}Yjw7(ADExgWNcpdafLdO%o zHpw(d_?=4loyWcsztjFYFeL2=zXRXXli#U)@|`I?`JJr0;dkzi;&-yb{0=m@PA|H? z;CCcGyhnH)Xv@IfUi?lLaW^>gC&KfTT&R5S3a|5`u_?mqa6an1&lR31%=bii9;s93 zcNjy~>|Xp%nX~Bz_#KbYSy6B@yG?{EmEoh38=|?uO^-q@LdVj_^5BPj6ml1NB7nI;ZA_c%9wo8UTed=7q|J^36r_$7+Z5g))ngvYVK z6$dRkpHmUxbH>~a zpR;>Od4$gyJLAiIPS%W`e9ovD*XDDwMuzyD??EGJi@vARNS(;F+TBq!5@)6GIb9b* zG!i(a%mf`<5bnRL?O1ssKG<jK6K1F4|S5Ys8k2&Jk*WM1@giP z?a&pD3U_&RUyFAP>o$t@n|+&-vQh2lKCsncc^jTbc&NJFbvhr?yt~FKx;MQHJ)_KL zGrkaowDk_{$ow7ahx`DVLUiMT(>_J+ptl?5r@H7{182r5>Xv7n#*}8^tE8Xj@Ix%U z&RqU){4scp|t0_c6cLX|GFMjWVt_wKl&{+^)dLPWlh~h zpSj4D6XqGPz3DGJ#J;DyCkT)9K0K1ngG~8?Z@3d&+M5@N@J6e#DUG~uU4!+PzUVr($(!WQEj*l{ju!Zt(qyZ`9x$(vssm$do&{Ji|Sr%3)5VwK$=$NTYo*N^WL zu-Qm#xvQ3 z;&XMUGkLS*ICI?#KZj1La}lvv;Ma=#n!WvJN?f=+e{q`PlekiM!=ssz`*tAzKL9`1 zF&7=y^x6eo&>l6a*-K2bpo4Ea;Li$q&rTcdDN3;2IM~si71Pviv^d(+mEZ;JHhzyi ziUv>SIgwtjtyxpv4i3=Z$J)0~YbuDvR~p`SAN-UB`K5hrR=ugDsl|fc!fwy1H>0<> zh4v1>Yvm5ZR*X4qhu3OiZwAqY?MD}pE4m2Ee+r#0&pKA4W3?+2BG2mVO3|AtN5wx9d8inds(zKG|#j#pEyXQ?tYT z)NJ^v*&)5r6@F??FMew7Rro1aFMev)b@(Y)n4fwIeyZ`#rxth8cWB}X?K7hIsktG3 z>U*DHE5!V4H{77ho1Z0?#7~h$y+>|b@w;BfnRb>jj>eaK46+)DQI$o!r=9Rvhp{Pq zi5Qu$qK_GcJ?;*Ck;T7w$NmakU$h#1(bt*dCx;!hx(%t8F4mwDnmy+i-?xsS%?NEY zD~i9FeHH$uRnGG%p}t?Cjp&mB7{;M&^EarAeKX;SC>_xgS9C=2uJ_XGj=p)k~ z$>Y?})(YCeUOK6=7mssJ=W%HF3XhX=g~yR+ot$-o+ohl9;c?<*KU`xzUtm6EPGpZn z-NJB|NW zaN-4lfiO~_I=>pmlXHIGy~WF%MdQiOz?0*(5S|ph`d7u1b)$(d1)e;++UegB)~!Er z4P2?~)}aH$hv=)~%l(2c!8@W~jK-HIfbSj9yyExpN8wBGqOMn`U;iaI)ABzQXI^7Y zIe-4kab|~CkG-MG38V3*OY*`3NBbhUGmP5;3DBl0Gz;fqH0~5yxe_|a3oQp8MOLa* zMB`ENh4zo&T{m=^=>9ZlTNAXchJC8=Aa>%}+Vhn89pL0naB>$oc_nqdoUzZkWB7h6 zF)$r<)LRRF#@1Vp8!b7p+lNhUO2p>t?3BJu0d$$U`1|C&An}*x!5hqlN0 z7QBTE-XcclE$scBIgS`-h0wYuIA_2?DR-2?OAl7%;^U&K~Rda10-fBGv-M&MObM0UpZs-M_ z*WzAVrzF7#xoyO-6*{#5UL6-%7SwcbL}nOW}eERMrpafxautHm$y6!e%QaaYb5#^0)1 zEbiOn>@-4k?rBaP|k7hiwz82PQ$z>H^ni}h>Z3l%Q#?F><6q_3VHncD>-71 ze|%VquWduJ&%k`Y^1E)_HSxvc|AAYR`$z0`+goG&9S<6V@_zfd>AL?z`?)@TxsTZ9 zwjYl12Y9dj!70Ixho=Nt%T9SNu@ADa6YbcLoFmUWc`rB5Stic{{14SV1-rs2_ycMB zH<7YVz09JQMQleyZG`%Ay|~&ETek5Q<=rcOUSpNups*joVEAN%QF-H2;yH@X!AbZ= zD}Ds$&TS#q+$-NMesPW-3(JIUt;Bh$#uvE;`gG>*>Su_LQ=hJ;bdDaV6s?!|3HPL; z3r=fRfw#4{CU0Jz?DTDCU5fkWfx(xBSZF@t*oscyUnnE z!2tRrG28}neeRLJxv)>-xc&O!_nzQ=iPdHsS*6En%VKZXv!>~M;=00+Ud{!NXlBib z-RFp74Dt6VzK!e5z69z^#K$gaA@N9fzMK7d&K)quIm+pcX?I%g$(xAa(;P= z>P6NPRLI4e9^=$w90}ivEtS|R9aSxgH=}rUOD;OVR`3n*qWg7D9hX@Dc%0&WoZL~d z35xdxtsvNkXWyaDk7(ng;%{AeL+RsvYO%BFMMGcjcMM8Up4~y&N6G;2M={ReFQl9} zT|cMoV~Tb*10T8j@WpyT(R}&*Dv95=40>3hEM2j5Zp9x8Ttu$)L@zd9ohq^`WtJ*l&3;v~l&K~_s3HNVRxPLjoPOecqo5!3i#*VGnSml2fKRFQ4_u@Li|4NMUqZfuAL;~C zZb8t2FG;}*T74sNYYOg1&mQY>72L1rzD%=-mr%&r=DLsao#rShtOoR=pQnQq*?Ui1otx~ zb{ujOGh;3Urx%V5#eVBT2I*qlkukd%Gk8uPvy5$4c+5Hv^cBZk$e2Y=>0-=^Pt=?iu)k#A0+XEk6C6uFoF65DOF z0sElnvhz}gOgvI{jPHp5;5Q*B)Rx)nO~?t!rHx(hz~&Ksl+E*5lXT{5o~#XiMO)Er zWoGs4%L(eVQ6_!e&YU6FI+_L^mwEkUPFj5<@*4YOVuB6V(oFdI7|3N4X(2G+*=5vi&dUp$h|6Z*ovEKQ8_2(4 zzAY5DC!hZ&VuOh`~w;+YSn)r5N$(okRDdw}p zJ}5HF9)nJixvv3l7Z5*CVjCO)etwJ$%%-M!RrTHr0*5ESdAaZTmk+VqS?2t9mag0puAg&Y+SsJc4t_WA z>&I^bzwMKfH-A1x;!7KkoW3=7<*D&~R(59fUD-ZNTlv{)6FiI=Ud94X69;b-kKUtS zlf=Fyo*g7W)q=O64ZqKiKAus0d6$o;D3={F{uKPT-#3;u4PlJqs;wQT6^U7>)4AJ- zdl5h%b^|s*n^T|#hJwe`!L833mJiWB{^+Qt-v0wdD;}b_F z2dFZ1*^qelMM>$J?9$Q-ez$Tir#4Md##s6GmYUfg5qonj< z-hGJQWZs{ctq`|2&$#P0m7GVB_npS7+XB!gcGlHRtnLo>X0FlFS;aoX#jV=wjv z!t=_S1x`Dg((Rk(itxR1CSl?C$G4(!Dq7hz{rI z@`P7`pZX$h#$+(Wpmny zO{|bR`8YY$l$b&H<^q4mQ>w_Rw(GX9^S{lKzhfx*jSG|!L-wHu-AX$d#F*S??(elL z6+=w1_zIDeDe`RS_jWCjXC`@OQv93EoH2%&vnuqmoL7U{3m2bH@_qKa>WlP!=NP4| zn7MvqkH>oa`3zqhaA8o^Ex3*L+3WLn{xY<;n{Fm{Dl&m~bd;hy+6LaOcPK})jRRVb zQ>R)5?#|J3wxwWMjxYf{8%bd#jew;StofO{j03X$r(8liK7Blp3YiV)I_Qx#s z@06CbSjNWHyDt~KS4!NO^O=QSv2C_Xjxf&20R7V{{^o+5lY4+WxlgT_a3LTvpNs+c zMo-9&z;)r8l9mJ1z5Ow>Uf&Afyl%~kmhGy=;$1VU#au~T8`^OL*I7nOYwa3$3;I<{ z&6=#12rRb&%QCh$`Y!pten;PhSCu(k2S296cUB0#PjYVS^cl~VNzU=fg`$`4fxG3r z1?GIf+#k&6l{=A~SF3*lysN;y0r)qv4`RT}vE-Jq9udF#9e|@Kk|j}W$U@mT$HH$K4s$58(q(0>N$tJA`?3K_tYQ#jBhvFqUdL#Z-jQ92<_ZR zOyg>NI_=Y@<_P^9`ED3(P2)SEQ6#qUZeZyX&e&~+(D)+#|2pq%<7|$6Cu5pSStfLI zqzwD7&6&{6k$ZV(jJyNg99?FYGU(<=S(4D1lbn8`KO<%GE%d?W#+$!fKA7@tBYO6w zzr0JC(9JG#HOkl}2G|6~uGa~VOZ;PfoQ)%@{F@CnUnP4*WGbgO%*)Z~ZQ}5W93k=6 z+677Q^zxk*UiA|D{xjew*jEXTf}gJ;j=c@OKUGcgwlh!gif3;e?0iIXj`dZ-B0MJFCw-Ongyxfee5pNnOv%;I&NFaKQagQV6TX_U&m>l>w3|Sj znOy7|B=(<-wO#tjcyrZ1ZoEYdf>~Dcvc0r1Q!Pk>;cN)6FRfNODxa&}DN48i8_{yb=>pX>P|UL2pi`D(c$ zBJpYVq!F`(90rn?YzaAn3X0Y*uH^a+#becs%FP-&iNWY3O8VeuY(U>ZykR?W7E1cy zE5m&Wd4uf0a>)SvoW)*tQ!a9|6_ktIOv=G0Wo~mwJ|^{ffo(T)UJGomq`jAc?G?8u_G7@c$j3xh z)DVVizD@cnZB<^Yt+1?UCH(-$C9R|%A|K1mQp&cG-^>IYSD2IuHNcaFadt7z*~Caa zNSv)#=;s6Ux1XV(=3_PUfnGF6`hgy0!b-|trhFCU=#BJp`d23X6FH*PbBgv?GEb+OCu!#p^R&9x zJavcXNyhe7+S+-ow!-tYivEee{i^Uh34N8T4(?nA&4k@rb2YHyAYSAFVCVoaR0<5q zeJSx*3V|W;dyc@F;KkaEKOYS35Ez=I*ms6u2pjzWav1WkcS=Wu;?G%FEAhFo5r?jL z3^`7DR*XJU15P~bt77IPUFHOPh*IFh&H6@Uu+eho-utJN^$@vpDexk4XE*RNlQoob z@N`*e7+$14kvntl>T>55w5P{%xLLU(cYdEasSLx5;P|i77PQ3G+X}e%-v8tFzx-iyiV~TFO%TOPo5(p^QzgRnryw9G!KP=Q4q3*;i6e0`0G6 zo)U+Av9BKJwXf3iL-P5L8QW^+{!F;7kFU|zv2Zzir)OKYhvf5D*;h&ID|ZI_3Yk*Q z{OUPUij!PIg4?C*-q#E}YzZKaKt~?5Fg##DC^I+%Gn+s>EvR@11;?;1%$wvuys*Rw9TWpS6bldCN0)6z z@_NBXZ@QvGN8kA=ahFAAp@DaF9@?nvDCv_bXH)fIZ*|4qwQ`@bo{ z>^lmA$0wsBuO){dG-4_-2rfPhim7* z$+Hx1=Ue>$G5?9L*LhM2TJWc6M|aR3{@yNa%&GEM51&-uz9{@X*O_Z4)fdukN2?NS z7(-qR>MNX&4gq<@r^uJj?2DyVrl+xlY;P zM0VQI5PIG!`Vrvb^ecBZxd#(ZiF#{S&hyt{+w(F$;dSVI4lx&}gO%@{Iho+|Ih1$D z{cgDLIQ2pMA3Z_NKtpN9g^ZyJdjAA(?$VGwXd7e9MQ7uJ@00gpX#*RB1%3IQ=*|nC zH0B3C=$lXOkG{l@>_e{L*yhTNP>g}$e=}s^Z(E(gpDD54-{x2OfBvYW{)OUiwfyh~ zCHcj#YYShvClMjD(*Ht(Gx)EPlaBGez<&Ip66g4k?_P*ey+LHVAKhC}@)6&@SbTqZ zY+u!T{xL`WkBc8J|M1DsJK3%(|DZ~#yS)4uyufdhzhnIZmDN@|9?F2!FHe!*9Ho1*L1ysW3YZMbjguS-8uwCDOs%*;>GKZqZ| z&~OaRjbb*`#(~B&u*h0qs7&c20YVuiK~nsh`)n<1f8hcS_GcJ z|KAwb8rXs#3NRSR#XpnShnjur_(zZqa&1Q&w$c8J|X8~0(I-hx%ca#}y4XITklk$1%IN_gOJUZrda zWqMn$g>)vtZKnEDKAwKcl_Td7~(HLUA7o{5q2zw22( zR?3MpE^mc{%ee<&pPfd}%Via2-Oo1m0pD zz)d2%6Z!FaWQEc1C-DAyL-W-ruoPAx?)m zP4urOpE^Ns^&Rw`Z-U4W{OwDK_X4i16uW-ttw;7$TW5lEIj{5>8dby}R6lv_z0Yn& zR>HoJxjG51%StsCojXrVY}&K&(=vWz4fIw0z=NOs7)d6v3#HBW7tv|(jrOw!Yv4X5 z_|Z=M)Ee^qL)P|9D(Czp#Gn@0)g-Iu9Z1o3nq6_wfEv-qj_eFYH*R_-fT5mYwU+ z$3t%-bMv|Jtxi|_c8dN%{M)2&ADqV?23lR(6!`*UI@)Q;4|b*I2Tu*l4}Ls0KPY~e z@cl*NXL$yEoM1@sp5Z(=yCjcTGvn%ylj}Tz^B{?HA(1mdd34ai8(8Pl`A+`{-kJMo zLYk5D;mi|!yN4JF6{Y28))$l{_RFkKdW8R+1BuSe`b7SpgZ4bmx!bk~-9b!dy;5FU zZlbP)-DAD-y+Yf>(XL3~3`pV(co6)e#5pUDKcV`o1isk|PWoEaXSzMpkl^~TZ=Qd? z5^GT&HKZB1pU3~9iUHr!D$D8$M~jc&tNczsk>@|m75puFA>Zj2fi*S3dm7x@t(rUA z;C(91%DB!>=4-WDMDDMng1b!6|Lqy3`tf3m_PiqcVt>h=^p-=(_c3oo|ZF# z92&0L_&N*ky1E|5z5`j%3dLANjBh>m<5qA_fH@FY$=ZQjwVqsTGWNMne=58|;4Ng6 zJhLK4-A)_jk37^OXTHs%%)fXtAx9gzPv=?MpjiYDdSsL z;kJ6wgA^0Pru}(maLhz!lidXFFr|9kD_2)^ZPERsygRr*#BVHpcy4#4ed}yz%MoJ9 zx$!MET%KRC2YuzRibq=T_jBd5M+|qJD1V#yh_Ond>jmy(rw#YMpuAnNO)*$hgX+ql zOr4hD%~1ALU>oXsocow*H)1FHPDO?iW64)k%QC**Kzs78ak$aD>>F+6*r8hX0Dt7O zcMUZtmUKgs+qlO^?&L)GeY>ixav$>}?hT526Zg4XA9#0@bslx)LU$$paMR+XA;`a< zXJ2RTvL-rqS&z&5vj1;1Y_iHb?-Nt>3@`@{Fdw!klc$p3hrO`i5PL@KRvJ|6cG)XO zh(Q-UUL$SXCw-kZ%zGbWT^=6m6uv!-jMG-MZn4C{fDZ}|Bc9_p@G-vUeoJz}77J8(XcEJ|F0gr=T~Vc{Q;zb1~s#fn#LyEf-yWA$uDxveT zdB4)azT)im#A*)CgXDC^Q|*}6gk7ed<9-8s+)TV3Irl8&xwl~7U#glNV)xG+ip^0_ z@MpC{2`2C@XZ_Lh;e6)HZzSJn`AxpxBbyBxW15wl$T6<}$EWyyVxxgKq@PlEJ9zb0 zHO=B#rP)(co!M^^7eM+ivSaD@0c@f=;FC+pjTR4YBlh_N)Bz5`9p|Qy`^=K(M~;Dg z8Fp>6X9oXzxaK{@xE~)If+c~O!c&jFcVY(q5yhn!z5{GA$G%y`jtkA$Sj*fsE6~cU z@e1CJiya^mM0B>F7&2X?*D`hQ_|Ls&m@b(UHRY!dXfvcKc@HUHbfy1l8o7B@B zhPNGG8?;c`5m`qa@oO8x@b(CEyfg0$``oY6*45xmZ|fTHRy}4~6Mhq|mDo$j{B9s; zn#5cxWc`~*9IzH(W2UkG=tqeg0bH{F*mwm0nZB77<>o?kI(f*n@MAAK4s3pKD?X?A zCGK9VOt1hSE8wLzmbkNDUfVD2FylP~uaMMlddp}-yk$qmMprz#j5?mjhjkfsC0W_= zeL{O&bQxoqr`7!C=(>#1oF8P)Utw+!Gq*1@=XE?E%^sKXmnlC)`47Y8qRXfY?{TT; zWBM?Ld(mYGE)n_S6H$9y)MA|xdjkb1PtF7>yOaBD6r601#b>2`_ zJM+M$b@*4y{_Y6R3qMzKOOc2^|74vymjrX2Wjjd;q z%gs+r@(zWTR45;cufVH`iQXjc#TO}w`!l?=DJ<(2d6OD9y=9aVXQ@Tr9XD06ckw(< ziSyRxP0i_I93pcQc$c{!OTQoB7m{~>0q>ibk9V1mCwO1**C^&*VDpLaJpFyRoIO`2 zcukjg^Pb4N$8s<7?g+eZih_5U`-r@|i}^ZCog(j+wxn-YYpdZ}ZH49C@(umCf?rt& z@_Jf3g`dZ{N5^63u7Sf2kLiuWQko<9r`VY4GObmTy1~&;jnM3kj5RPG-UOOO&a(i# z(c_Bd64}8gA7QWNf>&12-X~lRk5T3cucg!{b^$i-#V$bbsMrNm6H8%9 z7rDLg7Vxp< zC35m~J7jp$>dc#W=^C7h7AG6QAv?DR`CAUOn zc%S_koY{My{h_x0&_0v(lDU<2k$u)1Ub0k+cO~b~D$b5MiT%8X*?YoMa!v+!B*uGR z<{tf{kFz+ql6UH`VR$(Tw&DzO{?zHPwSwmn*jm9lbpczE^CydbtmG%Kbv1hHTI+o^ z*phm-hhghl^p>1IJO2c*rMGnrdMgB5R`*uUAAutcI(24o@dd$MGmC8(8s~*^*Srwi zd4N05AAmc_#~r~{e=fMY>CXUn7qKN;g6?!O{NgTnlZAIHzB{0gkSomJIYKFG{LvQc zGTDbWz8}_|rZvA!?9Aiv2NKWY9nQbJMaTng#a42y=ugv{f6DVDcn7IBh@Db4bxZ!D z2g&o+v+nQdb=wqUtDSSEgEsQf`Px&kJGpE51>qqacV%8^Oyun0UO#)dmp0DR?~CYK zh|9C(Bl_|ovOnAGm!P$bNB~Ojq*BZdl;G`AUz6h?U{J$7Sx1}h-li+4qN8}+z3xSJP z_)7Ry^z~-14LO4qoxQ|^(QbV23VgJ&7Pp3B1ewN>O4da5>;dSr_7tJdOuF7a8fM1w zes8*re5?IMwzN{QdSCt;dG*-GbBkA95Ii`yc+7>D!H-h*O1SJ5z08@j5k9CEzDL&V zC2(J4&0YfcMR-j)S4V|$->fLy7tP=3@AJ;6Fzp>VZ?8ss3qE=Y+&2n*F1T+aupu^F zb+^Rzuyu>zKB1StN?TW>z4f-jxNjrvatJ#MCk%P5=sRRjM9Xw0tEm>xy&59ah)id{l|81*bPDk&d60frBcrZC zM(v&M^v5B`^@{!@-fLmcx;l_ii=D(QmqC|Nwz`MgA24M+3%_MLb79g9UWcA-~+xx3^ett$bVC!c4_3-g5@; zx`HcyZS|BQ`{mn-YN{^#r5``||ulqvX8bM9wSlQ;(ci z;HS5oHx_u}?9%1DHA+a%TciBPbZ>lc$6`6Z)x<=@Qg?8{4cvbLDfpKt1z6%~M1}}?@w+UR{KEB%8&byUH{v+cR zpFyDsg$}%$e0Lc9rQeEw9q|MNw?uT`5t>oj`;5A1EfTtG`!(pU5L~5RQ|9Xl%X~fm0h#YR{|z!<$qSMj=7VHRqSO0R>lz~RUfqs$ z3VsL3f_lnjLo(ljD4Fk!bKP4`AlHk?d;@%^-hupub37vVy`6XB!*bvA(5=s1MdoYc ztZw{~r-$6PIV|^WPwpxA^;|{nEAr|K=yQkB)`ztH0WznP;eK^Vd?Vz(fn?;q_w|(f zdafb&O`@J-%=uqrz9BtS+xY9tdsD;m-hv+TUgYk-3&Dr@XkC%_0we9?qvX9&u<|BBT~<2{ zm=POnk;jB&yeT5%eHXsocad)k_CFG~*$c^dwrvxtm0mn>yk@FUu8M zG0{nhO|oZBfgStlGLg+#(9=cR7fPAToye|-FfU)0IlUK_Ii*}z=G03Tt@r<<;mMn& z57F{yTiCu(Y>Vw`ip2xpCNlG99Ev}1pV)ho>&5qZQ3tl`B4-gBeUUkf?SICG&x`zV zN`KuhnzQXfmaN|(?}ymBQwK1e+I)T(K6j6%rWx=li^L8+$y$FxJs%KzLHw^ICr@lV zu^X`4E-;4bkolT6g8?YZRBH>*r($6 zbCNnPapp6w?pkaqkn zs>MzyFXSImihl?)G~GX>W3S@BgM8*s(zfJStzwQat z8Sh&IA7Kv??H95=$}a?+M8q#d!!M)>o7VQQU&sf!Az8rZz@g+;7oU@J#5OyLZ%Dv} zztvlc|6+q8xd@Kd&=XS+MSg~_$j_pEMNnov8Tg6FeqSuUA^3A9mJX{=EG;QNd*11PjXZW|`^+pkv0;AGIK!~|ag-mY z9)mUvxJqoES6otlViEh1`wafaQO_Cn-~*2)rX}va$$J)Gkqp`%hp)&@_=*h0SL6is zF2`Ra1Amb={6#8})d&r_&OF`z3HwdXBe7FI2QFHwq*yW@HKq+SB)ZD@f6kTX&xeNX|4wK; zLuH)!r;h6r8r%N|@2&fYnD8-q3*Fa)As>^I_!UL_nN0k`&!nP>{7Yd!lk%{iNqK;E z7n`jEj4R?VBEBM@jEG3foa{R zL`)*u1_m!9w6@S+1GSgT1Qc7?W_H_^=(fwPh|2}20VcDHt4ub+R+Yi2%|bDr~@=RD^*&$Y-uVPu<~HjWOR_u>UM_p-u zjKrCIoc(dYI1~6pCo(HJ_4?vW#QrG09YQzf#)ar6VuRdPRn>J28WQ{CwkliKUu%E- z|4W>S@L~Nm#+vM6zM1pOV@;sNAC4i{?q~MKYqB>!g`J@+D#k=&OOAm-<%#CIyfqfR0#Odko4f_DmUaYk&6KkpYq!gI1GNesz3^1z7w zMq~_;ZA7629#`_2jj{I{Y>b!3m3XT{aV6fW+^)}TjF;#xVw;fIkAdS#La`swaV6tU5Ld#U z{WAM3|YF_v8=w&de%j3)X#20R1V7zM8WzVTPH zF}{Ut9ofsz_4E#n{QiL7pV=M5cE>bgO|WVGHL)gJf+4!OEY>6o{e4L6D7NIqs!OpYpV=HQ#g@DkHAmg(aN9p7wxkpMSEZP)YIiKXM!Tbx z`I0r*-|i^w7m_A>0jK3l}94&u{JXf;!!OLusK6HH~uSpjjs_3c% zTC7R(C)y^jgJ!R^?Oj`(NdoUi>2nT=KIc4kfKww&jly6AR;0OK=I^QMBpr!w*-dE^r%-f=TWlF4v}q6B3rZ$hhM=*h0lC!tO?IX$C^a+z~`|q2flHoE?DAC zu1i!lF2wgucuKSlTx3S^SrZvj?5ZLgN)5`z|J1u+rT(wi3*#4|#ZX9p(J?5Wrf%~9 z`+tAmWE(Qw$Hly45m(oUt`41C^<}w@!n(V4+{4y+S-zpag5%(!eja7LeVqO{61#GFuA-s7(;tWI zXWPQEUH{xfZ!te|rj$AQMEx=N|2X~ewZ^S{@9ogKyh49W`$gpO5dCpvefGEKXgXwQ zV4yrjYiRch{qa@S>BWzFhemY0%b=T%=f4=vOJs4Bh4T`f=A6=BPaM=@Rz6j|uy%G5 zy>Mm5|4c6|yi3kP{bN`1qGDG@f(x<52yR60Bf4<8cBPK{+TvIG>A1DAe85qf<%Oe3M3_Lvvo|Ne7Pir+%mWp+EkDqaZnn8MEeZ^d@|U*okJT^+Mc6 z4)6Zy5yM8wE7eF2r!3aXZ1S&l)=51X^1|lqA!oGY3ZLbb`UW~`ej8Q~n=favb>xlC zl{423B~}CZ$80%DN~6tSEnJNJLJqb@YJoJ88)|JCIij8|_QT&CcGX~(dLkS2T~npT zNpoyeT@vc2nCV;m+BF#QUvHnreme-CD;ZbGaL=EIQ709c8>#1XbX1&Hr$9$Ns`$** zjdR}V9jZO24EJd7;j8rq&+8bQ;3!a7++EqP9(NlwA~8GE%KF55+(VO6HX8X{NKD!I zg(0aMdtV*&`bQ58rl#r;YO4;Vw%9Ogi)Bz-%;G&yjiz(dXu3e&!1sx#IV*Yps7dt! zdC#2D_2qv`&6HW|%Z&mhfwN!Z%GRw%LXZy9yZK}!Da=yJxT$f5MlyjrzdyV+ZcS!t1%PcQ- zI%=rVQ4?StTgWY1F-oaEy9zxBxIJ2E^u}W+49pMLz>v6#r`cPPZ#wnyJ_q^v@yd^H3A(3_z=EF`sikM6p2wrq zme$&hr`@5xApJ>vildJFxufkh4*HPxx6=Lx=wZC%Nb|7{T3BBR;JPI`M_N`WUhTvL zb%B@lAoi-GvIfFqXc@0+wUEveOK~&0pmb_?IH}ih_T`v@l1ROdmt#Eb8(81e5~3dc zyt;6`4lSMnI3<=*>LFJFzt~cwkCrj&f?l^m&8qrx`~u25%-FUhkAIGBb1okv^=B^J znBdjyVZ=pL>O*#~o92b;Y#7MX**Si`_k>&WGR2d>GT!~}^Y(5xF%3^LUr$pfZ#KV^ zS3FSrATbWf#5nAjuS`D8^M`65ta%C?9K23RO}yvbnt8-IEK(C3io_et%62Qtzt&0( z&llAs$0?pknnfKNbx-XCUA$w$2qiUT)&%zi-GSOuYKr-wnq*GWB{-g84BKZYX&yc; zTk~A5tz)z}hnLk9*S0o~rA|$7x!c@YoP&1lrSP?v+?EscVHgcf+;gI4k7~#(1O76Z zqaUwZ82h=#g^ueC^XF1)x)b^+qo!|weOi1rErVm-oxRj9N-mj}HwXW5*5|p;J-yJ2 z9jZ)!sUEVI+>oXG_v*;$O+L?3y;889XC&wH7;3S5S3n<2?EX@6LsqE6wYnGkSS$G4 zYq`ft;ju7k?YK-F??Rs+95ZjcZH(WG;g7wJ+dWH}{1)REIuZJi znidz9QrFN`)g^QT{yZ+1t*bMf>#S3OM>Bs8o{iK{@j*-St}k3er3_knfoG0LZrEYU z0w1*00xgAd>4j)%KQyz9wk5|{74v9fu58d!^t|5_zFr0`nZmRr?MMw3AGGAUZrJ>7 z^z#(7)Do3v)C*4Q!nDM@Dc90h#nt)>(^5R}p_@;Emus}tp;IPWsY{WaVt+$uXAx^q zVj3Ojyie#A+ltDnsCpEGuc$|{ocob_6w51Zm(`hz*U1%IofxJ!X-8^sya>HX4G!T0k_UK4)cTCB z!SOC@D!K-T2HOCA9l2UxVf&cC2OKE^htQkwE%sL}7n?($=3YkrE$xK&rfS)nq;`q4BXtQ{z?;-1h^*6XQR`InkxgN~#`rGF z-{=mv*}t#4tMzr2bt<)okH-zS%AQcjxl2Lr+lLHB{U%2lvIX^=-I?S-nS^Z@S#Dn7 zhH&0%WId_FyZWdm?`b(uq)v5-K0TyAV(*bWIa3+K`*#qt{zawx{Qc-djw^oAhbYAH zN^WfzIeO!vdzaRi*{#x7^Y6ZX*pL$M4&IN9lVaYVOFgwT@--7wTYjE>vxJ<@8zpD+ z4ZqWJHaq*}Y<7loHajI}GjJ{d#)q_g%@!ZF)9QHS&`#P8+#xyLm%32``2X=87@+nMPxXwE(`RzZHTg<8T#}>SE1OC z5Pe3=YI06CK%abHR*xkke4X<`wINKO(oQb)*$jP3Jr?25Qjf(ORgdMnjIF<|#>QHR z*hdHIE9+`~h3Qjxt?c2l|I4~AVZ0s4C;jWO1j2dx0$QHFzYb^d37=T%l6<8(bjmYwn!~AC6|69xN5!`%1!_C#@_e$~==O|K_Zf{tAPt)Z0$HX6&GjSH{ z&mnUJ?v3Ex$~>*Bbk>xO-fQWs%B?XFvo8L)i=%V~KMCs$jI8N_bO!5a?|Za=P3QlY zI0ufiYv=#1Q96v47el$ywHmZ(s{bR-C>PKLoKGwApMwvIKAeCxY&CS_=2i?JT_|vDMJE%u@uw^=RGoZsIPbicB;$m-y z{*SLwx+6Sj!QT7wH;L|md{u>tMbjPZ4eJhs_ec&acT|1MfprI0*Y^*kJ2)HW%c9$j z@ScLS)Q#`3-Xw34z?;iQbo~$M&>hS{ccAeei$h@jjix)W^yv;NbtczuAHAeIIRA6I z{}^jK9$#tE9oWzvd~tM~`;}Xi$?u5G5nolI2`jSndG=<9tFr5M{8dE;cet!wm3nln z{I1k1-9k?-Je$YaPio5zL{BYY8C&RSTbQ0iJ{Db6Q&<-jEl*b>Ll}`0tnfUMZ}R9% z^5YjouER$ox+rO9Epm+LqD0P?zNFsOwy1hnJD{hCoDJNU=?|{fSK-zA3d=EO-~%6h zx+tL=BYu*iLzvF_Ph#aSAbTH09u}MmO}%wk@fY8$EO!$XG>1q;mWhdu*9Xa3Mf!>6+B6QX6R{W3MqAU=d zLp*!yc4+HebPg}7@#q|4Lv=s<=^P$RyRz=*gMD>BLpp~%#cXy__tT8dA;{U;tZ=>y=e@a%tuVa)IbUBz$h-uAa%qe81$szs|;+8kA@v>AS- z{SVhFZKhUfGcr|{=7cZB!aAt3DA~;y z#pipY&H@5+v_0u+eW91oV7Q{MtH^HW@ShOfsMG|!q#KRXbfc0>d@_1T(MKAt|6Qmi zAZKFHUrhZ^{5H{(aOQno^p09hK=SB_f8BB5j;6tQYUa*nFP8n{DfWXoX_x1!Se|xy z4OHyg+8z?Bff}M$vrhKnCmliR>&l)I6ul~YvFs_q*h_oyHuQwsnWIo0z>uC$_TuHt zh3K)D@x1JHdEvb{Vz(P;FP3(s4&XNAYpDYm*^9SF&5_XS%V8eq{vYfqT3=V0qY%BO zY5DMlKBWd~naiow)GTx5b~(|n@QlZauZY}tQUldV4b+dL=L1QfK0Pn~6zKW=Q#x;i zrZ4H?jbS~!&~-=;9|-H=4b)96K~J8J4*q6nUG{9}hZXta=dt(tH#Hr6Nk1KYV^{~@ z7}mi*^d|YwIa6-b^zdmui9b4l-iKVl-ACai;+H6G9CKfu$6l+Qn0clCeK2^6jA1(G zM#;JH{=!RZv58u)jX&EIuH|}ZUCsjzS(CCJCFjP`&!aN}E-j}&>()xUvep-&|N1%g zTO(^*+RLS%#=czsvHPv;yZc!4Qp2^hUk%s(b_B6Q2)q-*czBz$y1+0795j=|f1t5D z=k}}Js_~UrUp8%sF7@bfYCm#Te+OTX<7@CMJZ$$*0)El|UeEqEu>SWj`rou`(*KIB zMfAU6J;NdKQOHV)=o!ds8`cvzb(i$Nd(i)0K>sT`0?9RYRoyT4l8EkCa^yatC>urJ zCw%iA=10b}l>J$Joaz)quwilUg4@iR?pMn*P=ek?^c)f0ZxuS0w~!~tGyVYI{dK@{ z?{A?8mNQnwj{{wdhNC|urfw7;4w;{5T};G}<7#?f=54a*k^1Y5gnwS?Z*pxqBO~vM zF26sF+ru#CfQxzbsyJ*yVt zr+5$kieJEQ@oxMVKkxnMfzNsIXY}mWSNtI-K6PVP#V@(9@|+HTM!oj~{1=7yh|N;= zPHXb+f>Ook=+x^S)|`Eosn&fKYdX41@;Boz=Q;*W$a6ux(I@+ZtCq7d*IUq^SLt@w zT4PP-y^pRfvvHkR-_*)jV_Dg1Z&|4od%{@w18{PVFpEw|=5alC2B+qWnrj-Y#+w^$ zcI(~bd4H1U4CwR+tAlNMGFKCol)J|&^VTh~TMc@n>rUi`QtngB)Ha6u?ukX<(!9SZ zML9DHK4SoOsa5K|VXp;Sr_Es8z0j#D{zemf7WttYO-eVDnBF+9$m>!K`|EgbDQ%YJ z{5$Urb9C??@7t`rXYBW0BJV}$GC~LAn4fcxDJkFnvO?iw|IR{_p}xFO)m4|N)GZs@WLY-IUh7toJ!UAWdvpe~3wwppy4T_w zq|}yxyP)1?D^$&{JHeCq{W*ZWD%D<4(W6$E#jdkdr78th)!?wMUTZP~k1KVz)SI4H z*P~7dCe^2k&zy^AWG;ewlSA6F{(9ZQN}W>c9HJETteOdp6hkXT(9*v)3;k$gWzODD zNKJ2NEec(p=JyBqgdSa^;hK%AzuJ)AtB=8_)&xzO zX)m636KFpX8cgz*K+6VbS#;=uxk~roWa1AM^0j9p15Z$@8_-|A51pQ+MupTD{t#Mq z#@oAx^1K%rt5;_XZh_36G}DqYjO^w)S}+UDU;&T9S7-rlLc>Bat*iN)ltH@mRAE-1r(CeO@X zz3A|rqbF_NzF76V(6F%Uh&nX5jJbP3{i60ef%!B+Z(ADPyk(2}gIk)_FLgDmSzXeW z)Dqs_pn9<7de*C%?uxd&V357eH(iGw^z^f_%(MJn*RyCt+3HD~t(8?>qJ8*TiOcIDnJj9K=^r+DVI(Y({M=*Y7fCr|=7YT2ZDRQtkd^U4r=#aGqYR&OgZ7 z?=>pbr|{|5!Lu6S4JY+x-|+6zA@D_h=vy1eCC?@FuHoar42-@t#^ zx;i3y!_u7~f6o?e(dgf&J^a?`9sBVUH1c_9V}qHe5j=h7u zZru&|FhP4`a!i@%?pBtm>n(;HW2P0~{bjUQM|(kNQrcU0gW~_T7N?Q!yA?dh*apL2 zzRmjEz`PE`djs%1>qm=AZY~sGXNb!|yRX4NmR*S7Wg+4pt>dS3B!`b~z@E1)M19ddAR5f_w#wN?1IeRzN zsqt08w1!P5(w^MJ`DK5-3Jk;=6viqqEk@3l{tOEArx^Addx{RDcX-{p+O)Zh-({-} zn`w8YRb98qG^WVwv>G;>;Oq7r<7RoUSFgS<@&~;CP#^CfiVtnC;_V%!_(%Hiw9Qg(_X9{ z*SenC<)S}6a-DLf4cO)0Q(Q|j7~St$@yFpFeDO>hwC3cV;d<5-=cxYcM);=85AbVi z$Vpw0Xtg}I^w>Z|FfxXY@mH3el z+1Dg~MC!f_2S+vRZO_fU%iqA7mi?4^H_vU!=$h6D9cR^YzJZRrkp*j!1xJo1ullwu ztv-#w5RZ)aDswCPAmb!^t8I5P^J{YL$z5CS+~ZrBt(H8zn=xqbrDuoULsq@W-e$Oi zGdwihm}KvE#wa_5zwBWRHSk~7?KgO4(crFW-vbUGeI!h?7bGBG8!GGtr8eam>wn$o zDdW5Bzj8gyeRYYtc2i@f(rs9Z?qEjpeB=Fm=NN59m%YHE8f`Kj<8u5Mkmr`OA4JA< z{zk>C!Iz!m*@wSUOD_9&89Vqr{Q_UV@R(r|KaLp>a19N$H3tQVB8HqZp_1nj5FKOQ8T@U znYnI*G1F~W&Y6z2QxDz!jQKwb-O3&=Yi6B8a!+RZ)^mn*;FG!e@g_?GZLeRwee=mI zd-ryAn0xzb#k0b3v-@Djs>3g~RkWT$=511q!K2X0gAdF8X?7&vs-z^Z7@m5De0LJR zwuAjI#k70jY3kq<>XKYb@#W0sd*sM_9uDx{JmjhI_VL7X7~SKG6>89=SaY9coi*q@ z_&=Jrv&S8wj|Qo?S6;h#a2EUA zZQkBBI&BSKMqlaId&WXT8jXDadXM;vMrh)>Q@vAMUq|Ps63@UGUEl^D=_Wl+gdv!)yQ~CWxg0s{ZhsA1oK?acpsK; z_+Y!L>^!QCB~6pBuY2s`bJ^JOhaT^pQa?%csHYTr?+p;Gj(n-tUg~oW4k2mIh*!7*_?~Tlubxdko%Tbe&^An8EXX~a|m z?qx;wvN!n6Jlj~1w>glfbg!@}rw?YNc&hj=%TPUyXI38$U?a-7)$VVHSLEgGwn&=} zo3da8<8gn~nA)ulcNC5yW-AZgryp*c-aGSflRm-qy`O&HGQINQ{LN-1b>XNtEt{15 zsna$p_=sirW?)OqR`lDm6&)XykFs6fT(RX70^yWWo>H#?QEi*f>D36Os~tF zPyU0+1-*A4URYV1ze#T~zl;szmlHNw{-d%xUv!2AdSzlk8a^0lN_l~PIQKJLe)_zH z_HLH;wk58}&!axf}juDbQOS1#2$B#wM3~o*esk$K74lt;;Y^(`Tpj4zgDV zMj}^Q?A?FD&*og!!}-(dhGtHynO-Anyy1MWhR11(cGq@4s>__dWq0j8_s3+Od(@nH zcLo33ch`QgE;iGa&G+&_nG5UUGRrDsGpFk_%?oLNVO@OM!n(A~fX-y*%;~SC|C{Z* zYn^rJnc2H{*BY`1XRfLnlBq09&*UsvdsF@H+7q*Rz${j>1{qo7E(D$6WEV$xgAZj!(0$ zPRq1${=SE^dVxOCTtFKIcBQsJRrsGA`oBo2&Cn?htKP_YK4HGKUa8$HXM6S??f({~ z)e$Si z^na>JoIZ${&A3dHjsLWltjkVGel$KU`O&mY1-`8)*(u5+@oCB^t7fj=?7)xEJY9dJ=I)BYnMs97Hglobc5wBO%sDrwXZ{JDhDB#FFJzqP zza2K!U`9XV=+GsZOF2);c&6(!YAlRrp*~4_&Z@W6RH})LS8*sxA|I-tJtEI#)@194 z*JwDazHA_g#-|7NqSz0fmC?Vru;LpLkcDls*(E^8I= zwB|?%Pp=-i0#6R`G;ZdRn*C!#c-m*>KW!dlJ`XaV2bs?#@N|m*r}$q9j`Efssk!O+ zk(x!|K+&aVP8)TkX8Q9-YR>2^j<=BiMir;bzgs`l{3lg0FDx8tc7adxxWSpHxxTP2 zJ#G4^teOa}7Sh+k!W8h5o+e{8s%D3EMhbXKPdi25(`RPYSeFu03$Cm)hHBTXYqDyL zLO;mF@|^YgteQ&2>^P2IQut*EXSDZfR*e&y((pr@2A<75o>gN2=LXu+{_DZnOmL>x zRd4;UcR>cc^dhqBsWm0m)5skW{ukkglACqUs`KD8X@1sq!&Vy9wF{lD>G_h^3_r>< z61TBRAMchn3pncvKa{h@nHy(%g->4`Z}0x|D8(auG#4J4rH*jT{sT6SJYxOD7O$G! z!hZwfZ?n4C6N2#SI@REE|E^clqXv*&(NlV|5|lHYadv;(A^e@;S&=hx&ngFdRT+C$ zDSKB5d)OVw2Dc;M>owWn)Xo0oCnu@PgL%5;9i#NiMUFo^H~zuvnh{&kVNE<4veZR{pa*^~V(Wp2*5l%$c5$IKn|cudl5kL!|VJ+7OZ zoBT}qpak8VxObGK9gnLIy!5y_-oU<=`c3^@^90qC_Dy}#Vm1dOAv9;Z|!rFGj`Voo~*` zH4k$A#>C|fUt6)P;j81;XWTjG$+r9EJk@qzVyUY1?7ipCIo2nZ&9TO2%(V_qc_6T+ zW}MZUli0cD8}#$=3TH#@xU7t_Ie}O2n`6Ch>bTBV?@KJXr({mn6LoWX<1*&<4o!KW zRMqwL=H(>zW=$Pep~m!lSsm0^d zC5hjsk*`wT`%=DM_vQR*aSeR0B0olFFIY;gv5)gUHCj(Rn=3$b%`%uii|3AYD&;(&f`+!J+o^o zyY4g^-P@4`L~eN(*aZac}9~CsA_oI*Cn$qqQ-zr7t7LP9(dMtNock);5e!Wh0)YU81)jQT&3eg$g z^b_Kok?HrNXDK8nz^LCeQ5#h6dmFsG15W-8JKE3r`~~0m-zg6k{N<7K%=<^)Vg6~l zl8>*dhgjD$M}a4nG5y$H@BfM#>;8!v~_M zue?tVY^~o{)fD%=%54R2S61gguEaW)^6VOFJwBg3(|o*gLcZk6&eEl5eI)~9N@7W+ zi&}f@RqEE2)%#Bo>rc$KCmDPuQ#UW`F{L{BXKO9wm7ceqxjV=lRt|#gNb=|MU->cr&#sw~)t=F~K*?@Qrxw z%rAO0atMgc<&9|AI_@Cn!v%D_PG`Q*hv>C!mAUyE56e-`6u~d$eqm{Deo3~yAnOCA zT5LZW&&gFh=E}|%Y?MN$WwKc9S_ZhaVESrI?2Yqde(TBWlc4ez&4{ym*7JP^v z;_G6QqWypwJ`8MDa(Y-ZZt&a=pS4-J&OL!Y_$D?9{50zRKVsDeD+}tj0w*z66$NUw zfiaXhEAuOU92&D}u#&IAU!-bdw#L?%|CsiGtIOzK_l9?m_q|Hn-uF88cDzUak$oMR z#RYu(oWqr!SB2^A8$CIpHng#op%YnWlJS^a2F7MEZ_)H4^}|1ATvKvA$&ohVifZ>+ z8_P|3UabwMslHtFEA=Bj=KXuDo{mwPe&bN_M67$xZE2o!;JKZT5`K3pXN}(} z%FcRpphs!*8230=mw#P9E+F()a`L5ja}1oWU9U5m#l3vLp4WbPST8FO#j6CRr} zG&a%GN8nw2y|N=`eX`c)an7m&ubdx6Z|20lmP=nwi{ekuQ+EABq+MvL%(v-mHqOA>^KTQE zEi^3a_O0Fp6~Dsgf$!+|RMz4Mo{y}rs>XHYHglK;eU0VLK_OhU2_BcuZ0)#hU3o`| z;L7M)l+88he{F8#8*6RN?|H3z-ZPrp-{W3zF>!YTjd68&jEm7RY4h=3l3yF^#kd{> z-d!I;%Mn_LteXz#q=U6Ad?pam#T_bs#_D-p=>AQ3&OEhR0cTkmYIPgA3D6-ND*o3S z&CCQ<4KuqsuV4Fy&)WQ6XY-!-Ofhc(uPK-tXndpD@T2z(G5`8r zAg292=KuU+#;n13Fv%~xs)Wx|^!fFXiU*tD6?A@kWd5j$ya%3U%u(hQ9_8FlJE9-L zKD-IL%Fk@s_3ss`rp~QgN54H`k$g8O6LPQ%4zxbD!|$bkC!ZD4|H^^;zaiXz1G$q1 zYG*U;2wYC|b<$oVpM`?M%jR(JdwY$cIlLPE$A|kl8o|%8@Em>!{U!L1dz5RP=y`4s< zEo)h2jsta}`3_){cK#;GzcXIhRY`vlS~(ZZ^Wlx+w=m$nXufw>t_QnE`akYlTmBtj ziL8YzbujzN=O12-E_fgwvo8$SV&OsX7-LVxVXI!*<$NW{e>P6pHIp_4&jCJ8^wzoj z*T#Q?(l>s)w2!`Sp!RKK1+X%z~Nf85gv7lzYdK!Io}e-(t+i;2%4AZdbADSv6Cg_kGTTTQ2ra?xOu{ zJ+^vsSal(9)F5x<{+p-VIsB(98|#`kr}r#9oZxIIZ(Na(SxBDj{m@6p`*Z!^*YCw{ zOAMr+^I!F1=GB&fy#aY!$L~tu5+%JAZOR3)>c-w`)U;vyolhdige3yT1 zEO^Vj%U{ZOySb$2sJ^5}$zMF;SnnM@%CIFP+RcWZ_O#G7?SGn~=PbJTX6!-QxQeLV z0Uok)&?O5#qUIoguge(5q^*~j2_CWK_u;E%dzM3o)KD-{pVlNdkY-)Azjn7@m%PgqQNh)W-lJG4<4$)2V9H5^&aNMNPBl8XSK&E z%QcwlCunOVkWgPPw%Oc7>|jsfzhy493Y|W+*tD@eu4|h77Jn15(S2#v#pl`wh58Jj zUybx(r`;@Y(Ka!R1LoMpZ;{vcVL!;TDTiEYo~J^tvnJ$xyQ0?Hdh+2FUGJJC*GRqp zHEa&2p|f6|34+Tr`Z2b73-xP zS%dlDS?2sG^dPjLOI|Tz=CDO049a~!Fm~JDvtj==U+jGrpO>KM^ZEUT75$90=WB-x zdy>v{a1A;>)A9UTOXu_Jus7S^D;q4&oqB^aMX-e5hTrqSHYoINAHH;ihQ}G?^T%&k z_U_&3p}l(%K0!iT4d}E5kAlCJ8}a*MF7|^j@SD2+M&(e$OLz3t$vtRCa2rGxK3PmG zFSSDEQRKG6vs^L;|W{f)q+zM zTq?PXN3^q!gl+?G_fGjd_!b+D;2=!zJBmxj^{o#N?{;Amcmvx_ko6_wbaN&H2O4d0 zwmW1E)0P>2X9hQ8YMWb6n&RDZMi#olZk{T1^&5GUuvVox_~(0k>Je>poby7~TCpASQcqefH835%|RJ`Z%yX4s0=odq+GDY|r$A zO=TTNVA~38HBqp&AQyfTY_5MP!!V3~fl-5xT%FPI3I0A7 zHt;8~Mbn z-$%BN4K4yk$us&xb;-5CX}C5x%h_iTXP`LFfd+3^*iTLJWQg7x`_?njetYP^4~g%N^3p3a z+T-eH81VVX8mm^%2CrH0lbDPzY3KUhG{rCfyRnx{qHpJ*4Hh|9XH8J6MaP!)D^-)r zv)a_^qnxqix|8S9VjC?bd>8N$UY>Ow_nCLGKg#dOGr9ct{bY_+{HzSfcNT1-CFC|X z^o;RT?s(!2;}>_l=Z$^yz0w_Tzh_vzceA0V^stdL(a_aKe67ScHJx+lQ1L%1Usl=s zoXGj-mnz;&WR36Q-};e0&DM+z^8QTZ75LPC)`0krS3dmDt@|FX>6bcCt`_JY9|%vKet7UGa%BMDsesPlQ1LOB_a<BCN>g# zB6#Tt`wGimQ;hDm__X-ap|j(xbx}>-sQC(`_rMRgjcgrxs5*%6bvM$l1IjdT+;%*IC9?F3ZR6le&)hjy#?%yDn~i zS+?S@;+e6PRjpMNvXr*sX=@Dk*KvIu*Vl!wNBWq{_3@PtXufWD(cbBtLzbjRhl?Ng zWw6YpjR)~RLpCl)_Dh)?qxj>&-v{iWUtvo zf389C-xbEuTyS(#<%1fIUZg$K$bFW5YW~#d_B418O!DBXa@jaeg>)7>iUSipleyPP zn>KJ)#$25SNArNWGv{)6Z+bLie%5)lI+wW`|LCy!XJQ|Iwos=#vxRjbeAdN#Ejjxw z%kll%&;RxOU&frf`Jbq>q@LC%+IrRGPWJu<_!8QZFU~v+{H-Eq&g0qSk*`~lX&0Mt z-@FK(u=&kPvLv|=R%TMKRIPrMy&^J3*4MKo@k)2!+{~T~ou~O`LE}R2(f-vDKi-4* zaLbwGT{Ust9NvBTI?f-=!^;_=80GDHWlE&|zIM+}_H=SaI|th?{AnUKz1HHW#p2S#uK0@Fe_! zBrfi1@8pHY6IrXSuZ@^rSyXDaYO!8de~-8c4G)p`N)_^EYx8Mz878c?G&7&VuU>$M z{E+imb1LWeC?8q<>X{oWoLHeJ$YaTzvp$|F9y1l13B@@5LJ9HHOmHK1TNCHw z{p;73=PheqDe*mR%tzsm(c^L6)ZVpE^PHit!nI0uJ?)jC^F*iN2(RI1ihmSt8{N|u z+HSl-{Jinm&LNgsr*vmCj-FM;@Y^C{_Y}Z1mObo3Uj^=rc^yeID-K;eH`4)Kn3`0XjS2K1xp|z$Zs(-_M zs=w*t5O5Rf`@_3m)%2acGgWNZD!d<@&DC>1#w#!oqjknG3jG-|yi?Ui%TV@_BgIPf zo{7&{jL=-Ev$E9&&6P6$R_M2Eb^81=_0l@(h|JA*r+Gv_`XzAjjYP#SvYo_w8CW|< zbOzU+iTF-0zVtiNw$QUlqi16MRvYF=p4rFqmC#fPFqAl*trGiJ%5xG=XjmOTzjU6o zWpwSGxYh!`{WhK}bB6d_9?zArJ{+sBn{S0T%X9m94&8AIb_0KDcwEtIDQ|V={7UXu zn(#eheLBH;ga-S@7?bZw2S2jcj$)i&<=J73vuv>RVRHR(BKoi|kk4wp&i_Pj?{h-S z0eE4DNl9(23XLHI|M2-8sh8jv*w&&M;#0GBoVn;7r7CSmSlKF=sQGyJGfj z=xJssZsFtN@w$nr{s`Z&3+&%r%tM6Ua{I;U4P`$!v}1QSDbwC3<|cr=!CIOexB*#) zeXw(kvOsk9@83xNKxC@LWoMIaNH80IHH9^|>!0#HCCD;O z#MX&C-Z;|Uy>W2knB*b5Fp=NouV*6MP8OW(*-yYP=gcBY2z|tFoTNhS*t7 zj%n&h;3MaTe+2_0mG0-c*MVOu{+Ih%*KWDC2N-B~=U!kH{(vtdzIlq@kb^C}w|5tD zp8gM6YZ`7w6I(P2zX!&W2Mrv1RpO%3kUfX{zK{Nze8H0gb@l#6o9eGzSmdu1o%}=i z04!Af9q>on+r_@f?e3Um3i^el0#N6cae>m;d>J|TJ^o>orG!2c`cJ zM*(Eo5S|P{@dt9sIDk{)4uvruG7Ws1nNfra=)kD@l~4Kuwbm|LeBAKb&- zoMdjF1RuHRo*m37^7ww4E3tP7ukN^^-fzWs%S!x4;gpi#Qfe}?0Zo2PKWx9$mysAz zk->ZG;=D&?Zn&mn-TsQX*-iY5(2)~5a?(~OeN`dbLsyOy_$sc)r+b}hGJkHh&(u3o zd=ZU7FXI&&61z_4MD!%n#Rtq}hUOe6d1pKCY*XXS(eDX;$~y-bM}YpJe~kv6ssWla zxu+IQalWDRlCzYy0_6r^hh&5?v4Ib6(Y#I1#4fc)H zV=G|~%$4&Ix_ea}Y?hp_*~ns3^n=YEzM0;8+NQV*^+v6qPWmaMA9UyY3-l)Uo+@X4 z75$Xa4`&(ru?45Tw9aDHlgE&lx7>`OlRC1R%H>?M6Z-xA=<0tcd-!cnw)1N>(r zYa*RzrTsk}y_16@Z}XZ|vo`-7%##t@Uq^TjDvIzK#8z$wN9*wj*P%Pi8eI3W_>Kb2>&JiElZ{Sq1v}UfbO$VZ*UaqmFf&)ItJ>uh;w|q z7N>Ld{zN~K+ta(#$T$mCr5bsBft7jh;A|^-=Z9J3F)jMUNF&_I?u~$Vtlzx0XCvXVdLECNKQfMhadyzeL7@%ayuH=dpQFUVl3H;w&w5p<2-WM_Ide542Y82aAHoRjaO zdlCG(g=^$4?3VbLMUSc5`C!{FLMC{n`A0n|=^_t{EL^LiC=Eb@*K+7Y?Mz}Zq{Gm%|HwlN|{d0Dd&`8Oi_BGXSZthUTI;NO!)EwKRm zxztPRpUdJLvdV|ZrJ{2fj6cFoGv3)rQrQujn2}1&(Pm)9d%vV%Z=>im1_1>FMC2I^yNja5Ic_-*uBiF z{P)RzMO>|sy`8z#bUDsVoSEY6+YQjQvy8d^rhfZbZLIZvR}@VxV;u0FDV6cbVGwh$X_xK-+@1Wod3x{=P}W>eW1}lXWAdl^iFEaao5qu8v59)$*P9^ z7JF7*?TjM&XdSvnJ!h8~&M>j?twHdW0~zJfD`ROzuihrZkU~d+9;Zxfw;KK%X!9d9a&#FCT z<6~2Yn`zT!XDrfgEj|q*(?+)|@@z5UZpbqz7x@zo-i*~XVSf9&G?L5`6W>?&ur!mET1vGJ5kTXpmUVJ`Rsv76`KjGGv4 z+qSCsX1BBI;nogpEu8yJ*r-WkCu^jyKl~XzO=+S27N#kl zKVZ{e#dnt8;+l<26T;8c{SJHAh<)XfZ>HGdgxBfoRZq+o)iaX#gW8L|&mpJz7BTn7 zMv~z{)WKYRzuuN#f&LZ^DxXJGS zJUYk#Jh9;w)w5)Y_yQu^A^T52m-Yu@AHP0C@qZ0IIhec_Lz%B(@Tq+GRIQ2n&2d7z z!(2!E=p>E(8s5bF72q>FPGm-*pTWLA(VjeSp#F-{s-!I9e8_pk^(60pjWeC14lysH zuU?aKW)Ii2JT~I!oS2dPkXPxkfEfCtSva{d+xy)j|xuSKcBL(fqcSEx8seD8C+dw%KtptmvJ9^Ue#iCTDp3l zQ)0TNIT=?Y>-Z@3bqf^(e)3`5Li3B!naexpx+M>1n(w>dr@p9bnmil1cba=0tC$N- zk4Vf34E3 z(A!i_E;@h5H)M?&T)z#|Vn--`3cF97=Z~~ki4LWb{Vd=Ljj6LBtow0=`qBE}Oy)%A zF7yZw#72_ln?qmr{H|$2V-b20SjnBgQQi@{$_dj{J37wmpevaN(KR><6mlrlzkz;d zhqC(B8SUo!870u1KEW{O_|Wo9@K<+XPCg+P0TakS0lr#ST z?Nk*rUStKab61v$9tS@F&d>2-TeqtiJGPvkZ_S@p#WV3@=gv^bGh=d%#m>E)`!8_) zW#04s_(@A*<%)dbT2rgI{@a}2T25mBU4A?HiP1N{4D4>|VZ2NY5cHM{=E!?r3E7E~ zDp&N`!^J)=JVETk533jOE7(XUw!PE{u3k6L~To8>9s z5MW*wU!Uw)PoH9Qc4Na?hR&dg z@h(E{iyx#+XKz4%mb@ zZKr(~@@NyfI`;%}Fw%YtIW|R)X=d#18f&Y_?XL2AXxz~RcvVM#FmDx#!6j3pWuwKk!y2PZo{4ph6ekF zs)gt{f#15i?pYT)NOso;4w@m69Mf!sF}@A#!IER@3}cS;wMf@B)x|poXu1;k3Yo|K@Echx zjbR$E(rDZibaS2*88HW33M_r?(5BtoH4T0|*?>Hq^+d=w#`#TnGq5bBU7_`3VfvR` zQNp9L9u4J4b3SJ8UZUY9hBXmdBl3*ED1AtbxigV+qv*Bi8byrwH>*QH9n8i-vfWNR0t~8KK4LgYz*IY88 z(c)xXM*DtP$eAXxogt-|GcGZm$n3}|Rd#rKHvecpd>< z5t;Bu%!izHWM0JnV5nWxwOIO#YFp@-8j-F9)|9l>H_ij0ahhn)g+I6{e7})gGlBVG z7-9x#a=gkjBKI`w#8z(ct*5^}xPEE&aMscO2O~I4j`#dtU<=zHbm?}#E>4*&XHYdB zJh8Tq)1KrUUqjowW06}Q(|H#EQ0FEn#BCDCc9tZ945AirHtubeJ9cuSIginwPT$wx`ybNZ zmyumL_bz%x=ZW++ig&)kyVBq1cvpF(-Xwdl=yxOb5wSUWP9<-=-1i3kYC877wMG6R z$-;NjeP3iuA_L3sTWCvsV7C0J_+iP_E^_2P`Uvuw%?CbO?S|$h?kS72gXBRoAupSe zAFBAB`z7R5#$BQs9L~=x{{Fr=5|=BqpJfQ;)6a^>S0A2T$MrnEbFa61$=z);V_Ta2 zxSf4%{r+WYyg7cB(wfHy-K7>6D0C_BxM{2Jomuu)-f1Pji6io?=seBgXY-&XE4qHI z{Y%f9qo39Mh@*V0BKn(L=%bHDyWlOHBNu}=8EfD5*+%W$F83D7J^6Fgl2P1eQnO-UId>J+fsj@Rk3SCe4K~eg)A;OLeIcH_J)x;vZ{JV z)uWFd*0U$Iz}vRL*S1^84Trq39ohCuSx?_5>$Sk!T970AWWB1~Rs&~F(Hl2}^*VXF$CwVY@7QU4^5Id;NNbHnr6z+4qDSE5siv@?Zv zBv;@DViN08iRniEJu(D&jxnt-rZ!2c^7>P>vtKofKZ2Hni?gn|kv8!|)M!QQE3(E% z@r{quJom!NR>?b6m#9=Pg?_5|Uca!a)y6e^Xv`{YAEB@P+;dMh$*QHkNa{BQ_ z_2HzC_2E9^Y5NH62#u}dJccvK>$7=&t!gw2JS99UGMdn%v?cORw7n|g$GL^|2CN~T z55JPL=)b`O-sgP%5a(-&onD@*%zJX-^48h0@n)BrKw%EEW74_aDM9WHY+DKWK*<^> zSF25EA`hNqfF2CcLkIgtC-D6BG_j|TCLD~@$~eVm{}<)LUqbnk#a4;m%tqv@X-(j^ z1RcErSY2oK>=>(ARl7!M*Sga`&6f4Hd1#a5{{@RR&x|yeo9j3k7#dPM|?j*a>&3oB%ue!c^N&-gdQUL7V*>UU88^f{QXAc z7ZY-f8F?liJzIiiV~X$tu`%KQwxciRfjm8z)4>qvAkEgvJPm<21mO)Q;0-4~mNyLP z;|)QLHw;V%owOC8E%amq`p>)YrH=Mn@1(6-ISF@gD+rfn<+xz zTjk7rCuh0!=nB5QIx|gt67hA@{PCr&6YRxx@F53t<)T*23C4L6-SWGf(+|?dxPE8- zgVz0)GBv{--G;357ye^R>tg0CWIvQRi!>kd3;u4zP5%ZO6@Lra^Jj&4hs1eD!_N8( z!M{6ETi36Dkg`$eSahH=9@%%}g`RZEL<2QJ;jQI+$tQ_U(JXSr7(q2%T^$8} zp&Nlge4#|15_@3a;j7=*U@L;x(MN!@3pQTYSbm$J!Tsc&68UrtdWTBvr3r15_CK|6 zlKVCG$y2O>PHIUAKb5s7a)9V3L=L7dn`Vm);LC?U&SkkE8d$?3m-ei>6Plb2Z91UQ zGGuJz>opL=Mmu0DZ$C3&!yGgrb#PccTx&+FNj=Wgd*k#l=}>$v>v&BPIE za4;vYKfQ2S>p|=9H{tj0cxvGo;j#0YRAcY}{Kv~Vz6>9^Anh>cKA`~@?Mfe#bN>P6 z{h6v2tqD_;G9|Bmg_@|<(S8@*p4d|&&xx&dyY=^$rx&hhJqf>kav}M+q0f!%V@>Gw zis)-M>#+MhVn}9QnJ+7nYeIZGga`LuhlUb#6v$O4;mKkr^|4-p;N=8-Idc9M-~54e z23hEkOy~@J(0N2>06q8Vs6=NFp<{VwAf17XRr-{^BRZB#F)m7~#JDVrTBBz44b!P}O23u?V3L0np?nQnky zdjk<O< zB6IYT4T1hQ)xQ2A*j+|TH+n7H>XA3aLjs>|H9#3S>es+fa!Z5F2 zmSa>5Uxj)7%5_g;Mz!vo4 zr+a|^Th#w?1t#u{r+$%;hZK5!8rXCwB0#4g=aGAqHill!sv zI;bIS(7rRl_ZIgOz~?GHi4&+zu=v{H)H{TByB#OY1XjPx7~3>Ny4`o@42DyDMu}N`Ro-| z+|pZc5DyNXa@@z5j!|E%oZ7w7_gMgh-(QkdKEjmdo{Mi@_6fyiJ4;_%=qsc8kKz=AQqUVn4$A^gMk{11?9T*72A0br1EC7f^qA8uf?orT*|b zbDI0RroQgVY-P@yFH|ge0U0VW3hRHQ%vmZl>r&^G@-5f4GUg`i=_5b5H2yCyjNhMC zy|85=HH$CM{=)u$bKKj;KJopEeLd^#Dtz0u)IROc7%KVCy0YR%^2093`QP}|2aSBn zA-Q^T?>?SgxG=l?M$Sh0(zu^x+`m#EmF5gj4Yc?z^;2qr^#yFJg|#W=3#plW#B~Y2 z3&7VmQd9Y#!1rwb|8+b&=p#p?Im>xO>1~tPqy>XMar{;3>t5J@zhjy?%QnayZ#%;O zD2>y3Msmy+)Ml5*!X>pp>JoZ7=v z0}qP*DEbtiC~=o2Y)6UPQJM!&aJ4*u-Ow~JAxrFKu^B|i7;8|Twa%+*(dm!)P@835 zUW=@`E0rFe(PGXK3sjTD7?)na|O}p^Z|9zfw&!^tRMh zm42ent$bHb|*GNBYQaL|0~)I`wHeYw``{W&1$kY@$R9(?3dMV~(GgkU{#A=;jo_cX;7GWs3t zYPuDg3SC$6E`DA23ciyH>+@v2mm34`)!vgF0eNRLpM;TLe{a)O`dbmV(!CO%l=tNQ z#7LiNOrM^}*ag;($hbYUhdskShRWEL=2bCce}&)2=jRz~^5To*w-|A7(eVpB7kx{^ zTuq6LeJGz-fZ;)KC+j(ZX=P+>84J(V-rW@$#{;~x>niWIU8Ud6ajV=ft4TJY-E8SU z=6zX9M&bUK`GDFX$TY(@aV0(wc&^3=NvbkG$_oi`)NN-z3O~fcbG7%Q{E$E!FEN&@ zy&t?v|FL|*I&8l1Mr<3~V{r2S$RG2N8HUdwjF*3bKfvil{@}OB!GDQAc*o$6E4=%y z_(S>^{)oIErAL=JZf|@4MCyPip?i|iK`H1WJ31*9pFx^&o}$#m3o&0x`M6Ndwp5;4qvNvnlJ4+z8{<5(~1ZAc9e|wvHDlPA5K=)g}I+=z`sGiOyH3b5MzId^cxUy;7tUZoWgYZ+?yQtk^q| z8dtkG_vPhlxLzdJS2@ZOSK7)Za<22u>HLQiFF z1F^0Rc4dUD5B}IwNuQOk=hPIX{(=eZrSlmiP~_HWD3u;{DZ* zJ*FN$`!DLIzNT(?_#iSVX~|GM*(7=3cCSJ$>w4g0Kg>S~dHV`68(p*``v&V}zlM5` z*v|VTmf=zxmS*Y8!`yi1?P1>AIV%BMn6-?xdFjAy^ZF}_KUcAPsab8bJq!Gk|L+t1 z*R_3cFrT^67x<0#=_lI$Yrw5wm$R&JE5N$}cn_ghr7y4awIkfu=kUm<^z}IM@bSF8 zj$hH=i;Ci%Nq=Enhx^No^hYfJ$#K>OyDiF; zSAgL>r0?RasAlZn^~9aD5hoCVai7Gk$o|P8bAt0a;(z1#Y>+iiJw-CpVlC4Dy`$+$K)bCPlGn#@Vp zkNRwqukSx*?;CMy(q6s`dA~4SNiHngFtqU6fkO*tKbJJ@+F?odCtpY^{N?jWDgT*M zkn;P3vyV(TIr~V;Yf14n&yCGx?|EDu`^wn6VmF_-i`rK+soxH+4w~D>s=%v0erQq( zu*lhvC;nS&I<$1zSmEE3{Y^gmf(JX5PiA)#8x=fWxXK}Ou8X+6V&?a3cw@I!8L=7u z-ikj@MFt&!)^*Ik1I#bkcaZtG37$U+Z{q`L9*W;9na^%Dx$R~4yjMi@wD?x!-EFe3 z!aMcMCwaGxHsswQ%*!Nv(4vD9u@$24UB`R!oR{}5_Mz7KrH_+pk~ig_#rucxd~AOz zuuHDDyyxLP&H=Hep zqJPTJKQ`ppCgj)(Xmo6xE0j3W*7)*DSIYrtuoB#N@viJkiCjU(?mJ;lc1~X~r!z%K zkzA+I5@*2~VZoWenQU_XG@H1$gMD1*1?L9;o3?$DlDh4aInch)xo6#!`2{UP_c_eD zF4Z2Cnm8wj#Sy$nUv1zp(igE}$xhe&IW6?%{CZ!+u$q)P^tC{AfxMG!qLvB1;mN#n zLf_+kV$>{@TqWWW zg2lvP9OfJ;(Rnp-%GwQ_2`fIU)|>HX6R&xUck{qs6*@|unZYx1{~$gmau(Pd@57#5 zxbD!TyNKh&rw|}Vu)QC#Gb;H8zin8jFK)6D$LeiuR-0PM@2epWx$S!PPRPBRMa;tr zYG%l~UD`d|LrG`-{A$T`smtBRsPPkb(!Ta@Tz>~$3qMcUgnBXi^ z6P;y+N!RBC=gy(3K91NSGdwhr`W{m6zycmxC2tWMwUrzti5I~aXq?Y2`b1@~?dS>i z+K81rdqi!L+R*P$a{0IZQ=PMs@u%aPdVi{_pT^%V`;;3ae)?+kC3}4CW%#f(&dan= z%fU&XrMacH-h2lf$`or3u^*g)yz#nL2la0y{@$rwqohikt+d&Pz5GsK$y_+h*M7Y+ zMb3Rr<4n!r8Om_U3HH+e+oSUrn{Sg z6(7LGGpb{0BYD1;y-U0DZkojAn!fqnB;M^#*Pk#}bfA$}61^vFMe#A4`#(0N+oJSs zg)imo=0o89{ZZjDi~SQFv&i3UYSnB)1{nAMe?0cl|Cg~BM8^Ie@E6CE&~e8GRH zzRnkVG=-RlMa;u5`zxVGk*hldHuj`t4(2hR@pq+4?%2-fi<>0ZD;wVKFR(ElJ$JuD zWX(k8-VS7qj;z@cku_0XJ1jMC1s0xfhbJ#!6AlNa)=8?~zUh{xsJ@yw(AGF2j=iC4 z!+o!HXwHrFEpsDw{zvh$llIEM%kpn61Nt<-3LK@tkV*gV-KXk-U*FPXMPD|fFK@`T zHs0~Bt7R)XNX|9Pme@jY;E79jro}5$#3qQHqXNgWejhoU1{|608hoTzo8J;I8HPAzVXF2^=<-Si{0_FPdMvWr zh5YN&Jcs_~;+vQE=9)6x(qH%SH>?razTx2tYIrn|YZJIp36%m{Hhd#-*&8+D{9|yI z2hK7q=#0nE+t?#ppTw>s=2_z4(p6XJna8H@7hZDbAWM4MobW*EzmYQ$+r~)R*tp8o zBJrXwsUe7+atNCtaAUZ(%we}uQBQ2dLHMSZRatwUeWf={tWmipys77Y=*U!cYv3Z@ zK6Kd3nzOs!7$3o#Ht5^qY(NBOLG%YXzhRt3;QADuF{ayCMl+T`WGr>We8^bpsmmEV z-r+n`l~mj!IL)W7sO-%c<0A(Ae=W*d$?>XUd|RodB=*hE;hlQ^ALM?T5N4iTD2p7VXh zZS93V%`Zma*3>N9N5Cxj7q}k*ZpjndXu{r=SY+ToKiU;qYt_6%pjGTR#z1Q=IZW#| zcv|*mEzffSB$K-Q|CSeZ5*@ zeuOX1rP`cTz+1@ku`8YhZdiV%eWQJJJNyx=17`BB z$iN2d%d5%1NxTy)a|^*oLqzs}*iH6}9Mhg5x7yAcBr78KGkQB47<2D#aEsh;NA5Qp zWB%9Well=~+-HtXO;a;%-Q}<$Ln87a2+!a**%zJfUs4~v9lx7Ce_qR2HOsodl;PP7 zeX5!JUe1{ipMuyCu{08WAv9`ck9Ilye>EM|oqs+*YF}HM<-KG(rt-pYwB?ab3GJA6Zo+9u#yXtO!j#qAJO2FQD2_0LbCp4B>61`q@Za)9- zWo;_aiOzk0STP-%) zcyO!b{?*Zr%wWA{*a)TS<#uED@l-LMg+g=2vyi=c8P9rZY?R=SY&Z9ITfyJmtm{O6 z$(pZx@v^e&>ppbcfG?wx+?%&p^VIS!GDB0<@*U={uiv6@U1`lGctZae>z3HLTLN5i zUGCqAJQld7)p9lrXT&$)i=1eV;^Gr<5w@9PaWON3i+tX%2L5l0j{y;Uz{67)at^Ze z`vx}JTvMiXfw{La_cZ95rlvV1zp}f{5$(6bl=UyHRXMYre(!+}`{_^Cs6vC8XE;lc z+H1>f7HEuwvGvQ>VK4aF3pfkI#JOU}CEoUOxpz7k*1xh25ZxQrW9iLr#Vg?S z@@E4)D>_5!k-f*W?clr-v9woWb9 z*Rv)SzMEU3InS{kzqFpph*?j)XVkrHXH8ulGcWLMT(+JPd!2Rjt0nV>`Fh8!n>T=; zAbIow*3S4;{4&n)y0P0B(WC#$8239|{`XQ{{#N`i;umb4r1-1muoiQY7o%$4R%$}c z!=A1JpR$gVdfC;Y2k@;r*(=Ituc+p=<-|Uj)1;2}xMF3_E_BD)ELZ6FtZ#R)kCm%B zeSMHcQY%o_WIqRg8_DzENL{jMTjOrRCS?xG{#6_O)JR)1!tu+M$fix$=N9Ce##x@$ zh1D%?d_T5B*<;+$z;-HoOc`rs>&Wm~kTuw#ZSYOaVrQeQrDcsg9=r++3&4N4ZdbT| zpTJWKZe?#OoAb)cpyMZH(4-{%|J+^0ob_4Kbemi+QT%B)kpl;Q^1fH>9|3>VKc+SJ zE5507D{W}_{i$sg%F7l1p48BDG*4O-Z|pz34xNRz_}ZxJim#1&OyUP~^4>gnCU8IT zXq*uoTTlBr@DYx6D`($uD*K01*hjpb{lv+{vP=T5+a6$_(WrwUI1;~!;7IUeogdB* z?T(9l?E1USuF#)Z%XFHx=0EcN`DZC>KjgE6&+`Gvec0NR%|6U7=1~Bjfzc*)8_L-8 zbFog&Tcl-qe!pz0JK_0xQs+S1?p`qcxjKie%Q^i$UH{ds`>lESC#mmTRzJ=@G1ua>{_o>ctw|dmwpP`2mcgfG_%OwGwJx5p z-#H{<_(c2$QfJn}`%dZ#lqG7ZrE};X9?ElZ_UHtK^6_tv&B>`BD|`Lz{r&9YUOA4? za{FUbQ@Wq+Y_{$d->Sy-i*exNEFn$1*O$OPu6C>NmT8W}eQBImD)K^fhr}XZ$;T;m zlk@O#YJBVPOg3}H!g;{>Hr*QWo#NlD&ItQNwZ-w}TE;c0+IGdh3|d)>@%7>_8i!v| zvy)4QpRtr0yq4kkWbnJSlY1m}2+QVNQ$Ep-uasD!UOcbm10y`uc8^ja>mSWF&8M;V z9PlV1ZG5rsDDu~V&%Y1#2Q=HgK27cG3*gU{dufH~T${%JwZoTz&9Ma=<5_Htv3%#T z7gaS#d0KftoD1JMllpnXmCzYv`tco2T~m1|FrYwRKZBvd1WLC@@zE1<(l^ zdnf^7>a!NRekyTD8`)owwQhT*650j-%eqYDi12KOCtQcpLw@E8YVNZy9^4L3i(aWk zhshp_;9lNo<6Ufwebi44>DV~(&a4GBEyOr`Wd8^r;vK8;j_hUY%zcUZl5dH9qfL9q zEu4GA-uofiI#kJTMG0BCH<5ee)GUw0(gkSWLi^GCfk)-P`1&)OrQM^9aajhmQ5h5M z4X{jD@DlxhNqbdh&of!1V$i+1yS=;093(`+D@GQ#(2KJDTJ*b4n zQ)8pnZ1p7aO{{RpiXUE{tKqq5u5AEZcOdVAz>q-9&x)^#_um@XL#hYQokF{xP0+j8 z*XU5U?dy0;>HPbr7T=Li<9&g56}=rjeJ~rD41T1hq{P~v=d7~NXtN+Ejyx{n^?>JG zffD*+5Opz#lL+AF5c?<%JM_ogzY||sU+lyHIi-ESH=?uDoZ*(W8nm8+@KP@8kY`xC zHjqEs4$OnDfggce`*=|c^3i|3_pME$+dj2TYWfU3{2kbjlUq%E<4CzKw3a$C?~(s3 zuqpFLbhd9o=6zh<$(~Pe8Fi!EfhX`=d`rU{906by*r;E+H`Cn5#=3dVJDhhV_xr+2 zg3B)kQO9G`O-*~6mrs4Qx%uG_;GGNLt&6>w25@qo+Ekk0Vw{S7=I|VYhr|aU_$ubv z^LJ4rkoAf5lY@~t_;s|&Zd)?%of(V z(r!8US^JO0`!~Yd!V@aIeh}V11U?RfW1*)GUnt;U7CtzW?+X2uem1fn)=rywoKtVW4ovR=(_`ntbL%uR<`Hx>IXmnt5(_H+qT$S0 z~ud%t)M~05hTjr=oTm-J3H32A;e`47DfIe`yq3AN z>4nxE;JZ}Ka34Gp|KP!;Nt>gz&=wDCv=};e`hJnm)Sj^&T$;G~;L-#>Ha=E97CzeM zMD)YKrSY4CZY9*9Cc2lYiNx+(JV)`l96NZZk0TblCBz1h#S1(oN@&Rg-t zG|YdrGm7J-*ncu-0_Dv4`H!}Y;@Q6;i>^FZ`ZgbdH~PtZp+-$~%)*y~kKpi$O)2og zrFqo1*#zz7dfoidodR3OugjXEb4hBow=>q*cD4{>a*q0tRVINsGdP5~)IJWHQ+rs} zy~nVFj^0E4SU1CxySD*W}f+sx)wA0{%X?n5gTT^`p%fGx|G?=gocbtDgL6;Mdls^}wGGZ3O;y!5caw$hePUtFC0+FT-c=!e>%% zg}4OU?zkk|ar02;Wa0uOp7Ld`9UzzK-PhJQ4xrDDZ(kdZZRNdHytjh)R;Wp~t;kP} zb9f|vKyr5E9G_~@S;&wRQOZyk_LYJwJ z=Q(&Giu=+px<*Fjt?)xo_?r2@k@grz-1kIb5U7W$~sHr@A(^Dp{Q*pa__zv zxi=a(MDB%c3yWb}JVK7o>Cxy-Y6jc~9CGhG@>AA2eW642n*6VkXM;C4l>xhkk4pMO z&c(?4tY&PYwZpkDxpmA>#=SlZ>yo^LI=@D2pHm?R0{KBqT7?xH z>RO$j8o*w8UdR4+^52!KH_HEfeplu8YpjH}^*ry?>-?qs*9I!S{AbCp>Vq!ESCNB` zK<@05IpHMlb1?K?L7r9q&)M^*uNC+nSF%PJ!knV6Q}c0bzmuxTo!v7$ZzTSwP}97H z&%6BnTKjoRltgcTXfuHvh$rS{m;Y+f<7JNz*z5R#(!+K_?ctT&#a!gC>@yg#LyFC- z5J&c|Dm9yuJq5(Q;_smTLsE0Lnh>mq)-oQ+i;!Fd_CG7AM?$`~YUEnnicLEUdlngd z>N(o2rJh0qK8bc+IjJ8i^erd1I={M#I@UI?OU?d3aw*!dtBiaC;_;l+Sg6GQn9eop z1jWcbm_a+=2R_L+@vwJE&WCd_&uPRw($8Ki@q73UQ-^Skn5?!{s?~b{om)!33BYoc zJZXVPr5(4l15DITsgSsQjU0#}Jy^>SXIEw+Pn)*DdFoJnIlJN#+X|>1BRLbVs5WmG z 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

~U>0Jf9LyNkxYaD#>U8PrGNA9Vwr{|YSZ{{1m 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

Y*7-x~{_lSj?G?e!M=U(?GI)}Fz@Ml@w z5bP*!2xhIbZQaiQBL=It3_F8He_Q9}`I|W_?ay-tk+&U#xrUC?B6}}-#W11HolO&+ z`TgURS%s>hHVgf?e*0QUm%af$AK=Wd-%Q-jt>`FOY3UYxulAQYh_SJB)~jh=WTMKxTN{GWx94wt zhxkOD-@zM>b3XDmxRTr^edto+lhcQus+pPWR@PBaD!THoM{#>WAe~6sj488^#n~iaKsLy?%%$}d|KNy!8UMJ&{wi%nA zOIdPf;TIgNCx?jmvGq&;29v*(@i-IDOTu^^k^B?kk9BLccz^xA-vSH4qMRyuT z)|8y5XV$ooWy_FhOOb6$ka2Gyztr{Q0yFA)Eh2n{^OulJ^TG5$@0pQ_vX8iEvkJZ+ z*-Ler!FLxK<$q^S4fFP6j9Y;hfBZ;%YuxwZTdjOX`2NYQzXEo(qdCeMESVxa3tu#1 zc{av4gXjRYx$tPgogI0hjJPuIJyR-9peH_x&NpF|Gk6dkTd&D2exy&+@nEEZ?Wix17#kikf2i z-PcmmpFD71{+os*#}fx;=TozF(SMWw0AGs)?94M|9fcs4;`vS+fFn zh+bm7gY0MexS$_j6uv6t0`Fy=`{;+*Qj2e`V%O(127eK9f_-x9KHa82_I&e0eAj)n zn*lyVb`<|U5Avg#@yq!c#DM-W4*eq#PmIRD?8gF7QbEu=&ID?(Mqt~o0b_RbM`reT(G1t#r zuJdDwckAcA`(HIPB+X^&ZJ_umHR0s=kU!& zWlwuHK0@rb!ox*>&~eC|RI`RlfTw*b|JQ{7=U%&m-*<(67x5dpDY<zc4|SD@yW#x&GW1|-9c=Ni_d)g9-BKX=|$9y%A!tG z=HzX0V&6gE(DO}e%C~=H3dJNkY^O(NA0?l&`b_2o<(bSIj~NZS1fJtb0voXMdE2N4 z?g2LExS>4g_wX>Ve)gU8%Wr{Z-dZ?s*tTX>SBE*xZ(D%=uzJ-Hc7{C}s&%lBy;NBj zs*m%R^$D%pR_70WJOO_Ip0PzKd&F-#BPj%vkGX5lR)P(4oM*Nb8&1o)<+jV!KqK?9 zK5n61eEmKZ{1}Gvwk>Q37SVUs{CUG~NW0h$x6x+99>B`EZyAp7+Xjn`=|#l-o#tVQT36PoJ5RxN9{Pf=d- zp$E0g)r?#u*EsH*l|4Frcg+sbFMfzK=^Gz|#2Whf`8R=Qp)=?!rjGnn&U9&0d}LH) z&E1USQ`XwixN$>!$#r`4XG&1+cXI#eE%>_8Zw9u@s5IwiqHBKm<529-FE{W%^z;j^ za*o@2Ir#t*8Go!Y`v|hSAD$~Ys5RO;lC9Lf^)sJUWVw3U^~Fu}E8k+RYt#;m!oOy9 z-cS=YWNmeMLsBo`h+*QO#DPhBf`eS(Wh{r~{k!G;N5EIzoFTbtb@vbTz%Mj-g0x|e zrB-8>?k^wkB{l|+kgH$(P26)z3i_1%Ipl&E)^YVvUIbCDyCKKs_gN>c}|%75Ye<)KI={_5DK%^whWd{;no7{T3;~8-TB&CVwas zx{$FoQ6s_Dm^6g{ejqJ}u~7r22zZidTl^93q;H`Ie3vBd=)5|(D*R67>CBq>@J$!| zvkX33%3fYV?u*bqeq`mkzpBhj&x6j#+g96#n#|;{1P=C_Kt@)`7e&Ud4Huppd&8VS zH~a3jjR~z~568FO!Y7iGNqj2t%{g3cNcLM9OKUbUh3iAL{zm6VitzZ&8xoSgJpaZe zhdyHO5ns(neysEO{eMU4by~G&7TWcAXY>sA7gztQE#>=P-5HK!CT8>uvCPrbsKh5$ ze1jGZkVETR)^+^?VU>}3m{vP}172pp) zoUKOofUr-nne~v%=LC9-NzU5ADKgaIM?EX@>y2?<=(}>4(3l}s_a~!9yC3_m$ZFof zpSD@WzRNpv-i%W6(4X{uOV*eHevreJoF014ju-JmlReGIXFZ=>?#uNQKIbF>d8sc2 zziw)bCaJ_U7c~Tp$Xo*BhdEIl3*a$tqeB|NO~|g4rsqY?kujt5iTohCo5YxufY)Ql z#c%UTqK^#P;2e_k6!Ob5M)7$eCsQYKT&>7sE66cYZ;bVJGtL(55RIIJA?F3C2Ty)j zZLpE?okFMKj3znUPx&)^r#;T4X`dP#ui*oLKkK1f;A@tgi|AvHpEYlZS)y(|X;gb9 zmxcKHzoGXP@6Ey<@qV~3*6$%|_4qT;`((~`(x2!#Gim!Y@j#JrO*X3jdkt29A3A0V z@4Rf7G`J0&FNBZD_?jkn9$_yK96S|%R&>n0oPUc??8jH3d%0Lgyf1m2r(<6{PW#^n zZX0^J*rr}ws%~Zd_V#fu_{(hTR%+n(Qf~=6UXtGaZ)AV8D6^?^b?9EhME_GpV!mnb zW$^T>4)-L<{W81=*kvq*@N_SFmGD;ay>PLnW5}H}y?W+W@=t-2m`*eJJIOq}!5K%r zG2Xj`c{m8}!B4IDFA6^u`a6P-CbTw;94mR9C((!Gf_{y;#fR^SSHZn^N!C{B_ar*{ zd*JYS@^94}CwNt!p@1@VdO~fomJbyovkT199(4{-K}DxZk($H0@2Gs2wnDmAN~Z?g z1P>(G$bk?36Fx8+IzoABQak%|@b|t^LDo&^)c2g$LiU_VdS0GVc&o^`@RqY{LgwrP z+W(km-X{)0)_~Mi5Fdwc1INeU@YCNDm%(}#7>+YJNy=JNw%S;yPh7~bVx zyD~|KPkjA*(VO&|a`0oxZ`+|5Tn=E)tG+ga?q&`S z@yReGc(;e=VV7#v=OT-_ko>01XMlA=o>SwX=yigp)A0UGV5?Uqdl#^m)eu+dho-=D zLJV`FC0t2=8vV&SFm>+s)Z`!HBmKzS$b66P2mW$M>>!*y>+MTCc4U4eSElez=~vEG z<@z>b5Inh+$)o1Rz`UYEpPd`S-^|T%_C=YS2u~V4FT=e1*%k26@ci`6Mkm5fA^Sw% zDfR+`a!OMJTRI=XE(~3{z}JpuY#n?bgq};^UHzur)VswoS2<*#8wI^Zz0iL}^A`B+ z;oM7F%3T(vZqU|L-mCp|C3;O5wUCfoF)LGbzPQcq^>uS1ou@}9}S)psD z-@20=yx=EL72b>5*o$h|iv|nGAqQ^i(Vkb=jp# zK`Ce6-^fD_<(+=^Oc|5e|c=K1RUfu;CNLaCYT9?qE&_@w8X;aK_v$rWJ;>&vT%_1rd532bWnF(=9h#%B*J;9!^7pidzDq6z{7s{gtDsfMP=2dH9XqqK?y{}#H89sVxH>Z9(63X_@mYI9%R-;I@G)5zovcfl zPmz!Cebx6BS??k{JjQ;0x99Hs=kZTqZ_#NBcyV2e_oo@-{Sxa|1Wo26zY5Qaz##1l zE+rO0Tbi{st$U6iTj%hfqLn#?wEYph%*#4r&ZIUdek|-y@Nqlxq67IT5BaFyk+pS> zs`(|4tCjygHYPhVrxs&dmptXx&Lga|L1?&*b>w9o39at0ap#-8?tHQHECGJc#l^!{ zL4QJfvWKgzjcW9(CEOQzVkY?O13yVhk|oWk`QMT~ANx@su(n}8YQ*N1$T$S%LHZDQ zKL&P*x6VX=4Z)JqnK7yz$?GOpJ8t zeKUISNASa!zcALm__J2)70i2&VN$Qe6$$Uv>p!thCH8$AV=pi!`9CGj{3UFDvX4-M zF8||-8#+GCa}IwvkNR4oi>t~@ZscV*{6X{_;cs2_39Z$s%5VegTmI9qoA+7a{lwq( zq5Jn?*Acqzb6_t4ZW|w;f&2e`?XZ1J-iz(f(8#j;u(ABQ~6>fPx|YpFFSUb ze)?+1b|UJ9!V}o;I43IHt<-Ll>qDHAVNZI!SP8yrXP{XqUc{LSa^{JwH$up8TC)jP)8?dSzX$P9%V z{ylt`=W?)NFUwRG6=%L;edQKsuvjrVuH-#wuL$3seb{dt{C*WU^uF*R@4g&(7Arx$ zPaEgT(7Uu%ymoxWzU!6X2EJ1(IdK`!8nbD)Oma{I%cCXshvA3C$;Nca(c8(I&*B;0 z4`zXD(P=~{t6HaYl<{5Q+`%)AwAa0m{`VPAOYBGFog$uf@>?G-|4W^j&AQF`F(+T zIfgIcL7vy~bkRSDC&@Q;Av`q#htPqOd_&v$E_SOzv0Dv}R0>bm;bMM1W9@y44c^SX z2gr>&HYe)lH0-$87T+0DUxrr9UgOpd5`2p zm0Uh!V*w($QOSQfOniIrQ`-InSdKu$8E2FZ_WR-g;(Q>RK)9P4442T_*p@+DG>-%bS-SAV$tn&)83pvufHCTF_4% z-coQW{}uAvwz(we=DbtvJtC_KJ)Qpe%;uvNLwWa4e6oDbr~kIn{`B>s_!{;W7k*jn z)2DjbN3Z0a*_;c!G}RFJ0q@z^?*#6v&~-9zxOVvSyOjh+q=fvYSXo=w=;f|N{u4?&5_|NOYu9EXG-yj zbWKtM$TY*)h4VzVm-XpNaTes_FO!>KsK~IC*7PS)hjSi2ZBxQ+<2#8AJWG!UQZ3$H z_=q@)a{UoFT)=_f?(9%Z5q1t2W5%8oL!7OQPsTP)NUY7$imzW{#mJuVJ=U2$z#pf zrqf>=bA5uju2$!-7Fl=D%m054(SU=wZcxisH*#))4wUF%+-A-U9K5H-I_t8M_-zmU zHY7OfvN?}1PY?Yz+Xa7770CSwxtA(ImpUm?&I9Mm?<XFX36#MnJ(};#k9<#M-Xb_p0O#h5 zL-#FNdkgNv7qb_6pZ>{xh>t1bCQb+YlajoHJczG?j~4Pch+l0RIGT^_7s64mbw*BN zKw}Q12KzsYCt@Gu>>@n#8B+aL(lI3!|=n`>uy< z+v7HIhQ(RNoKDZBU7I-Hx`*$()d_y{I3>93q2miB$1LZ{y6tb5Y7tpAL45QYv3E=d zAF{6Wb#td7z?>ut&V1-t5t#khD|MK2(B=OhfcZ(*fsOMv$z@%G>>%)SMim;v)y9CF zlYWBi{Uhk_6uO2yE4C={dx&MdqtMK6w87roQN z{fh6Gj{84^p05q}n?R0%&zD7YoWl0~3FoEQ(1JGNza>Y6_QnYQ_x>!5g8k-Q;iD2z_mXj<^PPt*d`L&K&1I2%QMMeHpF2k6lx0 zIgh5d0Q81UbdGsnMppoO)4#J<3$4W?pTCa}hVTrbvxCrEgw{m<5gef>hQ|C`V?bmj zxhFXbbvzse|M2Z*{KRgC)?PL!wf}a@_ZMHyINR`Z@k9UioKla2ak&`Rv`d}C)7Q=3 zYG0SWHI+5gPQB#^&?9YJf50_V!%uX`)Xs(I1fLpG&}Gv_@2eFXplu%fjJ-e`kMGeX z_-f{$lm1k*57I7vo5Q(3HQ5E{)y$XRyqmSGuWONWk{Zi({r?5u7Ms`IW&4g2oGRm4 zrUtS&^DUumQ$t30H)_B1_cD z{+kUgWW!6dM0S|x95&*|F7}3R1*2NGnTPVEeR!DUDGQ#SfF6%ul-QKfgY-D?GUliR zcm;2g->@GXrj*+KeZVX_{=n154q`jxe5F>yURU~Tvo&{J(G#WAX6k>Qob~I9bz6NF z`@|O7{Mf=e0*>Rx$(>$c$iN0GHaPkJWX^RR0?T{YF$b9svFo>UZrG0;H^5$$%NVA? zbK8(Ds@Y3=>%3hqU_t7^p?UvirG)o3&D>bzJ68)NZ|F%nhZ$*Yqko%p`leDYV+qU*w zkkQDGEBVik7-GFkkYQqYUe3~m-l6q3itij3_&vT$d*MfC@3oK9>Hlu%MDXxmT~Vzz zbbPHSQo!g$i`-Zb;x84WwcbfOl)o*B*`VDEw-cqNb z6djfM+iz?p9%I`|-G4;Z)mnU~k!xhl*ucAq-0PXKQE|$YsD+}ll#u^JdG@+9d#%bD z4IZ=~9kx*D3Vq`rspC+S5~|}MXN2%dy^cd4GJ@d02U~^cEdAgV-!gqYHKBvlfTu6h zQSx;>NDWjYx<(Xd+|itMkK@dHJoXBWdKT0_rM~Lf`VAA6;Rnz^G{!kXE(+OuvZWr? zQ{gjx_}(ezG7=~K1~O127UO>O6Zh((pzWSets>DEQvQm*kUy0768;5l>?}HN>+rq6 zzq-_L4!2A4SS!>O=zqDbynp0*9pB=oc?6sP0Cb_@^HrsqYW_goCKGF6QbLo}Y(%Gv z6`y;22cdVJUVlA4@zJi={M9_UbQJmQjbLjQY%Fbs33{n+?Gla;TfB2PN;`rDl+C{h-xL>|vqN z;tjPCueWjDd$*te-U>ZW`)gJ&^%2g!mrzlbkV;;tX8Qis`TgGUPrTpoSow;-jCp^_ z`R^0Y1Kh7#y$PfHPpl}5O-($pw5fdKvhOkWF>QS7TpPdNXAH>rzp9-UpO0|>%eP-X ze=MGJ?VQ&JeD@qKk}Aqfsfn+C{ju_mE1oQ$e#MwJR(y3Em+5mEYQx|7DD{56U*7UV z+L&oMHa`}NB5UA?4!nb zhjMz}n~Jx(OVRc&R*}t>%x)W?j)> z%?!hAc<^f#@${cbzwy)ouC8+r86UJ(T$UDs_cGw!z9`3Eyte*Lqx*%fcNp(Oyc^}c zv+E(=i)OqJW&VftU8B+U&_(}Yy+?_+$e885S7MF+Wj%N1=d4<`>K)J0RU7cxeA|<~ ziaI}m;xynpjGqiL{QE^}=)8q^oF&xs6`!-c<8IoucigyLdz-O~T-h*p@3@8hj@s32 zxRFmZ-{muH>+MC~%hVO62hENSG;S2q|lSckF3*QG;_pKsE(BCq}8GOxP@jthq zIQaS!_`ux9T=TiUI=98LbCDs)`Z-kJsJtNZYV6$^vqSmVnwzr^IT2p;Yq1H&=K;D%TJ zufecA1cTJVk@?8B$NiOEiy3zn<6gqJHP+kzTAz&uJrADD=l&;)@vBwJ_djU} z?%z@zY~Hs~a_=RQd#^l}&vTM5eu+7K|J)`^A-VSK-F|Z7#8A(m#X18yME2_ExBIO} zw$Jb$R3Eb*oH-@&xf|h)LiHhxs>u@a6$$0P8-MS( z)&|k{*%#&fqMG;nkmc-S>YHb==bl+p!XAACd-e6~+1IgmUyG0VJmi~Dz3ZJ1aCU%A zu(5&~(Q6Wt#pg<^Y*<|S?T5=dUu`P4>}@Icno2Co`5mLiSTfKDYZ_au7RD&DOi3fT z1bIh!*0)$2PX3e#5h<;evd744z4B zU+Xq>Ecwn^RqIRmBu4&=8}*-s@1eXwx-SUdC4NnO^3L~rR*|blUWr16NkC>v?2vgL zjkEsmkw->RdnxGWACR@=cISK1Mdl;h`jM?A51ah)ptCN+wJ2Z_NyNUo9zs=D<(Vt04JYj$yO7xzvQvwaf3is$~l-oAT* zvrGCWX3KIA+2_dIu`&)Vv8`haM<BI4B564!9Q<+SV(e`JHVx$b3GP&ppV>ZJ$IyC5l4>BgYluUnKF$e5pVyAImA9`;yFxo{u-{D1n8?|I`0O_&j&H4|c3R}z;M`e2 z%6YU2{&ZYM&H+B=9N<&kw*Tewb~0;L@^0RXjNMiGB3Jd zjZbPvB(!a5dNgL(Lfn{d#w4-fCNy6@DM&6DzyI-=;Wo#lV8*vNM`Auc#`i;fE#;hB za4E4FkCv}5-)e~S$K`A&-^^9;gCCOPATsR?&s|*-lXy3>;X(2=Py@5#ZvL-QCwN`6 z{Z>D1KUbP@#gQUpcG~CNMJKVfw0V@;0rvF<>Q*3kZz}$+qU(eMtMJhc-P>K9tm*gO z@&nm*RuKx=nnPXHJrDV;BC)c9=%4A^w@xd68pW>(P%!^5l2w`_ZlV%nUbu`;MS*VR0}B98V!6#*YVHX79k&OY&^eng=lbaUVfc1(KRTS~ zK@Lwy4~pmkW$O|unv2LO!n59@bMq&(BQ$;jT5I9GX`ba>Ezp|iK^wu@&UKTi|91ZK zE#T@do*he<-PD8|O&ij7WAV6P4>mqc`AK=Zs#&ykU&F^)nca_0+Qxa1?6VsB&U}d- zS7XdkKXk5kV%PW0xSe^mcu!tM3^uTBq`!LbvHV%Tbviz{Uf^q?{Tg`D!pdX$oa+`}uh&YcUKV{u=H^r8y787f zf^zmf?Q&vNz?mQXHi2()r|7lB+@4S^v1z~|@N4*@#kg#KA33~RqW9LliVu}thlzYk zGn=f_fq#W(Mb|EHJA-$2p_@wHVjnme{a%x5vYLXIEy&as5A^5WZc4vB%as1ZCliA$TM~o5@?vTLMcH+n{jQk2 zK@H_sU)-}r@Z^y-v9c5yWU}A4(lqS5pYJN)@8|pK@b}fGVWCqWIBW)o9`I0#Pn})Y zQJs(5!JU1bwPJ0F^2SqdI|3~(yT54^4n=<#I#pTM!)B0ERlDF z7MjYZ1UoLF-ne?(oYDQ)(1x64WkI(dc$&yuk}ulFJ2Jle7++KQ9mISoiM}5vvewe_ z#0S0lJJDw(H-h_>vS0=|8Z`0*$X-Ye0BfnTzT6bA+oEcm=}M)XgGb&G+iC}Sxf;GX zCD^$14*Hnb`K?f10n`AWzw$Db`-o;yZ}L!JY^$%Uld2hw5w6r_>6c^u9e(*(rD`pEumVyP^6C z4Tq(j(yK$cO6>NcVaH_6-@^L#1C#8FE%+#H1fJ>mFFgj19|gx7q00}z@ovvOU80|# z0>=t9Y!lX|RdD7-9ODG<8|1a$1YR@Jw3Q9Sq)9%2LVT_i_A*3BYlGPtOjw(czKAhj zZM5Z80^3@}mdA66oNFX+qA%$uj@o_Ch4=FbX6NIF*v|!qT67M1*37fgcDz~oji=vD zdcO_ObfLkpG9jvAvGj4u81I-#TQ7KOyJiBjg8rY4-N3naVnt4AroWcleyu!WecQOfdfjD~bVKI0a^Ur@-~EWScK5@2&A&sO z+0VS(l8!%A?aZG97H2cgn@06DL76~~b+vYY{+zvc=P#TwF!Fd zBlhv^{_vC~VETK{Tx1Dsxj&&*XmE5p&G5+*_+}q_`q}n=YYIHZvynZ1?A|`uJyI#L z)}!0$`>E0)XNYIp__aCkj*OB0klbo6kvqJ|I_JGJdJJjiz)Jf3Bk#yFXWO~Q99YhM zS-Xe$Pw?VB9^a}&4dpcs5bO6|5x7e0{MBJoE7?ls2yc*QHrZH@$T&?uDweaIVd}H9 zFPprL%#qmm|9BsEX5{cj{+H+V9P+#)_{UZs6h3AmPFdi#UEF3h*|BG-N#1*@Yx6D6 zEX20GjO*08ug=q%u`Mx3Eo0qB%FKCX#OEgUCMAF^=ka#-J@&*!x*h)o?9SLza@p^^ z?05bLbGI&Mzw@%+#j+o^NBb=J)mSF6rrgZqYH~c}@##TMxQ%O{!ODJ_=A!KtnY=VrNyLka ztaGl94&lM@zz+DY1^(;eEF%{l-JY0_J%ilBpG61T*&npJ)Wml7vUYf|2LJ7V|CUCZ z9G%ee4rtkKx1tJvZvRjgpY-gV3o*jeiEH#hF9Yk7E|F7tSaS1)A0&Sk$A88L2*?jmx( z)ZQ8Wp6u6=cSs%=Y{nmq{bkm2-mjNE*|R*~gWM-FA33dp8ZsZTIx9<}n7ei^BAWNu_XFH&Y^kvs1wx|Y~arh@mn;)LW+ZvA)cHY#=sgMPM>{7$jx(ZM$2 zG{w)a30^8SXj@lKNtAuQ=E0(2&*~!bZ<3=J+o%!!Rm-B*5i$(2L6Gwl|BM*h=l0Ehz~~Vw;t7bMW(0YO2G>UPU6kWDhXP`1SnN z;AR7G?$7?MwUhA*oSnc}N=`D7_t@wEF0SSQpV&GDzWc)PwQ;s8{dTN|_tUS;$=H5# z=vV9%o%Ahd7v?d2jmAd=7dHBmclyHpdB*f-V=eK&-k+Os*2p}o-@hF*zq0OZj7N)3aR|uy$P*G_ztr5d28uH^mY&Z$vZOFvX=>cyBV*WxkiRs_MhrXQ3C%_YUbTaa~Z?5}S2*PgSrYnMEcj4md7>i7SorGK1& z%)fS1d0+QWSMDF*R&H9mZDr3?Exl>NkIL;sq4Rnlz9Rxp4KhD_U9CO`_#8}Rk9Yw1 z+{cT9tNwznenW@{*orhq+B{{E$R}gx=V^Ui{K0D0d1RU^m$BDShxp5Q5- z>7l;UCQkfHzT2PuM{9`hPI8$q`D(s9c3r-EZ;0z8ZtL@be0c} zUXu|%XwLb)&UgQjb$EcjpmTj4+SQ3VAN0_l(4xD%K$m%hCPb!h)crX^G!&wvsGJcQI4d%;)}mN*(a0d+MR_>PQXqB9Vj2Bxf^tng^Z+*sDq}*)P7q zUn>8MU5Canj@;${5^OR|a;*kOvNm)WZr1{~I`=BUiBGvL&mEnXS2F&lyl=?ZfnCOs z1w9Kb|7Z5N*6(sp_~!%6??_m7YfaV8@{qCobA!%5e;?){6aQ(s;0ShF~eH8`>J7VKdmAH~5#xFZx)oVTOn*;?jlaPAPm{k;%Q^?2#6bQYyT({JE(MMr9gY-T))ks8pija3MDSi{oakKu z{{A(I{Jh}wyWqPGd=HXCqLk-sCe49NlK40<*r;dRk1jo{sGzss=p4SPsKD2 zzLI!^(eykWKWw3AEBvL9zOPoTm!GAFIidM`>I!5L;vqy28;jr2TK*lnb{N0N179Tv zjm6usT4WLAD9QV_Hca=6GnB-a!?d$FXYyIv8LNv)-%UBc3)4=DtL*Q{B4hjBN8ds_ z(zozGS#y2FQk-h25*Z9~zpQTS(<6>*O5H3aTmv#A% z=pAF*ew4Q5-TjQot|p(AcO-`g@o1-x{g>26SJ=Wr_JYV7YT!Mg>lwhLVLNw=?VK}+ zh>Z02>^PDy1q14AYJE%`YxBToR;;k1FFo@8v}u5k5Q* zo)_W6?PK{cvCO(11v{Cp<2#BvBKD6Qc-mL$Uc9U8-n=V0u_HK);B-2;6xrjg2Qw<} zD_3+_g$KShE=AXMWe;~xEz;|tiM}N?+`<0sVBW-zA-0zD>=>h94euFmjMnuN=&z6Y z7QO5KY{f2iePBB88I5P)=eiu+B>L!7#XeRSvnUJo+!^>HR%(@;zwLfJXht?{Mm97H zJ@S$9nxhs5bBU9+#ODWyRbLT9JVh+N%@*{vxSNWD6VTlb&b6dlVipF`nJpG=VQ@nH z!r-84vD}Cp9lz=N;X~^ld?Nn941dfxr7qS$9NQ1BA8y${!#|z2i1nzOPJ0_Udl-mr zcErTj6~yi-9^S?OJE?mh-*2^zp*7*n)ciM=n{2|sji*hzWp}8nco(Ei!JY~sBDq^4_pIa#cQ3qtxC0*+(<}DgO!Smc+lYDO;B{j=cJs_)c@7xT_pi>6Jg@Nl zdC$_$7TP(w?@I1VA7NOy-%r1p-RIwr1uuI0vd8Io;VhXwvWGQc|D(IB1DuE)9l?v0 zxPB6V>F}N#Z>Yw(8(fQQ?^%c~KqYT3YggbjF<0lt6n>U5`B)3`|2bS^E3|js9P4dNWIklPA)GCfduQ=%#b4&j?djFT;0q2!E)*Q}kRxg|JrqC>fBbA@ z_E)tb^p33AX=44GU(NQrp5+{uTtYEDS^kz69uHQVV*C=Lz7w8h`S>>Ch>5Mo_p2J+ z`4}|C!t;gm^C*1Abo)D-Zua4+IrXIWBy!Xf| z3up1u__U!PZp4-@ZS3myqi>qMkK$j@rdqtO^1F&_=b;vB4egqb9>LdkZ=Icw_^{;i zp3IpSyS)6K#(Q#B-Nf%IuA;vPj9%t90;k04Xwk(%@HGqBf42r~8nCga>+p*GhkVzr z`TWAOyR#r|DzXyjkEuW4&eU&FH#>_g2u4FI6F@H&dHLJ-0Ds8TkkZcu(-&q|XDHP7dMY5T1V%{R!+cU!Nmq{3HH`K79QmzJ?xnm+V3H_yLkIs#1Im z?~7Fyl@;ao`klG{n47k zkDsEv@8%t8W1Gkh>=le{P-5>V8cU|560KW^D@9&p3Vj z%;xGxLpdpsQ_jyZvO)Y4qp%l6V=o$qy=Xl4A`N?y342i}pQOZqeHR}^$!GFWjxy_G z_A@Vjivz^x3=p5=i&GZ$QLkIWr_fFA+E1TWJACl(rUxfioIs}$+nF!H$J#XO`PS>h zK8>vZntoy#C*#++2ERsMy|H3Tj*@U6`Dq4;t8)|2-G?ulr}MU;`xmzbrJblr&ecBa zwX6NiU;mEcj$C5Gd)XUvr4Eu@(b?-+D|^vvWDaHi#Xq(kIi{^VH1E=$9Xrq({3zGr zL%ACN$@}n~tmn+WkC@dG{9KLLZ#;|V51YxAso|TJLEn9hMN4S5M#e4U83_Am4icAy z|5J??_R;i&eKg&)kIgQ@O&>PZ;&+GpshOh8ssBY<@Bz-m>o^m4e{q}mugwyhN(TOF zS;)6bo8yq%l;j?n@0rAMGUmO+E*(pf{6(Q$j(PtYt=Ck}*re8qFQ0pTbg;`fG)H_8 zez<&GtA4(b3Jop7#tB_W`)}+pwupU&%YhUZdXkDtt;Zo=|o8+>9qfo#>Um+>A?d9g^qg{I+(+ z1(wm)1NdFm;dd$TD$|t8+fvYt@qO%L9_7scnvs#sd!bwDYw@4rTaQlX|HZe_CUe19 zdwxa@oiJ{M$GVqZug4o_(w}>&?BD1d&-$z$d>U%-55PV~y-S~W2YF_s{jQgyTQlGV z%1PoLzIGeuW7iHtW2gFQTX<{8Co`$@{XfRHx_=z%SG#IMxoPf(a^n5ApeGHvzla%L z!kEbm8(hkG3l+`#8F8oGjK60+d1&~(L~zl$IEa2etG?69cv3qbJYZ_A##gMnxMWCv zZ|1j*v+rx;T0dvKZJVmh{vGRG{yY7}$Y$b-y;4`f9iGcR#;EH*`uZn6&=~Rs)5i`R zP0)wfJTe}RsV!w6$+&J@t?gOp7g=yy#t^=#Nu77U6WuCwFZ5o7ydd{tp?Q7$UmMD+C+4}4{TaUta+X4`%)Q{y zz5Y6>Cyl)s8JK=l{6$1Yy=g^4>)y%Ib}Df4`|UHEo&2uOP7a7(B<&oLcD`9W+;?W= z?0dz$r=-hsiGk+Sajo*4=u7SRmAuLGLi3-KuVW4QI$r0utP6cjgngQK^Zw_^(mnjA z-~Z(V;tt9Cj9sIH|Bwk1d!XYrv!5*AI_KvreYS8#(Y+F>Av6}8I#jK7U( zLXXvUOiOq3+szvAum*&#(SIt1Khz;FO8YJQjIB;`(z@~UFnud6y@r0g{8utvOBea6 z4ElZG6RXanB(|J6uXK;Yo*(8{=8kBcc5y@?{+YE2uB5JW`U_jFqha1bPJV$G`FfGW zrZb13H4A+e@m*jM`S(Nk)?Q_3j{Cs{!=9z<#is7xkA2B>DkERkDgDpZZrM;?4W96O zJRJ9@FE$I!aet3CMQ9;JXVozwI;(?TBYa{zuU zb0mB~Xip$fEEyJtn|z zKVa=Q+8t%&IdK&^$zNhhpTEXE)YNVFm#(o5^&2g&(jt+$h;yMfu*yCtbS*lR4SVz& zaNJW|LR?3hzLsS^KL;nejRG3iVvERgkla~9eqcAWqv3P&w?0p z5?8IAa1N*9JEeWPo*H4qyd#rX6_ejNK2#e=#;<*p7OXZp&s0BVIHNkR4}O0#a}%Pg zS#HLyz_*^?9o?E~g(nCeV#v7(pYg!UWFK*XhbsEh^LgTPmeuX>Ym=O3`JArrvQFi^ zuL(KAeame@-k+tPlL-H2FK=XyC1&db`Z<~!iUV_h0$h(3pQ$#6*1fESyMXP^@Vakf zFZncsx|y71Ym8gF_$^}nnP1kzcUcRcm@^V5vrZ=QpN+G`TN&$YKBlOs39|0oz_9dZ zw+21%3OltL3)LuZ!*uvP>rdeE{HNiJhM%eXk!YPSSOhQd0S|mZ=#rqGO5J~FV{y<9 zj=hiE9;{;jaJ=%Awe;fs)(f3!Di5{m=a~+C4wmD;hEJBi2LH8zsl8UIlT(8q8@4xp z4SsAjoNpo%`aPU)dY-!#c~1-J-@ptFCwRbvz)=LO_29~lKU)fZYwqLohnMJnXi571 zBJnPx*RHI~lFvsr=i@&ZdF~YZtef*cjddvhKf?c_AL-+zpBnt|O7K0%n4rugA7N#N zg)6m?gdY0Bev|O}H;VDSybKy&0=$CTW#CKZOMDdHg^yJH;fu{eQ`&Xp#UGzPXEYyP z!QQ6p?2OILnek8H|6+eQPCgrTogrP|+6tU7Ic+Wme|Yg!wLE!)?__TUq2{XB^9U?p166^~_Hr{^%xXQ0#@0uk1H+ zWly+|J>l1aV_*{aY~#*{t1OFnf{ju7IYteFOm5W`-Au!+3^wA=VYB$A@KF@P{@0&i2U(J@ty=drfQQH86&(Oj-|tg&65+8 z=#zMf#JOBY_j|UT%i{HR9;BVf`$CsSozC!GX0D=5lZn|%?ri)07n{Wn8Cgde;dLZ? zhtTPs&qg*!+K{ync{j2q9^-vC;}99Z4W38Se}vDtpr;6}k6sIZm=anGA9GCsml0c? z@YxyRF^-;xL7rI-ep`saX={vIsqf?6N`lyj-5$*${N**~UY`SSPi}gLm-V0#10iR& zWvmBH&T_$he~!|j}77vdKt*I8UwhvqB?T+0|F z7WT{H;QDilS43ibnZL{Lgg-1vzb@!DI%RJ3c!hVlC+pBzvU90r{7>9Q9|&HDD@TjgDI>--Z7BIq#{uPO1GdG%mWsT-r4uw_e57 z&hLWowP~C|x94HU+N5<)4`}}-82G`rhnW1}zw3Rar8?5RF8T79d zNMDO8*Dua`P^~bGOH7Qvve;sH(2#U${32JOw#j=La8xM?-uRz1E+)p-6?Zfv|2<-D zGWM9gS^ksAXK{P8dME6? zwD$wfU0>m2AO<-Va-SIoUv$S-Vg z+w!Ha^_34Tp0`%5xF{+yF)ROC%SCGqNyo<*yXv(@?-Jl>BcEv2GaDAiGfyAz-em^W zvMHRO7(MYU4!-(K#HiPXkhoLf{q;BDOOMUi61I)@Z%}_`ir@6tfqxtSvs`8G;hhKE zLmQC^W~kGekEpQ&5?30Ft-fuF^RJSNl6ZBIcWXCxZ``tTUG^ zxyPR)2V*R8(=V&3Ue0bRTh3HJv9o4*{!aFWod;IrZ=}BI%jhkcB1cbA7R3-7pj{09 zdEP?2oA3kS%@4uH_mekUWQ<(exi3x`zR#cx-=C-i?>8&K<+I$msDDSI2nTZWJ2G5YOe#WQGnCcy%odeW~XlJaRSFZFAqK9~p_j(PaB2Xv0%DS)awJ@)_ z$^89!MDkqXDA%XlbUbC)Q0;U8>!Tumb!3%P%;uD zwn6Qx2^E?eS8k$ydw(7|NY(KPNyyyw29wtg9)v#7D~2*O@=TK>{bD!gxa7@()`zDu z-qY;0-!-TSePZ7tp5i#~_!28E{hy!9i6k+ER%9~CkB|O4R6?CJ8FM0SeZ=@bq&>+W zd6Y9`_P#wIeTNtt^0!Mr8a9)@eDvj_E6&5IyeG2HQJ$IN3Be@Kwv(&78azFRJ|pc` zL-UFJFVD*vW+UILnGdRA?)i*7x0N&FvE4V6k9=XY*C#2p##z*~GNwD)i?8xaUQ7He z9DU>p{OCKHotXKR-!-;b2grxrcO&C{$)LyUn(Ebxei!-;xp@1q6Sv1Hhx&FHIufY0 zJH)=J8B<*1<8+L5?KV#G?z#+H6*eQ+rF#91@_ur`NzEA-G_^KsvIDx*X{wF$&=oT{ zpTdqZpKBk_)suhS{WIT|bZpOV+HEyz7Lh3i*oTgi8!l`IeWUoJq`)l3DloL~o8>oC zv(lud^;W6c;E%(4dNVZcV(+xWp9Uuq+X8>XPq)|Nb>|PllPvVHoVDA+cQ3hVMMe~z zADJj1?R2B36aU+3!v2jv&*SyQ_Or0{kxNcf(|diFAaep|GxWqe-fwXB!r8ueI_HeT z+1J{|?mC}!Dm7Dl_^P%$wyk80-ad4Nqs-mX2VdBFj689vjAJJBl6h)m&r#;DZ)yW; zXwKHqIy11<jzra8-G(syUfn)CsWq9w2kv$(yrPgLP=N=D==>d*Gk6EKQ8_2si@mUKp5%2_=3EUQZ!;!&kAl+=?^QbV z`6Kr(^4sp>sFc93>1P1AO2A{kG0Blpbj4YCzYeU>>nZn+Ygda5k_%jVjtFEfyYfry z3?{GG`rqT6Kwz`Mi=pdIlV|2uWOd@(O`XFxNNv9uYNg^U`zB|Y%!i&;nDvz@H*-q16Pyrs+Ym#cdhw@|;Ko^}R}EsJB6UnN$lFYuTm|j} z^m&4_oD-bo$T{E%&NP7i)Jev-k86vGy4I&BoZFyan8!&iw`CKiQQ+js|2! zd2Rylo?M^=OA?%2amcPc#7ei3?|3)=Zz4AJGM;hsu@H-THb$BFsZfmalnP6n?B^D* zpLj6#ZsOJOp)2K#7+(p>_LUz{&6YCStXiSe&SNf0P0DN%zwa(PmLDj)-92>j614+< zbUv+U69ZR*$0P8gC9JEB*hqD_Cl$T#%Y|CrOOkY$p9kj0h~vGK|56#( z!Glp<68Bq1+^^_#A0U^PWxc_r4_ux^UplW3aQPSB>%l%Pm9w7V3t0OPv;ZG(y zrJQ*RZ0wD-Qg2H3l^E_xZ4U8=f%m(}u_gN1?&5~jfZi|mhXbLzqacfw(-%I20XO{frS)oneQA)~ z;Oz5Boi2fctG?fpV&gH{^WP4^SVK$ z&a28i^mFs*%ZG(;L zP1NbWo4qZJpZ&y@GdIKdM7avH;1PGh8;CL64}2zQ$^qTh+^++?-!?&Po5=(asG5M7ptL72Au>v}6;A=JJrIc1s%@s{^aX15fJhW+ z6)!ymuL%J{jv$PellS}VnF%4_r9H<#Ja7NlpFOkp+UxSHXRY;H&uz)x=!xZnRpWsS zy~$k2epvE)bRPTnfyhuMBJYBC<=nfy&~eW#%G1d0LTTX9hVLV%=f7aI{xRt0Xs4sv zbzj(zIHlo7tmnd0(tZQBw)?2}7Pr%J9vipXFmY=lyn=4gV9ZL|MM0RuR+q^5>Bs!SAWGf zH8-ORAfBkCwLp{He`8;t3LUP{E!(>gI`r(Lh03x6g&O96rCg^An8DE%#3g%?x>u;K zDv7Nk=lRU$IrchL74)UN^ToQVL^dF2{OlAPIG*R)!@2>X0dgn5k$fWkuJx~tv|g)P z)y)s&A^omBAI@|7T1y}63YzTUewX*&`q6E*wy2bi0rzlrhsCh_faXQ68xPTQVl zZCrrN0ot!mX8mTK^dR%f@Rpr7#P4|nAKZt+_(GXzW-Y7*567X$mASs|NxzjCS)OV& z-dFe7`US|A%@thh*$d1jAL6&1ZzK4x${1-odz!j_e7E8XqVSS5z`P_*s=etS??#fqkJd~A%%t+`u zDOxHa{BC$V1|$#e0ylwjRs zq+yRN>ElUXjm}kKca;xwXYS0?^cl<7Tg1K!eV@J7>SlfKS$E<2y;l)`E8N!eT05aF z@}-A-LRaEl_~@Un+BY`(#un)t>~tTpkw-awW5bV*wJ%&YeIs;}{iN5e1b@%o z;cxaq&ax%MkmH-^yt(g6SNJ>t_S8FPU>8T)1Ee*PcGe-?ye;TC-@&$_7HTcsZye2+Z!Ygk0qWorj;7LOaCx@SRf~ACi{P2o4CM3-d6fNGZ z4c~mBXF2J_u3E-^Iea5LVt~JE$a`78GqKUH~?M)K%JlppO#tlXeSh$a>n#Hx9;!CNJ$d z)(?o>$Dm|ioNqXtTjJG{XJ%x4$FcT^>~rzzVUrFfa85>#y3E${K4|UzO$BLRq&|{X z)=sI1^jGh`dSPI=uS}5`3DN#?qXY3XR&$xlBo>0u>IL@S7spcw$NH7DzTRnvUq0YxIiu5((_8(o;QeL{E+f# zDdsN9L?wy1#>lF36>N^4sIk7Sw|G)D*>GTiU9p%|t^oOuAdk1bH=nn&56dTyd1;3p zvi}!(Bq>GqEB9E_IO{4EyCo%ijg>Qf=V8;9oF1dhv&YPH6Wb`rGs}}z<0_k(GnY}% zqpGES;|AivowYiots;;M||qUw|EGuUrccY;ykxaX7kMk1eS3d^^#SS1- z%IDbueyf~Yq?K=XY5J@6SN>B`X6yFllE+rw+upA&TDM;QqeI6Au2hT5Dl*c`*G+Jm z%&A&k;JGY#jrr%iTh?uGncyim>%N8ZKM6V4Z3-&*GAC zK9+n8-o+ZWvoWTKf1=^LLe_o*HU#Tvb2atzvi3`Q`hDKMYcuJpuuT^0WDq>vU!y-Z zV>a3^>*xV~OB&;V2o|-wD&^cA!2#GgEZd9h9sfsXDzsY2Z#j=I9AEbGZGVflYqX_r z+u28nzmTlarFScV$*SQ%@MiEja=!bymnO4c#Xdxd>@Du*jQA4PC8@OD?I@ zctq|$fVT9r)PFDO@5T<}2z{`}tUN6?V}`N#wpAO3DC*6_4gYcO6;=J=FBHSV;k8%J zLdG2~!xUS)AdmO*Tyq8tfDwhOgeD&9!>yfse1` z=_Rikcv$FA3)VGb&nEj81N1Kt9bgReQ8spLs`6Q_`^QD8Wf|vd|HWl9B(Y~&ruxwFgaLu!MpW5)R%f#1CjY(OuaLt;l2k|?FXW|Pf{Osahxim9) z$BN8ghMcX1ZAZq)@Hi?XpA62{X_aTAXWArB?+-JBnUh?>a$japc%^JnInT=ZUmmQP zp8sj-v${_!kLql`lJcPMQN7K(lQ^F_VD@M8&wHoq&zGUwsa@r&S~nFN#_7l`{ls$A z=Q-C^!2;|G;HYfP7$4?kV{ycV-Y>=S#R zn{vq*p1>G}{&M!JoNXZUpI#m0FJq2`U+90aPae>4H*z15d1gsJ!++s0-C^zR#9({-Pp=^NX<)tx)&8doIo^@*|33WxNMa4} z4p~_3UGRWKnfy+#`~u|V>W}_qH1lqf^0dqc>zS|3$OG$=?kn1`W>e8P=Ah<<;{q?u ztZBN}l;}UL=2cl#lYheF*VvKlojPu}W@V9A{%jRNEN|$*lW#Mqs zs63m@StI0G%FX=Gx8?JDB$sK_blVK>qqy=@77f2A<@-FF(f!OcYNqX4-mT@iqpyp`xV*#HN1~vhn~2ln(-*|-eM^` zA6zKo@n$73QSNsufeGBJmt#YL%u{3{)ySLNuOb6szUe9Bzqb8j!C4K_eTgl@wZj9J zu7=+{tl?SgeXK zOZwhEcVf37*sTSh-+QTR4gDe*WE<<_cGfl>`UHNu+%w6Q;ic4{&y=qU1Dk==!%gMq%jlCd@)5ZsczXWj^GhoB<;h+%9RFHm8s+S>B<)v{`yoq{xNsuB z#6R+Mep7@NtTS!U^ly=4YVvi;pM@SjEEB`NS!80+%nkiSp4TmhMLB*()QkIeV0k=8y8M%BVUovdZ3eyI@)@q?Uv6nUrl8! zl!7$`N0w1e={RtF&u8RU$~>6U^BLd$&3%~7nh8H=P)<6$ak=)4!H%+Sup01vb|bPm zWPEBo@zgKSVJz<(2O9%Bc_+G-Inc!BU81#fj@Hg*tBr5#yk5QypKB9s>vo=%UBlcf z`=HT&YgxXWi+Aa~li>pY?E6WP7ynsfnfJWyFV_Vdu-(Z>Hw`iD1vg_il6p{CX2ge1 z_GYr*TEiG)PxXX*uRS0!ISgku7G;!eZ_@Tzdo2O?SbS5!Vz$*gOz4#Y<{xb&j+)s& ztMjO1%<8xyVjr=~QfIEiX0+}zbza@-I`;7mMubar;G6^}71$k03a;1Lgfcx)|xg49W)7|Iy-JygGA8#m{D!wuk))!qR z_kH<+L3`Ce+i`cO^?f&f31IpAm0;UFrX3ma{9dI5Td%q{*!nL@FhB7IZ|kq>f`g4C zH{bLW=PyRue{7K^@0j0eauZ8lNtS)s71$t(&uxM1U+|N1^>qdLKPBZ>V(O93z`9!S zRKAn>Nn1zCV&V_rEX6xE7A-`6E6+1|Rys(Td+T-~ZJQw}3p>kuQM&&R;6L+lX6i6vZb>{T=9-hV?Huj=75pRZwMXbt^AYxW z&_7Tx_F%MV2P=F=N^Z5xZ$ z^yrHh$*UB;NoP+K!52m6cqVi@L%AZKXra#*(#NvTJ{@_teF|+r?hs>et(0~sih-lw z(G|%WxL+SI5To9RJhp8!dtz+u3KOx(LALx6_4y%r8r7d%)Xo;llD5d&K9w>~B<2uUqff{tfhb6K7m!~0rDVSRm^nO$p$^xT#2Up)`W8KG8UvusZ{50SpFEzIz@)5o&s^!-Aa?4cjB{u#{u3rCK`)iz*n(fTH~OX%1N zRu`BhUV~w^TKs-Y*d|AOx?7=NlxJ5{&ppUiGH$={tdeIk$20CcSCC%HYOtx3!3L)d zfr-SQuStGQ@`InF`S|$8fXx0RX}h3TAvCmwVgnh}w;!~N(oM?ee7j}Bzk7bC&QEnJ z%cP&Q-_wu*@oXRcDE2*u9(5`X=Wp)L+k0u=(f;15ruccDkQT#g-5o$lI@0a%%dxLV2rP z!Tft%!Rgp$$i92yFO*F#_+jhJ^V$9Tf?sZAZxUY-?FRh(j0!S& z)pZ~CG0VjUFz$-H9oQTk0EZvQLJlqXX;urdgAe9}^7dx1k^gG^(*4y-o?}bjgA5?_1)?-?z}wnEsr#nd_I+l;RP{ z!8ki>$}QL;-<;qI{aA5T;cw6`HkNlAl)%l%7k-JXf2|VlevES_*WQ^}{213Ql=%*^ z4Bv)!kKsEp10RRS(*9(nJoDnK6x%}96P0(@pm)yu8tR?@HPst?$ecA_Lw)c5n(7ON zOO|=}9mf8`uc6*Ie@*ok{*X08Y`MQl^j>3Da*k2&yPUy1cR z&sngPr;WvYCAC<5v%Xn%R+7JIydh)pX5_2siq4$wPWO*6xSYDmj3#t&RmZ9#=g$&b zaPJ{>S5M8X^8RjS6)_Ytz5hD1s(km%Ds+yS$aFIcX1lWA*07qap?w=}o1$#`fOTBf zk^RJj^bRpNy{q~D_&?dvqMX2`k{-sji@=IiUVb!FB}7q;qg{;}S&%0_TX}9GpSQKoo*uSKQWAMyDS9u;>JqcOxia*)|=P0Z7e%5%fi{Qc*aCO1anqb>wtY12# zpL3b~*IK}Z$P>lhmUwOxTfqT_iR+8blJ;BhVLSPimH)``JN~!+=TS%7-A5gw-^Txd z7%pIu-_&w0hq>YW0A*9Vv@K0Bx9XIt)?{=HoJ)*Mz4MIT&>-@4(SJxee^34`k^Eb9 zic{=>x8y6GdFbtnZN3-(nCuC~cKFQ1P@IGlEIN03qUJ^L}I^sSF zt%BeZ=-`RZFuA^kAgxuwVWQHuCteZ!s&&Mj|_Xrc`CKN5$6& ze<}~-uzjS$J|y06Qxp7c=zt2;A325$v2BPe#73)shL%>{Y>PEemd+191#>N2 z>0Ea9ThxoV#{N{BBb4goD&)G!5qf}c+wi{uOFP@}y($UmHJM6VYUJ5So{60e*l;R) zwMp1+&gB~$^M(zXiw(XuQAf9G@n;QI4$VeBw3|G(kv?mbawwj6jnJc!`cFt#4$bx6 z>agK=GY6g*TIo&oMe|g>Khwni%#`F$;+ffG_WO9&MY*T3i#^IcY2ZfA2Mym-i8;%< zIUm_g)p)KG)0E^T+;^*qnm^7_^i&6*+`w7UV|@RL{6_YxseOp!1-&G%ZP+S(hqj2X zgqC)1B<+)RR(CA154qNnr;mFH=?~JDYGh#&W2AbU%~wpEzXZP3o=JQ}dBz-PSoR!VXW)?Mq;L!)Dnjk9?MsaW+OgH21|)! z5WnAHA0Xpq06Zx6Bxm^j@62&xxB1R=dB>W;^S2pSdwFh9o+!eu!WWZNu(D;7?Ei+C zjY>bWsd&Im-jMbn)p*wgu0AAEV{Ob`6xfnPlEiwAy@abPM|HoJ|C!)ZyA z3~LMx1@KM*yi)-06u>(lP_B$284of(WDG^e2zy#BZqui&eTlW8^zVX>%BimTtDw&c z=urq!1c&2lYSo?=!Ax8@c7%RA@Hs~KC_X%)T7|Hd{>%(_P#}q zdz5(3E#S8;N}O*k_-*l?4OS(sW}v%qpXDchOXArdtgI z{X^A${sHi1YuRm;WqMamwcb$P!u(aMzpzgBmvxePP1eHj8Y%VxgBr?_64X+_!}FPA})DOkrL!G~iR!zbCHUJu%##u1_7It{7*iD~_u_*A-l2 zxF&O5?F_Xd|1nSpsgsddno?GOp=WPzrYcZq)dE|KMF zm>jv@RXo%9WvDXwQ~FY5p~4?$o>e9q;hpo$VL#8VFWP_QVe5WfX|{3I9ZhcVz!db6 zyWxfD-MlcU0UdAA2guY?l>xrDf30eKD0~s+gEnQb-*jjHA(?B2H)X1+O_^)Bn9~LK ztl(Tx=cDj}^f`P`+o(P*=gQ!(_sW22^+iL$IxE37i8JeqlE6NeVeBoahi%jmYg@n4 z?Bj~nUx>YCuB>P9pn zYcY+DzWWc=T4f%Se5+~mUg{xjU&FnGyNi1(dH0*BJ#cVOlwydi?k{O{6?qC$vALo zcw(B%DKRQ~;t4f^C7y<_E{7!^7a4H`OKdGdwoJ^IQtnYaA^g_?c0G>lvL~K6agXvF z-|9GU@UZh9bvRclmlEof7yydp0-o6B+)=P?D%Uiw+#S)mN$|vJFezt01X75J@l3uN zc=#S&U;#Ybk*5Zdu-UM4<$@KSCDxA2VNKwIk?{06^aUcz)g!~L=^8*HA{<{`e@h8O#cMsuO;7s2GSxKf!* zw!(iW(M2?J=5b5fThq3p!)eLj?%j3uoX*vUTPDcw$FH6fYce+zW52}_{=fKeVd&Jy zGeUF8ueoYzQ)6s`f1g^LbEB)(%&`zm$ z!CTWxrQX+br{1%e=jx=c-wywGQ+K!gFO~ldSC_w57;2~Pv#7hTs)BQ<%$)aJo6~-E z6?+~08M|gwd8oTDb!L@^y8CjuQ+M&HmAbkp>-e?k&!}tp;p?2tPtNi;xl`Bjeg#f! zW}M|ixKmeyZbEicmcC8K+X(i_lxyG&0g<6F_ZJ)aPUI-sZ@%@4JVl=Kz4YyNqakPh z-0#`S`l$WZ5pT$*rY4)%Uw;HoYH9H9(dNf|ur9{oLAe@kI`8#<1D7I%3DcCcc1Y?uj6199UHor!`spfyr?{*;5iGKGo-x$y}NgU$V&FC-kz#;6{yX(VT{SJK) zjaMe?y~28reaRE~Wm5tYTeaxhoIeZ}Fi>V2dDtw5Owsd6o8^CD2kk@OBD$7I*h7gP zS*#O^yA&~C)z0Tr(aRew?)Uow}ypErpTW(tb(rGq#BY% zUpm9+TG_&0%ZRRBXmgzNu}Z$HTlO~NHJZJW4|2`s8ml;y z$VdGCIzH>0QwZMJj~uN{zb9Mted2dCj&~-?@lno6;y|1-#QB@CC3=Z^9|dEzptD~{ zIn9fQ7B{Qb8Ujxm-ve?8^ZQ(isg)l*(QsuB4wc*tf_yX;lq5#19Bo58_JY8qJl%g)MOP zbzF0~O1OT=wUp})PK&-?364W{)OvkbZ(YlIb;z$C65ajLPEANl$ z2KdgyTgQ;=MftH{^bNLF&c)XF^5HOF?z&O4hfAIaZ>AQ*kI4T-UV>e}We2!O=8IHS zS)MUq-2!b*pj~a)p@65ejGO^uvncb{b9ROJ$Q5dG%zi#YV4bzq1-4?`wqduCfqu~# zEO55XKpr~S?QAVjf*%rR={S6P)>RX1>Fe1cwjS$MM~-1(R=~(_+p+QZG-zY;p;lx> z^4^dhdADtRKyZ#>+t_g0^of_IT^M^_n&0Q9`X|CA-y!jY-^|9I)*xt;JJy)8`w! z-t!_`N*Rn?v#iR|MmfYb@Mj|9AO@sE`1CmQ8#rNNF24&^ztwh|YVqokZ;x@=#MW|- zVhEhpn=^gv+n2&K&3R+|2lg*@ByyhPX=h?_s?Ov~nz+T<4u-2suUi0~_smh0z-%Qs z@bZ42qj5jBe#H6kam{7lK9;rTUig2!!4(=C2i^d;Vc)Fn+fO1VA8SxTbJ@3ds3v!k zY0rWV_7_QaB^JL#nWxydpM;J{x&+U!)kIIyh?lIgf5;r8*y`8^3r$nK*$$ac3-tZW zZT|wz*x$9m_amOmz_ukUVoIYW{AW|6Qy{oc$;^R3dLF zN9LI|!DS;3i*qjh)2WZktfPN6(mx$}WBn)g-%8xNIFIG3#Nu3?*=MJJ;{I5N>|_IH zcUnBi5d(ARpHBLwdH-UEFZ~dGcgT7x{WFLD*+~CPpnt~EKNg*BjDUdX&808|e!5B_4#>81?QS*<*z~;MIOgV1Zr@bS0zj zdB1D^2lPdY!~2;5I}dg6wVx?7wv9_o)Bi;s#_yr&2`ZTASksni$DZbTV#_oGz8}YS zZJB1o|3h>_h8r%d@zTe(442Iet!G2)4s0#m(0UHEZp_Q_H|$?RoJ5o7CB{M*I+qUn z7V8V_2Yl)N1vYqeHng4vt$)40+)>APu%*MZT;rg19JH>7*5jb{7-;@67f0Co7X>uPkzTv5V_Dj|?6>!2b~R zmbpvj>oeq;%{=ugI;=s=VV@|2{4#%?<@vtyN{5#<)?-g*ATu^&a*$#w33;@|8~HD-%}U${r`) z9IuNv*AEuxicK0To>1TuIssO;VR|&5!bDb5SXif$982hwyaOoA%Bs*(!D(EjctT) zK4N~{hnx%lV9lnnbZFS7aa#tsSJv$rHNmneh8)fxc%_xKQ*fh(r(-W&J0-^VptPEz z-fQT`@ZjgKp>JwyC}%%p%Umt%XhCEhm3jMrVhvq?6~2S$l?wkCtfQ^E&tFIN@OAHX z^y%bF=jop7=&`e1^Gjr2G7Rw>^3Z)n*3oNuR(9^L!!h_bUDOY(pJIb4Smvv)m+ryC zCVrFGN@Pu7nebW}#TSBUqU&RA#n9r`cQv(v` zFYkk{`FHk->_KCPE)O9G5}oZ5uY7jwrs=*46K(Ag742MEl|9 z9`k>FqBhre(>$t^JO5GN9KrFe12b}R+2`f5&&y?>mphk>eO@m6yxgT+?DL)x`95h= z>5q@;k5Y7}pVt>6S4j!?#mna&&Wbx<`F+zwG}8uEo+X+ski> z^ov7Vj}2eYFN@&c_s|FYg!?k^BZ{?2!e-{sFtDo@3@=){=8NtA7h?$X33OIOd2n+UxpVxWq-?`~~ zY(c)q3YWv`9D-udJ7y_>$z8Eo}j;>|W$L9Fl$ta7Get?2VdGfvfbe`}%=+JT&Ug4~%x@fTMzfPg;ltS{6HOx$vJY7QH3=jW+f| z$4A0v*eJFwVl75CN(`_0$n%Q8Vw#^&EAq^C4|7E^^2(9>tc`!<%m^{GjfQd{AVo9KSdh;hnlCL4;(_&arDljKcBnE z6`aslnY=XCk<(HAllxvG-;<*bKGcZc#!2Mt_d3@XHF|&D)LgZ=sbe&;VARC&8n9k{ zwXXQyL|ySQ@|{4OhNOfPza`TZN;@+nq*N|$NcP6?*!M(tanBVS6m-n(=-}n-v0Uut z#Fnpw^lPBcC(v5#x#Yejq7xU|=jW9rKC@ar(eLFu(q|!0mbuSn9P0NlS7v&%Dn(AH zwJCO}-$t9_nb+A{{t`m@-u?_yc9G7sCK%rU$d8CNsoWJ52xQzJ62Mr2$k z|6Q%hWu86B7^&voH~<^b$bC2ZP#t`}n>l$eW25axWwQT1W%4@OT?=1IY%#H6nZvao zUfrPad6-vs!{$$||y-^!~W}k=e#J4_%{7cBk z!#860QO4QNMr<@Q))*TykdI{`C(A%SmVuls1Nm46a|!Y*|971$~4 zg6}G@Qy`A6Q^x)YY#PwlCU5X&G)WzH_eox^NWHLKSWmrL3g4P0_5>~SxKk%N^T#Lk zxGDVKM!jtEf1&)}akUrQh2zxAL%rNpz9x61UTN4hc(Fw|j$J|lYqpVkd9g__ifsWl z2}bJW#U?>)3I>Qxf)idx&%BNP|66SmG~Fk%#jp-GyQwvg-}oD5pet&%^IP+$%&ruy zTA&Z>%Ts&!CU(u^*&VLXe*DU9&U~>059O+c_BAzPGbm?Q&By<|7(etP{L$y(mwx?@ zPnXW!(KS6bApYueZ;aT%-Pkq%`sp>nc`JxLsjI$EF(frKgAW$3X5fCg6dVI@(&0M4h5`UQ+LDVro;DMRMbRK@BW39V0J^S9kHprLK}5Di;_ z>60_PS2xL8q(HBW-rX5DMBd5VDmbzI<{_KQ=vx!drttqq5r2TFFThCbAZ30u+^%TY zQ4!oY1&qj?>>q?L0PS1Me3JlnOawz-&)tH}oXqhuS5d|*R(t^r*sjYS;5hqDQ>q^O zr?4M@nLS~<=vxIh;sa0so@fPI7ObkiuT?PRBz(HnB!BB5d1vv9K3I6*Q|u>27M-bD zGY$9#h;Ky(V{bk5xyfQ|5SxA*HlHTyXY(F+JdA&U==Q0Wg{~m^OnxZ_tjV*E z*)_qWl}npCCox`imhwH|%9mH`ikstg#cz|(JaCsCT$u*0%ma6&S1xVJ2Y1bhNf^=$ zzb6!o^Y5Xp$0!F|K5&N%tTo5nj6Q;Oqqt>|*kUPF315f=Xx+@~#96MO9eg=nmuOaYxroDAeYkmbY;gki?t8$Oma8p8lHOR>-Dbg;m*D3kOEvtQ zrX≠uMP=d*?LpWwf1k@TDDmDeV(Hog}y!eA&Ezygxyg5N;pq<|%yg1z#pI4rM> zy|~tQ+y&RBaTiQugy+TYCG5Wu#xh0?-yt`O_;7rl|3(y3iXX>~#>?AW&f|F$S8Dzn z@O{+YGU~r^SzAlSvxo64bC#)Cf2rRFV_WmxU~KpF+mN|V!>Y_Tvj4pEE%wqHU2Q(W zHk+Zx{j~d!U^%g8-NgM(o(Z1+1HXIwZpgg(MRVq(uZHb4x1H@86tySwaJGoyKf?Oq zsNCmS>T*R79r0*n**g5=HT^*e`m(9mox~F_MD)YRTcWy|6!gPC@1Y<55E(@OG<0+H zo9KwGqN_tDA$sDW=*KSTidTNQu2>zK`M*V1T#Ig`r>@`~=>0Bw;`h)KN9Anqu*d19 zIXasKU~taau$0^r))g~95VM2*VCgiyt!ae}mo97wKE?0Za7Ow|*O55xbb4{L)k3 zDt1d@eXG@PSaY$ywLtW(YyJoHt;2@@f2(hOls<{-ThD@_d-sKm-Jbf^5@h8I(YOAA zF|6s1j-W64GuO*pFLvvWo=``9vF^w?l{xeqt~-)7XD2#{wz=2s$jwuoV#g>pHHP;u z*ep$lzB5>lK4eaL4?9+|Te=%NaQOY@?lp<;+So@NXKixF;YW{-z}RwOZ4&%E2ph=T zd#_K-V}tP@bE0QRVP3Op>yy?0u+TPQ%annx;7e_pzVYkRRo%8sz1OEj+MFY{Oc!(n zQ{nS&`bTV;WPM6~HoQKGY%BM>$j-mdwV3O+$eM$FZ##YEO{cHezh!tc9j)vc3{Tbs zy>@)U=x4*I%+2&;s4zYf8(;wUSYiYW<8I_WihDfwDcq4^6;9(mfctm3r*r>4_fgnf z7hWrI*(8o>k>%5_L2@sg$-BX%nazC|_r=_8+;8JPmiUdND`Z{OWI&&E4LZlXD*Md& zJ=WB-tf`}rW1S-=fb3mo^G;-EAA!j*R^DW|c0Kmt;TUssN$o}PAq%AyOtZuRHP>tpa=q35f{-T^SD$0$fA!hPfOg>}CN75bxo7y7v+EL|g z65IP7GrcD9hm$?Ok2Z+>Skk#kXP_(tx|B@b70fI%;Ztaq7oAA{;t_ZaV>5#WRmIZkrewdnO}fr_aYy4+}AmpL~5u(@5Rmi;Ro~+eFWPlc3f;sw3(oCRDr}UNvvrVzZO;c?NjJqdZ_cbLk?w)|wNsOt} z#HCB(EQnpNS2V>jwsyTv*^I|sv_FpVXrn*IyzZ;SZaFA^do}Q)@b_^pV%G)7R8>^U za~Jg@ZhtVds+|9(@PCVfKJHfj8^iy}U*u{A)&K*(=0@yuvp8ct9v}0+)jl^~RRVGN zm|xC5cMRvIi+yea_PKGFvCobBJM43f*yon2O0v}d(sLx_9A$i%h%+WO5&e@w^BRa@n>y3vTaOQt%@{M!wmOxwf%aR)hJJgd zVoRN-EMLgG9j0)M3inNeinGM$G}fGXpleIA0iBKk{@SiXSBw4fc9Rkk|GDkSt{~r_ zt1$XX>EASB;>sD^Ygms(ep*j`2E{1mHPlu9ujhXnel;Hvx1e&H&rKwrXwr^-4tNZiugqiOuVFh=7Bb;8QcG+anIp_&Yl7_~m5|xa{hq!% zW;1`R2S;RL!=T9{|8T8Wi%-&colWM$_WO~YW%aimM-FLfEU>jd$a$_$7TVe;^|PJ0 zR|&p7qBiGxgR;C7{oSrccc_l_Z42|8*m~Dlwk)uqXHK&|J53o}gKof7UIRVf#}<6% zcmG+=MCh-*&jdT#mCxq=b#0Nws|4S#et`FDi)0SEMID@+tBcX%iZD-?tE@9J2OPrx z>q*-9OXj(?%suuuZfUaX;!JB*vuO*lY_7l`Ya4yv*}j>$R~A!eyC0dXrYkI$KJ9GZ zQY3u#d}VTSpM^@Wv&&y(VeOZ6r|y+DB$RI>-MgeCZk9>X$oo_Ghuvv|9PFuxfVZ; z2b7cpuUcKsrc-wwp2D}kEuZ8#+eh9FIPgFUKEQL8fW%y!f(+!h<#xvue$W53Z%!Qi zGDeB>zW~oa8JZqaz(G>~Lo?GhrzN1XL>|0{Hf();W{`PvavEp6?*X^iuVgKxPM!Fi ziO*c8K46u!^kwi6??qpgHawD+7{`a^DM7LA*U~bFq~U{Mrw;EylONz8C$#8C*^_DS zZQOs${T%cDla-ZChgh$qZtqq$HT`_Xq|GtN-8U<%e`EKqa@c*#9M+CI4?k>4@dw5$ z&Oo1(hHHpBbB*sV$1mn8&VPH-9eOyCK1J`)!uqy_GjoakH~$L0U5o$xT9?cDZGD_S z<|V~>1>Z%V#dOI3NSYdAz%5mscHY}{gZ)?B?Q+UGcql2Qp~h=>1SmUgiRw%{r8v`? zx#lR&D(XMDcdS5 zDGdRy!x2yhHpufUcz)ATHDH0ZYw?G6aDNSZs0Q%WuGho7Sy#2BQq#AEYKl6kr}W7f zU7a=VuiDv)TDp6ymR6n~JT%#kEZ%O#{(saVYX`OzBKHmO{RuTGb38FgI|ipFkH7LI ztHeV%p$?lA&9@_x?+I*g?FY5|}C*Utg&_1JUCrV|&ED zQ=VrH=f71!ETi<7Z%X-QCute0!2tDL;76qD zkY|r9YSOQ|qUjyxqv(I1(e)ess;nkSvnZwdzGtyh(U&c9EGoakA?f7Vl0D=6gUXgT z-lbfre=2#%cd2|wyy|5+^zR+zSq?LGyMym?q>dl=&5^O$zFEV1|W zmhN$Ui0vcs%du6S8Ft`-!0@>*s;JCT;9?|KD$N?onLX=A`gh zVW*x|CoXwX7p&>JE~k{UNc^;0#zs3d6IwOHzXyzFKXaDGzgnJuCC{nTZAVpAvt7xe z&BEuW%#=quDNAge{lm=8o$Md8#u3xz53ZmmMVTx-=hr!Mq|Ynh325T4Q1>`ba7J4l zI#1#4J@C#UZ)s%(b`)9H%rpDYm*PuSe88Jlxf42_f=(6QC5}3tRd~m7{zf=I(Xn4H zKNouTFUoHm@oReKCw1HPIeG2*lDwAm%FC?Z<7}sG68~oxZJQTgUsUg1R%zBN&I9Oz zqiyrUBht3Vdwnl;IdPe~2yJAHG?O27udJIk%UlPYA~XrpsaIYyuVg`cpRQM(m@}kK zKHcT(G>$RQlRoW>@}2GI$hAIX&bl1U_b|VG5zSBa%2Ug0^5^8$?@RJxTwYW^#;4yJ zsUNz;%hnH@j4!MopO+lX@l^$@aLQ;fA(lYH;?xyyC;udQubx?I2GmXNFKu5?c#F^Z%6AO{H)ah{=TIB zQT~g54^R7IB7M?>r!T1seBC>*ZeH%uo{Ap4d`TYg^Cfvic{o}hc(}VhJ$U$%yx`+Y z@{00q&-(P>-AnR-e=o@+%CnI?9*g1J6R`Gf#oRt}SJ!;OL$W8knYASDAhO>_yQUN_ zXqF`A88#SCQ6 z$a4(HB-SCzJNA6tTatP}rri4|ZYPJo+h0{-jujJb`-$C8ZLEw}f0OFnh+MB8I^PPNTOxFx2c47h$N5b!EOS_p8>bPI zAyqN@6k=UwLg(i6dg25qo?D^wQs}I_Q0@@l09*PV=**ec(D`2I9DvRi=$r_h)1Y&% zF0s8F`N()=W{J?*4xQ~fqgx@?rNm=Uh;?b9%+tt*I>0B$h&`S3r;>JvI03}%h0X`n z)Jfm0`VOD8TUCAAp4mV=YqddSs3P+;;CC*5Acp-nJB;wXiM^4TJzXs` zDzMetx#p-N9(=ePd?@2;3%0~Nxg*o}#}Uihjs2XPGs%!QY4Wr!>`Pl;7U#aM zScqT3`HwE=9(d*LNc@g9@QUJ^;E&_nh&(0EGlICNC5qXX53h{bQ)f*Yv61*4IuEj- zz#(`=x39usf8kc*cl?p~9e=bggjYJ@l{N56I=o_sS4I#^GnXy5@QR(dsCIZ|A-s~V znBDpCN;-U!&!tjk3%t@vo%0pNlde-e`DuHJ-=Q;S*%jMqMaedB=8k){PCK_gbq)BM zSkAODS>jDzPM&>6uWyh!sULGvL7XzLaIG>gnTG9ZGt{- z=u-h*=0KOzdSj-ISR3P^i^QGTuf?4)M&iyGw74^E*m6tU8H2=~fiAP5%gg({THF}} zF=uRCiO^*+bdk6-OOahKCSGjsxHF59RVQjX62n)DJ41QqvMa-JXT%P63o`Fz@P)|l z#~|a#;+gdO<9{5(`StPsmuS;G+H@?^rZn1Q&mZr%y-?~v_vKOP>s)*p(&=mCo^{ra z^m}QO>X}EIuBT1uFL)hEFD!K!()ZG)y;g-by-b_fhfXP_O}Ek}mA+0@lC-`~qOWhI zO$u$|JRo;EeJyi>^miI%cGB0UsbjjroS>t>)ApcKP_;IV*DKl8oDp6(s?O@8&#Om; z`}z*jXCqS*d6t|{M9d1#9Yl{X@-^!~b)cDeES9bxFs?W+db=(htL%>wtL*x0Emqm+ znVeHdT*J}O=_BL`aYC;?$~?)7XPXRZf6?;6Ct=?1KKQnf&p!Okk6P7b2Z&+shsLe? zfu3?5x=-lm<$sA2odn~z92$6_u@9ZZEZLXF#$~>UPQs?fnQiDL+~^}XA23wj2c6+e zlP7C+YQOTCCiJOBb2<6IlWt}8I?kxSa6Vd8KOkq`WKbUR^2p8htVbg;!*(*oYT{F480E(jw2g^nDI}{KI~%@BLZl2e94`L{%EK|}5!P;<9EgjHJ5Yn{S&6F&YR^iu16jyjN}1E@cwQG@6TF4}X4ah!6Qx*{zQLN(HJC{Gj-}XYK z!=X2N22X|0^$9-bB>4Q`Rmpr@c9E^ z(x1WSN1*wu=-~$I;dA{!jn4;~mB6de_y~NSqEB!;&3hK4R3{cYxz1DOIr#h|Xy?=q z@*L5nc$_1TSSime^qGSF^Cs#%3BEmj#NH%ze}K9Z%RsAp4t0N(y6=DC4#yzseqPpY z>YhT~+x{4>dy3})>K>r(N2t49tNRh^e#H73b!XjnK1khPqwa^OJGz3ZE?sy&?quyg zMBQJb?&ov~?iA{NjfXti8Gx=L2_0JMaHUf{ z(=}gf2Yt~(dzClrO}G9@nP*}AOdt-^lV|g=;jRg$tz24}q$FidSUJ8jk-qF;-R#)E z2p>D_q0vKpNUXhIqgz~zE_eJ8Wiocgub>Owm^5%|pp(3@@q1bMr9N=1(QMLVsqC*|cC#@n4u@HuV{hxk(peUZLx6Zf2~XN>oBCt~Gj=+?Cp|d8X0S ztm1RV_fOw>zx)2X?)Tiye0LZ+uNdKS{)pJrOZnZA?s67WkFRswIG|7VWyVeR-#Kn> zLm$W4eim#>m*wHZflf(c8W&AsPCEmQ&SA@X7P;xG(C?!N{RC^(!voFC&p$)9+#H*d z`6{$~62jpS^Sag=c*agWYni}VrtUCF!a zs&L;tNZ#k@7s>lvpJ?8L%#tRW{}J++IT#tcc4qQ<-if^WBkFppPeP{T%i3cfNm+-T ziscml|4bXskgg{W`~@C(hO%CT2cGFOP~(A3x&hrh@S(n+XA^u--^~a8H9lBz*CscY zr?_%-)5-U{rW}DE{xQBTrtLq*mumaR`1)^;uSywT38NHSEAvr-s)Sk})Z{7~d&*T* z=A_S7-3ZS57I^ChaMyg~D#bg%VVX>3kjt{EYkD7SL;CT&Kko;SZXoFgfy+|FHsoSF z7Qtch;IEUPgTLb3>x(9p?P{ucf92u2_z?wEoJ1- zI8$w?=l7hc7UWE||8v0Wa2}}SOtrVbI&WG36|7Umdb}B|^QOradY%2qo#3=;{a|f9 zt^%jMZc;-33f5Vrk9R)|)>#G4d6?@vl=(4OC&XO*u-@vKsvqKcc;uU$sW#LsbgTrY zJ*Ct8SLo(DQ*>dx_73<49C(>FI6t=y&XGUwZo`w2HrQXNx~L5p7InAbPDnLdLp^sihft#k5dx-lIAe+rA5CI_m{Or71$gklvOlU zfVZ2$+r&epSYHI(Yk8@V2&B18aXEIz6yZ*to<($ ztewr+zIY$g8*9gR?_&gOH-fdZ8QW7B7qX8Ltlb#F+P`CLN3r%Gu;hTtVC?~5$=_-F znE1=?V|rt4%G1VnF?P`7(19PW{9)765v;X4g11jHcRv%sTEC58t!H$4vtX@8@b*bC zV-#y`0BbdZxf|8~W@1MK!&qy+dBxp|Wi9l-pE3k5KQO@fYn?8`-Po zK&Ncz6y2*fM)s;rJ@%?8&}rahF!w;{)THfI_-@QC_T66{b4%V|9dn=T6MqrrehSQe63qQo_+ZoD z#0Q%^e}=yX;N!94Tm6TuxT{Y;!Qf-S2!Dk)WXyGBD5pCjW3KZ`<#cq+9pia)%)QI+ zwf`7%{}^+<_PPHUbC;WYFBx;ijJZk~bMd`!`Ho(3HDuoUY}L2H**Ai>zXk5T0sK85 zeJ9v_dKjBenD)ikd^>smcV(qxkb|}}=6!;@!Q6+yYVFJoqE9^vX7h1=O&{hCk?DSb zT=m0uR~}xG(D%RxeDeXa)en#@e(>!_oBjzI*cqN}0@vRUeqFKP(Wd)Zi_Wm7pJk2z zNa^E$jd{8X+2bb>Jbo4PxN~}r-*#Z7VR!`bcSWl^=LiLeSN4T<7a6Elcje-`%Nebe;JfF+ z;kmj#-S|%Wa3EJeQKm?{-lty<9Z74dQxm{?y`@{W`cXu-dJwGlk~J(_Jq=$(WvhbmdagIviYLF% z``$9uP4H6`=iPpZyt+5eyCAQQ%2aQMXKwovnd%qeyf2bh_r`fqd9}z?$A4v+s{Tu5 zs+%G*)itc&hsk#n<4Lf0PkHJce}^984rp^bw25N7%jqG$2;2QVdWf%z?Y>-|D){T` zlBfP{*zUh4PYq-Is7yVI@xMr(8vjApl)u0WB2WFtn7W*v;vZw`@6%EIe>MDSb^xXuE;OGb{`Z^wt&@_^Sa_}MKb=IbXLitOmL4HMQE zO_e*k?xekHz(Cv?-AvB);S32qx@q;QYlG#ZZ}6IbRTsR|X4`z{Q%cZx753lQ=A53+ zxv0ed+C$u;@_)w%PYLJ#RFoH$T+)S?OWy zxF$AQ_AJs9FKON0rRUwGt0SJ4JN?Cn+@#%QQHtE7UbMc5orI)wgQwye zW(7;|Wi^6h&t*SQbjNGIBZeM6?|LQl$VlQA{5d<&pIF(mNL%smO7I2zJ`BX*YQ?uJ z0~<1f8kbp%oT-dDda0|4vWaQzFi}rAFGuWf$|x%Xzg{IiCZROb_L*VgjF1tZt=f^s z&Ef~6tWg>j;`Egr7Qf4I+*-rJ!Np!^lZ)-swm4<}8GO5pX}{27_z>$l^XviQ_`ZX! z1NAtDyz*^)F6%h|s|8<*=>Id3|8I{(2TU3p=U%rSkXYG?6Xkn}9s4#uriY0OjCBS6 z*-CN=<)?AZ+8XHLrAzFSP+9sRkoY?r;xT21`PG}<7( z1;@B=xk*`OAU+lG5{t~p=6s=8&DVAdwllTFTI+u9jSct;{~vqr9v@YCEq?ErA!IHI z$%KR?6C?={%?v6;flL(5Bmqq(B687Id*Ko-GZ_(rmnI-22(5vM$|%}%r0)UBu_mD? zUT8C?r>~$@15^a5^l1AjAX+C082D9`h?@7i_RLNuAzZZW={dj8`^Wz5*?XS-T-I98 zde*bnde*wke=k1&Q)%Bf0s2f)s#cOSPjWr^bjr{?-kWqk?t_aSn1d$=a2L1=e6Mf; zzstyz&RrX^ji(Y<;ZskSoT>40*1%34`kfLVFlKwf z7-Fx5YCJ8C*_I4BCtF{Z>mO}&2g`3(#`&Nb%T#4t`&4JX9T>@3C#e* z5ubS@=Lqg2$M9}_othJwGZ0Bn;Aiu4WjJSHGW0&1aUQ(Jy4IuShto9~A8GDm4r z=YT68AIaoq9q~M}CtBBHlT8A6$>_ktu-s_?X5;p2ay!T*0|3T)_&?F3P#h*OrhAkA7^QacaWv zCEkPJJTNTatEs3~^Xieew8LO7_Ys?1&cs&g%qsnrFEtFc?-=d(?#b`+avqZy*X6{I z^tDqanm?#;Ihr4cHz>(sqb4qZH|YYA%2CLUvOdzV@O_4 ztiO%K-K%7-dzfo7=Vn2(UqL%Em$S#pncup%B_?*I-t3R({yXMP1M_CSKHk5F-+R(c z0aXv}jSU=UuAg9En)g-7eyg{tMe=@S!vph1?y%*3^{xHOIrC`8cTDE*K7K!6GrGEP zf>QPVTFwQR<@vMCt^(cS(VQoC)yRMNlm+lFJ23}4dnq_ABc>U-4;*DCSB*Q~RU^4` zB(_cH3fF}9AJ?mVCPDIl(RUd`D`%eCI6suz7F&>8#?{1Sish^jIbzuGlZ@jV{x^e(>=y>{v)Z>0w85aT$#=MjOaV?Tw z=G|YY^V4yzeCfl1N7M4>5f}HPLZ$20?OFMk-k^*#15*nzIOFg=jmPg){1tXmhaI@S z#k~`lvd?_`X3k)F%x1q8pVX0*Ic(538}Z3$y`W3E41x5 zW*Z&&uGJV5xw5#%Dm7V@-PjeI4=)YO(#3XcJk>q(3u0@ka1oerMpMq~)o~s`2Yg-u zCdFyifW(AXb*pz6198A-GVm##Vp%tYvV*au+%zSAT>|G3-q0oZALUHN@3}w6_pCYo zRN^`Q7rtt_wB3atYP~K-g<~TzJL{=uc+9dFq%NawxPOFqjuU;!gb@0QOx*~d#4;Fx zPQ(`Ls`&vhLJvG$`{rq$_b9G{5OMMkb{VSVeEPF|7lLOU~bb@k>v1}y5#KtGR7}wHPx~^B4wYix7{7Py=E#`h(pK;V% zwmr)gt9+Y)ymH)-P;MMt>dw$5SVD#&4kO>xdp#{i+I~yEq3wi7+eX^H%u5{Bh@4pJ z38`%xY1>HK3AAmbUs~G@v@NoWv@LlJr0w6)w#bfgwEeLmuDms-)Qt>ix!W*;cp5g# z5MoRV&yl%&BXrV0Z19ii*Pi7=njay)_ansjex!`+HfPsmlzI1~@EihXL6wJwd8aP0m%b+2Oo5$BX?~U2=+7fx@ErK0tV431 zHIMPhnRXpA%SL>pi)-$zesGX0zfjSu=T0T2zVK3swJ*GMZiFXJ`awRrCv{y5#Ma~4h zoT!}0K8^1@e9~8>1WshIzU!S-IulU5HSiwwkaX^m%3I)>S&{0lg?yrqwFJsf6jf8gLkMV z+ZlSHm|dZ>S6IHktiC)AoX~$dKm6l`UIE ze#Reub(zCI78!Ccvg1Nzw1qeEEi$B>2#r6Sr?A+e#@Q4z!2hgEFdQC&Afje9(#y2KzID0Q>i=XEL0R< z*48?k#0XJdsI!T`eKzW`CQ@Gc1PbbblW1CI9n~liN zbCEwQR&YkI8bAAIy7NPvTZd+*2@fv?7yac_;gwPQ#TGk!#tg5NJ)<2ywM*d2Tz8X) zMB?;_Y}v{?BXWs>cM=~Zu0~nAVN-WL`No10W2cpO9)1fgwKGR&#b31O;~B2tZ1z2^ zr&p2R`WCwdxmS$=VKP~~GFH~YI4;?TxajAbW8gXDy`MeuPuFf>PdeMdoxJx$h^amM zO8Ncl#3AIQ-a}l4*;j|3-xNLtygHHdKGxk(@GNH?J~nYDKK#c;+=&nWaT#~w!;620 zlxO`;de&=inH7_y_EFm2h0Nxbw%x>|m$s)%T>4*3v_O**$6@yE^1OMXk@k)9JXf9@ zC$>slI@)ii{j!b3rKkO}rf_`vvcueIzpRZr?Th?P&iQ<8Z#$ax!tEv2J@Dt8H~ZV& zwsO{sa(q|a-~pbyS9q>Z0pskWne$j2F{ULrxmi+i~Rd4 z`^tWMhMrvTZ#k`N8FO+uYmbk$=Pt(B!2Z@ABe^!hbi9iFZP}=uvfrN8&i=NN{q1`8 zw`F;&Y*K$a?ZKy~p)08hu{Ia(pdZLdqQCHvzo6Zs;3hzPKl+!`?|oZ%Z@0BL`Rc%G zV(CeJYTiQTpgO1DVg3Wt4rtDoq7TTK`L^(Xd)-wg?Z3UgJX63+Ie6ZpGTo}Du3-QA z4!P@*cNXbrQ+U}<_WRqo`oY|(!CM<|8Maz-0wu}*B7}^;bLix*E7&LA-N|p__vO}1 zZ234w86SGQxS%n{n6L6)a8BEjdsNMnA@RsE?Ob_W1zbg3)3|Qqn#1KqZ&FO3a)4iI z-?)Z5uZoImD6|A0l=;tICmh!hod&cNEKBDe&)v@5$~}*J3ioN;v$@~KeH48zzdqPR z{#Mx^z6O6(*N8|?cO&>tW-lKNlXB<~UVXdhStK^#UC<$CrN>pClMb!WVY@2F_%vEV zjsYi@(Zpl8T&3^%Dt&XtC8><~V0Lt1mB=xoLvbL-$UfK`Q|4wbXQ>1>a?WO!F4@Jw(Hy#mrna!|Y-@4-)#_QIWN7_f>iR## zX>9$--8GZ=8pa(CzvOr~lM}v@SjUnR-s473Hs`WP?)R|)&S_O0W4=mkV>KTt z1Gdi}SAz9}*sI*b9zJG!KKOo{{pemJ>t7msnU#iA3ulFcr8%v(iZ^oo0s~`wN}t^C zgVU3V_lBMW{`=un@@S)Lc?|u>hI_m7jlLf`r9H_LW|Z|H`+zN7m+p|9+P9Z*j*FZy z!t-SgZ~UTr<~7XKR>^NJe2PBgBJ;KpuY!5yCznhO^QGoW$}rxyTZt>xM&BfEoQJ%a zl0P(+`7Gaua+I!9h3w(A{zm0@9h{xaxNH`!&qv5f_94Fc((gM&Z*zBdzQof_D`9_0 z9NnJ&p-0eQ)5aW>@yNKm#KM#QneZJm?%9NQJZa`rFR zUpxB+u4mU@tBoO?Z#$LHdUbEhIIa}ql49Ma*I6_9?=bl8;+&t1S;o7THKk8(>L@v`CpY!1zPYIv%nHklS?nJGpPTw}WXAa;m2va;yMpoA*u_Ui<))^shHQNOUOY25bqqS0+UuQNwZ&Yw za!u#@0oPov`?(f5yYeVAHBT9L6uNCdrW6_B6m+Wc7ST&Sqcok+c*`1R;7{aRiT>}n z_TSioz&rdW`1-VsW50dSj?ab5bELD7ag5Tug@Y#P&UW#Rw zjIGN@v~1O7wrpL_#abk1BO8#*w`}Arnazsj!}-YRZsxS>)E(ST)NjGI1UIo9CHto0iXV{_Mmo zr^FupfIZ7B?kkg5+Blo6-q)kw5?#jfg6%ac&|y?fRM0DL=j^gU)n&|5biSgk%WbnZ zIFGH83vEb4p{*(Oub z`}A8Mv}JC{_PHoOg#N1UwnyI4o{4u-Z!P1K{1-CL!{}CLao@nb?pjxk><8z7ixTz_ zIi89>`@uUN$e8f~`-MBeNsjjpXNh94RDctGbajeVzMZ5fNgo;pmH%u|v0L_;9~cadm3(tCdcBo= zb0^=d%zDlCBijCuwwJ5=y*bVb%F6e;%EM~g_{CnilD2G^Me*S zFI+)A+2|ItFMiFoBGPsaZPQ-)@3!?uCpzEna*YhlTpX}?Dp>^D?oMmPn)->^3=HvU! z!`qN|`s5Fb;tf6d!{%Lh{xDM+`%Uz`t7yL-`Vc*s3EC^?nvdS=5$*?dCf{3}F+aHR za$o23l8emb+e^L^d5(YOVOycj;%nRY@ZXd>%me@Oz{foBFAsdo1OM{C$2{;a4}2{5 z6#Fb>Z*x!Xu-<)^g?*NqJB)cCHlYS`bjd!eF0#*(ykYT?eU{_`i)WuBdBbF%CC`^( zOKM~W@)a*yn>q%1Zqa)a4hBrjN&v^h4M7p(98YV&#b zSGkkI`>V1Ik-b%8WN&pSvbPF__f{h3iha@U49n^wXWO$x#-8Z(VE3^rlSPJCb9Z?R zoDW~%>S}T-ed4DSZI(P;spRRJfz5e3w&!Wspl`+&Jr$qAn>gxMnu zGZ&WB1*`5kGf$V~!W<}1*G=S7iG8SdT~PH`=)8xZryj!?!uvZ_hXwC61$6M%X%Rbs zqKotAQ09H&CFCmB9y@@MbLSPT7l!OtZM6|QKy8#AAWEO_)O7ji2UOc|D5AR>$PRD^ zyebA6ekD9c_(cqR1K}4d;S;0aQRGYv+nva*U5g#SK1MxXG<_1f$K{DSe>Oh!M)v%< zamd!mN-&$gk0j=wruWZAkEQAtW&EreE0HB)fWzy#%GTG>_bZaKi1B}0)$_-#^AW2j z9lc38YsbUH=2@nT_diVecvZ-?L_82VR8qb$0wjx z><;JvLdfn$=_AiBd8Q1{UB>aQu8wk7S1oIJ2l|Steb`0kxPsFX;cMi6Ro_ji3mR*x zS~{TROyVQDGKp8ROh3aiL_b5?I!--_L(G1~!MWX&#I;>q)zaBj7VP*QIvw_smeSFF z!Pf$Keb~dsXwj8ZS}y3BG;Uq!(hpDFLr(BIKNdPxmHKN;I|e2EZ28mls#k)d`#*pLRP&6 z+=~81E&EEOEPK<_!1oJmLFKX3jSL}mCk_tRt;!PAZK3W=>aL*f8>vHbyIQD2eMcQP z@J{Mqe>!Xz5m<;_q?Tu~i`gQ z+3`u?gii98S;$}Z+0!=$PY{#RLjE#hyzWn27BgcZzO9yJ#ru7eQ!|XjbJu934!`D* z&=)ziE%pdqkl*YObfJ7VQO#fGE6XBA1UY}933TdVngG{_pat})HO6bXn~CGOGtW<4 z@Gvc)Z^pLL{C&ogf=$3c&NFQcqPtuOU$VfLER|uMh1hv~*jg4uY%M-?7GsE$XwxNF z79+>(^K|slQ7k}50S#F!x`c8o^;j#zwra7p)?r<`;Z`zt+#O7-(A~#b% zeabkQCyduK&o%?wymcU*iiaFdM)p{J^(yqcpI&8>A!R_l$`I-Q2VdnA_dwOFyd16f z3F}o<7`6RPdX+FN&_4ujN3U}7aaT}u4d@|My^0RKiqJ#N4W}l2^=Wr%cL{PFHnG+* z$~b&4-WGofkt6iT1fp|^fsU~SZ53OP`1?w19<%b`bT{_YcId*vTH-@)K*!^6M{aPi zen?*9a-KVo9W2NV9?Ac?BrG?SicEpr;2E6Y7aJscNPj7`@3Fh`#TJ%mHTgrx*-E9y zxfLFeP5s$QB65)4pLH>@#b@Aitpj`N zz2xLr&)(m{e+J%*?(+k5Pd|Y7&4CA2;*ViQkNHdN0Apz?2V{!Vo*z2j zLzX!1S?oLnzvyb6?R-OIi9~cZtQS6HiQUK&^G5A@Y96x08y0u)Qt~_$vc4QfZs5!5ZfE4V*;{iVRWvW3|po>U5Joz7oF`Kl$U`-pwtR z>dKZAOC+wZwK5C2VmETdcI1jTsQ05dlfNq$Sq2&7I&$0oc?o6to%eZJFmJJvA^bq{ ztml>Isd+FZM;7~unmoyaN&MP8*1NoAXv>iqWcEVfNP`e~ku)_+k0o-uIp2UtqxpEsy_4n=O(5hpd}TIh)bu zPc^3cYYk3c2l|Ojz0>DQk-X1ozIoicBl-#Pv*|w;_DwT04T(O>i{#kc zv)0u zoj-H<7E-6^C)9VZMBeeO=qIFJks;=w15x3?U3@PN;p2HTGDW*V=Ww$o?ebKHZBp#( zHJg+VTR_AnwNBenoHYn>arQaNj#8-K59taU}yy951`=nL5A zCpofq+1#Uc+p;-#D|M8!&Jwe{+%eeg7M*Jceev-PF{o9$L>_(lA@L+TmSxP4zI5PM zu#a~0Y`Q>RrO%m-2rBi2-&q3%mEkqNLm#$rRnZp`8(HQM+i)KBzTuhI@)3Q(2QR53 zYq!lu%=~P07g9$Refh{>E$|ZKug(*hSIB8yv@PRzLR({@p#}7n zJzbK_)2pI>e}!-A7@mbcHo_Z)_Xh#26MDLDHLFQeq$nd5_zf$1*Qn5R~>_i6X z7GDr@%wwwy2*1alp=0?z)&h~WSr6_Y$9x%mFOAt=vkiUw!ITSA5crh)fu9@X41BZcduiAJ2U*+M--|7L#p`zepw|?uCUYQ1 zRK2Eu;wepMFS`1V*t6U~{(9Huuku-gh_6;RU6Wy|zl_Zn8K(_drYv&|VU+6L)@-uU zC$T%UU88hOV7(iTEF$ans+^s+YnIkNPFp87jOdc zXMftZP6>)%?Ic5Tlnjs_$?2BX{1N-}IL5l2IK;#~uof6H{Oj4DitT64SKTv_4Xn54 zDAo}Dds%PvwLP=mCcc{;r*CKy8!ob8lKhtPZR_w`^A4l7bH5yW7TX$Vh`dEt1u)kbe$~c?2CSs?Q@!rRHZ7ys?oMDfa zZ9~wYanv8rW-nY5wigcb|CV$4n!Rw-*N|_2EbxE)-16-}_QHsKtG2Jox622XZ^d31 zmT!$`mv5KDAMok!wHux(-~LuVu-))h>HouDoy%^h_EG#SzPa77SH8uL)?+sm`Br4x zg6^*-lztMi7rqDmliyOM{{zte+gy8k>0fePehOVnzC~>gjA9JRLtm+W$12|`XTSBu zS3Ps#htP)DEYqNkbZEpz?n{{mG9RIV41842;37)=f|E&rMM^15Jq4nE#_v~)b0puH`oI19FLmTQbCd7P>{WtC$ai)# z`Oe(rJIgYp%lRXp=xy=WsLV!okhrt$oUhu2j%z#l&IT!$pz<4Jalbpeg)>9u4Z3u* z_zzCv%+f}DRocmUR-u^9hax%8q@LN-cPNtctb&|phB=&7BIlWTz7mvj?eip$r@3+? z<=QDH-%A;V|J#2O{%;QdRg&|}%=?$wLlyCyNdG0@Ss7>4-N4{De*E3Q!>nIz>%`vd zUYd~cC_aJ?&lok|nS*>}Z|#`Wb(}T7vu0rnXVhAdxq`9qRR`ZoE~J~eSCH>a;kyr3 z=mU3>@9ZxIb8~ymJSm$$OBY``G->_qj>K613~vr`a_Xjkax|RpOzPiH{cEeAX}M?d zy)E~~#Huk~-JG|cp-b6)5Bbhc9(`c{rF{EW&nV|Z#9wslVt3C-cNM&JlM+B?B;Ic_ z|7AHZ<@fdEJ2Qj#%fWjS^8PMziY37Fr2l5em~~Up0X<6p-y+x982+D{!m}M4^(fXk z!5g{GR`dUA-ie-g>P3Y;pescKh-aNq0)Q5b9H5<^FHz{wOEJx&0~nOJZNZhC3bXq zZ=R|Y>>{U`o4&H&suDR|&et49#+Ps1*cRMHu7VdiOH)ZMGWkw>SNX9#N6N4!R+6(! z``^X0><`=IaVv$CLusn_N>AVu#jEzn6S;lGCiGu7UyD<6WQj zYWlUu^Go`KW|3Rk2QOpXmEmz?&)5(*w7J=v!Cd-8vPY8@%J3SAokn z$Y~}y#SY!5%p63XgF#cmImM2G%hl`$B;VodYahej&sXW(Lf(%px)gsi zzQE1+1-Fk5zi+;XXZ(Ui&X#XneA7(XV};N?eVyVR)6%{I+Q(kRTzgyUc@*8(7Hno4 zD4#&?uvjI*KOT5W4$WJRJ+L2N@qM?Vk2$DEOAYNFppQSSZdUUd9zZ9PYDsObj4}K1 z*)DkN+X)#9-doVpSv{_0D*HL@d7IhwLTB~(7Ae!o*}_hIJ{I^EIG=+y+>~?k&b=ew zFJt?JcBTK_)bSkObyts}?JzEyiG?OIeKX%Vq>tDUCBJd|L$VGes=32d7!D1?a6awr z%8k!(W1Fgcud-zeV|*0d9`&?T@}IPOEWy>)jLt{embF;m_Aq5;c`t8iALnHC||wh+9{STz$x;b zT32Vky7GW~yVBbqq4S%ex#zqKtJ~2tw_iK8r$5c;oTNWv$j=kqADKh#)1O$9X)ie)d6ib z3!Pu2n<2CKJgb{CNF66QcO-PJwJ)@+ zwhwIs`)YN*MB4A6=g7B0&z0nxl72+f^BMhsru)~`L&s5LnIA>RXVd{LpHYWKzgmBU zezpEY(eD{`LBnU%rO|D4f1>F2j5?s*GwRUjHByIqwoDn+vGG6f-$f56^0DNaGQY{$ zx);00+sQNKsOXz(Y87!eqGKXwW6L;SuBm-?;(5HPCs)N_{HS8_r!wMKWg?b`xrsev zZyXO~zE(M3gq^NCOY++)Gs_a0Q;Mr=pffUJ$6Ai=(_hN@kfPxM_fm3Wai(la(W^D? z$*8@7*Jf$hMZy~ozmK7N4Mn`$a`rzY4j zNQ|Lu1N$sF$Js!+)uXU^=!i8TeT|eAUvt^7l$UbWr|4qFGBiAv$p6y6vP30l+SEPcA_}@ibGA$MS#C$i_@KlRNxmjP9+c!? z#3)JS5!l{M|8DYz&&n>qheFQE?p=D(j0L(l%T(IjOrgdjauqEjQ8bn8$Qg<;a`e+29#Edy9Ie0>@6^xQ}`|u>*Bt zW9r1lv`3d<*#rLMyG~%(J)mr&sz>#5gjId0|b+z2I4d?%7GS!0tk4c!IdzM!LVbkd)(zq49eb%Sz&=i7 zxD)ZpH0hI!A#ru#w8Qj8&MX#r!*;d()RUdH-*ylBy#@M&@-Y{`WxE3Xl3E|!H>F;AuThh`*;O;!fwB;g}5eG!KoWx=I3HukHwi2{NnrF zX&BSoS!5?C6=(EmM|}GBGk5PPP7R!-Kih!yE#CWDw&Blmfc|V7dBC=9S=x+G49SlB zMj$wk(?;W;r6hJV~Lw2ipOCn&rS?*R)gAoz`8l|J&Z`7RkTzE_J8n zylWe;Pbp8i^c~yB5jbzt53~GIuOyKpqI{cKv7Q|Kg!`AgdvdbUavypT`F(J3if`?c zYi-!JPR#kVd!~+dW$sEpIM+J;5}t(*9%Wpkk?W7rb^|cE(Ho9uBWKGSn5&P%qdMVH z!Vl%VTStxWR0H!@Y~31f^u1~K`=+?M&Q?dm($pEk|2yKzL3=qqzW6ao44S*}_4mPp z8n}o>pu$ayL!Cez>dWX?1F=dPu!%z}`;KS0f(d42+@tKR)^8`~*ZMCsXD!8+t4|5krgNTY4JQ9c`=)$9jsGe)_yd&>U^9=$S6 zvHqB{*L#1^@;bKQhp;ifp7n<9HT>8&DmqJa`F}_6HwjwBhFpHwknI?>`0kd59ohcn zjQ5V}>=tM;a8MVo#+|H1fABkeTg3-_br$=7#^)}(!f!9SVzKBe0YAYruVC@$kS2>ed0fY$YY|0dykp zYXyEWH;wi`4gAF4f08%s@Bcb+8^?2DdjTtHDj+6kYyVCCq;aB2oT<;bO!7qu_QF zxOD@!UBfiEjR9_B`opbSgPX|T`>GeT41pJoy*e=?k(kXwcN*+iTvfW;eID3pbTe~*IoGn8KmEeZTC z1%6ujhk)PH(A|rao#DNw`rT+)SCI5IVp9a<}mLFPFHHqsx$|OOdN@;C#aMO~~15E)uCzlQDGIyJu3@ zA^I|vPRdGKQ|MaM3-ZKFZXYG9k3wHkY*sX4PoS+t!or}HipD}Li# z_(2X^#d+6%t5Scb@;e6~0?7|}7<=gZ_+%h|t<5!LxVvDsE2A`cMATQAQ8!3{59F$MFeqCH_h- zNTb!ynNIv+Vu_N{)eGGHwQaLULP!nu0-E$N%c?n=`H@tvQzvG z0ev7In!Otz#YoQ0;8@N?C-R)|bA9kFX!AK}Kzv4zI!B;Erw`214e2<7&0G2b*>zspDk+dfUmt!begtQQ&jQ{JK?_YZiR)f2Hs*sbBhtU2nX^A|S5dv=IFgo>+%} zt4c$S*Q&hmVrWQg5>n>`?w+gBkJC@$v&;+;|12~}885uSSR0G)4i8AH=S zMX73I&z$>HU^9RC47OX?ZYx`U4n9TC>@HH&T(J^U!$0*$_%d!-WWhJG7FbAZNaEg1 zKgRjaA!+RWjL)jEJrC((wj9z8;xcgQxpZ90mJRTggf~a|kC)~66CN`Ml7C(tlziWb z@QJZ8Ti5BBD~WoYKd;!nTbHf)XH$3f@Ob|bLtL}EFT^jo1NZ}%x92H?+#k6(E3ORk z{ng;NjWfph*Z$lU+)Wt> zX+^hts6@xv!5>eTm{cDaVw&%~(X{U8=)T^_ausyr*S!PS%DZPg^PP9zXj%6(XZ0kG zPxyD7{|}dKFF266z2Nk4WoWm4nD47ApR^rZajEa!tJc}NYI0g`i#e751HO9$|Mu4v ztN)-O!*`mwUuYQSTavntd#ZY`wJ233(8{OCbbsLLBKF*`xz|!|*{e_5YBv@5{`}&< z+T{7Z7sJonUinwnomAgD`=79hjQzUE*<3FxvA$n!f5>)FiSZqH<;OO8{?*opxDWPy z$a6RM*WUh-Z5wBdQ>t@XM89(<_SjME|3t>i|z*m$*5`~s&pjCR@K6-j<TM3YF4fV-x+r|uLH)PY_*$f|$FPNee5n$=&FIXZN_{4?b3(%y zmv?Sg?PDF-HGRK%FnHtG(d$ma2aeLm+iK89(2o1vyIQ(N$Jskg7KbG^%~B1&D%YjE z{lv{GSc3h$CM`+*zl8Hl*>%%1bQVWp0`iGTnfabc8DC1wo_Z5!r$*w(2y9v}Qj*&6 zVKFW>Wnio9D%ElR!o+3eN>_r7{4f8N;@eT0$5p^pqy*0wePDalOFx zORiVAUUzm0j7?+KCK1ocd^K=0>74n<0Mnls?;x8e_CV9^V zR!4zP!*Ae2w^%YZBU9b>?tLv?^WyAgb-ZRr2k`1-{O>^*xe1IHer4ppT;dIhzrOlD zcK9M$ujQRlmv*I*_aW*vo}8@4cdI<2SToTrd`Gv=maDT}dDu|YR1a;DGhuBdxKzs` zTeRU%YOL|LlwCf#Nn-gf<7&Kr#EkN7H#FU~BiFx~D@5OotiSa`T?MU@vwaCMphV}x zW#5_W|MTu#|HHte5j=XV&ipBvY5CCa+rt^F5qt0g*4Dib4r?~Td#d=ng@QH zqEl*8h%qx87?*BDj;C(X%el;2cU4_73>zk22l>&3> z>dLe#UBtn$K23WfGpl?Kx>yK)4l}mg;he7p-|sW7QhqD^E@bWA@ruOvK;Oz;Xi9ut zjnK>;a))m2u)SX<-k#NO-u=12`Dh1>gJv8PH=)@pl>09R(}Wo6{LXI%DvdQ~W0l!yVfm zM0TxlcBQOxc8N~qBj`uYAn1Vk7@3pMgbL@J;R07jK~7pm{mw6(jnr@avU@^(t?O|Q zXB-;8=pLV2yX^5+U#Pl2%v+H|aw*qpVXOntMJusYWIrn3=XwYD9vy^ypUd1h<9lTL zSBR-Adh#x0mM@T9ehY3|vHg@9jE>w1$ldU{MxD`Yf(JT=3sc@EBr_8<)msw8Dd1^SI!_twrR$xAelhaU8Lc4Z|G9<;G^u zd16<5{ubkW*z!AbJU?rbst6MTFqMY+2XV$J8O}Y=^n!R!yX_D*~AtzHs8(~ zw39W_G*Vb5_`9sR;q{MwRh~KHHsrYccPm@ksrR#4adxTaJ!Ncu+Ylvb z6*M|5do?f}=8*l5`hIYjuM3WGbEUi`clGo_c*Fg=)i$ZmWc)W3 zFS5>Pzop*8@OHr!xp~$uh~oJsWQ34?a+A?y@|SV7vEH;H8#wTT>v;Z#Cf^Q+e-&37 zeO?0JZ-DP#Mofb^_`dLbwJdkz&dd0gzR7*Fp(&1imBf6F|H*33tHk@;h{ZYty~y4A zA$}P{R<UIQC@ZNboCfte(!EPp#wb z5kve6I-Wf|cWx^VcCzQ`jQ@%G5cS}z=UdL%@`dSX`HAoole)&3{D(NhXo63Oj7&`E zt;O(!iU-j%!ZS=NzcBd+!+a*=B9>_+u>7yoy8&HRQRl!A-%5M29SGv&CvZDR= zJJT}kF(!+&HJ*0T6YHj*{y|E{l3L?XJN19|15?Il%Zx({fWv);l=9QpC0?~;MMm>A ztOM7u4%7gXHod8QJnaa-9KXcb<)!R+;3WD|;hCAzCg&R1nmTg?;kti-s*+bao?I z!25p!9=lohx{(2X_3isw&~GdPpK>nh?bN9M^64Apx+vH6L;BuL>axq|S1Pa%em^7Q zft_8>{{*i;%~X=U0_ zEfc}XMChn(aH^x}65zTUm;%FX*lAxzf41%CPuPC7OgGdHoZlsIcL6Z|%r-)W??n1# zCvRI9@RhabUxDwxM&OI>u)K-)>umimc54;d;4hkx9GN3DW@jL_{Q??D70&WZdbkA)Upe@^MK_>_hI$AOb6c^2#i#-XzAxbut|ZhmjpS<0tC3!LdIw{Q=!emIsIGn$siH+z;_ znjP>g2Ra@{5*KGIy{rdbVi|dfW#lE6k#{Z^v5dULGQ#b-%Y&TmL0@s>=Xt)tHcO|Ra9m70qHHBFDZOa%`{;%aL(4x)jZGH(dnYP+ zmDP&1jM!A8mkt`bis#jl=gW9D8FkYNZ$oeYll8VYyZ>$avDgiZnur67pNeC(#P8*5 zSQ?j6tBdpbmN(e$BG=)=TqGw=cSWj$8DcoTCU|Dkd6pEZeZ%)4yNg{r(OA0_@v zjBhh-BvMx*@A1#}y~48*887n|^h?NG*j?ThxNqQlxp%LSd_;-RkrjGMg06-_U&-i% zQkuRXhW2NML8|_~qoOE?ZfH%9Zm5Ns~WWqw_7=0&bx1F>J9MHeJzC>pLEl5xeva=X~|_wG}y zN4XDS?*9>=<{<`G*PFU{|2AD+!Bidb7`@LqjX`6;>b=jo<-~etf_J{t$bPAq^A_)y zSnUn+{o_jT7wG98#<%G|I1}7}A5R1KqZLZWR4``CvjfnC--hPC9fC z@rdHs|B>U+{8pL7nBHp49u*)4)>gZ2R6u<5MQ<)KSVMm`H2oLv(@I7K-sN8K;-vus zt&c0^Om?PKS0#9t^SxyTlckX79G-K^y-t0($4M-(uC@|lAR@O(d@n^;c;NV>uHbNe ziY2Z50cVKsjOZu}D7${Bu4)x$DwOQ9#V4WVKc;Tae*$_vG*StK`{xK4iK~y!I-u-u z#UHZNU3=(7&fr()D-(^g z*1LLfR&iHfoE`C<182-ndjw~fdm=dN2d|rmzZ!z}(8C0X<@Z==6LDF8WoSA*c>9D7 zWPn;-Zl(B5W|EK8#XYnl;e|$>($#3)?X0C8qZRgh@z|1#*pJeivzXh*a)^({yj(A`C+kUQ#Sj&)GEYVS za7fk|>Y)9q&_l`#ZTv4hO<+Fm1!Y{Lj+jc%D=(G7%QPPM4s&)duW^2iQ|qJtgPdLvQE{Lc6)% z(iad%vuB+U+(xgZ_nDOZlkk7hGao{42YswDQh%SdG9$uwr5%G|1O9|s(#@J9N4Hoo`;{33J@`pDnw#tBc@ zVO3@#)2tDhM#XXQr~p0=<68CMwS5J)QdviL>ceZhf#-bYK5O6_J8Pp;TR-WS*ccDt zH*^@@6z0cac}IA|A>>JUueBxrYwbx4bxkgkI3&rm^(*(i5!uLOaf)n|)K@n8b=vlP zS@Ul(D*2z&rYlF~3lY30_sU3_5xk3x1aFW&hVdzV6nlJ{+IAh^AIgm2oU#Lzah06E zOx*>PaaCMEJ!dJ?3%}mJYwMlyHFTacM4pV`?zdswwewDV{e_<&d6l^f9*CQ?#s~gt zz~AltACkth|?2@&}-m9M02=Kbyk7w0F)3 zjj#u2Z5G>+*!vg@T1U)zP_AN{Y(zjvIN|;WCR-~LZekre&>+NfAc@00UzwL{k zk^%6u3H+onh63OeEi1>}a3)T!q3@?7yz~En6PXY17|0DNV=d}G*2tdWLg&L-=vW(b z^xVh#kq} z486=c9@(p^>(h&U*Kv_$Wo`0&PZ{@n)*oABUbpIvmKJy4H6Xf%tWrs zZ$xHiO*;|Kxg=S0WIhPbSNC` z&$$5kB}z7pmS1i`erdg6+2!ne#?}jzU0MeZ`)0Ds-!MjzU9|r7^57_4MnrDW@Fo1T z|DH~hT|AG3WtTZg@RDm>LBaD&tUH=Mq9n5JXlvf9tUD^skmbL{T6c!*5|IneC%Z(; zG|}siIv&>2)Uw`nNNt1mL_X>-yR1V;kfO;g#2W2|$2X8$`2M_d3+vVS%3P5AbJYdZ za{*;EK2=}acfBywp2?>wmPK#}d~XAm8Xi@dC2CK$rMh=dc1@2=k-@s1&YZV}WeRjn zVVR=u`}fdYh&&^-v@u1Qd7-p)YZNWz(>INGT!>6_Hd#iarC|fmlC;sEmNr4_>Uz)l zxW07s4P_hXNt1yznP#9h#k9j5#r#$Dg{`@r23n#^;CeD^hFo(q^K8tpbd*mwLn51u*x70Z>G&74mZeS*-g z`Wv3mpLX9|^37=%|NZ3i(W}<3&}$R@k$v0Wi(VV4&q#gI^s2VOIL}9~>bL4X{cn)P zFOXhym-fZirU%Z%mw|U0zJy*ixb>&kDffSKdL_Q8DnD%oZoYqz{DhwGYs*iiKkk)- z)cJS;^3yKHQol0lJMzbBJn(Gt)1Uc9r4Pn#HzoU3xe(d0F{Z9Y{f+F{Xo~zsc5IA~ z{Eo_wf*wSZLq!I?f_}B5kLuqywO@myU}BDf$&kJ<5t&K+jR&fyXN-}$dd3*3 zuV;*rI?p=Be*M<;&iDaVZMavNDLVTl$Tf{IuC9~F<)5HK7hK_A`;tkYtm+<0*oUjS zWX?j1F8Nhpqs{|(MMYU4y z=$ee|Eiy%~&9mq#)cCvjbBV5`g0qFuJV3<}{kt08&<4)M&fR3Kt5M59&oepeRbPqT zQfMlruBM(?>>;72^vG|arHdlJwY?C16nRBx`LIFclJMCM>95FSA@)Q@+EDAFUiCSu zZuL2;e)YLu8_{(Oo{k_B34Wqs(rCiBEAt!T3Omg|3Rfqw&k9bAdb36FBQYriU#qc` zW@Wn+-LGFLWj<{Ar^PzM|?@|BtF) zeeTyrfVnLA_=I^R{x33*>bD7QEdAz@<^1#LABdYzww@n1>%omK72G`c&&SPn)}BiC zUFW0`nbQN%h{_jbUPo}LKFi#W;8J~-`5nQf`W&@ZoOg~#Xhv&CrHg)TMbnPfUNrqg zw|PNxJ|6!3=r^46bN_L3UggiL`|)R<&*0Ci&cmPQfXlqI%=ht8^SvNyzF+$_=6eOP zBd}*R|I7b8npz?KlD!A(QjeWY)1mg$;|%wDonK&U`vP0r7n-e2TbIPv##$F%n|k-s z;Qc zWq#}p+p?o{gHiM29sCl*@J&H>?6nEj8PW%!`Q9=`;qmW{<`4gDI^1?p$(J)0-v+1Q z@u&40|JmvA7LlRhJBQgzMeD2T3~BvntndGauq7ea@3sGP_M?5;)z*G(FRVWQ^Y){C z`t~>MNBh*%Gsb`5esrVgMDc&>V6P*xbLe;YIa%=!`JM8T7u$FX_!gg*ZQM1VmXgcD zdsFhugk|c{XZo~E$z?Au{)&-(rDnsKhA-IPu>alb>)rqE4f`Ik|HXeWvZvas>WTh& z``^9d10^~zb)H1;f6+Nd_P;70`Md9b(e0`7?SIq$x6yuHS$JSv_3A4A?zl=Bb^bk; z$jfswkcD$pIrQxK>fPI%iLaVabuF_-wU$2alyjA1i)u|C5 z0M4abg6Hr7*ntl~9QF@R4zm>5Ve;V~o0pCRIP`&!=aLg9X zXW&nK6VV}@eVz$l4C@g3%(I@guiw62n{Vp>QFBgxz7QRP#wY(tI)vQw>v#vAoA|Hy zp{2j`8aJn(j`s-q-2OU*lCX~V?6}P9(IND~r792oJ#+|HMbBJ+qZnznu+&z+Cn zj`9sM`PMV`u9KtehGkK9!zodA!~W~=0PAC8ag-gEea{Yb4dU0{zs;U?Ez+*~Ec@0- z+db=Ar2U?CEuzcnYe((7-fDeN?WoafvuckFmleAE7{9!T{qszCTptAwcN9Es>I)AU zpTwdasGgoNM(XMrW2C;GF-Gb<>lmZ@eTaOM{b8xDE8iG@efg0FyDj9}?V-PaIQ|Ci z!<)qW>qE~f9KvMmLFOk@2)W`~YqC;Q8-D%V&Xw$fjq|axX0Qv5pKxgDN~O zke2)T1oW8`J!Aa4&~k6THT!yFO4tYB6t+vT|NkC+zlm7pVpH$+0Z5CsU2cuifo$#3 zfe^bQB2R4nMmmswJT7{DQuoXkE+1}<(t&Ih|EV4y09~@bX_{(d+A6x#TkrvB)O-ML zsjF$!d;o5X{1*BCdy(HF+ei9%R{J1!302;s4Ye+8kf%14G#R7nR{xKxUww|WA-)*u z-ko-$Wkm4-h=xZa@mWL3;0oRI|1?|?9QT5J0OWk>t|96^``q}Na~6Ev8G*5^UEauV z!PorA@2`U|+R*T&;v=eV^*O43^|@ag5{oXf&m3?p5)rb1)JNnS)Md)uwC@<~A z1~-mz|4*Y)IkzC^>6Rnw_3x&NNCB2Beht9TWEbX5j`rxa*@MS{<&UK;&2JjLjX z_!Zq(S3|UouwPM4mt!x+qc}e$sk>Z=J1+ zd+TgnR#&qII{aU~7QxrVho&`7<89~kq4{rLhlFlIvFGP+9h9quzUIK=DhK!SxUujy;t+Vy+$nQv<;W-|r$E>dI)OKQk zNgNU{u}h-!J8fiLK3D7!iH(A9gF1gAKF#WyEdIvl;)@y_G@jKMfrZAegy#zkG+rfq zzvnr^7w_xgi!u(`e+(mDQ}{fQ%&XjrsBeHx?!2gHcyF#R>KVA_E{J-Lw9yNvaQz2P zb*EmGAo;8$4{|(lScVXfC4smsiNt5I5)US+>69V1`7fz4O`j2S?{ng~hOR0Kh8`c> z%7eBe?vefq&-|8J$?;5k4^q}f zJMWwI{$kIwEt_=PCv5tyyQ{+J3i93fO~)s7&8?nWT|yozsiQ)-!iGOVRgO|;o2%%} z61!_t;-s#XoQo@t8@sO9bB8l${?f-PlvLVT;4D@Q4v9TEa&W*lcZs9gO$;DAdZAg_ z1shx*9XEX=6^dGY`F%x*9e10CUirz#OFiA}6c$6}Y-|;@2YfiAbFxU@#O| zNWbMgqQFODOM73Lpu$D;re=IvIw(I|XZD}9??b~dItHC-eb-Jp@h{f!lI$veVsVVon!w-l{W`6V5(?dpUb~IXQ$vmtNl_xYukb(ue05m%y$u z0=o+ITVC20nlgy(Qt0ShxP~6odcW7VUSeD&NB8yB5#heB;NDy3z8@SF72f#rk z^wNiZz+(^nfRFz4BlOsxevAj2>q4Ao zmxNyYs*iU0;x>G=JJ2uAF1pPBFVNbP(ApEw+ANW0u-mOdH~$H1mc~CGc9OS#6Y)f$ zA#HpTOMGWx-*QtXM#@1GTDeasr@=vDk;<78nfngrzUWV6?t8$cde#Iucz}`mTjsvd zEptCwA1Sc-B8W%HgON{!BYIu@KAr_H<9D5c6zlrAE(T$ zzaE|l9HkAZ`@RA2W`}pHbDn++jj7Kv?;|`*eHI)>_?9ZKX#JmdX8$E#VgLSD&~Goe zQ0E`N+rf`ZM{e)4&BMqTM2{Ce4`mDsqsE}YT<6AAKAmzq-Kp?g9GOLnDzn-9sahe)iBvWS*Z5zEZ!yG`hcD=BLob3i^Cj zdWfv`0?%lA(E2!+U^#w8IL8!iCG$IN~4ul3hE0E{nGX6R1?TAc#d`UoB5 zOduB=bZ~_Hj&0yIi@7#1J>1jFFVNd-G6KONd-$40qdoBaTlqwU&Z7IfX{_)E-r&b2u1VIPw4ZjrZ68}!F^zwWDSGHME1BG{e!Gw+Im|! zz*u|eGJ3s|^@}y6XFZek3tlC1lg69W{sO=A^;h~SYj4Q~^mjh8tnhoSzY?!llMgg} zU#OfU^E|q5(R@>2D183xFpT2!Q83hK`?>-8)dNS?`5w3l9HZ${;MkAH%ltW8KMn9d z>8JE}U|je1^UWyOY5jB!(9a8{$7uLz^+od>1N`n~=^N{y%;|RImMr#C1NZa39-5p2 zJT*Qkakcy7w+D`2lOChtI8c9Auoss8iVsnAe^*7$*sF4}{8r__-u@mV9*NrDD7n>6 zzgPD=uXCYvsqqZiJNB=mXY5~-hSWOy%|&hhNZhPo2z^a1dXmrKA4dya=y-@HtV>_i zW>JD=ykE^#rdwredxm)1=zUhFlwa#pA&s4}KNA8l8^|sQBiEo9Uzr-0$K}Qs#ZS)lm;&&`M1YFyQ zaoI$y^+ug@Lb$(W=%hCwhaWHq#o`?FqTt2Q!uCcVK#?Iv1dY)Ht`MG2qf*T`! zDbyJ&Lz(2PM{o5B{Z!byi2vepUETD#Tt}V(E-}hlB~CwNgI@Vk@;Ii6o(dgQ7cm9v zxu53l@!jvVb4kBFxiF@S=;;e{nk@|j5eH$vB)oB*;kl|;XnL{oR za>F!}cV+WnV(yz=HH|}DH9lf;`ZhW&zKwQE?Z({E3VZ5fzbLY>|DwL2d2n5g`WwDxr;L~Npbeg8k?&a&)H+sj>Qj8)l-nqrjvCgKOE zYaR5YjwiBTlXGw)FK05ICj7j#auR2t^gF#Wg;q{%c>U+2j5m5;(Zo4?;q5Z!CeGk% zdIWXMk#^NFN7{~FbB-W;w=p(i_*+CytKeD2`~Q*m=J8ElSN{Ja3Bx1F3uZMkDK-wl zve_IAwnI9|xD8%df+0y8Is=5Zu`HGll3=q02yH4`EOntx8s}S}%(Tda&@}DDYUcF~ zgqemVYxxdoo7Z;&A&X=i9EME-Qhx9AJbG+-1Jb6Q`OWtay(B%$z31M0?pZ$P+VtPocmp8d6r^Q`wijzV2PDl!3o5FSLOTXX1~agtH=;JJ9gN@ z)XEbg%Q%;5Ip z2MqhUM9%Fq#b=AYS;zT8Wt?GULYj z3jbx_i7kv%D|-1<$>RJ?{N4-p_|uX_`ENwN8hB&)8x9ZhXEWE|L|(nlne;xv)VWrR z-fBi}363Q4swPHWd1K`jvM=qxXrIiFlc~Dg5FB>*e_j(DR*Mzy#0Cr9h0cK1Hq2dc zK$$nuJt$5=tH#UFD*LC$+7==B&k4PUhaYxm_{{;QPv(6a?-MuHWDE2fb36py#{BM1 z=4kW|*69tEcBJiK%e4-)74iS3Xk*T}z5v?ph2LHd_Q`wX%GzU{`|VVxep|@@8_`yC zgMRx<Bo6afnbS}`>1JM zpyo(Ppoy4U(+DN+u&hn8%XyDO%I9GlxsY+31^GLXQ9)!>u)h+KGa_rijJ@BU7HA@- zRUD_5iCr(}$~I%id9dRi#g1#X#AitiD74S)FOlz&N~DHz&T-ySJ~GD1C&IaTH4ax~ z5cf0xP|+y#S&=iuG9DHgX2`nR;S<%ef1>xdrJT_%F$ZOW_dmZ9u~t7;)r72eD-Y$B zAfrk+B({Wdu@|f5o^~Dib(pgUwCla)`bDmX^Gd8d&-ns!UHp5McGmR!N$r*0QWjX6p+Tyn<)hcCIP|bLVPu9gu2$3gBHzTuspS8>sC@Gx zyHsR`rKB=n`;B}vBR_)3rIUN6_~&QX>SdoKjqi|gC9J*BaByVBZtMZ=H?m?k_KEfz zJ772ViS}D;GUTxExY$ENr^>-OA>`X(>@iI)VP9sg&-9gISGGJ~?4(cZ>MgFV5|^BV z4Tik)so0)gY&0v^M8|RdQ@zMSHLk`kGO&d2VYDZ9ub1sf>{*R%QOllhJ3v>31pyjLZg^ja7daUOWA|I49Mxoj8B&Gb?3OaL>(0>@l&+I17A$JQLiY(;#-0 z$kMR*j+_-CKBRgh-;s60hJE!_>YTq4`wH9eea=Hm$8W5}Z}ebWx$zq-#BYr88TS(p zZFvcw5r1)!yCvV_{&l{bu`B-K-WY!|@}aBRctu^uOWT8L{>lfAQ_k{$eGv>4yFybJr+S_}3^`v%io}nfQxVOKP|N;;XD9 zGW^9|_>1}7_=_Tg3}4Y5^|MBcFC%S1j>X2k4PViCPV*J->-t>OSJc*+wc(PqHP%;j z$M}lwSYJ`v8?9GsFS5Xh>!?N?D(Wj*V|+zv>n?mngEq}qqzzGDu>&o}Jat1;tgmR$ zq}@kH7<8fYk~QC*Ie8=63}4ZpO?<`9v}wL#Y`-B>q>WKuu>-BbBRAV`QD3pc`(IdF zqcomFF9!SLQ)MZ6LzvUu`FpDPd#kXsu$OGaIqlduq7$u>)HOEZYH6p_v zIJf3SL#~YF{7*xc3C?BsftoLiuj63fl447LpNjum;#r;_i*uAH=Og%qr_tkkIde?> zK(U+7pvPb5|MsZegwOZ(o7hbU@dfea-`Q>r_(sWS-yZzJ zGuTx7P4PbQ3&lrl5NtE*ANphb!`+5|XxJ8mbsj#KqU4H9DTGED^KFl-sh#~B(XX+7 z;Rf9=eA_sm2EXuaS(hM~vmOg4hgi4obl(2FzMw&4RQHEE`GQ59^$<(XL2|LMO}eLt zd5|VK&3_?1oWVTccrRtbpFM`m!HsKDQ;qSGvDC(xvE0a5ijQxMVQtJ9cI)FC{SzI- zV>YlB_6?FV16SF=sPT~oP*>-1+|X$pWn6pgH_fK&zTXTPOsYrDQ{R4zlB1*-tqi`j-C^(R zE4Np88rPCvXCi;{5O$)RCobj1Q=grBQ{WNfn*5jRa;A9#&+Mkoz0{XT`TO|1X-e|E zdC%ti<;=@M+NeU$UZDwERA?DS-TSG#68~34PG?ZI_>c2=-UM&0rF{pG6-Jw^l%K`> zcIvY$cHbiE+Qk1-$}6QjCv|S*V3CrmExE?( zdP|-4u3G$f&Wjl03S<$Ju`zZ|)4D(jxyF8_Z=TadULt;TC>jG2d)@XzX`~b^g4ob9 zi4$RW=c$Lk8VE|i($*5bm)q!1u2t~+>;07h|Cc?T{*a;!xK`AgeChu1!2tMSAbc?h z{uoTYbc+9+b~d@vPz)cnotya-`W0FoCrx$UoZ9k9jK?GQ&2bkalhx`+8-v8Mns~1` z;VX?b*_+FoIQNn>27I9+C1T}0=Yov7(1U`tD!JFLDS_V5SNsVWL^60E?GioxvE*XDUpb1QBL2q{?d-Z_&N^)-1WE(dB#BgnrE8^iDPu%0j zGSlq!&Wytj1x!tJvkN;&Vngpgpq$+aep+$qu0V5}lFSqf_ci7u;6Y1kH2E#kWD1Gue8y8M+p^E5qat`xd#g!lmpRGjD;S zor_vxDGi+bIeva`CD%PJPo!PvHYkxobKktl`99)EB$KG zu?6l0jp^$C`=?-6rl-B?NWb+BM=3b^c9YFhn^WsZuS}~_RB)+vj4OVjoSU7)x$48F zaBenzt6^5;d!+MQ&V0Evca}dwyDNUqd}Ti5S64K8`@pxH7wlD(iTZwz{Tpt*McKA( zgHrcHi>Yo{p8*fAlh}L_&vEu~X76ww7|;)d&nufht1ew*?(cbVwzD+ZZeQH`S#@Hc zb>*!a$g}?P^Ys;RUz)92H`&$Xc)Pu*w!DSw=;y}LbW?Ik`eDbVsY>J$d%ayCpXEGj zFb0jVr+S$q?z+eb+zR-L@PKl+a|-ydg= z35`NuD5JNt8QuvFo9YjaHTxweSn>>l&~Rq5$r*tTgOB8_6``XS{IAhL`_Dte_o=(R z&H)YIr2LD^IqUfLy8;_|{=4u-f9e}RedlKPc3ye+F8_t4W`7Xcy41sXOFb6ellFd0 zJEi}m@1)I5^y?Y=G(wvnrrtx;Avn;8^h1s;%dp$ce54NH8>vIuAEGZVj5PU!^m8!V zWW0z-+X=W+MKz_N0EzGK26B7Qe>Iv9hv{}Tw7f24xf2rMdVFz z;{EQHJ9n7YeR(f2)s2Np-F8#2v*}>z*qC*ysaKuE>P3dV&H5ql!MM7bg9&vu%Yc4% zOTT_iV|zQ#-^chfCXuy@-xv!s?a=s(^TBmK9}J%lYRHAI#0g6781BD<4R-*WtN7Yi zB8$-tGq+C*v|7ey?KLIY)juq*T70`J@Cr8IY2!ZlP%{r?9?jz8<+CU;(PzE5sk{c=yYUYzB8l7D7|ihD*XxqTVuzQd0?_8%DMOIE=1p*212sN>{;^rOT1k3SyC;bZ1J_Y6MC ztP!yEQX<3oh|aTfF0N6A+*@aIMaEHvi89Br7L0OyQVx54Mbao|U7U+|`5(uB%2>yl z=qB#xK*w<2nZ-LF92o8^;u`)>q>zt^=ZpAAy@h<{Z(kQsdMR~<_0s~w6qBbE3_qQE z&9qNhZLZI#m><5CvG@+{XgzSN??dk0T9Fn$B{cAR0q>_N!|P4C%vtC$=c2EnXLOu0 zVG3>P4=ti^zcu`jL&ot($l<4u!zz4Wg%5%wbw0Q_FNP1`HQ@t;rz6PY2y;_p-eX@< zwi)Hg{8lafDJNMgr&ihjJK-rQE698gX2-;qyGtpWw5D=g;s- zp#S9g&D8T2&$&!}wQ+)nBj7rbw|G{@j zV+__@HxnM&j^A^Hbw_)V3u5PtmG|M5jbH9tzs0>coI_i);l0uW*}hrat8P4$Q|la8&pJ5Yv>e8kGVEM0%TXfnlp#K4 zCC`+M7+3G)nJmh%Q${vr*eGL%@EdYeZGRhX-lk#Kv&kO$;d(I{#DAFjsFqX z@8J-7a>qYJ?XjKv3yS|ix5u10*kjq(I@)7nuYE3iY=B{ZJ-G}UDz|(4tM)qgHZP0X zU%9?md+RX!`W&V2KdqY=ew)5;t{WEiF+QIryTadRteTURuur?sf9<{!_AquH_~>r< zXsxNQ$A%0a$2-aJk7rGCeR8EId?L9ptW;))&nBC~qw#%?vKRhz>UbkTiIh>t(Sfc= zg8Uz-MC?*0=P^vD&P`VCOP$*D{MVl6e=^U@{bZh(``Y{b*WPcZX_`h;yr&78gjW-U zrksTOMU+1SnwC)hG-zt)!O`_uh43HuvJ2rq?%AU{^IqnKdhh1)MZ|?F4rCn-<|&bR z_#egpRO@iV3z>1=GA(atq(Y9QP5+%iJPW_idNQ?6J-(&9f_Fo^Z2lJ3?zXJpGgXN+ zJ;<8*eRlr^i@o7~@nO)*gR376SJ(#nRFkQWJfX9KG0HjOA@pL?Bqeg82w#}ox%1eM z$l^eSWnI9V#QDx~-z|5Wc07#D5f+^HB(hnv$62qd;v=#i(5D`76%bqXS&4D+T)vut ze!NCbOfTJc3KfA9;43-P|LAC10rvB6P9K=rFG^46)|G;({sw=$8QaT)Pm*1o)!2*q z8U0_ye?9(QsM`o8bn{_lf1Z?oi1n`Ctzv^JkuUL%Tq{mia%;A5O>zz7nuj_5UHStW z+%Yt`ph0{L=McNkMn9%wo5=ifp2WvX;M#v|D=$@cJnY1euKalAvElB@Mrrp+%JeSP z>-5sk}$~kcEI)2klhqGnbE5*bRTu$&&HM& zT*x)n=4)+@@<}G+H!MzBmQGt%N~~ihV^zJXu|j@Bn@SEqXgu*0>N5UIy}_y4b5+4V zU7HZh=6CV{pV+I?_f5VT{=$FD)Y_3o8@AyWuPWk9Jp7xr7VOUR*XGE2H!ovdL!XGh zCNUj9V-;e|Rx9g%aOGGTb4P6uoKmg+l{Qx7U}*fVnmF?^nY=*8tr*+(X2xw3*a`SP zdpPCRIo*%s3+7~_55|L0hsI9#YvXd}J8kpK?Iz#4Ke@2!M;y4z{oL9ZA8`!FCz3vu zJqu)f`m^su5W9SBZ_ZF9PxOvB{xiR%4>S2)k?}`Ii2g{A_QwwM>5Z4M)9I_qyu#R_ z-_+zG#F;wM8DuP_eFf}`x(XcPS-!Us7vDZ!IlJ)OwK*4xT#;WhuEG;m{0HGJ6~7|1 z%kGyoxTVNAjYmu>-%3Q|D^uUPATmmzMnDSEq3`iMJ_Sd*hW=~iS}QqC zt@s?RCY$|JVzWyRj60gmN9D69F}{P(A$Hd5*iYhfyn)YAI#Bl)l7}C0jKg1e=Rl4x zP3%5sPER}1=64LorW1c54VzBI&cs}0dzsRhdy-@!zCavnF;n=6)u zGq8;oLUZeZ4Bsj4St@eEADEz#-{PYreZKBw)$iRtW(<+h0iZVfXx80UM(q_w_ zjkaz6ft;h_6YZodv9-mP7h8KL?~ARi+w%H*x-Fk`^elD0!1IPJf0lP%;CZp-M^o-T z=C5wk(|3nY-#P#AzB_fB{RlSx7~eZWbBv8oURvaxXuV?NCsS{tX0yxtXYN#ZU$@DR z#MtD0KbKA3K(5pEZ1OC|$^&k_4BEsdhd;Zu$(KT>*yM|$Gn;3{CijgVSMR~zUZmON zSw0)rD|2qnCYN<+M<~;<6PvKvYI(m2TdY>QuG@!AbxK%l`_ia=IIoj^SgP5Fl~MaJ ztIa+*A*o8K^9%B#MVrUS1P+~Q)_FyUY z;55oxg3UL>ieGdCdrce7d*amKY z#=8)Gi`^%-T<|_@zlBPqc=6EL!I!}j9|X^1J@~WO9`ar>d#eS}d#U&fhD|6s&NO78 zPwpSGsChwb3Uz%^!7$eH?1xvxrt%US75gTLULVAmoD&YV4gdBZZ?n}qc}8M7=e2f`2id7zyTu+skE*o2WYs^@KC7=rYoF66bx3~JwkgDK zXp^k%Nuj)Y`a)gxNMkWJN|>BAepdxQyEfqhzjs5cs?nOs7^B04j^WmN83V7_wnFct z8Wy9|UJXtlZK5xwKGA*8V$_@ii^3dhu#s_9luW)|SjY_9B|spJxZ~&Ol;qgZx*CnE?znNPb8r<+sJ# zzNcvMwp59?jo)0JNxUtHFCnqFe0~pnZ?<~?@rH^#a!RTnX}omMQdeQ2ZSLja^?lqC z=bSWAtQ;S9CNUo9!%{6iW~*1w(c%xM(cb06#@0Td=f7p*`>4d}f~OMvD)B3~ z7AMQiuc5q}{?15Ek~1>Tt~`A86TAQNJS7nFfOo+&Ud|v)TQmRIm66PqQP`begFDk$ zdx5UD((jdEgH4vKEXmJR|KP5w885L+)e}O;+tAgj(3Yl5U<0B7mqyO?i+>;5)yJ>W zJ~!>V1K%aH4{d9UrwqYY8rtyoAZ6S54N6@uV>OR>$_{Kn$>EiFN^vjUf434#aS}_h z5ks*PPe~w-GH}`6Xbh!Ri=o)SD{4KJjZR`M>IhrvAPmDy`ph4Vmq>p~e+hqR*Q2qL zF4u{ZNQ@-*`sE@e@Jv}sUKk!*IXx}!nOS-~MEq1IxJahNLw?@N?*tdg1Q!8|^WQ-{ zWEAm`(Fc{fF-4}j%aiayA5Q(7Tzze- zUt%JM5;F6cf91$QJswgYjfZSi0_QEs4d>{`tF2}JLuQGGBxO0Zct~I3Aw%rVTRA5t zPYE=G*Ef$>0;eaL{g=m^{Om^(6B8NQkU`n)F_9Fo;{M?3;*TXYTp}KM44mat+TV(w zaOR~_+9EL#N5kdWu1Enf5!SdQPbMaElDOkC=68pf$aq&o@_w|K$Vk4k<+sV-T4Zv5 zvWr*=w46ZxeSmxsI@)3)*z)I~;aAk%UT6P?uT%a&VjzRCpD)Y>_w?N5zdRcZ99n|3 zP0Bq>nOEK~0}mIUTt5$8up?>Xclmrw*`LsFP4s0e{dkTxK0`f~=3%!FCvG6+N}1BW z5N*9IF%SAuVjjUF>JgfwWp`JutkaeHwOEHok9EY-Y>b0Jt5KHpft07mAX11&4Q-?I zDq|sZJ_MaA{9fUy(Bd3k=pAlRG@6_4gI;8&7UMAJp4mOkMjf9J>zW(e$HFU9!5gq4 zN{Mf*CBCts>Drtyb6ed5?vEWF!sfQW#`-FLH)Ds-Gub^&Tq{KvHfPWDpJD!w0!KcL ztlqLd!MAw*mZQG+S485mRqdlk)i1*K_M-#5ajwWOusa0X+Kru2%5#VKEHSwv`@oyT zzIq<}VhPXftK&bi0m^ex4{cpog)hJUt&^2N4)b4}m+Pu)wxFJNDsb&m=E zLbETxJ+NJ-Q`CDc`;*)04Ys6?#%cVm-Gqs~QE?o+3m=ciHUBJFwpW9!7r{bZh( z`@A17_qF$xuoaq|(Bu*OT>1l=j5a$*$Jb|5{&Z*>P5EWeR0F*>-YFR|stX1txz>$REMHenURKU|pKs!FOgCyeoydHQ2zr zv^sZ-eI|GpG#YqUupjmT^ILGHCiqJ5kF*gsUrnmbXV}5Z#?bGd{E+U62Bz|2QJ}V`RhjTgzxKk!lU^PXz_yk7+8dX5ecpmT28$h ze(>*(kOD?D(-kS<*>rL-#E%nvNY*Y3&QcPK<+Lh+lP_B8WUlF0j+{BD_l4Mus{7G= zqYosXxJ2wX{Cu&|1e?mVxT+7q|0j^4CzQ^HEpSc3IXS=s|g4jC^ zGuS)sC)h+_6aPWq`x|CECnE6?>pVXyD*H0Iz8e};WS<=xh9UcG?nvvaf-6iql8c+X{(2 zAs6k1#IHmy3O^I)b`s|nIo?q%VdH);O~+zPf(JZ>3==%yM|_`0 zuiar*^43)@4_{W)yxmXee)>A*^>6SSGgr7G5(+g<(0d+`bH!8e?Pk2o7&u^c~g7WuhxnjiVi2!3Qy z&pDf|(VR_u$hX^k$fp#|hwO_Fsp2=@f!|m>bB=R47~-5g>jGA=JSV4qCiG+Kl)D0UcxlCm_nvXeI@niOe*qS0C;vw! zo_&(MvQex1*Ka(K=^I_(@&}UReJZ^BI{!~w-H|hokFS4YO+x*Th(9}-*O^=&$Zs!W zSb~4*{HC=&g}hH&#!*KaSefwKr?2$&i#*q!A%~Ioe$eCtKc>8ruUqSz=+jbg7hA>= z?VX+GK}Vx}r;-CEbYmi|jtk7iSr$27RiLrk%BjlF)YS$Vk0Qv1xW%{Je0K0%B3nF4so ztCR-9?-83L?^Egw5+~@K|G7k4H?QY^CXH;*|7?uS|4isP|I>v(t=w$>C*{QEf6n6F z8|QzLFODDfw54yJhLyoHV)v=|{lTY{z}4kSWIk&#Jab%uGB3Jd+>?P?+TAb@Ec`83 zVA|Fx1*7IEc^coK@502WC6~4gT%jV`&&_+1{FU@^kiM7x`u)|x6Kg*#jTDprSu^gg zz~OO9ZUS?Z{HJoy>nkEN639uwCM&HQR99NPq{>D-tcBdr7IH%cA8Z+^=Z3bzr`JsJ zmDAFdi)9kPG3{0daA&ZpfspNvL#c!Q4mUz&glsS^W zdm8y581OaXMrWSf?)W@)y;B*j3)@U`wpyv{I61)AOo`1>mz4i`%6p-k@_rpt-f#QJ z{`Er}wjpDlLSH_MT{s(Ts2JH$LoU%IaF=523H8TQnCDW$z*bjSH`?uBG^q)D>Wj&94T5J1K2uo%K7$UBc&uPF=N7VeHnd-bh8ko? z<PR(Y>PlO0MwXWUcvOUI`9ZBuH?o1wds_;Y5u zEmg|73U+aBA=k?E@+xL7id@;?3YbhbO{Pe>($@FxNy+<=cBRfw%bT<>Gf&GmWqicn zu^s4BXFrfs*PPwkZ`+AolWyX7AAkG-YhA*D8Hf#f5}+U{uAUo`b2*C=$mgz9yE1_ ze!`fNtJ?IuUVk(Fq~!yHUkV-PmQVFxok?Gi*V%%7Xw<7?Dtg^w+l4K?8uUC^z3xxv z>iAiK;3>p0Yj{R-U%g;JQm54S0N6@1b`Y3cpqajJ1`CwBng-(|KL~AmOn$-JL$o)T zqy)gL1GGKRHWu`$)GhT&zJP`YRp@w-);7jfYa3(Ro(mft+Z(h;$8Yqugu#WbGPb>G zOOQHa^I+kp+e6gTL>&)+6P=r_IwgOknXzkTo;2+<`@6Jdc?>^A+Ynn{%g~PFb`_o! z{s~RR9zo_2lh*QLWq!&0P5-2uQDr(F)3!eC09Y{k#d?TNAh!bSB|PW#Al=lut>tf_+W*;5PKJQT?+u-l+WawyQ z=;?z>z>uR=o#d#>TIcTM=q3EyOCs}bAWMS>k)y2l?kY>4w#yjxC`<9{Mb=(Vo=ThN zj!wy&G$}3bO6~tcvNY|#kt~Il|8iLh4gX_gDQ)?i$WqoA#E#p|$kKflU6vYhtPD9O zF*k{W+t9Hd)*-bVRDS7M6JLL{(iz^v2bFx^DnpKM z1p8{SjLPzu;_c2qc&a?(1kpCf*7#nARL;#>NHP@@V*&>J+==(n#{KGfe&q;74M2nQ5bD zcSW(W7JNCe=lrLQChK9T;}OkYa> zNDh1={S!}4zVY5B-W$X7Z}Gi_=ilJ7iRa(qvxVp1;A7M?je6vH4?Mht7|dp#T?`H> z&o2Ro+|09!!6EIG?|}}+ zei(J^2Dct1{}XgPyIAg1=QO!5b#gzO|7CJt{#)>u!8pbj4y&tJSrHaFH3?aI0>4S( z$AUx2Gji_)F>vFW*tbu?KO|-6ooB4JP65;I(=|6-$tCx?QnC3w>^?3OAJhM!zCY5Vt;Z@mc$4<=Z3q7zw224 zTgjyws>SBCF{LjA@4rO7;s@2l=7evF=7bkP?p8rDjTk=*WgSxezvS=D$*)>LG4Y`4UoZ=-!RbM69PmU}Td-A4T# za=P2cbO`UY(HN7{ZO|zB+y;$$KKIau52G~Nq)%5?Re8zft~j&$Sm*HwGFPN66~r`C zh;gnZu6Yi8UgngAF>!;>iVm=jrfpG-)<*13FxoOOS|54VGM8k(U6BJvvUPh-Fg|RF z&t=cKvFB!pJvXx5o+~@r9?O(`2C?b<*o-2}3>)sxvFToim)ZYOv+0sq&nP+9FLcPc z?%A$0Y`PqDZ4U3c$hqDh&AIl*8#&j;btC8ckd|}(7u#{<$$cSqTr}VMf07;b3jEid zp8xNn-_e;`9JZoDkHZS)ENdFQ+tJ_Hc{Tf7k*A5tZY3rgYg30i+0^>_YTd5ZY%=U% zeGh>_4I@)J`HRHNqPWTrUU> zZTR6A*oNCFTVxx4s^S*v?lw#20cUzVJ`4c8D*e^cY__ zro|VoFvjjAaO>|a>k?P+K5pP($2!CmI%8nk`#$}Bb;~jh%Z!a9NPDW1lsut3KTgdn z-Wtsfm%Yx=e}|AsvX|Uo^yn~)o|m3NUb>nA_J8ZTa&3*F=pc7RSYpkhUst0;QE@i`f%E<%AAYuCbMr})TUgo+m!OIEJ_MM`=MmSYPPkkD|?Eu z<~z1u#V#qfMEg~8^T})K@xh(K^Rz?FWWQHp@G`Cr#yd1S-e16(9jh5{S$E;}h}{lvGtT0NJFyKy*u&21 z>Ts=@v6gkGW`{i!-+U*w><9FRte22^$6hSjy0`m_*z?F@()NZDn@e)2LaXTK>XnUt z#`_{`3N)LgdS#W9|NqJVApJ26USGhN2wes}=ds=ts$-ZhsPBJg((>#$Y(KQ|__Oz4vJCJyMR-P+zFZ--r zB$jF8`BL&Jni#jNB0V3ca>S8mve`pxIXOAm7IKSO7m!XYeDrE-z2Iz%$;H`6E>1i# z_BRA~vynTq##!%NlUV;UYi29KI7+$x4SrkW>34E*S~uWR->I@*#N4)Cq&SIw1H+XZ zoLVVkv9&&p`|B;KT6|pkPbK%o8Qo*e%l=ToQ;B{r`-uIJ=YPnaVux(xlFaPqyfROT zT!qIX?_0IJ;S=m(=VdQ3nOpPG1BXT^6Lvm6{}}k*fP2VMxR)G-`^ZuF2L6sppE&6g zr{pN~f!-fa39Pk&A+IGr;qRjP30i*afQGwl$~NRuU^08HX?t$X=6UiHj6Jtn_;2JS zT%E_hX7Irk=1b*RJwIVQ_CrlHKOqe6@`$y@ZY4)y@B)9mu*<0=HwFks);oul9ynLt|1ZLu2?y&pPN3sG7tL6J8{Nsv!BNw75l-)Iuyx8XnUWv zCh~rewIx^QP4~yz57MU4;*`9ahtu-hYxH#<5}z!^HZ8_34ep8amtvO|W0wZ^^!86< zUCDITmCQJ()Xgj+|6qKAzjac)-^(6bZMg?vC$h&@Z0>=qC#fL!U^lr3`1HiW9i*k| z`3G7o{pSOnmuO1_*>DvZTcNEb>6=v&%|Un-8Eo4HcKRavW*_+nFLs}UK(HIVDVXSh zh78JYUsEFM7zUHODEpc9WnD>f!&>mhvy9WH+O^b%)=AU+r^iqC-%kz#dmbjwi{>EI zBDYGm!`u7x_`lGrT##z^uH#-h6<|6n}V?Rx%!$U!hQXp%hZ0bTPDXzM4m z`y0?=)X#d@4)ry^H;~+l0S&U}Rx`2ltMA?Azqq_(zJcJz;kJ4PYW0W>ueBd}8KEBW z6Qqx&A3nWL)|@0a{2leu*S8z(lYE2oQzb89U_&$gEcpgfmzHmU%-8Y_mhw&ew0r|{ znI+#Kw(i(^ze3(TP2L)#TVHpka3iJ1EXD%6QJdj#N-_G)F#2WJGbX5V|tPH z*l3UBqwcP3Uz;LzN_|G|f!4N#(fk825H0_pbKB;coSoa$j;+&wk~b3Nmy7VC@N=k$ zxhVNomOZB}r`sNb zgUka5k##O2(@M!d)N&cDO0wi4EIyERv=kh_bp1e|??3dlE>7~gvx#G6V#CTFD9@+Q z)Am4lE`1p5O8CE%{|QRuxt;vqPbEzo1EjXBHOm>ua;!Y5c8^Fq2g zyqSARymO{tT>V?boPM!$O8D&w3T2wZndoiF`Q8NG#9Ja>=$72?P0+n~ApfDeVhHP6 z-pAfCH6q+2@ii#)<|K~Jj*&5ch>$q@%z9EBgOD} z2)j(Ho3=Ov*M`2PS2K?e1H)7Q$=h*Ho9uXh3OMRO?1|u>nXKV>snOlGre#I`y~M$` zLQh3yW4?iBi+!Wny^jih`mVm7g?bP3TsrwM!q+ZzQ zAx0vY!W`-I?XJi@^moZVupa#O`|#T<&G3a;=ZlN;EdC49H}tvq+WMZo(l;sXeNKOi z5B@Q6d+F<6lSd?VsnIorQiqgZX(py*)^muYT!|+cWeXM&Y3uithK?~My9M7zG40rp^XGbON%lrJu%Urp z?}!Z@#)s~V4K=WqQLvo@(LK}+Y)E8uJ1#V+L1evPL$#G1v7rXmJj(mKS>qUs3!Q^E zj1h6X-j^cE7{7#4?Ik z;oEGO={MpST6q$uk^FRIdGM{ielO>=uC?oDP)K~BhVyVH@GbBEkl#|?QE;Z7#z5G zZF`$f;J;|`nyH-Yhg=bVB)En9-R}8wADHgFV7vE#@y-G3oy}U!azEIwwpKIJbp5rO z7os?@8oS@mQ%VOMSoZi495|P6?`?D3TN?}vczI)%g?uou-Rv}L{j>=#|6cZnwQ-xeR3 z?>NDH+xG|(%(q74N!Je=1oK@cn6IgBfn{hL=Igy|V7}w?cMIk_JITKr%y$RR?*Q`^ z+(^THx3j)w18WYpuoh-%qCfng&3~c{j1B*AcNF{GF&tjKRheK~J^$E0peJWXvEO^5 z*sqtq5bRf5pVkNd1^c}Q_RE^=Kw$wGvUcVIauJ?>jdPT>b!o(l)$y+tsL?fP)`j{S zw2Lzn{1=gxg85#69~xrjwe>-LO`0*M!<5%8<~tqCmo;WR;k~=*y9-(!gBn!uUKPC8 z%6t~Q_zH4ImkV3%7iY5Hf>BNk?i)L|>%W>so{QOA5G4sGnq6a4ug=LO1$EaVI!=AeQ1)`0suP03lWng`fRcY(vai0pU?toP;a z@!nXBF2le(`POw8cqh2v6>!1#(go{H#ZP1pp{Sq6-lH1MyS<-&mckRr8UqLIu+9uV zxe?C$NyZF)A0hmME^Ezb-^&%}hRyV)V8}Ov=^AxPeX(`P845y&;JW@;T=(U6TvtCIq8m&%rY*7U z&@kPYHW+yBV%l&cf3SJsjj`O$ZE44HQyS*PjLk*(tTT?glRZ0bk7Bqr_(z>FTz?FP zTZ?}ra!#@{ zVxK3kct#wUEqTTpH~5Zv_-L3d`NSG#OFprN*^<+&VYYQjcyrYEF)&&3_~z`3!DKt{ zS0s3`_+N=UpuS6BI4SIg|Uf)R`sssWX%NmGWQi^WSUkgqsqp({a;w zj8vY{anp7zRpQJVZVIk0xao^i$TjG_E^w(k+>|~ua8uRdDp1Fh3-P3`lXr+t2RGfx zcj!K_`Rm}O;^T{L^Do#ml5=|4xj(OTDYz+E=@78e3g(#9Uk08j7^iBo>id0zlRB_X zuA+|wBdB0KNpLLj?>%>GSU?GD_4R##sx-{>SI{E)sou)n9dT3ihBNB_Yx@9sqPS`2 zeSqL~?7;Rtoum1?nVoRcn#z^YJ%8GBcD-$T{zy(am?`ZD(jLKMwVYk%w7%aD_^aHb z{bIuyxw_AyJBJk!%V*!4zoWlmb>yEo3-^DLj(l0x5>7xzy8hqMky*F?*Xl?c_5ZDP zShHKeAEw1IuzZXjth4cXfU+QLxfS!cE9W9V`7~3|9KbE?DUVd^%Z+ z@CtaT#G|^EdB|4Tr@okV3Z_1?zgb6lR}6-_oZP2p+3#x}IO=8EA@Nb%?xo14BLZCmlmQ@{^AHcg5NWu^8%1`s{`nDmm}n*$C_lzP1y-8 zlV{#6Lx|k*98D-7=E7SV3;a?oB3!qhGl=!~}_SPd_8Pngfc;z|Ho9z*= z)cRO(#r_TRd&2l)a^O4TmDk5A`!|$Prjh^tw`jvu`o3Gt^)G0{?UZR?l$YL}=@%I$ z@@qf%qzXRijpCEmZtzKK6rVJ3jAq7h;OLI{r0io+!r6Cf43=TwlR@s8qUS{lMj6CM zip4S7-qmv7wvzj%VInjKNa5qo%D}< zw_}ud`;9%kV=>C}ZzcP8gHMLG=sC_@I@e?Qn{``N!s6%Cv0zrbAQ{c04G#HVxLhTlW} zWm6Gn&-THOjP6r@;*&m0Pi#>3p4edGW9DPo>oWD?6Sp@sA|=l~CM~aIthNufw#S!> z%(ZhiZZ>Bw$0z&BM=9~X>8#D%%ld^x&iPE@jOf1PTh@JRW4Vj7nIGW!Q`Gqt&Z7Rv zlF)ElFPrbT6-%n_x$yY0pPO&#_cLos-d(n|ydRlefv0YB1&(LE>o~q-=kbJ8As5`cX*M^pJz$+tbFkq$I7aLs*f!XX>}GT4qt(1U;d;%)VqCI*Lvl;XIW!xy__c( zt@lJ*y(!e2LcJ-}o3ggiR^4le?~a4}tLIX;^UHJX!z>QZ*IswfoD`pUfam$#|&^S(h}yk^#U<%??nB{kai;Y#w~vi+Uwy?*;$ zzx*P{ymQ^x8}pwr<`b0OzF#xu|IFAP|H-n*@qVtz3V7{(^I(nFwCk128aXGT-wJq* z>mC{N+tl93gcDWo_fj6d2(NvtK5750GRXehG$r}BtAA#Du-8D}h5h@h|Ct!5^UL?z z-&Y2De)h{J9Ut#ks=@Q>{;4nPLdXM6|G(_n$^K}_>;bjN6Cd)V)XCY3`4 zRe>S15|B}gb4J(iB`0w&d5cS+le4RvO~?tkw}^WiM-YRFQ~E82*6pSQPa3pteEw?n z_BiF?#mKeOmQ9Xn?A^rqjP{L%tXo_2ob5ES?)mEGswGNz;#i((C1-cLDbe%#3mYBJ zRcBXOM?N%B-MOwna?-7Fn?9*A&Cj!Q z&mZ?t-kr>u&VA-YuE_n80T1Q9!2Njo&yLI&*)M&xX>`y1=i{D-{_{lpZ!P_|gB&p_ zZxem^3iL1G_ZiD($4t{Lx1Z*W?7gN$``$HsZD*kWt?HJlrSzfD-b^39VoLIyeqod2 z4fa29nje~&Kp)0K!*g+?>NnDd8>3@LUpKF(4~=`9>BEigC59_>nKKfMX8pU%hNs6{7 z{h1dwJDxWw)g`?uCMFcFD@de|#wdxtB)q>-cm8_YU|;z}uoOA#DU_kq-SPE`#w*}LGk3B_URE`0GU96NS+r#^&&=bQlRv9*3}=4-><_)SRX~Fx z%M4>nBX_ z95-jZGt8nai)TN7!Trfu=*AzIjcs3!jXw)p|88vlndB_YAZJ0}U;6bABxj)){s3qD zJQ&Y2#KrGRBs*_7StUnAt1P)DWIp7zh>>23p6?_Fo!Y?r$1a7zm{n z22QY+D}fw@7JT|&?R3;7;4fq-3BH{9uE03f70uxDbPnqR_)I2dpPr-4!PftU*!p`9 zug*`#4_IbS_Kjwr+859bJCMnXd$|HTO|Bo9$FXn2jN$b;iHa}BX7c4cf&O}eb(mvW zqkwL<4}Z(?K%zS`V|8NvQTA~913Kl5d?u^@AF|faqqqX266|(&rYo?=dDtDUD_oJ~&vD-w?ZwBvoV-GfdG zv`pe$p7BcHD7^YUbH>MaDbGwM4<^L(N2ZXEW3t-kv9H>5@YG>s<8G5`7rtG*I=Y6Q zSm6BQE6B@VSDu&tmZRig-qG|p^U>ehlv%G?m02x$it`lX{*UC6{1YFEE8$0#SMZK{ zAkTMcHtTcfcSoGr7rehZe1e$!Nw8!shlX`XD*J;3S5}8ZT9rN z&6P@Q)ImSU^?}3=mG(g-~UjTgW!x}$M|M&pFG{=0b^CunV#KD;nVr%&H2s=XhBvTh>Uk2_xN*oUVk zgV~S8CZL}p^l{5M!ms8>8)$p({<1L5q^hS7D#%$W^`1+@rbI$KBi`-#K@zuc3 zqu}Ej_}R&~hdDPIySd~#JiXmw_q42npFL52Hh1Oc+M-VU41XK^Jo?*R`B~1LE6{kl zKpT@M?eH{weSMxT@I}bwYv<`ztZR|88rsL=JUp+D$107l)8OS;p7yeD-4OaguKjxt zymAM;;yidq2fCU)@bRka@$wy7nM2?cosU<+$3r-8OKF>Lv2?kjbfrhx#&qfYn*v?uHU5=88=&Q;8gihxT$ylc<*Kmkcd+hN*2Esn)Y|gds=LuM zGtoCQ&^y!7Khw}nWt^ect8TtB?6}DP$;5k<`?(`c{gsFvU7(@|SL^zL`-bc_MR|5Nb4mI_${Ny* zZnz$e&8f_#Vb_~a-OvdwGPkZvXN-<$qf?t(I-Qs4vp_fVegfw)8*|I($0mcu?4I;j z``n_hG+j4{yzvQqME3?)(s!TS#oFKkG6g*;N7Fl$2<9U zM)g4n`wrxx4^;F)ifORM#|bff9710?ovuJ4{46@b;OFh#@pHBkIFq64gzc8DIzf2a zA7kUxpd$`NZJdOOU3t1d8v|V*$QXPNoxr^8V&ljj`#LWdXuKzUJOukk=jBJkC$f9u zkwl5iH_(x=c07R*kp#D&}hWo`D@ZBI@G%o8sXDe`Ywt7z}As_Vlyh8bXdg$ z`W_Jn(imI#2-^`G)Aa)@{sD6-QZn6HPhYVIyv>(sReb~2mjqPKl;I4;GU;zk24#HJ ze{muE&f_QkBjfxLy6R(OT_1i+KRtl#*JJ>F)7>+&UqIV)+U%d7}*JQjQD4U zUb)CV$0|C-#$F{yW;E1u?wIChOvBHx;nT`B@i$t~Nwv-xpCb=lG+*=XjKPIgokzW9H*1`0eEw-SRI{pW|z$p_zubvY2zRbI=_#2S+=)&cQrw4(fi!ZSeMkJ_$UJ zETF$C`VH_ctYoew4D$6Fc(+sfU(Ou;m^rv#VZHaaIs1tH!4@!gDhBcF5?5eA@*v-L zo+t`@_sOEb#~Y^l<#~Blo{{_Cspa10qJVZzVYIC4*@OGB2d{hIGVi#I?Kh#bg1xQI zBM+>}1AG^d2XZdrh!HMl@AN`vAM{0MIbh7^Z$ejvIk9fQzyZF20|)xPJKW{`*=^!)WrrWX2Z;PLD13p9lA8 zN&>U7gVB_+pSEB$8(fip%OS?9VKj*vMw0|Sb2p!_4N-EPd<3I8nWD^@!Tteng3-Jg zgVBsJC;HyO7T%97yaXHlz;!U1^ufv;8JDs<`_{h!CUY8@cv`-(*?)wcEZ9sucuWO$ z`cda0#|(a7#D1^gT&WA#Gvu1-XL4$|jI~Ex=G55Uez93ZHWI(^WeYAdQ^#dSW48!q z;zw2rE)$5_-xH#Ci`XoaIKR0B+xrge&4ycDPQiu5k1gRd2D${3F>IAry0KLRk2w>? zV_vxl``eH0V%RF1mLn&L?W@QE4Ug$#KALV--Vqz+=VEVnW23M~geD)QZ&l{FgEL3G zg26B++x%5>4n+QV1v~g27!3CeyQDB`V;i#3z&BQi{J9P-O$O%DgG`L2N9LK--6K6Q zvbqC3^uu3+9--x;CjTUtI_lHYN4m|S_tE}N_{v9HzUq%)&vEuj;0(A^N|`d@4EvJ{ z--~aW9=bN?L->sScOpCRC#C(<;q|w`K3n1SR=$bp`C4A-?H8Xk0iRTO{dIWiettVS zLo9{Qsqwl$>c$sE-$dNVN!hQ*;Qws+--<8lHnW}%{?20lIhlW<4Hmz|_++miv46xD z)i9k@&gn@~BAtEG(<5b0BxpYA^aMu-fArVPhv%^41=D$o`QT(e_g&9!sktP&SuA#)X%|c?>m_z+B5XqiRc_L zXw>}3VV(R)_%D>y)sNg0^&@NWBkx5P{|H&U629x|L*CKmLx#|!&UBY^0KAvUCp2F7 zAqU>Thn$DqDty?T?^ueR${r7G__+9vyA3{^+C3lMg{><7*!lZD4<9}j#Sq*3QnLv) zK735$!_Izr1l?osq2Y&h9(QMSZd{M1SUw!Wyb!-N#TA_&)sJcTq1Zmb4!o$-)Wov} zFQyy1Lgog%_(jrmUU(7N>Rl=Q6yp!J$z`3Mo_xUtw<~i_?)s{~gD*HZ>I=e?J^F&k z2044Wvkw@=UNr1MZNAbEH++t{r2Bzg%iDq3xifmq4d%|gu5-tTDRq&VUpMTT_PNt8!@JrvhCC9xTbJQFCdc}M4mOP; z!`tRgH#Ei0oi?4q{<1yG@F+dq$#9`Zli^<+Jr|fWGIzwL5n0}yyf*B<&hlD(y7TaL z7r%}<@c~%K$H-U1ud5(N+LK==eG&V7SKn?hYhLy8K3g>te}&xp`=;Z+Ov8^U1M4p( z4&AFxd^?G|ki#f3tM6<3S2IVh8?yov={aVV*db>1L*{}nicglUw%4yXaA!1LHQ2WY z+eYSsn~%h*M%_%Tia0_~_DyXky`tGSQA~2vfR1ycBr3z7M5ll zV(RTqe#`Y(dfIdeJgd(M-LC0Oi!nz(4=plJr9O#6b%;TsOAe6_a$O$mj31ywH2eS^ z(gi=D|4%ZfMK8qai|gVC&~!4YOFF;P0Y8Y*CGy<$XcqjSi1r2WH5(*{*QjH1U`HP z+~Gy`8YM?S_BcMb0-RyFu~k_kjJ$Akh)I!A)8|JL(046hZOdcGu$OV zOu8y92gz- z%@Tb6in|1#)MD));cxE!=3Rlk$g+LVycu0Cc_gO=!{r=r1Jjj!l3}I42T z$R6rgYl_$MNXo!{-zSem@tP_gC@#gV=!?@KvSUTTBzmE>3Kz8_y5 zo@|Rv!Gq$n?G_&y9&F;C_(t-4n?5TNJ(1!IVwZ#;zGe0|@TtYWcEFogpszUNJ;&jO zcHX==n0-=W_;Uzjg}e`VM=7~0dc&hLU6FGdkM@t@(ZOvz`UE_Bc0(WkTK2y`hi_rX zAdx>-;!Eywe?8|dX>w>3a!7I}<(kBoYDUD!qw&2pzrs`AF}5Up^AvnD6u$8#vAPAm zc?NkDd|YJFdtGEv8^0jGoX8(T4z=;h)^=Xm-kmH$26oFQTYKgckwpfdY?{-RPpY6Z z`(S<>PiV5J8=h#FMfuv83J-+Q*XrDr-SUCDYGsdn5P96vKa;TrC+$%d4Q8w_kO%pU z$Rfr$tc`O@!&Tb)A?vI^f+r1G#C#cW6&dTb>oWE-*f=;%;0|z`b70!%#J^ zWu55=;?(+nd-@*7>yfb{3vWj58Fk3>Qsz1EPKg)kzOA{TyYio={EHi00eMH-qCcD3 z&{?KlNV*H1>56=W?R1Ixb7n4iYO`63mkah8qeBh-*&$bLR!puMa#8fBk*g;8msRLa zk#CiWdfsI<@=aZ9?jMgXx)-@7^K?3MP0mA*JheMb@w#kVuJh`1=**4q>?Y*%7Uvs| zCCE09rZ;^KU9R~YBC|vvYI+l1Ze6A8%~E9OJd>_B#b*}1Df(6PCO9m5)28W7$yI1Z zkIqAnZsMGR&U#bi*rU+vi;-bH=}y5sJIFBlQ`$IGlU?|zn*P+!1T^&LZixZJ=+E_0 zzaV9;rN2t7xC!~ylkOCLUB%uq)gqVBorYYxqVa2L2i-Y>oaW2$YjKocL(AC{4qm;w zioLLwcjnU+*8Xx5v??JvSrEW9MDC5Bu^j z|B5ptxj_~sAUddH+uG~+vDi<{cNIAoL>Fswknz#qk#>q*)2=hbR?x6iu@%Vo$wNN~ z&e(ZArC99Re5$qd*YKqF`Sf15^XU%eQw#I@|6}jnU5 z*Oc|dqIGweHU$?o((LtxAHl8y*i{F1b57g3${YtQyOMZ8?CJpeBk{u7Y-_h=Tf9G{ zuWfxB`4soHtA56T;W2h4_9UF#mOoq{YMhVlU?1(oEZ*&T!L~~^WE{=ApSNNI)4nX8 zv)n%|YGWR3OveAVnDIY$>=*kw#XG<57yIHl)_8D~Hh+k|e#DqyjR&kZ8hjG_Dz)qj zA1d~B^j0l$^j2)_jIki&44u4?amOlO*_ez4w~Ai%wX>eG#mh ztO~h&HW{5u8yZ}rI0b`DP60k_KX``ldL-_zhEq@kr=SWOuO7;^%(D+l9TdDBPQe{; z3dEk}`j3&9U{!LRTys0Tf;$wiK=xZR|39CNpYwlk0r(SAUw;!^sVjQ$ z@gY&J)KGm$vFNUff9WSF+r-Gh@$l8clOj%4eWdzY#(esq-|L8hq%YNV-G1rJ@?^}A zXFiBNRKwjkO8uPl^>ONV2KIuU?2FbbwjK}C_tkJW1`QdcxEpuGayMe?C~FR^I>|kE z#Bw)c>L}NpOD`<$#yoHo!B0kjm*gthXyH$ze2%-oQl@h5@cFQm1}%J&ceDwX@_BTf zO(cq?90E(}y!A_=V_+%g!%?n?;wT@kafdR%QCh)M1xwj9NMR{zU48Se@ASLYrWcmd z&sv*(tmAu5VJUA%`PTy#Zt{DDrM&IA6Z_k<%Gr&j9KXg9T904ri=$itj&g+c1}DgO z9aFUlo&OOZiUh!shyf*kT|$maE~DPh{5fNVgZc^%to8|zJVx@}=WU_oPL$ESN+rc$o3be;$rK5oHiCFL>;_PRL3-|E-w^qIj$42tqL&SIHJc-GXGx3z4lM z)~)?b;=v_)qI)a<%X*x#{1zNV;=?x|?isU$|G~W_->05+j9FDt97Wc< zoUjjUqJF*js*=+R9_!dnK8qdRh8;;9C_JL-`7);_zPNWRD06LX4Zg6omc)t$+ZN#G z7^_Q1@g5W9FSIlz@6CmwGB4|kM~e?}7Plri-04njJlwcQ9OG^41NOO&94$2~etn?z zr463pG5EDZ-b>eyT8*!QA%-P!aDK8c!l5FHCfb*$?g`sHG-UG!_|xBJtt z_dInwdh6F`?7P}A{p|WBx-}Tx5`Wh+(jRi%@*U=o2b=ujXdKio=kNQD(l2ZNxC*|2 z_*_fB8o|3_^-JcOI|ec)UDl&xxdTicJHVJD^ANXR6{}};O3xlw7)U~>fce#vCI+JX zhWHGpU?6k)!9X}C7{~#1;)mcML-9FIxV3VvaE4?1+Un<*=x4z{UY35owWpuY@FO=Y ziTu0O$M_=gBbE>O{e|=|y0ts%LoTF$o1*>uChMQt7n?Y&R$^3v-&rexUIW?1$RQWF7eyM zc4edU8fu3G!N$wCSiXcgr13MZWxw?b%a43t_3y{@ulN|*m-Tb!i%(_^XIZOOt$9VxQ0P^|F6>ERJlIE7wbT zC&-1w7kB4#(Q-f8%zPd8aX)3dY3qfQEoDi$CYM*rlo+u0^N+z@`w*Z05g5)9=qvF2W7Uq2ZG+VPX~;FqP7H>z=0trdia0RB?O zn48F$`vl{ytZ({}*a>5|jJGbvG4Y3&;Sa@s$okhNa;UZJf&WX^mNYTuw%@}Z#Mp|3 z89o9I^P+c;=iV3`W&__3fWO4zFnw)B-UVunwX^z+wVQ3`9LAfhb?Ttc15UHgWvu-n zbzA~Y7;7u-eQaf6_c)uccvzYE!F=wmx1|S95R(?&dVlBVjK3!KV!i{$!d{A2f*WHq z);#>8XkKX9OEvo+cH4`RHNFs8*Qz}`Ogj;OD0XrHJrkQagz`QT3`I23pnrJ>crs7OH8H$~B#u1;{6PvCkf3WheKTcJd`{J{@box4nB z8_M3KEGrK+pLwphew&u{uE;7=&&*S6Oa#-1n>hu)aI;|g?^8-^Ux0Bd`_6#}|izivWAv(TVvOFn1hjx7)l=-Xl zrsMc56X(h7#t0;zjAZ)4mQ1DGPU?LMtVeK*-m)D^f0<+W3hL!Twioh@!Qf6x#^}6R zW;*^y@TQ)6sCbH8Z4&Ft2I4m)U+e2TykJe@JJRim?v?nChL~90#TX`I>_KAnSl{s` zzT;(l$3gsB6PQywagp*LU`{gkc?h4k$7}i!g*oA0EX=7tKhhB$b2mq0s)OivY}|e} zUov}4f4<~B&#VjZB_aPH6agY#N% zwdP&l>mF~<=0_%A1L8wE@w<+wt;;)r@nhj@(0}nGC!_xMTz*9P5On{P(*5C0$A}9* zM0aDyT&sN1O(|2}wR=8)B07H|WlNcoW0^UX_?6-4eDCKgZWVD(54S4Q#JBL-`|;hv z!I8c!jpAFqxmB6nYi7j8_f!7I=(ylpXL73q-!lI{pFcb2|KMBV?_^w%7)s_Vi$=cJ zJy#j%XKWC>QpSdF_32ZIpC(27^RqMhQ!p&k&se@}rHl#4iuWMk%QBiyVRz=(5aUCl z`XaKIGJ9cT%18E;`<N@3XWxe5<*NsAl#Yc9p zf1+-}U)uNO>qBQ?Xwf>w*5RDorI`AibL~@1{mivbXP;XU{7mo+SvUUf$*%Na9Gk(* zBnOrGtx_;FSp)c=9Ob{41w%X6J~iJ1LmD*58;Np}PJ9_I(%fm`Lu2MKw=*~N(V&u0 z3%HYDXkTFMlW>qaqI=g|1sCZuu(Ja}Uu68ZFP{5NzGpA=h1Y|hmGa4Qu+9Sv?F#nO zI1JC{@UHvvHTW2nHZ3?14oC}pjD7Gi?n>~5_k*$8S&yoHab$y*s0THNEvQwp7h)y* z)qtU`rjPvhr!@Gtj}QKb<_gx*|Nd3-`?BCcezWIWq?WM_ZUyh^V(*M3m%A*Fd<(Ao zoqRtDF4Z_moA4PN@#DngN6BM9Bz_0)cvd(_5pXUC^{b6yX5D+(L^(*s*ltIbIfrVk zBbB*+;T=5=k61WJhl+)RlygA0_{R{C?J28wJgC*ys zu0JAPFQeZM+H0cRqZ$wU%%rvPTg{fO>St zz>M?a->)Q>75&MIW8EE?8Efi7QpX$7l|AT+!phJIlV`+QI`rj`mJ}51ORX1W}KFotaa z6FZ*{9bDL3hsOLDbSMKI`Usm+dL+IQ|E%IQbSPKW9HAeM`=WZp|CSzExQXKBN}hpD z3wP)q@{IY6twk%*Ey2akqFcfl`hA`@;c?-Spj#)EZe=!|LI$ROG4~tQFWyJ0)}t@L zzN|h!sMe$3r`Dr4-E`)9bUCN6vH=MpYc0Z8c&4mFI7nSL-_)BkBv`NA>eI!}Mc;Oc#ShQ+tAe1`OQ-4=iqIV)?QsqT`oO zjb9!W8wvNv(#7FXT|CP8)WRIF;EQsPrH`_1uV|&Ij|;)!<-V%u_|?hy z@5j=U6Ux7MntFH%;3-jklsVj9`nWjC`w3ha@8?3E5vz|E%==OPSYmq*W3J4Rn{__d zy8LZg*1Jc+YmSP2felNH(Kg6zPbXtlXF6?)#cCAiu4j(EO8N&oxDdZAd7bd>ByZ{Q_X>L<$56ari|aE8OrZ~VPPjgq`0H|8ru!c3<{s=u zap%rrH^TLi^_OEO`n(56vZg-jvkzj=&0b&l`xeg!yRtBs3dQ&AZ9~HKJcHwd&dAt( zHja;AxQahFvbX&d_qCsB?rH5?D7GVcMy%aNBlW{uT$9&aVBjwd1&PDQ5(7+8#;x~Ra-tC-Vnd>5VnaRSknnkq{>OEp zGx$8%oxJbR!aJ(LJ7iwyYP!DkwF2!-dAJ)iv zs6;rTNpMAz!4(F=9Zg|9RBGs>290-2!Qt5)!{PY`7{p@MLyh5m!MDx}9UC+^)B-N6 zcsv#caRqy|jF}dmXkieK`6A=MAeP~O1%tQ+{2@1rLF{8a)8*a!v3y5i5DUQ|lHpNo z1B2KO2Js9zAa2ki4Kg34Duldm&odcS;~1Nh@njGaAv9g{~fgj_=OMzDvR!(H?Cfe}c(=Aa{o(Gj)IiGDx9 zT=5*{@($ClE76&|D%=eR$>U^?lVe*QA%#PLF+7dlOagldQMcca%Pkii0{zH^pOe8y zVG!iYmY$Te-U-a+4317W27#W%a&+3Shzqq`6(5=dM@RTMF2w*>_?CIM!13{b@sY1jmxOy1IlO-MK;Wz0Tz0WaB4e^=5EXZ_GVU zzSAjs)y>I4e-!?31O7M4$?2s-QC^Pd&`vlxu{zYw*wn$e5zEP`W)6C|%t15$&w!6p z-91la>d_C-qkVRhk8{f8<0wBMKEMSZr*_Vn7=xTs7z6#ko;~kU;p4c#7vy{qe4PIJ z_9goEhs3H|m@8!O;_kj}@5Af6G0Ml0e(k`22p>m$!iDtdNn~~yfAqKXYZ7bLV*7P$ zj8Bk$?T=?A{VHvb?OVYagpV`do*FE@6}&<9Z4_II`i4@;?TAxj`_;mgq+g4Oxw`um zE>4Zb#bJ!>kBc)z_3zN82d~lQHFop*%>Mm9^so4klZ@SM#HKQDCc2Qpd09&*{G7M= zF7rv&HNwrAB)lAO()00hZn1bd*T9FxE=t{|T^xtc*EZeEzv`JMKOWr&sAsOQH#g^I zeAHRFISWj@Rmzq+irw9YFOxEl6Q}gc&jI_8_(b?Q(&h^(U&=Hwxj z9PK-|Zt-%ObHU{9iNR&jrDx#esQGmKzm?lv(0n@WJJ)==tlg0H#cTb{r_=8iH)lzV z-N;z_nLW8F7TXtGeBbZ2Tl#^racep5u ziA2cHl-)3A-fcH$;pE7ixn(ai@c(`7Mc(gV*+m=uYw>X8yUe#v79I|EVexP__rq7S zcsMVE)to{$)lr*}bydPuYrr0kv1Xt*r=y22W6ibZV-px`HwWi9ebT)~FRGJP*`m8r z=7r3gUr4#i7O*w5JmKO**IV=4(<^TxhW;Y4H19U#J@Y5NF`M;QvqHq$YW}TFu_&8JWF%N^SfAUV8SJvDeN2ZMy z|1ZnTx5dYFp2x>D$lNt;I)xmC2N1bR_Dytz=ptGL^D~htT`k3jevv7s-cvlOfz2d|O}cO+9#uaBtw{gwx^6-OHFN`*Bq> zj=Ij`ACew6xi_-TY4#MKSN1%7gE3WjH_zZBeufC4ljr(=OuW>WZxaBc z693Sg*V{kL>f;~Uqjq57KH?i<{eoaVvL0iYJtG)le9yfVetaz66CG1?S4QLQDBdHn zu!Z-uiXIAP#JrmL3E|fC@)O9sFL%%4%RdOWrYH7pP#jm`)b!%jfc2>T4AAG9(K&*% z`32$Ch+l{uD^F1`8JmSy)<380Oy8jV0=g_dK`{Gcj6>bLmZ&aUW3lL+@X1bn*|O*8 zy30P?KjG=gSa~63OPQae%O-bHcr`L_5arcGpRaf|$i9bHGrTvi2Dyt3m4Y)#%+s4! zGrSM4hP6!SZ~wfS=$=LVe?H%I&i|vln&JBJy!G^v%;lXc{*nDDrqZ9n6_j|VmtVrS z2>StnE zXCE&G%M!dnuiuuj0Mk@NS0b4mUo+?sa2%bM3$E|6Oz`wPoHKNh#< z@D*@t=FAO!IIxFXGZ9?NdMA`{Y(~pIKS3}p#uIr5lD>@zKS;p`*rP-3>qBlC#J<3VBAZ!5bUAC#Hp4Lw zvDepZ!L-1$N~4^bqu@ufkIo19QAc!NAK9~A%|)s`eWLHrkv$2>*I45pYzNCw^C~eo zgy2^acdI>p$UXDe)8{e9SBp<0bCR+rK{I>PnER|I1)DGNd5?p2$XX(`hX!Nn�s9 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%0AY9B;Sh59K6gr;QVS% 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 z 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�^MSqbvT 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%0A#c3R>q&-J@e8QLpHOP`=*!X~c@qVf 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 z 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

~>(`!0t%`)jV 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%0AE_abNKD`ll(!e^l=U<}va$9p_j4 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

*=5Cj#u~G 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%0A_M;; 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�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�gbaiHd<%_*@ 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

  • =de_a=4b9M8$Ya3XeBecN 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�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