From c694ab53aacd2776649e37019ef596f067822f87 Mon Sep 17 00:00:00 2001 From: shixianjie Date: Wed, 9 Oct 2024 15:16:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=A8=E6=8A=A5=E8=AF=A6=E6=83=85=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 1 + .../java/com/hjx/parent/HuyouDetailActivity.java | 421 ++++++++ .../java/com/hjx/parent/StuHomeworkActivity.java | 20 + app/src/main/res/drawable/bg_circle.xml | 4 + app/src/main/res/drawable/bg_huyou_a4.xml | 12 + app/src/main/res/drawable/bg_huyou_table_bg.xml | 7 + app/src/main/res/drawable/bg_hy_analyse_title.xml | 17 + app/src/main/res/drawable/bg_hy_point_title.xml | 17 + app/src/main/res/drawable/bg_hy_summary_title.xml | 17 + app/src/main/res/drawable/bg_hy_weak_title.xml | 17 + app/src/main/res/drawable/bg_line_chart_fill2.xml | 9 + app/src/main/res/drawable/png_huyou_logo.png | Bin 0 -> 26495 bytes .../main/res/drawable/png_huyou_points_empty.png | Bin 0 -> 66778 bytes .../main/res/drawable/png_huyou_progress_bg.png | Bin 0 -> 19908 bytes app/src/main/res/drawable/png_huyou_top_bg.png | Bin 0 -> 42044 bytes app/src/main/res/drawable/png_hy_analyse_title.png | Bin 0 -> 3968 bytes app/src/main/res/drawable/png_hy_point_title.png | Bin 0 -> 3301 bytes .../main/res/drawable/png_hy_summary_comment.png | Bin 0 -> 3715 bytes app/src/main/res/drawable/png_hy_summary_title.png | Bin 0 -> 3412 bytes app/src/main/res/drawable/png_hy_weak_comment.png | Bin 0 -> 3330 bytes app/src/main/res/drawable/png_hy_weak_title.png | Bin 0 -> 3260 bytes app/src/main/res/drawable/png_ic_during.png | Bin 0 -> 2386 bytes app/src/main/res/drawable/png_ic_excellent.png | Bin 0 -> 7843 bytes app/src/main/res/drawable/png_ic_good.png | Bin 0 -> 9698 bytes app/src/main/res/drawable/png_ic_normal.png | Bin 0 -> 9656 bytes app/src/main/res/drawable/png_ic_weak.png | Bin 0 -> 8917 bytes app/src/main/res/drawable/png_info_bg.png | Bin 0 -> 11939 bytes app/src/main/res/drawable/png_iv_subject.png | Bin 0 -> 2508 bytes app/src/main/res/drawable/png_up.png | Bin 0 -> 664 bytes app/src/main/res/drawable/shape_radius_2.xml | 4 + app/src/main/res/layout/activity_huyou_detail.xml | 1074 +++++++++++++++++++ .../main/res/layout/activity_huyou_detail_a4.xml | 1079 ++++++++++++++++++++ app/src/main/res/layout/item_huyou_point.xml | 136 +++ build.gradle | 2 +- .../littlejie/circleprogress/CircleProgress.java | 409 ++++++++ .../com/littlejie/circleprogress/DialProgress.java | 343 +++++++ .../com/littlejie/circleprogress/WaveProgress.java | 506 +++++++++ .../littlejie/circleprogress/utils/Constant.java | 26 + .../littlejie/circleprogress/utils/MiscUtil.java | 83 ++ .../src/main/res/values/attrs_circle_progress.xml | 139 +++ 41 files changed, 4343 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/hjx/parent/HuyouDetailActivity.java create mode 100644 app/src/main/res/drawable/bg_circle.xml create mode 100644 app/src/main/res/drawable/bg_huyou_a4.xml create mode 100644 app/src/main/res/drawable/bg_huyou_table_bg.xml create mode 100644 app/src/main/res/drawable/bg_hy_analyse_title.xml create mode 100644 app/src/main/res/drawable/bg_hy_point_title.xml create mode 100644 app/src/main/res/drawable/bg_hy_summary_title.xml create mode 100644 app/src/main/res/drawable/bg_hy_weak_title.xml create mode 100644 app/src/main/res/drawable/bg_line_chart_fill2.xml create mode 100644 app/src/main/res/drawable/png_huyou_logo.png create mode 100644 app/src/main/res/drawable/png_huyou_points_empty.png create mode 100644 app/src/main/res/drawable/png_huyou_progress_bg.png create mode 100644 app/src/main/res/drawable/png_huyou_top_bg.png create mode 100644 app/src/main/res/drawable/png_hy_analyse_title.png create mode 100644 app/src/main/res/drawable/png_hy_point_title.png create mode 100644 app/src/main/res/drawable/png_hy_summary_comment.png create mode 100644 app/src/main/res/drawable/png_hy_summary_title.png create mode 100644 app/src/main/res/drawable/png_hy_weak_comment.png create mode 100644 app/src/main/res/drawable/png_hy_weak_title.png create mode 100644 app/src/main/res/drawable/png_ic_during.png create mode 100644 app/src/main/res/drawable/png_ic_excellent.png create mode 100644 app/src/main/res/drawable/png_ic_good.png create mode 100644 app/src/main/res/drawable/png_ic_normal.png create mode 100644 app/src/main/res/drawable/png_ic_weak.png create mode 100644 app/src/main/res/drawable/png_info_bg.png create mode 100644 app/src/main/res/drawable/png_iv_subject.png create mode 100644 app/src/main/res/drawable/png_up.png create mode 100644 app/src/main/res/drawable/shape_radius_2.xml create mode 100644 app/src/main/res/layout/activity_huyou_detail.xml create mode 100644 app/src/main/res/layout/activity_huyou_detail_a4.xml create mode 100644 app/src/main/res/layout/item_huyou_point.xml create mode 100644 libs/common/src/main/java/com/littlejie/circleprogress/CircleProgress.java create mode 100644 libs/common/src/main/java/com/littlejie/circleprogress/DialProgress.java create mode 100644 libs/common/src/main/java/com/littlejie/circleprogress/WaveProgress.java create mode 100644 libs/common/src/main/java/com/littlejie/circleprogress/utils/Constant.java create mode 100644 libs/common/src/main/java/com/littlejie/circleprogress/utils/MiscUtil.java create mode 100644 libs/common/src/main/res/values/attrs_circle_progress.xml diff --git a/app/build.gradle b/app/build.gradle index 4a7ec58..e270a87 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { defaultConfig { applicationId "com.hjx.parent" - minSdk 24 + minSdk 26 targetSdk 32 versionCode 1005 versionName "1.0.0.5" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0e5e222..79761ab 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -157,6 +157,7 @@ + { + + private String id; + private int type; // 0:周 1:阶段 + private Student student; + + private StDetail mData; + + final String indent = "        "; + + private boolean a4 = false; + + @Override + protected void onResume() { + super.onResume(); + binding.root.postDelayed(() -> { + float scale = 1f * binding.getRoot().getWidth() / binding.root.getWidth(); + if (scale >= 1) return; + binding.root.setScaleX(scale); + binding.root.setScaleY(scale); + }, 100); + } + + @SuppressLint("CheckResult") + @Override + public void initView(Bundle savedInstanceState) { + id = getIntent().getStringExtra("id"); + type = getIntent().getIntExtra("type", 0); + student = (Student) getIntent().getSerializableExtra("student"); + + if (type == 1) binding.tvTitle.setText("阶段作业学习总结"); + + Glide.with(this).load(student.photo).into(binding.ivAvatar); + binding.tvStuName.setText(student.stuName); + + setupChart(); + NetWorks.service_url.getHuyouDetail(NetWorks.getHeader(), id) + .subscribeOn(Schedulers.io()) + .map(response -> response.getData()) + .map(data -> { + if (type == 1) data.formatCollection(); + return data; + }) + .observeOn(AndroidSchedulers.mainThread()) + .compose(RxLifecycleAndroid.bindActivity(getRxLifecycle())) + .subscribe((data, th) -> { + mData = data; + if (th != null) th.printStackTrace(); + if (data != null) showData(data); + }); + + binding.btnShare.setOnClickListener(v -> { + Uri shareUri = prepareShare(); + if (shareUri != null) { + Intent shareIntent = new Intent(Intent.ACTION_SEND); + shareIntent.setType("image/jpeg"); + shareIntent.putExtra(Intent.EXTRA_STREAM, shareUri); + shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + + startActivity(shareIntent); + } + }); + + binding.btnSwitch.setOnClickListener(v -> { + switchPage(); + }); + + } + + private SimpleDateFormat getFormatWithGmt8(String pattern) { + SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.CHINA); + format.setTimeZone(TimeZone.getTimeZone("GMT+16")); + return format; + } + + @SuppressLint("SetTextI18n") + private void showData(StDetail data) { + binding.tvGrade.setText(data.grade); + binding.tvSubject.setText(data.homeworkSubject); + String start = getFormatWithGmt8("yyyy.M.d").format(data.startTime); + String end = new SimpleDateFormat(" - M.d", Locale.CHINA).format(data.endTime); + binding.tvDate.setText(start + end); + + if (data.points == null) data.points = new ArrayList<>(); + if (data.points.size() == 0) { + binding.cpBefore.setValue(0); + binding.cpAfter.setValue(0); + binding.pgBefore.setText("0"); + binding.pgAfter.setText("0"); + } else { + float before = 0; + float after = 0; + for (StDetail.Point point: data.points) { + before += point.beforeState; + after += point.afterState; + } + before = (int) (100f * before / data.points.size() + 0.5f); + after = (int) (100f * after / data.points.size() + 0.5f); + binding.cpBefore.setValue(before); + binding.cpAfter.setValue(after); + DecimalFormat format = new DecimalFormat("0"); + binding.pgBefore.setText(format.format(before)); + binding.pgAfter.setText(format.format(after)); + + String comment; + if (after >= 90) { + comment = "知识点掌握的比较扎实,多练习多巩固掌握一般的知识点会有很大帮助。"; + } else if (after >= 80) { + comment = "知识点掌握程度有进步,还要再继续学习,多练习,不断巩固。"; + } else if (after >= 60) { + comment = "薄弱知识点还有进步空间,再多做一些类似题目来巩固知识点,继续努力。"; + } else { + comment = "你的薄弱知识点还需要再深入了解,有不清楚的地方及时问老师,继续加油。"; + } + String percent = new DecimalFormat("0%").format(after / 100); + String temp = indent + "通过学习,你的薄弱知识点掌握程度为 %s," + comment; + temp = String.format(temp, fromColor(percent, "#F24E38")); + binding.tvWeakRate.setText(Html.fromHtml(temp, Html.FROM_HTML_MODE_COMPACT)); + } + + binding.tvTotalRate.setText(new DecimalFormat("0").format(100f * data.correct / data.total)); + binding.tvTotalCorrect.setText(String.valueOf(data.correct)); + binding.tvTotalError.setText(String.valueOf(data.total - data.correct)); + if (data.total == 0) { + binding.tvRating.setText(""); + } else { + float rate = 100f * data.correct / data.total; + String comment; + if (rate >= 90) { + comment = "掌握程度比较优秀,你对知识的理解和运用能力非常强,这是你努力的结果。请继续保持这份优秀,在未来的学习中,可以继续挑战更难的题目,勇攀高峰。"; + } else if (rate >= 80) { + comment = "掌握良好。接下来,跟随老师的学习规划,针对薄弱环节重点突破。加油,只要持之以恒,坚持下去,你一定会更加出色。"; + } else if (rate >= 60) { + comment = "掌握程度一般。不过别灰心,你有提升的潜力。跟随老师的步伐,制定合理的学习计划,多做一些练习题来巩固知识。老师相信你一定可以做到。"; + } else { + comment = "掌握程度较为薄弱。但不要放弃,这正是你奋起直追的好时机。认真分析自己的问题,从基础开始逐步提升。老师会一直支持你,只要你有决心,就没有克服不了的困难。"; + } + String rateStr = new DecimalFormat("0%").format(rate / 100f); + String temp; + if (type == 0) { + temp = indent + "在本周作业中,你的综合正确率是 %s," + comment; + } else { + temp = indent + "你的综合正确率是 %s," + comment; + } + temp = String.format(temp, fromColor(rateStr, "#3BC3B6")); + binding.tvRating.setText(Html.fromHtml(temp, Html.FROM_HTML_MODE_COMPACT)); + } + + List entries = new ArrayList<>(); + if (type == 0) { + entries.add(new Entry(1, data.mondayCorrection)); + entries.add(new Entry(2, data.tuesdayCorrection)); + entries.add(new Entry(3, data.wednesdayCorrection)); + entries.add(new Entry(4, data.thursdayCorrection)); + entries.add(new Entry(5, data.fridayCorrection)); + } else { + for (int i = 0; i < data.correctionList.size(); i ++) { + StDetail.Correction c = data.correctionList.get(i); + entries.add(new Entry(i, c.correction)); + } + XAxis xAxis = binding.lineChart.getXAxis(); + xAxis.setLabelCount(Math.min(entries.size(), 5), true); + xAxis.setValueFormatter(new ValueFormatter() { + SimpleDateFormat format = new SimpleDateFormat("M.d", Locale.CHINA); + @Override + public String getFormattedValue(float value) { + int index = (int) value; + if (index < 0 || index >= data.correctionList.size()) return ""; + Date date = data.correctionList.get(index).date; + return format.format(date); + } + }); + } + + LineDataSet set = new LineDataSet(entries, ""); + set.setColor(0xFF3BC3B6); + set.setCircleColor(0xFF3BC3B6); + set.setDrawFilled(true); + set.setDrawCircles(type == 0 || entries.size() == 1); + set.setDrawValues(false); + set.setHighlightEnabled(false); + set.setDrawHighlightIndicators(false); + set.setFillDrawable(ResourcesCompat.getDrawable(getResources(), R.drawable.bg_line_chart_fill2, null)); + binding.lineChart.setData(new LineData(set)); + binding.lineChart.invalidate(); + + if (!data.points.isEmpty()) { + int exNo = 0, goodNo = 0, normalNo = 0, weakNo = 0; + float total = 0; + for (StDetail.Point point: data.points) { + total += point.afterState; + if (point.afterState >= 0.9) { + exNo ++; + } else if (point.afterState >= 0.8) { + goodNo ++; + } else if (point.afterState >= 0.6) { + normalNo ++; + } else { + weakNo ++; + } + } + binding.tvExcellent.setText(String.valueOf(exNo)); + binding.tvGood.setText(String.valueOf(goodNo)); + binding.tvNormal.setText(String.valueOf(normalNo)); + binding.tvWeak.setText(String.valueOf(weakNo)); + + float exRate = 100f * exNo / data.points.size(); + float goodRate = 100f * goodNo / data.points.size(); + float normalRate = 100f * normalNo / data.points.size(); + float weakRate = 100f * weakNo / data.points.size(); + binding.cpGood.setValue(goodRate + normalRate + weakRate); + binding.cpNormal.setValue(normalRate + weakRate); + binding.cpWeak.setValue(weakRate); + binding.tvAvePoint.setText(new DecimalFormat("0").format(100f * total / data.points.size())); + } + + List points = new ArrayList<>(); + for (StDetail.Point point: data.points) { + if (point.beforeState < 1) points.add(point); + } + binding.tableRoot.setClipToOutline(true); + binding.rvPoint.setAdapter(new Adapter(points)); + binding.tableRoot.setVisibility(points.isEmpty() ? View.GONE : View.VISIBLE); + binding.flPointDesc.setVisibility(points.isEmpty() ? View.GONE : View.VISIBLE); + binding.flEmptyPoints.setVisibility(points.isEmpty() ? View.VISIBLE : View.GONE); + } + + private void setupChart() { + binding.lineChart.getLegend().setForm(Legend.LegendForm.NONE); + binding.lineChart.setScaleEnabled(false); + binding.lineChart.setTouchEnabled(false); + binding.lineChart.setDescription(null); + binding.lineChart.getAxisRight().setEnabled(false); + YAxis yAxis = binding.lineChart.getAxisLeft(); + yAxis.setDrawAxisLine(false); + yAxis.setDrawGridLines(true); + yAxis.setGridColor(0xFFDDDDDD); + yAxis.setTextColor(0xFF333333); + if (type == 0) { + yAxis.setTextSize(16); + yAxis.setXOffset(16); + } else { + yAxis.setTextSize(13); + } + yAxis.setAxisMinimum(0); + yAxis.setAxisMaximum(1); + yAxis.setLabelCount(5, true); + yAxis.setValueFormatter(new ValueFormatter() { + @Override + public String getFormattedValue(float value) { + return new DecimalFormat("0%").format(value); + } + }); + + XAxis xAxis = binding.lineChart.getXAxis(); + xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); + xAxis.setDrawAxisLine(false); + xAxis.setDrawGridLines(false); + xAxis.setTextColor(0xFF333333); + xAxis.setTextSize(16); + xAxis.setYOffset(16); + if (type == 0) { + xAxis.setAxisMinimum(0.5f); + xAxis.setAxisMaximum(5.5f); + xAxis.setLabelCount(11, true); + xAxis.setValueFormatter(new ValueFormatter() { + @Override + public String getFormattedValue(float value) { + if (value == 1) { + return "周一"; + } else if (value == 2) { + return "周二"; + } else if (value == 3) { + return "周三"; + } else if (value == 4) { + return "周四"; + } else if (value == 5) { + return "周五"; + } + return ""; + } + }); + } else { + xAxis.setTextSize(13); + } + } + + private String fromColor(String str, String color) { + return String.format("%s", color, str); + } + + private void switchPage() { + Intent intent = new Intent(getIntent()); + intent.putExtra("a4", !a4); + startActivity(intent); + finish(); + } + + private Uri prepareShare() { + try { + binding.toolbar.setVisibility(View.INVISIBLE); + Bitmap bitmap = BitmapUtils.shotView(binding.root); + binding.toolbar.setVisibility(View.VISIBLE); + + String fileName = student.stuName + "_周作业学习报告_" + System.currentTimeMillis(); + return ContentUtil.saveBitmapToGallery(this, bitmap, fileName); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + protected ActivityHuyouDetailBinding getViewBinding() { + a4 = getIntent().getBooleanExtra("a4", false); + View view; + if (a4) view = getLayoutInflater().inflate(R.layout.activity_huyou_detail_a4, null); + else view = getLayoutInflater().inflate(R.layout.activity_huyou_detail, null); + return ActivityHuyouDetailBinding.bind(view); + } + + public static class Adapter extends BaseQuickAdapter { + + public Adapter(@Nullable List data) { + super(R.layout.item_huyou_point, data); + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, StDetail.Point point) { + DecimalFormat format1 = new DecimalFormat("0%"); + DecimalFormat format2 = new DecimalFormat("0"); + holder.setText(R.id.tvName, point.pointName); + holder.setText(R.id.tvBefore, format1.format(point.beforeState)); + holder.setText(R.id.tvAfter, format1.format(point.afterState)); + holder.setText(R.id.tvGap, format2.format(point.gap * 100)); + holder.setGone(R.id.ivFlag, getData().indexOf(point) == 0); + holder.getView(R.id.tvName).setTooltipText(point.pointName); + + TextView before = holder.getView(R.id.tvBeforeState); + TextView after = holder.getView(R.id.tvAfterState); + + if (point.beforeState >= 0.9) { + before.setText("掌握优秀"); + before.setBackgroundTintList(ColorStateList.valueOf(0xFF4FBB7A)); + } else if (point.beforeState >= 0.8) { + before.setText("掌握良好"); + before.setBackgroundTintList(ColorStateList.valueOf(0xFF489AFA)); + } else if (point.beforeState >= 0.6) { + before.setText("掌握一般"); + before.setBackgroundTintList(ColorStateList.valueOf(0xFFF58725)); + } else { + before.setText("掌握薄弱"); + before.setBackgroundTintList(ColorStateList.valueOf(0xFFEA5127)); + } + if (point.afterState >= 0.9) { + after.setText("掌握优秀"); + after.setBackgroundTintList(ColorStateList.valueOf(0xFF4FBB7A)); + } else if (point.afterState >= 0.8) { + after.setText("掌握良好"); + after.setBackgroundTintList(ColorStateList.valueOf(0xFF489AFA)); + } else if (point.afterState >= 0.6) { + after.setText("掌握一般"); + after.setBackgroundTintList(ColorStateList.valueOf(0xFFF58725)); + } else { + after.setText("掌握薄弱"); + after.setBackgroundTintList(ColorStateList.valueOf(0xFFEA5127)); + } + + holder.setText(R.id.tvHuyou, format1.format(point.correctness)); + } + + } + +} diff --git a/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java b/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java index bf705e4..9ad4906 100644 --- a/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java +++ b/app/src/main/java/com/hjx/parent/StuHomeworkActivity.java @@ -131,10 +131,21 @@ public class StuHomeworkActivity extends BaseRxActivity goHuyou(data, 0); + stageAdapter.detailCall = data -> goHuyou(data, 1); + getWeekHuyou(); getStageHuyou(); } + private void goHuyou(StDetail data, int type) { + Intent intent = new Intent(this, HuyouDetailActivity.class); + intent.putExtra("id", data.id); + intent.putExtra("type", type); + intent.putExtra("student", state.student); + startActivity(intent); + } + @Override protected void onStart() { super.onStart(); @@ -422,6 +433,7 @@ public class StuHomeworkActivity extends BaseRxActivity { public Function1 deleteCall; + public Function1 detailCall; public Student student; public HuyouAdapter(@Nullable List data) { @@ -458,6 +470,14 @@ public class StuHomeworkActivity extends BaseRxActivity { + if (deleteCall != null) deleteCall.invoke(data); + }); + btnDetail.setOnClickListener(v -> { + if (detailCall != null) detailCall.invoke(data); + }); } private SimpleDateFormat getFormatWithGmt8(String pattern) { diff --git a/app/src/main/res/drawable/bg_circle.xml b/app/src/main/res/drawable/bg_circle.xml new file mode 100644 index 0000000..4efebc7 --- /dev/null +++ b/app/src/main/res/drawable/bg_circle.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_huyou_a4.xml b/app/src/main/res/drawable/bg_huyou_a4.xml new file mode 100644 index 0000000..4b2127d --- /dev/null +++ b/app/src/main/res/drawable/bg_huyou_a4.xml @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_huyou_table_bg.xml b/app/src/main/res/drawable/bg_huyou_table_bg.xml new file mode 100644 index 0000000..9ef3584 --- /dev/null +++ b/app/src/main/res/drawable/bg_huyou_table_bg.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_hy_analyse_title.xml b/app/src/main/res/drawable/bg_hy_analyse_title.xml new file mode 100644 index 0000000..f447bf6 --- /dev/null +++ b/app/src/main/res/drawable/bg_hy_analyse_title.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_hy_point_title.xml b/app/src/main/res/drawable/bg_hy_point_title.xml new file mode 100644 index 0000000..8ecbd9c --- /dev/null +++ b/app/src/main/res/drawable/bg_hy_point_title.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_hy_summary_title.xml b/app/src/main/res/drawable/bg_hy_summary_title.xml new file mode 100644 index 0000000..d59299c --- /dev/null +++ b/app/src/main/res/drawable/bg_hy_summary_title.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_hy_weak_title.xml b/app/src/main/res/drawable/bg_hy_weak_title.xml new file mode 100644 index 0000000..672bc2d --- /dev/null +++ b/app/src/main/res/drawable/bg_hy_weak_title.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_line_chart_fill2.xml b/app/src/main/res/drawable/bg_line_chart_fill2.xml new file mode 100644 index 0000000..cd16f0d --- /dev/null +++ b/app/src/main/res/drawable/bg_line_chart_fill2.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/png_huyou_logo.png b/app/src/main/res/drawable/png_huyou_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e520203ed9216fbd760211d443f1ae9c5e920ac GIT binary patch literal 26495 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�wVKH8<;uYhSOy37}whB z);Bd8zMpddl{r*$&*gg)O-R^a%eW@58_zcZkLktH`UMF*zK@361#itou-3mER$&qOsq;fMy zo{jto=fbffsGUDY+u)NZ*p=90r3>CC9#XG{s9J*ObizO33ZyT33+!|!!l!W1qv zv1>0z>RBpn&El>qQ;=bZ!kT`pc7E71bhN{wWG^XgD;pn`f*m}Fk^AmK zNbyx_1cf#m7A;2U{gpH^n5&BkvC%5LT8N3la;WuJqHxkVa5}r;l}ac*`xyL(et@>& zXOZVICOt)mKqLZ}kvfyyc9}57gl(F;^Gsx7D6-Kdp$DcX%?to-`I~dhv`8&&g(R|? z#A=EoqU?Lph!}{75owJmi6b)NuEb%$xN7P^EkTSD07(LMgV<06Ki@f8d&R%p?jCnF zv7w(Ts^)lzf2}}d`Q_1z?CURikJ`WSVpytxtgd}4i&hpcC&r3UCS5WNji^;qA|Rr} zi4hSHQH93AZ5oKA3`oo3J=B@EzSe48$$9eTrC&5nHxc`imyKhLw={*JB=0xCBmpvs zAUAd^>A9BdcrsqCHYBm40M)v}aJ>W5o$FwAEkZbc5ShUz(VLz^u_JEoSDk8LXsCwa ziGWMM^mjVw>B}NR41hO>xDIttYhYrujDu4tOro7*`#Rkc`imjjill!?D;n8gXtH^n zfZR|yO!uD%@2GQNtcIp# zf{z@d#p)!-Ou$I;&2;hnLMK3x)eJ;;0h4=Lyk@Ncqti6#d=k^l$U75&lKMpiL}d?= z7x}egU%4rK_1FL1$+mqzqtv#;E#+1qBG_8sKKH%Xx;MP}k5R9$L{5i{v$wzqP-Oi_ zPpCu-GIGtNI9Xzv>D(gHh$ym}foOZI5fL4iQkC=FpTk|rEEZ#k$)+fs+&eLi3|5qk zhIreA)@$Zsg3c@eGj}o(@AX9IW3}DiRN_;gv`$K`ml_xzs$y`$g6Fg$n~u=m=ApYQ z4Yxp*5-mh^AJgMyOixxob?VwWvd9&)u!wTdVh|5z6vD4IFf=fQv57h#+u4yqcW<79 z6BV6DQYT!-A})AE88?H~42HcTd@Ie1u+N!5233TV1gmUVmQ98WqDCFHY#&NXPlvzg z7^uo5a(f>|acV1Us%lSVD9E#uwBeS7N@HvUFQmai;G;ZQ#n5OO6Qu~%D8+S+oVE_w z#davtF6mTjHTaVwP}4)`PSw%ZokqSb!v+6&;Ur~!TTLMifPznS`F?=XL=^|8B8&wE zc&RqnVFR7k6#DZ4iUo&(l>dpjXR>7ZE@8wb;F%ke%u_zD^}O^PN`OdDGGWwBb4TAZ zv&eoTP#Zubk=4}KEH6N$fP?n{<2&^j=>m0Za<$YYlIP4gBIzrb1US-|ki0-~Bq0LF zohZHO_S@Zc7k)h#vmwfwJmkMt9>E8DQFNyI`i0ln+wQp-u5#jbySji;QD48%Oo6?`l z=h*VRm=~sLmTYP=X+$3~%`ye)ihkoM}NM7-a-)90%B$&Lah-j$Kxx{o8KR&8gLPR z3S2DLQ7+T(0JVAqx{@&BBDb)jhzWapyNj-_EV8*YH&|?1O#C%1jTuY^LyL*Np6W7r z0ZOF?#wR>f>+zKDC|YPMxJYp_xK43sI``J~Wtw8MVt z%AW;9x(o<0NHWc+Y2|`dV9DhG0nrX!2aGl`*(~%qC$9L`dPGK@_N4TOZaz?_jR`?x z?d8u^-*Vfxvkq=Z1JA#Zy47(@%Z#_w3u>|5i0Uyas7yaWAK)PN^bL8xhzd z;4&zg;x!F0)wLk6*_yZv$k>56@s+Zr35ZCrHT9bL@beIiHhznQ6KJrI`^Stun3znJ!L$RjTj|<&Gd-L-%(|YK>C7%IL_vt4;luMo*tQKf zmDUNTW;~629&={B`^)F@sxl7NO%Rh<6FuRYfGD9P8aM*fD|J++s|fsn&Ax0Q3!9u5 zW&tif=Ln5b4MQU(jE~olO4;b`DWJV02b&hJlomD38S@@CnKWkHSG)iSkUY2{4b4u#d~i#@dto)ROsohIX?1lEej{X%Pp53yoZ6xPNv8R% zdDwJOGsm}jgXP@J`6jolscgEzj`-6|fxP9-NedydUX18!snSSdHRqaXARuXP;(v=a~w#8nz84~o2IWM7&< zafpp(&I{xBn%=sWIHo4>p;!>}>J5`K8I@KrGOpV!FTrb3fY)G2vhbTuRwj^U3d!df z?Xm^TrIRQJoEh$1VLi#NEOc6!mDn44R>#!A&=?HCcCJKY4Gio>lU$?3$tQ`kF=)mP z3=5&>p;oDJ7=Yzi$mFwd(03KPC0`Q6UWXvHM_9g*a?*}?KJYj&z zwVCWm&PgVW2}A}9O4yRjH7${_cU!laPF(n;@9J`~;x!W>qAnifg(P5P@1i8ViZE^5 zf7#a(01~g6){uxqR6RsBJ7}Ezj%VsuefEZQruZElH#BEy*w!^XA3?-e6t%ZK@z4L; z{>ew*rz&F$kg*h}dvoD@ag!UGkO@$Uh%K*cdQ1y~isu)P0>%e{ksZLqpzidlYgW$( zk8?7iIhczXR4M0Vnqdq;!ieT#MJ-^$=c5@9Ctd0jl!?bR z89`#+NqN(jihaV$l3ljd)G-0o7%<*(O)!$zS_YLLihEXT1>7=8z^kP(W#X`ifq-hM zbBm?pK(qh=AOJ~3K~(9a5Sy?y0ZTDYl9j2=vzBp{1ZV{_R@1ye|osq)x>mmGn-$d<- zf7oCh_nPZ-z+FnI=@-I==4C|jrWINBv7Hw?KmG7~>}PJg2$5glp5N^DmEB4&n1lt% zA~(9KChmJ;L=n)vHfBTD>-Nj^sJ z@G%}3I}-oh5=qTWW3Kb%7iLVi#5-rOA$HMf1`}s;YLiET)^yvO1gw&or`Zubro|%X zs24gvYzdl_@oU=E4a<#1baQ7W@X+;#lSS8(Rv=(Z8;-OE;@m|2uSs7p!AOGvYeVK9 zsJ~xdRJ=bLZR4s(Y$Kq6r*dN)tJo7#*pQ&i+NUi+p8&}2#4G2`cg2BbSrxNvQ6u#o2m2(py z(5-v82)Y;3cK#=(m_+(&?MoODvt)AzH#(iLXGPq=3DOwmra2W2kBtc?iMiUcIA<{p zVR8C1h2faqphQy>lTkjz6uEUP9XVa|7BHxoW}X3*$vMk)7|g3_LokulWL}5ah~;(& zQ{?j^ZA^FV5chp+dIuF#B1V+g8j%3e1c}uGL^_-!*|7Ayn#ClwV9%ha0~n`01Z@i@ zD=+znJ8=Bf-|&EYx|NzbB!_5uaSqs>IU-yqG- z=$yGfF}b+u$Iz2#qBk)o(Qr&1Nd#uOMtz=wmraaG7?o7I(;zu(x1*hiK!}3x2pwAm z$(H?s7lFafWY^+z(7U}16|b-4jXqe#Y~gE(J_YihhH)x%#-Ug z7Pnlw)I4Td-wLk!y3F(f5rvsO8PU;+sb+v;GG&d=O)lN=^6=?P#Bgib8GX))htJSK zC`ut5&Lm}~i(rlGlk=wkk)@oLgJM0Xpxm-E_tanY&FfX~%5N2b&4-Gj zp6dz^2}C@mx4q?DY`^1gFg17vhsd&NMhjd9#H?G?QXoxsT;8FnHAN6>Lrr&LI_VMu8V;2`D&n{Bu$r+Z(}VZF~MX(nclC2Ey%Fx z86q^ByKk5~ub6JaOj;(GaBs6CEQ3!jLX?^5FQr}D@!XGtB>8V{*(%pA78(UL${Td} z1IOZ!X(;rMhL!)0IUcnWRw|4LjV<~Ha)n!wvMgSL@g?zh@|W}TksYbnV?J}iCgWl< zAs`ta663(kCPBJ#1m99&$e+ZVDhgDDkYd4U?J5<8Rus}>YA#7WdUDp2&@D~<;xDCh zk|+X@Z{%BR%9?w z8BSrgl0@3X1dZd(^H0{5-e?oAnPl9HMkFoAQ?Y4QG#Jr-GR=e$9m0LjjL0-`jWMCv z4yrfb0Q@7bdfLDG-#+i|f6cywrH1cbXz_ zt5}`5@HPD>AflE+q!D$k(?GN{)`%LE^crWL$FtaUg$Ae5m15#8R}L=xGF#NEqtTJH+UafU~Mtrb~(`pxEg;G0L!+acF(RZhr(JvL2E zwx2?%OaRptA}Ubr57Jv`OAKMD29(8xq9Yn`e(cnsY(I=BS3^-h<`9<4zay23V5g%< zQ7(n1>hwkIG_XTuQU4g*)23JyDJsBhhrBHD$Y;IE5gw5Mk(qK~%n1X(lB^P*LShCQOoLg|9HKch+ZM5$kJE$8%Ro;wX7$o_ zS-QKnxbP{UkE>Jog5EZfU%df({pZF*y_OIp2ja<)K@3u_KTbYrhdl(dwXFOf7 z2BPkxfyv3ZO5@aE3`AT8#8}Bf`IG1L4KSm*dDGUQ#5YAJB#K7D-zlq#f-*fIQv#gY zjNqQ^sscJ<|A%4RDm4x!hDCceZPf%I1O}-HmL2ksaw&_GI*|pi=*JBs0tqMU(NARO z8lmm_3_Mmk2;c;klky^`!;h?i!0g0r3^WIDHcC0 z8#a|=r6Vl5XsYUA&uVQj$7G^->zSt$QWB~V0iB6b2yG7pL{!O$Ml!I%Ftma&R5ssN zpGOp7XoYk*#|HTE3=1i*geW8dkmrPv=U72ttAIeL?!d3PATSE6uI1C?ilu_O8+ujO z3hJ&Ec#aAi@o|2|wS&5YpzcIIy-v@0lrd}}@Lm4SfIyReHxvSo04)YCI)6IHm}c^5 za)hO9TI^vonN;gy);43pqRdEU?I;kCq7UNQKibq|9w|V?H*ZE_5Yvo^0?Q|w9Z7>l zcHa{atpu_*u>Y>ueb17J0FlYy1VFV}Xqv3@H?3JpK(0p!m!G=Hzv7?%Vraq1H!W2p zFTc2d^8yix)fjtr9Ul4OJMhFe-iAi0A6XsYo3I~KtTx*Z&Ee@_Q1D~1y60G6imG_+ zp7EL`4Hk`sB%uPrXc(M~!51dP)%$cC74hD1gD~nqtF6rXVX zH&@oNwW`?Qzxne+8V!q6?2;Wz8{+X}N`WJgpmesFS6Cr&IU80;T$DbWek;pX-h^EWH$R1#l-1p=)(_1LNmq10Bj?NM%P@>FdVh%}$F%7uv05q+6SLNJ> z2sSl+Z$x3>S+?5GQmK#LGa4b8pD8C`#I*Wlt*$8wdOfO>NfHI)SV$uXR zpr#ab>mB%<8Ra-m;QKx+3@#jU6)@Nk5ReaxlW*Wgxwv5tX-3R~+?0OY;A*b{rG(bO z#$H4wJh#=Xv5XUCI+9e-nK)i*CzJ(!E-IB6#Izz6<@1QjWz#mDb4rmtC*Z(whM+$2 z1VFW##q*{nuh&$)PLcX)v{P8p+9lq-lps~9FuCH9~htAuY z1>d(E$04q*d@{}K_%((li5Lq4QYURilb1j(V1S~(37C@S7^Ex$Ezeadv=N533PUm% zt8$2G7!!A*Hs8&X*woV%DQwl`{AuBGUSy=xy7n)sd{8Pb=%I=;Sj($p0cvE7QD!!)`k{!pN}lpX7FeQx}gg%Y&04XTsMdsjWCr; zg;B&aD~L!(0>VlZ1zp*!FrQ$0dO8ZjkdBKwIyxjEr}cMiUNr~eMAu#mb zo@bY%M}@ITxm3#X73ciZ-@LQM$2gV`pFzn9loco!L#8R48CgGzDQUVCbN4vCBSI}&eB1--*f)G0 zXB=^}Qm=bK5!EsU=4V6)?p%)hKL37fzUAG3pXE9dbWyD-9Rf&_${}7GiLnuYA|Rrl zp0z;#Nn8LO;|JngGg9B#v!%-xP}~F6*%eyJiI!w9lgQbKOLo#$Pd{D_@G9}HQK;|zF7x3*Ar%?qqBL}mV__vQBa;V`~%upO6 zBOZfM7`X^i)VYhw8#8DiM21;S5LJkAlnF?pLZQH5H8nMbVzJ174-X^k?KQ#RpcVk= zRxA-BEJQsa#`;F_;}^Tj{JOy8zv^>YE|>u-*+`A&_E`rH#<3*}7cNx8!^5#XL?~q2 zR%d6Ynx3Av+uGVxxm+f2(m&J|!sSJoAL<`#y zk(|NMh~hW1?`chvPSl7Z6`Fehai5{*d2Vk7FcH8zETh{m6Qs0Q>N1uQr@P8*mU0jiTR>T^*qohw7LM}#m^ zcxDo1~maQ9kB^(aF8^m5v!-C$08P1EEX*St-MlJHD+IYY`tE$Evki*rl6KI+3PkH zc_Q9k^$A8?l~b&b5u_;JkE22vw8#$%kUdE&i^&%SmbiPLTAR7)Loau?-F*t&&_*t& zWeBnYw8xra`AC4KW|jml^g9Wwksw)Ji-{SN{vlJX&<%7h1gL)fzPo|Ry*frqr+BoQ zW)f1+#E49B-H1D@(K<}kvHsOx#W7d@KYVNJF7@$`8-CP7-<`REXvYuxvGvw>;)(CP z9p$kj;ZiGV;&Ue8w0O%*)69&r7J-?-BB%g;M*_>vj&0#;2`Ez+4_ytNwTvoIod&2V zRe36|XH5V^sLx7@MrKj~XF_FW0>Ma`AyFjjR&dJY*VSM0h0mwkR#J;whq^c|jDaQA zUVd>2*Io;}7_;SnK<33P_y4}f8bCGcBE-BjUJ$XK*pD+lK5ln*S{6#SgF?Zo0&aa` z!m+YhM=9l~M#E7m?I@}(LY5Qp`SN79z42QYr#5`%YHM)Ek!(Iu?SGNyWTi?M5f-Ae z+zl9+HXvUFvTbp<4x7M9%NWFITc#Tc`HGu zaipS@B;~GLc{{H7)ZgKV*Hbxy`hVYL@jqw&-*E&eUsIpA=~c9_4+=}51_9L{AK+u~ zv9;LnH-CtyZg~|NrM|c`Z;RR|hI`X`&GLC zhzIZKf4&%ZeC(4LA3B{aU-nj!SITh9OSH0C|0jv*G4r^z%bmKp5+ho1Ig1} zO~B5lV-TV=4`xl8t7zw06YCKW5*Mg>V-lZ@W<=zN?rz(LOMds?Drf!Kzvfl%!52Cx z|8v~`jKFVt1fs3qI~hOu%THkE6PK{Vld9`-pr^P-X2{V@P=?`}kQ0uj`PjRh%Ec^* zz^Ho>uCtgVmrXasaYP&%LqQ)B&}azX66=%%Hn!+Qd~VuG;owI0d{=S&D{jWc zU-*RTTDs|lj^k_~+V=gv|F6AkkCCe?9uC{uARVR_XCHfYR`uZ-#am-2{d%l^l6)4jCx%?r@lDy zeJDgDmH0Jh-UBw3;eGw!2f*po3Ux*m3ZpO(**!E#+8ZB@=Rr= zW_m(hpqrUXMX4c$#$_vkRj;RPDX{Z);J_0#0Fmn@?t5EURKs%5^Ig_?1BfVBOF)!z zVDZ>}c-Ji(aNHSpFviH`nDaL4^n^FG?T2S#^VdI&UE42$#s-By;*cv)p^}4 z-_Ob+HM}ALVp15*9|b}a_{T0_nuvup*YMvw9|bZqY?mXPj08LN1t_nGfGDYRNc@$r zy0^UWTc0xrSKl$GHTpaBE$}>8fb+ju_~qB%j;%Lcj{S#TB-R_P33cJ^y&yM>uf3^? zCK##rQItV&Kwi?alYwPR0Br(@_5)N$R_{?BPWN6`s@31(cxw7<1BAr;%X%JN!~xsb zjq|ViHinm7j}zbes93Mqs)Vwu6mAEp$)e+M4=?H5pmCu89N;1g$$1{^f> zoQNt*8*zzpDfUKxcNy4?h@qLjARwZPGl5Z{0mlyjiw7iOQWk-lCHpRUv7uHVUT*-A zYV2+57l|nz!gJ_g^#!-$q;=oH>O=Q1Hh1-GHV_^B>jK<$^`+Q)!zYpF3t-6w-<0*} z<0vQXB0uTk&3x?_zA-&Gc>Cx)#+p2b zzqkIO`xbac3-DdPTZ4NyTmioAEG!;2U=G$}m{wL0a!8HLyD*1dQ5@VCR*nC}S7I$A)fFyy0rXnbD zcopL+uSkj*}4StyO%vd{7zU1?_TPM8kTEj6m zQ}a@PE%YsLG+Kbi@rvrfuYQD0T=PE0CPtxAvmR|qFi%jFW@JAEkTluQQnXEYPfEW@ zPH>sUil$|w_E9Bx32G|z>V{zrAet4LspNGdbQ5VJ34p}o%Z&o3z3!)Y>3QD-cHGBa z@x5nVdow_^XU7U``O3%e*PGTO4#!~8AS^XqLiJPkGO2qttEH!+a!SqdL#kO;DJFJ- zrxyRJy(cwes+Q|%@D67P%nFFQ07i@<>fSJFZ64|tuc(Faly))pfxqFz3w~v^T0gUa zo%2bW9gRQI{%1P&Ex03)SfMaR5sm+VT6sHC)#9BJ~1j^q&?flt((qC(*!fS6TS{=&at^@ZPu zcEZiE~f}25F8Lg}`TN$hcDYr+`%3Kt4 zdnn1x(UkkA?>82%de8{GyBy%&`Oa55_J8vIGdx-?z&Rg@4(z-Llbg9@-Io=UyRXJqldl~p=D%!=IRWf&kk>}mOahhgQ_~+3ZzV*cchdn$$Ae!2C3V!*C%kkjd7l4&6 z9O`vZavqK1S_5yo`5Kj!p7omaegw!0FNh?JrBterwyGEjcUgAH&4IME2Gi0W%9uME zmEMxL@|H!VwKV4bXw2=!9qx>Ty4eb0c@fi$xGY)1bS<)NGb~Uhd8)^njzs6kbO(tJ zOk2P{0EhllA@8I2r`rEy$GQbL3C;i`QI6wthC%A`WF=*5ORuP?aXaxDuY3)K&x^Lt zvjaYhCwwh_+Gpvcr*)q4jbxY0BKo`SAUkYpdD~)n$3Ri)oTT+g-;?fXQ@7rM1_E1T zl3YF%3GObhPcC*P8=_PtDgQ)$_aSLqIcd4(gTJoMxq5?b+uP;`MEkcd!yh($99w>| z9$|JoJTL)9-6V7)teREymqUL@PF00s8sns-$#gB}hM950&M0Imy@g5TkHuwhLX!K- z6S#{~?v5nf9}BsATnwWXGu@22j>xbO8XBUiM5L7nD;<%gqeG`@0C5o{kgxy%1T;xR zK~$O{HY_9#5KjXc_2W}&Zplo2q3nA>$NI88cF&J_l#(#YfSHUwRoSyl0!DK z)Miy?vZA7pPvexA5-E{-h(dR{%gC*^x&k5@<_Un}wdX}+6{(|Z(P%qA`!he+UU})) zY@5v!h$jEo!sEYx3*U6jN7*A!zFG)A`3;Y)Nja}odrNK^6hak3m)Uai%5-x$t(@CK zdFhU%+#5;CU`51RV-fR~M5Q|%!W!x@E9mH^+hMvMaoAD85!wzq8W83Ml8PfKO(X`8 znm|U>M;plfnvzxQ1&V_}@e)vwOcF5tTi*i5z6D4TU=yI9RigmWfJI+I2w0?%sMWwl z2^F_2;F<=U3h)W6$`n4+)4(XxR-SfRENurYYX^uYeHKmx2%mEGWXfgHL61T{7EfA8 zrYt=TO_rx7^3Y^uW-yWtq_{@;CEeVUO#f1%dYW?M4B6^+|0vG;>J7%S)z>>N3>t{I`$V^{|x_g3p6E5uK1T9bNOtbvLgs0j$HsQ&GYC0u2sOv zN_eIXkLP8;s=_Oi#A7@QkcR<_CIjAns-;Jhz7`+wd3%qqhkHHN+3V`jVUML9i>GZ% zOJkazqVc@aSzc*KN`^u&i{&SD(l>o>3t#ol8(WTdD`V_gxkR&>)tuXDIJvHP;FkAb z*Va>o-fn9ss)CWY8dw@vtrZcx(U^HbTv=|cS$+qm9cqRVS3t4NATWjSKk z1icoQHIF(QtU*Tg*o!>8C`gj*dH>e8K;Ht-i3MaLT-2&})lzCghLD7q4ZtQZD$L;O z46bd$XAmJ@i$@Yjrd5fYFXX5bq%Zn^s0J{}4%jN|`=z^)-g~+i#lfZh5b8PkW%Uo*x4?hV0y0TXKxG^N%;7rZGieH- z510&aih3%bOAR6%2#OMcmgWI3qd?E5TWIeYDASIIU}+1c4Da_oIX)({Ev6F=MHLo*DXC>?{&wn7zo9+&h&$gl#aY5%fXKh!#qGJ< za~GHXjS|S-j4b^bgX&P+KwQBSZZ^TUtq!>MR#?>Esc|`W!+Y+%FWauFOi4P@N49TV zbr`6Tu_x_nd;7lFwj4>p`|Or;n2X@K3HC%Td1mbWqd-dt#lN}SkZ-z&hbPc^qp)@u zZ<=PubC{KtrB6Mef3?s%F)>kbp3(f{^7N+{4tRn}kDH1jS?!GyOJ$Q=y2_Is!8hiA zpCnXGBLk4|%3XuJbHk|2BBD}Vk3=Gw^>>IB#s?vI1h$QCmh0L&s{AMSXJXQ&5-f_T zgeF)AGW-dmciEI*(NNPA2q%-g|7w{b8^g{F3K5+ZT()DqNLHF){|t5hVSAmL@kLOP z*t#qk=7r4be!-H+e=nyfl1_qpO zgzh1ytD6$!ul+h#o?P?lF*1C1tkyq{{$St8 zc{RX)3|7Ix*`ZmS&_0e=?P6ETb!fMzmYmn8M|546jWhmO(X5_xLZ8F?E`60j>L7kd zBXm|j^ksPI{vS)x)@ySfPR75<^upt{Wag4{W-1n1l%o~{|JXF2*_u}5Y-xtuX z9j{`8C*n%3Wv5)5n$eUkuX&I}(~#4X;|?vR9{W&aTejuibK=KWRVDSqtSIXRWy<(K zaJ*BU<8T{Oh{-&)!M8tkW$JoR*v5>-v`L!L4=h{~$*XBPM8dJEQ=^!J+_nns<% z0vyRjw%3i%#1*=68eIj5aNm*M)OrjFm7A|DFq}cm(p*!JPYlba)HRQ=$Yq(?L+zFW zyOS^UOE+a(LmY=z?&oh=P$mO+G7sF)Fnc-&diSg~gya|FmXJ@|!a1Ow7AT1j|_#>YFUl(|?9@yzjZj_WBt~ zoa-R&H0|_EhxzyZlVOSK-U<8Izx=-00Rr=I^3`pwE4EhmN} ziK(%y#g}A<13&(Bq{geP{2`kUe)03t08|g1>d|4R@4O%A^yBJ#gw3r?;DDQj2dgLc#SZO#|^u_t{L_^y2 zwWIfZWAtNZxTf4TQM5LrjFYL?o$$*7oo5@gNjxsHabNZg$Ai3(VCe~w;NakX+`zh7 zmz<((g<98EZ`pRE>NS&z_8(qMl!y(d(~tq@D{ptJ-`72IL@27iLp{sFPrcsS?LSit zf#yUg~7`n+S*6 zV)~qws+x;T`1CSez39_(ZsU!uudD&m&6n5^>Bp1PO$E)!^iuTQM}$$10Rh{UTYg8P zpA@Y)0X4|v{=3l&g|>vwH-0SB+t;h@X(=(A$uOr)Zd)tJ+FxD zrv|gXEEg@dq-Gu_6^UKN9#W9UtJE%ITdW7{EV)Of9UH2J8bj%ge$T9`fxX)){&wQo zie}pNugE7;G3l^!1+;f?WeQ8CzZx7^*?(V4^`bmghG5b0^&R&2#Ojig_en@zFNWGl zd)m@TzCOD5?%87*88hS{q23EFLgv+{Z;aNPi^s;6Yvu}kllKTf^^>*yh~2=6A#ZQb z?3JUVBN`So2|=|RShQC9QH~WPd_ZP|I4eq_^)A`LUz)#NCn_o`L04B-8px`)tZ)S7 z{ktja`f<%KgHLmWS@p>a)F2&UYQa3zmgspBdP4Pouy7$fZLQ|Ljqy~G6wk&V>k(Fda9yBOgp)fR{^Ijy+ zK0v>7t(D`}2bTVVX&Cx~hi1=x>{IW-!$$bd;`E`Z)arBE)SbUB=t0Dd!{CXuU z76eI;vdhm3N~J6d7R4Jfl8C%+V?qAl@~J^lOL_Zbx}K9OEAEz~@5=nt=1N%D zvCMCiEOC!~yk^0<(?zjR*aA!453?8%Us#5_Bn#@>@WxDjwIQ$3`tNsmgEo79&#!^-wtGx#uGUFUMa?i-v<;1dIV%~^8Y=p~(l>N?P)z-1nN1`wGf>%M`yoMlL( z#sOr0#Xo-5@W-31)x(QYqsj!aL*Kqq%Ut!M>xEZ#h4lCepOgSWVh|NU2Zg{mE(R12 z?iU%(1m(AQ67R!L@|aFaN7LDobsr*Yd|~1F_wl`=u@pm+xtwfmKO<I8(H<5`G7*?#kqr1@9Htw1a&b~ z{kj=7DE21rf>o2aCA=$y3t)5?k3g#WSQcCQ+0}L3pnhkoWD95UP+CC~d*N6%?N@p) z471(>JKy2-U-=dP=h_a(jp}{q{>9Z8xDpNy`D9V;23Z%9ZV1zejH+Sj#n!yr@>XGl zfO&PpzuzefG@vrNrgOhs%r=77WPt$Xy+19r_?Mt+HcY z+L3m4v7ZzLRn?YFdDtpC)I*I5!@`{t#MmE4iKn?_rlGv_ggLUZvhB$H;yIe}%Rfg} zN3|vrQ9oI*?%)rW11zIy%U0Fsc3mR-{I|STX}AfzNS@fU87a!Ko|v(iOiS` zc+ve#Nm@cTQa_wLMEiOijiczqOZ^(yQ}@5Yk2H(rx9&-b0n% zH!$R}exb!kGYCbe{i_PR_fRQ{44@H&$7UQ4UQsL#js9IYn* zlWjvMTbkh~R2Y61;4`nDb_ue!HS79yD8nCvs6?ac)9%90=e$Hu4wN%_ya?|AwvPm0 zd#93ED{AeRItmgiH&g+Zr>^9RKC?84hHb1{#WexMCNmZXuE@5j3Rv_d-5W{j{fFI? za|t7Fvg}?y6#}PfUWbf92p9nKMwU?skcM{Q?99)yp)~aOzF+RNi-a1FauvMknv>C= zgzsz~39?^afoCKrn<`x(RyLK;168)9{Jn|0yX%ou9x zecDh8@v3((FxuuVGMwbs`F)Bm)h}&l$)P{v+zriJDIvscD6R6TL`g24E|es2)1Gs| zG!)9IwppLgE-|^Ap~FoGF!)66lf6>Np)vaJozBz4c$GqL|KhPP8}(_^)sNzCT=GEs z5R7awu#XzBxb248L;9%HkyQIpgAgXUyb+o2=XkLT>0A`iE_g%4>cD=?Uq`TIsSi~6 z#Ei~upU}6ARxmqSuzIzU1n4}pXmq)db1ndA3~b0bD#p_3m~tlIw$=GAf0V8~HRcTa zPSsS|bVS>U^UDfjk+D~Y|9D_tTd(}dUQy1JJ2X9d*lF?E%BexSQD=9lPG_i}-#0jo znm9JF#ow{0KSokh-&&a*WUs`oIdW`T_fxme>%tg)iNrm*^Fe` z4Ba?_3@kOlTUt5RuN(Wup9Ae^h>vt21SCbFmvCpAB~Rc(wZUM??vicmn3r5q0%_3r z!mEiIv44KtUP{lZlNh~YybsPpAf(@Mv1);CQnf*d36-bffC*Fhv~u^PH3?Dgn1VQn z>R3NS50_0lwZijDLpgJxolPtDICnAX;852ULV3{29sKStUJv6JwK~RH()vfpOS=AYT!E-=x8F5dtlO#2$ z!{6m6YU=33B2XLZ4cAjI`e1Y$-|u6L6xrsZuq%K{5eM@bo1PGXN1@CL$Kb!?^ENoN zR&|M0X!-(OV53~z7P(c=h<(a7#*qBOx5vkN%8Wf zjY^C7x4pe|n2laWwat39j(>P6(BnKbQK9(0rsr_S)29x&TLBxjiCHe!!mH!IuGlDpy>R+55nk5ISu$Z!eLpMVRr_aXWs4 z_?OYrKhY6@Y+{A=5_)ODny@>*u9<_*#UKwL%4$usepgm9=fwZnXUF7|v!a}s^tqYQ zQl49<`gL|#F#4WAuj?TLn`;STZo{U5*6>hC|NK#u*kAqJiX#Ai8-2Ok;u%pGUp zbY{~WMS%C<^* z#GVpU_?t^VykIQ8RTnOz3_OXUsbuXypOQkwkO>ELpGD&NyXKT%F4ubHFFKPFR1xq# z%Gfy!qoB~#zVxL}9|AI2&wp9TczBn5@zMkY3Gi@%p~Ky(J8dMEH(OTx9v&rEMmry( zl^6gS*}z}*Fnw>^+}Y@&GxsKovKxLlzMtyrqZq+J4g^jeX8CQ}JjX0`Uc$*PV=)Qe zz0b7Ipr7smG0sUTQWE(U$0!ZZ9o8MaZL|Nh8#Ry-;IcvW61 zbs&M)PVZ+a;t5q^yI&Q~j|J?D>-TS4fNTaYhKO z>}nl){IPoJ1lWELtg}d-$S<2RYpzLkbSoKE*t0=fDv7;^taTd^Nit+7{<*c*Ju%VE zjZM`k)5)ZfIBFfc^<&VguI>0jN7NbM=d~}+oJ+gAn!ja3YUBtvX#r!DuE1&8_BL8bLUM>m zFNHyxKQ$(FWKHr9iS2!K2KucjAZd?5CfS6jAo6NVmAkEkycEm z3^n-odZQTCL8PW}U|J5qj0p6e;dCGj`KS-jL59^+7C9L2eIM(H0CQP6Tt?W&1Y<3u z6=Z(Czj?c}n6f5uMAcGfa{Zrw4K;mpYG&fm#g$>@iz>}tn+?IEt}!NzE~9B+32E0N zWQ1l$l}1B7Xjd2iyp$M$n}MLy3)l&*%&I5);AzBarzW|kOn=Lph2Ot_Zz_^J3dRV% zF@Biqe4{{S#bYwk($!Uj z!1yjlcQAJr!S#sv!Nb}wL+spCWg(t5LKjonW|!||GMY4!klMLHdN%AL{)m09{q)4| z$bEsbQ`aCq1h{Yy1#Er5@(|rtEqOZZT-hY!j#%8M)R7r8fdSS|@GdV9bd%(dt1Ffl-;;^rD32Lv;|MjqI_&bJzw5TiWs(N37Cy zQETFhd0_FOqkF}`WbV&P!44FvDW4;Ek*xi-V=4V!KN%z3GHm@1&AKm?=C{M0CjhrE&tlGj|O=WIyI6w@m?Y=3jecrY7; ze)p$iuXoTVMDgI0X*sN?G+PZ$?KyH-9Gly5$}=K+SoQ^^-yUgQVqm#p~alpfV*Ar0e(n399;B% z!Bt&IN|Yx1^~Se3#)HD1Wi>{(-)SoCuU}_=zJBY59xu{ha?ek$6kt+zlFwKRE(03IXo~uZ*XoLB>`eZ1i{Y2b2ZD6 z3T@$cHuzJuX4##N&N-Tcb&c?jBEF7%AXER_0#QmDA^wFY=EoQ}rox*L=(V)EDpIc%t)yHtA5%a!|wbP4X2^N&}?#*Y4w<~e|x%%eou zHW3F>7NNiU1KJ@HG_%Rtp!7zY1y=&JOKJU_QSOC#FH0R?vj<&Y*d2b3g#-dcI)ErB zeA~mGxZ0ii-o{dJWvB0y)sfhR^m!w|Z%goqdd@5Omr}_`2zqspWm9#;pDPUK0<^3q zjQ1<9-OpM9upgvJs{MN21NJJ40Ul81RaG5Kg4Qhc!fHJ-Wd%P2S*HXVV>?d{dduy} z0rZHvtD>s<(qXMRCv)1N5*dTuF=P!G>PXu0gt;;DwZ9ZG|NMdV&00W-Nbo&)EFzuf zdmsRESkS=YQsw$IX~AjARmc$ggM5LFoq^d)xrnyr&bsZ*Jk$PwGMYv9WyzA22JYwzoHV?ap!j8|GpTPpQhZDin=Tgy8fLc@1@gj!DXb`2U90P z_N=gB61h*Z*t3f0rbav2_{`GXN%=Nj#+ywuaIPoJ{-DThHqE=ScO@U(5a1~NFtFE* zuqzPbwH1EXU}x4Wmxd|)ZZRiHm(7S#g%7TQ0<>B3=4&~4w62~~L}$%&_9b%_P1Ljs z>tSfYJjxh079C9;P&U_+qYoNP&?_mT9Ag@3JeG$ed}_ar(f&_(p>Yjgn$q6G>X3b)dvu0NP}AKX5W^> zQP`|kj14A9SFnNr#P<(}lHAXj;wdS%kp2*Ng&16FKKx=56(nI9^pcsZ#cx{Ou~VI^ zpm(HLiT>XRT#R-`1{?rj?-%tZf2JM9QJSQ`5;D=P8)OH~K~e*0>gZs(GNba6&&$b7 z!~gS@a60VW)qoS&nK0sqp{vnEA2pwcnCmMe`-5id{jEEpn7RvRgf>yh&_7jMe)6(t=p%geE_P9(dH2ILkSS*ac{{v1LTgZYYMDQfv#i7ZZ=a z?OM1CueNk!xY*eUG7;$lA&fgBNH1~0_W(#Vxj#s>a_D|SK6NYmf>=Mt&scH z^lRVqU(O|Vtp{znD0>y@_m?Xp^k(yOvu2#dSDc5}yeQnka(SxBnYsMThD(^^^P>%g+KNc=b8d=rg&?tT0#q=q9ZnEZQ&5YX# zTsVXT5H2k2zqGJ*4eMR^`w>4U-RbbU(*%QmXh;MSqs^+0J}ZQ7>NGf|c2Aia^lkQ^ zq{q|zE0UZ*kiB&wSACkwsyI|!H=S*D@(73(wyftH5q3T#)sjx>#Va%Pww#nZ zj8YJ^40**(f1W@4C@C7H#ladSqbDCoidJ+C4=1^wMLk-~H}Xhb#VtGW#~3FdQg`ro z%&iXBhu*9aXW$v63y&G4SJ+ppSBT#PCRTIZM{B-9zTzJi%Jgq`=#%7^+U_#0Xgd{k z$G!a&IIhO{{$uf*wo6u7CwG&l_0Hp^niP(Z{>|rN5fEFu?ztZ=bU2xuer(hlZ_V2J>M`y_j<43 zQ{mNGJ6RK^@V1yY#r}TJ%F7X6AWiSJqz6;9gg6Ccfff+OD>Ws)<5+q`7_|ia1dxWF zoCoEJ@To{Vibs8>9ILaZKA5dpUX$y*F(WSkw}<=z(x(E8dp$G%p3+sU_-bmrqbR$W zlPeljY!L0>=fjdG6wg;=bPxMknYIy}goNa>A>|$vjN#Hzi-LsZ5>SplL|;uhz)7@8 z?k}94at5|>y1i~hSu*zN=;$OvCnuu6bWV$igxp4roJoD@9b1P1mNwf?;$aq95 zxPlZp#{b_W0t^$x-Bhr8L=WDOWyv<)N`xa3o zYXrpJFT9mHS!^4dBKsCi0MYqMgKjs-k#;=Zo_c!n-~f`dT)fvXxZMm!mch^CUcB3< zYq9_K1%tmTxDmur5#q@GY0aEcXUW?0uo`0PR1KcYyxiQ}B&?L_v|q2smz|sp+HsQE znlsIN5C@>}o6=z}9Y@UM#HYu{6Wxt}qezK+BzN~ULu|dggm;M6vxYbc^c=a#88b1FtRJccOS@l z-zrQKtO5elE*FZtm;hJ$pmjxkmKc@fQiM9>AK+g{`3IDZxm-@`vYu2`(FqV@5Rp+E z?82VP-t()adAj&}%?XDkhOFnSvOvyJ?-f6dk{w!*GpW|<M>=F>2CK#Q7H?3jnmNu$$-UMCdfAcqa}R`7Cb!=P6{cH4Qr>r>-5U z7mo0I27E6QGGEE_t~Tvvyx-b#6vZRvM}{s`-U;j?QVPf1>IFsyAoC|O)3y9%Mr9== z#J{RS4Pl812~4Y`7pU@SB&4t3MVg#pyNtZR7;`CEe!xEn?O$MTI9HZ#N!&bUhz+{b zW62vx)jo~5eA!y1LEPK?iks12jWqDpCPva))R|L++BvB1hm3vv^0eyu8c0ai3za%_ z&!Mh?@CNPU@`l*R_hUq@PT|~`GKvBzku88vo!mWtz1UEQFy8_lK~*DwOB+ za@u;(3A!{R&*Uta7?0l6s!ST$XrkXq3ZxSgqJ4i+zRcJpkvud0)8c_NMj)#w9z1-w zk5;-u*cJ_sf+fYr=w5OZAYMlVaaxAZBrkl)xBv|>uykJiL(ONT={1F~he0&M7-`7J zQ~6RmKRs_(cD~vx)&Y)5pte*WM7&VHYxZ|ZSo?gikTP2R|MNwgIa?@Hk>?sqB*kYj zv6ym<6eW|wB+!{Fa2{iQ0)->^fg%Fq(85j&Ii|*Y%X@(jOB#x_naZ5XtA{Ux9Dn~~ zp6(ojvRxkGEi#S`bmXOxMJ!m({xtf}ODJIpsUs}PmZDrcU?fUYu72&K5s)tzc@J*0 zRgy{jS18Q$8_EB}qw9b{~>ZM|MHaL|%>-!kfh!wU={$R1iTX%by3F==2 zjg$O9KfLB4W#+jVU=)NMo$FzKH4fOeJnxaOx;()8JNOU6G&$?yWUd3LJ-hi`e>b5O zmRh`>Z@d=K1Y%5V?39}DzS6UP#6LiF3!_9D3Lu&0Wxq(!GU#((q5kEl5~)B=+2atk zde1dcqw_OE{*(0GM~}*GVe30=05+l$&AoMub|{m`SvM1G`pA!}j`pvF%GgFr3ue-P zBQ^Wi3j_l=91k04i$f!A6wWYjRAT~p@*IB8nvo*8^0hgWtPDM3Ay`SN=XP}x1K(nA z4Cyu!S-7=5`Q410>R#68>%ndj^4S8}Z8c*JMy6YTw8#Ujyo#ol=b_&%EbZ@3zWn_T zNHR)VhrkEy`kYN~o&(?sJm;s<6lU81Q@}thLU@kjthhm`{i|X=5p4@Y6~Ny&Nrp}Y ziXBbzTn}UcYgGhfTH~&1MY-gJ5e@;pjEW)ZlBBY>?(WX%38Z$nw!krL$9Su^Uw?%3 z-a8Eb8gwXZSh3!JrAbfmzCd=pN}E2OSSjG#;Ggfna&ta_Orc+>I!D7V4ZXMTw)r3W znfV{%fT);@S$iMheSY%d?;Lr7`@gckmjM8{rSx^d2QNi0T4O#8+I$7PX<1afu-C1% z=EE%T_Z?#E@FPZ(stJ6jtu}x9lN$)DHytrP$)gIv)s9;=%~0P)L$Y0QJlrnyOOI~tCAjR&Kie_=M_!~0ZaiQTyFE@kFb`O z4*ftOB_-dHp*N0LwW#y-%&OdD;0-Ol&@Z>EQG~X?)K7VVvdY|JQY{%Te83S@ji#MS zYSx26ZfsGBY9)p1Y3gkl`BnHd0I1-5DK)oBMXC0}mY5-J)}8&U7!!ubo}mVbZfFICqGMGWZJzR_8ER~`RDr#L(;!V+%9I_FDTFV3Mf6}YW$kV zlbuoTv}MW$_(Z{)ozlA+(-t>}FSn}fMzk7|Lj>bRy#rCPCAXY_e?siPV9jb1~&lHZF zs0l;)Aog@cZplhBW5``m3(9QecnO6;s7dIDSgkh>iiG$Eq*a~&e%+HVexJUPjJNC~SS4JejfPFBmwtku7e{^g z*vPl4f#NI};Vy!CFOC3Nmak}?7lKUh-^&9s5nD~OT+Lh524FMQdYM62!%0j6ZDAkI zWAyuJ#t`&z%ENZ+5S0F_)myWoV|8f!$2DeZr7^;@@Y^m6s6JGs>1Xr%pqWX-LK z;S5vE7am<`{`_pN!gQrJWX@ft1N|pyWNiSMS~R?OaV7p(${#*z6%;H)1iJo!EIx*#o}3eA}c?WoNL@*zwDbyTY$*m-Yyu177mkENxm0uj2b0q#QY{zc_l)R+w(+&u3>nQlmvJkE~S`Ak_u zD#yF39NwfeeYCpD?(dSlj5EL_H-IV*D=@;?xpr=hZSO)JcKnlBy5!O!%|Q2UTaU%< zTD4JkF5mbV@1JLL5_%ey56wj8VvQe&VU+4MC4d=9%r`z>Jw$)`qsf?MocV1-1jtUP z-1g^|Quqgo!3_roUZOs(O~h2kwz+mGV>Y*e01fQB7#kXlCjPjX~x<{$OF9SO}x zIyp&XGih+KGHomK$34VoiX_46p()9J#HDX`l5ayR4?`m3*Vb#*h)ak3%YFsnvnzO0 z9r%Vl2P)T@eJ|!;auomtwiNE7fE88 ze|i5n%q9PbmQ!wlUqh@RxcAMwcQu&2hmDQxs>2GQRWUiCYzyY|-zqcSDQUkKxqth5 znlO3l*!-d_CffphN~wgQ(m&5Xf9p+>M3UPRt?}^}S@5w|Ih5ey%PuGLmu529|x3!Iy^6QM`He`U|ZI~!zjtu0X z;X@r&34vokapeyiF=L(AGfsmiakAU#5IzO+Sws7)qsRMae%0S!wP93E+T3bIW&cEg z>88axBo#i#kt|t~Qp1-gylS^7o%$4&=h6K^xM^kblclyBRZ6!4mv>{F@wT1CDeE*;k8}!+ZotwHWlL66W3g|QC!@=u#!sJn zGIU^ak}7%=QAAl&c#~_DI6#2N6JYG9m%mI05An;PUTbmL@C6Q%{JbULKBn+$-HEsn zoc1mSvc3%<>kE4r(I&-h%KbQFh7xFCwMKebPnCr!_9i~KZQE++DAcbXYwt*P)ZE;khR>2vlwRj~#P^$TIDNS4D z^c(IFfGHJgWv78Vx?Bghbty6_mJPZiWxtb5OwIkSDQ`GG3R zVdBdj%G|!}Umg*)CQY1Mhd^gkCDUU7d$CbXpjXC}6E^RJ1<7@eb08(G<(`9lzSdeK z#Z+DneFQuOPqt9-d~LIng&mm*+5} z}~hd?Y^TpmUQH}(uBUYHi*#fgA0Mmd%fh-6h$m*E^okcNODYoVsb5$@F? z$>zpsPqo6?%OzczgED102I<=%;d=$b6luWu2k8L_h-d$DdK=z8N6m&9vo>8&T;xJ!lD*l)qMmQcmF!CS`1#Ei`h?9HWCCri88RO* zK_$?BQ5Z4a>6}lRsqq*HVMM4C+j24&+uKQ5Iwe_d!R9VjqPV!YqYK5WX|cn)1~@Ti z0H(EMNwZ%OHUc8(1;{~W3<}eCytw1t6mnA)pG&A6pCJAFt%D;c2g|B`LHI2!%wN#u z&~bSuRCq5MT&V&^-T(+sb%vu9&|$9r=gBQm*#V+9@)V_^F^$h$nidxihZfjH zoEkn-3<=}9zlag5j8cUvGmAoo+0nTPB`@W`3Y?e3_o*P~A)fS#Arjyxw_T;!gsTT@ zr$l{RAN2Xbmgd>HenVN0oww_F?y$(y3EWm(tio`2+fSD|0P8?E*uKxY{C@LryzlI# z{k*JVNTc-=Of1=jjc*$}Pts(3)8lP!U0kbmzUL<+CpTY3eo#mKb01@*X%v9+fAB2w zFlXb*aGV65f7^Sq10rFQO>E5fF1U@aQ?Ik?yrbY*m{J^Mu6ts1-x1Jp69kIV6Z& z_|t#BimEcu2KKZsqIAM z9iLI$t_JP@t^(4}rQe6=+9JMF-x31-dC8^REVET%sB-4p2ANO9*ge+!_-n+M%@)-u zcC&^#K@MBnQ{}!p&J(~k)ZG`ihdpDKG-`_%Kt5dWI8$l&*$1GFTnX{myZv)vPzj7T z+ld9D2f5tmuUT1{$fwM*qoUZ7mpkg4FWR4^xJ9wvmX3v0!-(l5{8*zW*9I@8i>R8b zf<%D!ejkX>#>{HrQe@KqEc~~!OUp_~F-AhZ(WBJ2>gwsTE8?aEYto?ji&2A&cfg4q z3#ii^=hxYjV8jP)kfm@Ggz;1WAMN8*Ab^qbIx=p+NG1PmEuVGK7k*H%ZM*i#kXKYR zmh&WlTQQ^>^aR-GZPz8fEm04GyDu@HV|mu<;01?+{U3qK`@=jVZgJ&+M7@;#pk%B`m)~+W!m&Q=e50j zu|RlGtMV8l#&EXd+a9dhquX*VGlfhu9nFlj)qAadhwuQckTbk3(S&i40p$hX*~Z`u zsaQAhY|BULpqn=xT|l!oN30KqA3M*OO&^5nbfGT1Dvh{U+HE}M({2mn8AANwmqC36 z=9pWDawQG8s>Q4=X@Rct-7|QnwjE11`)@LJxPdj>1-G3ht+=3Y&z^%K_9LUZpfLD3 z+)&1YLQHall7K}%uf+k=lh`E~HnzY2&dcEDJHI6}t2d`KUrwC)Q-lIO8cm~e+am+z z&K9~EU8%9$d_oevnO8ztLrIH$kEN5WAJeV_Km-^+u5oeE`B+LyjdeM|nCU@cucQzz zp<)QjhcP@L@T$WmT|IOZGNB81_*7k;2-HXfpL1BJ^Hbp~hU9-9BL$XtVy_Rtfp}Ay zGvshs$kguL%dL%W>zb{IAHZb72k~>Dj2WQK{Bp)44thbvdO)eC#3L0fOw$^|!UAY| zX?zDj{9FpawVoO`dVdA-(UxhzJEaSW10BivJ(xDCQA$jayi>OE3ZCOT0d4I2tHDl@ z8o?;@-vwV0M7Dt1_cey7fch(_QJd?024kC#V@2GHrp?lX~V`4LylaYPRwI zo3vV(cMi%7y*6O+lnLm5!6j#rr{ti&wIz`lcsegw?xw`4AP24gzpb|kS23k&%` z{vo~U#ONTovMHx&p!)n$@C1weAXXMzp{iX3sW@F1?Cdrkm{ z0KgmoX49Sv&iFG}lc8X= zjyMW1-?_L?j6m48a@XUj$3W3CpIEY840Uq$MD%7~j`0)44odsGj{(QSz^BVkqePq@ z>NX31wk{fvlr|}$F?lL8*r3h-hy@W{_fHn^kOV3+^1%9UYwE22uE_hjwoyqTzjS3n zd{t>&UT^J8{?Mhx=&Cj)EIxJQ_)I2U@)5B?mPQuh17loJ<-~T7tt>uTJC|Yd9)N7c zDG0uN@|}s~stsKE-bC)(tV4)EPF(JU$Xz*Y7GPN(%Ov0&_*;NwK`q?Z$(kjU?V z(;7clV0Kq&H=+z>?wUyL-zujVW8(K?xfo?p3}M>a1Cn2>8*12UY@Xe+Z&oYWyL>V& zZLN+sPafVlHN`(*LAZ)V1_1KmPm964^=K?h8zeOFQpn7+5>%H&Pz)nVc))asf^rJL zz*E4b7u7{<(hXL)%ohV*QmKhis?s3OVKG}=F~m*r3_$os#jrE2_c$RA(ndGxz?a3y@^@3v#=<*T9P$zbe8N+#LlkiBggV?tT zg207_DPV519`1F2t|x8g-%NX(2G+N%%D6pA{?=5-n-lyPA3dA>2aw9H5cVX#bW$qS zUEB2{h%qbcjs(0|zcgX)(xz$^AKl#l2cWycG?A@F(bUdp{O4~CE??mR{Zm8sq@*O* zHAuWBXW(*IcAO$40I7_yn-|j9XU`$?jij$7ve&6PSi6Oo)Kx-7%Oj;Pt-^z%bjbPv z2F(dsVO#K@`VP`lC+C!_Z?6+gjBO^)Bj%SIp-Glzp+~?=`MZ@$-ox@L*$(l}DB`7!FF&Rc# z#SR?#58MQR$4gYGdUEYFc1{R6$)*{4r>%Zya1W2|VkmeoFhvoD(!!Sq(5n`Gt9spl z9GaH*&{)Cd?Hc&5@Ku<1|i<{xP`pankc zu&zIxzm)*de^D$~?FTSJ*;qLK&0M5%vHhM_;aD5b=8J0j2M;pL&SIonRWYNhq-B8YF|vGZ7QVKQ zT@6juZ-mcXc2kcdp7#`Nh}4<4hz9^!ah$ND#kJY>)K>gX~)p9ugJ= z3uTxnAeNm3aTqwh|3ZybYMNiLQEbsWHB(5lhb{ew(>gGNlxg}0Gu3eickmvQ=D8Eg zBhkfKMpCJGl_eCxN3v-Ctx{_C`S0=n4IxiVtZbU;cYW9Lf;zfN9>uo+!$b93(9Pp5 z(9TZq?k80`VBC4L+h&GrlRXR%aOtv)NO`~)zi9xwZv50r-Ok_+nFjL8EA6s|d8cPE z-}$(F3;Z2>OnjhEf#$N-X9r;bj`&}XwWmCHx2FbtckF+f@BIOW20zj>02vbNkHW$t zoBAHh(||VT?4f%mX#?Q0|Oor!o8;uVmep+3orA`8<=bu zTAu@EDC%b0)U(c4l$7@4#asxZh7_<^qP zgg0bQ51z}+i0kArhF{8jFEGJZcaK`59u( ziAvDG#NJ4?5I9O!C^C30n(8} zGSX|FfSdo2Iith?G9agVdKoP1r>{5^ip|sHziy!F}IBLz%`Tk7oKRDGzdy&X3X7 z>-dME6$;GHr=09G#Y0C6FD2P2u1ux<9&lI2-W@#X)W{_D$l6uK>FDB#hy0YuSBE6N znD+K1+h=f@m^Vnqhx?;O{Z(MTo820S(-0cl$LG6vnuFZM&{ba$Ja8g9jM!Y9|HIrfY#@vJ zn^z_&-~Xf9PB|FllHDnrb+;RuQ9s`{Q@CjWRQZU+S{V$b)&1##+5PkoaiA9(&3dU# zp$<-46Z4hKKo$ax5ufI6;7U5>G=&FUiz+~4${k#>dTi%AW?^PkZILeicgZ`UnRzSwe&9c^<(@JoYNe{L zNmzIEj}IZ=_t{o?s{YfT`y7j~)8$UBxQx*KF`5QmE!4@Dl`O zo;&y4kie*EP?RR9wI8M-w@FiZ>Xa`js@Gjx@wS=nN84bd6NFl!*SoXQ`*1u`|CEU; z(amPz04{i);9`#%nchG$F>}}_FB9Q>|NTCo@?`I)2G}`0x-kYuY!NH>D7Ht!dsRVq z@*^(Ufu}X{QqpyXIoH@@;IIKM#QHux^2eVK=mNM|>#1Mc(;I0yb2MM_rI{F_;wm@q zzL05S`=M$ip*?2kA(3mGi*la;bW~v_3~NOVIxWu2$-a1HBuO|%>;r3-8%spFL7e8b zdRbOm9UIqm%b~`zF8?p<1{C?WpKaf>iTQ)!aNjYtTD5gXZ!YJUKU(WL6HSoFZ&=9} z2jlS@=Fk=1(g6bbEn5zDo6cKF_+>)0f`~%9miTRbk?QxG2bZQxHuFcDHvgcxa^2g2O z{W;g2JUWr6bn2LTwXO{tHh2<=#F8d+gtU4kGru_;4kgXs*mi#>!)ALu*EJ!&jfj3j z#22R%kze(ySuc(oA>WI$PDCak2I8p`nB^oAI?48Uo^Ar(1cV8E^Y7+vi^-{}vLe1y zi)_%$cZ5BB8x~4iybsO#_3N$UjywKnZPC*e@i8KFj6WDyWB!k9=FWV9Y93fJU!qP; zPv6HxKNHPAb3O8l1ESH=;#H2G7fS#kzgY4e(y!Tn^S=AGgqJS$tZeGWSw!-Wp>W@j zxfS!_v%#G^`j|fzBB?R)Mj`rNhumupNF*{HGL-$cj9=$+ft2Mjw>q9K%+F+zpb&+W zQfk+{v_jqM^HH@@sR{9yU01GPr;=T@YSknjTH0?v8Z#OgLViX}y>(D=`}W~RrST>q zIh{oYn7N;oYCZY5dr>Oe;~~G#M-vkhTS(+OW__d0{5uhua$R>Cx8BYEGqZ7{c*Egr z$g->u+4ezN^NWS}#o=&ht?M|gU%KXt^GAG_B1AMHMB7>97Gd?(p+w}?+4qch?9T!S z`Tcoz+c36Fp>U{0>S#yP(-q6p%)Qm2P}piZO=>n8t-vvtbm>kFDtH-F6KGjspCF*aYA z*BkYFnD|a+zLQwrc}4V#cdp}gSoyIHpZEQ-355LqIIHt8ruFN^I`PCU!ATtm+RoIm z!hHJwYwzlM+bE*wId^yMjla?=wUVH!4KG0rQXi^>m-WqtgI~E{lEF=Km2X~S`6HDa37NRNJ5`P6G9q7 z_f}poRq~BM?BNJ*kMjBw@SiHS&;59Ou(q}~s%Z6U@zlJ}4E{2-bp`NfNk zEX%Tdd3ia%eH+ECTW@BJa!JYV?rxH0StCu;q$rYxkGW_nu8FoG`RfqgTUbc12EB`r z`?M%Zvr9$hCp(jaE30z?MkGcOb_so9o}XR5y!_31wrO40d?8Si{Cu_NYt<&CgnRt> z$%afDG_HGTov?L4>)md5(Ru%z;40g4Mf%}PS|I+ALvD}Ko`8Lbe*iit%g{dP4I3WxTqqTkUd2TajTP!fJMVqDk1S^|wy` zBtApP85%;|o*r@l!wlFH2-iJ8PiQPE#ON7A7JLhXFfaLGM5Z1{%jE?bK3jzE0BnU2 zE@j0AgAft0@SRwe!?h4|HzsLSY@iobET=1%iqNZb`0K~n@lWu)1LJor+*d`@ezwUZ z^H;7+-X>3y1k|q@ff*xEll+VUt;M}M0>2CfZ&~JUc(dz-HoWjI$v&Y(U;|JBDFK<7 z*$aKOGy`5PG`8TV?V25Va{{ryD$4WGVd*YA};-dJyb|0NlN2tZj1c935X98m_g5(xmjmLI*&%L>-g6Q Z`~`K)cr|ZpPyA07*naRCr$OeFvarRdx2aPr3KpeqWyoLm9eA6A?wkXricz4J1}9v5*)w78Hq& zQLtde7F%NUPc&eRs92FERR*MYnBHEQdF|Fy_W!T7_da*u``*x;{Nc^agE#M%bI(0x ze|vrFTV)IE{n@2gK#qNIy|Cukfg;_0PGrurb80UW;te`rEx2RArg=xu!+=Sv0m!P@hTCwuW(|gz@Tac%_7cjfvw#ge-m1BSOd7^&X zE1dSG6QyV^hVS^o6#~K&5Dwr-01}W1AQA~jNI*2<4cv+R5&wna$^VJPZ(c71y}tM7 z$$AC$0_IP=GxC9phOpzZzfPvFd4q^Y4;Q}3BAW;N4B)to5%oj(0Kj-~03iSw0?BLw zC)k3%Q-6RZum2{pCp;)b=Tm>;;qCqSF1`YL0rMwZP`Uk~3f6t)t#Z>3&VrcT2Zeq| zWHW$AfN&tC14zL*fh)+eDB#eKaOodFMnE(UxcM;*yz09s9P@32_in`6yCf!O6AX_g zczFK=r(K-v1=62zvv$!(_X6e#UPyV@T^VGqeW|?nW9I=o4nTfLAjmQUBP${$fq_j5 z1X&u-Qx*o1re*Zl(Z(kP;#t5eZ-#rsZx9Ffz-hM-j@2OiX?Xq9NLn+B+Y6W{blCv;zz+|QYd`-*)bDs93WF|!0^lj5!9R(Fkck40 z??Gg8Y;}NG{gN*u4PPU0(d%`IMx%w6Xi4cy;RiANpf2HU7mmMOdW9V_Q{9fFIqD#@ z3Hjw4;knxo&rZNyK8_W4%?NQZ?P%}M|IiiK3z#QxVOM|St^QF*$X7VyKmIJT-cpgT zGAJYgh7ltnq8PH(RzS!F5V?Y;VT>jP7XBrgM!#fmBoMWL*#=}YQ8dno1&)m2Brzmn zxY<~^xfa~~c4VrX;8xbaAG{ZC>t3`su1Ef9TQPCq#9q1j3EbRA`N&?tJkD!Mu6yIZ zRxQnDuYRwH{`h7TOC=GM0HR{9qgWVOmf0r6Yz^=QP{~8&^W?~AD?^q>UwU%<2~=!t zG>95)$a-4|1P)O=+TIcknCX!rq3}(T!13E~vn}D~X5i)@M6mxKP(EZe+TQ(0rng{n zdWSgfn|otDkMmy7xA|VcJdTSv^{Z9=ewaD9wc)ns2lC1@vWr>=q1x|~A|}khb_J4V z8yK4enk|UF957e_ivbK6@@0I$(I8;3#6Us-Aj=a2%{G!6Jtq(uiM|Cl@G+Uhfb zN&O1qfk^7o$<{=$_#R}JT@OEdJw){mta$2HA>P=09H+c@)1E7^7ch@uNNl+7^SR+x z?ttjQt6tWA`1TjK$JZZRTvRLO4l24Br~sJ^1X}?CN!De$t^gw?#L_Cnq9R)#Ha`Rw zmn3KAZ<>~A(2$B2wb;7I22nJkWcmOd(E$z9H}jspg-T!0DjZR~7y?lO*R8`VZ$s|D z)yN+4YeXBa2Fe@7$}hJb!>RAxWG`SI`xuZHo#vvr-{RKP=!@GA-+D&4^`WEUdQ^@b zUlfO0C@hVEY7xliRLlhuGKzp&6WCE_wuI$<5c^gkh?*s26+FNp3*#$`!-j%_nK2ND zK(hhah#_MFmjw#Oql$qtGE!Ej0Yd;XE>wDo5`qK<5z$B5a5FpL53NS!89#zEav7FZ zw+XQ~E$6Y1h>n4OJfGPkww1SCP{36Cg!um7pV?l2({rPGa}f|YaqJ@uUHCx_<&h~k z1qVqc2k8^lB4vym_XMc50rEqtdEkHnIDLVpO#}p@W}2Sy$d?K%?IvU+gbayZxtfky zfM9mk{al$HOPw>%`86d#5Fi;i3?3Q5&1^$%ePju5TQfY7_7sR>_dj zzpe|>Y(q{q*e{m@C17z0BJZi7CebVMVH{Wc`lPD0A!{wfbpnM45qQd)km5|o=u!Z* zo1&#YO?nr#RZ?6}PluY*Y05_FY>+L$N!swL4<M$t3!X$-9*zo#A|+MYlP4}K*Bk=5xl#(Ef^ z#W?;-1+b`@u_%@>V7BR@YRcNQ0kjC6Q^+28Gm6Lj0N%crV9`6r_vW+h95H(Vqpyuz zvns&$fs^sjrEig2Z+<>PR3JzS_LZ|vgoUma3t18ofo3K_yHSI58xTPZkr9X!pfxMe zuEoe?Br3xR^8FHS*@ejYkiM@h68Sv(>PIyo+#!(&5806{yppS({nRY5yTjY3l#E0K zlX7En)U*Vh=Bv@kSrWGG+mOIOX*mQO8OLz)52NtZpQ8WN@1bwa-9oIQH~0SZT!FoS zA@XwD`wEyAr^aiqdb^mo=b3PWtZ;SQgq&{^Thys8?A#{;Nec+4B^tFhqA)~~#7M#z zQ7Z=d{=yaTa}q&CBG;F|F9S{>A$$jv7>2|}9Jz>E4rJCvcF2d{=d$}k?s}?_naA4k zr>CsS5nW?BTi;c-J_cm^G4nc=+m`0BN%Cn-UK;_2cwr?>bEGK_-(Yk-|wYp zbLWda9x(En50v6?{1wiY8{Q$O*BuQv=flmaLB{^FfJg*Dz_Dj*dde9t0!bv1#4#kP zVEn&iL5xBwag^}uq$0an35R|?KvH~#0-Z$7asqD2fm;x8T%D?%%EbDn8DN;03_lkp zT}{VmtlPK_MND2ISg*jg-2k~lQDbSWC`fkQBF4jfznkBMIvXMetGt%$UObkv%jHx z6qlrZa2!UxC_D$klR!p=W|URwxihu`W*&1q#`rE8FuX&{r{U+us%W4SN*OfT;&3io z)KSm$b4a3S#3vWujnebKh00<7A%k%x-*+lqs1gWDk{MfLhclO@p!Kvo1N=1ThUz z=;J*ifRWgYRdh-ACcnvtV00RXjIyUGYer{LGjNEa?MUGDtwZInz5@5y?~BE!kL{^r zrFS0N|y+;m#9?#E}NHF^-dijzj(wNXhgN}7&hOoN`?)5J&xz*w;n z29I_jcucGJ*!M6${7?a=^QwBnbO?{R~r=Y;n-N+#t4S={-PQ{_Eh z`-rS>Iud@#QBn6EI+Oy(IM4chGtfE5s{;;|OJ>QusddqT6w6`nQoED~ufSs84K`S6 ze})-$fYJFLp+qW+ zSkL6_E_D0~{#^RpvJfV%#k_AJg#D7#nsh7?zs9D-RBBq^Ygw%HSX6OA4`ArnwC}%0?%v?52prKzKuZg!M$nJYPM*iuOs2u$>A(rp40nR-JFq8+0jh7yg z-2H{KvFY+xAX5(D=H`OMpu`@$Heg8AvYc+?B6I*_D3B2W^p2Q1@yJ&QG8W0gMwexn zb7wSQ%;#)?846}mF}1Y;4u7Ezbduvmw2Tr!$)6$6m@gx%5~(yDvMz%DN=kkPlCcQI z6R$w&)K6e&_*x-O-y;jv_8h>}RxeKO_|7|V_cz`Suh0j-&_ly|E`{;WEp^JaC_G~` zcC<-ipQdAR(rwevTYd!(_Kw9cE=jNshHikRf)HnVWMxPIV9>O5fgAZblYr}uW8l?a zK<24m75%60asJG14;U#ga&gP;C&wH9`=7+*ea}FqPb*@*?Y}H=*c8kRTvH&%;30*! zmzr53fXPPT&uSIR04=3@wkl>*CyOE3Q+UtkQfp+k>7|ewB%QO=C&HGAPk==L;be6n zNC^VUgi)|bSs95I1jS~kRDu3tQX;eLR#aa52@Ie3Ga-)KqbfOff52?JY=7MTg|m}Q zzj_V)QURRuqDz5$XK#D9Hk2$?w=9dnaTfyw{W`~Fv;~_I6gzb(R~M)&qa_)gDs69YQ}&eQD7QyGF#FAme0dI;p<}fl-WH6G`lTe zxUOa0#V5$SF8G)n|KoF!skl5K=9`s`qGY=UUGWxWIe1Jn71Jsg$6_>Sj8!p#!``?{ z*Pz$?o6rB~aZfs`nl&UJ&t2;Z?pQlFGBeXKl9>%)=sD3d0+g{b6ptax5~`$4*(3oV zL2$s;=>On{(f{J>_mn1skLS`as7XX_xq2wN=fV#;8-DU;`1vy2g07#R=alF82e$KW z0HU&w)A$OjWVYX8$44xmq)R31m=xn*E3E1R=smPKR%br{#eb;TPU1%zNntGV?hm&CwQ>CC1AKKrMUcM z^0t3kCBvzMk=0ZzZJgILkTk7Vbl*6~`k`e}Ie4Mtg{3_b9^v+y17Kf@tcuA3rS3N5%aD~ZsWWZJn3~N{Jf^KO zoLO$3k?@Ca!{FIxqyJTx3BkQ^ck7?s6ENFWACUa^RGzM%o>@J; z5*>@eW1Hn;E78(8`#T9>s)%~03v6mVQXxQnk+LxJT>egere9Oq~VL>3vI}QGSdh zY6j!WkaAX&@J8;!qL2IoDu4W)5W9CXjor?|$ZfyhKVE&#=f(I9FM?O{xW0vF$=-RO zdmvGrJ(U=%2)^aab4M2fk1hu`srz>Bm=OVt)krB`Z+xX=EmS#xIR-nItp_kY`RivU_kH6W#PM=Ye_EXfzzq7E}Auoht>&f9v5&u2m34& z*ms44OpZX4aL1SwOm-@aiN7!v>q(+aQ~fQlq}%m6?AGm=L(S&#yX@04F`M*U^$R<@ z!zmrqz)hWh9r;f)0Q9N@?C3Yy`IoY(9DlyBWMvu>-r}3F_ycF5{EF4PvtqV;0cPus z`^A5F%U8tYgMR@x?{bGpz6aOv$5Za#-a!+od@ z^kcT=pfX@DCZyS%4sae*C9+F>0 z?V0GisbN5*e~pi2-%0zNcY23S=79;2(gB&~f+Q=Olo=DqG_*`P{;Jr_m^FIbjF3C* z*I4q2vqbK=^?L#HB)=h4THg0%1PDr+*mXYrkqC zLI&kh9>rXMd_I7mD`BGMLQYTML#J-Xt50{~(lQn_J~Uudwz8>z5fnV{1T$@mphdb4 zU@U84xijezoBfg-krmtkFp>gsOkJ7;9I90bW0g>BK=XL+(HwOAtC)WP%*B*$iks*C3lk_gCTAoL zT;||8C+D#2unb%RPK_kqolvy-K$LPq`^}zu8J3lGY$nYQBFCSi{PiBd5NNr1#w_~J z_%e!TULdMR?v{bf-2*UNe?6Ss`PGkO({Eo3H=Bo}3&ZA66I-Q{5G4<**9G{{KTlxI zwiwfK23}A=xsZeJdGI_JvB+R**1<8uv-s*+O)NPSkkd4yDk+&KYNBBt^+KiqcpLFp z9np9j5w-d%XOP*q2ybyt(Xmhi$5@{pUp^Hn$g-4NjBS(n-K#<7&-X zg8Wmi#IkeVA%c_ce>?_np=`V00mC_C>;LAQuD(av3CUfE_aqjv1W7SO2z-#Rm(>83Cc|?K%FE zaUr7^@zz$P7C0#GW zNtwp!*QLx{Tt@L2@?$9SPq}86+CZ7iBDWrk-t+fZoBU#TTmfz217`HDBG&xt-zIlm z_(6zlRZtT?HUL&EC3PG$mE!qTQL?d28SnnmcKqQFlbC3^h`j)%LJp;34naPT*|>YLmO5p9?T#%gMXy;vZeNzj~35Kc#ko8)*1cq2ZF zCoe*FWd(vd^b=@kdy}ZiAWwjtgCv*1Ro5hV)4MmK7G_YW=20vJ$oM|{S8Y+m`b{l7 zW62o4_z?&D9N_|!WWB5`0~Z_vqn%$0;EquUixZ=S0hIjw77`x*X;pQFH5l=03$BHr!YHB-aRx#FW zgcfbhI*2QI{ODGJPk&`I)@};Xa5C_-8RUZiiIcfA zGy2Ldro#-r_~mJQ`@5rva~b%#0&=+=Jja3WJMe=X#-@E#;u=2sH!b|-t35a~Bm&Ii z%k(<<^WJsyqUo5ao&MCysP%8U0b`aL)D(~VnbkuSpZ*gRUvQ2Xe#>rG#=M{bBjsHg z+CD*OGP$co9G^)=d(8y9cLQhNP`I)YMU~Gf}4>P3_zH@mK|MDMWxOaVsFj95z zR4cOoQXe0EeGacW)kB76)HZd!6p)^Sq#YxAa2n1;6JAkZx&hpAUj#n}4j&Q7`x3L$ z30jQ=2`{EZKQWxDhsyJpBD1`xC1T@JXgXH)FglgRCqF%bpZ{zdCMg!;=TI&ck;`V` zc>-=GgUOl?uieJ`Ue(4M-{HV(#Xv*f(lpG{bBoibmTYbNG-(4sqmt?JWp?}tGgOIb zC>dEuLoIcpCZ)>w!*^oj&3}jL+kU^htpu>J0W*5nqU8GbeFP8w>W#t=0`7^-Yej0n z@Y(6$8u=PQ0GXqK&kGW>P=S{{Rl;*5rfU*$BH;J}iIZ?2 z=3u`9%BL)YTl72r3@d07sCd}XF5nAan8Xji_b?_M4^1aPDNj_9f~sT%^B9}SARjew z?wJjo{ss>&IsT;f+IN*t(8No6D>!XBr5~q&(aD&smKh($28@=K(+qGuA#i_YIf{|@ zegH#<|ECbA>{e@PE^NR&@WT_5%isHT%xrn8@U^pVswrtioA?H2ol6e>$zlQUh?{Fg ziQ+M?geYf_6myu3J#3pvKy8nQD?mP*K(yPCG<$;*GgakfG##RO&m^*q7*2l{m)#uV z!k@RWWl}F9e<%%^zzY#qJTY?<6N+Sk(N;G(v8?scMv)mWCI_<4bW@`sOAMOc&CrozAmGr zIElhPPS1z;SvnJ^juMX z!)_%nFI>R<@#`ya-^Cx6_h0^61o=P}L76pA^q^xWr3Ww>UoGTH&bjtgc?mskm!z!{ z*S}b$$aZz5On42L#`+o>_tj9yILP$5`1x%KzIl0!(J2B1uwO;uZAT?IWhF4v0GhE{ z=EBJeNM9oH1WHGbAb(iD0t~H-Y5&k`#hyB=5lemgcyBxr;Jj+4Qnp)B6@ zh9chjx*W;{@?ErbF{KD5fy2(%yrlw@3zZwHZ z`!UIkL}uyj7=F`PV&JXUJ(ih!p=`5o0kit6&%!n5eNj$sIR=>=jiTAx187RmJh-!e!(-*@ZA&zFzG5#9L7fV=*mX#bv zXY;uHido$H$7yWe9-(i*$Dco^fM*`>B5>OfwGfCM1#&uGI(15$X+!`~NiI!rI9>!= z3NT|Wu$0Qe`ut5Zvosmg6qcD~(p8#2V$-->`$amLRmHz39+TaM;dh;d;r>f@r!<)b z2^hKNiXeXY*ROT1{_-awn}f($EnibAW*mOAB#K@*DC?_5T8)L#btw!O`m6zoU9YeG z9in0~jF7Y=#I+Xc57ba!*FuoEV386Za%goHagC}SKyvzCnR#mw}Kz(DAy^cYnWGbg*1YmeHr z)cFqdzvdsY}oEqYW3~*NOnoG$?8?U3$HZR3K2I$#M3R*?rxwp9wA$FQ5kgMxsoT~=8Qz6 zPRp-Khya|eL%y>VE;7rCC{fhEti^{eHfG-v(?5*_3#sBsbeuH6$%1eTJ<4L%)}>3&n(;h(IF22AQVYV5Fu z;caG7I{88rR$eGZKD=$AP_9Qi&V>n>yS{zAyy9~g$OrCumdFPVFZWGAF=-`iDNI06 zTNai)51m$8;S zD2;5Zw>3(!u^x>G^5(6;+G$0-=+{s*`fmCz8$9$L(b6S(pg*e;MEPsXkgzNa`!X6x zv@C`KgkB-n4)q(*uoY^daP)s77(7ob`_^vb_%ArXaO>B5H@q~t@zWP#?Zgr>LpM|T z1q_n3;!(#mI1G`fe6OJ#(62jR>eQJu>|i_j^qKUzNodr7A<#q#(=u9om}YvCm>D#i zLY0$AYgLkSPne6TUxa|)mqGr}5`q;4IC&p}2DAZbsy8>(5(jU_-VAhc_ z>X@FC%(3#~o{bp6$}8co{E#@{Yd1aG%)L~^6-fMWLyZ3q~V@=|K9B3`2f?Ex1}csvaYod z@|w-SmRTV0sbaI#XlameNwubKMB(Uj?Dsgpa28@2N$o`Uj4?Bd$m%*7j`WknPGBJm zq65Un*|(F*xSW~FmWOUf|I6QvMIX9qcPU$5cz}8M`v)fv{NP+{{MBhF^kq33IMs%j z3V}KeVm(Vza602amNG!uQ|gdClWX;h#UL{abN3euK&+Z|%88k^kcA<7M)fT`fD8?Z zk+dR2lMy6E+-c&^d2stOaH~F?9DzjF#~7Kqi;4BzieA9dN+w5`W_cR8bhG)k=-Hdg)OC+n zBzoA$q0?-uU_yGr&P*h)PZcP}8~^ z4{e- z5B>0yi0g~s6}zd2T_@ie;oT*?U4WsiV*@VD&E^0`&(bbbCIM8)7QcR-s%#Wj#|E3uJ+HTRX zT=2S&ip3{S_Ew*A-Pii?(3S5=*8cQ8Tt(%PB&zS1ae_?>h#gum)I`Tq_!AtcBz~`} zCe3r*JSA0y?C$+$l1)vE@k2OIKn1$>ccguo^#EnC7)RV3&wTT(QO0`Tn?uR;21Ko> zbl}F#!2LUv0!UWJTo1D!gKD;NIvzxpgnpM4A&wnZf&kU&*vDr;lU`@CpgRMMWpQZP zKgd~RS9}R>`AcHu#k<9_%lcjG;}uouM__2hx8`CJ3k1Sl`K1pAv0! z<8rmSvJoPzCBo-4q0rl;VC+H6&HzLEXIeH3dG#h>HUbJ1DedWxmI6m5k20XzkqTZO zJp!?^0#NQ8iC|qVob)V^em^DFu`}0wfD9~a_9DO}tvd2g`4;lSpB2l#y>Y?wF}gBQ z*#3=#Tmpy*A@Q(q#e*_R)=4MX7{_9LHak5E4E?VIh!=Ie`NPkY+b%l~qpP1OGkOJN zGjdJ6$xa8N6_}(uXJ&hrqxE|C3>dR0lAe<10H$Xkn%aE*SLLL2Dn7fq#OU{U;Mk72 z9;0eN^&(^bmr~z}4wK|!+TVSXkhg4Aw2EUc8mYa+n+n$`@JSZsh(U;>$+`%gXlnO9 zGuGRpc=I~@cC$o%{FG}JPc=|}-uF;E@H1j$)x*05V8XC{w-7iGf-iX}6SN_dDJh(_ zLdpk(z=KkXjZ%mWaU5^SX0sCjD3l!j|Fl5ziZcTw@fpeJ)vGYOabILg9f_C*D>oaL z%HO5gj-GS2BQ>R?^bSjIHq^|@K%N`v?*WVv0SrJ)Qm=7ZY)fMA-+XVnogOyx0%jht z>;yxd$y_Iw5x97CBoP~&I3AB3XGahOlhl=3gJ>sr{fW;n@`_afcHDTP9J}*x(|I^~5d3iqn(_#;Y9)%1yj@zx5- z1`K+8wkYfyYk--*>2~_Ob)Yo$^Sh+qN4R7=d&~AIjK$K*mz-Og~HB3k~Y zW1#-g0|BtI4_H=G${kh9r4^z2Jksa-{24@6lBl_zwhw9FV#)-FcC=AA>8Eg)e?sj4 z`P-iO2zc^*Qb^f40*Uhq3H-f;?B@xMCz3?P8|bfMO zq;NMUNwU?6q-8F%+HZa7AB6cj<3?<(E#*Ge^EfeG80wa@^^OR|<9`Ex=_)M$+HTQvS*v8xGyb2C@G(f794pm~XB?TtsurDq!~Yq6 zpd4MHE;muLwv?O-SOdgX0XZgIOb96^q#)l&O!MlZE<#5-G@t3Ko`@uDyD?=|3D-%I z#B*I_l0@dE6nWuhGBRlliP1ZriJ2`2%Itub1OrH1)&3}P^N5`cTNDbxM2SF536heU ziTlX75sG8CAb;~`;ErC2go?w8IW=(T5IEYe7iTpAOk)Ymg2KikrRo2gi;-1gKo~K= zTD6QPWlJQmDViBjJ#o}|=g`MutLIb0%tSymjn7N3NML3|x~C>)WkAgbU^zPmFufMU zj=S(U>2;9wnNZGIG8rR#*wyfseFWd%=Q^=!;V*@uL`*4*NW#C7QhX>*xKa6G7t9OUB zW74ygQXVCv_NqkUR4Jves2I)G$`liDBsX&7GOUy{u!F6icP1aQK05hPx#FBsqLz9i zJQ#bWZI)&wJlHi*4IQNKRiQFUN1@*saS|hrBh|Wy07LKbGTG`b(y`NV$FW4>c`muE5@`A>IyJcTzXVPWI&7iacsfGrc znf#Fe^F+a7jD)dhMnASKVUG_s2QqUkie?q&_4#}o+d8G$4n+4RBr^N0M*gI8uupLL z?gp3uas1aw9DiKOWJ#RRY_GtqcbI zy1v4v`aYtC30n{X3AHMU83^wmamLbrDc0<$*~UelU*X zSI2RjQ_7PX{4}c@>tZmX#=Lc9^lLtTlDr%U-1ene* z9S_q)4HN|^0*?9&!;Wbm9ead0AsA332{}mh{r0NKHV{nyVaL}= ztq4c()j&*ZYHT%aUclH*_AEzz&NRQX7kV9*ZnvY8mt%F)G}g}iO??*g{qvx8KEGw& z8ILZrNpI-7>pH)$4mj0YksUe*w-kS~I|9Z-6g{sUMW0FH=m@$UJb`Gxfd8h(#TEfN zs!qq2D5{o5#8XRT?2vv>1E@1`X_3KL8XElC(lBuJW3n6u9Q2m})Uh_o0;NWc8dngN zlVH${j4Z<7>dzx{%LR~wKG0v#rNdT0(@-rFZ($$B0+#VvC|As62$=UxQJR^2=kpot z0P9Zt=5E-S^Xb{xJT?34{hP|%7C?69=v&O8E6!uHgWhCImDQ;d_Sb@S3Zn#r0GWuY>Q%bxLB7>?qwF8 z?A{J#GWSO*0M>qukHgnpTNy2LGyNiKL%-zNXiCO@3tJspS;Eja1zP@BDtaaz7rDMA zSkzxd-(~NE`@r`g7ngx5NzR(Oa2!TIro&>IW~i9Xem2|afTn7qVa01w-^LOF^uGAK zcb394XY@S^n$q!VQ?4Gzo_Db`Dz+0oXj>H9;>_#g=zZ9qVTFd`+wppopLZ_y`QSxD ztRw_2=%0D-hLrNqR-=Btl*x;dIH5{(9-!TT(N||DoZE&JLm~B5w1v^8D)oC(z$ox^ zTB{nsD4~FjZ}6#n~laN74nE-CYxF|-s$$5FOw zYfNfB4MaPTNt+Nw>r%`N@C>KZ1I@MwDR3TP(oOG>b*qfUu@Y9~L@Nx!X`P z^X2x8H_xE&We_HXUzte@K<2R-5IRYdR$WFkjq*#ri_%L!C;FeipqKO8slAs{R@=?` zKSW{pE=XBcm4+5z((9et2s72G0j~e;Xab$7iN|gVm<}MiKBt`;Woe9Gqtr09odJP9 zE)9wYL+EwI*KDW*&_Ou9)SK0m!t5Dw?pQqAt=?Ia;ws~i;TW&o?3 zr^mf|V%=D#VD_YwB1i9`le3mukhy?SG)nn63Lp#!mbwkl^l@k_L$w;I1>zK`&i0Db zse|G;PMoj^P+hbbeK&py*&99u3_B3R1zsA(4s5Ed088ac`UV;@VerR$~HT~@^aqG#xIfyd;W=^fEpGSOHY z`DgqLi~r#xqV&AGAHk+Rso#1;z(^^*cDwzeC~TdVgyCTzYGzJHKbYgf^h{8a+aIMS zMaOHb_=}0*SjbbG>p&#ORgA>k0T0J%csms&Wmu>rxD+tFADy9~;x?q7nbDD`E|zc* z3@kyl;G^=3zlXQ}5@1OQqCcZW00RUIFm#SKV7POp-fvnC&;uBHY6mjAD3dit9+Rc9 zdnMcP9m|67!=2GMTi))T=;n;po-jaKl57KnZ-n(->cZ>klwPME)!S)xvJDt`()^x>K`bqE zw;Ap_L#NCRv}Hj|v5N$PKkJw_v{gc3Gv~ zf-*zh=7|lN8*I;pT{ELy|6&ON_HZx}f3vT+34~KE0@e+{R#zsF*Qs>KJqYlr4=qe%h8SRUC$Ja%Gg3?~lG)zKh&dABL!g%F@s( z8r;y_O56Fow3#p6zshLw~wv{P|{ibC>AI%z!qp^;!#Spql;CMd>Po))vRy zCEAXc=hOR7t(^T``f*o8->PUe$E9yaS9N9=sLcJ+RD{A3?ePSeLw}FzE6>KVzx%^N zjLSS$z<8}z>(sc__-Gu3M^l2N7E@Ei%%QzK2u){v1F{}R(te*Gr;&eBwG~Wl4Co^dEm9)WS@YCzZ*w@%xPjgKC85?*uGqBQg zYzt-;idTp+fL{gf33OYR<2nJ;9g5(ZJW|%V=j4ASYO{m zDbth?4H$~!#Z(@ZzZdSJPa*IAP^|prf(v9mX28&uX*QetCt>rvq}_UHA`zr(%3GIh zuBEXPGdmmFk$+>RIxb8n4~%s=Bf6x{zs?uag@m0XPAi_%6DZ}|OFm0V6OBlqZaY~R zqGo=v55?i7sNDQ51Xp|%VuV_$79etFMKc2ked&zVp@Onhinb~??FrfTGwhk&9`(I< zWT$t?8lVP%sS;_Ku-;Ue6sYsiur3grh8^|+%yTeZ%`fPCjT&S|f@yY0*~>G4J9HNc zM|}dV$sdcuFJ5rH${rVBNHvRFt-okCY9CGF=vbXJGVdhU0ZtEK%uUrvo#}^7Mzj8) z_I`8%ruI3~>}H*nY~n)NfmfDLTPWVK&B=61j(&|T5(hceq{}r`Bmh7lGq4OLuZ_x2 z&w{_^QX~g1f*5ijeB+zUlLA9IWvSCYk43U4W_zZe?+(nHXExu4z0=b?$m;@(ZC!fI z)_j=)yomu;kE7p}rC@Ga%H4FJ&G<2nYB3v*OJond4g;?|2aCtAS%^{p#|4;_n$>D= zYd7ofkx8;BEk=4oO4gbAJDm~@B=iTZd#@~wy4Xrm)~Pj?^KYW}CL=(_TP$F8kfMGMPp$lac7^6Mee(ds&;;#Qnn0aw zjRR4mB?n&mf1JM4&K1Ki+I>~BUK7%2H1%Ew|d`vGvVbL&q#y8Z+ zygkoksc4&e!{nBw$)Gw#CymFXB0(o+qjs%Vlmc`oXQn;NdI4i5?^Ly#2N;$?==hAL+OGGm z*nrb<5t{HXo`qn@AK~K9^A>f>Y}IPd4co1c#8G&n8ZO;V>|9#iZBfka>CkS27{$#y zB1?x08%tyI$ap&wnA8ADGXQK0!+_B2!engF3zU$lIe6M+oGcY(HM>6if#oPoKY;R& z-vnp;e#qg)Km|ZCf}mA1vO0j7DrCBDhI7p{VV&1+(Fez;s(q1kyjs?!YsOEnnDyaD zyKg;%eP?kQn_ii)fXQy|`U+Dprmnl{Mx)h8mD#E~;Sxw(DJlC~wpv2Y#BGt={~9s) z{C~l~QNIw?7w>qqBY(2K|F|hxY7nF>wPvSZAGTU&CrP|qwHxX#c+f+^ke)}r29~?g zWs`J##ULn6kI^(uRaka%%v1tEDne@`V`4^~!D-?+hQ_H9Y#ry}Vzn3|UqMjrNA-^H zBmcV(LR89-g(~1um;4AakP0-^Zk7fIfkdy@!s-6{m&agNTO}JXy}?Uu6?@oHSA&Yj zG@9tlbYj~a$6wEt^WJ^y#ZJ|QYMQ~VWfd^eUs4+R{IqFdi^9ub%5ZBUXK&r%v^Kf* z;Ms5ent$Z;K3#tL^Qf=gg8g~IfT1&PG#dNJsQtdM*?6OnC>pcg&93w_uIbkWdVIM$ z{fN8N$sV!N1Q?Aoug0|QHDCggeE;--H?Nuf=q4Q|W@j5711(eUqiDA-Qj0y^rZ%fb|O+?Df7FRr^`H5k^QwRO@~efQWu_M9&z}Ss zDW!-SjT2hU`l=*~p3BT$?@>`8+mlx}u=9#VMK~YKwkxR}(-uM{QSy(mEUBude3njD zv$8K~27rx_t}jtf3=da;)1}h9mSx0N#>o{?92mj$l|RAVAO1TOiY+WYq#u>4k7C(H zP;_|xN~a*<6adirwAqB$vosdQ6eS8f-%5|)w2Z(Eep`&v;bFzv%)p<|+0%oXS#jt6 zlq2SL$AzRy9> zN3t}K84&O*0-_+)`Y=W$V9KKD5F)xnp%{Y&D=BNwC}^CwxD)DB2F zSf8GLXS-Q{r$}U<<2rD-pRvo)^B5U!uBS>K)s1$Mz!8z^8XzOp%)%bvTGcY*mi1ja z`fos^ra{{RDbc{1X^m;>wPL)9&Q-I@1x(%<3G&DdjbQfXn{e%EFGq97EP|?s zQpral@Zr%Qp$V1xe`h4T91v6-1pN-Yihy4f$dq09eF9!lt$*nfh+JAM*42NNAEYd_ ziQ~|dggVBnHd6F0#xhU~T-$oG0oNWk9fk3bSqEJZmhw7{+Fy9@}&cZ8Fnb8+F)b#pU=%TgOc0eTXjS`p zlHrcMT;WN^Nd;aBORn(Ic6>}u*5QqgqSB6#6#^~|^cD?R!3!VDmRST@@MG#3F5431 zvT>g`a_-rJX+RJNd`AI7pzrclQ`D6igMSshtp^<5B_w49U!%kD#v~V(kN1 zbLQ!2Zy!Z&u!6q6Jj$gkJX+0*=$%mtwW7qTD`Afs67qmlpycBt>&m#)=|4~thUBUv z3Afcm?0VRC#BrEjv=5v(>eLDGQ93-akmKm(1B|v}Y`yJHEMI#M_RC0=vOavRZ##5c zy2GccR8WxsUg_C@k6#vQ(F2;qJP!_tR?%x7TSNMF*_xBiMZ0 zNeD9m98TTQWj8z`X(k7PAd4`Q!Gr5IWA^H+aZFn2uN#s9p5g*U~^jQ;DRx=R` z66q))Kb=59{)YmGBZyuTU8G(I>NNt1t6S>QV*;b<1ghdt{2gYWYz{k>pfU^*Pi>d7 zI`oI^>ppO{_ly^kYBrCO@n}Q$f9L&O3K%+t(b0!i&ffFYZ;!P9{iIx$Zbg9u6zYno ziF_&u8cMi!285*?IRlnKb_PCSBJsq_JSHdG-Dv?Zkcx>u{>A4Pq zLLL*X7WAkX zjFksI1^xYH#JUMzmjXHmGUDUuvpZDGiH<`fJ48qqV?M<{Y=IaSo1VKg#}F&+0|)3!2PaR81!<``6}1;kO9 z3IT?YrIWS|jCm}GvMZXqYd^(wpGmEdSJI3Gk^Z)NCx`hG+X4}>+YLs)~4g4vFT+qXu`uoH{XTK)mPxqY=Uf|sMg8RbWG7v zUEgBDHwJy$2O+A*w9Hkjxbg9E>9z4ml#imQo3_L1?Py+gsrIzTNql; zh4?wWmflQ<7e$KPJgaAQcL`eA5o~W&uy%b3LxWGjQAZz%An*~k+p1xoDNE<6&G;*H zDhfGs<2e>rO>@?CR!%z#TR@i&-LyA|4EdY8CbEqxj{g-;b~{i=oBK zP_0%#3wy<38)&!THyiNkb@U!uk9`K}gDPK!HSH21RG{!g4V4&EHvOF#%fzI`LZBcG;NZ(B|Gwn;8 zdfrv50W@oEXXR6W=Dp#Z_ld>(t$qAn#sA+=>^i`#IWs`$oPow|pGFc6a{`r)LvYZI z07EPHYQUtHh6cFfB6c$fogy0UAR68xG_oVuJXyrn&4W1P;HTl>L-yx{7aB~&wQP#f z0ZAu=v$qh?q@|=_(h+{sT*H(?+aNa$%~dY|y*dE*b&inDu^-%4OVKg2Qkrq3X|U5E^)ncon8oO?F2k~o4`T5^1;Y1vZJbUes;&UF#1k{y zD~F!Lt}3QNR>N2Y0}TEy(_c+fIJPdGRSif@GoMu}QTs|+CbwldVCN;}bM zU=O_TQQ~CLbW04HW_BrR-XI>{P(Z7`496aS0!Ee$@eEHfjgCF(=>5v1S$@GBbE6h> z;+HKYt-Hio4YaNN4ZHDE19vYW;)w-51V5+?c`A6)RAwR(SSJ(izw& zMMO<3d6ljU<*PMA$e9|FsVOAmqwu$nA-{A9GAEt@*i^TOX zx^)~=zxWN7jBmooKp&^0q+svL0@qHs^1u0q=@&gFkQkpsTMDC)@ur%ZnL)3%HB`^0 zaLRY%Br?y}e<_7Q`#R_27KqgFx6a&d0I0J&b&6Lv`pm*jF*N{;B4mqY z1cf55{l+Kp;FXtRc3U`*5UE+3Xpb6DDh5IgJb*At(3q|vuFs-e z&ZBQ+NKH0mQP~$D+NS7`!i`{upB9T6-8_!kuYZe0W1BG41DHExLeO#gnSODshXS3PRL1?@7&Nq|DEmZo{AxmCt4V)p zBCXHRp>4>V{txfODKEQJ2+Emya{lZ(z^s0&kCB0wVDhRjLbjH(8D^l+xhIgUl4<`X zOlXAg^Rz)C&xE8CcnIABnj|&nmZA|XW-BwfeF#rE_5>WTaz9?%k_K&RKvKZiQ>Py6 zl>cN0G1D`)0H=Eca0gAwoF*pa(Au3EglUvfMd(Sji&`x>eio&{Mc8ud_4wTv&!wav zEI(ic3WXvO9MzRZr}Go-F#}Nf1gdEU&(!4jxE>PDy%Wr6Jepv_HY6#86g2gGIKB_Z z)d55j5j+%yW#-l=vSVN@r%EXc=|A|tm339@;TIkt-R*4ar%u2kQOHCc!_X0D}drNHE#sX z!g7o^hp~2D3B~dOIPS!!A(ty6BFCE3NIEm8nl-JPn<7f(T$%hbrZ&cz(KBuu3Z+mH zS7I9QnYB69b7iGs79dEr&6TQLt$f)R&cVi8uEmmlS72~x2!2KdYn8915;GOg@6^Q@ z=b0%!N6%fRQ*_;;c8jl>pAFz-vTU7Y*x*6wQqceya#$zd-RWlPq zVy#BU<=D!E5cL@;9QPsr^&fZ#PI%GfLUg(k?~1XxtM;+WEDYb2iHi=y*uQ@T?T1eW z0*5(=Bz1}8WSvCC>w^<`$ih$-t;(lT)<}(Gl361sho;+yT6P&~!9G~GZ4i@_132s{ zM`6W*2k@X`<;wgp7gw{K;rS{^n)YZ?1IGYG$8dN&TVUe%8AK-Fr@z3wu6IJ;9ktp# zla>aCaQ~G*$5sD)KJr0;MM{UX3;a_3ozZ{03cnHHiYY=xNIfL z`yK`_C?amv(H!4^*^T!hY1H6me0Y8a()BP^Z)4)ldr`jO8Z1JHY^lUcSa(jAC>Qw_ z9;BvREJjcu){Fq-)997eR9vQ`iWweeTH>Z3(_nP!?es-0zj(N>1)WK zA%9fH5Un~ewPV(M!C!yTIppbI633nLq>TRWTEL9`UTqa9rK zJ5(Nu_F;5fhAa=qW=ys)fyQIitnLq^R@fJ#t>xITX#myAemL^@BazD&5fiP`%`A-E z$+Mi!Wim#BC{1Tv*r%+mnjv?_WzlVAQ!tv3Sb`KP@6z2eVK|HH1b3cGSYyB088zgIvq`WlS?+xd|00MjxHFns?^;{@Z=aIJ=k z%@CN>luuptDRrjd^|2o_m05xHqf61OFTo*49*QOVEK|#nbGnUEX;f@LjS))WU~8p+ zyVo%?onqAc%F1+1PbV9?bE!MLU%kc&rAdf(v&9rCSE=C6pZ*ZneCM<1A0EPz<;#)F zWmU|GsEaXvdPb(?MUJQ&nnsc?$E{kt*wgR{e}zR)JqdAR8d0mE>P<3vIGG$~9{wXn zZ@dJuRfCr+Ac2b=GfnJRw+W@|uf(GIG=fr*6*O}$OtriWWHwLH&Xg`YNu;yi)cG4B z&%|AnAEWcZG+-3V?51YypXiA|1w1JRqx~44R(2ywrZSw>^;3e7qGmB1VjPVcfq2aM zi`SmxEU^!v~l--6})AAm|< zC5;y`ICK=89#hbfshLTUXG%s(a5UirMT|V_l^8zc7(_GMxs5Fkc=B6<63fw}H~bhg z>+WD$=K29zVT_5XI%*F*i2hstfPtt1FBh;n#qK?SmkW_C06~$<6(q%l;x_x44p)_R zD4J2^x}*9!h^b6Vx4)=o1fH}wj-x0b`!5`iQGZqDsIFcoDyFMRmBh?ers*E@obS0W zc;hFX7E6#YEol(lxsPe zucHcJlB3qKI3|Oclhf39vaGCq8SVI+UGZh4Nr;!Umk@L;vpXaP7Oi$(`Hl~GC%pKo zCtK?Ot_O^~E{84GzZP4+bsmH>1O(cv)|tS@l9-$_l9r(ibP7yBKwKla&oInSB|LY~>u65b9qGl)<=drz5wC6#rOF^#oR%QP`O zR2gPBKcg8{Tb+=Ci>`-KbpUr?{agIuHc`4&FBLIG}(8V^wEMFfNmI8<^eNprKPnWng%>|{+}HDHvX zG0B&Pw&~Ow9g`uzu(Yf}tK~w4J)_o9Ook`a1fn@h84=^oOWty>Q_1|BIOUDaCle>z z<$&PJDJfs zaA*Vt+AAf765tBuKI|AD#n;b%C+@!PavXHn5m>r(5h}$z@}C;pMKt^h zw#LU|Q}Y<)%ZqW)!3UsRt*Tku#1r%sz=6{` zD(#o4pI(&d|F-uYV3J+snecmVsvJA_^z>wDG$RRtgs?Cm39y7Mj0mg2i;WT4HsDnq5>=@k7 z)6Yy-S6AIS_q^vz@ArO=lN7|qZ+`M)`21hL8>PNJjILjYgyRSri)9$FEK77}W>ZNN z@)?wKS>!SaB&c|aKrohNZ;mgsfKCpX^`|2cWDyt>;VLwh5!hGDB^`FewjFT z{1ElFkA+Gd^~1-IJg^VN`AOtj4J2q|rqZwn#$XMO%WPezCO{+00A#V{Hr1`hJ%G_` z98U&lZ&#BxWtW=(iU73uw!3{aQRk;Tkc5RHpizCTUJ2Ny9XDFP^6EduFaPT8r;=NC zQY?(vrYm=D$FX;P5RHc}g($}ji~;c76R&?raJQ^+@0(3j4k zynZ|Eaz8lDZfRBJ2`^kTifQCYB$HygF|6Ci6TQEFjzCzfKZYI`^%q6+7vPa1)KM}) zA3QptLa|J(0#+=Nn-X)l zd%AK}T(at;Yrw?;C6J`s2b62J3TUGGFBGJFgfzu0k;eZOHpKt=%Xi_1fB8SyeEMnV zALxf|TLLut$kyteL?m@x7ac#u@NhrQJ97()DH9#y%Tc0$+${3(g-fQgYP9k6Fd7Yz zH2@Q5bh{x(wb{Y+Yz4EEv#3r^A+xfKv(qJP8X1S_81S1*($e@X7~~S_g%l z+;Z*L@QFWqD++}?#x_t*CMkp?NRCL590j96z9zY0jaCPqAKf8g$*)&! zzmf^irP`<*M`T4+MA4fCR42b|UX$Ux8-%E}TujebF+V+zQoD^Ui89J|24TAjG-kot zRpFjds#(STQHD&oW-%YIYh@$?#8s*$vnZyF3bT6Rfn?eV@})@QD-x!12U&fEQp|0f z^XxB%o6de;@(sK9pDJ<8Nd=4q&F!18_}O=0`MbXbh62p2+$kbvQL&2viexW$Ycnd% zOs`=Qjhzy+9+s@9>+gNg;Bei0cv5Thz^fTl(IBuYp zN=|q2s7;WHjdYSh3!-x%naX17;C_7M58jBWeS5I!^wW{g~9 zO(oYPG^j1WaU^-e>jcKOvv0(+E_t_g<3qQw-Mf2*O#dGt=;Q;2=1DAnZ6_AL@^-A; z_Fuq*yabIYJ1}*XUo@C0iVOir#4@UVS7emxVlz*tehbs~Z-57Fq!Iy!$G0F~>QiY| zxtZe|MXzg=g^Du7@}n#J5ij}oq>!V;fwp#!bE9O#7>8{q;dWg7%ZJ{FZ+_xK*nHaQ z=o{!0+GV5&DV1Nkv>BZ^Xtp{i=F&L#tj#Fq6L85@6-`{SJ5%mUmA{Jd)Vd$Ko4txW zGzFr#5~%K?Y_~d?Usyt;*2VxUV+ciXvM|+2n2k9wuin)Xkmf?RwWu0YlqOfP7R5e# zaFw`JK_<0Cg2BiZ0s2m5flLmJ{$D79(a%IMrCL%V2?!>FBTa9%u-6(t{m;zQzHgi= z^JGpsV8o{6yA8~bo{icqZ^p_kuRz%7gOM|YNCt^qYwJRQQIDc2L-+4m5V75&7)7Ugw2F-0jOt0M>M0t{Ruw=6 zZGVmAfk0YFRD27DmB8IMd>i11>zy&!?h3-? z3E1^1>6#IfSoE$ari0d+B|#9C*%Fm}qQ5vvAe94hMX>T9Sa|?!U=*x>6s$Zf3Z@`n zB$I%X1aq9I$xJW-y6S)OAY+*Ozc%Q-HjaIYvGu0}P3C6;7_s4Y?>6v;{;lZjeHFY% zUW{Po4ESN1G=3#$bPS{VW)yQ5XaZpc0V`lW`xY!DUJf2M!GbzW+eUeC1f~8#DFdYO zqE2GD)4P=x>2qlSN%y5I%Cu^RV}uC#2da+ReZ6j$xwob%Qn3uSlfvT66#njQS7LhK zgIG5{jx-evNma(QRHjR6fVrNJm3l*D)1G(!4ipk5IxZDMCAjE1iOC@21!YB69}4lG zdvMeROpkF?uhVX}F?DPTVGY=n-HLP=AgCOJxpE9fV-c)V2cv6IH5##xEfYMI0djo; z6vn^^Ft84+Gz66Tf#LwnLJ2HQ)*}tr3E^&OEsQ9aph&SIk)S?jaRYGCMY6N}@zU5oGr&X(G4aVV;QuC; zzVKFrliOft7+e~oKow`=7OB`pTp9Je)Zv8%EGK^pi^-P@ewo2nM7_W?9TWxzQS2M+ zQe(s&jeV@1WI(TvA9wg;`(KPIGm-!RAOJ~3K~!C8?<3KOCjEM={y=Mx3D?J9aO?yE z*TYvn{Wz8ss9H7>0!$~Ib%jcbe_5C@t8cm`5P0y7I zE=m`SKAN^Ht1U`|i?sm~&zNZ!j=)Id(a9sn;4TN)T;2hqat6!CU@RVixqJ+0Rb+5Z z)*x2^hR49hwgU7`mZMMxBk&OAM#N{*b<>g|V3v5FK26jp?q^hEYqX$dGdFP^5R zT9gH}t)%^#dNbUe%jM>J052IB>>9w>`4G%j30BKPqS8j1C6VAZoFIU0g`Q&@w$%w? zryN*m1CGa$NHf@e2(uHyNZR0r0gr`f`2ku1L)*4dgOA15AQmra>C$-RrKcVf^QodwtpC$XqtTl9#|8Q7Zt1b*(sHe_e5&QxG#M<@!2`G4 zj1T|*l}MTf`i2HzTXrO~>IZ?KvSe~uTyX9VjFmHRJ1tRkBo0`l=o0nMsCtO7zQ+SY zxM+`OY2uelnKNdf)oS3_fujglOl%!I6Dhw9Z}BLM$|S7L5?I0p8y*L?>;N0z1`LdW zWpXNxk>p7xcz{%R)G9PY?ywZCpWH5TQK<%_dt!7QMr)U8eKgG`kfTv-6K-gm*FLyp z{q?Pr^}~ZHJIfhMb$phzY&+SP@N<5^G9EKC0rzr@vwXmfasU)K=NSV?Gs8$RAW7c< zlAO^f30QP{NLqxJ%OsW(v9K6ACPRw>E2fEAi($WG;2s;e_Zb5?M1!DyCV-)n0CRt} z3Cp)#5gxtomEqypjl3RYxRtPtT!I;cX|S}GWs(d4)>;H_`j{DfCl-c&2L`Ec`BSRr zQKmMD*jVfzLN;HLV&HKXY&Bq3A5T$gboCNQAjF9>LZ3LYJMoxj)r)E&a)mZ>%a&)R z@sa=jMjYL97e?2Q!?tZvW1${?k8_NS4&k}yor(UejZUK}RB@=TB;=O_!&%6IE0Si{ z!f5xbH;n08Pz|2QO^wq5gr$;c>XqdRCiWjevX#R2fiqzEEx3LaX3Bs)It+934q$Lp z#vVd^fXJG3uqpK(Q7a>>Dv6o~lgwn%$1nO|92wtGUySL1D~i8#HEDc-mYCHRN6Img zWhLI~LIeAMa4fujwiPawQ*4-l_j_RFFyLjMu^d94Ac~z}u!;N#6Y5jqjFHSx`k0~< zM?}S1{6@K?^h@ys{kST87)%s7Tn1Eg4t}tuh);Ktxc#I9Mg;tobI(Hcs<&bO)|Unc zDrNT|XS_mFzDO0G!zx%X`fad`DGzQ6cEb*gP6MsX4$N%cjb{ElSpG6tNU@(J_}Pww z(!j82CX>2a0x>#Gb{s@{ABcRKCwN}04in|ndQ~-7r*m~i$|AR{)5h06@ezFW@86Gs z!6De`6sY=6eg8XmY{5CFZGaVcXp`C{QBp+fF~v4Y(^$0x>!4qElj`QPE)G^(9F-Cf zp_%-hBvGpDGc)0P9u_7iF?V1B1I{{Z9zPpFDT`pFAI|77tV~wA$VAK(Akh>i>Y<@8 z6?9Tm1Nl#x^IfON=8U2;0xd6EL<{R-hzjvj$p&Peu!p04w*uG&MO6dfAw*{}` z$_aOZlqqTcde(~Wqlx-cRIiVu*(fesRPC2iO!{)f$*FOq)HkWfVbF}3AV7P08B_Zo z!E(jN;4@x^foEI@qmY1OGgv%;NgJ4geFYY|P~ugkr63C-dSA$@kQE`34%NS}HO|D4 zC;}K2LRY|ejmDV42$#Tuc`$z#ELZ~L4S?u5yd|hP6uUCx7-rlZ{OZR4#)N$?8%qZ; z8M))CAy3hDqPgDATy#CN*N_qej%cMoczut>&@fV+B{)GFwwM+`5>NEPBPjU~nN#7Rb~^~QTMB3dAq=kyvo#CToq_2ch2}R-RmHQk70CQsI*3C61@TN)!;%;llv83Cz!;-PnxjEgyqhIvZKDf_yFoCz(;E zxK~~&u8!Zc^`rEc97`wCo+2P13*rL)5?K4N_=YzN1a&EOYWE>bjDsgOBD4p=tsJPE zlnA0Aznk2M$YtreePlI4&&R&&zm0o7`(fnsIpoS^HJC_pyePmIz!CFVq)SGw4(&5B zA(Vx%4PRne>>M{1m{~%i(V9oNXw}F3d`LA#C>dwC)G<76F=;Dgsc|QcY*N@Y!>K zJqADXOoW9?fb>qlaD=5{)E_Tg4ZW;NoEr?258jWPKKyPZ;GsA;AhKohWK?q_m7cMT zV+;Y56mQcM9npW^ak8k}B`i6ESagO^vHDQ6im00zxF*S3+X#r&ZIJDe)|upL>HqQ^ zm)R(4b#69YEY(~rH-YgS$ICYaI5SV}${dNH4JW9;X->dddH~kK-LUEhV0v?a(E_tQ zF_%*$Y6%#&4en@w$baQGxtMD7dgR^efa(eGB2P-doZ~D0dj8qv_v6m+61J`2u|iTf zyHY_@eJ=4xRR2*?RxG}eXN-Jr&FtxdM!E2@>{;ZxspktRN)Dc~aOi{sMhsQD5YNZl zyFbP&m96e0oY7=nnv*DIB}O)L6$?sA~A1n<#0>Z5N5d%>R} zL7U5KMzr_%ZCGt#bWaNnZ`DHC;BBzwZ-Fg-0jz!>9NI(-GRQ|nbV`Xj@H~ih7qdj>5<)I-_sHA7e*hO|I z3S}76K-%z-2Ff?e7ZiO6=T@Ae zo)==J*23(HhpOw~oWUF}-wNayFi^~6eP($76M4Z1W(9f zq-+W!;7HX>*#fO5007)aX5# zA~z^;VHwDn9#UZ&^VxNHX!wOV)^`qSb{;;FRTU5@$TvZmC*riJK}&k)MJKOv%)8#9 zSbNtEu(Z;`u_}!j$>Z|D8N4*{0~D99L!x>g?A9chPpX?D6C(~69?N_QnNRZB=v%ms zG}TFggn*-fB0Y(p1~4IDO=HpD$^U8LZ*WKZ*=#)1#$bjc=~&`z$Ze!=vMzyWlaMj7 zOf~lcCK}tJ<>TV)3YPi%!v`A&ROjsX(L-zizxj zfqzrPFk$MM2u9xxo;yeO35dEv0K;R^Gap2$TtYgZm-PbiUNW7WFgQ}o z#YAEh*N?pdjdkaUf-LiVn4v5BQ-q~>JdbA8FM9}@27}x7Fkf+TxKYGr^BDfXelK>q z--Fp%QdvL;90_nvg=Edoiv{mw^yy3?kO-hi$p&Fr#Lv`RD*+Vk-qjYS7t3pW8u}0c z;LPA)^=bS=N8T0O)p%Aol$>K}E2I<$3j%J~wqX?02@Do<=r7R$L^8PAAyw&O_3Ck# zOt@xIp|aOajBQWZK@WsE3lE%C!h5$BaP0{N4CkM)F*$cRmOlT{V4*(b@2B}6p>(m- ziL(}96mHZ#)BjIvy6 zgDIKRu)YuGeQyF5Zbj&&5w_D3G`clfW~i`~uO#uO$WOkERdo#SMS`PGl1%a`|GkCIlGUV#uL`hLy!P%P+#7 zkr!Zd$w88nhBFD0cO#?jep}=A^*q!A7jY@ARtHm612dfhF2@(}*6^)J@+LUTf{PK0 zBqC4Bm~o{XRmrC{5muyYRRmz1UceA=5(9pG8J!Jhdhn2CZ&b?9`Wv?;xXNZy_X z?s_vY@h$jn7C}1&-r?Y}dXNUM(3T*^IRTffOv(T<4p`O}AnKB3NC_ncW>Jri2Y6H9 z#vr`@KZlpS7^ZCsci(L{@!${s4fkF1Ng;Y6rDUlJPVN{zCqxMi9LQ|Nm-??jEx!?` z=R-J_0e987)F<3)v8@@03^566O&3S1X#`$?-^c&NuNof*GYSa(tOSWDzN>%ZTb%qH zN5w0`Yt`-;0Y=8BBG6avnM_-$P)@oMU8DSX7E%W})JDLj{Z8)bKfdb7pMLbydoQ?u zNBOXkaZIz2%_K&Pc3;Ogo;F$auDEw%>FNEsg#E13Hz1!$iB8p3TPrGT>TA-MCetC2 z6oI@lIrEgja&R!oK4u5F>bV=(@)H`yC;VKip1><#*^HS_z8@?1yu>@m>|jo{xY8mj zNNdxmW8&^w#@r~CXg5Zaz+ghYi#qW{5x7l^|2D$qCGZ9VANzH%q342ShQSgAFed}U zNh3^T;Tk!(EDbZLAT#k{uzeqdzhc2_=cEg!eOg_AQJE20ccIKPgOLQxG=ath@(x&z zw6=Od!)zKeQ2@{Z_#|4(eR$-+WmsyhN2VB{HgyOG@3;l+>H-R-B8tT#5~(B{l0C9) z*hYvvuVXs39$y*y4NRmrVQW4>A(JK_`nUq@V}j-}EDR+BsP?l|^KqzN!g}vf{7Lva zY_skFX9M7#Erk_TZlmYciXElm76MIVVPun-01SB%VorxnBd;o%KPAA>rlmM>p%V^W zaP?vT@^@|7^5&jFOIKgbO?P}LL^*FH>X7UryK;@r5j_QGDy8FO_72-yzg^cEq zsEw$tN(A*7U*;2J~-2XEW3k%aFI z;z075m`a?9vC_jht?&&PwPm!Iv*1Llv!uv`j#;968nyoG<>4?1G+9f4h2?D^EmNnG zNkFxw1VEq>-%SKd2eJ1%4P1ZSIBGnFRHBW9VB75F&wHF@GI_D@ZZ9>AZu3< z@_tepQ7z(K&sg3B^|Q!^sW?TrX6g_mt0F9qniZoD$9ORClr0Q-6h!iDwNSe7pD?`r zy)3_bO*Q|||9EP{kEZLNY8i>=pSfX>QB30#c~|pL)&9~I{dh4mf($)JRUGKZNE&=! zIl=$YH0qyw(fUFJmJ@1WL@&^xKY1bQ-}-2{G5JY|BB~VaVDc98(cHg9;hK$a#By>F8?!(@ zn_f*kINtalhoIj0g=jRyke;qPn6I07b7MCyXMYF7PJ;8C5+G5BlAN{Fb)g6}Iy)w; z3#FKK`dCy~RnH5>H!-qSyrA(^Eeug;m{CRUqQ617{UdDqAJx|Kc)on+)b?BFgMUcn z3KtF)(gsncM7*axK(();Qcy&Rk=tKjMV}QR{G8?A-|z5`n}L1JuWVt})$e)2EDYas zg##ylIa+u8Z8)0W8uX|zKLa0&o{p}By@J@Ytnufyx@1Z!9sR9OkG-7gr{ zB&U?J#Bdx*_aMR}sr9=qZtZ(MzCH2^ z_d&Y<)BOjSI4i! z-t_4hb=nv%WX0G%3fv#xH|yTg_&G!om&Xmv1X*mIy$Nrcem#a$2f@?*;GqTTdX;LU zG0UP|GEr+$*)gRN2sXuzm||M375S>h)Gj7-Oa*FxCa?nLSGKgasWoSk;0s)!aGj5{szWAv692vGW54nkh*cf#*(D)7HQJa65$YbPVh z#uJ}QPxMh9@Av%97Z#9qUWd-%KM#&oi|!$6FIF2_5iDh9tc&!Xx{US$XcLQ^o&pS6 z7)oXKSQrjYfT8Em^Xa4$Re5!VloVJD5H5KzoDgQ21nN23b2K`T%R;_t{T0_Es*8_f zVbry0c~~Q3z$AB(mRT@Tep7JKU3 zFk$UPUw;XM#JDj6$tG?$#jKR0_IiAN{Ees?DXh-`efg~5zx9A-4OdJ$8?i51cNzm| z+Nc_7oIU+*{MMsyKp`;;UhIcx2G)RC-Qhqlq}?#0#L&GE?wEXBS{O+IiY$+=9!9%1 z7F9ptCZqd7Y>AqS?DM{X(q(_ahF|+Y{Ll96+2btdx4htaI>@LiADvUI197q(lX%w4m#6+=pU&SyrZNx zuPeP>p!9SK>O!Wv!#a$K08_GIY$BIT0ftULU&b)Jtt4kPdqDC(b$frihd;j<~YE_fUP&6ZjB);(`Ugb+CYZ*RD?hsh7oOq)KLnOUQ=HL zpO^(^+A?|JP;BSIsI}nMIQFe<#KXb4Vz}(O61C-qqOps&D3Q^?UAgn{m7!O{G(v31 z*~n)za(J%bxIebjaGZxmn$65Y+e)L{n!u|c_-$-z{RrqQfRpT%5FuHkm0JNrSQrf$ zVa;V+BMvh`ds5l4o`PjO7J3R>Eg-@EP93FJd>8}I`&(An6$RekoSI6fI(?TsR1N<} zJ+RJCl01UIqp~1+hNwC}BhmD(cP$dGUciEc5gr}1{ZI8d;TJC4kUSg_)E)=aPvKKM z{?Wkq{dzyR|GQ`&d8dDPDeq1AvL95tWIBbXqb~*bh$9*AQP&oxY{T3b0}NRdk0Wdc z;2jmy2+eDC1GQ61s!TIJc*})Z1VS6=5P(`TYbP58wZ4}k@x_Av<1At9zH73xStKjt z$le`I2@#;74U`5FWl(C3cUFM8SzxvyQm~v9b7`|TJg`a=;Zh3+7RPW;`+O9JMlsfB z!7@WJbe1)$a9tnYFJFr9m0o}XYhyz(gLFD2>OexY{J5{)U|*a?YVa-HY~M_vZ990z z)Yq|V?;DU#)W9=kS=m=}M&(hhURVQ0TNV-gs{=+Cqy_D16?ZJU&#Ua+ZXZhIjw!%!Qf8WR!F(S^ncB}eI70+jbt4$-BlVR4ZnFiWSw%Ilan0Z^+?_lN!;XjXavF(b zLU5;g8{}4jrPoNx-g`!pD3o;z@Z$aN!$pVxmzaAM()H?e5iLNJPF5}%eMU`r(RCON z7*Vi15r83P1c{+6hRAOD5yoHrC&<0^w)cRu9S1Sia@((4?ijCXg=`Cjp_CEprim3i z^kDqsqcKe8~Pur5OFU$|1r-P73|YVfLu2q!yW zW&opLz-xqX7sVkJ&6SrOn%&Gzq?x6UmMA5vfUX~>AL*^hWhcOpTc!b{4+oN5Ah*mZ zf)jIjWgb|jZbK$x9@==qy`x^A0IXVvH`&AkM>b=R|16A;_hG0+xlSKJs|~YR!Lcxh z&kz144klHIRYm{+AOJ~3K~y(lJmq7wl!iqk3q?`0n+HBFc2U*` zhTnMLcX0u(BT?Mu^wnUQ6gat&VzCt!MgxZcLV><0TB_h*XD3ybOpdfz%^`~iQ>)Os z<`GU}^@3v53`Z{eNWJ*BzxnR53+hf9PoJ%KUR&|lOTv&13)LpgK305vdAoX>#?;ZL zhe7xmD?C~v?aZfIm-=$;T@sv*J|7e+D! z%K)8<4{w=Bpj7XOW#yCtq&S@-32C$O!DQP|% zLYDw5Re2C3G~+UcKsN-dRM9!&;g*AEVJ7)BY~7GWF>SynIo);x#>zY%;=}mj=xeZ) z7{vN4$4G(3_azXB_G8^261!coOm0_#NrJ{V9W)b34Aqa|RrkCW8y0^A6!PFS15+$W z_dq&6=vOY8;Ec(%aumY|aSO!^h=Tsu3O?o$t$KljWe%GinCRR6)*GBR-pnh(ueLn@ zwG|i7<1n)18R`y70g)JOzxx^G<1|EzSj=Gv$TUHM#qp7jDkXbv00*)b@^^ zbmA<`q1{OYM|Yui>-&R= z%PFNyt{9~^gp{lTqvENFpF;*-2@%e_FtY*3HSa9=@ah!5NWh5qR2E5Fw;l_lFG>S4 zzNP|{>JUyFFoqI>XGXj;)y<|TH5B~k!707mt^`H86TEO&G3$El%K0YdgNW{xxW%`Z1p67%rqEHgtTvx;$^YCw%1FM;A~347;bKXpkE#=5x}| zvQ<75jY{@uS+G0_XVB0k4H#03l0!trj)=Qt8Ze8Y2&Sz(7wT;7c^`gL14bR75y<2P z^a3WfEXvYEkHq%6XssDefTc-vTeab83q~%AodGu!08RFyRI%0~7O|EJ*kvoe{A#hryzx-*}{L&{#$|e+)O}o{evfzY0MrhfNuV{v0JnOwmHngYEdi zuCqtt3B+(90SyMvOv1G-Y@NRiSKRg*^tJbcmy6)3luFnrkc%Fe7+YCOMluzNE5I$%4Ht3zi@u3O=YWUX4xWRB^iFITO(LBLMZ$vS&#>w|S_?C{zW-Nn z!}u#;CDYiDVJPR)LZl+%oauuoGGg(B03Bqq6O%5;wUh8|6I*A0j4N(^ElU1D@M1xM zMzS?TN;yu8(T!rNfGL&wReU3Tre3MGRiXpZSB~FENwud$i8YpjIZnh&LlxDy0E?)<=pyE73q!zk z8G;3pUUNm!J?w;N&-w_-LQ!f(zn`iX^m55G#YI`b*kKeEs`ZMgz~Ah*VMLiSL1|E8 zf)pSVq7pLm;}f$ZHaAm_iSAa`b*CuRU}jb@y|;|ps?R}Tq>TOo6a79x$iy^dzC4ZQ z!aS}Yy&ON@_;Ms|8|$+sO1ZRne-YF4bY6CSeQDggYcA!64ET-%*EVtb%uRUt?XN@8 zKLjq^Gu6ar(fVmlnc|EI)g|?RP4Cx%|LO*l;{c;fwKyG@g|~VDm-FxQKMiMsEl8N5 znP7p$U5q6VSA)?M7g>8|0xU!k=(qWGL+Rk3ShaG)rB54Plj8F4wKFFcFjF7cfaXu$ zi=`WPx%p90Mn9sW-7@Z)p>+_ zMY^L0LDRc5YXXKcsbyj?TVM%Q>5fv> zbjniZNKt2~r8(Z8qp3F9(&%*{eq5~y_h1Ki9X%Jb$?X^!vXL<4X!ej92wfMLpFneA z5kJ`aD%?8$5~OSs<5>gcd`28HMCFgao&Mb2Vy#*SaY~bjgaOw{z_XbE&C70oJqiLe zIq-A_pu`4&Mw2k3ei-?=B{fMFFS|*YIMFt4@@R+C_0`393j??lZ^P~E)mT9ZNrZ3= zrLL(hi;lfi4BB00Ii<$sjN1sOx8~Wu7FhTxf84$=E+YQ#1<2~ZJF$S7_}enPN8W3wamUz;kTEzm6fBerd2uT1m_~U2-H)omNBMyE{Y8D*G~rn`Jd0uL+|79D z9j`~pJpf+HgJ(0!EmIVKP2*RT|H#rP3nN5Gga@H(IRR8ot78;x%UYFsYetOCJ=dEQ-o+uaWeEJRe!Z$EIQueZ`#c`>D98tKJ$Q!U>B)45i^L)H0<=xo_EU9TOYp@4(A$e;vx5 zeLyh-o+C@6TrjN^6J^J=Fov=+g66L+jLMu)O^P?b!y4-0DDE-dfLo2%qG9yGVU$gl zgJ>ndyMT^gf7eoyTDTxk26;1lC~xtP8KHg6uASXxuM=fe;;(Z;EsXFWm##k()9?N? zukJg~-Dfa=(UWR1Q6EhAE#qz)ks`^u7)b+(oq3TRBkLlFtCSR@T1ArpBb8X9?3gZ! ziX)PVhR1+d%7#yccDQwp&Vm;Mj6C_|0jLUX;!id3q(6Mz$)Zn7{R_3hjl3ZNBS@IB zU^hw{sLi75I&mwbUn>HSGC~xiHC$l2f&E7};gRr}DC8X^9WKbDBCRbliX3jEhHz#A zRo}#Qr(cQNhMtc+8rWJ+VX#ybgHOmk(?(B6FOevOT0ebaYxm4^Y_uH%o96DqOYe9S z`WyFxmof;8IZ=GoLZMm=LmWJ!NTNxZQmRS{Boa}!1q2lYp@GAA5pGPp1Bb11#gmgl zX;TUzMk;DLsE-}4+MT5PBWl|rZ}mC+$Lllx$HQdmyN^Z5Kas#W@qi%_zu6D{8LC&m z-k)^R?mB1dSm#$N(dgxcIgU4B)g0+qMxfR|U(sQCO3qwH9FLjUvLJmLTL{`Jv1Cod zm&l2(HUcvp5)gAJ=;T-^+QHY($c6uuT%W%0JVx5GC;#ij1BTyeWBTqFW9EGy4qKh| z?!yo?`-t7T%D#y`L-&$Kc4sXl&n^gc7A|I8Dp$Y55j1_7Aycz2kL#zA{)BJ=!zCBY z3Ss1cpcab4C0Qytjzn7+70+nbBvwS#`%y2Bz;|RJVxXt|1ObLB{weCs?^>+hSSS|! z_Lx--9+kw0TZNvafHJawa61;^;AsPFF?N{QC zzUQFG8#rwsi^2X<~axGqzV_kO*{=T) zV=BZ#t#M1VTrOn`>uvDq77k3GhW&Ut@;O^DaHyUmnaXlKMV_G5Mq_af;nF->sWN`J z^*3=_`Ik{Z8{7L+80za2Q_ZMOL)kVhs;EC|FJNNhA}D!a+UO(*c!<%ld^6tk#g zN|dOOkP>HSz^jAF@P_eh@adH>ebdV}vC7G}DZTG-asb1*iJ7lo!jJvw`&oEwr#G2n z-eIy3%F>A56IrOE3>XE>&bEvsTGFq`1tUvBn4y@3`uBCPuXdS^iF%bZ88}&(MGuA@ z!Yl!PlcO`|2~7oJsYHNLo4KoEvo>I&1zNpQYO@yh^qgYMnL8CKWth^j! z9xH^dzT?_Wqs(B_1r{1um>j@8tzSkmmk|w~bc%Ob%5t+(w`Qx+Ky!W$ths`As)Xw| zU4fhXE);raXY{8qI@Biy($ZW_5vi$66K&camrQNeh^Iv{gJr_C4P-h?IB(xS;u(+p zBeKm&Q2-Um4%Notr!rV5?!>;K%kfCxWtd5xj?hSm*-4ZEqe%l20LA96t~oU*)T@+iRk2(e=e3hvJlF}in(M~i6Lkc zV0_VWNq`}fqWyHSAyf<#DG{HiqzV>)uP27!BC#V1naqJ{~ z)IEx23)REiBSjn^Mx}-NWCC|qFGP?oB1Lo@HLFGrs@26<2H*2hTdAU5S%TH6BXrWZ zZqskzhQ8;Kh7Qi?OJc)tpI|vt%2{*I=vs74r(L0V!BG63$kT=ekE|#>j4s`eEmPk^ ze{C=9unpJFVkxr`lci^3Hh(5o62l0YEv{8g1@M)YTXzv-URP8flkdfZ4e|nn2*Z`U z>EBRvyf0=_<_#}@3cV{&1^`d>IVTM;5;WJ3`4eAzyHUC3wVbs|+|7fpFoZ1%1{utZ z31h&Km2%oVa%!6p|Dzy3totI+7xAiA0*N2k@hY$g=ovuGV~Z_03b5Z4#m+VXrpX1X zSa0a)M135<9A^pQL5%{8m1RshgpMP=z!@)WS|G#ba{4Kx7E8qXG zNYn?IU0{rnHBlnpG;EAkShUDW9vP7>!$yFR>MoIFX^ds8Kds*E^fOhM$=p!td7&dF zP?&>;NW)U|nBO1;PSyLb)5>a-_SRT>Py5GQAi8EMNn{8xB)LSwFOORM`ioA>E&eP6`^N**Nd=5JG3bDK z@FSc3=0mUMi$D6W%s;k;C6gu+X*sY*XN_nNC^t-`klW;!NtcD7Ah}UpDob=?i{nYT zTJ-lT9{6%V>a8$`4DomFY#`|ULVi|tMarK3ZuTn5%B=E^9(VERlob|+)MJzaWW2&1 z-xaIPRoowmlRi~!7g?Bw2foG@OeRqxoFnrm|Pc(GJk<>9zyz_F6n&ny#Ngz{FENcLyyG+q|+$GcQn7HIPr%J7e z*z0k0c2j1;s#4HThep!_Doq@k+kpfAS+FciRK(>{tdV9@8#?fOH0vv9H%ay1N5-$i zVjMS*z6jswdl4!;g&k!BXKfflA(w?8@*auRs7GF+CStj)-v4qyyL{8t1>dNtEuKnO zFQ8?PB)d55Bw6ri-r?7k9rn$n(YpQe?E`BH_x*casT1{gKQq9H+k4B~Q$XkGer@(; zVe`m^sL!0n{AP~xP&WUI*1gqoE^=dt6HNQUBB2$^K|hosqUf;U0gV8RXeBhoI>BI$ zCSev+aFAfwfa=B zC9WLx0ChOf_Q0wQ9G*J^k9udrvMty`>9gyI9k+?4m^R#Y3(a~1zE44Sh`d)58Lis~ zFT~eNmtuzJu)S#DX&Z-7E)|7qM(KQs8_oHl~*$Ib5k1 z9eNJ)kLE4ho;Aa7Cey|baZh$>*RG$wZ{3q z5~DSHUf@>84X@e9gH8^N%N?yxWnowdAp{Vc#%PJk4PbVdX?md_2D}yeyczlkjKDBW zpTX*|WF|BVjS(YJ9q<~4;Vw`=Nf-l6Z%@BGLTQu4GFOkaHp(R-`BxId5KLZTE2}o; zD1)c1O!PXdwwtmBy)0%bvru7$07L0?53JV4k-6=7v~v~=0!(CK*1kafvJ}rys@ZLI z#OY6k!c5qJV}!W3^h|su_bWKSi`blHc>1<=80jyIb*Hqmwz~0;5a0N#-}y18RV(nx zRi&CfC+*|Vk7g1d{3|IH1#)OV_#)a$w9 zNMzbPG^&aGfFJq~ztX7x_?1C3$hpf7{1!El$yu;nL#CD>Vo=A=%*S3H`i)7PDlzL3 z3NR|@SK#ZdPCm|3>$lV@{p6Mk3q${si`l{91qm1$9!mpayB6j#050B+tc;6xqb{j2 zY8Gh9Z-~+2`%7nqUmti$=l*8i988AJ`KPVN_{f0lsiDbgy5BA4IX)I>)&h)P22p*H zReH_?e<@@74;G!^+N8z*Ey(sAdhJiyHvF?Z^Z%a#rUyLNUzw~_kW7qh%vuS%pLLc7 znA`3P5hM*G(K2)W^KgwhEIm+dRA;=5Rq`rqIVc+W0LgYZeK^5KoW2l4vmAr#LmXTV zksY>B3|`5nuYDIi8$uq@(vtm?+_EoBvEm7#BltrB=?87 zX6;4;o-e6ZJ}K9P0SYOr-B&I=uy^>E_k7K{VCeRP3(qN-e(t=}H)8YHh)6DwdnWQO z-81D$?ai(WCku}r`Fg%zb>Kgev;1#o9sYIG2p|3J6WrYOq%Q8Ke9|canB&Ylxot0= zGBKAhFxUxk?kD`GnpWiGC_ntc=kooZ`wLVbevaSHn{Jip;A&Wt3YEIiY*#r^UXRMk zMgLbDhc+BJ7nE_!s9t^%ekrzY#8~cDvZLWkI`&a)@om+8DRvlFItCPzQEcYp z(dt<^>}`ila~&06de?2WyQi!jd3WtL+Rc`%yD&3M6pD+(o44JN$rY|T;O6gWoN@7{ z>kh8G<3|ro{2DlNXKftC=^NJ}pQR}T(nVZbG_ZRG-Sb6OT?FQXFbuq4C2hF-hm!bq z!U(_NrLphzr)WU`WUzEf0_MqF_>*}KKlH_o!QM~(1zWgj7Y{QDw`w7vj!n@v-3`vQ zrIDQ&vB-7}&X-;=Ghxd3MRy(woh~&LRp(55%&3x@(aAntLlUzvV}OaeOKJX12&3(R zH$&{HJrmP>vlx*t2*`43NclynTX6sihwA}uYQr_6HaRloIiby6Lu`)EWTpPo#g;T7s zkc%E2A?oA#p27WU(g+_;nfyD0Y5#{w&)K`{yz+75Bc9BCJe8jF^9`6iS7*cde|sC7 z`qy{xAn5ZOX}DGL=Xl86u(fgPk*P??ezq%HJQ!v znUTtX2_mKXR%)NJ9h;OrDc}!awtaXF3wJl4gQ_u%q#44b>CF1�Arf7~rBDZwioz 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_hy_analyse_title.png b/app/src/main/res/drawable/png_hy_analyse_title.png new file mode 100644 index 0000000000000000000000000000000000000000..156d93c4d541b7741ee35ad27459107f3547acec GIT binary patch literal 3968 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_hy_summary_comment.png b/app/src/main/res/drawable/png_hy_summary_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..028be9cf6f8f1231ba604e488fea95b29227450a GIT binary patch literal 3715 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 M07*qoM6N<$g6?v8r~m)} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_hy_weak_title.png b/app/src/main/res/drawable/png_hy_weak_title.png new file mode 100644 index 0000000000000000000000000000000000000000..5d46f7ed554614b35afb02ed2e676f8faa086960 GIT binary patch literal 3260 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 Ef)XWZu>b%7 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_ic_excellent.png b/app/src/main/res/drawable/png_ic_excellent.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e8ddc93a689bce08d1b9c5c0a63791f9ebb2c3 GIT binary patch literal 7843 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 kjne;oR literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_ic_normal.png b/app/src/main/res/drawable/png_ic_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..06e5bcc256a9c898d39cbe02dca2dfafb0714fe4 GIT binary patch literal 9656 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_info_bg.png b/app/src/main/res/drawable/png_info_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd1ae4ebabb614ed4f91e1e87514f934b6aedac GIT binary patch literal 11939 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 E4>}R@4gdfE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/png_iv_subject.png b/app/src/main/res/drawable/png_iv_subject.png new file mode 100644 index 0000000000000000000000000000000000000000..19cde2fd26c7abd4bc065b8a3f14a732356fef35 GIT binary patch literal 2508 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 + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_huyou_detail.xml b/app/src/main/res/layout/activity_huyou_detail.xml new file mode 100644 index 0000000..3d8d23f --- /dev/null +++ b/app/src/main/res/layout/activity_huyou_detail.xml @@ -0,0 +1,1074 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_huyou_detail_a4.xml b/app/src/main/res/layout/activity_huyou_detail_a4.xml new file mode 100644 index 0000000..46e0981 --- /dev/null +++ b/app/src/main/res/layout/activity_huyou_detail_a4.xml @@ -0,0 +1,1079 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_huyou_point.xml b/app/src/main/res/layout/item_huyou_point.xml new file mode 100644 index 0000000..794998b --- /dev/null +++ b/app/src/main/res/layout/item_huyou_point.xml @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 365e607..99fbae6 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { androidId = [ compileSdkVersion: 32, - minSdkVersion : 24, + minSdkVersion : 26, targetSdkVersion : 32, versionCode : 1, versionName : "0.0.1" diff --git a/libs/common/src/main/java/com/littlejie/circleprogress/CircleProgress.java b/libs/common/src/main/java/com/littlejie/circleprogress/CircleProgress.java new file mode 100644 index 0000000..455a975 --- /dev/null +++ b/libs/common/src/main/java/com/littlejie/circleprogress/CircleProgress.java @@ -0,0 +1,409 @@ +package com.littlejie.circleprogress; + +import android.animation.ValueAnimator; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Point; +import android.graphics.RectF; +import android.graphics.SweepGradient; +import android.graphics.Typeface; +import android.text.TextPaint; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; + +import androidx.annotation.Nullable; + +import com.littlejie.circleprogress.utils.Constant; +import com.littlejie.circleprogress.utils.MiscUtil; +import com.prws.common.R; + +/** + * 圆形进度条,类似 QQ 健康中运动步数的 UI 控件 + * Created by littlejie on 2017/2/21. + */ + +public class CircleProgress extends View { + + private static final String TAG = CircleProgress.class.getSimpleName(); + private Context mContext; + + //默认大小 + private int mDefaultSize; + //是否开启抗锯齿 + private boolean antiAlias; + //绘制提示 + private TextPaint mHintPaint; + private CharSequence mHint; + private int mHintColor; + private float mHintSize; + private float mHintOffset; + + //绘制单位 + private TextPaint mUnitPaint; + private CharSequence mUnit; + private int mUnitColor; + private float mUnitSize; + private float mUnitOffset; + + //绘制数值 + private TextPaint mValuePaint; + private float mValue; + private float mMaxValue; + private float mValueOffset; + private int mPrecision; + private String mPrecisionFormat; + private int mValueColor; + private float mValueSize; + + //绘制圆弧 + private Paint mArcPaint; + private float mArcWidth; + private float mStartAngle, mSweepAngle; + private RectF mRectF; + //渐变的颜色是360度,如果只显示270,那么则会缺失部分颜色 + private SweepGradient mSweepGradient; + private int[] mGradientColors = {Color.GREEN, Color.YELLOW, Color.RED}; + //当前进度,[0.0f,1.0f] + private float mPercent; + //动画时间 + private long mAnimTime; + //属性动画 + private ValueAnimator mAnimator; + + //绘制背景圆弧 + private Paint mBgArcPaint; + private int mBgArcColor; + private float mBgArcWidth; + + //圆心坐标,半径 + private Point mCenterPoint; + private float mRadius; + private float mTextOffsetPercentInRadius; + + public CircleProgress(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + public CircleProgress(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + init(context, attrs); + } + + public CircleProgress(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + mContext = context; + mDefaultSize = MiscUtil.dipToPx(mContext, Constant.DEFAULT_SIZE); + mAnimator = new ValueAnimator(); + mRectF = new RectF(); + mCenterPoint = new Point(); + initAttrs(attrs); + initPaint(); + setValue(mValue); + } + + private void initAttrs(AttributeSet attrs) { + TypedArray typedArray = mContext.obtainStyledAttributes(attrs, R.styleable.CircleProgressBar); + + antiAlias = typedArray.getBoolean(R.styleable.CircleProgressBar_antiAlias, Constant.ANTI_ALIAS); + + mHint = typedArray.getString(R.styleable.CircleProgressBar_hint); + mHintColor = typedArray.getColor(R.styleable.CircleProgressBar_hintColor, Color.BLACK); + mHintSize = typedArray.getDimension(R.styleable.CircleProgressBar_hintSize, Constant.DEFAULT_HINT_SIZE); + + mValue = typedArray.getFloat(R.styleable.CircleProgressBar_value, Constant.DEFAULT_VALUE); + mMaxValue = typedArray.getFloat(R.styleable.CircleProgressBar_maxValue, Constant.DEFAULT_MAX_VALUE); + //内容数值精度格式 + mPrecision = typedArray.getInt(R.styleable.CircleProgressBar_precision, 0); + mPrecisionFormat = MiscUtil.getPrecisionFormat(mPrecision); + mValueColor = typedArray.getColor(R.styleable.CircleProgressBar_valueColor, Color.BLACK); + mValueSize = typedArray.getDimension(R.styleable.CircleProgressBar_valueSize, Constant.DEFAULT_VALUE_SIZE); + + mUnit = typedArray.getString(R.styleable.CircleProgressBar_unit); + mUnitColor = typedArray.getColor(R.styleable.CircleProgressBar_unitColor, Color.BLACK); + mUnitSize = typedArray.getDimension(R.styleable.CircleProgressBar_unitSize, Constant.DEFAULT_UNIT_SIZE); + + mArcWidth = typedArray.getDimension(R.styleable.CircleProgressBar_arcWidth, Constant.DEFAULT_ARC_WIDTH); + mStartAngle = typedArray.getFloat(R.styleable.CircleProgressBar_startAngle, Constant.DEFAULT_START_ANGLE); + mSweepAngle = typedArray.getFloat(R.styleable.CircleProgressBar_sweepAngle, Constant.DEFAULT_SWEEP_ANGLE); + + mBgArcColor = typedArray.getColor(R.styleable.CircleProgressBar_bgArcColor, Color.WHITE); + mBgArcWidth = typedArray.getDimension(R.styleable.CircleProgressBar_bgArcWidth, Constant.DEFAULT_ARC_WIDTH); + mTextOffsetPercentInRadius = typedArray.getFloat(R.styleable.CircleProgressBar_textOffsetPercentInRadius, 0.33f); + + //mPercent = typedArray.getFloat(R.styleable.CircleProgressBar_percent, 0); + mAnimTime = typedArray.getInt(R.styleable.CircleProgressBar_animTime, Constant.DEFAULT_ANIM_TIME); + + int arcColor = typedArray.getColor(R.styleable.CircleProgressBar_arcColors, Color.WHITE); + mGradientColors = new int[2]; + mGradientColors[0] = arcColor; + mGradientColors[1] = arcColor; + + typedArray.recycle(); + } + + private void initPaint() { + mHintPaint = new TextPaint(); + // 设置抗锯齿,会消耗较大资源,绘制图形速度会变慢。 + mHintPaint.setAntiAlias(antiAlias); + // 设置绘制文字大小 + mHintPaint.setTextSize(mHintSize); + // 设置画笔颜色 + mHintPaint.setColor(mHintColor); + // 从中间向两边绘制,不需要再次计算文字 + mHintPaint.setTextAlign(Paint.Align.CENTER); + + mValuePaint = new TextPaint(); + mValuePaint.setAntiAlias(antiAlias); + mValuePaint.setTextSize(mValueSize); + mValuePaint.setColor(mValueColor); + // 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等 + mValuePaint.setTypeface(Typeface.DEFAULT_BOLD); + mValuePaint.setTextAlign(Paint.Align.CENTER); + + mUnitPaint = new TextPaint(); + mUnitPaint.setAntiAlias(antiAlias); + mUnitPaint.setTextSize(mUnitSize); + mUnitPaint.setColor(mUnitColor); + mUnitPaint.setTextAlign(Paint.Align.CENTER); + + mArcPaint = new Paint(); + mArcPaint.setAntiAlias(antiAlias); + // 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE + mArcPaint.setStyle(Paint.Style.STROKE); + // 设置画笔粗细 + mArcPaint.setStrokeWidth(mArcWidth); + // 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式 + // Cap.ROUND,或方形样式 Cap.SQUARE + mArcPaint.setStrokeCap(Paint.Cap.ROUND); + + mBgArcPaint = new Paint(); + mBgArcPaint.setAntiAlias(antiAlias); + mBgArcPaint.setColor(mBgArcColor); + mBgArcPaint.setStyle(Paint.Style.STROKE); + mBgArcPaint.setStrokeWidth(mBgArcWidth); + mBgArcPaint.setStrokeCap(Paint.Cap.ROUND); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(MiscUtil.measure(widthMeasureSpec, mDefaultSize), + MiscUtil.measure(heightMeasureSpec, mDefaultSize)); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + Log.d(TAG, "onSizeChanged: w = " + w + "; h = " + h + "; oldw = " + oldw + "; oldh = " + oldh); + //求圆弧和背景圆弧的最大宽度 + float maxArcWidth = Math.max(mArcWidth, mBgArcWidth); + //求最小值作为实际值 + int minSize = Math.min(w - getPaddingLeft() - getPaddingRight() - 2 * (int) maxArcWidth, + h - getPaddingTop() - getPaddingBottom() - 2 * (int) maxArcWidth); + //减去圆弧的宽度,否则会造成部分圆弧绘制在外围 + mRadius = minSize / 2; + //获取圆的相关参数 + mCenterPoint.x = w / 2; + mCenterPoint.y = h / 2; + //绘制圆弧的边界 + mRectF.left = mCenterPoint.x - mRadius - maxArcWidth / 2; + mRectF.top = mCenterPoint.y - mRadius - maxArcWidth / 2; + mRectF.right = mCenterPoint.x + mRadius + maxArcWidth / 2; + mRectF.bottom = mCenterPoint.y + mRadius + maxArcWidth / 2; + //计算文字绘制时的 baseline + //由于文字的baseline、descent、ascent等属性只与textSize和typeface有关,所以此时可以直接计算 + //若value、hint、unit由同一个画笔绘制或者需要动态设置文字的大小,则需要在每次更新后再次计算 + mValueOffset = mCenterPoint.y + getBaselineOffsetFromY(mValuePaint); + mHintOffset = mCenterPoint.y - mRadius * mTextOffsetPercentInRadius + getBaselineOffsetFromY(mHintPaint); + mUnitOffset = mCenterPoint.y + mRadius * mTextOffsetPercentInRadius + getBaselineOffsetFromY(mUnitPaint); + updateArcPaint(); + Log.d(TAG, "onSizeChanged: 控件大小 = " + "(" + w + ", " + h + ")" + + "圆心坐标 = " + mCenterPoint.toString() + + ";圆半径 = " + mRadius + + ";圆的外接矩形 = " + mRectF.toString()); + } + + private float getBaselineOffsetFromY(Paint paint) { + return MiscUtil.measureTextHeight(paint) / 2; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + drawText(canvas); + drawArc(canvas); + } + + /** + * 绘制内容文字 + * + * @param canvas + */ + private void drawText(Canvas canvas) { + // 计算文字宽度,由于Paint已设置为居中绘制,故此处不需要重新计算 + // float textWidth = mValuePaint.measureText(mValue.toString()); + // float x = mCenterPoint.x - textWidth / 2; + canvas.drawText(String.format(mPrecisionFormat, mValue), mCenterPoint.x, mValueOffset, mValuePaint); + + if (mHint != null) { + canvas.drawText(mHint.toString(), mCenterPoint.x, mHintOffset, mHintPaint); + } + + if (mUnit != null) { + canvas.drawText(mUnit.toString(), mCenterPoint.x, mUnitOffset, mUnitPaint); + } + } + + private void drawArc(Canvas canvas) { + // 绘制背景圆弧 + // 从进度圆弧结束的地方开始重新绘制,优化性能 + canvas.save(); + float currentAngle = mSweepAngle * mPercent; + canvas.rotate(mStartAngle, mCenterPoint.x, mCenterPoint.y); + canvas.drawArc(mRectF, currentAngle, mSweepAngle - currentAngle + 2, false, mBgArcPaint); + // 第一个参数 oval 为 RectF 类型,即圆弧显示区域 + // startAngle 和 sweepAngle 均为 float 类型,分别表示圆弧起始角度和圆弧度数 + // 3点钟方向为0度,顺时针递增 + // 如果 startAngle < 0 或者 > 360,则相当于 startAngle % 360 + // useCenter:如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形 + canvas.drawArc(mRectF, 2, currentAngle, false, mArcPaint); + canvas.restore(); + } + + /** + * 更新圆弧画笔 + */ + private void updateArcPaint() { + // 设置渐变 + mSweepGradient = new SweepGradient(mCenterPoint.x, mCenterPoint.y, mGradientColors, null); + mArcPaint.setShader(mSweepGradient); + } + + public boolean isAntiAlias() { + return antiAlias; + } + + public CharSequence getHint() { + return mHint; + } + + public void setHint(CharSequence hint) { + mHint = hint; + } + + public CharSequence getUnit() { + return mUnit; + } + + public void setUnit(CharSequence unit) { + mUnit = unit; + } + + public float getValue() { + return mValue; + } + + /** + * 设置当前值 + * + * @param value + */ + public void setValue(float value) { + if (value > mMaxValue) { + value = mMaxValue; + } + float start = mPercent; + float end = value / mMaxValue; + startAnimator(start, end, mAnimTime); + } + + private void startAnimator(float start, float end, long animTime) { + mAnimator = ValueAnimator.ofFloat(start, end); + mAnimator.setDuration(animTime); + mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mPercent = (float) animation.getAnimatedValue(); + mValue = mPercent * mMaxValue; + invalidate(); + } + }); + mAnimator.start(); + } + + /** + * 获取最大值 + * + * @return + */ + public float getMaxValue() { + return mMaxValue; + } + + /** + * 设置最大值 + * + * @param maxValue + */ + public void setMaxValue(float maxValue) { + mMaxValue = maxValue; + } + + /** + * 获取精度 + * + * @return + */ + public int getPrecision() { + return mPrecision; + } + + public void setPrecision(int precision) { + mPrecision = precision; + mPrecisionFormat = MiscUtil.getPrecisionFormat(precision); + } + + public int[] getGradientColors() { + return mGradientColors; + } + + /** + * 设置渐变 + * + * @param gradientColors + */ + public void setGradientColors(int[] gradientColors) { + mGradientColors = gradientColors; + updateArcPaint(); + } + + public long getAnimTime() { + return mAnimTime; + } + + public void setAnimTime(long animTime) { + mAnimTime = animTime; + } + + /** + * 重置 + */ + public void reset() { + startAnimator(mPercent, 0.0f, 1000L); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + //释放资源 + } +} diff --git a/libs/common/src/main/java/com/littlejie/circleprogress/DialProgress.java b/libs/common/src/main/java/com/littlejie/circleprogress/DialProgress.java new file mode 100644 index 0000000..d42009d --- /dev/null +++ b/libs/common/src/main/java/com/littlejie/circleprogress/DialProgress.java @@ -0,0 +1,343 @@ +package com.littlejie.circleprogress; + +import android.animation.ValueAnimator; +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Point; +import android.graphics.RectF; +import android.graphics.SweepGradient; +import android.graphics.Typeface; +import android.text.TextPaint; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; + +import com.prws.common.R; +import com.littlejie.circleprogress.utils.Constant; +import com.littlejie.circleprogress.utils.MiscUtil; + +/** + * 带有刻度的圆形进度条 + * Created by littlejie on 2017/2/26. + */ + +public class DialProgress extends View { + + private static final String TAG = DialProgress.class.getSimpleName(); + private Context mContext; + + //圆心坐标 + private Point mCenterPoint; + private float mRadius; + private float mTextOffsetPercentInRadius; + + private boolean antiAlias; + //绘制提示 + private TextPaint mHintPaint; + private CharSequence mHint; + private int mHintColor; + private float mHintSize; + private float mHintOffset; + + //绘制数值 + private Paint mValuePaint; + private int mValueColor; + private float mMaxValue; + private float mValue; + private float mValueSize; + private float mValueOffset; + private String mPrecisionFormat; + + //绘制单位 + private Paint mUnitPaint; + private float mUnitSize; + private int mUnitColor; + private float mUnitOffset; + private CharSequence mUnit; + //前景圆弧 + private Paint mArcPaint; + private float mArcWidth; + private int mDialIntervalDegree; + private float mStartAngle, mSweepAngle; + private RectF mRectF; + //渐变 + private int[] mGradientColors = {Color.GREEN, Color.YELLOW, Color.RED}; + //当前进度,[0.0f,1.0f] + private float mPercent; + //动画时间 + private long mAnimTime; + //属性动画 + private ValueAnimator mAnimator; + + //背景圆弧 + private Paint mBgArcPaint; + private int mBgArcColor; + + //刻度线颜色 + private Paint mDialPaint; + private float mDialWidth; + private int mDialColor; + + private int mDefaultSize; + + public DialProgress(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + mContext = context; + mDefaultSize = MiscUtil.dipToPx(context, Constant.DEFAULT_SIZE); + mRectF = new RectF(); + mCenterPoint = new Point(); + initConfig(context, attrs); + initPaint(); + setValue(mValue); + } + + private void initConfig(Context context, AttributeSet attrs) { + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DialProgress); + + antiAlias = typedArray.getBoolean(R.styleable.DialProgress_antiAlias, true); + mMaxValue = typedArray.getFloat(R.styleable.DialProgress_maxValue, Constant.DEFAULT_MAX_VALUE); + mValue = typedArray.getFloat(R.styleable.DialProgress_value, Constant.DEFAULT_VALUE); + mValueSize = typedArray.getDimension(R.styleable.DialProgress_valueSize, Constant.DEFAULT_VALUE_SIZE); + mValueColor = typedArray.getColor(R.styleable.DialProgress_valueColor, Color.BLACK); + mDialIntervalDegree = typedArray.getInt(R.styleable.DialProgress_dialIntervalDegree, 10); + int precision = typedArray.getInt(R.styleable.DialProgress_precision, 0); + mPrecisionFormat = MiscUtil.getPrecisionFormat(precision); + + mUnit = typedArray.getString(R.styleable.DialProgress_unit); + mUnitColor = typedArray.getColor(R.styleable.DialProgress_unitColor, Color.BLACK); + mUnitSize = typedArray.getDimension(R.styleable.DialProgress_unitSize, Constant.DEFAULT_UNIT_SIZE); + + mHint = typedArray.getString(R.styleable.DialProgress_hint); + mHintColor = typedArray.getColor(R.styleable.DialProgress_hintColor, Color.BLACK); + mHintSize = typedArray.getDimension(R.styleable.DialProgress_hintSize, Constant.DEFAULT_HINT_SIZE); + + mArcWidth = typedArray.getDimension(R.styleable.DialProgress_arcWidth, Constant.DEFAULT_ARC_WIDTH); + + mStartAngle = typedArray.getFloat(R.styleable.DialProgress_startAngle, Constant.DEFAULT_START_ANGLE); + mSweepAngle = typedArray.getFloat(R.styleable.DialProgress_sweepAngle, Constant.DEFAULT_SWEEP_ANGLE); + + mAnimTime = typedArray.getInt(R.styleable.DialProgress_animTime, Constant.DEFAULT_ANIM_TIME); + + mBgArcColor = typedArray.getColor(R.styleable.DialProgress_bgArcColor, Color.GRAY); + mDialWidth = typedArray.getDimension(R.styleable.DialProgress_dialWidth, 2); + mDialColor = typedArray.getColor(R.styleable.DialProgress_dialColor, Color.WHITE); + + mTextOffsetPercentInRadius = typedArray.getFloat(R.styleable.DialProgress_textOffsetPercentInRadius, 0.33f); + + int gradientArcColors = typedArray.getResourceId(R.styleable.DialProgress_arcColors, 0); + if (gradientArcColors != 0) { + try { + int[] gradientColors = getResources().getIntArray(gradientArcColors); + if (gradientColors.length == 0) { + int color = getResources().getColor(gradientArcColors); + mGradientColors = new int[2]; + mGradientColors[0] = color; + mGradientColors[1] = color; + } else if (gradientColors.length == 1) { + mGradientColors = new int[2]; + mGradientColors[0] = gradientColors[0]; + mGradientColors[1] = gradientColors[0]; + } else { + mGradientColors = gradientColors; + } + } catch (Resources.NotFoundException e) { + throw new Resources.NotFoundException("the give resource not found."); + } + } + typedArray.recycle(); + } + + private void initPaint() { + mHintPaint = new TextPaint(); + // 设置抗锯齿,会消耗较大资源,绘制图形速度会变慢。 + mHintPaint.setAntiAlias(antiAlias); + // 设置绘制文字大小 + mHintPaint.setTextSize(mHintSize); + // 设置画笔颜色 + mHintPaint.setColor(mHintColor); + // 从中间向两边绘制,不需要再次计算文字 + mHintPaint.setTextAlign(Paint.Align.CENTER); + + mValuePaint = new Paint(); + mValuePaint.setAntiAlias(antiAlias); + mValuePaint.setTextSize(mValueSize); + mValuePaint.setColor(mValueColor); + mValuePaint.setTypeface(Typeface.DEFAULT_BOLD); + mValuePaint.setTextAlign(Paint.Align.CENTER); + + mUnitPaint = new Paint(); + mUnitPaint.setAntiAlias(antiAlias); + mUnitPaint.setTextSize(mUnitSize); + mUnitPaint.setColor(mUnitColor); + mUnitPaint.setTextAlign(Paint.Align.CENTER); + + mArcPaint = new Paint(); + mArcPaint.setAntiAlias(antiAlias); + mArcPaint.setStyle(Paint.Style.STROKE); + mArcPaint.setStrokeWidth(mArcWidth); + mArcPaint.setStrokeCap(Paint.Cap.BUTT); + + mBgArcPaint = new Paint(); + mBgArcPaint.setAntiAlias(antiAlias); + mBgArcPaint.setStyle(Paint.Style.STROKE); + mBgArcPaint.setStrokeWidth(mArcWidth); + mBgArcPaint.setStrokeCap(Paint.Cap.BUTT); + mBgArcPaint.setColor(mBgArcColor); + + mDialPaint = new Paint(); + mDialPaint.setAntiAlias(antiAlias); + mDialPaint.setColor(mDialColor); + mDialPaint.setStrokeWidth(mDialWidth); + } + + /** + * 更新圆弧画笔 + */ + private void updateArcPaint() { + // 设置渐变 + // 渐变的颜色是360度,如果只显示270,那么则会缺失部分颜色 + SweepGradient sweepGradient = new SweepGradient(mCenterPoint.x, mCenterPoint.y, mGradientColors, null); + mArcPaint.setShader(sweepGradient); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(MiscUtil.measure(widthMeasureSpec, mDefaultSize), + MiscUtil.measure(heightMeasureSpec, mDefaultSize)); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + Log.d(TAG, "onSizeChanged: w = " + w + "; h = " + h + "; oldw = " + oldw + "; oldh = " + oldh); + int minSize = Math.min(getMeasuredWidth() - getPaddingLeft() - getPaddingRight() - 2 * (int) mArcWidth, + getMeasuredHeight() - getPaddingTop() - getPaddingBottom() - 2 * (int) mArcWidth); + mRadius = minSize / 2; + mCenterPoint.x = getMeasuredWidth() / 2; + mCenterPoint.y = getMeasuredHeight() / 2; + //绘制圆弧的边界 + mRectF.left = mCenterPoint.x - mRadius - mArcWidth / 2; + mRectF.top = mCenterPoint.y - mRadius - mArcWidth / 2; + mRectF.right = mCenterPoint.x + mRadius + mArcWidth / 2; + mRectF.bottom = mCenterPoint.y + mRadius + mArcWidth / 2; + + mValueOffset = mCenterPoint.y + getBaselineOffsetFromY(mValuePaint); + mHintOffset = mCenterPoint.y - mRadius * mTextOffsetPercentInRadius + getBaselineOffsetFromY(mHintPaint); + mUnitOffset = mCenterPoint.y + mRadius * mTextOffsetPercentInRadius + getBaselineOffsetFromY(mUnitPaint); + + updateArcPaint(); + Log.d(TAG, "onMeasure: 控件大小 = " + "(" + getMeasuredWidth() + ", " + getMeasuredHeight() + ")" + + ";圆心坐标 = " + mCenterPoint.toString() + + ";圆半径 = " + mRadius + + ";圆的外接矩形 = " + mRectF.toString()); + } + + private float getBaselineOffsetFromY(Paint paint) { + return MiscUtil.measureTextHeight(paint) / 2; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + drawArc(canvas); + drawDial(canvas); + drawText(canvas); + } + + private void drawArc(Canvas canvas) { + // 绘制背景圆弧 + // 从进度圆弧结束的地方开始重新绘制,优化性能 + float currentAngle = mSweepAngle * mPercent; + canvas.save(); + canvas.rotate(mStartAngle, mCenterPoint.x, mCenterPoint.y); + canvas.drawArc(mRectF, currentAngle, mSweepAngle - currentAngle, false, mBgArcPaint); + // 第一个参数 oval 为 RectF 类型,即圆弧显示区域 + // startAngle 和 sweepAngle 均为 float 类型,分别表示圆弧起始角度和圆弧度数 + // 3点钟方向为0度,顺时针递增 + // 如果 startAngle < 0 或者 > 360,则相当于 startAngle % 360 + // useCenter:如果为True时,在绘制圆弧时将圆心包括在内,通常用来绘制扇形 + canvas.drawArc(mRectF, 0, currentAngle, false, mArcPaint); + canvas.restore(); + } + + private void drawDial(Canvas canvas) { + int total = (int) (mSweepAngle / mDialIntervalDegree); + canvas.save(); + canvas.rotate(mStartAngle, mCenterPoint.x, mCenterPoint.y); + for (int i = 0; i <= total; i++) { + canvas.drawLine(mCenterPoint.x + mRadius, mCenterPoint.y, mCenterPoint.x + mRadius + mArcWidth, mCenterPoint.y, mDialPaint); + canvas.rotate(mDialIntervalDegree, mCenterPoint.x, mCenterPoint.y); + } + canvas.restore(); + } + + private void drawText(Canvas canvas) { + canvas.drawText(String.format(mPrecisionFormat, mValue), mCenterPoint.x, mValueOffset, mValuePaint); + + if (mUnit != null) { + canvas.drawText(mUnit.toString(), mCenterPoint.x, mUnitOffset, mUnitPaint); + } + + if (mHint != null) { + canvas.drawText(mHint.toString(), mCenterPoint.x, mHintOffset, mHintPaint); + } + } + + public float getMaxValue() { + return mMaxValue; + } + + public void setMaxValue(float maxValue) { + mMaxValue = maxValue; + } + + /** + * 设置当前值 + * + * @param value + */ + public void setValue(float value) { + if (value > mMaxValue) { + value = mMaxValue; + } + float start = mPercent; + float end = value / mMaxValue; + startAnimator(start, end, mAnimTime); + } + + private void startAnimator(float start, float end, long animTime) { + mAnimator = ValueAnimator.ofFloat(start, end); + mAnimator.setDuration(animTime); + mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mPercent = (float) animation.getAnimatedValue(); + mValue = mPercent * mMaxValue; + invalidate(); + } + }); + mAnimator.start(); + } + + public int[] getGradientColors() { + return mGradientColors; + } + + public void setGradientColors(int[] gradientColors) { + mGradientColors = gradientColors; + updateArcPaint(); + } + + public void reset() { + startAnimator(mPercent, 0.0f, 1000L); + } +} diff --git a/libs/common/src/main/java/com/littlejie/circleprogress/WaveProgress.java b/libs/common/src/main/java/com/littlejie/circleprogress/WaveProgress.java new file mode 100644 index 0000000..e93d2e2 --- /dev/null +++ b/libs/common/src/main/java/com/littlejie/circleprogress/WaveProgress.java @@ -0,0 +1,506 @@ +package com.littlejie.circleprogress; + +import android.animation.Animator; +import android.animation.ValueAnimator; +import android.annotation.TargetApi; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.Point; +import android.graphics.RectF; +import android.os.Build; +import android.text.TextPaint; +import android.util.AttributeSet; +import android.util.Log; +import android.view.View; +import android.view.animation.LinearInterpolator; + +import com.prws.common.R; +import com.littlejie.circleprogress.utils.Constant; +import com.littlejie.circleprogress.utils.MiscUtil; + +/** + * 水波进度条 + * Created by littlejie on 2017/2/26. + */ + +public class WaveProgress extends View { + + private static final String TAG = WaveProgress.class.getSimpleName(); + + //浅色波浪方向 + private static final int L2R = 0; + private static final int R2L = 1; + + private int mDefaultSize; + //圆心 + private Point mCenterPoint; + //半径 + private float mRadius; + //圆的外接矩形 + private RectF mRectF; + //深色波浪移动距离 + private float mDarkWaveOffset; + //浅色波浪移动距离 + private float mLightWaveOffset; + //浅色波浪方向 + private boolean isR2L; + //是否锁定波浪不随进度移动 + private boolean lockWave; + + //是否开启抗锯齿 + private boolean antiAlias; + //最大值 + private float mMaxValue; + //当前值 + private float mValue; + //当前进度 + private float mPercent; + + //绘制提示 + private TextPaint mHintPaint; + private CharSequence mHint; + private int mHintColor; + private float mHintSize; + + private Paint mPercentPaint; + private float mValueSize; + private int mValueColor; + + //圆环宽度 + private float mCircleWidth; + //圆环 + private Paint mCirclePaint; + //圆环颜色 + private int mCircleColor; + //背景圆环颜色 + private int mBgCircleColor; + + //水波路径 + private Path mWaveLimitPath; + private Path mWavePath; + //水波高度 + private float mWaveHeight; + //水波数量 + private int mWaveNum; + //深色水波 + private Paint mWavePaint; + //深色水波颜色 + private int mDarkWaveColor; + //浅色水波颜色 + private int mLightWaveColor; + + //深色水波贝塞尔曲线上的起始点、控制点 + private Point[] mDarkPoints; + //浅色水波贝塞尔曲线上的起始点、控制点 + private Point[] mLightPoints; + + //贝塞尔曲线点的总个数 + private int mAllPointCount; + private int mHalfPointCount; + + private ValueAnimator mProgressAnimator; + private long mDarkWaveAnimTime; + private ValueAnimator mDarkWaveAnimator; + private long mLightWaveAnimTime; + private ValueAnimator mLightWaveAnimator; + + public WaveProgress(Context context, AttributeSet attrs) { + super(context, attrs); + init(context, attrs); + } + + private void init(Context context, AttributeSet attrs) { + mDefaultSize = MiscUtil.dipToPx(context, Constant.DEFAULT_SIZE); + mRectF = new RectF(); + mCenterPoint = new Point(); + + initAttrs(context, attrs); + initPaint(); + initPath(); + } + + private void initAttrs(Context context, AttributeSet attrs) { + TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.WaveProgress); + + antiAlias = typedArray.getBoolean(R.styleable.WaveProgress_antiAlias, true); + mDarkWaveAnimTime = typedArray.getInt(R.styleable.WaveProgress_darkWaveAnimTime, Constant.DEFAULT_ANIM_TIME); + mLightWaveAnimTime = typedArray.getInt(R.styleable.WaveProgress_lightWaveAnimTime, Constant.DEFAULT_ANIM_TIME); + mMaxValue = typedArray.getFloat(R.styleable.WaveProgress_maxValue, Constant.DEFAULT_MAX_VALUE); + mValue = typedArray.getFloat(R.styleable.WaveProgress_value, Constant.DEFAULT_VALUE); + mValueSize = typedArray.getDimension(R.styleable.WaveProgress_valueSize, Constant.DEFAULT_VALUE_SIZE); + mValueColor = typedArray.getColor(R.styleable.WaveProgress_valueColor, Color.BLACK); + + mHint = typedArray.getString(R.styleable.WaveProgress_hint); + mHintColor = typedArray.getColor(R.styleable.WaveProgress_hintColor, Color.BLACK); + mHintSize = typedArray.getDimension(R.styleable.WaveProgress_hintSize, Constant.DEFAULT_HINT_SIZE); + + mCircleWidth = typedArray.getDimension(R.styleable.WaveProgress_circleWidth, Constant.DEFAULT_ARC_WIDTH); + mCircleColor = typedArray.getColor(R.styleable.WaveProgress_circleColor, Color.GREEN); + mBgCircleColor = typedArray.getColor(R.styleable.WaveProgress_bgCircleColor, Color.WHITE); + + mWaveHeight = typedArray.getDimension(R.styleable.WaveProgress_waveHeight, Constant.DEFAULT_WAVE_HEIGHT); + mWaveNum = typedArray.getInt(R.styleable.WaveProgress_waveNum, 1); + mDarkWaveColor = typedArray.getColor(R.styleable.WaveProgress_darkWaveColor, + getResources().getColor(android.R.color.holo_blue_dark)); + mLightWaveColor = typedArray.getColor(R.styleable.WaveProgress_lightWaveColor, + getResources().getColor(android.R.color.holo_green_light)); + + isR2L = typedArray.getInt(R.styleable.WaveProgress_lightWaveDirect, R2L) == R2L; + lockWave = typedArray.getBoolean(R.styleable.WaveProgress_lockWave, false); + + typedArray.recycle(); + } + + private void initPaint() { + mHintPaint = new TextPaint(); + // 设置抗锯齿,会消耗较大资源,绘制图形速度会变慢。 + mHintPaint.setAntiAlias(antiAlias); + // 设置绘制文字大小 + mHintPaint.setTextSize(mHintSize); + // 设置画笔颜色 + mHintPaint.setColor(mHintColor); + // 从中间向两边绘制,不需要再次计算文字 + mHintPaint.setTextAlign(Paint.Align.CENTER); + + mCirclePaint = new Paint(); + mCirclePaint.setAntiAlias(antiAlias); + mCirclePaint.setStrokeWidth(mCircleWidth); + mCirclePaint.setStyle(Paint.Style.STROKE); + mCirclePaint.setStrokeCap(Paint.Cap.ROUND); + + mWavePaint = new Paint(); + mWavePaint.setAntiAlias(antiAlias); + mWavePaint.setStyle(Paint.Style.FILL); + + mPercentPaint = new Paint(); + mPercentPaint.setTextAlign(Paint.Align.CENTER); + mPercentPaint.setAntiAlias(antiAlias); + mPercentPaint.setColor(mValueColor); + mPercentPaint.setTextSize(mValueSize); + } + + private void initPath() { + mWaveLimitPath = new Path(); + mWavePath = new Path(); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(MiscUtil.measure(widthMeasureSpec, mDefaultSize), + MiscUtil.measure(heightMeasureSpec, mDefaultSize)); + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + Log.d(TAG, "onSizeChanged: w = " + w + "; h = " + h + "; oldw = " + oldw + "; oldh = " + oldh); + int minSize = Math.min(getMeasuredWidth() - getPaddingLeft() - getPaddingRight() - 2 * (int) mCircleWidth, + getMeasuredHeight() - getPaddingTop() - getPaddingBottom() - 2 * (int) mCircleWidth); + mRadius = minSize / 2; + mCenterPoint.x = getMeasuredWidth() / 2; + mCenterPoint.y = getMeasuredHeight() / 2; + //绘制圆弧的边界 + mRectF.left = mCenterPoint.x - mRadius - mCircleWidth / 2; + mRectF.top = mCenterPoint.y - mRadius - mCircleWidth / 2; + mRectF.right = mCenterPoint.x + mRadius + mCircleWidth / 2; + mRectF.bottom = mCenterPoint.y + mRadius + mCircleWidth / 2; + Log.d(TAG, "onSizeChanged: 控件大小 = " + "(" + getMeasuredWidth() + ", " + getMeasuredHeight() + ")" + + ";圆心坐标 = " + mCenterPoint.toString() + + ";圆半径 = " + mRadius + + ";圆的外接矩形 = " + mRectF.toString()); + initWavePoints(); + //开始动画 + setValue(mValue); + startWaveAnimator(); + } + + private void initWavePoints() { + //当前波浪宽度 + float waveWidth = (mRadius * 2) / mWaveNum; + mAllPointCount = 8 * mWaveNum + 1; + mHalfPointCount = mAllPointCount / 2; + mDarkPoints = getPoint(false, waveWidth); + mLightPoints = getPoint(isR2L, waveWidth); + } + + /** + * 从左往右或者从右往左获取贝塞尔点 + * + * @return + */ + private Point[] getPoint(boolean isR2L, float waveWidth) { + Point[] points = new Point[mAllPointCount]; + //第1个点特殊处理,即数组的中点 + points[mHalfPointCount] = new Point((int) (mCenterPoint.x + (isR2L ? mRadius : -mRadius)), mCenterPoint.y); + //屏幕内的贝塞尔曲线点 + for (int i = mHalfPointCount + 1; i < mAllPointCount; i += 4) { + float width = points[mHalfPointCount].x + waveWidth * (i / 4 - mWaveNum); + points[i] = new Point((int) (waveWidth / 4 + width), (int) (mCenterPoint.y - mWaveHeight)); + points[i + 1] = new Point((int) (waveWidth / 2 + width), mCenterPoint.y); + points[i + 2] = new Point((int) (waveWidth * 3 / 4 + width), (int) (mCenterPoint.y + mWaveHeight)); + points[i + 3] = new Point((int) (waveWidth + width), mCenterPoint.y); + } + //屏幕外的贝塞尔曲线点 + for (int i = 0; i < mHalfPointCount; i++) { + int reverse = mAllPointCount - i - 1; + points[i] = new Point((isR2L ? 2 : 1) * points[mHalfPointCount].x - points[reverse].x, + points[mHalfPointCount].y * 2 - points[reverse].y); + } + //对从右向左的贝塞尔点数组反序,方便后续处理 + return isR2L ? MiscUtil.reverse(points) : points; + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + drawCircle(canvas); + drawLightWave(canvas); + drawDarkWave(canvas); + drawProgress(canvas); + } + + /** + * 绘制圆环 + * + * @param canvas + */ + private void drawCircle(Canvas canvas) { + canvas.save(); + canvas.rotate(270, mCenterPoint.x, mCenterPoint.y); + int currentAngle = (int) (360 * mPercent); + //画背景圆环 + mCirclePaint.setColor(mBgCircleColor); + canvas.drawArc(mRectF, currentAngle, 360 - currentAngle, false, mCirclePaint); + //画圆环 + mCirclePaint.setColor(mCircleColor); + canvas.drawArc(mRectF, 0, currentAngle, false, mCirclePaint); + canvas.restore(); + } + + /** + * 绘制深色波浪(贝塞尔曲线) + * + * @param canvas + */ + private void drawDarkWave(Canvas canvas) { + mWavePaint.setColor(mDarkWaveColor); + drawWave(canvas, mWavePaint, mDarkPoints, mDarkWaveOffset); + } + + /** + * 绘制浅色波浪(贝塞尔曲线) + * + * @param canvas + */ + private void drawLightWave(Canvas canvas) { + mWavePaint.setColor(mLightWaveColor); + //从右向左的水波位移应该被减去 + drawWave(canvas, mWavePaint, mLightPoints, isR2L ? -mLightWaveOffset : mLightWaveOffset); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + private void drawWave(Canvas canvas, Paint paint, Point[] points, float waveOffset) { + mWaveLimitPath.reset(); + mWavePath.reset(); + float height = lockWave ? 0 : mRadius - 2 * mRadius * mPercent; + //moveTo和lineTo绘制出水波区域矩形 + mWavePath.moveTo(points[0].x + waveOffset, points[0].y + height); + + for (int i = 1; i < mAllPointCount; i += 2) { + mWavePath.quadTo(points[i].x + waveOffset, points[i].y + height, + points[i + 1].x + waveOffset, points[i + 1].y + height); + } + //mWavePath.lineTo(points[mAllPointCount - 1].x, points[mAllPointCount - 1].y + height); + //不管如何移动,波浪与圆路径的交集底部永远固定,否则会造成上移的时候底部为空的情况 + mWavePath.lineTo(points[mAllPointCount - 1].x, mCenterPoint.y + mRadius); + mWavePath.lineTo(points[0].x, mCenterPoint.y + mRadius); + mWavePath.close(); + mWaveLimitPath.addCircle(mCenterPoint.x, mCenterPoint.y, mRadius, Path.Direction.CW); + //取该圆与波浪路径的交集,形成波浪在圆内的效果 + mWaveLimitPath.op(mWavePath, Path.Op.INTERSECT); + canvas.drawPath(mWaveLimitPath, paint); + } + + //前一次绘制时的进度 + private float mPrePercent; + //当前进度值 + private String mPercentValue; + + private void drawProgress(Canvas canvas) { + float y = mCenterPoint.y - (mPercentPaint.descent() + mPercentPaint.ascent()) / 2; + if (mPrePercent == 0.0f || Math.abs(mPercent - mPrePercent) >= 0.01f) { + mPercentValue = String.format("%.0f%%", mPercent * 100); + mPrePercent = mPercent; + } + canvas.drawText(mPercentValue, mCenterPoint.x, y, mPercentPaint); + + if (mHint != null) { + float hy = mCenterPoint.y * 2 / 3 - (mHintPaint.descent() + mHintPaint.ascent()) / 2; + canvas.drawText(mHint.toString(), mCenterPoint.x, hy, mHintPaint); + } + } + + public float getMaxValue() { + return mMaxValue; + } + + public void setMaxValue(float maxValue) { + mMaxValue = maxValue; + } + + public float getValue() { + return mValue; + } + + /** + * 设置当前值 + * + * @param value + */ + public void setValue(float value) { + if (value > mMaxValue) { + value = mMaxValue; + } + float start = mPercent; + float end = value / mMaxValue; + Log.d(TAG, "setValue, value = " + value + ";start = " + start + "; end = " + end); + startAnimator(start, end, mDarkWaveAnimTime); + } + + private void startAnimator(final float start, float end, long animTime) { + Log.d(TAG, "startAnimator,value = " + mValue + + ";start = " + start + ";end = " + end + ";time = " + animTime); + //当start=0且end=0时,不需要启动动画 + if (start == 0 && end == 0) { + return; + } + mProgressAnimator = ValueAnimator.ofFloat(start, end); + mProgressAnimator.setDuration(animTime); + mProgressAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mPercent = (float) animation.getAnimatedValue(); + if (mPercent == 0.0f || mPercent == 1.0f) { + stopWaveAnimator(); + } else { + startWaveAnimator(); + } + mValue = mPercent * mMaxValue; + invalidate(); + } + }); + mProgressAnimator.start(); + } + + private void startWaveAnimator() { + startLightWaveAnimator(); + startDarkWaveAnimator(); + } + + private void stopWaveAnimator() { + if (mDarkWaveAnimator != null && mDarkWaveAnimator.isRunning()) { + mDarkWaveAnimator.cancel(); + mDarkWaveAnimator.removeAllUpdateListeners(); + mDarkWaveAnimator = null; + } + if (mLightWaveAnimator != null && mLightWaveAnimator.isRunning()) { + mLightWaveAnimator.cancel(); + mLightWaveAnimator.removeAllUpdateListeners(); + mLightWaveAnimator = null; + } + } + + private void startLightWaveAnimator() { + if (mLightWaveAnimator != null && mLightWaveAnimator.isRunning()) { + return; + } + mLightWaveAnimator = ValueAnimator.ofFloat(0, 2 * mRadius); + mLightWaveAnimator.setDuration(mLightWaveAnimTime); + mLightWaveAnimator.setRepeatCount(ValueAnimator.INFINITE); + mLightWaveAnimator.setInterpolator(new LinearInterpolator()); + mLightWaveAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mLightWaveOffset = (float) animation.getAnimatedValue(); + postInvalidate(); + } + }); + mLightWaveAnimator.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + mLightWaveOffset = 0; + } + + @Override + public void onAnimationEnd(Animator animation) { + + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + mLightWaveAnimator.start(); + } + + private void startDarkWaveAnimator() { + if (mDarkWaveAnimator != null && mDarkWaveAnimator.isRunning()) { + return; + } + mDarkWaveAnimator = ValueAnimator.ofFloat(0, 2 * mRadius); + mDarkWaveAnimator.setDuration(mDarkWaveAnimTime); + mDarkWaveAnimator.setRepeatCount(ValueAnimator.INFINITE); + mDarkWaveAnimator.setInterpolator(new LinearInterpolator()); + mDarkWaveAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + @Override + public void onAnimationUpdate(ValueAnimator animation) { + mDarkWaveOffset = (float) animation.getAnimatedValue(); + postInvalidate(); + } + }); + mDarkWaveAnimator.addListener(new Animator.AnimatorListener() { + @Override + public void onAnimationStart(Animator animation) { + mDarkWaveOffset = 0; + } + + @Override + public void onAnimationEnd(Animator animation) { + + } + + @Override + public void onAnimationCancel(Animator animation) { + + } + + @Override + public void onAnimationRepeat(Animator animation) { + + } + }); + mDarkWaveAnimator.start(); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + stopWaveAnimator(); + if (mProgressAnimator != null && mProgressAnimator.isRunning()) { + mProgressAnimator.cancel(); + mProgressAnimator.removeAllUpdateListeners(); + mProgressAnimator = null; + } + } +} diff --git a/libs/common/src/main/java/com/littlejie/circleprogress/utils/Constant.java b/libs/common/src/main/java/com/littlejie/circleprogress/utils/Constant.java new file mode 100644 index 0000000..fb215e0 --- /dev/null +++ b/libs/common/src/main/java/com/littlejie/circleprogress/utils/Constant.java @@ -0,0 +1,26 @@ +package com.littlejie.circleprogress.utils; + +/** + * Created by littlejie on 2017/2/26. + */ +public class Constant { + + public static final boolean ANTI_ALIAS = true; + + public static final int DEFAULT_SIZE = 150; + public static final int DEFAULT_START_ANGLE = 270; + public static final int DEFAULT_SWEEP_ANGLE = 360; + + public static final int DEFAULT_ANIM_TIME = 1000; + + public static final int DEFAULT_MAX_VALUE = 100; + public static final int DEFAULT_VALUE = 50; + + public static final int DEFAULT_HINT_SIZE = 15; + public static final int DEFAULT_UNIT_SIZE = 30; + public static final int DEFAULT_VALUE_SIZE = 15; + + public static final int DEFAULT_ARC_WIDTH = 15; + + public static final int DEFAULT_WAVE_HEIGHT = 40; +} diff --git a/libs/common/src/main/java/com/littlejie/circleprogress/utils/MiscUtil.java b/libs/common/src/main/java/com/littlejie/circleprogress/utils/MiscUtil.java new file mode 100644 index 0000000..3095506 --- /dev/null +++ b/libs/common/src/main/java/com/littlejie/circleprogress/utils/MiscUtil.java @@ -0,0 +1,83 @@ +package com.littlejie.circleprogress.utils; + +import android.content.Context; +import android.graphics.Paint; +import android.view.View; + +/** + * Created by littlejie on 2017/2/22. + */ + +public class MiscUtil { + + /** + * 测量 View + * + * @param measureSpec + * @param defaultSize View 的默认大小 + * @return + */ + public static int measure(int measureSpec, int defaultSize) { + int result = defaultSize; + int specMode = View.MeasureSpec.getMode(measureSpec); + int specSize = View.MeasureSpec.getSize(measureSpec); + + if (specMode == View.MeasureSpec.EXACTLY) { + result = specSize; + } else if (specMode == View.MeasureSpec.AT_MOST) { + result = Math.min(result, specSize); + } + return result; + } + + /** + * dip 转换成px + * + * @param dip + * @return + */ + public static int dipToPx(Context context, float dip) { + float density = context.getResources().getDisplayMetrics().density; + return (int) (dip * density + 0.5f * (dip >= 0 ? 1 : -1)); + } + + /** + * 获取数值精度格式化字符串 + * + * @param precision + * @return + */ + public static String getPrecisionFormat(int precision) { + return "%." + precision + "f"; + } + + /** + * 反转数组 + * + * @param arrays + * @param + * @return + */ + public static T[] reverse(T[] arrays) { + if (arrays == null) { + return null; + } + int length = arrays.length; + for (int i = 0; i < length / 2; i++) { + T t = arrays[i]; + arrays[i] = arrays[length - i - 1]; + arrays[length - i - 1] = t; + } + return arrays; + } + + /** + * 测量文字高度 + * @param paint + * @return + */ + public static float measureTextHeight(Paint paint) { + Paint.FontMetrics fontMetrics = paint.getFontMetrics(); + return (Math.abs(fontMetrics.ascent) - fontMetrics.descent); + } +} \ No newline at end of file diff --git a/libs/common/src/main/res/values/attrs_circle_progress.xml b/libs/common/src/main/res/values/attrs_circle_progress.xml new file mode 100644 index 0000000..c1c54af --- /dev/null +++ b/libs/common/src/main/res/values/attrs_circle_progress.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- 1.9.0