From 5bead4acbbe46ee382c61a830af02b6fb687eedd Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 10 Dec 2019 11:26:41 +0000 Subject: [PATCH 001/368] Make DefaultTimeBar exclude itself for gestures Issue: #6685 PiperOrigin-RevId: 284736041 --- RELEASENOTES.md | 5 +++++ .../android/exoplayer2/ui/DefaultTimeBar.java | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5add56ca08..0642a9a921 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,10 @@ # Release notes # +### 2.11.1 (2019-12-20) ### + +* UI: Exclude `DefaultTimeBar` region from system gesture detection + ([#6685](https://github.com/google/ExoPlayer/issues/6685)). + ### 2.11.0 (2019-12-11) ### * Core library: diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java index 8b737bc006..89bcaf84bc 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/DefaultTimeBar.java @@ -36,12 +36,15 @@ import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; import androidx.annotation.ColorInt; import androidx.annotation.Nullable; +import androidx.annotation.RequiresApi; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; +import java.util.Collections; import java.util.Formatter; import java.util.Locale; import java.util.concurrent.CopyOnWriteArraySet; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** * A time bar that shows a current position, buffered position, duration and ad markers. @@ -199,6 +202,7 @@ public class DefaultTimeBar extends View implements TimeBar { private int keyCountIncrement; private long keyTimeIncrement; private int lastCoarseScrubXPosition; + @MonotonicNonNull private Rect lastExclusionRectangle; private boolean scrubbing; private long scrubPosition; @@ -604,6 +608,9 @@ public class DefaultTimeBar extends View implements TimeBar { seekBounds.set(seekLeft, barY, seekRight, barY + touchTargetHeight); progressBar.set(seekBounds.left + scrubberPadding, progressY, seekBounds.right - scrubberPadding, progressY + barHeight); + if (Util.SDK_INT >= 29) { + setSystemGestureExclusionRectsV29(width, height); + } update(); } @@ -834,6 +841,18 @@ public class DefaultTimeBar extends View implements TimeBar { } } + @RequiresApi(29) + private void setSystemGestureExclusionRectsV29(int width, int height) { + if (lastExclusionRectangle != null + && lastExclusionRectangle.width() == width + && lastExclusionRectangle.height() == height) { + // Allocating inside onLayout is considered a DrawAllocation lint error, so avoid if possible. + return; + } + lastExclusionRectangle = new Rect(/* left= */ 0, /* top= */ 0, width, height); + setSystemGestureExclusionRects(Collections.singletonList(lastExclusionRectangle)); + } + private String getProgressText() { return Util.getStringForTime(formatBuilder, formatter, position); } From 53d30d80a599bcc0f64ceeec0a40916cc587dedb Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 13 Dec 2019 10:21:32 +0000 Subject: [PATCH 002/368] Fix bug where C.TIME_UNSET was used for calcutations. The presentationTimeOffsetMs may be C.TIME_UNSET for VOD content and shouldn't be used in calculations for the windowStartTime. PiperOrigin-RevId: 285363095 --- .../android/exoplayer2/source/dash/DashMediaSource.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index 352131d70a..3f179d0e7e 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -1010,8 +1010,13 @@ public final class DashMediaSource extends BaseMediaSource { windowDurationUs / 2); } } - long windowStartTimeMs = manifest.availabilityStartTimeMs - + manifest.getPeriod(0).startMs + C.usToMs(currentStartTimeUs); + long windowStartTimeMs = C.TIME_UNSET; + if (manifest.availabilityStartTimeMs != C.TIME_UNSET) { + windowStartTimeMs = + manifest.availabilityStartTimeMs + + manifest.getPeriod(0).startMs + + C.usToMs(currentStartTimeUs); + } DashTimeline timeline = new DashTimeline( manifest.availabilityStartTimeMs, From 4653592d0eb61f8289617026edda5c57bb506405 Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 13 Dec 2019 13:02:58 +0000 Subject: [PATCH 003/368] Propagate HTTP request headers through CacheDataSource This has been broken since https://github.com/google/ExoPlayer/commit/c3d6be3afdd7c0ca68dba15e443bc64aa3f61073 and broken for ICY (where I noticed the problem) since https://github.com/google/ExoPlayer/commit/5695bae9d8fde5e156fd38fa552e266c5611c71f. ICY symptom is that we see no repeated metadata, because the Icy-MetaData:1 header doesn't make it to the server so we never get back icy-metaint. PiperOrigin-RevId: 285379234 --- RELEASENOTES.md | 1 + .../upstream/cache/CacheDataSource.java | 31 ++++++++++++++-- .../upstream/cache/CacheDataSourceTest.java | 36 ++++++++++++++++--- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 0642a9a921..198de62178 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -4,6 +4,7 @@ * UI: Exclude `DefaultTimeBar` region from system gesture detection ([#6685](https://github.com/google/ExoPlayer/issues/6685)). +* Propagate HTTP request headers through `CacheDataSource`. ### 2.11.0 (2019-12-11) ### diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java index 541c3b2d9d..94ec2c6dff 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java @@ -138,7 +138,8 @@ public final class CacheDataSource implements DataSource { @Nullable private Uri actualUri; @HttpMethod private int httpMethod; @Nullable private byte[] httpBody; - private int flags; + private Map httpRequestHeaders = Collections.emptyMap(); + @DataSpec.Flags private int flags; @Nullable private String key; private long readPosition; private long bytesRemaining; @@ -263,6 +264,7 @@ public final class CacheDataSource implements DataSource { actualUri = getRedirectedUriOrDefault(cache, key, /* defaultUri= */ uri); httpMethod = dataSpec.httpMethod; httpBody = dataSpec.httpBody; + httpRequestHeaders = dataSpec.httpRequestHeaders; flags = dataSpec.flags; readPosition = dataSpec.position; @@ -353,6 +355,10 @@ public final class CacheDataSource implements DataSource { actualUri = null; httpMethod = DataSpec.HTTP_METHOD_GET; httpBody = null; + httpRequestHeaders = Collections.emptyMap(); + flags = 0; + readPosition = 0; + key = null; notifyBytesRead(); try { closeCurrentSource(); @@ -399,7 +405,15 @@ public final class CacheDataSource implements DataSource { nextDataSource = upstreamDataSource; nextDataSpec = new DataSpec( - uri, httpMethod, httpBody, readPosition, readPosition, bytesRemaining, key, flags); + uri, + httpMethod, + httpBody, + readPosition, + readPosition, + bytesRemaining, + key, + flags, + httpRequestHeaders); } else if (nextSpan.isCached) { // Data is cached, read from cache. Uri fileUri = Uri.fromFile(nextSpan.file); @@ -408,6 +422,8 @@ public final class CacheDataSource implements DataSource { if (bytesRemaining != C.LENGTH_UNSET) { length = Math.min(length, bytesRemaining); } + // Deliberately skip the HTTP-related parameters since we're reading from the cache, not + // making an HTTP request. nextDataSpec = new DataSpec(fileUri, readPosition, filePosition, length, key, flags); nextDataSource = cacheReadDataSource; } else { @@ -422,7 +438,16 @@ public final class CacheDataSource implements DataSource { } } nextDataSpec = - new DataSpec(uri, httpMethod, httpBody, readPosition, readPosition, length, key, flags); + new DataSpec( + uri, + httpMethod, + httpBody, + readPosition, + readPosition, + length, + key, + flags, + httpRequestHeaders); if (cacheWriteDataSource != null) { nextDataSource = cacheWriteDataSource; } else { diff --git a/library/core/src/test/java/com/google/android/exoplayer2/upstream/cache/CacheDataSourceTest.java b/library/core/src/test/java/com/google/android/exoplayer2/upstream/cache/CacheDataSourceTest.java index 83104119ad..27438fcac3 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/upstream/cache/CacheDataSourceTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/upstream/cache/CacheDataSourceTest.java @@ -34,6 +34,8 @@ import com.google.android.exoplayer2.util.Util; import java.io.File; import java.io.IOException; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; import java.util.NavigableSet; import org.junit.After; import org.junit.Before; @@ -48,20 +50,27 @@ public final class CacheDataSourceTest { private static final int CACHE_FRAGMENT_SIZE = 3; private static final String DATASPEC_KEY = "dataSpecKey"; + // Test data private Uri testDataUri; + private Map httpRequestHeaders; private DataSpec unboundedDataSpec; private DataSpec boundedDataSpec; private DataSpec unboundedDataSpecWithKey; private DataSpec boundedDataSpecWithKey; private String defaultCacheKey; private String customCacheKey; + + // Dependencies of SUT private CacheKeyFactory cacheKeyFactory; private File tempFolder; private SimpleCache cache; + private FakeDataSource upstreamDataSource; @Before public void setUp() throws Exception { testDataUri = Uri.parse("https://www.test.com/data"); + httpRequestHeaders = new HashMap<>(); + httpRequestHeaders.put("Test-key", "Test-val"); unboundedDataSpec = buildDataSpec(/* unbounded= */ true, /* key= */ null); boundedDataSpec = buildDataSpec(/* unbounded= */ false, /* key= */ null); unboundedDataSpecWithKey = buildDataSpec(/* unbounded= */ true, DATASPEC_KEY); @@ -69,9 +78,11 @@ public final class CacheDataSourceTest { defaultCacheKey = CacheUtil.DEFAULT_CACHE_KEY_FACTORY.buildCacheKey(unboundedDataSpec); customCacheKey = "customKey." + defaultCacheKey; cacheKeyFactory = dataSpec -> customCacheKey; + tempFolder = Util.createTempDirectory(ApplicationProvider.getApplicationContext(), "ExoPlayerTest"); cache = new SimpleCache(tempFolder, new NoOpCacheEvictor()); + upstreamDataSource = new FakeDataSource(); } @After @@ -111,6 +122,19 @@ public final class CacheDataSourceTest { assertCacheAndRead(boundedDataSpec, /* unknownLength= */ false); } + @Test + public void testPropagatesHttpHeadersUpstream() throws Exception { + CacheDataSource cacheDataSource = + createCacheDataSource(/* setReadException= */ false, /* unknownLength= */ false); + DataSpec dataSpec = buildDataSpec(/* position= */ 2, /* length= */ 5); + cacheDataSource.open(dataSpec); + + DataSpec[] upstreamDataSpecs = upstreamDataSource.getAndClearOpenedDataSpecs(); + + assertThat(upstreamDataSpecs).hasLength(1); + assertThat(upstreamDataSpecs[0].httpRequestHeaders).isEqualTo(this.httpRequestHeaders); + } + @Test public void testUnsatisfiableRange() throws Exception { // Bounded request but the content length is unknown. This forces all data to be cached but not @@ -572,9 +596,8 @@ public final class CacheDataSourceTest { @CacheDataSource.Flags int flags, CacheDataSink cacheWriteDataSink, CacheKeyFactory cacheKeyFactory) { - FakeDataSource upstream = new FakeDataSource(); FakeData fakeData = - upstream + upstreamDataSource .getDataSet() .newDefaultData() .setSimulateUnknownLength(unknownLength) @@ -584,7 +607,7 @@ public final class CacheDataSourceTest { } return new CacheDataSource( cache, - upstream, + upstreamDataSource, new FileDataSource(), cacheWriteDataSink, flags, @@ -602,6 +625,11 @@ public final class CacheDataSourceTest { private DataSpec buildDataSpec(long position, long length, @Nullable String key) { return new DataSpec( - testDataUri, position, length, key, DataSpec.FLAG_ALLOW_CACHE_FRAGMENTATION); + testDataUri, + position, + length, + key, + DataSpec.FLAG_ALLOW_CACHE_FRAGMENTATION, + httpRequestHeaders); } } From d8951a2a38e06acca52b69383168627f32144898 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 13 Dec 2019 18:16:59 +0000 Subject: [PATCH 004/368] Add an additional sanity check to FakeExtractorOutput PiperOrigin-RevId: 285422885 --- .../android/exoplayer2/testutil/FakeExtractorOutput.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java index 4022a0ccc1..9394848198 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertWithMessage; import android.content.Context; import android.util.SparseArray; +import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.extractor.ExtractorOutput; import com.google.android.exoplayer2.extractor.SeekMap; import java.io.File; @@ -67,6 +68,9 @@ public final class FakeExtractorOutput implements ExtractorOutput, Dumper.Dumpab @Override public void seekMap(SeekMap seekMap) { + if (seekMap.isSeekable() && seekMap.getDurationUs() == C.TIME_UNSET) { + throw new IllegalStateException("SeekMap cannot be seekable and have an unknown duration"); + } this.seekMap = seekMap; } From 250a5deab503c10da06c0de918b7ce1f20943b92 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 16 Dec 2019 11:17:11 +0000 Subject: [PATCH 005/368] Add more SeekMap assertions, and "fix" MatroskaExtractor In MatroskaExtractor, if the last cue time exceeds the duration specified in the header, then we end up generating a negative duration chunk as the last item in the SeekMap. We should probably not do this, so drop it instead. Note: Matroska does have a CueDuration element, but it's not used in the one problematic file I've found. PiperOrigin-RevId: 285738418 --- .../extractor/mkv/MatroskaExtractor.java | 10 ++++ .../src/test/assets/mkv/sample.mkv.0.dump | 2 +- .../src/test/assets/mkv/sample.mkv.1.dump | 52 ++++++++----------- .../src/test/assets/mkv/sample.mkv.2.dump | 30 ++++------- .../src/test/assets/mkv/sample.mkv.3.dump | 2 +- .../testutil/FakeExtractorOutput.java | 14 ++++- 6 files changed, 57 insertions(+), 53 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java index 403f6c3d41..b30fbf105e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java @@ -1635,6 +1635,16 @@ public class MatroskaExtractor implements Extractor { sizes[cuePointsSize - 1] = (int) (segmentContentPosition + segmentContentSize - offsets[cuePointsSize - 1]); durationsUs[cuePointsSize - 1] = durationUs - timesUs[cuePointsSize - 1]; + + long lastDurationUs = durationsUs[cuePointsSize - 1]; + if (lastDurationUs <= 0) { + Log.w(TAG, "Discarding last cue point with unexpected duration: " + lastDurationUs); + sizes = Arrays.copyOf(sizes, sizes.length - 1); + offsets = Arrays.copyOf(offsets, offsets.length - 1); + durationsUs = Arrays.copyOf(durationsUs, durationsUs.length - 1); + timesUs = Arrays.copyOf(timesUs, timesUs.length - 1); + } + cueTimesUs = null; cueClusterPositions = null; return new ChunkIndex(sizes, offsets, durationsUs, timesUs); diff --git a/library/core/src/test/assets/mkv/sample.mkv.0.dump b/library/core/src/test/assets/mkv/sample.mkv.0.dump index 847799396d..d91f845199 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.0.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.0.dump @@ -1,6 +1,6 @@ seekMap: isSeekable = true - duration = 1072000 + duration = 1104000 getPosition(0) = [[timeUs=67000, position=5576]] numberOfTracks = 2 track 1: diff --git a/library/core/src/test/assets/mkv/sample.mkv.1.dump b/library/core/src/test/assets/mkv/sample.mkv.1.dump index 5caa638437..d9013a762e 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.1.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.1.dump @@ -1,6 +1,6 @@ seekMap: isSeekable = true - duration = 1072000 + duration = 1104000 getPosition(0) = [[timeUs=67000, position=5576]] numberOfTracks = 2 track 1: @@ -27,93 +27,85 @@ track 1: initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B - total output bytes = 30995 - sample count = 22 + total output bytes = 29422 + sample count = 20 sample 0: - time = 334000 - flags = 0 - data = length 953, hash 7160C661 - sample 1: - time = 300000 - flags = 0 - data = length 620, hash 7A7AE07C - sample 2: time = 367000 flags = 0 data = length 405, hash 5CC7F4E7 - sample 3: + sample 1: time = 500000 flags = 0 data = length 4852, hash 9DB6979D - sample 4: + sample 2: time = 467000 flags = 0 data = length 547, hash E31A6979 - sample 5: + sample 3: time = 434000 flags = 0 data = length 570, hash FEC40D00 - sample 6: + sample 4: time = 634000 flags = 0 data = length 5525, hash 7C478F7E - sample 7: + sample 5: time = 567000 flags = 0 data = length 1082, hash DA07059A - sample 8: + sample 6: time = 534000 flags = 0 data = length 807, hash 93478E6B - sample 9: + sample 7: time = 600000 flags = 0 data = length 744, hash 9A8E6026 - sample 10: + sample 8: time = 767000 flags = 0 data = length 4732, hash C73B23C0 - sample 11: + sample 9: time = 700000 flags = 0 data = length 1004, hash 8A19A228 - sample 12: + sample 10: time = 667000 flags = 0 data = length 794, hash 8126022C - sample 13: + sample 11: time = 734000 flags = 0 data = length 645, hash F08300E5 - sample 14: + sample 12: time = 900000 flags = 0 data = length 2684, hash 727FE378 - sample 15: + sample 13: time = 834000 flags = 0 data = length 787, hash 419A7821 - sample 16: + sample 14: time = 800000 flags = 0 data = length 649, hash 5C159346 - sample 17: + sample 15: time = 867000 flags = 0 data = length 509, hash F912D655 - sample 18: + sample 16: time = 1034000 flags = 0 data = length 1226, hash 29815C21 - sample 19: + sample 17: time = 967000 flags = 0 data = length 898, hash D997AD0A - sample 20: + sample 18: time = 934000 flags = 0 data = length 476, hash A0423645 - sample 21: + sample 19: time = 1000000 flags = 0 data = length 486, hash DDF32CBB diff --git a/library/core/src/test/assets/mkv/sample.mkv.2.dump b/library/core/src/test/assets/mkv/sample.mkv.2.dump index de4e2a58bf..b0f943e2f2 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.2.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.2.dump @@ -1,6 +1,6 @@ seekMap: isSeekable = true - duration = 1072000 + duration = 1104000 getPosition(0) = [[timeUs=67000, position=5576]] numberOfTracks = 2 track 1: @@ -27,49 +27,41 @@ track 1: initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B - total output bytes = 10158 - sample count = 11 + total output bytes = 8360 + sample count = 9 sample 0: - time = 700000 - flags = 0 - data = length 1004, hash 8A19A228 - sample 1: - time = 667000 - flags = 0 - data = length 794, hash 8126022C - sample 2: time = 734000 flags = 0 data = length 645, hash F08300E5 - sample 3: + sample 1: time = 900000 flags = 0 data = length 2684, hash 727FE378 - sample 4: + sample 2: time = 834000 flags = 0 data = length 787, hash 419A7821 - sample 5: + sample 3: time = 800000 flags = 0 data = length 649, hash 5C159346 - sample 6: + sample 4: time = 867000 flags = 0 data = length 509, hash F912D655 - sample 7: + sample 5: time = 1034000 flags = 0 data = length 1226, hash 29815C21 - sample 8: + sample 6: time = 967000 flags = 0 data = length 898, hash D997AD0A - sample 9: + sample 7: time = 934000 flags = 0 data = length 476, hash A0423645 - sample 10: + sample 8: time = 1000000 flags = 0 data = length 486, hash DDF32CBB diff --git a/library/core/src/test/assets/mkv/sample.mkv.3.dump b/library/core/src/test/assets/mkv/sample.mkv.3.dump index 6034c54dec..460aca0e90 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.3.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.3.dump @@ -1,6 +1,6 @@ seekMap: isSeekable = true - duration = 1072000 + duration = 1104000 getPosition(0) = [[timeUs=67000, position=5576]] numberOfTracks = 2 track 1: diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java index 9394848198..b5e90dc3ea 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java @@ -68,8 +68,18 @@ public final class FakeExtractorOutput implements ExtractorOutput, Dumper.Dumpab @Override public void seekMap(SeekMap seekMap) { - if (seekMap.isSeekable() && seekMap.getDurationUs() == C.TIME_UNSET) { - throw new IllegalStateException("SeekMap cannot be seekable and have an unknown duration"); + if (seekMap.isSeekable()) { + if (seekMap.getDurationUs() == C.TIME_UNSET) { + throw new IllegalStateException("SeekMap cannot be seekable and have an unknown duration"); + } + SeekMap.SeekPoints seekPoints = seekMap.getSeekPoints(0); + if (!seekPoints.first.equals(seekPoints.second)) { + throw new IllegalStateException("SeekMap defines two seek points for t=0"); + } + seekPoints = seekMap.getSeekPoints(seekMap.getDurationUs()); + if (!seekPoints.first.equals(seekPoints.second)) { + throw new IllegalStateException("SeekMap defines two seek points for t=durationUs"); + } } this.seekMap = seekMap; } From 88be178e0fa8139a36d127a1a5cdaab4fbd3cda2 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 16 Dec 2019 15:35:06 +0000 Subject: [PATCH 006/368] Manual rollback of https://github.com/google/ExoPlayer/commit/b3f485d7d9c08e39574b72a949166ee4834c3b24 It's technically possible to output a seekable SeekMap with unknown duration. This can occur if the media defines seek points but doesn't define either the overall duration or the duration of the media from the last seek point to the end. PiperOrigin-RevId: 285769121 --- .../exoplayer2/testutil/FakeExtractorOutput.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java index b5e90dc3ea..0502707682 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorOutput.java @@ -69,16 +69,16 @@ public final class FakeExtractorOutput implements ExtractorOutput, Dumper.Dumpab @Override public void seekMap(SeekMap seekMap) { if (seekMap.isSeekable()) { - if (seekMap.getDurationUs() == C.TIME_UNSET) { - throw new IllegalStateException("SeekMap cannot be seekable and have an unknown duration"); - } SeekMap.SeekPoints seekPoints = seekMap.getSeekPoints(0); if (!seekPoints.first.equals(seekPoints.second)) { throw new IllegalStateException("SeekMap defines two seek points for t=0"); } - seekPoints = seekMap.getSeekPoints(seekMap.getDurationUs()); - if (!seekPoints.first.equals(seekPoints.second)) { - throw new IllegalStateException("SeekMap defines two seek points for t=durationUs"); + long durationUs = seekMap.getDurationUs(); + if (durationUs != C.TIME_UNSET) { + seekPoints = seekMap.getSeekPoints(durationUs); + if (!seekPoints.first.equals(seekPoints.second)) { + throw new IllegalStateException("SeekMap defines two seek points for t=durationUs"); + } } } this.seekMap = seekMap; From 5e822e160ed6831d4ca3754e30c1a1561f8f4b4a Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 16 Dec 2019 16:18:01 +0000 Subject: [PATCH 007/368] FakeTrackOutput: Throw if sample size exceeds maxInputSize This indicates the extractor has output a Format with a specified maxInputSize that's too small. Failing in FakeTrackOutput ensures this doesn't happen during Extractor tests. PiperOrigin-RevId: 285776069 --- .../google/android/exoplayer2/testutil/FakeTrackOutput.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java index 4dd00557ae..f78e835b48 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java @@ -93,6 +93,12 @@ public final class FakeTrackOutput implements TrackOutput, Dumper.Dumpable { @Override public void sampleMetadata(long timeUs, @C.BufferFlags int flags, int size, int offset, CryptoData cryptoData) { + if (format == null) { + throw new IllegalStateException("TrackOutput must receive format before sampleMetadata"); + } + if (format.maxInputSize != Format.NO_VALUE && size > format.maxInputSize) { + throw new IllegalStateException("Sample size exceeds Format.maxInputSize"); + } sampleTimesUs.add(timeUs); sampleFlags.add(flags); sampleStartOffsets.add(sampleData.length - offset - size); From 739517bd5e32c7443c03d968354475e109356456 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 13 Dec 2019 20:29:54 +0000 Subject: [PATCH 008/368] Fix FLAC seeking when the last seek point is a placeholder PiperOrigin-RevId: 285449865 --- extensions/flac/src/main/jni/flac_parser.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/extensions/flac/src/main/jni/flac_parser.cc b/extensions/flac/src/main/jni/flac_parser.cc index b920560f3a..f39e4bd1f7 100644 --- a/extensions/flac/src/main/jni/flac_parser.cc +++ b/extensions/flac/src/main/jni/flac_parser.cc @@ -462,8 +462,9 @@ bool FLACParser::getSeekPositions(int64_t timeUs, if (sampleNumber <= targetSampleNumber) { result[0] = (sampleNumber * 1000000LL) / sampleRate; result[1] = firstFrameOffset + points[i - 1].stream_offset; - if (sampleNumber == targetSampleNumber || i >= length) { - // exact seek, or no following seek point. + if (sampleNumber == targetSampleNumber || i >= length || + points[i].sample_number == -1) { // placeholder + // exact seek, or no following non-placeholder seek point result[2] = result[0]; result[3] = result[1]; } else { From 0a701abafe2efb10b0ef840989f6e2ba232c74c8 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 17 Dec 2019 17:00:54 +0000 Subject: [PATCH 009/368] Retain AV1 constructor for DefaultRenderersFactory Issue: #6773 PiperOrigin-RevId: 285990377 --- RELEASENOTES.md | 2 ++ library/core/proguard-rules.txt | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 198de62178..58416fbcef 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -5,6 +5,8 @@ * UI: Exclude `DefaultTimeBar` region from system gesture detection ([#6685](https://github.com/google/ExoPlayer/issues/6685)). * Propagate HTTP request headers through `CacheDataSource`. +* AV1 extension: Fix ProGuard rules + ([6773](https://github.com/google/ExoPlayer/issues/6773)). ### 2.11.0 (2019-12-11) ### diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt index 67646be956..bfd691259b 100644 --- a/library/core/proguard-rules.txt +++ b/library/core/proguard-rules.txt @@ -5,6 +5,10 @@ -keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer { (long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); } +-dontnote com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer +-keepclassmembers class com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer { + (long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); +} -dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); From 166e389c563af4cd4cff3da0953e9fbf2fefd9ec Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 17 Dec 2019 17:13:53 +0000 Subject: [PATCH 010/368] Suppress ProGuard warnings about javax.annotation These annotations are compile-only - so we don't mind they're not accessible at runtime. PiperOrigin-RevId: 285993063 --- RELEASENOTES.md | 2 ++ library/core/proguard-rules.txt | 1 + 2 files changed, 3 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 58416fbcef..cfaca5088d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -7,6 +7,8 @@ * Propagate HTTP request headers through `CacheDataSource`. * AV1 extension: Fix ProGuard rules ([6773](https://github.com/google/ExoPlayer/issues/6773)). +* Suppress ProGuard warnings for compile-time `javax.annotation` package + ([#6771](https://github.com/google/ExoPlayer/issues/6771)). ### 2.11.0 (2019-12-11) ### diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt index bfd691259b..ab4af32da4 100644 --- a/library/core/proguard-rules.txt +++ b/library/core/proguard-rules.txt @@ -65,6 +65,7 @@ # Don't warn about checkerframework and Kotlin annotations -dontwarn org.checkerframework.** -dontwarn kotlin.annotations.jvm.** +-dontwarn javax.annotation.** # Some members of this class are being accessed from native methods. Keep them unobfuscated. -keep class com.google.android.exoplayer2.ext.video.VideoDecoderOutputBuffer { From c9109f437c506dd0eb5bdb19728d7d04d3ed202b Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Wed, 18 Dec 2019 10:24:10 +0000 Subject: [PATCH 011/368] Ensure raw resources are kept R8 does constant folding, so we need to keep buildRawResourceUri to ensure that resources passed to it are kept. PiperOrigin-RevId: 286153875 --- RELEASENOTES.md | 2 ++ library/core/proguard-rules.txt | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index cfaca5088d..fe8a639d1a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -9,6 +9,8 @@ ([6773](https://github.com/google/ExoPlayer/issues/6773)). * Suppress ProGuard warnings for compile-time `javax.annotation` package ([#6771](https://github.com/google/ExoPlayer/issues/6771)). +* Fix proguard rules for R8 to ensure raw resources used with + `RawResourceDataSource` are kept. ### 2.11.0 (2019-12-11) ### diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt index ab4af32da4..494837c3e9 100644 --- a/library/core/proguard-rules.txt +++ b/library/core/proguard-rules.txt @@ -1,5 +1,10 @@ # Proguard rules specific to the core module. +# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening. +-keep class com.google.android.exoplayer2.upstream.RawResourceDataSource { + public static android.net.Uri buildRawResourceUri(int); +} + # Constructors accessed via reflection in DefaultRenderersFactory -dontnote com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer -keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer { @@ -69,5 +74,5 @@ # Some members of this class are being accessed from native methods. Keep them unobfuscated. -keep class com.google.android.exoplayer2.ext.video.VideoDecoderOutputBuffer { - *; + *; } From b4873e55e129df8e05841d151e9653500dbc2b81 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Wed, 18 Dec 2019 10:47:42 +0000 Subject: [PATCH 012/368] Fix keep rule for VideoDecoderOutputBuffer PiperOrigin-RevId: 286156361 --- RELEASENOTES.md | 2 ++ library/core/proguard-rules.txt | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fe8a639d1a..0fcff4bb7d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -11,6 +11,8 @@ ([#6771](https://github.com/google/ExoPlayer/issues/6771)). * Fix proguard rules for R8 to ensure raw resources used with `RawResourceDataSource` are kept. +* Fix proguard rules to keep `VideoDecoderOutputBuffer` for video decoder + extensions. ### 2.11.0 (2019-12-11) ### diff --git a/library/core/proguard-rules.txt b/library/core/proguard-rules.txt index 494837c3e9..fd4e196945 100644 --- a/library/core/proguard-rules.txt +++ b/library/core/proguard-rules.txt @@ -5,6 +5,11 @@ public static android.net.Uri buildRawResourceUri(int); } +# Some members of this class are being accessed from native methods. Keep them unobfuscated. +-keep class com.google.android.exoplayer2.video.VideoDecoderOutputBuffer { + *; +} + # Constructors accessed via reflection in DefaultRenderersFactory -dontnote com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer -keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer { @@ -71,8 +76,3 @@ -dontwarn org.checkerframework.** -dontwarn kotlin.annotations.jvm.** -dontwarn javax.annotation.** - -# Some members of this class are being accessed from native methods. Keep them unobfuscated. --keep class com.google.android.exoplayer2.ext.video.VideoDecoderOutputBuffer { - *; -} From 1106aba3515db433f89aabb5f038350614408868 Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 18 Dec 2019 16:56:31 +0000 Subject: [PATCH 013/368] Add omitted release note for 2.11 PiperOrigin-RevId: 286201458 --- RELEASENOTES.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 0fcff4bb7d..57eb4f9519 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -44,6 +44,10 @@ * Fix issue where player errors are thrown too early at playlist transitions ([#5407](https://github.com/google/ExoPlayer/issues/5407)). * Add `Format` and renderer support flags to renderer `ExoPlaybackException`s. + * Where there are multiple platform decoders for a given MIME type, prefer to + use one that advertises support for the profile and level of the media being + played over one that does not, even if it does not come first in the + `MediaCodecList`. * DRM: * Inject `DrmSessionManager` into the `MediaSources` instead of `Renderers`. This allows each `MediaSource` in a `ConcatenatingMediaSource` to use a From 5d2ca02c5a628f33a01fa7501cd762b6ed165dc1 Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 18 Dec 2019 18:09:42 +0000 Subject: [PATCH 014/368] Unwrap all nested IntDef values This seems to work with R8 but interact badly with ProGuard. issue:#6771 PiperOrigin-RevId: 286215262 --- .../mediacodec/MediaCodecRenderer.java | 4 +- .../exoplayer2/text/ssa/SsaDecoder.java | 64 +++++------ .../android/exoplayer2/text/ssa/SsaStyle.java | 103 ++++++++++-------- .../exoplayer2/text/webvtt/WebvttCue.java | 97 +++++++++-------- .../text/webvtt/WebvttCueParser.java | 12 +- .../exoplayer2/source/hls/HlsMediaPeriod.java | 4 +- .../exoplayer2/source/hls/HlsMediaSource.java | 43 ++++++-- .../source/hls/HlsMetadataType.java | 38 ------- .../source/hls/HlsSampleStreamWrapper.java | 11 +- .../source/hls/HlsMediaPeriodTest.java | 2 +- 10 files changed, 192 insertions(+), 186 deletions(-) delete mode 100644 library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMetadataType.java diff --git a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java index 820f9f003e..6c405f7ced 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java @@ -59,9 +59,7 @@ import java.util.List; */ public abstract class MediaCodecRenderer extends BaseRenderer { - /** - * Thrown when a failure occurs instantiating a decoder. - */ + /** Thrown when a failure occurs instantiating a decoder. */ public static class DecoderInitializationException extends Exception { private static final int CUSTOM_ERROR_CODE_BASE = -50000; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaDecoder.java b/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaDecoder.java index 917ac8e36e..eef9d2eec1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaDecoder.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaDecoder.java @@ -300,12 +300,12 @@ public final class SsaDecoder extends SimpleSubtitleDecoder { float screenWidth, float screenHeight) { @SsaStyle.SsaAlignment int alignment; - if (styleOverrides.alignment != SsaStyle.SsaAlignment.UNKNOWN) { + if (styleOverrides.alignment != SsaStyle.SSA_ALIGNMENT_UNKNOWN) { alignment = styleOverrides.alignment; } else if (style != null) { alignment = style.alignment; } else { - alignment = SsaStyle.SsaAlignment.UNKNOWN; + alignment = SsaStyle.SSA_ALIGNMENT_UNKNOWN; } @Cue.AnchorType int positionAnchor = toPositionAnchor(alignment); @Cue.AnchorType int lineAnchor = toLineAnchor(alignment); @@ -337,19 +337,19 @@ public final class SsaDecoder extends SimpleSubtitleDecoder { @Nullable private static Layout.Alignment toTextAlignment(@SsaStyle.SsaAlignment int alignment) { switch (alignment) { - case SsaStyle.SsaAlignment.BOTTOM_LEFT: - case SsaStyle.SsaAlignment.MIDDLE_LEFT: - case SsaStyle.SsaAlignment.TOP_LEFT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_LEFT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_LEFT: + case SsaStyle.SSA_ALIGNMENT_TOP_LEFT: return Layout.Alignment.ALIGN_NORMAL; - case SsaStyle.SsaAlignment.BOTTOM_CENTER: - case SsaStyle.SsaAlignment.MIDDLE_CENTER: - case SsaStyle.SsaAlignment.TOP_CENTER: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_CENTER: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_CENTER: + case SsaStyle.SSA_ALIGNMENT_TOP_CENTER: return Layout.Alignment.ALIGN_CENTER; - case SsaStyle.SsaAlignment.BOTTOM_RIGHT: - case SsaStyle.SsaAlignment.MIDDLE_RIGHT: - case SsaStyle.SsaAlignment.TOP_RIGHT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_RIGHT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_RIGHT: + case SsaStyle.SSA_ALIGNMENT_TOP_RIGHT: return Layout.Alignment.ALIGN_OPPOSITE; - case SsaStyle.SsaAlignment.UNKNOWN: + case SsaStyle.SSA_ALIGNMENT_UNKNOWN: return null; default: Log.w(TAG, "Unknown alignment: " + alignment); @@ -360,19 +360,19 @@ public final class SsaDecoder extends SimpleSubtitleDecoder { @Cue.AnchorType private static int toLineAnchor(@SsaStyle.SsaAlignment int alignment) { switch (alignment) { - case SsaStyle.SsaAlignment.BOTTOM_LEFT: - case SsaStyle.SsaAlignment.BOTTOM_CENTER: - case SsaStyle.SsaAlignment.BOTTOM_RIGHT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_LEFT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_CENTER: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_RIGHT: return Cue.ANCHOR_TYPE_END; - case SsaStyle.SsaAlignment.MIDDLE_LEFT: - case SsaStyle.SsaAlignment.MIDDLE_CENTER: - case SsaStyle.SsaAlignment.MIDDLE_RIGHT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_LEFT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_CENTER: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_RIGHT: return Cue.ANCHOR_TYPE_MIDDLE; - case SsaStyle.SsaAlignment.TOP_LEFT: - case SsaStyle.SsaAlignment.TOP_CENTER: - case SsaStyle.SsaAlignment.TOP_RIGHT: + case SsaStyle.SSA_ALIGNMENT_TOP_LEFT: + case SsaStyle.SSA_ALIGNMENT_TOP_CENTER: + case SsaStyle.SSA_ALIGNMENT_TOP_RIGHT: return Cue.ANCHOR_TYPE_START; - case SsaStyle.SsaAlignment.UNKNOWN: + case SsaStyle.SSA_ALIGNMENT_UNKNOWN: return Cue.TYPE_UNSET; default: Log.w(TAG, "Unknown alignment: " + alignment); @@ -383,19 +383,19 @@ public final class SsaDecoder extends SimpleSubtitleDecoder { @Cue.AnchorType private static int toPositionAnchor(@SsaStyle.SsaAlignment int alignment) { switch (alignment) { - case SsaStyle.SsaAlignment.BOTTOM_LEFT: - case SsaStyle.SsaAlignment.MIDDLE_LEFT: - case SsaStyle.SsaAlignment.TOP_LEFT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_LEFT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_LEFT: + case SsaStyle.SSA_ALIGNMENT_TOP_LEFT: return Cue.ANCHOR_TYPE_START; - case SsaStyle.SsaAlignment.BOTTOM_CENTER: - case SsaStyle.SsaAlignment.MIDDLE_CENTER: - case SsaStyle.SsaAlignment.TOP_CENTER: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_CENTER: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_CENTER: + case SsaStyle.SSA_ALIGNMENT_TOP_CENTER: return Cue.ANCHOR_TYPE_MIDDLE; - case SsaStyle.SsaAlignment.BOTTOM_RIGHT: - case SsaStyle.SsaAlignment.MIDDLE_RIGHT: - case SsaStyle.SsaAlignment.TOP_RIGHT: + case SsaStyle.SSA_ALIGNMENT_BOTTOM_RIGHT: + case SsaStyle.SSA_ALIGNMENT_MIDDLE_RIGHT: + case SsaStyle.SSA_ALIGNMENT_TOP_RIGHT: return Cue.ANCHOR_TYPE_END; - case SsaStyle.SsaAlignment.UNKNOWN: + case SsaStyle.SSA_ALIGNMENT_UNKNOWN: return Cue.TYPE_UNSET; default: Log.w(TAG, "Unknown alignment: " + alignment); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaStyle.java b/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaStyle.java index e8070976e7..fd2cb036b7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaStyle.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/ssa/SsaStyle.java @@ -37,6 +37,52 @@ import java.util.regex.Pattern; private static final String TAG = "SsaStyle"; + /** + * The SSA/ASS alignments. + * + *

Allowed values: + * + *

    + *
  • {@link #SSA_ALIGNMENT_UNKNOWN} + *
  • {@link #SSA_ALIGNMENT_BOTTOM_LEFT} + *
  • {@link #SSA_ALIGNMENT_BOTTOM_CENTER} + *
  • {@link #SSA_ALIGNMENT_BOTTOM_RIGHT} + *
  • {@link #SSA_ALIGNMENT_MIDDLE_LEFT} + *
  • {@link #SSA_ALIGNMENT_MIDDLE_CENTER} + *
  • {@link #SSA_ALIGNMENT_MIDDLE_RIGHT} + *
  • {@link #SSA_ALIGNMENT_TOP_LEFT} + *
  • {@link #SSA_ALIGNMENT_TOP_CENTER} + *
  • {@link #SSA_ALIGNMENT_TOP_RIGHT} + *
+ */ + @IntDef({ + SSA_ALIGNMENT_UNKNOWN, + SSA_ALIGNMENT_BOTTOM_LEFT, + SSA_ALIGNMENT_BOTTOM_CENTER, + SSA_ALIGNMENT_BOTTOM_RIGHT, + SSA_ALIGNMENT_MIDDLE_LEFT, + SSA_ALIGNMENT_MIDDLE_CENTER, + SSA_ALIGNMENT_MIDDLE_RIGHT, + SSA_ALIGNMENT_TOP_LEFT, + SSA_ALIGNMENT_TOP_CENTER, + SSA_ALIGNMENT_TOP_RIGHT, + }) + @Documented + @Retention(SOURCE) + public @interface SsaAlignment {} + + // The numbering follows the ASS (v4+) spec (i.e. the points on the number pad). + public static final int SSA_ALIGNMENT_UNKNOWN = -1; + public static final int SSA_ALIGNMENT_BOTTOM_LEFT = 1; + public static final int SSA_ALIGNMENT_BOTTOM_CENTER = 2; + public static final int SSA_ALIGNMENT_BOTTOM_RIGHT = 3; + public static final int SSA_ALIGNMENT_MIDDLE_LEFT = 4; + public static final int SSA_ALIGNMENT_MIDDLE_CENTER = 5; + public static final int SSA_ALIGNMENT_MIDDLE_RIGHT = 6; + public static final int SSA_ALIGNMENT_TOP_LEFT = 7; + public static final int SSA_ALIGNMENT_TOP_CENTER = 8; + public static final int SSA_ALIGNMENT_TOP_RIGHT = 9; + public final String name; @SsaAlignment public final int alignment; @@ -77,22 +123,22 @@ import java.util.regex.Pattern; // Swallow the exception and return UNKNOWN below. } Log.w(TAG, "Ignoring unknown alignment: " + alignmentStr); - return SsaAlignment.UNKNOWN; + return SSA_ALIGNMENT_UNKNOWN; } private static boolean isValidAlignment(@SsaAlignment int alignment) { switch (alignment) { - case SsaAlignment.BOTTOM_CENTER: - case SsaAlignment.BOTTOM_LEFT: - case SsaAlignment.BOTTOM_RIGHT: - case SsaAlignment.MIDDLE_CENTER: - case SsaAlignment.MIDDLE_LEFT: - case SsaAlignment.MIDDLE_RIGHT: - case SsaAlignment.TOP_CENTER: - case SsaAlignment.TOP_LEFT: - case SsaAlignment.TOP_RIGHT: + case SSA_ALIGNMENT_BOTTOM_CENTER: + case SSA_ALIGNMENT_BOTTOM_LEFT: + case SSA_ALIGNMENT_BOTTOM_RIGHT: + case SSA_ALIGNMENT_MIDDLE_CENTER: + case SSA_ALIGNMENT_MIDDLE_LEFT: + case SSA_ALIGNMENT_MIDDLE_RIGHT: + case SSA_ALIGNMENT_TOP_CENTER: + case SSA_ALIGNMENT_TOP_LEFT: + case SSA_ALIGNMENT_TOP_RIGHT: return true; - case SsaAlignment.UNKNOWN: + case SSA_ALIGNMENT_UNKNOWN: default: return false; } @@ -177,7 +223,7 @@ import java.util.regex.Pattern; } public static Overrides parseFromDialogue(String text) { - @SsaAlignment int alignment = SsaAlignment.UNKNOWN; + @SsaAlignment int alignment = SSA_ALIGNMENT_UNKNOWN; PointF position = null; Matcher matcher = BRACES_PATTERN.matcher(text); while (matcher.find()) { @@ -192,7 +238,7 @@ import java.util.regex.Pattern; } try { @SsaAlignment int parsedAlignment = parseAlignmentOverride(braceContents); - if (parsedAlignment != SsaAlignment.UNKNOWN) { + if (parsedAlignment != SSA_ALIGNMENT_UNKNOWN) { alignment = parsedAlignment; } } catch (RuntimeException e) { @@ -249,36 +295,7 @@ import java.util.regex.Pattern; @SsaAlignment private static int parseAlignmentOverride(String braceContents) { Matcher matcher = ALIGNMENT_OVERRIDE_PATTERN.matcher(braceContents); - return matcher.find() ? parseAlignment(matcher.group(1)) : SsaAlignment.UNKNOWN; + return matcher.find() ? parseAlignment(matcher.group(1)) : SSA_ALIGNMENT_UNKNOWN; } } - - /** The SSA/ASS alignments. */ - @IntDef({ - SsaAlignment.UNKNOWN, - SsaAlignment.BOTTOM_LEFT, - SsaAlignment.BOTTOM_CENTER, - SsaAlignment.BOTTOM_RIGHT, - SsaAlignment.MIDDLE_LEFT, - SsaAlignment.MIDDLE_CENTER, - SsaAlignment.MIDDLE_RIGHT, - SsaAlignment.TOP_LEFT, - SsaAlignment.TOP_CENTER, - SsaAlignment.TOP_RIGHT, - }) - @Documented - @Retention(SOURCE) - /* package */ @interface SsaAlignment { - // The numbering follows the ASS (v4+) spec (i.e. the points on the number pad). - int UNKNOWN = -1; - int BOTTOM_LEFT = 1; - int BOTTOM_CENTER = 2; - int BOTTOM_RIGHT = 3; - int MIDDLE_LEFT = 4; - int MIDDLE_CENTER = 5; - int MIDDLE_RIGHT = 6; - int TOP_LEFT = 7; - int TOP_CENTER = 8; - int TOP_RIGHT = 9; - } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java index bfa067e322..55e568efa1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCue.java @@ -77,39 +77,40 @@ public final class WebvttCue extends Cue { @Documented @Retention(SOURCE) @IntDef({ - TextAlignment.START, - TextAlignment.CENTER, - TextAlignment.END, - TextAlignment.LEFT, - TextAlignment.RIGHT + TEXT_ALIGNMENT_START, + TEXT_ALIGNMENT_CENTER, + TEXT_ALIGNMENT_END, + TEXT_ALIGNMENT_LEFT, + TEXT_ALIGNMENT_RIGHT }) - public @interface TextAlignment { - /** - * See WebVTT's align:start. - */ - int START = 1; - /** - * See WebVTT's align:center. - */ - int CENTER = 2; - /** - * See WebVTT's align:end. - */ - int END = 3; - /** - * See WebVTT's align:left. - */ - int LEFT = 4; - /** - * See WebVTT's align:right. - */ - int RIGHT = 5; - } + public @interface TextAlignment {} + /** + * See WebVTT's align:start. + */ + public static final int TEXT_ALIGNMENT_START = 1; + + /** + * See WebVTT's align:center. + */ + public static final int TEXT_ALIGNMENT_CENTER = 2; + + /** + * See WebVTT's align:end. + */ + public static final int TEXT_ALIGNMENT_END = 3; + + /** + * See WebVTT's align:left. + */ + public static final int TEXT_ALIGNMENT_LEFT = 4; + + /** + * See WebVTT's align:right. + */ + public static final int TEXT_ALIGNMENT_RIGHT = 5; private static final String TAG = "WebvttCueBuilder"; @@ -140,7 +141,7 @@ public final class WebvttCue extends Cue { endTime = 0; text = null; // Default: https://www.w3.org/TR/webvtt1/#webvtt-cue-text-alignment - textAlignment = TextAlignment.CENTER; + textAlignment = TEXT_ALIGNMENT_CENTER; line = Cue.DIMEN_UNSET; // Defaults to NUMBER (true): https://www.w3.org/TR/webvtt1/#webvtt-cue-snap-to-lines-flag lineType = Cue.LINE_TYPE_NUMBER; @@ -251,13 +252,13 @@ public final class WebvttCue extends Cue { // https://www.w3.org/TR/webvtt1/#webvtt-cue-position private static float derivePosition(@TextAlignment int textAlignment) { switch (textAlignment) { - case TextAlignment.LEFT: + case TEXT_ALIGNMENT_LEFT: return 0.0f; - case TextAlignment.RIGHT: + case TEXT_ALIGNMENT_RIGHT: return 1.0f; - case TextAlignment.START: - case TextAlignment.CENTER: - case TextAlignment.END: + case TEXT_ALIGNMENT_START: + case TEXT_ALIGNMENT_CENTER: + case TEXT_ALIGNMENT_END: default: return DEFAULT_POSITION; } @@ -267,13 +268,13 @@ public final class WebvttCue extends Cue { @AnchorType private static int derivePositionAnchor(@TextAlignment int textAlignment) { switch (textAlignment) { - case TextAlignment.LEFT: - case TextAlignment.START: + case TEXT_ALIGNMENT_LEFT: + case TEXT_ALIGNMENT_START: return Cue.ANCHOR_TYPE_START; - case TextAlignment.RIGHT: - case TextAlignment.END: + case TEXT_ALIGNMENT_RIGHT: + case TEXT_ALIGNMENT_END: return Cue.ANCHOR_TYPE_END; - case TextAlignment.CENTER: + case TEXT_ALIGNMENT_CENTER: default: return Cue.ANCHOR_TYPE_MIDDLE; } @@ -282,13 +283,13 @@ public final class WebvttCue extends Cue { @Nullable private static Alignment convertTextAlignment(@TextAlignment int textAlignment) { switch (textAlignment) { - case TextAlignment.START: - case TextAlignment.LEFT: + case TEXT_ALIGNMENT_START: + case TEXT_ALIGNMENT_LEFT: return Alignment.ALIGN_NORMAL; - case TextAlignment.CENTER: + case TEXT_ALIGNMENT_CENTER: return Alignment.ALIGN_CENTER; - case TextAlignment.END: - case TextAlignment.RIGHT: + case TEXT_ALIGNMENT_END: + case TEXT_ALIGNMENT_RIGHT: return Alignment.ALIGN_OPPOSITE; default: Log.w(TAG, "Unknown textAlignment: " + textAlignment); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java index 6e5bd31b4b..b6ddf89dc3 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCueParser.java @@ -308,20 +308,20 @@ public final class WebvttCueParser { private static int parseTextAlignment(String s) { switch (s) { case "start": - return WebvttCue.Builder.TextAlignment.START; + return WebvttCue.Builder.TEXT_ALIGNMENT_START; case "left": - return WebvttCue.Builder.TextAlignment.LEFT; + return WebvttCue.Builder.TEXT_ALIGNMENT_LEFT; case "center": case "middle": - return WebvttCue.Builder.TextAlignment.CENTER; + return WebvttCue.Builder.TEXT_ALIGNMENT_CENTER; case "end": - return WebvttCue.Builder.TextAlignment.END; + return WebvttCue.Builder.TEXT_ALIGNMENT_END; case "right": - return WebvttCue.Builder.TextAlignment.RIGHT; + return WebvttCue.Builder.TEXT_ALIGNMENT_RIGHT; default: Log.w(TAG, "Invalid alignment value: " + s); // Default value: https://www.w3.org/TR/webvtt1/#webvtt-cue-text-alignment - return WebvttCue.Builder.TextAlignment.CENTER; + return WebvttCue.Builder.TEXT_ALIGNMENT_CENTER; } } diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java index f74d9b0b0c..3b723af435 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriod.java @@ -75,7 +75,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper private final TimestampAdjusterProvider timestampAdjusterProvider; private final CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory; private final boolean allowChunklessPreparation; - private final @HlsMetadataType int metadataType; + private final @HlsMediaSource.MetadataType int metadataType; private final boolean useSessionKeys; @Nullable private Callback callback; @@ -118,7 +118,7 @@ public final class HlsMediaPeriod implements MediaPeriod, HlsSampleStreamWrapper Allocator allocator, CompositeSequenceableLoaderFactory compositeSequenceableLoaderFactory, boolean allowChunklessPreparation, - @HlsMetadataType int metadataType, + @HlsMediaSource.MetadataType int metadataType, boolean useSessionKeys) { this.extractorFactory = extractorFactory; this.playlistTracker = playlistTracker; diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java index 4f6a0405f2..db52fa1c02 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java @@ -15,8 +15,11 @@ */ package com.google.android.exoplayer2.source.hls; +import static java.lang.annotation.RetentionPolicy.SOURCE; + import android.net.Uri; import android.os.Handler; +import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ExoPlayerLibraryInfo; @@ -47,6 +50,8 @@ import com.google.android.exoplayer2.upstream.LoadErrorHandlingPolicy; import com.google.android.exoplayer2.upstream.TransferListener; import com.google.android.exoplayer2.util.Assertions; import java.io.IOException; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; import java.util.List; /** An HLS {@link MediaSource}. */ @@ -57,6 +62,28 @@ public final class HlsMediaSource extends BaseMediaSource ExoPlayerLibraryInfo.registerModule("goog.exo.hls"); } + /** + * The types of metadata that can be extracted from HLS streams. + * + *

Allowed values: + * + *

    + *
  • {@link #METADATA_TYPE_ID3} + *
  • {@link #METADATA_TYPE_EMSG} + *
+ * + *

See {@link Factory#setMetadataType(int)}. + */ + @Documented + @Retention(SOURCE) + @IntDef({METADATA_TYPE_ID3, METADATA_TYPE_EMSG}) + public @interface MetadataType {} + + /** Type for ID3 metadata in HLS streams. */ + public static final int METADATA_TYPE_ID3 = 1; + /** Type for ESMG metadata in HLS streams. */ + public static final int METADATA_TYPE_EMSG = 3; + /** Factory for {@link HlsMediaSource}s. */ public static final class Factory implements MediaSourceFactory { @@ -70,7 +97,7 @@ public final class HlsMediaSource extends BaseMediaSource private DrmSessionManager drmSessionManager; private LoadErrorHandlingPolicy loadErrorHandlingPolicy; private boolean allowChunklessPreparation; - @HlsMetadataType private int metadataType; + @MetadataType private int metadataType; private boolean useSessionKeys; private boolean isCreateCalled; @Nullable private Object tag; @@ -100,7 +127,7 @@ public final class HlsMediaSource extends BaseMediaSource drmSessionManager = DrmSessionManager.getDummyDrmSessionManager(); loadErrorHandlingPolicy = new DefaultLoadErrorHandlingPolicy(); compositeSequenceableLoaderFactory = new DefaultCompositeSequenceableLoaderFactory(); - metadataType = HlsMetadataType.ID3; + metadataType = METADATA_TYPE_ID3; } /** @@ -246,24 +273,24 @@ public final class HlsMediaSource extends BaseMediaSource /** * Sets the type of metadata to extract from the HLS source (defaults to {@link - * HlsMetadataType#ID3}). + * #METADATA_TYPE_ID3}). * *

HLS supports in-band ID3 in both TS and fMP4 streams, but in the fMP4 case the data is * wrapped in an EMSG box [spec]. * - *

If this is set to {@link HlsMetadataType#ID3} then raw ID3 metadata of will be extracted + *

If this is set to {@link #METADATA_TYPE_ID3} then raw ID3 metadata of will be extracted * from TS sources. From fMP4 streams EMSGs containing metadata of this type (in the variant * stream only) will be unwrapped to expose the inner data. All other in-band metadata will be * dropped. * - *

If this is set to {@link HlsMetadataType#EMSG} then all EMSG data from the fMP4 variant + *

If this is set to {@link #METADATA_TYPE_EMSG} then all EMSG data from the fMP4 variant * stream will be extracted. No metadata will be extracted from TS streams, since they don't * support EMSG. * * @param metadataType The type of metadata to extract. * @return This factory, for convenience. */ - public Factory setMetadataType(@HlsMetadataType int metadataType) { + public Factory setMetadataType(@MetadataType int metadataType) { Assertions.checkState(!isCreateCalled); this.metadataType = metadataType; return this; @@ -347,7 +374,7 @@ public final class HlsMediaSource extends BaseMediaSource private final DrmSessionManager drmSessionManager; private final LoadErrorHandlingPolicy loadErrorHandlingPolicy; private final boolean allowChunklessPreparation; - private final @HlsMetadataType int metadataType; + private final @MetadataType int metadataType; private final boolean useSessionKeys; private final HlsPlaylistTracker playlistTracker; @Nullable private final Object tag; @@ -363,7 +390,7 @@ public final class HlsMediaSource extends BaseMediaSource LoadErrorHandlingPolicy loadErrorHandlingPolicy, HlsPlaylistTracker playlistTracker, boolean allowChunklessPreparation, - @HlsMetadataType int metadataType, + @MetadataType int metadataType, boolean useSessionKeys, @Nullable Object tag) { this.manifestUri = manifestUri; diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMetadataType.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMetadataType.java deleted file mode 100644 index 8fb6c220cf..0000000000 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMetadataType.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ -package com.google.android.exoplayer2.source.hls; - -import static java.lang.annotation.RetentionPolicy.SOURCE; - -import androidx.annotation.IntDef; -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; - -/** - * The types of metadata that can be extracted from HLS streams. - * - *

See {@link HlsMediaSource.Factory#setMetadataType(int)}. - */ -@Documented -@Retention(SOURCE) -@IntDef({HlsMetadataType.ID3, HlsMetadataType.EMSG}) -public @interface HlsMetadataType { - /** Type for ID3 metadata in HLS streams. */ - int ID3 = 1; - /** Type for ESMG metadata in HLS streams. */ - int EMSG = 3; -} diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java index 18465bcaf7..77242ea0fa 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsSampleStreamWrapper.java @@ -116,7 +116,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; private final LoadErrorHandlingPolicy loadErrorHandlingPolicy; private final Loader loader; private final EventDispatcher eventDispatcher; - private final @HlsMetadataType int metadataType; + private final @HlsMediaSource.MetadataType int metadataType; private final HlsChunkSource.HlsChunkHolder nextChunkHolder; private final ArrayList mediaChunks; private final List readOnlyMediaChunks; @@ -190,7 +190,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; DrmSessionManager drmSessionManager, LoadErrorHandlingPolicy loadErrorHandlingPolicy, EventDispatcher eventDispatcher, - @HlsMetadataType int metadataType) { + @HlsMediaSource.MetadataType int metadataType) { this.trackType = trackType; this.callback = callback; this.chunkSource = chunkSource; @@ -1362,14 +1362,15 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; private byte[] buffer; private int bufferPosition; - public EmsgUnwrappingTrackOutput(TrackOutput delegate, @HlsMetadataType int metadataType) { + public EmsgUnwrappingTrackOutput( + TrackOutput delegate, @HlsMediaSource.MetadataType int metadataType) { this.emsgDecoder = new EventMessageDecoder(); this.delegate = delegate; switch (metadataType) { - case HlsMetadataType.ID3: + case HlsMediaSource.METADATA_TYPE_ID3: delegateFormat = ID3_FORMAT; break; - case HlsMetadataType.EMSG: + case HlsMediaSource.METADATA_TYPE_EMSG: delegateFormat = EMSG_FORMAT; break; default: diff --git a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriodTest.java b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriodTest.java index 73ef11bda9..820c39c197 100644 --- a/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriodTest.java +++ b/library/hls/src/test/java/com/google/android/exoplayer2/source/hls/HlsMediaPeriodTest.java @@ -92,7 +92,7 @@ public final class HlsMediaPeriodTest { mock(Allocator.class), mock(CompositeSequenceableLoaderFactory.class), /* allowChunklessPreparation =*/ true, - HlsMetadataType.ID3, + HlsMediaSource.METADATA_TYPE_ID3, /* useSessionKeys= */ false); }; From 63f7b99836114078248b9129ae366c92781c4a75 Mon Sep 17 00:00:00 2001 From: olly Date: Thu, 19 Dec 2019 12:22:24 +0000 Subject: [PATCH 015/368] Bump to 2.11.1 PiperOrigin-RevId: 286368964 --- RELEASENOTES.md | 21 +++++++++++-------- constants.gradle | 4 ++-- .../exoplayer2/ExoPlayerLibraryInfo.java | 6 +++--- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 57eb4f9519..322afc5769 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -4,15 +4,18 @@ * UI: Exclude `DefaultTimeBar` region from system gesture detection ([#6685](https://github.com/google/ExoPlayer/issues/6685)). -* Propagate HTTP request headers through `CacheDataSource`. -* AV1 extension: Fix ProGuard rules - ([6773](https://github.com/google/ExoPlayer/issues/6773)). -* Suppress ProGuard warnings for compile-time `javax.annotation` package - ([#6771](https://github.com/google/ExoPlayer/issues/6771)). -* Fix proguard rules for R8 to ensure raw resources used with - `RawResourceDataSource` are kept. -* Fix proguard rules to keep `VideoDecoderOutputBuffer` for video decoder - extensions. +* ProGuard fixes: + * Ensure `Libgav1VideoRenderer` constructor is kept for use by + `DefaultRenderersFactory` + ([#6773](https://github.com/google/ExoPlayer/issues/6773)). + * Ensure `VideoDecoderOutputBuffer` and its members are kept for use by video + decoder extensions. + * Ensure raw resources used with `RawResourceDataSource` are kept. + * Suppress spurious warnings about the `javax.annotation` package, and + restructure use of `IntDef` annotations to remove spurious warnings about + `SsaStyle$SsaAlignment` + ([#6771](https://github.com/google/ExoPlayer/issues/6771)). +* Fix `CacheDataSource` to correctly propagate `DataSpec.httpRequestHeaders`. ### 2.11.0 (2019-12-11) ### diff --git a/constants.gradle b/constants.gradle index 599af54dde..392c623455 100644 --- a/constants.gradle +++ b/constants.gradle @@ -13,8 +13,8 @@ // limitations under the License. project.ext { // ExoPlayer version and version code. - releaseVersion = '2.11.0' - releaseVersionCode = 2011000 + releaseVersion = '2.11.1' + releaseVersionCode = 2011001 minSdkVersion = 16 appTargetSdkVersion = 29 targetSdkVersion = 28 // TODO: Bump once b/143232359 is resolved diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java index 249ef7e44e..217f580e7b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java @@ -29,11 +29,11 @@ public final class ExoPlayerLibraryInfo { /** The version of the library expressed as a string, for example "1.2.3". */ // Intentionally hardcoded. Do not derive from other constants (e.g. VERSION_INT) or vice versa. - public static final String VERSION = "2.11.0"; + public static final String VERSION = "2.11.1"; /** The version of the library expressed as {@code "ExoPlayerLib/" + VERSION}. */ // Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa. - public static final String VERSION_SLASHY = "ExoPlayerLib/2.11.0"; + public static final String VERSION_SLASHY = "ExoPlayerLib/2.11.1"; /** * The version of the library expressed as an integer, for example 1002003. @@ -43,7 +43,7 @@ public final class ExoPlayerLibraryInfo { * integer version 123045006 (123-045-006). */ // Intentionally hardcoded. Do not derive from other constants (e.g. VERSION) or vice versa. - public static final int VERSION_INT = 2011000; + public static final int VERSION_INT = 2011001; /** * Whether the library was compiled with {@link com.google.android.exoplayer2.util.Assertions} From b7bc1fee9f39362039efd3465a0e34a0920f1ebe Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 20 Dec 2019 10:23:27 +0000 Subject: [PATCH 016/368] Add missing @Nullable to MediaCodecAudioRenderer.getMediaClock Without this @Nullable, potential subclasses can't override the method to return null if they don't want to use the renderer as a media clock. Issue:#6792 PiperOrigin-RevId: 286545736 --- RELEASENOTES.md | 3 +++ .../android/exoplayer2/audio/MediaCodecAudioRenderer.java | 1 + .../android/exoplayer2/audio/SimpleDecoderAudioRenderer.java | 1 + 3 files changed, 5 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 322afc5769..074294ae0a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -16,6 +16,9 @@ `SsaStyle$SsaAlignment` ([#6771](https://github.com/google/ExoPlayer/issues/6771)). * Fix `CacheDataSource` to correctly propagate `DataSpec.httpRequestHeaders`. +* Add missing @Nullable to `MediaCodecAudioRenderer.getMediaClock` and + `SimpleDecoderAudioRenderer.getMediaClock` + ([#6792](https://github.com/google/ExoPlayer/issues/6792)). ### 2.11.0 (2019-12-11) ### diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java index ae50d14728..096f4ccd1f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/MediaCodecAudioRenderer.java @@ -520,6 +520,7 @@ public class MediaCodecAudioRenderer extends MediaCodecRenderer implements Media } @Override + @Nullable public MediaClock getMediaClock() { return this; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java index 5ccbf04c5c..60870204cc 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/SimpleDecoderAudioRenderer.java @@ -218,6 +218,7 @@ public abstract class SimpleDecoderAudioRenderer extends BaseRenderer implements } @Override + @Nullable public MediaClock getMediaClock() { return this; } From e8cb7b237061b8e4ed4bd5cd2de020c4ddc882ce Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 12:14:29 +0000 Subject: [PATCH 017/368] Fix typo Merge of https://github.com/google/ExoPlayer/pull/6793 PiperOrigin-RevId: 286556008 --- .../google/android/exoplayer2/trackselection/TrackSelector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelector.java index fb74bd9d54..c2fbeb6e2d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/TrackSelector.java @@ -75,7 +75,7 @@ import com.google.android.exoplayer2.util.Assertions; * the two are tightly bound together. It may only be possible to play a certain combination tracks * if the renderers are configured in a particular way. Equally, it may only be possible to * configure renderers in a particular way if certain tracks are selected. Hence it makes sense to - * determined the track selection and corresponding renderer configurations in a single step. + * determine the track selection and corresponding renderer configurations in a single step. * *

Threading model

* From 406acfc38fba096311678ba322fed244c0efb219 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 15:37:08 +0000 Subject: [PATCH 018/368] Relax MP4 sniffing to allow an atom to extend beyond the file length Issue: #6774 PiperOrigin-RevId: 286575797 --- .../com/google/android/exoplayer2/extractor/mp4/Sniffer.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/Sniffer.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/Sniffer.java index 95193785c0..dac74bfe2b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/Sniffer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/mp4/Sniffer.java @@ -118,10 +118,6 @@ import java.io.IOException; } } - if (inputLength != C.LENGTH_UNSET && bytesSearched + atomSize > inputLength) { - // The file is invalid because the atom extends past the end of the file. - return false; - } if (atomSize < headerSize) { // The file is invalid because the atom size is too small for its header. return false; From 87865a5cc442f353fce1979a0047f726a0b8ffd6 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 15:41:01 +0000 Subject: [PATCH 019/368] DefaultDownloadIndex: Clear failure reason when removing download The Download constructor considers it invalid to have a failure reason if the download isn't in the failed state. Unfortunately, calling DefaultDownloadIndex.removeAllDownloads when there's a failed download will change the state without clearing the reason. If the downloads are then read back from the DefaultDownloadIndex we end up violating the Download constructor assertion. This change clears the failed reason for any existing rows in the invalid state, and also fixes the root cause that allows invalid rows to enter the table in the first place. Issue: #6785 PiperOrigin-RevId: 286576242 --- RELEASENOTES.md | 4 ++++ .../offline/DefaultDownloadIndex.java | 17 +++++++++++++++-- .../android/exoplayer2/offline/Download.java | 4 ++-- .../offline/DefaultDownloadIndexTest.java | 17 +++++++++++++++++ 4 files changed, 38 insertions(+), 4 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 074294ae0a..3f97174278 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -16,6 +16,10 @@ `SsaStyle$SsaAlignment` ([#6771](https://github.com/google/ExoPlayer/issues/6771)). * Fix `CacheDataSource` to correctly propagate `DataSpec.httpRequestHeaders`. +* Fix issue with `DefaultDownloadIndex` that could result in an + `IllegalStateException` being thrown from + `DefaultDownloadIndex.getDownloadForCurrentRow` + ([#6785](https://github.com/google/ExoPlayer/issues/6785)). * Add missing @Nullable to `MediaCodecAudioRenderer.getMediaClock` and `SimpleDecoderAudioRenderer.getMediaClock` ([#6792](https://github.com/google/ExoPlayer/issues/6792)). diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloadIndex.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloadIndex.java index 7ed1eb095f..f1c897813f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloadIndex.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloadIndex.java @@ -26,6 +26,8 @@ import androidx.annotation.VisibleForTesting; import com.google.android.exoplayer2.database.DatabaseIOException; import com.google.android.exoplayer2.database.DatabaseProvider; import com.google.android.exoplayer2.database.VersionTable; +import com.google.android.exoplayer2.offline.Download.FailureReason; +import com.google.android.exoplayer2.offline.Download.State; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; import java.util.ArrayList; @@ -239,6 +241,9 @@ public final class DefaultDownloadIndex implements WritableDownloadIndex { try { ContentValues values = new ContentValues(); values.put(COLUMN_STATE, Download.STATE_REMOVING); + // Only downloads in STATE_FAILED are allowed a failure reason, so we need to clear it here in + // case we're moving downloads from STATE_FAILED to STATE_REMOVING. + values.put(COLUMN_FAILURE_REASON, Download.FAILURE_REASON_NONE); SQLiteDatabase writableDatabase = databaseProvider.getWritableDatabase(); writableDatabase.update(tableName, values, /* whereClause= */ null, /* whereArgs= */ null); } catch (SQLException e) { @@ -351,14 +356,22 @@ public final class DefaultDownloadIndex implements WritableDownloadIndex { DownloadProgress downloadProgress = new DownloadProgress(); downloadProgress.bytesDownloaded = cursor.getLong(COLUMN_INDEX_BYTES_DOWNLOADED); downloadProgress.percentDownloaded = cursor.getFloat(COLUMN_INDEX_PERCENT_DOWNLOADED); + @State int state = cursor.getInt(COLUMN_INDEX_STATE); + // It's possible the database contains failure reasons for non-failed downloads, which is + // invalid. Clear them here. See https://github.com/google/ExoPlayer/issues/6785. + @FailureReason + int failureReason = + state == Download.STATE_FAILED + ? cursor.getInt(COLUMN_INDEX_FAILURE_REASON) + : Download.FAILURE_REASON_NONE; return new Download( request, - /* state= */ cursor.getInt(COLUMN_INDEX_STATE), + state, /* startTimeMs= */ cursor.getLong(COLUMN_INDEX_START_TIME_MS), /* updateTimeMs= */ cursor.getLong(COLUMN_INDEX_UPDATE_TIME_MS), /* contentLength= */ cursor.getLong(COLUMN_INDEX_CONTENT_LENGTH), /* stopReason= */ cursor.getInt(COLUMN_INDEX_STOP_REASON), - /* failureReason= */ cursor.getInt(COLUMN_INDEX_FAILURE_REASON), + failureReason, downloadProgress); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/Download.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/Download.java index 97dff8394e..da46120b29 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/Download.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/Download.java @@ -130,9 +130,9 @@ public final class Download { @FailureReason int failureReason, DownloadProgress progress) { Assertions.checkNotNull(progress); - Assertions.checkState((failureReason == FAILURE_REASON_NONE) == (state != STATE_FAILED)); + Assertions.checkArgument((failureReason == FAILURE_REASON_NONE) == (state != STATE_FAILED)); if (stopReason != 0) { - Assertions.checkState(state != STATE_DOWNLOADING && state != STATE_QUEUED); + Assertions.checkArgument(state != STATE_DOWNLOADING && state != STATE_QUEUED); } this.request = request; this.state = state; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/offline/DefaultDownloadIndexTest.java b/library/core/src/test/java/com/google/android/exoplayer2/offline/DefaultDownloadIndexTest.java index f42a1c6086..d7664e21ca 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/offline/DefaultDownloadIndexTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/offline/DefaultDownloadIndexTest.java @@ -248,6 +248,23 @@ public class DefaultDownloadIndexTest { assertEqual(readDownload, download); } + @Test + public void setStatesToRemoving_setsStateAndClearsFailureReason() throws Exception { + String id = "id"; + DownloadBuilder downloadBuilder = + new DownloadBuilder(id) + .setState(Download.STATE_FAILED) + .setFailureReason(Download.FAILURE_REASON_UNKNOWN); + Download download = downloadBuilder.build(); + downloadIndex.putDownload(download); + + downloadIndex.setStatesToRemoving(); + + download = downloadIndex.getDownload(id); + assertThat(download.state).isEqualTo(Download.STATE_REMOVING); + assertThat(download.failureReason).isEqualTo(Download.FAILURE_REASON_NONE); + } + @Test public void setSingleDownloadStopReason_setReasonToNone() throws Exception { String id = "id"; From c6036d5271fad5e6e96db205fa001acd4a735587 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 15:42:10 +0000 Subject: [PATCH 020/368] Add test case for mdat atom extending beyond the file length Issue: #6774 PiperOrigin-RevId: 286576383 --- .../test/assets/mp4/sample_mdat_too_long.mp4 | Bin 0 -> 101597 bytes .../mp4/sample_mdat_too_long.mp4.0.dump | 359 ++++++++++++++++++ .../mp4/sample_mdat_too_long.mp4.1.dump | 311 +++++++++++++++ .../mp4/sample_mdat_too_long.mp4.2.dump | 251 ++++++++++++ .../mp4/sample_mdat_too_long.mp4.3.dump | 191 ++++++++++ .../extractor/mp4/Mp4ExtractorTest.java | 9 + 6 files changed, 1121 insertions(+) create mode 100644 library/core/src/test/assets/mp4/sample_mdat_too_long.mp4 create mode 100644 library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump create mode 100644 library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump create mode 100644 library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump create mode 100644 library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump diff --git a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4 b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f50d4f49de53c19d49856c047580278c9a5e80ec GIT binary patch literal 101597 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 Date: Fri, 20 Dec 2019 16:38:34 +0000 Subject: [PATCH 021/368] Fix potentially wrong window index in onMediaPeriodCreated. Issue:#6776 --- .../android/exoplayer2/analytics/AnalyticsCollector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java index 5a57844c83..b215fa5211 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java @@ -806,7 +806,10 @@ public class AnalyticsCollector public void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) { boolean isInTimeline = timeline.getIndexOfPeriod(mediaPeriodId.periodUid) != C.INDEX_UNSET; MediaPeriodInfo mediaPeriodInfo = - new MediaPeriodInfo(mediaPeriodId, isInTimeline ? timeline : Timeline.EMPTY, windowIndex); + new MediaPeriodInfo( + mediaPeriodId, + isInTimeline ? timeline : Timeline.EMPTY, + isInTimeline ? timeline.getPeriod(periodIndex, period).windowIndex : windowIndex); mediaPeriodInfoQueue.add(mediaPeriodInfo); mediaPeriodIdToInfo.put(mediaPeriodId, mediaPeriodInfo); lastPlayingMediaPeriod = mediaPeriodInfoQueue.get(0); From c2997481322001e7700a9fe97a379b7ab6da658b Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 20 Dec 2019 16:47:42 +0000 Subject: [PATCH 022/368] Fix build by saving periodIndex to separate variable --- .../android/exoplayer2/analytics/AnalyticsCollector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java index b215fa5211..dc1089eca0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/analytics/AnalyticsCollector.java @@ -804,7 +804,8 @@ public class AnalyticsCollector /** Updates the queue with a newly created media period. */ public void onMediaPeriodCreated(int windowIndex, MediaPeriodId mediaPeriodId) { - boolean isInTimeline = timeline.getIndexOfPeriod(mediaPeriodId.periodUid) != C.INDEX_UNSET; + int periodIndex = timeline.getIndexOfPeriod(mediaPeriodId.periodUid); + boolean isInTimeline = periodIndex != C.INDEX_UNSET; MediaPeriodInfo mediaPeriodInfo = new MediaPeriodInfo( mediaPeriodId, From 72ff4504d360915101c3908577ecff4424262f9b Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Fri, 20 Dec 2019 16:51:02 +0000 Subject: [PATCH 023/368] Add troubleshooting instructions for decoding extensions PiperOrigin-RevId: 286585978 --- extensions/av1/README.md | 8 ++++++++ extensions/ffmpeg/README.md | 10 ++++++++++ extensions/flac/README.md | 8 ++++++++ extensions/opus/README.md | 8 ++++++++ extensions/vp9/README.md | 8 ++++++++ 5 files changed, 42 insertions(+) diff --git a/extensions/av1/README.md b/extensions/av1/README.md index 276daae4e2..54e27a3b87 100644 --- a/extensions/av1/README.md +++ b/extensions/av1/README.md @@ -96,6 +96,14 @@ a custom track selector the choice of `Renderer` is up to your implementation. You need to make sure you are passing a `Libgav1VideoRenderer` to the player and then you need to implement your own logic to use the renderer for a given track. +## Using the extension in the demo application ## + +To try out playback using the extension in the [demo application][], see +[enabling extension decoders][]. + +[demo application]: https://exoplayer.dev/demo-application.html +[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders + ## Rendering options ## There are two possibilities for rendering the output `Libgav1VideoRenderer` diff --git a/extensions/ffmpeg/README.md b/extensions/ffmpeg/README.md index fe4aca772a..1b2db8f0f4 100644 --- a/extensions/ffmpeg/README.md +++ b/extensions/ffmpeg/README.md @@ -106,9 +106,19 @@ then implement your own logic to use the renderer for a given track. [#2781]: https://github.com/google/ExoPlayer/issues/2781 [Supported formats]: https://exoplayer.dev/supported-formats.html#ffmpeg-extension +## Using the extension in the demo application ## + +To try out playback using the extension in the [demo application][], see +[enabling extension decoders][]. + +[demo application]: https://exoplayer.dev/demo-application.html +[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders + ## Links ## +* [Troubleshooting using extensions][] * [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.ffmpeg.*` belong to this module. +[Troubleshooting using extensions]: https://exoplayer.dev/troubleshooting.html#how-can-i-get-a-decoding-extension-to-load-and-be-used-for-playback [Javadoc]: https://exoplayer.dev/doc/reference/index.html diff --git a/extensions/flac/README.md b/extensions/flac/README.md index 84a92f9586..a9d4c3094e 100644 --- a/extensions/flac/README.md +++ b/extensions/flac/README.md @@ -97,6 +97,14 @@ a custom track selector the choice of `Renderer` is up to your implementation, so you need to make sure you are passing an `LibflacAudioRenderer` to the player, then implement your own logic to use the renderer for a given track. +## Using the extension in the demo application ## + +To try out playback using the extension in the [demo application][], see +[enabling extension decoders][]. + +[demo application]: https://exoplayer.dev/demo-application.html +[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders + ## Links ## * [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.flac.*` diff --git a/extensions/opus/README.md b/extensions/opus/README.md index 05448f2073..d3691b07bd 100644 --- a/extensions/opus/README.md +++ b/extensions/opus/README.md @@ -101,6 +101,14 @@ a custom track selector the choice of `Renderer` is up to your implementation, so you need to make sure you are passing an `LibopusAudioRenderer` to the player, then implement your own logic to use the renderer for a given track. +## Using the extension in the demo application ## + +To try out playback using the extension in the [demo application][], see +[enabling extension decoders][]. + +[demo application]: https://exoplayer.dev/demo-application.html +[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders + ## Links ## * [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.opus.*` diff --git a/extensions/vp9/README.md b/extensions/vp9/README.md index 71241d9a4f..fd0836648a 100644 --- a/extensions/vp9/README.md +++ b/extensions/vp9/README.md @@ -114,6 +114,14 @@ a custom track selector the choice of `Renderer` is up to your implementation, so you need to make sure you are passing an `LibvpxVideoRenderer` to the player, then implement your own logic to use the renderer for a given track. +## Using the extension in the demo application ## + +To try out playback using the extension in the [demo application][], see +[enabling extension decoders][]. + +[demo application]: https://exoplayer.dev/demo-application.html +[enabling extension decoders]: https://exoplayer.dev/demo-application.html#enabling-extension-decoders + ## Rendering options ## There are two possibilities for rendering the output `LibvpxVideoRenderer` From 472a4d2f5b5c32bf8fa969608f9f7af8967469ae Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 16:57:42 +0000 Subject: [PATCH 024/368] Update release notes for #6776 PiperOrigin-RevId: 286586865 --- RELEASENOTES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3f97174278..c219ad813b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -20,6 +20,8 @@ `IllegalStateException` being thrown from `DefaultDownloadIndex.getDownloadForCurrentRow` ([#6785](https://github.com/google/ExoPlayer/issues/6785)). +* Fix `IndexOutOfBoundsException` in `SinglePeriodTimeline.getWindow` + ([#6776](https://github.com/google/ExoPlayer/issues/6776)). * Add missing @Nullable to `MediaCodecAudioRenderer.getMediaClock` and `SimpleDecoderAudioRenderer.getMediaClock` ([#6792](https://github.com/google/ExoPlayer/issues/6792)). From f6dad5cee0d0b21cda8d67ccf036579c642ccfb7 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 20:15:27 +0000 Subject: [PATCH 025/368] Enable blacklisting for HTTP 416 Where media segments are specified using byte ranges, it makes sense that a server might return 416 (which we don't consider for blacklisting) if the segment is unavailable, rather than the 404 (which we do consider for blacklisting) that we expect when media segments are only specified using a URL. Issue: #6775 PiperOrigin-RevId: 286620698 --- .../exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.java | 1 + 1 file changed, 1 insertion(+) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.java index 307652f456..435f4bf578 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy.java @@ -71,6 +71,7 @@ public class DefaultLoadErrorHandlingPolicy implements LoadErrorHandlingPolicy { int responseCode = ((InvalidResponseCodeException) exception).responseCode; return responseCode == 404 // HTTP 404 Not Found. || responseCode == 410 // HTTP 410 Gone. + || responseCode == 416 // HTTP 416 Range Not Satisfiable. ? DEFAULT_TRACK_BLACKLIST_MS : C.TIME_UNSET; } From 924045be034c35d7378e6bdb185885e698d5b2f5 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 20 Dec 2019 17:04:06 +0000 Subject: [PATCH 026/368] Release notes tweak PiperOrigin-RevId: 286587978 --- RELEASENOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index c219ad813b..49127a1099 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -22,7 +22,7 @@ ([#6785](https://github.com/google/ExoPlayer/issues/6785)). * Fix `IndexOutOfBoundsException` in `SinglePeriodTimeline.getWindow` ([#6776](https://github.com/google/ExoPlayer/issues/6776)). -* Add missing @Nullable to `MediaCodecAudioRenderer.getMediaClock` and +* Add missing `@Nullable` to `MediaCodecAudioRenderer.getMediaClock` and `SimpleDecoderAudioRenderer.getMediaClock` ([#6792](https://github.com/google/ExoPlayer/issues/6792)). From 27e48558304cdb672edf05383171215d32c255cb Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Fri, 20 Dec 2019 22:18:52 +0000 Subject: [PATCH 027/368] Fix tests for 2.11.1 --- .../core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump | 2 -- .../core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump | 2 -- .../core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump | 2 -- .../core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump | 2 -- 4 files changed, 8 deletions(-) diff --git a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump index 3b1c90c783..4bc30a8bef 100644 --- a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump +++ b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.0.dump @@ -24,7 +24,6 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -171,7 +170,6 @@ track 1: selectionFlags = 0 language = und drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 9529 diff --git a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump index 7d8c3c1e5d..3b4906f063 100644 --- a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump +++ b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.1.dump @@ -24,7 +24,6 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -171,7 +170,6 @@ track 1: selectionFlags = 0 language = und drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 7464 diff --git a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump index a87f1678a4..b4db32c20c 100644 --- a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump +++ b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.2.dump @@ -24,7 +24,6 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -171,7 +170,6 @@ track 1: selectionFlags = 0 language = und drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 4019 diff --git a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump index 6431ca98c6..fd58d5042e 100644 --- a/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump +++ b/library/core/src/test/assets/mp4/sample_mdat_too_long.mp4.3.dump @@ -24,7 +24,6 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -171,7 +170,6 @@ track 1: selectionFlags = 0 language = und drmInitData = - - metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 470 From a0eb081aed0b73fedc687e06c8d122baedc40789 Mon Sep 17 00:00:00 2001 From: Don Turner Date: Fri, 10 Jan 2020 10:24:22 +0000 Subject: [PATCH 028/368] Add favicon to javadocs --- javadoc_util.gradle | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/javadoc_util.gradle b/javadoc_util.gradle index cff5f29392..d5b1f56720 100644 --- a/javadoc_util.gradle +++ b/javadoc_util.gradle @@ -27,6 +27,23 @@ ext.fixJavadoc = { ant.replaceregexp(match:oracleLink, replace:oracleFixed, flags:'g') { fileset(dir: "${javadocPath}", includes: "**/*.html") } + // Add favicon to each page + def headTag = "" + def headTagWithFavicon = "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + ant.replaceregexp(match:headTag, replace:headTagWithFavicon, flags:'g') { + fileset(dir: "${javadocPath}", includes: "**/*.html") + } // Remove date metadata that changes every time Javadoc is generated. def javadocGeneratedBy = "\n" ant.replaceregexp(match:javadocGeneratedBy, replace:"") { From dcebf93ab4f7b8746e2a1025f8dee93bcf0e303e Mon Sep 17 00:00:00 2001 From: kimvde Date: Mon, 18 Nov 2019 17:16:45 +0000 Subject: [PATCH 029/368] Add Java FLAC extractor Seeking, live streams support and exposure of vorbis and ID3 data are not part of this commit. Issue: #6406 PiperOrigin-RevId: 281083332 --- RELEASENOTES.md | 8 + demos/main/src/main/assets/media.exolist.json | 4 + .../ext/flac/FlacBinarySearchSeeker.java | 2 +- .../exoplayer2/ext/flac/FlacDecoder.java | 2 +- .../exoplayer2/ext/flac/FlacExtractor.java | 33 +- .../extractor/DefaultExtractorsFactory.java | 19 +- .../extractor/flac/FlacExtractor.java | 302 ++++++++++++++++++ .../exoplayer2/extractor/ogg/FlacReader.java | 24 +- .../exoplayer2/util/FlacConstants.java | 33 ++ .../exoplayer2/util/FlacFrameReader.java | 257 +++++++++++++++ .../exoplayer2/util/FlacMetadataReader.java | 208 ++++++++++++ .../exoplayer2/util/FlacStreamMetadata.java | 163 ++++++++-- library/core/src/test/assets/flac/bear.flac | Bin 0 -> 173311 bytes .../src/test/assets/flac/bear.flac.0.dump | 163 ++++++++++ .../flac/bear_no_min_max_frame_size.flac | Bin 0 -> 173311 bytes .../bear_no_min_max_frame_size.flac.0.dump | 163 ++++++++++ .../test/assets/flac/bear_no_num_samples.flac | Bin 0 -> 173311 bytes .../flac/bear_no_num_samples.flac.0.dump | 163 ++++++++++ .../assets/flac/bear_one_metadata_block.flac | Bin 0 -> 164473 bytes .../flac/bear_one_metadata_block.flac.0.dump | 163 ++++++++++ .../flac/bear_uncommon_sample_rate.flac | Bin 0 -> 152374 bytes .../bear_uncommon_sample_rate.flac.0.dump | 139 ++++++++ .../src/test/assets/flac/bear_with_id3.flac | Bin 0 -> 219715 bytes .../assets/flac/bear_with_id3.flac.0.dump | 163 ++++++++++ .../DefaultExtractorsFactoryTest.java | 4 +- .../extractor/flac/FlacExtractorTest.java | 56 ++++ 26 files changed, 1989 insertions(+), 80 deletions(-) create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/util/FlacConstants.java create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java create mode 100644 library/core/src/test/assets/flac/bear.flac create mode 100644 library/core/src/test/assets/flac/bear.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac create mode 100644 library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_no_num_samples.flac create mode 100644 library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_one_metadata_block.flac create mode 100644 library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac create mode 100644 library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_with_id3.flac create mode 100644 library/core/src/test/assets/flac/bear_with_id3.flac.0.dump create mode 100644 library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 49127a1099..a1b79518a9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,13 @@ # Release notes # +### 2.11.2 (TBD) ### + +* Add Java FLAC extractor + ([#6406](https://github.com/google/ExoPlayer/issues/6406)). + This extractor does not support seeking and live streams, and does not expose + vorbis, ID3 and picture data. If `DefaultExtractorsFactory` is used, this + extractor is only used if the FLAC extension is not loaded. + ### 2.11.1 (2019-12-20) ### * UI: Exclude `DefaultTimeBar` region from system gesture detection diff --git a/demos/main/src/main/assets/media.exolist.json b/demos/main/src/main/assets/media.exolist.json index 01980c2f36..8550377ddf 100644 --- a/demos/main/src/main/assets/media.exolist.json +++ b/demos/main/src/main/assets/media.exolist.json @@ -411,6 +411,10 @@ "name": "Google Play (Ogg/Vorbis)", "uri": "https://storage.googleapis.com/exoplayer-test-media-1/ogg/play.ogg" }, + { + "name": "Google Play (FLAC)", + "uri": "https://storage.googleapis.com/exoplayer-test-media-1/flac/play.flac" + }, { "name": "Big Buck Bunny video (FLV)", "uri": "https://vod.leasewebcdn.com/bbb.flv?ri=1024&rs=150&start=0" diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java index 4bfcc003ec..08f179152e 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java @@ -41,7 +41,7 @@ import java.nio.ByteBuffer; super( new FlacSeekTimestampConverter(streamMetadata), new FlacTimestampSeeker(decoderJni), - streamMetadata.durationUs(), + streamMetadata.getDurationUs(), /* floorTimePosition= */ 0, /* ceilingTimePosition= */ streamMetadata.totalSamples, /* floorBytePosition= */ firstFramePosition, diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacDecoder.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacDecoder.java index 890d82a006..e1f6112319 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacDecoder.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacDecoder.java @@ -72,7 +72,7 @@ import java.util.List; int initialInputBufferSize = maxInputBufferSize != Format.NO_VALUE ? maxInputBufferSize : streamMetadata.maxFrameSize; setInitialInputBufferSize(initialInputBufferSize); - maxOutputBufferSize = streamMetadata.maxDecodedFrameSize(); + maxOutputBufferSize = streamMetadata.getMaxDecodedFrameSize(); } @Override diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index fb5d41c0de..02a57dbf81 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -34,6 +34,7 @@ import com.google.android.exoplayer2.extractor.TrackOutput; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.id3.Id3Decoder; import com.google.android.exoplayer2.util.Assertions; +import com.google.android.exoplayer2.util.FlacMetadataReader; import com.google.android.exoplayer2.util.FlacStreamMetadata; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; @@ -42,7 +43,6 @@ import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.nio.ByteBuffer; -import java.util.Arrays; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; @@ -72,9 +72,6 @@ public final class FlacExtractor implements Extractor { */ public static final int FLAG_DISABLE_ID3_METADATA = 1; - /** FLAC stream marker */ - private static final byte[] FLAC_STREAM_MARKER = {'f', 'L', 'a', 'C'}; - private final ParsableByteArray outputBuffer; private final Id3Peeker id3Peeker; private final boolean id3MetadataDisabled; @@ -120,10 +117,8 @@ public final class FlacExtractor implements Extractor { @Override public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { - if (input.getPosition() == 0) { - id3Metadata = peekId3Data(input); - } - return peekFlacStreamMarker(input); + id3Metadata = peekId3Data(input); + return FlacMetadataReader.checkAndPeekStreamMarker(input); } @Override @@ -230,7 +225,7 @@ public final class FlacExtractor implements Extractor { metadata = streamMetadata.metadata.copyWithAppendedEntriesFrom(metadata); } outputFormat(streamMetadata, metadata, trackOutput); - outputBuffer.reset(streamMetadata.maxDecodedFrameSize()); + outputBuffer.reset(streamMetadata.getMaxDecodedFrameSize()); outputFrameHolder = new OutputFrameHolder(ByteBuffer.wrap(outputBuffer.data)); } } @@ -251,18 +246,6 @@ public final class FlacExtractor implements Extractor { return seekResult; } - /** - * Peeks from the beginning of the input to see if {@link #FLAC_STREAM_MARKER} is present. - * - * @return Whether the input begins with {@link #FLAC_STREAM_MARKER}. - */ - private static boolean peekFlacStreamMarker(ExtractorInput input) - throws IOException, InterruptedException { - byte[] header = new byte[FLAC_STREAM_MARKER.length]; - input.peekFully(header, /* offset= */ 0, FLAC_STREAM_MARKER.length); - return Arrays.equals(header, FLAC_STREAM_MARKER); - } - /** * Outputs a {@link SeekMap} and returns a {@link FlacBinarySearchSeeker} if one is required to * handle seeks. @@ -277,14 +260,14 @@ public final class FlacExtractor implements Extractor { FlacBinarySearchSeeker binarySearchSeeker = null; SeekMap seekMap; if (haveSeekTable) { - seekMap = new FlacSeekMap(streamMetadata.durationUs(), decoderJni); + seekMap = new FlacSeekMap(streamMetadata.getDurationUs(), decoderJni); } else if (streamLength != C.LENGTH_UNSET) { long firstFramePosition = decoderJni.getDecodePosition(); binarySearchSeeker = new FlacBinarySearchSeeker(streamMetadata, firstFramePosition, streamLength, decoderJni); seekMap = binarySearchSeeker.getSeekMap(); } else { - seekMap = new SeekMap.Unseekable(streamMetadata.durationUs()); + seekMap = new SeekMap.Unseekable(streamMetadata.getDurationUs()); } output.seekMap(seekMap); return binarySearchSeeker; @@ -297,8 +280,8 @@ public final class FlacExtractor implements Extractor { /* id= */ null, MimeTypes.AUDIO_RAW, /* codecs= */ null, - streamMetadata.bitRate(), - streamMetadata.maxDecodedFrameSize(), + streamMetadata.getBitRate(), + streamMetadata.getMaxDecodedFrameSize(), streamMetadata.channels, streamMetadata.sampleRate, getPcmEncoding(streamMetadata.bitsPerSample), diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java index 02c676dfdf..26f250feea 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.extractor; import com.google.android.exoplayer2.extractor.amr.AmrExtractor; +import com.google.android.exoplayer2.extractor.flac.FlacExtractor; import com.google.android.exoplayer2.extractor.flv.FlvExtractor; import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor; import com.google.android.exoplayer2.extractor.mp3.Mp3Extractor; @@ -55,12 +56,13 @@ import java.lang.reflect.Constructor; */ public final class DefaultExtractorsFactory implements ExtractorsFactory { - private static final Constructor FLAC_EXTRACTOR_CONSTRUCTOR; + private static final Constructor FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR; + static { - Constructor flacExtractorConstructor = null; + Constructor flacExtensionExtractorConstructor = null; try { // LINT.IfChange - flacExtractorConstructor = + flacExtensionExtractorConstructor = Class.forName("com.google.android.exoplayer2.ext.flac.FlacExtractor") .asSubclass(Extractor.class) .getConstructor(); @@ -71,7 +73,7 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { // The FLAC extension is present, but instantiation failed. throw new RuntimeException("Error instantiating FLAC extension", e); } - FLAC_EXTRACTOR_CONSTRUCTOR = flacExtractorConstructor; + FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR = flacExtensionExtractorConstructor; } private boolean constantBitrateSeekingEnabled; @@ -208,7 +210,7 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { @Override public synchronized Extractor[] createExtractors() { - Extractor[] extractors = new Extractor[FLAC_EXTRACTOR_CONSTRUCTOR == null ? 13 : 14]; + Extractor[] extractors = new Extractor[14]; extractors[0] = new MatroskaExtractor(matroskaFlags); extractors[1] = new FragmentedMp4Extractor(fragmentedMp4Flags); extractors[2] = new Mp4Extractor(mp4Flags); @@ -237,13 +239,16 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0)); extractors[12] = new Ac4Extractor(); - if (FLAC_EXTRACTOR_CONSTRUCTOR != null) { + // Prefer the FLAC extension extractor because it supports seeking. + if (FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR != null) { try { - extractors[13] = FLAC_EXTRACTOR_CONSTRUCTOR.newInstance(); + extractors[13] = FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR.newInstance(); } catch (Exception e) { // Should never happen. throw new IllegalStateException("Unexpected error creating FLAC extractor", e); } + } else { + extractors[13] = new FlacExtractor(); } return extractors; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java new file mode 100644 index 0000000000..33f608788b --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -0,0 +1,302 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.extractor.flac; + +import static com.google.android.exoplayer2.util.Util.castNonNull; + +import androidx.annotation.IntDef; +import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.extractor.Extractor; +import com.google.android.exoplayer2.extractor.ExtractorInput; +import com.google.android.exoplayer2.extractor.ExtractorOutput; +import com.google.android.exoplayer2.extractor.ExtractorsFactory; +import com.google.android.exoplayer2.extractor.PositionHolder; +import com.google.android.exoplayer2.extractor.SeekMap; +import com.google.android.exoplayer2.extractor.TrackOutput; +import com.google.android.exoplayer2.util.Assertions; +import com.google.android.exoplayer2.util.FlacConstants; +import com.google.android.exoplayer2.util.FlacFrameReader; +import com.google.android.exoplayer2.util.FlacFrameReader.BlockSizeHolder; +import com.google.android.exoplayer2.util.FlacMetadataReader; +import com.google.android.exoplayer2.util.FlacMetadataReader.FirstFrameMetadata; +import com.google.android.exoplayer2.util.FlacStreamMetadata; +import com.google.android.exoplayer2.util.ParsableByteArray; +import java.io.IOException; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + +// TODO: implement seeking. +// TODO: expose vorbis and ID3 data. +// TODO: support live streams. +/** + * Extracts data from FLAC container format. + * + *

The format specification can be found at https://xiph.org/flac/format.html. + */ +public final class FlacExtractor implements Extractor { + + /** Factory for {@link FlacExtractor} instances. */ + public static final ExtractorsFactory FACTORY = () -> new Extractor[] {new FlacExtractor()}; + + /** Parser state. */ + @Documented + @Retention(RetentionPolicy.SOURCE) + @IntDef({ + STATE_READ_ID3_TAG, + STATE_READ_STREAM_MARKER, + STATE_READ_STREAM_INFO_BLOCK, + STATE_SKIP_OPTIONAL_METADATA_BLOCKS, + STATE_GET_FIRST_FRAME_METADATA, + STATE_READ_FRAMES + }) + private @interface State {} + + private static final int STATE_READ_ID3_TAG = 0; + private static final int STATE_READ_STREAM_MARKER = 1; + private static final int STATE_READ_STREAM_INFO_BLOCK = 2; + private static final int STATE_SKIP_OPTIONAL_METADATA_BLOCKS = 3; + private static final int STATE_GET_FIRST_FRAME_METADATA = 4; + private static final int STATE_READ_FRAMES = 5; + + /** Arbitrary scratch length of 32KB, which is ~170ms of 16-bit stereo PCM audio at 48KHz. */ + private static final int SCRATCH_LENGTH = 32 * 1024; + + /** Value of an unknown block size. */ + private static final int BLOCK_SIZE_UNKNOWN = -1; + + private final byte[] streamMarkerAndInfoBlock; + private final ParsableByteArray scratch; + + private final BlockSizeHolder blockSizeHolder; + + @MonotonicNonNull private ExtractorOutput extractorOutput; + @MonotonicNonNull private TrackOutput trackOutput; + + private @State int state; + @MonotonicNonNull private FlacStreamMetadata flacStreamMetadata; + private int minFrameSize; + private int frameStartMarker; + private int currentFrameBlockSizeSamples; + private int currentFrameBytesWritten; + private long totalSamplesWritten; + + public FlacExtractor() { + streamMarkerAndInfoBlock = + new byte[FlacConstants.STREAM_MARKER_SIZE + FlacConstants.STREAM_INFO_BLOCK_SIZE]; + scratch = new ParsableByteArray(SCRATCH_LENGTH); + blockSizeHolder = new BlockSizeHolder(); + } + + @Override + public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { + FlacMetadataReader.peekId3Data(input); + return FlacMetadataReader.checkAndPeekStreamMarker(input); + } + + @Override + public void init(ExtractorOutput output) { + extractorOutput = output; + trackOutput = output.track(/* id= */ 0, C.TRACK_TYPE_AUDIO); + output.endTracks(); + } + + @Override + public int read(ExtractorInput input, PositionHolder seekPosition) + throws IOException, InterruptedException { + switch (state) { + case STATE_READ_ID3_TAG: + readId3Tag(input); + return Extractor.RESULT_CONTINUE; + case STATE_READ_STREAM_MARKER: + readStreamMarker(input); + return Extractor.RESULT_CONTINUE; + case STATE_READ_STREAM_INFO_BLOCK: + readStreamInfoBlock(input); + return Extractor.RESULT_CONTINUE; + case STATE_SKIP_OPTIONAL_METADATA_BLOCKS: + skipOptionalMetadataBlocks(input); + return Extractor.RESULT_CONTINUE; + case STATE_GET_FIRST_FRAME_METADATA: + getFirstFrameMetadata(input); + return Extractor.RESULT_CONTINUE; + case STATE_READ_FRAMES: + return readFrames(input); + default: + throw new IllegalStateException(); + } + } + + @Override + public void seek(long position, long timeUs) { + state = STATE_READ_ID3_TAG; + currentFrameBytesWritten = 0; + totalSamplesWritten = 0; + scratch.reset(); + } + + @Override + public void release() { + // Do nothing. + } + + // Private methods. + + private void readId3Tag(ExtractorInput input) throws IOException, InterruptedException { + FlacMetadataReader.readId3Data(input); + state = STATE_READ_STREAM_MARKER; + } + + private void readStreamMarker(ExtractorInput input) throws IOException, InterruptedException { + FlacMetadataReader.readStreamMarker( + input, streamMarkerAndInfoBlock, /* scratchWriteIndex= */ 0); + state = STATE_READ_STREAM_INFO_BLOCK; + } + + private void readStreamInfoBlock(ExtractorInput input) throws IOException, InterruptedException { + flacStreamMetadata = + FlacMetadataReader.readStreamInfoBlock( + input, + /* scratchData= */ streamMarkerAndInfoBlock, + /* scratchWriteIndex= */ FlacConstants.STREAM_MARKER_SIZE); + minFrameSize = Math.max(flacStreamMetadata.minFrameSize, FlacConstants.MIN_FRAME_HEADER_SIZE); + boolean isLastMetadataBlock = + (streamMarkerAndInfoBlock[FlacConstants.STREAM_MARKER_SIZE] >> 7 & 1) == 1; + castNonNull(trackOutput).format(flacStreamMetadata.getFormat(streamMarkerAndInfoBlock)); + castNonNull(extractorOutput) + .seekMap(new SeekMap.Unseekable(flacStreamMetadata.getDurationUs())); + + if (isLastMetadataBlock) { + state = STATE_GET_FIRST_FRAME_METADATA; + } else { + state = STATE_SKIP_OPTIONAL_METADATA_BLOCKS; + } + } + + private void skipOptionalMetadataBlocks(ExtractorInput input) + throws IOException, InterruptedException { + FlacMetadataReader.skipMetadataBlocks(input); + state = STATE_GET_FIRST_FRAME_METADATA; + } + + private void getFirstFrameMetadata(ExtractorInput input) + throws IOException, InterruptedException { + FirstFrameMetadata firstFrameMetadata = FlacMetadataReader.getFirstFrameMetadata(input); + frameStartMarker = firstFrameMetadata.frameStartMarker; + currentFrameBlockSizeSamples = firstFrameMetadata.blockSizeSamples; + + state = STATE_READ_FRAMES; + } + + // TODO: consider sending bytes within min frame size directly from the input to the sample queue + // to avoid unnecessary copies in scratch. + private int readFrames(ExtractorInput input) throws IOException, InterruptedException { + Assertions.checkNotNull(trackOutput); + Assertions.checkNotNull(flacStreamMetadata); + + // Copy more bytes into the scratch. + int currentLimit = scratch.limit(); + int bytesRead = + input.read( + scratch.data, /* offset= */ currentLimit, /* length= */ SCRATCH_LENGTH - currentLimit); + boolean foundEndOfInput = bytesRead == C.RESULT_END_OF_INPUT; + if (!foundEndOfInput) { + scratch.setLimit(currentLimit + bytesRead); + } else if (scratch.bytesLeft() == 0) { + return C.RESULT_END_OF_INPUT; + } + + // Search for a frame. + int positionBeforeFindingAFrame = scratch.getPosition(); + + // Skip frame search on the bytes within the minimum frame size. + if (currentFrameBytesWritten < minFrameSize) { + scratch.skipBytes(Math.min(minFrameSize, scratch.bytesLeft())); + } + + int nextFrameBlockSizeSamples = findFrame(scratch, foundEndOfInput); + int numberOfFrameBytes = scratch.getPosition() - positionBeforeFindingAFrame; + scratch.setPosition(positionBeforeFindingAFrame); + trackOutput.sampleData(scratch, numberOfFrameBytes); + currentFrameBytesWritten += numberOfFrameBytes; + + // Frame found. + if (nextFrameBlockSizeSamples != BLOCK_SIZE_UNKNOWN || foundEndOfInput) { + long timeUs = getTimeUs(totalSamplesWritten, flacStreamMetadata.sampleRate); + trackOutput.sampleMetadata( + timeUs, + C.BUFFER_FLAG_KEY_FRAME, + currentFrameBytesWritten, + /* offset= */ 0, + /* encryptionData= */ null); + totalSamplesWritten += currentFrameBlockSizeSamples; + currentFrameBytesWritten = 0; + currentFrameBlockSizeSamples = nextFrameBlockSizeSamples; + } + + if (scratch.bytesLeft() < FlacConstants.MAX_FRAME_HEADER_SIZE) { + // The next frame header may not fit in the rest of the scratch, so put the trailing bytes at + // the start of the scratch, and reset the position and limit. + System.arraycopy( + scratch.data, scratch.getPosition(), scratch.data, /* destPos= */ 0, scratch.bytesLeft()); + scratch.reset(scratch.bytesLeft()); + } + + return Extractor.RESULT_CONTINUE; + } + + /** + * Searches for the start of a frame in {@code scratch}. + * + *

    + *
  • If the search is successful, the position is set to the start of the found frame. + *
  • Otherwise, the position is set to the first unsearched byte. + *
+ * + * @param scratch The array to be searched. + * @param foundEndOfInput If the end of input was met when filling in the {@code scratch}. + * @return The block size of the frame found, or {@code BLOCK_SIZE_UNKNOWN} if the search was not + * successful. + */ + private int findFrame(ParsableByteArray scratch, boolean foundEndOfInput) { + Assertions.checkNotNull(flacStreamMetadata); + + int frameOffset = scratch.getPosition(); + while (frameOffset <= scratch.limit() - FlacConstants.MAX_FRAME_HEADER_SIZE) { + scratch.setPosition(frameOffset); + if (FlacFrameReader.checkAndReadFrameHeader( + scratch, flacStreamMetadata, frameStartMarker, blockSizeHolder)) { + scratch.setPosition(frameOffset); + return blockSizeHolder.blockSizeSamples; + } + frameOffset++; + } + + if (foundEndOfInput) { + // Reached the end of the file. Assume it's the end of the frame. + scratch.setPosition(scratch.limit()); + } else { + scratch.setPosition(frameOffset); + } + + return BLOCK_SIZE_UNKNOWN; + } + + private long getTimeUs(long numSamples, int sampleRate) { + return numSamples * C.MICROS_PER_SECOND / sampleRate; + } +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java index cef274b903..ed86944f1e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java @@ -15,18 +15,14 @@ */ package com.google.android.exoplayer2.extractor.ogg; -import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.extractor.SeekPoint; import com.google.android.exoplayer2.util.FlacStreamMetadata; -import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.android.exoplayer2.util.Util; import java.io.IOException; import java.util.Arrays; -import java.util.Collections; -import java.util.List; /** * {@link StreamReader} to extract Flac data out of Ogg byte stream. @@ -72,24 +68,8 @@ import java.util.List; byte[] data = packet.data; if (streamMetadata == null) { streamMetadata = new FlacStreamMetadata(data, 17); - int maxInputSize = - streamMetadata.maxFrameSize == 0 ? Format.NO_VALUE : streamMetadata.maxFrameSize; byte[] metadata = Arrays.copyOfRange(data, 9, packet.limit()); - metadata[4] = (byte) 0x80; // Set the last metadata block flag, ignore the other blocks - List initializationData = Collections.singletonList(metadata); - setupData.format = - Format.createAudioSampleFormat( - /* id= */ null, - MimeTypes.AUDIO_FLAC, - /* codecs= */ null, - streamMetadata.bitRate(), - maxInputSize, - streamMetadata.channels, - streamMetadata.sampleRate, - initializationData, - /* drmInitData= */ null, - /* selectionFlags= */ 0, - /* language= */ null); + setupData.format = streamMetadata.getFormat(metadata); } else if ((data[0] & 0x7F) == SEEKTABLE_PACKET_TYPE) { flacOggSeeker = new FlacOggSeeker(); flacOggSeeker.parseSeekTable(packet); @@ -220,7 +200,7 @@ import java.util.List; @Override public long getDurationUs() { - return streamMetadata.durationUs(); + return streamMetadata.getDurationUs(); } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacConstants.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacConstants.java new file mode 100644 index 0000000000..75b153d6f9 --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacConstants.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.util; + +/** Defines constants used by the FLAC extractor. */ +public final class FlacConstants { + + /** Size of the FLAC stream marker in bytes. */ + public static final int STREAM_MARKER_SIZE = 4; + /** Size of the header of a FLAC metadata block in bytes. */ + public static final int METADATA_BLOCK_HEADER_SIZE = 4; + /** Size of the FLAC stream info block (header included) in bytes. */ + public static final int STREAM_INFO_BLOCK_SIZE = 38; + /** Minimum size of a FLAC frame header in bytes. */ + public static final int MIN_FRAME_HEADER_SIZE = 6; + /** Maximum size of a FLAC frame header in bytes. */ + public static final int MAX_FRAME_HEADER_SIZE = 16; + + private FlacConstants() {} +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java new file mode 100644 index 0000000000..71317494e0 --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.util; + +/** Reads and peeks FLAC frame elements. */ +public final class FlacFrameReader { + + /** Holds a frame block size. */ + public static final class BlockSizeHolder { + /** The block size in samples. */ + public int blockSizeSamples; + } + + /** + * Checks whether the given FLAC frame header is valid and, if so, reads it and writes the frame + * block size in {@code blockSizeHolder}. + * + *

If the header is valid, the position of {@code scratch} is moved to the byte following it. + * Otherwise, there is no guarantee on the position. + * + * @param scratch The array to read the data from, whose position must correspond to the frame + * header. + * @param flacStreamMetadata The stream metadata. + * @param frameStartMarker The frame start marker of the stream. + * @param blockSizeHolder The holder used to contain the block size. + * @return Whether the frame header is valid. + */ + public static boolean checkAndReadFrameHeader( + ParsableByteArray scratch, + FlacStreamMetadata flacStreamMetadata, + int frameStartMarker, + BlockSizeHolder blockSizeHolder) { + int frameStartPosition = scratch.getPosition(); + + long frameHeaderBytes = scratch.readUnsignedInt(); + if (frameHeaderBytes >>> 16 != frameStartMarker) { + return false; + } + + int blockSizeKey = (int) (frameHeaderBytes >> 12 & 0xF); + int sampleRateKey = (int) (frameHeaderBytes >> 8 & 0xF); + int channelAssignmentKey = (int) (frameHeaderBytes >> 4 & 0xF); + int bitsPerSampleKey = (int) (frameHeaderBytes >> 1 & 0x7); + boolean reservedBit = (frameHeaderBytes & 1) == 1; + return checkChannelAssignment(channelAssignmentKey, flacStreamMetadata) + && checkBitsPerSample(bitsPerSampleKey, flacStreamMetadata) + && !reservedBit + && checkAndReadUtf8Data(scratch) + && checkAndReadBlockSizeSamples(scratch, flacStreamMetadata, blockSizeKey, blockSizeHolder) + && checkAndReadSampleRate(scratch, flacStreamMetadata, sampleRateKey) + && checkAndReadCrc(scratch, frameStartPosition); + } + + /** + * Returns the block size of the given frame. + * + *

If no exception is thrown, the position of {@code scratch} is left unchanged. Otherwise, + * there is no guarantee on the position. + * + * @param scratch The array to get the data from, whose position must correspond to the start of a + * frame. + * @return The block size in samples, or -1 if the block size is invalid. + */ + public static int getFrameBlockSizeSamples(ParsableByteArray scratch) { + int blockSizeKey = (scratch.data[2] & 0xFF) >> 4; + if (blockSizeKey < 6 || blockSizeKey > 7) { + return readFrameBlockSizeSamplesFromKey(scratch, blockSizeKey); + } + scratch.skipBytes(4); + scratch.readUtf8EncodedLong(); + int blockSizeSamples = readFrameBlockSizeSamplesFromKey(scratch, blockSizeKey); + scratch.setPosition(0); + return blockSizeSamples; + } + + /** + * Reads the given block size. + * + * @param scratch The array to read the data from, whose position must correspond to the block + * size bits. + * @param blockSizeKey The key in the block size lookup table. + * @return The block size in samples. + */ + public static int readFrameBlockSizeSamplesFromKey(ParsableByteArray scratch, int blockSizeKey) { + switch (blockSizeKey) { + case 1: + return 192; + case 2: + case 3: + case 4: + case 5: + return 576 << (blockSizeKey - 2); + case 6: + return scratch.readUnsignedByte() + 1; + case 7: + return scratch.readUnsignedShort() + 1; + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + return 256 << (blockSizeKey - 8); + default: + return -1; + } + } + + /** + * Checks whether the given channel assignment is valid. + * + * @param channelAssignmentKey The channel assignment lookup key. + * @param flacStreamMetadata The stream metadata. + * @return Whether the channel assignment is valid. + */ + private static boolean checkChannelAssignment( + int channelAssignmentKey, FlacStreamMetadata flacStreamMetadata) { + if (channelAssignmentKey <= 7) { + return channelAssignmentKey == flacStreamMetadata.channels - 1; + } else if (channelAssignmentKey <= 10) { + return flacStreamMetadata.channels == 2; + } else { + return false; + } + } + + /** + * Checks whether the given number of bits per sample is valid. + * + * @param bitsPerSampleKey The bits per sample lookup key. + * @param flacStreamMetadata The stream metadata. + * @return Whether the number of bits per sample is valid. + */ + private static boolean checkBitsPerSample( + int bitsPerSampleKey, FlacStreamMetadata flacStreamMetadata) { + if (bitsPerSampleKey == 0) { + return true; + } + return bitsPerSampleKey == flacStreamMetadata.bitsPerSampleLookupKey; + } + + /** + * Checks whether the given UTF-8 data is valid and, if so, reads it. + * + *

If the UTF-8 data is valid, the position of {@code scratch} is moved to the byte following + * it. Otherwise, there is no guarantee on the position. + * + * @param scratch The array to read the data from, whose position must correspond to the UTF-8 + * data. + * @return Whether the UTF-8 data is valid. + */ + private static boolean checkAndReadUtf8Data(ParsableByteArray scratch) { + try { + scratch.readUtf8EncodedLong(); + } catch (NumberFormatException e) { + return false; + } + return true; + } + + /** + * Checks whether the given frame block size key and block size bits are valid and, if so, reads + * the block size bits and writes the block size in {@code blockSizeHolder}. + * + *

If the block size is valid, the position of {@code scratch} is moved to the byte following + * the block size bits. Otherwise, there is no guarantee on the position. + * + * @param scratch The array to read the data from, whose position must correspond to the block + * size bits. + * @param flacStreamMetadata The stream metadata. + * @param blockSizeKey The key in the block size lookup table. + * @param blockSizeHolder The holder used to contain the block size. + * @return Whether the block size is valid. + */ + private static boolean checkAndReadBlockSizeSamples( + ParsableByteArray scratch, + FlacStreamMetadata flacStreamMetadata, + int blockSizeKey, + BlockSizeHolder blockSizeHolder) { + int blockSizeSamples = readFrameBlockSizeSamplesFromKey(scratch, blockSizeKey); + if (blockSizeSamples == -1 || blockSizeSamples > flacStreamMetadata.maxBlockSizeSamples) { + return false; + } + blockSizeHolder.blockSizeSamples = blockSizeSamples; + return true; + } + + /** + * Checks whether the given sample rate key and sample rate bits are valid and, if so, reads the + * sample rate bits. + * + *

If the sample rate is valid, the position of {@code scratch} is moved to the byte following + * the sample rate bits. Otherwise, there is no guarantee on the position. + * + * @param scratch The array to read the data from, whose position must indicate the sample rate + * bits. + * @param flacStreamMetadata The stream metadata. + * @param sampleRateKey The key in the sample rate lookup table. + * @return Whether the sample rate is valid. + */ + private static boolean checkAndReadSampleRate( + ParsableByteArray scratch, FlacStreamMetadata flacStreamMetadata, int sampleRateKey) { + int expectedSampleRate = flacStreamMetadata.sampleRate; + if (sampleRateKey == 0) { + return true; + } else if (sampleRateKey <= 11) { + return sampleRateKey == flacStreamMetadata.sampleRateLookupKey; + } else if (sampleRateKey == 12) { + return scratch.readUnsignedByte() * 1000 == expectedSampleRate; + } else if (sampleRateKey <= 14) { + int sampleRate = scratch.readUnsignedShort(); + if (sampleRateKey == 14) { + sampleRate *= 10; + } + return sampleRate == expectedSampleRate; + } else { + return false; + } + } + + /** + * Checks whether the given CRC is valid and, if so, reads it. + * + *

If the CRC is valid, the position of {@code scratch} is moved to the byte following it. + * Otherwise, there is no guarantee on the position. + * + *

The {@code scratch} array must contain the whole frame header. + * + * @param scratch The array to read the data from, whose position must indicate the CRC. + * @param frameStartPosition The frame start offset in {@code scratch}. + * @return Whether the CRC is valid. + */ + private static boolean checkAndReadCrc(ParsableByteArray scratch, int frameStartPosition) { + int crc = scratch.readUnsignedByte(); + int frameEndPosition = scratch.getPosition(); + int expectedCrc = + Util.crc8(scratch.data, frameStartPosition, frameEndPosition - 1, /* initialValue= */ 0); + return crc == expectedCrc; + } + + private FlacFrameReader() {} +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java new file mode 100644 index 0000000000..23eefd042c --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java @@ -0,0 +1,208 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.util; + +import com.google.android.exoplayer2.ParserException; +import com.google.android.exoplayer2.extractor.ExtractorInput; +import com.google.android.exoplayer2.extractor.Id3Peeker; +import com.google.android.exoplayer2.metadata.id3.Id3Decoder; +import java.io.IOException; + +/** Reads and peeks FLAC stream metadata elements from an {@link ExtractorInput}. */ +public final class FlacMetadataReader { + + /** Holds the metadata extracted from the first frame. */ + public static final class FirstFrameMetadata { + /** The frame start marker, which should correspond to the 2 first bytes of each frame. */ + public final int frameStartMarker; + /** The block size in samples. */ + public final int blockSizeSamples; + + public FirstFrameMetadata(int frameStartMarker, int blockSizeSamples) { + this.frameStartMarker = frameStartMarker; + this.blockSizeSamples = blockSizeSamples; + } + } + + private static final int STREAM_MARKER = 0x664C6143; // ASCII for "fLaC" + private static final int SYNC_CODE = 0x3FFE; + + /** + * Peeks ID3 Data. + * + * @param input Input stream to peek the ID3 data from. + * @throws IOException If peeking from the input fails. In this case, there is no guarantee on the + * peek position. + * @throws InterruptedException If interrupted while peeking from input. In this case, there is no + * guarantee on the peek position. + */ + public static void peekId3Data(ExtractorInput input) throws IOException, InterruptedException { + new Id3Peeker().peekId3Data(input, Id3Decoder.NO_FRAMES_PREDICATE); + } + + /** + * Peeks the FLAC stream marker. + * + * @param input Input stream to peek the stream marker from. + * @return Whether the data peeked is the FLAC stream marker. + * @throws IOException If peeking from the input fails. In this case, the peek position is left + * unchanged. + * @throws InterruptedException If interrupted while peeking from input. In this case, the peek + * position is left unchanged. + */ + public static boolean checkAndPeekStreamMarker(ExtractorInput input) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(FlacConstants.STREAM_MARKER_SIZE); + input.peekFully(scratch.data, /* offset= */ 0, FlacConstants.STREAM_MARKER_SIZE); + return scratch.readUnsignedInt() == STREAM_MARKER; + } + + /** + * Reads ID3 Data. + * + *

If no exception is thrown, the peek position of {@code input} is aligned with the read + * position. + * + * @param input Input stream to read the ID3 data from. + * @throws IOException If reading from the input fails. In this case, the read position is left + * unchanged and there is no guarantee on the peek position. + * @throws InterruptedException If interrupted while reading from input. In this case, the read + * position is left unchanged and there is no guarantee on the peek position. + */ + public static void readId3Data(ExtractorInput input) throws IOException, InterruptedException { + input.resetPeekPosition(); + long startingPeekPosition = input.getPeekPosition(); + new Id3Peeker().peekId3Data(input, Id3Decoder.NO_FRAMES_PREDICATE); + int peekedId3Bytes = (int) (input.getPeekPosition() - startingPeekPosition); + input.skipFully(peekedId3Bytes); + } + + /** + * Reads the FLAC stream marker. + * + * @param input Input stream to read the stream marker from. + * @param scratchData The array in which the data read should be copied. This array must have size + * at least {@code scratchWriteIndex} + {@link FlacConstants#STREAM_MARKER_SIZE}. + * @param scratchWriteIndex The index of {@code scratchData} from which to write. + * @throws ParserException If an error occurs parsing the stream marker. In this case, the + * position of {@code input} is advanced by {@link FlacConstants#STREAM_MARKER_SIZE} bytes. + * @throws IOException If reading from the input fails. In this case, the position is left + * unchanged. + * @throws InterruptedException If interrupted while reading from input. In this case, the + * position is left unchanged. + */ + public static void readStreamMarker( + ExtractorInput input, byte[] scratchData, int scratchWriteIndex) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(scratchData); + input.readFully( + scratch.data, + /* offset= */ scratchWriteIndex, + /* length= */ FlacConstants.STREAM_MARKER_SIZE); + scratch.setPosition(scratchWriteIndex); + if (scratch.readUnsignedInt() != STREAM_MARKER) { + throw new ParserException("Failed to read FLAC stream marker."); + } + } + + /** + * Reads the stream info block. + * + * @param input Input stream to read the stream info block from. + * @param scratchData The array in which the data read should be copied. This array must have size + * at least {@code scratchWriteIndex} + {@link FlacConstants#STREAM_INFO_BLOCK_SIZE}. + * @param scratchWriteIndex The index of {@code scratchData} from which to write. + * @return A new {@link FlacStreamMetadata} read from {@code input}. + * @throws IOException If reading from the input fails. In this case, the position is left + * unchanged. + * @throws InterruptedException If interrupted while reading from input. In this case, the + * position is left unchanged. + */ + public static FlacStreamMetadata readStreamInfoBlock( + ExtractorInput input, byte[] scratchData, int scratchWriteIndex) + throws IOException, InterruptedException { + input.readFully( + scratchData, + /* offset= */ scratchWriteIndex, + /* length= */ FlacConstants.STREAM_INFO_BLOCK_SIZE); + return new FlacStreamMetadata( + scratchData, /* offset= */ scratchWriteIndex + FlacConstants.METADATA_BLOCK_HEADER_SIZE); + } + + /** + * Skips the stream metadata blocks. + * + *

If no exception is thrown, the peek position of {@code input} is aligned with the read + * position. + * + * @param input Input stream to read the metadata blocks from. + * @throws IOException If reading from the input fails. In this case, the read position will be at + * the start of a metadata block and there is no guarantee on the peek position. + * @throws InterruptedException If interrupted while reading from input. In this case, the read + * position will be at the start of a metadata block and there is no guarantee on the peek + * position. + */ + public static void skipMetadataBlocks(ExtractorInput input) + throws IOException, InterruptedException { + input.resetPeekPosition(); + ParsableBitArray scratch = new ParsableBitArray(new byte[4]); + boolean lastMetadataBlock = false; + while (!lastMetadataBlock) { + input.peekFully(scratch.data, /* offset= */ 0, /* length= */ 4); + scratch.setPosition(0); + lastMetadataBlock = scratch.readBit(); + scratch.skipBits(7); + int length = scratch.readBits(24); + input.skipFully(4 + length); + } + } + + /** + * Returns some metadata extracted from the first frame of a FLAC stream. + * + *

The read position of {@code input} is left unchanged and the peek position is aligned with + * the read position. + * + * @param input Input stream to get the metadata from (starting from the read position). + * @return A {@link FirstFrameMetadata} containing the frame start marker (which should be the + * same for all the frames in the stream) and the block size of the frame. + * @throws ParserException If an error occurs parsing the frame metadata. + * @throws IOException If peeking from the input fails. + * @throws InterruptedException If interrupted while peeking from input. + */ + public static FirstFrameMetadata getFirstFrameMetadata(ExtractorInput input) + throws IOException, InterruptedException { + input.resetPeekPosition(); + ParsableByteArray scratch = + new ParsableByteArray(new byte[FlacConstants.MAX_FRAME_HEADER_SIZE]); + input.peekFully(scratch.data, /* offset= */ 0, FlacConstants.MAX_FRAME_HEADER_SIZE); + + int frameStartMarker = scratch.readUnsignedShort(); + int syncCode = frameStartMarker >> 2; + if (syncCode != SYNC_CODE) { + input.resetPeekPosition(); + throw new ParserException("First frame does not start with sync code."); + } + + scratch.setPosition(0); + int firstFrameBlockSizeSamples = FlacFrameReader.getFrameBlockSizeSamples(scratch); + + input.resetPeekPosition(); + return new FirstFrameMetadata(frameStartMarker, firstFrameBlockSizeSamples); + } + + private FlacMetadataReader() {} +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java index 9c5862b483..b35d585a05 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java @@ -17,10 +17,12 @@ package com.google.android.exoplayer2.util; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.metadata.flac.PictureFrame; import com.google.android.exoplayer2.metadata.flac.VorbisComment; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** Holder for FLAC metadata. */ @@ -28,14 +30,45 @@ public final class FlacStreamMetadata { private static final String TAG = "FlacStreamMetadata"; - public final int minBlockSize; - public final int maxBlockSize; + /** Indicates that a value is not in the corresponding lookup table. */ + public static final int NOT_IN_LOOKUP_TABLE = -1; + + /** Minimum number of samples per block. */ + public final int minBlockSizeSamples; + /** Maximum number of samples per block. */ + public final int maxBlockSizeSamples; + /** Minimum frame size in bytes, or 0 if the value is unknown. */ public final int minFrameSize; + /** Maximum frame size in bytes, or 0 if the value is unknown. */ public final int maxFrameSize; + /** Sample rate in Hertz. */ public final int sampleRate; + /** + * Lookup key corresponding to the stream sample rate, or {@link #NOT_IN_LOOKUP_TABLE} if it is + * not in the lookup table. + * + *

This key is used to indicate the sample rate in the frame header for the most common values. + * + *

The sample rate lookup table is described in https://xiph.org/flac/format.html#frame_header. + */ + public final int sampleRateLookupKey; + /** Number of audio channels. */ public final int channels; + /** Number of bits per sample. */ public final int bitsPerSample; + /** + * Lookup key corresponding to the number of bits per sample of the stream, or {@link + * #NOT_IN_LOOKUP_TABLE} if it is not in the lookup table. + * + *

This key is used to indicate the number of bits per sample in the frame header for the most + * common values. + * + *

The sample size lookup table is described in https://xiph.org/flac/format.html#frame_header. + */ + public final int bitsPerSampleLookupKey; + /** Total number of samples, or 0 if the value is unknown. */ public final long totalSamples; + /** Stream content metadata. */ @Nullable public final Metadata metadata; private static final String SEPARATOR = "="; @@ -44,27 +77,29 @@ public final class FlacStreamMetadata { * Parses binary FLAC stream info metadata. * * @param data An array containing binary FLAC stream info metadata. - * @param offset The offset of the stream info metadata in {@code data}. + * @param offset The offset of the stream info block in {@code data} (header excluded). * @see FLAC format * METADATA_BLOCK_STREAMINFO */ public FlacStreamMetadata(byte[] data, int offset) { ParsableBitArray scratch = new ParsableBitArray(data); scratch.setPosition(offset * 8); - this.minBlockSize = scratch.readBits(16); - this.maxBlockSize = scratch.readBits(16); + this.minBlockSizeSamples = scratch.readBits(16); + this.maxBlockSizeSamples = scratch.readBits(16); this.minFrameSize = scratch.readBits(24); this.maxFrameSize = scratch.readBits(24); this.sampleRate = scratch.readBits(20); + this.sampleRateLookupKey = getSampleRateLookupKey(); this.channels = scratch.readBits(3) + 1; this.bitsPerSample = scratch.readBits(5) + 1; - this.totalSamples = ((scratch.readBits(4) & 0xFL) << 32) | (scratch.readBits(32) & 0xFFFFFFFFL); + this.bitsPerSampleLookupKey = getBitsPerSampleLookupKey(); + this.totalSamples = scratch.readBitsToLong(36); this.metadata = null; } /** - * @param minBlockSize Minimum block size of the FLAC stream. - * @param maxBlockSize Maximum block size of the FLAC stream. + * @param minBlockSizeSamples Minimum block size of the FLAC stream. + * @param maxBlockSizeSamples Maximum block size of the FLAC stream. * @param minFrameSize Minimum frame size of the FLAC stream. * @param maxFrameSize Maximum frame size of the FLAC stream. * @param sampleRate Sample rate of the FLAC stream. @@ -81,8 +116,8 @@ public final class FlacStreamMetadata { * METADATA_BLOCK_PICTURE */ public FlacStreamMetadata( - int minBlockSize, - int maxBlockSize, + int minBlockSizeSamples, + int maxBlockSizeSamples, int minFrameSize, int maxFrameSize, int sampleRate, @@ -91,30 +126,35 @@ public final class FlacStreamMetadata { long totalSamples, List vorbisComments, List pictureFrames) { - this.minBlockSize = minBlockSize; - this.maxBlockSize = maxBlockSize; + this.minBlockSizeSamples = minBlockSizeSamples; + this.maxBlockSizeSamples = maxBlockSizeSamples; this.minFrameSize = minFrameSize; this.maxFrameSize = maxFrameSize; this.sampleRate = sampleRate; + this.sampleRateLookupKey = getSampleRateLookupKey(); this.channels = channels; this.bitsPerSample = bitsPerSample; + this.bitsPerSampleLookupKey = getBitsPerSampleLookupKey(); this.totalSamples = totalSamples; - this.metadata = buildMetadata(vorbisComments, pictureFrames); + this.metadata = getMetadata(vorbisComments, pictureFrames); } /** Returns the maximum size for a decoded frame from the FLAC stream. */ - public int maxDecodedFrameSize() { - return maxBlockSize * channels * (bitsPerSample / 8); + public int getMaxDecodedFrameSize() { + return maxBlockSizeSamples * channels * (bitsPerSample / 8); } /** Returns the bit-rate of the FLAC stream. */ - public int bitRate() { + public int getBitRate() { return bitsPerSample * sampleRate * channels; } - /** Returns the duration of the FLAC stream in microseconds. */ - public long durationUs() { - return (totalSamples * 1000000L) / sampleRate; + /** + * Returns the duration of the FLAC stream in microseconds, or {@link C#TIME_UNSET} if the total + * number of samples if unknown. + */ + public long getDurationUs() { + return totalSamples == 0 ? C.TIME_UNSET : totalSamples * C.MICROS_PER_SECOND / sampleRate; } /** @@ -125,7 +165,7 @@ public final class FlacStreamMetadata { */ public long getSampleIndex(long timeUs) { long sampleIndex = (timeUs * sampleRate) / C.MICROS_PER_SECOND; - return Util.constrainValue(sampleIndex, 0, totalSamples - 1); + return Util.constrainValue(sampleIndex, /* min= */ 0, totalSamples - 1); } /** Returns the approximate number of bytes per frame for the current FLAC stream. */ @@ -136,14 +176,91 @@ public final class FlacStreamMetadata { } else { // Uses the stream's block-size if it's a known fixed block-size stream, otherwise uses the // default value for FLAC block-size, which is 4096. - long blockSize = (minBlockSize == maxBlockSize && minBlockSize > 0) ? minBlockSize : 4096; - approxBytesPerFrame = (blockSize * channels * bitsPerSample) / 8 + 64; + long blockSizeSamples = + (minBlockSizeSamples == maxBlockSizeSamples && minBlockSizeSamples > 0) + ? minBlockSizeSamples + : 4096; + approxBytesPerFrame = (blockSizeSamples * channels * bitsPerSample) / 8 + 64; } return approxBytesPerFrame; } + /** + * Returns a {@link Format} extracted from the FLAC stream metadata. + * + *

{@code streamMarkerAndInfoBlock} is updated to set the bit corresponding to the stream info + * last metadata block flag to true. + * + * @param streamMarkerAndInfoBlock An array containing the FLAC stream marker followed by the + * stream info block. + * @return The extracted {@link Format}. + */ + public Format getFormat(byte[] streamMarkerAndInfoBlock) { + // Set the last metadata block flag, ignore the other blocks. + streamMarkerAndInfoBlock[4] = (byte) 0x80; + int maxInputSize = maxFrameSize > 0 ? maxFrameSize : Format.NO_VALUE; + return Format.createAudioSampleFormat( + /* id= */ null, + MimeTypes.AUDIO_FLAC, + /* codecs= */ null, + getBitRate(), + maxInputSize, + channels, + sampleRate, + Collections.singletonList(streamMarkerAndInfoBlock), + /* drmInitData= */ null, + /* selectionFlags= */ 0, + /* language= */ null); + } + + private int getSampleRateLookupKey() { + switch (sampleRate) { + case 88200: + return 1; + case 176400: + return 2; + case 192000: + return 3; + case 8000: + return 4; + case 16000: + return 5; + case 22050: + return 6; + case 24000: + return 7; + case 32000: + return 8; + case 44100: + return 9; + case 48000: + return 10; + case 96000: + return 11; + default: + return NOT_IN_LOOKUP_TABLE; + } + } + + private int getBitsPerSampleLookupKey() { + switch (bitsPerSample) { + case 8: + return 1; + case 12: + return 2; + case 16: + return 4; + case 20: + return 5; + case 24: + return 6; + default: + return NOT_IN_LOOKUP_TABLE; + } + } + @Nullable - private static Metadata buildMetadata( + private static Metadata getMetadata( List vorbisComments, List pictureFrames) { if (vorbisComments.isEmpty() && pictureFrames.isEmpty()) { return null; diff --git a/library/core/src/test/assets/flac/bear.flac b/library/core/src/test/assets/flac/bear.flac new file mode 100644 index 0000000000000000000000000000000000000000..3e17983fef7a7945937f59a43a4254cd1e06e16b GIT binary patch literal 173311 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

r|S{ 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 Z#KW8x2II21w5q$)GM#h4lx=I>{{!06{3iea literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear.flac.0.dump b/library/core/src/test/assets/flac/bear.flac.0.dump new file mode 100644 index 0000000000..e35dcc2081 --- /dev/null +++ b/library/core/src/test/assets/flac/bear.flac.0.dump @@ -0,0 +1,163 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = 5776 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 42, hash 83F6895 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac new file mode 100644 index 0000000000000000000000000000000000000000..fb0c9d207eb951360cbdc09d13c76035e0f2ce39 GIT binary patch literal 173311 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
XMb1D;k2Y$ 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 VMZvgyF0JnFv`pt5FlF0X_y0y_`ojPK literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump new file mode 100644 index 0000000000..2c394e71b7 --- /dev/null +++ b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump @@ -0,0 +1,163 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = -1 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 42, hash 9218FDB7 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/assets/flac/bear_no_num_samples.flac b/library/core/src/test/assets/flac/bear_no_num_samples.flac new file mode 100644 index 0000000000000000000000000000000000000000..03696047cd9879a32792a5ebbc4624801b7e3cb0 GIT binary patch literal 173311 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
XMb1D;k2Y$ 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 VMZvgyF0JnFv`pt5FlF0X_y0IL_-OzD literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump new file mode 100644 index 0000000000..c913738be5 --- /dev/null +++ b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump @@ -0,0 +1,163 @@ +seekMap: + isSeekable = false + duration = UNSET TIME + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = 5776 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 42, hash 49FA2C21 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/assets/flac/bear_one_metadata_block.flac b/library/core/src/test/assets/flac/bear_one_metadata_block.flac new file mode 100644 index 0000000000000000000000000000000000000000..a3fcb8f114b0910b1bf9e473a35f57c11925bb22 GIT binary patch literal 164473 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

Bi666c$l`=&J_ciz!N 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

  • !5&QsB&p68+<;s1cpSx?GB^uoCb3L1gJ zNM%qcDqkKeAkrM%1WdbIXnQt9jIP#E`oc@+xdkIA>h!rdCU&Q1}*0)>OZ z3H+VHK`tnSqMV)F8aOZtRp!fvNZIx&ju#DZduy>C1#?GHs8lK?iUEOAV@r@!Iru5U z-@~q$jiBaR1$cW)RFphcnv8ZcP{HcBM+7tNEr_uV4nv_(FboX>L&+IVP86_s#l?jX zUo(nYTt&f9iw`%tJ0mIiHn)bujYy39%iF17EzK_m?#0w!5xw3MX(biP|0S0 zniDK9SZSByU*ZmSKve$K2C!~XXa`@N+MQxOYyjU9c#S)T;oAgvP*IEZ7zT>ro^QoD zN01R1uo0uGs5obg0{qvG1w|N{5<;OtP}CBX0KT&b>wtrUWF;4 z6tl5%y+79(n%szWK&JQ?BGZU8=(rWK-~Vl{@g4u}joY|0sMPLSEcUtxWc$j|{D-O1 zV@KHgF=_iT(LT%n*U|aBBn-x3oS=(P;14V|Pt*C*LP4hvy4qN3)?tW{c3LZj?BbtL zbnvZ&O`Wpv;+O}+4$c08@X$d)Ex|)q`#bvDd;VVEFVFk(JkQ6rU!5>p8~&Wv%lxdn z^fuDW3tgEf6`U=rOJB{#O|{kSq!gXYVA57hk4}<_bc*0Vr&!Z4-X(et`OMKsn9ROS zB2KaFRW;-dP*l$cgEG3wSA>a{Q=e95fJI2))r`UmyfB`aZxowE=`^B)lC0ia!c-q| zvXHOjYq(DIyrk}NICa&UyW9rme^;8O>u${?eIb~xn{bOZXC$k+a8Np~9$DP~J8`yU zTwAfTs2|p}$wV#?RE|L*-^LYmvK^;xciPbc&}gA&5dIotkY;W{Pg*}4DHSl}jsYIh z+&2b{;e%-BV$t-2vcy1L7|+Z|2{ED}t-+Ba#gWHwS=BuB9=4;RSbW5dFZu&CbKk($ zLUyDDq!`y0M6QAD0e&LU0wghYw+eY}s3{bS?Lz=epYni*>Fhli2k%x~xhxC^C6H_h F@(;o_TM7UG literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear_with_id3.flac.0.dump b/library/core/src/test/assets/flac/bear_with_id3.flac.0.dump new file mode 100644 index 0000000000..e35dcc2081 --- /dev/null +++ b/library/core/src/test/assets/flac/bear_with_id3.flac.0.dump @@ -0,0 +1,163 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = 5776 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 42, hash 83F6895 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactoryTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactoryTest.java index 43ff7d8f51..ace30dbaf5 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactoryTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactoryTest.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.extractor.amr.AmrExtractor; +import com.google.android.exoplayer2.extractor.flac.FlacExtractor; import com.google.android.exoplayer2.extractor.flv.FlvExtractor; import com.google.android.exoplayer2.extractor.mkv.MatroskaExtractor; import com.google.android.exoplayer2.extractor.mp3.Mp3Extractor; @@ -64,7 +65,8 @@ public final class DefaultExtractorsFactoryTest { PsExtractor.class, WavExtractor.class, AmrExtractor.class, - Ac4Extractor.class + Ac4Extractor.class, + FlacExtractor.class }; assertThat(listCreatedExtractorClasses).containsNoDuplicates(); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java new file mode 100644 index 0000000000..3aac12a1a3 --- /dev/null +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.extractor.flac; + +import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.android.exoplayer2.testutil.ExtractorAsserts; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** Unit tests for {@link FlacExtractor}. */ +@RunWith(AndroidJUnit4.class) +public class FlacExtractorTest { + + @Test + public void testSample() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear.flac"); + } + + @Test + public void testSampleWithId3() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_id3.flac"); + } + + @Test + public void testOneMetadataBlock() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_one_metadata_block.flac"); + } + + @Test + public void testNoMinMaxFrameSize() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_no_min_max_frame_size.flac"); + } + + @Test + public void testNoNumSamples() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_no_num_samples.flac"); + } + + @Test + public void testUncommonSampleRate() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_uncommon_sample_rate.flac"); + } +} From a558501e389b7f41a5c07ca18835b08454c378b4 Mon Sep 17 00:00:00 2001 From: kimvde Date: Tue, 19 Nov 2019 10:45:58 +0000 Subject: [PATCH 030/368] Remove TODO around optimizing sample data outputs in FlacExtractor Preliminary measurement showed that the results were similar to the non-optimized version. PiperOrigin-RevId: 281255476 --- .../google/android/exoplayer2/extractor/flac/FlacExtractor.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java index 33f608788b..1ca010dbb1 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -202,8 +202,6 @@ public final class FlacExtractor implements Extractor { state = STATE_READ_FRAMES; } - // TODO: consider sending bytes within min frame size directly from the input to the sample queue - // to avoid unnecessary copies in scratch. private int readFrames(ExtractorInput input) throws IOException, InterruptedException { Assertions.checkNotNull(trackOutput); Assertions.checkNotNull(flacStreamMetadata); From f09f62da4f541ca4de90e9adf95b9c5c1a53d3a2 Mon Sep 17 00:00:00 2001 From: kimvde Date: Wed, 20 Nov 2019 17:40:03 +0000 Subject: [PATCH 031/368] Expose metadata in FLAC extractor PiperOrigin-RevId: 281538423 --- RELEASENOTES.md | 29 +- .../exoplayer2/ext/flac/FlacExtractor.java | 33 +- extensions/flac/src/main/jni/flac_jni.cc | 2 +- .../{util => extractor}/FlacFrameReader.java | 6 +- .../extractor/FlacMetadataReader.java | 281 +++++ .../extractor/{ogg => }/VorbisBitArray.java | 6 +- .../extractor/{ogg => }/VorbisUtil.java | 209 ++-- .../extractor/flac/FlacExtractor.java | 122 +- .../exoplayer2/extractor/ogg/FlacReader.java | 2 +- .../extractor/ogg/VorbisReader.java | 3 +- .../exoplayer2/util/FlacMetadataReader.java | 208 ---- .../exoplayer2/util/FlacStreamMetadata.java | 159 ++- .../assets/binary/ogg/vorbis_header_pages | Bin 0 -> 3743 bytes .../test/assets/binary/vorbis/comment_header | Bin 0 -> 113 bytes .../src/test/assets/binary/vorbis/id_header | Bin 0 -> 30 bytes .../test/assets/binary/vorbis/setup_header | Bin 0 -> 3597 bytes library/core/src/test/assets/flac/bear.flac | Bin 173311 -> 173311 bytes .../flac/bear_no_min_max_frame_size.flac | Bin 173311 -> 173311 bytes .../test/assets/flac/bear_no_num_samples.flac | Bin 173311 -> 173311 bytes .../flac/bear_uncommon_sample_rate.flac | Bin 152374 -> 152374 bytes .../src/test/assets/flac/bear_with_id3.flac | Bin 219715 -> 219715 bytes .../test/assets/flac/bear_with_picture.flac | Bin 0 -> 204299 bytes .../assets/flac/bear_with_picture.flac.0.dump | 163 +++ .../flac/bear_with_vorbis_comments.flac | Bin 0 -> 173311 bytes .../bear_with_vorbis_comments.flac.0.dump | 163 +++ .../{ogg => }/VorbisBitArrayTest.java | 2 +- .../extractor/{ogg => }/VorbisUtilTest.java | 25 +- .../extractor/flac/FlacExtractorTest.java | 22 +- .../exoplayer2/extractor/ogg/OggTestData.java | 1008 ----------------- .../extractor/ogg/VorbisReaderTest.java | 8 +- .../util/FlacStreamMetadataTest.java | 54 +- .../exoplayer2/testutil/ExtractorAsserts.java | 1 + 32 files changed, 1051 insertions(+), 1455 deletions(-) rename library/core/src/main/java/com/google/android/exoplayer2/{util => extractor}/FlacFrameReader.java (97%) create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java rename library/core/src/main/java/com/google/android/exoplayer2/extractor/{ogg => }/VorbisBitArray.java (96%) rename library/core/src/main/java/com/google/android/exoplayer2/extractor/{ogg => }/VorbisUtil.java (85%) delete mode 100644 library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java create mode 100644 library/core/src/test/assets/binary/ogg/vorbis_header_pages create mode 100644 library/core/src/test/assets/binary/vorbis/comment_header create mode 100644 library/core/src/test/assets/binary/vorbis/id_header create mode 100644 library/core/src/test/assets/binary/vorbis/setup_header create mode 100644 library/core/src/test/assets/flac/bear_with_picture.flac create mode 100644 library/core/src/test/assets/flac/bear_with_picture.flac.0.dump create mode 100644 library/core/src/test/assets/flac/bear_with_vorbis_comments.flac create mode 100644 library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump rename library/core/src/test/java/com/google/android/exoplayer2/extractor/{ogg => }/VorbisBitArrayTest.java (99%) rename library/core/src/test/java/com/google/android/exoplayer2/extractor/{ogg => }/VorbisUtilTest.java (85%) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a1b79518a9..963d08518a 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -4,9 +4,6 @@ * Add Java FLAC extractor ([#6406](https://github.com/google/ExoPlayer/issues/6406)). - This extractor does not support seeking and live streams, and does not expose - vorbis, ID3 and picture data. If `DefaultExtractorsFactory` is used, this - extractor is only used if the FLAC extension is not loaded. ### 2.11.1 (2019-12-20) ### @@ -35,6 +32,32 @@ ([#6792](https://github.com/google/ExoPlayer/issues/6792)). ### 2.11.0 (2019-12-11) ### + This extractor does not support seeking and live streams. If + `DefaultExtractorsFactory` is used, this extractor is only used if the FLAC + extension is not loaded. +* Video tunneling: Fix renderer end-of-stream with `OnFrameRenderedListener` + from API 23, tunneled renderer must send a special timestamp on EOS. + Previously the EOS was reported when the input stream reached EOS. +* Require an end time or duration for SubRip (SRT) and SubStation Alpha + (SSA/ASS) subtitles. This applies to both sidecar files & subtitles + [embedded in Matroska streams](https://matroska.org/technical/specs/subtitles/index.html). +* Use `ExoMediaDrm.Provider` in `OfflineLicenseHelper` to avoid `ExoMediaDrm` + leaks ([#4721](https://github.com/google/ExoPlayer/issues/4721)). +* Improve `Format` propagation within the `MediaCodecRenderer` and subclasses. + For example, fix handling of pixel aspect ratio changes in playlists where + video resolution does not change. + ([#6646](https://github.com/google/ExoPlayer/issues/6646)). +* Rename `MediaCodecRenderer.onOutputFormatChanged` to + `MediaCodecRenderer.onOutputMediaFormatChanged`, further + clarifying the distinction between `Format` and `MediaFormat`. +* Fix byte order of HDR10+ static metadata to match CTA-861.3. +* Reconfigure audio sink when PCM encoding changes + ([#6601](https://github.com/google/ExoPlayer/issues/6601)). +* Make `MediaSourceEventListener.LoadEventInfo` and + `MediaSourceEventListener.MediaLoadData` top-level classes. + +### 2.11.0 (not yet released) ### +>>>>>>> b18650fdc... Expose metadata in FLAC extractor * Core library: * Replace `ExoPlayerFactory` by `SimpleExoPlayer.Builder` and diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index 02a57dbf81..6ea099064e 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -26,15 +26,13 @@ import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ExtractorOutput; import com.google.android.exoplayer2.extractor.ExtractorsFactory; -import com.google.android.exoplayer2.extractor.Id3Peeker; +import com.google.android.exoplayer2.extractor.FlacMetadataReader; import com.google.android.exoplayer2.extractor.PositionHolder; import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.extractor.SeekPoint; import com.google.android.exoplayer2.extractor.TrackOutput; import com.google.android.exoplayer2.metadata.Metadata; -import com.google.android.exoplayer2.metadata.id3.Id3Decoder; import com.google.android.exoplayer2.util.Assertions; -import com.google.android.exoplayer2.util.FlacMetadataReader; import com.google.android.exoplayer2.util.FlacStreamMetadata; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; @@ -73,7 +71,6 @@ public final class FlacExtractor implements Extractor { public static final int FLAG_DISABLE_ID3_METADATA = 1; private final ParsableByteArray outputBuffer; - private final Id3Peeker id3Peeker; private final boolean id3MetadataDisabled; @Nullable private FlacDecoderJni decoderJni; @@ -87,7 +84,7 @@ public final class FlacExtractor implements Extractor { @Nullable private Metadata id3Metadata; @Nullable private FlacBinarySearchSeeker binarySearchSeeker; - /** Constructs an instance with flags = 0. */ + /** Constructs an instance with {@code flags = 0}. */ public FlacExtractor() { this(/* flags= */ 0); } @@ -95,11 +92,11 @@ public final class FlacExtractor implements Extractor { /** * Constructs an instance. * - * @param flags Flags that control the extractor's behavior. + * @param flags Flags that control the extractor's behavior. Possible flags are described by + * {@link Flags}. */ public FlacExtractor(int flags) { outputBuffer = new ParsableByteArray(); - id3Peeker = new Id3Peeker(); id3MetadataDisabled = (flags & FLAG_DISABLE_ID3_METADATA) != 0; } @@ -117,7 +114,7 @@ public final class FlacExtractor implements Extractor { @Override public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { - id3Metadata = peekId3Data(input); + id3Metadata = FlacMetadataReader.peekId3Metadata(input, /* parseData= */ !id3MetadataDisabled); return FlacMetadataReader.checkAndPeekStreamMarker(input); } @@ -125,7 +122,7 @@ public final class FlacExtractor implements Extractor { public int read(final ExtractorInput input, PositionHolder seekPosition) throws IOException, InterruptedException { if (input.getPosition() == 0 && !id3MetadataDisabled && id3Metadata == null) { - id3Metadata = peekId3Data(input); + id3Metadata = FlacMetadataReader.peekId3Metadata(input, /* parseData= */ true); } FlacDecoderJni decoderJni = initDecoderJni(input); @@ -177,19 +174,6 @@ public final class FlacExtractor implements Extractor { } } - /** - * Peeks ID3 tag data at the beginning of the input. - * - * @return The first ID3 tag {@link Metadata}, or null if an ID3 tag is not present in the input. - */ - @Nullable - private Metadata peekId3Data(ExtractorInput input) throws IOException, InterruptedException { - input.resetPeekPosition(); - Id3Decoder.FramePredicate id3FramePredicate = - id3MetadataDisabled ? Id3Decoder.NO_FRAMES_PREDICATE : null; - return id3Peeker.peekId3Data(input, id3FramePredicate); - } - @EnsuresNonNull({"decoderJni", "extractorOutput", "trackOutput"}) // Ensures initialized. @SuppressWarnings({"contracts.postcondition.not.satisfied"}) private FlacDecoderJni initDecoderJni(ExtractorInput input) { @@ -220,10 +204,7 @@ public final class FlacExtractor implements Extractor { this.streamMetadata = streamMetadata; binarySearchSeeker = outputSeekMap(decoderJni, streamMetadata, input.getLength(), extractorOutput); - Metadata metadata = id3MetadataDisabled ? null : id3Metadata; - if (streamMetadata.metadata != null) { - metadata = streamMetadata.metadata.copyWithAppendedEntriesFrom(metadata); - } + Metadata metadata = streamMetadata.getMetadataCopyWithAppendedEntriesFrom(id3Metadata); outputFormat(streamMetadata, metadata, trackOutput); outputBuffer.reset(streamMetadata.getMaxDecodedFrameSize()); outputFrameHolder = new OutputFrameHolder(ByteBuffer.wrap(outputBuffer.data)); diff --git a/extensions/flac/src/main/jni/flac_jni.cc b/extensions/flac/src/main/jni/flac_jni.cc index f0a33f323c..4fc28ce887 100644 --- a/extensions/flac/src/main/jni/flac_jni.cc +++ b/extensions/flac/src/main/jni/flac_jni.cc @@ -151,7 +151,7 @@ DECODER_FUNC(jobject, flacDecodeMetadata, jlong jContext) { "FlacStreamMetadata"); jmethodID flacStreamMetadataConstructor = env->GetMethodID(flacStreamMetadataClass, "", - "(IIIIIIIJLjava/util/List;Ljava/util/List;)V"); + "(IIIIIIIJLjava/util/ArrayList;Ljava/util/ArrayList;)V"); return env->NewObject(flacStreamMetadataClass, flacStreamMetadataConstructor, streamInfo.min_blocksize, streamInfo.max_blocksize, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacFrameReader.java similarity index 97% rename from library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java rename to library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacFrameReader.java index 71317494e0..d8d6b8b500 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacFrameReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacFrameReader.java @@ -13,7 +13,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.util; +package com.google.android.exoplayer2.extractor; + +import com.google.android.exoplayer2.util.FlacStreamMetadata; +import com.google.android.exoplayer2.util.ParsableByteArray; +import com.google.android.exoplayer2.util.Util; /** Reads and peeks FLAC frame elements. */ public final class FlacFrameReader { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java new file mode 100644 index 0000000000..e86c9b0129 --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java @@ -0,0 +1,281 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.extractor; + +import androidx.annotation.Nullable; +import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.ParserException; +import com.google.android.exoplayer2.extractor.VorbisUtil.CommentHeader; +import com.google.android.exoplayer2.metadata.Metadata; +import com.google.android.exoplayer2.metadata.flac.PictureFrame; +import com.google.android.exoplayer2.metadata.id3.Id3Decoder; +import com.google.android.exoplayer2.util.FlacConstants; +import com.google.android.exoplayer2.util.FlacStreamMetadata; +import com.google.android.exoplayer2.util.ParsableBitArray; +import com.google.android.exoplayer2.util.ParsableByteArray; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** Reads and peeks FLAC stream metadata elements from an {@link ExtractorInput}. */ +public final class FlacMetadataReader { + + /** Holds a {@link FlacStreamMetadata}. */ + public static final class FlacStreamMetadataHolder { + /** The FLAC stream metadata. */ + @Nullable public FlacStreamMetadata flacStreamMetadata; + + public FlacStreamMetadataHolder(@Nullable FlacStreamMetadata flacStreamMetadata) { + this.flacStreamMetadata = flacStreamMetadata; + } + } + + /** Holds the metadata extracted from the first frame. */ + public static final class FirstFrameMetadata { + /** The frame start marker, which should correspond to the 2 first bytes of each frame. */ + public final int frameStartMarker; + /** The block size in samples. */ + public final int blockSizeSamples; + + public FirstFrameMetadata(int frameStartMarker, int blockSizeSamples) { + this.frameStartMarker = frameStartMarker; + this.blockSizeSamples = blockSizeSamples; + } + } + + private static final int STREAM_MARKER = 0x664C6143; // ASCII for "fLaC" + private static final int SYNC_CODE = 0x3FFE; + private static final int STREAM_INFO_TYPE = 0; + private static final int VORBIS_COMMENT_TYPE = 4; + private static final int PICTURE_TYPE = 6; + + /** + * Peeks ID3 Data. + * + * @param input Input stream to peek the ID3 data from. + * @param parseData Whether to parse the ID3 frames. + * @return The parsed ID3 data, or {@code null} if there is no such data or if {@code parseData} + * is {@code false}. + * @throws IOException If peeking from the input fails. In this case, there is no guarantee on the + * peek position. + * @throws InterruptedException If interrupted while peeking from input. In this case, there is no + * guarantee on the peek position. + */ + @Nullable + public static Metadata peekId3Metadata(ExtractorInput input, boolean parseData) + throws IOException, InterruptedException { + @Nullable + Id3Decoder.FramePredicate id3FramePredicate = parseData ? null : Id3Decoder.NO_FRAMES_PREDICATE; + return new Id3Peeker().peekId3Data(input, id3FramePredicate); + } + + /** + * Peeks the FLAC stream marker. + * + * @param input Input stream to peek the stream marker from. + * @return Whether the data peeked is the FLAC stream marker. + * @throws IOException If peeking from the input fails. In this case, the peek position is left + * unchanged. + * @throws InterruptedException If interrupted while peeking from input. In this case, the peek + * position is left unchanged. + */ + public static boolean checkAndPeekStreamMarker(ExtractorInput input) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(FlacConstants.STREAM_MARKER_SIZE); + input.peekFully(scratch.data, 0, FlacConstants.STREAM_MARKER_SIZE); + return scratch.readUnsignedInt() == STREAM_MARKER; + } + + /** + * Reads ID3 Data. + * + *

    If no exception is thrown, the peek position of {@code input} is aligned with the read + * position. + * + * @param input Input stream to read the ID3 data from. + * @param parseData Whether to parse the ID3 frames. + * @return The parsed ID3 data, or {@code null} if there is no such data or if {@code parseData} + * is {@code false}. + * @throws IOException If reading from the input fails. In this case, the read position is left + * unchanged and there is no guarantee on the peek position. + * @throws InterruptedException If interrupted while reading from input. In this case, the read + * position is left unchanged and there is no guarantee on the peek position. + */ + @Nullable + public static Metadata readId3Metadata(ExtractorInput input, boolean parseData) + throws IOException, InterruptedException { + input.resetPeekPosition(); + long startingPeekPosition = input.getPeekPosition(); + @Nullable Metadata id3Metadata = peekId3Metadata(input, parseData); + int peekedId3Bytes = (int) (input.getPeekPosition() - startingPeekPosition); + input.skipFully(peekedId3Bytes); + return id3Metadata; + } + + /** + * Reads the FLAC stream marker. + * + * @param input Input stream to read the stream marker from. + * @throws ParserException If an error occurs parsing the stream marker. In this case, the + * position of {@code input} is advanced by {@link FlacConstants#STREAM_MARKER_SIZE} bytes. + * @throws IOException If reading from the input fails. In this case, the position is left + * unchanged. + * @throws InterruptedException If interrupted while reading from input. In this case, the + * position is left unchanged. + */ + public static void readStreamMarker(ExtractorInput input) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(FlacConstants.STREAM_MARKER_SIZE); + input.readFully(scratch.data, 0, FlacConstants.STREAM_MARKER_SIZE); + if (scratch.readUnsignedInt() != STREAM_MARKER) { + throw new ParserException("Failed to read FLAC stream marker."); + } + } + + /** + * Reads one FLAC metadata block. + * + *

    If no exception is thrown, the peek position of {@code input} is aligned with the read + * position. + * + * @param input Input stream to read the metadata block from (header included). + * @param metadataHolder A holder for the metadata read. If the stream info block (which must be + * the first metadata block) is read, the holder contains a new instance representing the + * stream info data. If the block read is a Vorbis comment block or a picture block, the + * holder contains a copy of the existing stream metadata with the corresponding metadata + * added. Otherwise, the metadata in the holder is unchanged. + * @return Whether the block read is the last metadata block. + * @throws IllegalArgumentException If the block read is not a stream info block and the metadata + * in {@code metadataHolder} is {@code null}. In this case, the read position will be at the + * start of a metadata block and there is no guarantee on the peek position. + * @throws IOException If reading from the input fails. In this case, the read position will be at + * the start of a metadata block and there is no guarantee on the peek position. + * @throws InterruptedException If interrupted while reading from input. In this case, the read + * position will be at the start of a metadata block and there is no guarantee on the peek + * position. + */ + public static boolean readMetadataBlock( + ExtractorInput input, FlacStreamMetadataHolder metadataHolder) + throws IOException, InterruptedException { + input.resetPeekPosition(); + ParsableBitArray scratch = new ParsableBitArray(new byte[4]); + input.peekFully(scratch.data, 0, FlacConstants.METADATA_BLOCK_HEADER_SIZE); + + boolean isLastMetadataBlock = scratch.readBit(); + int type = scratch.readBits(7); + int length = FlacConstants.METADATA_BLOCK_HEADER_SIZE + scratch.readBits(24); + if (type == STREAM_INFO_TYPE) { + metadataHolder.flacStreamMetadata = readStreamInfoBlock(input); + } else { + FlacStreamMetadata flacStreamMetadata = metadataHolder.flacStreamMetadata; + if (flacStreamMetadata == null) { + throw new IllegalArgumentException(); + } + if (type == VORBIS_COMMENT_TYPE) { + List vorbisComments = readVorbisCommentMetadataBlock(input, length); + metadataHolder.flacStreamMetadata = + flacStreamMetadata.copyWithVorbisComments(vorbisComments); + } else if (type == PICTURE_TYPE) { + PictureFrame pictureFrame = readPictureMetadataBlock(input, length); + metadataHolder.flacStreamMetadata = + flacStreamMetadata.copyWithPictureFrames(Collections.singletonList(pictureFrame)); + } else { + input.skipFully(length); + } + } + + return isLastMetadataBlock; + } + + /** + * Returns some metadata extracted from the first frame of a FLAC stream. + * + *

    The data provided may not contain the Vorbis metadata common header and the framing bit. + * + * @see Vorbis + * spec/Comment header + * @param headerData A {@link ParsableByteArray} wrapping the header data. + * @param hasMetadataHeader Whether the {@code headerData} contains a Vorbis metadata common + * header preceding the comment header. + * @param hasFramingBit Whether the {@code headerData} contains a framing bit. + * @return A {@link VorbisUtil.CommentHeader} with all the comments. + * @throws ParserException If an error occurs parsing the comment header. + */ + public static CommentHeader readVorbisCommentHeader( + ParsableByteArray headerData, boolean hasMetadataHeader, boolean hasFramingBit) + throws ParserException { + + if (hasMetadataHeader) { + verifyVorbisHeaderCapturePattern(/* headerType= */ 0x03, headerData, /* quiet= */ false); + } int length = 7; int len = (int) headerData.readLittleEndianUnsignedInt(); @@ -106,7 +199,7 @@ import java.util.Arrays; comments[i] = headerData.readString(len); length += comments[i].length(); } - if ((headerData.readUnsignedByte() & 0x01) == 0) { + if (hasFramingBit && (headerData.readUnsignedByte() & 0x01) == 0) { throw new ParserException("framing bit expected to be set"); } length += 1; @@ -114,8 +207,8 @@ import java.util.Arrays; } /** - * Verifies whether the next bytes in {@code header} are a vorbis header of the given - * {@code headerType}. + * Verifies whether the next bytes in {@code header} are a Vorbis header of the given {@code + * headerType}. * * @param headerType the type of the header expected. * @param header the alleged header bytes. @@ -123,9 +216,8 @@ import java.util.Arrays; * @return the number of bytes read. * @throws ParserException thrown if header type or capture pattern is not as expected. */ - public static boolean verifyVorbisHeaderCapturePattern(int headerType, ParsableByteArray header, - boolean quiet) - throws ParserException { + public static boolean verifyVorbisHeaderCapturePattern( + int headerType, ParsableByteArray header, boolean quiet) throws ParserException { if (header.bytesLeft() < 7) { if (quiet) { return false; @@ -158,12 +250,12 @@ import java.util.Arrays; } /** - * This method reads the modes which are located at the very end of the vorbis setup header. - * That's why we need to partially decode or at least read the entire setup header to know - * where to start reading the modes. + * This method reads the modes which are located at the very end of the Vorbis setup header. + * That's why we need to partially decode or at least read the entire setup header to know where + * to start reading the modes. * - * @see - * Vorbis spec/Setup header + * @see Vorbis + * spec/Setup header * @param headerData a {@link ParsableByteArray} containing setup header data. * @param channels the number of channels. * @return an array of {@link Mode}s. @@ -409,7 +501,7 @@ import java.util.Arrays; // Prevent instantiation. } - public static final class CodeBook { + private static final class CodeBook { public final int dimensions; public final int entries; @@ -427,69 +519,4 @@ import java.util.Arrays; } } - - public static final class CommentHeader { - - public final String vendor; - public final String[] comments; - public final int length; - - public CommentHeader(String vendor, String[] comments, int length) { - this.vendor = vendor; - this.comments = comments; - this.length = length; - } - - } - - public static final class VorbisIdHeader { - - public final long version; - public final int channels; - public final long sampleRate; - public final int bitrateMax; - public final int bitrateNominal; - public final int bitrateMin; - public final int blockSize0; - public final int blockSize1; - public final boolean framingFlag; - public final byte[] data; - - public VorbisIdHeader(long version, int channels, long sampleRate, int bitrateMax, - int bitrateNominal, int bitrateMin, int blockSize0, int blockSize1, boolean framingFlag, - byte[] data) { - this.version = version; - this.channels = channels; - this.sampleRate = sampleRate; - this.bitrateMax = bitrateMax; - this.bitrateNominal = bitrateNominal; - this.bitrateMin = bitrateMin; - this.blockSize0 = blockSize0; - this.blockSize1 = blockSize1; - this.framingFlag = framingFlag; - this.data = data; - } - - public int getApproximateBitrate() { - return bitrateNominal == 0 ? (bitrateMin + bitrateMax) / 2 : bitrateNominal; - } - - } - - public static final class Mode { - - public final boolean blockFlag; - public final int windowType; - public final int transformType; - public final int mapping; - - public Mode(boolean blockFlag, int windowType, int transformType, int mapping) { - this.blockFlag = blockFlag; - this.windowType = windowType; - this.transformType = transformType; - this.mapping = mapping; - } - - } - } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java index 1ca010dbb1..0f67153e61 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -18,20 +18,22 @@ package com.google.android.exoplayer2.extractor.flac; import static com.google.android.exoplayer2.util.Util.castNonNull; import androidx.annotation.IntDef; +import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ExtractorOutput; import com.google.android.exoplayer2.extractor.ExtractorsFactory; +import com.google.android.exoplayer2.extractor.FlacFrameReader; +import com.google.android.exoplayer2.extractor.FlacFrameReader.BlockSizeHolder; +import com.google.android.exoplayer2.extractor.FlacMetadataReader; +import com.google.android.exoplayer2.extractor.FlacMetadataReader.FirstFrameMetadata; import com.google.android.exoplayer2.extractor.PositionHolder; import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.extractor.TrackOutput; +import com.google.android.exoplayer2.metadata.Metadata; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.FlacConstants; -import com.google.android.exoplayer2.util.FlacFrameReader; -import com.google.android.exoplayer2.util.FlacFrameReader.BlockSizeHolder; -import com.google.android.exoplayer2.util.FlacMetadataReader; -import com.google.android.exoplayer2.util.FlacMetadataReader.FirstFrameMetadata; import com.google.android.exoplayer2.util.FlacStreamMetadata; import com.google.android.exoplayer2.util.ParsableByteArray; import java.io.IOException; @@ -41,7 +43,6 @@ import java.lang.annotation.RetentionPolicy; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; // TODO: implement seeking. -// TODO: expose vorbis and ID3 data. // TODO: support live streams. /** * Extracts data from FLAC container format. @@ -53,23 +54,40 @@ public final class FlacExtractor implements Extractor { /** Factory for {@link FlacExtractor} instances. */ public static final ExtractorsFactory FACTORY = () -> new Extractor[] {new FlacExtractor()}; + /** + * Flags controlling the behavior of the extractor. Possible flag value is {@link + * #FLAG_DISABLE_ID3_METADATA}. + */ + @Documented + @Retention(RetentionPolicy.SOURCE) + @IntDef( + flag = true, + value = {FLAG_DISABLE_ID3_METADATA}) + public @interface Flags {} + + /** + * Flag to disable parsing of ID3 metadata. Can be set to save memory if ID3 metadata is not + * required. + */ + public static final int FLAG_DISABLE_ID3_METADATA = 1; + /** Parser state. */ @Documented @Retention(RetentionPolicy.SOURCE) @IntDef({ - STATE_READ_ID3_TAG, + STATE_READ_ID3_METADATA, + STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES, STATE_READ_STREAM_MARKER, - STATE_READ_STREAM_INFO_BLOCK, - STATE_SKIP_OPTIONAL_METADATA_BLOCKS, + STATE_READ_METADATA_BLOCKS, STATE_GET_FIRST_FRAME_METADATA, STATE_READ_FRAMES }) private @interface State {} - private static final int STATE_READ_ID3_TAG = 0; - private static final int STATE_READ_STREAM_MARKER = 1; - private static final int STATE_READ_STREAM_INFO_BLOCK = 2; - private static final int STATE_SKIP_OPTIONAL_METADATA_BLOCKS = 3; + private static final int STATE_READ_ID3_METADATA = 0; + private static final int STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES = 1; + private static final int STATE_READ_STREAM_MARKER = 2; + private static final int STATE_READ_METADATA_BLOCKS = 3; private static final int STATE_GET_FIRST_FRAME_METADATA = 4; private static final int STATE_READ_FRAMES = 5; @@ -81,6 +99,7 @@ public final class FlacExtractor implements Extractor { private final byte[] streamMarkerAndInfoBlock; private final ParsableByteArray scratch; + private final boolean id3MetadataDisabled; private final BlockSizeHolder blockSizeHolder; @@ -88,6 +107,7 @@ public final class FlacExtractor implements Extractor { @MonotonicNonNull private TrackOutput trackOutput; private @State int state; + @Nullable private Metadata id3Metadata; @MonotonicNonNull private FlacStreamMetadata flacStreamMetadata; private int minFrameSize; private int frameStartMarker; @@ -95,16 +115,28 @@ public final class FlacExtractor implements Extractor { private int currentFrameBytesWritten; private long totalSamplesWritten; + /** Constructs an instance with {@code flags = 0}. */ public FlacExtractor() { + this(/* flags= */ 0); + } + + /** + * Constructs an instance. + * + * @param flags Flags that control the extractor's behavior. Possible flags are described by + * {@link Flags}. + */ + public FlacExtractor(int flags) { streamMarkerAndInfoBlock = new byte[FlacConstants.STREAM_MARKER_SIZE + FlacConstants.STREAM_INFO_BLOCK_SIZE]; scratch = new ParsableByteArray(SCRATCH_LENGTH); blockSizeHolder = new BlockSizeHolder(); + id3MetadataDisabled = (flags & FLAG_DISABLE_ID3_METADATA) != 0; } @Override public boolean sniff(ExtractorInput input) throws IOException, InterruptedException { - FlacMetadataReader.peekId3Data(input); + FlacMetadataReader.peekId3Metadata(input, /* parseData= */ false); return FlacMetadataReader.checkAndPeekStreamMarker(input); } @@ -119,17 +151,17 @@ public final class FlacExtractor implements Extractor { public int read(ExtractorInput input, PositionHolder seekPosition) throws IOException, InterruptedException { switch (state) { - case STATE_READ_ID3_TAG: - readId3Tag(input); + case STATE_READ_ID3_METADATA: + readId3Metadata(input); + return Extractor.RESULT_CONTINUE; + case STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES: + getStreamMarkerAndInfoBlockBytes(input); return Extractor.RESULT_CONTINUE; case STATE_READ_STREAM_MARKER: readStreamMarker(input); return Extractor.RESULT_CONTINUE; - case STATE_READ_STREAM_INFO_BLOCK: - readStreamInfoBlock(input); - return Extractor.RESULT_CONTINUE; - case STATE_SKIP_OPTIONAL_METADATA_BLOCKS: - skipOptionalMetadataBlocks(input); + case STATE_READ_METADATA_BLOCKS: + readMetadataBlocks(input); return Extractor.RESULT_CONTINUE; case STATE_GET_FIRST_FRAME_METADATA: getFirstFrameMetadata(input); @@ -143,7 +175,7 @@ public final class FlacExtractor implements Extractor { @Override public void seek(long position, long timeUs) { - state = STATE_READ_ID3_TAG; + state = STATE_READ_ID3_METADATA; currentFrameBytesWritten = 0; totalSamplesWritten = 0; scratch.reset(); @@ -156,40 +188,40 @@ public final class FlacExtractor implements Extractor { // Private methods. - private void readId3Tag(ExtractorInput input) throws IOException, InterruptedException { - FlacMetadataReader.readId3Data(input); + private void readId3Metadata(ExtractorInput input) throws IOException, InterruptedException { + id3Metadata = FlacMetadataReader.readId3Metadata(input, /* parseData= */ !id3MetadataDisabled); + state = STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES; + } + + private void getStreamMarkerAndInfoBlockBytes(ExtractorInput input) + throws IOException, InterruptedException { + input.peekFully(streamMarkerAndInfoBlock, 0, streamMarkerAndInfoBlock.length); + input.resetPeekPosition(); state = STATE_READ_STREAM_MARKER; } private void readStreamMarker(ExtractorInput input) throws IOException, InterruptedException { - FlacMetadataReader.readStreamMarker( - input, streamMarkerAndInfoBlock, /* scratchWriteIndex= */ 0); - state = STATE_READ_STREAM_INFO_BLOCK; + FlacMetadataReader.readStreamMarker(input); + state = STATE_READ_METADATA_BLOCKS; } - private void readStreamInfoBlock(ExtractorInput input) throws IOException, InterruptedException { - flacStreamMetadata = - FlacMetadataReader.readStreamInfoBlock( - input, - /* scratchData= */ streamMarkerAndInfoBlock, - /* scratchWriteIndex= */ FlacConstants.STREAM_MARKER_SIZE); + private void readMetadataBlocks(ExtractorInput input) throws IOException, InterruptedException { + boolean isLastMetadataBlock = false; + FlacMetadataReader.FlacStreamMetadataHolder metadataHolder = + new FlacMetadataReader.FlacStreamMetadataHolder(flacStreamMetadata); + while (!isLastMetadataBlock) { + isLastMetadataBlock = FlacMetadataReader.readMetadataBlock(input, metadataHolder); + // Save the current metadata in case an exception occurs. + flacStreamMetadata = castNonNull(metadataHolder.flacStreamMetadata); + } + + Assertions.checkNotNull(flacStreamMetadata); minFrameSize = Math.max(flacStreamMetadata.minFrameSize, FlacConstants.MIN_FRAME_HEADER_SIZE); - boolean isLastMetadataBlock = - (streamMarkerAndInfoBlock[FlacConstants.STREAM_MARKER_SIZE] >> 7 & 1) == 1; - castNonNull(trackOutput).format(flacStreamMetadata.getFormat(streamMarkerAndInfoBlock)); + castNonNull(trackOutput) + .format(flacStreamMetadata.getFormat(streamMarkerAndInfoBlock, id3Metadata)); castNonNull(extractorOutput) .seekMap(new SeekMap.Unseekable(flacStreamMetadata.getDurationUs())); - if (isLastMetadataBlock) { - state = STATE_GET_FIRST_FRAME_METADATA; - } else { - state = STATE_SKIP_OPTIONAL_METADATA_BLOCKS; - } - } - - private void skipOptionalMetadataBlocks(ExtractorInput input) - throws IOException, InterruptedException { - FlacMetadataReader.skipMetadataBlocks(input); state = STATE_GET_FIRST_FRAME_METADATA; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java index ed86944f1e..152d803da7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java @@ -69,7 +69,7 @@ import java.util.Arrays; if (streamMetadata == null) { streamMetadata = new FlacStreamMetadata(data, 17); byte[] metadata = Arrays.copyOfRange(data, 9, packet.limit()); - setupData.format = streamMetadata.getFormat(metadata); + setupData.format = streamMetadata.getFormat(metadata, /* id3Metadata= */ null); } else if ((data[0] & 0x7F) == SEEKTABLE_PACKET_TYPE) { flacOggSeeker = new FlacOggSeeker(); flacOggSeeker.parseSeekTable(packet); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisReader.java index 2675edd5b1..b57678266a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisReader.java @@ -18,7 +18,8 @@ package com.google.android.exoplayer2.extractor.ogg; import androidx.annotation.VisibleForTesting; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.ParserException; -import com.google.android.exoplayer2.extractor.ogg.VorbisUtil.Mode; +import com.google.android.exoplayer2.extractor.VorbisUtil; +import com.google.android.exoplayer2.extractor.VorbisUtil.Mode; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; import java.io.IOException; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java deleted file mode 100644 index 23eefd042c..0000000000 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacMetadataReader.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.android.exoplayer2.util; - -import com.google.android.exoplayer2.ParserException; -import com.google.android.exoplayer2.extractor.ExtractorInput; -import com.google.android.exoplayer2.extractor.Id3Peeker; -import com.google.android.exoplayer2.metadata.id3.Id3Decoder; -import java.io.IOException; - -/** Reads and peeks FLAC stream metadata elements from an {@link ExtractorInput}. */ -public final class FlacMetadataReader { - - /** Holds the metadata extracted from the first frame. */ - public static final class FirstFrameMetadata { - /** The frame start marker, which should correspond to the 2 first bytes of each frame. */ - public final int frameStartMarker; - /** The block size in samples. */ - public final int blockSizeSamples; - - public FirstFrameMetadata(int frameStartMarker, int blockSizeSamples) { - this.frameStartMarker = frameStartMarker; - this.blockSizeSamples = blockSizeSamples; - } - } - - private static final int STREAM_MARKER = 0x664C6143; // ASCII for "fLaC" - private static final int SYNC_CODE = 0x3FFE; - - /** - * Peeks ID3 Data. - * - * @param input Input stream to peek the ID3 data from. - * @throws IOException If peeking from the input fails. In this case, there is no guarantee on the - * peek position. - * @throws InterruptedException If interrupted while peeking from input. In this case, there is no - * guarantee on the peek position. - */ - public static void peekId3Data(ExtractorInput input) throws IOException, InterruptedException { - new Id3Peeker().peekId3Data(input, Id3Decoder.NO_FRAMES_PREDICATE); - } - - /** - * Peeks the FLAC stream marker. - * - * @param input Input stream to peek the stream marker from. - * @return Whether the data peeked is the FLAC stream marker. - * @throws IOException If peeking from the input fails. In this case, the peek position is left - * unchanged. - * @throws InterruptedException If interrupted while peeking from input. In this case, the peek - * position is left unchanged. - */ - public static boolean checkAndPeekStreamMarker(ExtractorInput input) - throws IOException, InterruptedException { - ParsableByteArray scratch = new ParsableByteArray(FlacConstants.STREAM_MARKER_SIZE); - input.peekFully(scratch.data, /* offset= */ 0, FlacConstants.STREAM_MARKER_SIZE); - return scratch.readUnsignedInt() == STREAM_MARKER; - } - - /** - * Reads ID3 Data. - * - *

    If no exception is thrown, the peek position of {@code input} is aligned with the read - * position. - * - * @param input Input stream to read the ID3 data from. - * @throws IOException If reading from the input fails. In this case, the read position is left - * unchanged and there is no guarantee on the peek position. - * @throws InterruptedException If interrupted while reading from input. In this case, the read - * position is left unchanged and there is no guarantee on the peek position. - */ - public static void readId3Data(ExtractorInput input) throws IOException, InterruptedException { - input.resetPeekPosition(); - long startingPeekPosition = input.getPeekPosition(); - new Id3Peeker().peekId3Data(input, Id3Decoder.NO_FRAMES_PREDICATE); - int peekedId3Bytes = (int) (input.getPeekPosition() - startingPeekPosition); - input.skipFully(peekedId3Bytes); - } - - /** - * Reads the FLAC stream marker. - * - * @param input Input stream to read the stream marker from. - * @param scratchData The array in which the data read should be copied. This array must have size - * at least {@code scratchWriteIndex} + {@link FlacConstants#STREAM_MARKER_SIZE}. - * @param scratchWriteIndex The index of {@code scratchData} from which to write. - * @throws ParserException If an error occurs parsing the stream marker. In this case, the - * position of {@code input} is advanced by {@link FlacConstants#STREAM_MARKER_SIZE} bytes. - * @throws IOException If reading from the input fails. In this case, the position is left - * unchanged. - * @throws InterruptedException If interrupted while reading from input. In this case, the - * position is left unchanged. - */ - public static void readStreamMarker( - ExtractorInput input, byte[] scratchData, int scratchWriteIndex) - throws IOException, InterruptedException { - ParsableByteArray scratch = new ParsableByteArray(scratchData); - input.readFully( - scratch.data, - /* offset= */ scratchWriteIndex, - /* length= */ FlacConstants.STREAM_MARKER_SIZE); - scratch.setPosition(scratchWriteIndex); - if (scratch.readUnsignedInt() != STREAM_MARKER) { - throw new ParserException("Failed to read FLAC stream marker."); - } - } - - /** - * Reads the stream info block. - * - * @param input Input stream to read the stream info block from. - * @param scratchData The array in which the data read should be copied. This array must have size - * at least {@code scratchWriteIndex} + {@link FlacConstants#STREAM_INFO_BLOCK_SIZE}. - * @param scratchWriteIndex The index of {@code scratchData} from which to write. - * @return A new {@link FlacStreamMetadata} read from {@code input}. - * @throws IOException If reading from the input fails. In this case, the position is left - * unchanged. - * @throws InterruptedException If interrupted while reading from input. In this case, the - * position is left unchanged. - */ - public static FlacStreamMetadata readStreamInfoBlock( - ExtractorInput input, byte[] scratchData, int scratchWriteIndex) - throws IOException, InterruptedException { - input.readFully( - scratchData, - /* offset= */ scratchWriteIndex, - /* length= */ FlacConstants.STREAM_INFO_BLOCK_SIZE); - return new FlacStreamMetadata( - scratchData, /* offset= */ scratchWriteIndex + FlacConstants.METADATA_BLOCK_HEADER_SIZE); - } - - /** - * Skips the stream metadata blocks. - * - *

    If no exception is thrown, the peek position of {@code input} is aligned with the read - * position. - * - * @param input Input stream to read the metadata blocks from. - * @throws IOException If reading from the input fails. In this case, the read position will be at - * the start of a metadata block and there is no guarantee on the peek position. - * @throws InterruptedException If interrupted while reading from input. In this case, the read - * position will be at the start of a metadata block and there is no guarantee on the peek - * position. - */ - public static void skipMetadataBlocks(ExtractorInput input) - throws IOException, InterruptedException { - input.resetPeekPosition(); - ParsableBitArray scratch = new ParsableBitArray(new byte[4]); - boolean lastMetadataBlock = false; - while (!lastMetadataBlock) { - input.peekFully(scratch.data, /* offset= */ 0, /* length= */ 4); - scratch.setPosition(0); - lastMetadataBlock = scratch.readBit(); - scratch.skipBits(7); - int length = scratch.readBits(24); - input.skipFully(4 + length); - } - } - - /** - * Returns some metadata extracted from the first frame of a FLAC stream. - * - *

    The read position of {@code input} is left unchanged and the peek position is aligned with - * the read position. - * - * @param input Input stream to get the metadata from (starting from the read position). - * @return A {@link FirstFrameMetadata} containing the frame start marker (which should be the - * same for all the frames in the stream) and the block size of the frame. - * @throws ParserException If an error occurs parsing the frame metadata. - * @throws IOException If peeking from the input fails. - * @throws InterruptedException If interrupted while peeking from input. - */ - public static FirstFrameMetadata getFirstFrameMetadata(ExtractorInput input) - throws IOException, InterruptedException { - input.resetPeekPosition(); - ParsableByteArray scratch = - new ParsableByteArray(new byte[FlacConstants.MAX_FRAME_HEADER_SIZE]); - input.peekFully(scratch.data, /* offset= */ 0, FlacConstants.MAX_FRAME_HEADER_SIZE); - - int frameStartMarker = scratch.readUnsignedShort(); - int syncCode = frameStartMarker >> 2; - if (syncCode != SYNC_CODE) { - input.resetPeekPosition(); - throw new ParserException("First frame does not start with sync code."); - } - - scratch.setPosition(0); - int firstFrameBlockSizeSamples = FlacFrameReader.getFrameBlockSizeSamples(scratch); - - input.resetPeekPosition(); - return new FirstFrameMetadata(frameStartMarker, firstFrameBlockSizeSamples); - } - - private FlacMetadataReader() {} -} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java index b35d585a05..2772f7e0c6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java @@ -25,13 +25,24 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -/** Holder for FLAC metadata. */ +/** + * Holder for FLAC metadata. + * + * @see FLAC format + * METADATA_BLOCK_STREAMINFO + * @see FLAC format + * METADATA_BLOCK_VORBIS_COMMENT + * @see FLAC format + * METADATA_BLOCK_PICTURE + */ public final class FlacStreamMetadata { private static final String TAG = "FlacStreamMetadata"; /** Indicates that a value is not in the corresponding lookup table. */ public static final int NOT_IN_LOOKUP_TABLE = -1; + /** Separator between the field name of a Vorbis comment and the corresponding value. */ + private static final String SEPARATOR = "="; /** Minimum number of samples per block. */ public final int minBlockSizeSamples; @@ -68,53 +79,33 @@ public final class FlacStreamMetadata { public final int bitsPerSampleLookupKey; /** Total number of samples, or 0 if the value is unknown. */ public final long totalSamples; - /** Stream content metadata. */ - @Nullable public final Metadata metadata; - private static final String SEPARATOR = "="; + /** Content metadata. */ + private final Metadata metadata; /** * Parses binary FLAC stream info metadata. * - * @param data An array containing binary FLAC stream info metadata. + * @param data An array containing binary FLAC stream info block (with or without header). * @param offset The offset of the stream info block in {@code data} (header excluded). - * @see FLAC format - * METADATA_BLOCK_STREAMINFO */ public FlacStreamMetadata(byte[] data, int offset) { ParsableBitArray scratch = new ParsableBitArray(data); scratch.setPosition(offset * 8); - this.minBlockSizeSamples = scratch.readBits(16); - this.maxBlockSizeSamples = scratch.readBits(16); - this.minFrameSize = scratch.readBits(24); - this.maxFrameSize = scratch.readBits(24); - this.sampleRate = scratch.readBits(20); - this.sampleRateLookupKey = getSampleRateLookupKey(); - this.channels = scratch.readBits(3) + 1; - this.bitsPerSample = scratch.readBits(5) + 1; - this.bitsPerSampleLookupKey = getBitsPerSampleLookupKey(); - this.totalSamples = scratch.readBitsToLong(36); - this.metadata = null; + minBlockSizeSamples = scratch.readBits(16); + maxBlockSizeSamples = scratch.readBits(16); + minFrameSize = scratch.readBits(24); + maxFrameSize = scratch.readBits(24); + sampleRate = scratch.readBits(20); + sampleRateLookupKey = getSampleRateLookupKey(sampleRate); + channels = scratch.readBits(3) + 1; + bitsPerSample = scratch.readBits(5) + 1; + bitsPerSampleLookupKey = getBitsPerSampleLookupKey(bitsPerSample); + totalSamples = scratch.readBitsToLong(36); + metadata = new Metadata(); } - /** - * @param minBlockSizeSamples Minimum block size of the FLAC stream. - * @param maxBlockSizeSamples Maximum block size of the FLAC stream. - * @param minFrameSize Minimum frame size of the FLAC stream. - * @param maxFrameSize Maximum frame size of the FLAC stream. - * @param sampleRate Sample rate of the FLAC stream. - * @param channels Number of channels of the FLAC stream. - * @param bitsPerSample Number of bits per sample of the FLAC stream. - * @param totalSamples Total samples of the FLAC stream. - * @param vorbisComments Vorbis comments. Each entry must be in key=value form. - * @param pictureFrames Picture frames. - * @see FLAC format - * METADATA_BLOCK_STREAMINFO - * @see FLAC format - * METADATA_BLOCK_VORBIS_COMMENT - * @see FLAC format - * METADATA_BLOCK_PICTURE - */ + // Used in native code. public FlacStreamMetadata( int minBlockSizeSamples, int maxBlockSizeSamples, @@ -124,19 +115,41 @@ public final class FlacStreamMetadata { int channels, int bitsPerSample, long totalSamples, - List vorbisComments, - List pictureFrames) { + ArrayList vorbisComments, + ArrayList pictureFrames) { + this( + minBlockSizeSamples, + maxBlockSizeSamples, + minFrameSize, + maxFrameSize, + sampleRate, + channels, + bitsPerSample, + totalSamples, + buildMetadata(vorbisComments, pictureFrames)); + } + + private FlacStreamMetadata( + int minBlockSizeSamples, + int maxBlockSizeSamples, + int minFrameSize, + int maxFrameSize, + int sampleRate, + int channels, + int bitsPerSample, + long totalSamples, + Metadata metadata) { this.minBlockSizeSamples = minBlockSizeSamples; this.maxBlockSizeSamples = maxBlockSizeSamples; this.minFrameSize = minFrameSize; this.maxFrameSize = maxFrameSize; this.sampleRate = sampleRate; - this.sampleRateLookupKey = getSampleRateLookupKey(); + this.sampleRateLookupKey = getSampleRateLookupKey(sampleRate); this.channels = channels; this.bitsPerSample = bitsPerSample; - this.bitsPerSampleLookupKey = getBitsPerSampleLookupKey(); + this.bitsPerSampleLookupKey = getBitsPerSampleLookupKey(bitsPerSample); this.totalSamples = totalSamples; - this.metadata = getMetadata(vorbisComments, pictureFrames); + this.metadata = metadata; } /** Returns the maximum size for a decoded frame from the FLAC stream. */ @@ -193,12 +206,15 @@ public final class FlacStreamMetadata { * * @param streamMarkerAndInfoBlock An array containing the FLAC stream marker followed by the * stream info block. + * @param id3Metadata The ID3 metadata of the stream, or {@code null} if there is no such data. * @return The extracted {@link Format}. */ - public Format getFormat(byte[] streamMarkerAndInfoBlock) { + public Format getFormat(byte[] streamMarkerAndInfoBlock, @Nullable Metadata id3Metadata) { // Set the last metadata block flag, ignore the other blocks. streamMarkerAndInfoBlock[4] = (byte) 0x80; int maxInputSize = maxFrameSize > 0 ? maxFrameSize : Format.NO_VALUE; + Metadata metadataWithId3 = metadata.copyWithAppendedEntriesFrom(id3Metadata); + return Format.createAudioSampleFormat( /* id= */ null, MimeTypes.AUDIO_FLAC, @@ -207,13 +223,55 @@ public final class FlacStreamMetadata { maxInputSize, channels, sampleRate, - Collections.singletonList(streamMarkerAndInfoBlock), + /* pcmEncoding= */ Format.NO_VALUE, + /* encoderDelay= */ 0, + /* encoderPadding= */ 0, + /* initializationData= */ Collections.singletonList(streamMarkerAndInfoBlock), /* drmInitData= */ null, /* selectionFlags= */ 0, - /* language= */ null); + /* language= */ null, + metadataWithId3); } - private int getSampleRateLookupKey() { + /** Returns a copy of the content metadata with entries from {@code other} appended. */ + public Metadata getMetadataCopyWithAppendedEntriesFrom(@Nullable Metadata other) { + return metadata.copyWithAppendedEntriesFrom(other); + } + + /** Returns a copy of {@code this} with the given Vorbis comments added to the metadata. */ + public FlacStreamMetadata copyWithVorbisComments(List vorbisComments) { + Metadata appendedMetadata = + metadata.copyWithAppendedEntriesFrom( + buildMetadata(vorbisComments, Collections.emptyList())); + return new FlacStreamMetadata( + minBlockSizeSamples, + maxBlockSizeSamples, + minFrameSize, + maxFrameSize, + sampleRate, + channels, + bitsPerSample, + totalSamples, + appendedMetadata); + } + + /** Returns a copy of {@code this} with the given picture frames added to the metadata. */ + public FlacStreamMetadata copyWithPictureFrames(List pictureFrames) { + Metadata appendedMetadata = + metadata.copyWithAppendedEntriesFrom(buildMetadata(Collections.emptyList(), pictureFrames)); + return new FlacStreamMetadata( + minBlockSizeSamples, + maxBlockSizeSamples, + minFrameSize, + maxFrameSize, + sampleRate, + channels, + bitsPerSample, + totalSamples, + appendedMetadata); + } + + private static int getSampleRateLookupKey(int sampleRate) { switch (sampleRate) { case 88200: return 1; @@ -242,7 +300,7 @@ public final class FlacStreamMetadata { } } - private int getBitsPerSampleLookupKey() { + private static int getBitsPerSampleLookupKey(int bitsPerSample) { switch (bitsPerSample) { case 8: return 1; @@ -259,11 +317,10 @@ public final class FlacStreamMetadata { } } - @Nullable - private static Metadata getMetadata( + private static Metadata buildMetadata( List vorbisComments, List pictureFrames) { if (vorbisComments.isEmpty() && pictureFrames.isEmpty()) { - return null; + return new Metadata(); } ArrayList metadataEntries = new ArrayList<>(); @@ -271,7 +328,7 @@ public final class FlacStreamMetadata { String vorbisComment = vorbisComments.get(i); String[] keyAndValue = Util.splitAtFirst(vorbisComment, SEPARATOR); if (keyAndValue.length != 2) { - Log.w(TAG, "Failed to parse vorbis comment: " + vorbisComment); + Log.w(TAG, "Failed to parse Vorbis comment: " + vorbisComment); } else { VorbisComment entry = new VorbisComment(keyAndValue[0], keyAndValue[1]); metadataEntries.add(entry); @@ -279,6 +336,6 @@ public final class FlacStreamMetadata { } metadataEntries.addAll(pictureFrames); - return metadataEntries.isEmpty() ? null : new Metadata(metadataEntries); + return metadataEntries.isEmpty() ? new Metadata() : new Metadata(metadataEntries); } } diff --git a/library/core/src/test/assets/binary/ogg/vorbis_header_pages b/library/core/src/test/assets/binary/ogg/vorbis_header_pages new file mode 100644 index 0000000000000000000000000000000000000000..afa13aa80315301b5b654b3fbb7ab6dbc10ca3a6 GIT binary patch literal 3743 zcmeHKeNa=`6+a090s;;A$OboT6AhS$;1CgN;89ov;D0ZP6*L9{dxHEu)FG1xZBmtM+PuUr{Xb^U7-uZ_TVLlT?)#=d$W0ddarrFd!<(i5?oS!us4t##M<_6ddYE)y*{75kq_lqJ#N0O;wJ+dh#;2sVs_!VLgHN-dRfn%Xlgo|=<|^TYE4iAVV; zr#tD^**tk|hswL-f7vJR>`S;fQa(A7I5o0zZ7aK62asi=#%icwc3lYozesND-`Vyc z&*{nU4sJeqi3?T$9?FGf3{%F>WHXPBu!!49`~Gi zW7kc$^Nn4Tvi>%vlJ-&Adxswi%|pJ$F3WFIX|r81F8XTN#JT|wEC`Azao`4J$5qg-nw6;&euqQ76lA%5FLn^=H&mza!l^uQf*JEaX(*eO~?M^XiWlN)PD9P&POY4hX>7zti@q4&%`lm+y=(Z!c?T zKi|-K;qBL05ey7^4V$%(4Vx^#eW1MiJPG#Tpl!fAI9Sm+Q2xI=w^w=*AOs+GqE?(y zE1sw&r(!)U2>=N|nn|2qmpI{6?!hzO(atOmk5I=h2}#bl7%>w;n@8f16gK((!^6{VivPazY4}@V5CUh z`L4~O4u7hRoYh9YP=toGraVzke8MBIiI>>0vL%0vrMO5FBUhHBgJ3fh)rhCC z`er!E-4^R_D*1Ba1o-SV(CM zfD~(ZXVj?xYQsnrv~nR?Zo~S!oQhSC>Mie#w>?$QtWQ7My?icSJGZ)bec$7Tfsi{? z`W;^1;Z8h7s2E=*RkN-5RU3SHzE(>EAC*X*VGZVn%x{X6qmVx$Irc>n}SCnR1;$jSc>aqwz0TOBu z*t}yZv79*F!@g_006`POiTHxT2<>s=_Cw!j~Nba^kkFd$TFy9dzT!5b^9t_`Mx|PqQvu8LdZ;Ru=*sJrMv| zjo}wJby2?#6q1}l@FwA>>gW~+6Dsvk8Ux*oIUGjrR7X}&Xn1}IxG_)G5Dp7-zSY1& z$p3%f!tfR`ytT0^FZRCsaN;{`R^o1o?2769OTNW|EgqLMs}iwOC!(!pA;C=@3O?;) z5tLn(k;G!DE4hX$7F7-VnBp~jB|Pwgy7D!+wFbQY)3Y^L=2!J4N=t;%2iG}}aD6-` z*Et=U(X@`Z=|K>{xO}X`Je|t#bwwHUL-o@tz7#V+?|s)*Jc-$p%Ezq0sb^lrrUs^p ztDs`Yg5LF@98TvMc0~d*n93oKK!bUN9Ap%n>UB8`bR07DNxt@igkIM^!azB%FV~D5y-jvQ&Wh74>;hfo<3~k9+pb7gQu&5gx$pE*4bK9@fi3 zbESf)_j(Y!N01_8zwoZ$Cx5v5IbUqLk<5uExksR#qui;|dn4mjV?C}%UD>!jrMA7q zQJfWf&aTp{(%cHSH^{I5ZmpRt$gW;BatPajkc`+arf2x%@NfS zwq{Gp$k6jIN>|9qObP>wDtIaw85kNF7#SEVX!z&mWfl~r7N_Qw zXfgwpa{;lVk5j0x?cpVdw+RDzA)X;VuC|T}#fiBEIjIW8`FZKQAVonTp1~ou?)mxY HIjM{QIG-Rr literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/binary/vorbis/id_header b/library/core/src/test/assets/binary/vorbis/id_header new file mode 100644 index 0000000000000000000000000000000000000000..556b4acfbf9db3d342d707873838a77644c7d6a6 GIT binary patch literal 30 fcmZQ9%P&gGEM@=#CZ#Y2hW|j2#li@tS26+smS7Ab literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/binary/vorbis/setup_header b/library/core/src/test/assets/binary/vorbis/setup_header new file mode 100644 index 0000000000000000000000000000000000000000..cafc779059db3bbc16dbb088e27e1a5e1dc7bbfd GIT binary patch literal 3597 zcmeHKeNa=`6+eLh0f7d5WP=U6i3ZGz;20-bW3w|5f+UeF3==%A?ipZJT->aG=!)dBn z(SSI&ZFgu#m~YDe$m~$vYMynK0=>W|*k9D3&06lZ4eXGp9?fTesq}mnB z?uK^RDmSr#q~)54d`JC7K2kmbQkQ7TD*MpgFs(r9vGA8v!^jSr%Rijhu#VOeqV+wc zH9L2FIKL{#2s49|R?kpBlP&XXBeWKr3RZs;%FQX@0_g3NI6jvoayN{{!A$^ec0G}Q zj@UaYn3@wOa1zR+09e35In5cL#^En(KUCe5@r!bG>)&#Uz*r385I~(ln57Fz`HSIo491|QD3%Fn( z*yZ@62IJA5UhdAQ?mXPod9lfR>Ag1@5ey7^4V%5637fdQbFjMSA|33ZA;(}~XsE_J zSpC0yM4#v~KrBF7xL%N7F9_Gur(!%Tj07P-u0fF3kQsK%_u?7vs%KstH0*3F-fvwC z0*cTrY*S*tg|0xNL#e$h*MG}SJ2nC^`CJh*Dl%(NgrKc!VClrO-(jRJN_U&~ud)~O zvY64sp-qQ8154zLKoxI%qCBRPwUJ*@+e5<8k||!~;bZVb&~ga);#ikF0sHF4KwKCp zH?ZY}n8i%fu7Lgp=n2-V`FHtpDHEQnlV;UPuaux6wINEqux1Ob6sEA|N?waC`47+# zn){lq1-82w-UI*51DN9MUHB>Ew4S-bfzR3WGw~W5R<>=Q zVJWUsrAp-HJm7AIs-uD_tiJhf`fdxfcjN%Ga{3~V-@%LbU2T8UU^;N4plTbTk1XSj zkAXLOR&HNrDU+(aG+4-Pj)ZJ`f;ahWB(Y&E8QLOXo5X?jcR2^E9?@6r&2T(d&aBTn z-m`omLp`@ru)hCE(_rjfBJVD{|A-e)5huW>q;A$zCg`1Yori1<*mDe-Q!8o%p)W42 ze8c;=39C95@sV}<6{P_emXzLWU2f_pv7iqPJ^gq^Jts%W(tC{$nouPz`Skj8r2z{s zN}jj0;WNNUPHyMs;jT&>E6bx%aOlt1N4895Ggj_3T2i|PYfv2mgUAB3yT8+t+DmI1 ztGf@l1Qp$nzBWSh@9zYhm0z`Dg^5W-n6YP8yXSn~(vgo_WAF?qtZV|H%1Jp$3%{dC z7n@+BbW*?DP3in4$&@bO(dl&LdAC7F20Nu>z~iCP{XRD(1^CN23qLB1b2_+UAe(!N zFgX>Q{Ur{BL>-iLqRTd|B~wke70W)4Q}(#qM(IK{I3m+cG+^@F!Qpg~j`Z86b0mIG zvT9lAp>%)hwsGSCq(>3hyl*huPMzyz-kJbFba*rqA1I8_UN??!7ZUmfw-~20>-EKt zntCJ-+EY3ruaL-_lb4>)Jll^C>CpA92Y9c1*)=Gk-L|!$n9$!vH;xU{o*hfLzjM{o zj0>NRH=;+al>o<2MM6jkj;HTbS5b6a zLU}CsFi+MH4g+(()xbc=|9^;p(JcaacVk^y+5_K_%=ekB#NAXmWz*$Xf{PVf{2q5v zEn+7xqOBGljhnh;95TotD5oMni@{P?_vz{wR5co;jBEIccia_zPqI!s+&Hb^h%f`Rfe$>! zNz9%c4rT>T{qqVYH852?6*a>)^sXP}a5_&hE2PMvYKQ$?73L9gkWq2A&*RdO>B!J# z1v@LGeV!7UfpUT1KAo0k&~nCF(&MJIWDuvr6H7*N7(ppA7OA@7;1W%BR$%V)4%B4f zioH0c_GX0^E0CI}Y6AEh%5_o5ou_KEa79fPs;WgsMQzsAr3%Eas4svD9HYT`+;ecg zq9*Gq?*MLhv7(0bGhXJIYGt(gfFH4YB3)#hmp)xw_NrG8Uy>a4NKlT%XJ*{Howw*kk18YNW>;in<+tFH^;gMq8Xm z$qB5soCsiJ%JPMhE*3<`a5lw6q_NnERKLEX1@g)EN literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear.flac b/library/core/src/test/assets/flac/bear.flac index 3e17983fef7a7945937f59a43a4254cd1e06e16b..15f90b463e55e80e5e27238fcf77a968ab85e954 100644 GIT binary patch delta 36 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%0A=ZmWJD6C@xHvhveB`7R!Y#MOuOY;=r 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 RyyeE1<>yZ~V99nf@gD$yWO9B(e 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±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�gaf2rLN*pkunw+o}MAHYAp4#5vt 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

    _2^ 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'zZ$Gp-sNNhIx*f)tjo~|f_fZRK+#$+% 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 M(>VuB**4YxKP}1$r2qf` literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump b/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump new file mode 100644 index 0000000000..e35dcc2081 --- /dev/null +++ b/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump @@ -0,0 +1,163 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = 5776 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + initializationData: + data = length 42, hash 83F6895 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArrayTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisBitArrayTest.java similarity index 99% rename from library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArrayTest.java rename to library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisBitArrayTest.java index 0b36924e55..b05cdd863c 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArrayTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisBitArrayTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.extractor.ogg; +package com.google.android.exoplayer2.extractor; import static com.google.common.truth.Truth.assertThat; diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtilTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisUtilTest.java similarity index 85% rename from library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtilTest.java rename to library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisUtilTest.java index 6dfddb37dd..15add339bd 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtilTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/VorbisUtilTest.java @@ -13,16 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.extractor.ogg; +package com.google.android.exoplayer2.extractor; -import static com.google.android.exoplayer2.extractor.ogg.VorbisUtil.iLog; -import static com.google.android.exoplayer2.extractor.ogg.VorbisUtil.verifyVorbisHeaderCapturePattern; +import static com.google.android.exoplayer2.extractor.VorbisUtil.iLog; +import static com.google.android.exoplayer2.extractor.VorbisUtil.verifyVorbisHeaderCapturePattern; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.ParserException; +import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.util.ParsableByteArray; +import java.io.IOException; import org.junit.Test; import org.junit.runner.RunWith; @@ -45,7 +48,9 @@ public final class VorbisUtilTest { @Test public void testReadIdHeader() throws Exception { - byte[] data = OggTestData.getIdentificationHeaderData(); + byte[] data = + TestUtil.getByteArray( + ApplicationProvider.getApplicationContext(), "binary/vorbis/id_header"); ParsableByteArray headerData = new ParsableByteArray(data, data.length); VorbisUtil.VorbisIdHeader vorbisIdHeader = VorbisUtil.readVorbisIdentificationHeader(headerData); @@ -63,8 +68,10 @@ public final class VorbisUtilTest { } @Test - public void testReadCommentHeader() throws ParserException { - byte[] data = OggTestData.getCommentHeaderDataUTF8(); + public void testReadCommentHeader() throws IOException { + byte[] data = + TestUtil.getByteArray( + ApplicationProvider.getApplicationContext(), "binary/vorbis/comment_header"); ParsableByteArray headerData = new ParsableByteArray(data, data.length); VorbisUtil.CommentHeader commentHeader = VorbisUtil.readVorbisCommentHeader(headerData); @@ -76,8 +83,10 @@ public final class VorbisUtilTest { } @Test - public void testReadVorbisModes() throws ParserException { - byte[] data = OggTestData.getSetupHeaderData(); + public void testReadVorbisModes() throws IOException { + byte[] data = + TestUtil.getByteArray( + ApplicationProvider.getApplicationContext(), "binary/vorbis/setup_header"); ParsableByteArray headerData = new ParsableByteArray(data, data.length); VorbisUtil.Mode[] modes = VorbisUtil.readVorbisModes(headerData, 2); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java index 3aac12a1a3..c4fd9e21ec 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java @@ -30,10 +30,30 @@ public class FlacExtractorTest { } @Test - public void testSampleWithId3() throws Exception { + public void testSampleWithId3HeaderAndId3Enabled() throws Exception { ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_id3.flac"); } + @Test + public void testSampleWithId3HeaderAndId3Disabled() throws Exception { + // The same file is used for testing the extractor with and without ID3 enabled as the test does + // not check the metadata outputted. It only checks that the file is parsed correctly in both + // cases. + ExtractorAsserts.assertBehavior( + () -> new FlacExtractor(FlacExtractor.FLAG_DISABLE_ID3_METADATA), + "flac/bear_with_id3.flac"); + } + + @Test + public void testSampleWithVorbisComments() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_vorbis_comments.flac"); + } + + @Test + public void testSampleWithPicture() throws Exception { + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_picture.flac"); + } + @Test public void testOneMetadataBlock() throws Exception { ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_one_metadata_block.flac"); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/OggTestData.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/OggTestData.java index c963a8f658..1cd3d5e5d2 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/OggTestData.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/OggTestData.java @@ -62,1012 +62,4 @@ import com.google.android.exoplayer2.testutil.TestUtil; pageSegmentCount); } - /** - * Returns the initial two pages of bytes which by spec contain the three vorbis header packets: - * identification, comment and setup header. - */ - public static byte[] getVorbisHeaderPages() { - byte[] data = new byte[VORBIS_HEADER_PAGES.length]; - System.arraycopy(VORBIS_HEADER_PAGES, 0, data, 0, VORBIS_HEADER_PAGES.length); - return data; - } - - /** Returns a valid vorbis identification header in bytes. */ - public static byte[] getIdentificationHeaderData() { - int idHeaderStart = 28; - int idHeaderLength = 30; - byte[] idHeaderData = new byte[idHeaderLength]; - System.arraycopy(VORBIS_HEADER_PAGES, idHeaderStart, idHeaderData, 0, idHeaderLength); - return idHeaderData; - } - - /** Returns a valid vorbis comment header with 3 comments including utf8 chars in bytes. */ - public static byte[] getCommentHeaderDataUTF8() { - byte[] commentHeaderData = new byte[COMMENT_HEADER_WITH_UTF8.length]; - System.arraycopy( - COMMENT_HEADER_WITH_UTF8, 0, commentHeaderData, 0, COMMENT_HEADER_WITH_UTF8.length); - return commentHeaderData; - } - - /** Returns a valid vorbis setup header in bytes. */ - public static byte[] getSetupHeaderData() { - int setupHeaderStart = 146; - int setupHeaderLength = VORBIS_HEADER_PAGES.length - setupHeaderStart; - byte[] setupHeaderData = new byte[setupHeaderLength]; - System.arraycopy(VORBIS_HEADER_PAGES, setupHeaderStart, setupHeaderData, 0, setupHeaderLength); - return setupHeaderData; - } - - private static final byte[] COMMENT_HEADER_WITH_UTF8 = { - (byte) 0x03, (byte) 0x76, (byte) 0x6f, (byte) 0x72, // 3, v, o, r, - (byte) 0x62, (byte) 0x69, (byte) 0x73, (byte) 0x2b, // b, i, s, . - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x58, - (byte) 0x69, (byte) 0x70, (byte) 0x68, (byte) 0x2e, - (byte) 0x4f, (byte) 0x72, (byte) 0x67, (byte) 0x20, - (byte) 0x6c, (byte) 0x69, (byte) 0x62, (byte) 0x56, - (byte) 0x6f, (byte) 0x72, (byte) 0x62, (byte) 0x69, - (byte) 0x73, (byte) 0x20, (byte) 0x49, (byte) 0x20, - (byte) 0x32, (byte) 0x30, (byte) 0x31, (byte) 0x32, - (byte) 0x30, (byte) 0x32, (byte) 0x30, (byte) 0x33, - (byte) 0x20, (byte) 0x28, (byte) 0x4f, (byte) 0x6d, - (byte) 0x6e, (byte) 0x69, (byte) 0x70, (byte) 0x72, - (byte) 0x65, (byte) 0x73, (byte) 0x65, (byte) 0x6e, - (byte) 0x74, (byte) 0x29, (byte) 0x03, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x0a, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x41, (byte) 0x4c, - (byte) 0x42, (byte) 0x55, (byte) 0x4d, (byte) 0x3d, - (byte) 0xc3, (byte) 0xa4, (byte) 0xc3, (byte) 0xb6, - (byte) 0x13, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x54, (byte) 0x49, (byte) 0x54, (byte) 0x4c, - (byte) 0x45, (byte) 0x3d, (byte) 0x41, (byte) 0x20, - (byte) 0x73, (byte) 0x61, (byte) 0x6d, (byte) 0x70, - (byte) 0x6c, (byte) 0x65, (byte) 0x20, (byte) 0x73, - (byte) 0x6f, (byte) 0x6e, (byte) 0x67, (byte) 0x0d, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x41, - (byte) 0x52, (byte) 0x54, (byte) 0x49, (byte) 0x53, - (byte) 0x54, (byte) 0x3d, (byte) 0x47, (byte) 0x6f, - (byte) 0x6f, (byte) 0x67, (byte) 0x6c, (byte) 0x65, - (byte) 0x01 - }; - - // two OGG pages with 3 packets (id, comment and setup header) - // length: 3743 bytes - private static final byte[] VORBIS_HEADER_PAGES = { /* capture pattern ogg header 1 */ - (byte) 0x4f, (byte) 0x67, (byte) 0x67, (byte) 0x53, // O,g,g,S : start pos 0 - (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x5e, (byte) 0x5f, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x83, (byte) 0x36, - (byte) 0xe3, (byte) 0x49, (byte) 0x01, (byte) 0x1e, /* capture pattern vorbis id header */ - (byte) 0x01, (byte) 0x76, (byte) 0x6f, (byte) 0x72, // 1,v,o,r : start pos 28 - (byte) 0x62, (byte) 0x69, (byte) 0x73, (byte) 0x00, // b,i,s,. - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x02, - (byte) 0x22, (byte) 0x56, (byte) 0x00, (byte) 0x00, - (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, - (byte) 0x6a, (byte) 0x04, (byte) 0x01, (byte) 0x00, - (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, /* capture pattern ogg header 2 */ - (byte) 0xa9, (byte) 0x01, (byte) 0x4f, (byte) 0x67, // .,.,O,g : start pos 86 - (byte) 0x67, (byte) 0x53, (byte) 0x00, (byte) 0x00, // g,S,.,. - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x5e, (byte) 0x5f, (byte) 0x00, (byte) 0x00, - (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x69, (byte) 0xf8, (byte) 0xeb, (byte) 0xe1, - (byte) 0x10, (byte) 0x2d, (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, - (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, /* capture pattern vorbis comment header*/ - (byte) 0x1b, (byte) 0x03, (byte) 0x76, (byte) 0x6f, // .,3,v,o : start pos 101 - (byte) 0x72, (byte) 0x62, (byte) 0x69, (byte) 0x73, // r,b,i,s - (byte) 0x1d, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x58, (byte) 0x69, (byte) 0x70, (byte) 0x68, - (byte) 0x2e, (byte) 0x4f, (byte) 0x72, (byte) 0x67, - (byte) 0x20, (byte) 0x6c, (byte) 0x69, (byte) 0x62, - (byte) 0x56, (byte) 0x6f, (byte) 0x72, (byte) 0x62, - (byte) 0x69, (byte) 0x73, (byte) 0x20, (byte) 0x49, - (byte) 0x20, (byte) 0x32, (byte) 0x30, (byte) 0x30, - (byte) 0x33, (byte) 0x30, (byte) 0x39, (byte) 0x30, - (byte) 0x39, (byte) 0x00, (byte) 0x00, (byte) 0x00, /* capture pattern vorbis setup header */ - (byte) 0x00, (byte) 0x01, (byte) 0x05, (byte) 0x76, // .,.,5,v : start pos 146 - (byte) 0x6f, (byte) 0x72, (byte) 0x62, (byte) 0x69, // o,r,b,i - (byte) 0x73, (byte) 0x22, (byte) 0x42, (byte) 0x43, // s,. - (byte) 0x56, (byte) 0x01, (byte) 0x00, (byte) 0x40, - (byte) 0x00, (byte) 0x00, (byte) 0x18, (byte) 0x42, - (byte) 0x10, (byte) 0x2a, (byte) 0x05, (byte) 0xad, - (byte) 0x63, (byte) 0x8e, (byte) 0x3a, (byte) 0xc8, - (byte) 0x15, (byte) 0x21, (byte) 0x8c, (byte) 0x19, - (byte) 0xa2, (byte) 0xa0, (byte) 0x42, (byte) 0xca, - (byte) 0x29, (byte) 0xc7, (byte) 0x1d, (byte) 0x42, - (byte) 0xd0, (byte) 0x21, (byte) 0xa3, (byte) 0x24, - (byte) 0x43, (byte) 0x88, (byte) 0x3a, (byte) 0xc6, - (byte) 0x35, (byte) 0xc7, (byte) 0x18, (byte) 0x63, - (byte) 0x47, (byte) 0xb9, (byte) 0x64, (byte) 0x8a, - (byte) 0x42, (byte) 0xc9, (byte) 0x81, (byte) 0xd0, - (byte) 0x90, (byte) 0x55, (byte) 0x00, (byte) 0x00, - (byte) 0x40, (byte) 0x00, (byte) 0x00, (byte) 0xa4, - (byte) 0x1c, (byte) 0x57, (byte) 0x50, (byte) 0x72, - (byte) 0x49, (byte) 0x2d, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0xa3, (byte) 0x18, (byte) 0x57, - (byte) 0xcc, (byte) 0x71, (byte) 0xe8, (byte) 0x20, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xe5, - (byte) 0x20, (byte) 0x67, (byte) 0xcc, (byte) 0x71, - (byte) 0x09, (byte) 0x25, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0x8e, (byte) 0x39, (byte) 0xe7, - (byte) 0x92, (byte) 0x72, (byte) 0x8e, (byte) 0x31, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xa3, - (byte) 0x18, (byte) 0x57, (byte) 0x0e, (byte) 0x72, - (byte) 0x29, (byte) 0x2d, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0x81, (byte) 0x14, (byte) 0x47, - (byte) 0x8a, (byte) 0x71, (byte) 0xa7, (byte) 0x18, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xa4, - (byte) 0x1c, (byte) 0x47, (byte) 0x8a, (byte) 0x71, - (byte) 0xa8, (byte) 0x18, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0x6d, (byte) 0x31, (byte) 0xb7, - (byte) 0x92, (byte) 0x72, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xe6, - (byte) 0x20, (byte) 0x87, (byte) 0x52, (byte) 0x72, - (byte) 0xae, (byte) 0x35, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0xa4, (byte) 0x18, (byte) 0x67, - (byte) 0x0e, (byte) 0x72, (byte) 0x0b, (byte) 0x25, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xc6, - (byte) 0x20, (byte) 0x67, (byte) 0xcc, (byte) 0x71, - (byte) 0xeb, (byte) 0x20, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0x8c, (byte) 0x35, (byte) 0xb7, - (byte) 0xd4, (byte) 0x72, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xce, - (byte) 0x39, (byte) 0xe7, (byte) 0x9c, (byte) 0x73, - (byte) 0xce, (byte) 0x39, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0x8c, (byte) 0x31, (byte) 0xe7, - (byte) 0x9c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0x6e, - (byte) 0x31, (byte) 0xe7, (byte) 0x16, (byte) 0x73, - (byte) 0xae, (byte) 0x39, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0xce, (byte) 0x39, (byte) 0xe7, - (byte) 0x1c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0x20, - (byte) 0x34, (byte) 0x64, (byte) 0x15, (byte) 0x00, - (byte) 0x90, (byte) 0x00, (byte) 0x00, (byte) 0xa0, - (byte) 0xa1, (byte) 0x28, (byte) 0x8a, (byte) 0xe2, - (byte) 0x28, (byte) 0x0e, (byte) 0x10, (byte) 0x1a, - (byte) 0xb2, (byte) 0x0a, (byte) 0x00, (byte) 0xc8, - (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x40, - (byte) 0x71, (byte) 0x14, (byte) 0x47, (byte) 0x91, - (byte) 0x14, (byte) 0x4b, (byte) 0xb1, (byte) 0x1c, - (byte) 0xcb, (byte) 0xd1, (byte) 0x24, (byte) 0x0d, - (byte) 0x08, (byte) 0x0d, (byte) 0x59, (byte) 0x05, - (byte) 0x00, (byte) 0x00, (byte) 0x01, (byte) 0x00, - (byte) 0x08, (byte) 0x00, (byte) 0x00, (byte) 0xa0, - (byte) 0x48, (byte) 0x86, (byte) 0xa4, (byte) 0x48, - (byte) 0x8a, (byte) 0xa5, (byte) 0x58, (byte) 0x8e, - (byte) 0x66, (byte) 0x69, (byte) 0x9e, (byte) 0x26, - (byte) 0x7a, (byte) 0xa2, (byte) 0x28, (byte) 0x9a, - (byte) 0xa2, (byte) 0x2a, (byte) 0xab, (byte) 0xb2, - (byte) 0x69, (byte) 0xca, (byte) 0xb2, (byte) 0x2c, - (byte) 0xcb, (byte) 0xb2, (byte) 0xeb, (byte) 0xba, - (byte) 0x2e, (byte) 0x10, (byte) 0x1a, (byte) 0xb2, - (byte) 0x0a, (byte) 0x00, (byte) 0x48, (byte) 0x00, - (byte) 0x00, (byte) 0x50, (byte) 0x51, (byte) 0x14, - (byte) 0xc5, (byte) 0x70, (byte) 0x14, (byte) 0x07, - (byte) 0x08, (byte) 0x0d, (byte) 0x59, (byte) 0x05, - (byte) 0x00, (byte) 0x64, (byte) 0x00, (byte) 0x00, - (byte) 0x08, (byte) 0x60, (byte) 0x28, (byte) 0x8a, - (byte) 0xa3, (byte) 0x38, (byte) 0x8e, (byte) 0xe4, - (byte) 0x58, (byte) 0x92, (byte) 0xa5, (byte) 0x59, - (byte) 0x9e, (byte) 0x07, (byte) 0x84, (byte) 0x86, - (byte) 0xac, (byte) 0x02, (byte) 0x00, (byte) 0x80, - (byte) 0x00, (byte) 0x00, (byte) 0x04, (byte) 0x00, - (byte) 0x00, (byte) 0x50, (byte) 0x0c, (byte) 0x47, - (byte) 0xb1, (byte) 0x14, (byte) 0x4d, (byte) 0xf1, - (byte) 0x24, (byte) 0xcf, (byte) 0xf2, (byte) 0x3c, - (byte) 0xcf, (byte) 0xf3, (byte) 0x3c, (byte) 0xcf, - (byte) 0xf3, (byte) 0x3c, (byte) 0xcf, (byte) 0xf3, - (byte) 0x3c, (byte) 0xcf, (byte) 0xf3, (byte) 0x3c, - (byte) 0xcf, (byte) 0xf3, (byte) 0x3c, (byte) 0xcf, - (byte) 0xf3, (byte) 0x3c, (byte) 0x0d, (byte) 0x08, - (byte) 0x0d, (byte) 0x59, (byte) 0x05, (byte) 0x00, - (byte) 0x20, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x82, (byte) 0x28, (byte) 0x64, (byte) 0x18, - (byte) 0x03, (byte) 0x42, (byte) 0x43, (byte) 0x56, - (byte) 0x01, (byte) 0x00, (byte) 0x40, (byte) 0x00, - (byte) 0x00, (byte) 0x08, (byte) 0x21, (byte) 0x1a, - (byte) 0x19, (byte) 0x43, (byte) 0x9d, (byte) 0x52, - (byte) 0x12, (byte) 0x5c, (byte) 0x0a, (byte) 0x16, - (byte) 0x42, (byte) 0x1c, (byte) 0x11, (byte) 0x43, - (byte) 0x1d, (byte) 0x42, (byte) 0xce, (byte) 0x43, - (byte) 0xa9, (byte) 0xa5, (byte) 0x83, (byte) 0xe0, - (byte) 0x29, (byte) 0x85, (byte) 0x25, (byte) 0x63, - (byte) 0xd2, (byte) 0x53, (byte) 0xac, (byte) 0x41, - (byte) 0x08, (byte) 0x21, (byte) 0x7c, (byte) 0xef, - (byte) 0x3d, (byte) 0xf7, (byte) 0xde, (byte) 0x7b, - (byte) 0xef, (byte) 0x81, (byte) 0xd0, (byte) 0x90, - (byte) 0x55, (byte) 0x00, (byte) 0x00, (byte) 0x10, - (byte) 0x00, (byte) 0x00, (byte) 0x61, (byte) 0x14, - (byte) 0x38, (byte) 0x88, (byte) 0x81, (byte) 0xc7, - (byte) 0x24, (byte) 0x08, (byte) 0x21, (byte) 0x84, - (byte) 0x62, (byte) 0x14, (byte) 0x27, (byte) 0x44, - (byte) 0x71, (byte) 0xa6, (byte) 0x20, (byte) 0x08, - (byte) 0x21, (byte) 0x84, (byte) 0xe5, (byte) 0x24, - (byte) 0x58, (byte) 0xca, (byte) 0x79, (byte) 0xe8, - (byte) 0x24, (byte) 0x08, (byte) 0xdd, (byte) 0x83, - (byte) 0x10, (byte) 0x42, (byte) 0xb8, (byte) 0x9c, - (byte) 0x7b, (byte) 0xcb, (byte) 0xb9, (byte) 0xf7, - (byte) 0xde, (byte) 0x7b, (byte) 0x20, (byte) 0x34, - (byte) 0x64, (byte) 0x15, (byte) 0x00, (byte) 0x00, - (byte) 0x08, (byte) 0x00, (byte) 0xc0, (byte) 0x20, - (byte) 0x84, (byte) 0x10, (byte) 0x42, (byte) 0x08, - (byte) 0x21, (byte) 0x84, (byte) 0x10, (byte) 0x42, - (byte) 0x08, (byte) 0x29, (byte) 0xa4, (byte) 0x94, - (byte) 0x52, (byte) 0x48, (byte) 0x29, (byte) 0xa6, - (byte) 0x98, (byte) 0x62, (byte) 0x8a, (byte) 0x29, - (byte) 0xc7, (byte) 0x1c, (byte) 0x73, (byte) 0xcc, - (byte) 0x31, (byte) 0xc7, (byte) 0x20, (byte) 0x83, - (byte) 0x0c, (byte) 0x32, (byte) 0xe8, (byte) 0xa0, - (byte) 0x93, (byte) 0x4e, (byte) 0x3a, (byte) 0xc9, - (byte) 0xa4, (byte) 0x92, (byte) 0x4e, (byte) 0x3a, - (byte) 0xca, (byte) 0x24, (byte) 0xa3, (byte) 0x8e, - (byte) 0x52, (byte) 0x6b, (byte) 0x29, (byte) 0xb5, - (byte) 0x14, (byte) 0x53, (byte) 0x4c, (byte) 0xb1, - (byte) 0xe5, (byte) 0x16, (byte) 0x63, (byte) 0xad, - (byte) 0xb5, (byte) 0xd6, (byte) 0x9c, (byte) 0x73, - (byte) 0xaf, (byte) 0x41, (byte) 0x29, (byte) 0x63, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xc6, - (byte) 0x18, (byte) 0x63, (byte) 0x8c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x23, (byte) 0x08, - (byte) 0x0d, (byte) 0x59, (byte) 0x05, (byte) 0x00, - (byte) 0x80, (byte) 0x00, (byte) 0x00, (byte) 0x10, - (byte) 0x06, (byte) 0x19, (byte) 0x64, (byte) 0x90, - (byte) 0x41, (byte) 0x08, (byte) 0x21, (byte) 0x84, - (byte) 0x14, (byte) 0x52, (byte) 0x48, (byte) 0x29, - (byte) 0xa6, (byte) 0x98, (byte) 0x72, (byte) 0xcc, - (byte) 0x31, (byte) 0xc7, (byte) 0x1c, (byte) 0x03, - (byte) 0x42, (byte) 0x43, (byte) 0x56, (byte) 0x01, - (byte) 0x00, (byte) 0x80, (byte) 0x00, (byte) 0x00, - (byte) 0x02, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x1c, (byte) 0x45, (byte) 0x52, (byte) 0x24, - (byte) 0x47, (byte) 0x72, (byte) 0x24, (byte) 0x47, - (byte) 0x92, (byte) 0x24, (byte) 0xc9, (byte) 0x92, - (byte) 0x2c, (byte) 0x49, (byte) 0x93, (byte) 0x3c, - (byte) 0xcb, (byte) 0xb3, (byte) 0x3c, (byte) 0xcb, - (byte) 0xb3, (byte) 0x3c, (byte) 0x4d, (byte) 0xd4, - (byte) 0x44, (byte) 0x4d, (byte) 0x15, (byte) 0x55, - (byte) 0xd5, (byte) 0x55, (byte) 0x6d, (byte) 0xd7, - (byte) 0xf6, (byte) 0x6d, (byte) 0x5f, (byte) 0xf6, - (byte) 0x6d, (byte) 0xdf, (byte) 0xd5, (byte) 0x65, - (byte) 0xdf, (byte) 0xf6, (byte) 0x65, (byte) 0xdb, - (byte) 0xd5, (byte) 0x65, (byte) 0x5d, (byte) 0x96, - (byte) 0x65, (byte) 0xdd, (byte) 0xb5, (byte) 0x6d, - (byte) 0x5d, (byte) 0xd6, (byte) 0x5d, (byte) 0x5d, - (byte) 0xd7, (byte) 0x75, (byte) 0x5d, (byte) 0xd7, - (byte) 0x75, (byte) 0x5d, (byte) 0xd7, (byte) 0x75, - (byte) 0x5d, (byte) 0xd7, (byte) 0x75, (byte) 0x5d, - (byte) 0xd7, (byte) 0x75, (byte) 0x5d, (byte) 0xd7, - (byte) 0x81, (byte) 0xd0, (byte) 0x90, (byte) 0x55, - (byte) 0x00, (byte) 0x80, (byte) 0x04, (byte) 0x00, - (byte) 0x80, (byte) 0x8e, (byte) 0xe4, (byte) 0x38, - (byte) 0x8e, (byte) 0xe4, (byte) 0x38, (byte) 0x8e, - (byte) 0xe4, (byte) 0x48, (byte) 0x8e, (byte) 0xa4, - (byte) 0x48, (byte) 0x0a, (byte) 0x10, (byte) 0x1a, - (byte) 0xb2, (byte) 0x0a, (byte) 0x00, (byte) 0x90, - (byte) 0x01, (byte) 0x00, (byte) 0x10, (byte) 0x00, - (byte) 0x80, (byte) 0xa3, (byte) 0x38, (byte) 0x8a, - (byte) 0xe3, (byte) 0x48, (byte) 0x8e, (byte) 0xe4, - (byte) 0x58, (byte) 0x8e, (byte) 0x25, (byte) 0x59, - (byte) 0x92, (byte) 0x26, (byte) 0x69, (byte) 0x96, - (byte) 0x67, (byte) 0x79, (byte) 0x96, (byte) 0xa7, - (byte) 0x79, (byte) 0x9a, (byte) 0xa8, (byte) 0x89, - (byte) 0x1e, (byte) 0x10, (byte) 0x1a, (byte) 0xb2, - (byte) 0x0a, (byte) 0x00, (byte) 0x00, (byte) 0x04, - (byte) 0x00, (byte) 0x10, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x80, - (byte) 0xa2, (byte) 0x28, (byte) 0x8a, (byte) 0xa3, - (byte) 0x38, (byte) 0x8e, (byte) 0x24, (byte) 0x59, - (byte) 0x96, (byte) 0xa6, (byte) 0x69, (byte) 0x9e, - (byte) 0xa7, (byte) 0x7a, (byte) 0xa2, (byte) 0x28, - (byte) 0x9a, (byte) 0xaa, (byte) 0xaa, (byte) 0x8a, - (byte) 0xa6, (byte) 0xa9, (byte) 0xaa, (byte) 0xaa, - (byte) 0x6a, (byte) 0x9a, (byte) 0xa6, (byte) 0x69, - (byte) 0x9a, (byte) 0xa6, (byte) 0x69, (byte) 0x9a, - (byte) 0xa6, (byte) 0x69, (byte) 0x9a, (byte) 0xa6, - (byte) 0x69, (byte) 0x9a, (byte) 0xa6, (byte) 0x69, - (byte) 0x9a, (byte) 0xa6, (byte) 0x69, (byte) 0x9a, - (byte) 0xa6, (byte) 0x69, (byte) 0x9a, (byte) 0xa6, - (byte) 0x69, (byte) 0x9a, (byte) 0xa6, (byte) 0x69, - (byte) 0x9a, (byte) 0xa6, (byte) 0x69, (byte) 0x9a, - (byte) 0xa6, (byte) 0x69, (byte) 0x02, (byte) 0xa1, - (byte) 0x21, (byte) 0xab, (byte) 0x00, (byte) 0x00, - (byte) 0x09, (byte) 0x00, (byte) 0x00, (byte) 0x1d, - (byte) 0xc7, (byte) 0x71, (byte) 0x1c, (byte) 0x47, - (byte) 0x71, (byte) 0x1c, (byte) 0xc7, (byte) 0x71, - (byte) 0x24, (byte) 0x47, (byte) 0x92, (byte) 0x24, - (byte) 0x20, (byte) 0x34, (byte) 0x64, (byte) 0x15, - (byte) 0x00, (byte) 0x20, (byte) 0x03, (byte) 0x00, - (byte) 0x20, (byte) 0x00, (byte) 0x00, (byte) 0x43, - (byte) 0x51, (byte) 0x1c, (byte) 0x45, (byte) 0x72, - (byte) 0x2c, (byte) 0xc7, (byte) 0x92, (byte) 0x34, - (byte) 0x4b, (byte) 0xb3, (byte) 0x3c, (byte) 0xcb, - (byte) 0xd3, (byte) 0x44, (byte) 0xcf, (byte) 0xf4, - (byte) 0x5c, (byte) 0x51, (byte) 0x36, (byte) 0x75, - (byte) 0x53, (byte) 0x57, (byte) 0x6d, (byte) 0x20, - (byte) 0x34, (byte) 0x64, (byte) 0x15, (byte) 0x00, - (byte) 0x00, (byte) 0x08, (byte) 0x00, (byte) 0x20, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0xc7, (byte) 0x73, - (byte) 0x3c, (byte) 0xc7, (byte) 0x73, (byte) 0x3c, - (byte) 0xc9, (byte) 0x93, (byte) 0x3c, (byte) 0xcb, - (byte) 0x73, (byte) 0x3c, (byte) 0xc7, (byte) 0x93, - (byte) 0x3c, (byte) 0x49, (byte) 0xd3, (byte) 0x34, - (byte) 0x4d, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0xd3, (byte) 0x34, (byte) 0x4d, (byte) 0xd3, - (byte) 0x34, (byte) 0x4d, (byte) 0xd3, (byte) 0x34, - (byte) 0x4d, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0xd3, (byte) 0x34, (byte) 0x4d, (byte) 0xd3, - (byte) 0x34, (byte) 0x4d, (byte) 0xd3, (byte) 0x34, - (byte) 0x4d, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0xd3, (byte) 0x34, (byte) 0x4d, (byte) 0xd3, - (byte) 0x34, (byte) 0x4d, (byte) 0xd3, (byte) 0x34, - (byte) 0x4d, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0x03, (byte) 0x42, (byte) 0x43, (byte) 0x56, - (byte) 0x02, (byte) 0x00, (byte) 0x64, (byte) 0x00, - (byte) 0x00, (byte) 0x90, (byte) 0x02, (byte) 0xcf, - (byte) 0x42, (byte) 0x29, (byte) 0x2d, (byte) 0x46, - (byte) 0x02, (byte) 0x1c, (byte) 0x88, (byte) 0x98, - (byte) 0xa3, (byte) 0xd8, (byte) 0x7b, (byte) 0xef, - (byte) 0xbd, (byte) 0xf7, (byte) 0xde, (byte) 0x7b, - (byte) 0x65, (byte) 0x3c, (byte) 0x92, (byte) 0x88, - (byte) 0x49, (byte) 0xed, (byte) 0x31, (byte) 0xf4, - (byte) 0xd4, (byte) 0x31, (byte) 0x07, (byte) 0xb1, - (byte) 0x67, (byte) 0xc6, (byte) 0x23, (byte) 0x66, - (byte) 0x94, (byte) 0xa3, (byte) 0xd8, (byte) 0x29, - (byte) 0xcf, (byte) 0x1c, (byte) 0x42, (byte) 0x0c, - (byte) 0x62, (byte) 0xe8, (byte) 0x3c, (byte) 0x74, - (byte) 0x4a, (byte) 0x31, (byte) 0x88, (byte) 0x29, - (byte) 0xf5, (byte) 0x52, (byte) 0x32, (byte) 0xc6, - (byte) 0x20, (byte) 0xc6, (byte) 0xd8, (byte) 0x63, - (byte) 0x0c, (byte) 0x21, (byte) 0x94, (byte) 0x18, - (byte) 0x08, (byte) 0x0d, (byte) 0x59, (byte) 0x21, - (byte) 0x00, (byte) 0x84, (byte) 0x66, (byte) 0x00, - (byte) 0x18, (byte) 0x24, (byte) 0x09, (byte) 0x90, - (byte) 0x34, (byte) 0x0d, (byte) 0x90, (byte) 0x34, - (byte) 0x0d, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x24, (byte) 0x4f, (byte) 0x03, (byte) 0x34, - (byte) 0x51, (byte) 0x04, (byte) 0x34, (byte) 0x4f, - (byte) 0x04, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x49, (byte) 0xf3, (byte) 0x00, (byte) 0x4d, - (byte) 0xf4, (byte) 0x00, (byte) 0x4d, (byte) 0x14, - (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x90, (byte) 0x3c, (byte) 0x0d, (byte) 0xf0, - (byte) 0x44, (byte) 0x11, (byte) 0xd0, (byte) 0x44, - (byte) 0x11, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x34, (byte) 0x51, (byte) 0x04, (byte) 0x44, - (byte) 0x51, (byte) 0x05, (byte) 0x44, (byte) 0xd5, - (byte) 0x04, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x4d, (byte) 0x14, (byte) 0x01, (byte) 0x4f, - (byte) 0x15, (byte) 0x01, (byte) 0xd1, (byte) 0x54, - (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x90, (byte) 0x34, (byte) 0x0f, (byte) 0xd0, - (byte) 0x44, (byte) 0x11, (byte) 0xf0, (byte) 0x44, - (byte) 0x11, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x34, (byte) 0x51, (byte) 0x04, (byte) 0x44, - (byte) 0xd5, (byte) 0x04, (byte) 0x3c, (byte) 0x51, - (byte) 0x05, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x4d, (byte) 0x14, (byte) 0x01, (byte) 0xd1, - (byte) 0x54, (byte) 0x01, (byte) 0x51, (byte) 0x15, - (byte) 0x01, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x04, - (byte) 0x00, (byte) 0x00, (byte) 0x04, (byte) 0x38, - (byte) 0x00, (byte) 0x00, (byte) 0x04, (byte) 0x58, - (byte) 0x08, (byte) 0x85, (byte) 0x86, (byte) 0xac, - (byte) 0x08, (byte) 0x00, (byte) 0xe2, (byte) 0x04, - (byte) 0x00, (byte) 0x04, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x10, - (byte) 0x00, (byte) 0x00, (byte) 0x30, (byte) 0xe0, - (byte) 0x00, (byte) 0x00, (byte) 0x10, (byte) 0x60, - (byte) 0x42, (byte) 0x19, (byte) 0x28, (byte) 0x34, - (byte) 0x64, (byte) 0x45, (byte) 0x00, (byte) 0x10, - (byte) 0x27, (byte) 0x00, (byte) 0x60, (byte) 0x70, - (byte) 0x1c, (byte) 0xcb, (byte) 0x02, (byte) 0x00, - (byte) 0x00, (byte) 0x47, (byte) 0x92, (byte) 0x34, - (byte) 0x0d, (byte) 0x00, (byte) 0x00, (byte) 0x1c, - (byte) 0x49, (byte) 0xd2, (byte) 0x34, (byte) 0x00, - (byte) 0x00, (byte) 0xd0, (byte) 0x34, (byte) 0x4d, - (byte) 0x14, (byte) 0x01, (byte) 0x00, (byte) 0xc0, - (byte) 0xd2, (byte) 0x34, (byte) 0x51, (byte) 0x04, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x10, (byte) 0x00, (byte) 0x00, (byte) 0x30, - (byte) 0xe0, (byte) 0x00, (byte) 0x00, (byte) 0x10, - (byte) 0x60, (byte) 0x42, (byte) 0x19, (byte) 0x28, - (byte) 0x34, (byte) 0x64, (byte) 0x25, (byte) 0x00, - (byte) 0x10, (byte) 0x05, (byte) 0x00, (byte) 0x60, - (byte) 0x30, (byte) 0x14, (byte) 0x4d, (byte) 0x03, - (byte) 0x58, (byte) 0x16, (byte) 0xc0, (byte) 0xb2, - (byte) 0x00, (byte) 0x9a, (byte) 0x06, (byte) 0xd0, - (byte) 0x34, (byte) 0x80, (byte) 0xe7, (byte) 0x01, - (byte) 0x3c, (byte) 0x11, (byte) 0x60, (byte) 0x9a, - (byte) 0x00, (byte) 0x40, (byte) 0x00, (byte) 0x00, - (byte) 0x40, (byte) 0x81, (byte) 0x03, (byte) 0x00, - (byte) 0x40, (byte) 0x80, (byte) 0x0d, (byte) 0x9a, - (byte) 0x12, (byte) 0x8b, (byte) 0x03, (byte) 0x14, - (byte) 0x1a, (byte) 0xb2, (byte) 0x12, (byte) 0x00, - (byte) 0x88, (byte) 0x02, (byte) 0x00, (byte) 0x30, - (byte) 0x28, (byte) 0x8a, (byte) 0x24, (byte) 0x59, - (byte) 0x96, (byte) 0xe7, (byte) 0x41, (byte) 0xd3, - (byte) 0x34, (byte) 0x4d, (byte) 0x14, (byte) 0xa1, - (byte) 0x69, (byte) 0x9a, (byte) 0x26, (byte) 0x8a, - (byte) 0xf0, (byte) 0x3c, (byte) 0xcf, (byte) 0x13, - (byte) 0x45, (byte) 0x78, (byte) 0x9e, (byte) 0xe7, - (byte) 0x99, (byte) 0x26, (byte) 0x44, (byte) 0xd1, - (byte) 0xf3, (byte) 0x4c, (byte) 0x13, (byte) 0xa2, - (byte) 0xe8, (byte) 0x79, (byte) 0xa6, (byte) 0x09, - (byte) 0xd3, (byte) 0x14, (byte) 0x45, (byte) 0xd3, - (byte) 0x04, (byte) 0xa2, (byte) 0x68, (byte) 0x9a, - (byte) 0x02, (byte) 0x00, (byte) 0x00, (byte) 0x0a, - (byte) 0x1c, (byte) 0x00, (byte) 0x00, (byte) 0x02, - (byte) 0x6c, (byte) 0xd0, (byte) 0x94, (byte) 0x58, - (byte) 0x1c, (byte) 0xa0, (byte) 0xd0, (byte) 0x90, - (byte) 0x95, (byte) 0x00, (byte) 0x40, (byte) 0x48, - (byte) 0x00, (byte) 0x80, (byte) 0x41, (byte) 0x51, - (byte) 0x2c, (byte) 0xcb, (byte) 0xf3, (byte) 0x44, - (byte) 0x51, (byte) 0x14, (byte) 0x4d, (byte) 0x53, - (byte) 0x55, (byte) 0x5d, (byte) 0x17, (byte) 0x9a, - (byte) 0xe6, (byte) 0x79, (byte) 0xa2, (byte) 0x28, - (byte) 0x8a, (byte) 0xa6, (byte) 0xa9, (byte) 0xaa, - (byte) 0xae, (byte) 0x0b, (byte) 0x4d, (byte) 0xf3, - (byte) 0x3c, (byte) 0x51, (byte) 0x14, (byte) 0x45, - (byte) 0xd3, (byte) 0x54, (byte) 0x55, (byte) 0xd7, - (byte) 0x85, (byte) 0xe7, (byte) 0x79, (byte) 0xa2, - (byte) 0x29, (byte) 0x9a, (byte) 0xa6, (byte) 0x69, - (byte) 0xaa, (byte) 0xaa, (byte) 0xeb, (byte) 0xc2, - (byte) 0xf3, (byte) 0x44, (byte) 0xd1, (byte) 0x34, - (byte) 0x4d, (byte) 0x53, (byte) 0x55, (byte) 0x55, - (byte) 0xd7, (byte) 0x75, (byte) 0xe1, (byte) 0x79, - (byte) 0xa2, (byte) 0x68, (byte) 0x9a, (byte) 0xa6, - (byte) 0xa9, (byte) 0xaa, (byte) 0xae, (byte) 0xeb, - (byte) 0xba, (byte) 0xf0, (byte) 0x3c, (byte) 0x51, - (byte) 0x34, (byte) 0x4d, (byte) 0xd3, (byte) 0x54, - (byte) 0x55, (byte) 0xd7, (byte) 0x95, (byte) 0x65, - (byte) 0x88, (byte) 0xa2, (byte) 0x28, (byte) 0x9a, - (byte) 0xa6, (byte) 0x69, (byte) 0xaa, (byte) 0xaa, - (byte) 0xeb, (byte) 0xca, (byte) 0x32, (byte) 0x10, - (byte) 0x45, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0x55, (byte) 0x75, (byte) 0x5d, (byte) 0x59, - (byte) 0x06, (byte) 0xa2, (byte) 0x68, (byte) 0x9a, - (byte) 0xaa, (byte) 0xea, (byte) 0xba, (byte) 0xae, - (byte) 0x2b, (byte) 0xcb, (byte) 0x40, (byte) 0x14, - (byte) 0x4d, (byte) 0x53, (byte) 0x55, (byte) 0x5d, - (byte) 0xd7, (byte) 0x75, (byte) 0x65, (byte) 0x19, - (byte) 0x98, (byte) 0xa6, (byte) 0x6a, (byte) 0xaa, - (byte) 0xaa, (byte) 0xeb, (byte) 0xca, (byte) 0xb2, - (byte) 0x2c, (byte) 0x03, (byte) 0x4c, (byte) 0x53, - (byte) 0x55, (byte) 0x5d, (byte) 0x57, (byte) 0x96, - (byte) 0x65, (byte) 0x19, (byte) 0xa0, (byte) 0xaa, - (byte) 0xae, (byte) 0xeb, (byte) 0xba, (byte) 0xb2, - (byte) 0x6c, (byte) 0xdb, (byte) 0x00, (byte) 0x55, - (byte) 0x75, (byte) 0x5d, (byte) 0xd7, (byte) 0x95, - (byte) 0x65, (byte) 0xdb, (byte) 0x06, (byte) 0xb8, - (byte) 0xae, (byte) 0xeb, (byte) 0xca, (byte) 0xb2, - (byte) 0x2c, (byte) 0xdb, (byte) 0x36, (byte) 0x00, - (byte) 0xd7, (byte) 0x95, (byte) 0x65, (byte) 0x59, - (byte) 0xb6, (byte) 0x6d, (byte) 0x01, (byte) 0x00, - (byte) 0x00, (byte) 0x07, (byte) 0x0e, (byte) 0x00, - (byte) 0x00, (byte) 0x01, (byte) 0x46, (byte) 0xd0, - (byte) 0x49, (byte) 0x46, (byte) 0x95, (byte) 0x45, - (byte) 0xd8, (byte) 0x68, (byte) 0xc2, (byte) 0x85, - (byte) 0x07, (byte) 0xa0, (byte) 0xd0, (byte) 0x90, - (byte) 0x15, (byte) 0x01, (byte) 0x40, (byte) 0x14, - (byte) 0x00, (byte) 0x00, (byte) 0x60, (byte) 0x8c, - (byte) 0x52, (byte) 0x8a, (byte) 0x29, (byte) 0x65, - (byte) 0x18, (byte) 0x93, (byte) 0x50, (byte) 0x4a, - (byte) 0x09, (byte) 0x0d, (byte) 0x63, (byte) 0x52, - (byte) 0x4a, (byte) 0x2a, (byte) 0xa5, (byte) 0x92, - (byte) 0x92, (byte) 0x52, (byte) 0x4a, (byte) 0xa5, - (byte) 0x54, (byte) 0x12, (byte) 0x52, (byte) 0x4a, - (byte) 0xa9, (byte) 0x94, (byte) 0x4a, (byte) 0x4a, - (byte) 0x4a, (byte) 0x29, (byte) 0x95, (byte) 0x92, - (byte) 0x51, (byte) 0x4a, (byte) 0x29, (byte) 0xb5, - (byte) 0x96, (byte) 0x2a, (byte) 0x29, (byte) 0xa9, - (byte) 0x94, (byte) 0x94, (byte) 0x52, (byte) 0x25, - (byte) 0xa5, (byte) 0xa4, (byte) 0x92, (byte) 0x52, - (byte) 0x2a, (byte) 0x00, (byte) 0x00, (byte) 0xec, - (byte) 0xc0, (byte) 0x01, (byte) 0x00, (byte) 0xec, - (byte) 0xc0, (byte) 0x42, (byte) 0x28, (byte) 0x34, - (byte) 0x64, (byte) 0x25, (byte) 0x00, (byte) 0x90, - (byte) 0x07, (byte) 0x00, (byte) 0x40, (byte) 0x10, - (byte) 0x82, (byte) 0x14, (byte) 0x63, (byte) 0x8c, - (byte) 0x39, (byte) 0x27, (byte) 0xa5, (byte) 0x54, - (byte) 0x8a, (byte) 0x31, (byte) 0xe7, (byte) 0x9c, - (byte) 0x93, (byte) 0x52, (byte) 0x2a, (byte) 0xc5, - (byte) 0x98, (byte) 0x73, (byte) 0xce, (byte) 0x49, - (byte) 0x29, (byte) 0x19, (byte) 0x63, (byte) 0xcc, - (byte) 0x39, (byte) 0xe7, (byte) 0xa4, (byte) 0x94, - (byte) 0x8c, (byte) 0x31, (byte) 0xe6, (byte) 0x9c, - (byte) 0x73, (byte) 0x52, (byte) 0x4a, (byte) 0xc6, - (byte) 0x9c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0x29, (byte) 0x25, (byte) 0x63, (byte) 0xce, - (byte) 0x39, (byte) 0xe7, (byte) 0x9c, (byte) 0x94, - (byte) 0xd2, (byte) 0x39, (byte) 0xe7, (byte) 0x9c, - (byte) 0x83, (byte) 0x50, (byte) 0x4a, (byte) 0x29, - (byte) 0xa5, (byte) 0x73, (byte) 0xce, (byte) 0x41, - (byte) 0x28, (byte) 0xa5, (byte) 0x94, (byte) 0x12, - (byte) 0x42, (byte) 0xe7, (byte) 0x20, (byte) 0x94, - (byte) 0x52, (byte) 0x4a, (byte) 0xe9, (byte) 0x9c, - (byte) 0x73, (byte) 0x10, (byte) 0x0a, (byte) 0x00, - (byte) 0x00, (byte) 0x2a, (byte) 0x70, (byte) 0x00, - (byte) 0x00, (byte) 0x08, (byte) 0xb0, (byte) 0x51, - (byte) 0x64, (byte) 0x73, (byte) 0x82, (byte) 0x91, - (byte) 0xa0, (byte) 0x42, (byte) 0x43, (byte) 0x56, - (byte) 0x02, (byte) 0x00, (byte) 0xa9, (byte) 0x00, - (byte) 0x00, (byte) 0x06, (byte) 0xc7, (byte) 0xb1, - (byte) 0x2c, (byte) 0x4d, (byte) 0xd3, (byte) 0x34, - (byte) 0xcf, (byte) 0x13, (byte) 0x45, (byte) 0x4b, - (byte) 0x92, (byte) 0x34, (byte) 0xcf, (byte) 0x13, - (byte) 0x3d, (byte) 0x4f, (byte) 0x14, (byte) 0x4d, - (byte) 0xd5, (byte) 0x92, (byte) 0x24, (byte) 0xcf, - (byte) 0x13, (byte) 0x45, (byte) 0xcf, (byte) 0x13, - (byte) 0x4d, (byte) 0x53, (byte) 0xe5, (byte) 0x79, - (byte) 0x9e, (byte) 0x28, (byte) 0x8a, (byte) 0xa2, - (byte) 0x68, (byte) 0x9a, (byte) 0xaa, (byte) 0x4a, - (byte) 0x14, (byte) 0x45, (byte) 0x4f, (byte) 0x14, - (byte) 0x45, (byte) 0xd1, (byte) 0x34, (byte) 0x55, - (byte) 0x95, (byte) 0x2c, (byte) 0x8b, (byte) 0xa2, - (byte) 0x69, (byte) 0x9a, (byte) 0xa6, (byte) 0xaa, - (byte) 0xba, (byte) 0x2e, (byte) 0x5b, (byte) 0x16, - (byte) 0x45, (byte) 0xd3, (byte) 0x34, (byte) 0x4d, - (byte) 0x55, (byte) 0x75, (byte) 0x5d, (byte) 0x98, - (byte) 0xa6, (byte) 0x28, (byte) 0xaa, (byte) 0xaa, - (byte) 0xeb, (byte) 0xca, (byte) 0x2e, (byte) 0x4c, - (byte) 0x53, (byte) 0x14, (byte) 0x4d, (byte) 0xd3, - (byte) 0x75, (byte) 0x65, (byte) 0x19, (byte) 0xb2, - (byte) 0xad, (byte) 0x9a, (byte) 0xaa, (byte) 0xea, - (byte) 0xba, (byte) 0xb2, (byte) 0x0d, (byte) 0xdb, - (byte) 0x36, (byte) 0x4d, (byte) 0x55, (byte) 0x75, - (byte) 0x5d, (byte) 0x59, (byte) 0x06, (byte) 0xae, - (byte) 0xeb, (byte) 0xba, (byte) 0xb2, (byte) 0x6c, - (byte) 0xeb, (byte) 0xc0, (byte) 0x75, (byte) 0x5d, - (byte) 0x57, (byte) 0x96, (byte) 0x6d, (byte) 0x5d, - (byte) 0x00, (byte) 0x00, (byte) 0x78, (byte) 0x82, - (byte) 0x03, (byte) 0x00, (byte) 0x50, (byte) 0x81, - (byte) 0x0d, (byte) 0xab, (byte) 0x23, (byte) 0x9c, - (byte) 0x14, (byte) 0x8d, (byte) 0x05, (byte) 0x16, - (byte) 0x1a, (byte) 0xb2, (byte) 0x12, (byte) 0x00, - (byte) 0xc8, (byte) 0x00, (byte) 0x00, (byte) 0x20, - (byte) 0x08, (byte) 0x41, (byte) 0x48, (byte) 0x29, - (byte) 0x85, (byte) 0x90, (byte) 0x52, (byte) 0x0a, - (byte) 0x21, (byte) 0xa5, (byte) 0x14, (byte) 0x42, - (byte) 0x4a, (byte) 0x29, (byte) 0x84, (byte) 0x04, - (byte) 0x00, (byte) 0x00, (byte) 0x0c, (byte) 0x38, - (byte) 0x00, (byte) 0x00, (byte) 0x04, (byte) 0x98, - (byte) 0x50, (byte) 0x06, (byte) 0x0a, (byte) 0x0d, - (byte) 0x59, (byte) 0x09, (byte) 0x00, (byte) 0xa4, - (byte) 0x02, (byte) 0x00, (byte) 0x00, (byte) 0x10, - (byte) 0x42, (byte) 0x08, (byte) 0x21, (byte) 0x84, - (byte) 0x10, (byte) 0x42, (byte) 0x08, (byte) 0x21, - (byte) 0x84, (byte) 0x10, (byte) 0x42, (byte) 0x08, - (byte) 0x21, (byte) 0x84, (byte) 0x10, (byte) 0x42, - (byte) 0x08, (byte) 0x21, (byte) 0x84, (byte) 0x10, - (byte) 0x42, (byte) 0x08, (byte) 0x21, (byte) 0x84, - (byte) 0x10, (byte) 0x42, (byte) 0x08, (byte) 0x21, - (byte) 0x84, (byte) 0x10, (byte) 0x42, (byte) 0x08, - (byte) 0x21, (byte) 0x84, (byte) 0x10, (byte) 0x42, - (byte) 0x08, (byte) 0x21, (byte) 0x84, (byte) 0x10, - (byte) 0x42, (byte) 0x08, (byte) 0x21, (byte) 0x84, - (byte) 0x10, (byte) 0x42, (byte) 0x08, (byte) 0x21, - (byte) 0x84, (byte) 0xce, (byte) 0x39, (byte) 0xe7, - (byte) 0x9c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xce, - (byte) 0x39, (byte) 0xe7, (byte) 0x9c, (byte) 0x73, - (byte) 0xce, (byte) 0x39, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0xce, (byte) 0x39, (byte) 0xe7, - (byte) 0x9c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xce, - (byte) 0x39, (byte) 0xe7, (byte) 0x9c, (byte) 0x73, - (byte) 0xce, (byte) 0x39, (byte) 0xe7, (byte) 0x9c, - (byte) 0x73, (byte) 0xce, (byte) 0x39, (byte) 0xe7, - (byte) 0x9c, (byte) 0x73, (byte) 0xce, (byte) 0x39, - (byte) 0xe7, (byte) 0x9c, (byte) 0x73, (byte) 0xce, - (byte) 0x39, (byte) 0xe7, (byte) 0x9c, (byte) 0x73, - (byte) 0x02, (byte) 0x00, (byte) 0xb1, (byte) 0x2b, - (byte) 0x1c, (byte) 0x00, (byte) 0x76, (byte) 0x22, - (byte) 0x6c, (byte) 0x58, (byte) 0x1d, (byte) 0xe1, - (byte) 0xa4, (byte) 0x68, (byte) 0x2c, (byte) 0xb0, - (byte) 0xd0, (byte) 0x90, (byte) 0x95, (byte) 0x00, - (byte) 0x40, (byte) 0x38, (byte) 0x00, (byte) 0x00, - (byte) 0x60, (byte) 0x8c, (byte) 0x31, (byte) 0xce, - (byte) 0x59, (byte) 0xac, (byte) 0xb5, (byte) 0xd6, - (byte) 0x5a, (byte) 0x2b, (byte) 0xa5, (byte) 0x94, - (byte) 0x92, (byte) 0x50, (byte) 0x6b, (byte) 0xad, - (byte) 0xb5, (byte) 0xd6, (byte) 0x9a, (byte) 0x29, - (byte) 0xa4, (byte) 0x94, (byte) 0x84, (byte) 0x16, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xc6, - (byte) 0x98, (byte) 0x31, (byte) 0x08, (byte) 0x29, - (byte) 0xb5, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0x31, (byte) 0xc6, (byte) 0x8c, (byte) 0x39, - (byte) 0x47, (byte) 0x2d, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xb6, - (byte) 0x56, (byte) 0x4a, (byte) 0x6c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0xb1, (byte) 0xb5, (byte) 0x52, (byte) 0x62, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xc6, - (byte) 0x16, (byte) 0x5b, (byte) 0x8c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0x31, (byte) 0xb6, (byte) 0x18, (byte) 0x63, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xc6, - (byte) 0x18, (byte) 0x63, (byte) 0x8c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0x31, (byte) 0xb6, (byte) 0x18, (byte) 0x63, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x8c, (byte) 0x31, (byte) 0xc6, - (byte) 0x18, (byte) 0x63, (byte) 0x8c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0x31, (byte) 0xc6, (byte) 0x18, (byte) 0x63, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x18, - (byte) 0x63, (byte) 0x6c, (byte) 0x31, (byte) 0xc6, - (byte) 0x18, (byte) 0x63, (byte) 0x8c, (byte) 0x31, - (byte) 0xc6, (byte) 0x18, (byte) 0x63, (byte) 0x8c, - (byte) 0x31, (byte) 0xc6, (byte) 0x18, (byte) 0x63, - (byte) 0x2c, (byte) 0x00, (byte) 0xc0, (byte) 0xe4, - (byte) 0xc1, (byte) 0x01, (byte) 0x00, (byte) 0x2a, - (byte) 0xc1, (byte) 0xc6, (byte) 0x19, (byte) 0x56, - (byte) 0x92, (byte) 0xce, (byte) 0x0a, (byte) 0x47, - (byte) 0x83, (byte) 0x0b, (byte) 0x0d, (byte) 0x59, - (byte) 0x09, (byte) 0x00, (byte) 0xe4, (byte) 0x06, - (byte) 0x00, (byte) 0x00, (byte) 0xc6, (byte) 0x28, - (byte) 0xc5, (byte) 0x98, (byte) 0x63, (byte) 0xce, - (byte) 0x41, (byte) 0x08, (byte) 0xa1, (byte) 0x94, - (byte) 0x12, (byte) 0x4a, (byte) 0x49, (byte) 0xad, - (byte) 0x75, (byte) 0xce, (byte) 0x39, (byte) 0x08, - (byte) 0x21, (byte) 0x94, (byte) 0x52, (byte) 0x4a, - (byte) 0x49, (byte) 0xa9, (byte) 0xb4, (byte) 0x94, - (byte) 0x62, (byte) 0xca, (byte) 0x98, (byte) 0x73, - (byte) 0xce, (byte) 0x41, (byte) 0x08, (byte) 0xa5, - (byte) 0x94, (byte) 0x12, (byte) 0x4a, (byte) 0x49, - (byte) 0xa9, (byte) 0xa5, (byte) 0xd4, (byte) 0x39, - (byte) 0xe7, (byte) 0x20, (byte) 0x94, (byte) 0x52, - (byte) 0x4a, (byte) 0x4a, (byte) 0x29, (byte) 0xa5, - (byte) 0x94, (byte) 0x5a, (byte) 0x6a, (byte) 0xad, - (byte) 0x73, (byte) 0x10, (byte) 0x42, (byte) 0x08, - (byte) 0xa5, (byte) 0x94, (byte) 0x52, (byte) 0x4a, - (byte) 0x4a, (byte) 0x29, (byte) 0xa5, (byte) 0xd4, - (byte) 0x52, (byte) 0x08, (byte) 0x21, (byte) 0x94, - (byte) 0x52, (byte) 0x4a, (byte) 0x2a, (byte) 0x29, - (byte) 0xa5, (byte) 0x94, (byte) 0x52, (byte) 0x6b, - (byte) 0xad, (byte) 0xa5, (byte) 0x10, (byte) 0x42, - (byte) 0x28, (byte) 0xa5, (byte) 0x94, (byte) 0x94, - (byte) 0x52, (byte) 0x4a, (byte) 0x29, (byte) 0xa5, - (byte) 0xd4, (byte) 0x5a, (byte) 0x8b, (byte) 0xa1, - (byte) 0x94, (byte) 0x90, (byte) 0x4a, (byte) 0x29, - (byte) 0x25, (byte) 0xa5, (byte) 0x94, (byte) 0x52, - (byte) 0x49, (byte) 0x2d, (byte) 0xb5, (byte) 0x96, - (byte) 0x5a, (byte) 0x2a, (byte) 0xa1, (byte) 0x94, - (byte) 0x54, (byte) 0x52, (byte) 0x4a, (byte) 0x29, - (byte) 0xa5, (byte) 0x94, (byte) 0x52, (byte) 0x6b, - (byte) 0xa9, (byte) 0xb5, (byte) 0x56, (byte) 0x4a, - (byte) 0x49, (byte) 0x25, (byte) 0xa5, (byte) 0x94, - (byte) 0x52, (byte) 0x4a, (byte) 0x29, (byte) 0xa5, - (byte) 0xd4, (byte) 0x62, (byte) 0x6b, (byte) 0x29, - (byte) 0x94, (byte) 0x92, (byte) 0x52, (byte) 0x49, - (byte) 0x29, (byte) 0xb5, (byte) 0x94, (byte) 0x52, - (byte) 0x4a, (byte) 0xad, (byte) 0xc5, (byte) 0xd8, - (byte) 0x62, (byte) 0x29, (byte) 0xad, (byte) 0xa4, - (byte) 0x94, (byte) 0x52, (byte) 0x4a, (byte) 0x29, - (byte) 0xa5, (byte) 0xd6, (byte) 0x52, (byte) 0x6c, - (byte) 0xad, (byte) 0xb5, (byte) 0xd8, (byte) 0x52, - (byte) 0x4a, (byte) 0x29, (byte) 0xa5, (byte) 0x96, - (byte) 0x5a, (byte) 0x4a, (byte) 0x29, (byte) 0xb5, - (byte) 0x16, (byte) 0x5b, (byte) 0x6a, (byte) 0x2d, - (byte) 0xa5, (byte) 0x94, (byte) 0x52, (byte) 0x4b, - (byte) 0x29, (byte) 0xa5, (byte) 0x96, (byte) 0x52, - (byte) 0x4b, (byte) 0x2d, (byte) 0xc6, (byte) 0xd6, - (byte) 0x5a, (byte) 0x4b, (byte) 0x29, (byte) 0xa5, - (byte) 0xd4, (byte) 0x52, (byte) 0x6a, (byte) 0xa9, - (byte) 0xa5, (byte) 0x94, (byte) 0x52, (byte) 0x6c, - (byte) 0xad, (byte) 0xb5, (byte) 0x98, (byte) 0x52, - (byte) 0x6a, (byte) 0x2d, (byte) 0xa5, (byte) 0xd4, - (byte) 0x52, (byte) 0x6b, (byte) 0x2d, (byte) 0xb5, - (byte) 0xd8, (byte) 0x52, (byte) 0x6a, (byte) 0x2d, - (byte) 0xb5, (byte) 0x94, (byte) 0x52, (byte) 0x6b, - (byte) 0xa9, (byte) 0xa5, (byte) 0x94, (byte) 0x5a, - (byte) 0x6b, (byte) 0x2d, (byte) 0xb6, (byte) 0xd8, - (byte) 0x5a, (byte) 0x6b, (byte) 0x29, (byte) 0xb5, - (byte) 0x94, (byte) 0x52, (byte) 0x4a, (byte) 0xa9, - (byte) 0xb5, (byte) 0x16, (byte) 0x5b, (byte) 0x8a, - (byte) 0xb1, (byte) 0xb5, (byte) 0xd4, (byte) 0x4a, - (byte) 0x4a, (byte) 0x29, (byte) 0xb5, (byte) 0xd4, - (byte) 0x5a, (byte) 0x6a, (byte) 0x2d, (byte) 0xb6, - (byte) 0x16, (byte) 0x5b, (byte) 0x6b, (byte) 0xad, - (byte) 0xa5, (byte) 0xd6, (byte) 0x5a, (byte) 0x6a, - (byte) 0x29, (byte) 0xa5, (byte) 0x16, (byte) 0x5b, - (byte) 0x8c, (byte) 0x31, (byte) 0xc6, (byte) 0x16, - (byte) 0x63, (byte) 0x6b, (byte) 0x31, (byte) 0xa5, - (byte) 0x94, (byte) 0x52, (byte) 0x4b, (byte) 0xa9, - (byte) 0xa5, (byte) 0x02, (byte) 0x00, (byte) 0x80, - (byte) 0x0e, (byte) 0x1c, (byte) 0x00, (byte) 0x00, - (byte) 0x02, (byte) 0x8c, (byte) 0xa8, (byte) 0xb4, - (byte) 0x10, (byte) 0x3b, (byte) 0xcd, (byte) 0xb8, - (byte) 0xf2, (byte) 0x08, (byte) 0x1c, (byte) 0x51, - (byte) 0xc8, (byte) 0x30, (byte) 0x01, (byte) 0x15, - (byte) 0x1a, (byte) 0xb2, (byte) 0x12, (byte) 0x00, - (byte) 0x20, (byte) 0x03, (byte) 0x00, (byte) 0x20, - (byte) 0x90, (byte) 0x69, (byte) 0x92, (byte) 0x39, - (byte) 0x49, (byte) 0xa9, (byte) 0x11, (byte) 0x26, - (byte) 0x39, (byte) 0xc5, (byte) 0xa0, (byte) 0x94, - (byte) 0xe6, (byte) 0x9c, (byte) 0x53, (byte) 0x4a, - (byte) 0x29, (byte) 0xa5, (byte) 0x34, (byte) 0x44, - (byte) 0x96, (byte) 0x64, (byte) 0x90, (byte) 0x62, - (byte) 0x50, (byte) 0x1d, (byte) 0x99, (byte) 0x8c, - (byte) 0x39, (byte) 0x49, (byte) 0x39, (byte) 0x43, - (byte) 0xa4, (byte) 0x31, (byte) 0xa4, (byte) 0x20, - (byte) 0xf5, (byte) 0x4c, (byte) 0x91, (byte) 0xc7, - (byte) 0x94, (byte) 0x62, (byte) 0x10, (byte) 0x43, - (byte) 0x48, (byte) 0x2a, (byte) 0x74, (byte) 0x8a, - (byte) 0x39, (byte) 0x6c, (byte) 0x35, (byte) 0xf9, - (byte) 0x58, (byte) 0x42, (byte) 0x07, (byte) 0xb1, - (byte) 0x06, (byte) 0x65, (byte) 0x8c, (byte) 0x70, - (byte) 0x29, (byte) 0xc5, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x08, (byte) 0x02, (byte) 0x00, - (byte) 0x04, (byte) 0x84, (byte) 0x04, (byte) 0x00, - (byte) 0x18, (byte) 0x20, (byte) 0x28, (byte) 0x98, - (byte) 0x01, (byte) 0x00, (byte) 0x06, (byte) 0x07, - (byte) 0x08, (byte) 0x23, (byte) 0x07, (byte) 0x02, - (byte) 0x1d, (byte) 0x01, (byte) 0x04, (byte) 0x0e, - (byte) 0x6d, (byte) 0x00, (byte) 0x80, (byte) 0x81, - (byte) 0x08, (byte) 0x99, (byte) 0x09, (byte) 0x0c, - (byte) 0x0a, (byte) 0xa1, (byte) 0xc1, (byte) 0x41, - (byte) 0x26, (byte) 0x00, (byte) 0x3c, (byte) 0x40, - (byte) 0x44, (byte) 0x48, (byte) 0x05, (byte) 0x00, - (byte) 0x89, (byte) 0x09, (byte) 0x8a, (byte) 0xd2, - (byte) 0x85, (byte) 0x2e, (byte) 0x08, (byte) 0x21, - (byte) 0x82, (byte) 0x74, (byte) 0x11, (byte) 0x64, - (byte) 0xf1, (byte) 0xc0, (byte) 0x85, (byte) 0x13, - (byte) 0x37, (byte) 0x9e, (byte) 0xb8, (byte) 0xe1, - (byte) 0x84, (byte) 0x0e, (byte) 0x6d, (byte) 0x20, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0xf0, - (byte) 0x01, (byte) 0x00, (byte) 0x90, (byte) 0x50, - (byte) 0x00, (byte) 0x11, (byte) 0x11, (byte) 0xd1, - (byte) 0xcc, (byte) 0x55, (byte) 0x58, (byte) 0x5c, - (byte) 0x60, (byte) 0x64, (byte) 0x68, (byte) 0x6c, - (byte) 0x70, (byte) 0x74, (byte) 0x78, (byte) 0x7c, - (byte) 0x80, (byte) 0x84, (byte) 0x08, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x10, (byte) 0x00, (byte) 0x7c, (byte) 0x00, - (byte) 0x00, (byte) 0x24, (byte) 0x22, (byte) 0x40, - (byte) 0x44, (byte) 0x44, (byte) 0x34, (byte) 0x73, - (byte) 0x15, (byte) 0x16, (byte) 0x17, (byte) 0x18, - (byte) 0x19, (byte) 0x1a, (byte) 0x1b, (byte) 0x1c, - (byte) 0x1d, (byte) 0x1e, (byte) 0x1f, (byte) 0x20, - (byte) 0x21, (byte) 0x01, (byte) 0x00, (byte) 0x80, - (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x00, (byte) 0x20, (byte) 0x80, - (byte) 0x00, (byte) 0x04, (byte) 0x04, (byte) 0x04, - (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x02, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x04, (byte) 0x04 - }; } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisReaderTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisReaderTest.java index 587d8a75a7..5895116e7d 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisReaderTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/ogg/VorbisReaderTest.java @@ -19,11 +19,13 @@ import static com.google.android.exoplayer2.extractor.ogg.VorbisReader.readBits; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.fail; +import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ogg.VorbisReader.VorbisSetup; import com.google.android.exoplayer2.testutil.FakeExtractorInput; import com.google.android.exoplayer2.testutil.FakeExtractorInput.SimulatedIOException; +import com.google.android.exoplayer2.testutil.TestUtil; import com.google.android.exoplayer2.util.ParsableByteArray; import java.io.IOException; import org.junit.Test; @@ -55,7 +57,11 @@ public final class VorbisReaderTest { @Test public void testReadSetupHeadersWithIOExceptions() throws IOException, InterruptedException { - byte[] data = OggTestData.getVorbisHeaderPages(); + // initial two pages of bytes which by spec contain the three Vorbis header packets: + // identification, comment and setup header. + byte[] data = + TestUtil.getByteArray( + ApplicationProvider.getApplicationContext(), "binary/ogg/vorbis_header_pages"); ExtractorInput input = new FakeExtractorInput.Builder().setData(data).setSimulateIOErrors(true) .setSimulateUnknownLength(true).setSimulatePartialReads(true).build(); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java b/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java index 72a80161f2..d3d3e53458 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java @@ -35,7 +35,18 @@ public final class FlacStreamMetadataTest { commentsList.add("Artist=Singer"); Metadata metadata = - new FlacStreamMetadata(0, 0, 0, 0, 0, 0, 0, 0, commentsList, new ArrayList<>()).metadata; + new FlacStreamMetadata( + /* minBlockSizeSamples= */ 0, + /* maxBlockSizeSamples= */ 0, + /* minFrameSize= */ 0, + /* maxFrameSize= */ 0, + /* sampleRate= */ 0, + /* channels= */ 0, + /* bitsPerSample= */ 0, + /* totalSamples= */ 0, + commentsList, + /* pictureFrames= */ new ArrayList<>()) + .getMetadataCopyWithAppendedEntriesFrom(/* other= */ null); assertThat(metadata.length()).isEqualTo(2); VorbisComment commentFrame = (VorbisComment) metadata.get(0); @@ -51,9 +62,20 @@ public final class FlacStreamMetadataTest { ArrayList commentsList = new ArrayList<>(); Metadata metadata = - new FlacStreamMetadata(0, 0, 0, 0, 0, 0, 0, 0, commentsList, new ArrayList<>()).metadata; + new FlacStreamMetadata( + /* minBlockSizeSamples= */ 0, + /* maxBlockSizeSamples= */ 0, + /* minFrameSize= */ 0, + /* maxFrameSize= */ 0, + /* sampleRate= */ 0, + /* channels= */ 0, + /* bitsPerSample= */ 0, + /* totalSamples= */ 0, + commentsList, + /* pictureFrames= */ new ArrayList<>()) + .getMetadataCopyWithAppendedEntriesFrom(/* other= */ null); - assertThat(metadata).isNull(); + assertThat(metadata.length()).isEqualTo(0); } @Test @@ -62,7 +84,18 @@ public final class FlacStreamMetadataTest { commentsList.add("Title=So=ng"); Metadata metadata = - new FlacStreamMetadata(0, 0, 0, 0, 0, 0, 0, 0, commentsList, new ArrayList<>()).metadata; + new FlacStreamMetadata( + /* minBlockSizeSamples= */ 0, + /* maxBlockSizeSamples= */ 0, + /* minFrameSize= */ 0, + /* maxFrameSize= */ 0, + /* sampleRate= */ 0, + /* channels= */ 0, + /* bitsPerSample= */ 0, + /* totalSamples= */ 0, + commentsList, + /* pictureFrames= */ new ArrayList<>()) + .getMetadataCopyWithAppendedEntriesFrom(/* other= */ null); assertThat(metadata.length()).isEqualTo(1); VorbisComment commentFrame = (VorbisComment) metadata.get(0); @@ -77,7 +110,18 @@ public final class FlacStreamMetadataTest { commentsList.add("Artist=Singer"); Metadata metadata = - new FlacStreamMetadata(0, 0, 0, 0, 0, 0, 0, 0, commentsList, new ArrayList<>()).metadata; + new FlacStreamMetadata( + /* minBlockSizeSamples= */ 0, + /* maxBlockSizeSamples= */ 0, + /* minFrameSize= */ 0, + /* maxFrameSize= */ 0, + /* sampleRate= */ 0, + /* channels= */ 0, + /* bitsPerSample= */ 0, + /* totalSamples= */ 0, + commentsList, + /* pictureFrames= */ new ArrayList<>()) + .getMetadataCopyWithAppendedEntriesFrom(/* other= */ null); assertThat(metadata.length()).isEqualTo(1); VorbisComment commentFrame = (VorbisComment) metadata.get(0); diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java index 1ca4f1fb18..1e71e0a316 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java @@ -152,6 +152,7 @@ public final class ExtractorAsserts { assertOutput(factory.create(), file, data, context, false, false, false, false); } + // TODO: Assert format metadata [Internal ref: b/144771011]. /** * Asserts that {@code extractor} consumes {@code sampleFile} successfully and its output equals * to a prerecorded output dump file with the name {@code sampleFile} + "{@value From 9fec58a2ef6722e58f3ac8b8f2181f0cfba2c07b Mon Sep 17 00:00:00 2001 From: ibaker Date: Fri, 22 Nov 2019 12:21:57 +0000 Subject: [PATCH 032/368] Add SSA test file to the demo app I wrote this myself PiperOrigin-RevId: 281942685 --- demos/main/src/main/assets/media.exolist.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/demos/main/src/main/assets/media.exolist.json b/demos/main/src/main/assets/media.exolist.json index 8550377ddf..4375bdf3a7 100644 --- a/demos/main/src/main/assets/media.exolist.json +++ b/demos/main/src/main/assets/media.exolist.json @@ -600,6 +600,13 @@ "subtitle_uri": "https://storage.googleapis.com/exoplayer-test-media-1/ttml/netflix_ttml_sample.xml", "subtitle_mime_type": "application/ttml+xml", "subtitle_language": "en" + }, + { + "name": "SSA/ASS position & alignment", + "uri": "https://storage.googleapis.com/exoplayer-test-media-1/gen-3/screens/dash-vod-single-segment/video-avc-baseline-480.mp4", + "subtitle_uri": "https://storage.googleapis.com/exoplayer-test-media-1/ssa/test-subs-position.ass", + "subtitle_mime_type": "text/x-ssa", + "subtitle_language": "en" } ] } From 630992d05ba9957653b9eff372b0966a01be529b Mon Sep 17 00:00:00 2001 From: kimvde Date: Tue, 3 Dec 2019 15:51:44 +0000 Subject: [PATCH 033/368] Allow no output frame holder BinarySearchSeeker PiperOrigin-RevId: 283544187 --- .../ext/flac/FlacBinarySearchSeekerTest.java | 17 +++++--- .../ext/flac/FlacBinarySearchSeeker.java | 28 ++++++++++--- .../exoplayer2/ext/flac/FlacExtractor.java | 28 ++++++++----- .../extractor/BinarySearchSeeker.java | 39 ++----------------- .../extractor/ts/PsBinarySearchSeeker.java | 3 +- .../exoplayer2/extractor/ts/PsExtractor.java | 3 +- .../extractor/ts/TsBinarySearchSeeker.java | 3 +- .../exoplayer2/extractor/ts/TsExtractor.java | 3 +- 8 files changed, 60 insertions(+), 64 deletions(-) diff --git a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeekerTest.java b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeekerTest.java index 025fdfd209..a18202f4e2 100644 --- a/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeekerTest.java +++ b/extensions/flac/src/androidTest/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeekerTest.java @@ -20,10 +20,12 @@ import static org.junit.Assert.fail; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.google.android.exoplayer2.ext.flac.FlacBinarySearchSeeker.OutputFrameHolder; import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.testutil.FakeExtractorInput; import com.google.android.exoplayer2.testutil.TestUtil; import java.io.IOException; +import java.nio.ByteBuffer; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -47,19 +49,20 @@ public final class FlacBinarySearchSeekerTest { throws IOException, FlacDecoderException, InterruptedException { byte[] data = TestUtil.getByteArray(ApplicationProvider.getApplicationContext(), NOSEEKTABLE_FLAC); - FakeExtractorInput input = new FakeExtractorInput.Builder().setData(data).build(); FlacDecoderJni decoderJni = new FlacDecoderJni(); decoderJni.setData(input); + OutputFrameHolder outputFrameHolder = new OutputFrameHolder(ByteBuffer.allocateDirect(0)); FlacBinarySearchSeeker seeker = new FlacBinarySearchSeeker( decoderJni.decodeStreamMetadata(), /* firstFramePosition= */ 0, data.length, - decoderJni); - + decoderJni, + outputFrameHolder); SeekMap seekMap = seeker.getSeekMap(); + assertThat(seekMap).isNotNull(); assertThat(seekMap.getDurationUs()).isEqualTo(DURATION_US); assertThat(seekMap.isSeekable()).isTrue(); @@ -70,18 +73,20 @@ public final class FlacBinarySearchSeekerTest { throws IOException, FlacDecoderException, InterruptedException { byte[] data = TestUtil.getByteArray(ApplicationProvider.getApplicationContext(), NOSEEKTABLE_FLAC); - FakeExtractorInput input = new FakeExtractorInput.Builder().setData(data).build(); FlacDecoderJni decoderJni = new FlacDecoderJni(); decoderJni.setData(input); + OutputFrameHolder outputFrameHolder = new OutputFrameHolder(ByteBuffer.allocateDirect(0)); + FlacBinarySearchSeeker seeker = new FlacBinarySearchSeeker( decoderJni.decodeStreamMetadata(), /* firstFramePosition= */ 0, data.length, - decoderJni); - + decoderJni, + outputFrameHolder); seeker.setSeekTargetUs(/* timeUs= */ 1000); + assertThat(seeker.isSeeking()).isTrue(); } } diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java index 08f179152e..74c3e73791 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacBinarySearchSeeker.java @@ -31,16 +31,33 @@ import java.nio.ByteBuffer; */ /* package */ final class FlacBinarySearchSeeker extends BinarySearchSeeker { + /** + * Holds a frame extracted from a stream, together with the time stamp of the frame in + * microseconds. + */ + public static final class OutputFrameHolder { + + public final ByteBuffer byteBuffer; + public long timeUs; + + /** Constructs an instance, wrapping the given byte buffer. */ + public OutputFrameHolder(ByteBuffer outputByteBuffer) { + this.timeUs = 0; + this.byteBuffer = outputByteBuffer; + } + } + private final FlacDecoderJni decoderJni; public FlacBinarySearchSeeker( FlacStreamMetadata streamMetadata, long firstFramePosition, long inputLength, - FlacDecoderJni decoderJni) { + FlacDecoderJni decoderJni, + OutputFrameHolder outputFrameHolder) { super( new FlacSeekTimestampConverter(streamMetadata), - new FlacTimestampSeeker(decoderJni), + new FlacTimestampSeeker(decoderJni, outputFrameHolder), streamMetadata.getDurationUs(), /* floorTimePosition= */ 0, /* ceilingTimePosition= */ streamMetadata.totalSamples, @@ -63,14 +80,15 @@ import java.nio.ByteBuffer; private static final class FlacTimestampSeeker implements TimestampSeeker { private final FlacDecoderJni decoderJni; + private final OutputFrameHolder outputFrameHolder; - private FlacTimestampSeeker(FlacDecoderJni decoderJni) { + private FlacTimestampSeeker(FlacDecoderJni decoderJni, OutputFrameHolder outputFrameHolder) { this.decoderJni = decoderJni; + this.outputFrameHolder = outputFrameHolder; } @Override - public TimestampSearchResult searchForTimestamp( - ExtractorInput input, long targetSampleIndex, OutputFrameHolder outputFrameHolder) + public TimestampSearchResult searchForTimestamp(ExtractorInput input, long targetSampleIndex) throws IOException, InterruptedException { ByteBuffer outputBuffer = outputFrameHolder.byteBuffer; long searchPosition = input.getPosition(); diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index 6ea099064e..7c69a93fc9 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -21,7 +21,7 @@ import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; -import com.google.android.exoplayer2.extractor.BinarySearchSeeker.OutputFrameHolder; +import com.google.android.exoplayer2.ext.flac.FlacBinarySearchSeeker.OutputFrameHolder; import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ExtractorOutput; @@ -190,11 +190,12 @@ public final class FlacExtractor implements Extractor { return; } + FlacDecoderJni flacDecoderJni = decoderJni; FlacStreamMetadata streamMetadata; try { - streamMetadata = decoderJni.decodeStreamMetadata(); + streamMetadata = flacDecoderJni.decodeStreamMetadata(); } catch (IOException e) { - decoderJni.reset(/* newPosition= */ 0); + flacDecoderJni.reset(/* newPosition= */ 0); input.setRetryPosition(/* position= */ 0, e); throw e; } @@ -202,12 +203,17 @@ public final class FlacExtractor implements Extractor { streamMetadataDecoded = true; if (this.streamMetadata == null) { this.streamMetadata = streamMetadata; - binarySearchSeeker = - outputSeekMap(decoderJni, streamMetadata, input.getLength(), extractorOutput); - Metadata metadata = streamMetadata.getMetadataCopyWithAppendedEntriesFrom(id3Metadata); - outputFormat(streamMetadata, metadata, trackOutput); outputBuffer.reset(streamMetadata.getMaxDecodedFrameSize()); outputFrameHolder = new OutputFrameHolder(ByteBuffer.wrap(outputBuffer.data)); + binarySearchSeeker = + outputSeekMap( + flacDecoderJni, + streamMetadata, + input.getLength(), + extractorOutput, + outputFrameHolder); + Metadata metadata = streamMetadata.getMetadataCopyWithAppendedEntriesFrom(id3Metadata); + outputFormat(streamMetadata, metadata, trackOutput); } } @@ -219,7 +225,7 @@ public final class FlacExtractor implements Extractor { OutputFrameHolder outputFrameHolder, TrackOutput trackOutput) throws InterruptedException, IOException { - int seekResult = binarySearchSeeker.handlePendingSeek(input, seekPosition, outputFrameHolder); + int seekResult = binarySearchSeeker.handlePendingSeek(input, seekPosition); ByteBuffer outputByteBuffer = outputFrameHolder.byteBuffer; if (seekResult == RESULT_CONTINUE && outputByteBuffer.limit() > 0) { outputSample(outputBuffer, outputByteBuffer.limit(), outputFrameHolder.timeUs, trackOutput); @@ -236,7 +242,8 @@ public final class FlacExtractor implements Extractor { FlacDecoderJni decoderJni, FlacStreamMetadata streamMetadata, long streamLength, - ExtractorOutput output) { + ExtractorOutput output, + OutputFrameHolder outputFrameHolder) { boolean haveSeekTable = decoderJni.getSeekPoints(/* timeUs= */ 0) != null; FlacBinarySearchSeeker binarySearchSeeker = null; SeekMap seekMap; @@ -245,7 +252,8 @@ public final class FlacExtractor implements Extractor { } else if (streamLength != C.LENGTH_UNSET) { long firstFramePosition = decoderJni.getDecodePosition(); binarySearchSeeker = - new FlacBinarySearchSeeker(streamMetadata, firstFramePosition, streamLength, decoderJni); + new FlacBinarySearchSeeker( + streamMetadata, firstFramePosition, streamLength, decoderJni, outputFrameHolder); seekMap = binarySearchSeeker.getSeekMap(); } else { seekMap = new SeekMap.Unseekable(streamMetadata.getDurationUs()); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java index 06d3ed603e..0d823fa31d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java @@ -24,7 +24,6 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.nio.ByteBuffer; /** * A seeker that supports seeking within a stream by searching for the target frame using binary @@ -48,38 +47,17 @@ public abstract class BinarySearchSeeker { * * @param input The {@link ExtractorInput} from which data should be peeked. * @param targetTimestamp The target timestamp. - * @param outputFrameHolder If {@link TimestampSearchResult#TYPE_TARGET_TIMESTAMP_FOUND} is - * returned, this holder may be updated to hold the extracted frame that contains the target - * frame/sample associated with the target timestamp. * @return A {@link TimestampSearchResult} that describes the result of the search. * @throws IOException If an error occurred reading from the input. * @throws InterruptedException If the thread was interrupted. */ - TimestampSearchResult searchForTimestamp( - ExtractorInput input, long targetTimestamp, OutputFrameHolder outputFrameHolder) + TimestampSearchResult searchForTimestamp(ExtractorInput input, long targetTimestamp) throws IOException, InterruptedException; /** Called when a seek operation finishes. */ default void onSeekFinished() {} } - /** - * Holds a frame extracted from a stream, together with the time stamp of the frame in - * microseconds. - */ - public static final class OutputFrameHolder { - - public final ByteBuffer byteBuffer; - - public long timeUs; - - /** Constructs an instance, wrapping the given byte buffer. */ - public OutputFrameHolder(ByteBuffer outputByteBuffer) { - this.timeUs = 0; - this.byteBuffer = outputByteBuffer; - } - } - /** * A {@link SeekTimestampConverter} implementation that returns the seek time itself as the * timestamp for a seek time position. @@ -189,15 +167,11 @@ public abstract class BinarySearchSeeker { * @param input The {@link ExtractorInput} from which data should be read. * @param seekPositionHolder If {@link Extractor#RESULT_SEEK} is returned, this holder is updated * to hold the position of the required seek. - * @param outputFrameHolder If {@link Extractor#RESULT_CONTINUE} is returned, this holder may be - * updated to hold the extracted frame that contains the target sample. The caller needs to - * check the byte buffer limit to see if an extracted frame is available. * @return One of the {@code RESULT_} values defined in {@link Extractor}. * @throws IOException If an error occurred reading from the input. * @throws InterruptedException If the thread was interrupted. */ - public int handlePendingSeek( - ExtractorInput input, PositionHolder seekPositionHolder, OutputFrameHolder outputFrameHolder) + public int handlePendingSeek(ExtractorInput input, PositionHolder seekPositionHolder) throws InterruptedException, IOException { TimestampSeeker timestampSeeker = Assertions.checkNotNull(this.timestampSeeker); while (true) { @@ -217,8 +191,7 @@ public abstract class BinarySearchSeeker { input.resetPeekPosition(); TimestampSearchResult timestampSearchResult = - timestampSeeker.searchForTimestamp( - input, seekOperationParams.getTargetTimePosition(), outputFrameHolder); + timestampSeeker.searchForTimestamp(input, seekOperationParams.getTargetTimePosition()); switch (timestampSearchResult.type) { case TimestampSearchResult.TYPE_POSITION_OVERESTIMATED: @@ -419,7 +392,7 @@ public abstract class BinarySearchSeeker { /** * Represents possible search results for {@link - * TimestampSeeker#searchForTimestamp(ExtractorInput, long, OutputFrameHolder)}. + * TimestampSeeker#searchForTimestamp(ExtractorInput, long)}. */ public static final class TimestampSearchResult { @@ -495,10 +468,6 @@ public abstract class BinarySearchSeeker { /** * Returns a result to signal that the target timestamp has been found at {@code * resultBytePosition}, and the seek operation can stop. - * - *

    Note that when this value is returned from {@link - * TimestampSeeker#searchForTimestamp(ExtractorInput, long, OutputFrameHolder)}, the {@link - * OutputFrameHolder} may be updated to hold the target frame as an optimization. */ public static TimestampSearchResult targetFoundResult(long resultBytePosition) { return new TimestampSearchResult( diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsBinarySearchSeeker.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsBinarySearchSeeker.java index 4efd38b7eb..c4f53ba176 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsBinarySearchSeeker.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsBinarySearchSeeker.java @@ -69,8 +69,7 @@ import java.io.IOException; } @Override - public TimestampSearchResult searchForTimestamp( - ExtractorInput input, long targetTimestamp, OutputFrameHolder outputFrameHolder) + public TimestampSearchResult searchForTimestamp(ExtractorInput input, long targetTimestamp) throws IOException, InterruptedException { long inputPosition = input.getPosition(); int bytesToSearch = (int) Math.min(TIMESTAMP_SEARCH_BYTES, input.getLength() - inputPosition); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsExtractor.java index f453a9cc43..fec108fd5f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/PsExtractor.java @@ -168,8 +168,7 @@ public final class PsExtractor implements Extractor { } maybeOutputSeekMap(inputLength); if (psBinarySearchSeeker != null && psBinarySearchSeeker.isSeeking()) { - return psBinarySearchSeeker.handlePendingSeek( - input, seekPosition, /* outputFrameHolder= */ null); + return psBinarySearchSeeker.handlePendingSeek(input, seekPosition); } input.resetPeekPosition(); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsBinarySearchSeeker.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsBinarySearchSeeker.java index ea2519d2e9..a627c00ba2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsBinarySearchSeeker.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsBinarySearchSeeker.java @@ -73,8 +73,7 @@ import java.io.IOException; } @Override - public TimestampSearchResult searchForTimestamp( - ExtractorInput input, long targetTimestamp, OutputFrameHolder outputFrameHolder) + public TimestampSearchResult searchForTimestamp(ExtractorInput input, long targetTimestamp) throws IOException, InterruptedException { long inputPosition = input.getPosition(); int bytesToSearch = (int) Math.min(TIMESTAMP_SEARCH_BYTES, input.getLength() - inputPosition); diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java index 04dd7df385..2cd7398d7c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java @@ -268,8 +268,7 @@ public final class TsExtractor implements Extractor { } if (tsBinarySearchSeeker != null && tsBinarySearchSeeker.isSeeking()) { - return tsBinarySearchSeeker.handlePendingSeek( - input, seekPosition, /* outputFrameHolder= */ null); + return tsBinarySearchSeeker.handlePendingSeek(input, seekPosition); } } From 9c23888f1c686278a648e7551bd8271827ae45c2 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 3 Dec 2019 16:34:24 +0000 Subject: [PATCH 034/368] Don't try to track buffersInCodec with tunneling PiperOrigin-RevId: 283551324 --- .../exoplayer2/video/MediaCodecVideoRenderer.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index 57c3ab13fa..3625369c56 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -767,7 +767,11 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { @CallSuper @Override protected void onQueueInputBuffer(DecoderInputBuffer buffer) { - buffersInCodecCount++; + // In tunneling mode the device may do frame rate conversion, so in general we can't keep track + // of the number of buffers in the codec. + if (!tunneling) { + buffersInCodecCount++; + } lastInputTimeUs = Math.max(buffer.timeUs, lastInputTimeUs); if (Util.SDK_INT < 23 && tunneling) { // In tunneled mode before API 23 we don't have a way to know when the buffer is output, so @@ -1012,7 +1016,9 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { @CallSuper @Override protected void onProcessedOutputBuffer(long presentationTimeUs) { - buffersInCodecCount--; + if (!tunneling) { + buffersInCodecCount--; + } while (pendingOutputStreamOffsetCount != 0 && presentationTimeUs >= pendingOutputStreamSwitchTimesUs[0]) { outputStreamOffsetUs = pendingOutputStreamOffsetsUs[0]; From 9974670cc7ed0c908d3a5507424a0af6d04c7eb5 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 4 Dec 2019 19:18:56 +0000 Subject: [PATCH 035/368] Make DownloadHelper pass DrmSessionManager to MediaSources PiperOrigin-RevId: 283795201 --- .../exoplayer2/demo/PlayerActivity.java | 13 ++++- .../exoplayer2/offline/DownloadHelper.java | 49 ++++++++++++++++--- .../source/ExtractorMediaSource.java | 7 +++ .../exoplayer2/source/MediaSourceFactory.java | 11 +++++ .../source/ProgressiveMediaSource.java | 29 +++++------ .../source/dash/DashMediaSource.java | 29 +++++------ .../exoplayer2/source/hls/HlsMediaSource.java | 29 +++++------ .../source/smoothstreaming/SsMediaSource.java | 29 +++++------ 8 files changed, 131 insertions(+), 65 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 2f8d0045d3..11a4b7216b 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -615,10 +615,21 @@ public class PlayerActivity extends AppCompatActivity } MediaSourceFactory adMediaSourceFactory = new MediaSourceFactory() { + + private DrmSessionManager drmSessionManager = + DrmSessionManager.getDummyDrmSessionManager(); + + @Override + @SuppressWarnings("unchecked") // Safe upcasting. + public MediaSourceFactory setDrmSessionManager(DrmSessionManager drmSessionManager) { + this.drmSessionManager = (DrmSessionManager) drmSessionManager; + return this; + } + @Override public MediaSource createMediaSource(Uri uri) { return PlayerActivity.this.createLeafMediaSource( - uri, /* extension=*/ null, DrmSessionManager.getDummyDrmSessionManager()); + uri, /* extension=*/ null, drmSessionManager); } @Override diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index c585c79b76..b2641552c0 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -263,9 +263,13 @@ public final class DownloadHelper { uri, /* cacheKey= */ null, createMediaSourceInternal( - DASH_FACTORY_CONSTRUCTOR, uri, dataSourceFactory, /* streamKeys= */ null), + DASH_FACTORY_CONSTRUCTOR, + uri, + dataSourceFactory, + drmSessionManager, + /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, drmSessionManager)); + Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); } /** @deprecated Use {@link #forHls(Context, Uri, Factory, RenderersFactory)} */ @@ -329,9 +333,13 @@ public final class DownloadHelper { uri, /* cacheKey= */ null, createMediaSourceInternal( - HLS_FACTORY_CONSTRUCTOR, uri, dataSourceFactory, /* streamKeys= */ null), + HLS_FACTORY_CONSTRUCTOR, + uri, + dataSourceFactory, + drmSessionManager, + /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, drmSessionManager)); + Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); } /** @deprecated Use {@link #forSmoothStreaming(Context, Uri, Factory, RenderersFactory)} */ @@ -395,9 +403,24 @@ public final class DownloadHelper { uri, /* cacheKey= */ null, createMediaSourceInternal( - SS_FACTORY_CONSTRUCTOR, uri, dataSourceFactory, /* streamKeys= */ null), + SS_FACTORY_CONSTRUCTOR, + uri, + dataSourceFactory, + drmSessionManager, + /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, drmSessionManager)); + Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); + } + + /** + * Equivalent to {@link #createMediaSource(DownloadRequest, Factory, DrmSessionManager) + * createMediaSource(downloadRequest, dataSourceFactory, + * DrmSessionManager.getDummyDrmSessionManager())}. + */ + public static MediaSource createMediaSource( + DownloadRequest downloadRequest, DataSource.Factory dataSourceFactory) { + return createMediaSource( + downloadRequest, dataSourceFactory, DrmSessionManager.getDummyDrmSessionManager()); } /** @@ -409,7 +432,9 @@ public final class DownloadHelper { * @return A MediaSource which only contains the tracks defined in {@code downloadRequest}. */ public static MediaSource createMediaSource( - DownloadRequest downloadRequest, DataSource.Factory dataSourceFactory) { + DownloadRequest downloadRequest, + DataSource.Factory dataSourceFactory, + DrmSessionManager drmSessionManager) { @Nullable Constructor constructor; switch (downloadRequest.type) { case DownloadRequest.TYPE_DASH: @@ -428,7 +453,11 @@ public final class DownloadHelper { throw new IllegalStateException("Unsupported type: " + downloadRequest.type); } return createMediaSourceInternal( - constructor, downloadRequest.uri, dataSourceFactory, downloadRequest.streamKeys); + constructor, + downloadRequest.uri, + dataSourceFactory, + drmSessionManager, + downloadRequest.streamKeys); } private final String downloadType; @@ -888,12 +917,16 @@ public final class DownloadHelper { @Nullable Constructor constructor, Uri uri, Factory dataSourceFactory, + @Nullable DrmSessionManager drmSessionManager, @Nullable List streamKeys) { if (constructor == null) { throw new IllegalStateException("Module missing to create media source."); } try { MediaSourceFactory factory = constructor.newInstance(dataSourceFactory); + if (drmSessionManager != null) { + factory.setDrmSessionManager(drmSessionManager); + } if (streamKeys != null) { factory.setStreamKeys(streamKeys); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java index 060027fee7..830a62a884 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ExtractorMediaSource.java @@ -179,6 +179,13 @@ public final class ExtractorMediaSource extends CompositeMediaSource { return this; } + /** @deprecated Use {@link ProgressiveMediaSource.Factory#setDrmSessionManager} instead. */ + @Override + @Deprecated + public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { + throw new UnsupportedOperationException(); + } + /** * Returns a new {@link ExtractorMediaSource} using the current parameters. * diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSourceFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSourceFactory.java index c53abd1235..201f241d59 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSourceFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/MediaSourceFactory.java @@ -17,6 +17,8 @@ package com.google.android.exoplayer2.source; import android.net.Uri; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.drm.DrmSession; +import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.offline.StreamKey; import java.util.List; @@ -34,6 +36,15 @@ public interface MediaSourceFactory { return this; } + /** + * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. + * + * @param drmSessionManager The {@link DrmSessionManager}. + * @return This factory, for convenience. + * @throws IllegalStateException If one of the {@code create} methods has already been called. + */ + MediaSourceFactory setDrmSessionManager(DrmSessionManager drmSessionManager); + /** * Creates a new {@link MediaSource} with the specified {@code uri}. * diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java index c88972da62..f05b576acb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java @@ -132,20 +132,6 @@ public final class ProgressiveMediaSource extends BaseMediaSource return this; } - /** - * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The - * default value is {@link DrmSessionManager#DUMMY}. - * - * @param drmSessionManager The {@link DrmSessionManager}. - * @return This factory, for convenience. - * @throws IllegalStateException If one of the {@code create} methods has already been called. - */ - public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { - Assertions.checkState(!isCreateCalled); - this.drmSessionManager = drmSessionManager; - return this; - } - /** * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. @@ -177,6 +163,21 @@ public final class ProgressiveMediaSource extends BaseMediaSource return this; } + /** + * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The + * default value is {@link DrmSessionManager#DUMMY}. + * + * @param drmSessionManager The {@link DrmSessionManager}. + * @return This factory, for convenience. + * @throws IllegalStateException If one of the {@code create} methods has already been called. + */ + @Override + public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { + Assertions.checkState(!isCreateCalled); + this.drmSessionManager = drmSessionManager; + return this; + } + /** * Returns a new {@link ProgressiveMediaSource} using the current parameters. * diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index 3f179d0e7e..dfcd62b8b1 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -136,20 +136,6 @@ public final class DashMediaSource extends BaseMediaSource { return this; } - /** - * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The - * default value is {@link DrmSessionManager#DUMMY}. - * - * @param drmSessionManager The {@link DrmSessionManager}. - * @return This factory, for convenience. - * @throws IllegalStateException If one of the {@code create} methods has already been called. - */ - public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { - Assertions.checkState(!isCreateCalled); - this.drmSessionManager = drmSessionManager; - return this; - } - /** * Sets the minimum number of times to retry if a loading error occurs. See {@link * #setLoadErrorHandlingPolicy} for the default value. @@ -310,6 +296,21 @@ public final class DashMediaSource extends BaseMediaSource { return mediaSource; } + /** + * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The + * default value is {@link DrmSessionManager#DUMMY}. + * + * @param drmSessionManager The {@link DrmSessionManager}. + * @return This factory, for convenience. + * @throws IllegalStateException If one of the {@code create} methods has already been called. + */ + @Override + public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { + Assertions.checkState(!isCreateCalled); + this.drmSessionManager = drmSessionManager; + return this; + } + /** * Returns a new {@link DashMediaSource} using the current parameters. * diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java index db52fa1c02..16dedb6c21 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java @@ -160,20 +160,6 @@ public final class HlsMediaSource extends BaseMediaSource return this; } - /** - * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The - * default value is {@link DrmSessionManager#DUMMY}. - * - * @param drmSessionManager The {@link DrmSessionManager}. - * @return This factory, for convenience. - * @throws IllegalStateException If one of the {@code create} methods has already been called. - */ - public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { - Assertions.checkState(!isCreateCalled); - this.drmSessionManager = drmSessionManager; - return this; - } - /** * Sets the {@link LoadErrorHandlingPolicy}. The default value is created by calling {@link * DefaultLoadErrorHandlingPolicy#DefaultLoadErrorHandlingPolicy()}. @@ -326,6 +312,21 @@ public final class HlsMediaSource extends BaseMediaSource return mediaSource; } + /** + * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The + * default value is {@link DrmSessionManager#DUMMY}. + * + * @param drmSessionManager The {@link DrmSessionManager}. + * @return This factory, for convenience. + * @throws IllegalStateException If one of the {@code create} methods has already been called. + */ + @Override + public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { + Assertions.checkState(!isCreateCalled); + this.drmSessionManager = drmSessionManager; + return this; + } + /** * Returns a new {@link HlsMediaSource} using the current parameters. * diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java index 4c05353186..8cc848dfa4 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java @@ -121,20 +121,6 @@ public final class SsMediaSource extends BaseMediaSource return this; } - /** - * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The - * default value is {@link DrmSessionManager#DUMMY}. - * - * @param drmSessionManager The {@link DrmSessionManager}. - * @return This factory, for convenience. - * @throws IllegalStateException If one of the {@code create} methods has already been called. - */ - public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { - Assertions.checkState(!isCreateCalled); - this.drmSessionManager = drmSessionManager; - return this; - } - /** * Sets the minimum number of times to retry if a loading error occurs. See {@link * #setLoadErrorHandlingPolicy} for the default value. @@ -276,6 +262,21 @@ public final class SsMediaSource extends BaseMediaSource return mediaSource; } + /** + * Sets the {@link DrmSessionManager} to use for acquiring {@link DrmSession DrmSessions}. The + * default value is {@link DrmSessionManager#DUMMY}. + * + * @param drmSessionManager The {@link DrmSessionManager}. + * @return This factory, for convenience. + * @throws IllegalStateException If one of the {@code create} methods has already been called. + */ + @Override + public Factory setDrmSessionManager(DrmSessionManager drmSessionManager) { + Assertions.checkState(!isCreateCalled); + this.drmSessionManager = drmSessionManager; + return this; + } + /** * Returns a new {@link SsMediaSource} using the current parameters. * From 14897fb6dfffe7c99fb9150d4bcf5e89b3057303 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Wed, 4 Dec 2019 19:21:55 +0000 Subject: [PATCH 036/368] Invert the ownership scheme between SampleQueue and SampleMetadataQueue Saves around 200 lines of code. High level overview: - Rename SampleQueue to SampleDataQueue. - Rename SampleMetadataQueue to SampleQueue. This CL should not introduce behavior changes. The only significant changes in synchronization should be: + Add synchronized keyword to isReady. - Seems to be necessary. + Add synchronized keyword to SampleQueue.sampleMetadata. - Before this change, SampleQueue.sampleMetadata could acquire the SampleMetadataQueue lock three times in a single method call. Other miscellaneous improvements: + Put all private methods at the bottom. + Move release() to the right category. PiperOrigin-RevId: 283795844 --- .../exoplayer2/source/SampleDataQueue.java | 466 +++++++ .../source/SampleMetadataQueue.java | 721 ----------- .../exoplayer2/source/SampleQueue.java | 1071 +++++++++-------- 3 files changed, 1039 insertions(+), 1219 deletions(-) create mode 100644 library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java delete mode 100644 library/core/src/main/java/com/google/android/exoplayer2/source/SampleMetadataQueue.java diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java new file mode 100644 index 0000000000..68761cef19 --- /dev/null +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java @@ -0,0 +1,466 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.android.exoplayer2.source; + +import androidx.annotation.Nullable; +import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.decoder.DecoderInputBuffer; +import com.google.android.exoplayer2.extractor.ExtractorInput; +import com.google.android.exoplayer2.extractor.TrackOutput.CryptoData; +import com.google.android.exoplayer2.source.SampleQueue.SampleExtrasHolder; +import com.google.android.exoplayer2.upstream.Allocation; +import com.google.android.exoplayer2.upstream.Allocator; +import com.google.android.exoplayer2.util.ParsableByteArray; +import java.io.EOFException; +import java.io.IOException; +import java.nio.ByteBuffer; + +/** A queue of media sample data. */ +/* package */ class SampleDataQueue { + + private static final int INITIAL_SCRATCH_SIZE = 32; + + private final Allocator allocator; + private final int allocationLength; + private final ParsableByteArray scratch; + + // References into the linked list of allocations. + private AllocationNode firstAllocationNode; + private AllocationNode readAllocationNode; + private AllocationNode writeAllocationNode; + + // Accessed only by the loading thread (or the consuming thread when there is no loading thread). + private long totalBytesWritten; + + public SampleDataQueue(Allocator allocator) { + this.allocator = allocator; + allocationLength = allocator.getIndividualAllocationLength(); + scratch = new ParsableByteArray(INITIAL_SCRATCH_SIZE); + firstAllocationNode = new AllocationNode(/* startPosition= */ 0, allocationLength); + readAllocationNode = firstAllocationNode; + writeAllocationNode = firstAllocationNode; + } + + // Called by the consuming thread, but only when there is no loading thread. + + /** Clears all sample data. */ + public void reset() { + clearAllocationNodes(firstAllocationNode); + firstAllocationNode = new AllocationNode(0, allocationLength); + readAllocationNode = firstAllocationNode; + writeAllocationNode = firstAllocationNode; + totalBytesWritten = 0; + allocator.trim(); + } + + /** + * Discards sample data bytes from the write side of the queue. + * + * @param totalBytesWritten The reduced total number of bytes written after the samples have been + * discarded, or 0 if the queue is now empty. + */ + public void discardUpstreamSampleBytes(long totalBytesWritten) { + this.totalBytesWritten = totalBytesWritten; + if (this.totalBytesWritten == 0 + || this.totalBytesWritten == firstAllocationNode.startPosition) { + clearAllocationNodes(firstAllocationNode); + firstAllocationNode = new AllocationNode(this.totalBytesWritten, allocationLength); + readAllocationNode = firstAllocationNode; + writeAllocationNode = firstAllocationNode; + } else { + // Find the last node containing at least 1 byte of data that we need to keep. + AllocationNode lastNodeToKeep = firstAllocationNode; + while (this.totalBytesWritten > lastNodeToKeep.endPosition) { + lastNodeToKeep = lastNodeToKeep.next; + } + // Discard all subsequent nodes. + AllocationNode firstNodeToDiscard = lastNodeToKeep.next; + clearAllocationNodes(firstNodeToDiscard); + // Reset the successor of the last node to be an uninitialized node. + lastNodeToKeep.next = new AllocationNode(lastNodeToKeep.endPosition, allocationLength); + // Update writeAllocationNode and readAllocationNode as necessary. + writeAllocationNode = + this.totalBytesWritten == lastNodeToKeep.endPosition + ? lastNodeToKeep.next + : lastNodeToKeep; + if (readAllocationNode == firstNodeToDiscard) { + readAllocationNode = lastNodeToKeep.next; + } + } + } + + // Called by the consuming thread. + + /** Rewinds the read position to the first sample in the queue. */ + public void rewind() { + readAllocationNode = firstAllocationNode; + } + + /** + * Reads data from the rolling buffer to populate a decoder input buffer. + * + * @param buffer The buffer to populate. + * @param extrasHolder The extras holder whose offset should be read and subsequently adjusted. + */ + public void readToBuffer(DecoderInputBuffer buffer, SampleExtrasHolder extrasHolder) { + // Read encryption data if the sample is encrypted. + if (buffer.isEncrypted()) { + readEncryptionData(buffer, extrasHolder); + } + // Read sample data, extracting supplemental data into a separate buffer if needed. + if (buffer.hasSupplementalData()) { + // If there is supplemental data, the sample data is prefixed by its size. + scratch.reset(4); + readData(extrasHolder.offset, scratch.data, 4); + int sampleSize = scratch.readUnsignedIntToInt(); + extrasHolder.offset += 4; + extrasHolder.size -= 4; + + // Write the sample data. + buffer.ensureSpaceForWrite(sampleSize); + readData(extrasHolder.offset, buffer.data, sampleSize); + extrasHolder.offset += sampleSize; + extrasHolder.size -= sampleSize; + + // Write the remaining data as supplemental data. + buffer.resetSupplementalData(extrasHolder.size); + readData(extrasHolder.offset, buffer.supplementalData, extrasHolder.size); + } else { + // Write the sample data. + buffer.ensureSpaceForWrite(extrasHolder.size); + readData(extrasHolder.offset, buffer.data, extrasHolder.size); + } + } + + /** + * Advances the read position to the specified absolute position. + * + * @param absolutePosition The new absolute read position. May be {@link C#POSITION_UNSET}, in + * which case calling this method is a no-op. + */ + public void discardDownstreamTo(long absolutePosition) { + if (absolutePosition == C.POSITION_UNSET) { + return; + } + while (absolutePosition >= firstAllocationNode.endPosition) { + // Advance firstAllocationNode to the specified absolute position. Also clear nodes that are + // advanced past, and return their underlying allocations to the allocator. + allocator.release(firstAllocationNode.allocation); + firstAllocationNode = firstAllocationNode.clear(); + } + if (readAllocationNode.startPosition < firstAllocationNode.startPosition) { + // We discarded the node referenced by readAllocationNode. We need to advance it to the first + // remaining node. + readAllocationNode = firstAllocationNode; + } + } + + // Called by the loading thread. + + public long getTotalBytesWritten() { + return totalBytesWritten; + } + + public int sampleData(ExtractorInput input, int length, boolean allowEndOfInput) + throws IOException, InterruptedException { + length = preAppend(length); + int bytesAppended = + input.read( + writeAllocationNode.allocation.data, + writeAllocationNode.translateOffset(totalBytesWritten), + length); + if (bytesAppended == C.RESULT_END_OF_INPUT) { + if (allowEndOfInput) { + return C.RESULT_END_OF_INPUT; + } + throw new EOFException(); + } + postAppend(bytesAppended); + return bytesAppended; + } + + public void sampleData(ParsableByteArray buffer, int length) { + while (length > 0) { + int bytesAppended = preAppend(length); + buffer.readBytes( + writeAllocationNode.allocation.data, + writeAllocationNode.translateOffset(totalBytesWritten), + bytesAppended); + length -= bytesAppended; + postAppend(bytesAppended); + } + } + + // Private methods. + + /** + * Reads encryption data for the current sample. + * + *

    The encryption data is written into {@link DecoderInputBuffer#cryptoInfo}, and {@link + * SampleExtrasHolder#size} is adjusted to subtract the number of bytes that were read. The same + * value is added to {@link SampleExtrasHolder#offset}. + * + * @param buffer The buffer into which the encryption data should be written. + * @param extrasHolder The extras holder whose offset should be read and subsequently adjusted. + */ + private void readEncryptionData(DecoderInputBuffer buffer, SampleExtrasHolder extrasHolder) { + long offset = extrasHolder.offset; + + // Read the signal byte. + scratch.reset(1); + readData(offset, scratch.data, 1); + offset++; + byte signalByte = scratch.data[0]; + boolean subsampleEncryption = (signalByte & 0x80) != 0; + int ivSize = signalByte & 0x7F; + + // Read the initialization vector. + if (buffer.cryptoInfo.iv == null) { + buffer.cryptoInfo.iv = new byte[16]; + } + readData(offset, buffer.cryptoInfo.iv, ivSize); + offset += ivSize; + + // Read the subsample count, if present. + int subsampleCount; + if (subsampleEncryption) { + scratch.reset(2); + readData(offset, scratch.data, 2); + offset += 2; + subsampleCount = scratch.readUnsignedShort(); + } else { + subsampleCount = 1; + } + + // Write the clear and encrypted subsample sizes. + int[] clearDataSizes = buffer.cryptoInfo.numBytesOfClearData; + if (clearDataSizes == null || clearDataSizes.length < subsampleCount) { + clearDataSizes = new int[subsampleCount]; + } + int[] encryptedDataSizes = buffer.cryptoInfo.numBytesOfEncryptedData; + if (encryptedDataSizes == null || encryptedDataSizes.length < subsampleCount) { + encryptedDataSizes = new int[subsampleCount]; + } + if (subsampleEncryption) { + int subsampleDataLength = 6 * subsampleCount; + scratch.reset(subsampleDataLength); + readData(offset, scratch.data, subsampleDataLength); + offset += subsampleDataLength; + scratch.setPosition(0); + for (int i = 0; i < subsampleCount; i++) { + clearDataSizes[i] = scratch.readUnsignedShort(); + encryptedDataSizes[i] = scratch.readUnsignedIntToInt(); + } + } else { + clearDataSizes[0] = 0; + encryptedDataSizes[0] = extrasHolder.size - (int) (offset - extrasHolder.offset); + } + + // Populate the cryptoInfo. + CryptoData cryptoData = extrasHolder.cryptoData; + buffer.cryptoInfo.set( + subsampleCount, + clearDataSizes, + encryptedDataSizes, + cryptoData.encryptionKey, + buffer.cryptoInfo.iv, + cryptoData.cryptoMode, + cryptoData.encryptedBlocks, + cryptoData.clearBlocks); + + // Adjust the offset and size to take into account the bytes read. + int bytesRead = (int) (offset - extrasHolder.offset); + extrasHolder.offset += bytesRead; + extrasHolder.size -= bytesRead; + } + + /** + * Reads data from the front of the rolling buffer. + * + * @param absolutePosition The absolute position from which data should be read. + * @param target The buffer into which data should be written. + * @param length The number of bytes to read. + */ + private void readData(long absolutePosition, ByteBuffer target, int length) { + advanceReadTo(absolutePosition); + int remaining = length; + while (remaining > 0) { + int toCopy = Math.min(remaining, (int) (readAllocationNode.endPosition - absolutePosition)); + Allocation allocation = readAllocationNode.allocation; + target.put(allocation.data, readAllocationNode.translateOffset(absolutePosition), toCopy); + remaining -= toCopy; + absolutePosition += toCopy; + if (absolutePosition == readAllocationNode.endPosition) { + readAllocationNode = readAllocationNode.next; + } + } + } + + /** + * Reads data from the front of the rolling buffer. + * + * @param absolutePosition The absolute position from which data should be read. + * @param target The array into which data should be written. + * @param length The number of bytes to read. + */ + private void readData(long absolutePosition, byte[] target, int length) { + advanceReadTo(absolutePosition); + int remaining = length; + while (remaining > 0) { + int toCopy = Math.min(remaining, (int) (readAllocationNode.endPosition - absolutePosition)); + Allocation allocation = readAllocationNode.allocation; + System.arraycopy( + allocation.data, + readAllocationNode.translateOffset(absolutePosition), + target, + length - remaining, + toCopy); + remaining -= toCopy; + absolutePosition += toCopy; + if (absolutePosition == readAllocationNode.endPosition) { + readAllocationNode = readAllocationNode.next; + } + } + } + + /** + * Advances the read position to the specified absolute position. + * + * @param absolutePosition The position to which {@link #readAllocationNode} should be advanced. + */ + private void advanceReadTo(long absolutePosition) { + while (absolutePosition >= readAllocationNode.endPosition) { + readAllocationNode = readAllocationNode.next; + } + } + + /** + * Clears allocation nodes starting from {@code fromNode}. + * + * @param fromNode The node from which to clear. + */ + private void clearAllocationNodes(AllocationNode fromNode) { + if (!fromNode.wasInitialized) { + return; + } + // Bulk release allocations for performance (it's significantly faster when using + // DefaultAllocator because the allocator's lock only needs to be acquired and released once) + // [Internal: See b/29542039]. + int allocationCount = + (writeAllocationNode.wasInitialized ? 1 : 0) + + ((int) (writeAllocationNode.startPosition - fromNode.startPosition) + / allocationLength); + Allocation[] allocationsToRelease = new Allocation[allocationCount]; + AllocationNode currentNode = fromNode; + for (int i = 0; i < allocationsToRelease.length; i++) { + allocationsToRelease[i] = currentNode.allocation; + currentNode = currentNode.clear(); + } + allocator.release(allocationsToRelease); + } + + /** + * Called before writing sample data to {@link #writeAllocationNode}. May cause {@link + * #writeAllocationNode} to be initialized. + * + * @param length The number of bytes that the caller wishes to write. + * @return The number of bytes that the caller is permitted to write, which may be less than + * {@code length}. + */ + private int preAppend(int length) { + if (!writeAllocationNode.wasInitialized) { + writeAllocationNode.initialize( + allocator.allocate(), + new AllocationNode(writeAllocationNode.endPosition, allocationLength)); + } + return Math.min(length, (int) (writeAllocationNode.endPosition - totalBytesWritten)); + } + + /** + * Called after writing sample data. May cause {@link #writeAllocationNode} to be advanced. + * + * @param length The number of bytes that were written. + */ + private void postAppend(int length) { + totalBytesWritten += length; + if (totalBytesWritten == writeAllocationNode.endPosition) { + writeAllocationNode = writeAllocationNode.next; + } + } + + /** A node in a linked list of {@link Allocation}s held by the output. */ + private static final class AllocationNode { + + /** The absolute position of the start of the data (inclusive). */ + public final long startPosition; + /** The absolute position of the end of the data (exclusive). */ + public final long endPosition; + /** Whether the node has been initialized. Remains true after {@link #clear()}. */ + public boolean wasInitialized; + /** The {@link Allocation}, or {@code null} if the node is not initialized. */ + @Nullable public Allocation allocation; + /** + * The next {@link AllocationNode} in the list, or {@code null} if the node has not been + * initialized. Remains set after {@link #clear()}. + */ + @Nullable public AllocationNode next; + + /** + * @param startPosition See {@link #startPosition}. + * @param allocationLength The length of the {@link Allocation} with which this node will be + * initialized. + */ + public AllocationNode(long startPosition, int allocationLength) { + this.startPosition = startPosition; + this.endPosition = startPosition + allocationLength; + } + + /** + * Initializes the node. + * + * @param allocation The node's {@link Allocation}. + * @param next The next {@link AllocationNode}. + */ + public void initialize(Allocation allocation, AllocationNode next) { + this.allocation = allocation; + this.next = next; + wasInitialized = true; + } + + /** + * Gets the offset into the {@link #allocation}'s {@link Allocation#data} that corresponds to + * the specified absolute position. + * + * @param absolutePosition The absolute position. + * @return The corresponding offset into the allocation's data. + */ + public int translateOffset(long absolutePosition) { + return (int) (absolutePosition - startPosition) + allocation.offset; + } + + /** + * Clears {@link #allocation} and {@link #next}. + * + * @return The cleared next {@link AllocationNode}. + */ + public AllocationNode clear() { + allocation = null; + AllocationNode temp = next; + next = null; + return temp; + } + } +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleMetadataQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleMetadataQueue.java deleted file mode 100644 index bb578ddec7..0000000000 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleMetadataQueue.java +++ /dev/null @@ -1,721 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.android.exoplayer2.source; - -import android.os.Looper; -import androidx.annotation.Nullable; -import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.Format; -import com.google.android.exoplayer2.FormatHolder; -import com.google.android.exoplayer2.decoder.DecoderInputBuffer; -import com.google.android.exoplayer2.drm.DrmInitData; -import com.google.android.exoplayer2.drm.DrmSession; -import com.google.android.exoplayer2.drm.DrmSessionManager; -import com.google.android.exoplayer2.extractor.TrackOutput.CryptoData; -import com.google.android.exoplayer2.util.Assertions; -import com.google.android.exoplayer2.util.MimeTypes; -import com.google.android.exoplayer2.util.Util; -import java.io.IOException; - -/** - * A queue of metadata describing the contents of a media buffer. - */ -/* package */ final class SampleMetadataQueue { - - /** - * A holder for sample metadata not held by {@link DecoderInputBuffer}. - */ - public static final class SampleExtrasHolder { - - public int size; - public long offset; - public CryptoData cryptoData; - - } - - private static final int SAMPLE_CAPACITY_INCREMENT = 1000; - - private final DrmSessionManager drmSessionManager; - - @Nullable private Format downstreamFormat; - @Nullable private DrmSession currentDrmSession; - - private int capacity; - private int[] sourceIds; - private long[] offsets; - private int[] sizes; - private int[] flags; - private long[] timesUs; - private CryptoData[] cryptoDatas; - private Format[] formats; - - private int length; - private int absoluteFirstIndex; - private int relativeFirstIndex; - private int readPosition; - - private long largestDiscardedTimestampUs; - private long largestQueuedTimestampUs; - private boolean isLastSampleQueued; - private boolean upstreamKeyframeRequired; - private boolean upstreamFormatRequired; - private Format upstreamFormat; - private Format upstreamCommittedFormat; - private int upstreamSourceId; - - public SampleMetadataQueue(DrmSessionManager drmSessionManager) { - this.drmSessionManager = drmSessionManager; - capacity = SAMPLE_CAPACITY_INCREMENT; - sourceIds = new int[capacity]; - offsets = new long[capacity]; - timesUs = new long[capacity]; - flags = new int[capacity]; - sizes = new int[capacity]; - cryptoDatas = new CryptoData[capacity]; - formats = new Format[capacity]; - largestDiscardedTimestampUs = Long.MIN_VALUE; - largestQueuedTimestampUs = Long.MIN_VALUE; - upstreamFormatRequired = true; - upstreamKeyframeRequired = true; - } - - // Called by the consuming thread, but only when there is no loading thread. - - /** - * Clears all sample metadata from the queue. - * - * @param resetUpstreamFormat Whether the upstream format should be cleared. If set to false, - * samples queued after the reset (and before a subsequent call to {@link #format(Format)}) - * are assumed to have the current upstream format. If set to true, {@link #format(Format)} - * must be called after the reset before any more samples can be queued. - */ - public void reset(boolean resetUpstreamFormat) { - length = 0; - absoluteFirstIndex = 0; - relativeFirstIndex = 0; - readPosition = 0; - upstreamKeyframeRequired = true; - largestDiscardedTimestampUs = Long.MIN_VALUE; - largestQueuedTimestampUs = Long.MIN_VALUE; - isLastSampleQueued = false; - upstreamCommittedFormat = null; - if (resetUpstreamFormat) { - upstreamFormat = null; - upstreamFormatRequired = true; - } - } - - /** - * Returns the current absolute write index. - */ - public int getWriteIndex() { - return absoluteFirstIndex + length; - } - - /** - * Discards samples from the write side of the queue. - * - * @param discardFromIndex The absolute index of the first sample to be discarded. - * @return The reduced total number of bytes written after the samples have been discarded, or 0 - * if the queue is now empty. - */ - public long discardUpstreamSamples(int discardFromIndex) { - int discardCount = getWriteIndex() - discardFromIndex; - Assertions.checkArgument(0 <= discardCount && discardCount <= (length - readPosition)); - length -= discardCount; - largestQueuedTimestampUs = Math.max(largestDiscardedTimestampUs, getLargestTimestamp(length)); - isLastSampleQueued = discardCount == 0 && isLastSampleQueued; - if (length == 0) { - return 0; - } else { - int relativeLastWriteIndex = getRelativeIndex(length - 1); - return offsets[relativeLastWriteIndex] + sizes[relativeLastWriteIndex]; - } - } - - public void sourceId(int sourceId) { - upstreamSourceId = sourceId; - } - - // Called by the consuming thread. - - /** - * Throws an error that's preventing data from being read. Does nothing if no such error exists. - * - * @throws IOException The underlying error. - */ - public void maybeThrowError() throws IOException { - // TODO: Avoid throwing if the DRM error is not preventing a read operation. - if (currentDrmSession != null && currentDrmSession.getState() == DrmSession.STATE_ERROR) { - throw Assertions.checkNotNull(currentDrmSession.getError()); - } - } - - /** Releases any owned {@link DrmSession} references. */ - public void releaseDrmSessionReferences() { - if (currentDrmSession != null) { - currentDrmSession.release(); - currentDrmSession = null; - // Clear downstream format to avoid violating the assumption that downstreamFormat.drmInitData - // != null implies currentSession != null - downstreamFormat = null; - } - } - - /** Returns the current absolute start index. */ - public int getFirstIndex() { - return absoluteFirstIndex; - } - - /** - * Returns the current absolute read index. - */ - public int getReadIndex() { - return absoluteFirstIndex + readPosition; - } - - /** - * Peeks the source id of the next sample to be read, or the current upstream source id if the - * queue is empty or if the read position is at the end of the queue. - * - * @return The source id. - */ - public synchronized int peekSourceId() { - int relativeReadIndex = getRelativeIndex(readPosition); - return hasNextSample() ? sourceIds[relativeReadIndex] : upstreamSourceId; - } - - /** - * Returns the upstream {@link Format} in which samples are being queued. - */ - public synchronized Format getUpstreamFormat() { - return upstreamFormatRequired ? null : upstreamFormat; - } - - /** - * Returns the largest sample timestamp that has been queued since the last call to - * {@link #reset(boolean)}. - *

    - * Samples that were discarded by calling {@link #discardUpstreamSamples(int)} are not - * considered as having been queued. Samples that were dequeued from the front of the queue are - * considered as having been queued. - * - * @return The largest sample timestamp that has been queued, or {@link Long#MIN_VALUE} if no - * samples have been queued. - */ - public synchronized long getLargestQueuedTimestampUs() { - return largestQueuedTimestampUs; - } - - /** - * Returns whether the last sample of the stream has knowingly been queued. A return value of - * {@code false} means that the last sample had not been queued or that it's unknown whether the - * last sample has been queued. - * - *

    Samples that were discarded by calling {@link #discardUpstreamSamples(int)} are not - * considered as having been queued. Samples that were dequeued from the front of the queue are - * considered as having been queued. - */ - public synchronized boolean isLastSampleQueued() { - return isLastSampleQueued; - } - - /** Returns the timestamp of the first sample, or {@link Long#MIN_VALUE} if the queue is empty. */ - public synchronized long getFirstTimestampUs() { - return length == 0 ? Long.MIN_VALUE : timesUs[relativeFirstIndex]; - } - - /** - * Rewinds the read position to the first sample retained in the queue. - */ - public synchronized void rewind() { - readPosition = 0; - } - - /** - * Returns whether there is data available for reading. - * - *

    Note: If the stream has ended then a buffer with the end of stream flag can always be read - * from {@link #read}. Hence an ended stream is always ready. - * - * @param loadingFinished Whether no more samples will be written to the sample queue. When true, - * this method returns true if the sample queue is empty, because an empty sample queue means - * the end of stream has been reached. When false, this method returns false if the sample - * queue is empty. - */ - public boolean isReady(boolean loadingFinished) { - if (!hasNextSample()) { - return loadingFinished - || isLastSampleQueued - || (upstreamFormat != null && upstreamFormat != downstreamFormat); - } - int relativeReadIndex = getRelativeIndex(readPosition); - if (formats[relativeReadIndex] != downstreamFormat) { - // A format can be read. - return true; - } - return mayReadSample(relativeReadIndex); - } - - /** - * Attempts to read from the queue. - * - * @param formatHolder A {@link FormatHolder} to populate in the case of reading a format. - * @param buffer A {@link DecoderInputBuffer} to populate in the case of reading a sample or the - * end of the stream. If a sample is read then the buffer is populated with information about - * the sample, but not its data. The size and absolute position of the data in the rolling - * buffer is stored in {@code extrasHolder}, along with an encryption id if present and the - * absolute position of the first byte that may still be required after the current sample has - * been read. If a {@link DecoderInputBuffer#isFlagsOnly() flags-only} buffer is passed, only - * the buffer flags may be populated by this method and the read position of the queue will - * not change. May be null if the caller requires that the format of the stream be read even - * if it's not changing. - * @param formatRequired Whether the caller requires that the format of the stream be read even if - * it's not changing. A sample will never be read if set to true, however it is still possible - * for the end of stream or nothing to be read. - * @param loadingFinished True if an empty queue should be considered the end of the stream. - * @param extrasHolder The holder into which extra sample information should be written. - * @return The result, which can be {@link C#RESULT_NOTHING_READ}, {@link C#RESULT_FORMAT_READ} or - * {@link C#RESULT_BUFFER_READ}. - */ - @SuppressWarnings("ReferenceEquality") - public synchronized int read( - FormatHolder formatHolder, - DecoderInputBuffer buffer, - boolean formatRequired, - boolean loadingFinished, - SampleExtrasHolder extrasHolder) { - if (!hasNextSample()) { - if (loadingFinished || isLastSampleQueued) { - buffer.setFlags(C.BUFFER_FLAG_END_OF_STREAM); - return C.RESULT_BUFFER_READ; - } else if (upstreamFormat != null && (formatRequired || upstreamFormat != downstreamFormat)) { - onFormatResult(Assertions.checkNotNull(upstreamFormat), formatHolder); - return C.RESULT_FORMAT_READ; - } else { - return C.RESULT_NOTHING_READ; - } - } - - int relativeReadIndex = getRelativeIndex(readPosition); - if (formatRequired || formats[relativeReadIndex] != downstreamFormat) { - onFormatResult(formats[relativeReadIndex], formatHolder); - return C.RESULT_FORMAT_READ; - } - - if (!mayReadSample(relativeReadIndex)) { - return C.RESULT_NOTHING_READ; - } - - buffer.setFlags(flags[relativeReadIndex]); - buffer.timeUs = timesUs[relativeReadIndex]; - if (buffer.isFlagsOnly()) { - return C.RESULT_BUFFER_READ; - } - - extrasHolder.size = sizes[relativeReadIndex]; - extrasHolder.offset = offsets[relativeReadIndex]; - extrasHolder.cryptoData = cryptoDatas[relativeReadIndex]; - - readPosition++; - return C.RESULT_BUFFER_READ; - } - - /** - * Attempts to advance the read position to the sample before or at the specified time. - * - * @param timeUs The time to advance to. - * @param toKeyframe If true then attempts to advance to the keyframe before or at the specified - * time, rather than to any sample before or at that time. - * @param allowTimeBeyondBuffer Whether the operation can succeed if {@code timeUs} is beyond the - * end of the queue, by advancing the read position to the last sample (or keyframe) in the - * queue. - * @return The number of samples that were skipped if the operation was successful, which may be - * equal to 0, or {@link SampleQueue#ADVANCE_FAILED} if the operation was not successful. A - * successful advance is one in which the read position was unchanged or advanced, and is now - * at a sample meeting the specified criteria. - */ - public synchronized int advanceTo(long timeUs, boolean toKeyframe, - boolean allowTimeBeyondBuffer) { - int relativeReadIndex = getRelativeIndex(readPosition); - if (!hasNextSample() || timeUs < timesUs[relativeReadIndex] - || (timeUs > largestQueuedTimestampUs && !allowTimeBeyondBuffer)) { - return SampleQueue.ADVANCE_FAILED; - } - int offset = findSampleBefore(relativeReadIndex, length - readPosition, timeUs, toKeyframe); - if (offset == -1) { - return SampleQueue.ADVANCE_FAILED; - } - readPosition += offset; - return offset; - } - - /** - * Advances the read position to the end of the queue. - * - * @return The number of samples that were skipped. - */ - public synchronized int advanceToEnd() { - int skipCount = length - readPosition; - readPosition = length; - return skipCount; - } - - /** - * Attempts to set the read position to the specified sample index. - * - * @param sampleIndex The sample index. - * @return Whether the read position was set successfully. False is returned if the specified - * index is smaller than the index of the first sample in the queue, or larger than the index - * of the next sample that will be written. - */ - public synchronized boolean setReadPosition(int sampleIndex) { - if (absoluteFirstIndex <= sampleIndex && sampleIndex <= absoluteFirstIndex + length) { - readPosition = sampleIndex - absoluteFirstIndex; - return true; - } - return false; - } - - /** - * Discards up to but not including the sample immediately before or at the specified time. - * - * @param timeUs The time to discard up to. - * @param toKeyframe If true then discards samples up to the keyframe before or at the specified - * time, rather than just any sample before or at that time. - * @param stopAtReadPosition If true then samples are only discarded if they're before the read - * position. If false then samples at and beyond the read position may be discarded, in which - * case the read position is advanced to the first remaining sample. - * @return The corresponding offset up to which data should be discarded, or - * {@link C#POSITION_UNSET} if no discarding of data is necessary. - */ - public synchronized long discardTo(long timeUs, boolean toKeyframe, boolean stopAtReadPosition) { - if (length == 0 || timeUs < timesUs[relativeFirstIndex]) { - return C.POSITION_UNSET; - } - int searchLength = stopAtReadPosition && readPosition != length ? readPosition + 1 : length; - int discardCount = findSampleBefore(relativeFirstIndex, searchLength, timeUs, toKeyframe); - if (discardCount == -1) { - return C.POSITION_UNSET; - } - return discardSamples(discardCount); - } - - /** - * Discards samples up to but not including the read position. - * - * @return The corresponding offset up to which data should be discarded, or - * {@link C#POSITION_UNSET} if no discarding of data is necessary. - */ - public synchronized long discardToRead() { - if (readPosition == 0) { - return C.POSITION_UNSET; - } - return discardSamples(readPosition); - } - - /** - * Discards all samples in the queue. The read position is also advanced. - * - * @return The corresponding offset up to which data should be discarded, or - * {@link C#POSITION_UNSET} if no discarding of data is necessary. - */ - public synchronized long discardToEnd() { - if (length == 0) { - return C.POSITION_UNSET; - } - return discardSamples(length); - } - - // Called by the loading thread. - - public synchronized boolean format(Format format) { - if (format == null) { - upstreamFormatRequired = true; - return false; - } - upstreamFormatRequired = false; - if (Util.areEqual(format, upstreamFormat)) { - // The format is unchanged. If format and upstreamFormat are different objects, we keep the - // current upstreamFormat so we can detect format changes in read() using cheap referential - // equality. - return false; - } else if (Util.areEqual(format, upstreamCommittedFormat)) { - // The format has changed back to the format of the last committed sample. If they are - // different objects, we revert back to using upstreamCommittedFormat as the upstreamFormat so - // we can detect format changes in read() using cheap referential equality. - upstreamFormat = upstreamCommittedFormat; - return true; - } else { - upstreamFormat = format; - return true; - } - } - - public synchronized void commitSample(long timeUs, @C.BufferFlags int sampleFlags, long offset, - int size, CryptoData cryptoData) { - if (upstreamKeyframeRequired) { - if ((sampleFlags & C.BUFFER_FLAG_KEY_FRAME) == 0) { - return; - } - upstreamKeyframeRequired = false; - } - Assertions.checkState(!upstreamFormatRequired); - - isLastSampleQueued = (sampleFlags & C.BUFFER_FLAG_LAST_SAMPLE) != 0; - largestQueuedTimestampUs = Math.max(largestQueuedTimestampUs, timeUs); - - int relativeEndIndex = getRelativeIndex(length); - timesUs[relativeEndIndex] = timeUs; - offsets[relativeEndIndex] = offset; - sizes[relativeEndIndex] = size; - flags[relativeEndIndex] = sampleFlags; - cryptoDatas[relativeEndIndex] = cryptoData; - formats[relativeEndIndex] = upstreamFormat; - sourceIds[relativeEndIndex] = upstreamSourceId; - upstreamCommittedFormat = upstreamFormat; - - length++; - if (length == capacity) { - // Increase the capacity. - int newCapacity = capacity + SAMPLE_CAPACITY_INCREMENT; - int[] newSourceIds = new int[newCapacity]; - long[] newOffsets = new long[newCapacity]; - long[] newTimesUs = new long[newCapacity]; - int[] newFlags = new int[newCapacity]; - int[] newSizes = new int[newCapacity]; - CryptoData[] newCryptoDatas = new CryptoData[newCapacity]; - Format[] newFormats = new Format[newCapacity]; - int beforeWrap = capacity - relativeFirstIndex; - System.arraycopy(offsets, relativeFirstIndex, newOffsets, 0, beforeWrap); - System.arraycopy(timesUs, relativeFirstIndex, newTimesUs, 0, beforeWrap); - System.arraycopy(flags, relativeFirstIndex, newFlags, 0, beforeWrap); - System.arraycopy(sizes, relativeFirstIndex, newSizes, 0, beforeWrap); - System.arraycopy(cryptoDatas, relativeFirstIndex, newCryptoDatas, 0, beforeWrap); - System.arraycopy(formats, relativeFirstIndex, newFormats, 0, beforeWrap); - System.arraycopy(sourceIds, relativeFirstIndex, newSourceIds, 0, beforeWrap); - int afterWrap = relativeFirstIndex; - System.arraycopy(offsets, 0, newOffsets, beforeWrap, afterWrap); - System.arraycopy(timesUs, 0, newTimesUs, beforeWrap, afterWrap); - System.arraycopy(flags, 0, newFlags, beforeWrap, afterWrap); - System.arraycopy(sizes, 0, newSizes, beforeWrap, afterWrap); - System.arraycopy(cryptoDatas, 0, newCryptoDatas, beforeWrap, afterWrap); - System.arraycopy(formats, 0, newFormats, beforeWrap, afterWrap); - System.arraycopy(sourceIds, 0, newSourceIds, beforeWrap, afterWrap); - offsets = newOffsets; - timesUs = newTimesUs; - flags = newFlags; - sizes = newSizes; - cryptoDatas = newCryptoDatas; - formats = newFormats; - sourceIds = newSourceIds; - relativeFirstIndex = 0; - length = capacity; - capacity = newCapacity; - } - } - - /** - * Attempts to discard samples from the end of the queue to allow samples starting from the - * specified timestamp to be spliced in. Samples will not be discarded prior to the read position. - * - * @param timeUs The timestamp at which the splice occurs. - * @return Whether the splice was successful. - */ - public synchronized boolean attemptSplice(long timeUs) { - if (length == 0) { - return timeUs > largestDiscardedTimestampUs; - } - long largestReadTimestampUs = Math.max(largestDiscardedTimestampUs, - getLargestTimestamp(readPosition)); - if (largestReadTimestampUs >= timeUs) { - return false; - } - int retainCount = length; - int relativeSampleIndex = getRelativeIndex(length - 1); - while (retainCount > readPosition && timesUs[relativeSampleIndex] >= timeUs) { - retainCount--; - relativeSampleIndex--; - if (relativeSampleIndex == -1) { - relativeSampleIndex = capacity - 1; - } - } - discardUpstreamSamples(absoluteFirstIndex + retainCount); - return true; - } - - // Internal methods. - - private boolean hasNextSample() { - return readPosition != length; - } - - /** - * Sets the downstream format, performs DRM resource management, and populates the {@code - * outputFormatHolder}. - * - * @param newFormat The new downstream format. - * @param outputFormatHolder The output {@link FormatHolder}. - */ - private void onFormatResult(Format newFormat, FormatHolder outputFormatHolder) { - outputFormatHolder.format = newFormat; - boolean isFirstFormat = downstreamFormat == null; - DrmInitData oldDrmInitData = isFirstFormat ? null : downstreamFormat.drmInitData; - downstreamFormat = newFormat; - if (drmSessionManager == DrmSessionManager.DUMMY) { - // Avoid attempting to acquire a session using the dummy DRM session manager. It's likely that - // the media source creation has not yet been migrated and the renderer can acquire the - // session for the read DRM init data. - // TODO: Remove once renderers are migrated [Internal ref: b/122519809]. - return; - } - DrmInitData newDrmInitData = newFormat.drmInitData; - outputFormatHolder.includesDrmSession = true; - outputFormatHolder.drmSession = currentDrmSession; - if (!isFirstFormat && Util.areEqual(oldDrmInitData, newDrmInitData)) { - // Nothing to do. - return; - } - // Ensure we acquire the new session before releasing the previous one in case the same session - // is being used for both DrmInitData. - DrmSession previousSession = currentDrmSession; - Looper playbackLooper = Assertions.checkNotNull(Looper.myLooper()); - currentDrmSession = - newDrmInitData != null - ? drmSessionManager.acquireSession(playbackLooper, newDrmInitData) - : drmSessionManager.acquirePlaceholderSession( - playbackLooper, MimeTypes.getTrackType(newFormat.sampleMimeType)); - outputFormatHolder.drmSession = currentDrmSession; - - if (previousSession != null) { - previousSession.release(); - } - } - - /** - * Returns whether it's possible to read the next sample. - * - * @param relativeReadIndex The relative read index of the next sample. - * @return Whether it's possible to read the next sample. - */ - private boolean mayReadSample(int relativeReadIndex) { - if (drmSessionManager == DrmSessionManager.DUMMY) { - // TODO: Remove once renderers are migrated [Internal ref: b/122519809]. - // For protected content it's likely that the DrmSessionManager is still being injected into - // the renderers. We assume that the renderers will be able to acquire a DrmSession if needed. - return true; - } - return currentDrmSession == null - || currentDrmSession.getState() == DrmSession.STATE_OPENED_WITH_KEYS - || ((flags[relativeReadIndex] & C.BUFFER_FLAG_ENCRYPTED) == 0 - && currentDrmSession.playClearSamplesWithoutKeys()); - } - - /** - * Finds the sample in the specified range that's before or at the specified time. If {@code - * keyframe} is {@code true} then the sample is additionally required to be a keyframe. - * - * @param relativeStartIndex The relative index from which to start searching. - * @param length The length of the range being searched. - * @param timeUs The specified time. - * @param keyframe Whether only keyframes should be considered. - * @return The offset from {@code relativeFirstIndex} to the found sample, or -1 if no matching - * sample was found. - */ - private int findSampleBefore(int relativeStartIndex, int length, long timeUs, boolean keyframe) { - // This could be optimized to use a binary search, however in practice callers to this method - // normally pass times near to the start of the search region. Hence it's unclear whether - // switching to a binary search would yield any real benefit. - int sampleCountToTarget = -1; - int searchIndex = relativeStartIndex; - for (int i = 0; i < length && timesUs[searchIndex] <= timeUs; i++) { - if (!keyframe || (flags[searchIndex] & C.BUFFER_FLAG_KEY_FRAME) != 0) { - // We've found a suitable sample. - sampleCountToTarget = i; - } - searchIndex++; - if (searchIndex == capacity) { - searchIndex = 0; - } - } - return sampleCountToTarget; - } - - /** - * Discards the specified number of samples. - * - * @param discardCount The number of samples to discard. - * @return The corresponding offset up to which data should be discarded. - */ - private long discardSamples(int discardCount) { - largestDiscardedTimestampUs = Math.max(largestDiscardedTimestampUs, - getLargestTimestamp(discardCount)); - length -= discardCount; - absoluteFirstIndex += discardCount; - relativeFirstIndex += discardCount; - if (relativeFirstIndex >= capacity) { - relativeFirstIndex -= capacity; - } - readPosition -= discardCount; - if (readPosition < 0) { - readPosition = 0; - } - if (length == 0) { - int relativeLastDiscardIndex = (relativeFirstIndex == 0 ? capacity : relativeFirstIndex) - 1; - return offsets[relativeLastDiscardIndex] + sizes[relativeLastDiscardIndex]; - } else { - return offsets[relativeFirstIndex]; - } - } - - /** - * Finds the largest timestamp of any sample from the start of the queue up to the specified - * length, assuming that the timestamps prior to a keyframe are always less than the timestamp of - * the keyframe itself, and of subsequent frames. - * - * @param length The length of the range being searched. - * @return The largest timestamp, or {@link Long#MIN_VALUE} if {@code length == 0}. - */ - private long getLargestTimestamp(int length) { - if (length == 0) { - return Long.MIN_VALUE; - } - long largestTimestampUs = Long.MIN_VALUE; - int relativeSampleIndex = getRelativeIndex(length - 1); - for (int i = 0; i < length; i++) { - largestTimestampUs = Math.max(largestTimestampUs, timesUs[relativeSampleIndex]); - if ((flags[relativeSampleIndex] & C.BUFFER_FLAG_KEY_FRAME) != 0) { - break; - } - relativeSampleIndex--; - if (relativeSampleIndex == -1) { - relativeSampleIndex = capacity - 1; - } - } - return largestTimestampUs; - } - - /** - * Returns the relative index for a given offset from the start of the queue. - * - * @param offset The offset, which must be in the range [0, length]. - */ - private int getRelativeIndex(int offset) { - int relativeIndex = relativeFirstIndex + offset; - return relativeIndex < capacity ? relativeIndex : relativeIndex - capacity; - } - -} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java index 1230b45fe4..8eb3bfcb0a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 The Android Open Source Project + * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,29 +15,28 @@ */ package com.google.android.exoplayer2.source; +import android.os.Looper; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.FormatHolder; import com.google.android.exoplayer2.decoder.DecoderInputBuffer; +import com.google.android.exoplayer2.drm.DrmInitData; import com.google.android.exoplayer2.drm.DrmSession; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.TrackOutput; -import com.google.android.exoplayer2.source.SampleMetadataQueue.SampleExtrasHolder; -import com.google.android.exoplayer2.upstream.Allocation; import com.google.android.exoplayer2.upstream.Allocator; +import com.google.android.exoplayer2.util.Assertions; +import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.ParsableByteArray; -import java.io.EOFException; +import com.google.android.exoplayer2.util.Util; import java.io.IOException; -import java.nio.ByteBuffer; /** A queue of media samples. */ public class SampleQueue implements TrackOutput { - /** - * A listener for changes to the upstream format. - */ + /** A listener for changes to the upstream format. */ public interface UpstreamFormatChangedListener { /** @@ -46,31 +45,47 @@ public class SampleQueue implements TrackOutput { * @param format The new upstream format. */ void onUpstreamFormatChanged(Format format); - } public static final int ADVANCE_FAILED = -1; - private static final int INITIAL_SCRATCH_SIZE = 32; + private static final int SAMPLE_CAPACITY_INCREMENT = 1000; - private final Allocator allocator; - private final int allocationLength; - private final SampleMetadataQueue metadataQueue; + private final SampleDataQueue sampleDataQueue; private final SampleExtrasHolder extrasHolder; - private final ParsableByteArray scratch; + private final DrmSessionManager drmSessionManager; + private UpstreamFormatChangedListener upstreamFormatChangeListener; - // References into the linked list of allocations. - private AllocationNode firstAllocationNode; - private AllocationNode readAllocationNode; - private AllocationNode writeAllocationNode; + @Nullable private Format downstreamFormat; + @Nullable private DrmSession currentDrmSession; + + private int capacity; + private int[] sourceIds; + private long[] offsets; + private int[] sizes; + private int[] flags; + private long[] timesUs; + private CryptoData[] cryptoDatas; + private Format[] formats; + + private int length; + private int absoluteFirstIndex; + private int relativeFirstIndex; + private int readPosition; + + private long largestDiscardedTimestampUs; + private long largestQueuedTimestampUs; + private boolean isLastSampleQueued; + private boolean upstreamKeyframeRequired; + private boolean upstreamFormatRequired; + private Format upstreamFormat; + private Format upstreamCommittedFormat; + private int upstreamSourceId; - // Accessed only by the loading thread (or the consuming thread when there is no loading thread). private boolean pendingFormatAdjustment; private Format lastUnadjustedFormat; private long sampleOffsetUs; - private long totalBytesWritten; private boolean pendingSplice; - private UpstreamFormatChangedListener upstreamFormatChangeListener; /** * Creates a sample queue. @@ -80,27 +95,40 @@ public class SampleQueue implements TrackOutput { * from. The created instance does not take ownership of this {@link DrmSessionManager}. */ public SampleQueue(Allocator allocator, DrmSessionManager drmSessionManager) { - this.allocator = allocator; - allocationLength = allocator.getIndividualAllocationLength(); - metadataQueue = new SampleMetadataQueue(drmSessionManager); + sampleDataQueue = new SampleDataQueue(allocator); + this.drmSessionManager = drmSessionManager; extrasHolder = new SampleExtrasHolder(); - scratch = new ParsableByteArray(INITIAL_SCRATCH_SIZE); - firstAllocationNode = new AllocationNode(0, allocationLength); - readAllocationNode = firstAllocationNode; - writeAllocationNode = firstAllocationNode; + capacity = SAMPLE_CAPACITY_INCREMENT; + sourceIds = new int[capacity]; + offsets = new long[capacity]; + timesUs = new long[capacity]; + flags = new int[capacity]; + sizes = new int[capacity]; + cryptoDatas = new CryptoData[capacity]; + formats = new Format[capacity]; + largestDiscardedTimestampUs = Long.MIN_VALUE; + largestQueuedTimestampUs = Long.MIN_VALUE; + upstreamFormatRequired = true; + upstreamKeyframeRequired = true; } - // Called by the consuming thread, but only when there is no loading thread. + // Called by the consuming thread when there is no loading thread. /** - * Resets the output without clearing the upstream format. Equivalent to {@code reset(false)}. + * Calls {@link #reset(boolean) reset(true)} and releases any owned {@link DrmSession} references. */ + public void release() { + reset(/* resetUpstreamFormat= */ true); + releaseDrmSessionReferences(); + } + + /** Resets the output without clearing the upstream format. Equivalent to {@code reset(false)}. */ public void reset() { - reset(false); + reset(/* resetUpstreamFormat= */ false); } /** - * Resets the output. + * Clears all samples from the queue. * * @param resetUpstreamFormat Whether the upstream format should be cleared. If set to false, * samples queued after the reset (and before a subsequent call to {@link #format(Format)}) @@ -108,13 +136,20 @@ public class SampleQueue implements TrackOutput { * must be called after the reset before any more samples can be queued. */ public void reset(boolean resetUpstreamFormat) { - metadataQueue.reset(resetUpstreamFormat); - clearAllocationNodes(firstAllocationNode); - firstAllocationNode = new AllocationNode(0, allocationLength); - readAllocationNode = firstAllocationNode; - writeAllocationNode = firstAllocationNode; - totalBytesWritten = 0; - allocator.trim(); + sampleDataQueue.reset(); + length = 0; + absoluteFirstIndex = 0; + relativeFirstIndex = 0; + readPosition = 0; + upstreamKeyframeRequired = true; + largestDiscardedTimestampUs = Long.MIN_VALUE; + largestQueuedTimestampUs = Long.MIN_VALUE; + isLastSampleQueued = false; + upstreamCommittedFormat = null; + if (resetUpstreamFormat) { + upstreamFormat = null; + upstreamFormatRequired = true; + } } /** @@ -123,21 +158,17 @@ public class SampleQueue implements TrackOutput { * @param sourceId The source identifier. */ public void sourceId(int sourceId) { - metadataQueue.sourceId(sourceId); + upstreamSourceId = sourceId; } - /** - * Indicates samples that are subsequently queued should be spliced into those already queued. - */ + /** Indicates samples that are subsequently queued should be spliced into those already queued. */ public void splice() { pendingSplice = true; } - /** - * Returns the current absolute write index. - */ + /** Returns the current absolute write index. */ public int getWriteIndex() { - return metadataQueue.getWriteIndex(); + return absoluteFirstIndex + length; } /** @@ -147,55 +178,37 @@ public class SampleQueue implements TrackOutput { * range [{@link #getReadIndex()}, {@link #getWriteIndex()}]. */ public void discardUpstreamSamples(int discardFromIndex) { - totalBytesWritten = metadataQueue.discardUpstreamSamples(discardFromIndex); - if (totalBytesWritten == 0 || totalBytesWritten == firstAllocationNode.startPosition) { - clearAllocationNodes(firstAllocationNode); - firstAllocationNode = new AllocationNode(totalBytesWritten, allocationLength); - readAllocationNode = firstAllocationNode; - writeAllocationNode = firstAllocationNode; - } else { - // Find the last node containing at least 1 byte of data that we need to keep. - AllocationNode lastNodeToKeep = firstAllocationNode; - while (totalBytesWritten > lastNodeToKeep.endPosition) { - lastNodeToKeep = lastNodeToKeep.next; - } - // Discard all subsequent nodes. - AllocationNode firstNodeToDiscard = lastNodeToKeep.next; - clearAllocationNodes(firstNodeToDiscard); - // Reset the successor of the last node to be an uninitialized node. - lastNodeToKeep.next = new AllocationNode(lastNodeToKeep.endPosition, allocationLength); - // Update writeAllocationNode and readAllocationNode as necessary. - writeAllocationNode = totalBytesWritten == lastNodeToKeep.endPosition ? lastNodeToKeep.next - : lastNodeToKeep; - if (readAllocationNode == firstNodeToDiscard) { - readAllocationNode = lastNodeToKeep.next; - } - } + sampleDataQueue.discardUpstreamSampleBytes(discardUpstreamSampleMetadata(discardFromIndex)); } // Called by the consuming thread. + /** Calls {@link #discardToEnd()} and releases any owned {@link DrmSession} references. */ + public void preRelease() { + discardToEnd(); + releaseDrmSessionReferences(); + } + /** * Throws an error that's preventing data from being read. Does nothing if no such error exists. * * @throws IOException The underlying error. */ public void maybeThrowError() throws IOException { - metadataQueue.maybeThrowError(); + // TODO: Avoid throwing if the DRM error is not preventing a read operation. + if (currentDrmSession != null && currentDrmSession.getState() == DrmSession.STATE_ERROR) { + throw Assertions.checkNotNull(currentDrmSession.getError()); + } } - /** - * Returns the absolute index of the first sample. - */ + /** Returns the current absolute start index. */ public int getFirstIndex() { - return metadataQueue.getFirstIndex(); + return absoluteFirstIndex; } - /** - * Returns the current absolute read index. - */ + /** Returns the current absolute read index. */ public int getReadIndex() { - return metadataQueue.getReadIndex(); + return absoluteFirstIndex + readPosition; } /** @@ -204,129 +217,71 @@ public class SampleQueue implements TrackOutput { * * @return The source id. */ - public int peekSourceId() { - return metadataQueue.peekSourceId(); + public synchronized int peekSourceId() { + int relativeReadIndex = getRelativeIndex(readPosition); + return hasNextSample() ? sourceIds[relativeReadIndex] : upstreamSourceId; } - /** - * Returns the upstream {@link Format} in which samples are being queued. - */ - public Format getUpstreamFormat() { - return metadataQueue.getUpstreamFormat(); + /** Returns the upstream {@link Format} in which samples are being queued. */ + public synchronized Format getUpstreamFormat() { + return upstreamFormatRequired ? null : upstreamFormat; } /** * Returns the largest sample timestamp that has been queued since the last {@link #reset}. - *

    - * Samples that were discarded by calling {@link #discardUpstreamSamples(int)} are not + * + *

    Samples that were discarded by calling {@link #discardUpstreamSamples(int)} are not * considered as having been queued. Samples that were dequeued from the front of the queue are * considered as having been queued. * * @return The largest sample timestamp that has been queued, or {@link Long#MIN_VALUE} if no * samples have been queued. */ - public long getLargestQueuedTimestampUs() { - return metadataQueue.getLargestQueuedTimestampUs(); + public synchronized long getLargestQueuedTimestampUs() { + return largestQueuedTimestampUs; } /** * Returns whether the last sample of the stream has knowingly been queued. A return value of * {@code false} means that the last sample had not been queued or that it's unknown whether the * last sample has been queued. + * + *

    Samples that were discarded by calling {@link #discardUpstreamSamples(int)} are not + * considered as having been queued. Samples that were dequeued from the front of the queue are + * considered as having been queued. */ - public boolean isLastSampleQueued() { - return metadataQueue.isLastSampleQueued(); + public synchronized boolean isLastSampleQueued() { + return isLastSampleQueued; } /** Returns the timestamp of the first sample, or {@link Long#MIN_VALUE} if the queue is empty. */ - public long getFirstTimestampUs() { - return metadataQueue.getFirstTimestampUs(); + public synchronized long getFirstTimestampUs() { + return length == 0 ? Long.MIN_VALUE : timesUs[relativeFirstIndex]; } /** - * Rewinds the read position to the first sample in the queue. - */ - public void rewind() { - metadataQueue.rewind(); - readAllocationNode = firstAllocationNode; - } - - /** - * Discards up to but not including the sample immediately before or at the specified time. + * Returns whether there is data available for reading. * - * @param timeUs The time to discard to. - * @param toKeyframe If true then discards samples up to the keyframe before or at the specified - * time, rather than any sample before or at that time. - * @param stopAtReadPosition If true then samples are only discarded if they're before the - * read position. If false then samples at and beyond the read position may be discarded, in - * which case the read position is advanced to the first remaining sample. - */ - public void discardTo(long timeUs, boolean toKeyframe, boolean stopAtReadPosition) { - discardDownstreamTo(metadataQueue.discardTo(timeUs, toKeyframe, stopAtReadPosition)); - } - - /** - * Discards up to but not including the read position. - */ - public void discardToRead() { - discardDownstreamTo(metadataQueue.discardToRead()); - } - - /** Calls {@link #discardToEnd()} and releases any owned {@link DrmSession} references. */ - public void preRelease() { - discardToEnd(); - metadataQueue.releaseDrmSessionReferences(); - } - - /** Calls {@link #reset()} and releases any owned {@link DrmSession} references. */ - public void release() { - reset(); - metadataQueue.releaseDrmSessionReferences(); - } - - /** - * Discards to the end of the queue. The read position is also advanced. - */ - public void discardToEnd() { - discardDownstreamTo(metadataQueue.discardToEnd()); - } - - /** - * Advances the read position to the end of the queue. + *

    Note: If the stream has ended then a buffer with the end of stream flag can always be read + * from {@link #read}. Hence an ended stream is always ready. * - * @return The number of samples that were skipped. + * @param loadingFinished Whether no more samples will be written to the sample queue. When true, + * this method returns true if the sample queue is empty, because an empty sample queue means + * the end of stream has been reached. When false, this method returns false if the sample + * queue is empty. */ - public int advanceToEnd() { - return metadataQueue.advanceToEnd(); - } - - /** - * Attempts to advance the read position to the sample before or at the specified time. - * - * @param timeUs The time to advance to. - * @param toKeyframe If true then attempts to advance to the keyframe before or at the specified - * time, rather than to any sample before or at that time. - * @param allowTimeBeyondBuffer Whether the operation can succeed if {@code timeUs} is beyond the - * end of the queue, by advancing the read position to the last sample (or keyframe). - * @return The number of samples that were skipped if the operation was successful, which may be - * equal to 0, or {@link #ADVANCE_FAILED} if the operation was not successful. A successful - * advance is one in which the read position was unchanged or advanced, and is now at a sample - * meeting the specified criteria. - */ - public int advanceTo(long timeUs, boolean toKeyframe, boolean allowTimeBeyondBuffer) { - return metadataQueue.advanceTo(timeUs, toKeyframe, allowTimeBeyondBuffer); - } - - /** - * Attempts to set the read position to the specified sample index. - * - * @param sampleIndex The sample index. - * @return Whether the read position was set successfully. False is returned if the specified - * index is smaller than the index of the first sample in the queue, or larger than the index - * of the next sample that will be written. - */ - public boolean setReadPosition(int sampleIndex) { - return metadataQueue.setReadPosition(sampleIndex); + public synchronized boolean isReady(boolean loadingFinished) { + if (!hasNextSample()) { + return loadingFinished + || isLastSampleQueued + || (upstreamFormat != null && upstreamFormat != downstreamFormat); + } + int relativeReadIndex = getRelativeIndex(readPosition); + if (formats[relativeReadIndex] != downstreamFormat) { + // A format can be read. + return true; + } + return mayReadSample(relativeReadIndex); } /** @@ -364,238 +319,106 @@ public class SampleQueue implements TrackOutput { boolean loadingFinished, long decodeOnlyUntilUs) { int result = - metadataQueue.read(formatHolder, buffer, formatRequired, loadingFinished, extrasHolder); - if (result == C.RESULT_BUFFER_READ && !buffer.isEndOfStream()) { - if (buffer.timeUs < decodeOnlyUntilUs) { - buffer.addFlag(C.BUFFER_FLAG_DECODE_ONLY); - } - if (!buffer.isFlagsOnly()) { - readToBuffer(buffer, extrasHolder); - } + readSampleMetadata( + formatHolder, buffer, formatRequired, loadingFinished, decodeOnlyUntilUs, extrasHolder); + if (result == C.RESULT_BUFFER_READ && !buffer.isEndOfStream() && !buffer.isFlagsOnly()) { + sampleDataQueue.readToBuffer(buffer, extrasHolder); } return result; } - /** - * Returns whether there is data available for reading. - * - *

    Note: If the stream has ended then a buffer with the end of stream flag can always be read - * from {@link #read}. Hence an ended stream is always ready. - * - * @param loadingFinished Whether no more samples will be written to the sample queue. When true, - * this method returns true if the sample queue is empty, because an empty sample queue means - * the end of stream has been reached. When false, this method returns false if the sample - * queue is empty. - */ - public boolean isReady(boolean loadingFinished) { - return metadataQueue.isReady(loadingFinished); + /** Rewinds the read position to the first sample in the queue. */ + public void rewind() { + rewindMetadata(); + sampleDataQueue.rewind(); } /** - * Reads data from the rolling buffer to populate a decoder input buffer. + * Attempts to advance the read position to the sample before or at the specified time. * - * @param buffer The buffer to populate. - * @param extrasHolder The extras holder whose offset should be read and subsequently adjusted. + * @param timeUs The time to advance to. + * @param toKeyframe If true then attempts to advance to the keyframe before or at the specified + * time, rather than to any sample before or at that time. + * @param allowTimeBeyondBuffer Whether the operation can succeed if {@code timeUs} is beyond the + * end of the queue, by advancing the read position to the last sample (or keyframe). + * @return The number of samples that were skipped if the operation was successful, which may be + * equal to 0, or {@link #ADVANCE_FAILED} if the operation was not successful. A successful + * advance is one in which the read position was unchanged or advanced, and is now at a sample + * meeting the specified criteria. */ - private void readToBuffer(DecoderInputBuffer buffer, SampleExtrasHolder extrasHolder) { - // Read encryption data if the sample is encrypted. - if (buffer.isEncrypted()) { - readEncryptionData(buffer, extrasHolder); + public synchronized int advanceTo( + long timeUs, boolean toKeyframe, boolean allowTimeBeyondBuffer) { + int relativeReadIndex = getRelativeIndex(readPosition); + if (!hasNextSample() + || timeUs < timesUs[relativeReadIndex] + || (timeUs > largestQueuedTimestampUs && !allowTimeBeyondBuffer)) { + return SampleQueue.ADVANCE_FAILED; } - // Read sample data, extracting supplemental data into a separate buffer if needed. - if (buffer.hasSupplementalData()) { - // If there is supplemental data, the sample data is prefixed by its size. - scratch.reset(4); - readData(extrasHolder.offset, scratch.data, 4); - int sampleSize = scratch.readUnsignedIntToInt(); - extrasHolder.offset += 4; - extrasHolder.size -= 4; - - // Write the sample data. - buffer.ensureSpaceForWrite(sampleSize); - readData(extrasHolder.offset, buffer.data, sampleSize); - extrasHolder.offset += sampleSize; - extrasHolder.size -= sampleSize; - - // Write the remaining data as supplemental data. - buffer.resetSupplementalData(extrasHolder.size); - readData(extrasHolder.offset, buffer.supplementalData, extrasHolder.size); - } else { - // Write the sample data. - buffer.ensureSpaceForWrite(extrasHolder.size); - readData(extrasHolder.offset, buffer.data, extrasHolder.size); + int offset = findSampleBefore(relativeReadIndex, length - readPosition, timeUs, toKeyframe); + if (offset == -1) { + return SampleQueue.ADVANCE_FAILED; } + readPosition += offset; + return offset; } /** - * Reads encryption data for the current sample. + * Advances the read position to the end of the queue. * - *

    The encryption data is written into {@link DecoderInputBuffer#cryptoInfo}, and {@link - * SampleExtrasHolder#size} is adjusted to subtract the number of bytes that were read. The same - * value is added to {@link SampleExtrasHolder#offset}. - * - * @param buffer The buffer into which the encryption data should be written. - * @param extrasHolder The extras holder whose offset should be read and subsequently adjusted. + * @return The number of samples that were skipped. */ - private void readEncryptionData(DecoderInputBuffer buffer, SampleExtrasHolder extrasHolder) { - long offset = extrasHolder.offset; - - // Read the signal byte. - scratch.reset(1); - readData(offset, scratch.data, 1); - offset++; - byte signalByte = scratch.data[0]; - boolean subsampleEncryption = (signalByte & 0x80) != 0; - int ivSize = signalByte & 0x7F; - - // Read the initialization vector. - if (buffer.cryptoInfo.iv == null) { - buffer.cryptoInfo.iv = new byte[16]; - } - readData(offset, buffer.cryptoInfo.iv, ivSize); - offset += ivSize; - - // Read the subsample count, if present. - int subsampleCount; - if (subsampleEncryption) { - scratch.reset(2); - readData(offset, scratch.data, 2); - offset += 2; - subsampleCount = scratch.readUnsignedShort(); - } else { - subsampleCount = 1; - } - - // Write the clear and encrypted subsample sizes. - int[] clearDataSizes = buffer.cryptoInfo.numBytesOfClearData; - if (clearDataSizes == null || clearDataSizes.length < subsampleCount) { - clearDataSizes = new int[subsampleCount]; - } - int[] encryptedDataSizes = buffer.cryptoInfo.numBytesOfEncryptedData; - if (encryptedDataSizes == null || encryptedDataSizes.length < subsampleCount) { - encryptedDataSizes = new int[subsampleCount]; - } - if (subsampleEncryption) { - int subsampleDataLength = 6 * subsampleCount; - scratch.reset(subsampleDataLength); - readData(offset, scratch.data, subsampleDataLength); - offset += subsampleDataLength; - scratch.setPosition(0); - for (int i = 0; i < subsampleCount; i++) { - clearDataSizes[i] = scratch.readUnsignedShort(); - encryptedDataSizes[i] = scratch.readUnsignedIntToInt(); - } - } else { - clearDataSizes[0] = 0; - encryptedDataSizes[0] = extrasHolder.size - (int) (offset - extrasHolder.offset); - } - - // Populate the cryptoInfo. - CryptoData cryptoData = extrasHolder.cryptoData; - buffer.cryptoInfo.set(subsampleCount, clearDataSizes, encryptedDataSizes, - cryptoData.encryptionKey, buffer.cryptoInfo.iv, cryptoData.cryptoMode, - cryptoData.encryptedBlocks, cryptoData.clearBlocks); - - // Adjust the offset and size to take into account the bytes read. - int bytesRead = (int) (offset - extrasHolder.offset); - extrasHolder.offset += bytesRead; - extrasHolder.size -= bytesRead; + public synchronized int advanceToEnd() { + int skipCount = length - readPosition; + readPosition = length; + return skipCount; } /** - * Reads data from the front of the rolling buffer. + * Attempts to set the read position to the specified sample index. * - * @param absolutePosition The absolute position from which data should be read. - * @param target The buffer into which data should be written. - * @param length The number of bytes to read. + * @param sampleIndex The sample index. + * @return Whether the read position was set successfully. False is returned if the specified + * index is smaller than the index of the first sample in the queue, or larger than the index + * of the next sample that will be written. */ - private void readData(long absolutePosition, ByteBuffer target, int length) { - advanceReadTo(absolutePosition); - int remaining = length; - while (remaining > 0) { - int toCopy = Math.min(remaining, (int) (readAllocationNode.endPosition - absolutePosition)); - Allocation allocation = readAllocationNode.allocation; - target.put(allocation.data, readAllocationNode.translateOffset(absolutePosition), toCopy); - remaining -= toCopy; - absolutePosition += toCopy; - if (absolutePosition == readAllocationNode.endPosition) { - readAllocationNode = readAllocationNode.next; - } + public synchronized boolean setReadPosition(int sampleIndex) { + if (absoluteFirstIndex <= sampleIndex && sampleIndex <= absoluteFirstIndex + length) { + readPosition = sampleIndex - absoluteFirstIndex; + return true; } + return false; } /** - * Reads data from the front of the rolling buffer. + * Discards up to but not including the sample immediately before or at the specified time. * - * @param absolutePosition The absolute position from which data should be read. - * @param target The array into which data should be written. - * @param length The number of bytes to read. + * @param timeUs The time to discard up to. + * @param toKeyframe If true then discards samples up to the keyframe before or at the specified + * time, rather than any sample before or at that time. + * @param stopAtReadPosition If true then samples are only discarded if they're before the read + * position. If false then samples at and beyond the read position may be discarded, in which + * case the read position is advanced to the first remaining sample. */ - private void readData(long absolutePosition, byte[] target, int length) { - advanceReadTo(absolutePosition); - int remaining = length; - while (remaining > 0) { - int toCopy = Math.min(remaining, (int) (readAllocationNode.endPosition - absolutePosition)); - Allocation allocation = readAllocationNode.allocation; - System.arraycopy(allocation.data, readAllocationNode.translateOffset(absolutePosition), - target, length - remaining, toCopy); - remaining -= toCopy; - absolutePosition += toCopy; - if (absolutePosition == readAllocationNode.endPosition) { - readAllocationNode = readAllocationNode.next; - } - } + public void discardTo(long timeUs, boolean toKeyframe, boolean stopAtReadPosition) { + sampleDataQueue.discardDownstreamTo( + discardSampleMetadataTo(timeUs, toKeyframe, stopAtReadPosition)); } - /** - * Advances {@link #readAllocationNode} to the specified absolute position. - * - * @param absolutePosition The position to which {@link #readAllocationNode} should be advanced. - */ - private void advanceReadTo(long absolutePosition) { - while (absolutePosition >= readAllocationNode.endPosition) { - readAllocationNode = readAllocationNode.next; - } + /** Discards up to but not including the read position. */ + public void discardToRead() { + sampleDataQueue.discardDownstreamTo(discardSampleMetadataToRead()); } - /** - * Advances {@link #firstAllocationNode} to the specified absolute position. - * {@link #readAllocationNode} is also advanced if necessary to avoid it falling behind - * {@link #firstAllocationNode}. Nodes that have been advanced past are cleared, and their - * underlying allocations are returned to the allocator. - * - * @param absolutePosition The position to which {@link #firstAllocationNode} should be advanced. - * May be {@link C#POSITION_UNSET}, in which case calling this method is a no-op. - */ - private void discardDownstreamTo(long absolutePosition) { - if (absolutePosition == C.POSITION_UNSET) { - return; - } - while (absolutePosition >= firstAllocationNode.endPosition) { - allocator.release(firstAllocationNode.allocation); - firstAllocationNode = firstAllocationNode.clear(); - } - // If we discarded the node referenced by readAllocationNode then we need to advance it to the - // first remaining node. - if (readAllocationNode.startPosition < firstAllocationNode.startPosition) { - readAllocationNode = firstAllocationNode; - } + /** Discards all samples in the queue and advances the read position. */ + public void discardToEnd() { + sampleDataQueue.discardDownstreamTo(discardSampleMetadataToEnd()); } // Called by the loading thread. /** - * Sets a listener to be notified of changes to the upstream format. - * - * @param listener The listener. - */ - public void setUpstreamFormatChangeListener(UpstreamFormatChangedListener listener) { - upstreamFormatChangeListener = listener; - } - - /** - * Sets an offset that will be added to the timestamps (and sub-sample timestamps) of samples - * that are subsequently queued. + * Sets an offset that will be added to the timestamps (and sub-sample timestamps) of samples that + * are subsequently queued. * * @param sampleOffsetUs The timestamp offset in microseconds. */ @@ -606,11 +429,22 @@ public class SampleQueue implements TrackOutput { } } + /** + * Sets a listener to be notified of changes to the upstream format. + * + * @param listener The listener. + */ + public void setUpstreamFormatChangeListener(UpstreamFormatChangedListener listener) { + upstreamFormatChangeListener = listener; + } + + // TrackOutput implementation. Called by the loading thread. + @Override - public void format(Format format) { - Format adjustedFormat = getAdjustedSampleFormat(format, sampleOffsetUs); - boolean formatChanged = metadataQueue.format(adjustedFormat); - lastUnadjustedFormat = format; + public void format(Format unadjustedFormat) { + Format adjustedFormat = getAdjustedSampleFormat(unadjustedFormat, sampleOffsetUs); + boolean formatChanged = setUpstreamFormat(adjustedFormat); + lastUnadjustedFormat = unadjustedFormat; pendingFormatAdjustment = false; if (upstreamFormatChangeListener != null && formatChanged) { upstreamFormatChangeListener.onUpstreamFormatChanged(adjustedFormat); @@ -620,28 +454,12 @@ public class SampleQueue implements TrackOutput { @Override public int sampleData(ExtractorInput input, int length, boolean allowEndOfInput) throws IOException, InterruptedException { - length = preAppend(length); - int bytesAppended = input.read(writeAllocationNode.allocation.data, - writeAllocationNode.translateOffset(totalBytesWritten), length); - if (bytesAppended == C.RESULT_END_OF_INPUT) { - if (allowEndOfInput) { - return C.RESULT_END_OF_INPUT; - } - throw new EOFException(); - } - postAppend(bytesAppended); - return bytesAppended; + return sampleDataQueue.sampleData(input, length, allowEndOfInput); } @Override public void sampleData(ParsableByteArray buffer, int length) { - while (length > 0) { - int bytesAppended = preAppend(length); - buffer.readBytes(writeAllocationNode.allocation.data, - writeAllocationNode.translateOffset(totalBytesWritten), bytesAppended); - length -= bytesAppended; - postAppend(bytesAppended); - } + sampleDataQueue.sampleData(buffer, length); } @Override @@ -656,66 +474,388 @@ public class SampleQueue implements TrackOutput { } timeUs += sampleOffsetUs; if (pendingSplice) { - if ((flags & C.BUFFER_FLAG_KEY_FRAME) == 0 || !metadataQueue.attemptSplice(timeUs)) { + if ((flags & C.BUFFER_FLAG_KEY_FRAME) == 0 || !attemptSplice(timeUs)) { return; } pendingSplice = false; } - long absoluteOffset = totalBytesWritten - size - offset; - metadataQueue.commitSample(timeUs, flags, absoluteOffset, size, cryptoData); + long absoluteOffset = sampleDataQueue.getTotalBytesWritten() - size - offset; + commitSample(timeUs, flags, absoluteOffset, size, cryptoData); } - // Private methods. + // Internal methods. + + private synchronized void rewindMetadata() { + readPosition = 0; + } + + private synchronized int readSampleMetadata( + FormatHolder formatHolder, + DecoderInputBuffer buffer, + boolean formatRequired, + boolean loadingFinished, + long decodeOnlyUntilUs, + SampleExtrasHolder extrasHolder) { + if (!hasNextSample()) { + if (loadingFinished || isLastSampleQueued) { + buffer.setFlags(C.BUFFER_FLAG_END_OF_STREAM); + return C.RESULT_BUFFER_READ; + } else if (upstreamFormat != null && (formatRequired || upstreamFormat != downstreamFormat)) { + onFormatResult(Assertions.checkNotNull(upstreamFormat), formatHolder); + return C.RESULT_FORMAT_READ; + } else { + return C.RESULT_NOTHING_READ; + } + } + + int relativeReadIndex = getRelativeIndex(readPosition); + if (formatRequired || formats[relativeReadIndex] != downstreamFormat) { + onFormatResult(formats[relativeReadIndex], formatHolder); + return C.RESULT_FORMAT_READ; + } + + if (!mayReadSample(relativeReadIndex)) { + return C.RESULT_NOTHING_READ; + } + + buffer.setFlags(flags[relativeReadIndex]); + buffer.timeUs = timesUs[relativeReadIndex]; + if (buffer.timeUs < decodeOnlyUntilUs) { + buffer.addFlag(C.BUFFER_FLAG_DECODE_ONLY); + } + if (buffer.isFlagsOnly()) { + return C.RESULT_BUFFER_READ; + } + extrasHolder.size = sizes[relativeReadIndex]; + extrasHolder.offset = offsets[relativeReadIndex]; + extrasHolder.cryptoData = cryptoDatas[relativeReadIndex]; + + readPosition++; + return C.RESULT_BUFFER_READ; + } + + private synchronized boolean setUpstreamFormat(Format format) { + if (format == null) { + upstreamFormatRequired = true; + return false; + } + upstreamFormatRequired = false; + if (Util.areEqual(format, upstreamFormat)) { + // The format is unchanged. If format and upstreamFormat are different objects, we keep the + // current upstreamFormat so we can detect format changes in read() using cheap referential + // equality. + return false; + } else if (Util.areEqual(format, upstreamCommittedFormat)) { + // The format has changed back to the format of the last committed sample. If they are + // different objects, we revert back to using upstreamCommittedFormat as the upstreamFormat + // so we can detect format changes in read() using cheap referential equality. + upstreamFormat = upstreamCommittedFormat; + return true; + } else { + upstreamFormat = format; + return true; + } + } + + private synchronized long discardSampleMetadataTo( + long timeUs, boolean toKeyframe, boolean stopAtReadPosition) { + if (length == 0 || timeUs < timesUs[relativeFirstIndex]) { + return C.POSITION_UNSET; + } + int searchLength = stopAtReadPosition && readPosition != length ? readPosition + 1 : length; + int discardCount = findSampleBefore(relativeFirstIndex, searchLength, timeUs, toKeyframe); + if (discardCount == -1) { + return C.POSITION_UNSET; + } + return discardSamples(discardCount); + } + + public synchronized long discardSampleMetadataToRead() { + if (readPosition == 0) { + return C.POSITION_UNSET; + } + return discardSamples(readPosition); + } + + private synchronized long discardSampleMetadataToEnd() { + if (length == 0) { + return C.POSITION_UNSET; + } + return discardSamples(length); + } + + private void releaseDrmSessionReferences() { + if (currentDrmSession != null) { + currentDrmSession.release(); + currentDrmSession = null; + // Clear downstream format to avoid violating the assumption that downstreamFormat.drmInitData + // != null implies currentSession != null + downstreamFormat = null; + } + } + + private synchronized void commitSample( + long timeUs, @C.BufferFlags int sampleFlags, long offset, int size, CryptoData cryptoData) { + if (upstreamKeyframeRequired) { + if ((sampleFlags & C.BUFFER_FLAG_KEY_FRAME) == 0) { + return; + } + upstreamKeyframeRequired = false; + } + Assertions.checkState(!upstreamFormatRequired); + + isLastSampleQueued = (sampleFlags & C.BUFFER_FLAG_LAST_SAMPLE) != 0; + largestQueuedTimestampUs = Math.max(largestQueuedTimestampUs, timeUs); + + int relativeEndIndex = getRelativeIndex(length); + timesUs[relativeEndIndex] = timeUs; + offsets[relativeEndIndex] = offset; + sizes[relativeEndIndex] = size; + flags[relativeEndIndex] = sampleFlags; + cryptoDatas[relativeEndIndex] = cryptoData; + formats[relativeEndIndex] = upstreamFormat; + sourceIds[relativeEndIndex] = upstreamSourceId; + upstreamCommittedFormat = upstreamFormat; + + length++; + if (length == capacity) { + // Increase the capacity. + int newCapacity = capacity + SAMPLE_CAPACITY_INCREMENT; + int[] newSourceIds = new int[newCapacity]; + long[] newOffsets = new long[newCapacity]; + long[] newTimesUs = new long[newCapacity]; + int[] newFlags = new int[newCapacity]; + int[] newSizes = new int[newCapacity]; + CryptoData[] newCryptoDatas = new CryptoData[newCapacity]; + Format[] newFormats = new Format[newCapacity]; + int beforeWrap = capacity - relativeFirstIndex; + System.arraycopy(offsets, relativeFirstIndex, newOffsets, 0, beforeWrap); + System.arraycopy(timesUs, relativeFirstIndex, newTimesUs, 0, beforeWrap); + System.arraycopy(flags, relativeFirstIndex, newFlags, 0, beforeWrap); + System.arraycopy(sizes, relativeFirstIndex, newSizes, 0, beforeWrap); + System.arraycopy(cryptoDatas, relativeFirstIndex, newCryptoDatas, 0, beforeWrap); + System.arraycopy(formats, relativeFirstIndex, newFormats, 0, beforeWrap); + System.arraycopy(sourceIds, relativeFirstIndex, newSourceIds, 0, beforeWrap); + int afterWrap = relativeFirstIndex; + System.arraycopy(offsets, 0, newOffsets, beforeWrap, afterWrap); + System.arraycopy(timesUs, 0, newTimesUs, beforeWrap, afterWrap); + System.arraycopy(flags, 0, newFlags, beforeWrap, afterWrap); + System.arraycopy(sizes, 0, newSizes, beforeWrap, afterWrap); + System.arraycopy(cryptoDatas, 0, newCryptoDatas, beforeWrap, afterWrap); + System.arraycopy(formats, 0, newFormats, beforeWrap, afterWrap); + System.arraycopy(sourceIds, 0, newSourceIds, beforeWrap, afterWrap); + offsets = newOffsets; + timesUs = newTimesUs; + flags = newFlags; + sizes = newSizes; + cryptoDatas = newCryptoDatas; + formats = newFormats; + sourceIds = newSourceIds; + relativeFirstIndex = 0; + length = capacity; + capacity = newCapacity; + } + } /** - * Clears allocation nodes starting from {@code fromNode}. + * Attempts to discard samples from the end of the queue to allow samples starting from the + * specified timestamp to be spliced in. Samples will not be discarded prior to the read position. * - * @param fromNode The node from which to clear. + * @param timeUs The timestamp at which the splice occurs. + * @return Whether the splice was successful. */ - private void clearAllocationNodes(AllocationNode fromNode) { - if (!fromNode.wasInitialized) { + private synchronized boolean attemptSplice(long timeUs) { + if (length == 0) { + return timeUs > largestDiscardedTimestampUs; + } + long largestReadTimestampUs = + Math.max(largestDiscardedTimestampUs, getLargestTimestamp(readPosition)); + if (largestReadTimestampUs >= timeUs) { + return false; + } + int retainCount = length; + int relativeSampleIndex = getRelativeIndex(length - 1); + while (retainCount > readPosition && timesUs[relativeSampleIndex] >= timeUs) { + retainCount--; + relativeSampleIndex--; + if (relativeSampleIndex == -1) { + relativeSampleIndex = capacity - 1; + } + } + discardUpstreamSampleMetadata(absoluteFirstIndex + retainCount); + return true; + } + + private long discardUpstreamSampleMetadata(int discardFromIndex) { + int discardCount = getWriteIndex() - discardFromIndex; + Assertions.checkArgument(0 <= discardCount && discardCount <= (length - readPosition)); + length -= discardCount; + largestQueuedTimestampUs = Math.max(largestDiscardedTimestampUs, getLargestTimestamp(length)); + isLastSampleQueued = discardCount == 0 && isLastSampleQueued; + if (length != 0) { + int relativeLastWriteIndex = getRelativeIndex(length - 1); + return offsets[relativeLastWriteIndex] + sizes[relativeLastWriteIndex]; + } + return 0; + } + + private boolean hasNextSample() { + return readPosition != length; + } + + /** + * Sets the downstream format, performs DRM resource management, and populates the {@code + * outputFormatHolder}. + * + * @param newFormat The new downstream format. + * @param outputFormatHolder The output {@link FormatHolder}. + */ + private void onFormatResult(Format newFormat, FormatHolder outputFormatHolder) { + outputFormatHolder.format = newFormat; + boolean isFirstFormat = downstreamFormat == null; + DrmInitData oldDrmInitData = isFirstFormat ? null : downstreamFormat.drmInitData; + downstreamFormat = newFormat; + if (drmSessionManager == DrmSessionManager.DUMMY) { + // Avoid attempting to acquire a session using the dummy DRM session manager. It's likely that + // the media source creation has not yet been migrated and the renderer can acquire the + // session for the read DRM init data. + // TODO: Remove once renderers are migrated [Internal ref: b/122519809]. return; } - // Bulk release allocations for performance (it's significantly faster when using - // DefaultAllocator because the allocator's lock only needs to be acquired and released once) - // [Internal: See b/29542039]. - int allocationCount = (writeAllocationNode.wasInitialized ? 1 : 0) - + ((int) (writeAllocationNode.startPosition - fromNode.startPosition) / allocationLength); - Allocation[] allocationsToRelease = new Allocation[allocationCount]; - AllocationNode currentNode = fromNode; - for (int i = 0; i < allocationsToRelease.length; i++) { - allocationsToRelease[i] = currentNode.allocation; - currentNode = currentNode.clear(); + DrmInitData newDrmInitData = newFormat.drmInitData; + outputFormatHolder.includesDrmSession = true; + outputFormatHolder.drmSession = currentDrmSession; + if (!isFirstFormat && Util.areEqual(oldDrmInitData, newDrmInitData)) { + // Nothing to do. + return; + } + // Ensure we acquire the new session before releasing the previous one in case the same session + // is being used for both DrmInitData. + DrmSession previousSession = currentDrmSession; + Looper playbackLooper = Assertions.checkNotNull(Looper.myLooper()); + currentDrmSession = + newDrmInitData != null + ? drmSessionManager.acquireSession(playbackLooper, newDrmInitData) + : drmSessionManager.acquirePlaceholderSession( + playbackLooper, MimeTypes.getTrackType(newFormat.sampleMimeType)); + outputFormatHolder.drmSession = currentDrmSession; + + if (previousSession != null) { + previousSession.release(); } - allocator.release(allocationsToRelease); } /** - * Called before writing sample data to {@link #writeAllocationNode}. May cause - * {@link #writeAllocationNode} to be initialized. + * Returns whether it's possible to read the next sample. * - * @param length The number of bytes that the caller wishes to write. - * @return The number of bytes that the caller is permitted to write, which may be less than - * {@code length}. + * @param relativeReadIndex The relative read index of the next sample. + * @return Whether it's possible to read the next sample. */ - private int preAppend(int length) { - if (!writeAllocationNode.wasInitialized) { - writeAllocationNode.initialize(allocator.allocate(), - new AllocationNode(writeAllocationNode.endPosition, allocationLength)); + private boolean mayReadSample(int relativeReadIndex) { + if (drmSessionManager == DrmSessionManager.DUMMY) { + // TODO: Remove once renderers are migrated [Internal ref: b/122519809]. + // For protected content it's likely that the DrmSessionManager is still being injected into + // the renderers. We assume that the renderers will be able to acquire a DrmSession if needed. + return true; } - return Math.min(length, (int) (writeAllocationNode.endPosition - totalBytesWritten)); + return currentDrmSession == null + || currentDrmSession.getState() == DrmSession.STATE_OPENED_WITH_KEYS + || ((flags[relativeReadIndex] & C.BUFFER_FLAG_ENCRYPTED) == 0 + && currentDrmSession.playClearSamplesWithoutKeys()); } /** - * Called after writing sample data. May cause {@link #writeAllocationNode} to be advanced. + * Finds the sample in the specified range that's before or at the specified time. If {@code + * keyframe} is {@code true} then the sample is additionally required to be a keyframe. * - * @param length The number of bytes that were written. + * @param relativeStartIndex The relative index from which to start searching. + * @param length The length of the range being searched. + * @param timeUs The specified time. + * @param keyframe Whether only keyframes should be considered. + * @return The offset from {@code relativeFirstIndex} to the found sample, or -1 if no matching + * sample was found. */ - private void postAppend(int length) { - totalBytesWritten += length; - if (totalBytesWritten == writeAllocationNode.endPosition) { - writeAllocationNode = writeAllocationNode.next; + private int findSampleBefore(int relativeStartIndex, int length, long timeUs, boolean keyframe) { + // This could be optimized to use a binary search, however in practice callers to this method + // normally pass times near to the start of the search region. Hence it's unclear whether + // switching to a binary search would yield any real benefit. + int sampleCountToTarget = -1; + int searchIndex = relativeStartIndex; + for (int i = 0; i < length && timesUs[searchIndex] <= timeUs; i++) { + if (!keyframe || (flags[searchIndex] & C.BUFFER_FLAG_KEY_FRAME) != 0) { + // We've found a suitable sample. + sampleCountToTarget = i; + } + searchIndex++; + if (searchIndex == capacity) { + searchIndex = 0; + } } + return sampleCountToTarget; + } + + /** + * Discards the specified number of samples. + * + * @param discardCount The number of samples to discard. + * @return The corresponding offset up to which data should be discarded. + */ + private long discardSamples(int discardCount) { + largestDiscardedTimestampUs = + Math.max(largestDiscardedTimestampUs, getLargestTimestamp(discardCount)); + length -= discardCount; + absoluteFirstIndex += discardCount; + relativeFirstIndex += discardCount; + if (relativeFirstIndex >= capacity) { + relativeFirstIndex -= capacity; + } + readPosition -= discardCount; + if (readPosition < 0) { + readPosition = 0; + } + if (length == 0) { + int relativeLastDiscardIndex = (relativeFirstIndex == 0 ? capacity : relativeFirstIndex) - 1; + return offsets[relativeLastDiscardIndex] + sizes[relativeLastDiscardIndex]; + } else { + return offsets[relativeFirstIndex]; + } + } + + /** + * Finds the largest timestamp of any sample from the start of the queue up to the specified + * length, assuming that the timestamps prior to a keyframe are always less than the timestamp of + * the keyframe itself, and of subsequent frames. + * + * @param length The length of the range being searched. + * @return The largest timestamp, or {@link Long#MIN_VALUE} if {@code length == 0}. + */ + private long getLargestTimestamp(int length) { + if (length == 0) { + return Long.MIN_VALUE; + } + long largestTimestampUs = Long.MIN_VALUE; + int relativeSampleIndex = getRelativeIndex(length - 1); + for (int i = 0; i < length; i++) { + largestTimestampUs = Math.max(largestTimestampUs, timesUs[relativeSampleIndex]); + if ((flags[relativeSampleIndex] & C.BUFFER_FLAG_KEY_FRAME) != 0) { + break; + } + relativeSampleIndex--; + if (relativeSampleIndex == -1) { + relativeSampleIndex = capacity - 1; + } + } + return largestTimestampUs; + } + + /** + * Returns the relative index for a given offset from the start of the queue. + * + * @param offset The offset, which must be in the range [0, length]. + */ + private int getRelativeIndex(int offset) { + int relativeIndex = relativeFirstIndex + offset; + return relativeIndex < capacity ? relativeIndex : relativeIndex - capacity; } /** @@ -735,76 +875,11 @@ public class SampleQueue implements TrackOutput { return format; } - /** A node in a linked list of {@link Allocation}s held by the output. */ - private static final class AllocationNode { - - /** - * The absolute position of the start of the data (inclusive). - */ - public final long startPosition; - /** - * The absolute position of the end of the data (exclusive). - */ - public final long endPosition; - /** - * Whether the node has been initialized. Remains true after {@link #clear()}. - */ - public boolean wasInitialized; - /** - * The {@link Allocation}, or {@code null} if the node is not initialized. - */ - @Nullable public Allocation allocation; - /** - * The next {@link AllocationNode} in the list, or {@code null} if the node has not been - * initialized. Remains set after {@link #clear()}. - */ - @Nullable public AllocationNode next; - - /** - * @param startPosition See {@link #startPosition}. - * @param allocationLength The length of the {@link Allocation} with which this node will be - * initialized. - */ - public AllocationNode(long startPosition, int allocationLength) { - this.startPosition = startPosition; - this.endPosition = startPosition + allocationLength; - } - - /** - * Initializes the node. - * - * @param allocation The node's {@link Allocation}. - * @param next The next {@link AllocationNode}. - */ - public void initialize(Allocation allocation, AllocationNode next) { - this.allocation = allocation; - this.next = next; - wasInitialized = true; - } - - /** - * Gets the offset into the {@link #allocation}'s {@link Allocation#data} that corresponds to - * the specified absolute position. - * - * @param absolutePosition The absolute position. - * @return The corresponding offset into the allocation's data. - */ - public int translateOffset(long absolutePosition) { - return (int) (absolutePosition - startPosition) + allocation.offset; - } - - /** - * Clears {@link #allocation} and {@link #next}. - * - * @return The cleared next {@link AllocationNode}. - */ - public AllocationNode clear() { - allocation = null; - AllocationNode temp = next; - next = null; - return temp; - } + /** A holder for sample metadata not held by {@link DecoderInputBuffer}. */ + /* package */ static final class SampleExtrasHolder { + public int size; + public long offset; + public CryptoData cryptoData; } - } From 0a0a478294c6ae6799e93a4545835717fbe7a9a1 Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Thu, 5 Dec 2019 13:46:05 +0000 Subject: [PATCH 037/368] Add a test for SampleQueue capacity increases Also remove redundant line PiperOrigin-RevId: 283956203 --- .../exoplayer2/source/SampleQueue.java | 4 +-- .../exoplayer2/source/SampleQueueTest.java | 28 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java index 8eb3bfcb0a..cc15d9d275 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleQueue.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source; import android.os.Looper; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.FormatHolder; @@ -49,7 +50,7 @@ public class SampleQueue implements TrackOutput { public static final int ADVANCE_FAILED = -1; - private static final int SAMPLE_CAPACITY_INCREMENT = 1000; + @VisibleForTesting /* package */ static final int SAMPLE_CAPACITY_INCREMENT = 1000; private final SampleDataQueue sampleDataQueue; private final SampleExtrasHolder extrasHolder; @@ -652,7 +653,6 @@ public class SampleQueue implements TrackOutput { formats = newFormats; sourceIds = newSourceIds; relativeFirstIndex = 0; - length = capacity; capacity = newCapacity; } } diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java index 441ac9e05a..4823a725c9 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java @@ -157,6 +157,34 @@ public final class SampleQueueTest { inputBuffer = null; } + @Test + public void testCapacityIncreases() { + int numberOfSamplesToInput = 3 * SampleQueue.SAMPLE_CAPACITY_INCREMENT + 1; + sampleQueue.format(FORMAT_1); + sampleQueue.sampleData( + new ParsableByteArray(numberOfSamplesToInput), /* length= */ numberOfSamplesToInput); + for (int i = 0; i < numberOfSamplesToInput; i++) { + sampleQueue.sampleMetadata( + /* timeUs= */ i * 1000, + /* flags= */ C.BUFFER_FLAG_KEY_FRAME, + /* size= */ 1, + /* offset= */ numberOfSamplesToInput - i - 1, + /* cryptoData= */ null); + } + + assertReadFormat(/* formatRequired= */ false, FORMAT_1); + for (int i = 0; i < numberOfSamplesToInput; i++) { + assertReadSample( + /* timeUs= */ i * 1000, + /* isKeyFrame= */ true, + /* isEncrypted= */ false, + /* sampleData= */ new byte[1], + /* offset= */ 0, + /* length= */ 1); + } + assertReadNothing(/* formatRequired= */ false); + } + @Test public void testResetReleasesAllocations() { writeTestData(); From 023e141be86fa505ce5143bc8063bc5278654501 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Thu, 5 Dec 2019 14:14:48 +0000 Subject: [PATCH 038/368] Verify metadata in extractor tests PiperOrigin-RevId: 283960017 --- .../src/androidTest/assets/bear.flac.0.dump | 1 + .../src/androidTest/assets/bear.flac.1.dump | 1 + .../src/androidTest/assets/bear.flac.2.dump | 1 + .../src/androidTest/assets/bear.flac.3.dump | 1 + .../assets/bear_with_id3.flac.0.dump | 1 + .../assets/bear_with_id3.flac.1.dump | 1 + .../assets/bear_with_id3.flac.2.dump | 1 + .../assets/bear_with_id3.flac.3.dump | 1 + .../src/test/assets/amr/sample_nb.amr.0.dump | 1 + .../test/assets/amr/sample_nb_cbr.amr.0.dump | 1 + .../test/assets/amr/sample_nb_cbr.amr.1.dump | 1 + .../test/assets/amr/sample_nb_cbr.amr.2.dump | 1 + .../test/assets/amr/sample_nb_cbr.amr.3.dump | 1 + .../assets/amr/sample_nb_cbr.amr.unklen.dump | 1 + .../src/test/assets/amr/sample_wb.amr.0.dump | 1 + .../test/assets/amr/sample_wb_cbr.amr.0.dump | 1 + .../test/assets/amr/sample_wb_cbr.amr.1.dump | 1 + .../test/assets/amr/sample_wb_cbr.amr.2.dump | 1 + .../test/assets/amr/sample_wb_cbr.amr.3.dump | 1 + .../assets/amr/sample_wb_cbr.amr.unklen.dump | 1 + .../src/test/assets/flac/bear.flac.0.dump | 1 + .../bear_no_min_max_frame_size.flac.0.dump | 1 + .../flac/bear_no_num_samples.flac.0.dump | 1 + .../flac/bear_one_metadata_block.flac.0.dump | 1 + .../bear_uncommon_sample_rate.flac.0.dump | 1 + ...h_id3.flac => bear_with_id3_disabled.flac} | Bin ...ump => bear_with_id3_disabled.flac.0.dump} | 1 + .../assets/flac/bear_with_id3_enabled.flac | Bin 0 -> 219715 bytes .../flac/bear_with_id3_enabled.flac.0.dump | 164 ++++++++++++++++++ .../assets/flac/bear_with_picture.flac.0.dump | 1 + .../bear_with_vorbis_comments.flac.0.dump | 1 + .../src/test/assets/flv/sample.flv.0.dump | 2 + .../src/test/assets/mkv/sample.mkv.0.dump | 2 + .../src/test/assets/mkv/sample.mkv.1.dump | 2 + .../src/test/assets/mkv/sample.mkv.2.dump | 2 + .../src/test/assets/mkv/sample.mkv.3.dump | 2 + .../subsample_encrypted_altref.webm.0.dump | 1 + .../subsample_encrypted_noaltref.webm.0.dump | 1 + .../core/src/test/assets/mp3/bear.mp3.0.dump | 1 + .../core/src/test/assets/mp3/bear.mp3.1.dump | 1 + .../core/src/test/assets/mp3/bear.mp3.2.dump | 1 + .../core/src/test/assets/mp3/bear.mp3.3.dump | 1 + .../test/assets/mp3/play-trimmed.mp3.0.dump | 1 + .../test/assets/mp3/play-trimmed.mp3.1.dump | 1 + .../test/assets/mp3/play-trimmed.mp3.2.dump | 1 + .../test/assets/mp3/play-trimmed.mp3.3.dump | 1 + .../assets/mp3/play-trimmed.mp3.unklen.dump | 1 + .../src/test/assets/mp4/sample.mp4.0.dump | 2 + .../src/test/assets/mp4/sample.mp4.1.dump | 2 + .../src/test/assets/mp4/sample.mp4.2.dump | 2 + .../src/test/assets/mp4/sample.mp4.3.dump | 2 + .../assets/mp4/sample_fragmented.mp4.0.dump | 2 + .../mp4/sample_fragmented_seekable.mp4.0.dump | 2 + .../mp4/sample_fragmented_seekable.mp4.1.dump | 2 + .../mp4/sample_fragmented_seekable.mp4.2.dump | 2 + .../mp4/sample_fragmented_seekable.mp4.3.dump | 2 + .../mp4/sample_fragmented_sei.mp4.0.dump | 3 + .../core/src/test/assets/ogg/bear.opus.0.dump | 1 + .../core/src/test/assets/ogg/bear.opus.1.dump | 1 + .../core/src/test/assets/ogg/bear.opus.2.dump | 1 + .../core/src/test/assets/ogg/bear.opus.3.dump | 1 + .../src/test/assets/ogg/bear.opus.unklen.dump | 1 + .../src/test/assets/ogg/bear_flac.ogg.0.dump | 1 + .../src/test/assets/ogg/bear_flac.ogg.1.dump | 1 + .../src/test/assets/ogg/bear_flac.ogg.2.dump | 1 + .../src/test/assets/ogg/bear_flac.ogg.3.dump | 1 + .../test/assets/ogg/bear_flac.ogg.unklen.dump | 1 + .../ogg/bear_flac_noseektable.ogg.0.dump | 1 + .../ogg/bear_flac_noseektable.ogg.1.dump | 1 + .../ogg/bear_flac_noseektable.ogg.2.dump | 1 + .../ogg/bear_flac_noseektable.ogg.3.dump | 1 + .../ogg/bear_flac_noseektable.ogg.unklen.dump | 1 + .../test/assets/ogg/bear_vorbis.ogg.0.dump | 1 + .../test/assets/ogg/bear_vorbis.ogg.1.dump | 1 + .../test/assets/ogg/bear_vorbis.ogg.2.dump | 1 + .../test/assets/ogg/bear_vorbis.ogg.3.dump | 1 + .../assets/ogg/bear_vorbis.ogg.unklen.dump | 1 + .../src/test/assets/rawcc/sample.rawcc.0.dump | 1 + .../core/src/test/assets/ts/sample.ac3.0.dump | 1 + .../core/src/test/assets/ts/sample.ac4.0.dump | 1 + .../src/test/assets/ts/sample.adts.0.dump | 2 + .../src/test/assets/ts/sample.eac3.0.dump | 1 + .../core/src/test/assets/ts/sample.ps.0.dump | 2 + .../core/src/test/assets/ts/sample.ps.1.dump | 2 + .../core/src/test/assets/ts/sample.ps.2.dump | 2 + .../core/src/test/assets/ts/sample.ps.3.dump | 2 + .../src/test/assets/ts/sample.ps.unklen.dump | 2 + .../core/src/test/assets/ts/sample.ts.0.dump | 3 + .../core/src/test/assets/ts/sample.ts.1.dump | 3 + .../core/src/test/assets/ts/sample.ts.2.dump | 3 + .../core/src/test/assets/ts/sample.ts.3.dump | 3 + .../src/test/assets/ts/sample.ts.unklen.dump | 3 + .../src/test/assets/ts/sample_cbs.adts.0.dump | 2 + .../src/test/assets/ts/sample_cbs.adts.1.dump | 2 + .../src/test/assets/ts/sample_cbs.adts.2.dump | 2 + .../src/test/assets/ts/sample_cbs.adts.3.dump | 2 + .../assets/ts/sample_cbs.adts.unklen.dump | 2 + .../ts/sample_cbs_truncated.adts.0.dump | 2 + .../ts/sample_cbs_truncated.adts.1.dump | 2 + .../ts/sample_cbs_truncated.adts.2.dump | 2 + .../ts/sample_cbs_truncated.adts.3.dump | 2 + .../ts/sample_cbs_truncated.adts.unklen.dump | 2 + .../src/test/assets/wav/sample.wav.0.dump | 1 + .../src/test/assets/wav/sample.wav.1.dump | 1 + .../src/test/assets/wav/sample.wav.2.dump | 1 + .../src/test/assets/wav/sample.wav.3.dump | 1 + .../extractor/flac/FlacExtractorTest.java | 9 +- .../exoplayer2/testutil/ExtractorAsserts.java | 1 - .../exoplayer2/testutil/FakeTrackOutput.java | 6 +- 109 files changed, 317 insertions(+), 8 deletions(-) rename library/core/src/test/assets/flac/{bear_with_id3.flac => bear_with_id3_disabled.flac} (100%) rename library/core/src/test/assets/flac/{bear_with_id3.flac.0.dump => bear_with_id3_disabled.flac.0.dump} (99%) create mode 100644 library/core/src/test/assets/flac/bear_with_id3_enabled.flac create mode 100644 library/core/src/test/assets/flac/bear_with_id3_enabled.flac.0.dump diff --git a/extensions/flac/src/androidTest/assets/bear.flac.0.dump b/extensions/flac/src/androidTest/assets/bear.flac.0.dump index 87060e8d61..816356a1e6 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.0.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: total output bytes = 526272 sample count = 33 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.1.dump b/extensions/flac/src/androidTest/assets/bear.flac.1.dump index b12f4dbf9d..4a6b06725f 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.1.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: total output bytes = 362432 sample count = 23 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.2.dump b/extensions/flac/src/androidTest/assets/bear.flac.2.dump index 613023e86c..dddb6dc264 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.2.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: total output bytes = 182208 sample count = 12 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.3.dump b/extensions/flac/src/androidTest/assets/bear.flac.3.dump index 79f369751c..0dbe575ecf 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.3.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: total output bytes = 18368 sample count = 2 diff --git a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.0.dump b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.0.dump index 3a3ba57572..59a9f37443 100644 --- a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.0.dump +++ b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TXXX: description=ID: value=105519843, TIT2: description=null: value=那么爱你为什么, TPE1: description=null: value=阿强, TALB: description=null: value=华丽的外衣, TXXX: description=ID: value=105519843, APIC: mimeType=image/jpeg, description=] initializationData: total output bytes = 526272 sample count = 33 diff --git a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.1.dump b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.1.dump index a07fcaa0a2..a2ad67c9e4 100644 --- a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.1.dump +++ b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TXXX: description=ID: value=105519843, TIT2: description=null: value=那么爱你为什么, TPE1: description=null: value=阿强, TALB: description=null: value=华丽的外衣, TXXX: description=ID: value=105519843, APIC: mimeType=image/jpeg, description=] initializationData: total output bytes = 362432 sample count = 23 diff --git a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.2.dump b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.2.dump index c4d13dd2e6..067d67f9b8 100644 --- a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.2.dump +++ b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TXXX: description=ID: value=105519843, TIT2: description=null: value=那么爱你为什么, TPE1: description=null: value=阿强, TALB: description=null: value=华丽的外衣, TXXX: description=ID: value=105519843, APIC: mimeType=image/jpeg, description=] initializationData: total output bytes = 182208 sample count = 12 diff --git a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.3.dump b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.3.dump index 2f389909e7..6edec0017d 100644 --- a/extensions/flac/src/androidTest/assets/bear_with_id3.flac.3.dump +++ b/extensions/flac/src/androidTest/assets/bear_with_id3.flac.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TXXX: description=ID: value=105519843, TIT2: description=null: value=那么爱你为什么, TPE1: description=null: value=阿强, TALB: description=null: value=华丽的外衣, TXXX: description=ID: value=105519843, APIC: mimeType=image/jpeg, description=] initializationData: total output bytes = 18368 sample count = 2 diff --git a/library/core/src/test/assets/amr/sample_nb.amr.0.dump b/library/core/src/test/assets/amr/sample_nb.amr.0.dump index e0dec9c62c..596f85bb74 100644 --- a/library/core/src/test/assets/amr/sample_nb.amr.0.dump +++ b/library/core/src/test/assets/amr/sample_nb.amr.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 2834 sample count = 218 diff --git a/library/core/src/test/assets/amr/sample_nb_cbr.amr.0.dump b/library/core/src/test/assets/amr/sample_nb_cbr.amr.0.dump index e8ba3c3588..40d99d3a85 100644 --- a/library/core/src/test/assets/amr/sample_nb_cbr.amr.0.dump +++ b/library/core/src/test/assets/amr/sample_nb_cbr.amr.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 2834 sample count = 218 diff --git a/library/core/src/test/assets/amr/sample_nb_cbr.amr.1.dump b/library/core/src/test/assets/amr/sample_nb_cbr.amr.1.dump index d00ae65c7e..774593c0fd 100644 --- a/library/core/src/test/assets/amr/sample_nb_cbr.amr.1.dump +++ b/library/core/src/test/assets/amr/sample_nb_cbr.amr.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 1898 sample count = 146 diff --git a/library/core/src/test/assets/amr/sample_nb_cbr.amr.2.dump b/library/core/src/test/assets/amr/sample_nb_cbr.amr.2.dump index f68b6df3a3..ed109b4e1d 100644 --- a/library/core/src/test/assets/amr/sample_nb_cbr.amr.2.dump +++ b/library/core/src/test/assets/amr/sample_nb_cbr.amr.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 949 sample count = 73 diff --git a/library/core/src/test/assets/amr/sample_nb_cbr.amr.3.dump b/library/core/src/test/assets/amr/sample_nb_cbr.amr.3.dump index da907e004f..c06de6455c 100644 --- a/library/core/src/test/assets/amr/sample_nb_cbr.amr.3.dump +++ b/library/core/src/test/assets/amr/sample_nb_cbr.amr.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 13 sample count = 1 diff --git a/library/core/src/test/assets/amr/sample_nb_cbr.amr.unklen.dump b/library/core/src/test/assets/amr/sample_nb_cbr.amr.unklen.dump index e0dec9c62c..596f85bb74 100644 --- a/library/core/src/test/assets/amr/sample_nb_cbr.amr.unklen.dump +++ b/library/core/src/test/assets/amr/sample_nb_cbr.amr.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 2834 sample count = 218 diff --git a/library/core/src/test/assets/amr/sample_wb.amr.0.dump b/library/core/src/test/assets/amr/sample_wb.amr.0.dump index 1b3b8bd0dd..c744d9b9c9 100644 --- a/library/core/src/test/assets/amr/sample_wb.amr.0.dump +++ b/library/core/src/test/assets/amr/sample_wb.amr.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 4056 sample count = 169 diff --git a/library/core/src/test/assets/amr/sample_wb_cbr.amr.0.dump b/library/core/src/test/assets/amr/sample_wb_cbr.amr.0.dump index c987c6e357..71c6868da0 100644 --- a/library/core/src/test/assets/amr/sample_wb_cbr.amr.0.dump +++ b/library/core/src/test/assets/amr/sample_wb_cbr.amr.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 4056 sample count = 169 diff --git a/library/core/src/test/assets/amr/sample_wb_cbr.amr.1.dump b/library/core/src/test/assets/amr/sample_wb_cbr.amr.1.dump index fad4565195..1c2318d54a 100644 --- a/library/core/src/test/assets/amr/sample_wb_cbr.amr.1.dump +++ b/library/core/src/test/assets/amr/sample_wb_cbr.amr.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 2712 sample count = 113 diff --git a/library/core/src/test/assets/amr/sample_wb_cbr.amr.2.dump b/library/core/src/test/assets/amr/sample_wb_cbr.amr.2.dump index 1f00a90739..8489ad9b56 100644 --- a/library/core/src/test/assets/amr/sample_wb_cbr.amr.2.dump +++ b/library/core/src/test/assets/amr/sample_wb_cbr.amr.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 1368 sample count = 57 diff --git a/library/core/src/test/assets/amr/sample_wb_cbr.amr.3.dump b/library/core/src/test/assets/amr/sample_wb_cbr.amr.3.dump index 1ec8c6fdb7..e18a4ad7ab 100644 --- a/library/core/src/test/assets/amr/sample_wb_cbr.amr.3.dump +++ b/library/core/src/test/assets/amr/sample_wb_cbr.amr.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 24 sample count = 1 diff --git a/library/core/src/test/assets/amr/sample_wb_cbr.amr.unklen.dump b/library/core/src/test/assets/amr/sample_wb_cbr.amr.unklen.dump index 1b3b8bd0dd..c744d9b9c9 100644 --- a/library/core/src/test/assets/amr/sample_wb_cbr.amr.unklen.dump +++ b/library/core/src/test/assets/amr/sample_wb_cbr.amr.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 4056 sample count = 169 diff --git a/library/core/src/test/assets/flac/bear.flac.0.dump b/library/core/src/test/assets/flac/bear.flac.0.dump index e35dcc2081..109cc49ebb 100644 --- a/library/core/src/test/assets/flac/bear.flac.0.dump +++ b/library/core/src/test/assets/flac/bear.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump index 2c394e71b7..a7c8b628ba 100644 --- a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 9218FDB7 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump index c913738be5..7606154ddd 100644 --- a/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 49FA2C21 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump b/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump index e35dcc2081..109cc49ebb 100644 --- a/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump b/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump index 6ad50afc29..488517947c 100644 --- a/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 7249A1B8 total output bytes = 144086 diff --git a/library/core/src/test/assets/flac/bear_with_id3.flac b/library/core/src/test/assets/flac/bear_with_id3_disabled.flac similarity index 100% rename from library/core/src/test/assets/flac/bear_with_id3.flac rename to library/core/src/test/assets/flac/bear_with_id3_disabled.flac diff --git a/library/core/src/test/assets/flac/bear_with_id3.flac.0.dump b/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump similarity index 99% rename from library/core/src/test/assets/flac/bear_with_id3.flac.0.dump rename to library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump index e35dcc2081..109cc49ebb 100644 --- a/library/core/src/test/assets/flac/bear_with_id3.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_with_id3_enabled.flac b/library/core/src/test/assets/flac/bear_with_id3_enabled.flac new file mode 100644 index 0000000000000000000000000000000000000000..3cfa81e554283a29a56f75a8bf52f653adf9d10e GIT binary patch literal 219715 zcmcG#WmsF!6EGSaLUAd@C0MZH+7dho5Foe|cP;J|cMopGtw7P>72G8_6j~gL6{tX= z?dA8sAMV%tet2h}=RC7JduC?OIeT_w7p5$V0{{T9on`cljEo*ICIA5I-(MI&`2qj; zR~YaVApTH<0nz{|fEYj&pa;_vc_2~zuUkbr6d~+osU?H>fPf+#e z=qYF@J~WX0uK}U^3=!=|Yitw$|5K8JHcSZsXwQD&;N)iIU?=4K(#`>Z1NgW4?+bt& zt_o8HU||6OwhsmHZv&tNz{A1C#l^vUxZvU8;S)R}BzOQaVq&646l9c?6l4?>RJ4qb zsi^5`C@ARI=;)c4SXfx79KAG@2TQpJ;1|Y{$IcXVB_FEXh}%)KsF)=VBugt=#Ga&K!`_3 zNC3dX#-RY<;!&~*<16S8P_bKiQj0`nlo8S_&~YecwS1hX6%|M7TW^1R3{vrm6~{|Ww&^?!mNh~f_#{tvLQ@o=%Ra38(| zENluKHe6v!1w5Sxq4?Ayo@F!~iV?_`ZCa3Z#>e?@|JDJIa2}MWc+gKCa3>f}0{{c` z0JT`!*rj+7;Qz&{JP0$%72^Cok?s$fN-qK860(>W?N*RC^Y$6|tx{?Ed^WaH9KrMM?B3? zr>`wys-z75d8vF|JcX=BVB zsw_?{Gri9v(+tbV@w-ZWcUF&%?zg^n(2k_odIcxWfSHk&V$`|&Hu^bh}-b;{BO8V%N{-7KsC(@;4xe6h;5&O{sCm(KU7?K zxJm7?F7)4KKcFoB&G=2-R}aG?l?rW7n-#JE%dKjEwzSM3eY>wz2&8y;N2ExV0JOYREv{YtC{zD+5ARJF{n5!4nez?z8c*+C>cjiz30E{NvrYCRyGjHrV>$Vr5^k`{}CLN#(w#x=}mV2B#>X|bJ_0&woT zj8d?oU>ueqW_&~ktaIe|f{IW(MKYFS2LbgYB$Pcg(vN&5sR0Tp%0ZgY1wt7|u8^a$ z@Jw+T9R+J#98o=5I>Z+$h><9HEfITlg^#Wq*blcjKrbTTdEc%KhY%#!O;8gHZ_P~{& z&h(d1o?APK21egb^m70~Dr|7co@fi=?v-^qp}MT3Q3D{3af7CDn(6RCKgv!RHM(+AM$6d4v|Hg+I>1OeIdcOc}aWZP#NX{sF4AmD7~W!?ZF72{cRIkwxzB zr{$(l^?%I6kW({Q&4Q#GmBVx&6&ueBZND=yROQ^STB_JDtfs|`Y%BI&?#HS)t?gb( zbw8D;u8qfTOmXq?s_mT1mSw8zfKu315Ha&Km`|2wAKA_;K)}T_-?fhj9C7I>v2ZGn zkM*KI*2n;yN7^ZIs#_fa@yFjwu_n@+0njb@gUbBGycz z6-=UeWPv5_QPJRwN);hcEXpb$2G!2EbE+<&O40y$tQ1o-0lwm2Bg8e#=TblFK2rfL z%)Pv{iVHFL#i1oQMRL&>C!Q`%f8t<0?R%Rz0*pGV6J1Uq@U<#VeJD@kI zNTJ$e%dqck9BgJ6kNQ@ZzNFjA5R7J4u#<8thtl&Dt5v^7=cWX+kG*^o4ay0Poc?Bj zaInogW-o-~d#!&RFI+U;vTERM&tn6ZT#x;pM>LY|=#IMU`1)?KuO-<=NYqi9vS`&_eDg-dCW~*+gZ- ztY6ik2>yDDDgk!NOiR7?T-B7V#JqPjZV4s~F6e7+vw9po=F$~ImYhqm1-UJcq20ZY zpB=Jox?EN@?{dx+07dl#o;8;=Kl;p0_;uw)ZUw2k7Cc1{Scg{NezW2r^dzgI!ot3B zYkKFth9w(oycobnvlbARpj{n3a?&XZY4Aw&`#s0TRE`HAw^b+rq=UtYn8c|8pPGHR z!a<6Ps60ONtUNr{^hZE|56>Au8z3SU(THV9v@BMNtBS%7$D(L1#pVG3xNVTySALWs zKgviyuxp?o4U|}kWt>*H8B~yU+KPZ%Z4lE?{H?Yaq3Bx~yi-=(66HBILhZ~)7^oBX zs_O43>I8oW{f~5^C44TyvC^&^ooS_a9MOuI%|!IKA8Gczy|oySTF~!ZHx)dxr;JuM zc6Q-ks@Ip$W}c)3xs+x|4Om57fp=D4Nz7~dNIm)JM*i2^8eU%y=HtvdHPAcroZP(Y z9eZ%N6Ze`F2a!tWx^(YbD%v$u#a9wABqf$i@yQ#e${8p9Vlv|GJacZ#>9-+E@Ax~% z-6REQ#Jx(OxWRFuHpQM-A~Pf%?Y`E-PryIDyHdK*-JZFo=Zo3tx}r2|iD5czuR+vy zsfrVZqqiH< zt)PCI)SA54GMh&uablQaUlOuFXCmgxVLo~Tvypgj3e7i!Od9}GG&&agR?;n(nZa5P@6b0E=rN#4DQ*d;Tt zwX;=KVBpiE5s}`i+Gx33CBL&8g)+ln{>3WV?CGgsx|Qk4%3_ki30r zwLOg=ghL~+9J}Otxy3Q`^d4~*V`L>@mD4D>Sw&=QQbcvZQ{n@fOMJYN*vq4+&0yEa z;2M^8d3aq0rs9=ijmL5J8CFfhHD>=6Pv^E5BavVdSKTpv_2fM*?TSOox1xZ9yXNThbxCqtfL?X|~Xv#ML>49k~^ zN^X6svXvc|*Qk^ci<+{Rx2>ZDTtD?4BEAiVCZbDk+&5Sq4-WjRTU+UeStM9b~tBRXlBHXpBUxieJ0&JvuF4tIXD>tn#0^gRHkss+k} z&u&go* zSG}Sud8T-NX$C-HjwJ;^h5OYyoG{|v5eruG9_UCwax8&ONtyxc#lkdp2hGt+*{9G@ zlb(^VPGcW|oJvI@8^DOXC`jymm=6h?lMD(X#!>e97&6H9YM_d!ha8j#(sd-a(flY@ z=#=rk=1aeX!~$H;YO@iOPGkK5PaWK1r2vHOx3D>Dv(1jPyT!wS&2qE ziI#5%yR#w-q=a7P%1%u;WaNPfKi#`b?%NLgif(R)xQAR`#i_>f4Te|+#5SKy2J2T( zgLMN9#DF5c4CA%KuOG2wh87z?f1Dw%>GMc5rVF#=v0*GRqW{7m@@b|wFTKJBxw8(~XiX4Jpx@#aB@-Q5>2hf3?1 zT`Tv_Qiorj^LDFb$DCDoy78Na1D@Gvo=9CT+OD4!OmbwxzQ|s7VL?QS8QPx!O~$ zti*a(=+ZWE19&#RQSdV7b|z40rWvAgmBovV)nV0tR=(pDPIOn)Qa2npHUH`!5N8)?v&GB5si}trU zHP2Y=W`4IHDB|sO`W=Fy+Tq|Zo z5~+~&$0-J=aR#YX)9oNubY%Qd;Ky1^>SF`~)mX77F_A^exF9~VQQ?F1(88q6U{kCo z>;M`iM+I=I9_8Fw^oLRi=%Nwute+}x8i1`Jb5M$(f$cRXb|kt0D-8{IM6_co#bO*8 z4B&&nfB~1}l#bWV-J}t-o*Z2ZsCz4!F%W3#7pgUKe;TkFLNBT1IF+=x zDH+S7WYq!cE;}@v+%} z9jp5C9FCEn{#K`5!AH6?oGxG^St!m4@~@2MW`Xrzu7N6ZPBWI|f17IyVNQ(Jv!vq#C_~@b9Hz|=!Z*X9 zn!}q~X6l}bJ{o6obj44{{UFvr7S`|9YYupDm-p6?u6I@aFMEA?0qH4v9o*&JNTi2) zn`(Awg?HrTn`D-lB5&Hki-MP&9Th{nZ@Q5SWg2JPTHwk(2c6%XU#65823jQDq%vo& z){H8O_siRIO<{0|K;|=yb(q+>g3fPgeKVW*o%XI?^^F_flaj;tzHKP^7-Jc%$zr0` zdU@5^$6JrPTJD0A7GkSt&l*XkU;f64j(SQ?xS;tps{oibpFd(l+;ggb(dY5^TX%;y zXU9UVwn@?K)67z8WtOr!_wkAki5;K*0q6^G!~1pX-(_J+TblNDU^v-WmLD%3+r_u| zWMa8lzJ||cq|J~pg$ODQ=8J`rt%XUt#qIk2YLbfH=!@qo2FMoNKK{G7?mRmms1uSZ z;u%`f5o=~C<$PYED(bvzNG!++M%p`j?&+X&9i}JKvMURY%B<3?G&k1egjTZ%^g@Dt z8p_7*b$if0voRT?>i2ZdN_VB){sD+Y+$=0V$$T?SDLwh>{9dT===^5uxrRu$0LNk2 zT#M~He8!27Bn`Ph#Nj>4{9@$t_*Qh{_ODApz=G5VWgqeLeiruPYSSmJ$u-dB7T0z; z5*~VbNO9amWP>tyUimQeB|OLjQh?=($TG@o!DSbx$GEx?ioJ%LD=4UgnOQZN6-#4j z>Qc0_nGL8Z+_z;|?`t(l*rc6*>*TdV>)T~)v|}nM((mg6S*xFNs;DAu8g$$37c|rX zB*}9HB=MQ}aoZ|$=zcu&_a+7m6xgcOc}MPXF!o~LaVontS9VrjaLe;cvDHc1NSX^Q zOgXgDKNQtaLEGoqL3;DFJVtedZ}b-Tlg@mi-tSgfW}#7vgj(r%0oVm=m69S??$zqO zT(14=?DtA{5VT#gSnl?L0Y6KLYMj|0^* zO0iiA>VD1@K%1Hzqr4j~%*h!wl>zb80M}d4PWaUZL5XSKrECubTW8xlHzcJObBGvd%ROd^YpLi(sIU^{P!; z8A=6{p&^+gRom9fi_ftf7N$wJ#j0HJ@F80HB}4jnCpZ~&C;Q>Ot6H~A4W@6)VN^-- zYij;Qh{Lq)uJ{voZeP2hRZWcOBLx9wt8x53#v;bm@7b>%k`4j_k^WkDwC=)vBAe2= z@us7{4CNJ!)uM7d95;l^oc3UEELiqVcS^LWH<=(9B+`~2D=4mCjT08Pm zH`e+NbX9eBDk`eJpyKIZoya(~QTs``lvNB$bfz(%Q{`ZnN5;*l-7ymGD#M-4)|_|DGvNuIdo5it<%auo9RlxvG>tR_oA2Lr>Rc)*>X*I%Hw*9SwO%$JZyBJOufA*u4 zE?m|LLZCAdj;~V?m?i^I3wz-ln;nkx#{_o{l0mO$gds19OrlR@q>#zRz2{9R4d=f0 z(#k78q9jxhp{`7Qpd~!XsP?FmrGfydCh|(6%efo@+&T{)IOs?P`hg5yO0l6+C0j}% zBKFBm*QS{X5-$&|98$iF`9OV|lhCYAD`ar&FQJEpMKGkrLlYa43Y`Buv^&aIb2LBv z&7R-LZh7J#K&qJt*&Vjq@BL-3ThiebM`TM?`G*g#G%gjXzsjB@%oIBqapX2Es%LY{ zG%}Ij^m#na%@&mvG=4hmfgp&CKEq4W0 zP2X8&Y(0L+et7Z3`hVFQ&n1$3$BXKX+8}=1L|tXd*^!5wI-nmS4F={pxWk_n*lw!| zdmRn1KZ-hO^sjNes;Vjf3Lv7uw3VerA8*$M(en#C!@YaIKv(IfCy#udO`&gS)({r|jE920gsIW;;W?d8o>68(2aqt86XklBty!Sf_$4W|?D6y|v zy;PX0@&$or?CA0D4R+;AC;)!XqQsmo^D1t*LWv2+RUp-rH?TvjEQ{V*Z-KLN;snd&~GnR*>D(9iRcqj($*Y3*oebOs|kxLi!iO+(`u zdxqwQI4MI^2}&yg91^JSrMS2NTsMd?z}g1GL&;bxGdmD57rvT^9n13rQPK{eB$Oc` zE7m5Jam9m@(v!0)TvaJG3p@oyXfU+Y0*gui>Nz@*5>5EBhJfLY#M04DSM{)R6AE}Y z_pu5}!}h_4)59jBsI9|dLiFkbhsk{k^qv-fXU_v1*+4>hcyXz3e1vDfu9_5|aDSDM zD+X$s*tSbP>i@}Yuwz1uOh<~Z*Kmo8t68wf4t>fLu&_SqZC7crVwEJXL)Dl}F#6JN z7TO+8f^}TVcjYwD6Js4(2~DRreHB$&S9QH@(EF^+%ePk!tJcJAZbQu&%CD)G7suRV zs^y(I)Jvkd1e_nyy|%esWj$e=KQ=^i3q-0|)dEj+9#I#(8@%m2+*?svAJM~7Uq1Gg zz7E$f{j8~0%sE=)RQUW=W_9v#tyBjOfIHiV6Z$1kAeTIZHKn{QC(%@ByO9%7<)RI6 zC9#sG&H0%4;#U$08ejRk_$b;(V#1QVjw3Y2IhzuS$ZV90VH1wgmZ(vrGk`6zCo)Cz zBj!~o$FYYLv!LaPioZf&>nO-%jz_qHJpGK0Sdy3`Mw?I`ewexD@sl{ojcBHVVqeh& z*lJH56E0_RY7>;;$kV!!Qcej=IpC9YZEuHfq);NPu&b)Yl1Tb6;aE=c^y9->Nq#e( zY+!cjj}3bT3I^ti>5%An0wwkq9Y5#qW;QBOGJ*6Ho{sa+7=;|2h<7AgXUyu}dhdR| zbG+`hSoBtVMf$g6%X?_yL$mCu`I&%8gea&{e|&6~(W#rkCd&2uxxnc^Kzz%HD_*!| zoBIa^n3>DeO3Ki|ZglaTfT9|8 zEC%4vRJfhPX)k#NPJamhTT5#Lz`Ah|05u6IIMR>1Qd{gpzafr3OBHnB#0k1Irv>4y z#xa3sg#b!=Fs?jSc%Ue8SVAclyKRI@Vx-@k3zD7^a^T$H7tJm*^DgVBW_Ttpv|8-r z4*d}?7uQJ7TN?c`W2mEL0j2@gF}K|pp`^#4kP@h!Zu*l{sS#;FrkE+S*rB1ojvL7< z*}9;BO#rL@P4h-*qefT}i{X1yNNNg4o5881n`Lym?67Od8$v$&Mq~vq5k=nFL=U*# zR;m`1A#=?Y8}7K}dvc-zz<3K%JC#xpfhV|^^I|jTwMo)kVH7m{PMMX_Ol_bGc;rC) zFPE8wsEI_T0weEz#YZk?w;ZY&_QNreo(vnNk_OtjTZG76=iSNdkJ3V_<1d)-`384M zhKdLCkU1NkxQRPy+|#Dw-^yvWk2@7+l!Ns78(XC2bN#B32%}p=J%Rl3c}=oPKD{WD zuC?dNwSk!qyr@I%oe88y^8~W)xv>0J9gMwDz|wrZ$T&-?+{7f=#q2(fh2TYQO8eA1 z4D!j23aB!{jjK0IdP_7n9qmm5HY1mOtB|MSdT}Qbk${NWHfI@MkN7+apAGxKthilS z1=mK@q`%Gf%JlP@;4$;Jo<1bCFzpIG@y+0v=r`x`cRU=YQ5zGi;Y(6eR0)lhbP}D( zq(gF8J4bT>TvY%7n{2=+Wl=fSl)aXD7GOcdrxdEf4X%zz8XgDD0W#)NWR?KoQ4mt$ zz9=Ms9V(*&z^xr3qy`);V#8~6ODji;iJsVai`G@jQudz#QrjD>m0?rRvPOWO!m88a z5}SmGvf6pgT+{e!OK&LCF71p={w7huL?H5P?w)}Y@i;yuG;!DBoL>F8{QE1GREU&0 zTLDSR=${GsywRVAQNPItTBtfuzhAwazaNor36L*i9A0*=ABY)zeev5=>9KNXLQ4G3(#Y1!~rBK!DKII=+ov4kD0Ha{KXx1^% zELcf(hBUGRj}&%1)7@IQyV~NfSJPUHBImWyqdE;I)Hv>NyaOe_W`oRqDaU_s;ILXM z6;O@X&Cuc$YRv=_Oj!$ulGr#1_=ircwsM@}4IH*Cjj@4`3z+eyNQgh-uu%*AsL6hq z@YIJKsPC1)X?) zOqntJX%h_N>L=W-DDn2wl?2M2*fCM;Ju8gN4xXsX(kFpcSUl?G9^gWt%vwiMY()Km z{t~>-vSWu=hZ**8 zWmw9|=q;n$$6~oa*WWlX#ZX_NY6VtkF-b`DLXzxyyVIrSwWek63TY*wl|5twez7Cz z@=LlkSZ#C#tk^``K0Z|**70-ox7-0*xmC6FKE_0kOAIx&P)3OO9+7G^=gb2HYLMVg zYd>R)MJ)DES_?B=sM$2LkcLk!Fg!|=$-w2o9RdPeXL_`;br?nm!pnNEN}Z^hUkAeC zaZK`kkf+6NY`yk-nf)^b^wYBTDWF*JCr;Zg)r34I=Z1oLv&yWQ{)csO!6rQ)0Ab>l zbp@yVrQI=2ChUq`Rch>dO-b!jQc>k~6_5lzPqC7u^7)zV%`$KBkY3-mpnm&1h56O0 zQhQ-jfPTx(;`>CyKgxgozYBfO4NwkU@wl#j$18M8cK!Fmvnuo1?{>{6brpZW^45W_ zHG%8TE`46riiqunO#7(qmgm}rsRph-_2uGQci`DkU>GX{d@pm(#;r{)11)K<`I8J> z2tWShyon>~#=Arl{{#ublu=_91HPAsTU093(-E02W~EG#M-=!7o2>;)j2JvvfgR4F zUtb0h`QaU<`3Hp!#g9Z)J+)01>D(Mk*SOW|R9Ib#2jM{(r)4?IXjiJ^_F-c_Ps2$o zr^Qa=s;NQLuq{U$_$aFr%e!c?+H77TUtZjgTPQoDXtten4eg(CG;OWhg`KV`Rd+;q z2aG_NHpXTAA->=7(|6Z=x`c1!{Id76$NTf%opd6|+_3ldK>50o>z=22ysC1(aDNcp zw#I~4rL|NC;`&7$SbBp4jOr49K^S28;#f?~tSt~~#HMrEV8=l3Gn0nx-#_F=Stj!3 zX65ymKJ83juwz<>#MtNtYq2rC{=Mz{4O=gL(M&}JQDO7eb!iIwkxM_1s^xJVM2p$2 zCvUyoZf=t7JynO~>65X)Ok1_er0s2%F!YTqWqHH)NRwV|8D@kvt`Py3Gw>QQ3Z znr@>vM>|gaD7g}KwUT|RGVzmPq%=K|0=9L5?ITf4adzJR28e3GB)#k-h)GoC zaqAn!v938j3$SL=ko5v^k$P-3(J6+6^+J#JAvKU+N(t0$pu1g6VVgkcFnTa_=dP_M8FhFFM_w8j z$hjj@P~nY*wlYV2@Nh1T2Tg=OL7?JqP;M}wU z-RuqQdM{+}m88s#X}^4HuLRNi%6n5*JAvJWe5?H_UdMy;APSI8T2 z@XQ|FCOm+(i1QW>aep~IJ<0p3XUFfGHZ-e2X!JOXz7kDf@MoDbLVU~G%*rEd^PI6m z+?D#`kn&5oFFDz_%G1jELvlbozVtNTgPn1mP(4m0gJ{oJogsR&X8V;dSLC!**_t^wJX zX=AQo!a(Aw7YrGgZUbK4&7;pV0{V=1b2WMp?2was-m10|sQaMvTgzyoRK>`AKKmC? z4wIZ1n=DF}{j16z`e2!4qRa+q!A!4Tg_?og`$(A4EW_i`26Csp{m-) z#voqMl#qvr9VkkV5uDH3)ySN$-c(BTv`6NXgE_%LoN6lE$}aegvTXGnOpxD8t1ois zbhJ2_vmZI;$s8WlKc}H-&0zK0E@k~7>&PpXw;V4_P#pTLCL0X5amIi%DAxeQyveWjwh7AI(z4o)82XC5skCQ2ju~fYc7sqbLsJR|!v=jb*4*oa>XI0c$zWse z2aDhj6aLRa`J^X`Lko9CohSX-{P8$rky&1Zi@ysd#|6;N3qjE3?GTd5B=qvH9s>YH z_jMDgg|MmsM{m-ohnIYTCt0x?p+1gbw!Xct`x(^jq5zRIK7{bv8^Q|0&68P#Wc z`o+#u(Ju#2 z6Xp16ABE4wS3YC^Q>=C-Q69|056QIG#Ikx0ztJa5{6gM8vPhcfsGt*_u-sv9vn&#S zvJWL~3vUjQr$qO>BL67Ns8GE~RkFS>5KYxU*%Z8FqVz`QTxj6sMjvNUA5+THKULwH zJxc+RIIv7=$YRQmDnFoDAO&g`?nH>|!p{4Yh@#&+jzk-XT1fIMLcm8pWiPAQFu4U~uSctaOOw3rheOTzU6qY@{Fsw<^2c z%LAQV=wMuW==a`S8;^dre%(?an#{)M82)SDljF;rzcRWl_b&0&lE_4MxT_8%5)+CMVnkjvXO?xZKk`Ic~gn_3f{;n9lhkAt#7rCVOsvq?mnB zK$@2io=HSMl3@&c{J5=YTMuOI$2nBgf0T_=Qx#ZL+ew?TlBhTD-?0+4+EK6W0wwu? zjMh{evG&v`QARnCc&%qbP&pt+m(|3zi8V7ev-FBXDt+Y|1(L3EE1)*)5|VeT%i!1> zTV*Ghob=$P1y{T{;V&-S$w{1PKMY3oyhPP%xG>h2x2qbM46cU~o3-xfWW`{Y_)?k@ z_NoxfdC^n>CmzuNtlOdE<Yd&Ak^+w>+=J5tjDCC9c=-twggon1h?YIp5l z+u3I~X?x83Qf;LBa4fp~(~H90;S88+?T;xAz{j)Gg;Q68&nDumG&r-)x2bBfob8*S zP*OpDJ@+J9BaZE#Ci(^W&;SAF=Z^-LK1@kwk!TH-PY1566rjIyKKFUS+9GS&T)sj8=7oWW|Fp zPnt$}HbR6wqiOZb{Emh2MiQ_;EJFL=raF1%;ag3Pc?MCImpk+ATc3_nYG5;nh&vrGUY;I z$68VMP|ztxEK(pw6*-_~AZoG7j4FeOGOX%$VC+}|1E#rb441@T7RUh6yx$0X1=A;4 zQ@-(ilO`7(U95>POW@Kon3>OMZH~^_!xn$b?B&+h`b?+%n`>l#YGgM$AE~!8Pb`qL zfi(DnrM!Ph(ePxwF#EN_<${hW-S6Nbx#(_6c5vNF&S;>? ztLoiZYili4Q=6>en^=9E{l98~OibL5LuamyGL#I`OnYz=OlYxyP?>7d^~B@*BnyYE z7Bre#5c5R}(q_HHV`r5e-ogq_EVkhvr{~w$+E(VJUA`b_pl8D%qwN5hfl+s% zd??VD^GT!iqqLOimeG9YuRDv=&F4|6oLK6wpZX-!@3c2oJ4kh|MU6<(8fsYm@{1!4 zuNB0rHpSvrqR$iEH_sf){?jH;t>4){_z!^Ue9TSP`Exl|b)BR#4!b*(RSRBdIJYJ5 z=lF%iZ`Cq+L)) z<>dXAqLFcIJW(hBt$X%Ufl5N!R@nAmdvHIfw>Qvt=4us8^GaS2dP1-R`_Ja zPPBJr5`oSuj)r;7=iSweuNB4iXV7Td)q`voAd%f19GCLTukK>>GajcDU62lXtTe|A zo~X?877~c6d9Gh9ZztfR4B2wxZdqdQg#;_w`!|~SmX~H1Jm#4yU9LbBoe=iO)G*OB z=7W7eQ#iHtS?%7tqaOB?M1bJ;@O@NUtJJ)ZkDeTFggku`j9yjZDCSPRvI+9k?-@_3 z%7#r2K`7IEd)knP3=$5ho8P|lWWAnN`t@6uy(=rvKO$>uBf3$SE^5ZZhBvg*gId;L zM^S(0z7o(t+bg{vZ$%T^l-QH}@;7#xj+pYe4)!fM>Dd4WsYn;047kKJV{YoqYr0m= z=`ZjiLT!qiz#nh<(lQp@aGl=p?3j_4f9&h*3+#+^;L%}I?G+A*gpH`H$=|noy?A3* z=#Fc>zRf1o>q9C2$r<)1`|G`mmZ*~xop-AlSS`gId!0OkSp>HHZh&BBZ$(9%#1_Yt zZYey)mfHf3&jX5jTU(m(6^bZ@iE-fyQ9j0M>5##WPcC&bNq;6oxG*(G@M3L0Rwzg? zl_kw;Rf#9^Ytxn@{2yQwxK$8L@8iBpHzVp2wPj>=+}>k%5Z~3`>l@S4etkYi79KK9 zLOLtT6-Hfa@Q|i=Dpg>O=q^j{n%ZYrM%pPiPsVh_R4dRgi>SV_+lbW-SP5D5kJ@5# z)@>B-I#I#OZ$+vNG>sjl3q3tive5)o7~wMUXt>AL5fp@}7FdUpdWbs6fnE#4T2(ng z`9v%|5tVYbuJCZ~Mqu7CUZuc_YAhKC@|d*Y>&qlPQ*^e|>*c=tHuw2?x=P1SeLDhK zm6284LwMe*y!|>*nA z;@D&$v9ct1X}D5%Z@kyF#@F>toO;?@nb}D#@Rqc7HpgqwmfAzYJJ?A&oH<-K@L~K3?$ZL2fnvp6|`42Gur1THR41y?0Ia%W9)%Tf>vv=mei~FJ`5%ahj zyx~Q$f%Cq905PXmk}@XfyAcnC)*Y~k?z~^~MGAq6z zLA`-x6AIShCvBicTqm|#6-T)qdk^UawplpWd`h+%gt(ObD7?7z&q?N9tAjcQ(KEsxobrUbUS(Yh>Cf2sg?&WyKtB|x)~Sz zXq)1{(eQ1|LaDlmsm4&Bqr}x+saT4^lrW}{`hqgt5o16>&d3MSjJK6Y%Q((#ej+^K z<`dn$bd2j#OB(<$E1y2X>{di_LHx49xae48ALQHQBsMLW1k(mZ!f;)x?CTyIsJq9G zPc#?HBqof%iy_>wLkpa7vv0V|r99ZxKGQ||Icw;_-2SG|TMcGcLUvvC7=f0UZ9X>h zsapB1h7#8#G(6HgDSqH-e}>2VU-c|puk2L8zd>}Qbp2;P=^2;EQ0X4@oXsDfCb?vN zVvF}}%ja^DD@xAPe4fYeBwPMmd}p>RuLFL{&~t&sTBpP0f*>F|L~ZJn7}x%m)>%)? z?3SW=XP*CN^%Z5o8|jDX8dPrUSDo^A$5l&>PyV~dKLFcbvsX%K&aOnsM7-Sp07>e9 zp8Nys|0TFB`;N8V7Sb#R@RcvB{|A7+x+U>q?SWW0$0KXbL8R|QHA9pvu0#V%KP$b$ zlw(&~YW~RVVHq<0TlO~~Na^9Y&`>;raOKbM+;2Y~=JNfwu*85gr}Ce}C;DF+x%*)n zhwD90?`=lzE7-z}I$(^U??isI?Qi(}a+WcyxDn9HpWW9|sk}57jN`1_>cGcm)$ znz|^|u*fiZ)2P?}Zd?~Zs67d1WYo^gRNzmkm;T|w3O#&rSy?-A)NS?h-KBt5tn{)p zd;Lt2@iTfQi2=U+rDEZC<0kNkS`>8oS*}1b58ZB4K0mp;k_zlqf~W1 z|E8vA%Nt;w;&3Xp9q+LW^DyGmTfVfLh#8I@$rhRbWMvi6LORRs%8>=jh>xSaEm?w2nUGT~ zs^C=Ae+gE*DCk8?@jd<-Nqy3^>Cg0$62w!~OVzcniNtlau)LSFi8FsT_?SDsDLsaB z=Euy%>U?{ZsNl#uwwi1cc>ItEC)XhL?$%ALg4kAZd|DeO$~Og?Z8l&aa(B2KCk#1^9%nQeeFh(=}5c#31OTnhm4~QN(1Lo7><_Ao*|d>!}IV8MoP(DmE&Lon)@ zT*g(x(a+q_U2G0bK*6@LuUf90rszy>$PP;`c&3%g7E_2-S5pHa+PpFdk$z^%YRP zCF2v%A!B>Ja{jHIu6Qf!OGIHJ#Bp2j%dwN=aN&>{aESBPWb!Lr@a;rAyCPRc$30mJ;~eup^bX0yXJS;pY*#vwDD6 zWaeO3m4(g*-2{zfU%%oV8;#;Nb?_tXq-s*b*?FRB*IcU1LtPw}z4s4LuOO@XIY!6y z&yx)~J3oVAhazyhh0N}PNQm-gs+!$0%XOYN{5xOSzlYN>=KlcSC5O}IWkYkfm0e=R z{{aGh$!?Oszy1Nr-hsjr2<&d;)HdCI;|W$hbhi%`v7iYOwETqQ5NB4H#DKr{@;EQs z?Xn?|MH~gbM6LXxA5AT9mruNrr5tV^baM+leKTDs1FR2t&+*9XDzja=Me>f$%wcUy zDB(-qi_oBg`U_3JF~1-Oj1b$&Ke*2oSG{ldA~t> zIi|T15TvVaK(ry-G}*=DDUN9pqOM#Q3sHRZcFb@#Img z%vSTxMyF=~C}*kiJ>S-s`&i{g+cU-oKhmVV_Dc3n#pH$5z);Q@%zrso^GTqRd=?BZc3jc-*_=M$;&Y8v#3rFBlPdV1Srt>b3Uf) z`nt7drx<9I<(F~vGekDxX*+L`cvenabi!ZpgS}baSGv;6f!rGTSvd)AvIoMIgbkjU z?A%Oq_-w(Q#}3|Zi0z+N+R)6wYk`Eh66f2$6L)XpcKMB(UbKDK-*?v(Qo{p)>R~r4 zZ!2e*nns9~?O+HAnRdVby}E6V_2u z6yxg9$ZCK%Rk6`aJ!^X6#dJ4FD9#(JQR9)Qi;}ZJd~Ket{K82v!86bp^C{=*NEIYz^rd= zqazJ=kH*T&I*|{~sLU%xq<(qvXRjR-w@T7)!M`ssjS?ufs-w>xv~=#Y8$VaeWrx$~ zDG5dAR>T%-oGL09vuLVS12TT)2Yi11CeICORh6&qJ-b}NLdm!jsB|8b)PHrxQ z2;O}tZ>i&$>5*q#aQ|*wKYtp6H*(Jx@p6~erHl3}Zmt*W-H-nVj6ie0@?RzKoSsHU zC9~4UI4JgSj?}nVtheo|3p)&lYVu#ea%$*nJbuR>)OcMWpKLjk5;7gBf1q-2q5f$7 zg*~b8nMhZ+XnEu`KY-;wLs_BrJN+l{s+Evmr7GkKO(*aip6I2P57{bvPT`1BzVL1l zqO>|v{{TSbuSEW6E!YQX+%TM~7=wNc+XvN@FT5Ibr^@~uo(yhkS4HB@8NU+~?IIm` zVOJSOKvX8X{{V)vJCqyhj&5p6BgWg%5C+xuCzvBMy;1=b$dR{NOa`k_;y#qoOlck+ z>X{{r3w2%Hw89}vabY9lT>0{NLAG8v+>$=7;M@tE6NfEqT0|)=g)H?^-oGvR9%Id! z$oKKVL1?>j$Vif?t|&Iyx@I0Gl@Az7^7>b!f@x`$dO1vX;THDKKH-EmlCxgl3Lb4F z8Dx|jJVzA0UG4kVOVGTcsIRlZkH#q$gLIuP?7VkB&=B77Leo^tfdpGGF3&S zE>7mKk~POImu_>TTAFHlEVu%0RnPRHg2rIerzq zqZJ;57n5~os_@ns#h6WkpR&2O#1gO+mQ<*oyYsIPksLF2^+%@QlBe0;*<)p8q(5xq zHwsA3l_x-X$JV}cHKyt4;dqspou_e9IAexxZo;!&+)Gx-=1Cs+ps!Qncuzh>eH^@; ziyRwA%MPthtxmY2rxZz1^ELVgG~lTpH90pc8i@h~{HoJ$u{PLu1{6g*K}={GYN1Dx z3S&vvl`DRMSR}@g6?vNzwpn;BHo+&t zkVah42$QW#OY9SWN0VzKan@>G6qtPUp$U%=Mvnp(;Xhu>~i*PHD@|no5ZR@`acJ3Da5e;Qs0PECzUz-j9;_F-XH}jtd9fE2-o)4#{5P_ zgPP*~o{ujYmOHb+(nvlbBEIQ6R(Qjf0*AaJscU1Qq5#rOCJ1Ww-|I~S8m)m8?3>xI z!V61WL15y*${$Sp>x-Wj@XEh)qXVg<>&tbaZKUZ1Ad38tlALlg=oj>(8;aJn_hGVQ znF6|asZ9-Qy%?B}6JR(l8snJF^JpqT$kfWzW02f@Yt-X>c3ksHD@HkTs4KI>_^XW_ z#f8P4ow`}IUWBO1$elea?KnRgu+x`knV**0aa|mdnS;-iSFounI1{h}P^{Vm)Y7Xd zIwmdxK?KyaY?)@=#S@{dr4v|5rf6F@K@w{TtsQWav~@TZ8gKsqnvXj2xfy>SXQzv3 z>}-2Hb<`%~+7QyW2QIbc8Lv$Vl58~irhH*<7c<_vPLBazEKhft3pla)~c^5@j`ll!B`~tv+o&@1k zol3Hek9|k_pCS7H00k@&WNP5f5l`u)`n^y6Ly-M{fOsNA?+fsAULqSm{aU5V<-Wi4 zOT!Ws;2a#E&}07q7Oir*Z`i*SQ3JSN2dDHc#D9KkMVFMr!W2`xwc$MJgxe1f^}Nk> zW0xk0@rmTZGeEC=;2cDqB>X4?e+6>->xXWzYaA-#?QUElzhlQNZB@Ru=QD`lX8`;jHGOtgReR~Le4CM9w2n;W|KgMr=;mYL%rl|)&eR-Bbbc3ZdhTVa$0hMhu zGA@bSEqAk&Km$t7NzqB3mxtQm+*87>Vb<$mtM*5SI$-(!`tdSk$%iezj;N(5(dT&P z9{v@GyNAD*GiPvgBE5VWR!Am}dB&X;7L0&8jeMfDO{PlGBQ6ypa+ByQM@Sna?^6V3 z8|_&?vZK8sQpbGlvjk*Pmj*`FK3Z(o4ktW{EU}N;s|>yNAfQzNK*pNVgqv1hD~|C^ zFGWKmMI-~)tzSkGjX&;Pw#v4KR0-Ic#%-cvtmt@K0B;y^&-I2FZIPLI{{TpNR|g}K z;Y;k@LeYBv0EAWo6=3bVfX-k@N%Gv(W97H~M7(7q!kDy`1Y3|l_=&BTDlLM>*33JW zlFQx8zy*W0^}D$y&{Z^hmI_ghc3fIP3oEly06*3P{43$|H^=!4dfDpa{aBIn-Xm`1 zo%{B$45~uliu>L+MLcPv#mK3ZNd#%7boxTQ4Uz;*Q9`gQQUTVT39y{Ghblb@GFx{$ zw@~6#Qc$2ltnx$3EgEB$G|#1YH;#CE>xb=CbBo(syoSPDL(Twat$uUz9}}5na#6H< z__HY`v!CrJwCp0@(KgsC&RtzjuAw9$Bgm+0@UFj#_Ofd*r1hwjk*rf}yKgI6Qb7vy6^x#atZ`>?z}G3ZQj+?zOb~uG z;&ZY2Egq%>(%I_xW-n~&QIYUajm3PnPCV0kI$F_Vh`7rE!Y#YZM*R(|lR)NLynqy9 z`0h@3QAQ6WVE3bp#c$c-t5+Ddd3L2^Ge%6H@+LpdwdiBQ_>xXa(iTPK7Lnu_`na0{ zzczS<&C6sHkwIjoW31QK@gv92kIF0j9tKx9J((_I_?p3+_s^=$cSnhj=)vZHVYR-* z9k@b0vEx79H523Gis-21e`c{w!i1{f!g-v=u<(b`s%&SoteNjrXZyyAiu5-B0C6hV z&Z<8%LP(tuy>37{pDj&P5^R|>3DTglGoALD?2J*)!PCP~|^XrND#o-_k_)0U5DH6Tt^#^id^auP=d06y}d4=PQKA%sC9bmgTaQ6cbyB4lYp147yU?jadq zS3XEaWks5a$FUCSEvD(xln(%(cDa`i8h2fn=FwFb?tl(E24W#+p9N& zmai?f^#-$^2+y+Pk*!3C1#~W!jcsU)(j!pZGh)YQT z)p#e_DpWl}PQ(h)V@p9PX&&YFeZ)PphOVrfGNxT8;D5=lhyEhN__L|6XRm@@cxd3eW5Hgv zX)3b+thZ;<*0r9VSJEN52yKPqj-sB99X(a8^xj7JNTJ&}Crks*z zpkbUMZyG~|11SOsuLn2C{wqF<7AQ2V=rH~VWhlzG2psgUHz&$Dy&Xz1f~0bNq28~D zU;DodxOI|5DM?nf?0j}O=lxPvd3@Zi3rCr{^Nzk=an-G7bu7uRqgbN_NgqD)$;kAs z&M%YSG?lEVlz={U^Pew)xVE%=d~B{!Nu4)nm{qOaqF%aaDU}#-f$knk9-QmT_`XZT z{8QLx!x^vK@*X1L>)aCSCBh2XR;@abDRDftudm|sW0h&_@iOA@W>N`5fS{Cua&KR5AEIfs+Ue=3sH11UZL00-^)5ufuq1mFw8)?JL++sLWX}P=%tq5}F`Jk2p zgc1^yDpXA`B*Auh@R*W!-f6OijkY>ahzTT(V@erCgnu>wCTlhbcq#*Vq*4h2X)%Xk z`>6sX4YpA$QPk`zZK08njKl(C&Z#gQs3&?>4Tu4_CYcQZJA1Q6%1D{Ags(9G$k^1$ zHc}*LrA)1`+Io}Hri~Lvae#5nvph291&B8ClijPhD1cC}(IEW(b>nhAI#bNDCUvet zsyQYvSBG9(;+B_1%birb!g8NE-n}J>N**m}#pS1IlpJ|)KDS(4t!gV#j%K!u6jd)r zJCknNdkI<%&_kW-nO2UWwLwyOipwgce$AmK^u3)c7;g&}!q;hbk~T`0t#C_`o2au@ zf{<5d!%1Fb;dd@4{{Y>JnCH!VWUN22%3`dr)ym5aEtXVHR4B;<&b?eYTVJT=$&IE| z$|I5MTV3qS#+c%S>8Yt@R)CN?3U*U=sP!MS)%jF(i*0TJt9;m>zZY@Qdx9Yj!jMQ8~yn zsEV;w0HjWa4@v|A4#Vd_4k}5FWb@L15{ICm05zjv0TM?_2him!FaQBX6JyZ?dT&zE zY3ND>ECE4Gm7(4spaGd8Q|Z!h6js_uO0?Ag z>}%vcTjSiNaXtPQB}pXDSW3|A33;WJB#k1zW5L1GJy%TeF4yqK(T)2;gr$0dYwZ3P zJX{j?dA#gatsZc+kV;H*ucS`)eDsq{>9_*#y2hG9$pA;~uPfy7`D15y9$TZ^u>>`B zY?j{lUO`Hat$a)y$2(o4)2dcrw}l7r$FM9#J?kMSxlt1xBhtI$$?(XsEgac!sUyj_ zuZM21JY6liGutRs`zA?8~z2Y$c}B z0NicgT6$ zr>;XNL?uEbok@~F@-#H;3U6Rn4KU)@#28w_K_v*j%vIzfiUeR13DBQTl-TS;VkFW+ z9DtCLR!njpbl4UUkXjvLvXN*YPUOMqK+r%3O?_!FW3-Sp^`r@tAt_Tv3=pjaOKBFB zjyCE_Ro;x84V=(~lMGY~`Hsg;aEu~6PIwTE$&h#{rwi^^EuOLa@2A{T+QhO6@2}uef zhQ(&z30pSiFu}N<>o3l8ammy~?X{w38wQeDvp;e@i{37^v+N zn>+;N%V?lF39MFbLiS>u6X@r7w!;lwldW1|;SiFb>V~t@y)GVno=eG`e2*5XBhHA_ z!a(@f&?lqLVI+|NQ|$$VDGJtUwMc2%v%*;G+%=4~i(4fwsRkBbV59(?aFXF3M4n2PjQMhi%A5jyWu z0+TyXNbN|P3K~aA6cRc_z@PwPbf5rcW(TbR(C8vG_|rn6$S`$Kf_9|QX%-!4Ak2Mg zEVc%L3JXEhYZJXI1Q**#%IkBLMhT6NN?ueAS)s$%=F;>fbKO1QP~|+Umz9NNkM4AF zvbZzYI4_ISY?WBwue?fOAjHA*uaW0`bGwSGJB38dP*On+LmUSgzk zfXRvaS5rm4*3%sJA!~DLh64^Yl1KqsO)tjc?!mOx4Q}$?EV*jq2lJ#H(^TU7 zLsCgm0vxnyd6#S)3gtgqYsvc|)$~C7DgJQ~l#!SZ-C8H2DOksCoMjEIX$3B(QBt98WX&jQ# z7$!{UYSLoRii*Sm^{f4X4IuNU-hu2MA+do<^+1&dL>K~TB|zPcR8KjeK-B0WfCcCTD7;Onnz^6qg!OhNzfv9XcphSygmhuFB4%y0|DRIg(@%wKcRP z_HR17r?7@`8#Sp9v~oQM-%k5{4RFdS$;L~wc*(7!V+h1q;v6&X`?mreO!sOh+&cm3 zT$wPu6Y`4D*BtI@n=tOM%ZqDA*|=o3<7@FxPPN?(>QzkU$p=mQG1!#cwljX0O6r#4 z&U|laGv0VA#>?Y|^EtSW0dRYb$JkIl6(uKy&RW-A9^nwUb zO2Hb4+;pxuKM7jV5{{1o;@bq_c>U$7VJ)S?Qhbi0zW)G&oAO~&eV$fG_&P>9RhmK& zRp(vRvQqjXb+w&Vv%kB_wN9Rhc0&4csuBcKPRJozhFBxvR)m=ggHg*(g*8B$q!wI2W!vdXfk}g; z>UH{4p{9-ykpxG_ttuU%LDGHL|A{*H*lcH%d^vNAc&9{Pm?P?cb(p?R-L(dlyRpClx>(Yrdni6cR9(^7VN`5tN zDWRz|q{m8}z%aMlvn(8iDs?3ObJW)!Jav)TteR;Yx|A~!tj_aZgjFMwOl*iJSgS+< zBoYYTn8|Z#tpG5@O-KSaBb@*Uk*v@Gi33QW0%CNap`>f21cp>pU}?^P5imBO1d*W7 z%>X@Q`TVE>f_hK|s{)1GB@0$Woy|m*6qwtvQ0jpj>NTYnU5>DL+rE|NkbU9G4)r+| zpiP#p?bMrvnG`n}q_~!UUZMTFW#o`7cGrREjq$a|*{D z?iNynIpHUoY51&=*%59m^Z?^LLxDPk!tWbQv{H3ad5=2rTwWZT(r0s$oPTr9?m=q) zbqWjA6JFLiTuv7nXSQ~F53nmpN`PMeRq?+oUy$~(H1VQK!UiLplP5?A>sUrNj*9kl z){Zviw3QPY7_T!TsRKNhwc94y;s&mYWiK=%T_ji6{2o_4PB+o!@}iToiBiZW012;t zD*G@`LQx7q0LUAPq{(Qlasg-%2Bsn^)7cFbmWJ9+V0AuqY1 zz#;(WNDkMt;IV~bYQrtC`;2H5_i4LI7DG^}Ern^DHdyCPMaj|=X)9)y48A3}7ir@L zo%@tBwLH7#LUJlRJ=r2ciHHgFrtz>+Uq_vk#)2Yxe5o|iT45+sNRUL*5Cj1xfGr>r zk-bEVK{5<=@}vTteRtM?9*_Z<_*Ai>z{>rQmg~tTxcWNi8TS zM=@SE$fYT|XHF}MuS2iO`_-#9jr*h@jTqvbf4QyM(Qxw1w#&+(XKM1fQKzs>+45}@~`#AY=wP%!}w50g6sGZL$`sC>xQTikam6Q#+#Y$`+ zWG*I5iA`#q5>#;s&8=EuOJr^#Mj=@H4FwA+DbZ1yV49YOKIQ|%9$ZmIfY6ZiRq!8&O&ghCIB$1SKdS`{R0~s6=3|P*y!+s*o@hxD0oS`O`@X z+9L|gOv$2#O4X9pIweKnY4+T3B}q~W3S)mGQ{r1FVm8XNxCt5|Y0TL@ zH?5%jl`}S}oi77ptFy!sg{?_ROeb9@(ASyH;-?nUI`CzuN2l4o!|eszB({`;ohcnf ze7;O_P1)$$uiT>Y)!n$Pz$Ga@wY(MR7R^oydRtH`J|hIhaD0R)W!^NkP9wwDY$_Ef z%!41KH5He}UQu9Zc)iM_stR_`Ez~@^fp)w_?%pQEA zs6Bn$oge0h?H$;=$dk*$kB1Wg4{;7sXBfR{746w(33O2`2+J!)Fm(;ijL zDj;;Ekkh6N>h4t9W=WZ*kTx`@G0YT9?kH$Y4oL$}bb^FHR*?}+FhPwYLFY6!IO}7h-6QL*QwmD`brgHl*2Jgy7~0)|w~S!gSPw9(7_H5@JO|0s8<7MD?ZuB1FV> zpazfvqJR-P^NOGx50yv_BVB$~Kq7n~0Tcj8j#H%pVi|Ic4D+b~jlF!R0VHV?Kn?auSak7%NqpZD1akUJgDNuqx zeR)_V;Or^U;2cS6t2}b@-C{~zBoWZ-Uw^`yo+TyIJiMx#OwUr}!V~N3U5L)?iDdqg zb*oE4BO^A`RDn?gh*%?DRcVs@Fu|CL={b(i8E=BF_!7$d3{$pv;|dJi+9^^U=3EDu zqh%zj$a^}l#V?<_P8*J4m`WQ+Q>(mn3D2&`3IvnB)HX{;Ns3~4)s`7`Wrm9zq_~A8 z``fo|l(L?E+5zxRy;VsurAL^UAGV#2v>=(@f=3ajEhri;Gy;$efI!wwX3Y{52-A_) zfJjQ%5kOGjqCR~pMwJMu855xj8=3i1VWP>keGPYtN>Y*}D4L%wj)(~c1pI1{gh2;U zr6HlpNKoi{(R&yWNHCyvqQD?RkCxg|U^odOFeL2)kOgQn;)6=SDvX-wX$>?4CrK0Y zri928Q=Ve9q6tty8YID~XldA%JUbd_O%X(FLHJdYILXyfK29?%`V<73j&ZrQ9Db^}VM8X!0ec@7-2^MT#D{I+T1tjKAt!F6Pvq-W>JZ+>YKIz_R zEf(F8zNu*~kPH}_X%hB747y#V$2^MgtaTMRBWQ8yhZV!p$QKN$D`{$iIi&vpjSCy3Ra{aTC~7!Q!q&L6GD3u?5yI{6##%djcACI z*@QNkgI#REa2}CJX`7rof?D6&UE&y?BrGg#icnS>E-l57NJ2p7LQbd3ffsD>ZXU&* zRh|!fh&6f=r8JASlij-la>`7k!1JPpk<6=jP%<>Cq3n1iDV;u5C`@QF2p}Gm0xpo8 zsRA~v=+F=cAwvrmvOMSn(BuTnl4@A&a*_b&@}LlaQ8J?=q|~|r;SsnL?F|P=%qA)< zX)urk5DXeDC`;sGMHT_e0COX1EC(qhLFrC_L>~+t4>|y70b&T$QlO!zTnwZdX)!Vt z`@~7tTG0^I1quLVDm0p*A>@)YA}J!C)`q4dSgRyOKy4nhk^zKC)`|hZPd%tW2r>?| ztZ7(Ay6N+x!(v)YiJ?0Nng9h$%b=%0V~lhjbcEP)$0`JX5~6vgiz#d>1Rc!*Lv`10 zS_Bv{cAy6&Wk#v^%>YJZ{{W3pBqB$(>+GeX<(tjC!)zG}ck^xt<;d19 zE-u+gUuIM6s@~;IE8aq)XMJmA)RCK1&HOUy$L+#IA?7?t9eV3rS#c!a(>k%r(cbVj zEBCVwcgTx|77lKsrFb7B$MEZ>bzzn4@6vNyzyf!#ntGAYnr9W-MTfRwDRnxo*-Bh_ zL9cV-a=2t^^#1_<&TQ(>C0mI?qb$zA8v7O2jtAKzfUE+Pz&qhwfI9vJOQQ+I-nhBLQHBK}FSmNyloX;B1vzyJ zfURlv4bg9gEiA3^JB47F-WKKajJe!*jJx@fl$8XP2$+xwq3CIxN#9ebrDH;ZMy8q* z2qX#r049bsU3BFsfx1O!WziW?ou-he0Fq>#DKQQMUR26Nk>)B&M2*6PbE#oOs7NDS zY6sAlk^(_9%uqWUl>4*_{R=4xf=HkOw3tehq;Km@0};#;6iqt;#b_zYBrBBwM7eE2 zNt!k$#yX&+lb}9Ag=DuxLL;40ChSSyK~&v=AW)q_6)0#%BWk2euoI+37E(+BGI?v~ zLt-Szk*QGDm5mQ*TP0teT8~hgnOSKf`Ytd;w~*O7wH?V+R&7u0x8hNI*-wd{^&^l~ zX%zjC(qse>L?4Y+kdW-KWW_cnfJ7M9kdg>7sG15|5i_WY5(X`d4QLPszr0WbiqCc3 zz~6dk5W_yS!oUQHBBU%J!R4==JJ8cCty!(XAWBa4mrSn6^8}3&esygM=xI9AXe^Mt zpxH;)%9C5LQYOQeJNWS=?mcQUt468bi}>pbb*8ZZfF$H_fwG3j<5=O9HxbS{vYm_S zY1FvfmjTcp(yb>H(4y$-a12B0J zWalXpvQtevVn%brI^>^9=#Geek*Od+DHWxYMi?ZHmAQz01p`Rg;oN=PA*-u(S=-*) z-2j)FeI_)J2qREnm_Bp^S}$AUxP6ducn=S`Yk2EwY&`ABc(#=YRz$$%%*_Ci&LukO z@z#ncl>sF(B}8swgi8{Nvg9!wg*G%@aVcA9T8PmA9cv5OtyvT_2I@1)or-`XH#j`0 zSb`FwcN@`TMDL}Pgr?n2D?yvQ1Ai(8fPg}v9$J{GVQ`td)53LCf$DwIh@kpI1H9!Yaou^7kgCbDN%zWyT0HiHr!h;@k zT0oVW{29aNh`5@|1ykv?7i-Dh#%#Jy(^nZGN+)~7y@GLm9F@6-KWU1zHOhr|ZbzZh z>sz=gvm2rOGuS^6V)zf<7gx+-w@WJS?H_E&>6neA`qai2J3RjYj5tRh;XC7Ljp6RG zKI5QEYySXsLqkeYr$OaL5F$J$=}|&*LNmEPN`52rv#adWfiX@v#yyI~MT>UEYm1ep zP}u$C@)Xo;EWO%KX1MnRI+t#eF7W0505^8XIcJbirmxxKT<&?ssZ%jq-z3qAO+? z;XG-sD!1Xw>owu`@46aFE)r5Coec9HVv~-;$mw{KvEDnu(x(O#F$R+|yCwIZPkZTF zI8qC!GBPE3!l`5K|&HBBiaGCNxMKzH~5si(N_mv;_?t&X9VV1kodEDG~_> zl_wO&nYDx6=V{w3vZBl4CN@`E)k+LE&;`dNDf zye(X;xKE60=Un`Zc8&2)ne99qc#DiMHkAbwq(yvJ$YOBGXQhqVqi|E4DM^q_Yh0Kc zOmbVZ#yF9+T4UFi`3M2!K=R(c+lu`0r~QvRBBs%p^1K;RBYCdK#+{h5lmK*qPcvH( zz_1CE`)bgP5d&Q-pu{41`p^cZ2L24focrF<+mNWp5J--@5mcC@t!V3bI}za|V_{5T zuG_p>bT;FQP)bQcgqc-UgcJ5~f22r_e~m*dDN&CMNTf)F?>f_EBIrtepDb$=>sc0= z5=N1zqeHRKNtA=7CKs|mpVE^^D#8RAo#?wAQ78lm9O@ZJbY&h~>PGq+rqdFTB814I z6~c5N)ux2BH6*P-12glXw1?TThv5r(uJQ1sBlLBNtR%2}*zArk&6wvtzS$r5t~PC}}rn8+q3F*2hQG{BHA> z{2z=y!-Wna&BB#`!(EA<=UXhrYiyji0^-#!j`x`HNP(p$?FvafNb`f*Ul2t52M_-M{99V}{TiPeA;KR* zJ*IIa5$resjenyV{{Z~cQ76VLuFt7EFL+(>CKZVLHKo19;|X#90B2<_psQVA2&#&r zk~|}~o<8D+_?sEwG~F~XnM-B9=_HUqJH*i4y9SRUvbcKA<*Tbl6wA#hEw!NP70A>* zg`FMGXgq6jyzg->@n2Ld57;Tzg=f;gXPiqA#rry9>k_+m^5ERK3y&F83Z)t=X~H;9a@JvVi-kN<;{!YdgV6J;LQ7|<@te=F!Wg^u%TgRolZ!&qc2-lUj+C3V zLvE4rfAXt}h?B&4v6H{HFZk3rq7&KmS70}Hciop^*Eg3g+&-nbna37XPl`7>nz*_) zyGZdbwH70Jb=o?x=bRqRX3Bk?5d>xuqJ2zMw`_)wCy6`FCP}W}3h^;QRE{6SRF#a$ zKF+V6-1MZRzQ?mR`qt{k=~kDP?pxd^-f6_;Soj*W?F_D9n2l=Xv7$to=-K+t*esYM|Gd$4t%BTNf6 zjw!cM3Lr@N)^l2BkaW%NCACWJSh-3kHi|oI>0DScRGKx(9a+t%GFB3lkaw=xRFRBy z&r9sn6CLtx)VSAgGha3GxF3zt=y9fZ*Q6orij6e_Yv(a1XH(hcJbuAviJf@tw$iEi zYhPXQbG%e=W>n5iYDvu`gI=^z%_pL`2`5DZ@vEvLz_2I96=@R85HlL+WPMpcA;?`?5wVl39x`kk-|OOBAJ zB!T9dC~2NxbR=o1KPm}g+fsg%(1KMbN%>M`mRebafPR$?4I#v+>VIWR8cZ#iIukUk zbV_tHr1YfrG=vD=DRef;P?IwgP}tDo05DU(N(v-twXI>aqr|O+M5L0jC1#zr5WqlH z%1YPGGo@hjz0pbumsqx8kLH;|V`CcDQpn%3lq;fQtilY~4tZ0Ot{;`PW2aNOpZ=$1SPe48@s91#Vh6kO!EL z;azEH%3EiT_K(^N+y{VRTpPpewl5Kfq+C9<`!nx)w?+Bb2o$+!oHxVr|n#4(In#_<=5TeMSPhX~|WHWjK! zg^jbT;(o(88t&fV+cR~7xP%oIH0Ea0rsOM?H%Sd+Yj$>hncKH(z}QWzS17teEM!Z_ z*~G~KLZ;OkBz(Es_x|;9fdVt9m-j_x(J!-uB zwl{1zm$YsldjMMTWZ|JJzg3cZ-r>CR36G66D+Z|SxZAaE2V)Dm!xwV>@ABABU&BewT z`=~bdY?sJLSG^?EG}*UE@V?o2p5Kc&;rvqC!s5jNw6q(2FyYJ1LzM|p4V+N-(sbWi zOi7*BY&W;9agvbL?aOHPJ9r6oKz}wlO-vG^nZr1@98#QhYFd@4Qq?EsYSSe4+tx6g zGlF(&N>!Uyr7VI^{8x1M;NR7?4mEOfZzG$e;Qf_?CU#Lac(oh&M9hI zm4Y-%lw^~b^EEN{HgTi7Q1PfFj$LV?Ss#EIN_6$6D;&gkh|L5ANfS{eXt=uB*jPFD zrX6u?q5uFE%zlvCyu6Wk(N~5P3M2wkB&5%kG_92SCE+Wp>pWKJ zSk5JM<{sN?7Y!_})ZJ)CRD+>29xhQ$i8GE-1!pLLNgz+iRJI`#rnC*AY$86ihKu&C z0*UhFSxK~Q2-$Il1B(dPjZhbZ%Sl+ixWyN>ge&gB8gxT90R9;Wn@Ap5uUV zp=!IkFq_8GGZd#qe7V+f`7CYIbY(6hif1mi)Y{4vg(XSc5vZ?4O-Wif+N;p?jduFd zXd|)0Cs~hL3e}oeGg+3W#Du3oBDu24v{ZGoRC}a|-$513`!qvTVI&RdplppQ@aj&r zTNR=g6mw{!RFN!+)kq;k^{YshQF(gCwX9Jd&92OdUubw1q<^kA`)g?QKWEo`dH(?5 ztZXKK_9tRL-8InVNQb6*Ct|6>dq&`Q@GdE`Zu;j79n&`lM^f6sf)4U2G@A-d8=Z#m zjpqe%PZMD;l{m@noVIkQ`NsTEe`xqnm5C;adt(0p-cJD(fFkvBK2%Vm_e}J@BS<&~ zC>MAK_VrVnH!4$SaAp3F4mxu(67==qcF1b_9fj4DsOjX&WPn?`Kn@OvjQ zELPhOV4*KuJeHDHtf`WDleH$2*irW#wW6@@5k-nt-fMdh+~xr!ghbCtrkY5qJWGZ< z0Amy3<9m$bPBVzVD?)9GR?~8MnelVltwldXw9_@a65xDqv;NU9tZ@$Q+grObrY>19 zmolng^9GYt#;@7Y{h;ryuxtwt#6IN0u?vT9kkL0x=E@GT2!lIS$y&0a($VQQr28`} z047kKhQp|-R!o{q^B&4^#oqRp#u#A3FzZCyJFE81Wp&e-iCHI8Nh3?NWqqk_IDL*6 zw#2URW}U$b*HK`X&*5rK?Y4jt0J~`U9;)NX(`rhZHfN?!xW;l zQ#nj3%@_EKHg4WCWQUiO+&)NczcNJ~0<+)oBzJwDU@O9SlZ4!{!&^3&H&?88savGX zHcDq{+L~a~`#6U%wy`X3;_1vizAr0bB#s?Xwne#;JYXlErA>mgdOsQAY#tTi{QMil zSH8~jmWz99s9OdB@t@L|)6meHAC;an+a>-ZiSfn7_5K%ogeu{-){9G(N`MJ~K-*Y9 zT4^#_#sW%W4HO9NyH8L2pTe1k`xUs?`^J*?TUtjFr0OH~(1-zqh|9e(&{Cr@ms(8) zn|L+fa*pWEQY({@3)$0-RH(O)(YWDDH`3vhyd;eUm`^Z%mDPJ8pejG|rXroeZBHvC<(~;V z$DL?F8i+a*KphtZUvVvy*B{BpLv9c|%-IH?@m0m_ZJpN`V?1#04&cf5#ulYnIqktK zVnHe*2%QdC+LIDIm2gyK^U`VtfH#n7jf9OkQUqyRXv#-8tY&pVDl{i` zwpg=Q*2<4+lHw*{_4wD-d|xHb9xu`4b9ky0(ZT?bcluYhnmnHtnDC6mB_1Ml+NMs1 zw$0l_cPyp8gX>&#cFhu^VyOTR*-%<~Au3V{nAWKz#KtXB4wTX)fyW>nYeb1`s{5dI z^{pctC9<2VlRH+a2{WVYl|AoiSP(z{tv^j`M6@*Q`v;2ct}ggn6tlHYc>C6_A+*R6 zq7IUN6}pY1H`(WZXRZXsI6}t$?;dS7_cw(B3FYz1=(daw$e}%)V1Poh+wKnfnsM3_==qPg^%L5@GcoTY{{Xa9G7bzZ zrBXMU29R0a9@aR)d?5b-47~lT_O7&A3sWFCl%3#>Hu9xKCVe&7%U;jfj}N6lg&Sa@ zuOqMTts?X~MpGDt&ChSQ77KJ6Yit}TC;(_mwItNZ(-k5gv@RcMiSV_9S9raq7KC4+ zVcUSBg+M+LluX3c`D%eJo{er2ZQ2PTP}*dq&n{I_CQ+lzJ1fI&Ejv)-8>TUvOV^)r zT()H@?-=nD;*lRCS+`7adNRJ&=|9MvJze8qru29eVM>&pK%(|1N6b=le5ew8J1*JC z{#hgtHL$jgcl_9>i_qlua#n5k_e`)~ZIrmMg0+|llM;M|Q({c^{A$aG@cTX+!5QNI z9s8FFSh%@L-BXTSyj9}S0zlq1=ThWd8TkE&4e;L(T;fhJ$}J1xV*P1!-Iz4fDWnUAHJG)MQrg7(Jm}5?^wIE z;-_)v+(8dGyDs3j9_WsI>XwRUEL0@w1rM-CZ`x|JVf-X{91*|%<5HJpzLCX%3G<;6 zfItxjn1LiJO$`BIhZO*W8g#6u6wPAJg3+{IV7Dv<9{Vn2fH#e6iQFciqiR&lTSwft zc`r7Qr4M;0nCV?oN=l6GnXtRXG#kCNNm2-h6U`C0HOVMl#hnqAZ5@lxqZHr=$_OQ# ztNMYj&b)X<;^i;g(r)5#cQCtRfSpZy(X`V!B&fzR2uvM3tF3Iq*c1|&6=+6jCp7h~ zNEFCCjR16f3ulU6+`QfvoF+m+aN-JWC+M^1=af_!LC{@av zWwu(8s+$1Hh}To{qO5gCmy&aBucZwVB1kYqb&5l5agIRi){xUQZSsawsMJ;xdpcvJ zTf+(V*2v_os~olB&aOLtNcBzkx1eTdCEXm(SA02SR+&y-e zT1i!l<1=gMd8F5&!{)5Yy`$&(SYA0g=*PlCYtG@-TLBf>k?7`%Pi)aj@(9#<*E3ej zq$1%U0HNnch|{H_Hyj6enxu(rfo?{#S5{4xop8lkh?*<9;o7uHiE4_=RGQTy4zsbt zJ*MC~fBB&wBUY%S&#pM#YioothZ#{rskC)SP|$)BVAk%dL~itWjknqf7Cbd)XvPfv z)+E)qZQF<30VQBYZ8bH|ChWCI94-gi_ZMM!zA1_!%S)S#M1tph+=k*{BupsU@alXv36gt|QSF-{_gdNGP;TDk8tsgc0p-@xWzAG>@cWNG)1!XkT zp)-WCw7I>#YR=KMJ#g}ZTR=Lf@*32(ke;0*qhDuSbj`@OcZG2@tw)nGpII7J#x|^` znpS;}!nO*+_-_ltRx&wlY=+c4!ayVEHF1ierF%SAh*jDWdtJu(gMsjodeccwld4!r zM1Uk}cbdheCqizF9xlLpYvU`MQI6n_uGyD@(#v@ggqhrcb<%0HlMCyVS|1WYpKA zi0xOhZZg8(Rr5EOd`DrMM@ovFY=3zq{Y6)TOG4kX$qt4ff)6^)+R)CKe0jw#A+Yu9 z4;I@?X;YT1sO3n2B#F|a!3DDe6Ti8{Zx?rVq^Z^JP=Jy08dap1KvmP4L8U=r%?2cE zMOay>it!dTis6>Hb^YqDEiF`~FxdmZNP>QXgp%lfO_^v4nF3>7>V$72jB%tOAwPG( zPF-wTC*vZg#V}GSH(Q?KW~NC>&;u5f0DSUdJ5q3GY-l-gOiFke4Z)jVm4P^}hvPSE?KeYr_9#9y zL+7Ej95+;WNRsncWx>j-is~_3cSI$=9O$Z&3+e0IDv)v3)n<%ZGG|buH%8J%cPP)P zZ|{K^WOrZgw!&A2&gzo}wT)ykUV5D}-i`&%MU-cC>?P0XR7*5hVqs?N3{TWb7Pni@ zZOz*c{2SQGzKA9Ji5#Afg;PEJ{n{pIYV9z5T{ENRC=ET1ppJ|tvcrlLWUtj zdP2st@A|4e+kzkm2l}rwV7kIy z++wDp2!1C@!fIxp9YB?$cIYvp0AiF4B(5vSvd`tZyhGCpR_-B5h=E38iSi(r*=Qz_ zdM^SM+{AZ3y42vwQ@i{2QVPvdZx$leNirqUkAQ(kOo`a*9t6{VYo+LUC+#J}g-W_l zp}J3$=h-v*+i{8g4+cu;7Y6_^I6Cn_#HG|kaOGTL%WvDJSACdkNQjK-n36PUa-$ z2+5f1k^^}2xBwF9$Ons#J`MkCR(|;z%Arp(HcS875oh!=Q>7IgY$Ki9fNYXsF z77r_ruQ3Tk5n+TMY%JK%0h7ddFL7%=MNiMyg(mN+L4cIS=rN-E0V@2p| zO4m}MQ0k>+i7Hm5V}noRuSw0oIU9G97$>#9t(oVvngC$a=D1;DiBs-~lZRU_-IX^C zHuy$QC~uDQFis5$hVR3fph)*3j)sK4gVuJ^KalWi~3e zFP=3~+Geb%|o8F;LtAb%XR@Hv0X71z*_X)9qnNOSbtG#>ih zYmt@{7~Z}glh-$VZyvJhv16h!!wPsB+mcE-HokQ^*FL59YYC!w!;mXMUpGHC*rAkf{yXrPoF?n0v@+2#h9NAvU8fnciLb&w26e0YCPkBt0C03+-UJlbZ zI?8n6yB_VnlgxcBo5-m`3B1EuLSdOb_k4pW{AF_BIAfwAx*$Ch?Qk6W>z(Cf{By#O zO$b&D;5y#dncif~b*nj-q4Y_PKav}^Fz!%T6C9(A4?EiwqS^IJC}=xv%a3g8UuTZ2 zmDR0G>C<GB)#-;YT*4 z01|z}<$eK{+LuS^kJ%qdL`k3GQr#&S_iKR^_)}Lp?5ZVantATbs*=taN! z1?YLqWTRtl49Bg*GNd9I;0(XwF9ho@6~2%+@YtO`B(0Pc{P=Os;VkhhoXd8&UBk;Z z!&#@@`Att*csY@(T(YCiY4R_)djf;}XZq~Hen$t_wM#dAcc~}tgLF96+l5rOy!x?r z&OAx2{m3Yc@5E%KTEAlCvks9zjxL`Z!_5>PVEfU zk32YHj?0?*fdgi?+a^FWSE^A{3HzM9`&z;}e1lNWW@qcNb9B5sb6$+IA2-=osy|pg z1>f1$ZOufBZ?Xa+r3`|TJ~0|<>3&`Z#Pw-<-r$@R=@`zDt&Y_`ZEo^7hGT4Fj~FsF zf2uYz{ao!jDL;&#VfJ01lPFz;n8)O8&TWPQvmTO?mu5pF_@+)+Y|L~hMYySwjQ#;; z!SJR%0}|Kn2zl@Msa}(6IWbXa&SdD?xuZ7A1`T(CsjBBs{M9(13p?W% z*GZn^lm(vk9nB;vDF?SBxP~PqybrjgeIbDi2EPFILgH}qr#z}~QaTZtjEE9rJb5vA zz;LP@G!nPsSxtc?dKo6HR2-wSS4>7c_iz;MRDy_a(h;OId5$)Eb9GTi%yLY}OPmg2 zZl-1{Lu8>Keh(kZud|0sMHB{J_1T_gE2IZH_S^7KbB3uh9(!G$fg^!E2;a^eyn-#G z8iJ3$H}ELCYBf1m*0!NlWg-D7bodB@p>`^ckW!z9!Wx;VyNA~bP{j}x2WWtJpY z_IX1joNt#L5LB%dH1g)==pOYzfw|!r*xZFxM!TaVffC=h7e(^E=m3@nb^ zkE49Fg-BYZN048>iltQF(nN@_%hhxI796#WZD8J88SmGh=B~iM0JEEe*1{qT@0wll zi4^jj*#@hi_x7;qNH#pM_PpcfE0&GIT!(o^775xgPs539?={ zuolz<>1o_*uFB&0-#&%X;R5%zX*%^yVmK?MxkjuQfWFQZcEIA-FzxeWs*VEaK6+Hv z{Q}5Ew`HiGT_%_vbq$bp46x-`#~;34v49Vrz)H%}o}=&f(3vYv;eYrA`0N{v<7n!v z&k63YajdywzN^W$)8lstlhDOMJ{){k(Vu%Q00DJ9rTjR}#&jybFOZ-lGQ<}fs_*%I z?FHYBAUbNGV9o%^R}L{u?tqOOR~ZGaqQ+Jg+_Gl;a0fC?0&*DtHdQe_-?)&=fuXXF zk-j5OkNVF;o1ufmJlR*c+pnHw8*YbX`fM(}V&8oc3TVLyQx%hK-RWbM^xiC+4Rimv zVPvt(zueZ9!B_Q=vLSRqm(03o3n${^XwZJO7f#pC1S6&p>+POop+2m3T51mn;}oW} zb0$BZ?A5o_Z9!Ghh8N`>&81NHc4eh$zlNZ5__DJ;eA(?}2;Yrz_S`(l^#|#pnA<%V^Rx5`>|Nn2`?oeB_`(0fj>W#s7Y&f#3@19l_m%NQMO9 zq=b0R8~xS^Y?=8vEMYiPEC{x>IxKV(TcO}Bvsedhsnj^A@x6+A3x&jyxY)1ElUTWz z%5TCQDK8?Kb*T}Z?!yGb=pL5k` zwPK;%hGME%2P-t%UQX{!0U6vTebeIL#X}Umc!Oy*X<~2ht zumX9H4P@cq6<^c<+`IC0RxG;)8}!zrZ54oJ3YO?(&K58n)Ds-f>(VSmo30$8_Tc^~ zT}}9dSnBYu*K;vR6>ij+}AQkDlWJ@DHP zYb4I2nOQqRW8lPGLop8$E~oOabWjmT@+o9c>Wu;dZ0?#|b)OH6RXoaxE3+6W!{_!= z#M)|}P4tf0((Fo5+^=vywjM6(`n&yTaY|87Y@){|c^SGs{T{LVpy{1f>;rQo<;lrp zGD8Nfu^}ZtX&A3+iPdex)2(GSEILfjYP~3$!-y}wQKgqUtdY0N_2DahEJb{Noew=TC5A^GPDn}e7nTeBr}j1TPl_^c?xq~CUm*m zPod0p14|el8CkNF$u@Xl{Fw9c?(1_0*GNR_HGwpxjNh~IN{agh`=?S-feW-^@xoobwVzMFx&IA1eraMJi#Q*Z_SplB?enZ@TSRd?hrvnj0=SaUj4WL1GqC`Q%jo&$e9EzW-U+cwTf)f#W2l>!!`0P#qis+ zgSrB;z}b!9ltg|`DH53X_jtGa3oGOS{x{;GC}neDIt8J@2Fk|TW^%G3FNVk`c1h*q z6L=bABgdKD)Zm$2*`*^SXy9myrPl2s65M!vPj9xyF_k8nN@b6vNSb}0QzQkpUZfg} zM-k1}i`L^oL+q6qp(fUYFYxFjO_Jkf!VYYv(Eu-)z?h0Qu=1&-@(p#XlgTa;BFXh{(I4;~&d0U%;Me4z!3b5PZ-tNb z4)&#R)ohzy4D)TiXq4G(#k`<(^lHT^dEhRWpoS#SzpgMFC7z_Oo(0hzxG67|?A5Tp zuqAP3Z65V%PRvh_6vFgb!cG7q)nzkQXmH5RLHxNeGcS4XC??qK!P5hvwzs!i?9 zutpIY|AGH_`U#su-G(w}w9xGd$wXm23`agb@?h-Ux1Ssvrr^v2`=P8=j9U1IZwT%0 z$t4qqj`9c$05sl?*Sy8=(24PE8>u7PbzG793`VW}Od~*Psq3-L^}$?b8@OZMnmXUD ze}>gqbrO-RJ&t|-CN*XkaJ z(+^E$?aEJ`rvszM@NP8@PpZcy8pK?Y5hE=Tdq$JCCHYr{pJhpN9fc+jB$q1hzV)V# zsexK#(1O_RqE-yi2Ol2@KwVHW_wLWnbFqt0z}Gd6*EmYcvYf*X)#C#?7Egn|xlXc2 z3PT|#s6cB2FW_3MaSHIL)?=%c8(uteDHDz|f+h-pOE1Briui`Jh6*Pn;7}Yjh6mYu z20=O8RQws3bOs3jvfOC66lQ{<0K$xMiMNiBF2(`m#UK=5BP-vEgsPQKTE( z!08ezaB>7_A>%*~OMqxAkSvsu7?PapLxLQ`{M`TN+^UDIx~GRN7%4jWYXnNAB`je< zO^WMFu-li?Pze!vn)J{X1(w$F$2lCmMg0?C^(-XeS&0HPwLL`*Us}OV%7C|$q0rZ~ z8fwm(gkx!iPY0B|ehp=mSB!NlgMn#j^Z|_D7aEgr`v{6hW1DB>F(S1A7%y~PPzx^M zHFko9=A;ryLMlCIr@~f2xWXA=gqPT@EuiF)VBQo~A=@r~dng@~hodpkJb{2?6Ur;8 z+=cKP9zllGF55R^1g@UCLRXfmXAQ0c9(7#TdP;+pIUVf%Y7JP@xt6bTEGh7IR9a&i zU3TwbnwI1;Sx+;|tR>DrW5cV4hgllfY-6e`jh-j`7*m2`OtFV|4<1x`T(piai_Xj@ zWC)L`q_#NiPV&;+$#|1u(v|G3LC7phOUX$?nqpoM8=atWSN9YGqXeSubJ3|S&S5L#q zFHB&6sh{MBwUb`c60=#^N9mmE+gC&dGMD5jONu=pcnqFKqBFo}cd#dScGPP<(N}*r zrzs6|!=7ph1C`IyUejN$mR^XCr$>J)JkKU1BseI;!3RyKCs$K$YX1T-^HSn{i7_;9 z(=)2yrL}cUd#_uq;5S$E<%$7>tWrT=s4uAWs-Zt&x5sGR8P{%S(l~5&nAJrfO;zJE zlo(NVfT&`$*Z%v~`0#j%MgjK#q^&=vNeanI4=f4mTBmyGp9q%GZ|6I|8x3cwAz=HK z5gnbDcc-OF-h5}ghr^q()-?Db8K2%z*(CL-$T(8c0q% zIU2kM**1E#N5s-8b9La2ID)KO%oPuUU$@cMI3v`v^n4eC%HB`x@MLi~AvYC1AR4(<*2tw7IgDeyg?Qy}c$IYc z<)nf(35gh?E%<{Y!yU3$9?|2_rm}G<{bO}By90+gb(a%G-{Bk|C(VRtnjm;hf8^!@ z;z&9gn-L(6`&=Ml@eF*>jP+a~a?xBMnFeF9ax$O`oR5axS~N2=Yn(I#1vostc9ju~ zQ@-FmXET(+gwLRXo>_QivXJOTH7_4FlCRvP9MVB=Z{G?;5KYcBr{`5Jkb@}!gBs{2 z!c>ElL(-uw*dv$;GA~AuZ1d1Kl|%R8OB{JrwV&hAXRt_F1&N~`3EDzY!7wZN%7T!@ z=MlvN>A>^S&I+h5)5^yJ5+4aXp2Rb~JC+$~3AJV)Xhcnj>@|&z?zXAY40xFl=vL#VG(vGvFO(TpWo)*ro`INwM5?Yl zEA6vCldzA$fd;)cgB3gC0l2=6K=xfY#S_urThjzKyn7o@yC*(?mI;tfpd1QBdGAj7 zH0Z?C1_mIVq=EyTxaVt0B7l=hp!gy1C4hK88&YyzmMvYjiF{TG3F`^ewL)%{!nI=Y z;F?=rrIn;rdxgsy{C4QeDxQkuF=^tZHWgXBt`Pk&He;jYI-hV&gWRkNY)mWHUZ*4vgUK~6sryg0tRv$jcF zf`g)uFweO!OBh-*r(~kFfAM5vA<>MwBO-uzW*&ORBDk>u$lp=Dm=llSuFgQ1i*)%; z83XA+8tk{%*6Ls3?ZGkNXvHcxJ630XzAAfNC|73aw#?2wl+MP+&d?+r^;to-em$V0 zTCQ1OSCtDMk}@IVICx-|+%sZ3}jsmM?B!SLhLczHmBd34Kq|X7(u(kqHbK-L|LdOL+s0oA7RUr~d zV~ttGRcU2?a96vm3QN_1Z_?E8hZ*O26%QNm;vAgL zcX^lNW^qt4@!sYqENF(PW#`;hN=Q$}qcCByA_ z(dI)}io`4(T+sUdTscv~z7h@?0dJ{|;FBAsVrkb=*3lfCjsyYvb~k4yf@B&$^j$!> zTSJ9%b)-j+pV%A{$`_Gpnp<12dkIfsJ|QUL`@&D{$GEGJs>rALn!ct>CKnf|;%nv< z@kI^sU@@geKFmojh%)^EZ-?_iN5%Y45`E$*? zu!ABb%+|u)TH!% zE$TD67rT=vcG?;ftRFqDKM5{N9s3`mXE~JbJL`*neKtVR-$1Ix>X5GXG#@)JxS}BW zL#{>q3jhE(2e?@ajt|T?4URY!N3r zrC#|JhtGnUwa3vs0rAvYOx>AQ#{il71!zNPu>~Le%y#hVw(_m}YI2ftCJWCJ@Sx}Q z7V=sajbvAPFGaK9ppeTi09`E`xJvCQRyOYILoc;6K4bl1=jz2do3pV@e^$HZ8-Xeo z&uOE{*5%vD*1SWT^!;eJ++ToqReSpiqrI9#jYkM{}dHaDXdv}+I z3j1hgPl6hFH3ziPImkKPrBf#F9w+fzdWrXv9{Y!YSrLExvbIUg2#cm z%$drjBx1#U<$YV-EP4gj1Iz0u!pa{&$Q(|<4KB`ogYIR))j!ldtTOc99FW^= zMf#%ZBc4)`Ba!FJHeqH+nL^dId7Gqk<8s!5^|1OOL3E5N1Gi14akMY?yW=Fz3kcDh&o)^` z-L=&v;7C7B@KQp)EPp9|eFrOGAYt>X+V0ng+VMCezy!|0*de%k*)>CsH3X|k@}C!N z`16BCgj|a?Ff)+>{&;{UTXD<;aZJe;9R7SX;ojs3ie|I~q78Ip>ds6gW2zanDBuhM zm1zyMn6*BE{we5nK?iC?jI~HGP8VX7ioEmBq9f4(*80|Og39K0H3||s7dI5HHD3Df zS{NMS>OPtT4`q9-=B@jsl4#p6$FDokMM@@0+vlU?<;Xn+I@fEeOB?QI@z){ewbWTX zsHK=jGd^i+RWOTB7LX536xpRUvVH!YG)LYGj~cPChCBEiefpVY>>18Mx$VsmR>6;5 ziJ9C+%R>XA#z|9u5#s&+p#5kcyDtwk(WkO2_8q>S3G71gfoj+nKv!XVePS-YX;~(s zHL!Iq#Qt-$M~z){G^{|!+%5(cHud!DMc^Rm^Vg#B$>?VXMN18-tPUJm+qV{Z=0>UG zRE({Oyc2wHP;_^q9Rf;n!}OiB=d8XL#i-dVV;i)YC70yOg))enYS$I+wtmd+5ar%q z68Pj#PU;s=zp4*Sa!MT!gx_*5-Stli7il4P^Y|h8w(+v*NUx1`sj78uvFWbdjMWCw z2KDh5pu1CkzpQq;JXL_#MK0CDSVS5>0S-oNzQ5*C-u+ z)6)xQJF!mZH{}q&Y(Qu$Dyqbo;(%j|%kIblaM#mf_{GqYa;u9-6fLG6vlMGtHxOqx z|En1QOq;&ddZ0k#D=6UHS9DJ>Ikl!!uYxSp;_2NnF`GhlNGnAec`Wy0a%z@rd-&r< z3Rj!OW}lZJzh+IVl$H2+!-R6F&!yUUtQ^0kCCXJbB+bIp-ekk+#-{xuYQr9rPZjw< z_lNg%MvbT__uIKIuCF_dzMZ%9{8ZaTk$6{E6jMWq%|RY z&m{Ul5?Lrf%#R)o$8$gus#3kMm|Qz_IKjiyDZ5S<8VF?Gk&EacY2*Ezz_TDTOEfde zbA(F=`DoRku1D%at%mdZB$2*%2N{l2kukvrQ3)7Dk^)bKZbW|_Y!>mQ_zW$}>u{1+ zlqv_C^(hK(0?vF(HytzXX_Xt5#HQ|E8vbc(wl77@a|8D*{QbP zz{rTimu)k#u>kqufo=xp2*X{k(02o5J#@+yyPB2;kvT2JAJ=9}Uq*Vs4Ej&& z4WbDg_}0>LWa*@@mu;r6c$xXrSj)ZGGLF&=DhxNWEyBnJ5_)%-Eov zNXPS>%DRk69HDatE*1umpiKe5qdom-OQ?eYTolFkt?+`4tUMo^&%mfY>UvC1H}~Qr zU6U{Quo>kJ1WxhA2vjQNurM^9J~&||d@B+UN2g)DS4JS`R5(3l-;pV4AK8?_yokmQ z%aXyvm!#)d&h#SQF&nM7A4bCF(d-zL%PQV1HTMpx!onvHyOo40**^aQ5Sj?cBsAkZ z2pv3g>hlQ{($s0Ufi^i1j*Ie%5!4V9bu)WL?xJ`3*<7L}lMU?01Txrck+~Di336YT zr7`3^&7V7~=lqj?Fv(+gvxOBcq!U)X)p4os@=<2&>^5MT%=sH{&xI@Iw*EVRM}^AE zv75sQ3qK3n1`~*=XdI1x#ml_-BWFzhLALtaH6UGL@xES6g?RbvN83~~Ix8j70b&fCN6BdLDE;({H%#<`ogwOX=`eb_zIGt=0*u6!r`f_7P_Nj_Vzve z4%2t2*43lb3X&-dd%VM#WHjqdi=#KViIqh!&x55l4W`%Ud4m{iCjXfEQ(=v=adppCOEWZDtd-p>z%!FH!bEgmM^RH2yxp+2mKED zts9$&>9+t9u8+{OS}`H*9GV_1ldtV9V}>1C@2P-{@uGFXbHr2SKwSo7b#XrTBynV)K_NhHf;cKs21zCWa7;2Q4y=+-6vb0T z0Q0D#Xp^dmbB2?fRlRd7;`?l6WsS*Cs7D(9;s;E1oh&*!xr~NfSG^NKc@0Q&aZV#r zFmjw3ZK@o+x!8x#=q{zRy(beIvb6~s1gW$Gr@~SqLR|&lmY1I>QRfH7XDp8ehxjqV zF}lgDbAZupXK%rIdq{+#q!JY772XZ=~@;~Q3CyE``|7Q6%Qn`(3V_d=gd zqkk4jt+GTl1+KvtmvA=*e)Z>lMk|y{CdE>-;vT$LL&t_+0+N3j`!vGDC94aO)5K;) z%dXEZu~{$nTRRjN$NN$)snPJI4Zj{qmaii^nLX&o93j=u>=Uu44j(krp$-PVRvFdQ zc=Xhd^ltOkFDvzn$Gxsv>NZNx-=ns$wytKdC1dc{(9&1;?nPNSu&rCUTN@XbRPQ6C zKuc|m2hvDIGrJ4$C54K}K4V|wUdNqxsU z!N=z8;uRLJS>5BR*AqmNnq~4J@I3HHWvK!pKLr7mitg}Dy<%D{22!zWd?4{AQ5vhZ z?{iU@6^_w~ZoMF}f7a&Ql!Nd^eqKe$23qNtd}XS{^MxZ!wIl3YPe;!xXp31295c1%=bB^vkHF^DD?n5mdW<}3kWcWfnTWjtqaeWXjb|G9jfe{ z!zLW*7ruNy8+67e#a51n8oWv$$lX}tTT*>%KM!dmSaVZCia!lA?gni5HPlN5vb5Gs z=NQ@0rr(xsB+|)|oUdxmj;mOBD+i`{<})zjQo#22C$3C~Y8riW_o+XItzxD%qp3#3 zh~k49OUSInTKSe&BIMggwqU1-pl4d_oJ!jTQdhM@dZZ?$2qm?5gn4Djvv!6Y{v%GG z(pv+%-!p<@P`bMB19DD^*LAr=jPgz>zgM|$@#LO^CFv5yxh&KA${eBcyUo8p1@}e;+9H$W#WM6>6rkqD zH`pW!4xxn#o8EKzsXH|kyQc;qSkD!K3?iTdSo#30!BJ=?3ltVX`BSEqEoCzXr~?;_ z_4P!gxStFA&ZNCbG@0@fWh`HQFuqKGi%=)V#KTT6fLnp+t!|AWh$#*h zWvzgsFc`t$JrUxgK=5`}FnFG2KgME${xZg!!fH|zm~};AIjK<&>Qh)`C~gvZz7-%z zhN_iMTDCAGw8sSa^ax5(F*4Q-5SE#d&mtR0@D#NpguEP(gLujdgNL}PT;Ahm#r(OV$=2m9e{H7X0`Y@=E}y8t>za1K4>L;^+l7D zSeaMHZB@XBe90g29ejte&Yq{5zW`59#r>W(Nlmj2?iYJLLh}jtLsy%B0hFB`|J^ME z2mp#s9_qVB_vk+5&4}`%k=a`%F!21j_2L1k2c$%84I+z2bWQJCnjd+Ox>j_I0w~d8a?SmO0xBC=+P= z_dMbLsg~IMe|bR*RxU>g|0#*(-;(kh{N=l{0_?A>o~Bm$Cu;)sQPQS>|Lv})Y-F(b zWJ$KW8StM6q^HO~!h8t#uF(Piijbr-RNDVPH^P5wGw=&Ao~={&pUJ02Cv5Winf0fB&j|OUSDWRwU+etW zEG9n^p8lJz|K6Q$fasUdAwYRP^{*ZfS_k$6&7Fg6`yqkw%8~_{;lc4fuT@-2T@NJf#`MWZ24A!k=yb*m!m=@#M-k`WHaA_30Xf zQQt{Esr~nQcKlEn9QvKw!|}1>pJV-z@bG|-@xFY@E0=_?9sbFhC;+JZZ$r)h0{rv! zFs=XjRe!-Xz^gYX4T_2>Iu#Jj@NLsGh?*}#iG}SfoeFQK8V1RNs zRrq`)ar8j^|BIUezg7YNTPzffrJgouumD&909+S+~=Xs4rO^Zowz~s zh!(N%0tyHKciir)I^UHLBl7*>?OP9KT7x=^rBgnKl+En|0du0{*e6t2t0<-A5#CDP#^vwAAS=)?muMa zH-RMlAs>Ge!?Qo+^Kas+iv{@gd-)Ij^EU`U#qxi){;vHs@Yld!1Ah(tHSpKKUju&) z{59~`z+VG@4g59m*T7!`e+~RK@Yld!1Ah(tHSpKKUju&){59~`z+VG@4g59m*TDY^ z27Y}TD+h2u{yEiOzW{K*egfc|i_KxV{FeS!Y^X8u_9f8C(l=!>4TTJm1&$S&x*mC= zsrIDy=Fm9pb1)?iQ;TKgSW-!Am^I|Y72G5zjam>o!j&v4zq-q4>=L5eweS-p1m%{X zRDYT3N7iYk`rXWA))|2=$JA|kMI}??z`a=4u7HcYW2z){Omq%JpL$CyHJR*=h!(+( zlm)pSv1@kjLd@2SUlg><1b=(G_;09;0dG8 zs7Q~R(PDwKBtwQNd!f%Ct19*ISqtFw8nJOA#}ePuV`F#RBzwKdbC)o3n=`X>#2E&T zcGaIw;I6U>kH|U>F-cR(4rXuhJwFmpb$h|Qvd5{K^IDTi?+1%z zpOpjUE%pQZEWh~2kg^Yq7*l(6W-!o+IhkqQ=!WYhwI1xYfYj`*_C%opL9E@J_7OL* zQpJSMrzqko+`OEayj(twxGme(-PvzwB71m_dVte+uS{f2QnxVd3XpCH3@ZSRlXst% zlCeauH%opoq2bo2`FMoe7J2`G&NtF)oz2D_ZNyVQBkEPVQ%3nlU*3pz>v!;6t2#ZF z7IQ%{J+@1;!CEi8%c~T{YPJ5DY2cmRH%j4(Ka>H)YO7N=F$|is^bn+A zp{`MS{cE%d8=3Bul}!UdGxni|9llA+HAjqY?Li)~fX0R++5;U)?g$;90tP;!B>mpk0?Z)rpjuCfx6dht>U#4Kk^2n zN25xcXoFhG=F=|Q@)P8 zAO#3BVAj*WRaEOHu>skB90zJuoa7bz(CfC^pTX=uhIuJA_$ho^KT69|^;#TadYV0L zNl~!-yE*}jlAW2IgJN$)!Zl=>rCk?;<+uwwEc-3$0w)J^QKHWY1EftBrFCqLa@T@1mw*y*WzsTR7H9EX|d& zswmLKpPVTfmKIaSQ*91*&svK_?aBdsQ(0V!`tBu}0(sXFn&@zS-A!JQpSeYpc7IQ* ztd)noIY=5~@xdnnzE-4Puh5a!S2QZy4~!PQsXD!}%z@2#R&ssMT|-^o0qOS7Fex!F zjFP`thtz*qeIS%U_MJ#9Q_Tq|a!<=AeO|EigXU+V;-hr1A(_{p2t%4zrN#SrM!ia$ zzK}5m~N;T>|!lIWTZw+|~5f9P|`CQum@ z{rKyfuR{9GaYA)ZV~&+WwhR*6H+Ey)Fy^)vw^`>QmA6N1b-hlb%)1G)^24(3+(OACF#WX3`2{e}-iygE2(Ao1aI9Ds*dCV(688c{A2FN!L*Hb3n%V zOk<~8IlwJPAYR<6)Cbd>@gT~AVO%ijE#xZ33;7p_KO{4@sXP%a{PiWcG<5*g9f zsU;jXQ-VgrJT~%`JNAXSuX_vDTeilSjHiSpChzkTC^Nxaxi2fN7VpnX z=R9B_TEl4Q+3azJD3s|)S=J$7At`bsgv!5#HL#s_Qnt>?yqgiK*p2(v{VMFsa z$4bo!{-DO%IcfQnx#{KxAH+1N1_{LEv6k=DoQRUgrTTHN5{y<05v_%CDipxrbG&_lM^81tZP#)rM9EFsolgzkdL_ zcq-O3xhvE}9*N}Hrg8V0Z&iNc>;v_9=|?YBlFjJ%n>@%5B@sfRq z)&rC1&Z*wK`lQMFCeO%#VbDAj9cOFsJDRMgEe@fOo5}KPtYgj{zrNNN_zfA0c_r;V z?`ILueP@ErF}yh=quitiR(aQBdCbr47GIfat{0Eo$Cw-^I~OV9O=GADQr(*LEcuod z+gdA3wzZAap^jF64_-gaerrIL;S_djz?2>oA}U<0dU-A>1!%fenj^`(m zU7L4d)5G`1cFRS*R0Q8TF_Y9vJ-tBJh9E)lKIIio6ZR*qtN6r5IpK=Tr->jsLzlO6 zIA=eN_-g0kIR5&CKZh-oz+yMi+H74?{W4@}5VlKI^yBqZx-g-2cDRS!{M5CKdEFux z)cS?fV$2U4X}evv=6ZYbtgNS(&q11B&cWb)JR7Z(xG37Xt-d}&5IInMI>-8!;-x#p z#DEM#OSCy$*7V$o!xgN6x&kvD$auIc0$`+7G&9AQ(a`8*eziWsT zpNmZm67UH_G6z9*CxhpaoglarvIheaJ0sCZ9r-jeWBHRjVO=hpSdwL zCdDz>5g=UczIh2--n3G#lZn_`1s;!r-o_;}AJHh}Pv1qEYbCgVyK9%RnaUa_nOiRSXLsluatv5r&Ug#^Y^Sa2tbw+A?R^8B33)7uaDqV4RxgR$wM zT-eP4#4?{`AFwB^(c9atWYfgVi4$>mIK|V}txXv?W(r#4v#k`~o^he?=7o~Vk zsM)86-IpSYylAZ-q##=aJKaRZCvRblB?hA7OX^y$ZL8@VbYud)ERxpZrtF*VfsLaQ z*%*EVMykVM3lT(6TGcMjO$%hn!%GVfzw7lSBR~pkd!$M6WoS6)ao8%Cc|Tc*eQn(J zZ6b-#FYa%lm&x32 zRfT+vSe&?~=l+myz3A?#Oh(<|pOeq-&j`2-6B(vZ@7^qG@aTk~plhMkzSsYup&!Y6 zqa)G?;+{VvO|!mdWO2NL>dP}Q1sX7q#OZit9iJU*G_gO7q^Z~orY>q703)1+j9m?ISwWN0uf zp~%HfY!wL8@Txv2g-JBwylilk%pQ&bT(Fy=%oJ!ieK7{D27%GGD3MSTo<&vl2xPWt z^BgUadV^e!^>ZLWQNATeG@K=6F-q7>nxdJkRuU)~B`AJ|!V503?I=MD<#K^ks`0j1 zbQww{S}0a=nmCGPwL(Xskz=9gL@1OXsDK-q@J+aE1sQzQ0ac?T%H^O{CMCNh!On!& z2rMLvMxg3d4RP4y0658|*p%G>Dai9EcV*L&F{bQrn6t*)G}P_d?ByV0iR&~f9+4J{ zh6qg{G(;o`QjVJjg`rtUITlUw^G8ZG>Za^aVV7J^Yc~3}G!R&19cLJ$V|m%BaCuQw z4HO}Pi?G-*Ty~|Gw`J&qRjpf#qPWuONV%6MXV6t^6sHAwA%tCiwiZ)AO>Y?L5~#S8 z45M5`qVTw4u8N}}Vbsc;wSGuxvq6W6B8d3iT&bL_qiQ0$am?%zxeSVst9qomj7lU+ z+*vb;?+P{dYD7e4h7y%-i6n}MED!$8y%1NdK-;W~)IdqFdVeHcC*))(^vz8?s+{g) z%TYv;NEp2?yF^f7r{Wkukb2BLRvHUD;0*QASyXw zBbhF!fI`hynTSaDgNV)PWT_D* z7lgdNyRJMm^h9i4%2Mt>2u-ZkjP?llbf$W zT}fj%F-jz0xUpEIzaMx(4wsXz(8pq8F$O6?WCHO_q!}a9jUWsf9WGCyZ!sd!8ktC- zA&5i-0iMi6p%5Uk@v>qILW3pBqfj!r+R)P}m3ujHGMexj1QyNYrCTf&FkzY-M9Aqw zW3eP6ORPb0{g8Basy{M<<- ziYq6GVif8oHy4mvQd5srE~kSfh7`)FNHm5;Rd=R$W?EGoMYOHOQjhdD_o!6dNI#gM z#+5}C_Zq}Kz0z2y1HTg^fkt!@li*-cW&9l~QADMtxk_x_2WiQAvW(=9bu``a5O;DT zL9~%rOr6B;$X+`)YLAudW5ZF)NpNweE0VvmjfJE$@!dE#6p^Yy6U2SKN=z&&5$T5k z>-PWS9_2@ZYa%5muxWS*GN}@HvFSaRDA$Nc5TRJCB4gtfEe0k9ud>p>LhR|ng54r8 z9OBwygrW(V25}l0qUsczT-gwzMT2R|P=bu)M%J-p*i5R1D^(2!8VRI`G%{Ha0w367 z&`5RZh9XZt^okT{nj*y<_#$aoe@LEKL3kba~ zQ({+x3nHgNOlg@UG%d=veUXQd3+9B3q6qwqaC?w) z7)?Yc{_m!i2-oUk;ba{~&XyqL`cyAC3&{*JWK?>=beSTs+?p~BQYw)G)^`+@i2*&f z_M~g1EDBd3Dq9oz$l?q8f)93U{i2BBGHr)ZnNRyUrIMFg!sQL;EVh}kN>&< zkJx-H1$OX8k6c+u8ugn!d$jOFrHrdn_$%8R(P06kA-+!OJxlFKRdgMO%y`GR+v!8IS5Y<4OyO&;bYJ(#p zdV|A@ldfyioToktoMuE;A0j&MF6ms`cM9iIE1g2Z94LFAHl>5VX$9NHyDZIrYjDB` zO7(8Sw@r=GheGbZL+c}SE&(o=^ZIaE*uwe+-U*C?d?ISzhS2^ONngu#K^t6d^_Sh6 zebLw>oS~9!F8-t$Uuh_dGvB%1-?@r&@A9vRlRqUo_Tdjhzs0|h)!V00#L(*ayzbYO zmsYvrY~;W9ho@gHSG7-&uJK&{<)&%c?Dng^^OJ5JV&Y=Ck5cy8%nOPeQt$LznZGkd z(aU?F)b}G1j`*S;!RC)n6URnw1o!N*`j6y!f@G{PPADE~2oSbZ#qD_Ab)ta3U)BUYH?bSKMXY%(H%7 zuOExn^&gs-Ir?!=36116?WTPX1wKC~;JZ1Bx&7$uHRK)2en%GUoW7JDY#4WWQ1Je%Frcke>c}gC(7HG&G!kqr6 z5vSGR|Hhow_5^&0(k;$ZEY4kaMg3J9T2z~9&%NDprx}rV-q=0g|4oE+iK)`+fWt0( z=6^4xwfNYNM^l!N)7u(}cnmHMs`?dYI_m2hh<%jw&(R{x(Nv6XS8{G+u zH!mj+Ee+fg>i-#0(6V9Q5O=g#2|u*!!1}YBz6Zrz;vH*0-^0F0JW%;+iRVG=cGV~g zdGpP&>@(b}hteh|bVTEw-=J2BcJ5>fLZDYg3^)9a+!4_XO}tlH{)$aX{}PXToi?fZ z|JHEO4Sn=Kw<7+`SymB{E{>II%fst*%;J3$Hpy}c-~3@)?}%)+L4vEwoPD@UGyD!* z<4?KWsr&8k?eVjHhx={)qr{)g0ryB}RLslY)*0U)WEsEwB%NH5#ZMh;i|xk;6o036 z`#S&LFDzKydI>Tx7ZEY_Ht|6XE%PpXRoSRf+_>Y;wO`MBFla?tDbFKd$4%rIdz?|zr$40v7uN*?qe-=F{ zK9PN~enL}w?hjj~yCJExiJ~TbI`d`nm}GMBvZRPrzN-TVtFoo$N4NSzC+u&HndOiK z-PwgR^Pr28-V&F{W>o7w-17cDlQv@CFk^T?C zgkho29^V7^Z@>Qc<%w@sPBGZj&aj2gW6y*lOC0i!vE#R;j<`P!JAWlgVtYKfR=V`$ zxP_4gHEW51pHZK#IOB(mZ(+MM)F+egxNgeK)*ek>{J6nsE$_zs=RC{DM3}at>A&_g zJZ6G(JEDFk1ry^*J$3qX9zW?*&d1M)%e8eW!SgdRE{u9#FpSeP`ZtKkTdfn~)(Jc9 zV&@VGmrrG!X0d~9)Y-yQ^Uen?@7IJE z)-Nhtk?okz)(hCbSP6&&p2o7UMB$Mw{1c_5rye&J8Jg1tMl)7hA(=++^*R)gP(3!_mS_$l0$)Vl4d-xTQ7jJlk9FLx4x9&^MhmFl&l(b{f!GG)g7@Vn=j;z9 zwTaL9?=?fb&u*LD;J?yVx86KqS;K2Bc`=B(lo@-AS{*GU$1e+|=J7UO?V0*MA~oE| zJjHds>6D`5)F5_<&n@n~y(vsVQAmb z2;yCRmOPe>6mGo7k!a_7-YRDL;I9mH9+FgTDddzTMawge6i#{6bhXU=jj%hc`sKNZ zr+2rLCA@`GbYql{K@ZHQq$7XU9`2dF;@R4bNA_%@Hx-x+(V1SvhHIY!9?gY~*|VGCIcr+6)O-)B!aNm9V%H#{(1q+`?e2Pg0GcuFs!P`l`++_IFCw>43tjAs#F2PvV@MG|z`uTN)odKzWn+?3R-D z`|sdx?bszvFDj=#3w{2E6;-glYNXL=_om#3yE%zVSdH@-zeV%PP6OgQEDrm+iG+Es z{}ZsDPDQkjEd4p-HByY;849tfeXuZ$mP^Xt2S68n;ghxm{gE(7$gOkn2U(rEHK+&B z%ST5I==H572Vgh|KFPC-irqYBoqp`<^P-yW!hlX|eJ)NH_C(hgub1~I-{T`z4U99eS^2WF)Ftg#>$^2`w^RiFl$=%JP9r&w7 z&$LfeA8u{$>N(vNHMZ-_0+o}4{dIeu{y*6$Eo$CLzh}Gedpxh4+>x`mrP8*MWD21= z2CpoLQ+u{wJ2cwrJFgNp6OQs$ZJvDXc=~zYymK3tM$aMaSpJEr?{O8J%3&zlx;K7F zEN-gqloW``@$>ytmH6bZk_8)Uyj=Fpn*y zcE(CZm!`{$OCejHg!yE))a`f>c`8f$XLx>0|18^X9}Rv0yY_R-vBik;f!4N4Rq-u% z=M4{L9PzQXOgoOacIJAZeNuDe+OGrZRSng&XlQ!HiPn8zE}a^ruH|{V6uOgx#CDwVNz~^jxYY=#KgOT<&^R?(_iT0Q<(@W(WwP9-Y3idvZdr zqGlV!LD!U%l7c$=)%N+SX>J?({NLX!U$QeP^2~$8-_vg#OmFi$Wnc`{)J*Fm-N{Pi zyfoZOxU{Y6L?70k9`rn&`lqT9R=eZR>IrTa(`H?ht}GyY3hlb!_Za>?vtIV2Buwl`1%+IVR~bB)1JT4vk~LF4Wjw{os(e5PrYI7Ijr7tV=1FGp*JIOB=gq8 z)`}l#%1S?HM)ECa7!6&@-Lq}MxT)1e4e3jxOtGRJh0-U?)u(7{=WSnQa}eDbKKn?o zvcNED)(&-!SLHwmqcl-n`-xj0Y{5DrA$Q96X1y9x1(rOKVjv21(OpZ)%N>Q$+ivF! z&QC&Id5=hLcJlx5l>XCj*5UlhrphVtTNuc-eYjkeCf5FR?Y8?hP1Jn(o&66#9``xn zIOZ{FM7nc4;e{yZv$tjEw2$MipYO|0+1*wabmG7boZs>lPvU;f(JVP1vV5Pq5ND}7 zbTfKt4~gZyot5HriU|GP`)&JrNnpgD6_ih^z$Xz{qjF`*w&|Ly9fChy*P35P@4Ef; z)v2kC##S5ucm8X}!EOg{Y9exq=Mi7poSH%1^XIFvbJ;)RCi=rQlw2{_N|&=}RB$59 zq~rvV^|3^nMpIV-*KrXtKR*`~lSX3!h(m5M$RI*>US@iF+tiX|u$| zPAd1ODyjo8&5CfFbTYEo#G|S;2sjJPq;TaT8ktU2=qstca#;m{YBE0>SxyFx$~7xX zip@7m{Gf0ol}eMrrHYnVTh1Vk%SE&3NP11bkk)+0p%6ppgi1?nJ7q#1ey zV$dzPl%e!h#M-vwJqi?21ewTU?j-OyJyL~^X5exFvul)|LWy(U=d%vN(Ju?tgP;9AV-R~wlaHq#rxPJyT#$1pHa*_B8V%%Tdcg#dPeIYYsN zLw$3UkAt}zm*dI?T!jop`(q)6f#C%>CKsav!)qo>Y)vPW2oe^RiHcVeNmy!6odoJ2 zPm~K}P_!3ZYDD_GU@>$65Bvxsl0TD2;8E~Y3I)eRMxM`%LX>L$b`nun zM=o9o=#2*DWhb;$fLk>MLe7vz!xiy6Io&wGG)=j6Rw|=ePSX?)lc)?M3d}Xq1+Hi5 zXly!@N@Ia0EgG0WaIwgR&*|wR`6K&#LXOrdS!Y(wDrY=F!n0et2d@fPq$Zh>ANDMieI1 z(SqaU9yN7BeFs)@^`B3T%Ns>g_^i?KvXFwNq$NoaVpq1;vCVv}A1<#&|Oy%1oR zK$GQO#1v*GO@`4clt?d_Kq&4aA(K>nMA6TiA91nXZagpY8Qf%p`--r>zeQkC4rE`OLKE< z&($FOku*RTIq!-RpqMrf0WKKDqp=d1Gz|(+;vRtC!$Ci~xtt!04vi+Eh$MnkuJLUq z`$IkPOhzR{Xf<;NvlZ30X?bk2R!89RxD`-4O|dE6po!p=_`r%yTygtEZ_6-;E9T$` zjAk-fgQ6B&ED|(EVsGXcbYOn#kSs4K8mw$GxdFvZbHl>WVB7$ff_@iwgpZ#FHl=DP znl6*MK*M-x_{Sv}ts)KzXFIm%>HIJn8JvmBHd5=r(=})$-8Q`>!QPtQgeQ}wv2ck~ z7ZL2~+Dfr$5_p4vNM|9vSC#;JOJqi>to%-pe*~#6F_Yf|xGgyqZLx?grkqUbe_Or& zlDzRtqQ>#Y>BgNNx3gKh)BW%jc7d*9B)nFPtVo5AY`ijyXT|+dF2SI`=VW0hd0N$- z^s)_o?e)Za`ANAyJO??5Y)|3}cJj`mS1})n$AvERYxgz}`_^Kr1(UsXed4<(8pX{6 zcRcX@OS-kQ}-M8_P7_`Q56st?Mql3e{EUjNLx!|vJnr;a;>5uy+L z_sSsKNwv3^#}tidU+vFi`0W4ZbKK2Gb%`5J`XoL=vEH02 zS~sA&?E*jJMPBy$M%5!z=%r~LTTx+5=WS6p9yMPV>#3?xX57uUm!dmpA7|B0s_DcZ z6MZZELJsv_L|7LaQP$*Wf28+xk4>HXq zC*9Yqln{w`0PLaG6dVaFc%On=s2eJq{^$$j-17fry-vy#uA+O_+6MpVUDB6u)o~rG zB#trKRWYgNDQCG7<(Gx=@W%drKl`9t*z!Am!kz@|dw%k?rQ6=3ZtXaAgm`QIN|S5{rwvyP0d&3jt3P;NK9lfpd|eQef(TQ(19>BZls zJfKBVqB+BR!#Hz36^4<>y8SP%@IKrOyL ztS7lQBEIV5y-IbAbI76QV(5XQ5Yf1|92c3Nc+g zU&az4*3Mr$pgK}zUfvr*ocHy=Wxm~Lc287A%Al-0fZnpZdYTG)+^2AKEN2Y*uApz|wOx7TOq+Re!; zUwh`WApdRA=9MFh=Dg;fP@Q>S_bRaBq}j92>$_uxM}GH=tc6v)SF1A+6((!5=|(59 zn=6KrVvelU(Vx#;6!Cy|(A`Zrfv*)}Pouv=U3}jl4lSVLkFMGi`N^z{i;Q?m4n=QH zU&j(>s*g@O4fQ;jf8(D}mUlL^`=i2n+PRq7XEVzs3t@({OG8RS|Cd0GCw*9F36TBv zSUnb!GUG`=b=Q%C(@qC=t&qLgR-al4DS7C4wwhgQKWVu4q)TDl;_QctNPd0O5o_3{c1s5#}h*UKLF%Y-pS3|Cpjo7+<85_t+3c8t$gTtrHnr#^{mb1xJdt-##_{B2`-nK+h~i9y6lNY zic(kkjK1{?eb6xd(6Fcbwc_=!l-9BXCn@LXo;fS40 zj{p6lX!Tq>y|M~A^3m((e>%7S#X#13S_Gv3o&8@4q-sL+;f~L@ky%djT_>YX{3Hk8{vSM=Q0U5+i45)sy+SYXUoRi#dBy8n1osB#HQ8W zS+|-YvZ6W1qj$w6EbP>!Hp@^?pG+B0XN`Dx$!jk+OdOqu_+Gp>=heQ#yy}UUr;aXf z=!8z6ol*~pt?p)ZR+LlAa@!O!KaQn#cdr=Yr97Ee<(0JX$I`nsWLnZ%b38Q2RMXp! z@w)wF+w~8nBBIZ>vZ_rV&mOm(p4m~OM^E?qdlDF*Y?*g%^~U4Zs>`Jn$o~j))|WRj z7xT3a>A`{)&ghwlSJgYek8I9=YK=DYN7t=>Fe~!7G1b2JN^hk9iS*2+qltuoC4=$z z&$!R$5clJJ1}|X6E*iz&qtRFCO9yUkbWm@)8?{YXykTwfT4z7iM0%DE(H1&IHX^Q9 zYWml&nium$^DO4=fp;|US=U*&w^ocb{~kSo!+B5hrA1sHTNrraEYJ;i&pkDrVJkyL z)+{rMNhd0=-zj;1qqn2P+0Uo8cGdz~s5%($cXR7Usr+#b7rX-Z~n!vf6^h#V1|0f3XTz==JZtexFTk z$~jJ}>0iEIZ5qH4g0;u@66UV`{z?7@1AVV&HCOuNJ?jp_;}eccJ1@< zSup()Z((FzUfrE8qsz4g9{&li670tJCPx)Uh-I-3j0+me|UA(=lJ$HZS7mKny*Um>HzGu;MGWe#w_J&C*>)QZ>>(QTR!f;s@j0Oo$vnS zChCgkyZ(?=(jVU8cDKaErO$rUDNvt3mu$WepidGtJ16C^yekp#jL2B~Zggl^Tk^v8 z$(vRe4?kSk7^$A@RHZ_e)$c0J{5(|S|I+=$?%l?#r!JRyjX1TvymUO|_{{Rfy1IzM z%F%9OuSqtJh925i^rk#LvLO`N7W~Z++qArC{*t%JHD|F!g~x(VRXi~?bXEj!8xI{9 zaH=6hFO$7(eWebov7fNlZ(ja0^MYl>QkO~N%h^#|^@;AEyX@FbuoHV+58q97A}$r3 zDGgpTbSTZ+>*ds6w8xM2UxT+6ygoRBVR|qE^toau-5p&0HY??RVgJ>va@RwVluviA zyPpgy*>@@R6BaUQ<;q6SW-@YhJ=bqW<9hW+SckY3!PrCO)=MwU@L+dAhu587A9JNq z=X)+Nw`%BqVV!Uc>*3p(>%bo$WFI{HO6k=JzTF3gPu@?gVbBM*J3kt|bWIX_^8C$@ zs3V0<4lDZpgy&*MFT;$^s%r8m>{sJ<;RKuf+Y9n&epM_~=27#%)6jd*DWz`P*YBE9 zJU~(ydl$D2_$8H2U58HlP`7#48R&X(aNmPRo=0!7M)E$|o~>7BpMuWSnev~YWep9E z=v&hlo#r2-q<7zTUB>WEtJ})sm+bpPjX-t51)3$B*vJY8jmM&&IY{Ustix^8aig zjN}MlhP?1wTWn>I&(-fcm6TZev2aH=vbDf|+5!3&&-F)=bMRSiRRh<~qbhsOv>qzE zx1(rIv3%{;_mP$#1Jqnu-`v^#{6y=2J)asbluo}Va1E`x?3)}-&!1F3ND0!UK41+q zlBUMB_)_k^m1*|s&+*yX(9pUrwV)uufNh?lz>>Kkxo%Ab^n2?&FTl2&&3%j|@NW1Xw&hElRKH^W2 zQ<-xPyrfOKq5QJuRaaTe9L%HEnMZgsAefAhf1U9`cpU!#6k-8A!! zmby>? zUtDJKFL845tEk@hzpy>q$0bdJWq53u<>E;>_&lZksx~3@%+>w%WAd3pp-=NpJcsms z=$o@StDI2w)zTN(LM0E=e=m4Th7lwBCuOf!Azj+P*D+SHY$?h1F?TkMh)9_${2gmz z-qte{7w9>crf4kE1NV2#Uq_&_*l=~<=FvZqukO13THq$V6)KF~8uQ=(#u+=lj<4$q z!&879<*bRY3RS~sFNDZKpzy$fJr&JjqML$rJg#aeU4w~*6abcHG2xgbbN~=Jgi>oCnM0H4bFk4pqXsgB2}WhNpjy#IPA z=}kPYTrNSgSaLd2+@nE=L?|K}qwxk_m<~zz@-_u2qV2@>Xu7)6%f+|38N8etXiF_d z@olIdL@1ThJc^as)fhQVp9*X_Z3!Jo$rMF!3|b`;h)4iZ@WKN1jAjiM!;;GQH%pLG zmTGX4Kh~Sm?b@Oz%V~zD9K5Pm#zlxN7OpBV79!PX2;zPWU|V419s;~n4IsZJw%d0XXlaw?{oEM_ztI)$8cvcxIP?e817Tuxe$!7A5Q zGBZierXUZ#Ldj5^L6cm3jaURwYUC0arWyP;DpE!w0zZm`#`*zb!z4kmc7hr_g&8RW zY!kSI;FWqT>LwmXlSqbxiNzMKK8gs8F@Ge9!0*J@0ad73tE6n!v&nP` zTxzh=5@62FY9o=_)0C60@Cw6A4U7^xmIyqc06#m841iCyfx<(fvP&dTB1`6C+fg)O z5XXz;A_yX(C9p)FNCj8QuWX63HJ1Qll#>&r39NK9DPnJ^!7Jcu zIo4MrLcmE-L~&;(i_t>X8vyMCu+GfUAP@kG0;4ie?oZ&PM}e8QiXuBTiCl9Rm8ubn zJb|A8|6e(5LF$u0fETd4Hcrh(XqCk~h1O=l~EVms5 zYzQBPC2$cUBKTH-10trr*`plKM0%U@q9W2Vl#Dp2CytpY16ZU2G6CpR zYpbdH1Q*-1j3^fbzbvVv9xua4G>v znQ1u;Em>>{jJEj;*<5UJSTu{FH==-$ry=muqZ}Jj+RP;2#blbwN~F8+!Kg(@0RMoW$z*2MyPz^jQV9W6QG%cY50~xbAXKF{mtZko z1$cl6Q=t)7fd-3WG)oY&L~3WCo~+hj5gM*qNoCPuQGm+xA6EigY+&-ZL_pqD=?0Dg zuzWa?+LXgZ`+Io~0Sd0_kx_dzGK30;Z*rA5o8IHaX#j?=CCXWHg1~GQ@Vj{&uBr<- zvS=?5R>yX76cOo%q~w(d1c5E;W;t3&`n#X$H4zpNE-9T%75|k|L1JPv>4^}2PZu*& zM52*(gh(k1Q^(M1jc}@^mivx@}E=U@<-CRIr_UhG zF7{Qg;so*iW8n{qr(|Bfwu`u@&6eaAy)D7K@Htl#T5HnUDNJTP)5JaRv`JZsc;dhUwlr%#Tw+Fsk5 zFvW?|_$dA3&Z|c$1|wvXb^OzWTnk?oJX>eYB{Dr8HTJretdC6Lub!}ZncyGn^DhAh zvZTkSyga!%hV9i@CSSUu(bfz7!I12>p^Uod0oTcsX=CxVQ$|bfC+>W3+S9}M<$UZ* zkC`T2XGF{L%6{&SL(dwb4wHI9xW6A9(zke?p7xIXK5nij!7a*u|8Q93EZ2a>(F<>m znU0e>1#6eB?V68Ii*7uBbn~OxI+y2^tKZ_A=s(W8`fe|2R~HGa!<~C4sUQ8U0@XPm z4sRrQ0rkQ?#yrxx_9nw<8hyT;T5$R##&D`wKgbkD2)@nRM-0~Wm#^Md02c<#$6j0_ z-a~^onJMLK-7C-3gySIj}eT^%{=cIfyKb$(G-lYpw z^sU|A+q9CUejb@*KWoXrgY;+q4(O*VuGk`;Zo!5xJV}4CDaOh1k0H4+QQUTieS?x8 zwDIgSrKL;TJu_g^VNdHcDCa1*z)`w~g*d&@`TpSaMz=sL?&U3?50t9!oe+uU-6gNZ zn@ja)H}~Bo8W<30P$J`6FFVt&86rOATzgMxKl{S+*=Maqq^qe=Wd1{|3r^_}n)w2@ zG)AurS4~lWkFLJ9>TngMSLHF)yfn0`3GTj5y(qWnRp!-; z@;b{0U(dKcw`t-@_hy$*nu%Gdf?}n{xQ(dQcf!PdmtTB|aQ~5Bxfbz5(RwVFT+-%) z7?6-leqMexow{W1vM-5?S?4`3kX+Y6ZEjp%@)Q#JFjGugQXg<-O-j(AF>hJUj-715 zgcEs$g;$-OSYsS z#0Q9H?SI^!&S$Kq9&b3$-6@YD7SHC6?+|Wv)}>(CtG*qLdac@OhtGs;qI!Nhe{?8m zi{rht%=XhgxKuxDk><|_#QAYEi{9*jIMGX+P0Q`+uFl)4`d`@~(>oqsMi$VZpIW@8 ztEVAxKF<*2o8QrfmzI53Ik9~4*F(=9Et;18{&(llO3b4x#3$D`Po&R5To~D^L zQ||v-_Q2ElD11vUZoYEbYSY#OSZ^0$QShTI$(@{S(pQR&hmBOl2n{wGQ1*{&k^O-e zBfpkD-}c5k#M|`DTjanxv0W+1oqwk0zox{OxZ2TaVgG4gigLoM!alt~l(xiDe|2dJ zNkxo*JqDlcy*Itw!tM|5DWzKeSH9^x>OrN`S#EGX(afA6 zi9NP)fmF2an9sXZ)SAwpCz&lTG+N!Y2zkO@=Tm%%z~=&d>X^@JpBwb+viYT+NvR|9 z)482ySxv=RXZ*R*$t$kEiX6tK$yT3#oAeT&MI6&db0T4Ny*DgW$eA;C`(V{6Wv`wr zu&)2HuQ1|*k@7p0TKr#w2W3fJ{x+3UPBxCd4m_jTw3J42oPl`}aT4U=Q@m?;1`=l2@uz_U|n5 zpX=7OdyYD9Hd5aPd;2YFF=Z`(D1Uq3{SR?dP#oN=ReS$P{Ks8Z4ZEaj>m2XngjMuH zyMlEyJI0pw$E4wp#S~1``>m*qNJ{_sGr_cBO2CFdi2H>7OTTOj$vbTMx#r4R77s}>n;)*64a8ga;x^0)W4Knk{scN}%j0i)k z_phuS>1en&jl43)xsdQJ>F&0~xc#mhHcV@obuygy6YO{>`&`k}Ao;CXEdwFlN?w%K-4UffWAg92A$FiH-)dj1;^jM^SrkzTV>)8*3()%% zwT04r>_U%NP1&q(Cr`SX5OXVbT-dnyaUaY4lQ+h5+&*`F-#0z>YnShlI~PiJd(`;V z=PjQbBUt=r@rA@5^Yokb6Gom`sbwz1YYfG2!d1vu?Bmx>+>7-vV-4nNVqgJ za2ZW*>n)q>6i_ZXW2xX(6lPgZ?PohapJHo&T+9^bH-<{M+8~6J*JW4#Gex4&x4ng( z9ZiJA#Q~nuYqhCWf!N_iZe5zIM-M~FBbVgfORqPG9xZ&Ea-?waNP^$b(YsGYCMw!Z z-JLj{vS9^Ldiv}u-ucuuc(KYg>yT;JqyvYU<98kk73F@Oq{`Ib$~t{63jAG-|CRMt z!sZ}z)mOfKMw0LD-xHc`2A^~^swZ!0H9mox+ll9<)6w6{V=N!6#riDoF7n| zWYhV^e1EU|+g+_WtNZ=mB;)AcvWh=_v-WizNY1Lt=Bo>?gzq|)u%fJftIPXaeZxII z!{#M)LY3WubyG8aM#A=0NVk7@bN~Gso3+Q1LmOX|OmwgFWLnc1NwnbID|iQ^Cm%EL zW^QO|8n3qX54(Fc)pl-MqrLHBeVw_snD)5_sh)J~qwno6xuU!4#~gO{{0YePYra!+ ze!a0gtu|t2IV{d>w3)&=zomh~h z=PSt-67TS=zH6DZ3bTeSspw`gZZ>=S)gy??~pyrD6WadE3=Q^nis%x^AGT;(7A^ipTk_AqluTcR6oH$nmPa ztOJ(!agUxFQ3$cM)S!Q%Zf#w8OGNWekYX`U?nNA(Z!_b|>~Zq<+r%ham{!Jo{$jmxR^w3L8gSvuwD9o5{cPcVPIUUlPFPWau=n{8&Hm&{h(i@&i7Q3Fl?le}+FNhc^1 z*@=JTRXRo(ALsUxUHmNKrjlc5Y!W*tN8G5*0veLIv-M8J0atqb!4K7K1rI%VH%oJ6 z!g%7bafq)ui#i^ZdWRXm+#9SGAH97A(ur8$!1Y40k|ysZr^x%c5mH$;o@ zThq$QX07|Ie;Dv9@lMbC3(J323D>r^ey5eR?>ym6J+AIPNeg3p?Fn)1Q@PVBnje+n zRgZSKwM9RwR9haoMjI9+nRVZsgEmI4aZh{c8b@>NqTl_oXT~A?^#5J4Pz^sS>*QWm8qH&t=Lbz6`7`^`|yNa?h5o<~ye>P6Y}BP*7K z2$uNHyK~4PYc0+1OT-1&75P8k`zkcg{J5({Q&q-O zar2R_=KQ2H3A@Y)GjwOFY~jJR{$zO9{qMiZT6iHR46M;DnEVw7y&w!d9;Xocy=Le~kK%vF!T*m)CP-RFGFm%Ad%p&Gw7$!uGg%r=wvx%UA_YQVuXT|kseg4EDmWDf(P=8q z%@P1D#7`}zK)nP7B(W1k4*WE5;%8CiR2{_)xGeyEae7o7BZ{F{qNz;ZO7Isc8;G2pjPP1foJv zMk)f41lWzs2}<=tim-m5E|ScWsuig~Zyf5*ONH`#fO@DwiBN!mmS^9)$rMQ$!$=Two#+P;!bbe-R@RizLY4B=lbq%)-GlsTxkxJbhFQpr?T5Sh;NY+6L2Qxv@qM_$R2?@ft1Xk)`&;3;exxtu?wkwGIYfu%NqdL|Ld zH@z#0;3(RnfS9D#z^RlVaGv)81c5~z>LR&71U#a+CymKalG$}~76s4bMf7x;d!$+= z`v0HG0z>BafND!D79b4*S4QCSaLly;J(A@CP?$(cMoL^Tnn+OHE4K1`tbzkT$b>=d zSC-nE48R@)WhvOmv}u3a0mYPne8^eMAaWwq(-m7Vk6eKyh%6RM+B`B_M%95=jR4fN z3GfOrr;CKPf?C{&P9hR;M^$IK!bkvt)r4iY=>IBHPHA~S&|*=6Glo|UaU+082#U1X zpd4F6;AB?<{)q2`fueAZ;Y11Fl^|%J=oIKt14J>nAC`bIh(!)WG?T_+7|}#51+O+V zxgntf5h}jKdu6pPCkhmJvzb(&UTSn0y+N%3XpF|f@~C}&G$R^hJ`liMR&!b zLDrJBN)(UI(qN2mW=6AyfWt?*2t+1sq%1-~mOz985s?8j%VrH+mz5m}1lj|b7L|73yIP843x!!T}{B3d&unDzoKr zQKaU-2Fzb(XM-XBY5(*7e-r<_17Dw;Yu5iWwZr9mhbMo3Q0x3B#MRZf+_c}bI7RG5 z6Q}R{fy)V56g9(_5K2L0eqFW_vYI`0S?$+3GnW;oO&%zf_kwwCthw(!+js5WF;gVP%yJ4f?D=Ox^gq_KjH6bm zH-wnJ)kCs=0;m1``;32fz)>+gCCU?BHQCoaX2rwbKRulV_U?|G6YOWDO(-p1KQX#R z`d`K5gY#M&POM+|P`zU6Bxu$DYL-sG|5uRHzL!?h+N_&4bEsW0^1sUwQ)l|`EQ+h0 zzD&uzAEJMpfD~)*&n&))GPv2<_jP;gi@QC|go34sM@!w#-9S4Ci>t|xZ_aKh{_hWV zSvmCaSZwnLrf+<;TjPE*CHBqmmgyV!{ky-#0m*##P!w=WJyCMnX2@>J(Z_q+DaDD$ zI%du`6`dIIdfv5#)_2JiQ1`&MsQ8s#fRfBc3=|S7QyO{{P?u1OA+WX=5j*!6ZX%4_kX9Q z-}T(Pa`}tE|6n#%LG0PfN~`1F9D~PH-Lyl!~B{$u<&78B%5z5*yM_802Dp8Ee5k*w4iqhfeR=;<@|9U)4$dPFkF7 zjPxK_IoAH}kWWoK4DB60bVM_{De^R1!e0Smf>^QH?0Ee+_JRkKt|y_Y;TqM6?qi(%jN4Yecx^UT$nDOs&ubkll}?)pS=)B|QJRxUKH;c+ zvtra?j9?<`w)xO=MuPa|has6^If07duW62d{#&yAkeU918Z~PGl65G@xep^lnWqZ(G<7VYH@9-)cqD^M%+Ktmr#nF!-QzNYhBY&0c*A_QXfgDhe z-!EtSdep><<0hxJSIv4fEmip|t>=T+xwgVR`>?2!vhhhGW!ue4P6Y)NWlu=b%SMtl zCjP(%8{_I!v;s!%9yLi!Aw%``_3Ihw7U#AI68L@rk~=hgdsz3Y?I1TWaGUOBNppMS z58V6nE~w)Lp;nd}j8r`2+W8K3xu78jqpj11;WY)&*?ve7E0v}`ysh-?*g!CYV z2MMtjO6&U@J=*PItJ2@L*}9y+&rbQ0nV_7#i+bb|n4wQ>{f()q^%JNh5ev5N6zeGe zJv3qbAIaHBXXW=eA$dMh{%XI~`GGF8-_o%*-=dfDCyjT)dKK<;?x|R3iw`DSWl8R* z#W#EVlcsvbzAA}M9Uewho-9hjHD-)b>+YL0y96Pe8x4)ZRR}j9AS+yHvN2OP85WW{ zLn*9kck39;rGq;?r8AA+s;typeQJjAzrz;SKO~s#e>>zs^Rw=X+548Xj~JY3VxGYo z8Gk}7gjk5bk(yAOFEhWsvU_A%zQs$2U9VTqd5DLgXo`GsDmyX8Y$oRsu^AEx?0cuMTsY>(V8l(gQZ+^(Z> z>C9gh=}f5{Ki$iYr%i0$Oj_B=Dr#pzE^4^TyxGRo9oi+n{`2ydv|KT@nBa}}=1p>M ztSGFi;ZCy#q0>RrIEeA{&nE-+Mt%@6hbG&qu7-;l2f&Z1ne6w!7x43$rG%=JHB5e& z6BIpP3cstjsWHmkcvzLQYl~k{ce=cTs6^9v`}XAScgLhuAb_GV z$9I$EUc;+LPnTw-W~wFR9*YawJ*%#LSmZNlPP#_^*IC8tn@q`avBP~QBR82VFg|$t z|7RASelx;Oao7U(Kvtqg`iFa?N4fQc?(<>En`F<7@4la?ewT;Zj@H(F+wv32=h^K> zYRrEWy>#~@s_`fJ>cXYQU%S!s)34s<%P{l|_J}M5Rtl?Q>*y1za|S^Wt-7l9x0-+S z{9YtaS95-9)zDV`dmjxqidoC;T3v|C?b9-Rvmz(4u1uOdd3k#vb|xDR(J$?O#_mb)vP8*T=y^IJ7~Dr!@lzu5 z?xAx`cXIOC$A@3o)i1Qv8s%4Jtywa~Q|)4OmpCF`i?He?d83jdb$7~X%}-cIR^lcjQw8GPg_fmd;@lbM zxk^#7?hoq%b#auDdZ*t+{%>fn_S^Ift;0JxGkdf`e81dI3c7DV8uHPITi)GW!LjMwNeHf_r!8`;^LuZwNI4;PP? zHyr+b@cyavu;XV=YO4%9%V?YF*xGf^%0Y5Os%HtBixP5XjnNT{-5TSY4k1Ibvhx3K zc~6=lOU zjHBR&<(5aJIe*@$Mcwo6yBYn9#oO1&N@X+WLLIY*Kcq@cHlP0bb>H1%=Uug#8=}t{YOEYIo3%rM;<{rx#%W6i;^bzRv zlPhtYP~)wt7eey&Gj3U6CC9c{lHw_LI|e`hn7+O%;}5pwyJ!x1eS&x@9MJ z#z+h%+o|21vyW@&fn{i0Nv=%3>xXDc)VTfoVAb}xLMXB%C zHB=SNmry!@!^T=4jJHhthDqEyZRxr(%Ec~0iwy4XeFGCMJa9Mlqce6@M}lG6e5JiS zbh5aDRbE&{|7KSksM9J4e4%R*@4By0y6xAQgpOw%^HiT3sl-_Yu~DOtU)eWa$nV!} zJE8(}hk@RG8VygtNDY={?Nf=2Xioip&ozAF>+pSeTU_q$lJUxzjNt< zY9UoO=NNOm$$lySt=wautDQ8>?Gn6`DKfBX|bK~*YL~fIjb3g#d5Liezkjc~# zZIrg5ty%KSe+5!90mUXZcuzth+M53_Pr$=!>cKN29}fd!mXi2A6N0BlDT&}B3OcaN zfH^9`p;DTZTlv%;0F?mtMY5MNW6T22;tl{0YHjvzwTD2gYe9y<0YYWUP%*Jr2)s8Q zl8g;1aaMuo{}T#}olRO4J!S4iqS!!xWU?VRCJE?+DbyZ51^_B-k{j?uQO!J5bxR6( zCZ=Qj&58lV#e?HmaD8pj*GIc;BxckgG?rok0&qmMZV-&scxrF6q*5ZX5Of-6*09w^ zp#VbCmZ&hEQH4XS^E256nC<{U4QPksql%r4j0r8MItQ7)EJ%_eAm_Y2862uLn`h03 zlRUja!&?CG_1v`45P=1iZ>>z*(`Bhylf( z45Nr*6dzPw1z9O%HU-_*mITKQ0f-DrquWN*SjNvLg|fl}pr5`gn*}&JPXfqNP%Jln zfbdyUc{Lz~VHZHVznE~rgE-kP3oU-nOvXQ=gkS)8uvwmNQJppthXaLRg$j(CI*?a* zvOrXWmIZ*4J`y~0V*wHaTvsiSLQ(`n+1s3{0pQ((*MTgerbaNr=0W{~nxx#^NZue} z6J~VJj+321)gD_PNPu)A_^0)#x?&<5p3+-q1Ec@@g=}se2nE_ea>{LUbrT3?jo{v% zaD7m7$G5J5qY>6v5Yl>*2nC7-Kzx+xMK}kHfOClKVI{{Hrt-1ii*3O|s*!T5Cj;P8 z0X1-1YEKXN14tbT#Qm;`&Pb(zG)x7UuHe{-I65AdNk-Wqo$=Py)y*Ju1Mi`w5ul`~ zAc5>21Arj`H1hq6PC$lIBoQ+18GCYoSqz+7S67c>2qZ-a z3eFh)bOuX&7>^@W z8};$Fhm*lsR4LwLkrbiH;CcezGi8JYgX8~+!sB>t2`-4my|uLrv+R07p`ROEmS*yg z*8=8UCL4(082>1ejXoTNIxH%$kWK?NlnQWsiocl+k-7I$RKm-5z;{# z*A(f|+6)9!!07tO<_Gj!)A1?xA87;Bg^nG=eB3 zI|J#xRy3#?G=dUY;HoF^sTxe|zc@_{R9U(FasN~J=kA}Ie;S*sthZ_8Uiu|tk<_}P z;VU}W>U2jIqc<7P6SCd4f0}Rf)IO_ZZYZX`i97Q3HU_Ep`jz+rue4N)j_vT=_t!T@ zM4AitBy^&#Zv-cu*;Oszn)?>MLsd(RKW0`dYQAGtK^@1Rq?Yn#a&*h=#tO1 z2aXuR1}q+rkhN3~Ym#!e+-dA!epEr5w6zoTE3YWu4BoC3GW>yiY&o>%BXZegr;84G zvp&-KJ%e+uc2x%c%;IFpWnobu}y578X|n{QN>xpCt@ONv?;#EoJ~j69nm z7vJ7{#%eU{4I%cxhup@y78rc9ZTcjqBV*JtAW#-w;<5Jr!j&IF9xtzFjeIz?pd_T` zcNdp_P!BvYNFC;{UuM}cYHeLEYrS`KDzF}?ZgDNZCnTemO6ozs9pc%D(n(JIUYN@>%|=TZi<>U-mbhTNt{>+#NW3 z_Ks#+R;LZ=<+`?=Ca!#fe>zEjp%x{d!&!d)QlOp?=cib0!4my}zPnw?^H#r34Ga ziNswB*p`#HP48}x>un^wpwAHXZ)yT zTgXt(tqQKcj5;xye|RBtaUaFd_sW>K_14Al9y4s)!P>V3#_`xWVH8s{#G^{KgD$P= zd-sXLqOydO)7^@!`7a26bdf{zQCUjeqeNlr>%zoxb@=a_n3F%!NIPVWJ#)L_>?!vK z_SNK%1yNmB`^U71+O>f>gm;9HG4$|dZnb_!u{1I zr*+iN@i#;&RH7|@pKL>v=TN3{#_xnrq1nov>U#|=izX(;`@bZlPnY$u((U6a*1p9n zVn#EVtp^CV?(F31V|S(``KqfBR30g-*|iPT7US*i-N?xNDcNnwkIFS zL5<99Qrp#gCDw?M|Fy1PLi0zW0;AG}@Gigbd$4)z_>?heXt1)Va<7d2WR~hr2f-UT z^YB_|>-}g28}GTcRm4f&t22a5IXH} zr0jzGc83tkyiiDYBt0}eD?iL-Kc)T$hNtoTBL%pT1fY8?Hw#MU9mhQfAU7{i56qI zr0n$zSH93f)q0MdNsQ>KBN3xA47{CoRn809;l+qZPTKszha{8rTxH5FOvljF{e4r% z1{8lR7KV>i1BWu8VYJK(yHJ#niyAZa)ke@3H2keIp3^#XlBHho1QfaJHmZh074x(W zar_@4Sx)A%ciy0H)$_a84m~P3(ofdxmt6Q#_CBJ&#p~K@7RzvlN}J)4kOL~XTUt9I z@Q%E)lFEBTJnFte1x;{A4kaOa+`p+%m^H8_YHX+Netj3P_p+gTGXx`b$PH|E7B4q{W3ceXCw`(ti8h^8IvIoDUR z-GKDeaTj^YSuJvQCb!&aJ*51g^L{nQbW@MNH~u@e3EmZ7Lwuu^Sqr^TcZalkQ2U%y zCA1@eFpg5EHIKtq0`JsF_*$&lR?$XE+7=G#MnfOR z8G@74;-LaFO!nG8jf(z5-EFxT!SG7M;+&smI93(^IL-E`9cCzJKt5k}d@=rrZ2`XTkrgtKXQdLHy19L zE=^u|Xf&)a7WWcTpI;wadr|Pv*-d$UpDOPbF%3oA88@*Wb|%`I|13oXD;p>A6?fx7 z%jMlqX?ZP@S_2w{uK;F3d4(vs)|oH$qK@aR;H`RB$Ij8*WX#G! zgfrZv{4C;Q(o?BZ6S2{Xs8203-*1@o@~8?oJsuof)_gh|d3rT1h##Rn=doDh8|^z@ zu&ADUr#rXp{<;3gM}7|$58Nka2Xyc6Kx_Pz)7l036g54&9Jd6&H9Rt{$az^5=xbE? zTVKaeueOC{tl=J;vL^nz-mD0A?0VpnTUz_vQzeGr=_5ZcGc^S;VssG zi51C#sLzlAV^ithwJzHwDlHV&_R7M}wBfaLe7ZO33wA8Na`IBc^`o!gsc z!u(CwI-uY-%^pcJI}~JeGP)OCkm_{s_|$WGqcptW3QLh8C{3pj%H8+3lB6RpfR8a^_i$m#Bt*@x?(k5p(8l^TnjK-~%nH;%L z&8l?zZhxAF`YDa;e{4;>=;$ves(t*{^52dr`+&Eu=q%s3jhqJ?g|?<)iIc2Sw|6O1 zmuiK=S4R-mzf68#O<#DG(P8=col&R282Frbbs<~VXRwHT`}zw79R``nJN)t2Ry}&=H9sw1(&g)u{bU1*eboG#jCVCl3;iaF zm2@|MfF@MhUJ`k>zQMEY@Xa6Ui$HcBQ zo6sM7hge?#}T+HQl_fxz5}n!lJv`+C!FyDqZ_WXuF@(^y32V?U7xpe>HPx z{=r`8_q5DySC~6nac*&6gmS!_3MZBxrg{!6S#=gSw{$)dMDG-ZlwGwcdO5sJec8Y2 z%X>Y0KgC?R#zS^kIor||Vvwu!SGl8v&%VD*8a6rc{!0{odg1hQGPGl|JS^LFo5uOH z>cH@&brx-@#=VTCA}G<;bql%w#QAkjT&;{;^~1`=S7vYCgv#WYu7_4{36cnUl6OVY zWSoSiGd=IUbS1tB`7HO5;6Ydymw33zx8t{yRxOP$ zHwBoVi#jXwS^Zh}w9-D04O~C^W6enun=^km2WUYRXfnPP;p)yk* zKU!AuZbumx9yyNAmfLz$b4&`ms85*oJR|Zz-7{AL|I;*EbDk6M;FbQ3~u~)9!;@T0vop^EY)vZE)SUZ*FmoPVL^L%(~EtLX) zSGSamXun5i!Vmg3UYleJ)&esF#T>p? zCyGW3;4#PuP+d=Bu|To}QXPHSRKT&3Q7i-%({E^lrE!~^BB>x35cWGqg4|6RluHRo z_SU=%&=yA`hoBK~BpeL`^;<#qdPp~YJ*2)qSd6gI1JBgV>K3PLz#(bFVBJPG5Nt3O zlxKm;H{k$^%LPdfMhLq8d2|x7Ka>4`Vnlo<7~~OI-f*}s7@e@B0^^QqJ%FkMNeGWl zWMzQe1&|07#}t!o6zQ(6M#h4oI=(Ro2#6#$9^q{Kugbl*8mM-_>`yYh?FN1vkH$GG zSBj5#!b$a5Di6gis%{45T|%NKNC9{p!)v18Siu}XYB$&z;0k6`A^K<(pkr!C`KgrQ zU_25IrZxOSJemQ7(_%Mpy-!GoGA)zrPmNw^I#ud#K_6y(Zri{vo#A2wMMQs3ouX%4ZEXxx)?g7{^3l9 z+5`JhC9w<-c?oe{c_$vTu@+VL`eIW%))5gLPZiChljE0z}^Mv5MwN3 zAa#rkh8&ulsT|;{QbB0rhDL#=w;o>i2pdT%28om8un}POIAGp`NMo{Hkp&9$e0yS6lIavZn8WC_1_BtlDEA$ zP-Mr@I2MxaOmqfDES?CG5~!aIjm2cl@~W$gszKWr4?!7&v7jw5Hsjwk28_w*N3r4H zO&0{`?D$1VJ`T05Kx< zLDnA73leFzHVEp8BaLZt{$b*?R2q*95+5F>sP&(Z3ox%?Wj+E9hGvYxdI>liZZ{Ws zdwUWAJ{LkN(bm&~@|4>Q_%E;{gFwUhPHFOfSxh#L2u5naWC@W2vO^!Z9`PwZSh=-0!B%uw z8Tj^1#!ZHmXc%LJidO{FEzD{loCC}hhs*?~>+Avx0>L99((HO?)U@Sh0GW#<6ZuAD zq`;%p6O5wtv)D~0GJdxIz9I<5V<;TXNQH@wB8_kDZ>GHs>K{q$CwhB(1FN@Nxenl} zV4p(RQ>1Mng-D?Seccmu5gHbwQEYxNMabavQ(;K7bp_~36o5~Mg)ph(2YUibl)>l@ z63hZRR5$?b{+v~yWklpzg3ixkET+3D*ccG0p2QI$N%Ju|H8+r-~0d-uUz=Hsg0?O;a+{hT7T>#4vQpSP% zn>o@4FwitD%E*igIqKg_udYEm1B4I7;1LO{fFgun<$w}nR^SESduE?fU%6J_k@daVzKEQ0af#zb6zZ#5h_z)NN^-IrxWkQsi3B&Q|-g*F+!X{<7jHz8^VuIH7VkUJkMS z@0Dh*cQAWD}RS| zOnNA)_Fdyci+8eD&7#BFy`3wk6I~xO8+s#CO8@>HnEqYv{*=JpYlrJ_V-SPbI+!-n6`PSF!T)aspDi?^NR`K~FE`&>SE94OoVCBbds^!+L=kBf#{ zs{HoIwAMWDN3VU{>)t6a#ScA$LF+Zoqt#|(-iRK-H^=!e>}16sNnZxv>M1G5edgt^ zn8Gof#Pu7sp9~D>d;0j;1DX-Uvt3%-lm;GMugoj^+FcR)#PnI;>M~9$fO}u$hts!1 zkFUy^{utRvwn6>~?>rSdtZ?lOsUYU{$E_cJz#=q~t*5h()x*~8XROjk2re;gh=eaK z9)z?NcPVB!xvivS+!#zo9$pHzZq#>istqFPSSn>*4HMK=Hk~7RUAP^2eb7i#b9LqG zqaR4`=}CCWcaO1QV^GCbQ<<^$>eBh}Px;q=TDnKw_8JeNkK_#0KBY%L#0>;*Z0m79 zl9r}DD_SZlHpwjG=^|v4uF^KW&x5-aG@43m5;0oL*rD;CM7SLBYB|pOy2OU4WQ@icm4d7 zP6AK|5uE8vco zuEdpA+}qcON!szt$FU;x7Ucy9;n!h7rQtx}w?9v@AZq&~yIh_aYW7fjl2yxj1FOcEIoJuG=>Z z?>1I=sk`rHLMO9*E#E1J*q~Qrh;1oXmvq^9SK4;(ko=MLDkM8-?2B!5O-1kNgvN9d zuAeN$XKnWGED`C+l9oK+(N{4Ci+*kyxVkgQLCf1%I)SwoxRe=P5{^WunT#m*JdD|2 zku!Rk(>ZcY?RxcS4CX8LS(HwRoO(~w{&SHxE3}?ZHl4yGTq8GM-@k!62ko`2``Bf9 zx_{?w$c2NyAFrG^DDUEYc!vg@Z^8O8oA|woJyB47|Ky_FJB&+kqT4y03PE+J$2286 z&K->{o+SM^aQGGEI1~GmbWv|`^tg9TCb}zq_N31-`y)QuA3QFa%RR0gp6cKWD}Pgm z;aw8`T4g~EMMLWcytT+zP7V&EMqavI_j^AQlVQNieKHb!`jEBGh@44yv7AloPRDuZ zGYz*5^1=n#W1G1j3AnGfGh;n&iCo^qb?1Qg-`CQ zqeV^ExoN+4ks?Z@_98dVq=pAQDat!{wQPU4Wd1DC!Rb!WY5#q=@q|ZFm$hUMsFUdt7QfZ~3G}9_}vhLdn^K6nvhhmYjK(si2Ktk+> ztl#xxn)Q1YgZdLs)T)jrS-V~@-;tB0x<}(lxN;ccdp`OAX>OBoW8u#ew6|7UK4qL5 zAAa@%V!sdh>f%K+t$ZkUe;cgO{rvHC{*Qyp7CYbUe>mz$Qtjefs4;%P2ZHO7v(wa% zPteXay!qB(-TKfO{hJ%TmR4C8eQeMq(y}?x7ylKLEdHjT;DX$% zr>A5aDuU8PwuInAi0##gqWbsmV+upR&vtd}f&8UOJ*px9WPVufJc3fmDDPWyNY0iy zWIdT-w@@+Y<#O=dbzf2ryDD4eRc*`B{7fw~6Vo)(#{2Y@wf=tQ4d}CgX?!#RQF(3q zT*B;Ims;Du;Yu@FSzX09KiOdK+kWTV8FYKmJT*99-@eODM;_y{L4lRD-M1f;vG~=U ztAxTHst&Xn-Z7XiK~k>FG@Oh*V@Z|WbOsy$L-9z1aq@w@{6}pfho8T2-Cg-udVg-v z^nj`~PBnyfw)St{9ijc^GTJc?wIND3e=<`{106KFgLxn2iWxKCwzF%Vvv1DX z&tDEe$tzH@@ZZE{G5fw|ODhMPU4EDVXFEN{PC z7-wtLIrBm_rF{OFn%k9&`CA{~`h=+@U3sdxw9Tbu_I}Xi#}#ppS~Kk?IWuj#rN556 z&)n7w^~K2J*i5H-V=y!?pQ;JU@@RIaD{lg5V8ulpcf z$q85WhPB<^w9gq#E!p7D_uPCT8a?TNcgy*s3H9AQ*;3Mb=#P2&ek^W;WjcHIb?=&6 zLCw1oGS==~!H+Hryw~45pbvL#wQp$L@p;wxN6r>5`YT2x);{x^29G_?Uz9>{SuYZn zd($j+s2TAo_u{%E_a`=DGENEm^c`HbCq|+BHn=yiu~hY9$5#{QT(3RcX5*u%_I!h?*(leZHXz{o3p$^YR3$X`o3qs%H9is*6m6F4>H?bZ7bkGpRwk4SH|cOSp(N z+*s7~u%5t4W;aHgE2_16IbVT7uaUaaHv1LtPta~l`>j_j<*>@sh%LQ^$m_wq55;XB&;Im?*kkTd>fD<%yrLa; z1|Rkz|C#-nje?7Wj;KG3Q0=W(sx`Hg)S1J}aj##_7-PU>4{ygu@#3byt1*HGKA z>ncIvNiU_uxoaGAN;s|1s8q7>ysWCTXz@hZ&z5RPYD{^hd(nJEjN=4vi_M)wP`9w^U{z1Do`<<hRtEwAS)0UC{F3$6RIsEFF*A`=1s|JMNru;X zoZ1_@E4zixh1{pN>@X=i6sh6m zW@j=O_P^rE+wJDHt<0%mM`kX*>WnIkdkk%l$4x(m-I5mg98L5PJh~oWaR94(=+{fR z8%wZEC9bAc3*p5tp}rZjWNb?7Vq8M|+v*X!`1U(-lPS%$dOF^LmBl6s@>lm*u*RJc z2K#w2DR=Ev93EUdbclxC)29r};Rj*bKgoUa3w(d&YIsTmSts6BHRi{Zqkj-(G42A= zT4erq)wRc;;&%xm?!LQCU9!*gpVX4r67p#Lyqrf}Qjdkd(v0= zN<4w3Y43Hqxwrg|UeMhom(=;}=(!gs%;8tz59C!)3F83 z%CH6(Hd@eTu{-i;!)?V=aVrJuE7PYx2hjAM1+2JO8CgF`RX^(WtxI0k=V-1OZ2^PK zb~73{Vt_WAr&ZL4pPd!gb>tiwE*}m47P!r|X=3*kce7-@3!}##Or)l|zqE2&JJ^(7 zj-2XLa~z7bJ=p#G@!Q>L*v2=m+>>*}OaF5P7}AqE?OW&o+2qE*6!L1UyjqW`M+} zjL;Rd0tn55VBqa#_&ETdl^@WCh9goyK-BMVid4*}8D_EJKNk0FM7-(u}JqQ?k zz=Qh!J^&iJX>aSMjL?CN$fjGfiT|qIi2c;w0x%I;)C`s)iC`o1UzZejgi!kEpez71ft?L39zc>jR>41I7#!sQks%m%r2_7T#srEU z5}0;PU;-n>uvq}&5{@w$q)`kWjAh-^9|H0+q$g)K7}rAq57=lVDE0H!RzUnqOF=Ol zn%Dw%4FX2Mnko!wt>tZ1{f_xyWi8t>9n83APeYl?Zyz zEEPtz1Vg|C!59J!MkNG10Dn;y5CDDRRr4xLv=!NCw7x8(KSU3LBU5{8;I48#K`mf4 zAR7W!4r;;tEH4GXi%llnYOs_lL<0lY0Y$QrsE`6xX>M@3B7=-_^VCcVjzR%cO>4Fh z>|NgW*0!e8f!eHC&38761pFnDY(jQ6_5?L;%^+kW2UCo}o5WeLE3!%P2c>gJxI~YT z6Vw9sJ=m_|y+%YK(HV510Sz0xxt^X}kPU_+h(rRDP+bEm^#}mMLIL;j-`|3SgW*vu zO9xpUL0itqxEjoN2m*>jGKBrX6s~|r45sp!HApy1k;|tvsVLeg0x*zb3`U1R+nF&D zNSaKLSc0DxP?G8hTc(5xIR?a2ilnd7Ox>%73R9y_5QRkF-uq6TGA%VNjl3>Y=Nr2Og2V*m91T7U(+IYp* zVz?{VS4I*8_&8jRkOekeW%>ZR2jljGX!T$AL;@?ZD1f?pH-nE62M!kogyetdD}j~@ zcv*1b37G&G1usNEut$fuf)|b%;Q=f8-vme`iS2DK%O)ofz`iQGx~@eRSfe=LI2#d1 zJeoauVAe_Wxi-eH4T;7BxfV}ku!sQ6wMkNDvUH0>KnEwtFA*VV1+;7i7|MWxOEfZs z)PevGwK2D!D)dh%;$cA(o?#t70PL^=Tb_M4PiIVPK~1Y?2d69MiJz}&^%QwH-j zJ}^wLF%Jh!aG=8yK>{`lF8k`X5K2I+jl|u=q~|iPkM>f*N=qmDR|3P!*n zOh4dC39=Q&a6R!EV*<#w!Bhyl&K|B$Y@$;0l|dw#(r*MLZ%{0WhgfsK{Iw^J3D{j% zRw1;PqD&@}sfKBKN+8fKhVjtW0sVN)u#rcJCjn5Kc0~o-XhxBSKw}0hG59`40c4B7 zq6V=aI18)6G6;-?bkoz52PK|H&R_y3k^(M#PhjAKL1ii)1=>cLnRKi*OHm&MK*It^ z>X;j-+hmh!ylwPQcOn0>ysa?Ye`5a~{qNX+`~I%{ZELO^T&&dDaj6>qU+bK0uc!H> z_n%kj{77iRH$8b>Q`ZOePkV&z4yt_tJjKreE%`e1wh>xwNKh*sg;-R_A&$)wy4rSc zb%W-$r@A~}_YC4hKV`_98b&SIg$!1mzG%~YOkD}K^gGl98y6@sSMPZE#Br>v<;S_g zlr+~9F;ea~9)Bpl0PP&X@`CDy9W&!snSBQrm;>J%JdJ)ilFxRpy*l_3_4TF4m*o{x z@lXzJ#(^gv*|zeV@tLtPTYOABe&XY0SUfy6e47mOq@L8VK;CTE0g_L}%Y?wDBYWq( zpIu1W|Mr$``^8i?Dmk{zD_pcgy&2cz)#h6lebjOkAE|XBCK&PF`jA)Z$DINUY3!M< z?#B9T>0>vJ z)Xq64;oi~m#E#v_uT@xjwSjpRaK9@i8nI>J@%6qc=u6U4aOvHYb)WAMi^j$Eh>i|b znnGn&&RnYWiFeaKHOJRhj?MOIN2F`r|EhYVX1U5k3sckb=k8yUIfG?!uDHhLU741( zuCMk|R#5$ZO^0NYgsIL;p7uzW&7D_Z&X#9B0T4L*FKzTzRP~b?~kpG_sUBL?)y9+SP2gE$y*jfFHn%TP%D|6Ec@(B4?4`& z=2@&5OEv$han;XDRt#QbS=FiOo$PutQGEss7c%tA**ia1{2Dxyv#TIq;%C`e3(1f& z88`j7fmD|;>yP52YNX`!xK|Rg$MkDfL+lG?+cBvNrA3m*VDP|u_P1O$md06ELZ}v- zPMpZnx_LiV?RRqfFDRr(Kbw3E5Yr>VN@G`iyOqxUJzv5+ zQ{kB{?xz3p!*3ItWziL6wcxUo!s`d*kP>TbUJ-lXqJr4Fj*V+yeP2KPVl(o+=|@)3z{a#%QzJg#(nms5$E8V1|B7XWmf44~ zF4xgn%wOS|4c@XR(iM6O#>!uO8@xLFLoyQ@lxfGSde*{c6Z}Ject&E0Dy<7K%&RZo z&6RJxxotwT<5=T$@n!n8W1Oq(15tbAWWU_`==l=eQ_Jk|^%?B@FNN{+%xBHh+M-WP z$=r_GUJr{!*e?#)(A%Y=6=J7{+})$~YVC!RcuY( z@6_fv`KYY%fpyB>mpA=gl?gYzwfwTK4V0Z+Q;uP_tD?@LlzU5#Rg4)Ok_n`dS5J2? zmm1Qgy%YscYE>zQjM<>RgyR!p!O&ypT!a4Xy#XhyzRX=f?E|)L;n_zEyfgK*!oF-K_Al?= z^W^Q+pYp7}L;8=T@>TcCrC9E^?N&-b7FgFV#Jwjbgd28yHsZ8weO2)1rN&NOM7))` zd8Yiw+R05e^OQy3(?j1uj|;fX%NGhv?b34}eA-SzR2iJG@UH#lg;4L-x>+jY z@(_%3V9(Af3>GXeZq-q|vnwzqAL+l7aulx?xX7AlmbGuEcpnVnh`^03zrM9S>nV=f zSbN)nS@&ygB*dRez9*uA7S+3SRn#&9AMzg`k&yFbSlQ6P_B9P|b4%0bOk!~medg9S znV{@LFB57UA(!jmSbRT97ZCVR1|9$O1*_oT@(Jkc$V=<#yh!m@LYpUNT=rV z-&t2=;qAf$1?~#?^uhkC+4N=Z+`9Ccm-`GqX{|i*G%)Nkme1qL7E6!YR9%0IOL-W_ zFa6l&;BsOm?8udANw4N@gXIvr;E%bJHM-fSdTeV{9?|1J&+rhL5^lbmKfDP& zYkZIr(lI!?*O6HS2?!vamY&7?J%^u+%JAIGtG;g3F$V+vD^; z@e+JV?^_F__WATCTHV4ow#4LKp0#VC+b+t|MUCgHlvOEe18l-jpZWePZ&Y3@Gi0vEU?PC$d}e8r$H1S8bFL+``KROF z^<_SiCcCOK6%@{2=zSQddi3_(LMQdF`UJZm22Oi6YE4I1?9mPze@+szj=Nd5N$14< zQjr+iWA1JwdOG2#Ei{XtrgF>YL7mFg^B-=w`|iW?u_VH|D)pm_;>03u^ze5I{a~H$4fLX3smBFg?=|7noVJJ8jMp->!+0Id zy><_t`J96{+nVn*r)rHzA78*^RX)e8TZ$tLQJ>fM>~ga7#E@d@A1?HxdZQEF(ruCD z9^)rs29{jDs=uTiy%(T8or0a#^tL%|&<8`PoO|)0hqc(QD*n4Lu%|1;nHMnl)$({oe|wowK9$crvb$X}+3M(KnZd?Bqa**RZMpkj7JlHa#MZm=;zvu5 zh-q|g-}++f(M7{RnPkIjJA7VVmRXOr)IKW9_fAN5#`k>PmeRUV)%{FPjEC9c#T!?sx|c zs;U}w*u^*+cFp^yYH9K%4XzR7p+#JI$eYA}Zw!dMKr{agb0gc|(5ZdcaL`Xbb zxKE=`c3vQ@WA2ChP>~;f>bGNfw}BEZag?(jOPILC%_d#WPlr!LB*5&xdyu{V%ngA9O@TG&<>nUMX*HZvvUd-43c zn_aP~@B~UGE|1@&qPh8Idq{6X$)k<~!uH!aUs$!LwwGvJ@__*L%V!;?PMwz8kA( zeWHJsf8$L%D-yX~CN}dH(`FcHVPo^HMB$=yK~ z`g<*8Fi)j*m#@!_8nqyqFHfRGEo&yiri#u)u6UX_QICDfp8>2LP=R&=){av%|Ro7|PKYku9X-;f!0}s#OjP8~btI^%FQdrDoXwzKq*LlX33GNk zUcQ`5ome|Y&Ja4_KlD*P- zEm_$EnY*kb#Oc>#)@F4(M?D*j)c-Oe@|J!4EV(7eDpn9a|vaWkeNu;J}bDEAko;+2-b0ZXcG{#}Q7VUGbPfNb6ElU7>P3 z0uEX{icWzP%D6X`j|G2)4MbGd2$=J;R-ds6BM31V z1AR3$Z18E5+XZVH0=?@J6Pz{VRPsD_Uysu}o+HrT>(5b8Nb3Ax8}p!y?51x;(?~VG zL~}DsVS4B%*t=*OcS>nQT@+|GNRY^a*8yUxo6x+aWiba>d?S%D#9q*ewklHTs6VRD z>$5;WEL+js(1;R2OA&?$Vbx7bBtlg+!rnhXkxcMhK+TW`A!LHGS;A5MB*q9>Ft8!j ztV^oJwjO3Sd=vo!Fy}!j!cra<;}(U;R0iXIvJ7yDor8Uei}Q1xkS|r_xshP(%V_Ue z1)(jK1uU2SC3U2KJ}`XH7Y8NL#3(cp4+>IAj&M+90H`3?Wbw$# zE@5vL8@k-k%0>t%7AOJ-W*u!1Gz&1h4l{;bVR=#lf>V&hd}@*p)=%ong)S^MaUi(S z7;53;A{{X)M*>M{MH)N4)$?!dUZ^eELB*h)Mt)rCsegi z2(Xg}MP*7Qh#Uw4fdEO$5fg3co~k?+bC5SAv7o^%$A;i(L8!)MgAmw^*=rpIFC^kg z18pRZ$X;YFsWdm3rQ@4x2`EN4mEj7Bw1M}B zx>C|5#leoF>pSyW$Pftn!oXfdUcQ+(#Lb%7c<>GTs#yU*YUKw0ip4W0WQ?<5T98gP zCM^=jiIAd`fyD$M5ELMNiBh5sHG~9|-)9{`4y=)~N~L{?R?W>6@biWcZG^*SWC;xP z5yWg?4llUCP@{9wPzwy?m@a1<0?jNgvYX9LcyjY+w9BU|LCF^Q8{xL-)h-NVBOQYJEU@N({_rPqtE?pGF)&-D4e{u(k@6r|(+Z=&}Vt;S-0;#=R9ob8vR62_Hl@ID!D zeiC;Ksiygo3+=Pf|J|Fd50GQ_pqO159K2<+%!HhVz{(?yu`tnbYtAP2@U@G6!zPAv z!h?#L@&}&&T`}jTBXjetZL5=$0alDU7dqCj?rqdu`t%Pn?{!vwr69)c;4ABjQl}Z> zMU>wS_fq#cj;&F;`|~nWLu>i;{xRJ!{p+a<2?_;SiYA^#W*bb`vq%$bNM#Af9;slq zZ6aGee!QzR=E>Dq>w!{{m9s#xp}0j&_-}=TbEnK*Rnx#E@Wchr4c=$lts-T16n)j3J$`zvScebM8iT6VRBPd*1G-sFz1nSVHz z;8F1A*0!SJOZ8E_7<#)!T3J+OQE5#gn|-eOJ~2vDZrOh4JzVd~@(O#>f4NJkisF4g z!!~1kuOc&LRn?vMg|iy_vTanlWl8HccH%Xy3^uNByZ&Q3aM@O2aCTBstAgI>7rEFS zJ)Qv<3~t}DkgeS46g1m|%ebf*y8E!9T7t21N`SI&7;ozXdQbKmozHpH#Dr1Q`>a2I zoTSR%`AZ~O&S!PvCCo>>_E6d?9sKlE_S~8)LXF1hTg~!Q?SrKmUzomOqT%~NUhe4{ z_ZAelUN1ks&2Om4?)~_ocl0SAwWY$}p^? zbd0^6U1X9Q>RYGE;zKdR#!qt&a*XY2$rqjPYJzIUUO%<%NH=ZepJ ze^Jw~R1ptP4vr0{U0t2DIr`Jja=o2Iq-O9CvV~<`d}v$eH-3Oi{;;g^KzR5Qt&8qo z@B_wWPXawH!rRXdh9t2(6s9Q>&BzYV0lVC6b@wXCgPpuTe}vCsels7dMZ1cPO1H#^ z%th*OV*&`hLE@;JRUwM8f(vP8pI}rLb9dYMvXpHJud^R8BX9?`Vz={;sdXN3avZ&P zD7pW5v^etA=Y%iE-BD;N&+HKP+7Glmk9lX0v)wk__^;pJmK)%L&i#}6)#jUkw!A_3 zNB5ATkv#g&o7|hIWog&ma+40I+y7o$Lmhm(Q7P2W+rcnU>FjXbkp8b@#r%PAI(}p%)Hznp-K5>r6=l4n-3q zN}F!?yz#2!j*6V6ZdbfQ56=3|jhWHbwx~ z^yB%e9rS>)&V06FMTUKZN78rE5pt7SHMD)X?#(LKhzG*Uh>9QFx9o6D zo{TWV)MSyfw|YJ?__kt2a-!D@_woaz9>I9jvz?pzPkO3s(b{oo>e>FC6Q)@xJgZi5 zThLwa_C)e`?uz|hbLR1VbK5ca_XiJZnh|A> z^zTZFkKr57kmjcYWV358Ak9y1JMT~1>wK-#-Eha1o9ja6h|IX+_4R8z|Fk*@Yt4%T zk%c{5?qVW*XiS=&$MTgajUN$0KeO_!Vcyb*ns=K>$53kAwMJK~JRi*9iRYu51~b?< zgm20VX~M_G+Bt-|b2#fS+ge>ICeNp{K6|O^%tZy>zKpJ95p-$_sOP?RG!f(x!^^N% zzvDJpcf0MOUWdCkTgf%|KFs*4$3qeL^v z&i4Mb6`DU1>~A9XE7v-OfaqKWKdoX2~wH)@1AHOALCg+IeL zpN}7Au~4gSC#hyg5dKw^^8?BXIPge{+_vF&+Z})tM z4JYpluFACqjWy3kO>RKkjA4G%=m}DB_iHm@jeMyu){tkF&B^!1&ZIn~3_NIvZ|T_? z*FT5cmgKeZ;_WZAF|EHkr>5BQD!)y7d%xY3m49~FQG(^?cJne6sHLGX}C=s6NfY{t!m(=*dHkK2Ha~j2BsV1iZfxTGVyZI;lK$VQ*Q2 zPNH>4;l4KwSy6f_MxSNIYE16^*?T=PN!jvGy&Q6@1}5Ay@poHfPc{Knc6?K7Uoup5XUau$`NH!sT->F341dcroWZGbBP11YaBlW43Y)jfx!uMARAm))JexH22F{Ci} zvazt9(ZK$NE>yC5wrRr@+kAyCCON+Oj6$yu<)z1L&5H!1$J++owrJgIIY+a(x9Ne) z^|y67JN~;kZJ{MP$~gTqqvF5u&0{au{x!JVALE|#D-IXZ60cB@Sy_9`jQ~$Sr^|1sGKJA962Fuqm`i~R77H6>j%DbMlSq;>ijOy&n z!^f6a8=GpK*v^+-`yoMAtybM>GXZnI?!Pv-)a!p*;^od|+H6|8_F2XoBz@J@@a1=S zGmQ`5|EuYFsYi554NcX&(?Fa9# zsxQBjxwW>n#qCVlEpwa8CCeFvFX>Z02Th-U2;mxwdl);kP2FlM)?m?6g*Mxi4+93q z^HX1~gt7Hc;vX0sIHh)?Ul^zsRZ%iut9qyFeW_A{z~L@mqGf%N$=Q`~;Aq0L0Ouy> zrVk75?_nQ8r6>5*hAvs>rHzDvlFW8He6i=J%v9fqflwEjV_quGw*w9)bR1XJ4{y=k z(?)S61;uo$$2kuW)!3YW^8dr+ON3>~IfqRYT$$t6Jy(&uw&z`q?eyM_`UcAC z9X>oI9Kav>55Foaq<|$G_PYP7*B1RqT;wJ_3j_S)3k;GLUU+)e6}Xz6*cGRa$gild zpxjSzc9@E#n7Y|qq`Pm6QXO#4%BLQGHvTMVJiYMKzQl8TIm}HTyhm>|I0ic0nH+0~ z4ttqdzr?{=#_m{!drZ!ZA@Xo|Gw;RM8`!w&sGT*iT7{Q+}g_qZdZD7 z9e%&8zU+PYI%~|&Xx*VO`6_AUZF763C*S>YN7ys{HN#35qpF1GDSnlKDW|)6S9WVA ztyHf|slTK=mbZRR_p3(W2yCUx7j?KDU{W``3e`eXoJ02K{Nd>SSCasbP z8FlGem0eOQtjW2GIDC|+N@qS)=2B^k^p|xA#4UWJ*g7_Z?&fSm7SM1c;N~FLf?^;f zSXvYc2yx*ngHmZKna0nRXXLq&b8#rE(9zq{04{ zVxTTWrm!An!<4W{kkN4XNHiKvWHW-rm>!8_QFcHQscXX8eV}b!b0b(^?e#g}8c;`~ zDoZ=8{R04jBv(iV`KhTO4eqgM%z;I-x-^n- z67aZX8eJ4~UkWW}v0M$iWN88q)Z#oEuNML?5o5qQq6pwAf`_b*ybYw0RxV1|#7{*Q zs;M{iD6o#FlhP51NBXjDU|&re7Wl$UR1+dx)B;zla+rOfH?u~l@}TZnSy_?h-VqGp zA6!$y!9K_p+vy&rjaqObkHXK6BTxaZ8Whlh6LT|TxxyLF0%5Hb`nRRvK&`iJXkkI$ zRt(XG7}sIrB6HMDlPk)CS5Hk~TQ5dBFla^=2dB{xG$M3JEl3<8z<|Q>m$m{jm6VkP zPe3|s2xaoUuwo}5RHJdiVPp7zM#uu7_IP{K)isTsbrIx-`e4{h>m^A8b^Y^^u#$#a z{KqY^4@Z__fwddr8^E_j7PCy@ofuJoHwVLuA|tqwF+M&h?X}7$5a7hne2sd657d@X z2H!Hvm>3D>7zD3wQJ9P;^^ts$RTP-%b1|^~pYR2g%29a*z#dY_c~uf}zJEGSkOljg zk%0X9=R=8JTdScA+M>u*M1nOHipNM%r?jh2TODjL^)>|kr14?E^iuI4;AKicdOQI1 zqZv?R)@*32*Xx3iH0U@C=Q`{!n9fm#~acA{2#`lS*_IFS;EBRXz}uQcRQpMFy*ht*DeC!UpP8 zQD_JRS(G9LC>c^sawBo^tadU>MUas~+{Ypf=n!)1;2ssp#*t|PuvtI+7l+qjO zsn)i6`oO_L+&qlNQWk#%whbBR(o1MFmdG6W|JCY6eh-1m$yV1+>;V%BSXVr>s8}RP zfc7qcy9FpS1m++o)>F-bdkz|52@8A>f}7sdRo4__0I`KWKZycAISrwX^Dh#?(-K(Y zH0mtngOZn!(kTf}6VTyj5L7f`+0b1du%#jqc$iHPRMAAPr4T@Bqk;aV!8`&quklC{ z3&*n#;Xqo6gYT5RxQ;67>Js?FgAoF}1+3EHe!6nkV(6!^(tTm|{PcYJeD(aZhLYi9 zt8Y_e{z0yz>Y1v_G*$QiZlHOdN^ol73#0m6jf!-5{$GZ2W)h_NI*&dLo;kL()jXtVw&4 zd$#sD#_-M9^L#{7;SU7e9qk`7nywn7o?T_Z`WYq6<7ZkpAw{0CM9Q*bH0`1 zY*MVe?x~E))-;(LDVHV^Q%PwX_w?(G8vy(=bqN@@1BiuZo+tqyE^LfKT^ z{40myF0#_|uTHdTb3`u1_msX6E6j%mhCCc!krXMbqii_Dvbfi>sVcD8lK9r^M| zUzL{^G3doq(y}d}7=3Ft~LkP04#fF{K+*_OZffLt7=k z5*P5@`Y-1U7hJsyGAorh?VG)R8otsfyca}b zS{i!3yu4GWY7u3Hz+F(ow*D#E*7jxcse`6ym43i}+PgON6^1(MAmQDhR*KR(inx7c zkOA%U(`VnFpME)xmO~;OX-#2n&WTIxFQ~IM5b_$^iEo!fpYlG()pVLPdF1#X$r0Og zx+kA&%}!yJuN~N@^3^Wn0Iu~Pr-a-uSz5A4o<$^ZEJCcqI=%mvE57lth;DymHRd7{mvef4>}{cnPndldDsbj zSVzL|=RL1o6gjK8$DD>a=!C-iDuDhlF2sHo(H=dCt!MiwU;I?C{Zb62<7$2*;|OUZ z1y9^!^Df$NoXAah(EiN-wG+{`Eb_cs@z!&mAFY0lyl%RuIDW=`VXM=hAZt4+OZY8x zt<|SX8pA0{43mllgEZmVx}!GzDo6eat8k*_d~-7wb|tA6SYG((P8d(;b+-&*s_Yj&HN%fxrog1&nGzteC0ZpOd; z_M*?R^;~d+gQbWb zd7Wv$NW;24aJ*d-WLIya4iAmW^F_A#Qn~5qvlU8`nu!v9 zeLQMj;(OzU7gUiZ(GN1tbF_B2S_+Iz)J%UNT zeJOm76z=q8fn>H@Q-^q4->T#^u>ALp514R?w!}Q$|LN{^!z}$-VC$@jw zXT>WIalfh6=ZTx^L&lYgs~`DTc3s`GVTCw?FQY;5e)tYUuH9OB>(~+h!XpdvdocPt zdXb1m7d|Gg-W(fUGl>3+TJ4#9FK7Qqtdo@>D)fw$_EY75x%FsMO=&dQj4xnA9||W5}Uj4 zoMaFlj*aK_-cCI9vf@L-Tjy8Reiz@Zs(a=y=a| z=vsQNdf^tXr84Jei%v(^_L-alx$;dCFGY5fOLZ%K_tDR@MpjQl)bo`~wg-gmpjd1= z*%kJCN8q05EQG6C+^l=rJ~iFf4Z)&wirT>`V&4Setl~GC`7%ZKIe*F95_$LEsFJ4v z%{wnVT&~zupqA>7+D~Ei)_TuBSk{SCIJfd?)3$3%x2`SoBN~j!J#u_5gE)SsbeSxN zaH%uLR%Bf$sNjn<3wH?0majJJT^(@#F4rNBeq$z#yZJMb?nr(8F(_i-m~=~BALq{4 zrZbv)4!1=P+YAoNl`h0r<&K$_$R-KJm$@hPa#n5F@q}veAd+&vK|HpidZKXCF@ZH| zqB*{4c*?G;^n63>x~yR{C+D-}7p{A3EP8y^+Dim~H7_a%7VakKCCevu|{2Uwqr~J>q~v12_$S z{E7?v{9abDO9<=7ZjBVE{My{}G^D{S&@$M`WLwqH;8zt?c!#~X_rdL3`Clhx(e+id zMvF9k_r9aWUv{~2_6Ddmqy@A2*zP|e9H8SIK3w?5dnER;luU;_L7T@9W%j_WmfIwUFK%% z<|(O<9rpa}b@_{o-SWMx$`97Pc_K3rzbEI~hrV+N#Dd*4Y~{v6S7)>+fHx>WtLMsUSV8IKna zJ8aC))%~6@@-ue3%@D}F+vPNRVQbWdev89jC}w9BOkL;a5wX|Gxx0~j2JReOPp?;2 z^*s6AvHV8ml?T_46s4^4MZQ;4bSTfAx15RSk6*Lh^#l7+e8j$+sJWOcPM+TPFi z3OhXR&bj$_IpNFAv~|~9tdjP^uW;liD@8`H=f7twB!z!3jRuz$=wp{k6S@j5SSUoXxj&9A4N z*`?J=`JPTfDrNZ()7?1ktLk@{vg?AunuF|8!%tYsNMg*3;hnqe~NMU*x-${!CWNlc{`L)j7P^@99tik$oVY{WHKFulXvJXWs*;wOF7sy;|a~{m`q|@` zu*c0F5w4Ps{JesRD{e2J&SvYrEcmcx!{cK4{KJled*jlIJuo4`2SWdzKJ(e(eYM}` zH4YX{C-aX+CQv`iYi*^U=P-8s^UsrsuqDi9LnBz~0*oog4M&1Z&)-GiMlzH{Z4jgm z9c%)CM_`s*+($#>%`FgQ;TtfEX2U1Wswz*_Q+luk2K`)`(1tH)ZsZGSq)JIwF93Wj zoY)^o5m)#ZydG$6ZFM9bjS@3OEMq)W0xABDjG>CWb}D@2l;rRL-hyeY#Wg%#a%l(f zEl1nkTzm0mNMjDGOKAJQjXDL7K_itamh6Oq~b_uHK#(mO{6K`BMF2e97rGF z!!w9D0weSj)6}6a%B&BTNK=u%eCTyTWi%2rqB#vBV^IzV!UF+~0w|Ff%V06A8de|}!fkzFEAufceG#D$C zgy2m8XXBfhqs^E-1tOsJ+@N}lsG<|Fe3WGT0aEx@AmYJ+TjZJeC=V?W9*KwC63gX6 zRtDf2l&lS`K(_0?hqhhUfXXuD9e47UXi z5}{TrsXtn<$P>B(kC_-Ofw?;&m_?_}wG)A;OwidS1IArnu2l|dkUtbm;D9k8bz(q2?)J;Z&Q1`IcCF35C& zHC+_e&{832mW-E*p$V&*3x=C67PQL|5JiK80ZHQ{77ZiOFsn!NRpp}!ge;%ZZejpTq0sjL~kbD>xgbdaYxW=w79z=?L|GUQEg7t5K%Bl!V7gp;# z-LOe7bp)VDtx``6M5U1lp2)?zYb8T6$Ov}Bu%KpawI0?yjXDNwVKokDG!Zmj$&vvG z^cO8X1gPc;8r)QQfyx&0dmHF@8d#r^IgnEugBykbEFiq0Dq7I6&&R?MXnYV%RFk?G{uV1k#avs7Y@rIV85LzB z+sn+$hA-iKGyn~xTEo@D;RvA&4ccGmom)p;(uOb$Y|W(3E*uVUQ+Ur|u?)Tud<}1| z78sESe}Dxt5iHC$)Tr@s8~?P@N+5O-cwe{yfT9}Sb&{9X@U#N%BBET?R9q^TCrwQf zYnfr8<4boV(_v3EOr<9e6yKn*X~+`WKp^MsNXma%uizh?u)rT~;9A zrP>tR_-X-73|bEqRH#{a8jawIhMXM@TIB)+2$*c(*$Ny&s4A1BQX(8BRt^pL;pPIU zOovzy=q({4j!;Mbh0}j~EEj`7#bxgQ1pl*s;mN}De~cSS(1OC1A*cQ`KbI6)ScSnn zuv9l81yce89ey&LbIW`RO#BXv_~%9jo!gMym$5V$l=A77O44~&re);y!ELrN`Y{eh z_9id*=Bz=V)`h=o*r&RJ1wN;(Zz`d79*X1A+N z45hRk*V(z|>;3P)XG;U>sLW|o_nQaYQm{0AN?CGjt?QFf?;1QQ%ldrqmuZ$6h z#;HYuj|nbb-fq_qtzxAW5390Qc|IP9H?e)O={{T=vP!cr`^>Zyt?{^Z{D_1f^#Pbv zy<$%z9ha>`CvW{;-m`bt^W*k68y{c4DNcRuubgCdAla(SIF|YuV@Of!68rV_s$BlD zzt3pmgY(XZl0yrIvoknJ;7Sc6#oajG`T2#vrwbmuD!Eh>dvb;HiM(&*+MjmF|DwAO z<0u=(d8>0G&J~tA1SxtQb&fAGG%4Nw#wk~nZ?x^+K~<}1%lppL@Bigbp0LyvWhc4) z2tR*GqdQ^qw$F9N)lFAIxXJ6PznBkL+^I^J>`K2R>g$bqA9~AFCgh5H_vy_S2fuFb zvNNvVvOlh9{O1w_tpYUu3?=3Jo?S(mM*IVAYiPGJIHOw$SJ(W#ndRTZFx?=L&g(3|Yt9{oM;AUXDlbCI^~W1s%Jl4$b&S=PfR z{56*~hxUG&ogLWya^10f|AKLYf4^V}VNc@rQMHqPqjtRxo(^AuPxOs>975S8VZ~A< zwvV(Noi@f+7&7pv=|^h_VG9qWTI)S;@Rzk9$_!(=vfP?n@G*GJ46m)e_g1A~`S+w9 zim`hRbZnGG82QE;%v8U*xvQ<*>!-I%`K4{RGeNHSivM_yoe#6N=c@;-^FO8c)2{|& zTA29hklI@`g|z_@_0dTET}z?XMag=F4f014y{U2G;>jv%AuUJhVK?MT|jM()Unu1npLG~`&@~tF^OlcW zzokxt&Jh$H`_#9WdH15Z4bAHALgDA*YfN7?zUf;&TJ0|#IYrDd-Q?YM*JHPL?HeWI z1N}ZTpU-LkqRN@p`>sc1yncfVG!bp?_9HUfa%e^*!|k;4Gu$~N!b@#0-yxBFt0Sx(w(f9qJaj=RmZ+6Ge60r8&gHoJ=!UPx96c+2grUk24?)ptK_ zd2#k1&dDwN!p`8w7B1%Bd{gItfNGGvgdP7&h2^~an_pa_QNG5{OMAs$RT}H832&bK z(EaOY(P_*`9GVVd9w#tv7;BHNKfBCe+~&Z95$k1gg6vWzSjYzdUXwTUU7N0TQzHMO zHE(3swY*@jAPwIBa<%hYLlO&$=?zBg6??vwM=t5LnFuiU%L;g_|8!f_qt~M!j-L{S zTs-$~WFX|w8qYt2Bb?*>T2qv`Z_O?(^Ai4%J&#T``9>85#cm!Aro;}I*o!vNa`LUJ z6`I_2hh7)R8UH3uI#Q#$W|lV(>`YYJ?(1fPjPW?F_tj)`#nqR{{Wz(-mMrOeRwTps z7Voh5`POUA-qB@K^76xZiMV$@>MrhDd+kH`M@x;4kbAioqD8453gu{zU1quWuRo*D zJSxL!t>@3W{W_|t!Wu=};omlLH8lEf?O$7ye$q2J^WDqefhUhX9mlOc)~Df~BJviG z%4eDEl$qKsSCe_%~f|#9A9-bnegX({z2FH=6xd- zBL~i1I9`=*(-<6g^xieqP2Yc-2K&UFOssZD&fmOu+;K!GS`(Q~GTNCGlbNTZVtG9E zCoihHFjdlgceCHy55#F@OhC9r?C}%E?WKIXQqw>)w~5^v1CMRCs?4Gu4ySkY5f6SP z46_oV%kGZ+DqpyGg|z=|k=7ljvZRn@#`A^ZX}NWN$*F6y8V(-1W<)r%EikC_ZNQ|9sWFGzFO~I^H@cs=#C-ZQC!8}wWZd!D_OenVIr>E^H|I~Dlkn1? z>N{JrEuU+@F`cqB`*H42`!kDO1#aeRJ3~&B8vaZ+CPj}F2VdeaSzB29C$&FuTUL?G zUPza#b;nxRZ}dukm+^I~vU!8w^wwVMH236V6~9Ss@=vZHK1_*ZM!)wf%2KUO&2Cn$ zvVN*9tR0AOrOOh3)#Y&))?Bjo*nm?yWaZ076o)KW zWeG|g4afcDc^xLy&)M;)JADRuTQ>TRMzg91Dr?_o+niwDb|7wgFYNn}n3nMSoPeLL zx^Dl0CsKBYoP*KN{1S0bp|7)&Qk|+nVq^R!%xQPgHR(+8S=ZsI#J1I4*-}UR)?>Nj z13NrU()ht=?+Eqhq95#%so01UgiX>25u?R&liNNklHJqZ&b)f^^^fSV@7&E>=9&is zJ#4iQ9TeHswCk5DyWUJ$CKFJPL;q#SxQ3@%P!a=A=JmTjAHiV}g*c4z;3c1U+q?~4 zlyHriu1+7lXSaGSzUTK^7=BCq#W9^Q2+E+;zu)+KJN5Qe9Ti^69yL8}oM$`E8^M#C zrj$}oM2Gb4@!c^v=t;}1oVgCGc+w^)h6Usho@!_$3Ogjlf<0pc5M7z zie{8=I7r;we}H$3`D#=B#Y6XI2GGF`>8OsxZC9_-b{hNbCcCc|t~W^i`z6$JYo^fK z_1<5NoMQty!S=T2C^dQ6qkfO3v%6^we5>(j0Kx2(w5_^&zw&0fOWA!RD$(%grkZNy zhq(OPoNw2LQ|i(W|4@tY9zLM*(-~oVA%4YN?H*s+>c+=7JBIOtZ&RI~B_8^BXYkGb z_w!EEB$KC1T=4^5AD^qKC=B7Tw8prLDIMrA%g?73N?TW|za{6@pGR-p<8!CrRpE&V zj+|u{)A`27N4|rdm99Nn``!;e&8c5&x}E;av0&}07hA-_scOu4e2H`_^ z@UgpoOZ@X?Wu5e&wdz6S_l<^UJ4%NJPfcJyn*2OSZH-)Wa?B_ENyWBDEX0+lw^a%{ z*Fs5{AH*+oie61?L)6LY?~dvps&TKEi*NLIDcg;&Ptts=ChwEuud2hpot~~RL*1~v zr!S2VxuCX2eU5kDKi1*nq|3UacRa#+uHH*OKb_6_alWPTxj@+JeS|VL{!_ZOe9kYb zL|UD>i%acQ-Bm@a6Lg)w5E81S`yli9``+R+ruRqlPc#&Wr_8=Go8%s0##0}JxH#;# zZy_md`7eu}m38CvDxbA3u}SIkWjnV#pYgt>h!hxml&($spt`mpxtfTI*EGJg&zG!F zv_I$P<0Z0*Ud;)%w!#P5|GwWJDEYEup<(VBrdCfr^QWKn!yJObwOwb>s)oOoS;vJ7 z^=;BKuZ`Nt#&s7Pol8|6ebV~vogejhlr%P(Koxd(7yRIj3pdu3`?tB6hJNVsoqy}L z+fTI4cR$uT+2L{DK3qzJQ)$J)TN$Nl*&PPeGD~?lDw@QA$sCc!8#YEnS zfwahQ-{j}!Z1ZI#1--ih#|O{%XIlC0&Umol54h9#~ZUV_Hf2ZBEYb&vRxE@sicLu}e?yKGmu{sB6bw02Ew@f$DDSo=}?I@y}A) zMDr5RXbkezHBoLzlmyro4mU^Ahmk^IZ-^S)$job&w6M@-I6Tq}%eD^TH8jKD#c3eH z=n9cYdj4&+9X13Q27^EVuSKqCcC)ZR_$Y`3VgwGa$q~ZGR(PFBGuSK>X@Re! zi`&cVEfom|YzQWaRz(Op?CtS}O8*B`VHpgew5y9!k#8eu#7Vn)Q9iPZP*a|vT31JK zBO(=M^AIrThDNn8K;;Sy-D1-gG?k0EoKcsQ+(_cnc;ie7kTz!EbU>8~1B3G+3{iz` zKavzuDFwbdu96C<5*Ie;VWE(b=bpW-7!d*&{UjazES-E+ZeT>Rf{@uI(!?VzEY-ni+DC*S5s#MN+q8)9>@BiX5cc7r zX@@03!UuzPIXniK5a82tpd0XXVt)^Hz=SHnUMqo*`eKqBKvY8>TFotJ6a^SR>qv;g zqym8mcE?CS`sIlI=`?U=@)$X(;4%S|DmiD-d4lP~k?I$_ynr3nrBPHfleM{ht`IW_ zNQ;;d3icC0o0@3jfyR?YK$lS3)kPWv`z@&tqAEg}dg3?}WEy-vN|4fp>BAc4!*0)ne(5G()`k!z)d1>zmaUzHOv?Aq)BYQ1QIlQgC`o<%i^0OsVE5?cc@V+6BBG{i%eOz(%#c@QW$4s_Oe*G zKG)Qod<$v_o=RHmQ5!W7aw-?uKKBA*q;+tfr)rXQ2q{Mh_ER4ShNXC*`GgYy;<6nMG-b2Mp2WG@3z5irMRiVdnei+w`R_(v=V;*W2d5n!AY7=k0}B9Y`plY%pwy%Q%Um`X@E4H1kVZ>rBL*BlfR$82%Evv2!gPK9jJ?{LZqTZ zTB(a%99bfO>MrGJ=MfU|4GDM1^Y;#mAnlzFU=wPUXH*FUq z5C910h$%F9ydt0*Y9;pE!Y{^jN=w}5OXqjZ@0~B6A89Cc-Fv}gW5Ofzt}UGR=hp;& zarh;C)x26r!?_v09G)gxZai)JQ zypd3m&#YEyef-)~PG0}U{#dv#Zy%q)e=J_QlJvMrt7|B{@GVLJ1O?B2)lcsEQ6_o5Loh8@)(b+24==9%)&vkk=ii+9QMo|Tc znDS%GWHvbJ6=#gc9CR*@!v$Z^G2dpi-WykZ3HJ6M%?IxCi7$1_j46_=(m zWIM(ncly$ae_^M|>Sh0WN66XWX_Xumi8JTxS;loE2;+$Z+Z(3vB7 ztIGz3*@>IS_Hypun0k5hKNIi7pF8KvnJDvz2u{8-JM)U*l+S-+*so(J7OcXY4g#XPi60NL%5>LDJPz%Z6EDWke#^4J(BJgVe6w` za?Xf$F^S}4aM)mp`VlRM&&q|0?jCPnGvEGjrPJ5*)s9MEtfArf=l@u@X9!;$8m%&3 zNT7b*k>Ore(q@;w#HUGPb9OtNO6zI$_M;_J1b@DBM$36et6`6OkBbx3p49q5)w3Hj za`Vv@6J|Wc3Fph0U0rrz^}Q>n5`4|mWHGPZbR+xi*9Y(pO22OBl)1ZUitM}}ncvb* z%HBaq^xm1x4_o7LD{#BVrFg?@NnLcZE{t7_KAvYb~e!_*1NbdA^7 zV;t>t@Wx+}V~6;~55^LsV-e#w&0#Aa7PUfy8rd>4QU1hV*{aPRo<)OMQJ$TkW%#tJ z_D)-j1$LVQEP2&R<{rnd(dsU5a_{TeW!HiH%EOAIJ4dJzcvqXV#^;@4ZSSPu64CKBf}7h zZXWvy3VS6Ox=?&rS??92|!%eHs1G0KqnkgHcz+R$N$ znG-xvR`tn6ZbWovOo{BH5nwLE=bx2<>*otRpPE??8lsHuc5=+B@0LBS$Chp`pEGgn zsgvISLnFZ8w~wBsuLOl^J?^XVArsXi0!g8tnMQ??ui@f5_O_8WZp^mHT;88i_nSBmW$Gf6vWyJ zzRFJNwB36!UmeyoiaS_yMZ#Mjad@__?@A%_o5;f#qps)E@(^xLg%2*~>t5XSP9;+| zC)Eu)941o^1xC(Yb4DABpE@(+!>@XW3%Z)(Fa*vKbq(!tRd`o5Pgd4}asjFJbvR&`BMm!h! z`naWaxJ{Ax`RF9 zh0$dd<)FYA=Ao1#|1GthUKMpDN+TjCv#ziOp~=-ga4zIcqQ)KI-EA~7mi_+f>@#2F zNeim^OUWRpagyx9pi!lmH>wg9-F~;K{Zz46x-3eHkXMt;WfCXp-1~nh%PC63*SbPg zKbPyaNKu3iET8?EQoQ=uuPd>>=u4l#XiD_6bcD{@jZ&mUua+epmOwt5;%54Yr{V4I zEHGGi%g|6oKBOQg*)oCJY;osGd6Mi?>K$C0_@nuU0mf=)QriTM!cvN>M8+V6m6pyi zlns@`#DcQefyaGmEiu_Ud+r^V{Z{kU_fd3ZjheW@i({zFoQRx^06@CSK2@0iZ@b=CK24Wqq8Lz zN-OHQvuQR8%WJB3a8bv?Na`ig;n+!{aQRnD!=zWkI?mw#6M1#-Bvvf_ZxLnlJVMXo zT#A_^p?*J|-G45GUShz=Ww+sk%wE?I=I!P$Co)1(ns%)K;lVlfbqU$P56Kn0ER}eb zDIWJmbjn8JO~%_JQMZ>P#QJanOEMY-c3E;7A`8>;W8wXW?(lAP~%Bfy}Pme7kYZ`<%6v6N!t@FTDL{}{D_`rY5U)g_FlSC znuhjJ6AxEZ$JLF|2${$ve~#cqvzvF!&&wse67hO7aDb!LhdgKb`Mrn1dumtdq3&ju zo3#XVay;dp_2`oeT>*=gQC(kNz)CXu2)T`*KP&O&k!O(R^-_i7u+dY3KffL8HA<{E zvHrXOD(c+vSHSUR$7YrpyJaqgQ(TuO@4X)>5h9TQ(Oi+ zMP?=AX7BjD^6NKb_Jv~_PuJODd`>ZwzNx;>vTLt9RxId>O82<*bw!@FtLF5ZvO6MrX4Rl}CCRb$=r4u~n|sE8C3_!u6El8OW2C*t!H`!rnM8Bu@_4 zlM(KTq|d8e^7oR33Y`$X*?mw~W_*{OorqAX#9rygH_a8&QkJDnlkS`<`LxjA*DtMy zC(r6WMfevL-qxCObs``5F0%0<$UQ|l^_Fsd#||9?RMb)NWWK7*+)S@&vHly^sD(FB87V`TKg`3l ztdbtSMT8xq&TWutpjGZNhLf-E4?puLKSSXi9d(Sk^r`Seh^=&_!-s@F-E0F<)f!lBB{^YO0>^P3bW?j?;(RVItpVycX8HooYv7x~; z7ZMS_TV!!9#g9BcdQH1MN^F<1GO@^;Ar7p%*vkgi{QfeYXO>5XJzawlr;k0vOlgtY zbfMCUG09PNkH-*#Q6oEc9IT@F@gPB zle3~p?$>k~Rt(qkbfk`4JoyoYt1r(d$Gv!lG{jjR)xKq-@lIdOqFuq4UwZ8k^zd!W zVWIbqnrg)YEVrD=q@T)Nvud8toz0zh(_1el|8_5{O|X(ndHF@r&RRsX_@1fZL$are z&cWCp=z;u$9~!Lk&?k2_NANw>=6;+gjq|;Qkz83|c|@Ij`7(e@JMFgGv#WTstnFyr zWa$bm$hD`|wjp-H_4&d1ds@V$W!;~&oy;6k@v8`(yari?9DBnz5fRBp|2yV%K!1k( z6LzFfWHR=6v~1mZmE{76k^_#>@I>;H`^N%LRHXfNZ4cUFTbE`4)o$Wz)Xg5}U%$|- z*jm{%jyMl2^l2j}Pw1I;a>Vs9n-s^WN&xYIBVl z_1C)cQSp?!jJvLk;Lhufrxdn4O$L8Qs=1gk~vWvv}G@Cq6BghIdA z|5l)u;{rNphcsL3;7QEyJg?w`JCQi`eU}&1M=si;(PQUAii=meYuftyJ(QgYCZpQt z!c@~oDyXFdB-V4XGsfaqvZhcc-(sem>E7Srbt^K(${ZCdO@A2^; z@qyVgTcf9qntnw6MStk56IVL4n2``u-Tqv#cO+zfkCU3xjn?m5%u|2k4`I!F9De?m zf&6AoVeZovG99w#&YXA`9Z-Zx^iFVK&b2WPob)=U@HAU-Yg+q7YX2f90>TboYi!sz zcFKMB=3ZEGO+{f}#Ea4wn!!RLli~KAD)QNnjLK|%V`9F9W;|4@riyj-FsA%olJ0i| zF0!<#sM#gly6c?nGt91$Ai}}k`BAL*(fyw1x-*_#gipW7|9&jKtT#H_m>21Dw<-6c z#)~G;ykbR!N1bqIy`tT;`F}N`X`OMJPqt-k3CbG=8WqUBvS`3|yTU!j2c9b{D;Ssk z=GdM1{^!~k{DZ)2TYnmQr365nrwf7T$p1s>NM0Zc07W?PaTw=Bv2w+x0ssmR+KntS zeFQ*YZ0=m0p&?!b^w#JVo&TlT`l(U<693j;Xly}L1^&+ZkB1xbfOQ|3Lc?BL1R`T9-&m& z5&sq6xMZLNNG;ceWB++F>~MV^?u9@az`-)0bdc$QL3;3MRJ=nN0`|T_bIL*7V5h06 z0VW1PwAE~F1@^S$m@H6^wLlXXhQaxvR7NhU0cKFvK+OV#61$JUt~0gP06kamgZrf; z?cmuEh8+PMw7f`wH87WYfHp6lNdVT2&RIpLP=2tb7^wf@nR)pWW z3RON*e7saAo>%d2u#dq6zKIY@8PBWge=H-hTwSayhsCXRfZ)JzmmUOQTTqZ&Q~>k{ zj|Xuj$RITM#=wN3(P4~NhiG*6@uLB8Xa{9h@puJr8a9hUXO{!6v5$~LNKH+}x%1S; zt=Ir?OX&q-3x;$mKOpb_nLp6$<#Ne+`}|6E5Hu!^M8vy-$R{K+jS1Sv&{C0};|X&t zHVCp%RU9%y6H0W!QmJe{nve?4T3mA)BH>^664y%!W#XMhnSd#zW`Q-r#~FeFVD0UH z^JF=lbN#wbB$hF06o`ncxE{u!`pP6Rvvr*mN(2<8=?YqjT>-tpAaxZX&!Rsi>jBs@ z3*F}dAkAz+w7MvtJU50QkWz634;&z`;J{1S8(If4v0n5jyBRQgSSzqz25c;yU07St zHzgbJ^l*TI1hJnJ8vG-U$w0z!1mG;K1hF3jaBAR!1s-OAPqKhA77v0K5Cd72V^4uU z3IF=rz?}ftNYG4%(trvfmkQLk;1~2y_sa%B=P;T(%8;W`sc7z82mu%zfR|LB%Axk@ zg4Yht2e}Y2p8zKDsEM;tXn2a>9Z;6d3I30$*SYXNml zUOpVWypATo=cIGGXifpOX*48}qiIkeok|~$qI3dj3eE$ihhl@8v^~g3KP5vu6j9Bf zr;FyYd&!3Cg2BAzyw(N`xP~+n0e+~9veuDD>Y=zGDg{0nE6fOi)#nFT%W?!FxF82# z<*l7Y)FY5cy&ePtIEPH89X4rh$-Sx^o63(7n~GE*j*QpazNq zLxo-*IPd`AFx;*bl2nQ5Nt1_?tfA#PQvA7c7uOs=$Av&Nzt68ndac@>jr2#LG8l8m)yMp~WT?YT4 z=7t;&NMFIeB0RMMNHtvG#1=ew3X(`BS!+@`s0K+A8g+GX zz&XP0Pf&z{c$a11AktGnQkP?v6_C8_|JAAcHToHVTSPH+Y_MFKp$UAIeslpEeqWKR7T>kFt-WP)|*ITr{_>aHrhfz}u zOe<^hq;^UzrLRcSpH%Gy1ml*$-wBeEVaB9{sFTh9q$@>(fgBgH!PoSiBhZVuYd`j6 zeJ_x+Ju+4qI<(MlTfNOzhg|$ zJ&A-inefA2Yo(&0*H>q4bvLigZ+uAz5nQ!CFQk#2e8TaeyqbpkdBt;;r{{P9V|H)% z7Z>+PdFe3*3-6@fmXKUNdhCZ$_eYzZ+M5B#t8}rb@xDz5Pe+FFX-PExS=I?PQ@-%zL|?PlGhXvC#Bf7z?1_E?3i<1aOAqn@ z;&(-z!3UGEODo@#mha?x{Rh*EKf*cmF`$pX*KA|_M1BlW%gRh{wt)LfCaf)Wkh^jZ zKRX#I{W$AjGRc5U4HJ+xH01XuWoWnF_7!aj8`pa4wYYE3QQYsXiRAT>G)(BHHHUgF z)`a^&VOQ!eDg7;NC7$o1EL&$F*QCWFPHXF3E7{@|&Mn~wdr94rFmbwG@R5l;OX5mq z#{FAu1m~NJ;+J}!HXLX=mfiSj$su0QKd9-&_K5;@Ax<*qPW$Mu8(ACt;X2(Ufpd?t zYw0Jhz)!8(`@t$dAQtC-N8IQxi^RHR%0gK9+}`)uls#@2%CrOX1uiy`+{wq)U~?Gx z%NprhDSz(u!^Z=XExsyZ(gT(f&;K_kaCg_7VsxG6%Z;C65jIf*`pJp0p>Q>;rQHVY zj!~bU3hBMmXCo$eY3v0xU7oRXZ=!{sh;w=P5P|Re`9orY@_j~#8zxnK|1q`l?>|Se zC8v5LIH#ok{+(5lE!(k^lGKcR&0Qi~_UX+(YxiMKAo?!lmB_(FR}I4?qc@Gt7_j}S zs%81np*SS9(MgIbn|GGJaJoLn^5j92xZnBA-SP!tY4*M@Qn@aXxk;}#uImVo-BZ_) z%k%m1^=A@dI>%VMs0;HwTXoUap?SuA<1ECv)m%rMZkq-BCW)FnIgjq-JrvNss6VGW zzw$QVFXZXQhHTj*&o7K0YCn1MJW_HIyQ3O1lQcPEmXghtmud{Zgg7huws~MOrhEIY z(XP|)PVJafBQ5mf-NVAxj>5TQ#^X}VKg_+c3iV6By76Pf$acQ$ zIk)pIu6dt&pRcRz__JF%wjne#6D*PWm_Nea{}5inpAVfD>z5ox&$&xXK6(;PkhU8s zX-@lgWtgFBARTU<9ir2j@75`r%}vt5+VSGu%UoQoA52>UdpPfckN?^9Wd+e^8NOwW z*ERJ7HZ~Fnr7AIBT+4-BOy*ulil8G2cXTB}f$yHRvHcWrp;j#;o!YjvqftfiFk{>6 zwGXgv!q4H%^DW(!^jNm$t_=HvU87n{O)K)xVagxcg%a}hXwjCk4G%G{Xg`O|iG1A` zaVOD6{_0*T_sme;i4(8HG($2;HSbnb3OSs2f6#)O-f3LD=*BFyhcMHg`lJm{FIm_1 zd&7ErVyb6br;x;TvlEy@{Cs5Y^Rc+pO>q@p)U#0X*XX-TWmaeg`49K_b zlgpFm>*r_pV{DdQEuJdZ{fda5N}kSqxrNp4x2iYNQz*0flLK$#p8j^PeN^js@*k&e z>)=bFSm`A$x$|58>E=j%sFI`25`vN3TY0&xkiH;cyD#6A z>nR-p-)&&yv)qC{s2%v77Eja~Hi7$iC7sF4Dp*`d!g;jp$HG5>;_R%mqWXdEcv0WWgPtoa z+_+eLbPnn2Jl-<6c24g;ub!9U^F-I`Q;xN?n2VD@$E{;G4O_up$ctk%6L6Nl9Nm=csQ zzWI7)Gz{%#(zEd=U=;G$(GHfPC=?{CsdCvs9`eMcykLWTE6XGCz^8>>SJqC+=ws|d z)Er`i2_c)G#itGT=Isu9+(RFiDbXJ-R@>({&<}Gt)VWzKfIF$)8|$Hlq)O*#j^i}8 zzUJhK`-ty;T!FH7f#-j|Pf$R88W~wA4G{B)xjeV>Legxn59NJcp?5~BNae9nJ*D@L zcDC6*30Tm960j;)*3%L~^VHrY*(`t2S~%lh?v21bN8h$?ROHEoKW;;N4Xf3N+(|V2 z;oB;;o6xP=5O6?SXWH4zNqQq=e&)fFn2x_Et_`&h8v^ZALOksh)Fs~ zp4joRcaXOuV?Gk*t4~CFP!M`+r?mTkIT`QFVq<`p(?D2`jsw0{_t5`?fk=s8FcBA&S$h`@L;W+-LY4qkxZBQtK-=xvk;pmU#YpS?v96C;RglZ zKw_gme^(xGwAg5h5S{t8U9@Ay?e^<=TX{q;qSwGhzpK34y#1iMU?3w_)6r`DsfA!n z3E_6JLKq=B(kXH+b1(U6#P-POPy9^$0ZhvLi`jr6yZe>g?Od(x_XAhT+?Aysgu7=e zh(E5`{{AY-U3CZKKrcURzsvB`Hv;ns^r34aby<%cY*JT>AjIF;?Mkg;tHFiG5OK4a z_3vC04Dji{*0XkE>@g=r=r`=%9nS7`)+LRFlJ{w8(%wi}KKSMGq+;46{qMfJZ}QRD zJ9lM9{P?}++XY&d^}bl9R9+V&mj}vT641EuYur~wSKItx9@R^9bJPZU=SAPI!aXls zV_T1Z>l`LYYIMDfxn8mq_oH{<#J%Jq+bt7*e{Po?EQF2nOlwDM5yI)eo)FBY=BUGq;Bw{N-*6`1_ zJ1>%zHe`G1rVAaT?OnJbkN+6$Xc|~TN{HqSan;|Icuil;ZktVeXgxe;g%uXQ6I=e~ z5dt?XmBeq8e^33s_8JSO-8-FUk$v&9gyFYVpYN1iP z1avb{?YP>X8wM=}+O2F>txZsyR;l@*LkgWK>R{D>fAvz@PbnX#ANPNqCAcA9{xNo9 zXYBwovRznOv!jvv@bO+^?z12V_|G#1Z%Y~MrtbcGmGz7qdj0v^zJ!{E`}z0Wo;o_a z&A5))yVB9eZh5I=9Oe(qNTn!`U8=HtI5vMxWzEEQe=ctQ(UX}hbB(`}2hOn{!!MtB z?oyMu|6#1&G3InKJJEJfHft8fdLpon%tC2sTnkY}aZ(A~cwfbWx63lwr*#4NSZV;*kRKlL;wrp9c!j%fFX|4)fNulb z*ykTColPYmj_BIwu6H?IlEcj`#YD<3WQ+LlN$v|Wl+R^n?v#EfcOJL%nyZeotqqxc zlQ(<|R?)`qo9l|TRH~`;7Wvkff_OJk$qX)M^-y40gnYfO3DUHD3~5M34tcEZ=uw3s zdH0d`IJdk%@`h$p)7KQ%+6LGbdSKP}ax#w;&{dPJq~m#7d-n7FF0+HUzd5(EB#wS& zuevG-)SIYic>le7U_iq))<4;E#0Ts2MDwSSX5AHYt#tP6&pQW`#%W3>WAAgXU1Bmz z%}UOfMrLzNh&dOro!XtT3iyPC%|FX;mdRH-FS}d5E`BCKBC7@0_aSp1o_WhT6}9qA zO(68{Uii*e7!eLMkn0xF+Icp>9pU3aIw27#pj&Q=B~++ zMTN8W+MOY%Xc>Wq`jhS$N2w-=$EQyVdfR=R>Fk=9h`XEB-z*$7W}e<^A!1|uV3*kW z6Pg26Cyp~@B(<>D7d9_&&HlD>^7?^7Aerl)|ou+Y_LKsSU@Ul#`l(qI42T%>04oFpC3PW=`N0mlVD!#7FCRxkP}qF12RIB$p;jCa z3jM?HXjD3z1MHR{DyfT1!_okV$3fYHHX>PF%wGwWk0a@VPul%ZEDh@v%w+}hz-xlN zGY?!B$Tgh6z8PS>azPcCm)Bek&4!f+^Qu_GlyZbi0Ef+*s{jt$5R@0G+z!sZYE*L?6;vdp86teJ zAO?cBX|B6|?rn?d>tn!-Tqpdgl7d` zfdoRfk-0vOMKl}$y@qfiU>Y%ifn=^uJmvI2oP8AZi9HiLUBM21M|`G%%MauZh5c5_m2GcwV@m zBTQzweei1Sjj zfw*D;0+LOz*#}DI5TM7k27hB(Lx@~p8fq@%;fWQMcHo8OWplDMY2e4gl84>#c2E=v z%IW~Kr*5Hu1@|~yUX&U_!Htm1TBUjo70N(WxHqwr+m}ky)F>yCz#&z^G5*FJ zO*VhN9LHp_=0@tkT!3h?alVsrMIW;+v=dwv1R99&JqVy~kEH>pFK|VNP{3lJ3ml06 zIwc(x513FmIaT;7P6z-p!JAwUsOIkLv=lRFgn*TS{p0{HcaEI*z$Fw+2+WNX$5|(! zr5>k4L^%ws;rS@j1{aSgpgS z&;tjc3wq7q-7J&Rz%wpk>mP~(Me!&KBZm)~%6QT@c%CCEL(jty|e!JYIRs6$57I4Q;VNU3o|pD^%o#n(c&lQSDUj zzAyK8?cABDASz^Gqiyy1zaseO@20=vdJPZ`2H~4OzqJL49>tt{R-(o}cfUI8PO$~r zmYAtOTyiy5{N&wlXOt5Nw^Jn6ldsFq#EAE75A8S`VQ*_7`66j&z#iew;;?s}={A#v ziRD5c=VoJdUHXV953`G}3(UQ%I>e{Gm)j(64>1@HPI}z?-+`U4*@$<2cb@USEbL@( zV1i`nisE#QeI2yL-J3p@(xi?5EM8oOnk7vRgx(arBU6x>owMFCwC`|bp-d`$m!vi2 z>aj>K^H{;4;xSRN_aE5|MY+Vz?&JA z6}89Vuim|fM+RqANzuyWrapzEkA*eNQu6!}t*!DircvzS?T7YDHY&*(X1O4xvEfQ zl_tj#^G%5q>v7IiA1ea`eZjEL8ge@gCSuOVQ+b!XX>B_q&M4p>=By7}zA{8?=)=YJ`P1dcMGE%m2S+L_Z zMZ*BG;RbU=ac!x~_2-h$1TUDoBgs}7WOFgwt$;&T=IqFV`9~vstqG%D6OntUQgpbU zr!3_3z8~o4^2w($fdv{vl^4$Vhv0tqW30aS^b}nky!z-A%)~evvz}yMsy^NiJ;5)& z&J45|v9fZ=?he>e=VIandQN1)Or-{__*WzgB1}pfD;K|(+1GnnB^ulNn^`fTDb1A;x3%U52!p%J%O_M( zO|V_=-f3SCYs)J}?^BbCF0(JLdtmF=-l4J6ClsZeOd}LEPh?kljW>*4zWB?sAlxjR z;{+qh#-}R_U4NMX`FZJdlz+wN6gz|am4``R4DDqOi}Xzyu^Qoel$RFw-5u!VoCh7s zlvvTAkg_L6hloc!pccx`zkT?>ef(gd4y{-IEc?7`+%m~|2r#%kx-VAkic%<8!T2Lj zw<9_p3RmB(pF7$=cKof>M0!FpMsJI%nz~q%*TXW#c!h%3v+&l`4rw2`7$#FmX zdz{oA+YS=$Mq3=!j;P=bJkLZexFDgPJHPIBq3ONazPu!Pb~6St8hA;DkoQrV!SMdQ ziC&!`6**Xk<4>M;(>bhZ$+A=up}ja0`sJ3$l!lpT>X-lS@H6whh4*BA`djjzrW4k> z;I^u)DyQ#NmXYD;r^;)1@?zDjO!L2-+Quq}H}EeS-##hjB8s)=W$~`!^^fG_<2sgc zZqRfstrYv$d#)HZ@b;(|ULC``L@UBGiaEb)2UD%vp(AmmpB_s-u8)XPcdtA|?yoKp z6rB8Biz}AT`>SVkUbq~Eyz2@BVM5K$v8!$GR87LDghyxa{Vl^4Y~xRMT!+^SX- z(?sz{p1n9dp1|F%QhnI(&$bwy56(;T6?a0Cg5y(-v<3#eWeoJJE&L|~1S~8L;6~!_ z4IKVMIlpJsf@tXO?Dv2rr*V`};ZK+!oJAU(fs0k}Bm}*frlXh$*h_a+1X-5*{V9NPrexiZrdLFk)EqF>BN+*T5h-CFg ztU~svS&NTKDwH5U-duYwND#9Z{K?H`q_FR zxF6fbdYdi5u6Xhi87om` zxD9>+x2fcKYe1J9MOiXVVO1ge35SVxnZ3T+w$$G48(iNZAlntQ^!iR&N8QU;P2s-J zrY84@x}(?j%rC>x7w99O+a&+YKlza=SC8C}TRZB&?+OUJIPmI&IN@N*9L&N?q5Omc zc0^O(O5*Iu>KB!~8*73vog#Q`WRsb)5J_SGdryaGyvU}ye&Z+B{@0_EH&=b$ zZP!mQG+YjB*U;FN7Nc6_Ybot@skx zlEWrU1_(&yq-TA)_KHG`oJEd z0nU-0X?TpJU=c`$-Vw6&-RU^EnLeH)d${>x`vXHKy4wkr@1JPe5t<_Q{IYyu%ne#= zAuisIAyA*CB&2g#peS-QL3{VFbuGT=$8s;R!A>>HZ1iK8@HK;QE&R^i+jbq37!X+Y zG`XaZChWLl=FqOsiV7sf)Th)b!NI2=hj$oQ$5z;@qnf9%~e$vpYuEG=1vHxT;rZLugp$@Q0CoGiLn zxMCyu=%vdie4z0?wk=N%X+=b7iC`!KqT@|c-gU_M`BNd7VOTdytv+BUG}>L&RD?Rj(3fdd6bSG5)Nel+v`W0p$VnCy zb-i6FC-#2NW4WLHinbA)5td0$8>dXLs*@zvZ`ZZ0`elz(3qtM9_H}8=75tk_lfJ_U zcbDdR72FAt=?9K3In1mJ7vMjGG(~sWaYaQB9J9Z$EqRiR}5#&Fu1GZQs59n+r9YGZTm9CGqz<23vGzW^ZFf zS{Xba&IvD)7DT2?E{9SG@2$Q{yfMfLftav!(>+~Z$}HM_ty2@Z?PXr@@`(OW%2Tsl z0gs%&+54lAtYUj=uI>@DIVjXv=)3JP7p{>A zhj%63!Gwds@|3un!^77hcU_jV-s@>XrIy3Pqcw~!uub(Re7{mo^mrs$aNDO#pas0! zU7g4|ZPSN@*GGeKeI!LXuPlbFGLOX24X znJ5-D)D=dIR;p1yr}pDoU$~i~uAiB2$am{MKQ2EhI-_P?lD<$XW5u}IRkS8d(1SZ}BW zzTf^!a8b!huWygQzR>-C3MG`xihtd}c`1E_Yy^`p&CFrXUf*wlpCD4J@s)ACf((&$ z4Zhv>T%FS84v{*e-D4+r7;y$98N8WWJFdwRb6ls7q+*`I6!yZ7VbXdGdy>tC)Xo$_ zs&zEIFcXQtFQipV+4Y}&A`n~VbnCdi(!DUH2e?r0A7_H;?%}ovitXEUVi;x?IYMGX z%H?LZA5*PFLXQu0L8*dwg$pJOD^F^j`Ve+WQqseHKH=rDyu~AUJKWFALiVTX3rVXf zj)&X$lG?)TDRc`usX1|YunR)(?pUIJyPy2H_-p`6_@;N?3>jY794jwgAZ;FV{A(vt zKyW$5Rijo!U7m=5*X{gh`i`@{&<~sao;cx#lMWU6N{8~@RJGC+N~eb0kHUTR?suLJ zZ&SocC)(i|5DTigfKo3||TQu9-gDBZUC^ek8wS^Yd? zIyd*3%TCSx4fPZ^l+d0O($cWGQtjog6}ehjc1^)&@{MVs`p>rbZwpJ$e{ViBzVJN2 z*7|lICgH1P942m;No3CJhi+!d>L$mBj_YOdI(rSzyQhH)q5+6%P~}l*02Sx3L7$mSt_!sTOI&Dmu})BtPVC8J zItvb2ilW(Rdb%P2??fah07a~a6XauMFlrNEDQj#$?eMmVIHcC z8(dCMm*s;JY)%Eks<+y*TnlznE4z`q& zrsj$=P#igkCXz$%Pwnbrh;*h&^#S1vojkl>V;BuOnwkjmoIj~NgaCH>C=^{RXp$?s z&~P~<0)N69OUp*!`Z{Mxtl%^qLg4;uj`OUJj0B<{}b|@z#l5z;wz4 z(}3=UA^}_y0feD|=CaCR>f(S!mczjq*oXj`uX{5dAc1sX?GOZedQ3c%Se4TNCAnK_ zB0-cUU91RbzFf>Fh2J z3Set&5U%BPc9nz1G{_#~@^Ls993SjGBCy7Uxe_Wy*MgInwDtb1$Md-IFQyrpbSheC8tW=!cY%{y`U?sO9Lb=$^otc@?Y|NUUQm0 z$gjD5|5QFw{7;se93~jtuWbg#55YbnoCya>H7G>0DB4UHC%_cXp#exLp_?F~Bb`%G zL7r8pK0`JM^YZa7ps8(*gaDy$2nEE4@^Ui0py6(i2+yThIf49m7UX+urU&TK_jQeo@FVjqyhbfQ$r0>he$q z5`^aLx=6sw=KN!Iyhrd87x0-AM+ce4u&lY7dcP_u_!h8ra5}cDevG#e%6q zDtJ@i&*QVe;-~s?2~d-#&<$)vX?A+poDK=wE(JUj#Mc`Ay4Zj|5XE``_7c_1D{IhX zGPz~oD(T}Jllpaap$vH-0q2fX5P4pps16L(S|Yt30L8|pGVJW2)GS4aU;x-R1lK}Z z3Q*esgR}HC2^<{kVS?{OSvcT`m!|1}LxJl-kgjk$;Js!wAn9{` ziDbN%Xlmz(M`W6vuAOE!5=+3l0w7ce-0kGx20)6k3$TX3k6l%v=So820VoRsUa&I? zR%u*ZPvX#E2x$o#iL)A0uh35a{`bSBuH4D|qN_#MgP&QT=ioxer6#(en>F9x_lBKS;_TZKE8GED z^-Nl4e;E-L-S4V@pyYzPc1#&5gRV#^E4?&mKlAj6zOfBECU1PK(V;Fv;@55W%(~;G zW6yqv5e(3=_UbI-n(hCUulXZpgnX; z=c;J;7TVA&{~_;1s-1AZYNq~=A2rea0&h3VM&q7&jD*8_^cdXS>dek{D=FpotsDVS zq`l-{v6R@`=RWRX$2nmzg5t%S-;DFW$3qph3}f<}h^>hx7*}Vr1Ur1=rTsYhCfN%K zBxcUw=Gi3Ecur!~Y0qf9KVh(7RPfXnbsadm=WE~Y%#xDtoxylRFN;_yn5k2N#Z>)7 zd3nM^h=!5_k_at3O5A3QYh zay04hlkSP8v5nt8dqsZ5x{Ucif|qQWa@AC+Q}GhbD=xmY$}flN(89NV2=q_Z#QN{B z;Py)eMt!L$VyL4#hI+8RHmB4g@8D`@931o0Vn_3f9n}M!tGo1n!~Hl&$mgCEC&9+J z>z9A62@iJ(zSFkVgka(0< z{MCzcOOLc+OrSK9Uy;@Fh`_QMK!pWOXmZUg1_hSpME_pbz=IoOx` zv3|T+aWEuYCg@{h+Ssc->9ex2BEMb#97?L)fND`)FF|=^4jKKp>&j^1xeC4kH5sD5 z?i^eZ6L`$M!A&K0zQ^~h^5vGs0L^~7EictuRQ05>sTaFF=`~&4?5&gJitlj^YrGB7 zaBN$B$jOg65`C{^-%pF=_$qwPtB@5J{}5Nfvo9t6ak@%*wBPcF1?JfU@nmUYb;AC` z)roOY$vP8xT9anxr{j)uZa=ww>Z75?eRl8jaNE>rN2PnfFdL!%Tu&wFp|kS{!(3(( ze(ypiFT*O6D?O7;R+p%0Ksrkmiyt<*iPJCdG7)XwqZUi@wB-67QVPefHok3Us*)Zz z80&GSgFZd=F|C|^D2HTUz~o;{$dD;((KyvsU^`$O&p2&(>j8Pvx$53xAp487$X?&! zwvaO}h_ml?rEcL~-Pu=?_4c8d;wr+~CTOok{$9`G(|<7)S_uU;6>C&%eSyhTG2~}8 z#X#Y#(i!e(9piTW0oRrVti8=&wf;JX?P=xQ+39S0u4RMAUDOq9(UH>ccu^?) z-OFL}zVTfu!ZpZy;!}Jq{(WTueL5gXt1bA8WBR*q&)l>WxogRS>r;N8>rhk`c+VRa z3HjyB7e(c@!ya zmBWJaQCFboDu5W@z1QDZSJRpDhHjg4-;rh8+t!=YsW|*STSIL)zxbr;#pT0PUB{`7 zpLM<$P(e}C*?ol5ZBNfMsJ#;9RrN;Ehr_(XQflhbs=C%>Q`s4twacekL zrvH$)p{7j}H_@h0?4aP`^Qfxm_x1`+{FM>Q^f~RUH-XZUQU>Ny-+nyE$SJy}_}jUw zo3A5DC26%;y|^iB8fb}CFB@p2+|n4pok8}Bq~qwjYmeMC6*N+&X0%|ux23%zZA zPT=l+be)j)-nlc6Ut7L+of&+vCu#FT#mp6dI9ZVrcfgS1S<+$`QGZMP7G0|}$YlEU z5T~5by4OQ{6vnyKSUqqzb<1)td*0bnSvQd<^KldM6t<7CbfZ1f`y5)-k`{U-?cH^AtyRsi! z;Ol1xUau* zpGyp?sGjhdG75ueo)@UTSDGJPz?AMaoi0qjGRYc&*>AX0L=PRHOMbm+JFDeLqe|hL*9f1+8>`nE14swD`Sy`Qm@_#qS&UFDI3AO%}xE9J3z; z_r243F?vU2a36lPsa$P63fW4XebU(-jJ)M~sP+~KC$ zd8LAT>7^_Y#r+#z_AkCaStG65YLC=w*%1En{Ymgl(_=xDzqcUggY1aGr8`0rH4(Cv zuQ}eY3r&ZOK2-a!R~tx(6zaJRqXM%eev0OaAEz8Lwb1bOI+bFkpI@j8^?#NV?-BQ{BDmpTv+2^o2?bGrq_E}&8Mtv0PH9q;=%VFXQ zdvf|s?jA3}4->b^Q&4yT*_hZiP+nwyHnoctMoRfA8;vulX;mH{A~l%ZWo7-!$42~4 z{C--FS{O!kb}-c81(-&fi9;Q92wm|@{;1A(1=4*)XG(3?t+{JYp2umW>gceI&FUtv zd=IE@Z{PVcev24Zb;(kIkA5I@K1L+rOICj?7@4^F^({TP_jJkAZXtg9zhNKvp-m0@ zf*q$eDmhtv*D#t<>WY~+C)HH(r~jH<7yWupd6iyy!N;{^$Tx_0(&^~7I&A-gMseo0 zO+5PGiR)S?B$@kNHAFZ^wdn5|H_R3L*V!tL9!q7Y=i4e2Rch}03O~_*^bez^+d(Z5 zS!UtsiBPQQ*hvVQCkt4`Bg6<1S9ATwkJwa8}ut zUtXl}BqXuBA@8=}5LPwp_d3Y3Tk`KP^1XHX-!t-rsU{*rH}~`!eQ}q|7s8cZ4Krm2-gecmf}*M$XHw2yMg} z-f!Mxgo}rVo_{POBNNl0jB1BoB)eTDPZl7O3J@Oc@iFDc&n`!tw>k2}C&eHws*RZ$ zTS3Qn*3=L#iD@V4oKdquc*8ijYs@t=@KUWA>5Ead6h3f@DSGAP_{O5f#q}#0h0jR- z&NQd4IQKz&ga=hum@jq`3Jclv{}A%T0lt4qGx8#28}H9XJ%FpZ&H60yAK=skkPVxg^h7tAhSvZi&rLF*300=+;2PKK%*G9pKso;wy z7U#sH%?;t;@=P}P4vR5D`%{LgzeBC~WdYlL&!o7RYqu>A>PDz!(|% z`xwFmjj|QdPIi+L1l5gIUof==s`0;eV6JN8)-&1 z0*&=yly*c-O%cuugg2msJ!a~M(=RgY==91gkk0@e$U#%0pFtEgKXcH+x742u=rtVN ziA{q2bJPeWVPJ3%w9Utmu3*Q~Nnl9LBB2qWR{Agf1XGs`3D|pd!H0mC1yY|ei+>Y~ zU||n*q{YGoS}3>30APd&Do+x|=1`d65o`Yq(bW{=sO@wx4LFQ70sb1`1;Pl&7YTBKK#zDukO;8&K*e51UDB$x!tQ0~N|#4HXzRfQRs|rA4?J z*5R;NV2pMHTZ{$r;&D-|sWrI}mKg?w*Fj1lvFeeu6$=8i=e+DJvZflAVG52J$oE>( z4U$tBnkJAHiy{hT3~-LaP|!R#BL~3%unLl=C>BUufutiy2I&m)Ymfj2`cc3+GYcdd zRB{j`RI|r1Wvz4^l|?SVf>XuNKSNNDg@bGgZe)-O)(629Vl~_$%t7&ZcE(J>wo1b~mC!Q13T z1CtDFU_i#I$sqA2b%sJ;5U=aVf^`MTm^#kOw}?a^4CU5Fg0%+UqEK!&9~?`UOa|D& zq{RpYz`Y#^WK4$sEKvUT2i_vyB#7Wd3#!Bn(?}C=pn=!AgG}=G08igAA6zJ)4Fpo(A{0&coMd6?}N zM)J-OfUm{`H87(935oIszNHC&CY!D5h4G6Jwnlk?Cju1hcv@&tL>Gu2K^{0!fFB1R zyjkGE0aYoecQF)Jf+qYz%#2I{ewe}w zF#~r*#)m0jQUXNEXuyAh&voAOba17}Ja>fF5u=2@ZiclH_3Qs7g&Vgx|Bd*2Q%X*1 zyOd=cf0A5r&S0&k+${OaBANGBPK-bfl%c$~IrUm+yx2u?%PlT|-Nor*6L_lk=HIs7 zfAIDpYx|KOx}k#O59rAwhHvlw;QKq*G|!3ZZod6)8t^fn?V?2)etvLq zbZ3pP&0dV{z&&hYRX?S(uAy|%lX`v?v+UjtTZE^(=B4t$%Y9zWgV**}a}CPcuBjj!_gPQgxOd(5>i7?X zfpb>#SIye`8t}#%a4qwYN{U<`vca~pbS6;0F+s)@UW7g$<@LinVb@LL_{lk|F9&1I zS5DBmY|T46+ZRc6`M6|Fs$HjJaS_&^`j<7s+T|YFd&N6TE^Kf%S{EUcPi+d_B!l_9 zLi$;yibF7OpxL|m9334W6e*Lx(wCCYC!P2?&}eJ$eU9u^rRS4AUn-uWBs?-cmLfe_ zxkm2$Ozltec)Uz(Z#?hUAIBa3GajuTB`i`yh?(@)j-}AL-jy zc2eRfLPR@TIttq#VQJfmvKQeyU7eqYkGaU?q%kKe1zhi;l`BpcAXCuykE!uPCLjC z8_VlBb)YKz(W95m57pki(GI$#ykXD&lMTzInOBZw>?GKm-XK26|3$qBzmm zzAkJv%{QC>i!eW6C8toMbM4etvy(yMhx z=EMPqD1^*dMmNpr=w?avRVaJqn(20rv%EVKnS}C~^BbG)*cF#J=jjkh7B%`|N~1=* zFk~;$_mJsf=f|w=H1YWdW)-97FTM|DlfEig>U+%`mzF-FE*GEOFw&&H*l9+`=MvuR zVi{i{LB);CMx6W^pMZ6tpcpxpG$;QMeA&La^K(dTiUBS&gu*?u>BZJ_l=;aUvwkX; zxBO4}oG>cf^r9i?w%@UA&THbw-R&=Y67`%?mU?4Xp#w_)PrI{H1v2S@!q8H}K1 zWoml!wga{n34be9_ZKu?|5_a$`TW%N_$xh$Glib=ACK&+WL`=)hip|kEc3J}YTFC8 ztH(fucer`vvvh^cXdFRRVjHVmJNVTNE3dN2{n(R%Sp|4*p2=}O12>X^(~j>X^ZRzs zfq&CqJ~Do_|Gz5#Lo?3yDIAC!YwOL=E~nMN|DVENv9uE|>Wf|NH%eRm4JzI~GVQr5 zg7GjuplH9-23`vK%!W@n7X;QtPj#F8Doz@hyNEJt4$P0e3Xr>W+ThP4V{%VRU)ycd zsIjObLi*5C*W&{+*%nyM6Es`>1ZAtw!#5sJoVxAxq(v+GsRkqA_0`Oza~kq9V-G~7 zhc4jnx-hj4T>sV*E6i=Xkr3h6?0x`hV^=RO-r>~$u_e-f{-r%aQFo^99>SqFR8==| zft-KGerINQQX_l1ddFY&Z3odr9W4`D+<<@l&Wz^WYeVCu*wG-Hi<#}=z`zCC5>-}n1#Q*3cb&(eUz2P)>E~>8o3DhTR zOwHV**xQ9fd>d6zSyB z)<%Gythe5}40ja-?f6b?TI*KmR`D5N?;xSvE7F_pAZm9^3SZv3OsSQpE((c{9{jgX zf>FA2B+*4)+RTOx)rb$Nzw4&vY&E>0MngC5qucs(6%y(Ds=HxC^Hx7vP=Zp1dRf)y zGhid)@P4bqAIU(lfPE^y zrLmWG&*5P69h;NMZ>zJqEbaUYs{0;#gZZi*d4!x4=xK-Uzcq5~p4O%v0Xp;zg?n8H(zgjqHB9WRerE}>e->=VG62QsE|L`#vgwCsi?nS zidR2A=N867bZqvsyZ$=z=M&@LU2bJI@>h2x=}k1B**bLMf^Vq<^R%nnAuT0aM4eSs zwKL+&Sh8Jw>*#eQFP$$ZK43SWS2S7*V6<&9y~*A`f`Q5H@W>O)TnL5S*MpE~_iumH zQzifR)>K7ro*J>Khg8PW3MtaoZTF-hj`zGhw8NanOq6#@_2+B^8>r`;PF0het}Gp z<_?LbwX6%`LRgjEkr-VlQL4uM<5*FES7sUM)3Te>`i%b^-uvj!N9UI5Z=X&z>;kLt z)Flm~YufQ^4BqP+8jGiG2r^+l!ec^kbec z?7M1dC#Ejg20N!_Yt?O^H4nSvc}pey><9au`EDK=ZgcV53ZHl62-dHw7cJhtn1eLh z?>%?$yrAimDu)UNx1Zm7z3gUQq?EHh#cXjtwVz{lWGU|4l&T^M7JaRunOzWf7UG;U zY^kw2x&C4G)zUcIp!;)Hcu)3iOj?)l2tT9gLPlhix`np?AE!KZGQpg#`_d<;`xRk; zRtA$w&SSoqeYpK$$ittqx}sa*imShRSDN1*)Gz$BEzWJlmj2%|%JlifIDhTWWow48 z1No;C{wnvy)|2_mD_R3Tl=DlZGAQq&iwSE7Cp;g8&#MP1?XtNe7G-TMuOO(Jikqdw zr0JsLr+hbS=x819r@ql=1r^j`-$V|2C|@tF<9R8slo(}D;Jc6^)UJcagS;mP3S!S( z!(5$`_EV_C*qM5E)O6^1pV*;oN(stQIa|Nr_A6+5vN3f(1dm(0-sZOY+#>1?HaRCu zpocr~c+@lIaHsJH-s^H=;c7|uq~X~@@-Y?PP0H_`_^DrAUB6VVBhgbIO)p>0-Trmp z?3t(&-`{Z^em#G(OIKm#5Mt!k+v$9j?aXfEyP>W@w@$IU8|yh^neqhbZHJzJDBk(A z;u2)9JR{sV;47^%^&h>ppl@0|NuyT!8H>}g}f69xT@H7Y;z z9Q?@5Ru`eB0=hV+ZMLqF1U*s(ZrsM(u_9rCp3LRc^ivJ5^aJ6uKPME5{igT}LG)Ug z?X(>yHU^rg$xqyJ*lpdzg!p8Xf5OEzI<#(x$Tq63+ctm2Y-zRorPRLbw+|tqFEdi( zJZYPJ@w&1W*U@1eOt)3ftJloYtj3GRGwY*O+M}WkFpnR6PaQ-!e7wGI?uE-HrbY17 z>IM^agvPr42mM>@{WA~ko{XNqzVwi|MmCdlO~7QHlx5gxCob2#J51d{pyjn1|JaIE z&D5p!p8X{2c5^zf@s7iJi>|YwXPqzYlO|U4DEyBt(aoVXV@-P;`=4Z4`mG7B!f!n* zSCSuI_H1QBa2%3GsJ{6$E4~$-5v%-+2^{aOyT39~FNgD*5c|*9eT=$m^Cc4IzvFrp z^!BPn*`JH3e(7`*2>iZ8A=q(FQFZa}!nP}MiF+G=kH6mD{+~}|>qumr{M6YbLYUIh zTlFVb_8%)gY1{R2yp_VCnumJM!N2ss%;sL*S$+Ad#tds{G04;elGQY%a6CdYK1Vs7 zm$-9bDO=_9flq&YEK5SO7#|kk==at=56;P+Kd8%>WhcG15m%=Q-%;KxZ~4+Jr%amD zfAL%1NHZ>F%RN1x?}x8N6&yQYYPxD!=e{>s@Nxr!-HeRad5yaG$+R_o1Lsb3f6YeN zjXq`lgCn)tyzkrQ(M|!1=0)k2pSLyc6Sk#zc)Z+lcW~uF&F~cqcU0YW_3<0}1w)ek z_)xfOn!Mqe+GfhTtA96b)W;~mjq80jIfa3XEiqV}IA87NPUjQk?;G@w-p-mA)#NSubDJk!W9fVtpJ&~)(}Z^eTD z&sG8qkV8B(bUVhsHP(~}I*Q=SHXyFBaQdvZrZ^jPNp@jWSO0_u^2!LhIEKM&2$I zU>63$kw6Y8avPyth-_8R5Ovih*P@0B)o?gCegI6YtYp6_LTVmYTQl$rSolfq5_jM0L!4vaW(>AQ|+K;CUGGF zb`L){mtC!>fN`O^8a9&rC|(ApXn$&F7?_CU`+Jy1fN+mQqWS^bhDaR> zHvBS}V80V|jZvY%Nj+?20Q3?dRPu`iy5kApnDOV21Ahq5Oe=L2^jk|oI?+)S(HR9m zH%}N~@IVin0h|{gRg5VDz+@|B5MY^+6yH*G9VQDe(GH0PT5gjL9*05!02TM&pr*)_ z3hL1W0FRP@KNIrK(cvPGE>=v^fAw>q-QGnaW`L5y4g`7wlrH!Le9XzIZ$f z)WjpW1sEeZ@a(X&=%&DU<3h}&Ftai_I0H0zPtd9vnc~627&N~&5(PvU!q!MLz|j2* z!wk7Wp#0troI5*pK#b!Db|Q7uP$cneSeOY2pP>R(AW<#?if>RaHR*E2;D|0LCbgCr zk**?&1g&)xn=f&p7ND4eCg=ifaHaut5koD&cmc|+*Fu1x@Wv$+0jG_uCqv^+fmm5j z)yNPScFEp>Z9wTwDL`e2CIFcR;78GibZw+TD$r|q%7G@XnICu+U>FcA3~4SN05Hf|8$ZPkF~ z2#x|85-L^51Cs}oOj>BI6A7HP;(=lu8kDdn4Zt;rLj(eCa|cj}*r!-QfNG~5z`fpR z3J>U%;P_#%;VOE5UQR-5DFt39-jE;K2o#l9kR9C4utvE2kZ1*1hxjash(`8=6XRM> z+B33i!&tmwETV>6BczRmvEkZd3NVowZ*|Pfe<%ZRlfbi52gK)K&eM>?@dEi7$obf6 zfQ1AJ8tI=l1?&*Q(n7gpMsPNfEuWDlaRLjc#b_*v2;fX`6lzIS0wh8!O~RoHYT5-L z!;iGkQN;j%HNk~MVu8g}aNQ4s0|J~wKnX1&flBgoaE}9YguxvJ0S+Um#ef6uN2$k< zLGosj%@TNnZBfvyrd29{i`dr{)Q`=0gQgx~SV(Xw=oM4yhCvfKHbMxf>U>~$V(Ut3 zG2m0ggUo6J|2ZK5`IIwA55dMO)t^cLPsj|MCmn8Bs0h6Cng3AbAr3jCPz_U{#x@AU zfHb(RR!3$G>4qb5fH}PYAh8@UbO}_-6o2r11%Tcaj{B3q^^P9{mK+se#YshW2*H>F ztKEs?4+HsnB)H*#2Iqkum@pL&v57!_Jp|?-&B$m0IM`GVG(^m8^>xH}Ai+%!kx8dv z0~m1?P&*t^Yz(WW806`K0umrneO(bc;4)*YBESz1B-grN(JmQ$a7TsQCiu5Ii>{3_ zLZeu{7B~YO9OZz-rEF3XX9G%_3Oe%ye2<#pzr0Y%j{LXv?`J6uDV4tsfA{`%Z9}BJ z&^pGE``WuE7<2M?*7FAZyR-$N#2#54wY^$fqoZ+CC1arBycLCSxZmW=q5ci_!E*Na z)VOuJd0VnNxfM8=-nx*=8RfZO76&PRVbb@{Qz)rQ{I1p%rcYsZUM3VF zU|X_PISdJc~H=W$vz5I~4lR@zQFObkn0Tknu;>V3nqS?eyKSLlyfqrh6qeDejyW#1C1C znpxgI$|&s!xL!q#@NV>iQu%W2dBVcWBXjg2d0Y3eCgiEVUVpueI+0;ZX}Ngm9^+!X zOep`JgK5DTZ&~vK_?^aetU*)HkszOzf}MP*+8uO;@IfFyiHnuC`-Pzlmg%!p5)WS) zOJ4S>&G6B6{<&KxK9TCOV_{vJozo$S%p9L*Jj`sim__!wl|{cfq2SZ6y;`VT?Kt*#2MRywht3Ib+|igIifz(!O#%XM*J~rl#`k}GLNYxenD;m11}}e~fW<`9wj5Gv z+S>Lz)q~>w0BYOAl4LlobN3{jE@D-~4ySg|HB34!@xE zy<=r43~c^Ic>Uk;x=jV!Tkl;w%xJ;|Dt#}H3$U3>bfclY&R24?E>ztK+}sq^L3uNp z|LZ~J%)QfD&j*hGXZN?}Zi@4bw--hiHjU!XZc$~dn|FikV-#4crl_`tSm*WDdd3bM zNqJ=k6E$SCPKW&5QxiCXSa@I1wqZi^>N=6NtOHak*+xVAyR|Dhn$t#u>G6Y~ZoXz3 zh}Oe9D8qzS$Mt(`G#$~qv_qdybl*gODs@agG4^-zzKVn**b6FxNDV(|PtIZ;l%Kj2aj! z#(!BCarl#);U0Vgleazh4&=bW-bhFuooy-FEl18sy8EB6xG#d(eUGU6yy0SEC!ePxEs)Q+F!T4&xj5tlpTB_JkbhxyJ9@RI)KBe6`Kl&!KoI-}#td zk^=Tt?XmaY^0PM;p@jdj_Bf;zSR?QahHhEog?4F$yfIDni(8&1l@#@BN%<=&(~GBE zZ&7WC3!|4K7w03gYBaJ3{wf{U*(mmTM@} zB>V^K!o1v;>mBS^_zAfmo2!q!U-$aJ?ykHGD6K0yoxkYAzONmVbXcMCRwtgXELmlb zlx25XnL;mAR6;}>6=m=A6LXr$t>hv4_FGf`LBC%+v3W}l1!Z~m_4$q)hMsC(A8dCh zs(ey*o3lWv<`jsJn6Wxftzcj7dPm*hAPU+wUlCa=!m1VoJ?eO#78WKk_$YTP@VK{> z^Isex!X!m|T>1lJwqwP;D64iRfAh6doV$tQ=K(h z5!kX$|0+*~_j|`4tX3R8A~8U<8ih|kHKb>Yw9F24A{6(o!|wD)zh*9k23ELL_UxtY zD#<>exOj@eMk_IL0%Lx;FIKt{ZQZah0-j>oW*RvLZv$jD5S;yVP`bbD^iD<}*pPF? z=M68tMxw$DB*8W~YyBtP?&oN_J`_0?()Vt!j8-sZrzcI;eyde5d0S&el-KK6>#Jln zi0fndd#cJs+xS5Ug$E6d=}e6pQZg5rlQk?SQAHNzK<~Zqj0w=_Y}*xI95FP3J*cDd znjCpg^t{cvVff%DMQM)@2fRbAbiVhmK%0)9UcBc?6nD;)s6>=b&I>)!KOsjxYuys< zSyLps>K1t`ou76nW7K2kw!c%kaXYALuXOCZ$$PAJM9N+6R?1AjrM3gP2hX(Hlt8_d zQ$DPPf1~64Nz)h7ty^lf$LQU|wAa^A?#*f~m+cMXuCl^9wWmfl%2Z`bXvtmMkk>uc zTBk%4=zq!fB_c&29977G-gNmGFOW@c2Er_JlU~_R)pBIJ3aS{okL@ zl-hC4WixFcx*->WUp+p5I>gDAaLo!HHD)sZD)j9Sy2<`F$>sI?_NCp9;nI+f?>r{e zP|n}-P=U!0b~~@B;ik?;!g=wZk_^>XUR$Q$ee;BCwfRO5@&b3u)oe;ae$@jf*{zR{ z-Vmsn?KppSr0obSw&Qc<#23C-T6b9IIfa3#+Jv)uwMriKpDqdb;;dPV)>RC?H+ zGmL88KW)qdgZ;nrgp(s_voG6ALiJZ#Ro$;FhCC;}IQ4lrX}|N#ws(uMy2u}{m!)a9 z_-z}Gl7EE6Pa@3BmK`!+l~(mIAEsI#SMVj&5ei)>UZ;|KZzuE31nQGx>=(SN?}G#* zv&lIfZ2H9O>^!6T`g{AHz|D?*f-7a+j^~^z>JiU&P3!CCtAny(8!E?DS{m>plH@ zcT9gw{yBL1;p27WZLnCm?8LdGCJSF{ zTC0+F;BwJB=v8yn-i$LCjbl0Lh!)+XnE8tN@Z|jZF9rq!%;orFOO`{AQ&;swt^u2q zLK`~a{zr9}KDSu)1%?U_lsjN_)?UPW>o1Wuzum6XkaVHjRX5Z2rqqCJ&nqKn-x~ay zKq)_|DM)f6!gy|)W|`!<_HUA;ch)&Lz1urLZ-pH8S$S(~Ypc7brp=R-sryMkk{aW# z^gO0)*;$QizRESY51Bl^x_J%O?yzyW(`d9! z&P1kxz5MFfa_Yk9Y5O(!I+YFhlb1D<|JY_n%Jx%mb1<26<3}d2O8Uontlpl49=wUa z=48$>qANev>UQmi`nNqJ^m+v)1=(2FoZo+LC`mdvfR6WBbaptWaduH#+0tIf)8P*) zVbzHBOX2;^cVGIg<~%D{3YaEd9IZ$;*1hBww%_10zLIsu!hEds&P2ivhChr*TpT|Y zF=2|Tp)2iaS~)`vR>sOLwws%)#V{WxsEW#moZuaS&ou*1iuD2rfA9p;+{2~oju*$Y z<}2>|cB^ACnHZS<>;8PIdtv}rN3*W=)A7gE8m+B9WPRws!IU(z9Zs*`$K5+Y<&f<~gQJJ+o+fWAFP&&dsO_uw95T&x zHnrT4ChFaOHa7l0YzA>T7AyNAuTS57!=np6DryPEbrJHFu}jE1MaW}zXr4;n_Qc;8 zik)@u{#NW|+$UNWFjLKCaFhou|xsXhJTrccSysq&K23$0fQ=U@Ge-8vjqB)741WY~Ks z-MBC5u>wZ0s8Cfp=E2qwyBwV^D}H~lB#6{_-MN?OeK?_h0{=GA{jRBU$+cOvFBkZc zd(Q~;zQ>_dZ#_CItcmhTk;47Vob$Sr|Lt+C*jKMC!b}18Vl*VySjRX`TJf!l@`$3N ze3ZBH53BFHopi-(WP9$!YTsi7qu<>>>i90<@VdhnO(Ab%er;V8>Or>N*JCa}=g(T)8hbq=5i% zTP$}KwoM#;zwY6e3vA(Mdf}nGg$+>S>cPb|3|xk;M8g(xc9Tic@b|$3ES?DAyl+?DnDH~IDRlU z@#V!_^?BWIwYIfxI)CS^2K2QV;(C<3Uc--7ePVZ1i-b?U@a@pm!q1ZMb=nV6 z7jC#7S?k-B@d6(Eli2*-bbn#mr^*Q1L$7R#V!6-E=H4GCramCLB8OU)+vndel%eqs zG!?7edo7?)uiw{_Tz#MTb5zWXr%&&C{2_axQN<|1QEfafTKrkgF1wEJI{bax>0OEP z@K%_tO$20}Z$`$i&AGNS8(pBtQc?7pJzv84kC6)QG<~hXk1t$LzRWR;DmZSa)?!GR z<@)T3$s@g$DekSKs-fe*zsaw>-;&VWDcp62&X&CyyTI_ICk&}se9{iHm|~r;HBU-F!P$Zdv2@}SBU9kIJKGl$V!|5;PT+&=uwiNhv?r)Ej zclS|@VK~=hsIS%VSn=zd&-4bWNmS@UIFA#I^UG%Y;|Ghuk;>?^=p?E9P*~ zNK}}a$o8;0dA`-G$YZz5roOnaqr_DMqx;nBX8egPruWiz?P}IV7oy685^-taah&#I z;4@Mo#ZR5wh}I%Ej$hU;dPIF(el+0PVXLZ%=SjskQ3^mUg%Omkw3na!{=$Zc&OZsW@Z`|d#gx@B&M*^TC=ApMG=;f!EuyU zfa54N1gGA0awe{784R(cMk^Dvp-nCP(KwVLneQr3r-81zzi*>*s3$~1YYlUVDZ;7Y z&^Uw8F%Tx1kc(n2$sp-SJQ6bITP0@_s5HQ>l~GXXIS)x!{YRvNUE$#@e1gQ*rc8dnbxt1!`caE=-jK%gfz z2Y?qGbcVHqb5v18G-#Zf0#bF>@?TKH0X7#vn!@N36st7~mL@T=Pm9n>&6cMr^`w(T zW{hCXfwtC@91_qVIb~&{@=a<%9o-pBrm(Qw^oh%}<>+mQO``(IpK84>Ny1T%_p{!=6ik zdpy}7%n6}dm_9rZOYY;jz^PueBQI96qd1;$m_lUJ% z@%%7ZXt;B>lEg5}$%E`EtpQv=awa+sVeUnM;-m)yeGGs)Ng#frfi|$?nzb@wamdLo zG)776iV&D|aBFGv?S?|WfJ4?7#VDBqC$}XkL>&dq6q&|!01-^91(lqiVQNSQ^=N%y zMahO`r6HY7bl?yPb6lyXST%!g1}8BFs^R+CU_LPrY%cjqko|m2HRwkcU z1^s2lKq;Ey+u*4j3PwX?z&b!ENT0C=PW)CXB?}E>atSz-E^nN3He=8<3QZA*I?6;E zw#L=fn#TE22B}#9!W02QuMl9I1KD*j7ARJu@kl5;vi;Zty`!GTcewiZEj1jjJAKLQ z8nIH27~g24@$BeB{vvhKavW7cdKSgZkKH{9Z+9-ujIP4yxyB{7Hfp!k)>CT}YvUhL zYpSW)^GlnnTheq}E?CxLosjdj19M4CF3$@Vk>;pTQhmROLN2@RN}2bxjTBp#gMS3V z<4Yedjo~S%hL#d^;G)C!fS8HB^&vG`KdR54*;j=OYl>G2H(4-5nkngjRN73*b=G2* zttz=}_0EAGqO}&8-|CgoVZGK&&cC}G8B!?;R8K$arDKZNiyCC&S~r?KISVN#;S-S2xx}bQTn8g6U{VUvp12T zhIUZEM-Z^|(MvEE7z`D1fkKPJhJ?6yfNN1;;^q;<<+gc)Q35Q25AG)zaw<(Dagn6S zA;8pv?3_&YNZF|;4|rhUuoA^mJfR{-StL~l3PvTNB5*Y0{D&C>_Ng(YO2GtXa5{b% z1vVs+_0kI9HjpW()r-eysS3Iw8ak;8KmbJ6QwiQH18z9bLIY$%i#%f7V5yO)**LUs zF%E%~p`igPTj-K%U5z#bcV>XiJPSWSP?Iy!6xGzGtkadW`sNsN8wjY(v|$JhmIr>Q ztFCC0H?1@TZgNP1bCgA9I0LwV6_zK3+RIx0AFT-1&(a} zo^*VOHK@$*RVk2(0b8BYNN{1qbiz^XWPn?PrjK&Th4L6RU~Y5H29l?LTb&421DxJ!1_oejoj}rSK>$Mr z;4@B852p-fNoWg1cQ-XUjb@TvO9mgQCcq!XrpIXY^=& z8qsNC!@l;Z$iNH^Lu5u}GKaw}h)%;+WJi8#B#b@*4x@8$H!1`vq!p;DW-%mDUMLR5 z1(s^9L!Z{l@;GeB%AiX)zS%e;EusOQndxA1)c0Q=4ckkW`m$z|)N82+Qs1P0N{zJD zgf=y-08JheD{w}B}*}^(MJKt zKXhy9wb*6;rPo`oSvdQ{6DcIc{}C**_D-pWF6l3XPFYWre<>yS%ol2&NjYiM)oR`t1_+eVJ-&kjSDkWugR1K#wb2!i+5 z1y!PW?Px~5exs17<0P|Od-Mpy{H&@=YSkgM9{T#}zmBY2{rnUm0uuOzmdcC(*u^S%>>{IF7?t5*4< z5_M5@tIunXtD)KDw$aezYro3KNd@iSqywwnUOu<%zLi_iRiWe0zZ$%-((~)u+dj*E zC2mR`hqZTq{PW))eBb6780`9c(cx=LNxi#MpOu+^kqX?Cp}Sv`elve^g!9;F2YcQHwM?vYI|N^S+d~YjACS91gSoGa*WxHfYY! zuvF9Vv_Ei*U9_Hct*cR2d$w)UT`d5BbJ* z6_q{rEemc5Jms;|!0%5`8kVp=XA%ZeowJcaWN%S3etdBCowM*;uA^5&Ntnq>i0$_C zcQ!gyzkg*yuMvwL^g&w#s&IFQcad_RSKyCae-wOYPx!!3*`tqo1g8X_4nfAdXccxF zykm47{j@7*dya%x98IEC=GSkz<1O2(sGBO~Y=z7Ak&(7IHo2?oRb!087u(ZH_mkj@ zZ(Xs^IDES=6@!ln#5>S6>rdtk)1deH8`9)7rcL<#iEkrUC{I<*Wt*Mv7QW!k*@?es zDs9|VE%A}%Rlz5wJCU~1$GV)&_Z)MF9SL6D|7%%YIb4Rn^QRxEiw+E|zgkt_-*kWx z)62mwLVqbo`AX*p+`8b#+Gra)5J)P+p3afG71W{I5sZ;{2@M=~lRjSPtJ^*N}fOUlyay#Ie77#yPAnI$LQ`Go^6@<7$m*(7`i6$3uE+m z+@6sSrD3}tC7rz?g13E5O2e&e*?+QP!Q_&KfG`oigEZy1c!Zmf)2O(?}4n-rt5F>A+}S zfYlVv!MvPF3oln7OF6|TE2|HsPwl5N+Y+B_L}qxk89Z;j-RdZQG0s|ib1Uz2U9I$& zjgM6}AoK_Bdq8bXe%DF#2iACH!)PuKX%C$SVGT0+MQKnIHD)YKy6tU)>G?iH#KYu8 z*x|5xZd3!t^VAz0{fkFQPn~(v7479YAjCLuVgD8P{Y&*1c+z{1E>#Q=BJkb!XIniF z;LjTMqeGCIWL>Pu27=P2qOfrtt zx%hf#` z{N*5Gy=RW!;2*#4L3BmfK#GFltkJn$e>4kJ)%QeYX~!Q$>6E3t_E532+{unId3Y?F z>-AH*`1F>1=g~^3R)KMHKrp4didn25=Fc?mJ=R7FeOe_tLVjeh@xiYB3;09TqTESS z#ZeA!hrM-LlG7kBde`&AS@@%jvHF=$aW|>+E zr#9>K{FbVq0tGDN6Ybr}kqD%A&Kh2odINl%{nlyk`5i-Cne@j0x4>4nS{ML}s2Ex)8Mvy9H**@)vy54t$;uHDmhM^Z2* zEyA|I*wk@?TdK!@=20=0`fh?gEohdKCWd^=+d-=AyWdLsZOfOd{B;%8n(pBhlw9Ri zUT5%QX!H0;j4@PCqrlwc7bp0R5p<0+ao?pITlMy_#X6kXYLd1RQe#~+F|9mHUG{B7 z81$^-;vpvd`>(L>bfX)oB`u1JD}B)IA5oZSbXT``n?DZ?8N z-JxK;vuJ4&!_`Z~ERt-ra+@zA?8y1o7YxPgY>9INbib7r9dl9j1PZt`HHa zCmEFCTq^kX0bb^}H!mgjb})Tru_7bM{Pc;B#8TOTL9N{+od$*1UP|&t7~AIH5uH$h zOd_Mg=y7gPc(P-1^3eH)?cee*bj37R9iHsAGe5~ktF~RgeXehzWvSTCW4Vyq zzqrWL#gtPOi!ytA*UO*5LxNu2IsiAtf3afqkb7}%r~*Gz)%U|-Vuzs>m4sc#XsjEzvTM-Ibs0LH|0qF-$YMu(&-?G=39 z#Lk`3_G%Abvi_Doe*T--2i{`vQXBg9({#AiahXNR+sr>lwKQ(vMJ9~Vn&0Y`NvWfP z<%h;kaxU7&y9Xg!R;-`H%%livH<3sV53(+5bp7ns8#KPV&y`b1^M=5N9rli#MC#{L zCuJRd^u7rm07zr>Q`yXvB~01P06ClCPx%hn6^Oh3*5~fHvk?4lSOi#FH_+2L zC+qMlNO7G^Q0qXWkxgQ-l5F^h&&{~gr*|D{+UQY)Ec`JYBggpfXfel*phB;jote3E zBb7WN8?{NPDY0vSGSHKD*i)#$Rq>d4Hu#iFLU(lryN?Zy&28G^RzCH1&|T$4wszcb z=}^@>*?DbQMl*1B0e6+wg=QpW$CGb|&_l**E6B(o{$; zSo!V-V`oa>IgvH&iqR#Lfz4&mw0PMB*j#ea%bG`!2|Y~3KEDD%*ru&#Gh!7=wp^a@ z;oTTf_so9|Al7ve>!G@LN3V$iXGTK{Hk2JPC@;gj1z#X|5R$n+GBJ$_3DB?-E$7 z<^t)=d`Rv2XtNwO=cMLVnmB`tUIHde^Ju)MW=;ao|ou zH@P_^yd_Bw85a2_F?R6V9jj=foUycpfis&;G68mr>O@J-{#c&t1;fM>w^X`gs3Z!xhShQsbp} z)#O0q_(sjcH<&5JzfB))hQ6m6LS0L4R&Hoi^IT47wWcI{La)kZq!XRRqWde~a!D6t zEcnNaY$l%2rG&`;)plb+r<}Nq4%N95OWzS zPe{_gz{Fl)OvmxN$S+%yW>2-ga)OB;bDs62+vQ{y{TFPfp|J|?Khd$dyoxET`+Ryu8>DHa? zTnyLPhi_}|E*qIu!&Ug+Soe46e$|L9Gj*CXwU@@cVgwN3p;7`FUjk+;NM1s{xhQh(du@yaaH4ZNf>o5$>ObdTx+8QBw@uG{X`R zV1H3;NUsICp`q4{te4picJtsU!&(~Pje%fYM>%8@2!lg~j10j57e zeHvhg6wz#C*uSAqQcE@%L-a61`;o*UKxRYs7m&aLAKL&tKd^a#p-6fas5n2TN(DHc z2GCh*YaCSwrW(az4v~0?1mi*)v+!;62g{}7Z3O&asDNk&2xgON$Q+N`QH%UX{h4WH za(I&{oSGrf&VwA*q>an%(#m8GF@<&F2(F_VeGr(ECU^_~9Lyv(f>U7Np#V<>+mrxS z%>19DGmmHbf8coarJRMirCb}E%`uXqgPb$h%(9VVHn}Pk-3L)-h}q^y%50cM%n?Op zS(&3Eib{!yP>wFTes90;pFO@k`n1nypGRKr*X#LYf~KIcERzT3-HbsRi%k%+;4lmU zU?nL+(9{OyT6sFqU$gyX#F}0Z4eearUpC!Bv#(C;4ekTH+TXxB}A@Eg5-kIWfiX*1$Ymjq3lbpv*v+> zR;B|Kx}&?14V)K-DgeI97>fjIBQ*?$#?pY8sS7#4L(PL2b%E|{hXf=vq*ah7p9q)_ zNIqCNvpoVTix{iTT{Q+PjR$NlT|{3{N9M78lh+$)1}g!mC6h#?IyLY-KtC4;lX-Sg zD$~%pvJeLdir^^_xOl(-6M@h^$1fRHujKrddgafw#4$q}xy6^&?T6$>fsy_;5CSy?sK>*Gs7RA#gnR)XpMbUo-=>oQr{e%o+=>xLKbT2{0XnFrY3XVfo}S zVcm%mGo{W#d_fhUjK07(0D%?X8VgC*0vt@NTYD^w!K}j?Vhp7u3P589>f5|X0HNjM zg?-1sE$cRwA%kivvIwTk6lvx`j6^5&z>VOHb$ehM>f$o<C~&JiA?j=Z6~%R9cr0kX zOdqhb5rSMaKtmjyqM!q?*dSAY$S?&@4@1JJivmI>z~TfLga4P%*&d(++())3XaL1! zz#Hiz;(+nV7Y7>WPGRwYkW9*#0i@a7l*mT+XdK-Ge-o6S={TM{nf_eOO7KJ~q$sFZc&Q@$8dvv6;7tz2DZUHHRt566skoBI)y8HdZoW8XN=E6 z-aMfHlD3e0fB4+|r?DejcABFk+Fe}qW6B2i-_Yq7AIuLm*HZo7`qU27#_v3J>)@R! z-*^7KNl7Sek|33_A}XNU#mc`u+R}2f?X<;( z&FjjYj<|VjNz#A0v(4a6?7KZJ%`T?eAJBWNq3?*MF ztAx8rrCt*4)43H;smE7DgWr-E>Tk6_FBCoh<}7}~(v*SzlbX?YoMvD3LoNfQdmL)A zEFk9s-%(SKKO1W}((7R1@h zl)xcf1HYDQtwX(-LaonHaWAIW1A(_aIxQ2jpCWyRPOI!Cr?(!kRw(|#dz_tCUUzC~ zz{mvK9_Dc2%0W{L<&qfzb$3?AV=rk(=@WWx`*wtuytwW7nL4DlZE5p|{xZh*t2R!l zuHBa!m6&QzYD;Rm8-jAVHSiMth$Hz*>r7%)rE4C0vf4BEFE`d~+wwwlN)7&=c0$Oj zgBjg2re3{gO7eoXUt+z&#Q0H;z{w@d=x}`nqIbvRnmcxfpXxe6tU32;2Sh(5Pm?S+ zo9IVV16g}0(`)_T($3y0IB0j$_ju>s+%=k9#s7Ejn1uuH0+d1%)F*=qHKN0 zYxdF##rsA!n^Pdq3a+bGx?zN}_Nhr;PfjGi_tlcZJgq!g1`@QDZLG1Rw3*@3Lr*__ zQW*_8`gVP1aa>T3D3#y44|%Yc|C=&ZrsnZ>mi=*s)lDpD@}0|*lD_`JE5WUinNlh1 z6EWZxiQxE&f>Qah`*+n6rV1Vw3ctD*vLZ`_E&25Z3xS8TAhT)xs`_7@&iULMTW5G_9mmDHY78fJ{C49mxMiQ~hNBQ=CE5Gk zg|vWj_gv>&6(c@_+lE|i+sho&pQ;$BH96EZl4KsEZe5bk$(YnS!j6t$H*lY1c~2LO z&D(^Ub-|x)E%U8}#fpR>rUz3FuM=LpJNYLMi`aW0h$t@ckn@CZw$4_`y+d&k^ih|O zz7W4je12tT^;uJ+54VgY_KS10rUdMhH*c!%@4?8j{SMvr>6@XJEA8;sa-3C>}$NceLjL_66E2pD}>>2i7j^L@RbnI=Hh&jynS6`szl&Hd_ zrJLVozS4hQV_nU!OpeDOgw?I*LN=NQOs2_JzqUxuOMD(E)d$@j>C51~emc?>mRYgS zcDUeZx9uUi-GRESOO-cb7tWj!gegZ)nhuT}+)bU{h0~+DKAwY*{|o8H&8dn<+5659 znKTbC#+K-jt5-^K8dBpM+Sh6ue@G3i(QTtx>E7UFH+H_T(GS7emw&TcshrwJen)o` zp4UIxGWLvrs$ra&u;oiB+Fbi7Z;LI12J9<4CJ0qLJDt4n%rwrM2mGW`t?<3Yhx8E? zt&i)BK``WwOv~FL!ajk@45hAl=aW-CkTEUTsK^ht+XWKcWoOMk0i5 zZa&I;RZTi7)cW)zm-QWV+>-)C6EsOb`JvYQ*4JyB@BLZ3x3v{7_*wQM&HkO<9qUhL z7xmxdneCpNw3vE!{vhL;@i;Qz@qC>?Gm_tWXuXNw(%Cm5eM&7a-kJD1=ha87$l)Vw zmG&6SY{|^e$$naOE${A?Ul8)$`P-CVWy*v0az3V^WA~%?P`sRNMCXD0y0mXGe8#`M z-P%oRDE4)K;>s!S3vF%{XO$-osSPw%(-T1q%Zm{A|TcH8jG zlY$8#^0>hI?ICx`+-GZS^?RhHQn=13X4hZ0mrCYP`U_rcp-{DB@g{8Kg`8?fV9u4{ zUkkKiIU88YhN1Y=Lr&h#f112ppKofy$2RC)DfZdQ+NFHaN>pB?w4XYoU-zAg&v_g1 zgO5B_o;po3er`LkG9jz&7Pew-dP(L-Qfz=xuZ_J4f@oxbtq?lt9DXSq?fNFQE;pg6 zV!vy~55$y5>x`SgW$*XK>8)p1+7x%I1Sw<3Z{v;K=633zGW9X@B&^rLv!7kG-(wh2 z^NyXQ-0@U*kIOa37_Ym}cN;qf)SYm;V@V_PbYBrT(<^z#cZ@}*tZt1%OXTm#;hDVF zN1F!ET#FueoZYE6wK#CIEc&{0dS~_Y{vp**6Kmr!c_nc3gH_MaFEx4$F=B3*l?>mS zc7Rf^^!xNS!zU_Jqg5lFH;>M)gYQVV+_J0Oy80CT)-!QeHm%6dV8YF`rSbH`-A~VC zEYh#q##zi>vi5B76`{AHgRVL7u8XKmd`16nnI_8()22cLgT&$E{8D|}<}P&LgliA? z_$g~@RP&Xwe;Bt}E6UjvX6;u{AdJAUR7(#esbt;diKYbdJ^_7as(cdPJQLn#?pPT2 zzY_Q{u;G=!rLTtp3u`ajpGa6f=lc8H`2~1|PGXAvWQ_Ul?25~I6z`b)l%q`g7~iODpn?`hoGIIQG5UyrLwiY-GU2F*bA(_C z+&G=}z6PnP0@Vy1M9vcGO)fvVQX2f_Gx`02o|A%`Iimhv80yuwC2RjEc?&G7Y*%K2GUZy0tkbIOU(-bP)S$;Ff5go7S#5Ovj-! z{2d-uJbkCS+NP5Hwm@R`3kR{-|I84pUV5pmeTH=nf8c<-Q4gG|(c-k?=9QPDWGvb^ zq^oX?L0n#cW~fV zPFa>D@)@~Zl66Be@~0lxEJazC3`U5wIBoUv@3D`Yb~oilRR5{ioG<)F+aM#@S1yB8w9B(c@Gzjl1@^#1v_>grBL@{ShYw zp}~GlS%|&LQei6sKU0%{-d2;pKT^W&CifzXu>P@su3y>o2A4k4D~I1VJEtsi<}_9b zciFnmQ$`xIl)9YK&+&Ke2=FPc8GQ6JI?WEfJyA`$NKOO#6m{RZ=fnAC=M(g_L(lod zExIuyFas3D0j`YfuOxD+x19NszX5rxQFi3k%@khhnIY#_*^jnGDccK|#xuL{yUxvV zs#Ujyx$k!KvoV%?4k;6@gH_1CJy})PfYq#SedCP#^s{&S>E*Y1Z}=F+so1iHqL~Nh zDt6TB9qn+!?Ed<9_Nd3vS30s;K8-gXEfYiu1#VS%H@YP(AhCT}j*b{9pEueZn%W`Md!EByKbL-j-Uk9YCZ}F)z7Ky%O%hT_RfP7oA(^_s8pHYFBfg5Wa;()l) zR!Dr3sK4-SdMkB4%@}!voO|!{(2CEC6~v#j8mff@pQOh#wG|+7!th;L#`a1J@frRZ zdma?CM3$ z>vvO%cD=P{vfs@f|M5iW!4DgE0p z$Q#G5n6CYV$N1BYSg(guCwE~Dx4E_YPnSO@*e`4><9}PUlpo96cC&s`cJK;ZfyWT3=XTK=Unl&3=8t;|KLIz`bz}}6bb^w_@ZUD3;k)8-J z55?he9ilNRa5M8jlHrR3-VGdwfyd%N8pmWINVq<0KCaso0(UE@Wb2WpML{t%|BGFSLT_CAq39`x^h(?M@M1RCh2$a#~%tE|a zwF$YHf^>r+iGi59<3J>YuHpfY5TJfK17;?|twSgTULKZuDy6ak&l$4>ki0N3>xCk4 zE)YNg1SX5fLZE2TBp9kGXK?yEGfD6$A{itVE^eS+1YiVg5}w@!3f4Qt`MLB8~D+fAZ&VjJkB5JidNmvP#T9)fJ(6rLc!r6%0i*s ziUOJ&1bix$0(hB~%>s~qfr2X$Cjcqd04Q!MXGj2i6O59<_#e*>A_W203XG0IaK%&) zOw~;%ilG{d4^-WN!+>M15&&h$fYLxqmqY?_2}fy!!w?>-A~b070fCKXISRO;JH%q3xG4xSl+^^Gu(cNiT1CPa z8m_Z81mbd$bwFhykj{gUs?jMdPH52#mh7Ofo2n@VEIEL5NMq76KuC)Q?rb_sO=Hzj zEz<`yL7CuB57;N4+RdPn7Z*;VIRk7S!rzHZb?jcPdb(5kd8;#V5M*ZnRs4Hx7|J)A zN6VLbcF9On)k2A4C>19x@KY6y^@Avx#w{pUW^@8iyO>V}p&Y;*a6rBV%>$ra1h_LG zvZgx$geZ|{styb`1p-fHI-SJhF+u^`70czBA{c{eVETy?v!JGO zgDB@JQ-nW@-a!EX(o0}N9@>EQ1QwlrQtx9>$mSwIag?}&8wvbRW+V^yw2p3nq^Fcc zkQt5y{#(tDB86SFl+l6)5-8JQ`B795Mi;n%)jt(O1md4OSuwD!H@HAj0N%GB#OefP znx>})5Iac-=8)9^J0N~aEWulVA4TT5GXggZ4X9@EiT&>95leG5@I7951QwS`2g z2i_1)XHcEH+O<$&T7Z}f{5#!HZU-SyTSt0UPy+Z5Jnf@rB@^M`iEY z)w~em?)LBL8ijvz|Jwcu8~FA#bDPtb*U)>SWuuA4tePyN9Z87~9aYT)(Y3DO2fb+4 zwxU-ix1ByhR-FEXKe-d@Na3J8M3s7dWNt{L(<#W^yxeV^yz>N|AS5q1BOk4o_^XTp_h-ZaM$Z{kD2* zbBNS;wB_uBYn;c)Cte#aB)UPaSiWmNS^r-*9}#%@x0fVJ2?vAkUpQ=ib>hQkyBhq? zVxIn=%e6`e+R}PwgW99SQBK+2T_rLd*S3EedLweYA9;822P54uT74`4|0>U66H|^I z>ALqyyyK^0uY2Q-!v~#XZ*Ehhf4sB5ap{^}3T;P)OM2T$5S47-i7Rs4Nu|C!P*)NC zS{Q9Dy%My5^EL1faACdI*s6)nY3{7gsxNLh2KP^TWIdnFz5*vSy)s#u)EAf25|Yl` ze!u*y=oI5AOarh$l#$`D2;8IC1T`H9rH-(3l?kPQs!C4urOpz;+%p?+r8XGlHNAP)##s3h*Xsn<+WSxC4N(sZu>-+ zP1#xER7R~Fsi2B3h(!)J!_Q|N?3dkD8T->nO!8X1rN!=1OG?u2Yx^e{tV0i9dNn!g zli}5XG*==oM`HEQ<-Fh-|K>C-t}VO^OGM>zp4pyxg-eC>h(CZeg0!`}I^rz_To<^g2WD6>v#? zr%apwT$l~|vESowkQ1-y?K8DCyLFHCyx%upJUth^PjBH|f33ZJ^z^mSi>dqSjO4Xz z0tn@o`EPknKje{d!aP0R&jiX&b-0$m-XwMI$%Oay3hCq&g`RZhnpeWQQ6&XAqnPEb zdX)*Ge})=m?l?Rxx-Vy_l=)-fu3y`?P$=yuIez7d z4)9;@PlC@67#i**o;zLp*jMvYSl$!~vg@d9vTa=Px2S8PMqO;It8{`GDP9?BI%3sF zi$4@08hVux*E-EblVx7+jIE4UTvr^u`T6{fKT2*}ZuVwMLH z=g(A48^e{Fm4WbFubD@0vV(6tLph$9uiKuLkTvP_A$3zu;z9PWzZ;T?0pJKYIjr=E?0Z?Emd41N0{oc&OEtutU|4pTk7(Q0RrKetg^D`{l`;!yH@=SC;b zchD^zTWEI(r!Nc;*Sz1fev&2IVdB3-F{siSuIaale)ve`gRga7X-~H(eC&f(i}vqS z)Yl`w*Y2n{^F34YF+biilO{bSa}gTz?8jNFV?ocah>l-)^qzAJ8cuys9cQC5<4?|} z55}6e#7Frmt3{ZksIFBlvoacVO-R4|LE+leu7Uef5k`5NW(Q;bz3MB^-tWfxH%0oj zk3&5;f6wP|Yj8sS))IebgS!vD>HQaW;*=Tvz~cw&UG;wdM_*^Pm&Cs~u7r|yTtjfO zkj|;pFm+LClXrOJQ)8rc#CGbB9P`T2fTmPAU;Mi~?yco$`R#{8WrRelt#ZCb*1*fE zqigiFCNwWL3R!4-n9DkKT4k%O)9KE(YC}qd%jWOKDd{aZu4)is>dfCQ4;`VOFO6hv zsodZ5FL8O9FH_p8@cfObY8}dMJ4}8ZJ6lrY>#+N`LTEZs-Cb7NWU0+BVuNYR=Gm_1 z=f>yy>PkMijVCKIY%DDttsFjx;B;PUf9}E$2&RE>tw@@ST`%QhenZ4P^iVp_M6He- zIe6x5SrwW%+7%)^U^+W_ZyosHXVd$F(SlDEn&hO;@#(U z@3`kR;!e1`CpNyP_x7J!!rPn0dP!()JWIZh1#&pz{)}n4b4W@5*O|P7$5dnwDjzv_ z`uQ!pHY+93ps#wv)a9VAzuQJI^3Uet*B*{sHsXdTB`4@SQKgqkP$|)RI|a8XW`mQ9 z3(d*H+x;Zh1gJ9fOwDc?@oQVsOrq?DxAw4*(o}!ux)*sHgHG(d7k{Bq<^9|JuX47% z{i@X9bdRjMD>h!n0&#or+X;-5tYkxYX{PLmVb6kW+k2hFzZQBdISnPLg~PZaX{n*6 z=1X7f5Y+SQOC&Iv!_nMr>$kk=e)w3n5WgaIeS>WPjk3_%%lhQ`&N`cb_G7ZoMm zzP0`9_OPy?j4xcr-A@z87i4LiK?FUvlL{2=9kYrGGrPFYtdTg`F!;-bA!DgGVGl(_ zH|Y!yRe+ z$fh#c@oG;O2?6dqwsS(+4Z3Fj&dV>1_2eS3Rk+(tEAfCS=`r*g^RvP{&NE6<$J9 zeLUEbUdYVND(^jl*J7#97CwPyNOgOkety#pzj;<>;v6~tXah_vNKw9VeaZjY(XBqk zE5&hNLv)1wke+uNol7n2Jv<6)y7FCWQTO?!+zE} z0kS1&v5!2L(zZuyVXUxc?`}#xGFa&-4%I(8sSvN(B>f>HI!k1JRW;r6jnOYz5yH}Q zH_|DuS_^GzHR>7|74qU)z7ve}Euc7HLSA|J3OQYB>t=K-^$5FYcJ9C1g@|KC9Zw4Q z{Vm6K7Y=;<>)2b~ewS;eta5{IY*Q;al3KC&yjgE{JS8Ws4UdZtro#1~P#;uYaE-eb z=h#ZS`ys{Y@z}=YgmUhVL0&nqE=uOyOt;Sl_`b?*cfM95komBLViuYR9nD;$@qew+j zkXJYN_p4YIj8^}%-5A}5;2mEiJ5p{NM4;6=whb7mj132mo17l_*I`vuW1wWnRSE4! z3fC>_U9Vd1i!#?<`ei(p-mB4D2048>CJj-JAF6>hk`L}p9?jpJYpEH+d3F9oF=knI zrP`;oSY4+T){rct^~P@7^sY`j`v?g8RhH~fR%Sq++C4sdAWyaC1n;(}_9re*(bUG~ zJ4!B7=dR~AU8N5|Y4Ll7FHIN1`q5pn?dv#!Z)UqTycqbI>L84dcksMhT(wJj1Ld7; zT@KN>v;TJF-5>HMg19E~B}uOwB6(f0L`u-QMTIw3-uXeYPu5&d@WdWeljFuR~YTuVQ8fyRLi2Z;9T2blZn#xQQ(fm|-7dGVeDkcA}IP~^swgV=w?SfC1s}oCe<_~`-6?*Yjus3_b223OOTF2iWdpkgGetmCw=t@oJlxz z<&?jALo@y(cbc*%Y~b3@_dbHqEO^@PvrOL2l07VX;CxMX&YCsqE&6L#gD%HNtU$!G#4})of%u2do2jqLDDn0 zWFb!k2%21gW2Ay)Ez$*!1N}`vedO_g?pmD(A{xth;IxSpfbc*}$U`s%0QCqn1w}!D z*J|ku#F{V!FcRV3Yv#1u>!&%9fl>whE-Ehr2uS7~Qs#?@7#8>epUs22gCK+lB*(zn zlaWf{)}g`fnj%~^!pC^X06ljUJ_uXI27pG(ger+eg9|WjE8oa8SI+1P!UCBwjFzh@ z@I--M1&vWRF{LjWSeE+PLMB@f#0Mo|HK&h^VM_!WY(+m~@r;tdKZK%#B1Q{ZTAb>*vc7Qd>Q^vvzlG>*Q zP_*D90f16a>SS_O{XY^-FHpcW^JfDq57HBmKS2PUO34KDP;LVoKv}mrv)MrK4M~Z& z1_Gc)I6Ml2%K$MnrJ#=J9u*bPZ0O7f%}mg%?5YH$$Oh0wtOAWYcM8BjuC^k>0z{mC9M8PeJVXMqY&@iUcaU>TFSuU7&!&Blw`?3lNEMLkDVC3l% z&1V9U6O|48RP)7#P!7n-F~G#W>LTZ>gJ7^O%2JC&wC2Z?OsbU?rSX^8w3o zAs#?f&Z|QCVg;V7m1Hb9T!4b8lFdVU!f|2|g&*yK1fjZs=NRP-Xu*Kn$>0F4E>_qV z6^&tI`QWsMZRU>@6f^)2SOYdFAQQ;u0kpTE*~LAB+~?~XSpW+~HYbda>d2z-2zQmAXHMGGjQHtYo186pMwj&6jhECW=Dd7vCwmw*9fb297HC)k7TzGh2PjlQn~c9iU&`XVD-ec>v*55DX~hO@#dvz~&&27U-^KnW{n9 ze}Dh|TmxBSwZ?3X;=dmaTx#6r$9Adt-6@rbs=>%~8(T{=+{hRF&~3MS^)fyaF}-tM zr+xKrdC2Bwd_Ht|ZvQmw-;Hf*dRk|pZ+jODf+lMgx7Fj89!_@~$f7<*;h{l3C)O`0-blq_-(9ectvFw$p+*Gx1USL|8~l zPsgQ$K~MKGGrqW_B;304Wz;NgW&eABlbyj9nw$0DkL}m%9!u^K=j2UBR=O`r+l7&> z(zcindL(WAXjBN#8Z}OB@cieMDwTN<>z-ye_1cXpKRdmT1DEkRff9~yE!xAM7Ga*Nnra@@rwZ#oj|+!7yw zrIwGVl}!-({T}|3oAJuYGnKYh$hj8N_SXI}hd0%OQoQYX?3g&FxBD}`20k4c5;*aP z@90!*dU08%{{YwY7bQjf$z5$_D4D0}-Y8+gXXGSb525Yx&&%X=tlwlDNjV^ElH1dz ze9yH)<9)lAnhcY0#6ioKQJD82K<%;6z52f^UvvK&YRH>hi0(|wDLv5x@~WXbbwct1drNAPiTG#xJK}j-;ZRZ+8ArtWD1V*$IElV- zF^Wrk?&xWE>e;>)>4(k}p?t;0xI=;RIkPtPH+}!rh;EK<4EIq zeh`uIicz1e?^3H5cITph=aI0%-WjY*amGo0#3#=FZda_+B+CeXrgdRU)~l;0-pe0v zu))4dq)S0QKcKR|Nz%pZWA&-wx|{8p*xFAg(HAvymC7F;-^Zvjc^Ok=cxIep;gM{u z^yOTqar;i6l=VhcuDXj(@22)EwCxVYAgCAb>)hJyZkOh!WHCgu_!p^gYs;5=8vh=n27W>QkgiX`HN4AkEVy9-|k;^tcY?Uu}YOa4g z_h`o_*L%XD%N@~S{UjaJZDRrdnOl5kbjeJ)`Ie;aRE;?wv~q@TeouL`@OSR380cY- zH;?Y*)1LIDZ^9Ko3|=-rtd9Aegnv!!Qi;h+|BUbsQ3fD%lg&XdBa_bl{;PIl8c^&Lqeccj#0-?1lmG{h_2+oG91dov|N)fe{X5x#3$7^o%SEEPdo|th%+ho==iFjzv2(1rz7syw*zHyaUC+f4D7@EyAKD1)*j#azUay`OQ$`%A*>1)c}^1y54)8>`jE1{-~58Os$i0V2vn{Xy)3!+FOX4XOXd4;sDQ zSLFI_VAdSYy}c;$(f2Zak8^OabrJTNCK{bN96&Cu?-kxNQHoQ3MRLA6F+Fu{R%@5% zsmic(+|MB>@8lny(J)SbLfLxW{Ro%Qe@xG^>S*|jjjj{@87sRw4FmIc-*B&kKe33l z$on(rA4C6dhoY)sjx*tL#XA{R%~N5Q{AG8)g|S~F03*vI_Y51FF4NBq$e%qHV7PeU z&aTH%&)R;6ZS@oE-ahuk*R(Mi@;zfqUbnGHjQ>P00 zzdfRj7vJCVO1)iNZYUA(VnDD)+A@$no)hD`K!;?CT`oq4<{d4pT-@ztLVTA#^LYoo>K&f>Uvu;4sNrakcJ}V&h-~B9ns7Ub zV}HYaLJVvFMyn5SsT6DBOVFOzC%Ts=>hqElCn0k>H zYnOM9<*e5rM`sed;r4(-{>c^!10@T%j@OSd%j>8(6d z(uzVU#CG;#OqH3EnXxl{_}=a_ZCVx9=10Sx$URrl`W<9|W0nq1oV>=)h@|y@^*nXp zOg2Y3xM0p;aooLsGQz<3{-!7TjhAFM-#+O#@mq4#;~@D>H?h4LyKrSz8t zH>(UvF|$PJFFO18R&_>grtLoz)h9gW*wOIBC$_*ja05SUOKfA_=WBXa5hqW!$s*-3 zV#D(sl)ZIqLlgHt(&5KcSC;p=4t_*fjH? zV3%?^1;@yE{p>O36JJCoPeNG|$AyqKLs}Uv z)K6^XYZ7NW&t7A&p2@EtM|U64W>nbiXk4nTC?d!`QMH(*WP48@{tdTt#`G?FMO3`h z_E}clcN>9@_|*gPRoM1#DC?xcNTsPDar$_cZ5H9{BNvq6{6T?8U-tubL7i?QPR7?3q_`4~f@bG}~dJ{yC-3 z0snq7u396{z3XJ@PAj>tlc8of3;ntVc$Jht ztM}9V$o}Kcl8V!7&Pc5*>3VDjnJXU(T-X^iX#STT*>B@;Lfq zpo;6c^;s=Y=g)-gBJSV9(gQgh3iKDX9`ZM=*K+u0^@TpekZ8n2f>gOr$!VSaZ}q+@ zkDXSzb1$~O=VfYYPL<~!&-LvRo|EG5bN0KK7qzE;oEGo2G`UgRn=H;%7%7`GlpJy0 zks6>EaZwc2_u@o5Up-}3HCqoeXnHhc`|*D@=|#Duv${K2dF6J<-z;^nOq###!NxK6 z%niBD2RGVwnH+=PJK3Y>U~o-g(&tXsCf1vtzQ-=P_yz6a@O#JQl)SljYL?m4d7j@M z1Yh_-TUm!q?2H)5boa*o;RUL+DQ)?ES(NzI?V+zeRLOQ)Vf0yMxnY?>fO)y|NZ+H!-$gtOFaU?7?2R-EkM(W=S-$@EL`vq3=@P_V2=w1 ze?W_3C?{rvULmfZg=CgP^PIV0@7Imb2fN;dXuuT&Ek{6P19Q$O%YaN!wLu3IB0&a% zWkE2EuoHmq=79ovmIu)TfnSw7^T2472nv4oGMWSg2?p?n93qtpT03AZi|_~Hb8{)O zi+cNdm9SVC$n=y``z+BcgRw3#MKlT`I=ZPWlMm%p1vJ;iTQoOE;Sv(0 zap@fcVAKs7gGCwLYBbQ;!?-h8OcvewraTBFBb!0Js2t@1$AESvSo{jd&_SyKDN_jg zVW5%-PqhSS%7S9haSURlcQzE7G}KY*6bK}&Kh%g!1fV=BnFzwgbg%{W@W2-|k}ab_ zQVL{Ppt6PoHM#-LplTru4rY#gD#jnvMFYVaXc2;>RUHgM=|(`Yf`UgD#uWtwk%+i{ z0dR^KP%*x~n!agcaeAS?DWL5KgpwS~6GbG@Ypl~Wmd!;21vyA`VC*{ZR|HuQ05tM3 zOd$wYpkfw_1?AB(C?v~-kL&XF^#FLyXCRy+AxJC;=)bwHTMzn|2GLbr>0Qj52pDMW zfz`4Ii{&=Loq@V06>K@Nl_a2uaR#9b6GS-(F%#^KxkAv}>k?_Ecl1RCfR0#aA()zj zNRk9I0a@5SwTx~CNX7c7d@wi#wYWxLcGgfsvJKTh00YLe&LYc5A?SPh!^||`%YP&=WaxHGV|0$RM7vUr*@@&;B>FH z%)sndKkYp*!5@IoXrLl#Bo?r-Y=NM;dR3Sc5JUvD(Aq)(_~hluasYf36$Z$rUb3LI zOGWbiSHE7AmMBYP5i^J@>=!ARsyBnK8_YeeQlOuai#Buu!(1RZ2T%NmJSZz&qUpls zRl(Rnfv}`D&@2;B+nNI(pLr#MBumpEO3GFG}PIgt}rbU@N|K~raK*&#i49ElomO#H6Tu1=^aAy1bE7F(MSQ72fpLr7-9hAwAeCP zQGAreY92;86<30T=IT6MBkGefmN%$m|Q zsUSDZ{de+Tc0*ZXa?zD5e(ws%S`l?G88XAIvlovRgd@&N@lB=^CYu}|k)MTS91%AMdQuY{rO%W;mu*GTRI zUvsXlsqRy_QlJ0lTc2+2-t(Po-=c&nm+tYid&|JG7L$u*MIMS;FZrX%sWkniljYHo zRP6 z-KlnBOW}YR*>I$)9(}z4@(^_buF~TSwDl=;XOpT!37XSDLkrz8(K&(%h4q73f{4ZRl35QQM zc75Iu@@y`t>Tv9<&bv|N z;oH8q+hnAeS0Oq0@3n^|k%bcwzM}l+vq!}~~quVs_CI!FJa8zU%Nz4qbB z4{=!Q;WVoiWb4m+uAcsnA1i!XFl#GMDVCe?i@b2nS34;L-GnMnM3-u(NblAR?K|$} zGl{*wp=)F1u+4`FDY2~Z$TuVwqttWhZS(!z{<~wRL%p~BUHt6;OEeru&rKLS?A-LE ztRr1emLhk%gkkGqSKV8>iAN-;48DC`kM*?kzTCZTq$Ap);(b8w)}6-g2PLy^=e&5# zYcghSL8o#uj*Ue5c!!n18EQ2PLdxTJntJ-Gs+yvG=~)}ZF~xup4K_FW${Hb)UZa_XmQkR)*TNB%#jaQqUvCXBjc z$_SQq7HP$@ieW^H|3*ndq>jAWc$|M~YfFFDB!p-8V5&vklzcokW7$So+dIzrTbHuz zzpG{2_2Ij3X7cP>Cv%%q$BB~`1RgOYot>$RvfEX-OpCD$z59yPQehf%m_?J-imHNj z=-TP~1<8hJY}QhOj8^UW^!eM_POorZ15yO&{t7w=P9r-a6D{Kf!;rsG+s)SNRLX7b zqaXc-tD0N-+Lu@3SQ=XC9M(ocy{^>RTis6Db#?;M(ouf+`6Cx|6KxsU&-#w+=JV62 z`K6iV%w0c}{nO6u-0e5i)xkKZ2cN!Zu+6B;>XE@7Z)^3jG>g*frs*~#Lxuk;|8UAA zmACHtv900)ZgOXIZuSpc&QH58+)oGp@G&e6G+P=rm+Mip3rV)8N*U#Du?w-n^<1}q z<(^xG4|@@L^OO&y+NC7{LvZsdIlbii%RSCnCHpK>)MxJaE#?jZ& zw&(|*h6Vpk=56XT&N``{!mu78&E^uG**<*)xAE8Y4xBgDW;)et*Y2yH(=mzi57rbk zEiZMn@7Zj^^v!^4Q^&1-*vL;>2#;+`%FFX79=?mSDUEtA!C1sA4V+rs_H^B(`nb_$ zx`~D3n1*rd|2R7Dc&h%#kALb*AESY5D_QsAUh~?tZ1-N|Ue~zS$htNmN<%}|wcTYa z+$-01L#XsguDC{aW1hU+S~ioK4j%+{P&EPxI1>t6fu?V206tWJZAf0y6Mo*lNR18 zR)wz(+TnJZvG}#Svqqa+@T$VkDXmK#$|}YQc0+UG>S}g#5P@Ou&AU(Q??u$7;BTMz zVHUG$yuY27be)8jJYOx42uSyTsq5M}tYDq_OW}mg%)-fUd*fCrB#K^to)$0V#)_kf zmFFsiID^mNNr_13qZiyi-~M(}JEJ!(C(P=h+}Y~J=i{A`SB6elBqmvJ6f~&?J~l5? zVXc;7j;k3M(Pde-J2n4_Uh=zQSs$#Meq^ttCw6A6r})Y8&pS(>RYC?QOiU1s*$S)Q zv`h+(IzA5!k|G&n;&v;(o6nF%v}v31N5`bL*#5N-p2;m7Q_9N^pc@-eGQSdBkV?Fu zzE|B(+ydBqVyw8)pj>)uPXX8$;5E7aBZpWZL zOQ`0~S5%<~-lNo{p4Oap?cW!FjNlpPUVmE45n!5}Dqhq1OjP-EF=5eM=ZrFElG{>s zi{t2$cBQ4i?(GQ5VegZYkD0$eJ)y`yN#446>3ILkNZn1DZ3^1`j4d8lho(OwyDw($ z74W}!_`LYlGfaj6Q(f&@Ooo=z$4aher?j!sv&O?rKkvjstxa;(6gKBIoSQc8tPZr7^MDO%DEjAd~=(e9JG zNy8r21);;FBX;dkDL1D28(W9g(w!u2`lYSe$JDA_+v~b3uky1V`aTx=5&$o_jg3*B zwHGo@N}p3%Dmt?}rb*QIRJ(q6XZf^Cn&*b3m49@|M^~-yB{u~fGa!zd?I+MBedQlYRs#nqWS+OA4!b=g` zBa;rf<5C}Wd%Y#R{2nT4y$~lcUGsXI{LP{05z&W4jd(YR36iFW);-7&e}6n~9(w4s zS#ECq)(NGj`dW^?kZlO`PF!5;GJE|5j*(R*@}Ji~kAH8@HQYNRP#o1TJ0>E1p1Ku1 zwh3W$roB9KNSTXL3chdwu^CW0U}xm1D0*2&L9rl9r8Zbs0-{*$VX-eoz*%meocyHR zPmy{D+822F;570)xklq!fz#C;`{z$9#Le1W9M+mD{x}6W5;PaqMNPx^=_x_4_mf8Z zB?n}3Kb__)`{uo!keMc-pxf`E?fSEGy6MRf@0pR`>&Lbsc|kVCpYGzskXnyl|UZWGySF*F#POTwjj_g;1rpu0*|Daca~0-Z0TH;C%;; zQq+tk#Bv`G5M@jw+ncw)VHaAN0^*i)dHf@#!Id0qk)UyYySBN#*23}K-)&iEs`0BE z6h+RmTuhME*(TPWDXpmOcXY95iy?snp}XFG$*J*bRXdZfI={G#v{ME68T#(jl}Dov zxxQ$cNaw=Cp!&4IqKD_bThE@B~KS{KN zzK$~+^TQsA7Q`)T+%sxNL?`q+9DW)U7hIn>v2*v+&Ec{6?GC?egLx65lBHu&gv zT3qvGY^xlmrSr^Qs^_bszDH3Q;h$AYr7-84$`t>G=s4%lFzsV%CLNR8HP~NfLM~St z*ZsTHet+KdA3FF&QbOl(wg>Vi@(tQ~W0zR+b;<7jH~aSvSXyp$`9)+{W|n+=*#jYC z_g%;Pt-()x6QQ*NgwMRa{10{C!YgzVp8q`glTY9%pz{YjRvQYlVjnHnujMw;=*_MY z7d&nAu727qxSL&240FjAzC9#P`rhPBL2QrxBxy7xuYdi*yi#j{UJut^)-Z20rR5B0 zL!0laHq6J@Sl?m@573Jaq)o_$hC|~Y%e3CVw(ZHQZi(ysRzz493^nIyPD$V&*Zv;q zY{)TwQp^(mSY-Gizo|Rstd{Bv`+TdAptueAho~Edb+)ln>jn2rGvjG>S>}YH`MHRl z+Sp>&QTr zd`w=ezLU#sJ&!SBQ)ZVAi?%}|?#Kv>oZS7|VfYUL_{+33Kr^)fkWltOTW1dvKfh4i zSkD9t2bPoDi$uU(V4jS-4c;DLI>>UJHc@g740Qj1y-=f|1qO1e0vp^4nFVkt83LH1 zh_XS5(k1a7A%1@&I*5co_g^_-yFJ<+54bom4PK~WgG%F(L9nyT@in%Qpu;q(G-}jZ zEu_5xRESEafG*#tG+=bvK_a*0x3olpgZu}`z*seePy_@cjK^1l!EjhQ8{k>x(hoo> zaui7*y0@^@;cTZOO&8$0)6^)!6WoEi5P@S-D3k_%=oYJFce3JW5A6y3;4>4u29`mHbhJV#8=uuq&t+xV%udhV6NcE2e`Kbcm<}?Z#5c6t{_!_L26KTWLtA} zqr-3&Apu;9P6_evbh1+s4Cbndvq8Y^@ixMVBq%Ts0@EOm3#Onc_J4688iPa7@C4pR zD4oIvliC_Jnu1_ALsteAV>Lmpk;e1OR8Jz2G)X#H5G^hHx(CWCJRV5h)WHG{6$)03 zb-^0^NFn(8Ae#k&mUK}w5{%L7WIFRn*STWA061uvhF~xt$R($9M?v60QU?Y^YzUf% zkzinOpzv*v0Ymcbe}mx=q^lNCUJCRTB8fz0YbKDik-CFhz(_JAgN_@31IARJjZn85 z$fXt0uex%rs|!&r<8~jje75@=8euDA=%JTLXHE#sDqt8W=_k0C<`J!2%9S zV8{doa*&RwgP9djz8)iKY1nhX%S$BSaiBmCRReS!a9!$#;8IwAgg6vFej6wh*P)jR4UrGuHKnY;1z8{3+Kr=@Gu26k@JdFh>SLm<- z#L1w;(72{{0vf6bMz8~H;DGDGgC^?$9OR`S*L8KpSb+;l6BLetPyojQfh@AA1jq@1 zz)~_Vk>oeF(jAooN9l%u0TyIMa6ui&lJ>Nj6io(dnP$wvIYZ7@(pfb3092x z>f8K{@lhbzR)$LEOVn#rmv}k~=z`4_I3Ab=GX7GJBy>-|g)Uad1|gUSz9b9*LxZ0@ zNf(P;(J3V0S-$!(Hdva{1Q*5V+ri1 z3<3sP$99EfxKbtAIFOh5?gzc}5K@mHr=J9JO6fG8A{Zeg6!-{O>KIKR5-5TZHKinJ z4w6J{hz1^nWmGsU%{K7ltck1p~ATt|HyR1x1>gFaUMC_$`esN|)Fd5~S-jS_o*T$&-K6 zK1rP2KmA}SX5pWve+pYF6Vi*HdF}ZQw;0=dFoJ@bA?tU}c@;roRtfp@nt`0DyC5T z7`SMt{Jyi#du<#G2c4DQA?dC zAM^6`P1N2Q7OWg(U--tQM(yV(>*0tPOCO!^O69%51ZHDQ4K3pgm1U-9}qXLXSYS$;52s@-F`v~i-Y>*1#)l$Gk*s8KUf z_W&9CbJVZn(Zl91tft-0U=LB^3&;BgYcPqTA(%p;6YI5w?_KKVj%4`e?b-2mvLpScn#`{r2y+lKaG!Fl8UJFs@3iTUO*_F` zavniSq|HL+F-4IlO4;(A@x$ds(s4@fuXoo_;Y&#`6V?O8TWe3q3&~Fwj{hJkBv;gv zPJfGC`ti%`L7_+|F{l1G>+CJ=RF>?s%9LRKt{}^yLfwd)a(3aEq|gh7XJ2005n12QTg;vB zcICV9)a7lkzVaI_!5=r=&aypL&`v|eLBEX7FL@mHXijj$p2#d7MM~{I`{yCatGe4+ z^{yTwyPf{xu4D3VgJV64RD-pEQ!n6mGQ_n)h|nK(@}oS>X&FZ!65uchiR zaj^k|UJxOi);lDz`gmg>P-rug?jmCk$RmDT^IbFy%e^~zLqbZkyK&Ak{n*U!(urVQ z7;4h`w5#S+r-9aai=lEiL03TmP}B{kE2)aUb7b}^9c>Tx>MxgE7GOFdW-xnuY!pu> z9e{iyt*&UMBMT$oMlqHRHX^lSW%hLG!1kq=9-=RxH9ttgs*;CYpHKE49Tyr}YI(7& z!Z#3pGk(VUTf*Vx?>CJ!MdOZ~cya2C3Zv>K58{%SbYDcKr&n$&{qoknYwLR~5(ck& z_KvEX{qxPf>e1|~qdtxo#AI)%PbZ$Y(d$k=a`!25ZLn18za@=<_f?nknQANZ`TM%CBY)eVwIh=0QHNiW~xAne*- z7FZ>(WR7b!oPp#{8$J`3xMJufTd3l|dTv=+{cTeInu!yGlkBQ$60)~$I(x5}M6Ig9 zo6oIIgKO50#XO2H{O?2OrLWXmLt$mEC511Obwse+{l_16r-`Q3G)~1xabhiJT+&a> zH&+bre|B7S@Oo~4$Lq(_cjZ2wg|=CzCnxWpJ~92{?tz0n!oCqmLA#9wRYu(u$k@f( zr?A3Vf?NL3D_xSmY4p^aSQyOU29mk@`hzdY*sN3kQZQvYW@ zyKURzYSs~v+S}#CMrCv_=A)BbV*z~LcEDJljm1lBYr5V6J$z9XFIg8F66TARc^7^)N15N*%|y91R0X=e zlc$xV6feWfE7zq3jC_5*`H0=1UJ&^ZZD*uRYQ`@~NM2|pBOX%R&h!?pjl0bI6za(f z?aWFNR9T4m=RL{Gxsw`b$1trM0nT2!lhRFms!PKpvyj?Wt3 zoIH(AyJ-%>1^hV2t_hE;h42?joo?dXBuYeCi|40SJH1EDpckoEnUpk%rZeN;A z`3glCYvB9arbWVXYB^2r)GH?M=k|Oj^Y9Q4X%t3K`2eEwzlXT z%r5MwAOGrxs-JMhLekr>^_PUJbF&iKo%FC8?8%3ZPZw}~C_)6xv6!^!yQ12NQ#V({ z4rPxLG<;V1u` zKtQ&mZt{#x+R(y@sm~uVvQxAqWSh_r_XR&qALXxg-MaLZpS!TiYfGt8 zlB{vavnswJqb2D010@tGTS4CTeAcO0+bRlkWo&(%s6YDqdsA|Z+v)y`~5_fcELzw}RNkmpRfoNCV!nlT5o* zHJp$#do2_4wd?(@|NV37b%jJ#`iY^Eq%q}w4|#>oR2m+)s4S4AByx(+k|n%ypj%fU zrta{;^u6S*OUpE}kI#A#(9DT2eJhh{yA@eT`QfTns|-qplw|BEGg8-*txweI>E6(Az;FV#u5FyEoL9v&+XpLlu+bD4al zTTA?e)+L!w1OME(F_QkhXswIhXDkP^PHx}donP}cGtbEfZhFO}npH+(4%I0zr`a3y z;!8IB59Pd%akMlIjx;oa3{<~r&o}dgxUYGxZ&`fKj5*q!)e8P=QJV85jD1H{`QtNN z$yZ_C{`*p|#r4#t9yBOd%=R^TVl$L=s8yyv(e|9djI7vfwzz1z)k?&RGQsYCr=d^# zK+XJ2wUJ5P7?o#wLSnG*ZuXBPY6Pm>__`eVnZ?s5NkXV^`^qDK{`+KKNn4}5J(kg~ zov}~$9lKv*=^XXqrNv#EkQh}fwA!+2=i59x%*8*3HSp-nCWE~D=!q)n>EQ#UcTu@l z^h!r>H&1Nh(x2}bId@ikNYl>h{dJ+E*;L7mbFb9b;(w4^PV>Fp%p`sI_&t7$v&Z*` zt1GnX@Fo;eRWHfB537r}yf#XlbWy0du)lxZG0=$}an!E$ROGJ1X;l*9}_!J5iH*BU;lv)*1>V)r{x%A!^E+y36zKKmb?viH5w znDrOQ!d0jK*)zMGwr5eAQ!$W%(S&0(Aws?~8a01Y3vj!s!hI|&5a9WD9~iJNA!xq< z8xT-&Q_K@G%~k0Ri)?B&<8Q-yDr9(Xt24S&Rn0+LH*-D?Aef4Wmdf z8~~s}dkl_;0$?8rAaNi{0W23e19$>0C9KQA+=fc`A^@jQF+55Di^Kv(KhV7eFbsf^ z03!ohcrk#+LvlENW4kD3KEE>2vGo5><`gNfr0=D2?HYyOopb0 z4ahrS7)f#-=(OU9fb{_(i+f>kVJKb028?2}qcZJ$EEWH^H&evVMwIrq#R;G~(TXw9 zO$B*lMo&NR`1z4gSZP-n2$25X?2}lbjGDh|FMTPZ6-$dqd%OR@H>N`*(zv?%1)dIA zBFh?ZkD(aglFLBAIT;ujzOL?pV(zK#W@NK5XhITkgiy8iir_*?O{m2LrD80N>o+zw zR!3CkuOQJylL7VBy`}5k3PlJf`4Q<*wnj^}gMd%FvINU&sb5-kFBqxmD*!vw&VrBk zfdK;H9Lhs;`$Iy3kf@lZCO)$I-0zx3f(3qeW?&^ZTO=^;G z1U%jmoLtDI0bpSS8xWy%0w5OsV5(9oV<0P*?AG@Lm{O4zSgP4?*TVxxBkl2iaLVG8 zC5bRCghU1kN6b)9T9g%~Gh9HAI%y09W+}h}38Gbi_kmpt8#060tV_VLC_1fB761ZW zBvA|;Sj>Px)0;tEmW2uvq>O|%37Y#^D z2#DxVBo+*Y$^a)fkDN|xwdyBvd-`3Jkji|1mVCiBN&#SgMEJ43t6+DCG%StVkJhNR zL8#+FtnCRLkyTotLoX$XFDNKd1_)%cK2TGVS@ewLo_>rv3Jo&3b`Cg_>$5^TvZh)pS=JKWMtqA>{AkbtHVxTct2KMD91LDmYo%3w%?%Y!kA zG`x)p5BM`d#e1ZHV-Mt`KtKwXLLSQtvR-BJ`7Je-*n?s1fb|Hatoe+y-k-(4I!VU&I^Z}qD3_c2t{|nxx`(!~R;H-cGW%0+y90dZD zMRkLLZ*wdUq|iWas+dl9ZwIE(f_6(N6@h_TcL!91IT^MloJ9j8PGeLtQ1~wdL*^Ka zFgYDfBWMCQ0FkJLFVu8lFeY|7z1e_IUPKm&_YQ5ogxb0P(V~G zrH*qUL1{pg2&|^Q(ImQteO+~Xi#-FV0z`9DAjv!$v!KP^TMGs{;y#5U-P`VkSbznN z1{W~2G{M^;V0_`O%qno+B8d!Df$pVAtaNpaHK}4W1{i_Bn^l3TAcG|Vc6_Y+{X%fy z9S~3K22X6zG+IkdU5!R{0XsyW!O(;O0(vwWE2|Ew#m%y!$xEZrf3w{@X)whCtO+50 zB%hlSbQ;SVWT=w}4NKAepnPl$-p%_`5TcY(WQ89X2r5(unoY@c053D>X=d_&V?QYu z`(347lid^`IlQ}je%G<3@(80?+kx-wP@(|h1`c<*_}3}z~r^(A?7Jo1Ej=gqM% zh(M8!I{Fdy|2+)PA6JXNZkG@`8N+-kAS$cLaw-erytG#zQr><`Nt@Hx9jQ}renN9} zeVSUKD%hXgB~cRj@LcjGxu9n@BmEfDcl2}5XrbfWA!c0N0qNsztRI)svi`Zhet%M< zq1m4(%()g4{C@3u<;9!veD^dzSGRmAm)>a8bvO*V@KJB8uQC2qQ)Uzr#2C#NLgaIP_-Zv(&IN;sxI-R-+MG#nf_ ztL=b$b-($kric9oV`Sv>Zl^!QfI1}fxdU0+UNNsnLZpNPnbR_NtB z5V}%Ti-=8j^JUsz(ish3Do>xIX5S!~HE8fXcR^rLGV4)rXg%>@=5pU=$cKMh{cYUp31h`_Ng^OzvEJ$Caa>4I`8#cXujkS%g8&TL(=uC9>EGq3=yPV zcfP)Rs0=aWcGsN{cA|X$arta%e*k*1SQod?+USTh>BS?zEec5;b2D}z{`GT*TM)R8 z`iG~YFJE-Xmp-{AZIfOkMx2eK9dvOATBF%W_!j(HEV|CrhmHX z*q4!AFkb^xrJcT*=!@|j{M4H~wy5>TC_1X!gtuaHK4;SP=iM{94zuR03=>CZbMvtS zO@T<>x1cI9r!Uea9XtAUVO_snFUVSu*78*mM=Zwhtj?#&%Y7H*tPfd?#ZX{BtD;n_ z!oqr{FQyyx#kBu8`(xKy)8dkhDjR$DPUX7n7S4znp8rZ89+h`RSe|kYYlQ!8J;tki zxL7D8o;z-d6Hkf!WZx}0ym0ZT*k`}-yQSX$R#&_cTE1!X8b8EL~fW z84-EccIm}itEeTWnevzZ<%Qr;K^6Do`sgoi=e8Tq@fVDj7=0D_q^tK3YHM>?SGBR= z%UAv8mi~*JL0yVVOlO{Up!R}Dh{vpa5)K1bv|T?Xbm?_p9>Vmc$yAuyA&a^T za~7L#QX0rjUTq>w|DT8!j9qCucq(~N?Pd4D^xwFWV^*j72JszBCcZmW1}e%C@T3=t zc0XZ(Rv$iGHE$M44L#Twt7I7--gKt0`H=|C7bhP2V2TxekQ43yGzX>9RA%$kF+gC1 z@Ml=VOSNLphW{mjuZhNfV(PzfXA!F_SXdjK%Z1lgGiBl4@qi^-lRWGeQ&hDR!eqpU9`eM3QFil#= zPb0^bE<%gn(b`vq>c0g?jxpXJn4M>z4t9|jhIv-SvOlWbGL&=sAnBP=p;hzde+Es{ zWrYI}m{$>I^eOQfUntk4=wc`zwgDRc!19is!Y#kN=(x{hs+wEH?PAv>Y9fdJ_&3_BO@SbKA)ip%Zu=)wnkES1)H|}&RN+!gpXjVrCoV=d7F7rP{!EmRU@?M>X#;3 zZ=B4B{T#!?@QqFCkY<<^HB3qJ(H$(G!&j~6GiNRt5X#=}_;xrZJQUrWO;ovmJIYEm z<=$2KV0=!(@#NuugNqa&j7|0bR_c&Iet#%tkk%Y=Lo|o8^(&xUlJ=nfhjd1_;r`Fl zC0WKfr-cPy{b@5beSXZ7GmD8<&?86tuYcUVTFoF={Q0mVunuM6Qx25JWZmGqr+(np z9F5zxbDwMR{Y3MFPrrx(Jw0!eh(Vj_;$Pq$)SRJ6XQcEr@(M8t7KmE#*3m$HtS{-P zcp{`!#v*lN!)wq62=-UkqZLibGKAn)wwIS8%O)NDVAxl7Bc6_$o!++B+oH|S%fgO$ z_vcHGd>L@t)wsJ_Kz3GkYnAvFCu)>`1xQMt$F~t7ffY0>3G#nocJ!z`B zDsxn`G?8ua=cwjbf~*l8S@}alGMS;5Tlk!?iF`{ZFR4zik6A{Aer)HavTN zefv_eVb3os&ufkGWkGvlS~utVJG zbMPTXim9xaiwQuZ$#Rp_&=H1`P|w4Gi-`vXrh=JdXNs)-r&6&1W zu{XktTX5+{vs38ZmokcsNeu(6wc2gi+31YmhH#%-lZ#RUzEOdYNbY8@`$L@e1CprDCbIP2gFzC#JrkS+}_XFw}~3#=|lzZdY+)& z+YY&j26C;IXIGs3arXeaOly8!u_l))I5!(Zx)SO?6D>p?cq8Gm@Tv6iebtpBYDf9y zQt@$lD(^SK8cQycW(GZBtO~UHbX|1`OeNKJ`nEjP&FQkUGEX>t)NgKnS+zGbkNxCi zeR2x9_}+-KZGUSCv}C(9v8*-F++06YXkbdq_eqzr-yW3^tKll{ zY;nr)livSLX-$OCJbYuc=f+J}n=$8JhPWxm-z%)N@R|`hDwZkwhA8-S<slpJBJRSv9m)*btQ^apR zZHQJw#O2v##as1jthV}OOL}?vV)u4FaeF%;hf`;COpOqWYTn$omsPwfc2o97QvacN zp7_bq4%6{2u}Ra_jWf^Wd=-8w9ZW}l-1z!7NmyA?kM^)8?ny=dmeOYVKVDjdIDx9u z)1)Lo$b9uSS}F(u>{)!1=B~HRodR1QKvJPWI+RW8U=S2nAXm@E<=tZu=wO!2^t$(;Q76zAr!vTF67+eK9 zt|dU2fusnF)z@$ZKB9nvj!+QA6<9(Ut!iv2Rj7xDf&4|r5KwTh?jQ-`4$6S002j@m z3WIphJh^*{fCm3a11&fhEFEAsfHz@5K)DSh9bhhn$K#T?1K1cYmj&clAptx*fT`5| zmi(%1u!%^v2B2y3K>1QM8J!3A5Y$>|_8{y@0Z2`CwLKF!vS`d2Kntb&+N(;C=@7{Z zpqwM2|H6V`^+By2U@AB|pw@`)w-sIGw}D`yr-`a^l0k< z=mnXhggB61qKc(rCc8d^nyKOVBMAjx|$3c(VeK# z?nwlJ4cs0?B*p;J)RaW!`RM}D8(O7j3?#B#1_i{dK#K-*1)mnsECZ3G0j5Zqf5~qW z@SU1iSFrS3RM$eld8$g{#;6*gQ3!ZGV}N}UVK7awA8bGZS!z=zLsb$FK3fyzo(T}e zo{>y|$%TY6mqPqj;GBu-OmYUE;v0G+3_*0e~mm#T8E+B~`c7fPjqYQw9-dHl+ww&=`1EPZ3`e(qBFd z^mKXUNKnn?4S?Mbu>AtqP!^~<1BMgs3O1_^;G#*~?j@EK1j_US9a;vAK?Qpz6HE>_ zpASHnp$ujXlLriq))nA50e%dq@dAJ*5%@PDNnhap0KN;1bW2>I1Z9HWEJ!0! z$=ws6<-Z~cetD{O1B`&x2SH~DMlu70pa7YaKFueM(P&l2NI;?1AkC&r!T@{7Y~j!V z&I?Qd@it0+!9Yk5iUX@m1@$W3(>58P(hss>tUe3JLo;w=lO${i2?O@aJz?Zzo-$mc zjtV#-5Qfn;+Chwm27$Ac&I6)*oo91!CYW-u6z&Gzfat%tFP;I$yqT?V81Uh7bu#lZ zdcd;^f(B7rfJX(L?z;aUJOa?5Jr!=xU?T}(aNL9gl#K;*FagTK8Ctj+Py1>X;8wv* zN(Nq8N|1pEUOz7DuZ|K))B=DXOiP^v1?(Z%QwMSM5(~`+MRrcBHH#`qg-9?MWV(0@ z3k}FhP?H8}rLVDhqP}7VgM~o_w5qi*xiy+F8kjHwM=#VWfU^ReozcOC8ntj2R0S7! zI$6-qk#b&BmY&UoKsR3oe9#`KQT$BBuWaf70=GyR_ZL-O}CET`+rEYE+z$uGsYy6KIG%JQipq~|1om+tVTCT=qB{P>c;#S;as>jJf> z_Qc!#d$-TxNap(OtC&46ej5m0U>(bd$#8yTIGfvgI+AmIx^*n+Ns{WM?AT;D^@L~N zn2Ac^b7(nwiQJ3X7ctp&KqRgS+5noDp!np<^?xY*->v^aR?X-!Rh^h5SA?Ak>cXe6pd}&5bI7x(bI$GqTR8FH-n$5r;a&n_q1f57c^czY@}3Qb&1O_ zblH!QLWs75oNQ_5!Hsob6*I$MeZSVZU$L#^DnCX{mBy%b`jQ$yguSyu8_^QZp_DG`9QTgZpPjM>s{PRCt=DONST`TvEHVY_0ZTG_8Td%~1j8v^ zP^(gC!(6)VwYl%QpO`>pY>ZOm*}G4U5Ar)7M>0(=a@NvVmj|Du9D+v&|Mz|5k<<-j z>T?{*@ZeAN_At@4ays}!o^XquQvMPAI51+sj*-S)$y z%;gmQGfhq%`mT=yvPVlvcOw0}D%X0W4R(+* zyeKDeVDxOj^2(alpF(re(DBzSM5CoA6eZ5GK#Ra10Ir+E$9!1$7;|K0)auy@yk*xPndYvlJ?G{Tj=E_z-PR&I{Fpud8$b-$yd0um)Aeu&x<5fq?MjC z9k?&02ocWM_!^h_Dm(ObL`DTg!tvahxBtT#2=_^*jk6S%yw<(kP?blLBIMTKbsZK5 zPTev3fD#=hSZ~Q3ziP6TcEb_o6(4p!Md=lT9pI4iM6PIHZ~B|g;MjiWGOafG^ar!fP{?n7xE%CtRTdsQTAR{K@5F18OcXh>N!Ia>SBB#3 z(vTX@!5Nlpk)9jJo!BOendoLvJlV}hU@$8FKdfc+1BnojV zT&}vdHt!Uj^}lq%l_tM>LdG`a6yB%oc~D&aT8;D2r4jXbmqW#SQKFRnK3f_aC`#S+ znczA`q{yy7`e-5Yc)8{;!jEO&8fUit?G;=qf{)-^$vPr247FBZ91%Q|X!YDqH5Y|N zrY1{8(a`*;2B%sv@y>LyZ)egn(CwMr50N&{_K~bI?Ve9n_sy2`pG2=~S?;y7+Rk`k zXrUl*xGGQ)ZOvu(6+BU>vX>h6pIrH+a4gue@3ErdboK?Sc*%LT2^=eIkcvpDU}Yc4 zW!|a`HlWd2DB%kCi|v8Q4#bP{vH@}DqS#_f#vxZaV?Lj^GydQq1s~N_`>1_3&1>Uq z;=U>yQZ;!?N+m1*Ai5`{&FRiF_vM83Hy-=uuixq=D9`Ax9n8N!=q@g@`pax3UIAnheleF=&iqf+lo0gNpIgrX0jd zgj?PU#9MOQC)67e0>gc2cAoK)-{}Yb-J_{4I{BG%`*dlnub=YEW+4wrt>jp^!2UgE zi&1sg-^BD;Cs-teeSdUiz_Y6%O{9Q&)HZwrZ@C*;DA=t?7QAJB&d^B|Ve7BkSi_5^MIkR5rro#}FcI-gE5=v}&Rt@{(2U zj>c;C9OZW9>{mjCGvVb2`$NVsbzqY-$TkRAEK&Q=_c(p%TfE5)n0#o>UgWSF74EvA zD+sLFa%ocKFZ5^;fs9uE!FFEiBhi%D?;m-_?n=ft{r^SCA0k?Cd9iKzhKp}uhm>G3 z-?+7+)#R~g^ZCyKA5b{9%wby~xB*z80#)7M(ZB485NNHq&tKIwG2j ztnQRm?O=R5|I=UMOSkGeeQohUbgbJ*vxx|k$kU{LfnEbDG z#5wJl_0>cuy%z)jr{{KQ#icK4RyVayzfrE#JScT?IA`16IsL<2O;KPON01ykMSfl^ z?B{%i^HH~OHTDs1UhwonZd#kqs7NPz|2sWfr?`AmQW{KxCv5`;f44W0zQII;Q zkc_Y6K^mP?*}<3Klh^$$QiVIWT@L&Cb>aI;;OfQ*d6Btz$@=o?nt`ni1D<>HXP4`R zed%}yt;;CtD(Smoxx~YS*5~jWQ8ekXCItLu;Jo!pWn-WL^}v8Zw4r~QMv?Wj@=l~I)kXWmm{!Yjq3|M@ARMP zPR|K5I=v#;Y%xU(h`zT?GiwwxiJst(z(Br2E-l-o42;*1!b2h;S$u9UEH7N_*s9ciS@JK?{yYq3(k*q<{Vq zL>C|J?6o*?#xrRAMpRb%7Bh5Fue{QHLxu4<=sHOxPir1;m|Lr z1$)M?b+CyNgOiJrk@H>`n#er(D9Yp0m%vylhQ_EtP6RS2BxgyY?zNjqh+4?tCE?ST zdP;S@o_}wOnRx3#LDl5W&*68K6`Wc#`}a25cTxoevb~?`1yg2_vqFKYD;(lyuYpVM z+0~aWgrn{*SvkN|S~k1q9`T^a-I!Y%Y~l|_LwhG(t{>j_Ccxej<~N3zwfQdYJ+Pvv zWOm@Boal7c%_K_A88Z{+&$eYDYt72XZ}+IQur2fx&Hr`RNn)EYt{slGnaYQl^Xa(g zuyL__#a>IzG1qV6INrfYFW(}h;<_EJsR23XuJTE@>$i|2t!hpg7uXq@yb`Dz6N#caCEbo{b}wq9q-| z>}yR|vkm?TI@Re%H!8s%hz8+reYwdrQ(MuOs7_9Y)}`H>S1i|SjS9;eh2P{5c=umi zIodHv#EJ$bt0@_(9JKOw#T(J-{GVjQO*T`4$o)J>k(u9>#yg>Btmsdo55FVK6RQVn zUk>hkPX1aTUUV{DQt7|?@89?udwQL9P#cx{>YKkxw5nB(iw%Cg@bWUB_dCaBMM}A| z{n2v~nFjHvY@E`oeyLuqvmH~J?|sZ0npvM+v->l|VuqNU#~c}myEh>HI>gNC(@<4b zij^xxZ@VZ-=_>kFRB@0>j(ydGVl5Ungw6L!&(ry&#g(m^zDoC0|84)?7z484=9??xUA;20kB~k%??w?NBTVth9YA zmvJUH`Ef#R=vbt$2X>*$WysC`_Sg)V)=&{LZRzvY+zkZm!HoM=X{3*HUj0TU*gclXY(=nq|S(aqsguI zhcp9c`tRm< zDP^?j*25R8HWFVm)W;tFx*_6!LfQ;H%&ofbuV#ovW*WcUk-|G9d zbN1OD53loly`K42Ckoa^zT3HD3NfmtXF6+^O;X&fK{^v(Rjcdg1uK)G{~{B;jq~hF96rTgY4sjDv|&b2ZMA_@FOZYf!aiS zFD`GUp$o}~tiHyJ*h99^?;?|xKw818AVAr#h_VSmBEi@i4hy7Q4v*o9uL3D=83Qi? zxkM;XScd7*UZji|YL$d48XaXzurLW{q1rt_Y4w2CsGfbf4F}>EvW;P2bhD)r7(SV- z+D121dEb@^0Fh3o>1H(0dvYfVjKl$~7ZF`1g7z{akle+Axi9cRLsp4{mM&~}8ACRN zR`2xCaFCE3x`ko2wL-qIXr?7x09|149RT?!CPpmOg`q^Pt{4u9KggAHI6X8ehZL+1 zOOyb1dY1;m*cxBa-Gjt%I5AFML{^`}AhyY=iW2&tHcT~+5E9C${ZO3*L~;hJEDN^r zv9*cup;0K_at8|yIjdP9fR($V8efo3fMWG|DHWhVUyy6y83C|gM@R(8!U{@RPJb6i z%mU>sj}K&2S5A))kb(j%9qx)&hN3Mdn9nW&LeQa)gYv;z=mApafx?1F7$)hmujA^yrc{V9HpdUDO_`zyMx^Ej|c2 zvy}(CfgT$6Wi&8Xz^2|z$JbCO^ns@2=Jl%ftzptWusiE?tSAeE!a22vC?{A;NB@6_ zX5N43np z!}Zy>d%^1|X$L(-Ez~jj15FO#jo1_xR*0(V;wZXdVNyxXR^+0Ej2NH5LBrSs_=G9#Td1EA$b@QzSS)Mu*wQEE{7!o z4i3;e4472{$vI&VAp<%G?h$xf!hETfCnWmbf={p$RvRY zo(WO~!NC9u=k&m=0F!5Kgw&!z(b!u)F0GQmN1-6m7!xb55*rvwY&;=hgbFnkD&4et znAPiZfSXJMF%CFZHrc61K!DW)#Ij}AjNyeUVzFYJN@S(6A#LD+)({J4ls7%LhFlRK zYv6wNLer|c#Won2VC-jA)s%vHMu5iRQ20`74>N6q56>qsmIm=5e9`n%MM`2fzgv(~ z)U+EoS4c~1>Pty6z-+>MW}lS~oM@Ll_@9ZJTV-MB3|3EOVFp{27|RH>FT=oB1lXk2 zH`lk8>ZX6pLV+oV=P7|*J~J)}rWhGiX@3tXqra$5UFl|wMUe5OL@Bq!iGiny`oYNp zTrde@#BQFAWi6FLEy{+yPe@-uSqv)#2$VV0%KKbEf1C$E8pg*xn{50FoWVLLnrVp!k7~ ze$#GWc*0Q{YloPDs0om{_nPM&pB&f9e0?|MC8H{(Jea{a>D}Dl^gKf_M7a z$+Sbb(8On7jR~o>n2HP2T+KUy9Vt7zH_qJ@YDW@J91}_Xd}9>ZgB}qCtJn(TNJB@u z&W7M47z3l|9TAy|z<<+`4>l?$LwbH@1i!p{b%MVrW~(j5y1t`pwu;vA)AqU{J0dX4 zMYHw9+ZQ(OzpFR@uI^Tw6pLV=uVZjHPbBqh@-Nvkc zINouu`J~mmzZ83_n*R0RCnUO*^C@g@ejKniYRj8qS5s9wxglN z!7g+DoNS){(Gg^vb>9C+`uIMCWz^0c(pCHG>*mW2v3-K9r2!k`0>1Q(_TLZAC(^(9 ziOn}1J;GaR@U%CcbHUW_OY_>>gnEwWIDfgjuFa47^7^oTvs1$_5Ml z8?N)p{vQ2PaQ|qHI^!%CVKo_?~ zIa0mqT{{=&D9-J*CphQd7AWhQ3U2U_s~z5?)OI`K(~~9QIIq`#5y>?lSyAtyL6xXl+7v%KBQ1!9Jz5`jxH1y5E)rv1R7 zi)yWB_65m_bBd5lYO9aWFForOu&eOizH~CdK)YYs2b{~Z5XlvLbr76@q1SepXD4xMG`sYP5-s<< z4SMoJ-!Ds)62G-WkIt*QU5@efrK~zD+j}?g*Uw|Zsm>Ngv6blj-eZ$aC;L~J?;Q?# z>qohhu9|SWrRSLFS77ER|H#P&8@C-mkx@EkLtC=Oq%x^)N=HOH?Vv@m;AZ7uaMcO3 zbhEZTzj*(?M;m548rJSOxn1>*N&ZHi?fZ_@)CNy1dHjw&Wo+h<2Lf74-u#0vN*uhE zgBLV#wES+{)VBHuZNH-Vm3IemrB_3be)K%NY-2rofPg3Rdpakx>cjUFDsz|O8yDu< z6D@pVq!@hkN#5U2&6Lc=;^OuC(NA(aUv3@Ftl20_J#f3(A>J$MpnTE$6SQ5(c00C* zltur2Eg=tQIl1>NAv8KN=xo*tzo1ik4SNt=E}xFwQTQG+9_n6hA6#X&BRgcmbf}q4W4h*^8PBRWoYs8Z&Z#*N&o`{HGk(EzqM;WoND@~Qt(;ba)sS8^~L(n z_?~VzsuB-t?-|ouP*dMm`<+!aX#G0i?85a2e)F{rr!MIk96#8#^Pr%qZ%d7V85jFy z5PMbC|L>B5o~Gm@H+ep0*gK!LA>{+ZDWxu--VrK>!fY{H8mm(-d`fB;v0pSVPQH@0 zeopxgcO|HMW0SA-0vLT72eZJ4?g<1Xf3WZ z^L^?B&wOOVv%xA)y`)7_EHCw;P z?w{D8OzohUd5ho0kLE>1o^dDQSi&?dC;v)BB zFj74=KKC7MZ*0($#fwL6_78b3SoHYf(aA7wY#vH7E?*EHw#mDD!m4GsZJ znd?)O4nxvH+p9FuEB^CO=FyKxBZr+I9E@2I6wok4H$463h~&+!QrF9y{N+WvHaeR> z@X&KPFaLW(6`k`LpBMBZfr^dTG%SDRN8BDRQD+ai8L!E{vSq@<;$rs&Zl#~t^Ip;x z>BM;QHsPrWSpxf)_k=n6k?ZnZ`}P!Aok)(ExaQGtETd7?Bk2A--+qmxb$J&O9;O^F{r@(?JV8O|JI|5&9|R^o^ho z)MUH-acoA{rKJa?PqaUIMqM5=SSS%5Nl=!Tp)+qhrQ6NEX@H)7iRoWiKW_cDeJCX9 z)^B!NDQW88pGcjfoQ0j^&VLn)Z4*{!z4)?atb)4pTMgk+*L3rPmT>-&XZ-cM)I+rK z&7tW0#KXs*i?oUhink^$z%v?csMV*JVcW1yQ|<1O)hUL&zAbi>zwBDSo62W>4A=f3!$Umi6=Cb9d>2S*6Vi1mj6f#j^8i0A?WSc=+iuvs2Y5B zEc_xn@8oNJdE*xoDYgi;{QM8>t1Ih`ZWP_AtkRWn^QsciWpn1QEXml`o3lg3+Q6Y$ zO;u$*Gs)RXe@2%gTE0uLFlw?;p8UJ+5;Y-mQ1s@e>YSqV$~44^OIVs2E)py6EbOsLs^1 zvEXIWJ=mrlZc^Ly?5lwX2p>FB#?|54kc2k$ZFrchb&6^u1WOP-{E+g#2*V_y(7wZ^K#> zLSB2s=ww^ytE~&>q!GWxRQzjn;XOG$b#F-lE-i*{U2V z>WxzM4Z;`D*wkCiCM>#lcQ8w~mKAQeUyrfr2-9|?@`dX63e44azN~dO>&))V(agy? ze{f~kQq$wLWw&muPBlOC^mxITUsL|Qr5{4hqrT79<=kpA>$h4SgT1xvj`NG@p2s`Y z`?6KzEFw;o7TlStqt&KYQpIa8?dA@D`fsH#2g!SAhi)7q#ayWm$u-;WR_t-{vF;;m zY!2z=W3s2ywtbnddm|3s8*#o=z_X|rxkOcqh?xH3T442s-ud=s38P@?XzH?O$;86V zh|})ooGnZ2Y|L>UubtOSD)vA1&ppgtvuh~XTO8@i=qYq;qvZMoR~p;x>tFQz+@tMI zMu?1 z{rcfS!3Fd(z46ecnSpmcBdBiou%;(ov^wjTy{uF(&gP4K-cBt#>@zTtTC?=u+pwdD z@Ms>1$%CYW4XO`N1n?z^97&>mIRraO4(M)`l0cZ>r&$`8uU#O+8&lL6J#?wq$_; zL^Jn!wrJq8y6jsJztGi!B>T|4=nDZNP*z1z>r`Ye_%#+Diz0YI1u5%ikcWo zo84RyTQm|IQs0cF)x!E5s7`=56c^*c5CQ~P3~I(X!WB)0cf`HD@zYaz&C z^)gW1N_*sh!%-_%P>Pzdwl+S7IUr^M`zu745Rif9R`EOw6CxdDgM}76CrTy0q+Z%D zhTTMJSB^rdq%eiFCT*bR@HM%%hO#C?G(|%8@$nRK3~jXd%5J8>vkPVp!z@%s6%mw> zdYKoJ%k{wvVTTZGH4ea6_8CE;7BV#53T=&RSu+eM8~7%Ev=`2>&;X0Z%PcT3&POXm zarySS&_QlCkFoc&!GnXO%tDpJAw#-b;{`*G2y=Efzh3~P8d(@t)o0X3hGR%&!p6~_FdPmN*T^RGoEO>0v#Kk$8s}qU*$eZEY-w$`P&kv;6r>x` zbu*tIHiuliCYKI}#h}3k&16EYo>Bzr*5H{TxP&Zyg)*QSYeTm%H?rcvx?KbmQ0-I+ zHikUdTZB9gZm4x>AX^Cn6_9xom^L;DA0#g@S_)wnYm{T}p$};@G^~Re5Mzb;A`E6~ z#-c6`YV#Z?FHVCA~1?W(pDrPQTriiilIrz zVWbmF1`%~4h$nbtZ#lb+CWVPSA4??`4?f$V7$N?3hitR zWnz%#W^mwh4KbdDfxZ_GIm7kB_9E7XMM&^~o<0RywgAl*aWgx>g2FA(wzXkEznz1v z1r1S$v3Ii#+SUd#H3-sS^i;$aV<6fT@}r@ekLEELfxBVtp!-}o6U-`AT`(&+lLU?! z$z;BGFTi1YsF3qZ;Ce^k4pQM9+d&%}($ETR8!d=&6Ixqy=^-)-NI`%%1S1QU+%3-O z!3!DCHMe0hX1wWQeTdW`a2sfX&kj0ASqoj_k}$X;LrT*MNW2^50T%g<$DND#_ua?%7$ibkIeEaq4T@Fx5_x8Oq zlN2sY@&2ds5A~1oFY@0R*%{e=NlRmvx@IJI`|Pk!frZyIFBaaRcM=`gVW*SM^zCsa z6zpy7B_y?0TRna4fyF;IFT7l2#nmhVwpnDN|VeQ~#8Ag=2VgxHjro2%q%wEj8fzbJ?ZtHR@*` zL~BI&yWLG0h*lrmQm^{As%bpOgtX@38q7zjg@@kQv`fI7MP)*Nl8U8ER^=Gvfr}u|~M=^{2*<@&zv!{vIX9&j~L~I9+0nTe>*k z3caq^=NH%uHK?+v9@cc z80b-flQsHOEhA8~;%NMqx9gtjS4qxhE*tL*cH1kvswC)c_3oT^)pEO*F@`D2v&8he z9Qlr8YLT3Mqu4u2Li-L`yKOYO_^{GwulT8GMMI|CT>4+G%AY9dr}!=AHy<0W+y9Tl zIr2$H*{8|8KECa$YNdP_VP zOSrNjC--jlr;vruqF=2Fiby|nC@J97vmH97BIy#A>35Z(3Vc#ja>CBAxW8YnUb9*o zM_@?>iKab6lC(W=7Xv>?)oVt#Uqx#MD-6+gJN-mnvk{Qm3Y%O^N} zwTH+38fZ_F?FXLkS>0y%)$;q(PBJ#oFHjjfvC5hAx|5>*^c~rbbCDbDKQgCl#nMyA z$nD;W(v^KE+l3NyoOOWU`t?(0E=3VfySc3dLSJm)^MjoUVST(QhSj{R7wa?kXnNDS zkFlRv1#Zh3en2wFkGycuSCXRd{x9J2Y2J#z!Mj&>Ec&HPpHk6%xXL~1w`8G?|Ef7r z%3zh?_~mG;%N=_h_!pbz&R#HOS8(sk5{m)?@$+4W4&w=TovN?vo-WLMJBPlrovu)C zZCyF2a(Lfg)X)E(KVioaBUUbYV3y7BYxP>CZ?e!}^Wp-byVdib{ay#&>l8Q*3Di2) zj7#EG=ciw*luvbjF`N7P`bg$A&IZ%^%#x%NJYOsx5FMb+YGs^!`XddShf&n@;=n=tfJ^dJU8!x%ty;o`1Y0`R~xBZhAk* z`pj>=P0CS0et$;67u?P<{#_)?URS!fy;A2kA*dRCTX}q+g_%xyd59gMeg8*)M^W~e4xe=oawNfkRtjs5m;Pf5}99#p- z2A5jha`NN$qZ=oJgFpdD7ST##Kj`{46c1^?s`2_E~9nbNZ{*eG@IDu|e)% z*JlkUG~RB?r+<+oPFpnGe*Po#!|!apb*Gszzu&hY9}Nc`ubyD`MK0t$)Lv5N`7p%) z_rIfe12?S1XB$>aSf6^O!ps#TN6l~Jvv^nw?dq`ZmK*5$5)n-$!<~lzi9!dXl z(m>sI(iXFF!-2YPvdY#Akeubk3$(~;o?|RuhWbLB#j5qBYSp#I4t7qrE z$<)nWyJ&e?SLg6msd4|x^3ITly&G4YY(n4KjFfd8&Zl^Fgw5A@@T#HjIMHo>yvNFa zKjXYk7GICx?)5afmbc30#(%1xOCw03l@37_nu0SEbG8;8U1f2@g7v*o^9~m`<#N&T zI%Zdm>BARG1F}E;+BNUf;{lILMB~bU6v>7z7uiCOaqs?WhX?EcTL)k7VgkcrR230m zghSmjjbmO)TXEt2eFL-C={LH(0BSK&ox7K6X4A3i0Jf%M_I|aAXIK07^tFcU7cNH5 zUv@=*G&3VG_@&0cN4%G4;OpnjbP!Af$i^7bWU%keWHJL^k0H| zwUS|%Lkurn^viwY+n(6I{%K1Z`{*k}!%w8min@D)ZuXp|)S9VRk1_Cmq)4|(-7G@Y*uXS z->y@^Z87$ADl|4&Q^x2Fu0dfrC#)onTdLk4$1yARss#8Q38fs3JQ1E|uD=q=3due3 zCGN!iq51Y^*O=~&+3P=!N2&M6O_B(W>pKG**TnAqSQb!-u&+77ez*$LL+3$H|76jz?B_xQryqqpF5> zjjD<`k8WHzFijw4-uM}=cOp{PrtL{c`)Z#q-t}dF#*hc9BKYHP4iug19ES%WY{TqoE0T)@Gm1cWa>7d4u`?Jh! zGR5GtxmwWb(No%dQKU;vlW>n{- zeK-Dl;E&fQql>KeTWTBBCFTg8DGhH0)S+C?^De7O8EWZXbZPP8r#IcqpBE^q zEpPWpmdTpNL@vGFQ7EZTe`LZl=J!jLYY!I}n;s%|*{-oDz7=*8r?N6&f2NB6hLF)u zs*xFa_I|d140jK;zFml@w^Se6?z^;Ew!tFo;-SizN2n;C0~db9XW!^1m&nv#^n{Pr z*%j(Xim<&?r&5;cO771xF>Ek0)wA5xS{gye6=+MICp|pZviw1KD8^w2>7c6Rvi z`cPJqcB;k3gVIK^)3Q)+1*`h?!qeyW+q{e7WJ|3hGh%KNoG{cfZRSURxI*&wRIawbhCJTIKhuYHiJ}C?kZ5bGyYU z9@vk&Z;Hv~_cw%T6_xJdQT5kWNWbrn3_Epovuj(>0R3gw;qD9*#vTjHa3tZy)jUki z7JJ0*UaLrBhU3J0T*!65;<#(x9pgSia&YjDYRb>dfYa~tU$~E9l9nW0)+j17IP%BQ z>cf@%TR;9e5cllAHfXS{;0dDTvQ=2s*8M@a;KRWvqq<_u-E_?eR?)LG7YZ)Vr!di^ ztUodNeR$5z)~%5hL6M?q&Gn!2#$3YQ3cEPBPU|nfFgdTpHTd=72d}@aQT_7pZ`n{W zZpS92Z@)=0aY>+A_0iJVT7neZIn!{vp1iuK40Gk$4Ek%+C)!%2cQDYrw_hWj8mzbR z>Wh{HIcNN*GV64epZ(6C&8&BP4fjP&a}Uz*XaXGaZ}j?khH}CM<#It&qkE4PjuifC zpW>*Kcq*lLiP(p>KP3wjfO#X{ayT1_w7s>AoAg6ziC3I^Ouvk|Kr|Sl$d_qo8*7q| zGLR{_dV3j7X+DkH{Va-B6lS|xR}#L2RR@JwRYZ*P;|DSY)WZ4br6J4g44y(+4g=TH8epoxZz7cUBms?vDkcPi)`;%Uzn z+uVwUj{CFs-3@;;>GnS6x$fDo1({4%W{^J5E)RtbKIfWCk9^RoM0Y=F63pF+v@Tw4 zikZItRsY<+gA4lE<^_!;b#*8Cz_T^mqO*JIwGCI0yUd((3jOR?E(w{}sJ=L`$Q^ao zq~7$o8+RdnU|2b?iC(%fQMhuW3~yYxCSSs`d}jZ=YpQ(YR%Y~WrPk*P*Or}q3}3CA zUY4=WDP<<}4s7)wF66Z@(`(wT_nQ1^OhA=y)}ZXtDW8kqXSO>3?04hD;cDLY?-Lgm zDqY4Rr%f#8H(8N+v%_y@_5IEW{5p3*>BVhdU469gSiF?Ia(-iwxGc@GWcx@u-t^?{ z`?oUk(jvEJML0j(@Sm|>ic|B{%2~7KJg~f`WeyEuE#R?y)#d$EDkBCH;|U~_NYoz# z%V$hcw-Wwlb7=tN3_L)JFh1#X)U+X~AOa@H1MvVM(I-bx0HRHD4p}S^R!KNHutpb= zP|`|AbA{X-AdhCNL9*g zp+QTE6@bQ~DA*iw9cn*+X7G&z+#Jm1L8N1%PB2S%u)vT-;#fQgNN`{zsRh<6%>*ig zP-G3GgwcgHZB!0xW^9jRU#-jU5*UiDOIo2+OhI#bfIjkwN>3^*^tJlpE!Jh3gD&D+ z8Hf(L0SYq^3dB4ig+T$Gh?K&FvSpEg%I9Fg6q;p-QwQ_HOevENdu?4Tj%T(!7B7=P zr5j4m9(t@8S{P_+ox-3vEo6qY%bKxVvC_wfDxmfYX~1~)kReFrVXHyK zAt@`Vr&QbO3V3q+`Y<>Fx$11wju;rw`}O349f0;*OBI$d8X{IQ}B?x3if&-2mcWj0_4 zRIWfn4437D1@QhHSz`4ra)>WN zH-`lYYahF$5W4|6Q!6htj{qQ3V1uy5Aq|0eh2}e3%D|fCq!U8Q?GT<_0%0MM1);l4 z6oZ#hygL%Suvj=bA`Xhj146QFCfAaQEu|d5=LUnJ!mGt2@yJS!P!dwcte1Yw%3w_h zr6b1bfQ0pF+iCe=qNUwJfFK1t95ROs)0@V+e0x89GrX&16u2ZlR8|#`szcT+Br^z1 zNU}I^RG=@f3nw0l!1|!-G{ijllmov?+RbM@&!sahfTx9%HDXk)&S96xnD}}r1Hx&0 z5Vy#@FgzjTXnYo!LcpAXHIL2r(RpxnTrB2>xW)OO-W{A*lu+ zco1ip-H{;eXYz{;#3BxWs7M1F(6<=!2WGtDp0#~|At!j456H~Y6Jr9(;iJh{c4%h+ z3|UKIf=|V=hez`wMrdOhz^w-RP|-q!tzm0hjDwUz78lh*2JNBxe^8m(Lly$iN)`r^ z;lH+S248V&jSPTG&=#YJ@X0o$2RevAEiMG-GYy`_h#~Ie0u?O`^D@kovngV8))W=u zdI7?-*3Je4&^DmPMa(J+XqOmR8v{_p(8O@E+ilhD;SmT3p}?7LKLfyC%i@vYfrkKr zR5gOfGaf1<6gq>(4D$tSlr$5pZZ4v_vpc=q9Vk{A1lVwpKsHZjikv9f{jg989;QIh@3`B;9Hzd!I|5)zn6~I29gSg? zlfYIr+N<`%2Ui=-?kDP8Qq!vVnDa^a=A6pKQh^&^}aQd-*#uft1a;0 zYg+tqk;y?y&q{yZ*TUSMr$r~GCfE;_z2EyfNamtEu){U%mfhxx5mif#r*-kjt*D03 zC5^4bk-l#avRh=z3wTupri{{A`zQV%e}3@&kZ4J|xo7gXhOhHZMRxeOx}Isy)%HVK z4VuuN_X@a-6>ik;yC%)zi!qXlDb&upHUBxZD^vrUDQL38d;zpuBAvJPi z>F1Z2=_g$zENcD=>^#+)PjAOH@dcZ!dq^_#H4QRd&h+}86#Hnehmx~rR5P_}M@N>l z37iKU+&yWz*MqU%+mB?EzK=|g%?sOPab{<&L!AfWdw%4m4^vwvwAiU{LX(Yf_Z={y zujP9q9F)wH7rQoAM|kMz%N#E0qmCDdce&q?bgj`Ff0Z~ zok+h#LmhciwBX_or_L|A17>%Zl zYnF(-&*PN^q_2+gUZ(M7erFGbe56*RzI&9(vtQX>yW+9p>h$i1oO?y|yTReMXqT}| z?;dSG5qxoYk&Vs2AwHr=OThPzx-vrFo6&o{oH zXX_X69@bbIr+E5eUG83&N2s_jvPN9lUe(v|U4!&355`NblKAb!2%di2tt~pbOPq8M z#LUq;Dlpvkess=g_Gd6Xr)}P+D z>g>{WbT{H1UVr-qxxr;a#S(!_xA|H*aUqu)@?D;isV7z{GZsc{$*Sbmpt9sbUyY=Fn9olmi zX*F$&F3&R5S`+e^h56`TMOvlbk87JGR&|%LtOv5%4y<{cZsozxX_NT-5{EK>4Epi} z3w72Jl@A6zDQv_TYqr6*V82dow~=|a}L*TVEP zEeBU;Q`^^)h1g#&i#uNrVZ#VsDYx5d?ErI)8gRys!(aJf`dMMrkI>R0|(D z7pmo~@?&?mUZlj?9C!5ka0|+L{6oE-YIw*YGYir3{ z3lGGxU6dI&6tce!ibv0_+CGIh#K#7dU)q=h-sE^ZrT9j)$stv#6i_Uj^XxtVQlvwId;K4JDB z_SzfUZ51>B=HW`Gr}ZHjg4l;OAMYO3Gw8PW|3c$057}4VXa3Gz@&1v`v%kUpUxydJ z4O{Ep+!Ujtu)h1y7Ued#UUSK3rUOd-^Ve$w4qE~)FzA}UOpuI)k@f9Sex`*oon>!k z2l{P@jCT+CxBeW#xKcY@xGtMTy|>%^mACtHwB3#H&f>2>O;VerbiY22U&Zp9WjEri zUo?l7n$c3+np7MumHNWdn_l0(bLo6z@M_UyxjDJcI6o;hjp-Zicyp6?u6NS1JYUNT z`SIb{6=w_sKRw&fzKcYAqi1bBPP%wFa>ck`#hwfEbHrO4wDJob*T1-XBf91NGHT$S z|BiKO1{mevGcL@YT1O52w_(So>un>8%!Pl}T2V`jC>pV8ZI!ffExC4&gI(U&<=rDc z`*Er#3-nVGmV7L*NIc0ukJxvnGWl7YzR6y#ge__}I-KH9wky)&N|^=_<)wDatbdWlo3*uJ@T zi{qR%sa$@Jhufuxo3FO#Bd$;bq;|51&t&es2Q3+&aXByVbnWQ7^0RT$t8-WQaAfc~ z`J(fdK7|dq`{J9t0}gm39n~ok2jyL%9+w!P4(Ion&!*YOK3dmaQ^il^mx;iwaJ4M zF)w|R-jw+TpH!S!5#W7rrE!^WM#wtZ!}Z0}sEgM#qIxaI=4xNDyuW2ja8*~Ksj0<6 zQqIz+YVv+=81qcinb~ras_O3ve4Xj|BZ}CP2B*c1Ayn@hx75njqC#Mnr=M0cFJQyD z^BDuh9b0uZw=cD(DJn7IKXnSl-%+!zFEcuMiY*CV1Ugac(6(i~>z|HFmN>on7vU^% zMb7o1Hk{5)*{Pzokl$v%$?CRFnA(3d)2vx3W~-l1M@4y`x#1jSYrJgU4n^3TcR|%u zn~Vc}xU^ocz-#{kA|=h~6U)poE}pSbc^WMNM?BphxQ0$eG%#<4uVH%?*+pfE4+sd` z5OY19mlzj0I4)SO`O53wjkAOvpC{aV@`@AcDR=r9ds|LfY9^mg9haNOwoLi2z2JzG zjO%A@uf05+!&qF2y1@M-&8jYY5~umve9E;Y$ouQ4=(^#Y9$TV>Hov6C*Trq`!0QiR zoUI!JZTG5^^%Zq5OyUC+-bI;_36hWRlceH8A3Vy@?5*k}-yOjTcaZM)a>#4mRk)Wp z?tJ{KhqjDyEB)2tM&`DCUlZ-go!W9m>}srA*nQiy{d6?zu*$rl>Y9hw3Ukj9!oHr-HmKa396@-$ z?^^Q|FLJV)p3-_?{h|7@TX(JO8}@yRHIMuw z!7R-(mp5t5&@9Q(SHA2gPAs=_MU*Y~Uwf4TJssU|@mq$Gi)weKka@pC9WBgDXT6=? zCwY8lIpwu_^wpD=53iuP9@ zF}~*M)GzgCZWnhIWh2h;bl2A|h;=)dBKj8{z5ApZr{(tG=$e86#fJ&I5Pj!WEA>}x zS1PG{ByNtCOV4)D&)=Cc%lTEe~hS^4VJvbFT}Q?Zr*Jx}krK3MCt|H1FcWbb1Fvio$)9=-h~*;gK;>84kF1FH9s ztN6RqFx?)%1)_yElBN7#q3T-@+b-W-@&t$Jd*xqyd1?QviKYIx^zuHimYve_++sm> zy2!ig?_d5`n~||T;PH_VvjcsbE4tYQj{O>!9=ivm`Dw5WKFf|1F_sA#6<)Z`qL@xT zeWhqfWB5CErPa^TEssk77OGuTQ^Dny!hF-8Z1gs}HyWyFB}TbN?(|>YwsS+l$3JRSHfHRdzw?fs55PfG?G4y-%;?|9>iHq)HzB==nJ$8l2;_?Q>PZ;tM(PyMR-Z_hl- z71LMqdd;J(pP5ICVwNlZq)Ga8^*b(MMNd*uEK$8ytjY6!ZcaCuLe?b?kNMkVKmANW zDo#$~gIojZr##qo55JWjc~b7|8epwHx6AAK;}g~c>OYpv(w~Jk()9SKk`P4-SjT=` z)N<;Ik-vORruVv6YfPS=oOPjB<}!bM$Dx(_R+OZA?Hh0BrX_G^%~IRSw^uEtDixh2 z&DQmzSByZmLY~wEn`?$ber+w7QDLUc7aLYz-v(At*~VaMKNULA<_;lcIf@Z&UAe=3 zbWtHNT0A*{L90fSxJ89}Vz3g6>}4e&IS>i}eUc7>1eI9?aFVPF*2W6;Hz&dbs6n*QmSGb}pg>@QMKc*Q zOeG*=Vg!~M=7pPa?*c@@A2SW{#eH4r30G? zfoBm&P`k6c*nI>B-4+7{=nO?E8Q`^ZxnWeAPzYmngOCA{I1s)3KWi)W0nf1_n$n=l z7Z{2Lperf`x3SOywy~-aP`X9WP+*>X@c&vE7&16wlz_wmR18PufqRw!VNOvg3LV)B!OTUlQBA;8wM8T2-v&>J1$hAA!8imcY`EXXS2V$yh$68!)&k#$U}fT0eDM} z00l1|P%}QvAD9#w=1)(prj{u@19kRV7}Ah1O6v4>AzI_*+$tRMZ7%rnICUh(#K# zH414!yRj*@uvbBc+YL2g9`L2j7#t10Ym>DY`^fR0QLNjDTFQ&-mCF(tH6yG}2XcE4m0y3<|;)pxh!cifGSBTL`=w zHKe{CXi})^Lqb=G@WD1gI?JSF*cW7sD!T%q+3t$~t~C>O{m2lIse z&S-$LkOn#3pp-_CVKLK&IvQQ)gJnQPduBQTn#zQjSU77`rBDjX1Mt0K&X&$>N_Gdv zcou3@XwS6VfdK}?c~ui5q!o@d-Bw55#|d;oL%1gv7Haa~Lm-ClELe7wiWwYFczgkP zCrwE04~DHp2w@>w2C;k?ESi?0kr2gm;KIOAZlUF4Kvl3rUGQ!g!Tf}uEdrAGE;dA@ zJ!F}*L=w!j351st;0Kk);|9gd^8s=9`!dbE$|-r9z?9Ry9_cqhX&1>Slmv znZbf=c(eiE!^VhUNGpB8c?2_?G>Ltgx?I{{XVEf~C7Q6kXWf{UI&1qZ`K*63ajN&y ztE*M4HP!zh-l(bGENyDt>wfH$m#ySl#q9ABb%aiW-==)eU!f07(d`A8cbfJj9p4?~ zjS9bYN7NQPJg~D~|Ezbb<>#CS2_?U4C$p4lDt-HkKb&hkOh0ny?m(zXwxaRyp?gmI zziuafdcG5@>K<8A-?L-I8P{l{%xf@t>z4!30SEO{9ja&-OcQ)J3y$W?kau^?G5`FF zGhWmyu4CUz0#tpp6~8YX*gDi3Rz4IS7mEKpBCkx+mlUl-G%Ym7I%7XM zu3WECBgr5tvn=PUty$o{qbJ^mthZX0HKJx+v`#OirJ-}r53KEG^!??m#FHU)Li5P1 zrv0y~sS`W*dT00_R?PEpbE0OV49=Vu*VH81)c(dEvi1A=E{3xg;uGzUo z-lKOWPZ$?!ymRr3fPWcUk5@;2iL$Z$d-L|jv`cdOrBma?&ts0wXX;;G zWi9Zhl1;+u-??jKgded5@}U%vK#=mAlkAz@SWMm~n~Yo4GKj60e{YR@bbz zdx}f`&)xRXR5W?la+G30_Dux!&>v&WK8KRn0ZQ8Oha>5`f)x8(auhVz{E0=lBp3Ez z>!vfB3;%vekJ3`c>z>0Ck7WCQy;r=n(IPg?U48jhso8hu7ms~&(JoZ4SK9p=ISh(v zwt_u=_&vl1=X2lcV7RqL%qBDh~n6Sft=vGE6#oL*E)XY@|*LK znqNja@8p7*Rp&2=H(f{9^&l5`>0nJRGjV?i3rg(`uhMW&SKX?rh)~Dl)}Q=JFL1kc zS#me`%m^xZl`_x-?{&j{?sdV^t$X&(nRR8P`~h+9K2$jnsRdWo@-c_vwF&H3^JZn|XEGyge6nC}_=`qM9lXq&%&tI7qG z8$)Yy&mDGmzC?H|q}%TL6;U3K2ky!IU%RF1SsiKP`f>2k7Du=kuj&vpoeBaPd4M_wFzc#F`i!>b!UOLwTIvL80SKOg7i=~=b`u6kx%;iFL8feS$V0-vYJOi%pvzoK5; zvz*#B3vbd^q0HDc=e(JH_$l#^_-BG%&1zb9%!c@oilcny9sJ#)^+4BCh_WkTV^RKv zEL%;YeubxMxEphkc>b$~_5gjiP5-~skiSqqetzD^EQ)`u*T1(W2J90&UGlCH^{KO( zIR%?$`}HC3!TjG`qjl?UoSVI^qJqCY^5MKbm8To=P~5<)cB)eKYOO+&YG~UQJEN~2 zp+FAF=g&dfGajG#Z4$D2bnTJy<3FUi-T^a`4sZPGlep!V_QWR8nL6x~>^rP$4x6** zrre-&$1`H4{WE2+>4K@+KH6zodFJ`ExKJ(R%x}~iTcqtjY~S#41AjS;R#W5)?OsD) zWU}J$SC;Zn54EdxdsPG3_vGdK;=2{9Dc9OBf4MUYcPwlq&Hna+n)M&@FMIlSYtkpL z8;kv?=E#a;Q_oM$CZFA8SmfVw?TLBD@9u>YXSym8rB{j<#XWoK7vf59Ojs@cJ3G5paScaOW@4nBh1Q*^fzy&3K(>FZ?3({^dWrcY-Hw3sW? zTdAfX=hO5gY*)r6pOPb0tGw*FszZ*O-62;BSEcUh@$&C++&QN%Iu~bpG?~<}C-ln6 zCOToqeZQ4Ab?e=t?-0s2O{wajsVKYV#Yb#>_M=nennoV5%={x(zwySgX>O--TUG5J zVvmfjUHk*LVwM$Ad5=kOpgsD}i&wHHZd-d$4D{hcJ687x_9;^D%W0j ztMcb=YRCLgpBrBqlJ0JJxvnv+X71tg{R>QPHMQ2q-fQl!d19`A6PHuGChmOMWBiH6 zGrqQU0{^Y7|G6%BAC`O;|6!C`^SEt^&#t*ay-(H;31pWi9N)e-cFFb|@PCSy>RR9{ zSE)DC)AnnFo&FPDHOy4~5n1`ZmqlGk>+CCk(K`uwus?O6q&#$*>n`bvPn&UBiS?z|CP<>BJPF2 zsd0YoqN|4p=!C2${#yR~;Z3j#TGgait>VF)iSQi5DJ#y|v3ks@)^%vNQM=63nvaS; z;Mex908ea=HZ0!YvwmLq(R26AQM7{tb7*Iz#gze*k5Sh~JsG~@AW5KM+y4%G*%5Xv z2D-SfA>d_h=%wAG(-jt3QM>*AA159= zCK4mBJY40x2ix;(H2T~-G^?ZSN7uTND$I)Cwy8SdBuzG?l2+-m_3W-$^dBhs0$HZg z_K30N%-a+7_r^%~IoWAWH5+xNJ7zc5!u$1es5Cd1?qf?9jGe0vz4iBDA^m;fzsc|! zC^#n<^%UL=gP&9tuN%8S?>p4oPE5cPeT-hOe4@*)l$AW(&sbEa0eKFkFVx`xZL{p%a71v8~-XO zkBK*4{P5SPYhv%RtCLP9c+B04bldS@ZgS}i_)}dh zbBykdUi@wCy6CPGr2?ecB)t2=?t3veiSfNSfl65#pt;mC8G4^g9HCif%_^4k$rpG3 zZBIQrx+y!AdG3I$Dh&2VdwVJruQ2;SJm6P9^NtCRgt|_t0tBwZVY?y zC_>aU_9pRTU$G{Oyq14wvzY3UWjaK@K}yTt!fg_`{t^Up{IC)Gk)MASw%iHHJo)YR zjQQUkXeQbFk9wvq430+(%vg|gbxw%K&9^{7{jJKY$mN}IFep~np-AY9s` zl^)`)CtTY_nG@&5?c+PXn^ShriK{=|pg8um=#g^m*)FGLw=bvd>m|NEm8c`^LHzQ( z)Z$ciXlbFtj=`igk|e|Dj?VA#++A(ov?~Jd;C9k9!oX`OQL`y8QrXHSYDR7OvIiAc zb|0uZ`~a!_S8h#adhY6OT3nm!q5Hdi%L3|?V|?x6nc1a(6s^G)^}9{UO??Ggl|VONYspVbm~xvg z9$x!--|IO_DYeOCXy2JNE2gt#j!oF|QAo$fj9gC-_txD#J zy-MisO8N392hWV5^AgN{`QLUp)fnt2O71Psxxcn$p5$&@qY{0?RTmgtzGapv#O(6g z2iCaNaC{PWeO<_L2lObN<_N z>>KT8z}_jNJ2HJsCQJ~V#Y_+ckzp#O!fp!mf>_gIc!psU39n-*OGCL?#lW7&Hwo}Y z6DXEo^LU-oIyMhPVgV=-Ay=EUkWOhRpARY=K)DB*HIC2A1m>7N%~@dffvJHEq5vHg zLtP+>X~L=036g#sO(K%?fT$`Ac&RidY^PLe2SOADfujxVfrDr&F!*seWe|`$1w=+e z?={e#ptJOXY%bo*QzbWe`vVJ|4wNI*fvyBRf(|%=G0c!crc#Twv$%OJz#l2BB!k3r zouUiWJnsYKL!1^trGPS(A@GKP*arjYPhZf%LI7AfLk5AH9VXy|z7j3~O6nN}uF%1p zUY?1l6XQv>XVZ(tJX@-ddxv)oNsC}IC0QV2-6^eY1-QCqV3GnRIwG5Amx9_}d#5Cw zfkS{CIyZyuS35=fU?3(}x!NqU8_p~Nc1c5#v{lJqDiJBbqy4@rdDz;{EY z^%`wG6nza|-3#i0C7~!;Z>JjAIdPzWLx5-DiNdoykQ?phgS@9$W0sZ^@PQ!U+C$+4 z@p!;$sbYif*YURK3R0yQ2$7cC`i7)i7mYy6FfNcVCh9EI>!DcT*s_1kh_&GrZT(2gn=Sc*; z42J_=%?t^Mxwbaf0+L}NIyD=#wglm|L_3I$5&?M;*l=yVCJ@5a)zve#;~umyQ)pIm zE9j$vnu%i2_e%wEMwE9YzgDjkKmje#JYK{cRED)lz**laZOEkh~Aptb`EP=ivnm76?K2fmk`#3OJtXegsRz z67#yTHd`^mnw^o!)*@H{^66d2RCV}@qzE>i2kOW5Nq9C+0IQ~S69F94M8=J8R%U`g zX|zh2S$azs&0akTkfR}~!a4+9aT}C&gB@4|qRQn( zrk%wysDTX=D6$C&1c^n@AQZSN>k&-A`?HudV9oh;O<@KwcL0l+foHK)Oj2#L28=R- z@PO_q$_{Bq$+8DQZt$AMzN?$q&7@_|BnogIkBz;$aTf}$h=Xkw|5 zrUDNrH57qO<%Tr`1OFqDBLF8d5cmhJO@=#ALyr$0unx+J^<;#X(xgre19H3>91!DZ zM+6eo#%J)Fc%3}6l$zco4QLRyHny9`DU+eRB69|?oQi}|a0)&U83c4tkkHow%mD#( zSA%6Bu+(DEzv8K^_9Zp60JF5L82D9#M7(BkH3a|_IYgYv3osqP;Rp0|LYlq9yBSPB zq(Czr&mwCPG%F~4q5?)^AK+5PAjQlAihHUktgZpnvM_;24;->FNKu-_M3;;KLA9HW zWHlCZYAv8x2`>Xx@7*e9X=plF9|Dj_A(F-@5Eu7Ogql*r{W>^+`5Nr#t?>481cb>3 zPAO;sxAh7VfDaw0>Xf@l7;G2#;*Zq2wvWOn|Ah7}9EE$I*+e79QvwV#@0g zv@R{F0#D|3@c{G{@CJrDRdf?Nble?mmF|8+7*`jkuZW%yJ|S?z)Ctoj1UJ{5hZ`<> z|CZ%UkdQy0ef!uwpz6EBW!%?5PyGK7{LZDpbHmmh9FVwRN2b4+u1;wzkd+-OkN>gY z*_5Y$7Com68f%Lwb9YksQ?6}l**H5ngnj7r$-^;sHGVhSJ)+1*lF!fGxioY2!n{QO zZ~uH&&3k)2xiBDffo}g?T;uDJ=9d>9iv50VoZ6?hEjGa-S6sin-EhNkXOzdOh^-&| zT8gf<@vbI@JJ%of_b9v97C2$VeE{{D8D79hym#7V=BK~R838$A<>#)TW4Bce4$>SU zR)V2qcWhsq3nukPvs0qnWBLEmRd>lHyNjP>vS5s)>P@W9;j|4Fn`e=ZY8G@>!T)-B zE-NVei47+&+`LA4Q~#p!ViK&bX;S8}RrYIc46FROz=-<ka#=2Q6 zrc-1A$t&^EwX^24ZyYr?R*V*Gn*zPzcB5q34DX8f-w)Kp(pQg2>^>vUA1DT|1=R(# zBv*6uns{r5LJjtR-OxolZ$eW%#oZN8^?z#@GG0IgxTKh^_xTMwtuLE*Qk&akU+fR^ zy7Sk@fBSc@B1Sv2Z1InoAGgiP@Lc`z{J)r`+sGOgki;e1)BjB{TqUJo0~lGmCi ziqkHK!gfd^1F8r<*^M>7w<&`p-3JYecyoo-qd`#a^&WlxOo-R2={r0dmTqE-CSN-q z%1F+N$$U8@F1_nh)T4b}gPTzVr=I7DkfAYIQFZ+nn)u2I7Ja*K;q`e3?8j6mldC3O ztY)f>C)Z_FX{l)=Ptkw9iAX8^r8{s8AGkL2zSp&aTYaxGT=x96J$l2->_q}4o0aQb zG|fFZe@pKMbI9(zThq2}_OoSU4Didv&u8Pu)`n#N^dyT8w=YucV_nW+^+z1vBK^?$ z$UC+0^l8_W9*b+=uBp+!?rL|R0@Ohq%a7-_Z#xJunU5I&HA`cIa+fwu7z=aMs0DhHO>woCp9)c~Y&XdTG z?z-w8f}+FL+=JN$y@=g)b4jP~Z}5LJRM5dIW_W5Ir_E|>I90y4$GwI<%=biIGWM7Zt7}OyJ^%7d0)C^t5PbT--}9ZGA{E}4n(ywj z^wd4+|E)dOu$L1N_|L&WSAAvHR(~Y^Saxs>m+5J6^#7+g*N5PwPWy;1%TZt9FZh^1$%B8nV$t;jK8c5I_{)ZL`TD{;+H z#=*onq}Nj-yIIs4$gT4FneyR@x3A~=Cv9DVN-;0mDmMPxUs-+n*114O>WZghDf-PY z_VbjLE9?YaMkKuUX_R@lD7i-gV zkq8;_>Eod3jyLTC)VatV7Kq#>^g}|v!-ZkjZsu6S`TM38hn6w(wapW1h32?x&V||X z>NU%PmRTB4qzl))34K*?Y;WNL#=QrfTd#dJZZ2OCi2LHU-syUm?*S-b`N5H*n8IVB z{*v6NJ#*4kS0#w*P>(L*_cbLs_k-^?KQ%Qd-mHl5-RCx;8AW2)QufG4NzPA6u*m%L zQO0j~g?>-IDRwnJTxbmSK8MdekgHGqZ4Yl}!S@G_<$;U2k3tG}cg^AUwCZmgu-Pbla^ zZwQFCL`04f7fRlv!m*h@A|7-dlP_L!I?{AH-jSp?EDx%O|7)JWdcq!|SD}}Td`l;L zHpPV&_2?S~=;79q|6RF@avJSN^(Gr_X8waGTe&D$hFBG{_MK*aN`#MTMA0X43@a>0 zckD|DF%WOU*_MJ=wC9~Sf-&naQ|2z@`}-k}JJ}VC16o&`$o4Z_=14e9T#vZEE>m*d zJhzcqw#8&R&d?clhuuwb3n$KcVh*%U9+q5c$Ss|i@qO;`>5e|`FCLG6%U-8D6i9Y# zmh)yHOOBv+@n&T&mLG76)E^3M%1HT#Q6Lf>xP#0bS?=hVop>Q#u#~5Jrj{${va}q@xy7@`rj!2r-?3BDhV4{>`w^L~`69f~xyuEX zJ}8J@9-9QeSX%o@V||^QIPdftXYQqSpJlefb(^L%5_h@qK3gX?jx0zZmLOIh{@5Pl z^e1+v`~6N|5awUX|2VF>P_i*8ll+{I_nZ=k&?TPqnrseL}H}vj^QmDxnZZ ze~b>&bnwp`$ddoAoUTf(a^5)83;a-BIa$?z-gD)R+41Q^q7XU)&DiHydKkVh)Rn6V zSb1lQZ{O!(r6jX|$>98`t9#4W&#)hC7=%;U5Ry0R#*GJnZ_lr!Eky~gJf zHD!#${^%GqcBeG%pI2x64QD&QZ?XA~ep*2)ZGVP&WXsHn9aXucj(I;lf@)S$kJqaB z*l0|~t(otx_qYW=9k88^OR7J7(j{ZYx#M5@8~&dBOjo_}bww3v+UiNe*eHEUEVW8= zg8fEvf6q^BxBBVP$0mvuQ~BhoO&r2(+^hQUUFYOq0j$OldVtutULWaR`di!owjDm~IC~A-wRn3RHu>n=mgv>UqMp}f z$+qXzYr>1meYMdG_NT5-h zU*7zNT6gZr;d9}ptQ#0d%O5^%5BK@z&8XPuW?%$u`x_+=j520S{QYzlgpm1l;+dep zfUI}4H(oCSF@tZLV=%8=D&ZqHkgzs>%g%-E!HLZ)AE#qp&Rj+gAh3TO;8tF@^3E%2 z0s(_HU%>S_B)=m}L?FG_F!pd9)K38#X2ERSura)Z9Ht+p3_A8@P`andLc#b)4?)z7M zS^c6`+`QKTmO_RdgmpK*co#c480mBJyNg@gtp#a&mpxlT9Bo_K-1gPy7>dU{SvVBj zWl#QI@bdTI*6Hok+?lg}uX_6SqOYFFqa|omf->`uZ42jmaX1^#wD~SuZkx{kVV!vN zuinF_E^&li^2|*j5C#e3#8D5pHs>%8nQHZA)9eoZ>)qUXbKb()pJ*dlmxZ4%(*`c> z&tCsb?N(mv8*sOQ*ZpkM)*l+fPbAETVct#`mo*9vS_Vs4I336!UfNx+5#LY2V5Na@FEbtZZp zFfM|gWS)qe)?$}*(`;QlF?fNpC^Z5P)F{WHZWS>Q2|Smbz^cSjv4qV!GJ?cFuvsh& zJT;s_B(-Dc2JlebS6ivESR{3zE}|!=OJUVBXrR0V0mOw+5XG)#$Tea-usAi;@y$F9 zAG~)h=+OqQE$~V|8z`KP0adh_JW(Da9s;O`X5ra@=30xdPZb<;qc7D%Gr9N^Q81v)8AJ|r0oGnILk0eq&(RF7cQ ziA5|B+GGbI=uFvdkd+kURYb|q#Ahoboc_` znj=PAhcp)8elqj*wHzME^P03E+6s__5)%-`s=br=JYj7GPpi}d$*l|lmXa)PEN-x5 zusCKf4>SJ%g-f8+5CMNPL1SJGgi{t*Scym26XHRkG7y0QFOet!^*^cM7!*a=Y~q3P zo(vwy)AB8bP{7**b=E)yPXlRb5l?7N^#M9z7{)OTC_V^Te^IAF($y&kqEa!)N`p{u zg0vigW2)7nP#_e6tz`x!AMK!dyca|PypW~@GKsI27;K%=1XCHdx8DoF!t+rD-U<*h zZ}C(B_N6G39i$}#d!-e4XbpXwG6XeDY;4hj-NDc)=?6-@nUz2Q?I*Id3JJhONqy~di zs?`ayPSDDdk&yu;dQkBkCK6&i;UEaj1f;&6Gysjnfn!IXBnFi|5J1%fjz*AhR%!{n zKA>lFDtIO@Pm;+X;rK&UD&lxr98|fmaVnl#3qXQE+C&=0YsV9SLpjkg%su58QfCqI zdb>pF`r>5J-cAIjQJ~Rt#HFhVOd;rPBI9%_0Uv{8vv?wr@Q^#eZCb}bx1X%Hn+LSA z6Le-#k&c^I4E8Jpos1OoK~uU?V29ajlUidCplZg}36lC|`k<=-k1Ize5by$+8XO<3AO>F~F-Y{StrZzO6VSc7v|uI8 z(Uk;l1~Y>POngTS=bJw$YOx5WRt-tfNrJ(C}Wc^fenQ0mIQ4O zo(bI0pvMO&+uh)c@gfs4q;VA-U;qWA#q3PbN7Gn{4yA~VooV(V$wya#h;qA_4>ICF zLK==k$K_Dx3v$(#nf>6@<$RaBWlqqF^GaTInfDS!jAYqJg8uV5H!>&mH z4nQ)XT@F?I5O^XAUI+fM4CvbhY2pNoANa}H{|~s&i_#K ztl?#QbldZ^7MF{8w#P>gO1AW59m*3Q*>`5{1sH)>5bz~Zbx@T(Two6zK8tb}c2>-~ ze!Nh0{SZ0>(UNiZ*r}#vUBhet$_ZJanP=i|U#4SEU0-k^gbj;LQ-^J8OP~~vnm&JF z_F{(Iyyq-f@1I;pBBn0DNr%@N!vDv0OFr>OL&0n3*Zm6a;!3|=ktr`|PgZ5+yKLMs zHR|yjP0Xdk*&dVrpnNzUxxEiLS>1b+I%R1@F=jS7*grb@l9G1iz>6h6WzIT9PDGkA z)In!#T4vqWTHooh_1gQwKN;?^t)~z1PUQQXof7!B-(IioD=<%p+B>VFtL@v1`nlBV z7e_9_X;1eR=aATaWZ? z#mmpTd&b_%xYijmu}8ik^v_efe#e^SbsrDyJ9v|O=gCx3-6u$3AT}79pvvucn|omS zX5OrlD2rk=y&ec=gcjWP%sp4<@|G81NCS=RH#tTysQJoKtDo^_F&4^fe?iatE zq5AE5Et$4v*($%n`nzRwuf`8{pdB_8JwI{$RN<8P(r+vG#?_*eJmUiUhlsRsm@xL$et)vZdd@}HhU3KtTl6_?z=mG2$cOtlgoeo+%Pr^{V45DL~!9c z{C^klty=!v;3xTkGdgR+;E1t7INI~3;9fZAgYmoZ*pmL@q?+$bTKhQm7cS^HDw7?a$f%TZi11bxY2E{ZhaWNZa|MA3O@Q9<$5x&gbbdkMj>2n!Ac8 z(xAhO*qc$ukSr{J!YaD(_*v>5u)h@gx)`fnWS&XWK2Gj$>yj%NHGu-?0SUsb0!% zeOLJR-H4TKxx-UDPo1AUL*wZ9kQlxtwph)q8Zk~UPP52Zj*FX6)Q1z!!RIoJYxQq7 z&@=AwQ0pEorO!5#XA9C#pIdd$;c#k3e&JsH;Y=W?m_ z2z7@d_I%{Fe95ib#yW3OdONP-!?uDe1!>HK)hW>dUmRtT^otls_Kgqqs5|RSCDpFf zU^pM2xUQn!(Q)5?N8;H(7y0DMVH2u$ZVKwJAXY(bZ7nN5{kR@tt&ROCcW9m)?6p?--^U)&*HYI4 z^y}+CTk+F5RrgIVew*!5=o8>@&HT@jf3IAhdN^0PBghX{Ba8VhM?dlRJG)+Q5fIXg zmkgHv)}TEpW7uR1rYS2M0o-B7M8 z8^R+z3n(7vqwgAGk65z=&=LHiSbO}vvWHcc34ZgJLy5;|sIs1vOU3-;Glm>RRcLTJ zDkv&Zq@EB=_e)@sgAtcm$4CDOfUR5cBiPL zc=C}QyeTWM34#@v(8&>NL`e zHA`@XF`h$J?l&@ZF$>~|nRRpiX&XEByC@vguoWD(EvTM;=Tmb8iJP`sPO=?%c~E=M z5yD!mKQLK_E<08DcEs1Tadd0;KEgi{AL}Rj9ZK+y-VnE)a65l_SJLb;dP73 zrKxSjg{tb@Kf4#Ca9JYcN7 zBK}$ZEI#Yg%E_94O-sxVhEA)4gJ0u68J!Q$>3@FGc+h^si}d4$dEUoQvWMTVx1J;% zTEc37_^5J!lZWu%_PS@Eg8gH5$nP$BCekSm&yV_SeLrXK7T4!_#nrCsm%bPbxL3Y! zR%Z81c8H1hdRgJQR~x0=m!0!lwtmb`-Jmi#2^Yh^m+_n6F+=HS!~EVl0b!v?SHXUb z$)IM-BEIeId&oWni{Kx-aPid0!=$7CkfzSt+5GxZ;hFc%G!QEv9dUczT+U+@!Te4% z>A~>!jXV}1`PjVbmZ@Tk+O2(5vPKZ`zLZV5`z4&3EANewCM|R6_Oh>-oIJWNWb7?k zz4O_b468@CbM+QcPHeU8enKJt*Q|Zt-DLS8W#7-Nz4->x+*R7O&vg8@{O6~L-nTIx zjhv6Y(YD6>!dz?XasFF!;Onmq+v}lYe`Y^pLYf5>_?t?aqI$cn^PF;nY&)`DLB#Tlq%dhs(?@hf@4|AhYMT1tr}#Wh+yl28t2%@0cP#nn&wMC~ z`d*yjyY$*vk&cpHvFBJ6ddZl!z_oQhitsQoyw0@z)yunU^5ORD^W|k3$&9>{{$YRC zZ*+Y~*+0jSu~K&{Fbu|?bGS5P!4}KRgS0OH*j;gQ{`Q_b_NPyh@R8FPyuaqwUMc$b<&O+XI_| znh}YgulD^qU52gVeK4NxK{#~>(-3z{zj%_8)OlC$#z4LdVG&ng8M<<@SusWCW}b@v zw9v9P@YaS$C|G3ua^mu7c@v#G~{K45ITGo75hw5Xaeo1lP z3U|1Cig?J@1Z9~S50||ZJ~o-UV7%q=xyDsDt3O|m4;9p{SC*h(43yPCPt0iUo^DIY zj0le)Y#RQYuv$6qUB+HTQi!??a#qs6Q9N|T4T4;Cg%`c;kL8bhbq4~3eh~p$(%|5p zEASgP{L;hSCNBD5-S)>mR0GpV5fK^03Rb5|$%uJukBAjH$Am45OD@zG{&5d(ja^S4 ze|M3SBFxnE+##x9G1Q%{HkL5GhJ!tN5uAts?9zvL{vEe@|L)a4JwY42%n0Jr_Wl;x zA*sA!gL}9*XK?UFPLT;q{ifB2-FQnzGszrUbqdFKk*f91bkr8r9(WcH>@Obcd@!tlFjiih;X-NcG>KF z6R?oE+w_){!oVQDR@N)RlVY){7_>$!>!c$aVsKP%oemTj(^JFLwvbpvN)+9m*5pHK z1}3?*7)X~=KJ;NxhbU+~Je=(1NlTrL?&E;!Uc23p8r~p4DJs1@m90P z+taL>B5y$N`w->9aPS3nGVp;4VGXW<;iYCcxUxwY^dJSeAN3qd^?2W}UCP9Pr*;9> z4zOn3q*#dEsK?+sy&H7g^j2WiWP$<;1hyIA>=-VcL7pHa*%_JvlXa7YpfS3bW~YI0 zYXZPtW`JB`DhKQqsT2(cbje7SnkK2Fmj~VrEj2O#j?vh_SKCrr(A_c$OD!dp7IkTX znJran=o40mX!Z;df|@5#%0ikg8jeWPD@+n#kTKBlZ3*f-glB=>N+;$@4TE8z?-;bf zVqEME$&k=Aprg4Isny+t082=cQIA(+97Ea6kVB+GhiPQsJd{>@V>~@US{9E4N|vpH z&k?2iz+}J}sNEzo{;=egw|8noti#@K%855UTA~uH&`T|@licU`?fthjggI*iM87CxDr%;! zc0JW-U-J2Pr!xQGuDTA(MXUEAi1#6)!rME|ugLTY3KJJ-UG`BA9OAW}xHLG|?P;(YI-yyrucAjcXI(+itADCA%4`9!4>Wo3l?|F1aYF+ zJ@cJ&+(TH)*L(P3FUjIA1{|#kG0ALx>q@RKiiA+SQ!cHH#jKfx*gt{{**||?(sr~Z}658+}{<_ zHpPfd`j}0_qv%YF zcNV7B=u{+2cMx6M381u@ zWTK{3Ads>UOD7&`5buX$|c#9-n#(ep#j!bFhkOGu>|1%5tx9l%O(@X zO`QmM3P^r~xmTGBI}r5LcLF7t6vJW(5I7Sx3=i_%bfb10mw?j}xZY-|u(hrpoN|FM zU54#u>y&0fju>1LbsD`zVlaU@3tfu_xQfuM3SLhb;DcJyENQjPhQ7vDhDSQrnn)6oS5k;xdi)KnyqvUFlGIH0vSY*!JeI?`ysoy4U=tj%sFMFD4WRxv208Xo|0 z0OlbOpeoV;5VkX`f@J1(0o;a04^YstP_?C-Zvo#KAf1?nwT18y1{lv^hzSTNV8*Ig zWjN5l)L_9t)uF(Rp3N0=m^!`&piBnA5pjRK?yUmM6o5~d5`+i@;9UkAFXCo^Z*I#72MW{|SPU_K_*l48JkbUeY(&;qW(cCclF!9-J|uR#>)v;w5Us)bl3 z3`9W~D8b_CR7{mpB@o9Th+q=|9!0OZt27(%bz?|nfSt=`0(3*AD3oF{fh}e0lo~t9 z$RIE@lh@(>WfXh^F!%@kzkePaQ*<4tStJF(RgR!3TiBp)Z83yqOLdw$dtD%c4h-^O zc0#e3YPDebn$nBG>W~1%7X&p(06`+L)PtRd4DM+)Mnh*xp{J}j%`7DX@G-BOZpMRl zc(AA9by^&VD)8>}fC z?4i5DcClH?WJOyg`XyMv$VnV8lk#^ViliEA7=StWL#|b7bQ~SWL`EiwMZ7v~AXE#0 zuh=dv7!ZbISYSA*?kAa%n&u>s1xRPWLBa*EBD2`I1d_>f{P2hcH|P|Miws0AVhDI1 zH#D2YQxUjqCIIASswHER5o%WP_*Nw1!MrOq0>c8FTtK6trZr{I?4~k;6vR)`EEW-% z;(*(IFrmTYgCMB@gbM~!CcFrMbLebb5rF=vL%CsK=!B#J@(pP08b9*+;5L<~1;ZX= zXDAok-tqt=CnGeIsZwhU-Ap=g$1^<1;CQaUg9Aa9&JnAE5O|_W*6#(zJ3K93(Z%Wv zWjOedFgP;ZAi;xnH{f8G+y#YYMh?HB48b#jT~!P2pidC%Bu%ct(DAXUJ}HSKNI+^V z>Mj{iooQUZ{hV&L{d=X6$s9f3AWx&L$8EmP6K;ZAk-?w zfpHrdOo_qx4a@==Y^$J$wXj+*<1ywwzW=_k?ISgJH?1D$uKzWc>Q|+%l=m*@72U~w~!a%R~G#{@8GSu zduOd`s&3yF@ip)9}r$<-z4wn48ZF-^K zrmVg&-zvW*1Ao53x3)8t$EF!Yhe$4|CsK(^C!i3zR%2gw+cD7h&}k8h91kDNL@(2akkqE z_c7l>)FV`B&7Gsx8T&us?@;E?_uanwYa!~+%cHjKFB!!LDt#8F-#N9Ua_z!32Nq*$ zP9MZ9VVqgAZ$ZY5(i1%=jwSkkz4LO;lCxJ9Gf?KQoj10p~F#uH^_3fm~9Vyh+R zetTt0W`Dha;a_T$QdTQc-SC{szV1$){tzR1Spu{CWcT?kTcxAM?t6-!u!_ukOr3>d zp}YwW;1&e=CIsAWG+1~l zkX_-C!5=!pOaTlJt2fANH1KPi#YGy822|dW!Cj056kig+(O|+FBtkQRK%kSsKpPx% z0v-rxd8+7IoJ&9xJ;107c9aMk@GLgM1GqroT|^eRr13>OE{`ioYm(Be616pygn_42 z5(0pE!@vR3Erh3RZ^m7yTGw>I2Y*&r5TtclB~mm8qdjc)>M{ zVV-N4EF{_S8ix)(D_RXzRD)%pDmZjlYIJn~9-i;5!)gdnT3i!}M3=(@=mp@V z(1H-Y2dy+f1*aL}gc^jWi*r$c21(<>Jsl(n=YkNi3*2fim6X!q)RbBwFTfz<5a0nC zE>+PK&}d8KD36DyY=)vM8pA`b$UGrrOgYn+h@FG59&T%2j(H*lIVHIBoCVM#;} zRzPWLbW=1J%cZ800@O%Pr%Mb}h|nk$s$5Vs1D6IqE1HALcZGMP>pY$F!(auSRJ${h zUP^%#+-AVQ=fTjnYB~(dazRIPs3CZ{hDY$=!UG!h%-x01)Mz7*fW$#VFz&@rg{73~ zL3gGjsdgBaDk~|4!C=lXDox08TGRy1Pe(w6B%G5HhNUTFaUAgZv{E<23ZetudPzA=}C?1tkO+{lp z3KZ37Yyh^v8i#OiCqv2RO6pmIfot>#*@k&aHpneuKt)!ZYrIj3Q@^C>>3+(QVN1IS64>+1ihm;s- zTr`dA5iq{LL`^8Bh9J=SV2>g@gzy|~Lb|L(4L-pL_B>gsM*xWhl`D=K=#WMORACID zJC?$s3e@gasI0^YcG9#`7@EX%aX}YEkMDRGumd@PkB*irVQ6f0H9A_zhto=3AV)dq zOU2X_H8xsEck)2ydlMZbNOX!NfbI;>4^cU!29$b$9S~h`tr4tSG{(tKukoPTjvB$Y z1YYBTW%@NEoYb@u1D1(qdKB33E|C-@7Hq`mY8u`Js|5eGb5Su?u7XnOP&BO+Ekx`t z#yO#*OKBuIS_ZxdB)Y&x;-Y9IB}#&%rXs)6xG;LY6%CYFa+>iU@1*FCsb-c5h|TThfP=||Mkz-TEB_! z-?~pYi%#pQ!{Kg-LAI{~BY2c1J8_J25SxAw8{@muXgp!TQ4|f2WA`P}ZXfE0tEq%K zY-Uebx{{f=rXQg&{$EGu(~>|ChH-)}LV&#Jwpe5@ zeuSb!Qwh82C=*>A^dNLe`vl>kgMw`x_6ykO=(Rb&*Litnc%J7++D_-CSF}B~OvHiB zBAzG~N<~5YoD@N~xBBxN6!N+_K)E$5cwxi?WQtT*&K(h~Yn(Tj{#C+K{I!jx#gf$Mr+*kxiY z1=B4Cw`g@HmQ&eDnupB;uKvFh7i;vA=TCESSko+%Jws4A28DbpSJ2VAEM0GOb5)?x zLeC)lHRd7B+<~67;c>QJC6GG?cu0Gjjxsa`(N5oQ$3a;Vpe{@oEL%qzgPKclKr;_1;l4FCeMm7bIYh33?E!uwg9DOSx(QOz0n`*4weB7O arcX4$!}PZ9>Fzt1?epsEs1A~?ApQYe8d3`Y literal 0 HcmV?d00001 diff --git a/library/core/src/test/assets/flac/bear_with_id3_enabled.flac.0.dump b/library/core/src/test/assets/flac/bear_with_id3_enabled.flac.0.dump new file mode 100644 index 0000000000..47402623c1 --- /dev/null +++ b/library/core/src/test/assets/flac/bear_with_id3_enabled.flac.0.dump @@ -0,0 +1,164 @@ +seekMap: + isSeekable = false + duration = 2741000 + getPosition(0) = [[timeUs=0, position=0]] +numberOfTracks = 1 +track 0: + format: + bitrate = 1536000 + id = null + containerMimeType = null + sampleMimeType = audio/flac + maxInputSize = 5776 + width = -1 + height = -1 + frameRate = -1.0 + rotationDegrees = 0 + pixelWidthHeightRatio = 1.0 + channelCount = 2 + sampleRate = 48000 + pcmEncoding = -1 + encoderDelay = 0 + encoderPadding = 0 + subsampleOffsetUs = 9223372036854775807 + selectionFlags = 0 + language = null + drmInitData = - + metadata = entries=[TXXX: description=ID: value=105519843, TIT2: description=null: value=那么爱你为什么, TPE1: description=null: value=阿强, TALB: description=null: value=华丽的外衣, TXXX: description=ID: value=105519843, APIC: mimeType=image/jpeg, description=] + initializationData: + data = length 42, hash 83F6895 + total output bytes = 164431 + sample count = 33 + sample 0: + time = 0 + flags = 1 + data = length 5030, hash D2B60530 + sample 1: + time = 85333 + flags = 1 + data = length 5066, hash 4C932A54 + sample 2: + time = 170666 + flags = 1 + data = length 5112, hash 7E5A7B61 + sample 3: + time = 256000 + flags = 1 + data = length 5044, hash 7EF93F13 + sample 4: + time = 341333 + flags = 1 + data = length 4943, hash DE7E27F8 + sample 5: + time = 426666 + flags = 1 + data = length 5121, hash 6D0D0B40 + sample 6: + time = 512000 + flags = 1 + data = length 5068, hash 9924644F + sample 7: + time = 597333 + flags = 1 + data = length 5143, hash 6C34F0CE + sample 8: + time = 682666 + flags = 1 + data = length 5109, hash E3B7BEFB + sample 9: + time = 768000 + flags = 1 + data = length 5129, hash 44111D9B + sample 10: + time = 853333 + flags = 1 + data = length 5031, hash 9D55EA53 + sample 11: + time = 938666 + flags = 1 + data = length 5119, hash E1CB9BA6 + sample 12: + time = 1024000 + flags = 1 + data = length 5360, hash 17265C5D + sample 13: + time = 1109333 + flags = 1 + data = length 5340, hash A90FDDF1 + sample 14: + time = 1194666 + flags = 1 + data = length 5162, hash 31F65AD5 + sample 15: + time = 1280000 + flags = 1 + data = length 5168, hash F2394F2D + sample 16: + time = 1365333 + flags = 1 + data = length 5776, hash 58437AB3 + sample 17: + time = 1450666 + flags = 1 + data = length 5394, hash EBAB20A8 + sample 18: + time = 1536000 + flags = 1 + data = length 5168, hash BF37C7A5 + sample 19: + time = 1621333 + flags = 1 + data = length 5324, hash 59546B7B + sample 20: + time = 1706666 + flags = 1 + data = length 5172, hash 6036EF0B + sample 21: + time = 1792000 + flags = 1 + data = length 5102, hash 5A131071 + sample 22: + time = 1877333 + flags = 1 + data = length 5111, hash 3D9EBB3B + sample 23: + time = 1962666 + flags = 1 + data = length 5113, hash 61101D4F + sample 24: + time = 2048000 + flags = 1 + data = length 5229, hash D2E55742 + sample 25: + time = 2133333 + flags = 1 + data = length 5162, hash 7F2E97FA + sample 26: + time = 2218666 + flags = 1 + data = length 5255, hash D92A782 + sample 27: + time = 2304000 + flags = 1 + data = length 5196, hash 98FE5138 + sample 28: + time = 2389333 + flags = 1 + data = length 5214, hash 3D35C38C + sample 29: + time = 2474666 + flags = 1 + data = length 5211, hash 7E25420F + sample 30: + time = 2560000 + flags = 1 + data = length 5230, hash 2AD96FBC + sample 31: + time = 2645333 + flags = 1 + data = length 3384, hash 938BCDD9 + sample 32: + time = 2730666 + flags = 1 + data = length 445, hash A388E3D6 +tracksEnded = true diff --git a/library/core/src/test/assets/flac/bear_with_picture.flac.0.dump b/library/core/src/test/assets/flac/bear_with_picture.flac.0.dump index e35dcc2081..93e33e7c23 100644 --- a/library/core/src/test/assets/flac/bear_with_picture.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_with_picture.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[Picture: mimeType=image/png, description=] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump b/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump index e35dcc2081..f7f67b12ab 100644 --- a/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_with_vorbis_comments.flac.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[VC: TITLE=test title, VC: ARTIST=test artist] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flv/sample.flv.0.dump b/library/core/src/test/assets/flv/sample.flv.0.dump index 098311a310..753896a112 100644 --- a/library/core/src/test/assets/flv/sample.flv.0.dump +++ b/library/core/src/test/assets/flv/sample.flv.0.dump @@ -24,6 +24,7 @@ track 8: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 9529 @@ -229,6 +230,7 @@ track 9: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B diff --git a/library/core/src/test/assets/mkv/sample.mkv.0.dump b/library/core/src/test/assets/mkv/sample.mkv.0.dump index d91f845199..d53aa8e5ad 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.0.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.0.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 2: selectionFlags = 1 language = und drmInitData = - + metadata = null initializationData: total output bytes = 12120 sample count = 29 diff --git a/library/core/src/test/assets/mkv/sample.mkv.1.dump b/library/core/src/test/assets/mkv/sample.mkv.1.dump index d9013a762e..3bc74fa08c 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.1.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.1.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B @@ -130,6 +131,7 @@ track 2: selectionFlags = 1 language = und drmInitData = - + metadata = null initializationData: total output bytes = 8778 sample count = 21 diff --git a/library/core/src/test/assets/mkv/sample.mkv.2.dump b/library/core/src/test/assets/mkv/sample.mkv.2.dump index b0f943e2f2..1978df9fb3 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.2.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.2.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B @@ -86,6 +87,7 @@ track 2: selectionFlags = 1 language = und drmInitData = - + metadata = null initializationData: total output bytes = 4180 sample count = 10 diff --git a/library/core/src/test/assets/mkv/sample.mkv.3.dump b/library/core/src/test/assets/mkv/sample.mkv.3.dump index 460aca0e90..fb88891571 100644 --- a/library/core/src/test/assets/mkv/sample.mkv.3.dump +++ b/library/core/src/test/assets/mkv/sample.mkv.3.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash F6F3D010 data = length 10, hash 7A0D0F2B @@ -50,6 +51,7 @@ track 2: selectionFlags = 1 language = und drmInitData = - + metadata = null initializationData: total output bytes = 1254 sample count = 3 diff --git a/library/core/src/test/assets/mkv/subsample_encrypted_altref.webm.0.dump b/library/core/src/test/assets/mkv/subsample_encrypted_altref.webm.0.dump index 89a7514784..e20c21d9ea 100644 --- a/library/core/src/test/assets/mkv/subsample_encrypted_altref.webm.0.dump +++ b/library/core/src/test/assets/mkv/subsample_encrypted_altref.webm.0.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = 1305012705 + metadata = null initializationData: total output bytes = 39 sample count = 1 diff --git a/library/core/src/test/assets/mkv/subsample_encrypted_noaltref.webm.0.dump b/library/core/src/test/assets/mkv/subsample_encrypted_noaltref.webm.0.dump index 1caa3f9f27..904ca8715e 100644 --- a/library/core/src/test/assets/mkv/subsample_encrypted_noaltref.webm.0.dump +++ b/library/core/src/test/assets/mkv/subsample_encrypted_noaltref.webm.0.dump @@ -24,6 +24,7 @@ track 1: selectionFlags = 0 language = null drmInitData = 1305012705 + metadata = null initializationData: total output bytes = 24 sample count = 1 diff --git a/library/core/src/test/assets/mp3/bear.mp3.0.dump b/library/core/src/test/assets/mp3/bear.mp3.0.dump index 5c8700fed1..e597f0a721 100644 --- a/library/core/src/test/assets/mp3/bear.mp3.0.dump +++ b/library/core/src/test/assets/mp3/bear.mp3.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf54.20.4] initializationData: total output bytes = 44544 sample count = 116 diff --git a/library/core/src/test/assets/mp3/bear.mp3.1.dump b/library/core/src/test/assets/mp3/bear.mp3.1.dump index c2f37973b7..a7f7f699fb 100644 --- a/library/core/src/test/assets/mp3/bear.mp3.1.dump +++ b/library/core/src/test/assets/mp3/bear.mp3.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf54.20.4] initializationData: total output bytes = 29568 sample count = 77 diff --git a/library/core/src/test/assets/mp3/bear.mp3.2.dump b/library/core/src/test/assets/mp3/bear.mp3.2.dump index 543cf44cc0..981a141120 100644 --- a/library/core/src/test/assets/mp3/bear.mp3.2.dump +++ b/library/core/src/test/assets/mp3/bear.mp3.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf54.20.4] initializationData: total output bytes = 14592 sample count = 38 diff --git a/library/core/src/test/assets/mp3/bear.mp3.3.dump b/library/core/src/test/assets/mp3/bear.mp3.3.dump index a87b7d6d37..744244bf47 100644 --- a/library/core/src/test/assets/mp3/bear.mp3.3.dump +++ b/library/core/src/test/assets/mp3/bear.mp3.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf54.20.4] initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/mp3/play-trimmed.mp3.0.dump b/library/core/src/test/assets/mp3/play-trimmed.mp3.0.dump index 96b0cd259c..75cf53241f 100644 --- a/library/core/src/test/assets/mp3/play-trimmed.mp3.0.dump +++ b/library/core/src/test/assets/mp3/play-trimmed.mp3.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 418 sample count = 1 diff --git a/library/core/src/test/assets/mp3/play-trimmed.mp3.1.dump b/library/core/src/test/assets/mp3/play-trimmed.mp3.1.dump index 96b0cd259c..75cf53241f 100644 --- a/library/core/src/test/assets/mp3/play-trimmed.mp3.1.dump +++ b/library/core/src/test/assets/mp3/play-trimmed.mp3.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 418 sample count = 1 diff --git a/library/core/src/test/assets/mp3/play-trimmed.mp3.2.dump b/library/core/src/test/assets/mp3/play-trimmed.mp3.2.dump index 96b0cd259c..75cf53241f 100644 --- a/library/core/src/test/assets/mp3/play-trimmed.mp3.2.dump +++ b/library/core/src/test/assets/mp3/play-trimmed.mp3.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 418 sample count = 1 diff --git a/library/core/src/test/assets/mp3/play-trimmed.mp3.3.dump b/library/core/src/test/assets/mp3/play-trimmed.mp3.3.dump index 96b0cd259c..75cf53241f 100644 --- a/library/core/src/test/assets/mp3/play-trimmed.mp3.3.dump +++ b/library/core/src/test/assets/mp3/play-trimmed.mp3.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 418 sample count = 1 diff --git a/library/core/src/test/assets/mp3/play-trimmed.mp3.unklen.dump b/library/core/src/test/assets/mp3/play-trimmed.mp3.unklen.dump index d28cca025b..a7b96270cd 100644 --- a/library/core/src/test/assets/mp3/play-trimmed.mp3.unklen.dump +++ b/library/core/src/test/assets/mp3/play-trimmed.mp3.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 418 sample count = 1 diff --git a/library/core/src/test/assets/mp4/sample.mp4.0.dump b/library/core/src/test/assets/mp4/sample.mp4.0.dump index 37e1054f79..1b5246529b 100644 --- a/library/core/src/test/assets/mp4/sample.mp4.0.dump +++ b/library/core/src/test/assets/mp4/sample.mp4.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 9529 diff --git a/library/core/src/test/assets/mp4/sample.mp4.1.dump b/library/core/src/test/assets/mp4/sample.mp4.1.dump index 6284e85034..666e4b7aea 100644 --- a/library/core/src/test/assets/mp4/sample.mp4.1.dump +++ b/library/core/src/test/assets/mp4/sample.mp4.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 7464 diff --git a/library/core/src/test/assets/mp4/sample.mp4.2.dump b/library/core/src/test/assets/mp4/sample.mp4.2.dump index 15b56a036f..8985adc95b 100644 --- a/library/core/src/test/assets/mp4/sample.mp4.2.dump +++ b/library/core/src/test/assets/mp4/sample.mp4.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 4019 diff --git a/library/core/src/test/assets/mp4/sample.mp4.3.dump b/library/core/src/test/assets/mp4/sample.mp4.3.dump index 073d5c774a..d902c21ed8 100644 --- a/library/core/src/test/assets/mp4/sample.mp4.3.dump +++ b/library/core/src/test/assets/mp4/sample.mp4.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = entries=[TSSE: description=null: value=Lavf56.1.0] initializationData: data = length 2, hash 5F7 total output bytes = 470 diff --git a/library/core/src/test/assets/mp4/sample_fragmented.mp4.0.dump b/library/core/src/test/assets/mp4/sample_fragmented.mp4.0.dump index faa8a015ca..65f59d78b5 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented.mp4.0.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented.mp4.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 18257 diff --git a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.0.dump b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.0.dump index 04e2f6f0a0..27838bd2a8 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.0.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 18257 diff --git a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.1.dump b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.1.dump index 48a7623a7d..ea6deafcad 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.1.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 13359 diff --git a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.2.dump b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.2.dump index 7522891e14..d14025e0b1 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.2.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 6804 diff --git a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.3.dump b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.3.dump index afd24e40ce..d08a1e93ad 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.3.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented_seekable.mp4.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 10 diff --git a/library/core/src/test/assets/mp4/sample_fragmented_sei.mp4.0.dump b/library/core/src/test/assets/mp4/sample_fragmented_sei.mp4.0.dump index 87f2cc6714..d596a77f78 100644 --- a/library/core/src/test/assets/mp4/sample_fragmented_sei.mp4.0.dump +++ b/library/core/src/test/assets/mp4/sample_fragmented_sei.mp4.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 29, hash 4746B5D9 data = length 10, hash 7A0D0F2B @@ -170,6 +171,7 @@ track 1: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: data = length 5, hash 2B7623A total output bytes = 18257 @@ -379,6 +381,7 @@ track 3: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ogg/bear.opus.0.dump b/library/core/src/test/assets/ogg/bear.opus.0.dump index f8eadb16fa..4207420d5a 100644 --- a/library/core/src/test/assets/ogg/bear.opus.0.dump +++ b/library/core/src/test/assets/ogg/bear.opus.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 19, hash BFE794DB data = length 8, hash CA22068C diff --git a/library/core/src/test/assets/ogg/bear.opus.1.dump b/library/core/src/test/assets/ogg/bear.opus.1.dump index 593116a22e..ffe458f2aa 100644 --- a/library/core/src/test/assets/ogg/bear.opus.1.dump +++ b/library/core/src/test/assets/ogg/bear.opus.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 19, hash BFE794DB data = length 8, hash CA22068C diff --git a/library/core/src/test/assets/ogg/bear.opus.2.dump b/library/core/src/test/assets/ogg/bear.opus.2.dump index beabde35c8..9235aff882 100644 --- a/library/core/src/test/assets/ogg/bear.opus.2.dump +++ b/library/core/src/test/assets/ogg/bear.opus.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 19, hash BFE794DB data = length 8, hash CA22068C diff --git a/library/core/src/test/assets/ogg/bear.opus.3.dump b/library/core/src/test/assets/ogg/bear.opus.3.dump index d0f3e2948b..c19eb7efb2 100644 --- a/library/core/src/test/assets/ogg/bear.opus.3.dump +++ b/library/core/src/test/assets/ogg/bear.opus.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 19, hash BFE794DB data = length 8, hash CA22068C diff --git a/library/core/src/test/assets/ogg/bear.opus.unklen.dump b/library/core/src/test/assets/ogg/bear.opus.unklen.dump index ec8f8b8665..55d08fc273 100644 --- a/library/core/src/test/assets/ogg/bear.opus.unklen.dump +++ b/library/core/src/test/assets/ogg/bear.opus.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 19, hash BFE794DB data = length 8, hash CA22068C diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump index 365040c46c..896c8ad6c5 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump index ff020b32fd..e85b504a39 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 113666 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump index 88deeaebd3..63bc130424 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 55652 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump index 2eb7be2454..fdebce7743 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 445 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump index 365040c46c..896c8ad6c5 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump index c07b2f3844..b09453f208 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump index a7fce3c901..4ab08524ae 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 113666 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump index d05d36bd1e..3a846736d2 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 55652 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump index 376cb68499..5bf1a92472 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 445 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump index 44a93a6037..1a0686c5fd 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = entries=[] initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_vorbis.ogg.0.dump b/library/core/src/test/assets/ogg/bear_vorbis.ogg.0.dump index 138e13c54d..2ce3f2374c 100644 --- a/library/core/src/test/assets/ogg/bear_vorbis.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_vorbis.ogg.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash 9A8FF207 data = length 3832, hash 8A406249 diff --git a/library/core/src/test/assets/ogg/bear_vorbis.ogg.1.dump b/library/core/src/test/assets/ogg/bear_vorbis.ogg.1.dump index 6b37dfb6cf..4a8f664d6f 100644 --- a/library/core/src/test/assets/ogg/bear_vorbis.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_vorbis.ogg.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash 9A8FF207 data = length 3832, hash 8A406249 diff --git a/library/core/src/test/assets/ogg/bear_vorbis.ogg.2.dump b/library/core/src/test/assets/ogg/bear_vorbis.ogg.2.dump index 9620979357..078970b0ef 100644 --- a/library/core/src/test/assets/ogg/bear_vorbis.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_vorbis.ogg.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash 9A8FF207 data = length 3832, hash 8A406249 diff --git a/library/core/src/test/assets/ogg/bear_vorbis.ogg.3.dump b/library/core/src/test/assets/ogg/bear_vorbis.ogg.3.dump index 18d869030d..74ae3cfbd6 100644 --- a/library/core/src/test/assets/ogg/bear_vorbis.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_vorbis.ogg.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash 9A8FF207 data = length 3832, hash 8A406249 diff --git a/library/core/src/test/assets/ogg/bear_vorbis.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_vorbis.ogg.unklen.dump index 2686f740db..0855e961fc 100644 --- a/library/core/src/test/assets/ogg/bear_vorbis.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_vorbis.ogg.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 30, hash 9A8FF207 data = length 3832, hash 8A406249 diff --git a/library/core/src/test/assets/rawcc/sample.rawcc.0.dump b/library/core/src/test/assets/rawcc/sample.rawcc.0.dump index adeaaf6a37..9aca7479d0 100644 --- a/library/core/src/test/assets/rawcc/sample.rawcc.0.dump +++ b/library/core/src/test/assets/rawcc/sample.rawcc.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 978 sample count = 150 diff --git a/library/core/src/test/assets/ts/sample.ac3.0.dump b/library/core/src/test/assets/ts/sample.ac3.0.dump index a1d29a77dc..de37c06d05 100644 --- a/library/core/src/test/assets/ts/sample.ac3.0.dump +++ b/library/core/src/test/assets/ts/sample.ac3.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 13281 sample count = 8 diff --git a/library/core/src/test/assets/ts/sample.ac4.0.dump b/library/core/src/test/assets/ts/sample.ac4.0.dump index 03ae07707a..9df4b77faf 100644 --- a/library/core/src/test/assets/ts/sample.ac4.0.dump +++ b/library/core/src/test/assets/ts/sample.ac4.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 7594 sample count = 19 diff --git a/library/core/src/test/assets/ts/sample.adts.0.dump b/library/core/src/test/assets/ts/sample.adts.0.dump index 93d7b776c0..9b24043fb3 100644 --- a/library/core/src/test/assets/ts/sample.adts.0.dump +++ b/library/core/src/test/assets/ts/sample.adts.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 30797 @@ -625,6 +626,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample.eac3.0.dump b/library/core/src/test/assets/ts/sample.eac3.0.dump index b0b2779958..5841500a7a 100644 --- a/library/core/src/test/assets/ts/sample.eac3.0.dump +++ b/library/core/src/test/assets/ts/sample.eac3.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 216000 sample count = 54 diff --git a/library/core/src/test/assets/ts/sample.ps.0.dump b/library/core/src/test/assets/ts/sample.ps.0.dump index 06ef48de7a..09b3281b2f 100644 --- a/library/core/src/test/assets/ts/sample.ps.0.dump +++ b/library/core/src/test/assets/ts/sample.ps.0.dump @@ -24,6 +24,7 @@ track 192: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 1671 sample count = 4 @@ -64,6 +65,7 @@ track 224: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash 743CC6F8 total output bytes = 44056 diff --git a/library/core/src/test/assets/ts/sample.ps.1.dump b/library/core/src/test/assets/ts/sample.ps.1.dump index ce0f223bd4..5fc9d32875 100644 --- a/library/core/src/test/assets/ts/sample.ps.1.dump +++ b/library/core/src/test/assets/ts/sample.ps.1.dump @@ -24,6 +24,7 @@ track 192: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 @@ -48,6 +49,7 @@ track 224: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash 743CC6F8 total output bytes = 33949 diff --git a/library/core/src/test/assets/ts/sample.ps.2.dump b/library/core/src/test/assets/ts/sample.ps.2.dump index 7d0a77037d..fefe6fa45c 100644 --- a/library/core/src/test/assets/ts/sample.ps.2.dump +++ b/library/core/src/test/assets/ts/sample.ps.2.dump @@ -24,6 +24,7 @@ track 192: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 @@ -48,6 +49,7 @@ track 224: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash 743CC6F8 total output bytes = 19791 diff --git a/library/core/src/test/assets/ts/sample.ps.3.dump b/library/core/src/test/assets/ts/sample.ps.3.dump index a7258cd7ef..5a97e3a1ae 100644 --- a/library/core/src/test/assets/ts/sample.ps.3.dump +++ b/library/core/src/test/assets/ts/sample.ps.3.dump @@ -24,6 +24,7 @@ track 192: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 @@ -48,6 +49,7 @@ track 224: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash 743CC6F8 total output bytes = 1585 diff --git a/library/core/src/test/assets/ts/sample.ps.unklen.dump b/library/core/src/test/assets/ts/sample.ps.unklen.dump index dda6de8ab4..9e619e94f3 100644 --- a/library/core/src/test/assets/ts/sample.ps.unklen.dump +++ b/library/core/src/test/assets/ts/sample.ps.unklen.dump @@ -24,6 +24,7 @@ track 192: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 1671 sample count = 4 @@ -64,6 +65,7 @@ track 224: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash 743CC6F8 total output bytes = 44056 diff --git a/library/core/src/test/assets/ts/sample.ts.0.dump b/library/core/src/test/assets/ts/sample.ts.0.dump index b45a32fd3a..4bc1978d18 100644 --- a/library/core/src/test/assets/ts/sample.ts.0.dump +++ b/library/core/src/test/assets/ts/sample.ts.0.dump @@ -24,6 +24,7 @@ track 256: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash CE183139 total output bytes = 45026 @@ -57,6 +58,7 @@ track 257: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: total output bytes = 5015 sample count = 4 @@ -97,6 +99,7 @@ track 8448: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample.ts.1.dump b/library/core/src/test/assets/ts/sample.ts.1.dump index 5c361e1246..97471beff8 100644 --- a/library/core/src/test/assets/ts/sample.ts.1.dump +++ b/library/core/src/test/assets/ts/sample.ts.1.dump @@ -24,6 +24,7 @@ track 256: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash CE183139 total output bytes = 45026 @@ -57,6 +58,7 @@ track 257: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: total output bytes = 5015 sample count = 4 @@ -97,6 +99,7 @@ track 8448: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample.ts.2.dump b/library/core/src/test/assets/ts/sample.ts.2.dump index cec91ae2b9..7039c71566 100644 --- a/library/core/src/test/assets/ts/sample.ts.2.dump +++ b/library/core/src/test/assets/ts/sample.ts.2.dump @@ -24,6 +24,7 @@ track 256: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash CE183139 total output bytes = 45026 @@ -57,6 +58,7 @@ track 257: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: total output bytes = 5015 sample count = 4 @@ -97,6 +99,7 @@ track 8448: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample.ts.3.dump b/library/core/src/test/assets/ts/sample.ts.3.dump index d8238e1626..b6c11646a2 100644 --- a/library/core/src/test/assets/ts/sample.ts.3.dump +++ b/library/core/src/test/assets/ts/sample.ts.3.dump @@ -24,6 +24,7 @@ track 256: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash CE183139 total output bytes = 0 @@ -49,6 +50,7 @@ track 257: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: total output bytes = 2508 sample count = 2 @@ -81,6 +83,7 @@ track 8448: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample.ts.unklen.dump b/library/core/src/test/assets/ts/sample.ts.unklen.dump index 56f6b01a9c..904add8f9e 100644 --- a/library/core/src/test/assets/ts/sample.ts.unklen.dump +++ b/library/core/src/test/assets/ts/sample.ts.unklen.dump @@ -24,6 +24,7 @@ track 256: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 22, hash CE183139 total output bytes = 45026 @@ -57,6 +58,7 @@ track 257: selectionFlags = 0 language = und drmInitData = - + metadata = null initializationData: total output bytes = 5015 sample count = 4 @@ -97,6 +99,7 @@ track 8448: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs.adts.0.dump b/library/core/src/test/assets/ts/sample_cbs.adts.0.dump index e535aa8cd7..c823eba0cb 100644 --- a/library/core/src/test/assets/ts/sample_cbs.adts.0.dump +++ b/library/core/src/test/assets/ts/sample_cbs.adts.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 30797 @@ -625,6 +626,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs.adts.1.dump b/library/core/src/test/assets/ts/sample_cbs.adts.1.dump index 96d2fcfb39..ce0a645a0b 100644 --- a/library/core/src/test/assets/ts/sample_cbs.adts.1.dump +++ b/library/core/src/test/assets/ts/sample_cbs.adts.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 20533 @@ -425,6 +426,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs.adts.2.dump b/library/core/src/test/assets/ts/sample_cbs.adts.2.dump index 2e581bca28..efaa192a06 100644 --- a/library/core/src/test/assets/ts/sample_cbs.adts.2.dump +++ b/library/core/src/test/assets/ts/sample_cbs.adts.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 10161 @@ -245,6 +246,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs.adts.3.dump b/library/core/src/test/assets/ts/sample_cbs.adts.3.dump index e134a711bf..892445c542 100644 --- a/library/core/src/test/assets/ts/sample_cbs.adts.3.dump +++ b/library/core/src/test/assets/ts/sample_cbs.adts.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 174 @@ -53,6 +54,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs.adts.unklen.dump b/library/core/src/test/assets/ts/sample_cbs.adts.unklen.dump index 93d7b776c0..9b24043fb3 100644 --- a/library/core/src/test/assets/ts/sample_cbs.adts.unklen.dump +++ b/library/core/src/test/assets/ts/sample_cbs.adts.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 30797 @@ -625,6 +626,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.0.dump b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.0.dump index 3344e7ba59..cf839608a7 100644 --- a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.0.dump +++ b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 30787 @@ -621,6 +622,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.1.dump b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.1.dump index 53608df7ed..8fa122d7ae 100644 --- a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.1.dump +++ b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 20523 @@ -421,6 +422,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.2.dump b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.2.dump index af8e415412..512245a66c 100644 --- a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.2.dump +++ b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 10151 @@ -241,6 +242,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.3.dump b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.3.dump index 9186e04d6f..7168ef4185 100644 --- a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.3.dump +++ b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 164 @@ -49,6 +50,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.unklen.dump b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.unklen.dump index d478f65cac..8d427ba60f 100644 --- a/library/core/src/test/assets/ts/sample_cbs_truncated.adts.unklen.dump +++ b/library/core/src/test/assets/ts/sample_cbs_truncated.adts.unklen.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: data = length 2, hash 5F7 total output bytes = 30787 @@ -621,6 +622,7 @@ track 1: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 0 sample count = 0 diff --git a/library/core/src/test/assets/wav/sample.wav.0.dump b/library/core/src/test/assets/wav/sample.wav.0.dump index a6c46f75fc..fc3ded6ff8 100644 --- a/library/core/src/test/assets/wav/sample.wav.0.dump +++ b/library/core/src/test/assets/wav/sample.wav.0.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 88200 sample count = 3 diff --git a/library/core/src/test/assets/wav/sample.wav.1.dump b/library/core/src/test/assets/wav/sample.wav.1.dump index 3cc70dc71f..f6c120bde5 100644 --- a/library/core/src/test/assets/wav/sample.wav.1.dump +++ b/library/core/src/test/assets/wav/sample.wav.1.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 58802 sample count = 2 diff --git a/library/core/src/test/assets/wav/sample.wav.2.dump b/library/core/src/test/assets/wav/sample.wav.2.dump index 07ce135dfa..bfe175a657 100644 --- a/library/core/src/test/assets/wav/sample.wav.2.dump +++ b/library/core/src/test/assets/wav/sample.wav.2.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 29402 sample count = 1 diff --git a/library/core/src/test/assets/wav/sample.wav.3.dump b/library/core/src/test/assets/wav/sample.wav.3.dump index 82ed95ad60..160a5efdd7 100644 --- a/library/core/src/test/assets/wav/sample.wav.3.dump +++ b/library/core/src/test/assets/wav/sample.wav.3.dump @@ -24,6 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - + metadata = null initializationData: total output bytes = 2 sample count = 1 diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java index c4fd9e21ec..537dbc6efe 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/flac/FlacExtractorTest.java @@ -31,17 +31,16 @@ public class FlacExtractorTest { @Test public void testSampleWithId3HeaderAndId3Enabled() throws Exception { - ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_id3.flac"); + ExtractorAsserts.assertBehavior(FlacExtractor::new, "flac/bear_with_id3_enabled.flac"); } @Test public void testSampleWithId3HeaderAndId3Disabled() throws Exception { - // The same file is used for testing the extractor with and without ID3 enabled as the test does - // not check the metadata outputted. It only checks that the file is parsed correctly in both - // cases. + // bear_with_id3_disabled.flac is identical to bear_with_id3_enabled.flac, but the dump file is + // different due to setting FLAG_DISABLE_ID3_METADATA. ExtractorAsserts.assertBehavior( () -> new FlacExtractor(FlacExtractor.FLAG_DISABLE_ID3_METADATA), - "flac/bear_with_id3.flac"); + "flac/bear_with_id3_disabled.flac"); } @Test diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java index 1e71e0a316..1ca4f1fb18 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExtractorAsserts.java @@ -152,7 +152,6 @@ public final class ExtractorAsserts { assertOutput(factory.create(), file, data, context, false, false, false, false); } - // TODO: Assert format metadata [Internal ref: b/144771011]. /** * Asserts that {@code extractor} consumes {@code sampleFile} successfully and its output equals * to a prerecorded output dump file with the name {@code sampleFile} + "{@value diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java index f78e835b48..0389569a49 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeTrackOutput.java @@ -162,7 +162,8 @@ public final class FakeTrackOutput implements TrackOutput, Dumper.Dumpable { @Override public void dump(Dumper dumper) { - dumper.startBlock("format") + dumper + .startBlock("format") .add("bitrate", format.bitrate) .add("id", format.id) .add("containerMimeType", format.containerMimeType) @@ -181,7 +182,8 @@ public final class FakeTrackOutput implements TrackOutput, Dumper.Dumpable { .add("subsampleOffsetUs", format.subsampleOffsetUs) .add("selectionFlags", format.selectionFlags) .add("language", format.language) - .add("drmInitData", format.drmInitData != null ? format.drmInitData.hashCode() : "-"); + .add("drmInitData", format.drmInitData != null ? format.drmInitData.hashCode() : "-") + .add("metadata", format.metadata); dumper.startBlock("initializationData"); for (int i = 0; i < format.initializationData.size(); i++) { From a5ee17ec26dc71d1636734124ccd1b10a3cbb234 Mon Sep 17 00:00:00 2001 From: olly Date: Thu, 5 Dec 2019 15:08:56 +0000 Subject: [PATCH 039/368] Fix casting to not need warning suppression Also remove getRendererCapabilities arg that's now always null. PiperOrigin-RevId: 283966795 --- .../google/android/exoplayer2/demo/PlayerActivity.java | 7 +++---- .../android/exoplayer2/offline/DownloadHelper.java | 6 +++--- .../java/com/google/android/exoplayer2/util/Util.java | 9 ++------- .../android/exoplayer2/offline/DownloadHelperTest.java | 2 +- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 11a4b7216b..87593a7db4 100644 --- a/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demos/main/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -507,7 +507,7 @@ public class PlayerActivity extends AppCompatActivity } private MediaSource createLeafMediaSource( - Uri uri, String extension, DrmSessionManager drmSessionManager) { + Uri uri, String extension, DrmSessionManager drmSessionManager) { @ContentType int type = Util.inferContentType(uri, extension); switch (type) { case C.TYPE_DASH: @@ -616,13 +616,12 @@ public class PlayerActivity extends AppCompatActivity MediaSourceFactory adMediaSourceFactory = new MediaSourceFactory() { - private DrmSessionManager drmSessionManager = + private DrmSessionManager drmSessionManager = DrmSessionManager.getDummyDrmSessionManager(); @Override - @SuppressWarnings("unchecked") // Safe upcasting. public MediaSourceFactory setDrmSessionManager(DrmSessionManager drmSessionManager) { - this.drmSessionManager = (DrmSessionManager) drmSessionManager; + this.drmSessionManager = drmSessionManager; return this; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index b2641552c0..ff95afb1f6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -269,7 +269,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); + Util.getRendererCapabilities(renderersFactory)); } /** @deprecated Use {@link #forHls(Context, Uri, Factory, RenderersFactory)} */ @@ -339,7 +339,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); + Util.getRendererCapabilities(renderersFactory)); } /** @deprecated Use {@link #forSmoothStreaming(Context, Uri, Factory, RenderersFactory)} */ @@ -409,7 +409,7 @@ public final class DownloadHelper { drmSessionManager, /* streamKeys= */ null), trackSelectorParameters, - Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); + Util.getRendererCapabilities(renderersFactory)); } /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java index 0ee52dba2b..41465d8052 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/Util.java @@ -54,8 +54,6 @@ import com.google.android.exoplayer2.RendererCapabilities; import com.google.android.exoplayer2.RenderersFactory; import com.google.android.exoplayer2.SeekParameters; import com.google.android.exoplayer2.audio.AudioRendererEventListener; -import com.google.android.exoplayer2.drm.DrmSessionManager; -import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.video.VideoRendererEventListener; import java.io.ByteArrayOutputStream; @@ -1979,13 +1977,10 @@ public final class Util { * Extract renderer capabilities for the renderers created by the provided renderers factory. * * @param renderersFactory A {@link RenderersFactory}. - * @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers. * @return The {@link RendererCapabilities} for each renderer created by the {@code * renderersFactory}. */ - public static RendererCapabilities[] getRendererCapabilities( - RenderersFactory renderersFactory, - @Nullable DrmSessionManager drmSessionManager) { + public static RendererCapabilities[] getRendererCapabilities(RenderersFactory renderersFactory) { Renderer[] renderers = renderersFactory.createRenderers( new Handler(), @@ -1993,7 +1988,7 @@ public final class Util { new AudioRendererEventListener() {}, (cues) -> {}, (metadata) -> {}, - drmSessionManager); + /* drmSessionManager= */ null); RendererCapabilities[] capabilities = new RendererCapabilities[renderers.length]; for (int i = 0; i < renderers.length; i++) { capabilities[i] = renderers[i].getCapabilities(); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java b/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java index f99864440d..49c8302d30 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/offline/DownloadHelperTest.java @@ -115,7 +115,7 @@ public class DownloadHelperTest { TEST_CACHE_KEY, new TestMediaSource(), DownloadHelper.DEFAULT_TRACK_SELECTOR_PARAMETERS_WITHOUT_VIEWPORT, - Util.getRendererCapabilities(renderersFactory, /* drmSessionManager= */ null)); + Util.getRendererCapabilities(renderersFactory)); } @Test From 54413c26d423e0fa8adc868d12bb62e3fb54a84d Mon Sep 17 00:00:00 2001 From: kimvde Date: Fri, 6 Dec 2019 14:07:28 +0000 Subject: [PATCH 040/368] Make metadata field nullable in FlacStreamMetadata This makes the format metadata null (instead of an empty Metadata object) when it is not provided, and is therefore consistent with the other extractors behavior. PiperOrigin-RevId: 284171148 --- .../src/androidTest/assets/bear.flac.0.dump | 2 +- .../src/androidTest/assets/bear.flac.1.dump | 2 +- .../src/androidTest/assets/bear.flac.2.dump | 2 +- .../src/androidTest/assets/bear.flac.3.dump | 2 +- .../exoplayer2/ext/flac/FlacExtractor.java | 1 + .../extractor/FlacMetadataReader.java | 3 ++- .../exoplayer2/util/FlacStreamMetadata.java | 25 +++++++++++-------- .../src/test/assets/flac/bear.flac.0.dump | 2 +- .../bear_no_min_max_frame_size.flac.0.dump | 2 +- .../flac/bear_no_num_samples.flac.0.dump | 2 +- .../flac/bear_one_metadata_block.flac.0.dump | 2 +- .../bear_uncommon_sample_rate.flac.0.dump | 2 +- .../flac/bear_with_id3_disabled.flac.0.dump | 2 +- .../src/test/assets/ogg/bear_flac.ogg.0.dump | 2 +- .../src/test/assets/ogg/bear_flac.ogg.1.dump | 2 +- .../src/test/assets/ogg/bear_flac.ogg.2.dump | 2 +- .../src/test/assets/ogg/bear_flac.ogg.3.dump | 2 +- .../test/assets/ogg/bear_flac.ogg.unklen.dump | 2 +- .../ogg/bear_flac_noseektable.ogg.0.dump | 2 +- .../ogg/bear_flac_noseektable.ogg.1.dump | 2 +- .../ogg/bear_flac_noseektable.ogg.2.dump | 2 +- .../ogg/bear_flac_noseektable.ogg.3.dump | 2 +- .../ogg/bear_flac_noseektable.ogg.unklen.dump | 2 +- .../util/FlacStreamMetadataTest.java | 2 +- 24 files changed, 39 insertions(+), 32 deletions(-) diff --git a/extensions/flac/src/androidTest/assets/bear.flac.0.dump b/extensions/flac/src/androidTest/assets/bear.flac.0.dump index 816356a1e6..d562052a4f 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.0.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: total output bytes = 526272 sample count = 33 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.1.dump b/extensions/flac/src/androidTest/assets/bear.flac.1.dump index 4a6b06725f..93f38227b8 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.1.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.1.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: total output bytes = 362432 sample count = 23 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.2.dump b/extensions/flac/src/androidTest/assets/bear.flac.2.dump index dddb6dc264..9c53a95b06 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.2.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.2.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: total output bytes = 182208 sample count = 12 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.3.dump b/extensions/flac/src/androidTest/assets/bear.flac.3.dump index 0dbe575ecf..82e23a21c1 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.3.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.3.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: total output bytes = 18368 sample count = 2 diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index 7c69a93fc9..2c6f51da02 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -212,6 +212,7 @@ public final class FlacExtractor implements Extractor { input.getLength(), extractorOutput, outputFrameHolder); + @Nullable Metadata metadata = streamMetadata.getMetadataCopyWithAppendedEntriesFrom(id3Metadata); outputFormat(streamMetadata, metadata, trackOutput); } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java index e86c9b0129..e66f39de8c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/FlacMetadataReader.java @@ -81,7 +81,8 @@ public final class FlacMetadataReader { throws IOException, InterruptedException { @Nullable Id3Decoder.FramePredicate id3FramePredicate = parseData ? null : Id3Decoder.NO_FRAMES_PREDICATE; - return new Id3Peeker().peekId3Data(input, id3FramePredicate); + @Nullable Metadata id3Metadata = new Id3Peeker().peekId3Data(input, id3FramePredicate); + return id3Metadata == null || id3Metadata.length() == 0 ? null : id3Metadata; } /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java index 2772f7e0c6..db1de183ac 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/FlacStreamMetadata.java @@ -80,8 +80,8 @@ public final class FlacStreamMetadata { /** Total number of samples, or 0 if the value is unknown. */ public final long totalSamples; - /** Content metadata. */ - private final Metadata metadata; + /** Content metadata, or {@code null} if it is not provided. */ + @Nullable private final Metadata metadata; /** * Parses binary FLAC stream info metadata. @@ -102,7 +102,7 @@ public final class FlacStreamMetadata { bitsPerSample = scratch.readBits(5) + 1; bitsPerSampleLookupKey = getBitsPerSampleLookupKey(bitsPerSample); totalSamples = scratch.readBitsToLong(36); - metadata = new Metadata(); + metadata = null; } // Used in native code. @@ -138,7 +138,7 @@ public final class FlacStreamMetadata { int channels, int bitsPerSample, long totalSamples, - Metadata metadata) { + @Nullable Metadata metadata) { this.minBlockSizeSamples = minBlockSizeSamples; this.maxBlockSizeSamples = maxBlockSizeSamples; this.minFrameSize = minFrameSize; @@ -213,7 +213,7 @@ public final class FlacStreamMetadata { // Set the last metadata block flag, ignore the other blocks. streamMarkerAndInfoBlock[4] = (byte) 0x80; int maxInputSize = maxFrameSize > 0 ? maxFrameSize : Format.NO_VALUE; - Metadata metadataWithId3 = metadata.copyWithAppendedEntriesFrom(id3Metadata); + @Nullable Metadata metadataWithId3 = getMetadataCopyWithAppendedEntriesFrom(id3Metadata); return Format.createAudioSampleFormat( /* id= */ null, @@ -234,14 +234,16 @@ public final class FlacStreamMetadata { } /** Returns a copy of the content metadata with entries from {@code other} appended. */ + @Nullable public Metadata getMetadataCopyWithAppendedEntriesFrom(@Nullable Metadata other) { - return metadata.copyWithAppendedEntriesFrom(other); + return metadata == null ? other : metadata.copyWithAppendedEntriesFrom(other); } /** Returns a copy of {@code this} with the given Vorbis comments added to the metadata. */ public FlacStreamMetadata copyWithVorbisComments(List vorbisComments) { + @Nullable Metadata appendedMetadata = - metadata.copyWithAppendedEntriesFrom( + getMetadataCopyWithAppendedEntriesFrom( buildMetadata(vorbisComments, Collections.emptyList())); return new FlacStreamMetadata( minBlockSizeSamples, @@ -257,8 +259,10 @@ public final class FlacStreamMetadata { /** Returns a copy of {@code this} with the given picture frames added to the metadata. */ public FlacStreamMetadata copyWithPictureFrames(List pictureFrames) { + @Nullable Metadata appendedMetadata = - metadata.copyWithAppendedEntriesFrom(buildMetadata(Collections.emptyList(), pictureFrames)); + getMetadataCopyWithAppendedEntriesFrom( + buildMetadata(Collections.emptyList(), pictureFrames)); return new FlacStreamMetadata( minBlockSizeSamples, maxBlockSizeSamples, @@ -317,10 +321,11 @@ public final class FlacStreamMetadata { } } + @Nullable private static Metadata buildMetadata( List vorbisComments, List pictureFrames) { if (vorbisComments.isEmpty() && pictureFrames.isEmpty()) { - return new Metadata(); + return null; } ArrayList metadataEntries = new ArrayList<>(); @@ -336,6 +341,6 @@ public final class FlacStreamMetadata { } metadataEntries.addAll(pictureFrames); - return metadataEntries.isEmpty() ? new Metadata() : new Metadata(metadataEntries); + return metadataEntries.isEmpty() ? null : new Metadata(metadataEntries); } } diff --git a/library/core/src/test/assets/flac/bear.flac.0.dump b/library/core/src/test/assets/flac/bear.flac.0.dump index 109cc49ebb..bd8f1827e4 100644 --- a/library/core/src/test/assets/flac/bear.flac.0.dump +++ b/library/core/src/test/assets/flac/bear.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump index a7c8b628ba..4ef7138487 100644 --- a/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_no_min_max_frame_size.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 9218FDB7 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump index 7606154ddd..45b75392b3 100644 --- a/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_no_num_samples.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 49FA2C21 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump b/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump index 109cc49ebb..bd8f1827e4 100644 --- a/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_one_metadata_block.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump b/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump index 488517947c..e6caad8e84 100644 --- a/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_uncommon_sample_rate.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 7249A1B8 total output bytes = 144086 diff --git a/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump b/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump index 109cc49ebb..bd8f1827e4 100644 --- a/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump +++ b/library/core/src/test/assets/flac/bear_with_id3_disabled.flac.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump index 896c8ad6c5..d32342619c 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump index e85b504a39..17e6c6d862 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.1.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 113666 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump index 63bc130424..e52b8897c8 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.2.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 55652 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump index fdebce7743..dabf5552da 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.3.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 445 diff --git a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump index 896c8ad6c5..d32342619c 100644 --- a/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac.ogg.unklen.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump index b09453f208..efbf8a3609 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.0.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump index 4ab08524ae..80ad2045ce 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.1.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 113666 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump index 3a846736d2..c2efd50a33 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.2.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 55652 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump index 5bf1a92472..26601231a6 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.3.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 445 diff --git a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump index 1a0686c5fd..67a1fecee4 100644 --- a/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump +++ b/library/core/src/test/assets/ogg/bear_flac_noseektable.ogg.unklen.dump @@ -24,7 +24,7 @@ track 0: selectionFlags = 0 language = null drmInitData = - - metadata = entries=[] + metadata = null initializationData: data = length 42, hash 83F6895 total output bytes = 164431 diff --git a/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java b/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java index d3d3e53458..ddaa550b7f 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/util/FlacStreamMetadataTest.java @@ -75,7 +75,7 @@ public final class FlacStreamMetadataTest { /* pictureFrames= */ new ArrayList<>()) .getMetadataCopyWithAppendedEntriesFrom(/* other= */ null); - assertThat(metadata.length()).isEqualTo(0); + assertThat(metadata).isNull(); } @Test From 24afcdc36bc43eec13905c6cc6f04e9b0a08af71 Mon Sep 17 00:00:00 2001 From: kimvde Date: Mon, 9 Dec 2019 10:34:41 +0000 Subject: [PATCH 041/368] Remove TODO for supporting streams in Java FLAC extractor Flac streams exist but are not commonly used. Also, they are not supported by the FLAC extension extractor. PiperOrigin-RevId: 284514327 --- .../google/android/exoplayer2/extractor/flac/FlacExtractor.java | 1 - 1 file changed, 1 deletion(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java index 0f67153e61..9c8136e9a9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -43,7 +43,6 @@ import java.lang.annotation.RetentionPolicy; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; // TODO: implement seeking. -// TODO: support live streams. /** * Extracts data from FLAC container format. * From ff1efd4ec2639a5558d904bd396ba8b6c26021ca Mon Sep 17 00:00:00 2001 From: kimvde Date: Mon, 9 Dec 2019 13:57:21 +0000 Subject: [PATCH 042/368] Add peek() method to ExtractorInput PiperOrigin-RevId: 284537150 --- .../extractor/DefaultExtractorInput.java | 31 ++- .../exoplayer2/extractor/ExtractorInput.java | 44 ++-- .../extractor/DefaultExtractorInputTest.java | 226 +++++++++++++++--- .../testutil/FakeExtractorInput.java | 46 ++-- 4 files changed, 281 insertions(+), 66 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorInput.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorInput.java index 450cca42b0..c6f1129da8 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorInput.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorInput.java @@ -58,7 +58,9 @@ public final class DefaultExtractorInput implements ExtractorInput { public int read(byte[] target, int offset, int length) throws IOException, InterruptedException { int bytesRead = readFromPeekBuffer(target, offset, length); if (bytesRead == 0) { - bytesRead = readFromDataSource(target, offset, length, 0, true); + bytesRead = + readFromDataSource( + target, offset, length, /* bytesAlreadyRead= */ 0, /* allowEndOfInput= */ true); } commitBytesRead(bytesRead); return bytesRead; @@ -110,6 +112,31 @@ public final class DefaultExtractorInput implements ExtractorInput { skipFully(length, false); } + @Override + public int peek(byte[] target, int offset, int length) throws IOException, InterruptedException { + ensureSpaceForPeek(length); + int peekBufferRemainingBytes = peekBufferLength - peekBufferPosition; + int bytesPeeked; + if (peekBufferRemainingBytes == 0) { + bytesPeeked = + readFromDataSource( + peekBuffer, + peekBufferPosition, + length, + /* bytesAlreadyRead= */ 0, + /* allowEndOfInput= */ true); + if (bytesPeeked == C.RESULT_END_OF_INPUT) { + return C.RESULT_END_OF_INPUT; + } + peekBufferLength += bytesPeeked; + } else { + bytesPeeked = Math.min(length, peekBufferRemainingBytes); + } + System.arraycopy(peekBuffer, peekBufferPosition, target, offset, bytesPeeked); + peekBufferPosition += bytesPeeked; + return bytesPeeked; + } + @Override public boolean peekFully(byte[] target, int offset, int length, boolean allowEndOfInput) throws IOException, InterruptedException { @@ -201,7 +228,7 @@ public final class DefaultExtractorInput implements ExtractorInput { } /** - * Reads from the peek buffer + * Reads from the peek buffer. * * @param target A target array into which data should be written. * @param offset The offset into the target array at which to write. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ExtractorInput.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ExtractorInput.java index 461b059bad..8e5d6f0448 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ExtractorInput.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ExtractorInput.java @@ -27,19 +27,19 @@ import java.io.InputStream; * for more info about each mode. * *

    * *

    {@link InputStream}-like methods

    * - *

    The {@code read()} and {@code skip()} methods provide {@link InputStream}-like byte-level - * access operations. The {@code length} parameter is a maximum, and each method returns the number - * of bytes actually processed. This may be less than {@code length} because the end of the input - * was reached, or the method was interrupted, or the operation was aborted early for another - * reason. + *

    The {@code read()/peek()} and {@code skip()} methods provide {@link InputStream}-like + * byte-level access operations. The {@code length} parameter is a maximum, and each method returns + * the number of bytes actually processed. This may be less than {@code length} because the end of + * the input was reached, or the method was interrupted, or the operation was aborted early for + * another reason. * *

    Block-based methods

    * @@ -102,7 +102,8 @@ public interface ExtractorInput { throws IOException, InterruptedException; /** - * Equivalent to {@code readFully(target, offset, length, false)}. + * Equivalent to {@link #readFully(byte[], int, int, boolean) readFully(target, offset, length, + * false)}. * * @param target A target array into which data should be written. * @param offset The offset into the target array at which to write. @@ -155,8 +156,11 @@ public interface ExtractorInput { void skipFully(int length) throws IOException, InterruptedException; /** - * Peeks {@code length} bytes from the peek position, writing them into {@code target} at index - * {@code offset}. The current read position is left unchanged. + * Peeks up to {@code length} bytes from the peek position. The current read position is left + * unchanged. + * + *

    This method blocks until at least one byte of data can be peeked, the end of the input is + * detected, or an exception is thrown. * *

    Calling {@link #resetPeekPosition()} resets the peek position to equal the current read * position, so the caller can peek the same data again. Reading or skipping also resets the peek @@ -164,6 +168,18 @@ public interface ExtractorInput { * * @param target A target array into which data should be written. * @param offset The offset into the target array at which to write. + * @param length The maximum number of bytes to peek from the input. + * @return The number of bytes peeked, or {@link C#RESULT_END_OF_INPUT} if the input has ended. + * @throws IOException If an error occurs peeking from the input. + * @throws InterruptedException If the thread has been interrupted. + */ + int peek(byte[] target, int offset, int length) throws IOException, InterruptedException; + + /** + * Like {@link #peek(byte[], int, int)}, but peeks the requested {@code length} in full. + * + * @param target A target array into which data should be written. + * @param offset The offset into the target array at which to write. * @param length The number of bytes to peek from the input. * @param allowEndOfInput True if encountering the end of the input having peeked no data is * allowed, and should result in {@code false} being returned. False if it should be @@ -181,12 +197,8 @@ public interface ExtractorInput { throws IOException, InterruptedException; /** - * Peeks {@code length} bytes from the peek position, writing them into {@code target} at index - * {@code offset}. The current read position is left unchanged. - *

    - * Calling {@link #resetPeekPosition()} resets the peek position to equal the current read - * position, so the caller can peek the same data again. Reading and skipping also reset the peek - * position. + * Equivalent to {@link #peekFully(byte[], int, int, boolean) peekFully(target, offset, length, + * false)}. * * @param target A target array into which data should be written. * @param offset The offset into the target array at which to write. diff --git a/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorInputTest.java b/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorInputTest.java index 6dbec3ecf4..ccc806fe61 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorInputTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/extractor/DefaultExtractorInputTest.java @@ -49,7 +49,7 @@ public class DefaultExtractorInputTest { } @Test - public void testRead() throws Exception { + public void testReadMultipleTimes() throws Exception { DefaultExtractorInput input = createDefaultExtractorInput(); byte[] target = new byte[TEST_DATA.length]; // We expect to perform three reads of three bytes, as setup in buildTestDataSource. @@ -60,39 +60,70 @@ public class DefaultExtractorInputTest { assertThat(bytesRead).isEqualTo(6); bytesRead += input.read(target, 6, TEST_DATA.length); assertThat(bytesRead).isEqualTo(9); - // Check the read data is correct. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); - // Check we're now indicated that the end of input is reached. - int expectedEndOfInput = input.read(target, 0, TEST_DATA.length); - assertThat(expectedEndOfInput).isEqualTo(RESULT_END_OF_INPUT); + assertThat(input.getPosition()).isEqualTo(9); + assertThat(TEST_DATA).isEqualTo(target); } @Test - public void testReadPeeked() throws Exception { + public void testReadAlreadyPeeked() throws Exception { DefaultExtractorInput input = createDefaultExtractorInput(); byte[] target = new byte[TEST_DATA.length]; input.advancePeekPosition(TEST_DATA.length); + int bytesRead = input.read(target, 0, TEST_DATA.length - 1); + assertThat(bytesRead).isEqualTo(TEST_DATA.length - 1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length - 1); + assertThat(Arrays.copyOf(TEST_DATA, TEST_DATA.length - 1)) + .isEqualTo(Arrays.copyOf(target, TEST_DATA.length - 1)); + } + + @Test + public void testReadPartiallyPeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.advancePeekPosition(TEST_DATA.length - 1); int bytesRead = input.read(target, 0, TEST_DATA.length); - assertThat(bytesRead).isEqualTo(TEST_DATA.length); - // Check the read data is correct. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + assertThat(bytesRead).isEqualTo(TEST_DATA.length - 1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length - 1); + assertThat(Arrays.copyOf(TEST_DATA, TEST_DATA.length - 1)) + .isEqualTo(Arrays.copyOf(target, TEST_DATA.length - 1)); } @Test - public void testReadMoreDataPeeked() throws Exception { + public void testReadEndOfInputBeforeFirstByteRead() throws Exception { DefaultExtractorInput input = createDefaultExtractorInput(); byte[] target = new byte[TEST_DATA.length]; - input.advancePeekPosition(TEST_DATA.length); + input.skipFully(TEST_DATA.length); + int bytesRead = input.read(target, 0, TEST_DATA.length); - int bytesRead = input.read(target, 0, TEST_DATA.length + 1); - assertThat(bytesRead).isEqualTo(TEST_DATA.length); + assertThat(bytesRead).isEqualTo(RESULT_END_OF_INPUT); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); + } - // Check the read data is correct. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + @Test + public void testReadEndOfInputAfterFirstByteRead() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.skipFully(TEST_DATA.length - 1); + int bytesRead = input.read(target, 0, TEST_DATA.length); + + assertThat(bytesRead).isEqualTo(1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); + } + + @Test + public void testReadZeroLength() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + int bytesRead = input.read(target, /* offset= */ 0, /* length= */ 0); + + assertThat(bytesRead).isEqualTo(0); } @Test @@ -101,7 +132,7 @@ public class DefaultExtractorInputTest { byte[] target = new byte[TEST_DATA.length]; input.readFully(target, 0, TEST_DATA.length); // Check that we read the whole of TEST_DATA. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); // Check that we see end of input if we read again with allowEndOfInput set. boolean result = input.readFully(target, 0, 1, true); @@ -121,11 +152,11 @@ public class DefaultExtractorInputTest { DefaultExtractorInput input = createDefaultExtractorInput(); byte[] target = new byte[5]; input.readFully(target, 0, 5); - assertThat(Arrays.equals(copyOf(TEST_DATA, 5), target)).isTrue(); + assertThat(copyOf(TEST_DATA, 5)).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(5); target = new byte[4]; input.readFully(target, 0, 4); - assertThat(Arrays.equals(copyOfRange(TEST_DATA, 5, 9), target)).isTrue(); + assertThat(copyOfRange(TEST_DATA, 5, 9)).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(5 + 4); } @@ -180,27 +211,23 @@ public class DefaultExtractorInputTest { input.readFully(target, 0, TEST_DATA.length); // Check the read data is correct. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); } @Test - public void testSkip() throws Exception { - FakeDataSource testDataSource = buildDataSource(); - DefaultExtractorInput input = new DefaultExtractorInput(testDataSource, 0, C.LENGTH_UNSET); + public void testSkipMultipleTimes() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); // We expect to perform three skips of three bytes, as setup in buildTestDataSource. for (int i = 0; i < 3; i++) { assertThat(input.skip(TEST_DATA.length)).isEqualTo(3); } - // Check we're now indicated that the end of input is reached. - int expectedEndOfInput = input.skip(TEST_DATA.length); - assertThat(expectedEndOfInput).isEqualTo(RESULT_END_OF_INPUT); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); } @Test public void testLargeSkip() throws Exception { - FakeDataSource testDataSource = buildLargeDataSource(); - DefaultExtractorInput input = new DefaultExtractorInput(testDataSource, 0, C.LENGTH_UNSET); + DefaultExtractorInput input = createDefaultExtractorInput(); // Check that skipping the entire data source succeeds. int bytesToSkip = LARGE_TEST_DATA_LENGTH; while (bytesToSkip > 0) { @@ -208,6 +235,59 @@ public class DefaultExtractorInputTest { } } + @Test + public void testSkipAlreadyPeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + + input.advancePeekPosition(TEST_DATA.length); + int bytesSkipped = input.skip(TEST_DATA.length - 1); + + assertThat(bytesSkipped).isEqualTo(TEST_DATA.length - 1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length - 1); + } + + @Test + public void testSkipPartiallyPeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + + input.advancePeekPosition(TEST_DATA.length - 1); + int bytesSkipped = input.skip(TEST_DATA.length); + + assertThat(bytesSkipped).isEqualTo(TEST_DATA.length - 1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length - 1); + } + + @Test + public void testSkipEndOfInputBeforeFirstByteSkipped() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + + input.skipFully(TEST_DATA.length); + int bytesSkipped = input.skip(TEST_DATA.length); + + assertThat(bytesSkipped).isEqualTo(RESULT_END_OF_INPUT); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); + } + + @Test + public void testSkipEndOfInputAfterFirstByteSkipped() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + + input.skipFully(TEST_DATA.length - 1); + int bytesSkipped = input.skip(TEST_DATA.length); + + assertThat(bytesSkipped).isEqualTo(1); + assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); + } + + @Test + public void testSkipZeroLength() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + + int bytesRead = input.skip(0); + + assertThat(bytesRead).isEqualTo(0); + } + @Test public void testSkipFullyOnce() throws Exception { // Skip TEST_DATA. @@ -309,6 +389,86 @@ public class DefaultExtractorInputTest { } } + @Test + public void testPeekMultipleTimes() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + // We expect to perform three peeks of three bytes, as setup in buildTestDataSource. + int bytesPeeked = 0; + bytesPeeked += input.peek(target, 0, TEST_DATA.length); + assertThat(bytesPeeked).isEqualTo(3); + bytesPeeked += input.peek(target, 3, TEST_DATA.length); + assertThat(bytesPeeked).isEqualTo(6); + bytesPeeked += input.peek(target, 6, TEST_DATA.length); + assertThat(bytesPeeked).isEqualTo(9); + assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); + assertThat(TEST_DATA).isEqualTo(target); + } + + @Test + public void testPeekAlreadyPeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.advancePeekPosition(TEST_DATA.length); + input.resetPeekPosition(); + int bytesPeeked = input.peek(target, 0, TEST_DATA.length - 1); + + assertThat(bytesPeeked).isEqualTo(TEST_DATA.length - 1); + assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length - 1); + assertThat(Arrays.copyOf(TEST_DATA, TEST_DATA.length - 1)) + .isEqualTo(Arrays.copyOf(target, TEST_DATA.length - 1)); + } + + @Test + public void testPeekPartiallyPeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.advancePeekPosition(TEST_DATA.length - 1); + input.resetPeekPosition(); + int bytesPeeked = input.peek(target, 0, TEST_DATA.length); + + assertThat(bytesPeeked).isEqualTo(TEST_DATA.length - 1); + assertThat(Arrays.copyOf(TEST_DATA, TEST_DATA.length - 1)) + .isEqualTo(Arrays.copyOf(target, TEST_DATA.length - 1)); + } + + @Test + public void testPeekEndOfInputBeforeFirstBytePeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.advancePeekPosition(TEST_DATA.length); + int bytesPeeked = input.peek(target, 0, TEST_DATA.length); + + assertThat(bytesPeeked).isEqualTo(RESULT_END_OF_INPUT); + assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); + } + + @Test + public void testPeekEndOfInputAfterFirstBytePeeked() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + input.advancePeekPosition(TEST_DATA.length - 1); + int bytesPeeked = input.peek(target, 0, TEST_DATA.length); + + assertThat(bytesPeeked).isEqualTo(1); + assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); + } + + @Test + public void testPeekZeroLength() throws Exception { + DefaultExtractorInput input = createDefaultExtractorInput(); + byte[] target = new byte[TEST_DATA.length]; + + int bytesPeeked = input.peek(target, /* offset= */ 0, /* length= */ 0); + + assertThat(bytesPeeked).isEqualTo(0); + } + @Test public void testPeekFully() throws Exception { DefaultExtractorInput input = createDefaultExtractorInput(); @@ -316,14 +476,14 @@ public class DefaultExtractorInputTest { input.peekFully(target, 0, TEST_DATA.length); // Check that we read the whole of TEST_DATA. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(0); assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); // Check that we can read again from the buffer byte[] target2 = new byte[TEST_DATA.length]; input.readFully(target2, 0, TEST_DATA.length); - assertThat(Arrays.equals(TEST_DATA, target2)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target2); assertThat(input.getPosition()).isEqualTo(TEST_DATA.length); assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); @@ -350,7 +510,7 @@ public class DefaultExtractorInputTest { input.peekFully(target, /* offset= */ 0, /* length= */ TEST_DATA.length); assertThat(input.getPeekPosition()).isEqualTo(TEST_DATA.length); - assertThat(Arrays.equals(TEST_DATA, Arrays.copyOf(target, TEST_DATA.length))).isTrue(); + assertThat(TEST_DATA).isEqualTo(Arrays.copyOf(target, TEST_DATA.length)); } @Test @@ -360,14 +520,14 @@ public class DefaultExtractorInputTest { input.peekFully(target, 0, TEST_DATA.length); // Check that we read the whole of TEST_DATA. - assertThat(Arrays.equals(TEST_DATA, target)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target); assertThat(input.getPosition()).isEqualTo(0); // Check that we can peek again after resetting. input.resetPeekPosition(); byte[] target2 = new byte[TEST_DATA.length]; input.peekFully(target2, 0, TEST_DATA.length); - assertThat(Arrays.equals(TEST_DATA, target2)).isTrue(); + assertThat(TEST_DATA).isEqualTo(target2); // Check that we fail with EOFException if we peek past the end of the input. try { diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java index 443ffdb12c..7323cfd0fe 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeExtractorInput.java @@ -65,7 +65,8 @@ public final class FakeExtractorInput implements ExtractorInput { private int readPosition; private int peekPosition; - private final SparseBooleanArray partiallySatisfiedTargetPositions; + private final SparseBooleanArray partiallySatisfiedTargetReadPositions; + private final SparseBooleanArray partiallySatisfiedTargetPeekPositions; private final SparseBooleanArray failedReadPositions; private final SparseBooleanArray failedPeekPositions; @@ -75,7 +76,8 @@ public final class FakeExtractorInput implements ExtractorInput { this.simulateUnknownLength = simulateUnknownLength; this.simulatePartialReads = simulatePartialReads; this.simulateIOErrors = simulateIOErrors; - partiallySatisfiedTargetPositions = new SparseBooleanArray(); + partiallySatisfiedTargetReadPositions = new SparseBooleanArray(); + partiallySatisfiedTargetPeekPositions = new SparseBooleanArray(); failedReadPositions = new SparseBooleanArray(); failedPeekPositions = new SparseBooleanArray(); } @@ -84,7 +86,8 @@ public final class FakeExtractorInput implements ExtractorInput { public void reset() { readPosition = 0; peekPosition = 0; - partiallySatisfiedTargetPositions.clear(); + partiallySatisfiedTargetReadPositions.clear(); + partiallySatisfiedTargetPeekPositions.clear(); failedReadPositions.clear(); failedPeekPositions.clear(); } @@ -104,7 +107,7 @@ public final class FakeExtractorInput implements ExtractorInput { @Override public int read(byte[] target, int offset, int length) throws IOException { checkIOException(readPosition, failedReadPositions); - length = getReadLength(length); + length = getLengthToRead(readPosition, length, partiallySatisfiedTargetReadPositions); return readFullyInternal(target, offset, length, true) ? length : C.RESULT_END_OF_INPUT; } @@ -123,7 +126,7 @@ public final class FakeExtractorInput implements ExtractorInput { @Override public int skip(int length) throws IOException { checkIOException(readPosition, failedReadPositions); - length = getReadLength(length); + length = getLengthToRead(readPosition, length, partiallySatisfiedTargetReadPositions); return skipFullyInternal(length, true) ? length : C.RESULT_END_OF_INPUT; } @@ -138,16 +141,18 @@ public final class FakeExtractorInput implements ExtractorInput { skipFully(length, false); } + @Override + public int peek(byte[] target, int offset, int length) throws IOException { + checkIOException(peekPosition, failedPeekPositions); + length = getLengthToRead(peekPosition, length, partiallySatisfiedTargetPeekPositions); + return peekFullyInternal(target, offset, length, true) ? length : C.RESULT_END_OF_INPUT; + } + @Override public boolean peekFully(byte[] target, int offset, int length, boolean allowEndOfInput) throws IOException { checkIOException(peekPosition, failedPeekPositions); - if (!checkXFully(allowEndOfInput, peekPosition, length)) { - return false; - } - System.arraycopy(data, peekPosition, target, offset, length); - peekPosition += length; - return true; + return peekFullyInternal(target, offset, length, allowEndOfInput); } @Override @@ -221,18 +226,19 @@ public final class FakeExtractorInput implements ExtractorInput { return true; } - private int getReadLength(int requestedLength) { - if (readPosition == data.length) { + private int getLengthToRead( + int position, int requestedLength, SparseBooleanArray partiallySatisfiedTargetPositions) { + if (position == data.length) { // If the requested length is non-zero, the end of the input will be read. return requestedLength == 0 ? 0 : Integer.MAX_VALUE; } - int targetPosition = readPosition + requestedLength; + int targetPosition = position + requestedLength; if (simulatePartialReads && requestedLength > 1 && !partiallySatisfiedTargetPositions.get(targetPosition)) { partiallySatisfiedTargetPositions.put(targetPosition, true); return 1; } - return Math.min(requestedLength, data.length - readPosition); + return Math.min(requestedLength, data.length - position); } private boolean readFullyInternal(byte[] target, int offset, int length, boolean allowEndOfInput) @@ -255,6 +261,16 @@ public final class FakeExtractorInput implements ExtractorInput { return true; } + private boolean peekFullyInternal(byte[] target, int offset, int length, boolean allowEndOfInput) + throws EOFException { + if (!checkXFully(allowEndOfInput, peekPosition, length)) { + return false; + } + System.arraycopy(data, peekPosition, target, offset, length); + peekPosition += length; + return true; + } + /** * Builder of {@link FakeExtractorInput} instances. */ From 4ed512d611ba51daba7ced19b38cac5946d008d3 Mon Sep 17 00:00:00 2001 From: ibaker Date: Tue, 10 Dec 2019 16:42:33 +0000 Subject: [PATCH 043/368] Fix javadoc warnings exposed by -Xdoclint PiperOrigin-RevId: 284776943 --- .../google/android/exoplayer2/ExoPlayer.java | 4 +- .../google/android/exoplayer2/Renderer.java | 3 +- .../google/android/exoplayer2/Timeline.java | 50 +++++++++---------- .../trackselection/TrackSelector.java | 2 - 4 files changed, 29 insertions(+), 30 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java index 7c8a454191..c2e5c7170f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java @@ -93,8 +93,8 @@ import com.google.android.exoplayer2.video.MediaCodecVideoRenderer; * *

    The figure below shows ExoPlayer's threading model. * - *

    ExoPlayer's threading
- * model + *

    ExoPlayer's
+ * threading model * *

    */ public final class DefaultExtractorsFactory implements ExtractorsFactory { @@ -247,10 +253,6 @@ public final class DefaultExtractorsFactory implements ExtractorsFactory { ? AmrExtractor.FLAG_ENABLE_CONSTANT_BITRATE_SEEKING : 0)); extractors[12] = new Ac4Extractor(); - // Prefer the FLAC extension extractor because it outputs raw audio, which can be handled by the - // framework on all API levels, unlike the core library FLAC extractor, which outputs FLAC audio - // frames and so relies on having a FLAC decoder (e.g., a MediaCodec decoder that handles FLAC - // (from API 27), or the FFmpeg extension with FLAC enabled). if (FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR != null) { try { extractors[13] = FLAC_EXTENSION_EXTRACTOR_CONSTRUCTOR.newInstance(); From d93b57c0099a8231ac658006830044bd65857d2a Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 17 Feb 2020 14:23:06 +0000 Subject: [PATCH 134/368] Zero out trailing bytes in CryptoInfo.iv CryptoInfo.iv length is always 16. When the actual initialization vector is shorter, zero out the trailing bytes. Issue: #6982 PiperOrigin-RevId: 295575845 --- RELEASENOTES.md | 6 ++ .../exoplayer2/decoder/CryptoInfo.java | 18 +++- .../exoplayer2/source/SampleDataQueue.java | 20 +++-- .../exoplayer2/source/SampleQueueTest.java | 87 +++++++++++++++---- 4 files changed, 107 insertions(+), 24 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 8a72373fe9..6acd772e05 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,11 @@ # Release notes # +### 2.11.3 (2020-02-19) ### + +* DRM: Fix issue switching from protected content that uses a 16-byte + initialization vector to one that uses an 8-byte initialization vector + ([#6982](https://github.com/google/ExoPlayer/issues/6982)). + ### 2.11.2 (2020-02-13) ### * Add Java FLAC extractor diff --git a/library/core/src/main/java/com/google/android/exoplayer2/decoder/CryptoInfo.java b/library/core/src/main/java/com/google/android/exoplayer2/decoder/CryptoInfo.java index 379ca971b5..b865d5bb6f 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/decoder/CryptoInfo.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/decoder/CryptoInfo.java @@ -25,27 +25,41 @@ import com.google.android.exoplayer2.util.Util; public final class CryptoInfo { /** + * The 16 byte initialization vector. If the initialization vector of the content is shorter than + * 16 bytes, 0 byte padding is appended to extend the vector to the required 16 byte length. + * * @see android.media.MediaCodec.CryptoInfo#iv */ public byte[] iv; /** + * The 16 byte key id. + * * @see android.media.MediaCodec.CryptoInfo#key */ public byte[] key; /** + * The type of encryption that has been applied. Must be one of the {@link C.CryptoMode} values. + * * @see android.media.MediaCodec.CryptoInfo#mode */ - @C.CryptoMode - public int mode; + @C.CryptoMode public int mode; /** + * The number of leading unencrypted bytes in each sub-sample. If null, all bytes are treated as + * encrypted and {@link #numBytesOfEncryptedData} must be specified. + * * @see android.media.MediaCodec.CryptoInfo#numBytesOfClearData */ public int[] numBytesOfClearData; /** + * The number of trailing encrypted bytes in each sub-sample. If null, all bytes are treated as + * clear and {@link #numBytesOfClearData} must be specified. + * * @see android.media.MediaCodec.CryptoInfo#numBytesOfEncryptedData */ public int[] numBytesOfEncryptedData; /** + * The number of subSamples that make up the buffer's contents. + * * @see android.media.MediaCodec.CryptoInfo#numSubSamples */ public int numSubSamples; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java index 68761cef19..3779fe33e5 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleDataQueue.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; +import com.google.android.exoplayer2.decoder.CryptoInfo; import com.google.android.exoplayer2.decoder.DecoderInputBuffer; import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.TrackOutput.CryptoData; @@ -27,6 +28,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray; import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.Arrays; /** A queue of media sample data. */ /* package */ class SampleDataQueue { @@ -228,10 +230,14 @@ import java.nio.ByteBuffer; int ivSize = signalByte & 0x7F; // Read the initialization vector. - if (buffer.cryptoInfo.iv == null) { - buffer.cryptoInfo.iv = new byte[16]; + CryptoInfo cryptoInfo = buffer.cryptoInfo; + if (cryptoInfo.iv == null) { + cryptoInfo.iv = new byte[16]; + } else { + // Zero out cryptoInfo.iv so that if ivSize < 16, the remaining bytes are correctly set to 0. + Arrays.fill(cryptoInfo.iv, (byte) 0); } - readData(offset, buffer.cryptoInfo.iv, ivSize); + readData(offset, cryptoInfo.iv, ivSize); offset += ivSize; // Read the subsample count, if present. @@ -246,11 +252,11 @@ import java.nio.ByteBuffer; } // Write the clear and encrypted subsample sizes. - int[] clearDataSizes = buffer.cryptoInfo.numBytesOfClearData; + @Nullable int[] clearDataSizes = cryptoInfo.numBytesOfClearData; if (clearDataSizes == null || clearDataSizes.length < subsampleCount) { clearDataSizes = new int[subsampleCount]; } - int[] encryptedDataSizes = buffer.cryptoInfo.numBytesOfEncryptedData; + @Nullable int[] encryptedDataSizes = cryptoInfo.numBytesOfEncryptedData; if (encryptedDataSizes == null || encryptedDataSizes.length < subsampleCount) { encryptedDataSizes = new int[subsampleCount]; } @@ -271,12 +277,12 @@ import java.nio.ByteBuffer; // Populate the cryptoInfo. CryptoData cryptoData = extrasHolder.cryptoData; - buffer.cryptoInfo.set( + cryptoInfo.set( subsampleCount, clearDataSizes, encryptedDataSizes, cryptoData.encryptionKey, - buffer.cryptoInfo.iv, + cryptoInfo.iv, cryptoData.cryptoMode, cryptoData.encryptedBlocks, cryptoData.clearBlocks); diff --git a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java index 583bdcb7be..427e81d29f 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/source/SampleQueueTest.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.source; +import static com.google.android.exoplayer2.C.BUFFER_FLAG_ENCRYPTED; import static com.google.android.exoplayer2.C.BUFFER_FLAG_KEY_FRAME; import static com.google.android.exoplayer2.C.RESULT_BUFFER_READ; import static com.google.android.exoplayer2.C.RESULT_FORMAT_READ; @@ -22,6 +23,7 @@ import static com.google.android.exoplayer2.C.RESULT_NOTHING_READ; import static com.google.common.truth.Truth.assertThat; import static java.lang.Long.MIN_VALUE; import static java.util.Arrays.copyOfRange; +import static org.junit.Assert.assertArrayEquals; import static org.mockito.Mockito.when; import androidx.annotation.Nullable; @@ -114,17 +116,13 @@ public final class SampleQueueTest { C.BUFFER_FLAG_KEY_FRAME, C.BUFFER_FLAG_ENCRYPTED, 0, C.BUFFER_FLAG_ENCRYPTED, }; private static final long[] ENCRYPTED_SAMPLE_TIMESTAMPS = new long[] {0, 1000, 2000, 3000}; - private static final Format[] ENCRYPTED_SAMPLES_FORMATS = + private static final Format[] ENCRYPTED_SAMPLE_FORMATS = new Format[] {FORMAT_ENCRYPTED, FORMAT_ENCRYPTED, FORMAT_1, FORMAT_ENCRYPTED}; /** Encrypted samples require the encryption preamble. */ - private static final int[] ENCRYPTED_SAMPLES_SIZES = new int[] {1, 3, 1, 3}; + private static final int[] ENCRYPTED_SAMPLE_SIZES = new int[] {1, 3, 1, 3}; - private static final int[] ENCRYPTED_SAMPLES_OFFSETS = new int[] {7, 4, 3, 0}; - private static final byte[] ENCRYPTED_SAMPLES_DATA = new byte[8]; - - static { - Arrays.fill(ENCRYPTED_SAMPLES_DATA, (byte) 1); - } + private static final int[] ENCRYPTED_SAMPLE_OFFSETS = new int[] {7, 4, 3, 0}; + private static final byte[] ENCRYPTED_SAMPLE_DATA = new byte[] {1, 1, 1, 1, 1, 1, 1, 1}; private static final TrackOutput.CryptoData DUMMY_CRYPTO_DATA = new TrackOutput.CryptoData(C.CRYPTO_MODE_AES_CTR, new byte[16], 0, 0); @@ -461,6 +459,60 @@ public final class SampleQueueTest { /* decodeOnlyUntilUs= */ 0); assertThat(result).isEqualTo(RESULT_FORMAT_READ); assertThat(formatHolder.drmSession).isSameInstanceAs(mockDrmSession); + assertReadEncryptedSample(/* sampleIndex= */ 3); + } + + @Test + @SuppressWarnings("unchecked") + public void testTrailingCryptoInfoInitializationVectorBytesZeroed() { + when(mockDrmSession.getState()).thenReturn(DrmSession.STATE_OPENED_WITH_KEYS); + DrmSession mockPlaceholderDrmSession = + (DrmSession) Mockito.mock(DrmSession.class); + when(mockPlaceholderDrmSession.getState()).thenReturn(DrmSession.STATE_OPENED_WITH_KEYS); + when(mockDrmSessionManager.acquirePlaceholderSession( + ArgumentMatchers.any(), ArgumentMatchers.anyInt())) + .thenReturn(mockPlaceholderDrmSession); + + writeFormat(ENCRYPTED_SAMPLE_FORMATS[0]); + byte[] sampleData = new byte[] {0, 1, 2}; + byte[] initializationVector = new byte[] {7, 6, 5, 4, 3, 2, 1, 0}; + byte[] encryptedSampleData = + TestUtil.joinByteArrays( + new byte[] { + 0x08, // subsampleEncryption = false (1 bit), ivSize = 8 (7 bits). + }, + initializationVector, + sampleData); + writeSample( + encryptedSampleData, /* timestampUs= */ 0, BUFFER_FLAG_KEY_FRAME | BUFFER_FLAG_ENCRYPTED); + + int result = + sampleQueue.read( + formatHolder, + inputBuffer, + /* formatRequired= */ false, + /* loadingFinished= */ false, + /* decodeOnlyUntilUs= */ 0); + assertThat(result).isEqualTo(RESULT_FORMAT_READ); + + // Fill cryptoInfo.iv with non-zero data. When the 8 byte initialization vector is written into + // it, we expect the trailing 8 bytes to be zeroed. + inputBuffer.cryptoInfo.iv = new byte[16]; + Arrays.fill(inputBuffer.cryptoInfo.iv, (byte) 1); + + result = + sampleQueue.read( + formatHolder, + inputBuffer, + /* formatRequired= */ false, + /* loadingFinished= */ false, + /* decodeOnlyUntilUs= */ 0); + assertThat(result).isEqualTo(RESULT_BUFFER_READ); + + // Assert cryptoInfo.iv contains the 8-byte initialization vector and that the trailing 8 bytes + // have been zeroed. + byte[] expectedInitializationVector = Arrays.copyOf(initializationVector, 16); + assertArrayEquals(expectedInitializationVector, inputBuffer.cryptoInfo.iv); } @Test @@ -995,11 +1047,11 @@ public final class SampleQueueTest { private void writeTestDataWithEncryptedSections() { writeTestData( - ENCRYPTED_SAMPLES_DATA, - ENCRYPTED_SAMPLES_SIZES, - ENCRYPTED_SAMPLES_OFFSETS, + ENCRYPTED_SAMPLE_DATA, + ENCRYPTED_SAMPLE_SIZES, + ENCRYPTED_SAMPLE_OFFSETS, ENCRYPTED_SAMPLE_TIMESTAMPS, - ENCRYPTED_SAMPLES_FORMATS, + ENCRYPTED_SAMPLE_FORMATS, ENCRYPTED_SAMPLES_FLAGS); } @@ -1033,7 +1085,12 @@ public final class SampleQueueTest { /** Writes a single sample to {@code sampleQueue}. */ private void writeSample(byte[] data, long timestampUs, int sampleFlags) { sampleQueue.sampleData(new ParsableByteArray(data), data.length); - sampleQueue.sampleMetadata(timestampUs, sampleFlags, data.length, 0, null); + sampleQueue.sampleMetadata( + timestampUs, + sampleFlags, + data.length, + /* offset= */ 0, + (sampleFlags & C.BUFFER_FLAG_ENCRYPTED) != 0 ? DUMMY_CRYPTO_DATA : null); } /** @@ -1206,7 +1263,7 @@ public final class SampleQueueTest { } private void assertReadEncryptedSample(int sampleIndex) { - byte[] sampleData = new byte[ENCRYPTED_SAMPLES_SIZES[sampleIndex]]; + byte[] sampleData = new byte[ENCRYPTED_SAMPLE_SIZES[sampleIndex]]; Arrays.fill(sampleData, (byte) 1); boolean isKeyFrame = (ENCRYPTED_SAMPLES_FLAGS[sampleIndex] & C.BUFFER_FLAG_KEY_FRAME) != 0; boolean isEncrypted = (ENCRYPTED_SAMPLES_FLAGS[sampleIndex] & C.BUFFER_FLAG_ENCRYPTED) != 0; @@ -1216,7 +1273,7 @@ public final class SampleQueueTest { isEncrypted, sampleData, /* offset= */ 0, - ENCRYPTED_SAMPLES_SIZES[sampleIndex] - (isEncrypted ? 2 : 0)); + ENCRYPTED_SAMPLE_SIZES[sampleIndex] - (isEncrypted ? 2 : 0)); } /** From 5f1c6b650d12ba7c83a20c8d18b25ba7bccc3dc8 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 17 Feb 2020 14:55:45 +0000 Subject: [PATCH 135/368] Fix SmoothStreaming Issue: #6981 PiperOrigin-RevId: 295579872 --- RELEASENOTES.md | 2 ++ .../source/smoothstreaming/DefaultSsChunkSource.java | 9 ++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 6acd772e05..e23bf592a5 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,6 +2,8 @@ ### 2.11.3 (2020-02-19) ### +* SmoothStreaming: Fix regression that broke playback in 2.11.2 + ([#6981](https://github.com/google/ExoPlayer/issues/6981)). * DRM: Fix issue switching from protected content that uses a 16-byte initialization vector to one that uses an 8-byte initialization vector ([#6982](https://github.com/google/ExoPlayer/issues/6982)). diff --git a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.java b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.java index 22dfb04f13..d005dac8da 100644 --- a/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.java +++ b/library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultSsChunkSource.java @@ -113,9 +113,12 @@ public class DefaultSsChunkSource implements SsChunkSource { Track track = new Track(manifestTrackIndex, streamElement.type, streamElement.timescale, C.TIME_UNSET, manifest.durationUs, format, Track.TRANSFORMATION_NONE, trackEncryptionBoxes, nalUnitLengthFieldLength, null, null); - FragmentedMp4Extractor extractor = new FragmentedMp4Extractor( - FragmentedMp4Extractor.FLAG_WORKAROUND_EVERY_VIDEO_FRAME_IS_SYNC_FRAME - | FragmentedMp4Extractor.FLAG_WORKAROUND_IGNORE_TFDT_BOX, null, track, null); + FragmentedMp4Extractor extractor = + new FragmentedMp4Extractor( + FragmentedMp4Extractor.FLAG_WORKAROUND_EVERY_VIDEO_FRAME_IS_SYNC_FRAME + | FragmentedMp4Extractor.FLAG_WORKAROUND_IGNORE_TFDT_BOX, + /* timestampAdjuster= */ null, + track); extractorWrappers[i] = new ChunkExtractorWrapper(extractor, streamElement.type, format); } } From b14d8799470792c2c94f1c70c9fa244c7d353915 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 18 Feb 2020 14:47:58 +0000 Subject: [PATCH 136/368] Tweak Javadoc --- .../exoplayer2/extractor/DefaultExtractorsFactory.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java index f52dc3defc..804f69f0f9 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/DefaultExtractorsFactory.java @@ -53,10 +53,10 @@ import java.lang.reflect.Constructor; *

    The read position of {@code input} is left unchanged and the peek position is aligned with + * the read position. + * + * @param input Input stream to get the metadata from (starting from the read position). + * @return A {@link FirstFrameMetadata} containing the frame start marker (which should be the + * same for all the frames in the stream) and the block size of the frame. + * @throws ParserException If an error occurs parsing the frame metadata. + * @throws IOException If peeking from the input fails. + * @throws InterruptedException If interrupted while peeking from input. + */ + public static FirstFrameMetadata getFirstFrameMetadata(ExtractorInput input) + throws IOException, InterruptedException { + input.resetPeekPosition(); + ParsableByteArray scratch = new ParsableByteArray(FlacConstants.MAX_FRAME_HEADER_SIZE); + input.peekFully(scratch.data, 0, FlacConstants.MAX_FRAME_HEADER_SIZE); + + int frameStartMarker = scratch.readUnsignedShort(); + int syncCode = frameStartMarker >> 2; + if (syncCode != SYNC_CODE) { + input.resetPeekPosition(); + throw new ParserException("First frame does not start with sync code."); + } + + scratch.setPosition(0); + int firstFrameBlockSizeSamples = FlacFrameReader.getFrameBlockSizeSamples(scratch); + + input.resetPeekPosition(); + return new FirstFrameMetadata(frameStartMarker, firstFrameBlockSizeSamples); + } + + private static FlacStreamMetadata readStreamInfoBlock(ExtractorInput input) + throws IOException, InterruptedException { + byte[] scratchData = new byte[FlacConstants.STREAM_INFO_BLOCK_SIZE]; + input.readFully(scratchData, 0, FlacConstants.STREAM_INFO_BLOCK_SIZE); + return new FlacStreamMetadata( + scratchData, /* offset= */ FlacConstants.METADATA_BLOCK_HEADER_SIZE); + } + + private static List readVorbisCommentMetadataBlock(ExtractorInput input, int length) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(length); + input.readFully(scratch.data, 0, length); + scratch.skipBytes(FlacConstants.METADATA_BLOCK_HEADER_SIZE); + CommentHeader commentHeader = + VorbisUtil.readVorbisCommentHeader( + scratch, /* hasMetadataHeader= */ false, /* hasFramingBit= */ false); + return Arrays.asList(commentHeader.comments); + } + + private static PictureFrame readPictureMetadataBlock(ExtractorInput input, int length) + throws IOException, InterruptedException { + ParsableByteArray scratch = new ParsableByteArray(length); + input.readFully(scratch.data, 0, length); + scratch.skipBytes(FlacConstants.METADATA_BLOCK_HEADER_SIZE); + + int pictureType = scratch.readInt(); + int mimeTypeLength = scratch.readInt(); + String mimeType = scratch.readString(mimeTypeLength, Charset.forName(C.ASCII_NAME)); + int descriptionLength = scratch.readInt(); + String description = scratch.readString(descriptionLength); + int width = scratch.readInt(); + int height = scratch.readInt(); + int depth = scratch.readInt(); + int colors = scratch.readInt(); + int pictureDataLength = scratch.readInt(); + byte[] pictureData = new byte[pictureDataLength]; + scratch.readBytes(pictureData, 0, pictureDataLength); + + return new PictureFrame( + pictureType, mimeType, description, width, height, depth, colors, pictureData); + } + + private FlacMetadataReader() {} +} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArray.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisBitArray.java similarity index 96% rename from library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArray.java rename to library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisBitArray.java index 958a2ef955..b498be4a33 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisBitArray.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisBitArray.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.extractor.ogg; +package com.google.android.exoplayer2.extractor; import com.google.android.exoplayer2.util.Assertions; /** - * Wraps a byte array, providing methods that allow it to be read as a vorbis bitstream. + * Wraps a byte array, providing methods that allow it to be read as a Vorbis bitstream. * * @see Vorbis bitpacking * specification */ -/* package */ final class VorbisBitArray { +public final class VorbisBitArray { private final byte[] data; private final int byteLimit; diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtil.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisUtil.java similarity index 85% rename from library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtil.java rename to library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisUtil.java index eb4aee87a3..5066c3a7bd 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/VorbisUtil.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/VorbisUtil.java @@ -13,17 +13,87 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.extractor.ogg; +package com.google.android.exoplayer2.extractor; import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.ParsableByteArray; import java.util.Arrays; -/** - * Utility methods for parsing vorbis streams. - */ -/* package */ final class VorbisUtil { +/** Utility methods for parsing Vorbis streams. */ +public final class VorbisUtil { + + /** Vorbis comment header. */ + public static final class CommentHeader { + + public final String vendor; + public final String[] comments; + public final int length; + + public CommentHeader(String vendor, String[] comments, int length) { + this.vendor = vendor; + this.comments = comments; + this.length = length; + } + } + + /** Vorbis identification header. */ + public static final class VorbisIdHeader { + + public final long version; + public final int channels; + public final long sampleRate; + public final int bitrateMax; + public final int bitrateNominal; + public final int bitrateMin; + public final int blockSize0; + public final int blockSize1; + public final boolean framingFlag; + public final byte[] data; + + public VorbisIdHeader( + long version, + int channels, + long sampleRate, + int bitrateMax, + int bitrateNominal, + int bitrateMin, + int blockSize0, + int blockSize1, + boolean framingFlag, + byte[] data) { + this.version = version; + this.channels = channels; + this.sampleRate = sampleRate; + this.bitrateMax = bitrateMax; + this.bitrateNominal = bitrateNominal; + this.bitrateMin = bitrateMin; + this.blockSize0 = blockSize0; + this.blockSize1 = blockSize1; + this.framingFlag = framingFlag; + this.data = data; + } + + public int getApproximateBitrate() { + return bitrateNominal == 0 ? (bitrateMin + bitrateMax) / 2 : bitrateNominal; + } + } + + /** Vorbis setup header modes. */ + public static final class Mode { + + public final boolean blockFlag; + public final int windowType; + public final int transformType; + public final int mapping; + + public Mode(boolean blockFlag, int windowType, int transformType, int mapping) { + this.blockFlag = blockFlag; + this.windowType = windowType; + this.transformType = transformType; + this.mapping = mapping; + } + } private static final String TAG = "VorbisUtil"; @@ -45,7 +115,7 @@ import java.util.Arrays; } /** - * Reads a vorbis identification header from {@code headerData}. + * Reads a Vorbis identification header from {@code headerData}. * * @see Vorbis * spec/Identification header @@ -70,7 +140,7 @@ import java.util.Arrays; int blockSize1 = (int) Math.pow(2, (blockSize & 0xF0) >> 4); boolean framingFlag = (headerData.readUnsignedByte() & 0x01) > 0; - // raw data of vorbis setup header has to be passed to decoder as CSD buffer #1 + // raw data of Vorbis setup header has to be passed to decoder as CSD buffer #1 byte[] data = Arrays.copyOf(headerData.data, headerData.limit()); return new VorbisIdHeader(version, channels, sampleRate, bitrateMax, bitrateNominal, bitrateMin, @@ -78,18 +148,41 @@ import java.util.Arrays; } /** - * Reads a vorbis comment header. + * Reads a Vorbis comment header. * - * @see - * Vorbis spec/Comment header - * @param headerData a {@link ParsableByteArray} wrapping the header data. - * @return a {@link VorbisUtil.CommentHeader} with all the comments. - * @throws ParserException thrown if invalid capture pattern is detected. + * @see Vorbis + * spec/Comment header + * @param headerData A {@link ParsableByteArray} wrapping the header data. + * @return A {@link VorbisUtil.CommentHeader} with all the comments. + * @throws ParserException If an error occurs parsing the comment header. */ public static CommentHeader readVorbisCommentHeader(ParsableByteArray headerData) throws ParserException { + return readVorbisCommentHeader( + headerData, /* hasMetadataHeader= */ true, /* hasFramingBit= */ true); + } - verifyVorbisHeaderCapturePattern(0x03, headerData, false); + /** + * Reads a Vorbis comment header. + * + *

  • AMR ({@link AmrExtractor}) *
  • FLAC *
      - *
    • if available, using the Flac extension extractor, - *
    • otherwise, using core's {@link FlacExtractor}. NOTE: Android devices do not generally - * include a FLAC decoder before API 27, which can be worked around by using the FLAC - * extension of the FFMPEG extension. + *
    • If available, the FLAC extension extractor is used. + *
    • Otherwise, the core {@link FlacExtractor} is used. Note that Android devices do not + * generally include a FLAC decoder before API 27. This can be worked around by using + * the FLAC extension or the FFmpeg extension. *
    * */ From 23e4236227bc3b85a8422ef43f2158152452097a Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 18 Feb 2020 10:29:19 +0000 Subject: [PATCH 137/368] Add missing IntDef to switch PiperOrigin-RevId: 295692163 --- .../main/java/com/google/android/exoplayer2/audio/WavUtil.java | 1 + 1 file changed, 1 insertion(+) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/WavUtil.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/WavUtil.java index dff81021de..208989124a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/WavUtil.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/WavUtil.java @@ -61,6 +61,7 @@ public final class WavUtil { return TYPE_PCM; case C.ENCODING_PCM_FLOAT: return TYPE_FLOAT; + case C.ENCODING_PCM_16BIT_BIG_ENDIAN: // Not TYPE_PCM, because TYPE_PCM is little endian. case C.ENCODING_INVALID: case Format.NO_VALUE: default: From ed1eade980677008eb8710b338bb1549a37df137 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 18 Feb 2020 17:00:38 +0000 Subject: [PATCH 138/368] Update stale comment in TrimmingAudioProcessor The part about leaving the pending trim start byte count unmodified if the processor was just configured is not correct. PiperOrigin-RevId: 295745371 --- .../exoplayer2/audio/TrimmingAudioProcessor.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/TrimmingAudioProcessor.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/TrimmingAudioProcessor.java index 9437e4ac26..8d84325d93 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/TrimmingAudioProcessor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/TrimmingAudioProcessor.java @@ -155,15 +155,16 @@ import java.nio.ByteBuffer; @Override protected void onFlush() { if (reconfigurationPending) { + // This is the initial flush after reconfiguration. Prepare to trim bytes from the start/end. reconfigurationPending = false; endBuffer = new byte[trimEndFrames * inputAudioFormat.bytesPerFrame]; pendingTrimStartBytes = trimStartFrames * inputAudioFormat.bytesPerFrame; } else { - // Audio processors are flushed after initial configuration, so we leave the pending trim - // start byte count unmodified if the processor was just configured. Otherwise we (possibly - // incorrectly) assume that this is a seek to a non-zero position. We should instead check the - // timestamp of the first input buffer queued after flushing to decide whether to trim (see - // also [Internal: b/77292509]). + // This is a flush during playback (after the initial flush). We assume this was caused by a + // seek to a non-zero position and clear pending start bytes. This assumption may be wrong (we + // may be seeking to zero), but playing data that should have been trimmed shouldn't be + // noticeable after a seek. Ideally we would check the timestamp of the first input buffer + // queued after flushing to decide whether to trim (see also [Internal: b/77292509]). pendingTrimStartBytes = 0; } endBufferSize = 0; From 1818921a20b673f1d45f70659e8f27d4b0dc885b Mon Sep 17 00:00:00 2001 From: ibaker Date: Wed, 19 Feb 2020 11:09:53 +0000 Subject: [PATCH 139/368] Catch-and-log all subtitle decode errors issue:#6885 PiperOrigin-RevId: 295931197 --- RELEASENOTES.md | 6 +++ .../exoplayer2/decoder/SimpleDecoder.java | 7 +++- .../android/exoplayer2/text/TextRenderer.java | 40 ++++++++++++++----- 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index e23bf592a5..847746d425 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -1,5 +1,11 @@ # Release notes # +### 2.11.4 (not yet released) ### + +* Text: Catch-and-log all fatal exceptions in `TextRenderer` instead of + re-throwing, allowing playback to continue even if subtitles fail + ([#6885](https://github.com/google/ExoPlayer/issues/6885)). + ### 2.11.3 (2020-02-19) ### * SmoothStreaming: Fix regression that broke playback in 2.11.2 diff --git a/library/core/src/main/java/com/google/android/exoplayer2/decoder/SimpleDecoder.java b/library/core/src/main/java/com/google/android/exoplayer2/decoder/SimpleDecoder.java index 03aabecb0e..4eef1ea32d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/decoder/SimpleDecoder.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/decoder/SimpleDecoder.java @@ -149,6 +149,7 @@ public abstract class SimpleDecoder< while (!queuedOutputBuffers.isEmpty()) { queuedOutputBuffers.removeFirst().release(); } + exception = null; } } @@ -225,6 +226,7 @@ public abstract class SimpleDecoder< if (inputBuffer.isDecodeOnly()) { outputBuffer.addFlag(C.BUFFER_FLAG_DECODE_ONLY); } + @Nullable E exception; try { exception = decode(inputBuffer, outputBuffer, resetDecoder); } catch (RuntimeException e) { @@ -238,8 +240,9 @@ public abstract class SimpleDecoder< exception = createUnexpectedDecodeException(e); } if (exception != null) { - // Memory barrier to ensure that the decoder exception is visible from the playback thread. - synchronized (lock) {} + synchronized (lock) { + this.exception = exception; + } return false; } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java index 058b1c4526..46c26db122 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/text/TextRenderer.java @@ -23,11 +23,11 @@ import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.BaseRenderer; import com.google.android.exoplayer2.C; -import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.FormatHolder; import com.google.android.exoplayer2.RendererCapabilities; import com.google.android.exoplayer2.util.Assertions; +import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; @@ -45,6 +45,8 @@ import java.util.List; */ public final class TextRenderer extends BaseRenderer implements Callback { + private static final String TAG = "TextRenderer"; + @Documented @Retention(RetentionPolicy.SOURCE) @IntDef({ @@ -143,19 +145,13 @@ public final class TextRenderer extends BaseRenderer implements Callback { @Override protected void onPositionReset(long positionUs, boolean joining) { - clearOutput(); inputStreamEnded = false; outputStreamEnded = false; - if (decoderReplacementState != REPLACEMENT_STATE_NONE) { - replaceDecoder(); - } else { - releaseBuffers(); - decoder.flush(); - } + resetOutputAndDecoder(); } @Override - public void render(long positionUs, long elapsedRealtimeUs) throws ExoPlaybackException { + public void render(long positionUs, long elapsedRealtimeUs) { if (outputStreamEnded) { return; } @@ -165,7 +161,8 @@ public final class TextRenderer extends BaseRenderer implements Callback { try { nextSubtitle = decoder.dequeueOutputBuffer(); } catch (SubtitleDecoderException e) { - throw createRendererException(e, streamFormat); + handleDecoderError(e); + return; } } @@ -247,7 +244,8 @@ public final class TextRenderer extends BaseRenderer implements Callback { } } } catch (SubtitleDecoderException e) { - throw createRendererException(e, streamFormat); + handleDecoderError(e); + return; } } @@ -329,4 +327,24 @@ public final class TextRenderer extends BaseRenderer implements Callback { output.onCues(cues); } + /** + * Called when {@link #decoder} throws an exception, so it can be logged and playback can + * continue. + * + *

    Logs {@code e} and resets state to allow decoding the next sample. + */ + private void handleDecoderError(SubtitleDecoderException e) { + Log.e(TAG, "Subtitle decoding failed. streamFormat=" + streamFormat, e); + resetOutputAndDecoder(); + } + + private void resetOutputAndDecoder() { + clearOutput(); + if (decoderReplacementState != REPLACEMENT_STATE_NONE) { + replaceDecoder(); + } else { + releaseBuffers(); + decoder.flush(); + } + } } From 11635191a63e5ba1e1c0bf5b046faeb1b6cfb9a6 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 7 Feb 2020 00:57:15 +0000 Subject: [PATCH 140/368] Switch to new libgav1 frame buffer callback API. The new code in Libgav1GetFrameBuffer is copied from libgav1/src/frame_buffer_callback_adaptor.cc. It may become libgav1 utility functions available to libgav1 clients in the future. The Libgav1FrameBuffer struct in the old frame buffer callback API is defined as follows: typedef struct Libgav1FrameBuffer { uint8_t* data[3]; size_t size[3]; void* private_data; } Libgav1FrameBuffer; Copy these three fields to the JniFrameBuffer class as private data members and add the RawBuffer() and Id() getter methods. The existing AlignTo16 function is replaced by the copied Align template function. PiperOrigin-RevId: 293709205 --- extensions/av1/src/main/jni/gav1_jni.cc | 182 +++++++++++++++++++----- 1 file changed, 146 insertions(+), 36 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 9ac3ea5cd2..29ef3f0ec4 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -27,6 +27,7 @@ #endif // CPU_FEATURES_COMPILED_ANY_ARM_NEON #include +#include #include #include // NOLINT #include @@ -121,15 +122,13 @@ const char* GetJniErrorMessage(JniStatusCode error_code) { } } -// Manages Libgav1FrameBuffer and reference information. +// Manages frame buffer and reference information. class JniFrameBuffer { public: - explicit JniFrameBuffer(int id) : id_(id), reference_count_(0) { - gav1_frame_buffer_.private_data = &id_; - } + explicit JniFrameBuffer(int id) : id_(id), reference_count_(0) {} ~JniFrameBuffer() { for (int plane_index = kPlaneY; plane_index < kMaxPlanes; plane_index++) { - delete[] gav1_frame_buffer_.data[plane_index]; + delete[] raw_buffer_[plane_index]; } } @@ -160,9 +159,8 @@ class JniFrameBuffer { void RemoveReference() { reference_count_--; } bool InUse() const { return reference_count_ != 0; } - const Libgav1FrameBuffer& GetGav1FrameBuffer() const { - return gav1_frame_buffer_; - } + uint8_t* RawBuffer(int plane_index) const { return raw_buffer_[plane_index]; } + int Id() const { return id_; } // Attempts to reallocate data planes if the existing ones don't have enough // capacity. Returns true if the allocation was successful or wasn't needed, @@ -172,15 +170,14 @@ class JniFrameBuffer { for (int plane_index = kPlaneY; plane_index < kMaxPlanes; plane_index++) { const int min_size = (plane_index == kPlaneY) ? y_plane_min_size : uv_plane_min_size; - if (gav1_frame_buffer_.size[plane_index] >= min_size) continue; - delete[] gav1_frame_buffer_.data[plane_index]; - gav1_frame_buffer_.data[plane_index] = - new (std::nothrow) uint8_t[min_size]; - if (!gav1_frame_buffer_.data[plane_index]) { - gav1_frame_buffer_.size[plane_index] = 0; + if (raw_buffer_size_[plane_index] >= min_size) continue; + delete[] raw_buffer_[plane_index]; + raw_buffer_[plane_index] = new (std::nothrow) uint8_t[min_size]; + if (!raw_buffer_[plane_index]) { + raw_buffer_size_[plane_index] = 0; return false; } - gav1_frame_buffer_.size[plane_index] = min_size; + raw_buffer_size_[plane_index] = min_size; } return true; } @@ -190,9 +187,12 @@ class JniFrameBuffer { uint8_t* plane_[kMaxPlanes]; int displayed_width_[kMaxPlanes]; int displayed_height_[kMaxPlanes]; - int id_; + const int id_; int reference_count_; - Libgav1FrameBuffer gav1_frame_buffer_ = {}; + // Pointers to the raw buffers allocated for the data planes. + uint8_t* raw_buffer_[kMaxPlanes] = {}; + // Sizes of the raw buffers in bytes. + size_t raw_buffer_size_[kMaxPlanes] = {}; }; // Manages frame buffers used by libgav1 decoder and ExoPlayer. @@ -210,7 +210,7 @@ class JniBufferManager { } JniStatusCode GetBuffer(size_t y_plane_min_size, size_t uv_plane_min_size, - Libgav1FrameBuffer* frame_buffer) { + JniFrameBuffer** jni_buffer) { std::lock_guard lock(mutex_); JniFrameBuffer* output_buffer; @@ -230,7 +230,7 @@ class JniBufferManager { } output_buffer->AddReference(); - *frame_buffer = output_buffer->GetGav1FrameBuffer(); + *jni_buffer = output_buffer; return kJniStatusOk; } @@ -316,33 +316,142 @@ struct JniContext { JniStatusCode jni_status_code = kJniStatusOk; }; -int Libgav1GetFrameBuffer(void* private_data, size_t y_plane_min_size, - size_t uv_plane_min_size, - Libgav1FrameBuffer* frame_buffer) { - JniContext* const context = reinterpret_cast(private_data); +// Aligns |value| to the desired |alignment|. |alignment| must be a power of 2. +template +constexpr T Align(T value, T alignment) { + const T alignment_mask = alignment - 1; + return (value + alignment_mask) & ~alignment_mask; +} + +// Aligns |addr| to the desired |alignment|. |alignment| must be a power of 2. +uint8_t* AlignAddr(uint8_t* const addr, const size_t alignment) { + const auto value = reinterpret_cast(addr); + return reinterpret_cast(Align(value, alignment)); +} + +// Libgav1 frame buffer callbacks return 0 on success, -1 on failure. + +int Libgav1OnFrameBufferSizeChanged(void* /*callback_private_data*/, + int /*bitdepth*/, + libgav1::ImageFormat /*image_format*/, + int /*width*/, int /*height*/, + int /*left_border*/, int /*right_border*/, + int /*top_border*/, int /*bottom_border*/, + int /*stride_alignment*/) { + // The libgav1 decoder calls this callback to provide information on the + // subsequent frames in the video. JniBufferManager ignores this information. + return 0; +} + +int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, + libgav1::ImageFormat image_format, int width, + int height, int left_border, int right_border, + int top_border, int bottom_border, + int stride_alignment, + libgav1::FrameBuffer2* frame_buffer) { + bool is_monochrome = false; + int8_t subsampling_x = 1; + int8_t subsampling_y = 1; + switch (image_format) { + case libgav1::kImageFormatYuv420: + break; + case libgav1::kImageFormatYuv422: + subsampling_y = 0; + break; + case libgav1::kImageFormatYuv444: + subsampling_x = subsampling_y = 0; + break; + default: + // image_format is libgav1::kImageFormatMonochrome400. (AV1 has only four + // image formats, hardcoded in the spec). + is_monochrome = true; + break; + } + + // Calculate y_stride (in bytes). It is padded to a multiple of + // |stride_alignment| bytes. + int y_stride = width + left_border + right_border; + if (bitdepth > 8) y_stride *= sizeof(uint16_t); + y_stride = Align(y_stride, stride_alignment); + // Size of the Y plane in bytes. + const uint64_t y_plane_size = + (height + top_border + bottom_border) * static_cast(y_stride) + + (stride_alignment - 1); + + const int uv_width = is_monochrome ? 0 : width >> subsampling_x; + const int uv_height = is_monochrome ? 0 : height >> subsampling_y; + const int uv_left_border = is_monochrome ? 0 : left_border >> subsampling_x; + const int uv_right_border = is_monochrome ? 0 : right_border >> subsampling_x; + const int uv_top_border = is_monochrome ? 0 : top_border >> subsampling_y; + const int uv_bottom_border = + is_monochrome ? 0 : bottom_border >> subsampling_y; + + // Calculate uv_stride (in bytes). It is padded to a multiple of + // |stride_alignment| bytes. + int uv_stride = uv_width + uv_left_border + uv_right_border; + if (bitdepth > 8) uv_stride *= sizeof(uint16_t); + uv_stride = Align(uv_stride, stride_alignment); + // Size of the U or V plane in bytes. + const uint64_t uv_plane_size = + is_monochrome ? 0 + : (uv_height + uv_top_border + uv_bottom_border) * + static_cast(uv_stride) + + (stride_alignment - 1); + + // Check if it is safe to cast y_plane_size and uv_plane_size to size_t. + if (y_plane_size > SIZE_MAX || uv_plane_size > SIZE_MAX) { + return -1; + } + + JniContext* const context = + reinterpret_cast(callback_private_data); + JniFrameBuffer* jni_buffer; context->jni_status_code = context->buffer_manager.GetBuffer( - y_plane_min_size, uv_plane_min_size, frame_buffer); + static_cast(y_plane_size), static_cast(uv_plane_size), + &jni_buffer); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); return -1; } + + uint8_t* const y_buffer = jni_buffer->RawBuffer(0); + uint8_t* const u_buffer = !is_monochrome ? jni_buffer->RawBuffer(1) : nullptr; + uint8_t* const v_buffer = !is_monochrome ? jni_buffer->RawBuffer(2) : nullptr; + + int left_border_bytes = left_border; + int uv_left_border_bytes = uv_left_border; + if (bitdepth > 8) { + left_border_bytes *= sizeof(uint16_t); + uv_left_border_bytes *= sizeof(uint16_t); + } + frame_buffer->plane[0] = AlignAddr( + y_buffer + (top_border * y_stride) + left_border_bytes, stride_alignment); + frame_buffer->plane[1] = + AlignAddr(u_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes, + stride_alignment); + frame_buffer->plane[2] = + AlignAddr(v_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes, + stride_alignment); + + frame_buffer->stride[0] = y_stride; + frame_buffer->stride[1] = frame_buffer->stride[2] = uv_stride; + + frame_buffer->private_data = reinterpret_cast(jni_buffer->Id()); + return 0; } -int Libgav1ReleaseFrameBuffer(void* private_data, - Libgav1FrameBuffer* frame_buffer) { - JniContext* const context = reinterpret_cast(private_data); - const int buffer_id = *reinterpret_cast(frame_buffer->private_data); +void Libgav1ReleaseFrameBuffer(void* callback_private_data, + void* buffer_private_data) { + JniContext* const context = + reinterpret_cast(callback_private_data); + const int buffer_id = reinterpret_cast(buffer_private_data); context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); - return -1; } - return 0; } -constexpr int AlignTo16(int value) { return (value + 15) & (~15); } - void CopyPlane(const uint8_t* source, int source_stride, uint8_t* destination, int destination_stride, int width, int height) { while (height--) { @@ -508,8 +617,9 @@ DECODER_FUNC(jlong, gav1Init, jint threads) { libgav1::DecoderSettings settings; settings.threads = threads; - settings.get = Libgav1GetFrameBuffer; - settings.release = Libgav1ReleaseFrameBuffer; + settings.on_frame_buffer_size_changed = Libgav1OnFrameBufferSizeChanged; + settings.get_frame_buffer = Libgav1GetFrameBuffer; + settings.release_frame_buffer = Libgav1ReleaseFrameBuffer; settings.callback_private_data = context; context->libgav1_status_code = context->decoder.Init(&settings); @@ -619,7 +729,7 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, } const int buffer_id = - *reinterpret_cast(decoder_buffer->buffer_private_data); + reinterpret_cast(decoder_buffer->buffer_private_data); context->buffer_manager.AddBufferReference(buffer_id); JniFrameBuffer* const jni_buffer = context->buffer_manager.GetBuffer(buffer_id); @@ -680,7 +790,7 @@ DECODER_FUNC(jint, gav1RenderFrame, jlong jContext, jobject jSurface, const int32_t native_window_buffer_uv_height = (native_window_buffer.height + 1) / 2; const int native_window_buffer_uv_stride = - AlignTo16(native_window_buffer.stride / 2); + Align(native_window_buffer.stride / 2, 16); // TODO(b/140606738): Handle monochrome videos. From 0acc95cfbbb9c164c7321d7be98d425430245907 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 7 Feb 2020 15:51:27 +0000 Subject: [PATCH 141/368] Cast void* to JniContext* using static_cast. static_cast is more appropriate than reinrerpret_cast for casting from void* to JniContext*. See Section 7.2.1 (page 173) in The C++ Programming Language, 4th Edition and https://stackoverflow.com/questions/310451/should-i-use-static-cast-or-reinterpret-cast-when-casting-a-void-to-whatever PiperOrigin-RevId: 293812940 --- extensions/av1/src/main/jni/gav1_jni.cc | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 29ef3f0ec4..8ba4413fea 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -403,8 +403,7 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, return -1; } - JniContext* const context = - reinterpret_cast(callback_private_data); + JniContext* const context = static_cast(callback_private_data); JniFrameBuffer* jni_buffer; context->jni_status_code = context->buffer_manager.GetBuffer( static_cast(y_plane_size), static_cast(uv_plane_size), @@ -443,8 +442,7 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, void Libgav1ReleaseFrameBuffer(void* callback_private_data, void* buffer_private_data) { - JniContext* const context = - reinterpret_cast(callback_private_data); + JniContext* const context = static_cast(callback_private_data); const int buffer_id = reinterpret_cast(buffer_private_data); context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); if (context->jni_status_code != kJniStatusOk) { From b73f6b6ef06bd2c2af6e490bf3a47cf2cebab864 Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 14 Feb 2020 21:16:57 +0000 Subject: [PATCH 142/368] gav1_jni: fix pointer->int conversion warnings fixes: gav1_jni.cc:446:25: error: cast from pointer to smaller type 'int' loses information const int buffer_id = reinterpret_cast(buffer_private_data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gav1_jni.cc:730:9: error: cast from pointer to smaller type 'int' loses information reinterpret_cast(decoder_buffer->buffer_private_data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ after https://github.com/google/ExoPlayer/commit/0915998add5918214fa0282a69b50a159168a6d5 PiperOrigin-RevId: 295211245 --- extensions/av1/src/main/jni/gav1_jni.cc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 8ba4413fea..30c88693df 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -27,6 +27,8 @@ #endif // CPU_FEATURES_COMPILED_ANY_ARM_NEON #include +#include +#include #include #include #include // NOLINT @@ -443,8 +445,10 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, void Libgav1ReleaseFrameBuffer(void* callback_private_data, void* buffer_private_data) { JniContext* const context = static_cast(callback_private_data); - const int buffer_id = reinterpret_cast(buffer_private_data); - context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); + const intptr_t buffer_id = reinterpret_cast(buffer_private_data); + assert(buffer_id <= INT_MAX); + context->jni_status_code = + context->buffer_manager.ReleaseBuffer(static_cast(buffer_id)); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); } @@ -726,11 +730,12 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, return kStatusError; } - const int buffer_id = - reinterpret_cast(decoder_buffer->buffer_private_data); - context->buffer_manager.AddBufferReference(buffer_id); + const intptr_t buffer_id = + reinterpret_cast(decoder_buffer->buffer_private_data); + assert(buffer_id <= INT_MAX); + context->buffer_manager.AddBufferReference(static_cast(buffer_id)); JniFrameBuffer* const jni_buffer = - context->buffer_manager.GetBuffer(buffer_id); + context->buffer_manager.GetBuffer(static_cast(buffer_id)); jni_buffer->SetFrameData(*decoder_buffer); env->CallVoidMethod(jOutputBuffer, context->init_for_private_frame_method, decoder_buffer->displayed_width[kPlaneY], @@ -739,7 +744,8 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, // Exception is thrown in Java when returning from the native call. return kStatusError; } - env->SetIntField(jOutputBuffer, context->decoder_private_field, buffer_id); + env->SetIntField(jOutputBuffer, context->decoder_private_field, + static_cast(buffer_id)); } return kStatusOk; From 766b383d274ebbf9ebe387b0abe8df9dc323f8eb Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 17 Feb 2020 11:00:56 +0000 Subject: [PATCH 143/368] Use libgav1 frame buffer callback helper functions Libgav1 recently added the ComputeFrameBufferInfo() and SetFrameBuffer() helper functions for writing frame buffer callbacks. Using them simplifies the Libgav1GetFrameBuffer() function. Also resurrect the AlignTo16() function. PiperOrigin-RevId: 295548330 --- extensions/av1/src/main/jni/gav1_jni.cc | 109 ++++-------------------- 1 file changed, 17 insertions(+), 92 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 30c88693df..4ce614a3d9 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -318,19 +318,6 @@ struct JniContext { JniStatusCode jni_status_code = kJniStatusOk; }; -// Aligns |value| to the desired |alignment|. |alignment| must be a power of 2. -template -constexpr T Align(T value, T alignment) { - const T alignment_mask = alignment - 1; - return (value + alignment_mask) & ~alignment_mask; -} - -// Aligns |addr| to the desired |alignment|. |alignment| must be a power of 2. -uint8_t* AlignAddr(uint8_t* const addr, const size_t alignment) { - const auto value = reinterpret_cast(addr); - return reinterpret_cast(Align(value, alignment)); -} - // Libgav1 frame buffer callbacks return 0 on success, -1 on failure. int Libgav1OnFrameBufferSizeChanged(void* /*callback_private_data*/, @@ -351,95 +338,31 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, int top_border, int bottom_border, int stride_alignment, libgav1::FrameBuffer2* frame_buffer) { - bool is_monochrome = false; - int8_t subsampling_x = 1; - int8_t subsampling_y = 1; - switch (image_format) { - case libgav1::kImageFormatYuv420: - break; - case libgav1::kImageFormatYuv422: - subsampling_y = 0; - break; - case libgav1::kImageFormatYuv444: - subsampling_x = subsampling_y = 0; - break; - default: - // image_format is libgav1::kImageFormatMonochrome400. (AV1 has only four - // image formats, hardcoded in the spec). - is_monochrome = true; - break; - } - - // Calculate y_stride (in bytes). It is padded to a multiple of - // |stride_alignment| bytes. - int y_stride = width + left_border + right_border; - if (bitdepth > 8) y_stride *= sizeof(uint16_t); - y_stride = Align(y_stride, stride_alignment); - // Size of the Y plane in bytes. - const uint64_t y_plane_size = - (height + top_border + bottom_border) * static_cast(y_stride) + - (stride_alignment - 1); - - const int uv_width = is_monochrome ? 0 : width >> subsampling_x; - const int uv_height = is_monochrome ? 0 : height >> subsampling_y; - const int uv_left_border = is_monochrome ? 0 : left_border >> subsampling_x; - const int uv_right_border = is_monochrome ? 0 : right_border >> subsampling_x; - const int uv_top_border = is_monochrome ? 0 : top_border >> subsampling_y; - const int uv_bottom_border = - is_monochrome ? 0 : bottom_border >> subsampling_y; - - // Calculate uv_stride (in bytes). It is padded to a multiple of - // |stride_alignment| bytes. - int uv_stride = uv_width + uv_left_border + uv_right_border; - if (bitdepth > 8) uv_stride *= sizeof(uint16_t); - uv_stride = Align(uv_stride, stride_alignment); - // Size of the U or V plane in bytes. - const uint64_t uv_plane_size = - is_monochrome ? 0 - : (uv_height + uv_top_border + uv_bottom_border) * - static_cast(uv_stride) + - (stride_alignment - 1); - - // Check if it is safe to cast y_plane_size and uv_plane_size to size_t. - if (y_plane_size > SIZE_MAX || uv_plane_size > SIZE_MAX) { - return -1; - } + libgav1::FrameBufferInfo info; + Libgav1StatusCode status = libgav1::ComputeFrameBufferInfo( + bitdepth, image_format, width, height, left_border, right_border, + top_border, bottom_border, stride_alignment, &info); + if (status != kLibgav1StatusOk) return -1; JniContext* const context = static_cast(callback_private_data); JniFrameBuffer* jni_buffer; context->jni_status_code = context->buffer_manager.GetBuffer( - static_cast(y_plane_size), static_cast(uv_plane_size), - &jni_buffer); + info.y_buffer_size, info.uv_buffer_size, &jni_buffer); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); return -1; } uint8_t* const y_buffer = jni_buffer->RawBuffer(0); - uint8_t* const u_buffer = !is_monochrome ? jni_buffer->RawBuffer(1) : nullptr; - uint8_t* const v_buffer = !is_monochrome ? jni_buffer->RawBuffer(2) : nullptr; + uint8_t* const u_buffer = + (info.uv_buffer_size != 0) ? jni_buffer->RawBuffer(1) : nullptr; + uint8_t* const v_buffer = + (info.uv_buffer_size != 0) ? jni_buffer->RawBuffer(2) : nullptr; - int left_border_bytes = left_border; - int uv_left_border_bytes = uv_left_border; - if (bitdepth > 8) { - left_border_bytes *= sizeof(uint16_t); - uv_left_border_bytes *= sizeof(uint16_t); - } - frame_buffer->plane[0] = AlignAddr( - y_buffer + (top_border * y_stride) + left_border_bytes, stride_alignment); - frame_buffer->plane[1] = - AlignAddr(u_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes, - stride_alignment); - frame_buffer->plane[2] = - AlignAddr(v_buffer + (uv_top_border * uv_stride) + uv_left_border_bytes, - stride_alignment); - - frame_buffer->stride[0] = y_stride; - frame_buffer->stride[1] = frame_buffer->stride[2] = uv_stride; - - frame_buffer->private_data = reinterpret_cast(jni_buffer->Id()); - - return 0; + status = libgav1::SetFrameBuffer(&info, y_buffer, u_buffer, v_buffer, + reinterpret_cast(jni_buffer->Id()), + frame_buffer); + return (status == kLibgav1StatusOk) ? 0 : -1; } void Libgav1ReleaseFrameBuffer(void* callback_private_data, @@ -454,6 +377,8 @@ void Libgav1ReleaseFrameBuffer(void* callback_private_data, } } +constexpr int AlignTo16(int value) { return (value + 15) & (~15); } + void CopyPlane(const uint8_t* source, int source_stride, uint8_t* destination, int destination_stride, int width, int height) { while (height--) { @@ -794,7 +719,7 @@ DECODER_FUNC(jint, gav1RenderFrame, jlong jContext, jobject jSurface, const int32_t native_window_buffer_uv_height = (native_window_buffer.height + 1) / 2; const int native_window_buffer_uv_stride = - Align(native_window_buffer.stride / 2, 16); + AlignTo16(native_window_buffer.stride / 2); // TODO(b/140606738): Handle monochrome videos. From 75bd4ebc1800e5960e8badfc0e7e18d1e97821a3 Mon Sep 17 00:00:00 2001 From: olly Date: Mon, 17 Feb 2020 11:22:38 +0000 Subject: [PATCH 144/368] Use &id_ as buffer_private_data for libgav1. This avoids the issue of whether it is defined behaviour to cast an arbitrary int (or even intptr_t) value to a void* pointer. This is the original approach used before commit 0915998add5918214fa0282a69b50a159168a6d5. PiperOrigin-RevId: 295552115 --- extensions/av1/src/main/jni/gav1_jni.cc | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 4ce614a3d9..5be4f5b923 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -27,8 +27,6 @@ #endif // CPU_FEATURES_COMPILED_ANY_ARM_NEON #include -#include -#include #include #include #include // NOLINT @@ -134,6 +132,12 @@ class JniFrameBuffer { } } + // Not copyable or movable. + JniFrameBuffer(const JniFrameBuffer&) = delete; + JniFrameBuffer(JniFrameBuffer&&) = delete; + JniFrameBuffer& operator=(const JniFrameBuffer&) = delete; + JniFrameBuffer& operator=(JniFrameBuffer&&) = delete; + void SetFrameData(const libgav1::DecoderBuffer& decoder_buffer) { for (int plane_index = kPlaneY; plane_index < decoder_buffer.NumPlanes(); plane_index++) { @@ -162,7 +166,7 @@ class JniFrameBuffer { bool InUse() const { return reference_count_ != 0; } uint8_t* RawBuffer(int plane_index) const { return raw_buffer_[plane_index]; } - int Id() const { return id_; } + void* BufferPrivateData() const { return const_cast(&id_); } // Attempts to reallocate data planes if the existing ones don't have enough // capacity. Returns true if the allocation was successful or wasn't needed, @@ -359,19 +363,17 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, uint8_t* const v_buffer = (info.uv_buffer_size != 0) ? jni_buffer->RawBuffer(2) : nullptr; - status = libgav1::SetFrameBuffer(&info, y_buffer, u_buffer, v_buffer, - reinterpret_cast(jni_buffer->Id()), - frame_buffer); + status = + libgav1::SetFrameBuffer(&info, y_buffer, u_buffer, v_buffer, + jni_buffer->BufferPrivateData(), frame_buffer); return (status == kLibgav1StatusOk) ? 0 : -1; } void Libgav1ReleaseFrameBuffer(void* callback_private_data, void* buffer_private_data) { JniContext* const context = static_cast(callback_private_data); - const intptr_t buffer_id = reinterpret_cast(buffer_private_data); - assert(buffer_id <= INT_MAX); - context->jni_status_code = - context->buffer_manager.ReleaseBuffer(static_cast(buffer_id)); + const int buffer_id = *static_cast(buffer_private_data); + context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); } @@ -655,12 +657,11 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, return kStatusError; } - const intptr_t buffer_id = - reinterpret_cast(decoder_buffer->buffer_private_data); - assert(buffer_id <= INT_MAX); - context->buffer_manager.AddBufferReference(static_cast(buffer_id)); + const int buffer_id = + *static_cast(decoder_buffer->buffer_private_data); + context->buffer_manager.AddBufferReference(buffer_id); JniFrameBuffer* const jni_buffer = - context->buffer_manager.GetBuffer(static_cast(buffer_id)); + context->buffer_manager.GetBuffer(buffer_id); jni_buffer->SetFrameData(*decoder_buffer); env->CallVoidMethod(jOutputBuffer, context->init_for_private_frame_method, decoder_buffer->displayed_width[kPlaneY], @@ -669,8 +670,7 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, // Exception is thrown in Java when returning from the native call. return kStatusError; } - env->SetIntField(jOutputBuffer, context->decoder_private_field, - static_cast(buffer_id)); + env->SetIntField(jOutputBuffer, context->decoder_private_field, buffer_id); } return kStatusOk; From 908a76e8515073c721eeffb1205b5799af9f2efa Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 19 Feb 2020 16:09:10 +0000 Subject: [PATCH 145/368] Change libgav1's frame buffer callback API. 1. Have frame buffer callbacks return Libgav1StatusCode instead of int. The 0 (success), -1 (failure) return value convention is less obvious. Note: The callers of frame buffer callbacks, BufferPool::OnFrameBufferSizeChanged() and YuvBuffer::Realloc(), currently return bool, so more work is needed to propagate the frame buffer callbacks' Libgav1StatusCode return value to the Decoder API. 2. Allow the FrameBufferSizeChangedCallback to be omitted if the frame buffer size information is not useful to the application. 3. Remove the old (version 1) frame buffer callback API. Remove the frame buffer callback adaptor. frame_buffer2.h is renamed frame_buffer.h. Libgav1FrameBuffer2 is renamed Libgav1FrameBuffer. GetFrameBufferCallback2 and ReleaseFrameBufferCallback2 are renamed GetFrameBufferCallback and ReleaseFrameBufferCallback. PiperOrigin-RevId: 295971183 --- extensions/av1/src/main/jni/gav1_jni.cc | 38 +++++++------------------ 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index 5be4f5b923..e3fb890c32 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -322,31 +322,18 @@ struct JniContext { JniStatusCode jni_status_code = kJniStatusOk; }; -// Libgav1 frame buffer callbacks return 0 on success, -1 on failure. - -int Libgav1OnFrameBufferSizeChanged(void* /*callback_private_data*/, - int /*bitdepth*/, - libgav1::ImageFormat /*image_format*/, - int /*width*/, int /*height*/, - int /*left_border*/, int /*right_border*/, - int /*top_border*/, int /*bottom_border*/, - int /*stride_alignment*/) { - // The libgav1 decoder calls this callback to provide information on the - // subsequent frames in the video. JniBufferManager ignores this information. - return 0; -} - -int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, - libgav1::ImageFormat image_format, int width, - int height, int left_border, int right_border, - int top_border, int bottom_border, - int stride_alignment, - libgav1::FrameBuffer2* frame_buffer) { +Libgav1StatusCode Libgav1GetFrameBuffer(void* callback_private_data, + int bitdepth, + libgav1::ImageFormat image_format, + int width, int height, int left_border, + int right_border, int top_border, + int bottom_border, int stride_alignment, + libgav1::FrameBuffer* frame_buffer) { libgav1::FrameBufferInfo info; Libgav1StatusCode status = libgav1::ComputeFrameBufferInfo( bitdepth, image_format, width, height, left_border, right_border, top_border, bottom_border, stride_alignment, &info); - if (status != kLibgav1StatusOk) return -1; + if (status != kLibgav1StatusOk) return status; JniContext* const context = static_cast(callback_private_data); JniFrameBuffer* jni_buffer; @@ -354,7 +341,7 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, info.y_buffer_size, info.uv_buffer_size, &jni_buffer); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); - return -1; + return kLibgav1StatusOutOfMemory; } uint8_t* const y_buffer = jni_buffer->RawBuffer(0); @@ -363,10 +350,8 @@ int Libgav1GetFrameBuffer(void* callback_private_data, int bitdepth, uint8_t* const v_buffer = (info.uv_buffer_size != 0) ? jni_buffer->RawBuffer(2) : nullptr; - status = - libgav1::SetFrameBuffer(&info, y_buffer, u_buffer, v_buffer, - jni_buffer->BufferPrivateData(), frame_buffer); - return (status == kLibgav1StatusOk) ? 0 : -1; + return libgav1::SetFrameBuffer(&info, y_buffer, u_buffer, v_buffer, + jni_buffer->BufferPrivateData(), frame_buffer); } void Libgav1ReleaseFrameBuffer(void* callback_private_data, @@ -546,7 +531,6 @@ DECODER_FUNC(jlong, gav1Init, jint threads) { libgav1::DecoderSettings settings; settings.threads = threads; - settings.on_frame_buffer_size_changed = Libgav1OnFrameBufferSizeChanged; settings.get_frame_buffer = Libgav1GetFrameBuffer; settings.release_frame_buffer = Libgav1ReleaseFrameBuffer; settings.callback_private_data = context; From 8591e69b6a40162ffc801a1569549ca826606cc5 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Mon, 30 Mar 2020 13:46:24 +0100 Subject: [PATCH 146/368] Remove duplicate SCTE-35 format and add sample to TsExtractorTest It's not clear why we're currently outputting the format in both init() and consume() - it seems likely that this was accidentally introduced in when we started outputting the format in consume() but didn't remove it from init(). --- .../exoplayer2/extractor/ts/SpliceInfoSectionReader.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/SpliceInfoSectionReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/SpliceInfoSectionReader.java index 27838d4c25..ab67439607 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/SpliceInfoSectionReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ts/SpliceInfoSectionReader.java @@ -38,8 +38,6 @@ public final class SpliceInfoSectionReader implements SectionPayloadReader { this.timestampAdjuster = timestampAdjuster; idGenerator.generateNewId(); output = extractorOutput.track(idGenerator.getTrackId(), C.TRACK_TYPE_METADATA); - output.format(Format.createSampleFormat(idGenerator.getFormatId(), MimeTypes.APPLICATION_SCTE35, - null, Format.NO_VALUE, null)); } @Override From 265670cf93fa9d688df4db55a296214ad9630501 Mon Sep 17 00:00:00 2001 From: vigneshv Date: Thu, 20 Feb 2020 20:52:37 +0000 Subject: [PATCH 147/368] Add ReleaseInputBuffer callback The release_input_buffer callback will be called when the library is done consuming an "input buffer". The buffer passed into EnqueueFrame must be kept valid until this callback is called. If frame parallel is false, then this callback can be nullptr (in this case the buffer has to be kept valid until the next call to DequeueFrame). If frame parallel is true, this callback cannot be nullptr. PiperOrigin-RevId: 296276083 --- extensions/av1/src/main/jni/gav1_jni.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/av1/src/main/jni/gav1_jni.cc b/extensions/av1/src/main/jni/gav1_jni.cc index e3fb890c32..e0cef86d22 100644 --- a/extensions/av1/src/main/jni/gav1_jni.cc +++ b/extensions/av1/src/main/jni/gav1_jni.cc @@ -567,7 +567,8 @@ DECODER_FUNC(jint, gav1Decode, jlong jContext, jobject encodedData, const uint8_t* const buffer = reinterpret_cast( env->GetDirectBufferAddress(encodedData)); context->libgav1_status_code = - context->decoder.EnqueueFrame(buffer, length, /*user_private_data=*/0); + context->decoder.EnqueueFrame(buffer, length, /*user_private_data=*/0, + /*buffer_private_data=*/nullptr); if (context->libgav1_status_code != kLibgav1StatusOk) { return kStatusError; } From c3f9f0e5fec9735d36dcc83afc8faf03325121d7 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 25 Feb 2020 21:24:27 +0000 Subject: [PATCH 148/368] Merge pull request #7010 from dbrain:fix_nullability PiperOrigin-RevId: 297187116 --- .../exoplayer2/offline/DownloadHelper.java | 26 +++++++++---------- .../exoplayer2/offline/DownloadService.java | 12 ++++++--- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java index d176b1905c..6707c1e496 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java @@ -245,8 +245,8 @@ public final class DownloadHelper { * @param dataSourceFactory A {@link DataSource.Factory} used to load the manifest. * @param renderersFactory A {@link RenderersFactory} creating the renderers for which tracks are * selected. - * @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by - * {@code renderersFactory}. + * @param drmSessionManager An optional {@link DrmSessionManager}. Used to help determine which + * tracks can be selected. * @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for * downloading. * @return A {@link DownloadHelper} for DASH streams. @@ -315,8 +315,8 @@ public final class DownloadHelper { * @param dataSourceFactory A {@link DataSource.Factory} used to load the playlist. * @param renderersFactory A {@link RenderersFactory} creating the renderers for which tracks are * selected. - * @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by - * {@code renderersFactory}. + * @param drmSessionManager An optional {@link DrmSessionManager}. Used to help determine which + * tracks can be selected. * @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for * downloading. * @return A {@link DownloadHelper} for HLS streams. @@ -385,8 +385,8 @@ public final class DownloadHelper { * @param dataSourceFactory A {@link DataSource.Factory} used to load the manifest. * @param renderersFactory A {@link RenderersFactory} creating the renderers for which tracks are * selected. - * @param drmSessionManager An optional {@link DrmSessionManager} used by the renderers created by - * {@code renderersFactory}. + * @param drmSessionManager An optional {@link DrmSessionManager}. Used to help determine which + * tracks can be selected. * @param trackSelectorParameters {@link DefaultTrackSelector.Parameters} for selecting tracks for * downloading. * @return A {@link DownloadHelper} for SmoothStreaming streams. @@ -414,27 +414,27 @@ public final class DownloadHelper { /** * Equivalent to {@link #createMediaSource(DownloadRequest, Factory, DrmSessionManager) - * createMediaSource(downloadRequest, dataSourceFactory, - * DrmSessionManager.getDummyDrmSessionManager())}. + * createMediaSource(downloadRequest, dataSourceFactory, null)}. */ public static MediaSource createMediaSource( DownloadRequest downloadRequest, DataSource.Factory dataSourceFactory) { - return createMediaSource( - downloadRequest, dataSourceFactory, DrmSessionManager.getDummyDrmSessionManager()); + return createMediaSource(downloadRequest, dataSourceFactory, /* drmSessionManager= */ null); } /** - * Utility method to create a MediaSource which only contains the tracks defined in {@code + * Utility method to create a {@link MediaSource} that only exposes the tracks defined in {@code * downloadRequest}. * * @param downloadRequest A {@link DownloadRequest}. * @param dataSourceFactory A factory for {@link DataSource}s to read the media. - * @return A MediaSource which only contains the tracks defined in {@code downloadRequest}. + * @param drmSessionManager An optional {@link DrmSessionManager} to be passed to the {@link + * MediaSource}. + * @return A {@link MediaSource} that only exposes the tracks defined in {@code downloadRequest}. */ public static MediaSource createMediaSource( DownloadRequest downloadRequest, DataSource.Factory dataSourceFactory, - DrmSessionManager drmSessionManager) { + @Nullable DrmSessionManager drmSessionManager) { @Nullable Constructor constructor; switch (downloadRequest.type) { case DownloadRequest.TYPE_DASH: diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java index b1ab5ac7c6..819478b80e 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java @@ -595,7 +595,7 @@ public abstract class DownloadService extends Service { } @Override - public int onStartCommand(Intent intent, int flags, int startId) { + public int onStartCommand(@Nullable Intent intent, int flags, int startId) { lastStartId = startId; taskRemoved = false; @Nullable String intentAction = null; @@ -617,7 +617,9 @@ public abstract class DownloadService extends Service { // Do nothing. break; case ACTION_ADD_DOWNLOAD: - @Nullable DownloadRequest downloadRequest = intent.getParcelableExtra(KEY_DOWNLOAD_REQUEST); + @Nullable + DownloadRequest downloadRequest = + Assertions.checkNotNull(intent).getParcelableExtra(KEY_DOWNLOAD_REQUEST); if (downloadRequest == null) { Log.e(TAG, "Ignored ADD_DOWNLOAD: Missing " + KEY_DOWNLOAD_REQUEST + " extra"); } else { @@ -642,7 +644,7 @@ public abstract class DownloadService extends Service { downloadManager.pauseDownloads(); break; case ACTION_SET_STOP_REASON: - if (!intent.hasExtra(KEY_STOP_REASON)) { + if (!Assertions.checkNotNull(intent).hasExtra(KEY_STOP_REASON)) { Log.e(TAG, "Ignored SET_STOP_REASON: Missing " + KEY_STOP_REASON + " extra"); } else { int stopReason = intent.getIntExtra(KEY_STOP_REASON, /* defaultValue= */ 0); @@ -650,7 +652,9 @@ public abstract class DownloadService extends Service { } break; case ACTION_SET_REQUIREMENTS: - @Nullable Requirements requirements = intent.getParcelableExtra(KEY_REQUIREMENTS); + @Nullable + Requirements requirements = + Assertions.checkNotNull(intent).getParcelableExtra(KEY_REQUIREMENTS); if (requirements == null) { Log.e(TAG, "Ignored SET_REQUIREMENTS: Missing " + KEY_REQUIREMENTS + " extra"); } else { From e2a6775ea44935c8fe78fc49f6698989e29c5454 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 10 Mar 2020 10:17:13 +0000 Subject: [PATCH 149/368] Merge pull request #6999 from xufuji456:dev-v2 PiperOrigin-RevId: 298544278 --- .../exoplayer2/ext/ffmpeg/FfmpegLibrary.java | 2 +- extensions/ffmpeg/src/main/jni/Android.mk | 7 +---- .../ffmpeg/src/main/jni/build_ffmpeg.sh | 2 +- extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc | 29 +++++++++---------- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary.java b/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary.java index 4639851263..dc72e12e65 100644 --- a/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary.java +++ b/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegLibrary.java @@ -33,7 +33,7 @@ public final class FfmpegLibrary { private static final String TAG = "FfmpegLibrary"; private static final LibraryLoader LOADER = - new LibraryLoader("avutil", "avresample", "swresample", "avcodec", "ffmpeg"); + new LibraryLoader("avutil", "swresample", "avcodec", "ffmpeg"); private FfmpegLibrary() {} diff --git a/extensions/ffmpeg/src/main/jni/Android.mk b/extensions/ffmpeg/src/main/jni/Android.mk index 22a4edcdae..bcaf12cd11 100644 --- a/extensions/ffmpeg/src/main/jni/Android.mk +++ b/extensions/ffmpeg/src/main/jni/Android.mk @@ -21,11 +21,6 @@ LOCAL_MODULE := libavcodec LOCAL_SRC_FILES := ffmpeg/android-libs/$(TARGET_ARCH_ABI)/$(LOCAL_MODULE).so include $(PREBUILT_SHARED_LIBRARY) -include $(CLEAR_VARS) -LOCAL_MODULE := libavresample -LOCAL_SRC_FILES := ffmpeg/android-libs/$(TARGET_ARCH_ABI)/$(LOCAL_MODULE).so -include $(PREBUILT_SHARED_LIBRARY) - include $(CLEAR_VARS) LOCAL_MODULE := libswresample LOCAL_SRC_FILES := ffmpeg/android-libs/$(TARGET_ARCH_ABI)/$(LOCAL_MODULE).so @@ -40,6 +35,6 @@ include $(CLEAR_VARS) LOCAL_MODULE := ffmpeg LOCAL_SRC_FILES := ffmpeg_jni.cc LOCAL_C_INCLUDES := ffmpeg -LOCAL_SHARED_LIBRARIES := libavcodec libavresample libswresample libavutil +LOCAL_SHARED_LIBRARIES := libavcodec libswresample libavutil LOCAL_LDLIBS := -Lffmpeg/android-libs/$(TARGET_ARCH_ABI) -llog include $(BUILD_SHARED_LIBRARY) diff --git a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh index a76fa0e589..d6db5fc172 100755 --- a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh +++ b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh @@ -32,7 +32,7 @@ COMMON_OPTIONS=" --disable-postproc --disable-avfilter --disable-symver - --enable-avresample + --disable-avresample --enable-swresample " TOOLCHAIN_PREFIX="${NDK_PATH}/toolchains/llvm/prebuilt/${HOST_PLATFORM}/bin" diff --git a/extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc b/extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc index dcd4560e4a..400039af89 100644 --- a/extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc +++ b/extensions/ffmpeg/src/main/jni/ffmpeg_jni.cc @@ -26,10 +26,10 @@ extern "C" { #include #endif #include -#include #include #include #include +#include } #define LOG_TAG "ffmpeg_jni" @@ -289,11 +289,11 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, int sampleCount = frame->nb_samples; int dataSize = av_samples_get_buffer_size(NULL, channelCount, sampleCount, sampleFormat, 1); - AVAudioResampleContext *resampleContext; + SwrContext *resampleContext; if (context->opaque) { - resampleContext = (AVAudioResampleContext *) context->opaque; + resampleContext = (SwrContext *)context->opaque; } else { - resampleContext = avresample_alloc_context(); + resampleContext = swr_alloc(); av_opt_set_int(resampleContext, "in_channel_layout", channelLayout, 0); av_opt_set_int(resampleContext, "out_channel_layout", channelLayout, 0); av_opt_set_int(resampleContext, "in_sample_rate", sampleRate, 0); @@ -302,9 +302,9 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, // The output format is always the requested format. av_opt_set_int(resampleContext, "out_sample_fmt", context->request_sample_fmt, 0); - result = avresample_open(resampleContext); + result = swr_init(resampleContext); if (result < 0) { - logError("avresample_open", result); + logError("swr_init", result); av_frame_free(&frame); return -1; } @@ -312,7 +312,7 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, } int inSampleSize = av_get_bytes_per_sample(sampleFormat); int outSampleSize = av_get_bytes_per_sample(context->request_sample_fmt); - int outSamples = avresample_get_out_samples(resampleContext, sampleCount); + int outSamples = swr_get_out_samples(resampleContext, sampleCount); int bufferOutSize = outSampleSize * channelCount * outSamples; if (outSize + bufferOutSize > outputSize) { LOGE("Output buffer size (%d) too small for output data (%d).", @@ -320,15 +320,14 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, av_frame_free(&frame); return -1; } - result = avresample_convert(resampleContext, &outputBuffer, bufferOutSize, - outSamples, frame->data, frame->linesize[0], - sampleCount); + result = swr_convert(resampleContext, &outputBuffer, bufferOutSize, + (const uint8_t **)frame->data, frame->nb_samples); av_frame_free(&frame); if (result < 0) { - logError("avresample_convert", result); + logError("swr_convert", result); return result; } - int available = avresample_available(resampleContext); + int available = swr_get_out_samples(resampleContext, 0); if (available != 0) { LOGE("Expected no samples remaining after resampling, but found %d.", available); @@ -351,9 +350,9 @@ void releaseContext(AVCodecContext *context) { if (!context) { return; } - AVAudioResampleContext *resampleContext; - if ((resampleContext = (AVAudioResampleContext *) context->opaque)) { - avresample_free(&resampleContext); + SwrContext *swrContext; + if ((swrContext = (SwrContext *)context->opaque)) { + swr_free(&swrContext); context->opaque = NULL; } avcodec_free_context(&context); From 4e6383aeae900fb7504035610020b38dfe3c33ab Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 10 Mar 2020 10:20:37 +0000 Subject: [PATCH 150/368] Merge pull request #7051 from Cizor:dev-v2 PiperOrigin-RevId: 299357049 --- .../google/android/exoplayer2/video/MediaCodecVideoRenderer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java index 4e72a1b3d7..25dc09be81 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/MediaCodecVideoRenderer.java @@ -1000,6 +1000,7 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer { processOutputFormat(getCodec(), format.width, format.height); } maybeNotifyVideoSizeChanged(); + decoderCounters.renderedOutputBufferCount++; maybeNotifyRenderedFirstFrame(); onProcessedOutputBuffer(presentationTimeUs); } From 40d5db04607e8a91449608a08c8c25fa6ee3eedb Mon Sep 17 00:00:00 2001 From: krocard Date: Mon, 9 Mar 2020 16:43:38 +0000 Subject: [PATCH 151/368] Add support for x86_64 for the ffmpeg extension Requested by https://github.com/google/ExoPlayer/issues/7058. Additionally move one of the common option in COMMON_OPTIONS. PiperOrigin-RevId: 299862479 --- RELEASENOTES.md | 1 + extensions/ffmpeg/src/main/jni/build_ffmpeg.sh | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 847746d425..bc862102d1 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -5,6 +5,7 @@ * Text: Catch-and-log all fatal exceptions in `TextRenderer` instead of re-throwing, allowing playback to continue even if subtitles fail ([#6885](https://github.com/google/ExoPlayer/issues/6885)). +* FFmpeg extension: Add support for x86_64. ### 2.11.3 (2020-02-19) ### diff --git a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh index d6db5fc172..b7d8f0eb7f 100755 --- a/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh +++ b/extensions/ffmpeg/src/main/jni/build_ffmpeg.sh @@ -34,6 +34,7 @@ COMMON_OPTIONS=" --disable-symver --disable-avresample --enable-swresample + --extra-ldexeflags=-pie " TOOLCHAIN_PREFIX="${NDK_PATH}/toolchains/llvm/prebuilt/${HOST_PLATFORM}/bin" for decoder in "${ENABLED_DECODERS[@]}" @@ -53,7 +54,6 @@ git checkout release/4.2 --strip="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-strip" \ --extra-cflags="-march=armv7-a -mfloat-abi=softfp" \ --extra-ldflags="-Wl,--fix-cortex-a8" \ - --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make -j4 make install-libs @@ -65,7 +65,6 @@ make clean --cross-prefix="${TOOLCHAIN_PREFIX}/aarch64-linux-android21-" \ --nm="${TOOLCHAIN_PREFIX}/aarch64-linux-android-nm" \ --strip="${TOOLCHAIN_PREFIX}/aarch64-linux-android-strip" \ - --extra-ldexeflags=-pie \ ${COMMON_OPTIONS} make -j4 make install-libs @@ -77,7 +76,18 @@ make clean --cross-prefix="${TOOLCHAIN_PREFIX}/i686-linux-android16-" \ --nm="${TOOLCHAIN_PREFIX}/i686-linux-android-nm" \ --strip="${TOOLCHAIN_PREFIX}/i686-linux-android-strip" \ - --extra-ldexeflags=-pie \ + --disable-asm \ + ${COMMON_OPTIONS} +make -j4 +make install-libs +make clean +./configure \ + --libdir=android-libs/x86_64 \ + --arch=x86_64 \ + --cpu=x86_64 \ + --cross-prefix="${TOOLCHAIN_PREFIX}/x86_64-linux-android16-" \ + --nm="${TOOLCHAIN_PREFIX}/x86_64-linux-android-nm" \ + --strip="${TOOLCHAIN_PREFIX}/x86_64-linux-android-strip" \ --disable-asm \ ${COMMON_OPTIONS} make -j4 From dca68b2198066da57633947c05e1ad7915cba3fa Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Wed, 11 Mar 2020 16:27:47 +0000 Subject: [PATCH 152/368] Merge pull request #7064 from davibe:enhancement/6907 PiperOrigin-RevId: 300330109 --- RELEASENOTES.md | 2 ++ .../source/dash/DashMediaSource.java | 21 +++++++++++-------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index bc862102d1..543a7f83ef 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -5,6 +5,8 @@ * Text: Catch-and-log all fatal exceptions in `TextRenderer` instead of re-throwing, allowing playback to continue even if subtitles fail ([#6885](https://github.com/google/ExoPlayer/issues/6885)). +* DASH: Update the manifest URI to avoid repeated HTTP redirects + ([#6907](https://github.com/google/ExoPlayer/issues/6907)). * FFmpeg extension: Add support for x86_64. ### 2.11.3 (2020-02-19) ### diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java index dfcd62b8b1..dcd4b15cae 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java @@ -807,15 +807,18 @@ public final class DashMediaSource extends BaseMediaSource { manifestLoadPending &= manifest.dynamic; manifestLoadStartTimestampMs = elapsedRealtimeMs - loadDurationMs; manifestLoadEndTimestampMs = elapsedRealtimeMs; - if (manifest.location != null) { - synchronized (manifestUriLock) { - // This condition checks that replaceManifestUri wasn't called between the start and end of - // this load. If it was, we ignore the manifest location and prefer the manual replacement. - @SuppressWarnings("ReferenceEquality") - boolean isSameUriInstance = loadable.dataSpec.uri == manifestUri; - if (isSameUriInstance) { - manifestUri = manifest.location; - } + + synchronized (manifestUriLock) { + // Checks whether replaceManifestUri(Uri) was called to manually replace the URI between the + // start and end of this load. If it was then isSameUriInstance evaluates to false, and we + // prefer the manual replacement to one derived from the previous request. + @SuppressWarnings("ReferenceEquality") + boolean isSameUriInstance = loadable.dataSpec.uri == manifestUri; + if (isSameUriInstance) { + // Replace the manifest URI with one specified by a manifest Location element (if present), + // or with the final (possibly redirected) URI. This follows the recommendation in + // DASH-IF-IOP 4.3, section 3.2.15.3. See: https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf. + manifestUri = manifest.location != null ? manifest.location : loadable.getUri(); } } From b2849fde3d6cab091fcf10608ef93a26870fc45e Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Wed, 11 Mar 2020 16:27:36 +0000 Subject: [PATCH 153/368] Merge pull request #7057 from Chimerapps:dash_assetidentifier PiperOrigin-RevId: 300313753 --- RELEASENOTES.md | 6 +++-- .../dash/manifest/DashManifestParser.java | 20 ++++++++++++----- .../source/dash/manifest/Period.java | 22 ++++++++++++++++++- 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 543a7f83ef..98de3a6255 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -5,8 +5,10 @@ * Text: Catch-and-log all fatal exceptions in `TextRenderer` instead of re-throwing, allowing playback to continue even if subtitles fail ([#6885](https://github.com/google/ExoPlayer/issues/6885)). -* DASH: Update the manifest URI to avoid repeated HTTP redirects - ([#6907](https://github.com/google/ExoPlayer/issues/6907)). +* DASH: + * Update the manifest URI to avoid repeated HTTP redirects + ([#6907](https://github.com/google/ExoPlayer/issues/6907)). + * Parse period `AssetIdentifier` elements. * FFmpeg extension: Add support for x86_64. ### 2.11.3 (2020-02-19) ### diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java index b107be4794..95129d68c4 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/DashManifestParser.java @@ -222,10 +222,11 @@ public class DashManifestParser extends DefaultHandler protected Pair parsePeriod(XmlPullParser xpp, String baseUrl, long defaultStartMs) throws XmlPullParserException, IOException { - String id = xpp.getAttributeValue(null, "id"); + @Nullable String id = xpp.getAttributeValue(null, "id"); long startMs = parseDuration(xpp, "start", defaultStartMs); long durationMs = parseDuration(xpp, "duration", C.TIME_UNSET); - SegmentBase segmentBase = null; + @Nullable SegmentBase segmentBase = null; + @Nullable Descriptor assetIdentifier = null; List adaptationSets = new ArrayList<>(); List eventStreams = new ArrayList<>(); boolean seenFirstBaseUrl = false; @@ -246,17 +247,24 @@ public class DashManifestParser extends DefaultHandler segmentBase = parseSegmentList(xpp, null, durationMs); } else if (XmlPullParserUtil.isStartTag(xpp, "SegmentTemplate")) { segmentBase = parseSegmentTemplate(xpp, null, Collections.emptyList(), durationMs); + } else if (XmlPullParserUtil.isStartTag(xpp, "AssetIdentifier")) { + assetIdentifier = parseDescriptor(xpp, "AssetIdentifier"); } else { maybeSkipTag(xpp); } } while (!XmlPullParserUtil.isEndTag(xpp, "Period")); - return Pair.create(buildPeriod(id, startMs, adaptationSets, eventStreams), durationMs); + return Pair.create( + buildPeriod(id, startMs, adaptationSets, eventStreams, assetIdentifier), durationMs); } - protected Period buildPeriod(String id, long startMs, List adaptationSets, - List eventStreams) { - return new Period(id, startMs, adaptationSets, eventStreams); + protected Period buildPeriod( + @Nullable String id, + long startMs, + List adaptationSets, + List eventStreams, + @Nullable Descriptor assetIdentifier) { + return new Period(id, startMs, adaptationSets, eventStreams, assetIdentifier); } // AdaptationSet parsing. diff --git a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/Period.java b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/Period.java index 18614ca4b0..b472aed50c 100644 --- a/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/Period.java +++ b/library/dash/src/main/java/com/google/android/exoplayer2/source/dash/manifest/Period.java @@ -45,13 +45,16 @@ public class Period { */ public final List eventStreams; + /** The asset identifier for this period, if one exists */ + @Nullable public final Descriptor assetIdentifier; + /** * @param id The period identifier. May be null. * @param startMs The start time of the period in milliseconds. * @param adaptationSets The adaptation sets belonging to the period. */ public Period(@Nullable String id, long startMs, List adaptationSets) { - this(id, startMs, adaptationSets, Collections.emptyList()); + this(id, startMs, adaptationSets, Collections.emptyList(), /* assetIdentifier= */ null); } /** @@ -62,10 +65,27 @@ public class Period { */ public Period(@Nullable String id, long startMs, List adaptationSets, List eventStreams) { + this(id, startMs, adaptationSets, eventStreams, /* assetIdentifier= */ null); + } + + /** + * @param id The period identifier. May be null. + * @param startMs The start time of the period in milliseconds. + * @param adaptationSets The adaptation sets belonging to the period. + * @param eventStreams The {@link EventStream}s belonging to the period. + * @param assetIdentifier The asset identifier for this period + */ + public Period( + @Nullable String id, + long startMs, + List adaptationSets, + List eventStreams, + @Nullable Descriptor assetIdentifier) { this.id = id; this.startMs = startMs; this.adaptationSets = Collections.unmodifiableList(adaptationSets); this.eventStreams = Collections.unmodifiableList(eventStreams); + this.assetIdentifier = assetIdentifier; } /** From 4750785f5abe64a3f7c71ca88a4db24a65765c15 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Fri, 13 Mar 2020 09:04:00 +0000 Subject: [PATCH 154/368] Add option for sensor rotation in 360 playbacks Issue: #6761 PiperOrigin-RevId: 300715682 --- RELEASENOTES.md | 3 ++ .../android/exoplayer2/ui/PlayerView.java | 27 ++++++++++++++ .../ui/spherical/SphericalGLSurfaceView.java | 35 +++++++++++++++---- library/ui/src/main/res/values/attrs.xml | 2 +- 4 files changed, 59 insertions(+), 8 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 98de3a6255..c9b986f731 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -5,6 +5,9 @@ * Text: Catch-and-log all fatal exceptions in `TextRenderer` instead of re-throwing, allowing playback to continue even if subtitles fail ([#6885](https://github.com/google/ExoPlayer/issues/6885)). +* UI: Add an option to set whether to use the orientation sensor for rotation + in spherical playbacks + ([#6761](https://github.com/google/ExoPlayer/issues/6761)). * DASH: * Update the manifest URI to avoid repeated HTTP redirects ([#6907](https://github.com/google/ExoPlayer/issues/6907)). diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java index 03168643cf..2eae9c1dde 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java @@ -143,6 +143,12 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; *

  • Corresponding method: None *
  • Default: {@code surface_view} * + *
  • {@code use_sensor_rotation} - Whether to use the orientation sensor for rotation + * during spherical playbacks (if available). + *
      + *
    • Corresponding method: {@link #setUseSensorRotation(boolean)} + *
    • Default: {@code true} + *
    *
  • {@code shutter_background_color} - The background color of the {@code exo_shutter} * view. *