From 881ece18b2949c61b038f370cb3fc009a753ef10 Mon Sep 17 00:00:00 2001 From: Zhanty Date: Thu, 19 Sep 2019 17:38:02 +0800 Subject: [PATCH] enable media_selector, qucode --- .../permission/AutoPermissionRequester.java | 20 +- lib_media_selector/README.md | 15 +- lib_media_selector/build.gradle | 24 +- .../java/uk/co/senab/photoview/Compat.java | 60 + .../photoview/DefaultOnDoubleTapListener.java | 100 ++ .../uk/co/senab/photoview/IPhotoView.java | 285 ++++ .../java/uk/co/senab/photoview/PhotoView.java | 284 ++++ .../co/senab/photoview/PhotoViewAttacher.java | 1373 +++++++++++++++++ .../gestures/CupcakeGestureDetector.java | 149 ++ .../gestures/EclairGestureDetector.java | 92 ++ .../gestures/FroyoGestureDetector.java | 73 + .../photoview/gestures/GestureDetector.java | 30 + .../photoview/gestures/IRotateDetector.java | 24 + .../photoview/gestures/IRotateListener.java | 20 + .../photoview/gestures/OnGestureListener.java | 27 + .../gestures/RotateGestureDetector.java | 113 ++ .../gestures/VersionedGestureDetector.java | 42 + .../uk/co/senab/photoview/log/LogManager.java | 35 + .../uk/co/senab/photoview/log/Logger.java | 116 ++ .../co/senab/photoview/log/LoggerDefault.java | 76 + .../scrollerproxy/GingerScroller.java | 61 + .../photoview/scrollerproxy/IcsScroller.java | 33 + .../scrollerproxy/PreGingerScroller.java | 58 + .../scrollerproxy/ScrollerProxy.java | 48 + .../src/github/res/values/dimens.xml | 5 + .../src/github/res/values/strings.xml | 3 + .../sdk/mediaselector/BoxingGlideLoader.java | 7 +- .../sdk/mediaselector/BoxingUcrop.java | 16 +- .../sdk/mediaselector/CropOptions.java | 3 +- .../sdk/mediaselector/MediaSelector.java | 9 +- .../mediaselector/SystemMediaSelector.java | 3 +- .../com/android/sdk/mediaselector/Utils.java | 7 +- lib_qrcode/README.md | 2 +- lib_qrcode/build.gradle | 2 +- lib_qrcode/libs/fotoapparat.aar | Bin 314592 -> 0 bytes .../com/android/sdk/qrcode/CameraUtils.java | 7 +- .../sdk/qrcode/{zxing => }/QRCodeDecoder.java | 2 +- .../sdk/qrcode/{zxing => }/QRCodeEncoder.java | 2 +- .../java/com/android/sdk/qrcode/QRCodeView.kt | 74 +- .../sdk/qrcode/{zxing => }/ZXingView.java | 4 +- 40 files changed, 3213 insertions(+), 91 deletions(-) create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/Compat.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/IPhotoView.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoView.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoViewAttacher.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/CupcakeGestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/EclairGestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/FroyoGestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/GestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateListener.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/OnGestureListener.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/RotateGestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/VersionedGestureDetector.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/log/LogManager.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/log/Logger.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/log/LoggerDefault.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/GingerScroller.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/IcsScroller.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/PreGingerScroller.java create mode 100644 lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/ScrollerProxy.java create mode 100644 lib_media_selector/src/github/res/values/dimens.xml create mode 100644 lib_media_selector/src/github/res/values/strings.xml delete mode 100644 lib_qrcode/libs/fotoapparat.aar rename lib_qrcode/src/main/java/com/android/sdk/qrcode/{zxing => }/QRCodeDecoder.java (98%) rename lib_qrcode/src/main/java/com/android/sdk/qrcode/{zxing => }/QRCodeEncoder.java (99%) rename lib_qrcode/src/main/java/com/android/sdk/qrcode/{zxing => }/ZXingView.java (94%) diff --git a/lib_base/src/main/java/com/android/base/permission/AutoPermissionRequester.java b/lib_base/src/main/java/com/android/base/permission/AutoPermissionRequester.java index b9a7ab9..d48dbd2 100644 --- a/lib_base/src/main/java/com/android/base/permission/AutoPermissionRequester.java +++ b/lib_base/src/main/java/com/android/base/permission/AutoPermissionRequester.java @@ -12,6 +12,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.DefaultLifecycleObserver; +import androidx.lifecycle.Lifecycle; import androidx.lifecycle.LifecycleOwner; import timber.log.Timber; @@ -128,11 +129,28 @@ public class AutoPermissionRequester { FragmentManager supportFragmentManager = mActivity.getSupportFragmentManager(); AutoPermissionFragment fragment = (AutoPermissionFragment) supportFragmentManager.findFragmentByTag(AutoPermissionFragment.class.getName()); + Lifecycle.State currentState = mActivity.getLifecycle().getCurrentState(); + + if (currentState.isAtLeast(Lifecycle.State.RESUMED)) { + startRequestInternal(supportFragmentManager, fragment); + } else { + DefaultLifecycleObserver lifecycleObserver = new DefaultLifecycleObserver() { + @Override + public void onResume(@NonNull LifecycleOwner owner) { + mActivity.getLifecycle().removeObserver(this); + startRequestInternal(supportFragmentManager, fragment); + } + }; + mActivity.getLifecycle().addObserver(lifecycleObserver); + } + } + + private void startRequestInternal(FragmentManager supportFragmentManager, AutoPermissionFragment fragment) { if (fragment == null) { fragment = AutoPermissionFragment.newInstance(); supportFragmentManager.beginTransaction() .add(fragment, AutoPermissionFragment.class.getName()) - .commitNowAllowingStateLoss(); + .commitAllowingStateLoss(); } fragment.setRequester(getCallback()); diff --git a/lib_media_selector/README.md b/lib_media_selector/README.md index ad362b8..e35cc58 100644 --- a/lib_media_selector/README.md +++ b/lib_media_selector/README.md @@ -1,6 +1,6 @@ # 多媒体文件选择库 - 目前基于boxing修改 +目前基于boxing修改 ## 1 AndroidN 在 FileProvider 的 xm l配置中加入: @@ -9,16 +9,9 @@ ``` -## 2 So库 +## 2 RotatePhotoView -``` - defaultConfig { - ...... - ndk {//只打包armeabi架构的so库 - abiFilters 'armeabi' - } - } -``` +[RotatePhotoView](https://github.com/ChenSiLiang/RotatePhotoView) ## 3 其他备选参考 @@ -29,4 +22,4 @@ -  [Album](https://github.com/yanzhenjie/Album) -  [uCrop](https://github.com/Yalantis/uCrop) -  [smartCropper](https://github.com/pqpo/SmartCropper) --  [simpleCropper](https:github.com/igreenwood/SimpleCropView) \ No newline at end of file +-  [simpleCropper](https://github.com/igreenwood/SimpleCropView) diff --git a/lib_media_selector/build.gradle b/lib_media_selector/build.gradle index 6e517eb..b4daf3a 100644 --- a/lib_media_selector/build.gradle +++ b/lib_media_selector/build.gradle @@ -22,11 +22,19 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + + sourceSets { + main { + java.srcDirs += "src/github/java" + res.srcDirs += "src/github/res" + } + } + } dependencies { //support - implementation androidLibraries.compat + implementation androidLibraries.appcompat implementation androidLibraries.material /*imageLoader*/ @@ -38,17 +46,11 @@ dependencies { implementation('com.bilibili:boxing-impl:1.0.4') { exclude group: 'com.android.support' + exclude group: 'com.chensl.rotatephotoview' } - implementation('com.chensl.rotatephotoview:rotatephotoview:1.0.5') { - exclude group: 'com.android.support', module: 'appcompat' - exclude group: 'com.android.support', module: 'support-v4' - exclude module: 'recyclerview-v7' - } - - implementation('com.yalantis:ucrop:2.2.0') { - exclude group: 'com.android.support' - exclude group: 'com.squareup.okio' + implementation('com.github.yalantis:ucrop:2.2.4') { exclude group: 'com.squareup.okhttp3' } -} + +} \ No newline at end of file diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/Compat.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/Compat.java new file mode 100644 index 0000000..6faccdf --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/Compat.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview; + +import android.annotation.TargetApi; +import android.os.Build; +import android.os.Build.VERSION; +import android.os.Build.VERSION_CODES; +import android.view.MotionEvent; +import android.view.View; + +public class Compat { + + private static final int SIXTY_FPS_INTERVAL = 1000 / 60; + + public static void postOnAnimation(View view, Runnable runnable) { + if (VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) { + postOnAnimationJellyBean(view, runnable); + } else { + view.postDelayed(runnable, SIXTY_FPS_INTERVAL); + } + } + + @TargetApi(16) + private static void postOnAnimationJellyBean(View view, Runnable runnable) { + view.postOnAnimation(runnable); + } + + public static int getPointerIndex(int action) { + if (VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB) + return getPointerIndexHoneyComb(action); + else + return getPointerIndexEclair(action); + } + + @SuppressWarnings("deprecation") + @TargetApi(Build.VERSION_CODES.ECLAIR) + private static int getPointerIndexEclair(int action) { + return (action & MotionEvent.ACTION_POINTER_ID_MASK) >> MotionEvent.ACTION_POINTER_ID_SHIFT; + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private static int getPointerIndexHoneyComb(int action) { + return (action & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT; + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java new file mode 100644 index 0000000..b5a8f21 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/DefaultOnDoubleTapListener.java @@ -0,0 +1,100 @@ +package uk.co.senab.photoview; + +import android.graphics.RectF; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.widget.ImageView; + +/** + * Provided default implementation of GestureDetector.OnDoubleTapListener, to be overridden with custom behavior, if needed + *

 

+ * To be used via {@link uk.co.senab.photoview.PhotoViewAttacher#setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener)} + */ +public class DefaultOnDoubleTapListener implements GestureDetector.OnDoubleTapListener { + + private PhotoViewAttacher photoViewAttacher; + + /** + * Default constructor + * + * @param photoViewAttacher PhotoViewAttacher to bind to + */ + public DefaultOnDoubleTapListener(PhotoViewAttacher photoViewAttacher) { + setPhotoViewAttacher(photoViewAttacher); + } + + /** + * Allows to change PhotoViewAttacher within range of single instance + * + * @param newPhotoViewAttacher PhotoViewAttacher to bind to + */ + public void setPhotoViewAttacher(PhotoViewAttacher newPhotoViewAttacher) { + this.photoViewAttacher = newPhotoViewAttacher; + } + + @Override + public boolean onSingleTapConfirmed(MotionEvent e) { + if (this.photoViewAttacher == null) + return false; + + ImageView imageView = photoViewAttacher.getImageView(); + + if (null != photoViewAttacher.getOnPhotoTapListener()) { + final RectF displayRect = photoViewAttacher.getDisplayRect(); + + if (null != displayRect) { + final float x = e.getX(), y = e.getY(); + + // Check to see if the user tapped on the photo + if (displayRect.contains(x, y)) { + + float xResult = (x - displayRect.left) + / displayRect.width(); + float yResult = (y - displayRect.top) + / displayRect.height(); + + photoViewAttacher.getOnPhotoTapListener().onPhotoTap(imageView, xResult, yResult); + return true; + }else{ + photoViewAttacher.getOnPhotoTapListener().onOutsidePhotoTap(); + } + } + } + if (null != photoViewAttacher.getOnViewTapListener()) { + photoViewAttacher.getOnViewTapListener().onViewTap(imageView, e.getX(), e.getY()); + } + + return false; + } + + @Override + public boolean onDoubleTap(MotionEvent ev) { + if (photoViewAttacher == null) + return false; + + try { + float scale = photoViewAttacher.getScale(); + float x = ev.getX(); + float y = ev.getY(); + + if (scale < photoViewAttacher.getMediumScale()) { + photoViewAttacher.setScale(photoViewAttacher.getMediumScale(), x, y, true); + } else if (scale >= photoViewAttacher.getMediumScale() && scale < photoViewAttacher.getMaximumScale()) { + photoViewAttacher.setScale(photoViewAttacher.getMaximumScale(), x, y, true); + } else { + photoViewAttacher.setScale(photoViewAttacher.getMinimumScale(), x, y, true); + } + } catch (ArrayIndexOutOfBoundsException e) { + // Can sometimes happen when getX() and getY() is called + } + + return true; + } + + @Override + public boolean onDoubleTapEvent(MotionEvent e) { + // Wait for the confirmed onDoubleTap() instead + return false; + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/IPhotoView.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/IPhotoView.java new file mode 100644 index 0000000..fe72202 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/IPhotoView.java @@ -0,0 +1,285 @@ +/** + * **************************************************************************** + * Copyright 2011, 2012 Chris Banes. + *

+ * 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 uk.co.senab.photoview; + +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.view.GestureDetector; +import android.view.View; +import android.widget.ImageView; + + +public interface IPhotoView { + + float DEFAULT_MAX_SCALE = 3.0f; + float DEFAULT_MID_SCALE = 1.75f; + float DEFAULT_MIN_SCALE = 1.0f; + int DEFAULT_ZOOM_DURATION = 200; + + /** + * Returns true if the PhotoView is set to allow zooming of Photos. + * + * @return true if the PhotoView allows zooming. + */ + boolean canZoom(); + + /** + * Gets the Display Rectangle of the currently displayed Drawable. The Rectangle is relative to + * this View and includes all scaling and translations. + * + * @return - RectF of Displayed Drawable + */ + RectF getDisplayRect(); + + /** + * Sets the Display Matrix of the currently displayed Drawable. The Rectangle is considered + * relative to this View and includes all scaling and translations. + * + * @param finalMatrix target matrix to set PhotoView to + * @return - true if rectangle was applied successfully + */ + boolean setDisplayMatrix(Matrix finalMatrix); + + /** + * Copies the Display Matrix of the currently displayed Drawable. The Rectangle is considered + * relative to this View and includes all scaling and translations. + * + * @param matrix target matrix to copy to + */ + void getDisplayMatrix(Matrix matrix); + + /** + * @return The current minimum scale level. What this value represents depends on the current + * {@link android.widget.ImageView.ScaleType}. + */ + float getMinimumScale(); + + /** + * @return The current medium scale level. What this value represents depends on the current + * {@link android.widget.ImageView.ScaleType}. + */ + float getMediumScale(); + + /** + * @return The current maximum scale level. What this value represents depends on the current + * {@link android.widget.ImageView.ScaleType}. + */ + float getMaximumScale(); + + /** + * Returns the current scale value + * + * @return float - current scale value + */ + float getScale(); + + /** + * Return the current scale type in use by the ImageView. + * + * @return current ImageView.ScaleType + */ + ImageView.ScaleType getScaleType(); + + /** + * Whether to allow the ImageView's parent to intercept the touch event when the photo is scroll + * to it's horizontal edge. + * + * @param allow whether to allow intercepting by parent element or not + */ + void setAllowParentInterceptOnEdge(boolean allow); + + /** + * Sets the minimum scale level. What this value represents depends on the current {@link + * android.widget.ImageView.ScaleType}. + * + * @param minimumScale minimum allowed scale + */ + void setMinimumScale(float minimumScale); + + /** + * Sets the medium scale level. What this value represents depends on the current {@link android.widget.ImageView.ScaleType}. + * + * @param mediumScale medium scale preset + */ + void setMediumScale(float mediumScale); + + /** + * Sets the maximum scale level. What this value represents depends on the current {@link + * android.widget.ImageView.ScaleType}. + * + * @param maximumScale maximum allowed scale preset + */ + void setMaximumScale(float maximumScale); + + /** + * Allows to set all three scale levels at once, so you don't run into problem with setting + * medium/minimum scale before the maximum one + * + * @param minimumScale minimum allowed scale + * @param mediumScale medium allowed scale + * @param maximumScale maximum allowed scale preset + */ + void setScaleLevels(float minimumScale, float mediumScale, float maximumScale); + + /** + * Register a callback to be invoked when the Photo displayed by this view is long-pressed. + * + * @param listener - Listener to be registered. + */ + void setOnLongClickListener(View.OnLongClickListener listener); + + /** + * Register a callback to be invoked when the Matrix has changed for this View. An example would + * be the user panning or scaling the Photo. + * + * @param listener - Listener to be registered. + */ + void setOnMatrixChangeListener(PhotoViewAttacher.OnMatrixChangedListener listener); + + /** + * Register a callback to be invoked when the Photo displayed by this View is tapped with a + * single tap. + * + * @param listener - Listener to be registered. + */ + void setOnPhotoTapListener(PhotoViewAttacher.OnPhotoTapListener listener); + + /** + * Register a callback to be invoked when the View is tapped with a single tap. + * + * @param onRotateListener + */ + void setOnRotateListener(PhotoViewAttacher.OnRotateListener onRotateListener); + + /** + * Enables rotation via PhotoView internal functions. + * + * @param rotationDegree - Degree to rotate PhotoView to, should be in range 0 to 360 + */ + void setRotationTo(float rotationDegree); + + /** + * Enables rotation via PhotoView internal functions. + * + * @param rotationDegree - Degree to rotate PhotoView by, should be in range 0 to 360 + */ + void setRotationBy(float rotationDegree); + + /** + * Changes the current scale to the specified value. + * + * @param scale - Value to scale to + */ + void setScale(float scale); + + /** + * Returns a callback listener to be invoked when the View is tapped with a single tap. + * + * @return PhotoViewAttacher.OnViewTapListener currently set, may be null + */ + PhotoViewAttacher.OnViewTapListener getOnViewTapListener(); + + /** + * Register a callback to be invoked when the View is tapped with a single tap. + * + * @param listener - Listener to be registered. + */ + void setOnViewTapListener(PhotoViewAttacher.OnViewTapListener listener); + + /** + * Changes the current scale to the specified value. + * + * @param scale - Value to scale to + * @param animate - Whether to animate the scale + */ + void setScale(float scale, boolean animate); + + /** + * Changes the current scale to the specified value, around the given focal point. + * + * @param scale - Value to scale to + * @param focalX - X Focus Point + * @param focalY - Y Focus Point + * @param animate - Whether to animate the scale + */ + void setScale(float scale, float focalX, float focalY, boolean animate); + + /** + * Controls how the image should be resized or moved to match the size of the ImageView. Any + * scaling or panning will happen within the confines of this {@link + * android.widget.ImageView.ScaleType}. + * + * @param scaleType - The desired scaling mode. + */ + void setScaleType(ImageView.ScaleType scaleType); + + /** + * Allows you to enable/disable the zoom functionality on the ImageView. When disable the + * ImageView reverts to using the FIT_CENTER matrix. + * + * @param zoomable - Whether the zoom functionality is enabled. + */ + void setZoomable(boolean zoomable); + + /** + * Extracts currently visible area to Bitmap object, if there is no image loaded yet or the + * ImageView is already destroyed, returns {@code null} + * + * @return currently visible area as bitmap or null + */ + Bitmap getVisibleRectangleBitmap(); + + /** + * Allows to change zoom transition speed, default value is 200 (PhotoViewAttacher.DEFAULT_ZOOM_DURATION). + * Will default to 200 if provided negative value + * + * @param milliseconds duration of zoom interpolation + */ + void setZoomTransitionDuration(int milliseconds); + + /** + * Will return instance of IPhotoView (eg. PhotoViewAttacher), can be used to provide better + * integration + * + * @return IPhotoView implementation instance if available, null if not + */ + IPhotoView getIPhotoViewImplementation(); + + /** + * Sets custom double tap listener, to intercept default given functions. To reset behavior to + * default, you can just pass in "null" or public field of PhotoViewAttacher.defaultOnDoubleTapListener + * + * @param newOnDoubleTapListener custom OnDoubleTapListener to be set on ImageView + */ + void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener newOnDoubleTapListener); + + /** + * Will report back about scale changes + * + * @param onScaleChangeListener OnScaleChangeListener instance + */ + void setOnScaleChangeListener(PhotoViewAttacher.OnScaleChangeListener onScaleChangeListener); + + /** + * Will report back about fling(single touch) + * + * @param onSingleFlingListener OnSingleFlingListener instance + */ + void setOnSingleFlingListener(PhotoViewAttacher.OnSingleFlingListener onSingleFlingListener); +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoView.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoView.java new file mode 100644 index 0000000..5abac2e --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoView.java @@ -0,0 +1,284 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.util.AttributeSet; +import android.view.GestureDetector; + +import androidx.appcompat.widget.AppCompatImageView; +import uk.co.senab.photoview.PhotoViewAttacher.OnMatrixChangedListener; +import uk.co.senab.photoview.PhotoViewAttacher.OnPhotoTapListener; +import uk.co.senab.photoview.PhotoViewAttacher.OnViewTapListener; + +public class PhotoView extends AppCompatImageView implements IPhotoView { + + private PhotoViewAttacher mAttacher; + + private ScaleType mPendingScaleType; + + public PhotoView(Context context) { + this(context, null); + } + + public PhotoView(Context context, AttributeSet attr) { + this(context, attr, 0); + } + + public PhotoView(Context context, AttributeSet attr, int defStyle) { + super(context, attr, defStyle); + super.setScaleType(ScaleType.MATRIX); + init(); + } + + protected void init() { + if (null == mAttacher || null == mAttacher.getImageView()) { + mAttacher = new PhotoViewAttacher(this); + } + + if (null != mPendingScaleType) { + setScaleType(mPendingScaleType); + mPendingScaleType = null; + } + } + + @Override + public void setRotationTo(float rotationDegree) { + mAttacher.setRotationTo(rotationDegree); + } + + @Override + public void setRotationBy(float rotationDegree) { + mAttacher.setRotationBy(rotationDegree); + } + + @Override + public boolean canZoom() { + return mAttacher.canZoom(); + } + + @Override + public RectF getDisplayRect() { + return mAttacher.getDisplayRect(); + } + + @Override + public void getDisplayMatrix(Matrix matrix) { + mAttacher.getDisplayMatrix(matrix); + } + + @Override + public boolean setDisplayMatrix(Matrix finalRectangle) { + return mAttacher.setDisplayMatrix(finalRectangle); + } + + @Override + public float getMinimumScale() { + return mAttacher.getMinimumScale(); + } + + @Override + public float getMediumScale() { + return mAttacher.getMediumScale(); + } + + @Override + public float getMaximumScale() { + return mAttacher.getMaximumScale(); + } + + @Override + public float getScale() { + return mAttacher.getScale(); + } + + @Override + public ScaleType getScaleType() { + return mAttacher.getScaleType(); + } + + @Override + public Matrix getImageMatrix() { + return mAttacher.getImageMatrix(); + } + + @Override + public void setAllowParentInterceptOnEdge(boolean allow) { + mAttacher.setAllowParentInterceptOnEdge(allow); + } + + @Override + public void setMinimumScale(float minimumScale) { + mAttacher.setMinimumScale(minimumScale); + } + + @Override + public void setMediumScale(float mediumScale) { + mAttacher.setMediumScale(mediumScale); + } + + @Override + public void setMaximumScale(float maximumScale) { + mAttacher.setMaximumScale(maximumScale); + } + + @Override + public void setScaleLevels(float minimumScale, float mediumScale, float maximumScale) { + mAttacher.setScaleLevels(minimumScale, mediumScale, maximumScale); + } + + @Override + // setImageBitmap calls through to this method + public void setImageDrawable(Drawable drawable) { + super.setImageDrawable(drawable); + if (null != mAttacher) { + mAttacher.update(); + } + } + + @Override + public void setImageResource(int resId) { + super.setImageResource(resId); + if (null != mAttacher) { + mAttacher.update(); + } + } + + @Override + public void setImageURI(Uri uri) { + super.setImageURI(uri); + if (null != mAttacher) { + mAttacher.update(); + } + } + + @Override + protected boolean setFrame(int l, int t, int r, int b) { + boolean changed = super.setFrame(l, t, r, b); + if (null != mAttacher) { + mAttacher.update(); + } + return changed; + } + + @Override + public void setOnMatrixChangeListener(OnMatrixChangedListener listener) { + mAttacher.setOnMatrixChangeListener(listener); + } + + @Override + public void setOnLongClickListener(OnLongClickListener l) { + mAttacher.setOnLongClickListener(l); + } + + @Override + public void setOnPhotoTapListener(OnPhotoTapListener listener) { + mAttacher.setOnPhotoTapListener(listener); + } + + @Override + public void setOnRotateListener(PhotoViewAttacher.OnRotateListener onRotateListener) { + mAttacher.setOnRotateListener(onRotateListener); + } + + @Override + public OnViewTapListener getOnViewTapListener() { + return mAttacher.getOnViewTapListener(); + } + + @Override + public void setOnViewTapListener(OnViewTapListener listener) { + mAttacher.setOnViewTapListener(listener); + } + + @Override + public void setScale(float scale) { + mAttacher.setScale(scale); + } + + @Override + public void setScale(float scale, boolean animate) { + mAttacher.setScale(scale, animate); + } + + @Override + public void setScale(float scale, float focalX, float focalY, boolean animate) { + mAttacher.setScale(scale, focalX, focalY, animate); + } + + @Override + public void setScaleType(ScaleType scaleType) { + if (null != mAttacher) { + mAttacher.setScaleType(scaleType); + } else { + mPendingScaleType = scaleType; + } + } + + @Override + public void setZoomable(boolean zoomable) { + mAttacher.setZoomable(zoomable); + } + + @Override + public Bitmap getVisibleRectangleBitmap() { + return mAttacher.getVisibleRectangleBitmap(); + } + + @Override + public void setZoomTransitionDuration(int milliseconds) { + mAttacher.setZoomTransitionDuration(milliseconds); + } + + @Override + public IPhotoView getIPhotoViewImplementation() { + return mAttacher; + } + + @Override + public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener newOnDoubleTapListener) { + mAttacher.setOnDoubleTapListener(newOnDoubleTapListener); + } + + @Override + public void setOnScaleChangeListener(PhotoViewAttacher.OnScaleChangeListener onScaleChangeListener) { + mAttacher.setOnScaleChangeListener(onScaleChangeListener); + } + + @Override + public void setOnSingleFlingListener(PhotoViewAttacher.OnSingleFlingListener onSingleFlingListener) { + mAttacher.setOnSingleFlingListener(onSingleFlingListener); + } + + @Override + protected void onDetachedFromWindow() { + mAttacher.cleanup(); + mAttacher = null; + super.onDetachedFromWindow(); + } + + @Override + protected void onAttachedToWindow() { + init(); + super.onAttachedToWindow(); + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoViewAttacher.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoViewAttacher.java new file mode 100644 index 0000000..42781e5 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/PhotoViewAttacher.java @@ -0,0 +1,1373 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Matrix; +import android.graphics.Matrix.ScaleToFit; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; +import android.util.Log; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; +import android.view.View.OnLongClickListener; +import android.view.ViewParent; +import android.view.ViewTreeObserver; +import android.view.animation.AccelerateDecelerateInterpolator; +import android.view.animation.Interpolator; +import android.widget.ImageView; +import android.widget.ImageView.ScaleType; + +import java.lang.ref.WeakReference; + +import androidx.annotation.Nullable; +import androidx.core.view.MotionEventCompat; +import uk.co.senab.photoview.gestures.IRotateListener; +import uk.co.senab.photoview.gestures.OnGestureListener; +import uk.co.senab.photoview.gestures.RotateGestureDetector; +import uk.co.senab.photoview.gestures.VersionedGestureDetector; +import uk.co.senab.photoview.log.LogManager; +import uk.co.senab.photoview.scrollerproxy.ScrollerProxy; + +import static android.view.MotionEvent.ACTION_CANCEL; +import static android.view.MotionEvent.ACTION_DOWN; +import static android.view.MotionEvent.ACTION_UP; + +public class PhotoViewAttacher implements IPhotoView, View.OnTouchListener, + OnGestureListener, + ViewTreeObserver.OnGlobalLayoutListener { + + private static final String LOG_TAG = "PhotoViewAttacher"; + + // let debug flag be dynamic, but still Proguard can be used to remove from + // release builds + private static final boolean DEBUG = Log.isLoggable(LOG_TAG, Log.DEBUG); + + private Interpolator mInterpolator = new AccelerateDecelerateInterpolator(); + private int ZOOM_DURATION = DEFAULT_ZOOM_DURATION; + + private static final int EDGE_NONE = -1; + private static final int EDGE_LEFT = 0; + private static final int EDGE_RIGHT = 1; + private static final int EDGE_BOTH = 2; + + private static int SINGLE_TOUCH = 1; + + private float mMinScale = DEFAULT_MIN_SCALE; + private float mMidScale = DEFAULT_MID_SCALE; + private float mMaxScale = DEFAULT_MAX_SCALE; + + private boolean mAllowParentInterceptOnEdge = true; + private boolean mBlockParentIntercept = false; + + private static void checkZoomLevels(float minZoom, float midZoom, + float maxZoom) { + if (minZoom >= midZoom) { + throw new IllegalArgumentException( + "Minimum zoom has to be less than Medium zoom. Call setMinimumZoom() with a more appropriate value"); + } else if (midZoom >= maxZoom) { + throw new IllegalArgumentException( + "Medium zoom has to be less than Maximum zoom. Call setMaximumZoom() with a more appropriate value"); + } + } + + /** + * @return true if the ImageView exists, and it's Drawable exists + */ + private static boolean hasDrawable(ImageView imageView) { + return null != imageView && null != imageView.getDrawable(); + } + + /** + * @return true if the ScaleType is supported. + */ + private static boolean isSupportedScaleType(final ScaleType scaleType) { + if (null == scaleType) { + return false; + } + + switch (scaleType) { + case MATRIX: + throw new IllegalArgumentException(scaleType.name() + + " is not supported in PhotoView"); + + default: + return true; + } + } + + /** + * Set's the ImageView's ScaleType to Matrix. + */ + private static void setImageViewScaleTypeMatrix(ImageView imageView) { + /** + * PhotoView sets it's own ScaleType to Matrix, then diverts all calls + * setScaleType to this.setScaleType automatically. + */ + if (null != imageView && !(imageView instanceof IPhotoView)) { + if (!ScaleType.MATRIX.equals(imageView.getScaleType())) { + imageView.setScaleType(ScaleType.MATRIX); + } + } + } + + private WeakReference mImageView; + + // Gesture Detectors + private GestureDetector mGestureDetector; + private uk.co.senab.photoview.gestures.GestureDetector mScaleDragDetector; + private RotateGestureDetector mRotateGestureDetector; + + + // These are set so we don't keep allocating them on the heap + private final Matrix mBaseMatrix = new Matrix(); + private final Matrix mDrawMatrix = new Matrix(); + private final Matrix mSuppMatrix = new Matrix(); + private final RectF mDisplayRect = new RectF(); + private final float[] mMatrixValues = new float[9]; + + // Listeners + private OnMatrixChangedListener mMatrixChangeListener; + private OnPhotoTapListener mPhotoTapListener; + private OnViewTapListener mViewTapListener; + private OnLongClickListener mLongClickListener; + private OnScaleChangeListener mScaleChangeListener; + private OnRotateListener mOnRotateListener; + private OnSingleFlingListener mSingleFlingListener; + + private int mIvTop, mIvRight, mIvBottom, mIvLeft; + private FlingRunnable mCurrentFlingRunnable; + private int mScrollEdge = EDGE_BOTH; + private float mBaseRotation; + + private boolean mZoomEnabled; + private ScaleType mScaleType = ScaleType.FIT_CENTER; + //create by ChenSiLiang + private boolean mIsEnableRotate; + private boolean mIsToRightAngle; + private boolean mIsToRighting; + private RightAngleRunnable mRightAngleRunnable; + + public PhotoViewAttacher(ImageView imageView) { + this(imageView, true); + } + + public PhotoViewAttacher(ImageView imageView, boolean zoomable) { + mImageView = new WeakReference<>(imageView); + + imageView.setDrawingCacheEnabled(true); + imageView.setOnTouchListener(this); + + ViewTreeObserver observer = imageView.getViewTreeObserver(); + if (null != observer) + observer.addOnGlobalLayoutListener(this); + + // Make sure we using MATRIX Scale Type + setImageViewScaleTypeMatrix(imageView); + + if (imageView.isInEditMode()) { + return; + } + // Create Gesture Detectors... + mScaleDragDetector = VersionedGestureDetector.newInstance( + imageView.getContext(), this); + + mGestureDetector = new GestureDetector(imageView.getContext(), + new GestureDetector.SimpleOnGestureListener() { + + // forward long click listener + @Override + public void onLongPress(MotionEvent e) { + if (null != mLongClickListener) { + mLongClickListener.onLongClick(getImageView()); + } + } + + @Override + public boolean onFling(MotionEvent e1, MotionEvent e2, + float velocityX, float velocityY) { + if (mSingleFlingListener != null) { + if (getScale() > DEFAULT_MIN_SCALE) { + return false; + } + + if (MotionEventCompat.getPointerCount(e1) > SINGLE_TOUCH + || MotionEventCompat.getPointerCount(e2) > SINGLE_TOUCH) { + return false; + } + + return mSingleFlingListener.onFling(e1, e2, velocityX, velocityY); + } + return false; + } + }); + //modify by ChenSiLiang + setRotateGestureDetector(); + + mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this)); + mBaseRotation = 0.0f; + + // Finally, update the UI so that we're zoomable + setZoomable(zoomable); + } + + /** + * set rotate + * Modify by ChenSL on 2015 / 9 / 16. + */ + private void setRotateGestureDetector() { + if (mRotateGestureDetector == null) { + mRotateGestureDetector = new RotateGestureDetector(); + mRotateGestureDetector.setRotateListener(new IRotateListener() { + @Override + public void rotate(int degree, int pivotX, int pivotY) { + if (mRightAngleRunnable != null && mIsToRighting) { + getImageView().removeCallbacks(mRightAngleRunnable); + } + mSuppMatrix.postRotate(degree, pivotX, pivotY); + if (mOnRotateListener != null) { + mOnRotateListener.onRotate(degree); + } + //Post the rotation to the image + checkAndDisplayMatrix(); + } + + @Override + public void upRotate(int pivotX, int pivotY) { + if (mIsToRightAngle) { + float[] v = new float[9]; + mSuppMatrix.getValues(v); + // calculate the degree of rotation + int angle = (int) (Math.round(Math.atan2(v[Matrix.MSKEW_X], v[Matrix.MSCALE_X]) * (180 / Math.PI))); + if (angle <= 0) { + angle = -angle; + } else { + angle = 360 - angle; + } + mRightAngleRunnable = new RightAngleRunnable(angle, pivotX, pivotY); + getImageView().post(mRightAngleRunnable); + } + } + }); + } + } + + @Override + public void setOnDoubleTapListener(GestureDetector.OnDoubleTapListener newOnDoubleTapListener) { + if (newOnDoubleTapListener != null) { + this.mGestureDetector.setOnDoubleTapListener(newOnDoubleTapListener); + } else { + this.mGestureDetector.setOnDoubleTapListener(new DefaultOnDoubleTapListener(this)); + } + } + + @Override + public void setOnScaleChangeListener(OnScaleChangeListener onScaleChangeListener) { + this.mScaleChangeListener = onScaleChangeListener; + } + + @Override + public void setOnSingleFlingListener(OnSingleFlingListener onSingleFlingListener) { + this.mSingleFlingListener = onSingleFlingListener; + } + + /** + * set Rotatable + * Created by ChenSL on 2015/9/16. + * + * @param isRotatable true,enbale + */ + public void setRotatable(boolean isRotatable) { + mIsEnableRotate = isRotatable; + } + + /** + * set the boolean to the rotation to right angle(0,90,180,270 degree) when one finger up from the screen + * Created by ChenSL on 2015/9/16. + * + * @param toRightAngle true,recover to right angle when one finger lift;false,otherwise. + */ + public void setToRightAngle(boolean toRightAngle) { + mIsToRightAngle = toRightAngle; + } + + @Override + public boolean canZoom() { + return mZoomEnabled; + } + + /** + * Clean-up the resources attached to this object. This needs to be called when the ImageView is + * no longer used. A good example is from {@link android.view.View#onDetachedFromWindow()} or + * from {@link android.app.Activity#onDestroy()}. This is automatically called if you are using + * {@link uk.co.senab.photoview.PhotoView}. + */ + @SuppressWarnings("deprecation") + public void cleanup() { + if (null == mImageView) { + return; // cleanup already done + } + + final ImageView imageView = mImageView.get(); + + if (null != imageView) { + // Remove this as a global layout listener + ViewTreeObserver observer = imageView.getViewTreeObserver(); + if (null != observer && observer.isAlive()) { + observer.removeGlobalOnLayoutListener(this); + } + + // Remove the ImageView's reference to this + imageView.setOnTouchListener(null); + + // make sure a pending fling runnable won't be run + cancelFling(); + } + + if (null != mGestureDetector) { + mGestureDetector.setOnDoubleTapListener(null); + } + if (null != mRotateGestureDetector) { + mRotateGestureDetector.setRotateListener(null); + } + + // Clear listeners too + mMatrixChangeListener = null; + mPhotoTapListener = null; + mViewTapListener = null; + mOnRotateListener = null; + + // Finally, clear ImageView + mImageView = null; + } + + @Override + public RectF getDisplayRect() { + checkMatrixBounds(); + return getDisplayRect(getDrawMatrix()); + } + + @Override + public boolean setDisplayMatrix(Matrix finalMatrix) { + if (finalMatrix == null) { + throw new IllegalArgumentException("Matrix cannot be null"); + } + + ImageView imageView = getImageView(); + if (null == imageView) { + return false; + } + + if (null == imageView.getDrawable()) { + return false; + } + + mSuppMatrix.set(finalMatrix); + setImageViewMatrix(getDrawMatrix()); + checkMatrixBounds(); + + return true; + } + + public void setBaseRotation(final float degrees) { + mBaseRotation = degrees % 360; + update(); + setRotationBy(mBaseRotation); + checkAndDisplayMatrix(); + } + + @Override + public void setRotationTo(float degrees) { + mSuppMatrix.setRotate(degrees % 360); + checkAndDisplayMatrix(); + } + + @Override + public void setRotationBy(float degrees) { + mSuppMatrix.postRotate(degrees % 360); + checkAndDisplayMatrix(); + } + + public ImageView getImageView() { + ImageView imageView = null; + + if (null != mImageView) { + imageView = mImageView.get(); + } + + // If we don't have an ImageView, call cleanup() + if (null == imageView) { + cleanup(); + LogManager.getLogger().i(LOG_TAG, + "ImageView no longer exists. You should not use this PhotoViewAttacher any more."); + } + + return imageView; + } + + @Override + public float getMinimumScale() { + return mMinScale; + } + + @Override + public float getMediumScale() { + return mMidScale; + } + + @Override + public float getMaximumScale() { + return mMaxScale; + } + + @Override + public float getScale() { + return (float) Math.sqrt((float) Math.pow(getValue(mSuppMatrix, Matrix.MSCALE_X), 2) + (float) Math.pow(getValue(mSuppMatrix, Matrix.MSKEW_Y), 2)); + } + + @Override + public ScaleType getScaleType() { + return mScaleType; + } + + @Override + public void onDrag(float dx, float dy) { + if (mScaleDragDetector.isScaling()) { + return; // Do not drag if we are already scaling + } + + if (DEBUG) { + LogManager.getLogger().d(LOG_TAG, + String.format("onDrag: dx: %.2f. dy: %.2f", dx, dy)); + } + + ImageView imageView = getImageView(); + mSuppMatrix.postTranslate(dx, dy); + checkAndDisplayMatrix(); + + /** + * Here we decide whether to let the ImageView's parent to start taking + * over the touch event. + * + * First we check whether this function is enabled. We never want the + * parent to take over if we're scaling. We then check the edge we're + * on, and the direction of the scroll (i.e. if we're pulling against + * the edge, aka 'overscrolling', let the parent take over). + */ + ViewParent parent = imageView.getParent(); + if (mAllowParentInterceptOnEdge && !mScaleDragDetector.isScaling() && !mBlockParentIntercept) { + if (mScrollEdge == EDGE_BOTH + || (mScrollEdge == EDGE_LEFT && dx >= 1f) + || (mScrollEdge == EDGE_RIGHT && dx <= -1f)) { + if (null != parent) { + parent.requestDisallowInterceptTouchEvent(false); + } + } + } else { + if (null != parent) { + parent.requestDisallowInterceptTouchEvent(true); + } + } + } + + @Override + public void onFling(float startX, float startY, float velocityX, + float velocityY) { + if (DEBUG) { + LogManager.getLogger().d( + LOG_TAG, + "onFling. sX: " + startX + " sY: " + startY + " Vx: " + + velocityX + " Vy: " + velocityY); + } + ImageView imageView = getImageView(); + mCurrentFlingRunnable = new FlingRunnable(imageView.getContext()); + mCurrentFlingRunnable.fling(getImageViewWidth(imageView), + getImageViewHeight(imageView), (int) velocityX, (int) velocityY); + imageView.post(mCurrentFlingRunnable); + } + + @Override + public void onGlobalLayout() { + ImageView imageView = getImageView(); + + if (null != imageView) { + if (mZoomEnabled) { + final int top = imageView.getTop(); + final int right = imageView.getRight(); + final int bottom = imageView.getBottom(); + final int left = imageView.getLeft(); + + /** + * We need to check whether the ImageView's bounds have changed. + * This would be easier if we targeted API 11+ as we could just use + * View.OnLayoutChangeListener. Instead we have to replicate the + * work, keeping track of the ImageView's bounds and then checking + * if the values change. + */ + if (top != mIvTop || bottom != mIvBottom || left != mIvLeft + || right != mIvRight) { + // Update our base matrix, as the bounds have changed + updateBaseMatrix(imageView.getDrawable()); + + // Update values as something has changed + mIvTop = top; + mIvRight = right; + mIvBottom = bottom; + mIvLeft = left; + } + } else { + updateBaseMatrix(imageView.getDrawable()); + } + } + } + + @Override + public void onScale(float scaleFactor, float focusX, float focusY) { + if (DEBUG) { + LogManager.getLogger().d( + LOG_TAG, + String.format("onScale: scale: %.2f. fX: %.2f. fY: %.2f", + scaleFactor, focusX, focusY)); + } + + if ((getScale() < mMaxScale || scaleFactor < 1f) && (getScale() > mMinScale || scaleFactor > 1f)) { + if (null != mScaleChangeListener) { + mScaleChangeListener.onScaleChange(scaleFactor, focusX, focusY); + } + mSuppMatrix.postScale(scaleFactor, scaleFactor, focusX, focusY); + checkAndDisplayMatrix(); + } + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouch(View v, MotionEvent ev) { + boolean handled = false; + + if (mZoomEnabled && hasDrawable((ImageView) v)) { + ViewParent parent = v.getParent(); + switch (ev.getAction()) { + case ACTION_DOWN: + // First, disable the Parent from intercepting the touch + // event + if (null != parent) { + parent.requestDisallowInterceptTouchEvent(true); + } else { + LogManager.getLogger().i(LOG_TAG, "onTouch getParent() returned null"); + } + + // If we're flinging, and the user presses down, cancel + // fling + cancelFling(); + break; + + case ACTION_CANCEL: + case ACTION_UP: + // If the user has zoomed less than min scale, zoom back + // to min scale + if (getScale() < mMinScale) { + RectF rect = getDisplayRect(); + if (null != rect) { + v.post(new AnimatedZoomRunnable(getScale(), mMinScale, + rect.centerX(), rect.centerY())); + handled = true; + } + } + break; + } + + //detect the rotation + if (mIsEnableRotate && ev.getPointerCount() == 2) { + mRotateGestureDetector.onTouchEvent(ev); + } + boolean wasRotate = mRotateGestureDetector.isRotating(); + + // Try the Scale/Drag detector + if (null != mScaleDragDetector) { + boolean wasScaling = mScaleDragDetector.isScaling(); + boolean wasDragging = mScaleDragDetector.isDragging(); + + handled = mScaleDragDetector.onTouchEvent(ev); + + boolean didntScale = !wasScaling && !mScaleDragDetector.isScaling(); + boolean didntDrag = !wasDragging && !mScaleDragDetector.isDragging(); + boolean didnttRotate = !wasRotate && !mRotateGestureDetector.isRotating(); + + mBlockParentIntercept = didntScale && didntDrag && didnttRotate; + } + + // Check to see if the user double tapped + if (null != mGestureDetector && mGestureDetector.onTouchEvent(ev)) { + handled = true; + } + + } + + return handled; + } + + @Override + public void setAllowParentInterceptOnEdge(boolean allow) { + mAllowParentInterceptOnEdge = allow; + } + + @Override + public void setMinimumScale(float minimumScale) { + checkZoomLevels(minimumScale, mMidScale, mMaxScale); + mMinScale = minimumScale; + } + + @Override + public void setMediumScale(float mediumScale) { + checkZoomLevels(mMinScale, mediumScale, mMaxScale); + mMidScale = mediumScale; + } + + @Override + public void setMaximumScale(float maximumScale) { + checkZoomLevels(mMinScale, mMidScale, maximumScale); + mMaxScale = maximumScale; + } + + @Override + public void setScaleLevels(float minimumScale, float mediumScale, float maximumScale) { + checkZoomLevels(minimumScale, mediumScale, maximumScale); + mMinScale = minimumScale; + mMidScale = mediumScale; + mMaxScale = maximumScale; + } + + @Override + public void setOnLongClickListener(OnLongClickListener listener) { + mLongClickListener = listener; + } + + @Override + public void setOnMatrixChangeListener(OnMatrixChangedListener listener) { + mMatrixChangeListener = listener; + } + + @Override + public void setOnPhotoTapListener(OnPhotoTapListener listener) { + mPhotoTapListener = listener; + } + + @Override + public void setOnRotateListener(OnRotateListener onRotateListener) { + mOnRotateListener = onRotateListener; + } + + @Override + public OnViewTapListener getOnViewTapListener() { + return mViewTapListener; + } + + @Nullable + OnPhotoTapListener getOnPhotoTapListener() { + return mPhotoTapListener; + } + + @Override + public void setOnViewTapListener(OnViewTapListener listener) { + mViewTapListener = listener; + } + + @Override + public void setScale(float scale) { + setScale(scale, false); + } + + @Override + public void setScale(float scale, boolean animate) { + ImageView imageView = getImageView(); + + if (null != imageView) { + setScale(scale, + (imageView.getRight()) / 2, + (imageView.getBottom()) / 2, + animate); + } + } + + @Override + public void setScale(float scale, float focalX, float focalY, + boolean animate) { + ImageView imageView = getImageView(); + + if (null != imageView) { + // Check to see if the scale is within bounds + if (scale < mMinScale || scale > mMaxScale) { + LogManager + .getLogger() + .i(LOG_TAG, + "Scale must be within the range of minScale and maxScale"); + return; + } + + if (animate) { + imageView.post(new AnimatedZoomRunnable(getScale(), scale, + focalX, focalY)); + } else { + mSuppMatrix.setScale(scale, scale, focalX, focalY); + checkAndDisplayMatrix(); + } + } + } + + /** + * Set the zoom interpolator + * @param interpolator the zoom interpolator + */ + public void setZoomInterpolator(Interpolator interpolator) { + mInterpolator = interpolator; + } + + @Override + public void setScaleType(ScaleType scaleType) { + if (isSupportedScaleType(scaleType) && scaleType != mScaleType) { + mScaleType = scaleType; + + // Finally update + update(); + } + } + + @Override + public void setZoomable(boolean zoomable) { + mZoomEnabled = zoomable; + update(); + } + + public void update() { + ImageView imageView = getImageView(); + + if (null != imageView) { + if (mZoomEnabled) { + // Make sure we using MATRIX Scale Type + setImageViewScaleTypeMatrix(imageView); + + // Update the base matrix using the current drawable + updateBaseMatrix(imageView.getDrawable()); + } else { + // Reset the Matrix... + resetMatrix(); + } + } + } + + /** + * Get the display matrix + * @param matrix target matrix to copy to + */ + @Override + public void getDisplayMatrix(Matrix matrix) { + matrix.set(getDrawMatrix()); + } + + /** + * Get the current support matrix + */ + public void getSuppMatrix(Matrix matrix) { + matrix.set(mSuppMatrix); + } + + private Matrix getDrawMatrix() { + mDrawMatrix.set(mBaseMatrix); + mDrawMatrix.postConcat(mSuppMatrix); + return mDrawMatrix; + } + + private void cancelFling() { + if (null != mCurrentFlingRunnable) { + mCurrentFlingRunnable.cancelFling(); + mCurrentFlingRunnable = null; + } + } + + public Matrix getImageMatrix() { + return mDrawMatrix; + } + + /** + * Helper method that simply checks the Matrix, and then displays the result + */ + private void checkAndDisplayMatrix() { + if (checkMatrixBounds()) { + setImageViewMatrix(getDrawMatrix()); + } + } + + private void checkImageViewScaleType() { + ImageView imageView = getImageView(); + + /** + * PhotoView's getScaleType() will just divert to this.getScaleType() so + * only call if we're not attached to a PhotoView. + */ + if (null != imageView && !(imageView instanceof IPhotoView)) { + if (!ScaleType.MATRIX.equals(imageView.getScaleType())) { + throw new IllegalStateException( + "The ImageView's ScaleType has been changed since attaching a PhotoViewAttacher. You should call setScaleType on the PhotoViewAttacher instead of on the ImageView" ); + } + } + } + + private boolean checkMatrixBounds() { + final ImageView imageView = getImageView(); + if (null == imageView) { + return false; + } + + final RectF rect = getDisplayRect(getDrawMatrix()); + if (null == rect) { + return false; + } + + final float height = rect.height(), width = rect.width(); + float deltaX = 0, deltaY = 0; + + final int viewHeight = getImageViewHeight(imageView); + if (height <= viewHeight) { + switch (mScaleType) { + case FIT_START: + deltaY = -rect.top; + break; + case FIT_END: + deltaY = viewHeight - height - rect.top; + break; + default: + deltaY = (viewHeight - height) / 2 - rect.top; + break; + } + } else if (rect.top > 0) { + deltaY = -rect.top; + } else if (rect.bottom < viewHeight) { + deltaY = viewHeight - rect.bottom; + } + + final int viewWidth = getImageViewWidth(imageView); + if (width <= viewWidth) { + switch (mScaleType) { + case FIT_START: + deltaX = -rect.left; + break; + case FIT_END: + deltaX = viewWidth - width - rect.left; + break; + default: + deltaX = (viewWidth - width) / 2 - rect.left; + break; + } + mScrollEdge = EDGE_BOTH; + } else if (rect.left > 0) { + mScrollEdge = EDGE_LEFT; + deltaX = -rect.left; + } else if (rect.right < viewWidth) { + deltaX = viewWidth - rect.right; + mScrollEdge = EDGE_RIGHT; + } else { + mScrollEdge = EDGE_NONE; + } + + // Finally actually translate the matrix + mSuppMatrix.postTranslate(deltaX, deltaY); + + return true; + } + + /** + * Helper method that maps the supplied Matrix to the current Drawable + * + * @param matrix - Matrix to map Drawable against + * @return RectF - Displayed Rectangle + */ + private RectF getDisplayRect(Matrix matrix) { + ImageView imageView = getImageView(); + + if (null != imageView) { + Drawable d = imageView.getDrawable(); + if (null != d) { + mDisplayRect.set(0, 0, d.getIntrinsicWidth(), + d.getIntrinsicHeight()); + matrix.mapRect(mDisplayRect); + return mDisplayRect; + } + } + return null; + } + + public Bitmap getVisibleRectangleBitmap() { + ImageView imageView = getImageView(); + return imageView == null ? null : imageView.getDrawingCache(); + } + + @Override + public void setZoomTransitionDuration(int milliseconds) { + if (milliseconds < 0) + milliseconds = DEFAULT_ZOOM_DURATION; + this.ZOOM_DURATION = milliseconds; + } + + @Override + public IPhotoView getIPhotoViewImplementation() { + return this; + } + + /** + * Helper method that 'unpacks' a Matrix and returns the required value + * + * @param matrix - Matrix to unpack + * @param whichValue - Which value from Matrix.M* to return + * @return float - returned value + */ + private float getValue(Matrix matrix, int whichValue) { + matrix.getValues(mMatrixValues); + return mMatrixValues[whichValue]; + } + + /** + * Resets the Matrix back to FIT_CENTER, and then displays it.s + */ + private void resetMatrix() { + mSuppMatrix.reset(); + setRotationBy(mBaseRotation); + setImageViewMatrix(getDrawMatrix()); + checkMatrixBounds(); + } + + private void setImageViewMatrix(Matrix matrix) { + ImageView imageView = getImageView(); + if (null != imageView) { + + checkImageViewScaleType(); + imageView.setImageMatrix(matrix); + + // Call MatrixChangedListener if needed + if (null != mMatrixChangeListener) { + RectF displayRect = getDisplayRect(matrix); + if (null != displayRect) { + mMatrixChangeListener.onMatrixChanged(displayRect); + } + } + } + } + + /** + * Calculate Matrix for FIT_CENTER + * + * @param d - Drawable being displayed + */ + private void updateBaseMatrix(Drawable d) { + ImageView imageView = getImageView(); + if (null == imageView || null == d) { + return; + } + + final float viewWidth = getImageViewWidth(imageView); + final float viewHeight = getImageViewHeight(imageView); + final int drawableWidth = d.getIntrinsicWidth(); + final int drawableHeight = d.getIntrinsicHeight(); + + mBaseMatrix.reset(); + + final float widthScale = viewWidth / drawableWidth; + final float heightScale = viewHeight / drawableHeight; + + if (mScaleType == ScaleType.CENTER) { + mBaseMatrix.postTranslate((viewWidth - drawableWidth) / 2F, + (viewHeight - drawableHeight) / 2F); + + } else if (mScaleType == ScaleType.CENTER_CROP) { + float scale = Math.max(widthScale, heightScale); + mBaseMatrix.postScale(scale, scale); + mBaseMatrix.postTranslate((viewWidth - drawableWidth * scale) / 2F, + (viewHeight - drawableHeight * scale) / 2F); + + } else if (mScaleType == ScaleType.CENTER_INSIDE) { + float scale = Math.min(1.0f, Math.min(widthScale, heightScale)); + mBaseMatrix.postScale(scale, scale); + mBaseMatrix.postTranslate((viewWidth - drawableWidth * scale) / 2F, + (viewHeight - drawableHeight * scale) / 2F); + + } else { + RectF mTempSrc = new RectF(0, 0, drawableWidth, drawableHeight); + RectF mTempDst = new RectF(0, 0, viewWidth, viewHeight); + + if ((int) mBaseRotation % 180 != 0) { + mTempSrc = new RectF(0, 0, drawableHeight, drawableWidth); + } + + switch (mScaleType) { + case FIT_CENTER: + mBaseMatrix + .setRectToRect(mTempSrc, mTempDst, ScaleToFit.CENTER); + break; + + case FIT_START: + mBaseMatrix.setRectToRect(mTempSrc, mTempDst, ScaleToFit.START); + break; + + case FIT_END: + mBaseMatrix.setRectToRect(mTempSrc, mTempDst, ScaleToFit.END); + break; + + case FIT_XY: + mBaseMatrix.setRectToRect(mTempSrc, mTempDst, ScaleToFit.FILL); + break; + + default: + break; + } + } + + resetMatrix(); + } + + private int getImageViewWidth(ImageView imageView) { + if (null == imageView) + return 0; + return imageView.getWidth() - imageView.getPaddingLeft() - imageView.getPaddingRight(); + } + + private int getImageViewHeight(ImageView imageView) { + if (null == imageView) + return 0; + return imageView.getHeight() - imageView.getPaddingTop() - imageView.getPaddingBottom(); + } + + /** + * Interface definition for a callback to be invoked when the internal Matrix has changed for + * this View. + * + * @author Chris Banes + */ + public interface OnMatrixChangedListener { + /** + * Callback for when the Matrix displaying the Drawable has changed. This could be because + * the View's bounds have changed, or the user has zoomed. + * + * @param rect - Rectangle displaying the Drawable's new bounds. + */ + void onMatrixChanged(RectF rect); + } + + /** + * Interface definition for callback to be invoked when attached ImageView scale changes + * + * @author Marek Sebera + */ + public interface OnScaleChangeListener { + /** + * Callback for when the scale changes + * + * @param scaleFactor the scale factor (less than 1 for zoom out, greater than 1 for zoom in) + * @param focusX focal point X position + * @param focusY focal point Y position + */ + void onScaleChange(float scaleFactor, float focusX, float focusY); + } + + /** + * Interface definition for a callback to be invoked when the Photo is tapped with a single + * tap. + * + * @author Chris Banes + */ + public interface OnPhotoTapListener { + + /** + * A callback to receive where the user taps on a photo. You will only receive a callback if + * the user taps on the actual photo, tapping on 'whitespace' will be ignored. + * + * @param view - View the user tapped. + * @param x - where the user tapped from the of the Drawable, as percentage of the + * Drawable width. + * @param y - where the user tapped from the top of the Drawable, as percentage of the + * Drawable height. + */ + void onPhotoTap(View view, float x, float y); + + /** + * A simple callback where out of photo happened; + * */ + void onOutsidePhotoTap(); + } + + /** + * Interface definition for a callback to be invoked when the ImageView is tapped with a single + * tap. + * + * @author Chris Banes + */ + public interface OnViewTapListener { + + /** + * A callback to receive where the user taps on a ImageView. You will receive a callback if + * the user taps anywhere on the view, tapping on 'whitespace' will not be ignored. + * + * @param view - View the user tapped. + * @param x - where the user tapped from the left of the View. + * @param y - where the user tapped from the top of the View. + */ + void onViewTap(View view, float x, float y); + } + + /** + * Interface definition for a callback to be invoked when the ImageView is roateted with two finger. + * + * @author ChenSL + */ + public interface OnRotateListener { + /** + * A callBack to receive when the user rotate a ImageView.You will receive a callback + * if the user rotate the ImageView + * + * @param degree rotate mOldDegree + */ + void onRotate(int degree); + } + + /** + * Interface definition for a callback to be invoked when the ImageView is fling with a single + * touch + * + * @author tonyjs + */ + public interface OnSingleFlingListener { + + /** + * A callback to receive where the user flings on a ImageView. You will receive a callback if + * the user flings anywhere on the view. + * + * @param e1 - MotionEvent the user first touch. + * @param e2 - MotionEvent the user last touch. + * @param velocityX - distance of user's horizontal fling. + * @param velocityY - distance of user's vertical fling. + */ + boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY); + } + + private class AnimatedZoomRunnable implements Runnable { + + private final float mFocalX, mFocalY; + private final long mStartTime; + private final float mZoomStart, mZoomEnd; + + public AnimatedZoomRunnable(final float currentZoom, final float targetZoom, + final float focalX, final float focalY) { + mFocalX = focalX; + mFocalY = focalY; + mStartTime = System.currentTimeMillis(); + mZoomStart = currentZoom; + mZoomEnd = targetZoom; + } + + @Override + public void run() { + ImageView imageView = getImageView(); + if (imageView == null) { + return; + } + + float t = interpolate(); + float scale = mZoomStart + t * (mZoomEnd - mZoomStart); + float deltaScale = scale / getScale(); + + onScale(deltaScale, mFocalX, mFocalY); + + // We haven't hit our target scale yet, so post ourselves again + if (t < 1f) { + Compat.postOnAnimation(imageView, this); + } + } + + private float interpolate() { + float t = 1f * (System.currentTimeMillis() - mStartTime) / ZOOM_DURATION; + t = Math.min(1f, t); + t = mInterpolator.getInterpolation(t); + return t; + } + } + + private class FlingRunnable implements Runnable { + + private final ScrollerProxy mScroller; + private int mCurrentX, mCurrentY; + + public FlingRunnable(Context context) { + mScroller = ScrollerProxy.getScroller(context); + } + + public void cancelFling() { + if (DEBUG) { + LogManager.getLogger().d(LOG_TAG, "Cancel Fling"); + } + mScroller.forceFinished(true); + } + + public void fling(int viewWidth, int viewHeight, int velocityX, + int velocityY) { + final RectF rect = getDisplayRect(); + if (null == rect) { + return; + } + + final int startX = Math.round(-rect.left); + final int minX, maxX, minY, maxY; + + if (viewWidth < rect.width()) { + minX = 0; + maxX = Math.round(rect.width() - viewWidth); + } else { + minX = maxX = startX; + } + + final int startY = Math.round(-rect.top); + if (viewHeight < rect.height()) { + minY = 0; + maxY = Math.round(rect.height() - viewHeight); + } else { + minY = maxY = startY; + } + + mCurrentX = startX; + mCurrentY = startY; + + if (DEBUG) { + LogManager.getLogger().d( + LOG_TAG, + "fling. StartX:" + startX + " StartY:" + startY + + " MaxX:" + maxX + " MaxY:" + maxY); + } + + // If we actually can move, fling the scroller + if (startX != maxX || startY != maxY) { + mScroller.fling(startX, startY, velocityX, velocityY, minX, + maxX, minY, maxY, 0, 0); + } + } + + @Override + public void run() { + if (mScroller.isFinished()) { + return; // remaining post that should not be handled + } + + ImageView imageView = getImageView(); + if (null != imageView && mScroller.computeScrollOffset()) { + + final int newX = mScroller.getCurrX(); + final int newY = mScroller.getCurrY(); + + if (DEBUG) { + LogManager.getLogger().d( + LOG_TAG, + "fling run(). CurrentX:" + mCurrentX + " CurrentY:" + + mCurrentY + " NewX:" + newX + " NewY:" + + newY); + } + + mSuppMatrix.postTranslate(mCurrentX - newX, mCurrentY - newY); + setImageViewMatrix(getDrawMatrix()); + + mCurrentX = newX; + mCurrentY = newY; + + // Post On animation + Compat.postOnAnimation(imageView, this); + } + } + } + + /** + * a RightAngleRunnable that finger lift rotate to 0,90,180,270 degree + */ + private class RightAngleRunnable implements Runnable { + private static final int RECOVER_SPEED = 4; + private int mOldDegree; + private int mNeedToRotate; + private int mRoPivotX; + private int mRoPivotY; + + RightAngleRunnable(int degree, int pivotX, int pivotY) { + this.mOldDegree = degree; + this.mNeedToRotate = calDegree(degree) - mOldDegree; + this.mRoPivotX = pivotX; + this.mRoPivotY = pivotY; + } + + /** + * get right degree,when one finger lifts + * + * @param oldDegree current degree + * @return 0, 90, 180, 270 according to oldDegree + */ + private int calDegree(int oldDegree) { + int result; + float n = (float) oldDegree / 45; + if (n >= 0 && n < 1) { + result = 0; + } else if (n >= 1 && n <= 2.5) { + result = 90; + } else if (n > 2.5 && n < 5.5) { + result = 180; + } else if (n >= 5.5 && n <= 7) { + result = 270; + } else { + result = 360; + } + return result; + } + + @Override + public void run() { + if (mNeedToRotate == 0) { + mIsToRighting = false; + return; + } + ImageView imageView = getImageView(); + if (imageView == null) { + mIsToRighting = false; + return; + } + mIsToRighting = true; + if (mNeedToRotate > 0) { + //Clockwise rotation + if (mNeedToRotate >= RECOVER_SPEED) { + mSuppMatrix.postRotate(RECOVER_SPEED, mRoPivotX, mRoPivotY); + mNeedToRotate -= RECOVER_SPEED; + } else { + mSuppMatrix.postRotate(mNeedToRotate, mRoPivotX, mRoPivotY); + mNeedToRotate = 0; + } + } else if (mNeedToRotate < 0) { + //Counterclockwise rotation + if (mNeedToRotate <= -RECOVER_SPEED) { + mSuppMatrix.postRotate(-RECOVER_SPEED, mRoPivotX, mRoPivotY); + mNeedToRotate += RECOVER_SPEED; + } else { + mSuppMatrix.postRotate(mNeedToRotate, mRoPivotX, mRoPivotY); + mNeedToRotate = 0; + } + } + checkAndDisplayMatrix(); + Compat.postOnAnimation(imageView, this); + } + } +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/CupcakeGestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/CupcakeGestureDetector.java new file mode 100644 index 0000000..e14f463 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/CupcakeGestureDetector.java @@ -0,0 +1,149 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.gestures; + +import android.content.Context; +import android.view.MotionEvent; +import android.view.VelocityTracker; +import android.view.ViewConfiguration; + +import uk.co.senab.photoview.log.LogManager; + +public class CupcakeGestureDetector implements GestureDetector { + + protected OnGestureListener mListener; + private static final String LOG_TAG = "CupcakeGestureDetector"; + float mLastTouchX; + float mLastTouchY; + final float mTouchSlop; + final float mMinimumVelocity; + + @Override + public void setOnGestureListener(OnGestureListener listener) { + this.mListener = listener; + } + + public CupcakeGestureDetector(Context context) { + final ViewConfiguration configuration = ViewConfiguration + .get(context); + mMinimumVelocity = configuration.getScaledMinimumFlingVelocity(); + mTouchSlop = configuration.getScaledTouchSlop(); + } + + private VelocityTracker mVelocityTracker; + private boolean mIsDragging; + + float getActiveX(MotionEvent ev) { + return ev.getX(); + } + + float getActiveY(MotionEvent ev) { + return ev.getY(); + } + + @Override + public boolean isScaling() { + return false; + } + + @Override + public boolean isDragging() { + return mIsDragging; + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + switch (ev.getAction()) { + case MotionEvent.ACTION_DOWN: { + mVelocityTracker = VelocityTracker.obtain(); + if (null != mVelocityTracker) { + mVelocityTracker.addMovement(ev); + } else { + LogManager.getLogger().i(LOG_TAG, "Velocity tracker is null"); + } + + mLastTouchX = getActiveX(ev); + mLastTouchY = getActiveY(ev); + mIsDragging = false; + break; + } + + case MotionEvent.ACTION_MOVE: { + final float x = getActiveX(ev); + final float y = getActiveY(ev); + final float dx = x - mLastTouchX, dy = y - mLastTouchY; + + if (!mIsDragging) { + // Use Pythagoras to see if drag length is larger than + // touch slop + mIsDragging = Math.sqrt((dx * dx) + (dy * dy)) >= mTouchSlop; + } + + if (mIsDragging) { + mListener.onDrag(dx, dy); + mLastTouchX = x; + mLastTouchY = y; + + if (null != mVelocityTracker) { + mVelocityTracker.addMovement(ev); + } + } + break; + } + + case MotionEvent.ACTION_CANCEL: { + // Recycle Velocity Tracker + if (null != mVelocityTracker) { + mVelocityTracker.recycle(); + mVelocityTracker = null; + } + break; + } + + case MotionEvent.ACTION_UP: { + if (mIsDragging) { + if (null != mVelocityTracker) { + mLastTouchX = getActiveX(ev); + mLastTouchY = getActiveY(ev); + + // Compute velocity within the last 1000ms + mVelocityTracker.addMovement(ev); + mVelocityTracker.computeCurrentVelocity(1000); + + final float vX = mVelocityTracker.getXVelocity(), vY = mVelocityTracker + .getYVelocity(); + + // If the velocity is greater than minVelocity, call + // listener + if (Math.max(Math.abs(vX), Math.abs(vY)) >= mMinimumVelocity) { + mListener.onFling(mLastTouchX, mLastTouchY, -vX, + -vY); + } + } + } + + // Recycle Velocity Tracker + if (null != mVelocityTracker) { + mVelocityTracker.recycle(); + mVelocityTracker = null; + } + break; + } + } + + return true; + } +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/EclairGestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/EclairGestureDetector.java new file mode 100644 index 0000000..f4b4b73 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/EclairGestureDetector.java @@ -0,0 +1,92 @@ +/** + * **************************************************************************** + * Copyright 2011, 2012 Chris Banes. + *

+ * 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 uk.co.senab.photoview.gestures; + +import android.annotation.TargetApi; +import android.content.Context; +import android.view.MotionEvent; + +import uk.co.senab.photoview.Compat; + +@TargetApi(5) +public class EclairGestureDetector extends CupcakeGestureDetector { + + private static final int INVALID_POINTER_ID = -1; + private int mActivePointerId = INVALID_POINTER_ID; + private int mActivePointerIndex = 0; + + public EclairGestureDetector(Context context) { + super(context); + } + + @Override + float getActiveX(MotionEvent ev) { + try { + return ev.getX(mActivePointerIndex); + } catch (Exception e) { + return ev.getX(); + } + } + + @Override + float getActiveY(MotionEvent ev) { + try { + return ev.getY(mActivePointerIndex); + } catch (Exception e) { + return ev.getY(); + } + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + final int action = ev.getAction(); + switch (action & MotionEvent.ACTION_MASK) { + case MotionEvent.ACTION_DOWN: + mActivePointerId = ev.getPointerId(0); + break; + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_UP: + mActivePointerId = INVALID_POINTER_ID; + break; + case MotionEvent.ACTION_POINTER_UP: + // Ignore deprecation, ACTION_POINTER_ID_MASK and + // ACTION_POINTER_ID_SHIFT has same value and are deprecated + // You can have either deprecation or lint target api warning + final int pointerIndex = Compat.getPointerIndex(ev.getAction()); + final int pointerId = ev.getPointerId(pointerIndex); + if (pointerId == mActivePointerId) { + // This was our active pointer going up. Choose a new + // active pointer and adjust accordingly. + final int newPointerIndex = pointerIndex == 0 ? 1 : 0; + mActivePointerId = ev.getPointerId(newPointerIndex); + mLastTouchX = ev.getX(newPointerIndex); + mLastTouchY = ev.getY(newPointerIndex); + } + break; + } + + mActivePointerIndex = ev + .findPointerIndex(mActivePointerId != INVALID_POINTER_ID ? mActivePointerId + : 0); + try { + return super.onTouchEvent(ev); + } catch (IllegalArgumentException e) { + // Fix for support lib bug, happening when onDestroy is + return true; + } + } +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/FroyoGestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/FroyoGestureDetector.java new file mode 100644 index 0000000..5331704 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/FroyoGestureDetector.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + *

+ * 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 uk.co.senab.photoview.gestures; + +import android.annotation.TargetApi; +import android.content.Context; +import android.view.MotionEvent; +import android.view.ScaleGestureDetector; + +@TargetApi(8) +public class FroyoGestureDetector extends EclairGestureDetector { + + protected final ScaleGestureDetector mDetector; + + public FroyoGestureDetector(Context context) { + super(context); + ScaleGestureDetector.OnScaleGestureListener mScaleListener = new ScaleGestureDetector.OnScaleGestureListener() { + + @Override + public boolean onScale(ScaleGestureDetector detector) { + float scaleFactor = detector.getScaleFactor(); + + if (Float.isNaN(scaleFactor) || Float.isInfinite(scaleFactor)) + return false; + + mListener.onScale(scaleFactor, + detector.getFocusX(), detector.getFocusY()); + return true; + } + + @Override + public boolean onScaleBegin(ScaleGestureDetector detector) { + return true; + } + + @Override + public void onScaleEnd(ScaleGestureDetector detector) { + // NO-OP + } + }; + mDetector = new ScaleGestureDetector(context, mScaleListener); + } + + @Override + public boolean isScaling() { + return mDetector.isInProgress(); + } + + @Override + public boolean onTouchEvent(MotionEvent ev) { + try { + mDetector.onTouchEvent(ev); + return super.onTouchEvent(ev); + } catch (IllegalArgumentException e) { + // Fix for support lib bug, happening when onDestroy is + return true; + } + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/GestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/GestureDetector.java new file mode 100644 index 0000000..3c9177e --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/GestureDetector.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.gestures; + +import android.view.MotionEvent; + +public interface GestureDetector { + + boolean onTouchEvent(MotionEvent ev); + + boolean isScaling(); + + boolean isDragging(); + + void setOnGestureListener(OnGestureListener listener); + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateDetector.java new file mode 100644 index 0000000..03a70eb --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateDetector.java @@ -0,0 +1,24 @@ +package uk.co.senab.photoview.gestures; + +import android.view.MotionEvent; + +/** + * Interface to detect rotation + * Created by ChenSL on 2015/9/16. + */ +public interface IRotateDetector { + /** + * handle rotation in onTouchEvent + * + * @param event The motion event. + * @return True if the event was handled, false otherwise. + */ + boolean onTouchEvent(MotionEvent event); + + /** + * is the Gesture Rotate + * + * @return true:rotating;false,otherwise + */ + boolean isRotating(); +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateListener.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateListener.java new file mode 100644 index 0000000..96f76aa --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/IRotateListener.java @@ -0,0 +1,20 @@ +package uk.co.senab.photoview.gestures; + +/** + * Interface for a callback for rotation + * Created by ChenSL on 2015/9/16. + */ +public interface IRotateListener { + /** + * callback for rotation + * + * @param degree degree of rotation + */ + void rotate(int degree, int pivotX, int pivotY); + + /** + * MotionEvent.ACTION_POINTER_UP happens when two finger minus to only one + * change the ImageView to 0,90,180,270 + */ + void upRotate(int pivotX, int pivotY); +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/OnGestureListener.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/OnGestureListener.java new file mode 100644 index 0000000..4c124d1 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/OnGestureListener.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.gestures; + +public interface OnGestureListener { + + void onDrag(float dx, float dy); + + void onFling(float startX, float startY, float velocityX, + float velocityY); + + void onScale(float scaleFactor, float focusX, float focusY); + +} \ No newline at end of file diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/RotateGestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/RotateGestureDetector.java new file mode 100644 index 0000000..45cc6df --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/RotateGestureDetector.java @@ -0,0 +1,113 @@ +package uk.co.senab.photoview.gestures; + +import android.view.MotionEvent; + +/** + * Handle ImageView rotate event with two fingers + * Created by ChenSL on 2015/9/16. + */ +public class RotateGestureDetector implements IRotateDetector { + private int mLastAngle = 0; + private IRotateListener mListener; + private boolean mIsRotate; + + /** + * set rotation listener for callback + * + * @param listener a rotation listener + */ + public void setRotateListener(IRotateListener listener) { + this.mListener = listener; + } + + @Override + public boolean onTouchEvent(MotionEvent event) { + return doRotate(event); + } + + @Override + public boolean isRotating() { + return mIsRotate; + } + + /** + * handle rotation + * + * @param ev Motion event + * @return always true. + */ + private boolean doRotate(MotionEvent ev) { + if (ev.getPointerCount() != 2) { + return false; + } + //Calculate the angle between the two fingers + int pivotX = (int) (ev.getX(0) + ev.getX(1)) / 2; + int pivotY = (int) (ev.getY(0) + ev.getY(1)) / 2; + float deltaX = ev.getX(0) - ev.getX(1); + float deltaY = ev.getY(0) - ev.getY(1); + double radians = Math.atan(deltaY / deltaX); + //Convert to degrees + int degrees = (int) (radians * 180 / Math.PI); + /* + * Must use getActionMasked() for switching to pick up pointer events. + * These events have the pointer index encoded in them so the return + * from getAction() won't match the exact action constant. + */ + switch (ev.getActionMasked()) { + case MotionEvent.ACTION_DOWN: + mLastAngle = degrees; + mIsRotate = false; + break; + case MotionEvent.ACTION_UP: + mIsRotate = false; + break; + case MotionEvent.ACTION_POINTER_DOWN: + mLastAngle = degrees; + mIsRotate = false; + break; + case MotionEvent.ACTION_CANCEL: + case MotionEvent.ACTION_POINTER_UP: + mIsRotate = false; + upRotate(pivotX, pivotY); + mLastAngle = degrees; + break; + case MotionEvent.ACTION_MOVE: + mIsRotate = true; + int degreesValue = degrees - mLastAngle; + if (degreesValue > 45) { + //Going CCW across the boundary + rotate(-5, pivotX, pivotY); + } else if (degreesValue < -45) { + //Going CW across the boundary + rotate(5, pivotX, pivotY); + } else { + //Normal rotation, rotate the difference + rotate(degreesValue, pivotX, pivotY); + } + //Save the current angle + mLastAngle = degrees; + break; + } + return true; + } + + /** + * to invoke the callback + * + * @param degree degree to rotate + */ + private void rotate(int degree, int pivotX, int pivotY) { + if (mListener != null) { + mListener.rotate(degree, pivotX, pivotY); + } + } + + /** + * to invoke the finger up action + */ + private void upRotate(int pivotX, int pivotY) { + if (mListener != null) { + mListener.upRotate(pivotX, pivotY); + } + } +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/VersionedGestureDetector.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/VersionedGestureDetector.java new file mode 100644 index 0000000..c1550ce --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/gestures/VersionedGestureDetector.java @@ -0,0 +1,42 @@ +package uk.co.senab.photoview.gestures; + +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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. + *******************************************************************************/ + +import android.content.Context; +import android.os.Build; + +public final class VersionedGestureDetector { + + public static GestureDetector newInstance(Context context, + OnGestureListener listener) { + final int sdkVersion = Build.VERSION.SDK_INT; + GestureDetector detector; + + if (sdkVersion < Build.VERSION_CODES.ECLAIR) { + detector = new CupcakeGestureDetector(context); + } else if (sdkVersion < Build.VERSION_CODES.FROYO) { + detector = new EclairGestureDetector(context); + } else { + detector = new FroyoGestureDetector(context); + } + + detector.setOnGestureListener(listener); + + return detector; + } + +} \ No newline at end of file diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LogManager.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LogManager.java new file mode 100644 index 0000000..eefdde3 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LogManager.java @@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.log; + +import android.util.Log; + +/** + * class that holds the {@link Logger} for this library, defaults to {@link LoggerDefault} to send logs to android {@link Log} + */ +public final class LogManager { + + private static Logger logger = new LoggerDefault(); + + public static void setLogger(Logger newLogger) { + logger = newLogger; + } + + public static Logger getLogger() { + return logger; + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/log/Logger.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/Logger.java new file mode 100644 index 0000000..5324d75 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/Logger.java @@ -0,0 +1,116 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.log; + +/** + * interface for a logger class to replace the static calls to {@link android.util.Log} + */ +public interface Logger { + /** + * Send a {@link android.util.Log#VERBOSE} log message. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + int v(String tag, String msg); + + /** + * Send a {@link android.util.Log#VERBOSE} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + int v(String tag, String msg, Throwable tr); + + /** + * Send a {@link android.util.Log#DEBUG} log message. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + int d(String tag, String msg); + + /** + * Send a {@link android.util.Log#DEBUG} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + int d(String tag, String msg, Throwable tr); + + /** + * Send an {@link android.util.Log#INFO} log message. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + int i(String tag, String msg); + + /** + * Send a {@link android.util.Log#INFO} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + int i(String tag, String msg, Throwable tr); + + /** + * Send a {@link android.util.Log#WARN} log message. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + int w(String tag, String msg); + + /** + * Send a {@link android.util.Log#WARN} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + int w(String tag, String msg, Throwable tr); + + /** + * Send an {@link android.util.Log#ERROR} log message. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + */ + int e(String tag, String msg); + + /** + * Send a {@link android.util.Log#ERROR} log message and log the exception. + * + * @param tag Used to identify the source of a log message. It usually identifies + * the class or activity where the log call occurs. + * @param msg The message you would like logged. + * @param tr An exception to log + */ + int e(String tag, String msg, Throwable tr); +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LoggerDefault.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LoggerDefault.java new file mode 100644 index 0000000..f827f4a --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/log/LoggerDefault.java @@ -0,0 +1,76 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.log; + +import android.util.Log; + +/** + * Helper class to redirect {@link LogManager#logger} to {@link Log} + */ +public class LoggerDefault implements Logger { + + @Override + public int v(String tag, String msg) { + return Log.v(tag, msg); + } + + @Override + public int v(String tag, String msg, Throwable tr) { + return Log.v(tag, msg, tr); + } + + @Override + public int d(String tag, String msg) { + return Log.d(tag, msg); + } + + @Override + public int d(String tag, String msg, Throwable tr) { + return Log.d(tag, msg, tr); + } + + @Override + public int i(String tag, String msg) { + return Log.i(tag, msg); + } + + @Override + public int i(String tag, String msg, Throwable tr) { + return Log.i(tag, msg, tr); + } + + @Override + public int w(String tag, String msg) { + return Log.w(tag, msg); + } + + @Override + public int w(String tag, String msg, Throwable tr) { + return Log.w(tag, msg, tr); + } + + @Override + public int e(String tag, String msg) { + return Log.e(tag, msg); + } + + @Override + public int e(String tag, String msg, Throwable tr) { + return Log.e(tag, msg, tr); + } + + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/GingerScroller.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/GingerScroller.java new file mode 100644 index 0000000..e831ce3 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/GingerScroller.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.scrollerproxy; + +import android.annotation.TargetApi; +import android.content.Context; +import android.widget.OverScroller; + +@TargetApi(9) +public class GingerScroller extends ScrollerProxy { + + protected final OverScroller mScroller; + + public GingerScroller(Context context) { + mScroller = new OverScroller(context); + } + + @Override + public boolean computeScrollOffset() { + return mScroller.computeScrollOffset(); + } + + @Override + public void fling(int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, int maxY, + int overX, int overY) { + mScroller.fling(startX, startY, velocityX, velocityY, minX, maxX, minY, maxY, overX, overY); + } + + @Override + public void forceFinished(boolean finished) { + mScroller.forceFinished(finished); + } + + @Override + public boolean isFinished() { + return mScroller.isFinished(); + } + + @Override + public int getCurrX() { + return mScroller.getCurrX(); + } + + @Override + public int getCurrY() { + return mScroller.getCurrY(); + } +} \ No newline at end of file diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/IcsScroller.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/IcsScroller.java new file mode 100644 index 0000000..10f9eab --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/IcsScroller.java @@ -0,0 +1,33 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.scrollerproxy; + +import android.annotation.TargetApi; +import android.content.Context; + +@TargetApi(14) +public class IcsScroller extends GingerScroller { + + public IcsScroller(Context context) { + super(context); + } + + @Override + public boolean computeScrollOffset() { + return mScroller.computeScrollOffset(); + } + +} diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/PreGingerScroller.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/PreGingerScroller.java new file mode 100644 index 0000000..2cd91b3 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/PreGingerScroller.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.scrollerproxy; + +import android.content.Context; +import android.widget.Scroller; + +public class PreGingerScroller extends ScrollerProxy { + + private final Scroller mScroller; + + public PreGingerScroller(Context context) { + mScroller = new Scroller(context); + } + + @Override + public boolean computeScrollOffset() { + return mScroller.computeScrollOffset(); + } + + @Override + public void fling(int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, int maxY, + int overX, int overY) { + mScroller.fling(startX, startY, velocityX, velocityY, minX, maxX, minY, maxY); + } + + @Override + public void forceFinished(boolean finished) { + mScroller.forceFinished(finished); + } + + public boolean isFinished() { + return mScroller.isFinished(); + } + + @Override + public int getCurrX() { + return mScroller.getCurrX(); + } + + @Override + public int getCurrY() { + return mScroller.getCurrY(); + } +} \ No newline at end of file diff --git a/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/ScrollerProxy.java b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/ScrollerProxy.java new file mode 100644 index 0000000..ce39ef1 --- /dev/null +++ b/lib_media_selector/src/github/java/uk/co/senab/photoview/scrollerproxy/ScrollerProxy.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright 2011, 2012 Chris Banes. + * + * 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 uk.co.senab.photoview.scrollerproxy; + +import android.content.Context; +import android.os.Build.VERSION; +import android.os.Build.VERSION_CODES; + +public abstract class ScrollerProxy { + + public static ScrollerProxy getScroller(Context context) { + if (VERSION.SDK_INT < VERSION_CODES.GINGERBREAD) { + return new PreGingerScroller(context); + } else if (VERSION.SDK_INT < VERSION_CODES.ICE_CREAM_SANDWICH) { + return new GingerScroller(context); + } else { + return new IcsScroller(context); + } + } + + public abstract boolean computeScrollOffset(); + + public abstract void fling(int startX, int startY, int velocityX, int velocityY, int minX, int maxX, int minY, + int maxY, int overX, int overY); + + public abstract void forceFinished(boolean finished); + + public abstract boolean isFinished(); + + public abstract int getCurrX(); + + public abstract int getCurrY(); + + +} diff --git a/lib_media_selector/src/github/res/values/dimens.xml b/lib_media_selector/src/github/res/values/dimens.xml new file mode 100644 index 0000000..47c8224 --- /dev/null +++ b/lib_media_selector/src/github/res/values/dimens.xml @@ -0,0 +1,5 @@ + + + 16dp + 16dp + diff --git a/lib_media_selector/src/github/res/values/strings.xml b/lib_media_selector/src/github/res/values/strings.xml new file mode 100644 index 0000000..b53b8b6 --- /dev/null +++ b/lib_media_selector/src/github/res/values/strings.xml @@ -0,0 +1,3 @@ + + Hello world! + diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingGlideLoader.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingGlideLoader.java index 79d1990..dc637b2 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingGlideLoader.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingGlideLoader.java @@ -18,8 +18,6 @@ package com.android.sdk.mediaselector; import android.graphics.Bitmap; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.widget.ImageView; import com.bilibili.boxing.loader.IBoxingCallback; @@ -31,6 +29,9 @@ import com.bumptech.glide.request.RequestListener; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.Target; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** * use https://github.com/bumptech/glide as media loader. * @@ -78,4 +79,4 @@ final class BoxingGlideLoader implements IBoxingMediaLoader { .into(imageView); } -} +} \ No newline at end of file diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java index 2754c2d..51558a6 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/BoxingUcrop.java @@ -21,15 +21,16 @@ import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; -import android.support.annotation.NonNull; -import android.support.v4.app.Fragment; -import android.support.v4.content.ContextCompat; import com.bilibili.boxing.loader.IBoxingCrop; import com.bilibili.boxing.model.config.BoxingCropOption; import com.yalantis.ucrop.UCrop; import com.ztiany.mediaselector.R; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; + /** * use Ucrop(https://github.com/Yalantis/uCrop) as the implement for {@link IBoxingCrop} * @@ -38,22 +39,24 @@ import com.ztiany.mediaselector.R; final class BoxingUcrop implements IBoxingCrop { @Override - public void onStartCrop(Context context, Fragment fragment, @NonNull BoxingCropOption cropConfig, - @NonNull String path, int requestCode) { + public void onStartCrop(Context context, Fragment fragment, @NonNull BoxingCropOption cropConfig, @NonNull String path, int requestCode) { Uri uri = new Uri.Builder() .scheme("file") .appendPath(path) .build(); + //参数 UCrop.Options crop = new UCrop.Options(); crop.setCompressionFormat(Bitmap.CompressFormat.JPEG); crop.withMaxResultSize(cropConfig.getMaxWidth(), cropConfig.getMaxHeight()); crop.withAspectRatio(cropConfig.getAspectRatioX(), cropConfig.getAspectRatioY()); + //颜色 int color = ContextCompat.getColor(context, R.color.boxing_colorPrimaryDark); crop.setToolbarColor(color); crop.setStatusBarColor(color); + //开始裁减 UCrop.of(uri, cropConfig.getDestination()) .withOptions(crop) @@ -71,4 +74,5 @@ final class BoxingUcrop implements IBoxingCrop { } return UCrop.getOutput(data); } -} + +} \ No newline at end of file diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/CropOptions.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/CropOptions.java index a6c7f2c..e0eb950 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/CropOptions.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/CropOptions.java @@ -78,5 +78,4 @@ public class CropOptions implements Serializable { return this; } - -} +} \ No newline at end of file diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelector.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelector.java index f0fbacb..8c44422 100644 --- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelector.java +++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/MediaSelector.java @@ -4,7 +4,6 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.support.v4.app.Fragment; import android.text.TextUtils; import com.bilibili.boxing.Boxing; @@ -22,6 +21,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; +import androidx.fragment.app.Fragment; + /** * 基于 Boxing 的多媒体文件选择器 *

@@ -110,12 +111,10 @@ public class MediaSelector {
 
     private void start(BoxingConfig boxingConfig, int requestCode) {
         if (mFragment != null) {
-            Boxing boxing = Boxing.of(boxingConfig)
-                    .withIntent(mFragment.getContext(), BoxingActivity.class);
+            Boxing boxing = Boxing.of(boxingConfig).withIntent(mFragment.getContext(), BoxingActivity.class);
             boxing.start(mFragment, requestCode);
         } else if (mActivity != null) {
-            Boxing boxing = Boxing.of(boxingConfig)
-                    .withIntent(mActivity, BoxingActivity.class);
+            Boxing boxing = Boxing.of(boxingConfig).withIntent(mActivity, BoxingActivity.class);
             boxing.start(mActivity, requestCode);
         }
     }
diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java
index 9ac4037..00ba5a1 100644
--- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java
+++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/SystemMediaSelector.java
@@ -4,12 +4,13 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.support.v4.app.Fragment;
 import android.text.TextUtils;
 import android.util.Log;
 
 import java.io.File;
 
+import androidx.fragment.app.Fragment;
+
 /**
  * 通过系统相册或者系统相机获取照片
  * 
diff --git a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java
index 3490f06..cf9bf43 100644
--- a/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java
+++ b/lib_media_selector/src/main/java/com/android/sdk/mediaselector/Utils.java
@@ -15,7 +15,6 @@ import android.os.Build;
 import android.os.Environment;
 import android.provider.DocumentsContract;
 import android.provider.MediaStore;
-import android.support.v4.content.FileProvider;
 import android.text.TextUtils;
 
 import java.io.File;
@@ -23,6 +22,8 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.List;
 
+import androidx.core.content.FileProvider;
+
 /**
  * See:
  * 
@@ -35,7 +36,6 @@ import java.util.List;
  */
 final class Utils {
 
-
     private Utils() {
         throw new UnsupportedOperationException("Utils");
     }
@@ -365,4 +365,5 @@ final class Utils {
         // 最后通知图库更新
         context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + photoPath)));
     }
-}
+
+}
\ No newline at end of file
diff --git a/lib_qrcode/README.md b/lib_qrcode/README.md
index 3ee2da5..e5598d9 100644
--- a/lib_qrcode/README.md
+++ b/lib_qrcode/README.md
@@ -1,3 +1,3 @@
-## 二维码扫描库
+# 二维码扫描库
 
 修改自   [BGAQRCode-Android](https://github.com/bingoogolapple/BGAQRCode-Android)
\ No newline at end of file
diff --git a/lib_qrcode/build.gradle b/lib_qrcode/build.gradle
index 4163ab4..e386156 100644
--- a/lib_qrcode/build.gradle
+++ b/lib_qrcode/build.gradle
@@ -35,6 +35,6 @@ android {
 dependencies {
     implementation 'com.google.zxing:core:3.3.3'
     api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
-    /*implementation uiLibraries.fotoapparat*/
+    implementation uiLibraries.fotoapparat
     implementation kotlinLibraries.kotlinStdlib
 }
\ No newline at end of file
diff --git a/lib_qrcode/libs/fotoapparat.aar b/lib_qrcode/libs/fotoapparat.aar
deleted file mode 100644
index 17f988c2ba9db3879a7ebf987047518c80906625..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 314592
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

go!5Ka}L-{Yn`LDMudraOvR9zr7x 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®wZ8?nk_4;KHCYUxEV5C-IRx^_n;C~if|m`+;R^#bQ)RI#FfivE5}FSy zkU@eA`(ieO$U@Qc$({h;&%)Y!ENDCCbumebuY}HKf~AmG!(Eq^utBTFN@4?;{s#RB z=DFiP@C`#Zz1zN0CKM}E(X?p)On@ls?5Zj8?fC9bn3$!Vy0M|2Q|3B0aZYj%@h$TC z2N{R>;b{D5ghZjMu87@bV%o}%xJ3ZPcc7ZGN#+fCOXn&bV#lGaooA>vzT*V<<_&#I z=Q`b$<3xen81>0B?$ALOTHWJ)K_Sjni$6iHZ(0kY+rID zQ#3EGHz)qi?B{4lp3%7hM=bF~;UkaHrM#T}Q@Lo^=ul1!C)%CQ({n>}V~+i5t?>mZ z#@r*4(SFgJxFw(QcQwZ6dao%*jH11w7jS7f)f{++uRo8FN4rI{unVJ#lZ>Fc`NEHA zMK9v+;}VnzlZ)es(~PXX|J9wMixY5T4ENy!1K~gA^sN8GoL<`HKgsG{mHy=nXj_Ip zev^lW791!_2WPP-3^Ny-%Bsd#O~mfYxZq|1+1xQTZG*ZU#y>9xeG-b=7l^!1RcF#DVp zDC`&W*tYN3vv0%kC=xjfE-aWu-rBFOG{GmEmmTRIp=9MKS6FoXt#BS4v`1#qpuFmGthwG1Spm1S1m{&)5 zd=qe{1G{PY)P?S;M;7|A5Ylj$Ye2%5e^%wot&qjmQ95eq;sr&i|0EE$F8vx~Sb<=r z+mW_^y#g@3D@gC{5!-arz#2N5g)>2bkH+ja->g=N{%~~SdvhW@p3g5%pbV4HJRF8w zfNA2111s-9_Ur7;F=4)SC^m_j^05sQCaDiFP`m0L)chIjN}>Fts(jc37S{~p<>LhJ z>bxT5IHo2B&`iF13zjEFCEB~u^D<-EA%*Br(Y(bS3q$Jb+F^=f8?hjQbZd$z%p(^0 zuj}FDN49}n8g4!gHYQSzQ+$`A^t&OoZ?+LX*zCQ6Wx67K=sNPx9*g3^d3l%Pwe}zt zS5RgOVX}B&Hrr6bROdM@zlrpX%AME8AzG$my+Fb^LVMzhe`Gl&Xw{WpX|Ut9oN2rN z*m1I?{E+_&kJxQ=;w;l7w50HH^CxM2tC$JMglqWA0Vcq=9c`>M(U>0-vle5W8GrsI zc-D}bVOt11)ZvWBn z@*nNv|0;IAyR#jF_5`4i;_@6O2hPQG?DGX5A5?7=1W2>&P1lx{|MLzJNB0z+p~y+kTsvDA(RL)LO346# z`i?6{)VG7xWhzwm00hAf-SAyG@b6g7@Sj&R$|SkA9$&#J!?mfz%_Pl(aLUT6EtD;x zKFZ!}4~Il-?Tb9^+9*ZcA>6y zL>Cstg^AG1V1IcMyUDA)bA^)4r!<0$zKwsaGC2v5e$y1X4NkrIGyP*iFu>`kGQ`Cv zS7LWK3vkr#N}WwcQQFLk2(t>~9*sxheg~D{9Wtf`C4>+X`V(S6CWYt~e)`;a!K>6xF5A0na=GsYE%@cI<$R&9#dI{XEpV*mXU*6>$nR;BzlCTgZ`FpOPt za+th=n<+51(p#}DJbRI*011n8eGM1vRS<%9a8ZVq1dYyQTvVx z)3A|R6-JON5xgXnm!GET8viIFmGCf|*6F^@V%g3-tnv4M#p|WKWFloHab2#3H+5EK zLgyY@&$p^Dvsz`02#Sm-qpE;N!trASjpn_+{a}=6X0p#n?;f7Tk2GIOq9apPxNAz} z<{oB@WtwdI)^1gk9#O1KCAti+UB?zQ+yLU$rbe?+SHBpeA*+g2mgOgf+-@zlet>|K zr|kv`A&mq=6AsQ!cxG~ra;vFy@4k7$Ou59SR(M74x>ROs@vhg;)FGKPI$;_@`eVfg z6bW01i+}jUg%v$A9}4E;`~@FWY;woV#Xln49HvGf?BE|L=%y&utR`W~I#E1;oVla- zV(qc5p{w5TfaB3Ku-QHFEQ{Oi7;Ddi6^O~l$2CN_=J^$xjK!V-wY_a8-D>9hVHiE- zltVpv;We1Ze0x`12xR6TFC!mp1_cxFg0fP|PSzjIXBLJxQrA zn^1DyjLI74D9XrAA+}nJA695^B(bbgaf8)GwM85Odr)Z-J7b$!#|G(4kv@nU2O-{x zo;mpQfx)!tumisvS}qs%sTea4O2chyZ_CjA*TPv>yb@uP3#%8-1Ry9B9k<;}F2aS3s+emmZ;LVn)(x7&AwhbV1+>IVHd)#n zuWS=S7_yffYDKp%i<(vu4YQ?CW`e_-gkvbP;u{Nq-3+{4_eDZ88N0|A6oggqpJekS znWJw@vpGE!F7tluD`lLlz6H9Uj<9;eP^O<-m)Lxo#>`N90|g zbF%Q?Ov8%Jut@qsD(N67mSIV%W^24)>%>yk6eU%^LF3l2yHutg!vl`zmPb%$DQQ>W z_^NWOQxPeA>51Ewe~?ntR*h|TSo8(g=Q*J!$UM+x+rJe=S!D17+f9!RYYoAs)3zK! zwN64PFNmwa>B0w@UE(^x(^gjfd%R@E%aK%j75ZXhcabKxZFgr4jF)dUZ~%*>0_|Z3 z!((7Je$K_USw%;6>SnU6o%r7WkWTM06Xz<5A>P6oOHE1*eKDjZghvbBKD{OB`*2jf zW;D}h`^3pgFWG%D%Bu5nPDKS;X);(|)8a_iv_WWIhqys{!pWXQR@hs6tW{3)2Ue9c zUzZZUv!I`LV<-+Om7Hg%?a1B%z4I)rA=+-U$xrCI+$Zn^?jv(}fYEEb&X%B+8H7FT zCZb2&Jqd*z2Ja7C6`f5+(305B`c!An2n-|sN?-?7U}w1l<|nZwmky1|q6GtX-?h+j zhG|@}90Jrl!%t*D;@SHH;NBp46kqwdBndvzyOfB~(vFJn0WluYn-ZI}SDyE(oz=!c zFJE?AT^1PCBnJd+u{DAuw3zf@d~@0F#GtT4*2gFKC4+)=^0J|bJ9fLj)P76x0ZG4l z*yTErDYT)K>X4NPCB>Wx9Dblrpi$R0hnbc3B_-b41`Q72#du5%oXF%ev;|dEzY{kR zgTFvEytI?kXm-dMWJ)83#=YL+8lB36yT$qeuIOg6DA05Fk@TF8{Pu_xUQeyF1(x^H zCJl-w9qK9roWt`7n0W4>f^7lt7ecAKdhvI!_piSwO%C*pY`GcqIptz5Yx_s+G=DBiFf*KfjQ zx!!To@xKDd+*<~|f+sQxURul5k2woC-N*aLczM6HRA&RE>zYThikYY@dJ=|?r?v@f zF4c7lY6Fci42(f0`jTHPKr&GfP`a9CY<8Q1Lg!&L(duFw?1lu!`ci`IA&;qzG8Q>y zIL&*{p#b0item4$B>~(H^5aJi)Zd*Hg#YQJ_;-hcf~2hCKQdR=wlu4RCCbG>21FB^ zFshvN^WYFG@$t!1N=^k(jMiW{9(YDF$?aEP6t!BNjraPPwEvO3vPMt=m%w>^n|YnV z_&o9Y_&zNA!&8ZjdPIOP`#XpqirFvbo&QPlW zErS}F{5}I;xwOe)q~|s^cs!N`H_=4RT1U-2K|g=)Vvs~G&esXyjUrEu2b@AfeJ-?$?hhSKR)HDQM7X-c zx*@8{3~xOS|0Z;B<*r`ue#FN9>u%5f>cT)SBbHG%6%45JR|@xj>4PNexTr2x)^YxH zq-n;i>To0TS!9}?iKchFHYZH5mL!ox!!LIGa@3gW57q>l&lB8@`@}FEE>UhVBfOv_ zD9hxF<2@F^%R6Z84P(2?#x2GM?5GyWO^C@B!as^zoRnxsX%z9EpEcA8aq_uV#l^8mlkss*9pf7MZJWI z@6i{{_Aft2H-HDAxaKUKGU)dX&~sIbMrFnC%^j|&-1UKE5-OP^%7wU9gO`dKj*{hx zweiNc?7)dP2s@?PMBEZq90A$eq86a{`_+DXrLNYX%e8zYHWvZrRCx_C6~V>!iv6={ zb81U!vn_?SZ=nA`A}YjSEZJY0<=}5M3(Maj(eSUxH zn+tB!+od^rm^sMsK3IMSef{G8T$-PMn7Z(2Ofr(3Tpr=^#ASS*>U6#8WV~`6RML^^N)T%O_kGalL4!>+G85r&f(A`8EA#vaA`gHyBz%=> zQbUzyRh6l3-vj?gP_OUI2>KBr6m;!ozJB1$Uz$e0u5?2IM4BlRYu<4m%F`h6xAK}< z^@AK5MOx4vSpQTV9I`Z_rR=ru+Jd823NIhNnxKf(*-=j1yr>g9t1g%!^#^`~0k)tS zLHTVd;;Vh9Dn9`KWCki7GL-vC9u0p}THxA*t&>%u=QqQR}&bx*nBl0>cG=|SL{ zf#9!FaqA>jh$K{VQ0uC6`t~T~>;9R2k=jtZr|jMiEhWa#_vi}E>AACm`g*5y9Iz#gXMKNJBp@KS9kck09PUa&=GbPX7?Sx9c5d;Gh7+?EBM;PZ*ngzT8ed@iYW~CTi zhGLM~!{W;sarERu#m-sND3>eH@l_B!{n3Y$)Y62Pf^6gs*$8Wuax}9(8fLV|A@)P@ zZw_cY@;LllBI?#M=oz`5uR+P?;tLFYO0J@kiw%iuvQZv&#uBI9j>720KhV;|u39*! zOA!l8E#cd{C14cv%np>?(=OHQTL*>e17VYo6%2@X@2n6KI|bGYv&y542OF3h7Q~EI z8i&df3z5MeF(!9+G2)Z#4V3QYO!JCln z8C-j*+fn)b-JaRvaikI`f4B((@*{bSpBMS-#9XU7y=Icv|)55FsRXJAUd zbElxC?7W2Nh=3f4lc~6G4gPCXM++8wQL;$fJ<&Yy&y*|B0GDmf-1M~;6ALFMH-)`$YpRiXYU zU`#NU*_yji<-*IYL>pPub58Wz@+=ow)nELy{J8wQy+8N|gZcm9|A_+bhZojfys|cQ zCq!(mKZ;R{A6$l~#M~ z7O^ItVbq-GGWvS4QoJ0*?@3);Rlgs;CjHW7XerC8xhAfVJJal$7`i4PWiArdDq>As z)X*`YRbE9{*W`Ka@$DAl=RoS+8BbUA@UPmga%hvAsc#!Pty)sp;^Z)u3Vtk(P)exx;9#}2 z3%Jq^k#uF?fQcEg)G?yVo~_H*=!Ii#VB8a=g}m*;qL_+41xc^()Jm>jLMSX3k)mdF z6iBZh6d-&xz|Y5J28M5Rj#N<-oTi0sWC|UwaSMp=?j{3) zDoYWx&49q^RMzSMAI(P<8SG$0?qI2f7jnPB%=;3LefoXv9l5j0sfMiXjY;h~E3z%d z>Ai=mzprhDeBcrhxoWgQzm#{cW6UtMhsEC;GcONYk>AY%;ehl$8!c*%I5o#2rT>dYpRj7~{tMbl z2O-iVV|d?%EPepd!@KYJZqTc0@FO0PM)3hSt0Ip~MRT@{K^WC8?#4klv)O{efe3{ z?iiPeY7KfnN9@{LNYr%8Nvctnq-7`GLBXlAJxnf#h*=_)k_8_V!}khdkT|d_+e&*y z%c{o?gRa~vp*@TFohQNM2C6DKu0b5&711KVp7ZWMSh!JExo^I05#au)sPdEL z1*N60Dryu+PH}i-`!4(n-gnj5aNF&`>)PMW^8mZP$u_fF4(k=eex*eAPi41X%5MG2 zZuydK%~-xZ(M7pGx*SuyMMQBRXK36`-aDs-NHme6tjMFhd{4z3%@3lCMcb0F-RryH z1-AR3IR&rak-*FLtYeRIQ3+(lCUfS+6Rd!{HxpV!fH?~2T!zLsw*_{r!XMsm zS&)IWpnrYu;ITV|GUFP257CoE5cOOL-0Z~Mc|zjCe{kCS3N${?-iUMvoScCXZ$suE(0T=bF9+8jiq9X0NjA z7`SB^ro^gt=pbJHL>^{_$sXYS!2O33U1#lNMuzzD!wKvEJL~wrl;~d*R__0g9_9aQ z)Z9?t$=2cDMnM|YJ-rfC(S2mnNX*6X10Br$EBXAH3JWT&0{S>4L`BUsax$TUIl7B* zFGc4Ij@}jY@(k~N(q%F^uGfW%?|}@#yz*5*{9v7J*WJKvw6PJ{7^n5^+J-MaAh#Wjh&Rl$wkzBM3n@kgA4)W#1qjk zw{{`wtLdi;>#JphNQ9|p3>$DjUxZ^R2+@>by*F83gcgyN#z4qNCt`hK5E)=1$9IY6 z#+FLrPzCX8d~Ram&{)a}Wt9rag^If2@jYo~49sXec^IGM!jdQY#BpL6;km@>SK=7l zr*0VaOaqVnDmP{%3Xq-HA zZaU{gh{?EaM32P0EvKT!%`Mq1NK0#w}E_nE?Oh|8qo`eRgzCL*afA4 z-Brt+`4&a3O?}Okbg5yQM}wo%_2CuCQloHxj|$-kixw%r4eE+E6$HaC3DIW3yz?Cl z+5B_mMJ~;q71~{ zX}M9U@Es{N#R+8eB>@)Uc!9RM{*$78m8aRmcu?&T!Z76A###3rT^jCH)VrIS4lXJ9mwj??jyz6j- z*D+uvANF!fU3_pL(d^`_qlOic8q*C^75A%7V(n^mEY;d2cox{&1AMh8jkj$-6^Onq z0x+u)Z*F8-bi<0#8LN|TuKF;+u4|IeMkIK&&+HkcB-_SO)S}vNNmA*zChF4>QPmXm z_EQzRL2VNieKC_PGx_ z0uy?oo*i1FEq)Ef!ouQd`#FT4tAb3yXAzrv6Y?vUfzL^RJDWVkx-~V$zesuvB^lt z#k2H+8wDwwu7j&xH$OCddEv?!&PS(YeA|2p^z#&(^;|Fvc9(5m4UygJT3Uoh3ggj$ibthj`r;l!qGs6L9%!Qb0;7 zYvU@D>(u$h@-^KS8T-S1Vvix@b(~`A#hqbJS@Dv#+@6VDFuLdtrFvU=-@@UUBaN$_ zW@Fb#H)!*idXBYPEW27v*H~v8;%U|SX*zqB*F9bk70Lgs`5gu21ae|c^<3BJi9I>Y zs~q*pk^MuN`RDf@#_Bbg@f%h{>p&Abuj|4Y1#hnh(3D^P=qwS;N^lDrDvlj>;`uNq z4{({Oq$^aAu=@K`5&%OLITO4?YCZwyBQQo51>;d(8T)3(bfY({c1Ye5lr@c_duOsQ zx>}6^=lC~Wg7dJGdR9QUfk+sm$um|G>aE~wdJ&Ir^7rrV$GznjY+dsD?||VU{i}p< z9&5T>F{zEzC2lG>=^?<24{_mWhF$*(hR_#y}0MbcrXc~&%`1rdGGDMtEQF)Y?q z%f=QtFyjKnI}|a?MrGuhNT>Ix6Gf4WMV*4Na+T`)d;n(*Iz#*Dx=*9Ehi{f<*A$lB z*yQLtB_sAB?xD?qs$7^w7opZhk*|Ry>N*x6Lcl*9oXQN0>VS2D&VLZPc=D(0ZTo;i zt`-F=o1_m_{wQxf)igbBSq)soE$WiCm8;^HG6_hCc5N5)T{d9}&F7ZodsN_%J;-Kd zo|Ytf!3N)|&@0qfIk_fzb)i*pN0tMsF~EWLFbcpbzvV>&YHb8zO$2Ej>c$Vm1-w7( z&{WMwtwIn=ITJ`(o7#A(7NqSpJdUnpWP&%Ftk^5CZIfSZ1}44Jy3dwz-ucI221_Nb zAGs!JYZ*-K5C#P zu89S?$@#*;ig{iog8jTQ$mH{neFhcN`MPQ9qjJXMVi4P=zUKC*TXJ|JG*n9R-E+8o z2g$M^@nPoC%orD}CfZ@;E6z)B12-2xEY4U|ZU8F$*%n<``_SzW%g~YLirnH^g-cTs zt5R|`*6_MJs>7C%&r}NNks?Vl&F_57>mJT9&7>{iC#{reI&W4Wueb}X zhXR>vG+)rqE=iNGEkWG4uwCKRtLwFcOrz*+ID@4D#{St)*iOHFwp?qtZpOR7Kfb6) zh~!cD8DxKP2fn!`%<%5u0$`t{R4;S>mlbb^S4Y_G(YvW?<;6%%B<7EC{Ps|1XHDvtnrDme?rs9SY()VUf ztd&}lF(gQn#H$))yJi{)qyj&cmAQKQrUAbNe`PYBU@(Kws8!I0{?=XR#LDVAtR z$l5HrvDX9b%^)xT_n+u}aWH^_5=+9yz5Voa=kY;vx9b$W`~{qNrQITQz>h46dnISyE?})yY-(B=o#|i@64kD|Ez-L7~Jsy2j#9ijxPEYz^f)zUQC)3)AsPvY-d$ZhYbPDHpra5ILxUx; z_Id^<6#X^u5!zeKv5Q>Dtzw;aWDdAIIy_UiQfq)WJT;U;7-wOIZcUrN63-t;vqX4N zOu-4BZrpBNH?LBW_kT4^A&;3z7)JC)6)fW#qUr;;GfbxQb9I>0WmZAG-j3 zt)axVji~r`tEejx*bV3q`ao7od({RhiV-pCD=zHqO-=nsgGl@gu8udTTUA=}O`7E~ zY?q7Fbw=kj;;{9%NLS_WX2IyqP4SL%=Mm?#gB;R`rOtR8ne~kY36LuV)T$}3qSJL9 z*@%>)P*SLQJJQdjT%2})baeI&Be7)$U5$kvU4GYB3Rm{qz{*SxjN}Q;v{0>EaW}{) z_NG&Opj*`twBRS#{JXCzDkrcyxQMYoL_`F&pPND@0mkYYBM{*1D#>_aZ10cf!Lh|` z6C+$x*pPSrmC4RmGd~-$S=_3v+7>22Ns&~kqmofut=;-h(4zS(N>Lf(k1j?x^TVFwQ@CuEt)#on-B37xWe%!d%wnU$ z-Gz(PAU>MqoOz2a=n6pscS{W)nuZoGPAF!451|gwc;naDQvY#0dHIz6V|YSU0&J^y z6LSrwGc~}Owbw{WrZSry=KA{Lggh$Mu|6zXelj}X>CL4ryo~eviThv=2ML$GJEWXv zt|7#d2f<+bz1TB*2@D%jIHZ|g#xAT&M-0iEQ6h8~U*jfJkqr<;!w2l1PJtwzeB zGB(>#N~j|aCoJonVD2T<1!JU0?8fj-sEyYMP6+_sfrxZiocT0M3_3fwGoiS0$$3FR+-C3Rsx?wKn=jF)|@q=C< zgK}7L-t=@a`s4Jh47*VNtR`Sdo?>oP3D|3|`uWCBFS^B@#jfTB_8+8Guw*j?77<2$>fMO#jjpljl6#qsyAfMMzUJk4`u-~jvwm~cE$KE9JA;})U zP0YZnf4ZNL8g3*ik0oZxRa~jn0pSm(JTFR^hjzBM6kLRETiRh~HgD-&Z8I4!F)CTE z6VUXvLsOf3+N9UwjxGsxzk!O3&{xXk2&A)+F)D4L%}?SV^#GTK46dtkV~B)oK@&i7 zhC1ZBPJuW>2ii;EnqGx+Hr>GV#S$S*+Yn49KTi^S4zP(TzOt zW6LD8TZGAxfV+#@2#TIahx9G4({*waZ>zT*s&_@7mrh8xQj3Cpm`a71*)~ijD%)9S zHwn$Pyve8@i*nyys%4TveEPWgIP#T_GEzPQQ^O^Vb0PNhcABa7w5d6gXpp@Cv(0h& z9LJ*hT`b5Bb{>kl5LC)~tlLxIT5*nB3oVeJkevFO{r=cK@*32eAU3!p9ev+!apo*suN| z!=F60LNa#g3Ob$+V>-I7W@t#dglP=SS(*n)S2EoouKFe7r@<+swiRIG%Sw}+TAJBM z>0Ms#G`4JS!D1MiZIuZY2Zyl*e|S1QneJp#f{rFT3d6uRA6HJY)x8FB-|%ubq%mei zl<@dgJq66l#gfF{J2)}c1PeG5-TWoD-Gg7!zK{X8-C;$&U94d~p;_HNcx$*XXVbs( zN_S;{eZyhP2x02%M47s2^q3KN4DO>sq(}&9a`}|`rH7fN55pqMC5H}ib-AK$zPG6G zEz`Vl6}h7}b05vo{N^sQK<&p-obq|t`XsN^_n-*JBt#<~JKYY$+b!#5A$Y-ReECy! zoy^qU-7D-B!GUBJ(_s)~buQ=br;k1>@n(ViCf4#hstM>o?FsJ}Ln11Y0S0~Wb2xi{ zR(Abieg=Fnw-k2(LKHHcxIs2;6EYp&p0%zO8J^5u4s8?CjL=>Utqyt49qNYX1EPr! zXOv^A-P9Y~I$7S2G;?cyZVhl(Oq<-yy$JoV2g#EgIuSTFKJMPKBHQ>HoL)tl{sg>^ zM?<5~=(wk!+@J4~WReC`?~{hRa&LHH!dy}c)La@s^|xq}k|j0tCWfm+6_=>uwREq}9AcXifW z3|-S&q;iyR)^=W)qnJujo|$J3ve9)irVC!d(mk*UORqmG{K%+^Yx2(>Y+T|(izcm` zt{~A`r!xhOU-gCRJYw&Go7Q-$;3#f)Psc3EcbIR`y23!YZIvh;xF_DWdhSkDud)?a zf!ADi3Yd#|4uLaSp|@=%?pHcS886dUFiS{Yh&&}dK}#dd56Ts!JX`yCv2Z{qU5VD; zek-$Rgtd}8HbSa2i@*z)p3YVFq%~v|EE&l((BNB)6*I|O`BMo`W@c(e;W*hOaH40n zbgkqzs&BT9XLo0UqKvD&BI7bNen9*#9 z6-p4q+J7R9D>z-AX;kuP%q)~L!X{@*(bXt+D3`*M*bf!PkumhqA8!xHZO%gL(*kD4 z8KTc9p&cpljb`|L21PI-9IL1gwZ|k_22(9HgU>L<@UVzzx+oaPfjR^?2Q_?VCsoay zHY5E;O%|YWB*d-HdWS-u0c(haYL@)nHR@KmZQL*bnIUk-0`pE@d1!P=*h z?&%xRme##FE{(JVoagv16c4uKy}JBjC2WZ%_tjcvUSu^55HoBWhukD zH7BO06?%cxCbQZyC7MG$f#hkbTR>4)4;QO#3SA%iwki2WEOm@10d$^?4b$mb8PRnadkgrP`l1$iO`LH}L z>!!0B!zjus2i&(|n`w}0RZYg+2JvnA6bf9*FEJkF?V=T6c(`!F8_{-Yw_9d0Mo6h4 zYtD;8`wmz2nBEnB+WkPl@ZJe^$pxPb)Jvu45~&kf+xAQxAsq0iFEzG$7ed=3eH-_k z!r~Ej0{8Cr5^=&RYn6IXnTPdl5sH}fhV3Thz-nbk#yi8|e%w{hyDkPy8FxJWz;#QJ zA?F1C&I*AfH%{K6#DOUU{H6DCrV0TqJH^}?;^dwnzN`Iu65?P!1N~tXPt`fw{i77o zU`Kq&q#y|;dy#rBD)dw-*2+e}^BTf3bWs&v(lc#jqH<*B|)C$)K47g#Io4{X}7;ziQ|E-4UjN4Prv} ziC{ntHU#4br0}jDXQT~i;1F>%y80e5b$6EbQSn=4W2Hc29|#19ALN$WOJCTY3}B;Y zI3m57un|TG!#p3paMa)I$iTRTL6NsfvhIN=Frac#^<#HJ8-cr{<_f$+*6yB=Fc{oa zKiKZd@=6{P@ue@ps(J|3Bg8 z|MF$}Z%9&w|KraD*|0$yP9U6P0qRyskAbi^qydG7Fb~SO8O?U-k~AUnJ~4ee%Nj)z z{Bjb*kVRfeFkt3#%(?t(GR1!XIec9G!=)FUg5t>55Hn(4Q9tkyhI3A$Uoc+ehHi=5 zoNAj_8YYM*&J(qXY1$ek5`PQqrxi36n=<3E-PJc&D*p=-3X%*4teE; zVQ}0eo*k58%9DH#RKJ?N8gPIrEE>cjKQe6rva~)3@|m*-IR=s=os3DoZQswwl*Y`x zxbD{e8Xupe`{`*f+ur-m52{khRxbbMNr|nd=ZlYv^>?W;;_Eh^?`ftUI&bpRsJJ*J zaA>EaHAAvyYC#WL8wIB_j1U426p=6yB3*X9lnM%J%S{=3mra=2Ck+gA9O7;#WVFBxopD z*!LEHhEdW3ZM^V74uzjdZ{G|yFqN7=RqQx>uq&2&5jF-juup*r!Nb9q5I5ez|AAWx zXXsuwpdUZ_|2FGQ@PB~Y|Ks=j-$1V7=07TbeqSPMlz>2xZ4*euDI`+Aq$))f%^nyC z{|X+s(Q8_6+sVCBI^rzWOsd0cEvu9mNDd4E*w z{p=@1zIpbC9(Zb^>$?kOEldpdB#PS6$yuLM>!RuJu~kPt+2bLYgiQZoD7GxDX{UQa z;j3IF88d?>IQCl91}1%HvKP^-z#U!T8GaKtI6(bWS;Weo3O57H_fZsH!PQ4nQS| zH9~u~n6vEQaa)3JKSe{SFHFc*V+*ztGA|1%oJ3MU6Was&T{`9HB?Dw0oLavY-vcIi z9bLA9@yk)MB~*JJ3mt&9uu!|Lmr+UgT+z^HRNUtLeR#RHFINKngekP|MF4> zx+sj@Jt^Wi)0q_a{gr+TQMiJED#P(Dp*T^dY1Z)eI`W|qjJSWr_sOMIAKfFIKj?z6 zum|z0h)x3F{Yqj0B}iO&s8Oz-R1_gq-Q1uoeR|defy^%(^AwHmIOowK?AuDr`X}l3 zz!BLv<6_9_D*=|$ZU)gA^&nVhpmdV5fEynWhczDc;5#_u3e`R7J;XMY_+P*$a?!Uk|KC=7isl~1ipEyPhEBE)MD+h=PgE*t+F}a-#pd3tMwd-Cegn?A zAbSm6e5~NfKrp$b<|Vz-`53}^@B;gf1F3G@h?mh(JLKIUIBvVSi8)GKO7JnC@}c#Z zq`-|uNqicajK>$PK8{mdpZCwCKay_Q`L}T$>dr@fh?C+vPW~aPr zm)^2FT%d4T7A-DJJX(3X3X^*e7%5xY*cZHd({kQS*LeR^zGe}XOUF|k zMbuyDJ8exk8JlEL;`wJ+;#4WA{gV5vM#V>EkdBvskOeDP!94G1?72QgV97s-5$ZVG zd~t~Vclwnc-qjV|MAB7qc7Q0#G5tPXNODPE5lq`v7Tu+vMA;)ZimN}PnX+SR)Q+i79xb?h+W!(zgdB9bG^VMJWH;Lj(jhVF z6r>IbY$^sAi=v|0tqXwCF&#k)K-5D+A?c%yV5R4kK0!v0H&G3S+KzPn;4RAPk*pRY zo;*89?hqbK#DIq(R>CTfD{SY{iRSFPfnnupOZ=kaZyzTR*w!u@z5Vb@z&b{mn`Yn-#+MqQDJ5oS0`0DK*)d&UqTL94&1$@EUBMYpr88GqB4+r{^d*UQId6uywewyePHAsH`_e`pS$($0c)TD^H1 zV-xcNgx|S@3K5hao~6@HgQd-i28BS`Ov=y1c>z?|-Z!g6WPq<*)5MJw z6)Tn_+T4pTw@}}|T|aKHT$K(Cf}&J~ZQYO*m?|S))Lm$yNaH}i>Mx!m5b#8FZWW@K zb0tJ=EZEiK^kyoUL&|}6Yx{7%yOW~@PgY%_k)ETmtyeNkH$;Kx(0pLP0fChgEa3lo z>OLQA;QvPn3ms8$RN-_gOwYQQR|1AOW!DdqQ51tCh=~ONVFW55xU20Gp3qmNJgV4A z)}JAs66HX_Wiq1{U7stU_e#d~?aux6(^#LeMF#dX;McERv4w5UzBNk2P?ibPj;K)@ z8$?Ws)9e=UwZ7h*?qRjkqNYlJIlMNh91i*QrX1O2&84EXLLhT|6!w}Q5$IyK(%PH^ zyN=%L0X~>#z$7s@f1;FuTz)Gmk^J6F9&0i^%=;-xl8X}sL@I5R_cRkri-tDOB?+Q2 zEE^e?_`op}iNe@H_?7GTz0soYXde&X%A`|^Fer2ib@Ax>MqFqol*3ypR(Pi{F616B zLXa7G2xG<;gdBWVmFL3A(bxHS6^4E<)*b(}Yj=hG(tj+n$U=PWf9?`9r0 zg08(J*(f5J;m=6?ZSymv3agd^VT*c3fjtg>m_U6oD`JvOGtCuJlAc(@eTz@c^wu2m z8s{d&DH|UC7)`+zF@^nibY61AWpE%j(Ch7r26ImOxKDsgcJ611F@{@+{*GTyMlG~e z-g?dWP8}B#bjBX!;~f(nR?GSh0z*rr21)YIfN@h`is1tWi)83F^>oo<$Wv&Hhv3M- zvjXux_*WBUTm>24X*jbOK7EKlKftM1zz~SisNJPU;&oTf?p{-vHrJh#nEDLufbiVn zyIaP9Dmv7ck9s$)3=c7>6^vDj(oUzng#TDw0S~coTSG&0On~v57nVRiR+1W=H1zOl zhFZ-WKf~CGF^m^ZGUS1>&H%t5zS9==yr2?ZeZMCEdaTV=0Fe+n;cy<0Mc zHutqfl8f+6zc#CjZhqXiJxk=yFP?2ZItn|H!?G~0+B|M$OqN~q7wL_Y9_SWvz477h zG^I%AF4Y>-50+H*70ycDOb$*qAtEzfYF4l>^s;yTGYUE&9?vb zo{NZpE?%B!GVCi5|LV%`B120AK8Cm$lqVa)32aT$cpu%Aba*okc@z~C zxr5Tq10pZ*9ED)sc(foD6ufT^?as9}?+&X%Wk2dFaY92)9rt7Bxer#-a}}sTRLiVS z9VMRqA}#L#5V2=Q-87nXGFYGN1wDB+QM6y#1tDMC)=H`f7_NX3q4)Nym-#^-qA0vdN0+CmOH) zjyjj9XHim|3YPrm(ky=&-7zU9k&A$v0jbcf8a2*pp-%1YA$%Ps!1_g&LCSf~DMk@; zZ}#C?STE_VW?$L=iJprsi*u;%7>P1!;>u%)O(~S;jcCgykAifoVQ#*I?$O47lGG*y zNt`3exQIj;mtSo4=*LDC556us6;?Y@j(yiMb;Ee@^Q9Bi zwWHaf#u>lk6qCs7ifA;#pt=o|`_k{$6DsCm@*^`@ym)1W05?F$zYDA_)x1S;*(SyP zlwSG-!zBxuYDbggi4oU>^?Szq#ha=Xwa31=&>^PXHV)ZLMV=GXOL8p_*gs)jyx=iOlnn4UT%d#2sAi~j*zRW0FwURs0?S!HQ)MAV9qZGw+|rROeM7U9u&A8wm;Hb@%)#A`h1jm=jfpYKOEo(pE=^4^ ztN9c%?P6$KMp3~>8m<{MGCLamW4GB#CQ?T;<#ng4V7C2UxefR6XcgPlze9jL{1nIc zwIMW9X3LYH2xlBPetqI+cMyWr-r(M8%Ae;AaAH48m}}1Gbx?I$Zq|XPcPz>30RQZ4 z98cfKp-L}#k61NbP@mJ7Ulgtz@;tb;qEWu3wnK0Am}hU`G3N&|pTW&v6}LatWtoc6 z1xnXQ)H$WtD&&a|Vl65J`aLk7D$KSBzR@m!UT zInTS6jf0~oVX|h2KPU0|(-ju+06r{zvNsM3L9Zs#MtKm3rN{DH;NRZ7}Wtw$53z$3?v@1f3)%5+bTMjLj@9MdcFQraAw?>sgxX&>N3D0kwIX$z#VeUdjgB^2!I`Iw7g8oCPKT`-{U-n_*0^2u zkQ(Jap1w|!jcTFQ(?(Vq>xpL$QUtP;F1}tP{~~dJh&#xlwjyXkvegjecQ9&tYVMzT zr;u>cD0&`RKb9Z#h0sA)CH^>)^ZUDcv?(YR(h4irAq9mgv_NPDMT(n8b|M|rhupO4 zYwb0<8_TV0u|r*@ZmDl6TwB?y?`I4-Tx;15>U(vqEAOUh%IVMzD<7p@QaDdKOmc(?pV1?J2U6;(&LqAN)ZbA7O4&pHRPAjbSsi4q_aw|LW>5-%u*5b`ktiO9M?NX8)Ofa@BvZGCy4*}RWD;aBvCJ4Td4OsX+f zHGplX{E~&?Kh{{L|8uG3`M(-t`Y{Lv0J4!>*K(d$weV}nKR=L&J4lp6O{%fxzm|r{ z4>hjMv#Gy6D_k0XV0H~aXai~?bca;cnu#B-2Ppj+4Y`l243)&irY2*ZGkDr%HdUK@ zN3nr$>5pjoqeg^(nnIku8w`!NdOfA=>o9w;E$w?z4TG5Vo7Se?cxZ*rhc?5b(o;O= z!e;l&Xhq`D@Pj1_96#%5$xKAF>^m4-<10-dqh=#$iKJEmIC25gRwDDLFIxK1s%5vH zSkH=Y@8-3jX1O8Yy!`K6;vK~;=k6LO%xfoTm-i%>wD8(0zg}=-Wut1D1nPksIj)zr7@#cGnFMZBR`2P-=s= zJ6oh*TDPX{LG1}s2x){`TYwzV^|ue}x3O$h_b;)od$9L@dg*cnat`JPW)EoZneTB2 z;L=53quB1?+>%@&+wS_gVS)~}fB4`&N5Hmxp+@@-`cQ)+N7nay;V=z{EVQH;Qb(JS z>Z`pY;Vh}Z=>&*2!0c7_=SLplTCCruEQJg=V!y;SAh!h@TaX8VO5g4$|$LC0F!O<{R1TJn2A1~$X|G7w`~4XG@K z@v1m;LqSMtcW zV-HRoH$Ee42%KE%Bc6$?sS<9_BeSB_9$c3*8mp@+?tp7B{X5*%$;DK~DOVuwNWFA| zDQ0=ZT1b0pzT6D=gq(6fO^P#Ai6OM3A{=bCN0u}+S0YzRxQL28>(R_4@_@P@N^a@) zDg)VSPz8CJrm^#E3ocp7QR}r)a$AXr^RH%tb0~f6+6OO^@tml`Ta76(u_V#eFO(8? zvXdVXq4*kI8k!;##v}WTnXrP1d*)1A7l$lHX?sQ#>xW|No8=>b8XH`u0>n+gGS0@H-z}(*oQZjaV$+~M=`N1!8C>ml`IrJq+gU1 zwbD@uY)5;@Do?7X^~))>)i+L_*b$-4XtuG}v}m%!FOQNH28%i&y7bA>xtO;1SndJw z-BHw9i6U7Mk^2p9MesABh2Q8DpQso=Z8Uf(ZM@TsKkKE>uk*Sbn%3*S;-Wu7+_NxY zQmU|OLWjH_@NklcE`IC}r<0p%r9SWS7MwyRo-*Fk(%)pMi0Cp!n!@fBzl);r#Ej|o z_lqmeK)S_QA~0ylN!E`j|9V3|u0u;qJc0q&uG|o?r$%*}2cb=cUloJ>m z-BseTOkuh_c)}!^w55+2-o@%me8Fby3Ru`CUf$j(`tT?J6m2`}u8kiy=Imy@Y2k`G z$7IhE*E;X*H4HxT?CPs3K{KW%?xpwbuqkzWh#Yef3KPe#}~vgo-$ji{zp zSwSV80k@gj^syYD=PA$CgxSIwG5c;jWL5O1NYAJy5JMXl;xvc>73m(T=4pvfeO+GXj%D+c89aLOWsVP=6^LS~hh z$R!IHW;Y#kWJqWPMMt?A%n6*_oLLQP{3{g;XPCw{kxH)x3(og4M><>|4-3eE9^7RM z9;lF1jn#xkjv-*?hBiN-QQtMPN|w9A6)Lr&m724*bb{;PWLAQfc1*1U8jz0APvcY?29S(0U@bL6llze~S*GzE zVZa2P8GQOM>LR>yfzgCmEWH4_^N}*Z9eH;{?@y#C$DW8289J%48pEHE0IpT0kLr;^ zsAE?bs_h-L<7SItjK}`i{I+_k-<1vvfY$M$_50iJ{eXOr%6{(U&Y4S{GiOc=OzP4QGcsf4fe@QXy-S6{FlG*0hqxN&AIh4#>vbUIA?d+dLZc$b1^} zIyuaJAg0CC66r_#g`(e(jpn66Z4IMB)>RStEbY__N5u3>vf2UuXQh^Pa@@|6h9x+z zTADG#c{{gM_AQ&xLr&fS`K?asZ-)0@=hZI2~zhxnRpo{?}e6yJ9)* zwzeW7oId$qJ`t`4y4{w??k}G1Y+v?_fm8i=os()ggp$MAPAkq@#r>uGlpHckw_VY& zPF~`}+0Gl4`#9LXv-V2Eft@Y_Ox7u;zaLA1xRN2k6nYI=Jjban6BEqNLgR?SW zhzA^s%vynVR%`99avY<{qX_i&ZS1Afw9%kRJEi~`RVyfqTX`A${%6&ln&wtSd9AY2 zLke}0(Cwgb{d;C`tKC{O;Y8xabvRWp{lbZ5*Wi>GQ_zk+ys@c) z%u-i?5+opkhdi7+P~e-RKmc>*sTf`{jQ>e($b+kUUd%T9X0lUQl`K1-l0$NCH_f`) zEhhERE_45^fTWRzE+Qp!0NJM6PCpk=l$IG|oC!KLW$5`q8&fBonC_J4(!?_rG>%)` z2q%Gtf@u)>-YS)b!K=Y-z94&lRCX4*Amo7B^xKK%Ih7f(EBU+#z<51|iH`{^ft!;% zZQqd4CI*C(A(hFG!DB>IY$nVmWY{+D1d70qcB2^r>+O@39fEa_5q|_&?>nl!_%Zxm zWpk|~dBSq0soF)OnR&S6U7?S#$LXt3BsVBlln<^MVVWK*lyNPlk0|pfFbrdH660`9 zu|Xmy+#y4pBnb|lN=Bs8A~9AZjmdz{?faV^6WIj-J6HJ4m5cH?5WmxN zvgl{?#pqWn^oE{}Mq*P-Z4A2#2b~lMcL_w747fIG>8O{s8l6luK#GQySl3)$ zKcLgfso7|5^^IflWo%|&pU3Gj2E&-Mah*x8li~KT>hd_qylP|NL>q6D4`hb?VO!u- zp}Myuxe};{644g9sF={gu!yTR7VuMJAn%cFQ@G7(0M4{z3&M0~22TPhK(tcj%RSnL z%(^i*rl0@E=<*M|M<&foudoF8!jlw_h#j2*%NxXg8zO?`{wEs+?#(;UqpSCT5gR6g zOtsyy`gV_(Q;v?Fd)De6S~h;cREAo@uRn!u)LFsFMfZ^3AzCB__fPqDgG;|>50UFq z7=k^4T+JQbsT0mt(GVMBa!m!3h`f9(RJbTY=A5|&SAxDK z6`A|$Ctwx1AdrgX+y`Y>$_evG80tti^SSK!x+ptNu5B|xpIJc{_F>{e9LRttPAB1exwNYPK(#q4;F~w*}QVDI9GAMdjfsDZHZY>V+yJ2 zO(}=wx$oJgy-IPeIV3tIIw3mSKI{HV$jPg$qFn(31OyZA-x4{=e@Ntie;Z{K|1+Qe zQ=fqPmI|%}>WA5HYm~kUQ$egqdMKNqAe5nJ*V-&_PM#4;6I?vJ3bF^1MGK*G8Xj8I zc$wWNC;5+na%p{KS0wkx9uZ{>lciRgqgyp{wa3qO>-g*yF=!#|GSxZ0&N;pd=Idftn!vesd_qYa%=cey%&D7gTHvDXw0Vnlk}poHEED)`+vggkgVo71 z_$aN+05c9Gir9Tea^o%r=FkNphsL3K-@-8mu(ZiL6k48Z9fbyowWXdAtmAfEyf~6K zuHWQ-4gMr%Fs8r?Ai?P$6=o%ETOR+GxgObjAuX5r1CM8V1r$P0PR9%Vq8`w^dM*9ekP-<;z2SKOyCGa37|X^?H5i8V;vjqOl!==3OF-Zl2IU?ClD)wA2NjMy7yp*% z4E5OZVq)^XiKL07=&#U`gsB)_I+C1d;-H#or-39LcCP+fJ>75WNB|BSAH_M^hB{}) zXgg+j-fGDb;rrn5(0m5$OH;8U^popos|0b-XBPc1l28qpx$p~hS=#1~rgT<%>5M`R zCr=r?@C zK6R(PJfCA5duGwu!LZ#R5FgBEsv?Ip=`pu)V1MkgFAGf{1v_af1#pa;QDHR#c;3nD zdiSM`Bp?l|YR3z`zD1}VH9ohaW&#F}qZAJ>aEXS&zrg3$m>X_^3qiq72hNChC5kK( zMp&MD-NbwZcLu-W&s|YJ3wbdpJ-)&^CGFOxMyjcI9m}meixFTngc3SAhHu`-u~m5T z`9hg3cCvSoBg-Numy86}%7QDfG%(Q5uR5%+1-}qT@x+YcZ8+0XE>pMUepTE5`zQ3R zx1RIs5AC6F5H&#P*SD%xRUQx5(D`1VUC!NfIM7ewNzVzArNJvRYDWD`! zN<90WPj)j!r@`&U^|Tuaw7}XpxO#YyrWDBvW|sPA8I3+u>8OJ;+^fvWLI0}JEYFZ? zWj*Ecr1;8weK&QATBS_YF$ukt_M_^O?D`!g7LCv)Oc}j)Vx-Qpk4ZTuY5uzN+Hw)T z*F*I+iV(^I=CQHONWblH2^M#;x)OjwT)hO*%iJp2x(dhBdUBsauVQa4g&w0|=^`vZ zZtf!;Lgts-zes)@zMC-MXgTyvm)w~cbmsjsLNsXN%yW>3Y zn6?%SXl^aJ?bUD&8Z%RQk}E48Az6me~*e9vQK>G0EBa~JhlTHRKdr-R5XmHhMp@wEa` z185bpv}3Xf>J3brn0}8G{I*(Vo_%18NQe4~sln_Lt73ll4sv4X6U3lH(!M>qaq)@O zIGbD>+Qk!Xt5`|WP5gc!0Td1dA-55Vg}ld#$7_dMM{{P}k;l=mMKbRrpDS^`FQ8r0 zE>kLbY2a&_;V3WJ`A*n_jxU(Q^yt1X&W5v;WKGt;EK7(LHMLjW_L-yIZ#D`1m0zL4 zIUu~cJGT=EX>I`sWyzJqpWT?vsi0}_%Xop^_yBmHi{ zw)f?Gr0%W`qG*$fOFzyP^j*SwUqOShL7Io-Cdt~nT3R``H*@}O zUjNJRJ8Pgf*YF^ks5vTPy(tDA8LpN$D1e`5{Smr+?bX|q{OrFj-#VO`3$f%yP`IY= zn^LfN6kO}r@O}>ns=ZpdtXQ|d=aYUJ4lLDIn?o;B@LwDHQct0WHa1-@EA@hL`9)Vt zZc>(ujC-K?^XfjA8`)Yv7!eQ}WvTk;g6}AZi=g*QU6=xvb3H>Mj*KxAV$8J1f-@wGFX&ZXrk{SiA3Y!nf)PUVtPb$)Md3viB=HkyeVaLz z@Ub~i%+i@t`-P4B16s*I-ZXRMp8I3rP^m$ zI;%~ysPtymy8k)t#(a;AiwONa%B;7u)$4QOMzAzR4I1|jADO1o|0Ya+k8y0A_Jn+C zz(IN2SrHOWmWN9WvV#zz#pQRJ17}86P#%Ra%489-07@9|eBE`PMur@2o_w(q*`jFY zG?j!{bYa4Vfx!5IY`)MNOqs&DZ!?Y3Z0*h1T@pV6uhHuo=Wnl)^b=8@4XOFoiS&*- ziO*_rXvT?Uw}o1HP4nN5hqp$%QYL0!25p!X;~0S~8CoWo*U`|NC>}X`G>cs9tuN_o zn5$H5wW;0YqTjU&!#GNu!kcYl`&raiq4D&&JDjNwu(&&%N;duyM*cyKvKsaU1jHWn z-(I=wKfm(->Lhb<0vOqnnOZtK7`d2O{1pfacEUy`*5*$3u6CxX7Joc9{g)oIzpb6k z0Nw{tkp}~ue&BQ?6wC2wTFg_+jx z5eo-v>5KXt$TzpufJVo_r;_5^m}BKLaQ|Mp_3?CK4$`b>MioNy8O##?_{zIWu@y6* zL`87;sIZhC27dKCsrc9mvw9HvIN;kl7${Gx47S2+k5~=k%hSwh)&9b3*C=f@C;q6bXwNj3c z{@5e~kG9aw1+!-D;ftqHGvY9cj^|V=*H~z%n>{ZY(IYZzRvp3MmKVWr8!OU3!dTk7C z!t}f7Wi2_l7~_zotzpDswRQWT?^O=M9e?=q0l+%Vx$^vgC3vD6@k5}02T-oRV`WrW z)8v*B86RTX$1WV$8SP!*nV5=}pCcBwk6))jm4NF?M$>}*{Z5mw85ZM3#Gronf;)AH z$0J1-=gP99dgtS>HZuF2u_{$C5Rm(SwY2(BiwzQ=Xe&$rhj1CXX`zJB`Bz~WUaew>@cHN(VkH0o>!gIjL(njw68%>vq>?ZF$&LZ)% z4I~(gPsX~daD0?Q76#)P35Xn~`J!Ik0dlLD5aRb{Oexk~c0AKJUUi;|oaoTa=)k&23_=-Aau&Qe_{mbc?lkX=-m?p)iN(ZCQo(LJmI^-?eYQ&5(gJeV zN`cr^6^!k2PT9CT_(_-y82wb zB(9XE@w9P%RYjNd7;A*^^6!`KziZ-g_SZ}&NuNh0bV*X8d^d=hQ{+utxdFo%T8(`O zt@5V`PUMjebKy7~f=+)roiYIcNDvF-T;8Dy8xE4e?WXhGtm( z*S$?q7N#6eC8j zRS4RD1lw0$q2Tv~>26gmtN0j9p0MG2P~jBTaHY*y%|!(Ojt!owFVmz54b04J6{}mM zxfqCG-rX}VZ4CukR4>0eLH286l8nMBEz!h`)h%xdmmCSc;-`5IdbdFL>t*E0xxk2k zKLWvEtdaQ~*QluB5h_F5`X!cnp5#y`3SeF@+0qnmVAuhhbf2JtD=y34#QtO@SGR+n_u#suJ8v*_mLVKQzq77%z!^HihXb0wPw zKU9_U)7Z)e+OM6N9k9so5``99r?99mOJ9`}v)-c?+I@`W{8EG3niC)CUT zWj--3oj*H9y!)b6!qELrkn8dxWddG?Jpmm@91Q21%@C$BOA@Am0oq=@Xl2Tciy4SfZ_3 z86)M-lhoH~6u;^0NmfJ`)I32|s2>I{K+sDPMuEY!%9eo$-$qY!ac{0V?b zPnm+GuKDVV6TLksx((|!*eS>7#m!e#Toh<%dZs~yxJzYgs-9@uHtbS#%dlLZ2R9~0 zjSyp`*bj1PT(u_emJB^I8GR;Si-~lGCjP=J^JWDIm7x$GZhl5Zg$I~G)q zzC_3$&uUlrY34X+4q5X9Ls?@HFS!Z>fqGhLmvJ|x0HPS8L72EngecNZ{rAsDygidO zRToi(qex*jXwrj2ZX*Mc6jK#8o~yw_wGK`6O{X%RNElh^j3N(BNVns#C#W;eV{ zKi%;rzBOlmzz7VRUXClW`AOd>C|!tFz9ybJ%+CVD<6nE^IKOr@pidX50zI(tJs0uZ zi~2kuR?DxQbPdJju@CnX(S`yq=c}dcA0OL2A8~OGuNAR~RY#p}Xp*;9^4y5uiUhNc zrfct_jR-mD)MUV$s?X&L-DJLFbw_Q*`Mv3-VOl$M_B1)pWiMpSCwg<6wZX(m(PoTC z*1Ov}0Na zc+j>(h{&=0_+4nOnVk{vnX_%X@MO}FH5mOZ8l%s>EF;N0&how{!-(9FpSL)ptY=hL zXI6=R?IZYx>O*xgSb(%etWwA>8kMy0hyxQ9P(|y=kR8w7{Dpb|&bY5nAc;jd5JI*Ql6G%q#=v7ca%Yq#4`}Tq92_ol z#QjJ|NC0qh(W)%6+8ChJT~-Rd9HBkoVvl!|8_Qa0?fo`I(<;|csJ*ooUrjY~*geFH zGAM)at`lC+U~>hNd9Ns$coL1XJqU^zsVuja6m}NRG5xtYD6P`RnZ-`=`<{u}J@VxZO25-YVs#nSCJ&wQaMo%B#|PDrrB#+Hr;|z@ z`Bo-|wlbfb4T&yn0W;1vI{WqgjI{D?e7%tzS08+p>R5pe*9c4bD9T_Dx1GM9him6^ zK5@ZtI09C9x1Lkdk6JHD)+p|}M3h=&W5tJZA(#v{`YqEZXUH38dH$i*GfPU27q(vv z2ELn<)P>p4{K|@Z8M>HRJqAYOR0WBg<>xArogxLNbBMkxDZ5ng?0NruK-|j89WiSS z%$F<>xfzX>tDM z%MNF?zePt-(#eV!HqKYsAU(Q54QPhsc0(vl%f(sR^{(bSPEnsD7Kw_JmWR0Pe26tQ z=r0xjPK5>Y?O8+(#n!^Upv}?UMZyJv-~>A5HcIpqr&M)VTz=6bVTl0YJbC8=JyO6r z9x8gaeWmElG*=DVWjstEe@wmuuMsvi;)b5_ot&(gUR`+O@Nk60VvA+6PV1YEyqQa~ zA%p!+?|CY#_;<5k4RY$;{e!RI7{{a0xXRY-2PY^SEC65LlkA?eH0&WmJF|(Jjx-Oh z>Hxlo)G8BVSvkTv^G;jJDtAWyX+M!q#`tCnTh5GnW$_$pi1}7ViO5jpxtT`01&6~DtWLZxSWC}^cY4#I%9x>_|8goVr{&O`1#AMpeH zv?+u)oe-QS(QjL*y5#7JD=+9IG2@lOs399t@#0|#t^~M0jZnrBO2o2;kKJH@k7n7< z$fY={Sg*~6@+xgNkLo!;m(GY68fH8H$h77}3=e4PV2Ky3^GkJ}-K?BvW}kLLxb=kL z$q`*MT!UgH8Q6L-&sHQTIhaIvV=plm6Y>bP_MWbqU)DBWq`-l(+4F)wtIfJwqiU6^ zNEzyT5#6O!B@5jkJBu|^JmnKE3J+5~TPD!xY?ATl<^LqGDt5h@*?zo_ z$jdJHy{~65%{VlMyPGp#Eo_#V4h0l8K<081^2X;zi4ZNx&rJY=L!n0eGo(CR0@d$TV(PR^sQXiK9lf%345 z0v&7xyvn8?LQD5{Riz8NL+X&5iYQXxnoPw5b2j7QBjN$KfX|tTCnd%WM@5IPq_DQ7 zOX5yafYq8d_9B#czDbJFM1Mz6np4mcrc0?9@PtBImTxS{-zibSa5f?SuAre=4>;$A z;hc~DFk5_Gez~`FbTd|bWA)5}^G;9WfZhGrHN6M8U4y$_qyGGs{U#ppr6uAa+YlNE zonu6D2=33XT!rMF3M#Mb%dS6!TeTafbn+>n+oMypjnALB)>%vBPP!T9PG9%R|MJeJ z!FZ?@K~b0NY8tfjc4wk-vwWP*uJxT^hw;eKQt@yKl)?QO_f6xP-@j@MI7Zt-k!s1z z^#WZCir^2izKCH1-DJ=^?ArqMHRqF8d+q4PUCd`)!MgqVolFTuHD6(dkzt!ZYHFHx z4Z6L1SYVpf={`ocGEb~|uihh>v$`P0R47S35}gjO*BJutQRpK&&MDIcvNGLJFN5rW z^Es1vDTK;By;foFvwFZ${J_o>wZZ%{)s7rHo7~`@;Qt1Mq8ddDi)E4RB;uaKBELe??!tg`_@r)p~Xe)xG?) zDI^G;fRNwqsYQL$&Qe0nIj<3M_%@%vl0G?-o>+H$A&7^^q}aQzL#a(K{*NLeP`YcA z7qnaA{BnOHcBOsxBY8b;Jz>4QnYNVNpoXzE-&w(2!|AG0+uB}9X@T+GXH{AV|COq& zM{l0y>BT{m%ac_m(kq<%qbtMjojCBhyI651=2Io-b2#SKUf^D2s?#M#}H<3&R<tkf6A*DdhSS388t#VJ8k$tOxupu|MxJ^DWQIZPD!q)ym z?w5OUXXD)M57^z$?Ib9D8sZYcJd~I>rO?)TG#(-Pq|SPt`ugs)=gG_W_o=Jzpe21q zEp)!Gan-&A;JS{sP}28>%gr2+cggAj?pJ4QSb>e>uj_8DOHE6-?Rip*;Qgw5VVFBW zMeA^Pi2h*ZC~x|M@#Kx2vc{>T8VyT{o89C$@d`Sn`G{`@jTd^kxZyI44XsDd>DDK6 zZI@?WQ?43VzdB(lqu@oH44Pa*{JFGJJxov&Mpz2Cg`0S|BUHfVPMAxYc7-I^Mb=Jk zn>6p#QdF?#;EUIUx8k^IOhx!H8Tv&>wMf>rGMSkJ>){i`$kT-%f{i&pPf5b)c7plH zPv5No$iX{f<7q3~D4yCS4gkvxqnpq7S&xJO#o2y&d`PLpyn?MhPqd?Jb_o1$7cyg1 z&_0D?)_g<_p;zrO86=^Ymb!*54VSG7u)i;?3Yj{fgC&^lgn+^M{n)x>@zpX4ry20( zGL1^mZH%+lDhOJ-eE_tGmOdt))$hwnAN=+$^Ihb?-Lvanrl|}$6yRV&q*j;}rGMSb#*tmf};Vg<_l9J}W zzPi8xJI@16w|XB2Z^1AC-#caLp=1ZG+%Lk-%*rpJeNA^XbTcIGr;J`gcFAKKLM||Q z*KBI8jux+)QADbUw8%bYlZfw>elo)w$%Bd4%VR76$X7jqPvi`Ob`VO z=^p^j!vR`c9nR96iFn77_&WX@Suy@TugOQts_ji9UAm_Zp z{mC^#Hr}i)7zhY1abXm;bg?yZP_+2t$v+~k^XDe$-}aAai@?Nz z0SIZ>XnY6g#92sb=#<@gn8ay8Ngb>;k&dv=v&$;d--WwjA7BL?YDqLNJzz=Ff?{Q} zM89)C^S|enm1VE!W#Ym}K1`(5ANd^leY{*XZ+(H!?{k>0fqkS~+MT3mZq=y?o-1n) zX70DWK5WGC4GUmCzVnIudb*xTt4lu>5soVsO04`afaN8#Ua^|2L_e|8p~Xrg|AVP- zT2H%Xz0C;o@GEZc&EOC~WWIbrK(+3?wXefroSj3qxJPczsnuFjR6+aFv|OLERL`xa zgX++R7!OjNtp865C;_7p)8vhhus={)z%h8j7^gVnwQFkjvm zO+q+K)Q0U=4L0?X<*VM$e9G=5oT>)QUs+1@gQEqZ_yjuW8Y9`y+6=cO97>fwe-W{| z?kPecD&{vm9>;Wte3At9k-cO2xg!e-HX;Q%8L7S}e-WUD0Ta3V<9y~WG26BbZ4g5G z$5YYZ*?iSTHQXM%$ftb0tnU7B(+0jv$nhmf zQ`3v!nO3Vn1$=GorK+gL?3iMxUDD3Oyux=$-chlGm&TmMYo5Gcnpf%SbEV@ zI6)yKsEtoE0cD$s<{X-3V+cYmEhC|HsJy{0F=<=Gv0i*v)hkvpX|sB_MxmusOe(=T zR0)r zLC~~bkutdgwpzh?E%u;;7-@BiydOQGQe12KOYwJBb?-_$kc&(wPk>PX2Uz1%;zAwm zZXGdU=a->-OnZk+Nd3Z78p*Li>DphjGFARm8#wO?PLq&6&l^XqtzD9*GG1~s^gIPT zIj26+8?ELZlquiCvvs#r3cla;bm!guU<~p-PT&(uv{zJSp4wmX4}->T5pj{t4LO9N zjO%Up?-UtGvf5d%KK3M8Tj*DKngIDsYWIVF9pzrj%k=Ara#Fq&cG94URPrm>Ya`r% zqhfvTGCww8J%=i42Af;+KM^uK%UZ!oCFpS3wCUIZPod6;WexY_oIxFyQ zapXlc&AE{Xo+UxEekW;)td)S?fQjvFb3%T_10G+UytXFq=%fsn!Pn0EQF*3V}0Iny{xq39yc9?s+K_~F(A!};DH5>tO~f(L^tO~62afPDE^5h})iOt*i@0V@ABCi`m) zF#Sg-=_v&?CFGCIrVWO|U}faz9Y*j52qS+FW@NMq)bc_oA~|@dyH)<{nF|Kbt44GA z58`ZIY2H{1W9ZGd{K)!oR2)9TI#wQ5p1TW z`qPL*J0?B}ugVMI{_Vwz1 zVmsn<5pfb#M9slF^md%@i>LRfWE^mM(X---Braqa)+(iqW7p?z1+ldh6*A5vw<2kG zXh%m9*1K<}liEg%v(c_MqfNJqxRg1mb?Wie!;JiErO1Z#iTC2np$L)-T}6-59s$-U zRmtN$eX^LOSa?4zl8NynhMDHShc)HGB?cxNQmF<~Jf7-GZC(%PA7cT_XTLVu6%(uK zrfr_Qh`WgnUP;lHHhB8l11IdJ)#Pf)`xk8nAA@PUb*+WADE3BQ1e`U=<3|;>WPzEa za@fi>r5~wvAi=U!q5=lyQ1CHFM;EF5?8^JhD0AP)EJuAbtGRRoaHGGG_`3 z0`mT^@>JjcM-i=N_otP#s{LR0{?Rb>zv9{^WmdQ}^zHg9=xSb#U?$dKn$56fQSDwnLePOU zZ=ueTGj+re*|!s2j>VKw>W@F_n^9C~ojBiQIHI8%2=%QBpi967^bdy@Yiu<5+7=jD z-7HM|D8^+YLkgqa`UHwKi(6KRYpf<-nC659s|VY{9PojA;j;K~(hnMy9(g}#!RA>( zCxWEgN2tgygB>yLb7lVGs7RE<6&M?h8*XYBY05Mgrs7B+ChRDBms(fSmt{0Og8x3a z@5U@f6TlKOA@YIL?-KH-N&1?}x;Nh)go?z?{#UU38AT+M+gA_tgj$bo%T>GN+l6Dl zhK*@VRDf}5F&nS=bvj8i6-*nifwFMN2ZFeUP2cWu%*xI1G+hE~`mN4dDc+G(+v?W?+ z-EGehMX}iER^#-)VebfP&tRw{4?*?AM}?B-3EJ_v#zDW>FH)AYkJhjfsPT67@af~l z@Me!^a=Q%WuipjVSVRbzFnUtF4o%*Sa)f++-lyGT{k7k|NAax*>zjWDqNp1-Y)*p( z)U8P>30uZErRHmlu)9GwsQGGa-S}6Q7!qtrBeKBnlT8c+Ec4atOM|4q6*&K>uENR{ zg!cLNd1xLIi*U(81k_%pB}MJ72q;@@Ig~3AED8M9VpPiR>c&VnFr&zVS~VmS+XX@P zB&EbR?Xzjv^5dKO@dloieR`=oQ-I}1%;=reoQa{?1*Ma~>@`~avkEfDcATH|uoO!1 z2y`bGc{kBy@%|fEs}rpJXqZ|LU7E@)3dH?XP&u@m4sd`6C`d z{xu$1|1lmF0e?9@{O@clVsGnUWM^q__fOx_Rb^CgC6GVNerqo}(TUoCAx6j5qCnRF z?4TDmzJsmD|+R>FJFS3cRm*fk0#kxH^M zYb)-)td`h%SnK|Lf)j*r1%}ue+Cy@0S7N5$&f^(1+0>vC!EwepG#Yn)qd^bv>*r5Ccve{2bdU znsF)phQ9x)dwgix7uK%q5z3o<{P-JP zzC(>Uc2OMG1)mdnk>`_h*`r~#v1|<`*Bs{?xixxZu^aJ%J?5O42{CINL!q4di0W;y z&2UP&DV$k1^Gu^d%~v7Wv+Jevq!O246b{Yddf?6`c`=wyQ3#Jai>vF0F^*la;T})= zJPVqQqG~Mx=eo|$?7>;KW;7)(sO=MP?!(;tZN9t2zouLFt@%ri`t!LLK{~2B-E4Rl+obMm)M-QD)DD~ zms@y}`>aX)K)QHdww-A#`5BBBPOGLu;f(PTe^nGlyX89?U$yw~!^~ruhc#g{lEV=K z&@Z0~jJ07?3b`fZ)o}<_7Cr$rPvr|BJiX9aU}1!mNFjpe;|B?uT>>9;a4Y8$Z&xm# z%n05ET--=hQ(T4kz3(g+iPaoI(g?3d;LH|}?rm88B%mn^X*n;BKeU$p32rrt{b`5! zNqqO5Exy-7_ed1Ssu6QoU`S=Pl2Zw(OPnw}?j3&xEhs}*tPCjq_6ki%sFgE+P0gQA z%5MOnGO#y8a|`>3Q3gv2s{(64BTJhK+Ybv7Tqi8PQ~v$0$r}chRQ1*$6SuGbs#pFW zv_=18LUD02vU4`Gce4HeN2*57*8kETr=@}>g#6*<96|-Nx$BR^CIt9mk9q@5qB@w* zl=L+lIQc_{y?*`|om$t8&Krbw;lYie68}p+o%h!mWn|^XHNK67;fbYp-`9_4xF6KK zBo>FQs=^SA zyoD=Qr;?WnOsrUW^wzScTe2^n#$W;kX-qhRj=}&6i#ivpvQdg}9E^cvJNMbG*aa|B zA@qGa(yr##!aGwN06{EEH{ZS1G5xjU71~^<$TM2osdrwvMc5G&A}BZr;nfZoSI+>Z z)pIZgdA`tIsz%9{X$fISks#t7PUW-PGB)R27%(k;$_e!sE6ol3l?!g4tbWe;VPZUT z_$!puUPs}8*RKw!tzR;Gn06*MnE(#yJB|y$t)!rcq^yxEmPpWF#-1p3Y6|37)hWGdhC#LL5vf{leLH=!u zU0w@!B9lmYVjns|>sJzJ1R4*W-*d{naNSd#zk3e11EJ=wd3a}Yi>4Z^B6^}c7Q?}f zYEEdL+0N<5w~Hws`}EXER!M}*lx^u*Sf0Q7VR1VBic%q<9=`kbXn3ywf={s@pv+?7 zA#6R0>tM{RI&?AGRIbPHEJ(c-`lOU<;BW&-gj?PA62Xw5${7GRro8@wl`B5u+m*h3Ctp7ahkc-pp znNQk8W7GKpsiZ6FaN_HlywtW(g|){B_oz#Tc%XtOgYjV8F!Oj_?*o>(p1!d07meL3 znxXGn51<0>ET}3nL{Zi)T|tRM2vHe0&1`izt$*p5-f2IwZT?ZPd;hiP?LVBI{*QdQ zTLA2Y+>9)3{#+%IG5;f1St@#ePAd88>EAWO=|Z7HLp5vBP2oaIh_q=3tV$t~2|d!A z;NWe{M=zU(IQ$~I1raRndyxs>m40`LzZDG!?S82!* z`;I5Av%__0mtC(Uv__@Vz4parw=O@8P2eAGN$*Vknqs+s$E6Er>hBr+p(Kh$BD|P| zACXJ@O?mmy)oxYSF1=c2O?{;pCwG2C8}M6`%CMwj-ac_x);KU$*}vRd4XwW1*A8U?_5F% zY33ejR?;8NSk)+%s`^plu$K7rSb$?rOxMv{&*0ZgY3l{A&`SgrID`mwSltrxfu0f! zZ9o9AXG`(fy%n&?nt76Q{cMiKh6;~oowecXOLYtiJ*KiZr6uT5i_3mUnabU8u+k|#N>?n)+4R?yv>93d$9#=v}~f1ip1!tKx#pt zctP-pcrG>&$NUG~WVCYMh;sX0Viu*nB7T?+-8)7YtJw)0Ag-=MS{}{-2=5@=s`~+Wskr?f0Pl z;za)-xGyI*fVP&WOHD!*stQ_LoA+e^$!E0*imvlAuH8Cn>xupY^jpac67Xq;5Rh3( z?q8D1)|#=Bw&Lyfke2p(b9cr8;>l~4ic;0M2gxA7xlMpXH}!xkZ`fG_P#f9!oeb#O ztOw+d2KSFg+sdasQ(^VbDNiEc5m&yOZJ@H$@Qvb^51bv)7MA6U#Qvb zkbNkJ8~QnB8$E3qDg|MS|ALAn=|e`TJ6W^=cDWQaOl7P)wX8R0r#xOr3z`Sbrd5&| zPrF)3GLgxXqlj^cRJ1hJYH8}|8y)i}7@<;QIqC``WuczKY)zoJ7b1?3mP8y!sDP$m z74d+C8vh`+Q*YTz^eh}=^5S1Q9Uz7uW)2GKj7Gion%$ zX`5xKP>c-+iq*4>nPQM!v-BsYUFeIjheP_cqoaaNhC_f4qMsk^d4s}M_Svfz{xTX} zrR@kg3?RZQ1^Rb5EMZ#5@Iz_yl-6Gg+s@TX6;#NHFB-)=ZM-v1N#HxlQ)t=;`Et*j zSi6Yb$dPaeDt{w1@2H)t<${)CXgTWU)SLjl?UIPK5@#Qh@h@N5F-$EwiNTbbn}Zmk z%ZLhbuhl2x@-ffzOf8cUM1B_-_fRP+?d|&tE|#>xo@hRx#S>1y%HIGzZD z9xg+IiaScrQC?ykf_-~k5vn&6Wcooz_pg|S90D5xluV#2<}__%*&XWuixUy*5bQmvFlOocLKO<`cr-d1g9Fk&&y3 z%l4OeFIF~sncX(Dn~$8B1>uTXvaX5VTk)_>fY?@Nj66fi$LChw$Lt4a)&UZCWIeUkXXBBX*}{_ zDdq6_N6wYX}Rv&HbTVGKFEL5H}qI zHL*4k3t_g>BxxGIzcE+kgEeD$$)|c+L3Q+j$wOH-iif7>Pzzx!Nz0*02Vr5|l&TeB zPwa{46>G4v=|xx$-R#sPo0;q^-{j`TDW=D6eZ|{50{&Bvw_dVzD zeCEGdV^r0wQKL})14HnmQuB_#B)_ZLK9lTHJ9?f$e@M3V_v~~4(ym8~iDg-Cd83&( zh^mbiu)c}oRB9HikUuHy?j-gIW~ z4}AyU;ud?r0;)K(Tuvh5Eyt0!-sWl|e`rixJ>Z5sQ7X7^hipvf=|Az>c1-&8ukm?= zy>;h*4?3KamwNi^8VdYCr<3o#x+gjZ+ zH)^r8wZJH*Dc@^7h{~&;n;WP=ONo1xFIT&IU_k8a#ekTfo0mVpo8fGBm2gIGPz}pn*N2~0s-JMO)Q7ca>lduckj8CG z(M@roB#ACMzjabrkc@0FObwvU zy4-YNcEmOgubQaP(TX;9AF)q4{dJQmGsDT-Z;$>nj|U4jYD zmmIbSbW%nIB@PENIYD`14?W|rx^sj$V#riZqOAJ6h98GcPZB-ALL@NHlbpYrKy^cP zVFUdEVJUOo5HzHMS+!n9YsC*lECX}HH#=IX8JmaNJlOW*5qAj(HJ#FEACwD^sj*>@ zkRV6!Kb9- zs>Y(t5Bll693}u>;uNw&Rv zA*m4}6xh&>&$aoK@~bUH!e zTyrVDK}Ii$ZP%&_{v4fI>h7`on5k3WDV+i$qEwwLMudaDt z7KQZy9CTV*BhY}MMszhOFM=KMA8DWuU;nB(9y-!x+QC6U2L5pX&i4O(!w}|&-^&!P$2izSJ?5}|HJ?r6rn--73_f4iuR&6kEYqLAJrgN`3i2NkYdTOB z#MW-u6F>8NYsFQsT1tx4K&VVG=orCoYbbs@^qu3sYSCAuL6*7d#Km7#F(5kM6ABS& z5wqsH{6!eUaEFnG8xxgWTU;tbOAZLD1-I`rYkS+i!AOLcR`du)?Yp5eVSOIxg4K%ikW<-%Q94d7IvoyMX?FOfRb%jAu z2wHw9wFo{{`Vf4!vfMs9q$<8QGEn64D+VNiO#u_;Ua73wQiXN$_!!bXY_FHHJ=vzmJUiqd6I-qALCMF+vggoSf_28sXPJbLe++n{FWqiR(CTMekd53oFX} z#fbl2isqIWIj&hlSm#a0g$3%)!CQ7(uH=_TTcf*mMR794(mgYRJ-HHMfC7IJqW9+J zw*O9doSnxlG2{fF^{MK^$$D(bI`pm6aqZX=+w|0ff|*rdFc&M(FHdgWVyZ>brNsU? z$tO(FhI+IbWd~*wgbeXR#nmqRN$_*MYSTmg(&ejJ{ zA231w^$r7?erS}}J5<5O*{sk>-4Ey?{-Xg-e|3E~Gw-pTfs@FPQFNDg4afE+arJw-S8j5A)3=w{`e4g-m-Vq~U z;L=qNGjQ-6(jb1gH?2wGsh};m(+Be8lz;+oV+U$=i-~FX-}~DCs86K+pYg@N8+2*DYT_=Ve{M-h ziHtD8W5EgIF=D})(e*l9V9D9vK!WZWWu(sx5DXAO7Gd)^hHSdQ$hR)&&--r&oW)&Q z>nFM>#Ki_)5H8NYSx8huj9hXvId)#ZU3Fh?z2$y>=;~G! zuSv`9zgFdRRbp3mBxpNH2r~g*yw1ih03Fp7jTH&fJ?#zo#h3LFn59?;Ywbku@b=h~ z9=BJxdiwKNJo{jeEr?5H$s93mTMcYLg)KI(tvL$Ta(7u(&26F`B+;~^sfyFdX!D~O zbnwM=4RixX}kCg@PEkqT%Y zWIJJ~SeBPd_Z-&j4Ex?%GuuY{a!5ngYCPcO%SDN`r8{YReU5C+VN6qX79=G{D<=!b z4AI%C_WT$bC!6n}io1x?cVLq`ru|ma@%<{DbaQeWJ8g&oU?2UV!`L=8-y&%qV2=#Q zJrc&VP1M0Jx=5VD9qy;j2os4POwq zYXc_noMK1)3@)@Sh4kTex8IS!jtcL&_r3jQCYXqJ4-0yq4w5?iOozGHqVY^7wf_JQ zSnl-^PYdfEehlOaCKHwNEhxTku}+9ObL={WQEG}cQWHCefGoba3hgp(yU1Hr>?09F zO2hieKuSJbKjuo;&-JG}mX^K^9yUj4X~K+cuBLP;rzt+$9YeaYG94+?KXo_9|KeHY z3M5%{!t=v}UydyaUa|rqZ}&jBN+iUN+j+&9m90EZeX|5fPzV#H`<1NPK0*P>lPYV> zARA-U?6B3&zFEXV0;IM=7u>HtXrWe>I(W(>q5FPuRTqjlywlC0qu$5t4yxh1f`W$vFKI|OT!?;A;)ZVhE@NuK4E9uL zq>i#nIV##{iQ5vF^NXEv8pIay^Mj8*i)iBMUwI4788@b;35DY|mM)32>Najq5D~7m zC!wB|+0ue_7l-4eGztDxGM2O`oU3yS9i*6^k%}1U(UQ8QojdHGsxyQck!QB%60(n9 zo4FT+AZz!gASR5E_S8{)6_sC;9!F?ICy3HiQe z7_mkP;d0b9)N7hLAT{8^@ZA{|eHw$(1s6ypbHBJ}NEM8dV}FhzW07bqx+c;q^`gZ! zH~4v~iS>!fj@!^s-sY!`l@aw!GO4KF$tV`#u4T&ftEzq2(dL!dS}QbjH18cg7WXsZar(6JOgm#O;=l` za?Ya>{&MM$$2Tl{780zIi9?*d60-?{RS}&Yca}_c2=KvK@lnX)XmPJeqF5e}lLPdu zEzU*N%h2g{AXwM^`Hkb`RsMKU$OyFk?p;LXnrBnL(s7a>h#RVceA-q^ZdmZ zFcSJa(Ur2~a7uzfG7ovHXs$lRerMI{2^+Tf@lAACqGdESSZ*G%8RC_(>WZDEU@;V)7CNc5C`aVnZBHG1I|XyGeW(1{+H1ho;=Ta}6bSfB6R%h=hFsd6W<_QO zW5hX>?>ts_nOZA@Y8jv4!h<72xNWC1vEGs428<2~E+WPIX7V8ZWUGpZuUsftLMXv) zLfx`#9*ghT0Sfj%o*tCm;Qk=8IL^ebgYUXN{666(>#F7KN8f_xVoke|EoC&uaa8j% z$8aU6P%^}t$yM4St0mLBc~gP#N~2Y3sKdV}hl7v@S>`)2T(nVS#EqjA?;|quK^;T6 zg$}ziUcLQ1jwJZ9{ci3U(SV64lf0J=W~PWp;M4TGrr00z+PmrA?d4m=c;P0nki0;T zdZ#+js5!N+Qfx&$L9yaulkpO?gN)O3QQ9JyZx()&-Jq~dERK25xq>Ih zC;GP2Zi)8SM|Y~P>iyMOStRs3jje!kPTa+Z#MqB~nAWVKa>fxql*f-ebZi@`Az6Du znc<8KBy^l0m!V$Y@7nPtND0)1Q_jviBkkc^we*09eKh;-Jv%dnCV&xCdxtzi)MeDv78KsKixnPsY~1I+s);~CtnWvE<$fvDf2t;g z{%6&MtQ(nwqnovbx1xi*v9-g0W9XEls{1e9q6J(xDMUh6IF zpWb=v&ffg>MziN8m_PlFx0vC#DE>?Xl7DL!?NP&(qerhMrZO@ddosA+K8Dk3K`fXh z)01M`&#ff!2w*j>=9{|!)sx4m6*A4O*jkl5)p+!taU2Vo@ixBO&0_5QsG!IiQS6fI zDj86d9n>i;dgOMERA+}3>4N9$_GOW&v3CdY44gU6`?S-Eg}TgNOvy|=v;5>vK2JaOlCFT#CRcE!eb1l>O%=#JZ`FLHfNPibrt z63>GvpgzB`lBjxE{EU$kStr|{QedaM-b3VuS=_LM``B>UqF|!yq6o9;^vc_F$hHyL zOcFd}u3nEHSMN>mrjQa(M`hkF+j7GfwanhMs-&}2o%lc|N>4*U{ZraBlXGK~{w^*- z=9TvOI7R0{bE>q_?y>%enke%v{DAkN=W+Nid~>vr_-AE9=hTH?qhO%_2Le&pF#P_UXRF`- z{f9q+(>|n#Cf|Myw0feAFZ+W*CKpz4<9Ox9W80cX8eC_A)GP;}=`Lo2M@u70ui`OB z=mrINGSHvv$XC9xX|uXnQC5)9Gk5h~pOTZYVdUjfvt=5{ft3|YI)&s*lfu?W?M9R; z_Dvd)AJ`g0I>_WwafyH^bL~yEaZD&yZ}Q%I^-Ln#3hjTJhwGd5Gx&8&kY({aObB!JrD7)d* zAD3Kd?{+g0so(;a4@Y}KwwlXMg2pJ%da|~w)ZmdG&6S|^$f+Ks&5L*8DkauHm*zqe z9O34hd11F6B~>zQO<4X`Z^yRWL`5JNOPT515a1W-zOuwE0YP|QP{tb`!}KFQENzxWn|)=wSv0~Mf7nG!NTuX4kH zl)Iy&^{_Nr@&w)OKg9^sY5jYo`#XV@!OcJiI=nudN<^_tJJHX5so~5GjSaPL4X&2A zx7MZ~==v!ct2bLQ)f&kO<_VhW<>ba3r2!ryG=PIlLzqYtgSC?KE)|mW`?jT@OOUa| z9A_Z(?&%bt&AK`X1Wh4imx-LRe1(mn_unHpGZ@>HM30eu3<42Y8_853-5>T)POW|D z(}KV{WC>3_&F`JZI;#ezRimsPzl(XJIv&8!2EMoo+*Yo+L5Fjd9kg0w$fSFRK!$;w9r|1 zKXzzy`)}an`&utd{{Jc$gd1dOf9mhjPAzB zgo#3>a0!jgCNo_i-WuCz{nDY4)qYPm@10oSwM>!BMh;jgIOgT4ONSiHyqeQ~yx}|L zxAA&=Kkf;FTZf&Bx4re;%(!Nc3~djk;;v`^n~#h^^Fh~sm%Aqo+;oIZOmn5?2H^s; z8Bldj1`nvRYkut9ppM%V>QJE?t&3+&p1$2S)1rIp3)+nDzsfF!1S{V^eI?)Y`$^M_*#&p*TSbl>B+f!eXR2o=K*!xLk#gNBW`w zL*`)Ylo}3p_tKMVWsio7ZY-W&~iNKuO`_2GF1+0?F@Lc9Wk zm@T;A$F*y4_tya!*?IEmB;i?f8R;?eu(2_0{H1bTX80P%Z_Z@U$1t0usR*$TnnhbU z+j9HRrg_k=Xd)i*K=J7LE|EYIlia;0CIyM+hgd3v54%iY2IAm6>FpsXH(J;%`QC~(F3)04Spc@Dbqh%$ngel^dOvx;rWB`YsImyh9}8yB zpEapWakgkC`LHEU_?#6|G|{vhY9my1GzVyVu(JO#63$R#HT3u^zBT_bF);r(@oi>q z>S$(eCi1t>rR%@dQlzNaE8r1c(S!l4m-|Hqkiz(&=f=1vllY$?I547`uAtY*Ewk zisbdk@x-O?xxLGesjns+k@vEG9^zil9F2VRD=NP^(bB62(;qYtUWbKNV2gTqmBBHCeEdYSoim$ z0aZ31*E}Ro0K?=#F2#D2VGtLcK7vkoGCh9n6VhFhp$;sr9;b8(NLGpx=5Z$4 z#iZV4USw2J60DVH>xtc9v`{}O&&P;|YIeZjA1s#gAa6ZcWiV|(D07gso~0BVy0YQ< z9Y@SGS4ELC7-4Z;I9^PEpQW_l1QWkr?wC*%{q#N?$UK=x0NDIlrvV2955*Z_$)`98tb(65ypX>-%-^FS+*jm3&MDYS$i)g9Q#| z&^_y;y^IT(zt_6QOx@m?eUj+VG)L^jC`6D8zbTF`(y;0Y3TClQPs^EZ5v6boj^o%~ z)V~hL!I;iLn=WCOaJ0KD{yK*gpjRWw{)3cPHCk51TbenxR-zGJ+M#A5c)}6#{N0i3 zAfvid{tC}U5%4t9e&hbD=^`@oOx7^b_B=0#5(mLd*BRdn&6=PsXcI+Q)9X&B(B%@#MC6QVhi$^G1pm*##{qqWat2XUPW1rEv z`Q;lNqZ2E~T&-r{;8-hF=qS8h(gZR)MZ-v;Q0|SI7(U#G_HjUHt0pelkpxy)a18s=zK?64ENo^yh=E~n7#n&i+ zSG}=xtmhMS2~E<`((>yMA9d{VNgVb`O~us`5Ga`;bJw=NYrjOk(n^k};Lq=z79DeZ zkEZx*x4ECQ3%_2sDf2*21_ZG()%gX=bvv@B#{qVO-v{Xqs$P^*pZtvA=fu4=Vvo)2 zX#yE^Qu@twTi&ErHGS4N2&I@G(4g$_ar}63i0h*W-AYZt<)a<%*tD`_qYa}VIQYz+SZA!o0_gRoW!gYm^50yNPn?Ctkr$5Nd!u9& zE-lI!xc7i*c=m-ZHA3(1;8R1;3F-V+l|zLq<4WavG$Y(D#+F|9eIpQnmShLHK}MRT z5aP;A>@;@yRx{kJms1f2O2q@TW#Cn|U1Aabx!YP+5ldt`G~yF0-`<+9vj;_uO{$5N z3q$S#UGRV^o*$Rgo|)+BZYuM|dVgKD-1lGj_#}HLW>#+M**W91n+?{FdJ422eEwcP zcdcVC5Q^;;MNnatOVAr0;!A9yE)+59L)AWvq{R?8r+6UV@3~r#_CG-04ErVC_IaG39QOWuGoV&yL4e=jC6GT1z+3)Zn#BQQPzIE zIt!XH{Oaub!G;+Rvx5!qYLhrerk?m*YGLW4PM$_=L<93?X0{N=@Qpf0eQsVf*@+ca zKf362@3~i3DbZtoD}9^FZR+vS5rHwXE!t5@{%Xncu0f&{I@<-K6&(>} z#U#_fO@6itp@9SsTQT`c`S7Obkx%=n3_rO+$O%hrOU|GaZmJ!6QhK$A6?jNYHakjB zvjWznKWMAB-imFrEQGB_$4#os!c8$Tp`kQy@h-e6pI&F!N4OBT%4ToQgT>qBQml`L z1ECzRQ4{`vTJ)>&MZAxZEARcU-c8;XqI&(MC-5=zxAUP)S-Yy0rKGm2iDjM2Uub`V z)!}dQ(cG>?D;iT(SBbxV`nuPFnB{%J%yLLM3pZ$=JAH;jD3tf!0J~T~u%?`S%n2yZ zADtgr)BZYh-%U2OX;NH3ZH_7{`TVnMF)Eq-CAIf{wz#+qp@N6R|7k-#b8xFEy;pZI zBBVSP=>&-qL>$kJ86nZ>?F$5(J%cVHN z-7tKClM>5K?Ebf(tZ)}pFwd@#?Eb52SM0U&q=|^X3!E)0ui8CKv@+D-D{^EcT`2PI zcbA_}TY#}voy0w|`%vuHtP-vHGZV~4gr2(IY+dC^k{t3*w)mf|UWx;bH@t#1tazJT zW&H2SN5gOM!MpN4QhKqZ;$a=`lLZE%%^t4by9`-Bl?HfUNYP`v;4svGwU2vwVwwXue>RxjD-DWcC)K~FH#jB5uay)#mf|4O{dVr=X8i@i-`N?1;cnh z6&S|TME}0SMy_%1B;2@wO zVM2}y(5cF5GJ1L{%zfR{YM-ocr+S_oPU_PqMcYktT<&V1K!X}uo;#i@0!C1~98@Gx z-*^xBsx(TY^>#~|JR!p5R|9sbkmh+sz}{h}FX;#f&-&|;WiAiWRg*pmOp09vkXQQ! zVoF9WfxO?$8Uo0D3iE^0q%NNQB3p-PQg5fUl(hPcR!-cWY_Ad=EH8#@o1u zFr42wuC^MuZIs1%@Tqf}RE&QJc7)q|Dsd_{{fM)-e-iL0$X!y@^Zl_ou2!i^q14-Q(N*_a2;kfCb($JyEX3I5O-3e!B)!JW98<(P@RqSyU_{!eM8u z@rPo3fm=Ac;GKOz#6b9&KM?h`+c;%B@{Et`x1M`<&f%mj%jG0DqGphsMGQ7s{w1<& zo7smJg4>IJjL;ieg2tR?l;}AOFvA?3-2{c#`VT3Tr1HKDC8SMv_X*~Fye;9bef1Fi zX>9&2KaPV@r(_9dRm?!gzLhvQg!`JQZYZL;`V4r44k2o0$T+yFJ`MiFO#7uwaXP!A z&xdZ`9@TTg!Voi?+Wd2s-0z-&pj}-J-DM>*f92SKM&Z_$Y~}3rv7#uswoo6zGG%A2 z*Rh|rZBM6uc+!l~)75m#TOYreVPS94giR*n?dTe)Hy%dBlEF%*mq$K)Yz}Q&pDONm zo@+A9U4D|S=BD71L(6W_ZK{G^v-^Fyepos_ZD~nkdYtp5Aknv6qgM6_KW<0|;|5=n zaaviX&&D~&4pE?)*bw9^E(MM>m=ZA1TtLtBT{Aj1WU0)68RHBZ9WnWo%7l&F6?S({1+kaAKEPa1AQS-_PE?x1*>vuq|+Nw^`Oj*!>+k=MHMlscWcg ztsT52hGA|6C6CIU)dv){~Kl_{p*Dy7XnR7PL z(UjBt1pw^<%A&2x_ziXdw(7HY4M=P~CMG}>yfh_^tYqr$kS(n&v1D^MiCkOfKp@Tw zg6N+MRp#{CjuzvEoplY?wrE=GuBdOooYtQuOrv%8UxC}Z^Hkm7CEw+Y0X0s89`?;+ zN;KWb9Pc2@PMbmmoLGA{+o@{%=j%2n9#|FJ){T?0PFNKO_;FhVB2Mp2nxQ87FyzjUmAf<~PMn#^3-SrT0^Rlxjt{iFOhT1qm>}=T{mva( zkS!#{69m8JxZRz@&B_bQ^li2nR$aeO?@eJm+i$rIaPIayl^b`Oke+aaZnqY3UZ#%w zT7NR#NmoV7IX?bY94My@s=TNv>kMmYqV8<&lQN^qea@Y1J?@W|XS|`WcL*CaKdYgA z&jc2u9b}!T+I0)XncFOJ`E0T(Fmg(-Sr%O;;62Shh%kIWG0-0kS%1L2UIzdN`uDEe z{-9ldhy;AkoA>F)jM7FUt+767lb%G9(cUO1V^4G)$m!#6s45V8L(6d!+$-A!y_6Oy zvic&iv#qXu(4hBAAPXzcXbM}1SXX5JI@dg2_J@>%;C0xtz#7%p`PyO=-> zudt_KrHqh0socT=GJ0`)nz!Va5@N}e2jB#WpY*4)A*`*)m4$d8smk1oTebUOeo`a? zYmiAVSb27&q{_){w9J&ZHW?Bnc^P3CxgwJ7B}#22+VV{DiWNm|E(%ell?oNAQP3U=-<_TNW3o zq@bk)CM@$E&Q2L;x6z2dGAq7{mp@$8Fd)cESIkVwDJl{gKD!|Xetx_Wf=Jwu1HCup zs6lv&3|rjzF0p-J{aHNQPr#1~$%8Q^{@ML}xgz&pdK5v95;a z)=P5cV+J&+^RyUov~@YZC#2t501JapN!6@}G9B#N#w4(PY$4>+?p(}`O>7Y zTf|)+s-SnUfTI^Bshhc!=XW^HMIn?)yDoIygh8`7G7^!iSonI8zrJ4@i_P@SXp}uh z@2aSRh|NS;LBqzfZt%VT(08Zb-MbE{9NGs_V0syL6K%alvWYPj1>}h-Vr`yOhn*o^ zfhZ(QQ24>@z>Aid*n@xEggIjzWBEOmFqrY-mJkl!>yh453yx=S)s^IKF3o|yx=(R@+E0& zMU5$wF=RT6qLDUiIGjWb5Vy~{Qu!dDkGI3Vt?UyZ$Igr`H;(g(F5?##k9iQ!aqoPS zZ?UJI<{{TkiZ_A*H&O|XB)K_ z1W={&Y{?uG^=pk)nypitUEOCt&ehRT*#8+R{%&X{0WysRIM-1t7F6sQ^!rJZZI9mA zVm;|(+v$>^0o)mph#!i+NH1#ZmKa>L?-0t5?lE@iw3;n(?AMzo)38WAPHii`SEpgS z6V+s_#$B^x{#~I>aM&uL?|RV-!G*S6l77XesTkLB+B`~h{Z<}YV0`XPZ=URypTxVr z7={Au{oEXjDvhnCH@&}jf@k#lQIus%Jh{g8YKSwY#Z3`cM!;=S@|mZu?t8_lPKrB< ztyj>K!5pQb;reDlW{#D~p0F=s1#VLt_AwXKW|Xe7A{nYEtkwfs&SA$>>3fobt#A)A zTV9NsrcjBEgO207KYK%4Ci?r=IeSOie&@+L@HCCH}nr{$m0Ge}DOCoG=QIj43kw57{Bt7AYJtE-D9aPw=vn;Y+Rcz5ksKMeX#&WC2+t=gs9`gqS0kd5N8;^`Vje>$0g$l$NbpQ*;puKpLJ z1i*c+Nr_plHDiioj)WPW=KhN0DZ+a)WS|&IAdrAoG;;4NNfA{~8*mtCtshBQE}tAL zAVrH1imv|bb`&pO1seq(#x91A2g#8?x9bXMqtp1dwI{3%&R3*lN#L}78>eG_yYM(p zVuouzd#L;Vp>xvos!@0z26rhD)lC)UnN_;2PtZ{+s8_ppf#RJvJ7{H~b8bt4N)5ld z)YY-t2vhBDsu|N%=PiNnP`aJR`%1p7A#biYovduOZds5iL)*9<$ZrnqG0(>v@2D;U zJjZ19y^oNMVJHWR9D-tX7s18d@QdI*-~M13ErqJ#&rHMTtGd^>Q;I#kCPCi7={?=` z_z2bd6P)U6WfB^zh5rM4qi+qQN7!hFMT^tv+-ts<)#?lK?_jZ?iRJGH1p(>%$6IFt z|2A0uKbr@0m;Y)6s`kGg|GS1mV_g+h6YDF7d=!AhE(SsRlZYfF9Iok6q>4T~SxN{l zoTSC4ftw6&)L~=uS96Q`A4a#5X$8XzQ(n`QrHs_we8i6|9{b-(Az6CvJdMXsIoE#6 z+uYlqkJFC7!A=G_;W59n$OL+TN04xP zntSm1oXr(COl+4m+M#iMmg#UyT}D_ZD~kX*K*qoECjxZFT=VsdUnd$UqCkcYwFU59 zNp}!f1g0hmdfviG7*2E7;EUrD>-MgT@$|!3bXRVa6ZQ#_*+1Qe6 zb`+9KDAihq3Iry(9YZ*iWk-?$p6vBjgfikySZ+_$kR+YhegMl%Pkc2eqLm6_neh%g z81Rmp=)HXOxHM|0Hcheo#KhP<4cMgRcO ztF7~Ot(9Z>fyJ9ZZZvrpR(o9uo$-~fc=9T>ISJttF}X2;ai`Dk*n9O1uyc@?siUgg z%+}u>W_;}3H3zvn?9;x_JJm9&xl4h&7gB4*P>8EIHd6a@xxfK9)he}e*w!EmYi#wq8O0Y%bwVsk@tYl_KoJ}NeT= z182iEDU*jAt{W`z-DqKiR$ZW9AHjOiv*){TZUl%rP9Usoz9kU%#dLnlBYtiXKig!i zpwq0z_wDAHr54Qmb~Dzg+&RWaqnCTcKnWugkRM6Ik%YepO|GsZ;-Q`#=1o%Ui`AoR zU3%1s$`KqbP{jIzq?FlsW zG2Bt2fA{CO4bUx+1FUFg+MNKk|%X z6qvy&stT&3h(&pj%hS1=2O%DmQXYOPhZZ4?Hb|Q$AeH|>WyyFi&36tm;uZCyx#Wup zwM|nZ)D_vcI)-b?{y?vWO`YZNXt9Nvjmp*PwuI525A1)&3v>7l;P`;Orr!@1{L_Ve zEj!R@uv2KsMRE+r_WKF`GyIv`hSZ>)l-f;T_SiQj;WXTlhp!_fs~$7mE3`aM=J^o$ z5ojix8eo~&_MLF=WEelwdp6oPeMsM{?B+B*Ume}%1}Se=E@5fkbt7##)`FOi2$68! zFPrRj$rnf+&=p zn6w3N4^jK&&3hDsmpT>APnxw8)m}9{to$d=%re4a0Oi01sVTzj3psmA3TA%5E10P3 z7|5xbjDVWwP%5%tL@*1UIn;r+k9yfPMWGA~&?uB24emU-Zc0ntYAdW1x@5U`jz37)*O}}RG?BFunR)M}ScY2Pn`nQa^w9xvFOj#oW?o1Lv zu%q4(cF{rTXM8j~KBt=*;iO<+1Uo2dr~oKpsHwoeb4D4NwnXb+1;#1-|CxmHzt0)} z-W*3dRZF~*xQ{{}eqUGXeoa8e#%81CbnZvaHn;EH^zT4_P^O>m0A=gaB|Gzb znNVK6V!T}qS(;)zhj!Z*RSX3inF^L#I*idXZ~YIk&|WN)bHAignGKpE42@;+*d|a& zRz?>Og9Qba4Oxr0o*`GB)T?n9+UpgTJQ}Vpm1OSa-)_;ea_a>?s>%V7rGqCgXL5tOfbz&sb1|W zD6)5&eZ4Fc3j1;)9H#J?Sz<{2+C21h_^tw~M-V*rRdN|Gu*alaVF-ZSBM{LOGp_x{ zmg0e;{Tq6~_-IPG+>w`$+<-H4B!e4k$c0Wc{OJA#Vx4f8I7;jYOgl9mKvq6!z-esq zHnHrL$YTz^6u<9&I>a`uVvQK+b}#mfzp-elO-0ktf!T3d)kL7F&#qqxtkLm~jO^xc z#@{}1Bg3}fvrxdXa)o?j4+c}Sp%lXGZ-qDRtS}hsqREt6gf$BYZLs~C$*7*Ip=~%7VN5)L z8syf+M1GhmNgE%^|^53k06=FQ8ilPiyf@X)UE`EVTL zLJnUSqAl$8%~)JfJ2EU*D}r0K30u+PO`%IuIDuct z(P!%tSjHlnNx9xN#FUQs$|xJfu?y~Qq=Xwv@brigd}A(46sc+Lr0l}ek3#m;wDin| z^tG_V%VfFg^yK3truH(Li8juR*GcZV<>mxz>#ex@4V4NCMa54mhgl4SECWpBW#ad- zMBVCRSky@oV4Hc!-j6W$uADxBZ{bg$h;2wSz%+b4pIX)sz8J$K`}9A~hzv;p zg@mKX<7QmVS=kWSL|>!==Wx2P^2hC>YmBKqj^-QQlcGnQO9^-u1aHax4jq54->6cT zF91YJ-kCdOe|I)8-nQF2R!GC|e!WcotpdB9JY5Kxzyo=p=~@(`qSx0vMT}{aU@XT* zspGdxFQHxv=b&6G%F~Y9aD}2#AbcX3?JwdZu$c2>kp{pkz-xwSAKd1B^9KPP3S|@5 z?bKRdq2P1ST2Y^KO9%6xX!dHsz1)T2!IO4%d@z*%Sh+V^QMTP zQd^Zn4C{dn9>Q?x7cMDLt#;%ui3h4l9L>5ssvN;^ju*i-Be1n@xTg7*?)S@fgI|}u zpv&F7UQeI#=iP}g9LW>H7f}LF02XGYhaq*TOvCtqi2lHypF)s~UE3@MSJeR{JLm?M zbw3F;d-dK!IB6f2qdFP3I;1+&ote)I76+#pYTDY)NOpgILH*69k)*FG)8HT=3o!r0 zrt1GAHdQfqb+mJLvvzd&FJ$T}>qh42Vr^;dU~KolUih~v^9$v$2ahOv*T6H z@3j2+R^FoKNML$kX1GEsW@8$pVFT|PI87Eu2Mi6gNRo^trd$+y1_!3dxTYa`AvrI8 zCus2$x3XPKq5#O6&Wr;stu%(lig++8!oNid@O4STXYyP@cJ{ZJGEkG&B)9k_>&vcd zpokC5C$;>To29{1E6=x+(=@lbqhgf{<0ZM^UqjqrD#ry>UQ>G81f~pmf>&K3id6ooIeUPnDax`*lKj+$Xv{RURRvMQ3 zgHM*zNnct!c@){TH}rzm@14Z`>9p_lfeDG}m9~qr)@h%-2Pa5jH;Xt6UITEx+_tYG zCiI2iDSbcMcX9@=A-z@nA>QF`4VM9V6qYyM*6_P?O$b7r5~HOT9^-ZuqX9AxcLF;Z z9yah_qq+HD+6ZDW5D>qAlt@Yc-+|WE)Y#7aAJ$3K{@;EJ!z2C)J7jr)I znd`x1qSBYzk$l$Hw25=9X)(_Ln?XjAB-^G*(=l&M#b77BO}0LRrV4Ge;Rvo2YA> z1XCGmvxO0@<;SW3kwh&;Z9Vby>N$WWMZ_bugUmo1voh+iRjbZ&qb15@d<5EtUMg4m zn@!-hl{KecRu7}#=@4yRHP^%pdNL{HGk@3$&ECsZ*XiuxI8SwgQ+UWDW~Nb7Iz4yt zrv2v!*SR4oM#pHZ?k=^`CStGJcXjIy_Z#fB+?QyYZ>S<>?^74E5Y^k?gKrs{Tsv(_ zX*2XPRLq)?rVSBynYS>&zT{x0-5)Idm(b$p{jdG&5 zShUR~JmDFf!~qwwSYmVvDI`9c<>-Owq6r$a@KhuIHHo3@;MI-O>~XaL>xY>JY2?h1 zP%nKn80VoY$>$&@7>+T(Fd_U+cHUkW)_R2 zyhUy2Y?3e#Y)rIwmD$j~rmma}S7 z5JLK{(`G!ZnoaG7CdsPLT>Ln?(yUB>wufDxH5INALoA{8a!Txbd~6*{+J-$=AC;$X-ml(m3bL?-K32l*ZB(J_GImvM-G&&GAe|-<`zjGU;^RUT zE*KnI=^({gO5{*P(@^z9;L4NsMqWsH8E%$goZ_8Sl;YLg$B64U1TFh}5!I~fZ0iQ&}w((!n!7&4bXU%rMtGs3b~4jE-y z9-S@2T$yQ>evcw;S6$3PyMgRG3gQlqLnRVu=|$0k4Ze<;vbB?&aYN67N&_fMYbtd* z%d}{A7{`%znXy|{^QJ636sg+oOFHR}m?lYPE?rp~HHj?qGZsm>F1SA~Uv>al8Yi@W zhpY^oYVluj0GMl!U9Ghfr3Jj|ELVH!G_)j%-jiKmm-xRBxS2w~_Q`mD^$ML%6v$gg z%c}Sk?$+Oe2I{_@`ikVoeT(x&ZrP*!CWb-AkAT;=4kFd>HMWNs*)iqacW#Xq<-JUL zeiTbi0AYt(2>SeJ(181TT((5S3s)F(o#`5`at-n$o!&X5o3KrG0h`)D|4Sb81;nMc zH2!7rXiLbeks(tjI5|_mGG0H~3n{)hZ(?e~G}$c5Eeae;%)bUPW&qpbo54UpjQ$6nNOd?*j#l30fzUQ9iT`c#E{%KXQgver$H&Z3TytKSB zay0BJz=tbyQnu{mI5R6j7>h4^AP%xH574K#!TyBYWr0?vB$c&~5wGg2?yO_{fM@m^ z=XslGS7;`Z+axW{X?+Zfr>6MmlW$%pHHvPfo+AtE(V+9pb-^QLWZSmw*z}G0nk{Wz zrHLhW30503E^mFK@C*j0ME`j>CIC|wq$)Tb#oQjk2E@cxrN=A~yUhYmmzH}EX2hiUf+yVD`5}^ z0Ps`2DpFGk5YzvHl|$rM>A&{2G3bf9BOWW!dt{k!oufeFOfGB6lK*8Kr=@h}q)#I0 z(((xH@QKI%rp67!MQGiVSsFj$(TCK;bU6l8pqj-MYRsuMKNnP25m$ww4)VhEG`%2> zsO;x%-cV4O--V#r#JUgwzt<^3{B-WyW{PuP_#7SHhkv}{ic?CG#Er*$(fY;gg__hb zZoDX|%U$G8+$mIH3gm+{DC z-33~0R%Z=>(k{&U)`-4dlqR~Q!{`jNCftg%k$`Q9DW|*NP!!(!LYSlN7de717(f&i zpNXmLOg@R^D6IxI|KUbH-u{G4m&*7AzcZ)yasHVHwRy^zq=lni;!2GlSdtk+m{bZg z28!3QaZFfq6sKn30G+D@%2HVHi_Q+PL+Dd-kBk0{NJEHr8DkLL=8U0K;9FQyF2Bev zO({*S>?QtS{2x3#@d}%w>fS-7wcN)UmJ2wtKkF5Z zhPU9*RDP9~ix(@n3@d_uYbILdG;Mk%15TTm1UABY2~%Cjy!ag?y>PJZj|1#lGR!ht z^*fLVevZv??XXCxFUDYoqOQxdNu8CEI+pFDyiW^R9C|Zvq>YT7g&h@SiEhociQ?2+ z+7nbWSEf%{Up8*Jm55=C8hjj|W}g}r$e1gBk#Alk9O^3gd3M6eeMMZmBy$EVSCQTx+b=Gx#;gg}Z1ay{gu<-8^Ff{Fk3Wf7GTH2MGcq3-?dK zK;Zv982qh*%2JZ~vvSF+{za`GLv3k`@C_MIM@QPDk;(~5M(*3Ag5)0#jftm7V&)q( zPv6KAk(J>i`XOlVM7?jnA1lvwV6$gai1J8_qC(9cq9pNd+-Bmg(|x=w@bR&)3gS@8 zOv~BTc}SB(Kyd3z!-K@^m{bLJF~TQs6#A?B7PWS_hNpVT?QmV591Hjon`67WztPn> z&x=NPGl&I6YE|a=)b+zPv!d%W^c?&qsX_rvqZZ}jJnUOTvyju*@-|qA%fu2F?CN_J zrKSa)hW=W6&#Ay=IAN2^uMi&&8;(I?puyW4(aMV{JL6ty+Xo_IX;_9WcA$U$i>lab z@oY77v0%)qqKGv(4_as!MRd(;i`I(TIyib~4O`G+tp`mIXEFu94+^9$dB={l_=FE0 z6YH|aoB9}Z5O384q)<1$OxjyHMd|%q!K5v@Vj_pK#dX0FZTI_tz4wwv?n!p8UaOBC@S+}905mgn;X=`z8oD(l!jqv-P%9PhDr9ai1gXl> zzIO@F33tq+C>p=E8JC}Yd40%}pYY|${&Q1m_-RFo^Mq>Sw39?UL_7vyd?x9!e+4bP zxpl`ee1TY@$9)F5J8$Zt}M-^en zHo2=1$iz#OQIgbm7hF6g2C0!Yjm8+T9J+&I8O~feJ>KI z3Bdh$9NHLFt(sLTd$QH5HQZmMwM1%%waccM5ilcE=_xpRq~brFz@R3TZS|kJ76F%z zUyy=NMS%%pATuU4CbJCd=)ckYYXd1Yw`JoWSy%i&>PO!Hf--FW$gix87!36O-~~N~ z?~Z!*j*9++LU&i@sj<-z5z!#wBof!6%Wd(`^q|Azg@#H)A>-p;;14yxL%y#;mjxz2ap! zA=bw7h4`gqNtSnryt9eN^hkZkaZOEvY>0tTvFVX<%j}7=jM#RicFMbjH0o?yV--q0 zk6TopiAx^6)l6!`#3?MDr|!&X&CR!)c!q3^Z?hut8jBa@cZuphRKo z=Ii)$EAb*ahr+k`V{|-7qgp}(AfnRpBGG_|$l5eI&Vs)paq6QR7VPX-(-rM?19Z2Q zaA(HCEyH@}DbU^q`lh92uF;Bw7LMZusZ?a^DX(t_QC84#M^wb%$zBORjUM+l@*eS` zQE^@Zf2&OQ(D|o9;hHc?x~6}Oq}pS$OgOk$&JC#j-eojfDK>F9+$`X5+2#wj4~xO_ z!5wSdb++X3TgKY_h1Y9!r>{kk@r__6Q>`w?6rNY?id{X2@O%vi1u`?n2h;ZY@LUlT z{{}<4+ArwNsZF{PNmWP-e&+hG4O86?#{MXOfU)5p!N~pp2*$sK;;AB<7}|%sIu@3^ zYCK4Mzm%38!_lw7)G=Zx)zFGleYJj&FqKP7aPWFQ!#{rg^FaL`j6SuWQl+HAb6SYx z{@u?lYX5KZN-jApB~$x6DIbsB-5*e~ecyv|qfO}CMt4t7*A7Q-I_0?()!1v`ax~Eg zyx8jdJaXgx$P>80BexG{(@V6(G%BLn_QlCON3<*YPv>!_nm;sQi>kiLK`kiVvU01q zPn^L%S_s(csyPXUe{HptabtHe>3__Fp380|JW;HX6`HY71(T(Gg=T zX*tYZFMfNDru1%$*1bLU7Y`ssD!bdV3Rd~P6=>%`#W&!>Na<1jwT)incm14xGpbij zep86K0`(2E?b)wiAi(ZU;5JbwZLJd2A z69sK1EncLG_WbQ7e}CQ>IBkdt5&H*Qb#MYEEj0}D8!^3*(c1*N-YL&*SbX`5knhKf zQ7hREz)eg=^`KHXXSUd9((2TfNFvEI1sk%G#jx2eTydr~UWq=kGJO`MS_6b4_e?z_ zU1dB8nGc9Y&PWULx|WZoY#b)W-dJh6uNyBUGDTddW}f4*+|-d!{CbSS!U`MIuSlFi zV9xF7KkPL3ON7v0+S>RBOvtTw9D-Y_rA8Mj_L!?3ZP_ax-2zaMkm&?v8gUNwa| zdyd#TV_t>`UE`=`Dh-@OvEy7xGq4Kl&xZ!;tY9tS)S4Fnmd~SpA3OwOOZDeleX|KW zkLp>19&;kqZ)jd;`Ft)SS-@UYwV$go&~m>iX~Tq43eNrDLg0rg#$L&o=(<{PMSQz_ zMku0_EMt4W(L!dT_3q zl99D1PaG|a$hYM516FpHaa`NyGCL|~8jUzXGNqz3+*vX03*%4}ox6kXr`y->%$x3E z6rp+d>Kejh8|6h{N-;mCL zYJ{ey37&U1k~nmk0hL9D&O(EXrZ^BhawB(#o1UIzI{8jt(}^cA#+EP>b&AW+xoz34 zY_jaO`quk$&OI%qp|WjzuIzXB$cr~cULZ)&gPW&k_MT_+=H>f(_ZZKo+dDi6-c!mq zEe_P(VgvK%4r4RfUS_yx>tSKhjO65Gah~-3$ixFEJc7V)yM^opWcKNCGMQhq60s*2 zpyy)Ji+2^_cvmyag|enAYt<*>!}z%hObj2(Pm7DB`eweav!YO7zM7dW70+j-GiPO5 zlaiYhqwYeI6eOSZe`{UbShtt`AvfAk7bbBWsgXXZJi$1Q5}Jj@p0zDRzepEbs`yQ3 za=3%0(bBbM^^QUMbqf<(jhW;g+e~Ej4H}wPBQM&TbC$V5i`a}4WB&wuH6-`f!Fb@f zbXI<>nM8P@_JZIKABXalgmrWlGsuJ@3Be9HM980@QDBG}^ZeH&!bHDW@5ckl8f(4B zn5%T?QgG*)zk9PPjCl<8hRF11O`kQ4D?oCo)M@1wx9;mBX(A!~U}=Iq)0(488yl%i zHfX_9-_Ab=Ta{cx-VtfYR6LUGS5YS#a(=!p{kCqmKAnZ{Czh_t&hD=bdiKlOFDl}+ zVIp&0)M1XDTHYe%=4|JadMXkB^``&`Vmf4WjUsUpmi2)uh;pK|^p6VdMqa~NnBqFF z&=wR&kSeKLv!J^NBEiq&!ALGL$cL&}e!8&|e^W6r@Rh4nUqVffMyZ8SPYfw9N1|&; zVvAO-tzmF?ZND0YEjS55(2)f6w4tEf^8*`^2jYAPkFOGqc>;pDER^C)Wq?~pe4gDnEjxy^ zqOk~Dtdq8gwMD;6R-ZGSi~MD`mQE&HD4Li*zD`!ycFN_3VPw`FVQ}#fTd}B8`d#W) zyLsz*$kC!G&P22n=58?jOpzz!h!HoC*5DPQe#&V|O-(!h&T-XV-9BAOQsbEcySM=-cvu91 zZQb=nDJTV91>rYrgfyMwpl=%0Qi(MFaFIKQ>a~+4x^9B*7~OV>$<0&j4S?g<G4|zOs=nbu$9-!vu%+QOoSBGx^rP(lf|gk?Ic=%$aNePZ^WVN zfcm&w_EUvxsr0vIPc+q}L*1>9Hns3$f3|9)qwQhlfRvv!BLqVfN@1RgM)CH_Zgin? zNzM~;aA)$kVQCZ9Dl9z77HKT?VJL7;ZvY*|yjR*9iFwRu3Rrh*X``FNq)ns{Jtx*J{P43qjvbB^T3;z8m$-UC=z0 zqr5g!Pog8-?PqSvXVySJ;ng<`>znIL3a!{|uZBPH@B&qwk`Om{Ye(#m1b$URc@hX1 zB2-__{dmfESBhv7lSnb(4=0ryy|*-yUY~;%<37aI>L1FlZ)53s8)eueeyFwx$+b>{ z)mBG6-MZOMNob;itS_vtpV=&<`ZQIX3Cbz9-ZbBba+^Wb4;Td;-?>L8NKn0gOyYLl2^ z`Jj+knN!o1nLKXRse+@N!SjbDZpii8zo%+Cdnws~gLCN`Z4PL&s8X{*RJOMJQqofE z<}txk22l=wlxci?QtU12C7wk*Z>#67q_Lj{zc(cfZ}xoC!e3Y@+j=}1+%qvlg+RJG0MlK2KArJ_TN+&IFg{e>>Faw zyT`Rxoxk&>vbOj<9*{p)Ip=T_Y7B}4Ma>!Vhs!p@-hF}bW-Q{p_uG8qrHyOG`5+GLbs2HxQ}BF16e;U^ zeHL|jD{fNp@1vpTOI+*oo8V3nQUkq9x=ervBAQ)OD4Z!?IOesV-mGbOeg(VMSXX8r z8lI+1X=~Z@&iyQI-wJ(>abZ)4HfRG8h$kxU$ zF2~*m8jj2{`Ky7M((a7NCsS@jr5bNfzz;#+MKK2Gn(238kU=_27?7jyk=_((%O?Yy zP=WEHcPr0uC3DBSig|^0j#v0Vb;95O$#{QOP)xCYmE-q_0GNCJxg7GFAMkWVLs0i7 z_~feF+E=PdhmeRFvzfOrwx}dning+)9?z@uwmwnAagErdIt!$bg)Db&{gtbE;itx3 zH;oJZHMBvj{P^O~9V@g5?A&8zS1j78@r(XD=v%@LxKjDnpb^~0_9N|3x3Qs*0}Pu) z$H9kp#3o&&cTPWnyz~yawYL9HrjSL3ydKf2s8#mp73gJ7$)3 zPtl{jPR17ahsyaw?fie*A2zoCDd948aul|4`TIhzBqb{wToEMihqI;V-C}E437lLs z91V)R&cSa~ON9^=c^HFLJ18(WW?mbExH&F;=h-w*iJQF)xr7Q3DB(}TG3BXzJY|~D z#It6`&dxeHX`S8K?+;&mnfXmx=o&x8H75`eT>GmCj+Z3K-h3ZL`rni1zpMi1F`Z`| z4chYvDhB3hvHBjPvYYahK0b0UrHn)hU5_|iyVtjquG__GVJqiGpEOC#8dqGY>{7(C zhImoDb>#`m9^UBiu52|uap4T)dcBGYt16YTFl48)MAEl!d=96G`(oqFb3OdGHOgwI zzN{f~?RRc&VER?jzJDLE-IZ20i8G;0nOr)Vl?CNOyScKB)-$iXrk!NjJDFJMyEnE< z*j|GxMY9EENub;z?wb#eet7fJTSZQp<4~2<GtI)Hfv?{kWhtlrHher%_6dDpJiNg!%qKf^;T;4 z5mhob?R9EDSzc6Z1jJ?+7_zi# z%^_g_`fxxh0Wo=}Cd1*8JY98+z*m_ToY8|2LuwPUlScwL#5J6ce6>Q3VvSg>t*c`= z`Lir+ek8j}KvyexBzf)o+8}c4o+fuRSS?vXXa+TOV_x3xUu|uD@})Fn`5MDf$a`*P zi9bxRylJVe6~3TCaKF!*a+Hzbn6|aZ%Gt)VS~#Xtz{R-gx$Q%L@BZ;Z(Q#9d!KeNk zSj1zZjIC~@YJA{5fGa0{XPa_#CLc8>VM;Nv0~_>_xCgif6xUwdHHf&fF%gA|wVDj4 zarN!reebv>ZJpR&8F|-2`I`EIx3MU9eLYo*5Ji5at|$oG80g~E3(qn>u>=IT z=w^vrHS^5vmgF2)Zb0>%Tx;*?-W-kFava(XcOb91J`gClyu}xw9zX-t+WlAc2)C*g zP!=2nMExJFlmBX9!#@D|Zyl5WSj`P7P7BuG$4-nuE?65xs6)7fM8iNVU8x4`4~;-x zHup19PjDsASY_u#Aa*lOD=Q#kFE-zPm`GrBKRYQ9l8N0eX^!PL-|zQ(hflBTLtPN# zE7ZO~iYyA|*te@#8hlPk74Rv{=rI~0yArhFzDDj-JtRm2@v~bTm(jINCzYnhAgMKI zp!B73fQZ{33$HBZ7zN@tQ_+~^5n8Z2!Q^+ z9bC)`cPx>Y;XfqWlsl``+AEQ|5qb!Phzz@h#r$9CGDdnp69V24d`D zSk^j|LzJS})kln;@CrS@{jP%YM6cLP_7l$oExAwI(*hAWe-*wOdZ!R6>23 z+DJB|2}e@m1{)8gn^nyvyoMN**UL?AeNi?tgusu+`r?wJEE@s{B>}Eh;M<4)aT9zs zZ`#xh2E&oMpZ8lT!hNR)$l)yWqfk-hiy5>36&(8 zWZqly?8mYc2czmnLiM^l{etS;eZ1l_*j4E#Q<;1`yasQ%5?xa^zs!+47yJU3{O%aj z1FmYTkASYt>kk;~H@_I#x9}!0)S*;Ju<5jz8H1+dpX?ZAn-$b$El~0o(I=ci$<;hh?_7L9u#}tUD&{A!2||r%UE=&`3{wl$tU*m`hFYzs&L8~UnL}(hIu0g7^z=~O*!4O3I_a@5d0Vh zzLJtp;a8tKgA4MWDL|I#Nzo~e#61%#K_rQynl40G!h%tCLTxE8y!`OKKHG)Qq!Wta7RHpFbi6nVL z-$%Wk#Ug!TUbDmSh&OFg-Fky@K54eRO^MZM@u##{r*@ubyym^rm=<%L2(g(u-6f04 z*lP0td<^aCRW2=?98=FxZ`?A{c_Rmw(2tS*>^WZaM{kP%^599kwcmMx*Ch^onKjA_*FKw_dU zK%TO_p#^4vFgkveI*6~`(t(b}dNrA^c>gvcJsU1RDQ|ftTpj5gZ7Brqo9LG^<5ta$ zY?JaL)QJ1b^s+kXBL7~_=t-pLyokI4wPB<=o*egQ4_MqOri zY>m+j8;u|G&3Jx@OV_+dec0QAkyqqe&e8j5dEY5g8F#Rdf}ybe16Q8v^HsW)s53vF z87GC%iZKeef$jUaySj z0At;JfIC-yxn*^Bg2aWnW3zdGf{GOUTn8f)>&#*PBMg)LXOF#qY-kR)-qY#%*lAuf z15i;IR^mKf%sPYpL-0i`+GfW}+&MF5nh?Ieg_V{JEDkE)i}lqEfmDOUJ|zDM&8%ex zciGlf#2qJ{Fli_bh-=OlXDil>qUfJJy}eCNmix4VtswL^+)eOq~^HbzViI9CBFBI`xH8 zHic6OM+911IexT&i-bQ$MfGGCWvEAO(clVd1{zyPc$HHK`JH8S`38rvQ493iY~x#| zG46_f_EfkZ{Vl7647w_2tM)eQ%=3&xf=1rWI;Vl5%mm#^W^D?=YKabBxz`V9rrM!- zzjqLKx>mVsxec7}NUwYa$`Ob%ed|3%UUv(fh~dQ+l{bm%%wGehSC1TQIxg$5Ki+g* z@CjmaeTi8O(5Q3*UFe%nlc!g`Ui zv;K@m-gMa{X)|NOzZdfYp0-@2)8|^BXuZye%c7ay!VF^(z7W$RC;dX#D(=>82~r^C zYj%*gO=5*~Ld*G%OixYGcdDKq29L0VzxoQ?eseY0B(GYd!9RE%~do+lr zku@N}J4j`EG(ap%0_3OL2Grek3Z>J`p{*J+Amk7gT-z`+?7nmxDks}X56WOScU-gA z9)GFZcLiyuoLxJoa51|6IAazS*;Ste*GWi+=2Vyfj*bBxNf7OX?)i5DPFw z3Y$}|wA*pM^{9M%Z^Dq1w}w=rTRQz6DYyMlp)iPQ2MS<}BL$;`ut#mfHO{k_r0eux z6)}4Tg-k*iqQk+yz~BZ_17fAH#=QZY`*WP4KsFoJ>&yc%JIvwk8qDd~UXG1RP2MtZ zJ{bjWjPKKN>L3okY8!kD5Ks{65aJQ&d0KXI*L&E$R3Rkejq@;mJ+aPpWu`%}N4SZe zep%}|`ODW&alfRc_(K)y^K0ltt^LV|^ zQ}Fq5+2;d_HK+@5;7HSD*qWR?WzlpnXjQRwQXFa0klE1qWa+Kou%Bu~f4mH~=roo| zZ(-y{h%E9n>< ztSq?Qu{v?sY!uUn0eYe{VlUC=VsoJI^-kz~)yc`DnWOB_Xzz1`b>pm8793v`SY*cLCHZAA06;0+ zQ7LVYTJ`E3Qq@c60JF*oc=y3Dil$))Yk8^w2)5 z`?IZU#%v)~=%HWJFJ&pLrh>$gB{S;)0(S_6h)O2e!OKf53Ty>p^;f~o9 zOXWI~WUJF~69cSwEK^Ye*}$1VW3u?|^T@WbHV3oCGt^M&1;hI~V+NfW%aN<Ka_!T<^p;KG+lKu68pBqDvc9L7Z_Gj#Xjui)=l6i@2k*15;zHZxkyjZIg($fjKw5=YuGs5&pD`EYGM5r zFDo#Hz%Qeo5*&wNC5tahV;QNn+quhL!5gGWwHXxY7!7Qx@a|MDn zYwsq^nyNR@Sjtgd9pfd*;946R##rbo)6(W|HM-tj!;ZlU;u2sSWLz9&vszy}^z#?0 zt$W__n+_7Q+1OGT@GlSCrvZ3TS=AYZ1#EKe2bQDMOW0g_9>LKW*nRe?s{Lbi14E9S zdg-(HEUZIuO0@-+BWvt5Oyd2|*iQVL64#)`u|?I6HfyT*&kNuhn)4B(xX-jZmLw}^ zrZD|3Fqw~(6u*{NIqcpN1s*`%KM&5|k&0qs&S9ETma6Y3K5@M+09HV$zloKEH@}2# zwuwLF-JWIZ@nA==S?9W-=Hy&neWHhOzb#rUzlL)rD4k_s3Cx#10Q&X8ab1ZPdaA-w zH&=anRyX_J_r%ez>xN$ZSK4KAXSWQ+cFB!D{en&jwi}<{Q>+Oc#>VP(>tklt#>8g> zMHI(6k`RIJT&}oM!|vo82cB?Q&)JVtEaUUenZjR+IqBm+nX?V&dHkC>KSCXFL#O$M zuH>Sdr-L?aHv#FFgyG+ix(HP`x9=q$vdVe-oOckoo3Z@2=ElNN_V;<_@{D=B$1rk@ z#kf9XC+e)_LtlPA#T!GEse#LYujqT>MhbsI0k;WSKyNSc4Km7=4dp8_u`LJOJAAsm zP*nx|ZMsl8KX9My<3V3ed{5XJS#7o7Wo|ODuD?2GBD|(k+;DbXa7inqT*K?{J>n~V z{4BCHQQyYURezmT!d-7Rn|xBe|d>`S|Hz`?H!`D-l;m>p!%qrgL<36UA^iG z*~r;deL^imf_&zkbbd>F&v?71#9KUxb@~LuLE()3WdQTFe;4kG%r;cFA;A&JIh7O- z-))JAGux5!A`}>AbGzo!F%i;n$>!O7bLs)(NgyD zX*K1A;lYc*`~&c;y>S@aw;o-)yoQdU{v9yD816y%(&WUOu2(s#fAphmoc(@y%FvQY90k73lqeKr@O3nFQy?%URE4h`04%DrwI(*mAUrg+ zH}K!KcWuiB43@=r@a=O+=a(XtAV}eDx`Hiw9xCR%L!JzpjUP?hW)YddXECk4xnKbd z_Iu!dP`;xw1sA!DNMMi!pMP#h?K{+~>5OcV17D)gS9-LeUVTQ*NZdY>Q>GJ762xI* z%C&m@qurEZIHY(St6EwYP_5Vk$b!?B4(A#7G)#Huwx!tUtY>a-fi4r*mGo?4tz;{I zgpFY9eQD;fa%~+k>jJZm@Ara}=cO0|R@?ab;LnRRsbtMPV zylY-!h;andHNp|^zPH;G;#bIsFHfd{=exTE(Jj*bpdkQb5)~$Jwye1yv@^@t93@v) z5cR64tXHsFE`!JmP6jv@c%K3{dS1GHap}{dk^@;N*6gkIszbOmx?c z{h7iN`YQTL#0(0_EuS2J8QkXwwi)0cAiH1wi5V3Ci5YD5^vx{I9Nieij2wag^JHe^ z@V{id$^U-w_u~Ce`$-J#Q$}1ZG|xXYTqBGP9hyL}yb4T%$yd~%0pjOe6ZbMePp>}X z!rH&7sc5sxir{scLyq8Onqr0Ir0h`1eDh_lTinA0mC;kYp@b_fCd=b+@_oG~t()Ne zY;t85iWd$}Mspn25eF)RTnoBkX4`#`7rDD36IVYmM{7f3OhpzUC)23B zTQ?-CE9SG+uSx#qP;&JBwp-X&Omk+UJ(=i54p<0HRjLhM?^BQ*B|U`0Ytesl|P?iDNW0Bi)h)B zh|oByqzy$msUj>4NvyGo`yw7B_nfjy9L@Z|GiuYK_eiTB?qi{&MQ~Z?qx)5g55Gb( zFrURDd+OcwKB>_%d6IEucW`E6;o$2pZ8Z6@ftw0W$9OGGZIN^a%0lade*IR8f!{Gc zt;FrEwB)u96J;wir70vx1FUK(4$quRSsFErkw(zBqC-w1WcYQo(DRt8mqRsMw)=x`KTe6uGx z8ar~=EC<0Ds3!o$By{|!w3|{uOsaFt8{Ge?VI*PQxG#zYeAn2e31typr4|trsgaF6 zUC~ckE>x#~+U^sXm28A~_SdrvxKZMYreO(SRZ3sxiAr?ScuBX`lEyVGxo9&j}=)Nt{ zb%n$?@3PyZ!XFo4LQ|~!T2Dw$S744^l7RYbDXCVJ z#7!M`a^{vz<8_HWk-$(-Y>dXLSy0qNkwQ`QtZ^b)SE*kiV~!obsnvBvEV8GGDLODrZka6vKbq|vU^6n0tk_jIjJ^=FR-t!~?S2xy0jt!FA6 zcGGR6e=`@E>LlYkgo+@7r`Fxf~qTij@t7) z`u=GUz5?-@$$FH68Rn)Xv;B(hp5y2gvTji&Lk*X{fI8TUiB&P?JmoknjQlKjrr34; zIJ$k>G9huD9mYK-x_*sM=As+<;U)zYh!43u(Yji_{bKZF*5{<&6S7ziGoK&E(`+Wwbi2FXL4F2?0AdO)tlL-iJv_AR ztf&_kXOW8s9$j@-6n&U=p|i>~6^&aKp*dy=VBA|e{Ze5(Lc@jND#bUot3a=dyt~K`hXcaUe4IMBjU```V<*epPH!XDBz4{PIk<bioK$E zZ?A{d9;z99;oejebO2e+^-R1knfMY8nV&W8X-bSVhgyk7iF|{JflXfVMWVp{hwux@ zb}2r9yj@%vV@b=9=%&v7>ehi5$2SE_cK!ajYGxJWH8+s1g#rs|lD_^KMO&737Xx}W z!GX@&#-7Y=1LG1*&?}Q}oTwPeas)HBZ0V}& z4+jvF*GH2m4IX4;@}hw^B4w2H8XzP0gNX_L{R+pS3Wu5V~ZBEtJ zv?z+`M&jughFj=@T^x^qH=2YFU=5me$@JwWagGoR%9>4G5@L-|dXmvEx0W$s3RtE+ur+`i?~_?u5gG?Zgt#H@;*b9| zb(mf4Yw;u)2uR{TuEiAldoUT>7&tjFi2nI0XDx4IX8oU|$&U#|}DU)Bcx$;qZv0M(9BKTt(w0)7i&U<+FKAAmy zqW|%{y7^gWXceH`maJ8;6RA$Mc3?Nw#G}p*@zXLpF+JrxlhgjVs9iz-yCbSKe0@0M zADnQrRd$@!g}G2O0Ft~>k+wKYc!`W%31X@g+L?8Dd{C9ItDjc$7mu>D>v+NXmy;Wj z8ozc$U9V6Y3pLRw_GJd!?;;*LCuzW+=b~h|Qx2zb7(QM;PCU)Mh|$ecX3#CW%q7vmI6)pvn=^@^HcbcXp|eGg z-&q2}Gfh*KaQbLhbjVR1=NfeM*wr_f0eUP2pXqRi%vuu?TR;!QdB!UwKdj}b+NCF3 zU?-8&5*+57;hd!-mwgV@3`-euM)jw3%sDuh2GSS@t}7yLpE!iMv!sE+UvY%LyeS4> z;r1){KDgRT$vCfH+2k6;{fJymFB!Q-(GI#8bX{G!VH}DZa6l6VhUbDQmfjGp>-6a^ zW@$$w4Z`A?h3>2$$e4}=0hO*V&G(7yYIMQv3ussy$v4Dy|D1#SPLo>qdx?u^xmfXsQE-VGgF7Mm`Df8UqHJUEF!Q;C_H{ zf<}VvPA*71jf}A=M~*0>5ow3xhBG6uCY19yr;VcBC31_&?!e`vNNr+ycxbXx2s;t4 z<0D}#W9H8Xrt24%VC@)|p!BUAT4G;jQ%CEe>MNHE@VZO#@YrF3&EVR2K!ar8+Z!_) z4Zhx5tF;P zEl+7F8JKOWIfHftpl>MSr*{-*>6<_i3S80K2a%g#*jOe@@InKta1oAbV7)G`bkS6d zo|w9bYLzul0WGN%J!o-rZYH-OgQY%P!p9VgH4?dcgKB8_cEdmNl*jy&bKOIWb1y(+ zs#X!InzDo$Y*aiMER9@ZsvS+fGL^RFxy-pQi^wOXw)}W)0|~j(xvBgfr-S}{CXMHa z?`SaY4fnx?Xy_r6Fm_r8)~4gmWTuX`S>J(l1iWeJKCy%kCf82! zTIe^NB>SnYmE&XW6gZ#@Ts+Rp%l&C2>50^{Rc-Hc^{JHu0U2*8b z;Lh^)fO~N5h99Xi7qji(49|~R4Tw0Gneb$Iw#{$e$}niAehoCx8D>@>zAow>G*MF! zj;Kqz56uI{32zflE4A-NqD*C#mn?(0V}2w)LVQYn3@Ba{3!B9a60()((kmz)6FPgm z6ZqogwU;q)S*kK;1MHl=9L@C?i5*y!RLWg$M|9lQB6+5ReBT*=|9sz#^kmL{<$Z-yRBl9`rsqt zy5hXA1zT`R`J4Ntywn+#FDS7NFN~o=u`rS~2KUI(4-vcOccMoc1o`iWPAMpW>}z=$ z%PfmFBJ5^lx*zPEKCv>qPO)c;d@rB$+fJDu#%Lq}3HOk_DHU(T!}^|KjgLrL*VUmi zd^ev?pSQ8u#7vzLOJ}%m!~^YnTXNQ4Mzu1!#{7U?jU=vcrcQzSPgPgr>tOt-xGmIZ znO%GfaHwhyXSW3^WxVmY_@&zmza6Zg-_WbqhZirN+C{!p+CC+3K5i|}e{?Z$vsSZx zH0Dn}T^EwUUE^74;l;!bA{u;j>kC>j702iTaj@E*qK~2?HlIG<`Mx4`lS+}65E6`I zy~;sCN5{-8xN(CQJ(8`|abypM)5z_VX53{!6g#AQh2maBZ9Z;WhBjonO2kJERR3lw ze*Hjw8k#(crfIsCUG6xJ^o85(3U`CrbiC4qQiMu^t@!v$3-k&BHwN)XX_WoP{w>G< zs1*ON%&XvNt5l^F2e_qF>BfXQwT+2@M#d0lyZFvZCu5 z0#lxL-G)FhS(!HTZs+fFmzm7w-9B$uFalWaSYu3gY(h9UnDi|Nzvc{03Q#%mHk_CO5C!c@F4V41!gc(bO``vU9cohF@v7+0~D#QT3{Rj5i4!pFKoq)04%pFNqWZ$ zeq4T@pCx-Xl=|rbmrI01`X&p@6PQm2V!UydW+&Qr7q3anb3(`m6t^>0dn-?hGg&~} z?zFoF8fu7J@j<_l%}}xqKo&DHvyl5ql7%o*U%x@4ct^ABeAk6OwJ4cfHL>NEa6@%L0#*7Z*`}x>L6_hckfx_2UKAlc zYX2p%eMJR*u0>}MeWD@=%OkB&3-D5^7UUQdC^-7#75-1i&FXyXdHsX^a{Z(7_aEeU z{|R#ch4%ive*Zt*uaKYzetct}R|^sg_#}3%M4c2tI6se+^eM%toV=e9AY(TBU2=M( z;PKacVAn$~qHmsVL{*!b?78-Duorusb#o>IaFX<7=YvdU@0`wV-z@*^_iOTRdaol6 zQq1}FMaDNi+1hL2T4ud706}xB-WY^&&k7%xWtjHR?LwSMrdq7GdG@FQjB`Ik z1ID>uyc14qq1%6O<3qczvrngH9*W{Gw8lrrm>q;rO#$2VA)*NQKtbAIH~BGwqoG(a z9pEe=v7Z#_aD9pW4i(1vd09BIz!>%0{&N!+pGvta|2 zVl1SmDS3ZW4Ri4_`x=@dbY<)yr`=B)C+Rruh;%CYW1(h~^IV0M^k1F+tmL#V zUntCsc*toc9oq7xlx#4V1v5qLKao2`WWEs1n8K99W)ikv1sWry&ft-jt4}q4-RNok zG`S-S5}s<1IBFYl;*}L7+$nE*2nr-BbJ9iRG%L~FNI^Z%jY?ysMYf_R7x%VMbUqNW zRye)J5Z3KBvzYwES=qRtGn2aqV6@zFlEe=oRM6m*VM$)m-HBA=D`-;^p$te%ikA0hn znwH0-Q?6Yv>0~*3C#1T+TMeLXfi`AE1U{_qsDBfTBNt9a&sy zk{8bFeYnvIW)oXWSZfAx&#wW^^m&Va6N9PFwSBaD#1kk7G-%eSFjlk*?1IWN*i4BA z$1){*F=c?D8Y8Y|TS2Oe+c+6J0ZCe^+_r(OVg)6W>SRUIRgUR-5*&(iAB&U#Ni=th zM}l+fV@tk)-rKGbUflPE{nnV9*qJ5iU8BW$edv#10hn#?BM+Zw31VUvyjT&RM@J8c z;^K#AzupbsuKoK0UD8b1`--jC8{#|pMgULG;ILf-{S0p2p{x=Sh>-nVc7X9Lg6$fC zF8+)DbXy38mBcx7!4s*Mo;Yz=!L8anZ}QQr2fOI*w@gUO`CV!+ZSggw=W5F*%IYwk z_mYB{mzZ(AU08UrwhPpRl?y0|w}V-h@jdd~1S(m10^Zd&?IHY~PH}}I5(gqbe$l0> z$B|<`BHr<;UNuEzFvI7b&MJ6)FDWF(L#f_v`Qi{s8?=`HFP4coa;*j)ZiphTQeB6wRRdZMS!iLLU0k5F)J%{-8NfQ2lc)jGmD>8rEpw#`7(DBy)*`U4!1plWGti{RH0^pIY;GPVc&EGgOf^6lf-bGB1J*e}dR~$Ypa5)pr=L3y zRS#`SsF1mgpsKj3D;nhsq_y3;mjLNpUUbryYd1$rfYXgyA_ZsbiYPb%5I- zUG-9=iarY;zZ7?Re;@1 zQ(y#1f|lXD$-*r`*>{q{3==vkYM|ak5q+3g_10k+W$d58b$E<4Jy>ePupWhsdao^t zV0AdaZDoJb3YW?s(8aCnzn=euMLOjqrRTZ9_4>|;3^y_^DE=Y6iP+4zA#DhA0SkJ6 z5YsA~6C9A1OU3|=#q?Iv(#h)84y^VdwaZkvb}J$?36Zh+oTP%L&x?-J!Fiv3vw*W% z<;AJH0NHgHAImUSW(Aq!CR&rxohoVzTbhI=F7ntfXahkgffh$XfmWJ7jv$_+4o24$ zrjTEj)d5}OwNov#eG-{?hGikvIe|uV{;)2)LUd*f(zmei$!aJj1`^dJ;zek6Yxq6#M*vROsP zkaHj9T*dCbCcdD*!Yomgxd_E^;@==}-95{-7@P+ZOSaoH|DKp&u6KU_{c-94N#_sJ zo-n^5ZOfvs|CbTfsTkGvu>h=TOT3mRX+K!~)&16W(`1EYXgi6smZY%yf)iKjjYvAfD{MO10Gv*i0W6<|v z;>^i0Tl$C&UFQf>L4leUR-1?b%;gU_I8ITJ1%*zhlCUE(^Q8oAn^0JuSJ|EV zFuI`>>tyy=evxXf5g-AMz27%6R7TOBwTai5$2TSA7)yLa5j$p@bKt@4jbBM!o`-_scpEpz~7ASZ_93{z70sg+2=k`8u-BKho zag-W-&MiB6sOqIUZhH5b3>{mjbp8;u{W58|$Fc$ww1()Yj&~wAx8^5vh#C#LDK%c247<^GDQNlBJ4& zBthTsAqoo?I-EJ`VrimAG9`htmL_eukquBR_>cp49F!CGh<z>UQEDP6mQWV=B^~JT#*BGYu%X^gHADA|0SL@-hTQxL-p&7ti zBUKC=MS2t>;rq+03Ww-ZtpM1kPcHwcN74U(iSNHdx0#%$vr`Wb*A5dBMskF`;V)Xx<0p6a^ATU$J_$cBV)9ge+8GdtP!ELB+1Qz%#(0cZ)`J+BDtY#+zk!* zW4t*q3-X+hLhC|+qvVO4#A)!1e_{V2j1;)r5*(do$mq@r3a z++^eGhLAXsq_~UrGeL;@Bd4~()Q_X}Ue{r7n6;>&TD{;HzL*fski8C|H*Mi3k619d zPL~`@%(?42O^+z=(QPgW9H6!o?NW&W>&QEk(^h{dBb9+j`p2lf`+KS7l<(y=1~N>Z z-W4q0{hOSMt6vm5@`;0R=)K2{v4?;tqx-wuQyS8iYT~e$OeFH@nDCd37DPOXgh`0G zu7Ob(Zm5A1cBwhn$(NA(FMNE{j&RLbMuPXsFZzaZK)WnD+IguMJLAgYRILJFLI~Ls z!SPYgFyPS5nVA}`+G$WywO}J`w#TSfsFGF*CKft{0!*7+%{7y-zTQ)9b9tWlT0#Q! z1!Z#?Hzumq#+*lp#Y_HUH*``$ou(zBkdCvrkhr^&yGwi@9u)o&SP0_8W*=_M-%ky^ zsoutz&F4e;_QZKG`ii`;7=wC?3>yx@z}w^E69ucvXhA$?5kW!D>pY%7@M>~+An$lE zR={AHv;fRD3!E^XgO$e1d~8*FP`@!(*=)Z!7o-?X#cN8LHyNH8_~5WNUv1}`lVJ4{ zRf7H09x)`E=M>81HhD%q4}w_@=hNx;^bs_VwnC~7HOf!3X=Pt>swU5RhESiawUyz8 z6XmKw(+W4@EP&G>#O?=6x+Xn;2~UL~4Hbg;{1)+xhw?qx?ob_xcFXQ5V`$>yc<#$Z zE)q>n1k~1k%MAwiWSBGkX4zbCVy314%-QvlCx-fOCYN@CR4@q! zb)4Rl-<`Xj4|M$AUtaKfc(NHQMy9!;ZAW5bTmS6L4oZ=BC`jkhG&8B_Z8+Jo)8lG4 zrY*9;48>91P(6OBLg@S{r1-RFYXD?OP532DN}F3I3~EMgm0rYm?EJ{K-tI(GJ&xR` zo;vkh$UO{U%GJwWGX#!@yi8NWYESD>?K&3rX~kW$3AHQ21e!vs!|9KdO@CiDV_^m) z3*kuYqnDe?Q&BhU1f;5_K;s-|km!K)J|vzB*+oidD2S{lw}3`Ej&SFItZmbmpAw8`@AAS->gv4AsUqowwM3)0nPV=th(vAcE$4Y~y#AO+Kk{C+ z1Q#b+zFZn>bSN$+01Yf6z7IFN`zp#-+{{AtB+jk`A+1V{}V~$yT7mi0`5yOip+_PukkIIPO z2-t`R<`Ro5;v_o>9x=Q6IfT}17%yPV7Uid|B^@NaJn zmqd8T)D>ey8b%Fh1W6bsAz@0mA6KBCv!JhQM7?ZJ3o>;vU_I_h0+>S!Int=Gh3~d0 zM_KEJ!_>?W;WgJ{yP<&m&17|H11cDE9xYI2SJ2Gf5nKU2{9MG!e&Y)V5Qqr!xQk`#vW-;P2{(D{^xX8hJnYc#?*8~x6G;w0FAa)avGnsA zgLe;@@g+}&ZipA+yeLo;TtA-cm;P-b;(4lM0QinTaP@Vk3=fx$n}~#^x5i-9T%Y=w zBF>7LhyGWU3D_38Y(k8MIq0BDR-V$wz8b zaAJ-0IW~4;P!H}QVYI$rM0zr12&2~icr;#r+Ctt~FrpePI7Q_ZNhXE0pIe0+u=SscU zcPOL!W2Lr({nJWS`TLdn=bNpmi>cF}>M@1?c=<0%XjdnvKbG&mX8%67O-@uKyRx27ukE|RfJ5-00;^ziz-k;E#B$Pk zjU}3`>Y-unm~%$Pw(=TZcS8*s)gH6k*Wq)E8J1Q(VfeGu9^kv&1Wr@YiQ!;LM17xg zp^wHwxMXUhLzxA7OSbIDvy2+P<_-o8v#4&Zs&I4P?!vM|fmF8=HC-EvETvdL?0hSO z)e#Hjn2?ys*IL*ESe_6uWd!joLx{1F>-d38orM1Mio?D`CTE>m%h=ox&l*Vw<}*El zoM1CZb;6#SNBys+7RvVtj8o;03}-FqTqhYhl_Un1B0=(;$SDvY@;1{kbaz3R2kK>AYH;z}OY5W+Zy2_27^RV-z- zQK7mjoF<)GwYm~ZCo$Bg$EsnorNG1%uf;D!3}ko;=+wCS+1a(E9V0cW!MCm9&X}{; zCTB_~LMJ{noESL9ODGk_(gbbWk4Eed3?35nRmg!Yh~CH+A#n7}E^5^|TWX5+V7ql? z=(2RVp}EQWiXMVT(l)GhbM-~FTLyQzn7L};Gl#-(S|KB!L3p3N)f(v*#=*1f8T^b( zM8JP~Vj(Lb!LbvBXe*?PeAT+bal4%s=Y}?n)uw(CVU0aCsue*LFq{IQ*#-wQZ7F)T z?cX#`V7}=X&e>)LjlS_Fi=153mpoMXV=2JNF|mlN=r$flOs1pUtouOIb$343O9FwCHbg`w0qgD^-OQE}mFxrEce>mi#yhQp4l zEgs9lw9Jm)xGLpb>|sSPNXTlVJveO4a*TqUs`~K|YtlJVq%b1t>t!Uhejc4N3O$s_q6oTMc2k{7H{^IEy~lW@-XfcNVPnh6cqF%uFwGve zQ5#Y}~`Rp<$eqz!7CevaXp9%6tnd zA05|kLoTAsG-G-Z)tW(FX+Dm+hh{2?w2_GstK|}8i$4aCL`$FmcX;B=UXh|45yhie z$E{E+tApcG)a+a$3d#+BLi*gp7U#L^8IRYqita~j4{v9gtpQ_GqPFCXj#g@$^90cE zpX{-ESC9NX;+LSNl-O}$TQ3bZb#b#-F5Y2uSJ#`>>K~FFSvZkk;nxI7_8imnozvRG zzl(@~`~J+;Mr7b>r1U~8#^-vzr@Z&Wu3w6^T!0ed2AL3da{dH8#Y6F;AR#i?CCX$u^+oLD69$-%(_&p*n}j(kALXzJh2p zYg0-)lD0xA>dAW$IAQTTagy?3jJ_By%E29`?zvgIsn6>ORDTUuc};i2z-%hjnVue<8K zjk9WUm5r+aVTM}6d6iW==lr7n(1h+p%JvKTi!PcSXR}9{QpQy@bJK1csv3b2@@B-P zCCZ)?NAouKN%hPLMBSoTqy~4<4BBuJ2b*#%?c5!2gq%&`OrFQN(~#|wU3?NA28>s1 z6>}DI)}%jkMPV|YI5O!BEyr-x)(Hy_#zym1K!_S#M9A4+I!>fttTe)qpFWBFqbT~n z%X0ePtZILsX812fbc~aD91&)+?J0z8w4&9tl_*&7zbQyk?94~cZ1&@GcJu8~WMy{q z`NurmC>7{H60@Am&j%Ux=99;l{G0w?Ms{HO1JBbls@$G0=+t#G#_k(wL$Ewlb3>T) zVcxb!uGJ8lH&4KU!ixyij&s{i<39Q;$QYve0AFpPL*K$+8?KQWHf0{?KR~-br2}(Y zShAcl@-rJElf*DyZEYg-B$#!WLDOX+rIpx4(ox%sEOmB4XO(Vwyh`r@FH`}9l2T(W zR5)8{VG1m7S*a~-RW46&BB2_^tN+?a1iN~J!T@}!v^7+Xp{MqM=K>vn-&v-gVii>b zORroz^Fonqz-a*?fcB{|xLg%kmA`|x0e9qWEl&(hY~Ha<1`Y;+G39n_;&{aPWT z4?h+K*k9yQ&F4~o8FHp#tFZ;(0P;iAI?cvJH{HgP^rs2H0G(s0kulb)CAg(^OM6}U zSX9iIWOEEb6$9CPa!&-5d$5N&1`j?I;e-Gj-~hDni+?+H03)brUh$M6N?*+sbdle& z3G;JY$2mf@tdZg;4x9*gYvHu$R|_2tQU)S4dUIgW$#2R0E_)G3qV2LvMACK%ky#tM zgqV)1%a0e7Sja6J;Rh>p;`CBF}-?{sQAw8;eIXBu1TCzF3l$7sNT z3!BF)jQcf`s1P%C>?o_NiVFU+nJSu&O!PF7$Xe&^x6}C*?Mf!6-nZx^$RA zZD3#ep}{X63m^)ENQUU04&+GY5Z=J4!#a*{&29p7sUtXg=NRtV_QHE(bo(~LW#cw#YR_frK$3k5DC25!1I}lAJ{U z$l0_tfrf7?PZ@pZ#P)69uqH4VLb-7a@Go{YAdT>~cqY8lt_0bfq|00Gi|1tFUY*1a-9aR+QXO>~MO4_)e5g`QIo6$+iesRW=fGe`ZB5Wd`(*;cyh-fv*VKxTNv2t6 zwi%ZNK;&-(Y`yJ|?Iw)(XWC(k`X|FBHi-tIq?!X<%+;Jx>_+cU_)gyQ-@a?|O`(!C z7onQp)C)aYMCYC=T9iODo@wPoL@)#?MKPYeAr=7B0oEJYsJ*-ZdDjYvHve;!{s1iu z4#JzlW5exh$qUDoo+2PyHQRXrXY59r>mCq!nRRaB$AMCP33|yfpf>7UhTJS9)xAZ~ zrPXv9pI&(?MJDl3R?_U!%czN*RMP50YYTiO7anv$HcQ<EQCJu+Ve9ap{1&$f!!a90 zrg~svi5PFAkm?{&b9`8eGNymRC0+_G#zq$Q28Xvu62CCFi1B0wc{`Fy0Q1T_9YNfQ zaBIjWDW1ZqP_B8>c9&$STKa0Dfi%OIE!+FSk|cvB37EnCSO~83(2-VMsDg-IthfVn zCQG5Zx?P4?J%+Qg5bf&)&-Zz>f#z2gAYzXg!t1b7F^E

P6S>Hpa!>81@|`*xI;V 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 collection) { + public static Resolution findBestPictureSize(Context context, Collection collection) { if (collection.isEmpty()) { return null; } @@ -36,7 +35,7 @@ final class CameraUtils { return bestPictureResolution; } - static Resolution findBestPreviewSize(Context context, Collection collection) { + public static Resolution findBestPreviewSize(Context context, Collection collection) { if (collection.isEmpty()) { return null; } diff --git a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeDecoder.java b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeDecoder.java similarity index 98% rename from lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeDecoder.java rename to lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeDecoder.java index f7ea79b..af56d03 100644 --- a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeDecoder.java +++ b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeDecoder.java @@ -1,4 +1,4 @@ -package com.android.sdk.qrcode.zxing; +package com.android.sdk.qrcode; import android.graphics.Bitmap; import android.graphics.BitmapFactory; diff --git a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeEncoder.java b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeEncoder.java similarity index 99% rename from lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeEncoder.java rename to lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeEncoder.java index 1033ba5..dfead74 100644 --- a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/QRCodeEncoder.java +++ b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeEncoder.java @@ -1,4 +1,4 @@ -package com.android.sdk.qrcode.zxing; +package com.android.sdk.qrcode; import android.graphics.Bitmap; import android.graphics.Canvas; diff --git a/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeView.kt b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeView.kt index 249e49d..e82ad9b 100644 --- a/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeView.kt +++ b/lib_qrcode/src/main/java/com/android/sdk/qrcode/QRCodeView.kt @@ -18,14 +18,14 @@ abstract class QRCodeView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : FrameLayout(context, attrs, defStyleAttr), ProcessDataTask.Delegate { - private lateinit var mCameraView: CameraView - private lateinit var mFotoapparat: Fotoapparat + private lateinit var cameraView: CameraView + private lateinit var fotoapparat: Fotoapparat - private lateinit var mScanBoxView: ScanBoxView - protected var mDelegate: Delegate? = null + private lateinit var scanBoxView: ScanBoxView + private var delegate: Delegate? = null - private var mProcessDataTask: ProcessDataTask? = null - protected var mSpotAble = false + private var dataTask: ProcessDataTask? = null + protected var spotAble = false private val framingRect = Rect() private var framingRectInPreview: Rect? = null @@ -35,16 +35,16 @@ abstract class QRCodeView @JvmOverloads constructor( } private fun initView(context: Context, attrs: AttributeSet?) { - mCameraView = CameraView(getContext()) - mScanBoxView = ScanBoxView(getContext()) - mScanBoxView.initCustomAttrs(context, attrs) - addView(mCameraView) - addView(mScanBoxView) + cameraView = CameraView(getContext()) + scanBoxView = ScanBoxView(getContext()) + scanBoxView.initCustomAttrs(context, attrs) + addView(cameraView) + addView(scanBoxView) try { - mFotoapparat = createFotoapparat() + fotoapparat = createFotoapparat() } catch (e: Exception) { e.printStackTrace() - mDelegate?.onScanQRCodeOpenCameraError(e) + delegate?.onScanQRCodeOpenCameraError(e) } } @@ -65,27 +65,27 @@ abstract class QRCodeView @JvmOverloads constructor( return Fotoapparat( context = this@QRCodeView.context, - view = mCameraView, + view = cameraView, logger = logcat(), lensPosition = back(), cameraConfiguration = configuration, cameraErrorCallback = { - mDelegate?.onScanQRCodeOpenCameraError(it) + delegate?.onScanQRCodeOpenCameraError(it) } ) } private fun processFrame(frame: Frame) { - val processDataTask = mProcessDataTask - if (mSpotAble && (processDataTask == null || processDataTask.isCancelled)) { + val processDataTask = dataTask + if (spotAble && (processDataTask == null || processDataTask.isCancelled)) { - mProcessDataTask = object : ProcessDataTask(frame.image, frame.size, frame.rotation, this) { + dataTask = object : ProcessDataTask(frame.image, frame.size, frame.rotation, this) { override fun onPostExecute(result: String?) { - if (mSpotAble) { + if (spotAble) { if (!result.isNullOrEmpty()) { try { - mDelegate?.onScanQRCodeSuccess(result) + delegate?.onScanQRCodeSuccess(result) stopSpot() } catch (e: Exception) { e.printStackTrace() @@ -105,21 +105,21 @@ abstract class QRCodeView @JvmOverloads constructor( * @param delegate 扫描二维码的代理 */ fun setDelegate(delegate: Delegate) { - mDelegate = delegate + this.delegate = delegate } /** * 显示扫描框 */ fun showScanRect() { - mScanBoxView.visibility = View.VISIBLE + scanBoxView.visibility = View.VISIBLE } /** * 隐藏扫描框 */ fun hiddenScanRect() { - mScanBoxView.visibility = View.GONE + scanBoxView.visibility = View.GONE } /** @@ -127,7 +127,7 @@ abstract class QRCodeView @JvmOverloads constructor( */ fun startCamera() { try { - mFotoapparat.start() + fotoapparat.start() } catch (throwable: Throwable) { throwable.printStackTrace() } @@ -140,7 +140,7 @@ abstract class QRCodeView @JvmOverloads constructor( fun stopCamera() { stopSpotAndHiddenRect() try { - mFotoapparat.stop() + fotoapparat.stop() } catch (throwable: Throwable) { throwable.printStackTrace() } @@ -151,7 +151,7 @@ abstract class QRCodeView @JvmOverloads constructor( */ fun startSpot() { postDelayed({ - mSpotAble = true + spotAble = true startCamera() }, 100) } @@ -161,7 +161,7 @@ abstract class QRCodeView @JvmOverloads constructor( */ fun stopSpot() { cancelProcessDataTask() - mSpotAble = false + spotAble = false } /** @@ -186,14 +186,14 @@ abstract class QRCodeView @JvmOverloads constructor( * @return */ val isScanBarcodeStyle: Boolean - get() = mScanBoxView.isBarcode + get() = scanBoxView.isBarcode /** * 打开闪光灯 */ fun openFlashlight() { try { - mFotoapparat.updateConfiguration(UpdateConfiguration(flashMode = firstAvailable(torch(), off()))) + fotoapparat.updateConfiguration(UpdateConfiguration(flashMode = firstAvailable(torch(), off()))) } catch (e: Exception) { e.printStackTrace() } @@ -205,7 +205,7 @@ abstract class QRCodeView @JvmOverloads constructor( */ fun closeFlashlight() { try { - mFotoapparat.updateConfiguration(UpdateConfiguration(flashMode = firstAvailable(off()))) + fotoapparat.updateConfiguration(UpdateConfiguration(flashMode = firstAvailable(off()))) } catch (e: Exception) { e.printStackTrace() } @@ -216,29 +216,29 @@ abstract class QRCodeView @JvmOverloads constructor( * 销毁二维码扫描控件 */ fun onDestroy() { - mDelegate = null + delegate = null } /** * 取消数据处理任务 */ protected fun cancelProcessDataTask() { - mProcessDataTask?.cancelTask() - mProcessDataTask = null + dataTask?.cancelTask() + dataTask = null } /** * 切换成扫描条码样式 */ fun changeToScanBarcodeStyle() { - mScanBoxView.isBarcode = true + scanBoxView.isBarcode = true } /** * 切换成扫描二维码样式 */ fun changeToScanQRCodeStyle() { - mScanBoxView.isBarcode = false + scanBoxView.isBarcode = false } fun setDebug(debug: Boolean) { @@ -246,7 +246,7 @@ abstract class QRCodeView @JvmOverloads constructor( } protected fun getFramingRectInPreview(previewWidth: Int, previewHeight: Int): Rect? { - if (!mScanBoxView.getScanBoxAreaRect(framingRect)) { + if (!scanBoxView.getScanBoxAreaRect(framingRect)) { return null } if (framingRectInPreview == null) { @@ -274,7 +274,7 @@ abstract class QRCodeView @JvmOverloads constructor( /** * 处理打开相机出错 */ - fun onScanQRCodeOpenCameraError(error: java.lang.Exception) + fun onScanQRCodeOpenCameraError(error: Exception) } diff --git a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/ZXingView.java b/lib_qrcode/src/main/java/com/android/sdk/qrcode/ZXingView.java similarity index 94% rename from lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/ZXingView.java rename to lib_qrcode/src/main/java/com/android/sdk/qrcode/ZXingView.java index 254c02d..54d4413 100644 --- a/lib_qrcode/src/main/java/com/android/sdk/qrcode/zxing/ZXingView.java +++ b/lib_qrcode/src/main/java/com/android/sdk/qrcode/ZXingView.java @@ -1,11 +1,9 @@ -package com.android.sdk.qrcode.zxing; +package com.android.sdk.qrcode; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; -import com.android.sdk.qrcode.QRCodeView; -import com.android.sdk.qrcode.Debug; import com.google.zxing.BinaryBitmap; import com.google.zxing.MultiFormatReader; import com.google.zxing.PlanarYUVLuminanceSource;