From e4cdc39ad8d381254f76ccb2e1f94aad9e661a78 Mon Sep 17 00:00:00 2001 From: max Date: Fri, 30 Aug 2024 15:54:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BF=AE=E6=AD=A3=E5=8F=8D=E9=A5=8B?= =?UTF-8?q?=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 - .../chwl/app/avroom/widget/RoomEffectView.kt | 8 +- .../com/chwl/app/home/fragment/MeFragment.kt | 2 - .../com/chwl/app/ui/im/RouterHandler.java | 4 +- .../com/chwl/app/ui/widget/GiftDialog.java | 4 +- .../widget/dynamicface/DynamicFaceDialog.java | 4 +- .../com/chwl/app/vip/VipCenterActivity.kt | 69 +- .../java/com/chwl/app/vip/VipMainActivity.kt | 621 ------------------ .../VipCenterIdentificationsAdapter.kt | 17 +- .../res/drawable-xhdpi/ic_vip_setting.webp | Bin 487 -> 0 bytes .../drawable-xxhdpi/ic_main_tab_square.webp | Bin 16790 -> 17758 bytes .../ic_main_tab_square_pressed.webp | Bin 21196 -> 22474 bytes .../res/drawable-xxhdpi/ic_vip_setting.webp | Bin 0 -> 2080 bytes .../ludo_game_logo.webp | Bin .../vip_center_back_button.png | Bin .../vip_center_background.webp | Bin .../vip_center_help_button.webp | Bin .../vip_center_identification_bubble_lv4.webp | Bin .../vip_center_identification_bubble_lv5.webp | Bin .../vip_center_identification_bubble_lv6.webp | Bin .../vip_center_identification_bubble_lv7.webp | Bin .../vip_center_identification_bubble_lv8.webp | Bin .../vip_center_identification_bubble_lv9.webp | Bin .../vip_center_identification_card.webp | Bin .../vip_center_identification_entry_lv4.webp | Bin .../vip_center_identification_entry_lv5.webp | Bin .../vip_center_identification_entry_lv6.webp | Bin .../vip_center_identification_entry_lv7.webp | Bin .../vip_center_identification_entry_lv8.webp | Bin .../vip_center_identification_entry_lv9.webp | Bin .../vip_center_identification_mic_lv3.webp | Bin .../vip_center_identification_mic_lv4.webp | Bin .../vip_center_identification_mic_lv5.webp | Bin .../vip_center_identification_mic_lv6.webp | Bin .../vip_center_identification_mic_lv7.webp | Bin .../vip_center_identification_mic_lv8.webp | Bin .../vip_center_identification_mic_lv9.webp | Bin ...ip_center_identification_roomcard_lv1.webp | Bin ...ip_center_identification_roomcard_lv2.webp | Bin ...ip_center_identification_roomcard_lv3.webp | Bin ...ip_center_identification_roomcard_lv4.webp | Bin ...ip_center_identification_roomcard_lv5.webp | Bin ...ip_center_identification_roomcard_lv6.webp | Bin ...ip_center_identification_roomcard_lv7.webp | Bin ...ip_center_identification_roomcard_lv8.webp | Bin ...ip_center_identification_roomcard_lv9.webp | Bin ...center_identification_vipidentity_lv1.webp | Bin ...center_identification_vipidentity_lv2.webp | Bin ...center_identification_vipidentity_lv3.webp | Bin ...center_identification_vipidentity_lv4.webp | Bin ...center_identification_vipidentity_lv5.webp | Bin ...center_identification_vipidentity_lv6.webp | Bin ...center_identification_vipidentity_lv7.webp | Bin ...center_identification_vipidentity_lv8.webp | Bin ...center_identification_vipidentity_lv9.webp | Bin .../vip_center_label_decorate.webp | Bin .../vip_center_level_1.webp | Bin .../vip_center_level_2.webp | Bin .../vip_center_level_3.webp | Bin .../vip_center_level_4.webp | Bin .../vip_center_level_5.webp | Bin .../vip_center_level_6.webp | Bin .../vip_center_level_7.webp | Bin .../vip_center_level_8.webp | Bin .../vip_center_level_9.webp | Bin .../vip_center_purchase_bg.webp | Bin .../vip_center_purchase_button_bg.webp | Bin .../vip_center_purchase_coin.webp | Bin app/src/main/res/layout/activity_main.xml | 1 + .../main/res/layout/activity_vip_center.xml | 6 +- .../vip_center_idnetifications_layout.xml | 22 +- .../app/community/square/SquareFragment.java | 10 +- .../res/layout/fragment_square.xml | 4 +- .../res/layout/game_home_fragment.xml | 2 +- .../res/layout/item_vip_auth.xml | 6 +- app/xml-class-mapping.txt | 2 +- 76 files changed, 76 insertions(+), 709 deletions(-) delete mode 100644 app/src/main/java/com/chwl/app/vip/VipMainActivity.kt delete mode 100644 app/src/main/res/drawable-xhdpi/ic_vip_setting.webp create mode 100644 app/src/main/res/drawable-xxhdpi/ic_vip_setting.webp rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/ludo_game_logo.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_back_button.png (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_background.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_help_button.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_bubble_lv9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_card.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_entry_lv9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv3.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_mic_lv9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv1.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv2.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv3.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_roomcard_lv9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv1.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv2.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv3.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_identification_vipidentity_lv9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_label_decorate.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_1.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_2.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_3.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_4.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_5.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_6.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_7.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_8.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_level_9.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_purchase_bg.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_purchase_button_bg.webp (100%) rename app/src/main/res/{drawable-xhdpi => drawable-xxhdpi}/vip_center_purchase_coin.webp (100%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 37ddb7bee..0461029ea 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -732,9 +732,6 @@ - diff --git a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt index 9b458b4ba..b8b006ede 100644 --- a/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt +++ b/app/src/main/java/com/chwl/app/avroom/widget/RoomEffectView.kt @@ -1442,7 +1442,7 @@ class RoomEffectView @JvmOverloads constructor( enterRoomEffects = remoteExtension[UserInfo.ENTER_ROOM_EFFECTS] as String? } val wrapNick = "【" + targetNicks[0].subAndReplaceDot(7) + "】" + enterText - + if (!TextUtils.isEmpty(enterRoomEffects)) { playMemberInAnimByUrl(wrapNick, enterRoomEffects) } else { @@ -1496,7 +1496,11 @@ class RoomEffectView @JvmOverloads constructor( private fun playMemberInAnim(text: String, svgaVideoEntity: SVGAVideoEntity) { binding.roomMenberInSvga.visibility = VISIBLE - binding.roomMenberInSvga.loops = 1 + if (svgaVideoEntity.frames == 1) { + binding.roomMenberInSvga.loops = 50 + } else { + binding.roomMenberInSvga.loops = 1 + } binding.roomMenberInSvga.clearsAfterStop = true val dynamicEntity = SVGADynamicEntity() val textPaint = TextPaint() diff --git a/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt index f751d6055..6ad15723c 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/MeFragment.kt @@ -36,7 +36,6 @@ import com.chwl.app.ui.wallet.WalletActivity import com.chwl.app.ui.webview.CommonWebViewActivity import com.chwl.app.view.GenderAgeTextView import com.chwl.app.vip.VipCenterActivity -import com.chwl.app.vip.VipMainActivity import com.chwl.app.vip.VipViewModel import com.chwl.core.auth.AuthModel import com.chwl.core.initial.InitialModel @@ -354,7 +353,6 @@ class MeFragment : BaseFragment(), View.OnClickListener { } R.id.iv_vip -> { -// VipMainActivity.start(mContext) VipCenterActivity.start(mContext) //进入贵族中心埋点 val goldWalletInfo = PayModel.get().currentWalletInfo diff --git a/app/src/main/java/com/chwl/app/ui/im/RouterHandler.java b/app/src/main/java/com/chwl/app/ui/im/RouterHandler.java index 5c2afc4d2..d88687a48 100644 --- a/app/src/main/java/com/chwl/app/ui/im/RouterHandler.java +++ b/app/src/main/java/com/chwl/app/ui/im/RouterHandler.java @@ -9,6 +9,7 @@ import com.chwl.app.earn.activity.EarnRecordActivity; import com.chwl.app.pay.activity.GiveGoldActivity; import com.chwl.app.ui.feedback.FeedbackActivity; import com.chwl.app.ui.game_team.record.GameTeamRecordActivity; +import com.chwl.app.vip.VipCenterActivity; import com.chwl.core.module_hall.hall.bean.H5FamilyInfo; import com.chwl.core.module_hall.hall.bean.UserClanInfo; import com.trello.rxlifecycle3.components.support.RxAppCompatActivity; @@ -38,7 +39,6 @@ import com.chwl.app.ui.pay.ChargeActivity; import com.chwl.app.ui.setting.ModifyPwdActivity; import com.chwl.app.ui.user.activity.UserInfoActivity; import com.chwl.app.ui.webview.CommonWebViewActivity; -import com.chwl.app.vip.VipMainActivity; import com.chwl.core.DemoCache; import com.chwl.core.auth.AuthModel; import com.chwl.core.community.event.SquareTaskEvent; @@ -216,7 +216,7 @@ public class RouterHandler { ModifyPwdActivity.start(context, ModifyPwdActivity.LOGIN_PWD); break; case RouterType.VIP_MAIN: - VipMainActivity.start(context); + VipCenterActivity.start(context); break; case RouterType.CP_INVITE: CpInviteRecordActivity.Companion.start(context, false); diff --git a/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java b/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java index cba82352b..16d98b868 100644 --- a/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java +++ b/app/src/main/java/com/chwl/app/ui/widget/GiftDialog.java @@ -43,6 +43,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.chwl.app.ui.adapter.StarWeekAdapter; import com.chwl.app.ui.webview.DialogWebViewActivity; +import com.chwl.app.vip.VipCenterActivity; import com.chwl.core.UriProvider; import com.chwl.core.gift.bean.LuckyBagNoticeInfo; import com.chwl.core.gift.bean.SimpleUserInfo; @@ -74,7 +75,6 @@ import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil; import com.chwl.app.ui.widget.recyclerview.decoration.VerticalDecoration; import com.chwl.app.utils.RegexUtil; import com.chwl.app.utils.SpannableBuilder; -import com.chwl.app.vip.VipMainActivity; import com.chwl.core.auth.AuthModel; import com.chwl.core.bean.RoomQueueInfo; import com.chwl.core.gift.GiftModel; @@ -1467,7 +1467,7 @@ public class GiftDialog extends BottomSheetDialog implements View.OnClickListene showEasyPopup(); break; case R.id.iv_open_noble: - VipMainActivity.start(context); + VipCenterActivity.start(context); //进入贵族中心埋点 HashMap map = new HashMap<>(5); map.put(IReportConstants.PAYPAGE_TYPE, IReportConstants.THREE); diff --git a/app/src/main/java/com/chwl/app/ui/widget/dynamicface/DynamicFaceDialog.java b/app/src/main/java/com/chwl/app/ui/widget/dynamicface/DynamicFaceDialog.java index 59feb3bba..6b4423504 100644 --- a/app/src/main/java/com/chwl/app/ui/widget/dynamicface/DynamicFaceDialog.java +++ b/app/src/main/java/com/chwl/app/ui/widget/dynamicface/DynamicFaceDialog.java @@ -16,12 +16,12 @@ import android.widget.TextView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; +import com.chwl.app.vip.VipCenterActivity; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetDialog; import com.chwl.app.R; import com.chwl.library.common.util.Utils; import com.chwl.app.common.widget.dialog.DialogManager; -import com.chwl.app.vip.VipMainActivity; import com.chwl.core.market_verify.MarketVerifyModel; import com.chwl.core.room.event.FaceIsReadyEvent; import com.chwl.core.room.face.DynamicFaceModel; @@ -309,7 +309,7 @@ public class DynamicFaceDialog extends BottomSheetDialog tvNormalTab.setSelected(true); } } else if (v.getId() == R.id.iv_open_noble) { - VipMainActivity.start(context); + VipCenterActivity.start(context); } } diff --git a/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt b/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt index 53617e86a..11601a12b 100644 --- a/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt +++ b/app/src/main/java/com/chwl/app/vip/VipCenterActivity.kt @@ -119,13 +119,8 @@ class VipCenterActivity : BaseViewBindingActivity(), } private fun initView() { - this.banner = findViewById(R.id.banner_view) -// if (UiUtils.isRtl(AppUtils.getApp())) { -//// banner.setBannerGalleryEffect(5, 5, 5) -// } else { - banner.setBannerGalleryEffect(20, 20, 15) -// } - + banner = findViewById(R.id.banner_view) + banner.setBannerGalleryEffect(20, 20, 15) banner.addOnPageChangeListener(object : OnPageChangeListener { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) { // 页面滑动中 @@ -147,17 +142,18 @@ class VipCenterActivity : BaseViewBindingActivity(), recyclerView.layoutManager = GridLayoutManager(this, 2) } + private fun updateVipCenterBar() { mTitleBar = findViewById(R.id.title_bar) - if (mTitleBar != null) { - mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.vip_center_help_button) { - override fun performAction(view: View) { - CommonWebViewActivity.start( - this@VipCenterActivity, - UriProvider.getVipHelpUrl()) - } - }) - } +// if (mTitleBar != null) { +// mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.vip_center_help_button) { +// override fun performAction(view: View) { +// CommonWebViewActivity.start( +// this@VipCenterActivity, +// UriProvider.getVipHelpUrl()) +// } +// }) +// } } private fun handleAuthAdapter() { @@ -222,23 +218,23 @@ class VipCenterActivity : BaseViewBindingActivity(), } vipViewModel.myVipInfoLiveData.observe(this) { + val adapter = vipViewModel.vipInfosLiveData.value?.let { it1 -> + VipCenterBannerAdapter(this, + it1, it) + } + banner.setAdapter(adapter, false) it?.let { - val adapter = vipViewModel.vipInfosLiveData.value?.let { it1 -> - VipCenterBannerAdapter(this, - it1, it) - } - banner.setAdapter(adapter, false) - lifecycleScope.launch { - delay(500) +// lifecycleScope.launch { +// delay(500) banner.setCurrentItem(it.vipLevel-1) - } -// bannerView.post { -// binding.bannerView.setPageMargin(UIUtil.dip2px(mContext, 8.0)) -// .setScrollDuration(800) -// .setOnPageClickListener { _: View?, position: Int -> -// } -// .create(it) // } + if (it.ownAuthTypes?.contains(13) == true && mTitleBar.actionCount == 1) { + mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.ic_vip_setting) { + override fun performAction(view: View?) { + VipSettingActivity.start(this@VipCenterActivity) + } + }, 0) + } } ?: run { // binding.layoutLevelInfo.isVisible = false // binding.layoutLevelProgress.isVisible = false @@ -252,7 +248,7 @@ class VipCenterActivity : BaseViewBindingActivity(), if (it.comingSoon == 2) { /// 处理敬请期待情况, 补充显示 SVGA binding.slAuth.isVisible = false - binding.bannerView.isVisible = false +// binding.bannerView.isVisible = false binding.layoutBottomPanel.isVisible = false } else { val myVipInfo = vipViewModel.myVipInfoLiveData.value @@ -402,6 +398,9 @@ class VipCenterActivity : BaseViewBindingActivity(), private fun refreshBottomArea() { val currentPageVipInfo = vipViewModel.vipInfosLiveData.value?.get(currentIndex) currentPageVipInfo?.let { + currentChargeInfo = chargeList?.firstOrNull { + it.prodDesc?.toIntOrNull() == currentPageVipInfo.vipLevel + } if (it.buyAmount == 0) { binding.tvNoticeText.visibility = View.VISIBLE binding.tvAdditionalText.visibility = View.GONE @@ -419,14 +418,6 @@ class VipCenterActivity : BaseViewBindingActivity(), myVipIsHighLevel = myVipInfo.vipLevel >= currentPageVipInfo.vipLevel } - if (myVipIsHighLevel) { - binding.layoutBottomPanel.alpha = 0.5F - binding.layoutBottomPanel.isEnabled = false - } else { - binding.layoutBottomPanel.alpha = 1F - binding.layoutBottomPanel.isEnabled = true - } - binding.tvNoticeText.visibility = View.GONE binding.tvAdditionalText.visibility = View.VISIBLE binding.tvOpenVip.visibility = View.VISIBLE diff --git a/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt b/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt deleted file mode 100644 index 853fd75b2..000000000 --- a/app/src/main/java/com/chwl/app/vip/VipMainActivity.kt +++ /dev/null @@ -1,621 +0,0 @@ -package com.chwl.app.vip - -import android.annotation.SuppressLint -import android.content.Context -import android.content.Intent -import android.util.Log -import android.view.View -import android.widget.LinearLayout -import android.widget.TextView -import androidx.activity.viewModels -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.view.children -import androidx.core.view.isInvisible -import androidx.core.view.isVisible -import androidx.lifecycle.lifecycleScope -import androidx.recyclerview.widget.GridLayoutManager -import com.example.module_base.support.billing.IBillingResult -import com.example.module_base.support.billing.IBillingService -import com.example.module_base.support.billing.IProductDetails -import com.example.module_base.support.billing.IPurchase -import com.example.module_base.support.google.IGoogleService -import com.netease.nim.uikit.StatusBarUtil -import com.netease.nim.uikit.common.util.sys.TimeUtil -import com.opensource.svgaplayer.SVGADrawable -import com.opensource.svgaplayer.SVGAImageView -import com.opensource.svgaplayer.SVGAParser -import com.opensource.svgaplayer.SVGAVideoEntity -import com.chwl.app.R -import com.chwl.app.base.BaseViewBindingActivity -import com.chwl.app.base.TitleBar -import com.chwl.app.common.EmptyViewHelper -import com.chwl.app.databinding.ActivityVipMainBinding -import com.chwl.app.ui.pay.ChargeActivity -import com.chwl.app.ui.setting.ModifyPwdActivity -import com.chwl.app.ui.utils.RVDelegate -import com.chwl.app.ui.webview.CommonWebViewActivity -import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator -import com.chwl.app.vip.adapter.VipAuthAdapter -import com.chwl.app.vip.adapter.VipMagicIndicatorAdapter -import com.chwl.app.vip.adapter.VipRebateAdapter -import com.chwl.app.vip.dialog.SelectPayTypeDialog -import com.chwl.app.vip.dialog.VipAuthDetailsDialog -import com.chwl.app.vip.dialog.VipRemainTimeDialog -import com.chwl.core.UriProvider -import com.chwl.core.pay.PayModel -import com.chwl.core.pay.bean.ChargeBean -import com.chwl.core.pay.bean.PayRecordId -import com.chwl.core.utils.net.IgnoreException -import com.chwl.core.vip.bean.VipAuthInfo -import com.chwl.core.vip.bean.VipInfo -import com.chwl.core.utils.extension.toast -import com.chwl.core.vip.VipOpenEvent -import com.chwl.library.utils.SingleToastUtil -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import org.greenrobot.eventbus.EventBus -import org.greenrobot.eventbus.Subscribe -import org.greenrobot.eventbus.ThreadMode -import java.net.MalformedURLException -import java.net.URL - -class VipMainActivity : BaseViewBindingActivity(), - VipMagicIndicatorAdapter.OnItemSelectListener, IBillingService.Listener { - - companion object { - - @JvmStatic - fun start(context: Context) { - val starter = Intent(context, VipMainActivity::class.java) - context.startActivity(starter) - } - - private const val BIND_CODE_GOLD = 200 - private const val TAG = "VipMainActivity" - } - - private val authAdapter = VipAuthAdapter() - private lateinit var rvDelegate: RVDelegate - private val vipViewModel: VipViewModel by viewModels() - private var billingManager: IBillingService? = null - private var currentChargeInfo: ChargeBean? = null - private var chargeList: List? = null - private val rebateAdapter = VipRebateAdapter() - - @SuppressLint("SetTextI18n") - override fun init() { - EventBus.getDefault().register(this) - initWhiteTitleBar(getString(R.string.vip_center)) - mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.ic_vip_help) { - override fun performAction(view: View) { - CommonWebViewActivity.start(this@VipMainActivity, UriProvider.getVipHelpUrl()) - } - }) - initView() - initObserve() - binding.ivRankList.setOnClickListener { - CommonWebViewActivity.start(this@VipMainActivity, UriProvider.getRankListUrl()) - } - binding.ivTimeHelp.setOnClickListener { - VipRemainTimeDialog.newInstance().show(this) - } - - rvDelegate = RVDelegate.Builder() - .setLayoutManager(GridLayoutManager(this, 3)) - .setRecyclerView(binding.recyclerView) - .setEmptyView( - EmptyViewHelper.createEmptyTextView( - context, - getString(R.string.me_no_search_results) - ) - ) - .setAdapter(authAdapter) - .build() - binding.recyclerView.isNestedScrollingEnabled = false - authAdapter.setOnItemClickListener { _, _, position -> - authAdapter.getItem(position)?.let { - VipAuthDetailsDialog.newInstance(it.descPic, it.authName, it.authIntro).show(this) - } - } - vipViewModel.getVipPageInfo() - - vipViewModel.loadingLiveData.observe(this) { - if (it == true) { - dialogManager.showProgressDialog(this) - } else { - dialogManager.dismissDialog() - } - } - - vipViewModel.authInfosLiveData.observe(this) { - authAdapter.setNewData(it) - } - - vipViewModel.vipInfosLiveData.observe(this) { - it?.let { - initTitleTab(it) - } - } - - vipViewModel.myVipInfoLiveData.observe(this) { - it?.let { - binding.layoutLevelInfo.isVisible = true - binding.layoutLevelProgress.isVisible = true - binding.tvNotOpen.text = - "${getString(R.string.me_current_power_value)}${it.currScore}" - binding.tvCurrValue.text = "${getString(R.string.me_current)}${it.currScore}" - binding.tvCurrLevelName.text = it.vipName - binding.tvKeepValue.text = "${getString(R.string.me_grading)}${it.levelKeepScore}" - if (it.isMaxLevel) { - binding.llNextLevelDesc.isVisible = false - binding.tvMaxLevelHint.isVisible = true - binding.tvUpValue.isVisible = false - } else { - binding.llNextLevelDesc.isVisible = true - binding.tvMaxLevelHint.isVisible = false - binding.tvUpValue.isVisible = true - binding.tvNextLevelName.text = it.nextVipName - binding.tvUpValue.text = "${getString(R.string.me_upgrade)}${it.levelUpScore}" - binding.tvUpgradeValue.text = "${it.levelUpScore - it.currScore}" - } - binding.tvResidueTime.text = TimeUtil.getElapseTimeForVip(it.remainSeconds) - binding.seekBar.max = it.levelUpScore - binding.seekBar.progress = Math.min(it.currScore, it.levelUpScore) - - val currValueParams = - binding.tvCurrValue.layoutParams as ConstraintLayout.LayoutParams - currValueParams.horizontalBias = - Math.min(it.currScore.toFloat() / it.levelUpScore, 1f) - binding.tvCurrValue.layoutParams = currValueParams - - val keepParams = - binding.ivKeepIndicator.layoutParams as ConstraintLayout.LayoutParams - keepParams.horizontalBias = it.levelKeepScore.toFloat() / it.levelUpScore - binding.ivKeepIndicator.layoutParams = keepParams - - if (it.ownAuthTypes?.contains(13) == true && mTitleBar.actionCount == 1) { - mTitleBar.addAction(object : TitleBar.ImageAction(R.drawable.ic_vip_setting) { - override fun performAction(view: View) { - VipSettingActivity.start(this@VipMainActivity) - } - }, 0) - } - - } ?: run { - binding.layoutLevelInfo.isVisible = false - binding.layoutLevelProgress.isVisible = false - binding.slAuth.isVisible = true - binding.tvNotOpen.text = getString(R.string.me_no_aristocracy_yet) - } - } - - vipViewModel.currVipInfoLiveData.observe(this) { - it?.let { - if (it.comingSoon == 2) { - binding.llNotOpen.isVisible = true - binding.slAuth.isVisible = false - binding.layoutBottomPanel.isVisible = false - loadSVGA(binding.ivNotOpenIcon, it.vipLogo) - } else { - binding.slAuth.isVisible = true - binding.llNotOpen.isVisible = false - binding.layoutBottomPanel.isVisible = true - val myVipInfo = vipViewModel.myVipInfoLiveData.value - binding.ivMyLevel.isInvisible = it.vipLevel != myVipInfo?.vipLevel - binding.tvNotOpen.isInvisible = - !(it.vipLevel == myVipInfo?.vipLevel || myVipInfo == null) - loadSVGA(binding.ivVipIcon, it.vipLogo) - binding.tvAuthNum.text = - "${it.ownAuthTypes?.size ?: 0}/${vipViewModel.authInfosLiveData.value?.size ?: 0}" - authAdapter.setVipInfo(it) - authAdapter.notifyDataSetChanged() - loadRebateData(it) - refreshOpenVipState() - } - } ?: run { - getString(R.string.me_failed_to_get_aristocrat_data).toast() - binding.llNotOpen.isVisible = false - binding.slAuth.isVisible = false - } - - } - - vipViewModel.pageLiveData.observe(this) { - it?.let { - binding.magicIndicator.onPageSelected(it) - } - } - - binding.layoutOpenVip.setOnClickListener { - checkBuyVip { - buyVip() - } - } - requestChargeList{ - loadChargeList(it) - } - initBilling() - } - - private fun initBilling() { - billingManager = IGoogleService.newBillingService(this,this) - } - - override fun initWhiteTitleBar(title: String?) { - mTitleBar = findViewById(R.id.title_bar) - if (mTitleBar != null) { - mTitleBar.setTitle(title) - mTitleBar.setImmersive(false) - mTitleBar.setTitleColor(resources.getColor(R.color.white)) - mTitleBar.setLeftImageResource(R.drawable.arrow_left_white) - mTitleBar.setBackgroundResource(R.color.transparent) - mTitleBar.setLeftClickListener { onLeftClickListener() } - } - } - - /** - * 初始化推荐和派对tab - */ - private fun initTitleTab(vipInfos: List) { - val commonNavigator = CommonNavigator(context) - commonNavigator.isEnablePivotScroll = true - commonNavigator.isFollowTouch = false - val magicIndicatorAdapter = - VipMagicIndicatorAdapter( - context, - vipInfos - ) - magicIndicatorAdapter.setOnItemSelectListener(this) - commonNavigator.adapter = magicIndicatorAdapter - binding.magicIndicator.navigator = commonNavigator - commonNavigator.titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE - } - - private fun loadSVGA(svgaImageView: SVGAImageView, svgaUrl: String) { - try { - SVGAParser.shareParser() - .decodeFromURL(URL(svgaUrl), object : SVGAParser.ParseCompletion { - override fun onComplete(videoItem: SVGAVideoEntity) { - val drawable = SVGADrawable(videoItem) - svgaImageView.setImageDrawable(drawable) - svgaImageView.startAnimation() - } - - override fun onError() { - } - }) - } catch (e: MalformedURLException) { - - } - } - - @SuppressLint("SetTextI18n") - override fun onItemSelect(position: Int, view: TextView?) { - vipViewModel.onItemSelect(position) - } - - @Subscribe(threadMode = ThreadMode.MAIN) - fun onVipOpenEvent(vipOpenEvent: VipOpenEvent) { - getString(R.string.me_opening_of_the_aristocracy_successful).toast() - vipViewModel.getVipPageInfo() - } - - override fun needSteepStateBar() = true - - override fun setStatusBar() { - super.setStatusBar() - StatusBarUtil.transparencyBar(this) - } - - /*客户端设置成功回调*/ - @SuppressLint("CheckResult", "SetTextI18n") - override fun onBillingClientSetupFinished() { - Log.i(TAG, "onBillingClientSetupFinished") - val call: ((List) -> Unit) = { list -> - loadChargeList(list) - val productKeys = ArrayList() - list.forEach { - productKeys.add(it.getChargeProdId()) - } - billingManager?.querySkuDetailsAsync(productKeys, - object : IBillingService.ProductDetailsResponseListener { - override fun onProductDetailsResponse( - billingResult: IBillingResult, - productDetails: List - ) { - if (!billingResult.isResponseOk()) { - Log.w( - TAG, - "Unsuccessful query for Error code: " + billingResult.getResponseCode() - ) - } else if (productDetails.isNotEmpty()) { - for (item in list) { - for (skuDetails in productDetails) { - if (skuDetails.getProductId() == item.getChargeProdId()) { - item.productDetails = skuDetails - break - } - } - } - loadChargeList(list) - } - } - }) - } - val list = chargeList - if (list.isNullOrEmpty()) { - requestChargeList{ - call.invoke(it) - } - } else { - call.invoke(list) - } - } - - @SuppressLint("CheckResult") - private fun requestChargeList(call: (List) -> Unit) { - PayModel.get().vipList - .compose(bindToLifecycle()) - .subscribe( - { - call.invoke(it) - }, { - it.printStackTrace() - } - ) - } - - /*商品更新回调*/ - @SuppressLint("CheckResult") - override fun onPurchasesUpdated(purchases: List) { - for (purchase in purchases) { - if (purchase.isPurchasedState() && - purchase.getAccountIdentifiers() != null - ) { - PayModel.get().verifyOrder( - purchase.getAccountIdentifiers()!!.getObfuscatedAccountId(), - purchase.getProducts().firstOrNull(), - purchase.getPackageName(), - purchase.getPurchaseToken() - ) - .compose(bindToLifecycle()) - .subscribe( - { token: String -> - //L.i("token=" + token); - billingManager?.consumeAsync(token) -// var skuDetails: IProductDetails? = null -// if (googleChargeBean?.getChargeProdId() == purchase.getProducts() -// .firstOrNull() -// ) { -// skuDetails = googleChargeBean?.productDetails -// } -// if (skuDetails != null) { -// val eventValue: MutableMap = -// HashMap() -// eventValue[AFInAppEventParameterName.CONTENT_TYPE] = "Gold" -// eventValue[AFInAppEventParameterName.QUANTITY] = 1 -// eventValue[AFInAppEventParameterName.CONTENT_ID] = -// purchase.getOrderId()!! -// if (skuDetails.getOneTimePurchaseOfferDetails() != null) { -// eventValue[AFInAppEventParameterName.REVENUE] = -// skuDetails.getOneTimePurchaseOfferDetails() -// ?.getPriceAmountMicros()!! / 1000000f -// eventValue["Price"] = -// skuDetails.getOneTimePurchaseOfferDetails() -// ?.getFormattedPrice()!! -// eventValue[AFInAppEventParameterName.CURRENCY] = -// skuDetails.getOneTimePurchaseOfferDetails() -// ?.getPriceCurrencyCode()!! -// } -// AppsFlyerLib.getInstance().logEvent( -// applicationContext, -// AFInAppEventType.PURCHASE, -// eventValue -// ) -// } - } - ) { throwable: Throwable -> - if (throwable !is IgnoreException) { - SingleToastUtil.showToast(throwable.message) - } - } - } - } - Log.i(TAG, "onPurchasesUpdated") - } - - override fun onConsumeFinished(token: String?, result: Int) { - - } - - override fun onFailedHandle(result: Int) { - - } - - /*购买商品*/ - @SuppressLint("CheckResult") - fun buyProduct(productDetails: IProductDetails?) { - if (productDetails != null) { - Log.d(TAG, "BuyProduct:" + productDetails.getProductId()) - PayModel.get().placeOrder(productDetails.getProductId()) - .compose(bindToLifecycle()) - .subscribe( - { recordId: PayRecordId -> - billingManager?.initiatePurchaseFlow( - productDetails, - recordId.recordId - ) - } - ) { throwable: Throwable -> - SingleToastUtil.showToast( - throwable.message - ) - } - } else { - Log.w(TAG, "skuDetails ==null") - } - } - - override fun onResume() { - super.onResume() - if (billingManager?.isServiceConnected() == true) { - billingManager?.onQueryPurchases() - } - } - - override fun onDestroy() { - super.onDestroy() - EventBus.getDefault().unregister(this) - billingManager?.destroy() - currentChargeInfo = null - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - dialogManager.dismissDialog() - if (resultCode != RESULT_OK) { - return - } - if (requestCode == BIND_CODE_GOLD) { - ModifyPwdActivity.start(this, ModifyPwdActivity.FOGERT_PAY_PWD) - } - } - - - private fun initView() { - binding.tvTabPrivilege.setOnClickListener { - showPrivilegeTab() - } - binding.tvTabRebate.setOnClickListener { - showRebateTab() - } - rebateAdapter.onGetListener = { - vipViewModel.getVipRebate(it) - } - binding.rvRebate.isNestedScrollingEnabled = false - binding.rvRebate.adapter = rebateAdapter - } - - private fun initObserve(){ - lifecycleScope.launch(Dispatchers.Main) { - vipViewModel.getVipRebateSuccessFlow.collect { - rebateAdapter.notifyItemRangeChanged(0, rebateAdapter.itemCount, true) - } - } - } - - private fun showPrivilegeTab() { - binding.layoutRebate.isInvisible = true - binding.groupPrivilege.isInvisible = false - binding.tvTabPrivilege.setBackgroundResource(R.drawable.vip_bg_tab_selected) - binding.tvTabRebate.setBackgroundResource(R.drawable.vip_bg_tab_unselected) - } - - private fun showRebateTab() { - binding.groupPrivilege.isInvisible = true - binding.layoutRebate.isInvisible = false - binding.tvTabPrivilege.setBackgroundResource(R.drawable.vip_bg_tab_unselected) - binding.tvTabRebate.setBackgroundResource(R.drawable.vip_bg_tab_selected) - } - - private fun loadChargeList(list: List) { - this.chargeList = list - refreshOpenVipState() - } - - private fun loadRebateData(info: VipInfo) { - binding.tvTableLevelName.text = info.vipName - binding.tvRebateTips1.text = - context.getString(R.string.vip_buy_tips_format).format(info.vipName) - rebateAdapter.setNewData(info.returnProfits) - val isNormalStatus = info.isRebate() - binding.layoutRebate.children.forEach { - if(it == binding.tvRebateDisableStatus){ - it.isVisible = !isNormalStatus - }else{ - it.isVisible = isNormalStatus - } - } - } - - private fun refreshOpenVipState() { - val currentVipInfo = vipViewModel.currVipInfoLiveData.value - val myVipInfo = vipViewModel.myVipInfoLiveData.value - if (currentVipInfo != null) { - currentChargeInfo = chargeList?.firstOrNull { - it.prodDesc?.toIntOrNull() == currentVipInfo.vipLevel - } - if (currentChargeInfo != null && (myVipInfo == null || myVipInfo.vipLevel < currentVipInfo.vipLevel)) { - "${currentChargeInfo?.getMoney()} ${ - getString(R.string.vip_buy_format).format( - currentVipInfo.vipName - ) - }".also { binding.tvOpenVip.text = it } - binding.layoutOpenVip.isVisible = true - } else { - binding.layoutOpenVip.isVisible = false - } - } else { - currentChargeInfo = null - binding.layoutOpenVip.isVisible = false - } - if (binding.layoutOpenVip.isVisible && binding.layoutLevelProgress.isVisible) { - binding.layoutBottomPanel.setBackgroundDrawable(binding.layoutLevelProgress.background) - } else { - binding.layoutBottomPanel.setBackgroundDrawable(null) - } - } - - private fun checkBuyVip(block: () -> Unit) { - val myVipInfo = vipViewModel.myVipInfoLiveData.value - val currentVipInfo = vipViewModel.currVipInfoLiveData.value - if (currentVipInfo != null && myVipInfo != null && currentVipInfo.vipLevel > myVipInfo.vipLevel) { - val message = context.getString(R.string.vip_buy_tips).format( - myVipInfo.vipName,currentVipInfo.vipName - ) - dialogManager.showOkCancelDialog(message, - context.getString(R.string.miniworld_activity_mwteamroommessageact_07), - context.getString(R.string.miniworld_activity_mwteamroommessageact_08), - true - ) { block.invoke() } - } else { - block.invoke() - } - } - - private fun buyVip() { - val googleUnavailable = ((currentChargeInfo?.productDetails?.getOneTimePurchaseOfferDetails() - ?.getPriceAmountMicros() - ?: "0") == "0") - var text = - currentChargeInfo?.productDetails?.getOneTimePurchaseOfferDetails()?.getFormattedPrice() - if (text.isNullOrEmpty()) { - text = ((currentChargeInfo?.money ?: 0.0) * 1000).toInt().toString() - } -// SelectPayTypeDialog.newInstance( -// text, -// !googleUnavailable, -// currentChargeInfo?.getMoney() ?: 0.0 -// ) -// .apply { -// setOnDiamondChargeClick { -// vipViewModel.openVipWithDiamond( -// currentChargeInfo?.getProdDesc()?.toIntOrNull() ?: -1 -// ) -// } -// setOnGoogleChargeClick { -// if (googleUnavailable) { -// toast(getString(R.string.Recharge_failure)) -// return@setOnGoogleChargeClick -// } -// currentChargeInfo?.let { charge -> -// buyProduct(charge.productDetails) -// } -// } -// setOnChargeClick { -// ChargeActivity.start(this@VipMainActivity) -// } -// } -// .show(context) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/vip/adapter/VipCenterIdentificationsAdapter.kt b/app/src/main/java/com/chwl/app/vip/adapter/VipCenterIdentificationsAdapter.kt index da58a4631..626061947 100644 --- a/app/src/main/java/com/chwl/app/vip/adapter/VipCenterIdentificationsAdapter.kt +++ b/app/src/main/java/com/chwl/app/vip/adapter/VipCenterIdentificationsAdapter.kt @@ -35,14 +35,8 @@ class VipCenterIdentificationsAdapter( holder: VipCenterIdentificationsAdapter.ItemViewHolder, position: Int ) { -// var targetIndex = 0 -// when(position) { -// 0 -> targetIndex = 0 -// 1 -> targetIndex = 1 -// 2 -> targetIndex = 4 -// 3 -> targetIndex = 7 -// 4 -> targetIndex = 11 -// } + + val filteredList = items.filter { it.authType == 1 || it.authType == 5 || it.authType == 8 || it.authType == @@ -70,6 +64,12 @@ class VipCenterIdentificationsAdapter( holder.contentImageView.setImageResource(resourceId) } + val screenWidth = context.resources.displayMetrics.widthPixels + val itemWidth = (screenWidth * 160)/375 + val layoutParams = holder.itemView.layoutParams + layoutParams.width = itemWidth + holder.itemView.layoutParams = layoutParams + // holder.itemView.setOnClickListener { // listener.onItemClick(position) // } @@ -88,7 +88,6 @@ class VipCenterIdentificationsAdapter( @SuppressLint("NotifyDataSetChanged") fun setVipInfo(vipInfo: VipInfo?) { this.vipInfo = vipInfo - // TODO:过滤 items 的内容,显示指定的 vip 权益 this.notifyDataSetChanged() } diff --git a/app/src/main/res/drawable-xhdpi/ic_vip_setting.webp b/app/src/main/res/drawable-xhdpi/ic_vip_setting.webp deleted file mode 100644 index c31c681add37100a5d98885959ee18e223e0369d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 487 zcmVYN+g4??87Wyiscf^gTRSPOXTR$Aa^$v+Br(@sJcW+u50~6uGZeYgKZd+=uOKwY z$wuEjsVf34{^OLPUm zD)%7@%Dn@`hM87DRC))9XNN1^B>?L@nk+Q5`VaW0nOaK|8Q@Z4PC=DY3c%C|G2n`J zgFaz6%0Q+S-^ob5n-CgP@U#JFXz&Mw#{|qAAP$*X8Zn7G7;Fdx1O}|U0v@%iP@~T` zz$wkZ1q=;QbPf_N;UZc_0EX#7~$@4hm*vF<~((OCSH= z&rmFuT59f|u^ndS#O(EWm0ea@$;&X4nMq+X+hc~|W?_{|ML*NWFAYz%B*Rj#ZQH7C zOHS)!%(?bH7hXgpGjp0@3Vqr72YLF1_yAclWy=d&%vM@r=7eCraL(Cl%{fNbY-HQE zs!fu!*16wr&Os?=Dk)Wqrl|wb0oB#1EQ*k3}0!@ElApj6ae_ysNL?eD)EDoCJ^~@?h8*lT)0|LqK!_gssTEX*fXK)PA zU_8H>@mJL?em4b738lZ^u%DFLTG2F`v!YQ{A^eHN5rw^~7yRp8xj=2)7~Jgz$}! zeCY}PFI0%*r>@O&ch&8IdYx6SrvWk|2KQ74KJ9fs`fA;XCy$IgzY2bqCJPZD1pol} zE(kXvd=q~pfb@B7eIvvk6vC(X^;>moqc@-DyDvX2#FXH8Cpq5X*Qd1ccs9iI4AyXO zqg^lhQAK4S4iH6-C&V?mn(c|*PCweW_4)lqd+(kv1qrbW4O6+*yR5U%65&%x zArJ=u0Du5$LfDgO^|ZC!(P?-ycXyc#Ohwv-M8~wv&Y&2cpZ>lu=i2uVZRYX$quUTY zhu`%-;!i7+<9A&z#fScGI22Z^0_gCtF6d1hOo*Tz$OX@3>b5bc$x{~*0t5g60s`U~ z^-X_aYtwOgHBjLsqliK=0!sh@fGhxDhUd|#i8Q2!Qi=!xFhH{k zVVNx)%F;p1cc(t@Olsb``<})>1DTJ*{BwT=i{al(CC)qqh9h`ahciLw!OgXzzuyo{LB98w}5&;1W2BX7QlZuLSc0L z*!>sP?#teTLDfg0!9cLY5;#u7t1zQPv=J2GRcTScJuFd*)Ut#b7HFa3rHIRIF$AEA zR+!~9n4tl+9D@);G_Vc@QIp@UmTao6SH_2~@o8fQ*PmSP zp5!q3aVP@PXNy1c8|2%6`l*{89=trB-LLXobiI1LTXc9ml?o!G7{PxUj1l&r9u_E2 z3J!~s*;qyhD@sdP-0&=F5M+tl(h6}bOYx$VBww;bPzo!TPoWP^7%)l|kgQ~YbsR%j zJG;yuJ6~;oTAz+SWNyC4<6@BQ}%*B#lc zvu8uQWWcS8y>$q(hJt@%0Azu)i3$it&}tMKh1iRFRf_8XxE4Xgf(8&V004|&i3Q*? zT2|nW)3I965)M!vSO-=kivdOImCi;~N@H2zLt&@sc%>Q`G55}f|NpSP`j+3$|N7fM zEdIhnK0Ev~sO-M`tIo3C9c`LpFV?FkcGU*Mau!yD0Mc9VDusXY=)iDZV?jT=|4K15KO zN)tfMtqogui(PgamEPCm;k&$@zTr8H52u3=0(!2CgfoY@TVCYWjHh8Skw=J^XSjbYqEUsah|k)pM2(%D{!*jl z@*sRL4rUPs0TuxOSn10Y3=oQ#1!93wG)pN;tF<4}%qnw|StlGr6HO>^8p42+M1}{# zQe4-Tv ze;nqYz9;xW$`6i5SLfu$V1Dqn8Cf=*3R|N*drUmx_3W*^Wx($|Fqjb$bZlOvHA6y zn$Lfz=h?j;E}M?6TV}BqguxLvAW2ea$v{|&Yt;9s*WtIgMJ)g;XqF*HFp4BHVu@q9 zE$S%AIzj`a)LP{#16JYM{_^qu}WP^u`G&2FED~y^_?=H zl*K62NwrxEA2!Hq;Z{9ZtFaK`hyZQY*AbpDMzX^rLPu_aOc>Fol95i9?(QT_1xj`6S z$1!2P^^-wt!iB#yTmT9rtMzhq|3VMHVBrI-0p@#4g_Jh)@bmeiWkW`rE7=EL@u@0;T zp@@xpUDGQst*06l=-rSY(M& zbc7p0tFzGBqgI0(Kvt-fGLpoa%$x>>#>8W8t&P&dT7g$rsS#@|JUHp+WgUOnku7ga zEX*`Cu)qeW;*(hEuzE^YX>HYd1SR3YEDD(A^zi!d`yq=}L<~y`Zo@4^g(NYZgyvS$ zwY` z9&QgJS;+vYtTN-w$-tAyV~>Bc8p%4UEp1U0C=FJ+hYLU?YHBr|*q}XhtJUfE8e1hJ zw^EcNB~ZbiY30ixU$#mcjZP!3;rVbHkO&e!d>>IM&E&C^QUsia1H!`TZ7ef7$z9vG z^=j|HrF?C?aC~ff|4%-<^Qo^=ep>QZ|2|pw)Ax&Ru2$?eYw}U;bQFK3iFn6IX$l4* zZl`ylyN|{m%pkx5OR`wwna30NLl62mI*-L3rW6972!#p)P^U5!5JV6^6SHc4WUaD= zN{I?XT1$_Wh7@v*3?-nF_((sl3-h`h*Y1T@jj#{L0s&wip5N5!Nb)7gIlP5!VnFfDxp!8tZtj`$O;5alal;*C^L$b$W^mjADtec#13etUz!HgpRI; z5*ncqlO}KgGcsey7+X0?b!1M$2sVm<4t(}}vpHU_$GTc;vqyhaay%F!1~Z%A_$<94{iiQ_a%gQdnE+yDWPWH#2LnRkcYX54#uXL=s074~X77qqC5krKtaLcu4V z;Cl(d#AtYhifez=NS6$hh{H8jtP|_hS{XT`K!uTcED=Ak&cR1^kEfe)-SFBp8YRC6 zg$Hved1BgQf*N6RA`_G5;z4#oed# zD7QX*`+9#q+Q8eMJgJ*y!2lRpN(x}rHhNo)EpAu@rw9yZ-kJJ@#wYvD@a52_YK4du zkiaWu`C36BBGe1OaRNdC3@KF#cPJv3WB7n*P(UT^mq4Q?)Eo#V#vs-p)}%&e<*hYi z9wRvqZ>-D5%gf{ChE{8ju!my-G357AFU`hE5>9`^wX{?UNkT?p(BbF1g^eN!>ACcSs|KGLlm|?HmLChj8BNK`X1j$IEL`JB>s2kLWmA}-;MF&tkpsVQCo8+oC8 zpg?r3&OOYq5*W6%-f>Y)4^&{i0#XkZB)4GrLT@B(&9-Kjmiy@Ll@BfNc)X6^SnquO z{N$R`+oRUv9gEyTT&fkOBZR~qW+;Ieyvb~6d%mHcdp^;RlaF|u{F_kme_$4nen@|a zFaE5vQD?ZbJ=Q4J1!j>Ek=v4>>q8a!4q5-1t3-e1EB0A>#~Ljh>4mWGOx9l zM=DTh1d(tgn22IU8Gq(<$k|vju0DS~y)vF|fWboG!5akmt+?bg3^BxQXrL58sCPA2 z*Y^DJdX7BgoNC^G>CYcuT)6`;KHTi?cfM`Dc<#2|=HOsA?6plgj7wz|N)kZp5eqsC z^%~p((NdZ?Jn&ZNv->!EydmdkcG_|6-Y@6UNgtI!1?>nYbj(7B?1Z|~YD0gQu)`Xz z5ax0sRx-d!B*v^>inZo@StClt^I&<|%(Y^Ah9v-~B zx$)-djpOM`p}!LJAi!zVwxU+9bvD9laNvW+j^FAv)i>C_tI_DyU~hB&vi#AzFUEfH z$GiljA0onSedm{^aPQ9E@<@Mwvx(Cy7Gh#l!aFy;eH$LxsVOA9xO}u@> zXX@d}r#IfK;uYu8;dR`6dU;vbpPElkdOYTkR#^%QS;+?jWmj>$YRY=U5$ue}MI)9N z$pRQgSc7cKCnYQC%P>+StyKsrk&iJ&47G(`L>+77B+qJo&gIwZ;r)N%@p)W-^YnVI zD|@xK9E$+2(Ox>Z=ibCVZ|c5oR$hGt0Tx2wDO~Kk{3Cwt{}sQT3_d;kj`!PzPr)o8 zJvW+9AKLlr9lmh7zuv49(3Ax+1;PLt_4vTYmKJNZHi7~JMv%fhu^)JQy*YZk!8zJ{ zHTGf&vB#N@dvmba30N3IyUwe_|i-n)%A z7j9;*ci!4ZZaGRSEzz8jNWxg76!0gQkOc-<0zd$95;W3SNUIQOoVN0YVx))#+Q-`C z+Rl|tJU-Uy61jgy_@d;YNsWzt?aznR^Re?&pB%)P3~gTV41&1SS=qc47aYgiV%9px zc&xC|*oa;AMP920YEuvlws>Fr+kAQdyqBB&I)0N^*uLrH=$K6cJ8Y$XgmkGuv}*&xDcL4M!tW zgTJc#JQ|VN#*=f*)@Wa=`Lf0zAFh7!ayqfhG)s;_JFeBMbt_-uS}*jAM@|Rs-*RDP z`$AagZ?k{Brm1_s9sS!WocH?1SIK_%?eFT_yN-@&*L#-|Mv#))=7ceMOzH z!5t%6kOxjj_IsSYJ~$8buXVAn_E_!_Oi1DSetCIa58vUDj^DkHkDjQ{%dYXb@yI%D z9Wy-A^3~D`=JJk3A~K+W5#U9D8+ZT?8nQ>VRc(KfjvHuX`UAbOyqVe5@wnzj;{{t6 zdISUUNbkVWiyB__LiMWQIgUK$IktA90tDWvfeU@Lb~ZMwaERX3!yEf4ix5z2bY0le zjjr+m42bl6a_P^>m$rkoU18P6A*aAx<9@xNtcQ$L3On5mPJ}@awPav1bTILxj_l=V zzN~-xzM9HQ2ZAH1*21vXjeY&j{o&!;@zyv#bzg5j6wG)V2Zhgh>|1oCc3c*ARjHSNMv;Ge93Sk56GkclI7Z8_`JH^0Ht(cXB9xxb zAGBY8u5_C&16{mXWFcDy7U1wa7SbpE&T*t07bSj!8x{am!Yr^~$7Bz>QQOPw#e{f1 zv<9S7_+`|}d#s<|oV^deczORge(x!-J@De|aUnHz9>*nP1!Kh{IwJ#B0E*Jm!~lOw zh(jGm=|nCaOI3_icVbCr#y6aewNm)!QUAekKZ;-AZ{-OPYLWhd+KAKXuC;iB@#8oX zW@8kIpv4@g;T6ij;i2~u@76ea97B&pvVedi8zVbM!jKa~aV>axr^Z1arbciM_5Lav zkET9-%bO2fe`pZ7NwSeV)>KL|Ixkm?5hZCs3zk@+L|LO|L;3gem|8BXn9Ar1i+NMVr}hF0gn9*8@2 zr90C+kZUDgL@QOsXskga{+9PT_%&7@caP%}PkHkdw;qbObYPlGT8UueCDIZ=2?iL& z2o{)zv?QS{7lEXS+01ZenNWY1ypO1VO1PjSQi}pVKtc*ciSAsTxtNw};_W>%I` zf+eiuHj>ckluBJ1@e2KX@x4^YAPTA5n}E-qS62EmQD)AFvJt5gyvD_qKfj(zDNT&; zV89Y95n_chGD)0<@=N}S_Ff^$LysjB=w{Y>5mGDh>HX%|hY|Qzc3*$h+n0>-!8m^J zjyJCL^2<>#wQ5{#oXu-GUQ~#&46zCvON`(LIxN@WKt(ELIx`t7Q|yX(j{EVT*U$g>EMSgk_@J+=d!fG-86Gi$5v)rL%^QA6&nshp z6K(jX9hr$M5db`+S*U-6;i3G1B~Hg{@D7jxg)~Q#9%YFcLMVla^jJeFoy<|Fj)c_A z^zy2t0?F&Bu7kaOsf2^$_~bF(JaOZJ-co04uyt}=)A3>m1Y$q}uwER5NEnpl%3`cV zt~_7_a*Dhh*kU8@J3t^a1<-*?Fv{9UEsL1qdpU*t)Xn!#i$s5^Xv7?0M7@H_B$N!$ zSj`T1j6gsclU>9VX8s~N=Qd*-3Zv`O;#t`_jaj5bAV4&X08|8$KqYa*Z*YS+RVWXv zTkADc!vZB_V=QAVBm}0?0Y`vV9x6bTQX2QrEp~rt6>z^2^uc`iy*obgz)KG_w&EJ? zEx%Pps6i1m;23{_Il|&br7TCL6L|oV+w%7i7Yae&<-CC|r0A@m1rA7KZB-5vygdF|X&%Z13z%U9*hq=mENuH^P5V`-0fh4ytZ#(qJ?LWPdXs1O zI$UZXLkuGs!7&CGc27LHff&>RFp?5-A!}4iv}BA*;t78z;f7o;icV`h_Cw+kXl>`J z&{`6)F5W)by?=D{q$6p;aW9YGyX%eXdi7=0Yc$tr)Ul2iZtw;LRw9Nlj8JOL2j(NC zUcXtFHfX9l5)UYeguINGVIhO6Qqp6|Cy=WTD){Uf>M^jKT#jaN-9FjitwF9U1bqKIkL$D1`oe+R?SMQ#-}?u*N#Z z!!bU2JO0?~b>kfIR(okSFBpPB85A)M?Mo_)k>!6_MJ$VGL+k{#f<2m3_g;@Pj<>JF zzm_hP4HYBbAiz;HV1kGsAc=B{LRu;%O)LPQjxanUYK1N0Xo&!0LR3|3?K(fI4pv+=7WA*wN~>?@5=O0F;EEmbA0MaA9?77 zSA~5v*N}p1@dhN`&{D3I=F*C5@fO{1D&bCuTA}`d4_@?Ojb^8@7jLMQYRNV{r9_r6 z1&We1sytqL_laz%fFT5MLl7;LfimDX2!Vg21;4eutA0(d)wlH8y>;B}?HkQEA=iWC z5rG2dg-uyuPc5j0$FHy=yYh3<6u0zb;FyFb>)Ad zxDFL?ON;>npo&#S+(v83>*2RV5AHCQ@Gv}F%=O->d)H8f;x@u_fs{tks2w7pG6!g)2LS0QI6hfyFYh%2G3L~ULke1e&>CiYe$>Fk=d97nL z_wai#1~H6cSiDm!QHIlU7)}i)QO5#eKx#|Zhdz2k;W)L#N?ve>q8T@@nGb&>Sjiw6 zGLmWO9fdTojs+Ajqe7z`hjUyxS9irXr~yELYoaDw*Vgt`dH#&P=U?^3BidZDgPUI^ zyY;8|p@!zW0qF+AvHiQpU2EO2r20~m5e@}KAPp?0CPT|m1{5+#3o>Mp0um`;2^|RL zs?Wq@MPqrf>XA$N^mXGCp%s6|iim>*;to}aK>%|oq6Ps<$Ro?dd_pT}rpVOyAiyYE z%P5XjuLq~a5aA#I2mk~Cj)OJ_v|(8Avb_oqLu^6?Wh07wqKYt-KtX8YUemhOd*mh`|GC(6-*)fnm=oY}`VN1TzM@?4^80Bb zyMJqRo0{5YC#(zmW(mfGXrWT(L*uFS7}RhL2WU`Al~4)PFu*!GMQ`Z5dD$7)#=Kg& zd`So{5e?>0fhZv5fE6r&LjWPvqJ$b0alk8$!sew)3qq-@(B=1lq*)daM1T$u$093% z09XV9VgZ0|@o>MX1S4oc2~`S4DM$stHC)zWj3~cN~j5K@+ZBoBccWsV=2-hSRSe&)o~1|NI7szp}H@ulzQ*WtUfbovA0@NDCHN z$&fOXq}F3(sjxs1F_a_)B`ARzR-gz#31w<^)96WlE*@Y42d;nP5CSxiKmu)O0RRAq z5&|e;mP1^J83Z^^qau|mRuy4}Qj%P0q7(?Sf&~UxU?fY7V1NNeu*d={Szsgy3ZVc> zFhE*ashCj-9Wa6gT2jPFRX_nFF~AHdtj7o|X{t;G1uZe7X2ONuSSypLxOu$ldbejq z_)CPZlxCjUhW39O9^S8L#>Q5_#uQirKn(%>j$dIN4J5EY30lz#vj|{-b!2N+$KihP zZp%Fu&DaEuCA7H2SVqv65;QP|mMnll1R_v}O5BSR4kBl;*5$`iiqw)?+){xeGM<@^ zl#&h^0Ad6Kw4{NOEcwzpg>9%Y_~GnCCHE1vD=@FO%Ia1TyoTE# zVB^ecXqj3Lm4QrRhLV(|B+&p6L^Q}6`D3g;9AU2ZE$oOIFuAIX4A2Z4VG$aEV1Y6e zvWO`J09b!u3?ju|m)1*vA!tcqHB{fjHLT%y1O;e}kFgF}!UzFIGLA%AV#Fd1Dn{8V zYGiw${sZ=paBPw*(YE{OV5w^e!@X3$(0zzRkQqy-j4VJ0oUwQ=I>Hj}xP+hq zfB_a56n46my|s4sYV=BmDlMU!*FCalxY}&5Mu$sDC&?)IDe{*8`yJY1Lf9@5!|M17o-9p_&(AGiZ zG+>6`Xza8XIy<$-TquMxP=&k(K`!!uh;V-*yj+$~>b(N8yYs~3{dzd{un}i~WH6R@ ztj)Ji(OA}4Ati9)H#R$0*0p^$rh-6QpwGInFVp4a8EbZ6MZBQDG9RpbzgGav|nRH{%e2joyDs zcdfX>fD(+r90G|kPcyjk_*FaMsVetA6`UKK#Xv zzMDH2gMw+Iy;&_(0ziFdXJvb@cjl36r0_mIjm1smMRYNL8r?j+W0ZVyW92lVr zRiRwSVhCen=fXnJ(h>*|akNZUgPBFl=@I8g7_Z;uA3t8Z^Iw_%TApF?liz<#ZSsAM zUY%M;ziBK+>*adC>oge400GPj8*znoN+C;0K>X-FVZAxQ*>5>Lw?U_gRAprt%UfrL}* z)LIM}0S0r7ESG9xJUut|o*cOk{I@^f{!RYc>#q@S|EKTTU3Sma zJ%8Fe+hSGT0)wQIhjPgvMG7KAN>Bnff=nNm?R!s|uB9R8bD5VM+qXLozKmZXK zBuY)LqOr%(@AmtC#6N%izuUL@P#N+iGp-kD#=;Qn%eUf}9)h|YNG z-P?Ho7|WCuU|1qGN=ZpZaT@JC;+6~?PdvC~@5J^}SZKGF((->ChtEg0(VDTA4Q(8$ zWt@Q=rG*^jt$AzJ$|W6g=ZZ41Kv-F5okJK}sDv4MGBuppyX16Ch?=C(JRDCiNu6`c zFMs^*Hh)|`U%+s}uZ+&4Dp_EGCR#9v3qJ6G0U4@d6agl+F4Q8uSfSSHA&E+4C5I3K zB$P&GRYRdstFV6xtF#PoD)k)(#zXJk#@*wXB-}{Iavh5#l9o2KLP%WbY}5;rp_4ft z-nDmP`$F6b48OpUMeEYpQYrOj{1h3HAh#%Cigik>FzkRgS6zu5CFMdP2&n+d2s)wT zSOn;hB{n9lXm;j#X5I6D`4@k0?wqya!e2-2>z5rCGSq(sD^-D9$wCw~JAttdX>i9=2#|s)q>W``S~}UIL;^&ywz+ot@_J1p@86EMZpS1Ca~u#h zxKaRVNI``(Fp6l@ml_vHVJ)3bJ-q4SnVn0~PG4(#tT3}EDWHW}Y1X16>y|V~K(;7Q zMk%mEwOfB05!YIelmQuoIhmwElQcR6BoSda4S1PW#VEje_jTUqp94EiL`@(J1}d%7 zi9-zo1R#Jp3gsb(aHj}Fm8R3Wt-CJ|*?9bR$?7$q}JPhsH7dPT_;T~6R8vs&q-5K3PM}Q)z3Bl^x#&qjqw_- zxoCd~Ky+fI9_#TwxU!YktMRlsR+4$=_Hch_ngZz6+TLj_CCYe48WJg>Bm;Cnae-B9 zT-aJ1Sscm0H1Xt?$47QAb>e#Ac75*g=D|6P6Dm;#1csHC)~Ltn)>5#MIM$X@3*@0i zst6e=L)>Zi@>_>>%sg(y%d2}aK#WR8SxtW?fpA_d-+mQ3^Mii~!PAZaP2 zfesl#BS_TH1^Yb258kX2`t73c*J9w{j{PTHdBNVX_V+mSgPkKsX``}I#;BDxsAB@P zTefbi>1ec+N`R1cRx!GJ)oX2@xLj)|u8qFpUKA6V7P+{Yw`WhDe*5B_;V*w6o$^(& z^X9cK(@xBi($1#ZaUpiD#v;n5FQJtgbB2gj0t<*Fl_C|Ddh;4QT@OCIV@|jYxkpi| zEGi_7%D6E<+0Bd1d~hG{A7kX9uS0x>cp2`iyg+=cPA=Tm;tAG(WPlD>Vx3Z%Ee-cD z8|GB~MLVCB-&gWJ)zdZA*gt=Cct`(%3-h|mJI5Te9t3G;SxOp(WrQHJo9l93A~73U zrVt{a&{$ckR@n-z%er3H(-tdiz&n>~zqZ*`8Xs@s$IP6!vxZq-_s%lBF-g9@bMt9_n#;pAA#)h!<=H>L$L-9P^hApj@*c_eX+8i%-;NES#eH^12^3&md z7>zTv*EotZR{Itwb@CYVQt>?G&%eNcVu_Y2Mskh(b?_H$u{M7W)B|Ftw3g1^2TX2Q zyv5MR-9wjF+Sl0TipjLba>?%ajt|7l&HK}(dHLXUDia7HpaM&@*dy*W)2L9~*x2$K z)Fe_)to``pZoIqkAOGe*DxdqFfaK#}`x`TV^Y8rFxQ@p=v-It)wc7*JTWb-)I#vov zm*ptRTA@M^h&q3(RI?BX+qblD>+I8E7xab+u)V^#_$?1^dZc6aIO0q3XYdzPOBRr! zV8+#Ay@V51!UeuX8b-rNT98iOLLuzsJ0UC1<$Iu!SH^{9;OZ;R-XxpZkK@`}@v%1Z zdgu9ptauIHXvfumvtEp=$10UYNQGRWK#HnH=)}M$Al!e53LKN19-U2ZEWOv?|H=DD zcfL+?{xlN4M)JnzfAti<_%9nD-u%N$FR#C76$gZ@rzR%AwJ!L2qc17QL;==PY!I+c zC4p9!R9J56F| zqARpu0f2u&l~fj};j^q^Er$`s;HYxeof72a)+-JU%?})*7K!IeIN|}vaE0w-y>h%< z_Hxi@C`}QN7u~(jneN)Z+9_8?MJ+*L;rfPRl)~YmCsThbl!1n!gfx*w;*HH??YzGZe)v#4 zUJUde$~AN)s0du!0k@Aw%S*}GjS63Sp?UNVMP>25d!jSIX5L@i4ykoSP$3Jkd* zK!SrIPY;qPmLxZ%v2Xz1i-F^c#){v(96i4?x{l6m-JCDCZdc8i&9NMV0fq{Y7@o1c za^-(qu^|)>0F)w~j3%E<{&?4(zI*L6i1b6{>u&!W=0EXsfBosT?|-}Q(e%UZVq~!E zZZx&rMvh>SHJY8UGfpH@DYy+Otx}axQ+CGMdH;0wIPxCZ9(;qG!@IEgeAN%|2vKYx za+H980sv9OIala~fOF~Kr$qpftYjQg2tj{$pmU&+!_~nMVOYTdA|zQ{U=5u5ED!6v z$PtV3k?_8*-k+}K)i#QuB%wl{lSu`zM(A|C8j+v^fe4FI*64u&kU0FDt9$-Ktks5NfUGu87k{Pa$BB$(OFb?vr#87<6mq#^16NKzUC_>KvT z2ck;Y5GEaFbMGE}`&OL)o7R16@PmIpdHmh{zI;CUY8#%~^Z$CfeEaKj+xy3+*6Mo~ z&b$5EVq}%PIvSHEVX#0cj#Ef;V;Kky2F7!=b~=02!Nx5cPfLGigjbwe0Q!s`5)=FY zJH!E5Fek_Y5BNfKfRzfPKH~|b!8+7(L1!RBoq(4Bm(*emW>`?NR;*#=VU2%rXcA`1ML5$Z*E=u2Y=C=o0C=eaTRQK-9jdD5;z^NsYVK>p;jjX1}szK zakTc;R(9uVf9aARl;7m7a0h=OJEC5|5BRsRR2Zll2=In!XaNCXI0a@Aq#C(L8KaOA zfeTz%_vJ_qgE(t2={3EuzK}1JD_MyMo!iyFugmvqiy$x`V?Lk-BgoDYNe~!qN02HG zB{4vZak?dx0$*#8@UZT#>3i@$1HjQxMCvH7$1X2I=H zCF+n~r}=P_#~Ll9w&S8AG#gqD)pt6i`QAt!O1G9m7 zs*t!-2+LIJIH2j(>8pQ?K}n-my<@DSoP|m7&Dx(`&OdVH>6Fawe4XU2pME!YFVAzS znf5S^j4EOTA%%|LSp`;LDzpvPFl01FqgJ!hG`dfTe`e(`;y;1^3H}OKNWvVFA45{s zuqk99(3Fvah2R1&lu8Qd%aDcCW7Y@nFoPMQQ4<^~>7k>jFghnBxU?J5U7g;dR5mlNMFVMQ9@jm%0>@$K-@LnNS_)AEFW*}L? zBy5UBh*U8eFByOSR4Rtr5YGr+pdBS>11;tVApip9omDGQsw3|ECElcctX3jWveYuL z978HblFAySfUmNFiOef=;`CfkC zKMW>T>RETsqSI;icp{5IL8Dh9Eu{=B!9uD57ZjoC9QA*_8l|XLW2E*)vJLW4&c}!s z@Ka7Let`lbXbAxtU=pn~pAkJ`D&&FaWB7>*<)OmRh!CDAE&vo#kx@_J?^pD8HEyYQ z2ugEIQ_C@=z=$LXSR?BMPL0$F2T6z-%|g(doD82lnOrHwZ&&j4Rem%1v}&T4e*7mh zluu(1^YMTALC)FNPBzw^c4HM0PUIz}l{81Q&;kS?CO+b5nd9V8ywk2#_fm}LODQ(g z8TtwCGrWhK1-?TO6-a;x6h&vkR}^0cdqwm)ykU?6r6dg{=tOa-xI;dLyovLaSPB)M zP@zSP*&Kyr1vn{4K;~$v)@hO0%QFm6sJqc$rCEPeoTwX5Jntm=IGgP*4iX)NqbkC2+h< zbW8XS`jkCE7WnI8m)H{Dp_bSYEpf$t5kAR021?p85tXt>R7MWT8{{qeE} zr>D1J{wVMGp&lO|POn^AJ3MGB`y0m-iNp<$^!i1C42(4rX{_Nnkq`mjsbWmW!5n|T z5!Ld6=!7v~*nJAOQ#(EXGJeX+TOw08y+| zBPE4lg{W5DsR0fcs-!|{?rg477ZwhZsm~nVn#SYgN{@?geESb`PnSP(Hh%ZKd4AV3 zOx`+5zqru$2c}_bV?4A<8N(-$V?cis%s?g?BW*ZBO>habh_Fsf=5RWW;W~~X9A*#z z074AXfng*o03bjd2v!4z1zM6q1=%j9?Wy;UiRL6-^={FUp=`43s1Mc|MTBvX7w|_8EgOWyXE`oiQV4g7Z-o4I<~&I zGaQ=7C{P(gIFVOFstjhNLK>KW&?3&hY=7~I z|MAc7ei@$T(9irIO62%>Ys!D))WPxi*~Z>O8^!R&UE%Vz$t;YX9LG!pfC?cA8_m5I z(teI3$qG>*A`W1HAte-GHV*0#i8;dH1_jI^0KghrvWi9u$bbPBKmf8t5eXEiq{K)K zFt+!#(~Aj7C<~Pu27$!JV6EmRRZ;QD*qaa2_eb;X#KG#Ho z-M=~gH-C}J`24B!H2Bq^*nDBz-S>70Xufc+<>LpDuEds#9mED79B zRen7CKmR{3zHE>2^qb!e^ZF}ajLT;#cYgfCD<2Gh6*qf(?Anc0OKhvJJYH!P6QB^H zgvjfrU)BuYt3?`wOUuAG#uTh2BM8BB7@`6v6aWzizz9-9I|f)%pb7{pBu!&bFM*+r z1!H1m8eLw3fMI`m#_n1MQsGT2Oonl1Pv$%u!>yU-^P=Z>lP|s*`x2gw-ubVT0M0)A z>TCSU4_*Dovu~$Z(Q4la>>A%LsZ(XW!weD zR0tFaK)s}fBCtZQ5Wtv8DX787G5XoUi+Va%5#YH84|GWzyiMUtFQ3KRP281yI0cbV9;&rRznx6uI-|+W;2cv z8G}v%@=z{iWRf@@N5txqy-tOEuP({aX^wFWr5Hys6oL_T`n@_1bw(Nq>JzOb%CXce zv>RS0B7uM5cNj2|6zL*)c^rNBB+uo!@7IOT9sBe+qu9ISZ+z_yA4`rz@)`ot%;)=K-nk#X?|kRa#(s={HVN>2P=o&+|E%<9{yOoc z|MI?Rk^KHldvR|&xV^VADD5t+BcsF-4@dhL^UODR@ih9T5(QM1sgG<%g&r&hmL z)DRsl08ju>L@4Pr*w#i|dvOh%X2ok*NRofx={UPGRDYPP{on9Ae|7l>`A5Zb5R#wO zbAJ3^GtYnh%g4btzH2{@`Nd{;Y;(7Dr>v}Xal3SBDbvV|0_j*h<2u#>AcmF*5k{xh z-oElcbEmlhpacSdEPxXjFZ88*xUI;E9FGu?i*z)Y8AhKy9*^J8dA*k(pYA*l_$q(- zyyN+s@sLj)qv3Bm)o5?GuG_UVZQgA|!yyiU5|lt3f(T%M0E-9+I-R{F@C@M?1Vk(X zAUIZQfdFnXgCHx&z#=dWo=>y$!#r;u`F>#TAMX6fcmL+}bH&TO^9|;lZ@l|j|H8Lz z%{BdzJh)YN&1Taa?dmFKaEiuvPQ{cx$bQ{qQ|dGp`#&q^PHhWw0d*U7uzKHU5KbKQFK@8PyD z+_yi1{s3PO`!={3amRoxln9j+f_@SARuKaPQ3Dcjhy}EcoFxlW%?uR_k%@n6y*bB4 z7FB^XwF1*5nac-j{CGUir?v0>bnD;o&q`k)n?GmzGyjL;fBsuvO?=}&As_z#@0x4% zc&*`jeZTsdUCE%9La<_?R8l5Ykb024vbXs{(G>4u0%U*~09Gia)6|2Ur%CX+Fpop1 z67Drh1!xj!GP#J>(h|!lUeAA;_m|gv_0Rd6)6bA+{vm?YJAcAl`kmi=hd(C1^sR3z z=Hsy%efw?BE1<~YyoFRls=JiR!b`QQFL!SNtN~O0w0F&(%`q<{X;Oq%Dm~75b`*29 z(Efntxh?jq*2tAaR9Pl5+MMykm6g?_R9xOzUYF#T+D}$SO3db$qxSSpZDcC|HG=rC*@a*^YKM;es=e}|1IU;e+PlS v^WRcF`|ZDe^`(FNzccG!c#BTH^I@TJes<@J5yFy9|M5U#> zMEdpj{sHIQ=Q?*>=M!fEjrT4Bk4R5LRW(VmnrIgfD3Aw%9{YB%QjvReV(##s{rvJM z`GLlHJUf7SgP-~dcR%|5`>!ql4_;q}Y9M{3)idsl7mjXmt`pPMdZqiM_t&()t8alr~n`4~s|3 zGkK@u@v|FG$y=(qrOCU>k}p{o|MASbe9g#``}`4q}a)ss-GyYZ~JO}B|X z_GjQua^77FaFoFQJNfT4ZKymr1n+O&8T;MYt80tn@phx8eNKHxv-AjFT2OI@8&KN32)*=xGNX0>sGn^V82fzv|=tpOV(6c-kn& z!i3A1u-Qk_iDka`HpW$S6&*p#B)T9DDg(D~m@$W!4cCkVvGM#*TuG~#G&8K96LHVg z%g-+)F$%ITvRrV9S}I(S_aq;+lfDWnnx}9jsLKYQQ21tlde}`nLbV#E8>up--zmto z)TwU)2h2daQ?c4l%LHjhgdWBb;}@`4Bj3Gy?f2iDPIeA^;5YVi7^Q^##c5)-MA9=1 zqkOqjpDp>>jlMN=!>G;j45Wk_tlI$sMS>JTAUg0vSrC?!0E|xy@y5xn5t`{zg@%2Y z`y%#f*L9j$>vC>=bunb=q5RQXK1Ww zUPG);Ma)M@(IT9tugD3L#KQ-H{L&$&a5IAlsmypkT%?2bra$+bzkvC-dwDsmC-oj| z5XECv>->CZmz25BtB0L(XuPwHn%E%AiCA)^WAIrU!Sa&=)Sn|o4cAtbzq`t9d#+g4X(klCX+<~%&5AkRfRK>o$Ig~q~9=+ZvGquc*KTlCR1z1 z+O^f&9SB5!Uo_P(MKje}gjQrpWD2<=QtzEtfKQ|V;AA70GE2Xqa{)|01a>6QcgqKS zi+AROs6OB(w|!b{(O+f+CY=M<78m-!<#4p*0LcVut z-$Vbj4&AP*q3GEy_V2D;Z#%)um2YQpcFor_Enlx}S-0kUt6oapCn13k8FJ#2GiNvG zu52#-7hMuvSCLZ(d{%XhaT8Adk3C_DHBFHr5`+g*09nZnJDC_R5f{~@K@BqtrkL2h zpE6P^B+wBlI8J*!p!$FicbYb5@y#_yi5i)W*5@BfYy-&$_CO|OeC1L7{Ho3d=b{Un z`Lhq)2X+6Qczp1X!!RhmC|RP|>U`$7O3t~G)S&!yB;qOz@D~mbpu#5u5r9DW3TB|8 z&g&%;Hre4%2~|yLn$i8ZyCpsB45%yH-s7bGE4b;QT(fiK%llvM|!<36} zIV#Da@+KVpJG{j#dYYCHy2qd0Q>M6M<3%#vBlWh7<4~^1iT@55%G3ouQ0{li@~z6e zq*{f7K<;?JzpzuwgsX=zHO6#1JMaH?i>9))amE;T7*vwb7o0)-$oiR{c)ouAm$&*0 zHYpJ!&kT=J2}RofMsoOTp$?8p>H@qzuQvAkE#~UPKh$qwQRKj_5JfAb_nMiOE~-H1 znJ(C@iMhdw30c%k=6SMcwH4r%#x{DxYzep|SRYbtu3#J= za=N|CwNyZYPVg3Usd-IzAZ<@MANX-;vPtc_KSO>brgv5}I9a~Dc$esO-m-sQyC^(X{ai(sDZ_ zS$MQBgKb#sz_Lxc>1PNLmdlNhHB4;@pkl);Q(zRyo>-@xj`vLnvfA-?VT39<%@Nl4 z&z(#gbIe=vw)D5CQd9LqCS;fB+1ovC9R~7_TBY+X%k;Seq4RY^dzoMR@>WzF4I-(L z_!(kOa98$=q_GGo1<4`Oa_1t=a#0+{d0a&b;>$yh((DQ#v{9#Wes{)|OzH@zY@)Ni zbBjBr`t|&)F&RExCCRtaEg9o_Os7Y?7fj|~)9h4eOCG{bw2@y_wc#x#+L{u889@WeU^-rvd2vl%WGgd}T zSL2LfIIT=#iJDIlupZN&oi737t-T)eKR@pb)}cx4W1B$Jej3CHbUjq9wRLGRoe}VvErt-G>qa5vuBMipZ^$opF_OC1r!)gNeo*`zjOwj zx51cOY&MrB!2JgsU&tzwLmF>b3n z4-DSP%JS?tDDs(7*)o>;9Yq&%JbqD?F`L^^Azs7^xW}AY5s2hK0#sOs6_kF zY~eJ=FH8_c=bNaPSM8Sb8+R2W5dh{I=lFLk&|kW&U>a&MS1Y;ID(MKc;Er%7AFdc+|A#y2k zj8ir;35}YYop6kbhPoT{mtnl767&kcb+0jf^>&bJrKx-A6`(@yNyRPm7TsWCS5C8B zpu%hnr^zl(nb9h_(rn>BeY}ihwYy>mMB5ok1hyx?Hr;>p)s1EbqmrxGdW>mS15A|} zLgP${WBM;wMMB!y<$`1d*@zp}IrVx?O(x>foe0wk9`MlC&`W@J+!V)n0w4t(;Dci! z;xvdf7hJIRxzq28uf`{6yJQT;t4#b|&&9=i}^KDG_Z~(g&qXu6tDU zQ;G$NMB88O=9^md?oQfo_|6wf0N0iW>Xvch>9@a2{4d|_kIcU__@Pv6it@^@{J9z+0L)BdEFlt+ zOT62$0$3+*jujyW@cxHo7p&=wXfznJR{j3lCE93LOoLm64C7`-@qJB~;dSV#Tm zINms9Ymf{XX_A}0y72l+MpqcYr2Pu2@p+V*x0IUVQ7q>xydpL899uEVM#7%Q^WyAy%yZEL5lobtBCN7QM?j2Rp2cHyeaiVZ zwqibSB?+f2z$c6ZYe2=7XYwlK5Q5*M>AS|N@gMPm@<7Ytwfs#g^vE8@W$+diYZ*j{ zm!kl!w#TBQk;W{(JitCxsdinv-x3%gQ^5>(QlH5jn} zVTa|dtGr3$b+E%BaCJ8;VF~&0_*0bJ5Tk>ekw%kg5kaCmDGkNpDvza5Y%4)ASLI-Y%rPyuk%=pYC1qzE*T>eAF-ld>y=D$lIw+KJ%1qPSRmK zaNc`#OuA*0Gyw6*`6^Cgidk*&scwbLJ9m|Nr*!AtRQ{EiJUcwU<@;B`7qj}2?V1+O zm&*q?2%$E%J~xsYJ@*$j*ISa>+<(jt4$_SXC_-tFZci^H{aTXdZVEjO z4WYOn&qf)6$-#MKCv=#}0lFjiOVx)5N6#ismg`#J>5cUb2&g8XV})6<|+{7M=bFfwpXP_SA(rzM{%_g3|s1?nk+rtZGAo` zG|BN|hBP?_;|otGF1lgsckw&LH=PF;FB@IUgGhkuqDpyO>*TizbKm-I3iT4bV=XY% z9ED9wgyagQo`jVwrwTo1CBHN1UACZlsR~pkK<$r8+*o7SuGD_DZhxHliMtU`+Tmk- z-q+HPuc=_9F$Lj0B&Ap zH{dgv+PnJw;;+}+5#nxEMd%KxjC5cR;ZXs(r=Rg?O`4ZpxOT~WXCNi}NZ!qrC17xs zEFZkOwszrrq1`8WHZ#dRY=L$e!`XB1&zQXW58{_EnJYYJV zRJ|qMTM6F1nQzjzjUh~#TPQLBa_J+Ed2t6Wpcz?H@ZBNYQJ0nKz0qZY~a?IBGJ z?l)y+5c96-pLO*+hUP^$mkhKd;~H%@xg!+O6tOS2;LvTQy?St*I}+Sx-XsW1W)DC>NMGRP@bGaoT6?P*j6C^67ThD0XI6g6*D6#ZBKoV?XC6W;Dbq%O_Vms8Iw zzm^i27q6rqb=2+e+oe$%mL59?SJqkblmCrhOcEmJkp7!X30str-@mW!Y5a+9zDj*r zWi^F8r~ko=`O$4wsYYq8}Bxlfl_?;Yg+u1fl`f0n-8>|=j6OW9WKnJ8nD zS`kdRK0OGHNOWEmg;^)KrIi#=;U1LA(;xh3ORhI{j%F>&FYuMWQCRdR2xY129Uy8T;A z`}z$MLE{B+_n8Vw(Ajom87;D7AS4q3#nyBfIR;LPYlL zCIaTn*2`4n=I;IvD-`7vEF}`JV5qQ}A_nhKPf_oSNpItR(xQH8>2%!Jkvde8#6$;n4(s*;*b8hgmdLGZQS}hK-oZDbu!6LZ90~)g zC=hy!Um2T;#E5E^=7i&;a+GjiR+*r!T$OK^BK0MS1h&>V-!SRHyocZ{s=721*)s1; z=xK=4z%0M0q8^f!g}W!%kT=0_dLpB?veRI-Q(IQFELb$}tlK|XkCP;j!jrt&mJ#Uh zuRlsZKe9b<3Q2tR8EGq>CzMn-x&{VyM3lsm#HDe9OL1@Ku-?&}146%I09GM^R#rMPYgM#HU=DqbTJDaRo(&^g5N z*o=!`hau{ttQ(Zr3;PvU6#6te(aM~qOUODlTDZ$?wNro}?@^&)D6mrl=$}I@uNS`U z%ysv5UW$3Dm#U?W(KrmLIEbErb~$I zvYpmG&)f|Wn*XKxU+2%yCZY(EM%kQV3L}?kIl;Y5Gz{gYbxd{IVsJC-)Yqa=DI62R zKGMF`m^${mG%OAi22iTg4r5?8|G^uJtoW?)I+(@@DzE~7mMBU&6wIf-N*8y2O6)ai zf6~vbtlO6JJ_R^)U+$ZRmgNC8%FXqqCL|PKxLHkHe1WoBwGf!na9U+btGU}ZH1v(e z2kJ1SIJ&OCnjNOhop(A;{nS~kQowAs;_NTD(Y;6MU+PzZorC`5_L*sDikd^Rp@5q( z<@R9*SZ5kBTs_pG2eN?f55X=y6TV44>%V1N7AkX=9#AlkQUzlQNRqi=p-;}(w4zAM z+`=0e2;TSp25=@pSB-U z+gasx6_qFv8z~I(S^jErp8wrwI@Br35TPW=(Ea(}c-ZC>h|~yl%0B+6Q^C z-|wo_G)#$(caCw&jBjk9!h`gzCBjULIuQk6H$XWt$&tF8^gcdF6W0CZL3Mq1i05Id zRR7Op_HXywf^K?w7{CWNCwDXtHBtF4-}i(@aVN!u_`-R5ouZ67?;uW(iSpd6@S%Ls zdmQE*ATf|1H(w}Tg{BSspHyYg-QaR0cAP3^gkwTVF*>|B#x8q#xV=1B*qT-kpi+{| z1iEW-h7eQfw7(!;1gseA=xsbE<{ra|Y~<@MW)J!&c{M~!goHxi9UKKB9#+sP%0KhOWRc)5NOH^+WgY;)XB+ipej;D+p)twujY_;IsV*jKgBaeoGCkWJ4` zN(m&#FeK<#>D4Ub1e(^gs@8n03{i1aOA%IO6)2Qhwwj#@q9U_~bT2ga(+dGT4YYpb zzlNg47J`HgSOp(ys%IE7rW02IEW@8NNmxfZ8AcSz#Xz8j7Agayx^#vvulK4_rlgEQ z&UU2z>w8Y;^ONz?yi5baq{@ti_x{mq0<}a)L63xufzk=yPt?)g?!yO$MlJfy$wQT% z@)j!X7Y&P}3x6d5r8UbdOACPL+3nxEb@WAXV)u`kQO%f*Kl=8J^(=6Jr-KwK&TcD* z8PW~M->ONYgDLq)W%x=h-}6b4uk5@k1q?24`Cn-)MT;`P$qIkqnQ8lhs0xI*GMA&7 zohMkO4+U9E6N_yJDJXg05mNRj@>k+z7=<2#+(;Wh94**nH!G5&2}Mrk%_JG>o zy^T6x?`&8{u6wj2sD04;4!bzxT0x6(dG=v~6Q9Jw7|V?-7!t-Ob(a*voZOkV8o&?pX9r!*S%fI7u(Bi4OQ>D4N!GJQ&rY0HM=T{S^q3>WP zIIc7|(n^m=Vx2jLyftvCTUT>VR~S^aoAi;GT_Wd?BpcRY?jJp*C5L@_rVNE#f__#) zSOb;!2wtr>bcUVgVX1o+BjfL1@$^nQ(K<;q2P5uGh`zNvlo_7ME$%h1e}lwepG$W| z<3&_y;A%|kFu;f|1U=RT=KgOf3?CJwR^5N$|J#$Np2vP%@GZQSO0kY=E$W_{WCqfY zn4l0$RnWml5jX2txo7@P4{^p(!C_VR!%EIsx@f2>?P1Gd8q(M;vLvUA^nRbRKy5ee z=rXxaLCjorOP>epYe?eR{)s>+l3@(?sJ1JVNN0fe6M$x!5WXjj8Hj$0MV_b!8_F;n`9RWTzrz?U!5?`^UV2Rh=gvb{hlZ1VXMZic+ z@nVdyKx}U;Y%DE4beNg78?spwxhI@>Jf8I>`lm`lL%3OiYV+y}Hg zOb@F7chrSoO6v_vV5pVodkXPKWs@nVvL(h%wox0S5YHQ|!`qH?>O!ZZBN5Dv?D+9< z^U&l=--Q<3)3)|}lgGyNc=m76oi@(~N?+Xr##Cquqo5R-DO?HYfE0Al>=JG-Uicj) zFH=cR4u^?{;M+HdYvUs`v0?qBLj~xsXBX4?ytuDk5l66vFbe|c2LV< z8&PFg1rab!G%%ep?#Z1p1*n-93gE8Flu|luI5T z?6WX3?>71X`W@^7B9QFq?X%x8{nlTFp?)2Sr|HH8V)VXT!&Bf>(lA=#GMHgOvRqWb zQvUX+!TWy%pF6*yhd${-8>4jVK05=Yusv82Z^Sg8ld6$%=ZjL)S z`!^R&tK}uLtR*86lLJ%G(%oHq21PRv>HODqUet_9ItIzWNfyBYu4xg*8HyD|(x|Az z;;0RtkA)jC(5#bws}6?ays>VbL_6EKMC31VW^ccqxv*(XnV}wjhGj7!Ud7MBaNqtq zfp>$0os5ODU(B0UcICbg1Dp#)d(*0i>oPjJOgkHEd0G6G_YP>x8)$YI59T_wVa&TM0WK>!m+d_U1C)=<$r zk`xnOAX1IXE{=_L{1)~kAX~sZY*w}MwlDT`QQof=8wwtLLjlwDr~>W^H#d>F_UY+V zi(aegI<>?nL$M!hL!xE4-CrlbKfSkITT*%1Wns1E474~}xF|?5 z-nvFCNYQstq3yCH@$t&-Q?$7$iF{D#5lfxm4$Xw&H_E*3<1* zhnr3;3D&gX@I;;w1cyb6JbGijQkitn+~_>r@yq5rwHE_sT~SOp@_< zwvniiv#~PsKMgwq$A?<8ouhrm#Ety93N(ExK^Ud7u*=FNrHbGbyyC*AIbf?+RxETZ zgj5ub5qs7$n(lJ`Ac$roqWp1Rgk1(A;g3D4@HA8?xbWt_jnZj&xhS65=p2xJ6?%~ z-&K7-^~tc*R_#}NO+_ZEZ~Tx1V8wz42-Cs>1QmBjM@T~CkJ2V@yr>e0k3j3gwwCz{ zNKT|`oS0-dzS9ibx8Thr_8I-k(g8l&Iwb)d8P9~x6O>HlKA&&&k7~1Vc^DHVma@>T9^fYLJy4g~+WVVR5 z^NLMRJhzJ(S><=8v)>|eQtZ4p!UNNT)Cf8zwPneD+a`WmL|Laty6J!>et{YdreP*t(P?{&2>1D1og-s<;^buaEX1EGqXB`<9q{P* zaJqis5H%B-btma_V=G>-NK~X{^!2iEy`H!|V+^s8&Qt9QmYu;fx7y@GkWyF?%w{_i zDnJxBl*E*{{mE+zR+Mmv;WTBK`GFOMB9K;ZEy52mDW@Z;vH;UT3FYkyv5;#&OeIxY z>{3pM$pC>!YSCbL&#t;k)9?@*%tvMN`~F`U7(t z(#eupX6C1rKtsUG7;ix_Qj9p7k2N0MXUv&ezUm}k_}@Dd_!uk}3)Nc9`p@W>dny$E z`jlG8wwOy=d`5Qh{6)?+@m6tX`-S^9aGEZD(R@AcRMG-=;*Lap_x`DqrQYM;H&y*_ zVljqGk{Lh@Um|qvc7-SmW}D_JpO^D!#8) zE8Rl?D#4RlobMVKTynTn5OtB1T3_9y`Wi^f6LTDFEgZ*>z`_P43W_Bh_rS=&JOsV<8DZVUL{ zF=_%Cf0~nljSTe94f^?MT2H;t)j>yOy-_x|V&&r^?-b z2$taZ)g$qwUvYGRl^I7H^cnplAbu|K*y$_aEGysV0x=hf-DzMmP(xb7G9eX-EiNoN zv)(*7UJSyRP({G7r^R-?$VdJ2yfBT_e;=k+_WuE?_l-A4`C=jdz5x5@(?5fgn9->8 zjs6H(?!|+jK@JiE*)CDU#D>e{d!o7!QWj%4bbLNt_h-GhpDBHQOk)>)z$7gftPPlU z_K>x)jCq!PJ-p<~S!tD)pjmT_2*oa=#-897{XNKBbGp!m<7Qz{lWIua`*b|cA$$9Z zHjzM^8?z_W zUqBkGk8j#c^PXKdPOQy>1~dK^ZvoBUvV6{5PVTRFoo~4WE!JD3h6xhyDSMkp7}IpA zhQgqYaprbOqD7xeAAd>O>AlGekuoE8FbR;BszBoB zFT7mk=GRFLK0|gGVnKzSl1;6C{ZC7a;GuZl(Cyv$(-p}8Br79B(5;T`<5f!h;$4@> z(_7I4&)u9`KjppF=K88}QAOgY#C1>9G*js-DGY_Pbtr7RfF*@4!X*2f_u&P0!3yVR z@zmH{xi#V1&Z}bE2fk!30AQxUwU;KPq_a?DRK^ByR1z|IjgW*bAuVil4vhWRRh!qG;2UhBQoqFxTk!oVtrsu@Dw}`uG}pAIcC_`X+=DoQ9xV@KJ1RYA>2fwDSA7 zIn=WAe&sTWLlFHzY=rh$oVtQALqzX#Yr;E2@u@0}(W3#8+&75YVXc*y(fxUUW8eYA|2Z+PG(JrLU(KhZ0|deLq_DzmIeZ~bV1Oj)!M9| z(U(kn&uO_&LkXKtw)UHie$qy8IdR17ts#BxRvRda@DTgqpTGc(Ne}2JmQfhT5 zO&<6mM7^7=gF5LAiOvgyVpwZK^q67-=AC!0U(TM0Ibyev`SDw``3>)#n@I};by{vi z2w+D+TxZ-rrm}?Yj2AWTuhNY>85oJrx{BF3nx3+}b-Rs8l)b66Z-+mY`O!bZq>~kN zurqa#RVm+E(cFKsx#2uZsj0tg38{F>kN zJ)F3veWD;46#V4xB)h!D)AJzQ&=_A6kLx>#DKzs9n3+nv44VT^B&D-`fYdMoWN{}I zxF=K32JT-!>Z-#k637g-E8f%cQ=}$PsnYU8HlTg@5Hj1W|8-z8Dd^4vRlP?N-2jzyP(vvU5H)^A|eM|^JIJfmJXpZ zzmcql7|3zY6~+3#!_^8L<7_(8{muf*;qa*{-4A7_!6l{j6;=H+bxH?NLTgvX1LK z{+#;U#Ifneyl{sN5@CWoMY_X7f0Y^tiW?dbKIaMpHDCrZ9Uf@?cuuzRFg$tl^RIh< zh-8)>V$I765{-4yR74XpE09~Z>%`v{AD*i*=ytvO-a$5kSdRvP@C7c(*uJ-6vsf;4 z0d?J&l0I}i^ohuCi^dFs`%_-bs#^L-x=(64W`{;IfBsZsKeXOTUrXj1!RGa!1V;-6 zxv;(ZxPQ9d{OAFk)i1r^t%XUYd(w}os*haoSCVDi1ixD+a2=fv1ngAuLZ7=93w?Xy zj1Qqf^slkXx*jnN0F7>lGC4`Z5Fzha>Yvy@9kR-KnhP)n&O{?@EX){g05P@xWGMC# zk2p-=NYi{mQc>&ItLArezlE>1r-aG}`fo2DfG%=!L*=aEFFQz$%oMuQ8DsOot>!A;V!06 zVcrOqGu;R>I$7^jPHPunzr+~=q3$T(nH{p6zrUJ*x4ykH-le|Mh)U^~zdD6auQns7YJ6qu#~Q!&QFtg4$qtn;Qal!Nz*s^GWL8Xmz7IF!o5PZ**p zh8c2%YA#25I$;aNnR1p@NLiPb68^au-rri7vZ$fi`!Dw3-_BQW7Nm}kw~8MJqgFhI zEtCN0Y`#3}r&CGu{h%L%`#dk^oHV#gLM3cNEn!nhxlrhA|R^&lOp)<5i#L7gJ>9>a==)yf*9#@ z74ryOnbY*?MdtD3=)h5)>qc_FQ5~C6B@lc>t#0Ywc7?iL`5kB}Kz9B!ukKs5_QJW( z>2Ax9+~!H8G4UU?7?L!l-U7(HMFh?;2fmA{g%k?VhP_GSknE+cdESt@6wRoqTVM`) zEW6gp&tgYQkswTZKU&y|4_-Ug;2fTnYmr@nMWraKF+?HMX?*PJKA4Q3a*VJz14NWp zM>qd{bJ(#BY5UVVOw0%P=G{PDP9EmBI9o2>@%x|q8>Iz4keZO6^6Z^n$P(b$m$Cj{ z8fy$gv*c-hLOjyF^3Sy2?KE>T(B#2UNeV9!K&J=^#Yf--c%j6UY%I%s&;9TY(+E+5 zeAw8o>Ze2FJKGXQ&Lo~ez5rI7@Q`@k9SuF0K zWyYC|BOF1-;I`Be8v0Pd|Ims=nX!x1K~NISZ2gL}bW`YMx6wewF9GjyUci(59Nn}M ztxzmYzLjEsnZqb3cGvjl0`v78n7`Vcu0LY>yX>kJ{n(NfBY*i{@%FW+a1+L72&@d$ehqUw06b)#r{{WIvB)WOCf{J3eZX>#r2spwm0fMIwe>Rnn?=w% zTjl8zrLOGVj%B0Ajpa>Q^k|0Nm*(V&R*l_oi-VRnsA}tY0XJy>n74Rg`(Y6W0jkVc zO}%p9RYk!t#F|DR!Kl!YE4Gl7lFmx0l9s^WBUkKTGd`!ezma_dFiff=0`qWFHXj*} zeg9!q-CwnDWAx-gPRDzL>?6(bRpqac&_UN#@uTj10rUU;1fp+0SCg95b{u7LMk&p| zPVssD@#|i|Dr(v>P|d0<$qtBD8T81!xcC!$hNFu=EA+WCl&6U!iz>m6?OaR+w(@Q z?GgMO!HH+;=PB2#i`U1$53cd1Z?A*$e!9{T2h1u@f91Md=dE9pet9+HA_jX!|FF!4 zH9@@Z8LymXpLd1t%8zoi8JSAPgt2{&!w45CxekxL@$8HR;NKmEC&1*MCvxDf-h*R9 zDWgj1#V0!BxVB}}<)>fd*!q>5A*Fqt=253!^KGqiE`L{gyBD*rU0S|G-Q8w<1pYQZ zmcM1HiFY`&Za3%bZ=06+;wq7c($>3B9V9c1<8^*Zu~oo^J^UvJN!RcmaDnK-k9Z?i zrFcaY$aa1J^QbBa5iKp-Ojo#10Z}P9yLLdDiLWEx8G!_+dC6NItSme(?^zu<%Gdf3bD(E8F+Uy+&j%U@P$(+Rf@a%J;U> zMzxGV)NmheT!1}NP{?fAG9nKU`CM&Of@W3=W6ZT8)*#`Ub1 z&H74}vDOBTj-OP!Nh;7XnGub$l7wMcoKamJ{Sy-!CQXQykkUUBs7$kt?&?<`q?{Tq4rYdnF!`XbuH44u%w@6O<=%xi9P6dm2OawtEbVoJyvhzN1?dpI+2=c0XIkt^tH;pq#
swt_8scV`oQRJV|jSF4*d15 zuTtxVY6aDPViH_?aB20uXPg`bsnx&{I^kJCHOHAsRm>$k>z_8YN<5(0$G3}mnC8sH z(wCOE_TFcgLCsF#b{YqVkyr)Q5Y2h5jPbq;$@_% z3xfEY7*%qKE|sOcftoP~#*5L2r@t`gpAGCA3MMLX^$fXK`&vXS|0E(`V*%)B+5tvm z;2o4VkLDK6J$ADnGvV)h6xO=Q+d>E(udt}U-*GMr@YY|6^M~s`_1o*ziD<)|b-$D$ z0ntX6jrhD|ll{=W)F(BuDBEu&O;3fkQ_6SJwsVhaHmWN;AFasfQ(pLNef>Apm+}R= zx;A)VR44KrpUV&MK%kNe7!Xn!$PVZ>{tQA{9qIKsyw&QTL5<{cYerswHBKidGk$aHFcDy%{ZE8fR!CpWH zx<0YIzMS$ES~?jRn@x_fKU?_p>sx)G``uv-%7~6L*Fh8I@K1?<2rzzQ4-d*Kd7MAr zI`mje?%LAg?te>ZL5DZ;*OS$h7dwX_{x_ii-`w*19cT^cf2@5?>pXE@nQQm$lU-9y z=bsl%Pv9Fi`r6~G@hHE`na{x8^U1|C!o`is)L{wX7We$~3}Hx1i0p^@C-Hu_LtJWx zSF!@TEeRXnPHY}q0%uff2RH7wzuY<=Yp+=b%le8~Mwes_?|FPmY8(r?xa?6*yWJ&9 zmnRmO+o(+bxp?QUQ+{34xGvYYKz_%72H38WZ>7+?MwaZEch(}e`NuMR!KKQp-+1n( JaZ==<{{z9ih8h3> diff --git a/app/src/main/res/drawable-xxhdpi/ic_main_tab_square_pressed.webp b/app/src/main/res/drawable-xxhdpi/ic_main_tab_square_pressed.webp index f2ac4111a467b83cad2056a5bf3cbf696b0b22dc..d087a28cd3f178ecfcddf5c5f492531cdafdf457 100644 GIT binary patch delta 21355 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 diff --git a/app/src/main/res/drawable-xxhdpi/ic_vip_setting.webp b/app/src/main/res/drawable-xxhdpi/ic_vip_setting.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b0ca244657b0e7f6b991934bdf7f0bcd36dda35 GIT binary patch literal 2080 zcmb`Edpwle8pqclg$cQxE@%v=jgH)sTN;`vCbwxcn3*jxq#DCu5Gu1z+NOk^ORgQ` zE_andp)E&IF)mZH-ET>as4YWGvfrum`LzGo=lpe^wbt`~*Yo^7?|Rm=@YthAw{HQ! z!*VbB)9I>lZJO3{KCp?Lel2u~sjv3UZ(pz+mwC}H$( z^p_q|Ex-Jx9WeMy#s3b<`1yxXAjt=4>4ZXuLp7;DtP=2zb;a!ajSq@Bl0j!c8l0Fz zPvFrI`$4Q5@F({D6I1A+V*PbUbC4DoE z-~s?FgaAnX@;&C81wg|U0JaZ(kLj=hP>2J7!~Gun-V?e{sL$8mNkLxX^l1PVO99wQ z1VFhL09o?a9OV8>Z3rl(4%HP5jQ|h``~d=BK@gyTeGr*Ik7^7KKrig1FAad9{jb{; zlch^JG>;dgc(~b~GsaBsd%gIJa+dKiT#oSuoigk``YsH06`zQok@aFf5jJX;9kUncCT4n`){1hGX^;~y0cDnt%6Q^t8@JU&cebp@Phbyv|n4i#?8=H$Sv;q1Ql8xA+ zC84AnXRE3%p?^@%$mqBquHY1qf^BjoNPS}3+Sy8}F)=I&WJp^PQV|DKB!DCarYi;P zq%hm?Ohp*Xc7EspI)%|dBU6SswExWLSbR9y&xQWU>hg?A?W$6NR=w?6KYtSoNU8%3@`ob|G&C_wzU}{b0IgRrb+SYtz zyFK;Z=gX;r+hcVz@R15iOx=jc*=G0W{$E;lyfPFXmV5jbyEf10gv zW{k3GuH#nPYtnRupd5B|KX&*8YK2v+f6azxvEXQue>;kdaq)|`%^HktyYaD<@3L?2 zMiwe6nKe=#C^7J*iREOZK&c-z?9h@UlcFa?P95dTd;a0&o#0?Tt?CwhzkK$YYIq`g zoEXv^FXMkA_vnm%&3bapNLMAmPewJmo1t1%fp-p$3OkA?ar zOTujnkxuJnt?RvI(pU^(;SPTIH=;^hS;=T!<>5?u?cxUHuNl8jE>k!|Ctp`<9$QSx z@Ra3$6ja6QH==X2k*Eir$zKF#3m=W-6Yy^QV{>)3U9kqKJj1`;DAnRjvsgcN8J&Fw z|9g!wXS$h{YyNt?lZ#BDTDv54ZYmU9cQf_Oo%ftOg7#Ir*7?9_*qAuediIO1l@5|z zHSWIbjCtwbgr2Kbq86Gib7cQuCbMHYd4tE{CEVnhb3cq?UWI$OejIgD*hI!= zq`MN912u?deeM6Yw99#a{bHmeW?3gHy9VuRGWDa7OYn7NbLm#c$Nw;KC1ZjQwqMN<7kX)LWSHD)(R2m(6 zW};0{9*{%hrOruKn($K>Os8*o%O`j!3b=6j=;`{_@PU*WL&lx=8ky7WaQR{HBxiqL z_Smx9MuWxdz4P_WId=Bz4+{xDyP`~%v)iW(%2XCQ;61BFIc?N|(a)@voY$ivp3O|u zqK|Y1dD8EKO?-zay5w@C>6^XwaJBdE%;P&Ml;=9&B(nn5(lqkH#L2K6j2(WLhv}Pv z?J>CWrwJNr?O=WOm3$=zy(w&5!gbj&$L jKKgM}Rs51nWxQ16#naD?>kr+flDfw4oLt%n9^Co|9qmMF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ludo_game_logo.webp b/app/src/main/res/drawable-xxhdpi/ludo_game_logo.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/ludo_game_logo.webp rename to app/src/main/res/drawable-xxhdpi/ludo_game_logo.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_back_button.png b/app/src/main/res/drawable-xxhdpi/vip_center_back_button.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_back_button.png rename to app/src/main/res/drawable-xxhdpi/vip_center_back_button.png diff --git a/app/src/main/res/drawable-xhdpi/vip_center_background.webp b/app/src/main/res/drawable-xxhdpi/vip_center_background.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_background.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_background.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_help_button.webp b/app/src/main/res/drawable-xxhdpi/vip_center_help_button.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_help_button.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_help_button.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_bubble_lv9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_bubble_lv9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_card.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_card.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_card.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_card.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_entry_lv9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_entry_lv9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv3.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv3.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv3.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv3.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_mic_lv9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_mic_lv9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv1.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv1.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv1.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv1.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv2.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv2.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv2.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv2.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv3.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv3.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv3.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv3.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_roomcard_lv9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_roomcard_lv9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv1.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv1.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv1.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv1.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv2.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv2.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv2.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv2.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv3.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv3.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv3.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv3.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_identification_vipidentity_lv9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_identification_vipidentity_lv9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_label_decorate.webp b/app/src/main/res/drawable-xxhdpi/vip_center_label_decorate.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_label_decorate.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_label_decorate.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_1.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_1.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_1.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_1.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_2.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_2.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_2.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_2.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_3.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_3.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_3.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_3.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_4.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_4.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_4.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_4.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_5.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_5.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_5.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_5.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_6.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_6.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_6.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_6.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_7.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_7.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_7.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_7.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_8.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_8.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_8.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_8.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_level_9.webp b/app/src/main/res/drawable-xxhdpi/vip_center_level_9.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_level_9.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_level_9.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_purchase_bg.webp b/app/src/main/res/drawable-xxhdpi/vip_center_purchase_bg.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_purchase_bg.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_purchase_bg.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_purchase_button_bg.webp b/app/src/main/res/drawable-xxhdpi/vip_center_purchase_button_bg.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_purchase_button_bg.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_purchase_button_bg.webp diff --git a/app/src/main/res/drawable-xhdpi/vip_center_purchase_coin.webp b/app/src/main/res/drawable-xxhdpi/vip_center_purchase_coin.webp similarity index 100% rename from app/src/main/res/drawable-xhdpi/vip_center_purchase_coin.webp rename to app/src/main/res/drawable-xxhdpi/vip_center_purchase_coin.webp diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 350eb736d..4c529564c 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -26,6 +26,7 @@ android:id="@+id/main_tab_layout" android:layout_width="match_parent" android:layout_height="@dimen/dp_55" + android:layout_marginTop="@dimen/dp_10" android:elevation="0.5dp" /> diff --git a/app/src/main/res/layout/activity_vip_center.xml b/app/src/main/res/layout/activity_vip_center.xml index c91a47dd9..77225cf63 100644 --- a/app/src/main/res/layout/activity_vip_center.xml +++ b/app/src/main/res/layout/activity_vip_center.xml @@ -14,7 +14,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/vip_center_background" - app:layout_constraintDimensionRatio="750:820" + app:layout_constraintDimensionRatio="375:330" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -48,7 +48,7 @@ android:id="@+id/sl_auth" android:layout_width="0dp" android:layout_height="0dp" - android:layout_marginTop="20dp" + android:layout_marginTop="@dimen/dp_46" android:layout_marginBottom="@dimen/dp_80" android:fillViewport="true" app:layout_constraintBottom_toBottomOf="parent" @@ -274,7 +274,7 @@ app:layout_constraintEnd_toEndOf="@id/layout_bottom_panel" app:layout_constraintStart_toStartOf="@id/layout_bottom_panel" app:layout_constraintTop_toTopOf="@id/layout_bottom_panel" - android:textSize="@dimen/sp_11" + android:textSize="@dimen/sp_15" tools:text="Only through activity" android:text="@string/vip_center_9" tools:visibility="visible" diff --git a/app/src/main/res/layout/vip_center_idnetifications_layout.xml b/app/src/main/res/layout/vip_center_idnetifications_layout.xml index 0c0948e61..8bef05dbf 100644 --- a/app/src/main/res/layout/vip_center_idnetifications_layout.xml +++ b/app/src/main/res/layout/vip_center_idnetifications_layout.xml @@ -3,19 +3,18 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" - app:layout_constraintDimensionRatio="166:120" - android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_width="wrap_content" + app:layout_constraintDimensionRatio="164:120" + android:layout_height="120dp" android:layout_margin="8dp"> + app:layout_constraintBottom_toBottomOf="@id/item_background" /> \ No newline at end of file diff --git a/app/src/module_community/java/com/chwl/app/community/square/SquareFragment.java b/app/src/module_community/java/com/chwl/app/community/square/SquareFragment.java index 805ac3fd5..ba6f6662f 100644 --- a/app/src/module_community/java/com/chwl/app/community/square/SquareFragment.java +++ b/app/src/module_community/java/com/chwl/app/community/square/SquareFragment.java @@ -48,11 +48,11 @@ public class SquareFragment extends BaseFragment implements ContactsIndicatorAda /** * 关注 */ - public static final int TAB_TYPE_ATTENT = 0; + public static final int TAB_TYPE_ATTENT = 1; /** * 推荐 */ - public static final int TAB_TYPE_RECOMMEND = 1; + public static final int TAB_TYPE_RECOMMEND = 0; /** * 最新 */ @@ -86,8 +86,8 @@ public class SquareFragment extends BaseFragment implements ContactsIndicatorAda @Override public void initiate() { List fragmentPos = new ArrayList<>(); - fragmentPos.add(TAB_TYPE_ATTENT); fragmentPos.add(TAB_TYPE_RECOMMEND); + fragmentPos.add(TAB_TYPE_ATTENT); fragmentPos.add(TAB_TYPE_NEW); List tagList = new ArrayList<>(); List fragmentList = new ArrayList<>(); @@ -114,13 +114,13 @@ public class SquareFragment extends BaseFragment implements ContactsIndicatorAda CommonNavigator commonNavigator = new CommonNavigator(getContext()); commonNavigator.setLeftPadding(20); - commonNavigator.setRightPadding(40); + commonNavigator.setRightPadding(100); ContactsIndicatorAdapter magicIndicatorAdapter = new ContactsIndicatorAdapter(getContext(), tagList); magicIndicatorAdapter.setOnItemSelectListener(this); commonNavigator.setTitleWrapContent(true); commonNavigator.setAdapter(magicIndicatorAdapter); magicIndicator.setNavigator(commonNavigator); - commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE); + commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_BEGINNING); //init indicator ViewPagerHelper.bind(magicIndicator, viewPager); viewPager.post(new Runnable() { diff --git a/app/src/module_community/res/layout/fragment_square.xml b/app/src/module_community/res/layout/fragment_square.xml index 1fdbc8a05..5044c2e80 100644 --- a/app/src/module_community/res/layout/fragment_square.xml +++ b/app/src/module_community/res/layout/fragment_square.xml @@ -33,8 +33,8 @@ android:layout_width="wrap_content" android:layout_height="@dimen/dp_35" android:layout_marginTop="10dp" - android:layout_marginStart="@dimen/dp_30" - android:layout_marginEnd="@dimen/dp_40" + android:layout_marginStart="0dp" + android:layout_marginEnd="@dimen/dp_50" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/module_game/res/layout/game_home_fragment.xml b/app/src/module_game/res/layout/game_home_fragment.xml index 79792b27b..c5bfd1443 100644 --- a/app/src/module_game/res/layout/game_home_fragment.xml +++ b/app/src/module_game/res/layout/game_home_fragment.xml @@ -133,7 +133,7 @@ android:layout_height="0dp" android:scaleType="centerCrop" android:src="@drawable/ludo_game_logo" - app:layout_constraintDimensionRatio="141.5:113" + app:layout_constraintDimensionRatio="187:139" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/line_logo_top" diff --git a/app/src/module_labour_union/res/layout/item_vip_auth.xml b/app/src/module_labour_union/res/layout/item_vip_auth.xml index b112eda14..2b8982eed 100644 --- a/app/src/module_labour_union/res/layout/item_vip_auth.xml +++ b/app/src/module_labour_union/res/layout/item_vip_auth.xml @@ -5,7 +5,7 @@ android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginBottom="10dp" - android:gravity="center" + android:gravity="center_horizontal|top" android:orientation="vertical"> @@ -20,9 +20,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="7dp" - android:gravity="center" android:textColor="#ff9f8052" - android:textSize="14dp" + android:textSize="14sp" + android:gravity="center_horizontal" tools:text="@string/layout_item_vip_auth_01" /> \ No newline at end of file diff --git a/app/xml-class-mapping.txt b/app/xml-class-mapping.txt index ba05a7bfb..ba849d81d 100644 --- a/app/xml-class-mapping.txt +++ b/app/xml-class-mapping.txt @@ -414,7 +414,7 @@ class mapping: bbadb.dbabde.SingleRoomPKSearchActivity -> bt.KL ecaccbb.beccadff.GrantedPermissionsActivity -> s.KM ecaccbb.beccadff.PermissionGuideActivity -> s.KN - abaeec.bdedac.VipMainActivity -> dn.KO + abaeec.bdedac.VipCenterActivity -> dn.KO abaeec.bdedac.VipSettingActivity -> dn.KP ebceceb.facbeebc.AddSkillActivity -> dp.KQ ebceceb.facbeebc.SkillHomeActivity -> dp.KR