From b1613ab15b42cc278c90f7cf7f86e4aa93223215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Andr=C3=A9?= Date: Thu, 28 Nov 2019 16:44:53 +0100 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20formulaires=20de=20cr=C3=A9ation?= =?UTF-8?q?=20de=20"Aircraft",=20"JumpType",=20"Gear"=20et=20"DZ".?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Front/skydivelogs-app/src/app/app.module.ts | 11 +++++++- .../list-of-aircrafts.component.html | 3 +++ .../list-of-aircrafts.component.ts | 9 +++++-- .../list-of-dzs/list-of-dzs.component.html | 3 +++ .../app/list-of-dzs/list-of-dzs.component.ts | 7 ++++- .../list-of-gears.component.html | 3 +++ .../list-of-gears/list-of-gears.component.ts | 9 +++++-- .../list-of-jump-types.component.html | 3 +++ .../list-of-jump-types.component.ts | 7 ++++- .../new-aircraft/new-aircraft.component.css | 0 .../new-aircraft/new-aircraft.component.html | 1 + .../new-aircraft.component.spec.ts | 25 ++++++++++++++++++ .../new-aircraft/new-aircraft.component.ts | 15 +++++++++++ .../new-drop-zone/new-drop-zone.component.css | 0 .../new-drop-zone.component.html | 1 + .../new-drop-zone.component.spec.ts | 25 ++++++++++++++++++ .../new-drop-zone/new-drop-zone.component.ts | 15 +++++++++++ .../src/app/new-gear/new-gear.component.css | 0 .../src/app/new-gear/new-gear.component.html | 1 + .../app/new-gear/new-gear.component.spec.ts | 25 ++++++++++++++++++ .../src/app/new-gear/new-gear.component.ts | 15 +++++++++++ .../new-jump-type/new-jump-type.component.css | 0 .../new-jump-type.component.html | 1 + .../new-jump-type.component.spec.ts | 25 ++++++++++++++++++ .../new-jump-type/new-jump-type.component.ts | 15 +++++++++++ .../src/assets/img/favorite.png | Bin 717 -> 765 bytes 26 files changed, 212 insertions(+), 7 deletions(-) create mode 100644 Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.css create mode 100644 Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.html create mode 100644 Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.spec.ts create mode 100644 Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts create mode 100644 Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.css create mode 100644 Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.html create mode 100644 Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.spec.ts create mode 100644 Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.ts create mode 100644 Front/skydivelogs-app/src/app/new-gear/new-gear.component.css create mode 100644 Front/skydivelogs-app/src/app/new-gear/new-gear.component.html create mode 100644 Front/skydivelogs-app/src/app/new-gear/new-gear.component.spec.ts create mode 100644 Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts create mode 100644 Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.css create mode 100644 Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.html create mode 100644 Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.spec.ts create mode 100644 Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.ts diff --git a/Front/skydivelogs-app/src/app/app.module.ts b/Front/skydivelogs-app/src/app/app.module.ts index cd95496..fc16a5b 100644 --- a/Front/skydivelogs-app/src/app/app.module.ts +++ b/Front/skydivelogs-app/src/app/app.module.ts @@ -12,6 +12,10 @@ import { NewJumpComponent } from './new-jump/new-jump.component'; import { ListOfAircraftsComponent } from './list-of-aircrafts/list-of-aircrafts.component'; import { ListOfJumpTypesComponent } from './list-of-jump-types/list-of-jump-types.component'; import { ListOfGearsComponent } from './list-of-gears/list-of-gears.component'; +import { NewAircraftComponent } from './new-aircraft/new-aircraft.component'; +import { NewGearComponent } from './new-gear/new-gear.component'; +import { NewDropZoneComponent } from './new-drop-zone/new-drop-zone.component'; +import { NewJumpTypeComponent } from './new-jump-type/new-jump-type.component'; import { DateService } from '../services/date.service'; import { ServiceApiPut } from '../services/service-api-put.service'; @@ -34,6 +38,7 @@ import { MatIconModule, MatAutocompleteModule } from '@angular/material'; + import { RequestCache } from '../services/request-cache.service'; import { CachingInterceptor } from '../services/caching-interceptor.service'; @@ -56,7 +61,11 @@ const appRoutes: Routes = [ NewJumpComponent, ListOfAircraftsComponent, ListOfJumpTypesComponent, - ListOfGearsComponent + ListOfGearsComponent, + NewAircraftComponent, + NewGearComponent, + NewDropZoneComponent, + NewJumpTypeComponent ], imports: [ RouterModule.forRoot( diff --git a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.html b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.html index 97c482f..f6606d5 100644 --- a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.html +++ b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.html @@ -1,3 +1,6 @@ + + +
diff --git a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts index 4476969..6c67a3d 100644 --- a/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-aircrafts/list-of-aircrafts.component.ts @@ -13,9 +13,10 @@ import { ServiceComm } from '../../services/service-comm.service'; }) export class ListOfAircraftsComponent implements OnInit { public displayedColumns: Array = ['id', 'name']; - public dataSourceTable; + public dataSourceTable: MatTableDataSource; public resultsLength = 0; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; + public showAddForm: boolean; constructor( private serviceApi: ServiceApiGet, @@ -27,7 +28,7 @@ export class ListOfAircraftsComponent implements OnInit { this.getListOfAircrafts(); } - getListOfAircrafts() { + private getListOfAircrafts() { this.serviceApi.getListOfAircrafts().subscribe(data => { data.sort((a, b) => (b.name < a.name) ? 1 : -1); this.dataSourceTable = new MatTableDataSource(data); @@ -35,4 +36,8 @@ export class ListOfAircraftsComponent implements OnInit { this.resultsLength = data.length; }); } + + public add() { + this.showAddForm = true; + } } diff --git a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.html b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.html index e2dfc6c..9411ca4 100644 --- a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.html +++ b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.html @@ -1,3 +1,6 @@ + + +
diff --git a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts index 5eb9f9e..862f568 100644 --- a/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-dzs/list-of-dzs.component.ts @@ -23,9 +23,10 @@ export class ListOfDzsComponent implements OnInit { 'email', 'type' ]; - public dataSourceTable; + public dataSourceTable: MatTableDataSource; public resultsLength = 0; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; + public showAddForm: boolean; constructor( private serviceApiGet: ServiceApiGet, @@ -54,4 +55,8 @@ export class ListOfDzsComponent implements OnInit { public removeToFavorite(dropzone: DropZoneResp) { dropzone.isFavorite = this.serviceApiPut.RemoveFavoriteDropZone(dropzone); } + + public add() { + this.showAddForm = true; + } } diff --git a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.html b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.html index 9c5c8ba..dbab5ab 100644 --- a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.html +++ b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.html @@ -1,3 +1,6 @@ + + +
diff --git a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts index a7e7705..98dd6a5 100644 --- a/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-gears/list-of-gears.component.ts @@ -20,9 +20,10 @@ export class ListOfGearsComponent implements OnInit { 'email', 'type' ]; - public dataSourceTable; + public dataSourceTable: MatTableDataSource; public resultsLength = 0; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; + public showAddForm: boolean; constructor( private serviceApi: ServiceApiGet, @@ -36,10 +37,14 @@ export class ListOfGearsComponent implements OnInit { getListOfGears() { this.serviceApi.getListOfGears().subscribe(data => { - //data.sort((a, b) => (b.isFavorite ? 1 : 0) - (a.isFavorite ? 1 : 0)); + // data.sort((a, b) => (b.isFavorite ? 1 : 0) - (a.isFavorite ? 1 : 0)); this.dataSourceTable = new MatTableDataSource(data); this.dataSourceTable.paginator = this.paginator; this.resultsLength = data.length; }); } + + public add() { + this.showAddForm = true; + } } diff --git a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.html b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.html index 9b2ddff..ebd72b2 100644 --- a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.html +++ b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.html @@ -1,3 +1,6 @@ + + +
diff --git a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts index 081affb..bdece58 100644 --- a/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts +++ b/Front/skydivelogs-app/src/app/list-of-jump-types/list-of-jump-types.component.ts @@ -13,9 +13,10 @@ import { ServiceComm } from '../../services/service-comm.service'; }) export class ListOfJumpTypesComponent implements OnInit { public displayedColumns: Array = ['id', 'name']; - public dataSourceTable; + public dataSourceTable: MatTableDataSource; public resultsLength = 0; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; + public showAddForm: boolean; constructor( private serviceApi: ServiceApiGet, @@ -35,4 +36,8 @@ export class ListOfJumpTypesComponent implements OnInit { this.resultsLength = data.length; }); } + + public add() { + this.showAddForm = true; + } } diff --git a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.css b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.css new file mode 100644 index 0000000..e69de29 diff --git a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.html b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.html new file mode 100644 index 0000000..589d6b0 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.html @@ -0,0 +1 @@ +

new-aircraft works!

diff --git a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.spec.ts b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.spec.ts new file mode 100644 index 0000000..6fab6c0 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NewAircraftComponent } from './new-aircraft.component'; + +describe('NewAircraftComponent', () => { + let component: NewAircraftComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NewAircraftComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NewAircraftComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts new file mode 100644 index 0000000..4aea12a --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-aircraft/new-aircraft.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-new-aircraft', + templateUrl: './new-aircraft.component.html', + styleUrls: ['./new-aircraft.component.css'] +}) +export class NewAircraftComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.css b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.css new file mode 100644 index 0000000..e69de29 diff --git a/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.html b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.html new file mode 100644 index 0000000..b72eaf1 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.html @@ -0,0 +1 @@ +

new-drop-zone works!

diff --git a/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.spec.ts b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.spec.ts new file mode 100644 index 0000000..681b3df --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NewDropZoneComponent } from './new-drop-zone.component'; + +describe('NewDropZoneComponent', () => { + let component: NewDropZoneComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NewDropZoneComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NewDropZoneComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.ts b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.ts new file mode 100644 index 0000000..9ca4694 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-drop-zone/new-drop-zone.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-new-drop-zone', + templateUrl: './new-drop-zone.component.html', + styleUrls: ['./new-drop-zone.component.css'] +}) +export class NewDropZoneComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.css b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.css new file mode 100644 index 0000000..e69de29 diff --git a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.html b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.html new file mode 100644 index 0000000..299facc --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.html @@ -0,0 +1 @@ +

new-gear works!

diff --git a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.spec.ts b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.spec.ts new file mode 100644 index 0000000..4e00ab4 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NewGearComponent } from './new-gear.component'; + +describe('NewGearComponent', () => { + let component: NewGearComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NewGearComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NewGearComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts new file mode 100644 index 0000000..4e2d62e --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-gear/new-gear.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-new-gear', + templateUrl: './new-gear.component.html', + styleUrls: ['./new-gear.component.css'] +}) +export class NewGearComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.css b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.css new file mode 100644 index 0000000..e69de29 diff --git a/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.html b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.html new file mode 100644 index 0000000..38c4ad3 --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.html @@ -0,0 +1 @@ +

new-jump-type works!

diff --git a/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.spec.ts b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.spec.ts new file mode 100644 index 0000000..d65273b --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { NewJumpTypeComponent } from './new-jump-type.component'; + +describe('NewJumpTypeComponent', () => { + let component: NewJumpTypeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NewJumpTypeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NewJumpTypeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.ts b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.ts new file mode 100644 index 0000000..2e3adcb --- /dev/null +++ b/Front/skydivelogs-app/src/app/new-jump-type/new-jump-type.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-new-jump-type', + templateUrl: './new-jump-type.component.html', + styleUrls: ['./new-jump-type.component.css'] +}) +export class NewJumpTypeComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/Front/skydivelogs-app/src/assets/img/favorite.png b/Front/skydivelogs-app/src/assets/img/favorite.png index be1494e14ab484b4af9ae24b302ceda62eb067cb..01df0d6305ac72a59bc01b4fd5773a42ff69f6bf 100644 GIT binary patch delta 721 zcmV;?0xtc{1^oq(BpLy8Qb$4nuFf3k00004XF*Lt006O%3;baPks%m=l1W5CR9HvV zm%DEhK@f*$ZqFn<>;MH4g3A8^1OyTSQ9wXEL_&dpNR&`erbE!vAP^;Gnn*NAG!%eD z1yT|sBq(SIMFa?n1Y?H~oZVseZqBmtt?j#uPw+|W`_1g*W?#Nt_-`o_ctxXL*<`i2 z^P@!S62F{m8X|R3+&MviS8$8*-bDehertV_+kd$C=cAWLiAP~fvilGBc<%22*!Nnp z6OnlFa8J)5;2tp>uy1dX)M+t$CUF3U;HJoSI^{V?6u=Pq$N6y}v|>3}B>$M`o=6mc zA-W~fO)q7d2(}I{q8WbdvpPp+tDfE;i~s?tz?CmQ?N2xbXwLC}P<#$_4)Bh7Z%~g~ z9RyHASOE0w7OGjh&wTrZYp0eGmaNfOgg>zUh7c~WTnjyYVZ}%9>~DmRVz=&s8tNxJ zKG(%uZ;Xd9zJ&E@u>)EHuvAe$@Ca{X|5g_o7@FVNX zEgLoX&V}rr0s|*RWd;p6r@`tHvC-`?) zpyQ!c)I0eb@Kx*vu_G`Ds?+d);Q#ciRVNE^s)+T&br@CoT* z^O4&odlBIi@i@?+`|!efwoLP-B}$vMnv_yq;2RECSd1!`jGE@-_GqG;k8OkNaQ&I6 z9Zp{)w+mb>nP2*XD?FD|a3)IRk8oQrIXx5CzXZS^=lJu8)_)0&00000NkvXXu0mjf DYotud delta 675 zcmV;U0$lz516npV&YnL@Np{v{2DVLNpeF zCThS2W2CWwWn-c-lxRX_XbcI3vP*3(+E`c;8zIJ+kl3h&(SV7T5*KE!#jdcj?=8AN z=-j)e=hdAfof^0GGK-b z8(V*tjhR)~&FVUkb(cYhHWE6_wCmqC1BTrx%c(rq5CitmT?8F1M|8}x?n2`Yh{T}jz27dhXhAwEFKOQ_-1*NPYb)*2|jB8x8l z693IW!GwP%aic-vLB=&@R$rDT%RWP;ea=i1^;VZ`R2l!cEFV{FhCmUxWi=C-cNnoOZ zV4SOic!4XBIEF+6QmA?U>s*9H1MvsZ4ExQyk6ZA5lG%L#lSYAk6>3e+w`+*y%|Lty zysOmycQS_6f9gAw36si%NwxY8i8Sy&VU6&vCk}`;V8qSe7G(^o)gM&G&uD=BI{N^5 zrF~AV{(y`@u*J=*gW}(VvJsde%et>XOVQ1|BJMHlpGa8z2Fp3fxjr+-*tqH~MI*j_ zb8RY~fj0;*G@;Dea{$tRB3+1rQ9ldJS~k^dX5$pE8DRfi`~)@^(?p0j(pLZg002ov JPDHLkV1lnQL(BjG