From 3470e1dad9910072d3ef8191e6886f629adf4238 Mon Sep 17 00:00:00 2001 From: chenjingyu Date: Sat, 26 Dec 2020 15:21:42 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=BB=BA]=E9=A2=84=E6=A1=88=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8=E6=A8=A1=E5=9D=97=E5=AE=A1=E6=A0=B8=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=92=8C=E5=BE=85=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic-info/basic-info.component.html | 90 +++++++ .../basic-info/basic-info.component.scss | 106 +++++++++ .../basic-info/basic-info.component.spec.ts | 25 ++ .../basic-info/basic-info.component.ts | 15 ++ .../plan-audit/plan-audit-routing.module.ts | 12 + src/app/plan-audit/plan-audit.module.ts | 7 +- .../plan-record/plan-record.component.html | 127 ++++++++++ .../plan-record/plan-record.component.scss | 68 ++++++ .../plan-record/plan-record.component.spec.ts | 25 ++ .../plan-record/plan-record.component.ts | 33 +++ .../wait-examineer.component.html | 225 ++++++++++++++++++ .../wait-examineer.component.scss | 163 +++++++++++++ .../wait-examineer.component.spec.ts | 25 ++ .../wait-examineer.component.ts | 104 ++++++++ .../entry-plan/entry-plan.component.html | 25 +- .../entry-plan/entry-plan.component.ts | 46 +--- .../onetwo-entry-plan/newunit.html | 42 ++++ .../onetwo-entry-plan/newunit.scss | 35 +++ .../onetwo-entry-plan.component.html | 136 +++++++++++ .../onetwo-entry-plan.component.scss | 116 +++++++++ .../onetwo-entry-plan.component.spec.ts | 25 ++ .../onetwo-entry-plan.component.ts | 152 ++++++++++++ .../plan-management-routing.module.ts | 12 +- .../plan-management/plan-management.module.ts | 4 +- src/assets/images/bendi.png | Bin 0 -> 265 bytes src/assets/images/change.png | Bin 0 -> 327 bytes src/assets/images/chatchange.png | Bin 0 -> 37520 bytes src/assets/images/newadd.png | Bin 0 -> 377 bytes src/assets/images/preview.png | Bin 0 -> 411 bytes src/assets/images/refresh.png | Bin 0 -> 357 bytes src/assets/images/update.png | Bin 0 -> 479 bytes 31 files changed, 1552 insertions(+), 66 deletions(-) create mode 100644 src/app/plan-audit/basic-info/basic-info.component.html create mode 100644 src/app/plan-audit/basic-info/basic-info.component.scss create mode 100644 src/app/plan-audit/basic-info/basic-info.component.spec.ts create mode 100644 src/app/plan-audit/basic-info/basic-info.component.ts create mode 100644 src/app/plan-audit/plan-record/plan-record.component.html create mode 100644 src/app/plan-audit/plan-record/plan-record.component.scss create mode 100644 src/app/plan-audit/plan-record/plan-record.component.spec.ts create mode 100644 src/app/plan-audit/plan-record/plan-record.component.ts create mode 100644 src/app/plan-audit/wait-examineer/wait-examineer.component.html create mode 100644 src/app/plan-audit/wait-examineer/wait-examineer.component.scss create mode 100644 src/app/plan-audit/wait-examineer/wait-examineer.component.spec.ts create mode 100644 src/app/plan-audit/wait-examineer/wait-examineer.component.ts create mode 100644 src/app/plan-management/onetwo-entry-plan/newunit.html create mode 100644 src/app/plan-management/onetwo-entry-plan/newunit.scss create mode 100644 src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html create mode 100644 src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss create mode 100644 src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.spec.ts create mode 100644 src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts create mode 100644 src/assets/images/bendi.png create mode 100644 src/assets/images/change.png create mode 100644 src/assets/images/chatchange.png create mode 100644 src/assets/images/newadd.png create mode 100644 src/assets/images/preview.png create mode 100644 src/assets/images/refresh.png create mode 100644 src/assets/images/update.png diff --git a/src/app/plan-audit/basic-info/basic-info.component.html b/src/app/plan-audit/basic-info/basic-info.component.html new file mode 100644 index 0000000..971eeb4 --- /dev/null +++ b/src/app/plan-audit/basic-info/basic-info.component.html @@ -0,0 +1,90 @@ + +
+ +
+ + + + + 单位信息 + + +
+
+
+ * + 统一社会信用代码: + + + +
+
+ * + 单位类型: + + + 石油化工类 + + +
+
+ * + 联系人: + + + +
+
+ * + 联系电话: + + + +
+
+ * + 辖区中队: + + + +
+ +
+ * + 单位地址: + + + +
+
+ 单位照片: +
+ +
+ +
+
+
+ + +
+
+
+ +
diff --git a/src/app/plan-audit/basic-info/basic-info.component.scss b/src/app/plan-audit/basic-info/basic-info.component.scss new file mode 100644 index 0000000..cfab8c8 --- /dev/null +++ b/src/app/plan-audit/basic-info/basic-info.component.scss @@ -0,0 +1,106 @@ +.content{ + width: 100%; + height: 100%; + .tableContent{ + width: 100%; + } +} +.mainbox{ + height: 100%; + position: relative; + .mainleft{ + width:800px; + height: 100%; + // background-color: yellow; + float: left; + .inputbox{ + width: 343px; + height: 58px; + margin:2px 6px; + float: left; + text-align: end; + } + .organizationbox{ + width:538px; + height: 200px; + background: white; + position: absolute; + top: 164px; + left:166px; + z-index: 100; + border: 1px solid grey; + overflow: auto; + li{ + list-style: none; + + } + mat-tree-node{ + cursor: pointer; + } + mat-tree-node:hover{ + background: rgba(225, 225, 225, 0.8); + } + } + .addbtn{ + width: 695px; + position: absolute; + bottom: -495px; + text-align: center; + margin-bottom:20px; + button{ + margin: 0 4px; + } + } + .uploadimg{ + width: 400px; + height: 200px; + float: left; + margin-top:12px; + position: relative; + margin-left: 80px; + cursor: pointer; + span{ + float: left; + } + // img{ + // float: left; + // } + .uploadingimg{ + width: 299px; + height: 170px; + // background: url('../../../assets/images/upload2.png') no-repeat center center; + + position: absolute; + top: 0px; + left: 79px; + border: 1px dashed gray; + border-radius:3px; + } + + } + .image{ + // position: absolute; + // top: 199px; + // left: 160px; + // width: 299px; + // height: 170px; + input{ + // width: 299px; + // height: 170px; + width: 190px; + margin-top: 160px; + cursor: pointer; + } + // opacity:0; + + } + } + .mainright{ + float: left; + width: 600px; + height: 400px; + // position: absolute; + // right: 170px; + + } +} \ No newline at end of file diff --git a/src/app/plan-audit/basic-info/basic-info.component.spec.ts b/src/app/plan-audit/basic-info/basic-info.component.spec.ts new file mode 100644 index 0000000..9cfa89c --- /dev/null +++ b/src/app/plan-audit/basic-info/basic-info.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BasicInfoComponent } from './basic-info.component'; + +describe('BasicInfoComponent', () => { + let component: BasicInfoComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ BasicInfoComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(BasicInfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-audit/basic-info/basic-info.component.ts b/src/app/plan-audit/basic-info/basic-info.component.ts new file mode 100644 index 0000000..e24cc22 --- /dev/null +++ b/src/app/plan-audit/basic-info/basic-info.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-basic-info', + templateUrl: './basic-info.component.html', + styleUrls: ['./basic-info.component.scss'] +}) +export class BasicInfoComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/plan-audit/plan-audit-routing.module.ts b/src/app/plan-audit/plan-audit-routing.module.ts index 4069bfa..5612898 100644 --- a/src/app/plan-audit/plan-audit-routing.module.ts +++ b/src/app/plan-audit/plan-audit-routing.module.ts @@ -1,13 +1,25 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-12-24 10:59:48 + * @LastEditors: sueRimn + * @LastEditTime: 2020-12-25 16:27:40 + */ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import {DetachmentLevelComponent} from './detachment-level/detachment-level.component' import { PlanAuditComponent } from './plan-audit/plan-audit.component'; import { PlanPassComponent } from './plan-pass/plan-pass.component'; +import { PlanRecordComponent } from './plan-record/plan-record.component'; +import { WaitExamineerComponent } from './wait-examineer/wait-examineer.component' const routes: Routes = [ { path: 'detachmentLevel', component: DetachmentLevelComponent }, { path: 'planaudit', component: PlanAuditComponent }, { path: 'planpass', component: PlanPassComponent }, + { path: 'planrecord', component: PlanRecordComponent }, + { path: 'waitexamineer', component: WaitExamineerComponent }, ]; @NgModule({ diff --git a/src/app/plan-audit/plan-audit.module.ts b/src/app/plan-audit/plan-audit.module.ts index c8bbc2a..0ee43c1 100644 --- a/src/app/plan-audit/plan-audit.module.ts +++ b/src/app/plan-audit/plan-audit.module.ts @@ -48,10 +48,13 @@ import { PlanAuditComponent, PlanOpen } from './plan-audit/plan-audit.component' import { FormsModule } from '@angular/forms'; import { PlanPassComponent } from './plan-pass/plan-pass.component'; import {ViewUnitDetailsPlanComponent} from '../key-unit/view-unit-details-plan/view-unit-details-plan.component' -import {KeyUnitModule} from '../key-unit/key-unit.module' +import {KeyUnitModule} from '../key-unit/key-unit.module'; +import { PlanRecordComponent } from './plan-record/plan-record.component'; +import { BasicInfoComponent } from './basic-info/basic-info.component'; +import { WaitExamineerComponent } from './wait-examineer/wait-examineer.component' @NgModule({ - declarations: [DetachmentLevelComponent, PlanAuditComponent, PlanPassComponent,PlanOpen,], + declarations: [DetachmentLevelComponent, PlanAuditComponent, PlanPassComponent,PlanOpen, PlanRecordComponent, BasicInfoComponent, WaitExamineerComponent,], imports: [ CommonModule, PlanAuditRoutingModule, diff --git a/src/app/plan-audit/plan-record/plan-record.component.html b/src/app/plan-audit/plan-record/plan-record.component.html new file mode 100644 index 0000000..82f5085 --- /dev/null +++ b/src/app/plan-audit/plan-record/plan-record.component.html @@ -0,0 +1,127 @@ + +
+
+
+
+ 操作类型: + 全部 + 更新 + 新增 + 删除 + 共计:80条 +
+
+ 审核状态: + 全部 + 已通过 + 已拒绝 +
+
+ 类型: + + + Ⅰ级 + Ⅱ级 + + + 所属组织: + + + Ⅰ级 + Ⅱ级 + + + 时间: + + + +
+
+ + + + + + + + + + + + + + + + + + + +
类型操作所属组织审核状态提交人提交时间
{{item.level}}{{item.option}}{{item.orgication}}{{item.unitstate}}{{item.addname}}{{item.addtime}}
+
+
+ +
+
+ + + + + + + + + + 平面图 + + + + + 四周毗邻 + + + + + 消防设施 + + + + + 重点部位 + + + + + 功能分区 + + + + + 实景图 + + + + + cad + + + + + +
+
diff --git a/src/app/plan-audit/plan-record/plan-record.component.scss b/src/app/plan-audit/plan-record/plan-record.component.scss new file mode 100644 index 0000000..67d555f --- /dev/null +++ b/src/app/plan-audit/plan-record/plan-record.component.scss @@ -0,0 +1,68 @@ +.box{ + height: 100%; + width: 100%; + display: flex; + .boxleft{ + height: 100%; + width: 45%; + background-color: #FFFFFF; + display: flex; + flex-direction: column; + .lefthead{ + display: flex; + flex-direction: column; + .headdiv{ + margin: 0 0 0 30px; + height: 40px; + span{ + font-size: 16px; + margin-left: 3px; + } + input{ + margin-left: 15px; + position: relative; + top: 1px; + } + } + .headthree{ + margin-left: 30px; + mat-form-field{ + width: 150px; + } + } + } + .tablediv{ + width: 95%; + table{ + margin: 20px 20px; + width: 100%; + + //border: 1px solid #2196F3; + thead{ + height:48px; + color: #FFFFFF; + background-color: #2196F3; + font-size: 16px; + + } + tr:nth-child(odd){ + background: #FAFAFA; + } + } + } + } + .boxright{ + height: 100%; + width: 55%; + background-color: #FFFFFF; + margin-left: 10px; + } +} +th,td{ + height:48px; + font-size: 16px; + text-align: center; +} +.green{color: #00C756;} +.red{color: #FF4D4D;} +.blue{color: #2196F3;} \ No newline at end of file diff --git a/src/app/plan-audit/plan-record/plan-record.component.spec.ts b/src/app/plan-audit/plan-record/plan-record.component.spec.ts new file mode 100644 index 0000000..e9b5edb --- /dev/null +++ b/src/app/plan-audit/plan-record/plan-record.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PlanRecordComponent } from './plan-record.component'; + +describe('PlanRecordComponent', () => { + let component: PlanRecordComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PlanRecordComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PlanRecordComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-audit/plan-record/plan-record.component.ts b/src/app/plan-audit/plan-record/plan-record.component.ts new file mode 100644 index 0000000..9ed4c77 --- /dev/null +++ b/src/app/plan-audit/plan-record/plan-record.component.ts @@ -0,0 +1,33 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-12-25 10:19:31 + * @LastEditors: sueRimn + * @LastEditTime: 2020-12-25 14:53:46 + */ +import { Component, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; + +@Component({ + selector: 'app-plan-record', + templateUrl: './plan-record.component.html', + styleUrls: ['./plan-record.component.scss'] +}) +export class PlanRecordComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + selected = new FormControl(0); //选项卡 实例 + level//类型 + js//组织机构 + addtime//时间 + tableDate=[ + {level:"Ⅰ级预案",option:"更新",orgication:"浦东支队",unitstate:"已通过",addname:"赵信",addtime:"2020-12-15 10:36:24"}, + {level:"消火栓",option:"新增",orgication:"闵行支队",unitstate:"已拒绝",addname:"张三",addtime:"2020-12-15 10:36:24"}, + {level:"天然取水点",option:"删除",orgication:"上海总队",unitstate:"已拒绝",addname:"王五",addtime:"2020-12-15 10:36:24"} + ] + +} diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.html b/src/app/plan-audit/wait-examineer/wait-examineer.component.html new file mode 100644 index 0000000..0b474e6 --- /dev/null +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.html @@ -0,0 +1,225 @@ +
+
+
+
+ 操作类型: + 全部 + 更新 + 新增 + 删除 + 共计:80条 +
+
+ 类型: + + + Ⅰ级 + Ⅱ级 + + + 编制级别: + + + Ⅰ级 + Ⅱ级 + + + +
+
+ + + + + + + + + + + + + + + + + + + +
类型操作所属组织审核状态提交人提交时间
{{item.level}}{{item.option}}{{item.orgication}}{{item.unitstate}}{{item.addname}}{{item.addtime}}
+
+
+ +
+
+
+
+ + +
+
+ + +
+ +
+ + + + + + + + + + 平面图 + + + + + 四周毗邻 + + + + + 消防设施 + + + + + 重点部位 + + + + + 功能分区 + + + + + 实景图 + + + + + cad + + + + + +
+ + + + + 基本信息 + + +
+ + + + + 修改-沃尔玛(上海)职业发展有限公司 + + + + + + + + + + + + + + + +
单位地址 : 上海市上海市黄浦区武胜路333号变更为 + 上海市上海市黄浦区金陵西路28号
联系电话 :15069853369变更为 + 13869877764
始建于(年):1991变更为 + 2003
+
+
+
+ + +
+
+ + + + + 四周毗邻 + + +
+ + + + + 一号建筑 + + +
+
+ 一号建筑: +
+
+ + 变更为 +
+
+
+
+
+ +
+
+ + + + + 消防设施 + + +
+ + + + + 室内消火栓 + + + + + + + +
总数:5变更为 + 8
+
+
+
+ +
+
+
+ +
+
+ diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.scss b/src/app/plan-audit/wait-examineer/wait-examineer.component.scss new file mode 100644 index 0000000..22fb4a5 --- /dev/null +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.scss @@ -0,0 +1,163 @@ +.box{ + height: 100%; + width: 100%; + display: flex; + .boxleft{ + height: 100%; + width: 45%; + background-color: #FFFFFF; + display: flex; + flex-direction: column; + .lefthead{ + display: flex; + flex-direction: column; + .headdiv{ + margin: 0 0 0 30px; + height: 40px; + span{ + font-size: 16px; + margin-left: 3px; + } + input{ + margin-left: 15px; + position: relative; + top: 1px; + } + } + .headthree{ + margin-left: 30px; + mat-form-field{ + width: 150px; + } + button{ + width: 80px; + height: 36px; + font-size: 16px; + } + img{ + height: 14px; + width: 14px; + } + } + } + .tablediv{ + width: 95%; + table{ + margin: 20px 20px; + width: 100%; + + //border: 1px solid #2196F3; + thead{ + height:48px; + color: #FFFFFF; + background-color: #2196F3; + font-size: 16px; + + } + tr:nth-child(odd){ + background: #FAFAFA; + } + } + } + } + .boxright{ + height: 100%; + width: 55%; + background-color: #FFFFFF; + margin-left: 10px; + .righthead{ + width: 100%; + display: flex; + button{ + margin-left: 10px; + font-size: 16px; + } + .rightheadone{ + width: 50%; + margin-top: 20px; + } + .rightheadtwo{ + width: 40%; + margin-top: 20px; + margin-left: 6%; + } + } + } +} +th,td{ + height:48px; + font-size: 16px; + text-align: center; +} +.green{color: #00C756;} +.red{color: #FF4D4D;} +.blue{color: #2196F3;} +.accordingin{ + margin: 5px; + .panelhead{ + background-color:#E8F4FE; + color: #2196F3; + font-size: 16px; + span{ + margin-left: 10px; + } + } + table{ + margin: 5px 0; + width: 100%; + th{ + background-color: #FAFAFA; + width: 30%; + font-size: 16px; + text-align: right; + } + td{ + text-align: left; + font-size: 16px; + margin-left: 3px; + } + } + .onebuilding{ + display: flex; + margin: 5px 0; + width: 100%; + .accordingleft{ + background-color: #FAFAFA; + width: 30%; + height: 120px; + font-size: 16px; + text-align: right; + } + .accordingright{ + margin: 7px; + height: 100px; + font-size: 16px; + img{ + margin-left: 10px; + //height: 80px; + } + span{ + margin-left: 10px; + position: relative; + bottom: 90px; + } + } + } +} +.echarts{ + width: 480px; + height: 304px; + display: flex; + background-color: #000000; + opacity: 0.6; + position: absolute; + top: 13%; + left: 55%; + z-index: 100; + .bar{ + height: 100%; + width: 40%; + opacity: 1; + //margin: 40px 30px; + } +} \ No newline at end of file diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.spec.ts b/src/app/plan-audit/wait-examineer/wait-examineer.component.spec.ts new file mode 100644 index 0000000..4c96dc9 --- /dev/null +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WaitExamineerComponent } from './wait-examineer.component'; + +describe('WaitExamineerComponent', () => { + let component: WaitExamineerComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ WaitExamineerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(WaitExamineerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-audit/wait-examineer/wait-examineer.component.ts b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts new file mode 100644 index 0000000..0c91ba1 --- /dev/null +++ b/src/app/plan-audit/wait-examineer/wait-examineer.component.ts @@ -0,0 +1,104 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-12-25 16:13:50 + * @LastEditors: sueRimn + * @LastEditTime: 2020-12-26 15:17:14 + */ +import { Component, OnInit } from '@angular/core'; +import { FormControl } from '@angular/forms'; +declare var echarts: any; + +@Component({ + selector: 'app-wait-examineer', + templateUrl: './wait-examineer.component.html', + styleUrls: ['./wait-examineer.component.scss'] +}) +export class WaitExamineerComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + window.setTimeout(()=>{ + this.bar() + },0) + } + + selected = new FormControl(0); //选项卡 实例 + level//类型 + js//组织机构 + addtime//时间 + tableDate=[ + {level:"Ⅰ级预案",option:"更新",orgication:"浦东支队",unitstate:"已通过",addname:"赵信",addtime:"2020-12-15 10:36:24"}, + {level:"消火栓",option:"新增",orgication:"闵行支队",unitstate:"已拒绝",addname:"张三",addtime:"2020-12-15 10:36:24"}, + {level:"天然取水点",option:"删除",orgication:"上海总队",unitstate:"已拒绝",addname:"王五",addtime:"2020-12-15 10:36:24"} + ] + isallDate=true//是否显示完成数据,默认显示 + companyBuiltInGrouping=["基本信息","四周毗邻","消防设施"] + indexbar //饼状图实例 + //变更数据和全部数据切换按钮 + buttonChange(){ + this.isallDate=!this.isallDate + } + + //分数饼状图 + bar(){ + var ec = echarts as any; + this.indexbar=ec.init(document.getElementById('indexbar'),'light'); + var option = { + tooltip: { + trigger: 'item', + formatter: '{a}
{b}: {c} ({d}%)' + }, + title: { + text: '总分', + left: 'center', + bottom:70, + textStyle:{ + color:'#FFFFFF', + fontSize:16 + } + }, + series: [ + { + name: '分数', + type: 'pie', + radius: ['50%', '70%'], + bottom:60, + avoidLabelOverlap: false, + label: { + show: true, + position: 'center', + fontSize:16, + color:'#FFFFFF' + }, + + labelLine: { + show: false + }, + data: [ + {value: 93, name: '93分', itemStyle:{color:'#2196F3'}}, + {value:7, itemStyle:{color:'#FFFFFF'}} + ] + } + ] + }; + this.indexbar.setOption(option); + } + //分数柱状图 + zhu(){ + var ec = echarts as any; + this.indexbar=ec.init(document.getElementById('zhu'),'light'); + var option={ + xAxis: { + type: 'value' + }, + yAxis: { + type: 'category', + data: ['基本信息', '四周毗邻', '消防设施', '重点单位', '功能分区', '实景图', '上传CAD', '六熟悉记录', '实战演练记录'] + }, + } + } + +} diff --git a/src/app/plan-management/entry-plan/entry-plan.component.html b/src/app/plan-management/entry-plan/entry-plan.component.html index da2741e..f6e2d15 100644 --- a/src/app/plan-management/entry-plan/entry-plan.component.html +++ b/src/app/plan-management/entry-plan/entry-plan.component.html @@ -84,24 +84,7 @@ 包含下级 -
- - - - {{item.name}} - - - -
-
- - - - {{item.name}} - - - -
+
@@ -128,7 +111,7 @@ {{element.company.name}} - 信息完整度得分 + 信息完整度
@@ -243,6 +226,10 @@
+ + 预案级别 + Ⅲ(0)Ⅳ(0)Ⅴ(0) + 消防救援站 {{element.company.organizationName}} diff --git a/src/app/plan-management/entry-plan/entry-plan.component.ts b/src/app/plan-management/entry-plan/entry-plan.component.ts index f426354..4bf5c7a 100644 --- a/src/app/plan-management/entry-plan/entry-plan.component.ts +++ b/src/app/plan-management/entry-plan/entry-plan.component.ts @@ -43,50 +43,9 @@ export class EntryPlanComponent implements OnInit { pageSizeOptions: number[] = [10] //设置每页条数 PageNumber:any; //第几页 - //支队提示框 - tableDataZhi = [ - {name:"浦东支队",number:"156",zhanbi:"3%"}, - {name:"黄浦支队",number:"144",zhanbi:"2.8%"}, - {name:"徐汇支队",number:"133",zhanbi:"2.1%"}, - {name:"长宁支队",number:"122",zhanbi:"1.6%"}, - {name:"静安支队",number:"120",zhanbi:"1.3%"}, - {name:"普陀支队",number:"100",zhanbi:"1.1%"}, - {name:"虹口支队",number:"95",zhanbi:"1%"}, - {name:"杨浦支队",number:"90",zhanbi:"0.9%"}, - {name:"闵行支队",number:"88",zhanbi:"0.8%"}, - {name:"宝山支队",number:"83",zhanbi:"0.7%"}, - {name:"徐汇支队",number:"133",zhanbi:"2.1%"}, - {name:"长宁支队",number:"122",zhanbi:"1.6%"}, - {name:"嘉定支队",number:"78",zhanbi:"0.6%"}, - {name:"松江支队",number:"75",zhanbi:"0.5%"}, - {name:"金山支队",number:"65",zhanbi:"0.4%"}, - {name:"崇明支队",number:"55",zhanbi:"0.3%"}/* , - {name:"总计",number:"1356",zhanbi:"19%"} */ - ] - //建筑类型提示框 - buildingType = [ - {name:"高层",number:"156",zhanbi:"3%"}, - {name:"地下",number:"144",zhanbi:"2.8%"}, - {name:"轨道交通",number:"133",zhanbi:"2.1%"}, - {name:"化工生产",number:"122",zhanbi:"1.6%"}, - {name:"储罐类",number:"120",zhanbi:"1.3%"}, - {name:"厂房",number:"100",zhanbi:"1.1%"}, - {name:"古建筑",number:"95",zhanbi:"1%"}, - {name:"商市场",number:"90",zhanbi:"0.9%"}, - {name:"医院",number:"88",zhanbi:"0.8%"}, - {name:"学校",number:"83",zhanbi:"0.7%"}, - {name:"宾馆",number:"133",zhanbi:"2.1%"}, - {name:"娱乐场所",number:"122",zhanbi:"1.6%"}, - {name:"餐饮业",number:"78",zhanbi:"0.6%"}, - {name:"影剧院",number:"75",zhanbi:"0.5%"}, - {name:"展览建筑",number:"65",zhanbi:"0.4%"}, - {name:"隧道",number:"55",zhanbi:"0.3%"}/* , - {name:"总计",number:"1356",zhanbi:"19%"} */ - ] - - displayedColumns: string[] = ['unitname','integrity','jurisdictionsquadron', 'unittype','plantype', 'passstate','projectlevel','operation']; + displayedColumns: string[] = ['unitname','integrity','level','jurisdictionsquadron', 'unittype','plantype', 'passstate','projectlevel','operation']; allorganizations:any //所有组织机构 allunittype:any //所有单位类型 tabledataSource:any //表格数据 @@ -347,7 +306,8 @@ export class EntryPlanComponent implements OnInit { this.length = data.totalCount this.allPlanInfo = data - this.tabledataSource = data.items + this.tabledataSource = data.items + console.log(this.tabledataSource) }) } diff --git a/src/app/plan-management/onetwo-entry-plan/newunit.html b/src/app/plan-management/onetwo-entry-plan/newunit.html new file mode 100644 index 0000000..75063b7 --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/newunit.html @@ -0,0 +1,42 @@ + +
+
+ 新增预案 +
+
+ + + + +
+
+ + + + +
+
+ + + + Ⅰ级 + Ⅱ级 + + +
+
+ + +
+
+ + +
+
\ No newline at end of file diff --git a/src/app/plan-management/onetwo-entry-plan/newunit.scss b/src/app/plan-management/onetwo-entry-plan/newunit.scss new file mode 100644 index 0000000..7e78e9c --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/newunit.scss @@ -0,0 +1,35 @@ +.box{ + height: 100%; + width: 100%; + display: flex; + flex-direction: column; +} +.queryField { + margin: 3px 5px; + input { + width: 50px; + height: 18px; + line-height: 18px; + border-radius: 3px;} + button{ + width: 140px; + font-size: 16px; + } + } + .top{ + width: 100%; + margin-bottom: 20px; + span{ + color: #2196F3; + margin-left: 100px; + font-size: 18px; + } + } + .bottom{ + margin: 30px 30px; + button{ + width: 80px; + height: 36px; + font-size: 16px; + } + } \ No newline at end of file diff --git a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html new file mode 100644 index 0000000..53e782b --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.html @@ -0,0 +1,136 @@ + +
+
+
+
+ +
+ + + + +
+ + +
+ + + + Ⅰ级 + Ⅱ级 + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + 未提交审核 + 审核中 + 审核通过 + 审核退回 + + +
+
+ + + + + {{item.name}} + + + 包含下级 +
+ +
+
+ + +
+
+
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
预案名称预案级别添加人添加时间预案类型审核状态是否公开编制级别操作
+ + + + +
+
+
diff --git a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss new file mode 100644 index 0000000..c5dac6a --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.scss @@ -0,0 +1,116 @@ +.header { + width: 100%; + padding: 12px 10px; + // margin-bottom: 10px; + box-sizing: border-box; + // border-bottom: 1px solid black; + .queryBox { + box-sizing: border-box; + padding: 5px 25px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items:center; + // justify-content:center; + .queryField { + margin: 3px 40px; + input { + width: 180px; + height: 22px; + line-height: 22px; + border-radius: 3px;} + } + + } //queryBox + .ordiv{ + position: relative; + + .organizationbox{ + width:450px; + height: 200px; + background: white; + position: absolute; + top: 48px; + left: 77px; + z-index: 999; + border: 1px solid grey; + overflow-y: auto; + background-color: #fafafa; + li{ + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + background-color: #fafafa; + } + mat-tree-node{ + cursor: pointer; + white-space:pre; + background-color: #fafafa; + } + mat-tree-node:hover{ + background: rgba(225, 225, 225, 0.8); + li{ + background: rgba(225, 225, 225, 0.8); + } + } + .closediv{ + z-index: 100; + position: absolute; + right: 0; + top: 0; + width: 30px; + height: 30px; + cursor: pointer; + line-height: 30px; + text-align: center; + } + .closediv:hover{ + background:rgba(225, 225, 225, 0.8); + } + } + + } + } + .newadd{ + margin-top: 10px; + margin-left: 70px; + button{ + font-size: 16px; + width: 100px; + height: 36px; + } + } + .body{ + .buttonbox{ + padding-left: 50px; + button{ + margin:0 10px + } + } + .tablebox{ + table{ + width: 100%; + margin-left: 0%; + margin-top:15px; + th{ + text-align: center; + } + } + mat-paginator{ + width: 100%; + margin-left: 0%; + } + .mat-column-unitname{ + width: 15%; + } + .mat-column-integrity{ + width: 13%; + } + .mat-column-operation{ + width: 5%; + } + .mat-column-jurisdictionsquadron{ + width: 10%; + } + } + } \ No newline at end of file diff --git a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.spec.ts b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.spec.ts new file mode 100644 index 0000000..e440b63 --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OnetwoEntryPlanComponent } from './onetwo-entry-plan.component'; + +describe('OnetwoEntryPlanComponent', () => { + let component: OnetwoEntryPlanComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ OnetwoEntryPlanComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(OnetwoEntryPlanComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts new file mode 100644 index 0000000..27cb5fe --- /dev/null +++ b/src/app/plan-management/onetwo-entry-plan/onetwo-entry-plan.component.ts @@ -0,0 +1,152 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-12-24 14:15:10 + * @LastEditors: sueRimn + * @LastEditTime: 2020-12-25 10:29:54 + */ +import { Component, OnInit, ViewChild, Inject } from '@angular/core'; +import { HttpClient } from '@angular/common/http' +import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree'; +import { MatPaginator } from '@angular/material/paginator'; +import { FlatTreeControl } from '@angular/cdk/tree'; +import { FormControl } from '@angular/forms'; +import { Router,ActivatedRoute } from '@angular/router' +import { PageEvent } from '@angular/material/paginator'; +import { MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatSnackBar, MatSnackBarConfig } from '@angular/material/snack-bar'; +import { TreeService } from '../../http-interceptors/tree.service' +import { ConstantPool } from '@angular/compiler'; +import { MatTableDataSource } from '@angular/material/table'; +export interface PeriodicElement { + unitname: string; + level: string; + addname: string; + addtime: string; + unittype: string; + unitstate: string; + isopen: string; + projectlevel: string; +} +const ELEMENT_DATA=[ + {name:"梧州市中恒制药有限公司",jibie:"Ⅰ级"}, + {name:"梧州市中恒制药有限公司",jibie:"Ⅰ级"} +] + +@Component({ + selector: 'app-onetwo-entry-plan', + templateUrl: './onetwo-entry-plan.component.html', + styleUrls: ['./onetwo-entry-plan.component.scss'] +}) +export class OnetwoEntryPlanComponent implements OnInit { + + constructor(private http:HttpClient,private router:Router,private route:ActivatedRoute,private tree: TreeService,public dialog: MatDialog,public snackBar: MatSnackBar) { } + + ngOnInit(): void { + let level = sessionStorage.getItem("level"); + if(level == "0"){//如果是总队 + this.preparelevels = [ + {name:"总队",value:"1"}, + {name:"支队",value:"2"}, + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "1"){//如果是支队 + this.preparelevels = [ + {name:"支队",value:"2"}, + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "2"){//如果是大队 + this.preparelevels = [ + {name:"大队",value:"4"}, + {name:"中队",value:"8"} + ] + } + if(level == "3"){//如果是中队 + this.preparelevels = [ + {name:"中队",value:"8"} + ] + } + } + + preparelevels:any + plcheck:boolean //编制级别勾选框 + displayedColumns: string[] = ['unitname','level','addname','addtime', 'plantype', 'passstate','isopen','projectlevel','operation']; + tabledataSource + unitname//预案名称 + level//预案级别 + addname//添加人 + addtime//添加时间 + unittype//预案类型 + unitstate//审核状态 + projectlevel//编制级别 + //分页 + @ViewChild(MatPaginator, {static: true}) + pageEvent: PageEvent; + paginator: MatPaginator; + length:any; //共多少条数据 + pageSize:any; //每页条数 + pageSizeOptions: number[] = [10] //设置每页条数 + PageNumber:any; //第几页 + + //获得所有预案信息 + getAllPlanInfo(){ + let paramsdata:any = { + HasChildrenPlanLevel: this.plcheck || '', + PageNumber: this.PageNumber || '1', + PageSize: this.pageSizeOptions[0], + } + this.http.get("/api/Plans",{params:paramsdata}).subscribe((data:any)=>{ + + this.length = data.totalCount + //this.allPlanInfo = data + + this.tabledataSource = new MatTableDataSource(data.items) + console.log(this.tabledataSource) + }) + } + + //重置 + reset(){ + this.unitname='' + this.level='' + this.addname='' + this.addtime='' + this.unittype='' + this.unitstate='' + this.projectlevel='' + } + + //新增预案弹窗 + addunit(){ + const dialogRef = this.dialog.open(newunitComponent, { + width: '340px', + height:'430px' + //data: paperDataInfo + }); + } + +} + +@Component({ + selector: 'new-unit', + templateUrl: './newunit.html', + styleUrls: ['./newunit.scss'] +}) +export class newunitComponent{ + constructor(private router:Router,private http: HttpClient,public dialog: MatDialog,public snackBar: MatSnackBar,public dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) {} + unitname//预案名称 + level//预案级别 + addname//添加人 + addtime//添加时间 + unittype//预案类型 + unitstate//审核状态 + projectlevel//编制级别 + close(){ + this.dialogRef.close(); + } +} diff --git a/src/app/plan-management/plan-management-routing.module.ts b/src/app/plan-management/plan-management-routing.module.ts index 7fa18ab..8e8a0cf 100644 --- a/src/app/plan-management/plan-management-routing.module.ts +++ b/src/app/plan-management/plan-management-routing.module.ts @@ -1,3 +1,11 @@ +/* + * @Descripttion: + * @version: + * @Author: sueRimn + * @Date: 2020-12-24 10:59:48 + * @LastEditors: sueRimn + * @LastEditTime: 2020-12-24 14:20:18 + */ import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import {EntryPlanComponent} from './entry-plan/entry-plan.component' @@ -5,13 +13,15 @@ import { OpenPlanComponent } from './open-plan/open-plan.component'; import { PassPlanComponent } from './pass-plan/pass-plan.component'; import { EntryPlanLookComponent } from './entry-plan-look/entry-plan-look.component'; import { WebLookComponent } from './web-look/web-look.component'; +import {OnetwoEntryPlanComponent} from './onetwo-entry-plan/onetwo-entry-plan.component' const routes: Routes = [ { path: 'entryPlan', component: EntryPlanComponent}, { path: 'openPlan', component: OpenPlanComponent}, { path: 'passPlan', component: PassPlanComponent}, { path: 'entryPlandetail', component: EntryPlanLookComponent}, - { path: 'webLook', component: WebLookComponent} + { path: 'webLook', component: WebLookComponent}, + { path: 'OnetwoEntryPlan', component: OnetwoEntryPlanComponent} ]; @NgModule({ diff --git a/src/app/plan-management/plan-management.module.ts b/src/app/plan-management/plan-management.module.ts index 21a83f5..50bc886 100644 --- a/src/app/plan-management/plan-management.module.ts +++ b/src/app/plan-management/plan-management.module.ts @@ -50,11 +50,13 @@ import { OpenPlanComponent } from './open-plan/open-plan.component'; import { EntryPlanLookComponent, AddPlanone, DownloadFile, AuditResult, ChangeName } from './entry-plan-look/entry-plan-look.component'; import { PlanType, AuditSatus, PlanLevel } from '../pipes/boolean.pipe'; import { WebLookComponent } from './web-look/web-look.component'; +import { OnetwoEntryPlanComponent } from './onetwo-entry-plan/onetwo-entry-plan.component'; +import { newunitComponent} from './onetwo-entry-plan/onetwo-entry-plan.component' @NgModule({ - declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent,AddPlanone,PlanType,AuditSatus,PlanLevel,DownloadFile,AuditResult,ChangeName, WebLookComponent], + declarations: [EntryPlanComponent, PassPlanComponent, OpenPlanComponent, EntryPlanLookComponent,AddPlanone,PlanType,AuditSatus,PlanLevel,DownloadFile,AuditResult,ChangeName, WebLookComponent, OnetwoEntryPlanComponent,newunitComponent], imports: [ CommonModule, PlanManagementRoutingModule, diff --git a/src/assets/images/bendi.png b/src/assets/images/bendi.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0b4b0cb127da9354fd4a8965d257fab2c90631 GIT binary patch literal 265 zcmV+k0rvihP)6^}6h+TXkjP3L2GL(2DGq_-Bd}C7spto^!H~2P%O8*+cO`=Q{RD7`in>cyY|;+% zmV_|!-8uKpym=$r1@J_E?SY}B-&B@u10O(@h#g=7tR%fe;7C%LineFK7cd8Y{^+|V zF$>lkZEt~bVtTp?W=>J}qqq-fdkQ=zDH}=OP0jXYqU}#$l7MfL)~#UhmjB98Vjt)Q z29=~^1m;@b_$(zoM_?Ct2oewV=w-p1?|2LNo*DAUX8^p`lhgLCBDg#QYU7`=P>uzp P00000NkvXXu0mjfa{_IY literal 0 HcmV?d00001 diff --git a/src/assets/images/change.png b/src/assets/images/change.png new file mode 100644 index 0000000000000000000000000000000000000000..872574f7c83a534f9c434b82a681f0de52e8408c GIT binary patch literal 327 zcmV-N0l5B&P);YTATOA180QxyA)qay0*P8>AY6ac8334z_{C%)aZAoVvg-K zUl+{&vXQBm5?%lR002ovPDHLkV1l&DhWY>i literal 0 HcmV?d00001 diff --git a/src/assets/images/chatchange.png b/src/assets/images/chatchange.png new file mode 100644 index 0000000000000000000000000000000000000000..41a31bd8e005f72120c29ba4c187a8ecdb9e7b8b GIT binary patch literal 37520 zcmV($K;yrOP)003kN1^@s60k%7j001BWNklaf%{{{bG7={7E2JA6r z27(6~aVU}+HpQ(McGuF?wPj`Ho*8?*{XOH{?|YG1O=*5`kkuKP85!~3_wIM^x#ymH zpYi7Ve^Pmt2gkGE<};Lri>OR7JlsMWConA+d2R!S0oycD6a`Gv#6R_@s!D!k7zO}7 zuk?TQUl>6BnzAhAhkQT2s;FOL@3$gCfl^kEUq0dsynNB95l8 z9UoCL#j_4j^*cxn8zBIvH28KXxCT5Feq33~dX`otpPg3*DwD4>5c6kTbG^LIEJE}4 zBjkaL^`&+6jV1=eeGCT&D60adVIiw>RE~w=jq?a63G7({b20&DF)YJWCu7?%Z3|VL zBCATYn{6yFokQ4c~9M!$g%A==A!yarqsTSq9^s_kO>M@(fMafn%o_Pa-&u z0n2i+yLSW=1u6vKg|oB))P^9J_&J07y3w36KxI46J!%8w3Gi*WNMcN;0simw`)jL4 zY4A5{v6Z27DfOcA;_74M8k4k(3J8zJ!0{oviH)0=Uc=KzpJOoGLspb1Z3~8DBkgrz z%_oSK+Hj&A>2ep%X$0%xGuZkwxRGt!Mw;hxOrhUEUKChaJtrF~3>%nEMi@>9FkB05 zzl-tY2*x+x`*w9akC9~&iY!Bw6|$RsCqz=Xa*$%;^f2|s)mOAOAR6Rpqdd9b>f&=Z zR{w|r)&`b~rveOm8M%7Z*FH-bro5YJit(xcYJ=rPT^OYPM83Y@U!3}2o(5=u^nkV) zRAmBI&_v~ih?+KvP7C8^3%>1PX6J~k0&w^u6L3v{-r1w;F#%g|f+`0}Wq4JhJs`ci zHbBpEkVY{oz6TANAIjr0RRl0n8f=Ev!)tjY4c*t{*qI7%dGHa3)h2rj1u89*ofh z&$b_+vQ5l80j$zO?inat2i`12-0)GhJ-C?-E1tvIKZZp^bX>W1uH$0FNYL7g>^^ta1dli^+5h+p&?+)_AEeUAa;jaFFNRjRq{ofl(G{cpapLi6XB9V;xpc z!X6EQoA zA18+{7l_`H7eNfrq5(1_+He{jWTA_=;o@kig}Bv$Z97QK0+o0?z;tYsZXw>ea_Es5 zb`7;*Ga8**zbfK$9*7RX^wvd%ik^|5XLFPBpEf|Af*4>0D@|dIXXt}{bNvhsS3`Bq+;EkF%qZon{K!zNW)>B4ORZO7R${QG+UIbm zGjtEf=!}8k(LVAjlW-beScPF*FsBjXGs|#z{(FaL9?UV^=%6vr;U10QqzTN5?`)!| z3RGo*+_TVjTNq7_;5iN~)5oNW;J22L&StQ(L_&8#Z+Y(gm1%!LH;dG%;pnf zIJu+-__+)%^-=OQR;h3xe@Ek?=VPcSZH50V!-v^vAPsy>J3bEkO_ZIkysn~$a!Zs9 z!NhxZ4ug2r)}fbIF-~Db48OVZj!CLKuXsQejz9yX3*vjwbBghuoTtG}o)&P53Y|wg z=-t~!Rax+}0=@1!jt1N4bXSn38PYOFltf69IlAp0c5j}C>4wV7E!MPxSsKVpu7@%> zxFsV%;ULu zUO%f)8Wk>VTtXHlI2awsXO^ac&e95IyF0Kv2f6JcPiHW_7OEnHk)*H;Uh_;DATJ1A zBEh*~SqOtRd_O>0#+Z&L;$96j1bhAeF+lNw;w_c;Bu)_&q~bf&($HGfMG^nC0D0;g zLvWMAq5Qqro;X$I`D!G{i?DdeE?3@2UP=SBY6EoSvn(foxzxtoF>%xnF zNl)q)3hN2}qnE1@Nd=?KQPSgS0~GIAd%)8MD2Gr1K9e1BMe4X~=#Uk#W+~3yIfVaU z8`)?dmoC17mJ{N^=3TTpJq(BYh@%LVWx(86!8@1UL}0l1QMrw=4~zpF1wAkm5JDIY zGZ}m2IX8d7?1$@BN^szsww~;ww>v;NkJY*}Uut@AEmw>!OBpH+ESU}Xwu6JCO;nXB z8=BW5Eeklr(x~8g4R~RQGD*bYByohi+k)W+XpE;wP@+f@%(@}Ub_Z6H!?<$w#fss# z&LrtfJwHIJ*@YE2IM~~RQI)W*CN#Ev&IZ5k0c97}c9V^#*Zz=GP#)gD$wUbXOo9cz!ww{#qswu8#?#272bLD}zO?wJ@Y zw~(A$fzj@ul0_x{D-`A<;5YeR46!9lhTObBHBV8^bC~p&%r9oiA_UX3DQHls1j}RM z;>giS_^vlgUcec}=>6(Gnhy^U!h{uevEE<9){{F(czwh{m@pg@y^Tva*Smy+**>By z!lNL;`05$trYjx^45NIAOH_tN=Ru>estRtN!OTlodjm8d?@9J5&c4?}wDSzB%V)9Y z<_P0Vfv5ce+U;fW>XX?J1v7iDd0EQe%14zY9EVV@KxqM$?V~bt_?091#ArG|<(e3; zbzuY@AWZ-|w(Bpv!gwL{N?ED}q#st(h4bV^qXcVZ52q-g1*h~skvjj$>e7fWob7g>X9O7{l z&BW-!Y`S6?u9G=SVG$#%&^nyr{HHs(>7K>$?iQZx+?9;du1wgDgE)!M>n+1^?Q&^$&_77{ii=Fn?>*gUcE9L8iU*m~g@suCHq{*@lQ!3buW zVYPn_$MYc^-^DEOks2lJ@fcv(zjEbe3Bj%#U_Kv620*;xIu0DaDZnzCO<=)=Y5LDu z(LYAVoPI&=9sdzBaxy!$1--7!z)j*z( z*MgW&V1^qA)}b+&et=}9i(}V7d~OvuzYMe*vJQq-!mx6b^nx@rL9BwoGFo-I_wfVBb2?ljOnh|&AkAE9T3DAELz;{#+xg_1doZOi*N znr*!C+6Q>}_zvRv1cq(G_Zyfea}-92?W@ZeUOb1A@6YgGrm}w|F)O)wlqdGb6D;4^ zLX|~G8v){e7pCuE?dcS5RUoW93?>Iic-##S&M<-*#fa%90v}bBAn%4Kx*eEt0t616 z<2j0X3@;*YtT^4WApYgY8wh$`%+eS(BSBW8$}?Dj2aCx4>eUykc5?}x&Kd@zEsRMR zYM!dm>cDhDMDsCL~o2 zi3!#tkfz5LP^i6*4!7d<_?|qM%0Nygg_$copyx}7$Xo|T7+|=*gt=XyytE2jSObDk zW^BLUOSWD~sVB#PYeVr4>mE;&?8=p4oR4M@V`B63@is<`pE%ODJgo zvK~1M;UpFDEzBvsaZ$icBUqCJNy7siLV^nI)I~KshIM#^XuSt_e~9MxG0e$KLU`8p zfVf2I+sM}XNSYz6X{;P<-ihAP$9z$}r$NHl{pg-$OMS!A(mzhJ)4h z3ou@|cB@)hy(lrE!wH47rkrJV258WUBHNNI96LwyCRK7+Q ziQt{MjtlOEQu&Bn7e%{?qqQDjrN9+>z%{^cqM}vP_?SX6UF5r@b0Cc*bkG3h>oith zxe;h&b?E1UFnsB1gyIi15nZo|7;J%He~fT%g!W(mQmC3Jv|+THSU=7Y#|bRr#x#NB zx){%g@GKW=YZtLS+(DdYn4jyTY=wxHI*8ZWC`owJ2y$)=KIi)AbCC7o@hU7Wq<&Vy zqOs;BoU}mcnrPgA3M0!9z=d&mjCnJFKcye6kT127H9eGmh}NC^NSY1g{T{5@49)$q zyjPYJ7pu*db{m*&EFpK==&2o=j}8NW|}X(G=h#IY1rV*yrJ^d`{Rl9c?o zDeApScA=!_C`)wy!)LrG z+}XQ_?GIl@?zzbLdA^I1G!RitNjOlKnY1g=NeQouf)%ACBwR-l*F4qc(;bA*4v~5; z3g3Z4gW{sw7Sc`=X{(9SbztWemOl9cX}6~`=jj~&cna@egfdH2Vrw~=UOR)pX#k@s z{KEkvr$pfe$QhBo{oWr{L1!7WWP&6eVsyBRX1j^O!4M`x1_5f=h2eOJCM+$f?aMC( zA*}X7lIjD}nH9P}zAJUoa=8in z(?{?&_hFA5)knK zdJP4VoJ!K_V`QdW8gQZ*;Ve=vZR zB*;1;n$M2V*xXXbVp?z-O*sz+?BT^#q+WpL(GX>xzGX@w2aVGwGc#IDSQ2fxGwJjMdS(GaQcA{@@px%)tnOI{YREeBOA z!0zR9NPQoj!4&@XHpXXGVVu8ksWMFm&1M^oW&?)N#%R2aB$~oys4_z2EH#M*I6!4d zvL{ss8d9xB(c9W86#GuxQByFAZc(mF5yiEbK!+(2+o%jxJfwc@DX{tcA}&lz9hPKU zYWvIo$;8vsuvDuYvjY5ZUF2SfBy6A*O29+9)&;s0TO`2cRTvv9@S087fr**HFhZ{% z0ka60%mHS;tnrE$%z#r#hZtb(aTg*Dl@&@3AR$_qo*gAZQNi@d0Z+{mUOc0kP8jUVC^J6>-A{5I#obR2%E+Xu$`-0`g0C`-*sf;#K z2-XC@W())>DJ-*CH*TizV2CowkgjyaBing_%;q_`2#=4k{_qg%nTycvh^XU7XDh@M zvXG84bChY0?*16%Y>LLw1P;q>gg&rvcEgmk~M2s<4LJ+GGHpmC-upbq`;J{S3F;%i7N0g4LzhA%c$Bmj4VQR zaYbmDcDIYvGm#)eRYpKISINdyCm=MulmZ03(L~9kym_5S2~jH&sZ+&NmtTA23E z%y(Y=$s=T&yO@uUk@Z_>4>I%-VmCR$cW!T3^SoZ%4mXWO42o!P)riKVCKuk*2Yf5 zldMmd2F1Y$AE%&@JcP_v89S*K$&krD89=ak1n=`rl>HX$GDq{r_h6Y8F1+*_ZuVco zc)X2Y{OSjo%qHk{R}rqA!J5B}7q7pD!~&+-7{BU8n2*PJaMlqBLReC-&mx-CYow1! zJaLVqxoWlN)LxXv*vlJO-#J2gIDq?b8!O!vkyw4z%rUrj7Ve{Ml&v<<>mrF~0CD6r zLgAQb?G0e>?gF+8$Fz|U2X~h+*jR!~IQRay{-8QMe2S*;V>BL14VXKq#szVn!ZS^* zt*l^58II-Qm{}Ur_!{ffC-Iy1sNP3e!EZe3@?SwhSbL9!!scrduSKcwIXXutD8w&{ z7Cd>>VO&0%7u&(ybC5O~Fq#w}*qF9L;9M85OBh*<>g*D5oE4NT)5kA`d7|vh}*Yz=9?_(UeXnlG|L>jCao38#=_pSvAlErGhn+m_`9he=fFm9kM3eES`RFJm!MOLk3S5x0X z+-v~t1`5{`&6{ztgQ`q~^QzAGfoo^cTU`|#IV!lDr!b}yRHHdCk3_YiKz^wRa1y^Y zwZh}!g`)vhs-mPhs6|qxJf`xN8P!xXo!eFMvD=ke(;e}v=1 z9ZXqC2pz2V&f(gXn@DC8+j;Z=Lo*q!S$+-Z->{g614EeonPR^SKo)7r1-(l{|3EIA05AgPw)OcQW{rM z;JBEAY=Jp7=s%rceZ5pBuc?jTIp<^u=946b26l@7lgn|+ z0HqaRLH#HLJ1ymx*J`1{!nny9)?_qaPdPd@ZoY?vWwvI3*z-}YbWmJq!kEucvCMX1 z8F=9=)|OXbSq65KiDbUy<%s``I28k|sGXELFEP!ox=&V9>I`OoMI-t{t8lt=D}EWmc8W- zTwc3@hlh_~{MNU=S8c4faqr0{(&-eoZ6b*i7 ziF&eFnQZiVFM!!>rh{EH&jGQRiSKddgC?c?6o zE_U{Ik<6wF8`uGCt1TCpA(8*sY*MRbR2)=WYXK`54y6vLb$HsFeH{bR;}w#cE8HY? zQ=KI*BvrabOuJzCHyF~SIzo<8(Lc;EDI6_w)sG?Jdy$Fq_qM{RrisKcg?5RX0jfp= zY10GNIxsexCs-8T_b9=YkGHY^)t6`<%!GVCZrccsW;owkh3kgc zKYW5TFA&(Fh!KA4!{5jKRSz$>&tN{E;os&DuyO=Eyw%3clTQ*jz|UfhT8^oXUYfq5 zmr~S?#(=ph%~e^2_T~Y;v7Mqi9O3EiCUQasX4n)c69Q?GYhL6OkV%Mj8-a*ri9ZXe zW6&sDh|jH|`{_M7*R}RKnL{)iJs5xShksJ_yB&P~cuPt?`$uD#WekU1Vd%jy93|?M z8ZEmw6qXPH=&9y49av6C*#!?)^Ib}EB@_#dOE(_L_k!nCXk8>DIt=q9B?MPg(DH<| z)=iVx6fBTVPz^{*^h%gek`p$R^qrhw>YB;}wi?KrKJvCN28d;rhz3BzhjDoY#?=kH z*SaBAjNacW}=aO_C(cU^%}Ufd;_j&;^9|cV4lvUBzFDk3%Iy;3APpB%%y91 z{NPJGijVNgdwo>CgJDCL0rW@(Hc!E0!-uf)OZ`V};`wqfrdBeWgZ zmamjafAzHq^yZT1v$&DM@+V3#Y`hDiKlMnd_z^qSiCA`%4_FN>nm> zT*t=Hw-C3RC|W+MrVlU#cYH}Q& zm$0#X9-n{m6AZ@#xa|fep@r70VB#)S1}pTW9VL7DBKCg!MOnK^Q;A-ck*OqS(Wk<7 z5>se6X~Ox^AoRENF$oiyP1;i2ghSv z_~EChMl;N^1X(Wx`aK|?!yj-xG9>FAxTT3WL~DPmPo4oJ_g zqL;c@rYa`vA)6n=c=7tJibg>@UfVc>wWTH=?+kHpIE7^gN@Tg{-KbdwOwwJgDY%DCthUGWm8MP06vZV5N5#R#%@HKF^w+_26{v`k*XE>*AAo>qe_ zxgf+-xouZC2Of$WrZ`Ac{;Y^ic$jI3~sc0_SFc1z$xcP&7u$nE{lLU7UAD}tOkk98@ z{zjo}8(v(ZIj2l6SG_cb3D>kREmGvy&*9)N-b2bhUTOPOa7Gzm?E!`GQ`{y0@wupG zh!bhB+GDboo)>8C9HRHPKbOw6n1LJD42-$gZz zVJDefYs<7@vNGcO$O=X0b-Ep}vtc$Fzz29Ttd@ykXutYRg9;D0*6Obf#~e? z)K^v4)D;WaN3}apE?p`gMInNKI$STh>4Xm9Zs5*m_+*1P*HZuO!fV#e+lo1*I6`os z4$Fc+Wud8hW<)hDC3c8P_#V6(U*7j9n8m-$T))0lKJ|bZ}QUs1LMZEH!`&UEpjV zF1zH|$2*+^;|M1EJ`#ptg#j0yML?-$cWYy;X#oa_y3If)Cn(Rv#&r=-Nd4PFdutaL ze()J)QG#-J0K4HMPb2iY%W5*id<-ke&~!qKXHyC3Rp1I+(VFBa8x4%tn>hT#H;{Fk ziWILC3)vHv(gLypN1AZ7;nCgENM(4#N!^&Cq;Wh%??;~r@t(9jn2rZ~cOM0nIGvWr z`OSGIB{l&*wh7y%U^Nri{Q4UoRBqTs zuhB-FkC7x(9FIzr!~(K#C%l!qvbqILKb7^C|1dihftIdLo%GPD(HqM1Rm_Y`)yS-( zGc#J%n65}Mby6b6Vpdy}lJYM+Ecx(-x3iFP!L`JQP)j_o#*qx~^b~9%j9e2@;A7tK zR0hljAtoaH7urC-sSJ>6V20^9(FQn&LB%sGAd#*R)FrMHw|^1>YSzu57EV`41OqCm zJPlbHpycpq-Ft}cCy$ZjGnnHPcIaUe`0(#PLqVv(2KtR2%qRP>=c&AB)^EVs8^ZBi z^w7l7)gJbL_a#Im*=14H=2X5x$){A^T4O?H#G>Mr=` zOr{7VvQ`t$Y=&|+7w<`L#src=U$&z1D)-twByo(m$i#b!Lo!V`tpJuEV%BZJDNMLe zo*++VFkXM{?aHx3G}~QFriU;+7lUDjip6DvGAtz)t&;;)aDBejTpES62dFqlM5-D3 z1Zz*I@t-Muqul;%WckNNa3}+0NVeF0#*kG{R*=HDGEeE-H7wNyrXPZKMD?LHhT0I> z*&jO=X1*gb^psL`&jJ{Rdm*Z(39}cXq!?kn0|cHF<=O9HjAp9ugN8FxMg9|Bt^VMX zh;U+wRCz0rYE8y7qnEZ#sWh3e%nI&c2xor)|FZ{hM-kGiE111=9l;md!2KmW~ZxUM7ZoL4TtjM>p4 z9v?h{X}efm-Vm|t-qDV(_5o1-tUu{KDkObl|!TRE3SQ^mNJVYd~5X zgkU*66sI-=nv~!VhSj>-C^9T&gd}5WC2FRH2uej7uE5H|XNtanikuHR>Z3W)CJ=NlMses3OsrLs&Y=Owm=2ZUyT`}q z{Og~{=gr@`B%%oC@iCmA-+@IhlNQK20ea&CZQDn@(ncA@$f=&b|3q-_@O$s#_~xbO zwtkpumK}1Q6@ZP3UT-%o5 zb*Z4#c3^o}Zg)khHyrK>ELPWpO-d?Xs5=uKKa^6hapB_SO1wtN_w3aMq8 ziv)-ZMJzO$yAMU~&jS&CI`*7}V!v5&CQbeC!gOOHf>>Q#v8jGij&-PI@1LUhqXzd=s zd$NzcfAJwE8_O!|UUcc}C&E+JREv6E=Zy=wnj%>j=OD>pmctoGX#e_4l)eXlb6a{j zq(YU)qN}uBAJ*=Xs)_5Of!KB6q6|W~S%!QxIw>AV!9me&RS?3seC1YUkT=U`u-pa; z!-HeE$g&X{?JkNu6z`>uSZ{ePELD_=7M|8xJ|+28c#xT%CZ72oLO5&hBu1m98SFXb z#gS28x{;i;0Kqe5;;e--+}2F~f(Wn6akbc0JER4d$Z>LxiNv)q^K2BphtzkFxfTpg zDPRa*ZlDTHfJw-?4$y0f0h(l6<}omdMS3q)5E*tAe>$Q-~I&iZ@r2AZ(KX+L*Y@?&fpa3%q(2i_!MfD>$>P2QHJQ270%8p6c090 z9vp~#tjJZ_jcu*{X@Su9FrUp3ra6vhLnMxce0>!TBgoMRt{OLU9vp&P-aY)1f0ujf&S z;35iKq-;bd^}-~i>BHzT1RF4xnyA(rK&J_Wo)~@=QG}XE>!tJof4wumRuc>Fp|O-M zMK09QoIhilXgHpP+hHD~B;a4P5-=0ZWu5Hd2-b80|MnK_gCi7K2|F*5tt`PD&ESsa z@O&SJWup}|5njEBz5N3?AAf@4>{&eio!61m(6xJ0?W(E_w;-Yy&rdm&)5a)?Ux7cH zhWP6H{~kwWf`Uy*Y(wa^a3xs5TQC0>I)#g3Hpl<{@BSyLc5t*y(rY3@W&5p2agO;tQ<6^9)5 za|#!QbZeJ>G8I7q?OGhF5(M2NL3e#>I26M;6)oCzs*9sr33&|lFeBCdraY{O74%Rd zMgM4cc1lMmo&T<@l8?Yfgr6b&VqFYT$hU$35dq5 z+7$}7D4v5uiwwN=)iZ3}zJp?^1AmqvD>Iy1y@LPz!@t0%zxV;}9X!Lb-^QKI&qN^N z879)IK&FMcFP?b`m)EXg>*+mwxpP-frm*4pid?6IAa!G0x$;V72dgkmPsxh}HmF%9 zbypb|>-5k_VmpPnRX!+9N(&W?_G0vwLW$J!dZh-Dkzu+gq8<@O0J@kpDAuJtig*)M z%hh#sp)N#JtQ(D#)6|m)bm&u?MUB&d=L-HChc;r)E^%$3;lc(2)-Sqj0ddQIwIJEUPO8ExSkHafNm&oc3>s-!fns(7dxqRlSQ;-r;-6*fCCWJy&f%VVsz?jZpkbWYe92a=wwfAtNa|z%7 z(f@_G(UL57l1wm*XTnwH#O!bAVG#7^YQ&eEyAFkQL0&>J zJ(ARDwa3&n0dawpj~2ZNCxS{QAE#i~Vsx8IyiTwTKS%V1(#oml@3}Top9zR5-B=MZ zif>7Xl}wjkX>ctQ=!TjTbbx@P+cYAApBdMBoKQIrwBj(5?NrO>huw8ZUcwMk|6e;9AiEoV)*V& zWEU^MJ3K-`m||F1{n;0A&RxX)H?BxGn`GsuHZrl_B2(8xi)!5>54A33l6SSGE}SCZ zWYfbVSi@r=0ankhBHr9aR3tJt(r|qkfscZ(F$`Q>zl!y>3%GRtMMR@9yj~YqS1;nz zU;Y>$-TxsB!^dGUhe-*SNd9aX@4fRo)gZNy&j)a<6s`6-3=3<~fW&P{u8js*_g!$E zHMOcl1Cmgj%mAznu$ETwdl`qTGi7P56a!LUO;HcmX00g!os~%fB;ZwF-P3~3(_Z%! zR3Jqop3^mv_~ieX3Hyj`6B+RzL+ru;U7%%4XB?Uw)oY6Z!gdt*L$5;)Q1o@m0M#ZV zfvZ5Z;MW=hYFdhbkK)aqX`yc$Shsw5wuy&Tj_tfaEEA>*sV$2)m`#9KofV+G5aP{IF*nV^ypFI4z%(cnc7yRy9 z?^a3CLS!_gFT&us3QlCI6)82gVo25o!wcYOj!EXYoWg{Q0Hvpt){WtksMH2X9%>OK zq#s|VFV#im|71OR;SW!q$hFiln#WcfJDZ)@`#~=ldp72rGDQO<4@hYdDVc^1vlF7E z5z;W39dm>RoANnljJ4mCB)LO4(< zG%T4L-FkL_<}Ai&e+S8p>)5<}R&@r7z*Kue!YEcRi1DaW;mBO_&UDt~C(8<+9-dAS zs|*z7j70G!l$w>WIk=oc)6q~>uTbIgxf}SS5B@o-w8Fv8SNQDV$1;v>I@7bQ3men% zKCEUFufFg;MuR=a}8^dx7U7}R|pvfCsv(?f`ajW}h1N*uVLWE8 zeJc5&SW`T=U_b|PU?KAz%x!Xk777{~jf@qMh6A%5pd=T_pVRQf0I62Cgt!$W;YcSbMey=fX97dTw1fP*wL; z_>v+5`CCrPqOn!E7@U-rSnezgnb2C#j}{RylOln*m2j|jG(dK+BYodIu3~bGKl|Ok z!g}ulj>l7(Y2ELyWBc)K{LN4Q4aV%J;lwk?$MqX;p;=b=^xn_0e*Ok}b`zi8{|LrQ zH{YsIMp*7FAvXieVh>VM7T!)>13nRZ|Bc%rD6d!}F&TlzL`LH?na6wr;TDZXITu>0 z8p^#=G{RAcCnYYucmnQEM*B+GmiJeGr;-`ehhKcpIgIO}gIQNxAN-LJ@ zFe^z)4bJr3W?|6l`-zBGIti5v?5FFLwIRtmDY=5a;9Bl=%INENAv37t_5I4&z36|A{a;K1q#FS4#W zG4rIdg!B*R&u}6GJ#toHdFK%3bc6|K+%%eKO=F}o=rTk1(NnzIUB|(d7x44>f!H(+ zn#a?~3wT+!=&@n{2!*MlB&Uay3LPs?ij6{^ei(S5?Q4@z+1S z10!5PyRn2xZsA4MY)((PF^PbhL#pezr#QH;L$s4JnL0tmjMjw}?O_&G z7ER^~zEtx1(-aGT`y3OZN1`!AkWEmmrGgAn2DEJ99yv6K;W)9$3tFOCo4GEgp@oED zx9Ot{Ss!-P7+oeIt__n5C-YqNaB>mis@k*Eu|*fC#h*+>q*6j)1qr`_Sz*<*uw+^2 z`wg_c26mDup5zgd%EE3&PB0ftCs}2o=g6?+$Lb5!FS-wz>Xo&qg8$2(VgJ$@B&{VZ zMFl=AeLR^Cu$@m~PiI)#dV&`}{O9;rvpu9F_;u5Hm=*Aa*jJMd_(@8^tvo!n&K%39 z>hdDvhQ)>{8k$ids7!cA&yWlbP;jnxnWA)TSZRS*ufK^0kA5w~)7`Lv`DCOz6wGZM8<8IRRd>MRuEMIzIU^Ot*4Lh@qvxGbbje3 z=6ZOf@SG}4OAaEFu+*#SDw|YF79}?clq#gEtEg@DB*e)^*0i=PoM1sU=~NM=YG|cO zoloRmG*XeeQDMSXBsRqGUNVySDEdblp-2_ksytV?D&w6sJVXsPtkWa1PD}%(0TK(k zFgQt-8LcRr>;4r*s0%)l1}s%0=kDk*+?cFi8|YXDmMsfC%R%1@&xydic?AFQSD0PA0K<0SCmA+A z{S@E(z5fFL>u3`*b_+^&UcoI2crwI^6&(wvKqp$DB{ZAOyCTseR#d8}L`4!FxojnT z&gndShB%AFE9UV8R(BP~=m?eV$So##M98bb9IaG{0Qlk~P+ z^kFE&QFp_TK}GdAi08;^Egh*9F&u<0451z{B(6*)BWjqrdi~ewm_=yTbP(Tz*pJ3W zC@6NJ1q(D@8e?HmA+52V8z2cR>9v@Iu7qlXg>;$dsY`Y&Db|hTa=R{0a!_?{s;vm- z$K*;m4V0mn=W82in+DcR3vI{6vKU~9t!RYJI7X+mv743HOk)&OS~CllQ`h$t(Zeq( zNbsXM&OF%1&JsuD&XKn|$Sp^3G&|I|*4)?>dS1GH8@KvraD4GH?hN$_!ih9SdP_FsQsY-fV-cxJWh$D%EE43yW8MG4 zTaR%QDdiAhkmCnP=}D7VavmdS!t}@=gfPDS&ifUL2(yxlepZSHZ>||wYFhXYUmYSc zS7cYHps56g3_+?D<)i{4M6>i+D+v%WhTw{S!T=X!JvDzMjO-!D34%=*4e#vMQj-Y`*G4Auq8&^^8xgzFd>8Z3hC=}Z z{{X@;h6mpcQJ=->sXk zS8xK9xq+(}))A*ZUS0-f*$BVb^-xrvs<}#|kGf9=4U9C5Acoqj)d`1A3TQMmGBt($ z#BmNm6QT(aJ~= za)wHHOU{t)j6^l>Wk#=f)hIAnS;5^RM#4djz7Ny0VRD2mU*}meYGNw-T4GFIFh@K^ z(=;T5>|4Nj+egQBu^P1SAf8}<9-#>bPvaa9<`GKXvVgcx%2aAJ#`V<3wI@e7ID7_Y zlwkLG7qheLQt}!t_0Zhj#^L#k((9shexz9{^hZPVZhww%fADAc{&XLsOx?*y!fi=U zr#xO&s#|=?$X%&RmuMaDAPYOH7iiJaNy(fc_?F{C#E^-xQOI4Ky7Ob~?mk6|6t>q8 z<6^UV!O)OQ1W#HfZHO2%lY0O##%!Oju)f83LBB2^)YQt0E{DeeY47C*9qBg)fG%P~0 z_PV;%CtgxUvguu_J)oomqTZT9p# z6NDJs6*3Mt_Z?WC2|KWnv8L?U2&oo!49si`o^2zyE3^#@yrb8uWn$TOvFv*21`Rw+ zXV|5L2@dYhGi*`b&YQuAOpEvLu;32{*!bBOa{I8s>N2d!3}sZx1?43A(b}3EZ|1qG zs7YLxGRp;8Wr^;ue~vdVzk%8E8T{gCTYydNEL`4CuB67?Mxt@M!zl+e;+;pR(mC?8 z*X1HQbTSo32&;Ox-qVsLTiF;^G{k&#sLFVbFQ4HCEt!5_lE#{kk<5m$P2O>#CF|dA z^l^N=1FDvLdpN@rBGYo=RnfFpT{@@{pNh2EAE zY3o)1CL)WBSsSiouBR$CY9t7?dfXIxf&$Nj(^_pCVG_feJj2^>zJedl0?exlBj#ch zDtIm|&qCU8F>6=|nl{=bx_w8oX7-@8Y^5OTTaFmuisNG`^zkT}U~itlGd(;WrucHk zvA^_yg_Pm^$2)>gIWxWW)t5+G9aPftzck_&LB#lrr3aUy$59p*h+^j?^uh84w z#A=@7mG}M>fBoRsqFPoPR4r^`s^^MOHed-ySHPbP5FS27`{FGekbu{rSLFP9+#c7} z=46E7Q_Lnq*|fIThGTokQ)amqRyt>JI6Op}&1JH`?}b?EuHn@e-a%0r*xI~!4IBPb7YIwD+PQ@H-o zqCbRKP)$3~H{+5Qa2;g$yhfJ7G3vR_!l8-vR4QSpYrjP)%#qM4rylaR`tx#dvZ$gS zB)n=|SW52*L#?W|NJ1eafay6|RV87rCNI!*ZPF*6h0A_|nQ39mZs9ntRQ7Dq_*8O2 z9q)!>NI8Z)%dL7oetRel_QMCu%3R2>la_Z z6SEs8IL zzJ$^E2w9e*zqBS1^YG{y#?ctYx8MD4b!K%LdxuZ)!s;s64SaXHB!UE`^*eDlDxp`bK&uZ>yfkjRbXuUGF$4-H^MJ-CFa1gl|;f*7u=M z35S?_WuoO3nCE(qj2?U>hA*uEx^B%oCTU(X(+yJc63NC3c#et7Ch*NyF5#=q``B^% zIGkp<)y(nnAV=&rL|16Lj@-k812zNCMoBN&_F*pja9T>(5PCM2d>3bUn*!Go5BNAu z(RBjMrwKmZA7Vn;KO3L)Xg6sTm&8Je0Hh_f{vAtq`ko$UnWHW93L)OlN@Fx0-$uG} z2^VG)X&zsF>0Nw(_pw9;Ro^1EGmut{7mCSX7EK<|pU1HGA0sqvbo=Wt!VaEID8x{) zTW%X>M);ju?_kWKP4g*!{^%3T$45xY41fHe{WqBHZ(=Kpv1A(fSrWtb ze1t(u?kjwFyrXV;``Q~HRCe<$;?ZNcUPr1Su*vb97++n4uZI*VP2lN=9&V#O8k2fT z+SN1{HO!6W7d5-(l&93MsIyhJ>`7mUypI+X7;MXA7|^5EII(^)s8Tn!>sz%py%-mp z2JQ?T6w(H&prz6>s0j}Y&2q=dT8+aQE_xIkvt@d~n`=E7(>-j2CN5oC#Xmfo=I_8*3ee~_V6|9#`|w}j-|RlXBuSWRX@1ra@hAlbf&=9i4LLmC<#PWCmO~%wtLLykig9GR z;61~5H7PcD_1sxp?)UK7?Vn?3e-p>Np?0GBm9JlZRqkUqNE3L(gran(rgDrt8^bgl z6q3kN+@T5w##`_FPWASsRai!hd*ddKQ{Ea<_4U?|MT0s|RO2lb((3jr)!kK-#FVCoMAJwxoz+!RZhvyKW7C%(*-3oRwki{IM zFG&f-1d?S7-cwZ(Iqp+g4nvUQFxB)`eza$lxEh-H-m91K_~9M=Vrzo;Z(hfDzx^$I z^2@)&|MoW@!9D*Hj+XjJEgzI0dKRe#-UiG<(ecr2H?Y)pP%b&>_gXj?wqQCYwvz~l z8!y*r(G%C%|;P_-#O)^p(2Er^x zbGk1o8^61Z@bO)I^ILz8p9~N2I2y^F)Ma2kZ!RrfkG5OF<~5=+hw}x?F@`&jV7o26 zapMg1Rms?o)K?}7N* zG)XiB(p7&-^1t=%?^SKQpN4qw*BHo%oT?iQlDTbqIm`aVMkTP|BORQQQt>Gd) ziwtpFWX+nH(H=($3Dh^GD3?h&(KE7vNsZ@~iiNJ{5(Eo(r)BwHPe5csDGIdBIa>A* ztDP1erYksRJEfe6n(9>#30i2VH3m$zutC`?lao^Ji@T8?;g8;b57GD$zIb$u-+Je_ zv3KwYuise5|M)-u@3`^uD;PFg_<8OL#+19TGudKR*l-axJTzM_{CT$K zMT}8VAaQK$55~ANDlnkojpwTOL_%&M4dYxF3B|P+Omn3fWYvUo0(mPfmb0i=EP*vM zMQitg3{dZ`oPjx;pfUrjy!bBu!`^+Rc+sS^+&fs$vsNt;1rSfMG~baCATD{l%7n9Y z29e8woi_T8f${d|i0BP1AM^1(I<2-Syi30c*J;6NE=f2q4!^=EPtd*a3TDS!QtyuD z6O_EsBBKR~eVWM|Z-1w{6hwIY<%{^c2Nou!Cu(4}LDt@mq_Of?iZL(KiDXo!$H}Q$ z3Z*TBWgDs7)!*xYsxnn2msgmglKb_l+OX;mu4l;9qu*qTSlzj=-?P4zgL->4ikH(C zx^@INAK>llXYsS608a-5_eU`Oj@%Jb1@w~xtA#CclV@p~S6MUH{jIenuVQD*lK6_P@ma+uz6k`L~~7XEem-jrS2zEn_(%gO`V6q3PNPLl;)VM!OT@ z@>&P0olulE+w6;|fa&oe#&;j!-sP9EOYbKhFq3{{QZ4KSmOHV~Xy^?!QEkyv=@Gg< zxj)LaRqBGnma_oQgFQI;le;a|Ay?PsMIxncYD0{N z={Ab#zKmBpyRwS?!b8NSHDm~j45Q&QG?uQRnD4+fl=ya>#ISm25C(meY*?S|BHnw9 znd73pav2W$f9K>oN7#D8A(d*g`av7UYp=Xk-Q4J6JLw`bn~0(jg3ejxooeAgRf3IU zSC$Pto|M4k8DO`ty0M1M!wd;=iKMdn*7T;ThZcDR%i@GBM-32?Vcg6}YgxOZQ0fV+ zYOszjr)l!E2Ahjou#}lqrmG6yY~`qMy;I?(OUsx=V|@Q%iNnbl#qm>^-7_-Cn|MPO zSoh?Rj$j2K89YO7M)TCw;F5r zID6{ztd&hFl?=T`37apfc)t3eLtykBkMcG+-=0Fqd<_HDGiF1%v$=Y}!A!RT0+Ss5gEyX^N`su)_n z|A3S4-Qen%Ug87OX4$@~4VWCj0YKH1CZtEd)mCW`snuMckAPl!A&6OQcqrZhD14&`YUQV0LVl z(bNJr=v%!azHRTg;U@@x(}4Cl#^e3YKV^?-M}!SymjZ1 zH1T-j^9=WPDcfS0#)xh_{0^y~8VXoEG7=}-a^N(gUb$LKq1{t`t3}OhnVn(G_`JY>Nq`aLbvbG zf9(plfAw2@Qn!H^L7LV^M1M(vWTJRL^(HZ8O=sDu3a-!5ZYzO2P%dJxWNC%RH5w-S zbt2VGsvR3HK`!@txQ!5(pZyNs{ooCyTWC2lIB|#G%+~p{6t1Wr(9S;@kp8>)yb;2Y zVVd3%OmPnAG<4r>m)hIoq-OJDwuF}1!0vF-F6^M1sEsxr!%M*HlaGQUJgT3uxOY$4 zd=61byZ*2Km;V3!<8`(-AK?)l6`Kp6e~7*_gv(*WaP;}b<8CUFhSsv|6sly)ChkCz zdTEF8c#L2D_SgC7;V#+y0n5v`2#LG*#3-e9kG-aoN?X$KV65|*`tZ=v+Nzm#{pJNhRUCt^Ha$^;_1^%F`7hW{nOcmSmtkwYjEQN)p?@#x`hcX0{Ssnb!6UZhwcTHhocoYi_T z-pSFZm8l)u)8AaHSB6vv72Q)E*aK$@Fz#v%IqmZr*1YW?=0gTo}``MWh$9sKc7_; zx<4?CSv=4P-mK*{#oPYjH(%-J?QssOCDNrDou)~2Xadt2<>Zi?U%3$BojVV?x?$3+ zmZ*1|w8Z7x?WS))p=9ze{@%~?lZ_I8`SuN@o{R=P42S%rt4*$^UG(Ji3=ZHSAV3b2 zSk1eXfhUcGrJ4Mnsg?}1Vk`oNHL$jJ$`+SFUXrh#O5ttqP_8t1>bZ;j^Y8wYt&RKI z5uY4QFgcp!%JM#@JxIn#5v9Sw?lLLSiuMGEhrMhWaWd^5F9v&jbmKk#(ck)A%6kt8 zyPcdozr-JX?+uPh&3E@bK7Z+HetdhGt6RHN&s^qF-ym5pQBfNRgGw@i-!ClcE=jM0 z#Z-WCpO12>!6S(vVIQ+^e8}|L8t$`a`8{V8Tcb;`DS|*f>Wvm1naQMWIdgBKRYsO2*3Z0}R7=XEBS48#d1CP+=p^XAQK zbUc1Vs958ZL({@Ow(=e>pSZ;bNw)V{+udezbb?qg%6`2?Gmugvb6c}Q-z|#yU_V&L z5Scb#LTy{+C8-^3=p4|ANvm$EOt0y75Kc_dY_;ju3p5L9ZJcc9o_?Wk2twB`o^S~Y zjV?837>_T?Qmo66yTXl?Eso62@y^42o*wg3?(~=tqq<6+bhX8^a}zwMxOI#XaaD2j znoPultdvb2m7}z~mP@3PloUE;MKd{o(v%2<=TJx35+3?=sjPLQ>?#LfKx?=>;I+2Q z3KP*dm!<`LYA`$MqtSQp`>%e;WW>W>vA~ImC<%L;Ynv5vT_;WN7@lUHfW1q%Z4!w` zNhIUkDm%#9-T1cd@yq9rF_s7r4!D^b8>Z1}@E1RNpTF~4zs|=|q@PKTL8aK_t|%Tv-HbkX!q^)h;XQhS zyCX+=$(!J$H>5HinQDXmdX3#`ne}{u^<186u}rIB>abYe!0AYYu**wM>bm_qjE+yT zR<-j#{M-d{>fnk(%y9Q06X zIq8?ys5Kh647XAVD!m?~3(v9Ntmv@5Bbqmz2BbHcjt0opMa0}sLsq7xeVUC5K8H(< z(1UK_DR)Svj<8>?U^Z%6!8ePW*uMRxulB>?As$PC*k~wn!E_}^g(5sX=3{;ozW@G1 ze(mM6{FA@B!OPPTf*~&}>uJ7zVUa(%w??gEr`T~2bBpC}kaRxJR5HSyy)34GfrFL+ zdj=6q#~!-mQ(&a%97~-kDdAI~!J!}A08c1`ZSBwo5G`eG$)PM|h$Uhq+F8DK@dPfP z$yT<(ogtFRN#4GG zl@s$zy!yuX`TTRg$hF6JNUNHulfHDLP6L~;)P#Uk-lcu8#rXIvHM7lrdWA$VN~Kxj z^B2B|5gg{D{XLp8A9nO{RtiMhHPU;lx+Q6QLyCkp>or_{KedB>6ES?l!7o4mQeUD{vst0#2vO^cJR3?%8nQPq`X+^%$wDf@kMD1CbjZzjE}h}# z=01D14o~(=l$zrA*Cp&TC{;^5b99=1EnEm17BghL3{p)6a+tTUB}5bqXA_`C#za=k8wCntFA+A<%0@G&o(JGL&>2zFNxqq(n#=J@Opa+LxJ!>_BhX0wjp6J%&;n2gO&(-qWb^89d= z5AQ#qmRVL<+vvnRrFx4}VOJHgvgyYJgAs=OaqS^I;+E+VqsTaRhnr9-gYCrPiGC~? zqS3A~KRL-}*`YH26M;Sx(LU`~li6^Le7nON_qP}h7@VFMA{z2>Ki{O>!F@6J(%+CnLC&(b#9r z6{55Kgk;czVS{wFMp>2^W1L$wFYiyoPM{!xY#>v?eg5x zEIzx*&5aB;x4|do5N6MkezWSnpKVU$uzBSG4z?iH#?NBaiK(5;lynHAa4ieXA>)Zq zX_?>n+!8mJw-`?ZxPI?Gi(?T^EY6bd#(3+UD;%Fo^8CW6u9)OQ-+#DD*KqRAdYcI! zY^RI7cy@tCqrz%7%RzXQo4E$F9v}BUe3NRW%FM}A zEU&F`=JaVo-XQ&ImTId_!0YC%c$`1+xrn3!lsq1Sb{A2njQ}>D`HPR(T{_Cy&xzYju{FA7S_tM21oXyb*$a9|6BlU7rL-AOex5;9HbS(Wl$2E4WN%*7r9y zdGp=Brq!?Gboz-0eKgx0#zO{^u?V+se?(tMP?ah#e*TxKWgqj_t!o+uJH>qr!%NTU z)tO$;tYW7_r`{wK^y>>0^aQE4OltKe$y;iT`(KW3! zs@;AY|IiGrMukRchq=i`wstlN4-FFx4k_}=wzPPxpNNLY$u1Iu(O87xsE@VuE{ll> zUs#&q&BuG>OBF6pr`Ri(I6Xh1`@au1dt|E>0^J5ZM~AUkj7F`1&+Wxy>+r}c5!H!J z<~^E92NnV<9w|d>2VSA{N%#91^o<-yr$F0f!(wqhHHFLgz}Bo1udK2(k>upmBtQP> zBQBp?pww>jc&El((nl?`L#xqaG3nLLEHyR7%};LOjYYX~Z=YPgtmLcdxJN~_Po6r; zyJZ)9tDAi5)FMacMwvf)1V>{Bhu2NI*yZi-{|83AUN$oay!eI7td$!$Yi&j+$4Ewe zJa~AYaAFuw(90jU8(h6`L|-CV6&igfo=%Iey?TphE`E-%%nS=Tz2_U-yWGF|ffnXB zHZ!=rL6#O48A`~^F-pJ}(!=lbcvT2e_Os2tPf^$Ua+z)A<6gUYjqPlP-F%j8wW!2z zN#l|lJ^dbwqY2X6I~-ejiAFWg#^xRB%@&=0n@Y8c-4~X*iN53(f7H1I)agLNGcIh;hKE8&O$28Xe`cJMrJo{otb6oO}@T3 zhBp-AM&8c$<|g~45{7(GmxGa5h-aopiARF`NybCL9Ed%NCiFm*Qux2JvXc7GE#S_> zs3@2{9aaxy;WQ#zt2$wq$}qZ>S;Jr4=I5Th!1-2C7=#?TONe!R@BHy_`RGte};DoU1F^!N1aVdg)L5< zxxh>^L}X@)VmeD9GkG zXXi=Ahw=GB8r`HxRF_wWfFKO)9*?pS(_5Q7czjP439{8Pjb@9IS<~%{DKIUElbKME zSah7xv1vZOe+|==x~xGalTlcG!|qkbq;@r@9?D*~TO*)=BHBGWA-`XNv_jLZyFvu| zCjCy0auLv7I`3q95{y zNLLy-TTM<)CAqjT&KtKLldE+Y4*57gJH+Fy0`ZW+N~XYkD#~0k#(Qg3ZmzE5_XrWO zrx)k8?MeJ%r+%dq6hKI4uwP@PsDg9zYw zd=ZUQ@>ZHVcL z*FL_*wXF&dmv^{$@)$j{psTI%BQy9TVg6vF%6LA_cg{{w%w~wVY@9rEn%LX~JGUOv z>6=8tUY1w(aGPz0CP(m(B>3R%Yg(50qY*|Hjzg=-kFptlZ#;rAoFd}1SiJ@93O{|Y!F%_2XbCK8(0IwHN_239dmQlv7)=c^H#$KgHjLr+ zV>knNL82KiczR;!_hFd7arKQc_QQc}w0GbfhV$&|>J5435KMkt(`(JhH;+R)Y7 zQP4C~sU!5dZI&NjqblY#HW&F~ntUOv8Bbme6)Qh+?08?&pHm3h%{IUO>>}4!x5-zU z6zV2PzsrCW&Hw-)07*naRELSEhl<(bmo6{x?!zs1Yd+?tj__!6nfoh`8A-&sd~BZ0 zY@SQgBYgbiF&hUa-Ow1l#G<~@jp8QG*f_mn8Y3~H!%4r-gTv;smf-^WXqI)5X-aJ< zzHW^MmE1aEPn?dZEH#UCihDGLC1&sPYcD@TI1y#Y)*@&3@y8Eq_;RZ(CVk`%iX59B z=Nn&pfpR5JW_goWR}OgmWSi-bm*KFFBgp`@P=sJKz`xsWVk|FnD(dCiU;8|T2X~n~ zI*mUTA-B7S-)oTG&CxaMbPOMJM<$5Qon-Usy9%e;-p=ssOBcDFDY9Mb@Lt44IvOKm zxA8XuWBiIML7-J2-?Fo}y2AH<@IBSQ7M%E-w^yvOlCl8F+G4WpTS7P$3!Tk zgrkpE(#(v+NFNkQ27Np;n;`7-@`DFk1dTA2o}ElCjoahm)a00&4L#USGnoi6pA7SZ z$61P=N!)=j&cZ&1qes3A&T0uqFiIjmfz8pS7Yu1_&}*9%*6v!GAvW+N$CNA4DrNO8 zua}ET26uN&ij^{>K_9>H>`9t-2Oj$T`G$#UcM+)Wa$+pWlht*8;l;B|CnKsVb@jcg z+^h7-ReC%#=3_UL=Nq5D#K)U?b^~5MUdu4vsPp%~^$oneCf)iz<8zC6j1D*6|B&eL z5ZO$LxWgoM?!0nBdd(V-uRo?(FEcZqV(P>Kw(uw)UcbfG-VU{q819iH{NmUQflirX z%Rzp914s5DW~jH$_^+_?9?iVMll6F*|7%cC`# zA=X@yaU7DV`V^{Z4)(S=GUVmf>M9O*gt^7@3?(LUx%_(2MFg(gNaZW#t-`3+`^%k9W z9gjOqt6RhE^58Z+ib{wbTSDfc<@7e4LQW^G@RGTKL;UQwFA@1K^=FdM~4h2~qTiOWq5K|&w@b>Bk<37l`cTO8uxX2jqa+dujJ}J5YK5|x z%LwU8crODm$8b2R>yPtKf0b*WyiTsLuSgh&QzV3~Ijqm)ClH9>_xaVd$Y~h3#K4>$ zrNSO|kCU;nqj;QdJPxn^`C7e1?jQp$7a=2T>0^7`xSa;wW`lC6z)pIHqHu}DofNyS z3T>xPob8W?y~M+!f?&hzbaQ=ehf1q~Qz(lr8(%s;rS0|oy$tiQh)P=IYHjw4c{;70 zM#xAo!2P{~4xL-J9%k1=bb5)dT-g2^K7SBwZW^_;DsTxizEsT>bA)`g%l&+V;MfTF9zNmO@d#gg<`lL{4*zJ1 zKr~GH!3r&B7ndtQKAR;jJ(Jx*A~l4$w})qbo?@lV_QPeS7pCw>LhP?^aX0Vct6zMP zkhe$6Y?Ir|;K@FuT`ThHjdlL${rgIylCUP@6cOlbi%f<{s0qB^?xfZ0>KgJ8Gih<1 zEk3hs9u6h*S|aq*6 zkV?ND{C>kQw4n%xVg!6)9Ym|_aNmaE?lYg7!{rWv%Y&`c$53}rhXyY(dKBPstybmn z<_Z(TlbE#|i^3)fz3E3zt8xA-&UUW7e%XnkltR zy~yy$oU)>%3zoFd5@c+ttnGTcXW|r;g(sjdtwdA5XyG-R#Dfl;&OW7T3$s?%PV`qV zpW)_{b&Oz45xQp6O)}hJr_|-EFDx-V6K8*YlLz-!SS!1@xp%;XqsFs~a~OdT|KVWG=SI`qs=$k0**UTohdYwkArMzKXPkxrhsF`}OcpnV%eO@24 zv+Z+_rn60Lc)MTxy#sKqk^Zl`KNLM`pkB5VL zg>tJ;%J1TLUOdZBA8d1aGQpAL5He4G>+Xi?%gKmtJ)33R7|YsUu^Ij)j;zdW2d!hi`fsN27)# zoaDnF`~;uaBh(w5dj2fAbehrW8C^?#a^)jZkp%gA3wPAdD-le#`%Hun? z$e1nuZ+vuuC+iy+@(^Vf+UroSn>0i?T+z=~t$3(d ztHzj0@31Hj7E!-9fLr}cJnGX;6EHV*RFC7*@#p!;PyZcNQ@{b%pB;P`48u)4lGNtK zHm(VpjNv{YGhj7bo_3&1p(^Wma!O;mn9(#*iuE^<`Q9_A0W;M^^c#3y!udh zPq_O2O-_!-IlDN)k>f|G7K@}(BkXMKFmdt(+m9d6-A}WfEpv8hPK{Z-sc{N=* zPG7u)yOCw>@hTtPS>w{Vc@iTDLdg-rX8>+-D?JKC5i2B2s-j!;v6P0Ubm_^h0ADojF6bR@3YyeuFaF(dJQAEV{%E z;ma60kIYmu#vF;)vXo|#B0-fOSa*|P_Ap?D#fa5xpce4!!b6pTgnIV8g50V zC>YgYXtZ-VU9>xL_)L}DkZHfp!mx2-a*S-bNXX@3ZrDq$1Ep$Bm+{lXaUua5Z{A&J zC=etV7~SK!+YBln{7gFH`r*=CPvx(VrYUGk= zl1!#p-_L06B_+sEG{Q?yKhNsUI?ZN-pwExl>v44MC?9_OF}Z^S&Ye5WdsnY0*0L(5 zItpzQ@l2=IW0J7d#ap&s48ZzU1&o5ct&P{?mA+7fm=E zA|41@9j-Ud(b+S!I~~=L5oTe_6!CG3(=0zrBR4KJC@fa;Dq1cxOG9dE0i@2)9qIq( zrSsg+W_h%m!)Hk0>%ePBBuG)Nme?!T@O%6e$~A&MAN!3iBSAM)5f?q1@LQ|6Tz2ke zs@kE7!C_AhQXqueVJVevr}q@9FXUve U?DVwL4SIvL+6^mxbUVtH5)_WZ<4e%;)NH^b9{b+_4~`betm^YOEUyxVP3y-n_Qtmt?yzw5@IIO zCR;T5$gAQa~Cgh2byM! zxyc2MKt~qNbLYYPZ11mqdgxR-_djW7bSc`0#hD47Ju=H`IzzeRBOXmEEJx& z^guRcVBZn#YikSB?li3#q06PH7?rc?wy>RAJla1#KBVXsIdl=fTglL`oIb)x#L{%T zySdG^l`PSKo31Osb|%M#nNi%%K6m$XoQMT5Z7v>V8>CAWm0<9CJPPnkgontNveau8 zd|tmgYzxX(Mhoq38@pXPUW0PwKourjVjI>K@uMEyR-5^`W0>_S9*4ZaN@=3gbz$22 z{P*8{o`3nHt9<3myn-Mr%`V3#A{29b99vk>vC;0PAav&NCPtYYPjKtjLl)-QdUdo_dK>t%dynh)N)M#JVJ5b%-D7g-z_(`T2se(MIG zd+IWcZjYb*^mU#-e~#sqWezGunxe8b&`ptgQpF|hcFRUh$%l5D%_c)bDb;M5nmj?Z zmgnaE53Cd~i1mT#j-K4l97LH@1`IpL##5}MvvhE2w=C;EX2$fmsZ@gNI~8^g%DU2Pwdw?eF>0+Q0mDnVl2aswq{zB-Ln2`)qT#(R0gq2d z3UYBG*(Ir1>IP9@oft_Xd+NP>S{Zc#iJWv)(N@y+KmOZ4$M1dj4ZgfI&HDB(@zxqqo z*EY2d`p(5gzV%zb&Raizo#arEYd1Ie`Ty!WY`^~#5`w6Cw8PT*GZ>|Pid`G^a-D|R zVQ3`D+wXi#!{uXrV~0o}#IeaZ3k#$CuYd3=`FfSpi3m}ji>BDH_H5e7mD|?*uifnt z2u8`5>eO3}PZ8qJp1r`#+&q8%=4)I$wZz9aKjEn}7YGExy!QHEGchrxJcWlFj}Xb| zu8`ZsTEUPto6HsM`cjJoo6F_W6l)kRrbicuCQ`(L!@TkCpXkomqVLNglqh(pB4*{` zL(i7!WK_2-Wmy5Xd-^@48Pd-n7ckh~D63J$SqBhe7Was{WYi$CZi zWOtLT*NBJ0#C>kQ{`_e^TGKnWf`gy?&SHo?7IG zuixSuzw|}YH?L_2TPasrdiiCx9^U1k)uX&@Dbjm~Vm!LDLZJiedl^NM8;&lQj?eNh zzyB_)`2y#XQDR;hPxL9b+vFQ98f}}Vt&ZyG2u{sSu~Hf6-q<+1c#@N+PV?rKcNvdI zm1Q=P7-n{Qo_F7STX`KvXXbeS+6Ov&E!QLs%ec*@8O5S9STC*25+%aPK@npaA$A=< z`8@aUeaJyMOR<#Ib5N^RR8`?;UId5UEp~>J32faKjfP33(Nu1U)SJTdb~t)OBPn+G zWu#_-j{no{`m8{s?Hx%OCtINzMJOoBkymxb%Z#}=nj+xd&{zd_95rQvikK0VCZ z%||@SR=B>r!DP@wIB2M%)DN%S<)S=Ic z+a)kA>4a^VEz`mUiy2ePWP0)_Zo2?0&SKbFWD9$=TLN0}D#U9iyQlo=W}`{HQK8+c zDm`F0ny^f3LILh?tz%RF6gwUn3kgr#<0q5PSgXU&bl0Di^gFCEZAVU=vo!GSPQ%F&wjnj zC)*7+_A5+|9${+s80C7C)y)U&?5;8tO0szLJWsZs=t`*FZqR9z_2NY?ws5e6$FQ_x zYPAaffQydVClHJiaJ%?>-*|zW>uFZE^LnkWM3D0lFJq$#{_^Tw65)uVX{5Q66i{mP znHvpLtCl%279wxj*xS!?@z?~@v!nD3Ki~hW_b4}nDAnVeUw@H5|Ivqh>q}?(;a`8q zZ~V@$(q6q!-R$t_$p)8Sd6{S|$U9f>QcLf1`K3#$Te$mV6(b(u)z`0bJ`d$q51TK**`&<(0-+(+wpT4cuFZzu>*p7~{0*LL zZ?P{Z^_f|gS0D5Ax#!3n9PsgtD?D@QIX?LKLlr>U&mUL=<(|~k9zvmjM!H6`X*py% z9lC9agojDQl8nS>h{dAZy8j-dLnG8{Wo$MtGZV)&T6TMFs?`!}=@l9cne85^0<7ER zpir&S@5<=KLbAK1%N5%OG2Ic6@n8h>*=G8)|7<&U?iovVWuS5|_%r#T5;_fW8nW3G z>pv28@;`p@EHk4KT!u?Sx%@%d3JBOyVB#%NZxS?x-A=Aj<4>>e@W$f<5}_2HKtOk$ zYkQlj0J=1PN^jQ2-VR=u2anH-)7GY1EHIWBrfeQCHJrldvay%mU^kOvvWy2-7>X` z$$GZI%)~I|T7_JuL@X9m9qk{#cU$k<$=PW>yuZrLtt?}{K5@fFQEET4MX_Ag#zD%F zwm_;7XMnzrWUO(DV4s~b$DhAHOrwAyW6yYeFi zGDv6YaeE2)BYKEhX4BHqw%ci#bH53XcEn#9f!bp6GTHA>;9A;~`j@=WdXZO-zD4hM8^ zyw{CVZ`H8wD(=qV@~Ev<+pOs|s(Yq%!vaj`2x&-E>LrqN2`akU z(7H@!q_RVowWaWD`<*uJR$U=ZlJ?eiwlUi+UC+s(FdQyS*<&|rI(L=tCyj_8l;$Rn z6Y@uyox8y1=51QNDx<+D^>&L+S2|lEAQ`NzF5``a=ysZ<)4Li;7skig%I7#WdxD#f z@2TiiN314nBIwW>Xm@``<>E7rriX{pcKZBtGQ756@HW|mSZE9R5;}$)LivAASD%F6 z&2L{mN-F9h6%XNdxv4d~+}qygr;m0>XY15E9ZJm}4e=fpvle$m4N0UMk~A+uigFOO zK5)8li%6xi^KHt17z)Q28Xl*5kf$KvRky+MnMFRjbCtb=JrxT&6it^0B{Ri?VnJ)g z&o17rUe2zbA@kEqoH=z#rQSO7K)Y>j-Fc5pF{|@Ol?V11j3mYw8=fGQ5GrYpcsxlo zl2Ba`iSSOhYcQ*{2D|D`G~lyH?Ixe8Ry^McgS8z~aG z01a>4)AWJt;{#n3~wMLCvt-$2O5ypq6I4I>vXSen3FBbEb<)=v8_NA_= z>P@yjsN86g6%*+%AN6`!QNy1<{{`%#QP;Oos@Hh<=wo&>8#LQ3{d|(DpMUlh;_;M5 z3y&a+ZC!Q!k<=~G%-TH^g-$i~M4 z6DY7$UTCMCQmL%jMdq({Q&2!6W75%PO%8U;Z0Ws{jX}HHuRIV1O*NaMaQs6_cMZI3rgRgcR0}~tNrx*s!dR0{c84~90ucWq=K%(3qr<%gj zsaI4z-_jc&DAs-^C)@M@s{7;Mq-r#@Qit_{9f||ksW!1?u&T(5Ljg;bsI>{f$%EJHWjDR6)%5iE z0&6?V)T7i6B^4z(X6$2;Wce&n!QkHi= z{GmQHIke-Wv&_vba%6l?g%sUhLyP`;y{U6bd5ALSk_Xw9#z9QDMS@P&Pu(uQU;wwr zL$zGi3BRVt0Srp#Tuukgrm0Agrp(A>3*d0z3;0QAGaA)IXh?^+0;!X12tT)pp&Q-Dz2Hh`z!441L*YOP4HrV2Nc`|6mi? zSiSULK7ev0`)0e+@M8;KY2h^5TCiMgF3%v+Su1)@u2qe4WMzf|N-eGs)_XTxcC=-2I z@kp!hbqCe#FcON9E9EpLoj87usnnw7J8gGTsuZ|+?+W|5ZT-12?z!~zmvvw)HJS`( zgZ_YZlVyG;so7!I8dUCsd@h}%$>Edq>v9r}Myc28I^s}v-(ZvQsacM2S;Td-*QYLB z=s@v7N{Naz0%k|yX8B54ADrLg)hv^Y#VHjEWJ?9jN?wnkhx)oj5|*1>f3sTG2rCF7 z9q)>swi4I{f^UgV%8TuCxiw?ROC!V~S<6`hPXg~ZRjqYwc$V4GIac@9DD@gjnU&8} ztro}^_Ni8j`m@vx;m|o=zKPv3HWUD@KC^C*rdd-Q=;3)Xn|0-g{AUsH(*vmb$OErh zwJR7zE(xbvONjBHCGdTi&n4+uRtFYsQmt0yAt^b<62w(~NfEgm3?sF6J9NAp+?;`e zw7$86_gCv3>w6zM9$6l?!N{;~PHNR6)yjd+_T=|UHysMZ^+0;uexlJN{a%BM=e~%~ z7gWTEpmcxo&i5$S3zl1&&CZe3QO=!vNqMYpDFIwA{Gp)!YMU*^ugOAPNZuN~U9z9C zUJ8jG(hSM)Rc3N>4T9g3UAKG*Ia}spx>}SpIoK?yr<_=sN)&Bbnt!csn}e#%?ojGu zsZrPZPs)LEwX6?TgrDTzOBx&>9o2)HNoU9&Gr&uo z>su?i!zgVyh1%dD9!V(Vs$46wo8KKc3`i5yrcx`CKS)!l7A;Jos)brI%a&WJ)x^qY zll$l~{FohSKFfnC?|ydc|%x;Xn{yG^E#9DioEJBdJ|FZeLi~T;fmC)|)CQ6Rp2QC{p+jZbMULtKQH7 zde>>)52@2yO;c-M;aF4}bv+7a3n^Q!_9Vl<`WTV67%44Jzvm8=+u8 z>q4nhJ$4)Qj^)46s5X^rBVTpN7OfVcK#*3WYBA~%q)f#Um+x5M2Z`>6!_eq2*VdKQ zTCYRRtWuSiK)Y;>**a4dTBV?zrIwVJN-~~y+5^+dfm@4SgCL!xR1%FCfq)ecb`*GG zjcFuM$r-a*2k_I`jdW0hZ>I6*P?`QSI5G8W8@O=mp%eE1;QwoFBszct%LYvWqWhvl zQHx-s#&-YFVCZMQzG`kgsGklAH)81}2TX@( zUNu7zaD$|zLOIPxH{QY&$8KTVd3<^R&m4P(g(GJ*N(KA@438Vb>!DSyX^9|ptsFpU zRD6*TjY>P1DpBnEXFa(8J>Vq-LE;xvb-?&7FN})rP8^PLGYV zUpP<=pQhO$9Ez~EvBS~X8C9?2C%!^9&)@>+>NBuF6Op;#>F^A?Pz z)SmnM`*?i@xoifnU%jQAe^jqq@K{}R5A~*WeU7xV62EkTC zwHB+Y4{Hs&h59ECYe1NBNc-Oxh?a01tYWz>il9zG)>_vm9%qUi=}IJOWA8f%g%Ub2 zJvV=fSSU%$X4jh_wa8v>g9pnuwT7{}PdQLd-0lF+p8qn_qf;6=WmF-kZHc6^eza8l z?ON07NX22JElQ=Wt{yO%2>9Icu&TJkxl+a`l6HMwJ&Y2i^?tOikyGF8#MbI*w=A`$ zq%ti{>^AL&J>tYESiE*yYcF}HWr!>ABF7UfGGlpH$gURC>A$`L`G$WUJF>sxKz z7)fm=(*bE}L~d7JZk3{wlq)Y-v#BE(>GR3%{4!fpB!S2ZlP0X`JE86Yz;`h54 z8Bb8imC5Hy`u&DRB8YX@?R%>__J}3I3TTLggZkpg0nem!c!LH9g#yFLICh(xQn8B5 zu(7q5Cn~0hZ2^mVNW{fE#zN`H9$A`hk9gf>YXp4KC^=P~RuIvZ>H)dJ0lVofhLchK z{D#{}qb^j7K0A9ET~w$7hRQK(I8)tl+w9VLjeu&>qMi{}YLT}=ez2vWZoz4U=@bry z33(#=cE}(`AwDwy8DPj%P+Z0|rupfhRwn5pRxO>1(4;M`7wMR!m=}c1pxKc(&TXjS zvAt*0H_=M(c6zdXky=YsrF2zj9bzlJSzTbe*H(K7>4wvp9SW7g0HY=x2^&HG5K|M2 zOpVMa+DE>eK98!BN*Su;ZkJO9x0MtmKTiOZ(h#^@c)ix|l`V!GQh|}lf7b?XQ12d+ z%f&)LZ0V);YulxXvulczlziBf$)AzhN*Xg6NK02O4UKfmqM<0_-cnCX=Pk{L9)722 zw75v75{gFI-je2^LVPI1P$J61dmAd;9*u`6Rm;l1mR+sv?hmqM46luBKCk=^LAp2U zCjNkjO!k0iBuc4VrPuB zj7CD5VmEiTSeTt6moHJQ)O7qNY)VB=+d2dy3EG0fnmuV9Kq)vab> zGP}e`D2dM>Z(p^Rk<$N42Xi1fK4TJOIIrgQ&?mYrJN2! z6<($I)>)qrj0O%whxT6@?Q}Q{9l<^7VBfA$Lh3zfXf(}hgm>uY5#?BaAfWotX02|O zD_%F1qSXx zpJ-S+9Ga#D5gb9#5E%Kcde%$!nVXZtGytm%_D0Tl_Wtzp~DzyG=8Q!h^s<2r!atr`fb!WY_NU|NlqN>Bk~Yo2E%4 zB!mDVB=s8o(FCGc72LzjhI6e(=+HoF`<>LtytaLI={Cc z9)9$Lr~12Lv4(Fbg4rGI@*=YVF$LkztjI$R|ma^ zWEt7R+dHeu(#q}5x_%Iqidl=D4__1@C@#4>+puc@;YH|6i}gnqKPbgZ9kN zv7O2IUSJykW9w{VxmF;URduQ1W`)(U{l)}ZiIaB;B3pp}<%y=quKiie9V%Lg z1rCpl?A@n}!XB4Ti?p=j3P3xxBu^#2)9szyKq%*u;l)pFYc&-iOKb+ed`c`dA51jy zqRcV8lL(>oYSpp?atZ=l6@?dNC&pLLg118ErqBL7yZWdovs`92r`@JrEQ0V)c4&{1 z*(I$~4r(*8ul4Rm&K^;Li$eZR(Wga&GZqU0C&lVPM**!?AT~Y|TX$xz2O>mk``uUj zQhpN4hSUVY!{yrB37Q@M<7H5aBoL0Rs8at5EO__Rdx;bIk0;0~N=8$hcE!F%u_rQs z=Q86!vpO2%?>~PV5DUePgVd6lm{gSH>)qI8jQZS51wDCNz7tP437B(39f^mngJ#Lx zvV3C+tQx9pl6^Kd%@)!!dERv!#Zp^Hm$xb?ia3)H4~M3Tc8(xV=sip($^ta(5(^?` zD0;y!?YY%+lFtH59ME0~0x5Zg?5itQwy*Xo)Z#SJMI%Jl_0d{h{t1?gSJ5Q*aqKK& zz8}nx{~4phYpTC{y;^fTst~)q&E@%8279<^c--^Fu06fu#(JU(28fU);SMd6>qW#< z6cqgY(BU5U*N)Lc^B?06C9qSQ6c+Zx0g)z`H(FGQhvf zKdm|d?+nxzzJg6mqgL%WX1^(R@hLJujPd^l==<8##~ml^IS?@$CJ;}1SYI}2YWbXC z9PmEh8wX}2Z#gnXNG`Z>E+0Xz;l+r&#TfXXO;Vp7H)+bTvE0r(6;f0HHVNmJ#Hog2 zFi?sE{uV&0c8SO>J7l8^7I-xtM}VW5ZHkQ);&a4vppr*W!xpy876MR@U8lo>#!jlB z?ob$uW~AM~7TQ@d6y%AG6kZnb+&1f#!a7x;aImM)x>IknIFiBeC_?oR0h-S}6gQo! zV1@8uu zAUsyD203Q*XBZ4qLxEJvRkBEVG@%F;D~v25k32TECuP8}$;WRz1p!v7%AM`DU+i=F w$*QgzQ@N|Ea$qvrsCBay^JsE9-b)GWKQ^XPOA2W%YXATM07*qoM6N<$g1C_xPXGV_ literal 0 HcmV?d00001 diff --git a/src/assets/images/newadd.png b/src/assets/images/newadd.png new file mode 100644 index 0000000000000000000000000000000000000000..3d4db053886938b5ca715019694ac89621f1eb9c GIT binary patch literal 377 zcmV-<0fzpGP)5QV>!_!$a?Mi5HH>J%$c=rj_$p;*Nh3co_3*iDv@*n&c*kWlC-bVvw7;Xi04 zBlFBnZk{J1>o)hj%$+lH&YTgYV`k&P8c+v@Bm4$j06UVN^Ax2YGaCZ7ffn!zoB|IK zchCi3)Iop^Ngp0703!Jem;u%$9hN(bcgsKzxCZ7OBms1Q1~4n>wkkR6bQ-t>`jXl* zvkBk^XqGFR*;3J_bew~lnHSpwCLO?e*CmZr2zn3z&5GEI>*N5B#fP-{M}V!Ou$jFB zZAtwQ%G>r4`l-cz7590f6Er&i0x&RzfkjMXY)CpPjq9f|t^oVR7(=*Zq?)9=UyL*b zxTs%7s<3ja+)3s_uiX7+CT_L0861_Z4tsq|-n z?a;Cgya2nBu2K>XB;_+CoYkA!?gnmv&^|9IUbh~$!;Q#21K; zX&C6raN$GJbxe>00+1DVEuif{PSRrlUK``3yGPecNwY0140+=LFfbsgnsQ(TSV-@H z?IIAa#T4ZP&?l*u0xSWGEtY5%7?rgAU%*Ly3#HPZ0k#Jl*5*TY0*ICUApr;pg^*x7 zer32d1{}tZm2?!61MmO@H7m-JHf;9-Q5Va$FR79ge*tndzPic*{KEhM002ovPDHLk FV1kd~s(Szc literal 0 HcmV?d00001 diff --git a/src/assets/images/refresh.png b/src/assets/images/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..2de573536c49ebe38b419a1faea33f0c9caac3f7 GIT binary patch literal 357 zcmV-r0h<1aP)BpMxsMi2#sLg4`w1H)y z0kk>f>;bEJ*aWsE1@J@IUIBK2LZNJr16P@B zO4_Q^ZhI{WiYq}7eXpnN(W=VX<|lCEgWwJr0cxw;o&+|llm)>{u4-1&ai8f|9{mf! zEf9n3JHT>z+p*GU>G|73>>)SgQ-3j1ThhW;R=!RvhlS@#R=xmc zB)$ITF|~k=0C$X3;rB3A^x1vRapeg(1r8*Isv_P2#M+3m>rr9W00000NkvXXu0mjf D$L*6> literal 0 HcmV?d00001 diff --git a/src/assets/images/update.png b/src/assets/images/update.png new file mode 100644 index 0000000000000000000000000000000000000000..860b806d832af35e9cc859939071bf869ab15c47 GIT binary patch literal 479 zcmV<50U-W~P)3_>?m{lOOGxzaw16eiXlp^lK%!TWKyQJuwUNz*%7Vm#(t<)`_CjN2ag9a` z5=bm0(c=CD3KI6v;v$vY>NUIbngulcm_??VWafFkcfOe+E;z=b{rt-*ZfssH|5!RYJX zQzesbZQaNap)~M1&1&< zNz_jCNcb*r0@hB(jiHau9t2TRBlQKq4OfFLxYAkho;hzJhXH*ial7Dlz9#C=?S&)B z89_Dr;SHj)ZpdjDETH{M{h8zNzas?8I~7$ge=3B9Er9hn^tz|z#Inj`)ud&JhwjRX zA#=|KA0!Bxy%vG_g4kVTs>h9?t)dsp@n%o%MJ38GaUOh-z%5Xc33I!9etYz4@2(Nc zt|BQ*+h+wrDvO!8;co^}vY5ZRqWA*3Cj~;90grY=|6L9R(a%}Ze8AB!JT0=|+8^E@ Vs=-)}xN`si002ovPDHLkV1o5(;=lj^ literal 0 HcmV?d00001