From 13f940ecc9175fa9d42645cc5dd182a849b049d1 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Tue, 7 Nov 2023 14:11:28 +0100 Subject: [PATCH 01/18] Menu buttons undo/redo, EditorHistory class added, execute-invert commands --- .../src/application/editor/Editor.ts | 12 +++ .../src/application/editor/EditorHistory.ts | 73 +++++++++++++++++++ .../src/application/editor/editorEvents.ts | 1 + .../src/application/editor/index.ts | 1 + .../editor/operations/drawingEntity/index.ts | 16 ++++ .../editor/operations/monomer/index.ts | 17 +++++ .../editor/operations/polymerBond/index.ts | 24 ++++++ .../src/application/editor/tools/Monomer.ts | 4 +- .../render/renderers/RenderersManager.ts | 4 +- .../src/domain/entities/Command.ts | 10 +++ .../src/domain/entities/Operation.ts | 1 + .../src/Editor.tsx | 3 + 12 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 packages/ketcher-core/src/application/editor/EditorHistory.ts diff --git a/packages/ketcher-core/src/application/editor/Editor.ts b/packages/ketcher-core/src/application/editor/Editor.ts index 4374fd3630..3f40891702 100644 --- a/packages/ketcher-core/src/application/editor/Editor.ts +++ b/packages/ketcher-core/src/application/editor/Editor.ts @@ -14,6 +14,7 @@ import { RenderersManager } from 'application/render/renderers/RenderersManager' import { DrawingEntitiesManager } from 'domain/entities/DrawingEntitiesManager'; import { editorEvents, renderersEvents } from 'application/editor/editorEvents'; import { PolymerBondRenderer } from 'application/render/renderers'; +import { EditorHistory } from './EditorHistory'; interface ICoreEditorConstructorParams { theme; @@ -59,6 +60,7 @@ export class CoreEditor { this.events.selectPreset.add((preset) => this.onSelectRNAPreset(preset)); this.events.selectTool.add((tool) => this.onSelectTool(tool)); this.events.selectMode.add((isSnakeMode) => this.onSelectMode(isSnakeMode)); + this.events.selectHistory.add((name) => this.onSelectHistory(name)); renderersEvents.forEach((eventName) => { this.events[eventName].add((event) => @@ -89,6 +91,16 @@ export class CoreEditor { this.renderersContainer.update(modelChanges); } + private onSelectHistory(name: string) { + console.log(name); + const history = new EditorHistory(this); + if (name === 'undo') { + history.undo(); + } else if (name === 'redo') { + history.redo(); + } + } + public selectTool(name: string, options?) { const ToolConstructor: ToolConstructorInterface = toolsMap[name]; const oldTool = this.tool; diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts new file mode 100644 index 0000000000..ed8d5c7a91 --- /dev/null +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -0,0 +1,73 @@ +/**************************************************************************** + * Copyright 2021 EPAM Systems + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ***************************************************************************/ + +import { Command } from 'domain/entities/Command'; +import { CoreEditor } from './Editor'; + +const HISTORY_SIZE = 32; // put me to options + +export class EditorHistory { + historyStack: Command[] | [] = []; + historyPointer = 0; + editor: CoreEditor; + + private static _instance; + constructor(editor: CoreEditor) { + if (EditorHistory._instance) { + return EditorHistory._instance; + } + this.editor = editor; + this.historyPointer = 0; + + EditorHistory._instance = this; + + return this; + } + + update(command: Command) { + this.historyStack.splice(this.historyPointer, HISTORY_SIZE + 1, command); + if (this.historyStack.length > HISTORY_SIZE) { + this.historyStack.shift(); + } + this.historyPointer = this.historyStack.length; + } + + // historySize() { + // return { + // undo: this.historyPointer, + // redo: this.historyStack.length - this.historyPointer, + // }; + // } + + undo() { + if (this.historyPointer === 0) { + throw new Error('Undo stack is empty'); + } + + this.historyPointer--; + const lastCommand = this.historyStack[this.historyPointer]; + lastCommand.invert(this.editor.renderersContainer); + } + + redo() { + if (this.historyPointer === this.historyStack.length) { + throw new Error('Redo stack is empty'); + } + const lastCommand = this.historyStack[this.historyPointer]; + lastCommand.execute(this.editor.renderersContainer); + this.historyPointer++; + } +} diff --git a/packages/ketcher-core/src/application/editor/editorEvents.ts b/packages/ketcher-core/src/application/editor/editorEvents.ts index 9b143f9296..1e699cafaa 100644 --- a/packages/ketcher-core/src/application/editor/editorEvents.ts +++ b/packages/ketcher-core/src/application/editor/editorEvents.ts @@ -6,6 +6,7 @@ export const editorEvents = { selectPreset: new Subscription(), selectTool: new Subscription(), selectMode: new Subscription(), + selectHistory: new Subscription(), error: new Subscription(), mouseOverPolymerBond: new Subscription(), mouseLeavePolymerBond: new Subscription(), diff --git a/packages/ketcher-core/src/application/editor/index.ts b/packages/ketcher-core/src/application/editor/index.ts index 424b9c782e..2716e109df 100644 --- a/packages/ketcher-core/src/application/editor/index.ts +++ b/packages/ketcher-core/src/application/editor/index.ts @@ -28,3 +28,4 @@ export * from './actions'; export * from './shared/constants'; export * from './editor.types'; export * from './Editor'; +export * from './EditorHistory'; diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index 133b731941..27483cf23e 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -8,6 +8,10 @@ export class DrawingEntityHoverOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.hoverDrawingEntity(this.drawingEntity); } + + public invert(renderersManager: RenderersManager) { + console.log('invert DrawingEntityHoverOperation'); + } } export class DrawingEntitySelectOperation implements Operation { @@ -16,6 +20,10 @@ export class DrawingEntitySelectOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.selectDrawingEntity(this.drawingEntity); } + + public invert(renderersManager: RenderersManager) { + console.log('invert DrawingEntitySelectOperation'); + } } export class DrawingEntityMoveOperation implements Operation { constructor(private drawingEntity: DrawingEntity) {} @@ -23,6 +31,10 @@ export class DrawingEntityMoveOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.moveDrawingEntity(this.drawingEntity); } + + public invert(renderersManager: RenderersManager) { + console.log('invert DrawingEntityMoveOperation'); + } } export class DrawingEntityRedrawOperation implements Operation { constructor(private drawingEntity: DrawingEntity) {} @@ -30,4 +42,8 @@ export class DrawingEntityRedrawOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.redrawDrawingEntity(this.drawingEntity); } + + public invert(renderersManager: RenderersManager) { + console.log('invert DrawingEntityRedrawOperation'); + } } diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index 220c85e85d..a86480fa80 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -25,6 +25,11 @@ export class MonomerAddOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.addMonomer(this.monomer, this.callback); } + + public invert(renderersManager: RenderersManager) { + console.log('invert MonomerAddOperation'); + renderersManager.deleteMonomer(this.monomer); + } } export class MonomerMoveOperation implements Operation { @@ -33,6 +38,10 @@ export class MonomerMoveOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.moveMonomer(this.peptide); } + + public invert(renderersManager: RenderersManager) { + console.log('invert MonomerMoveOperation'); + } } export class MonomerHoverOperation implements Operation { @@ -47,6 +56,10 @@ export class MonomerHoverOperation implements Operation { this.needRedrawAttachmentPoints, ); } + + public invert(renderersManager: RenderersManager) { + console.log('invert MonomerHoverOperation'); + } } export class MonomerDeleteOperation implements Operation { @@ -55,4 +68,8 @@ export class MonomerDeleteOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.deleteMonomer(this.peptide); } + + public invert(renderersManager: RenderersManager) { + console.log('invert MonomerDeleteOperation'); + } } diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 27405acb59..15f402c514 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -25,6 +25,10 @@ export class PolymerBondAddOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.addPolymerBond(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + renderersManager.deletePolymerBond(this.polymerBond); + } } export class PolymerBondDeleteOperation implements Operation { @@ -33,6 +37,10 @@ export class PolymerBondDeleteOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.deletePolymerBond(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + renderersManager.addPolymerBond(this.polymerBond); + } } export class PolymerBondMoveOperation implements Operation { @@ -41,6 +49,10 @@ export class PolymerBondMoveOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.movePolymerBond(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + console.log('invert PolymerBondMoveOperation'); + } } export class PolymerBondShowInfoOperation implements Operation { @@ -49,6 +61,10 @@ export class PolymerBondShowInfoOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.showPolymerBondInformation(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + console.log('invert PolymerBondShowInfoOperation'); + } } export class PolymerBondCancelCreationOperation implements Operation { @@ -57,6 +73,10 @@ export class PolymerBondCancelCreationOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.cancelPolymerBondCreation(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + console.log('invert PolymerBondCancelCreationOperation'); + } } export class PolymerBondFinishCreationOperation implements Operation { @@ -65,4 +85,8 @@ export class PolymerBondFinishCreationOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.finishPolymerBondCreation(this.polymerBond); } + + public invert(renderersManager: RenderersManager) { + console.log('invert PolymerBondFinishCreationOperation'); + } } diff --git a/packages/ketcher-core/src/application/editor/tools/Monomer.ts b/packages/ketcher-core/src/application/editor/tools/Monomer.ts index 96479fcecc..5bf794af7c 100644 --- a/packages/ketcher-core/src/application/editor/tools/Monomer.ts +++ b/packages/ketcher-core/src/application/editor/tools/Monomer.ts @@ -20,7 +20,7 @@ import { Sugar } from 'domain/entities/Sugar'; import { Phosphate } from 'domain/entities/Phosphate'; import { RNABase } from 'domain/entities/RNABase'; import { Vec2 } from 'domain/entities'; -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseMonomerRenderer } from 'application/render/renderers'; import { MonomerItemType } from 'domain/types'; import { monomerFactory } from '../operations/monomer/monomerFactory'; @@ -64,6 +64,8 @@ class MonomerTool implements Tool { ), ); + const history = new EditorHistory(this.editor); // здесь история пишется + history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } diff --git a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts index b0e958b529..71a564509c 100644 --- a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts +++ b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts @@ -111,8 +111,6 @@ export class RenderersManager { } public update(modelChanges: Command) { - modelChanges.operations.forEach((modelChange) => { - modelChange.execute(this); - }); + modelChanges.execute(this); } } diff --git a/packages/ketcher-core/src/domain/entities/Command.ts b/packages/ketcher-core/src/domain/entities/Command.ts index 3e1e1d38f1..fd7b8064d1 100644 --- a/packages/ketcher-core/src/domain/entities/Command.ts +++ b/packages/ketcher-core/src/domain/entities/Command.ts @@ -10,4 +10,14 @@ export class Command { public merge(command: Command) { this.operations = [...this.operations, ...command.operations]; } + + public invert(renderersManagers) { + this.operations.forEach((operation) => operation.invert(renderersManagers)); + } + + public execute(renderersManagers) { + this.operations.forEach((operation) => + operation.execute(renderersManagers), + ); + } } diff --git a/packages/ketcher-core/src/domain/entities/Operation.ts b/packages/ketcher-core/src/domain/entities/Operation.ts index 8ea2a95667..65e2dc4cd3 100644 --- a/packages/ketcher-core/src/domain/entities/Operation.ts +++ b/packages/ketcher-core/src/domain/entities/Operation.ts @@ -2,4 +2,5 @@ import { RenderersManager } from 'application/render/renderers/RenderersManager' export interface Operation { execute(renderersManager: RenderersManager): void; + invert(renderersManager: RenderersManager): void; } diff --git a/packages/ketcher-polymer-editor-react/src/Editor.tsx b/packages/ketcher-polymer-editor-react/src/Editor.tsx index c80e4a29e0..5a2bf6c94f 100644 --- a/packages/ketcher-polymer-editor-react/src/Editor.tsx +++ b/packages/ketcher-polymer-editor-react/src/Editor.tsx @@ -280,6 +280,8 @@ function MenuComponent() { } else if (name === 'snake-mode') { dispatch(selectMode(!isSnakeMode)); editor.events.selectMode.dispatch(!isSnakeMode); + } else if (name === 'undo' || name === 'redo') { + editor.events.selectHistory.dispatch(name); } else { editor.events.selectTool.dispatch(name); if (name === 'clear') { @@ -304,6 +306,7 @@ function MenuComponent() { + From 7c85adb3e43825693d3a9adcf96ea6fb6cf3f958 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Wed, 8 Nov 2023 12:33:29 +0100 Subject: [PATCH 02/18] added to history, undo/redo for: Add Bond, Delete Bond, Add Monomer --- .../editor/operations/polymerBond/index.ts | 97 ++++++++++++++++++- .../src/application/editor/tools/Bond.ts | 11 ++- .../src/application/editor/tools/Erase.ts | 5 +- .../src/application/editor/tools/Monomer.ts | 5 +- .../domain/entities/DrawingEntitiesManager.ts | 51 +++------- 5 files changed, 128 insertions(+), 41 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 15f402c514..1d8d5afd88 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -18,6 +18,7 @@ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; +import assert from 'assert'; export class PolymerBondAddOperation implements Operation { constructor(private polymerBond: PolymerBond) {} @@ -27,7 +28,7 @@ export class PolymerBondAddOperation implements Operation { } public invert(renderersManager: RenderersManager) { - renderersManager.deletePolymerBond(this.polymerBond); + console.log('invert PolymerBondAddOperation'); } } @@ -36,9 +37,11 @@ export class PolymerBondDeleteOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.deletePolymerBond(this.polymerBond); + console.log('execute PolymerBondDeleteOperation'); } public invert(renderersManager: RenderersManager) { + console.log('invert PolymerBondDeleteOperation'); renderersManager.addPolymerBond(this.polymerBond); } } @@ -84,9 +87,101 @@ export class PolymerBondFinishCreationOperation implements Operation { public execute(renderersManager: RenderersManager) { renderersManager.finishPolymerBondCreation(this.polymerBond); + console.log('execute PolymerBondFinishCreationOperation'); } public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondFinishCreationOperation'); + renderersManager.deletePolymerBond(this.polymerBond); + } +} + +export class PolymerBondAddAttachmentPointsOperation implements Operation { + constructor( + private polymerBond: PolymerBond, + private secondMonomer, + private firstMonomerAttachmentPoint, + private secondMonomerAttachmentPoint, + ) { + this.polymerBond = polymerBond; + } + + public execute() { + this.polymerBond.setSecondMonomer(this.secondMonomer); + this.polymerBond.firstMonomer.setBond( + this.firstMonomerAttachmentPoint, + this.polymerBond, + ); + assert(this.polymerBond.secondMonomer); + assert(this.secondMonomer.renderer); + this.polymerBond.secondMonomer.setBond( + this.secondMonomerAttachmentPoint, + this.polymerBond, + ); + this.polymerBond.firstMonomer.removePotentialBonds(); + this.polymerBond.secondMonomer.removePotentialBonds(); + + this.polymerBond.moveToLinkedMonomers(); + this.polymerBond.firstMonomer.turnOffSelection(); + this.polymerBond.firstMonomer.turnOffHover(); + this.polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); + this.polymerBond.secondMonomer.turnOffSelection(); + this.polymerBond.secondMonomer.turnOffHover(); + this.polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); + this.polymerBond.turnOffHover(); + + console.log('execute PolymerBondAddAttachmentPointsOperation'); + } + + public invert() { + const cleanAttachmentPoints = new PolymerBondCleanAttachmentPointsOperation( + this.polymerBond, + ); + cleanAttachmentPoints.execute(); + console.log('invert PolymerBondAddAttachmentPointsOperation'); + } +} + +export class PolymerBondCleanAttachmentPointsOperation implements Operation { + private secondMonomer; + private firstMonomerAttachmentPoint; + private secondMonomerAttachmentPoint; + + constructor(private polymerBond: PolymerBond) { + this.polymerBond = polymerBond; + } + + public execute() { + this.firstMonomerAttachmentPoint = + this.polymerBond.firstMonomer.getAttachmentPointByBond(this.polymerBond); + this.secondMonomerAttachmentPoint = + this.polymerBond.secondMonomer?.getAttachmentPointByBond( + this.polymerBond, + ); + this.secondMonomer = this.polymerBond.secondMonomer; + this.polymerBond.firstMonomer.removePotentialBonds(); + this.polymerBond.secondMonomer?.removePotentialBonds(); + this.polymerBond.firstMonomer.turnOffSelection(); + this.polymerBond.secondMonomer?.turnOffSelection(); + if (this.firstMonomerAttachmentPoint) { + this.polymerBond.firstMonomer.unsetBond(this.firstMonomerAttachmentPoint); + } + if (this.secondMonomerAttachmentPoint) { + this.polymerBond.secondMonomer?.unsetBond( + this.secondMonomerAttachmentPoint, + ); + } + console.log('execute PolymerBondCleanAttachmentPointsOperation'); + } + + public invert() { + const addAttachmentPoints = new PolymerBondAddAttachmentPointsOperation( + this.polymerBond, + this.secondMonomer, + this.firstMonomerAttachmentPoint, + this.secondMonomerAttachmentPoint, + ); + addAttachmentPoints.execute(); + console.log('invert PolymerBondCleanAttachmentPointsOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Bond.ts b/packages/ketcher-core/src/application/editor/tools/Bond.ts index 258f98182f..c79fba786c 100644 --- a/packages/ketcher-core/src/application/editor/tools/Bond.ts +++ b/packages/ketcher-core/src/application/editor/tools/Bond.ts @@ -14,17 +14,22 @@ * limitations under the License. ***************************************************************************/ import { BaseMonomerRenderer } from 'application/render/renderers'; -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { PolymerBondRenderer } from 'application/render/renderers/PolymerBondRenderer'; import { Vec2 } from 'domain/entities'; import assert from 'assert'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; import { BaseTool } from 'application/editor/tools/Tool'; +import { Command } from 'domain/entities/Command'; class PolymerBond implements BaseTool { private bondRenderer?: PolymerBondRenderer; + history: EditorHistory; + historyMouseDown: Command | undefined; + constructor(private editor: CoreEditor) { this.editor = editor; + this.history = new EditorHistory(this.editor); // здесь история пишется } public mousedown(event) { @@ -50,6 +55,7 @@ class PolymerBond implements BaseTool { this.editor.renderersContainer.update(modelChanges); this.bondRenderer = polymerBond.renderer; + this.historyMouseDown = modelChanges; } } @@ -192,6 +198,9 @@ class PolymerBond implements BaseTool { const modelChanges = this.finishBondCreation(renderer.monomer); this.editor.renderersContainer.update(modelChanges); this.bondRenderer = undefined; + assert(this.historyMouseDown); + this.historyMouseDown.merge(modelChanges); + this.history.update(this.historyMouseDown); event.stopPropagation(); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Erase.ts b/packages/ketcher-core/src/application/editor/tools/Erase.ts index 7f976fc0c5..2ee1a47011 100644 --- a/packages/ketcher-core/src/application/editor/tools/Erase.ts +++ b/packages/ketcher-core/src/application/editor/tools/Erase.ts @@ -13,13 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseRenderer } from 'application/render/renderers/BaseRenderer'; import { BaseTool } from 'application/editor/tools/Tool'; class EraserTool implements BaseTool { + private history: EditorHistory; constructor(private editor: CoreEditor) { this.editor = editor; + this.history = new EditorHistory(editor); if (this.editor.drawingEntitiesManager.selectedEntities.length) { const modelChanges = this.editor.drawingEntitiesManager.deleteSelectedEntities(); @@ -35,6 +37,7 @@ class EraserTool implements BaseTool { selectedItemRenderer.drawingEntity, ); this.editor.renderersContainer.update(modelChanges); + this.history.update(modelChanges); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Monomer.ts b/packages/ketcher-core/src/application/editor/tools/Monomer.ts index 5bf794af7c..49b17c9a47 100644 --- a/packages/ketcher-core/src/application/editor/tools/Monomer.ts +++ b/packages/ketcher-core/src/application/editor/tools/Monomer.ts @@ -41,9 +41,11 @@ class MonomerTool implements Tool { readonly MONOMER_PREVIEW_SCALE_FACTOR = 0.4; readonly MONOMER_PREVIEW_OFFSET_X = 8; readonly MONOMER_PREVIEW_OFFSET_Y = 12; + history: EditorHistory; constructor(private editor: CoreEditor, private monomer: MonomerItemType) { this.editor = editor; this.monomer = monomer; + this.history = new EditorHistory(this.editor); // здесь история пишется } mousedown() { @@ -64,8 +66,7 @@ class MonomerTool implements Tool { ), ); - const history = new EditorHistory(this.editor); // здесь история пишется - history.update(modelChanges); + this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index 506e9e2c85..bc1c32d13c 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -26,6 +26,8 @@ import { PolymerBondFinishCreationOperation, PolymerBondMoveOperation, PolymerBondShowInfoOperation, + PolymerBondCleanAttachmentPointsOperation, + PolymerBondAddAttachmentPointsOperation, } from 'application/editor/operations/polymerBond'; import { monomerFactory } from 'application/editor/operations/monomer/monomerFactory'; import { provideEditorSettings } from 'application/editor/editorSettings'; @@ -249,20 +251,11 @@ export class DrawingEntitiesManager { public deletePolymerBond(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); const command = new Command(); - const firstMonomerAttachmentPoint = - polymerBond.firstMonomer.getAttachmentPointByBond(polymerBond); - const secondMonomerAttachmentPoint = - polymerBond.secondMonomer?.getAttachmentPointByBond(polymerBond); - polymerBond.firstMonomer.removePotentialBonds(); - polymerBond.secondMonomer?.removePotentialBonds(); - polymerBond.firstMonomer.turnOffSelection(); - polymerBond.secondMonomer?.turnOffSelection(); - if (firstMonomerAttachmentPoint) { - polymerBond.firstMonomer.unsetBond(firstMonomerAttachmentPoint); - } - if (secondMonomerAttachmentPoint) { - polymerBond.secondMonomer?.unsetBond(secondMonomerAttachmentPoint); - } + + const operationCleanAttachmentPoints = + new PolymerBondCleanAttachmentPointsOperation(polymerBond); + command.addOperation(operationCleanAttachmentPoints); + const operation = new PolymerBondDeleteOperation(polymerBond); command.addOperation(operation); @@ -301,29 +294,15 @@ export class DrawingEntitiesManager { ) { const command = new Command(); - polymerBond.setSecondMonomer(secondMonomer); - polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); - assert(polymerBond.secondMonomer); - assert(secondMonomer.renderer); - polymerBond.secondMonomer.setBond( - secondMonomerAttachmentPoint, - polymerBond, - ); - polymerBond.firstMonomer.removePotentialBonds(); - polymerBond.secondMonomer.removePotentialBonds(); - - polymerBond.moveToLinkedMonomers(); - - polymerBond.firstMonomer.turnOffSelection(); - polymerBond.firstMonomer.turnOffHover(); - polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); - - polymerBond.secondMonomer.turnOffSelection(); - polymerBond.secondMonomer.turnOffHover(); - polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); - - polymerBond.turnOffHover(); + const operationAddAttachmentPoints = + new PolymerBondAddAttachmentPointsOperation( + polymerBond, + secondMonomer, + firstMonomerAttachmentPoint, + secondMonomerAttachmentPoint, + ); + command.addOperation(operationAddAttachmentPoints); const operation = new PolymerBondFinishCreationOperation(polymerBond); command.addOperation(operation); From 5c06197b39f5d94c7cb108141a45548112dce72c Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Thu, 9 Nov 2023 18:59:03 +0100 Subject: [PATCH 03/18] monomers add - delete: undo/redo; add Erase and Clear to histore --- .../src/application/editor/EditorHistory.ts | 9 +++-- .../editor/operations/drawingEntity/index.ts | 11 +++--- .../editor/operations/monomer/index.ts | 36 +++++++++++++++---- .../src/application/editor/tools/Clear.ts | 7 +++- .../src/application/editor/tools/Erase.ts | 2 +- .../src/domain/entities/Operation.ts | 2 ++ 6 files changed, 52 insertions(+), 15 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index ed8d5c7a91..d0789e4d29 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -16,13 +16,13 @@ import { Command } from 'domain/entities/Command'; import { CoreEditor } from './Editor'; - +import assert from 'assert'; const HISTORY_SIZE = 32; // put me to options export class EditorHistory { historyStack: Command[] | [] = []; historyPointer = 0; - editor: CoreEditor; + editor: CoreEditor | undefined; private static _instance; constructor(editor: CoreEditor) { @@ -57,6 +57,8 @@ export class EditorHistory { throw new Error('Undo stack is empty'); } + assert(this.editor); + this.historyPointer--; const lastCommand = this.historyStack[this.historyPointer]; lastCommand.invert(this.editor.renderersContainer); @@ -66,6 +68,9 @@ export class EditorHistory { if (this.historyPointer === this.historyStack.length) { throw new Error('Redo stack is empty'); } + + assert(this.editor); + const lastCommand = this.historyStack[this.historyPointer]; lastCommand.execute(this.editor.renderersContainer); this.historyPointer++; diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index 27483cf23e..bddd764449 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -1,3 +1,6 @@ +// eslint-disable no-unused-vars +/* eslint-disable @typescript-eslint/no-unused-vars */ + import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import { DrawingEntity } from 'domain/entities/DrawingEntity'; @@ -9,7 +12,7 @@ export class DrawingEntityHoverOperation implements Operation { renderersManager.hoverDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityHoverOperation'); } } @@ -21,7 +24,7 @@ export class DrawingEntitySelectOperation implements Operation { renderersManager.selectDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntitySelectOperation'); } } @@ -32,7 +35,7 @@ export class DrawingEntityMoveOperation implements Operation { renderersManager.moveDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityMoveOperation'); } } @@ -43,7 +46,7 @@ export class DrawingEntityRedrawOperation implements Operation { renderersManager.redrawDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityRedrawOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index ee5214f1bb..e3d480012a 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ /**************************************************************************** * Copyright 2021 EPAM Systems * @@ -20,15 +21,24 @@ import { Operation } from 'domain/entities/Operation'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; export class MonomerAddOperation implements Operation { - constructor(public monomer: BaseMonomer, private callback?: () => void) {} + monomer: BaseMonomer | undefined; + constructor( + public addMonomerChangeModel: () => BaseMonomer, + public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, + private callback?: () => void, + ) {} public execute(renderersManager: RenderersManager) { + this.monomer = this.addMonomerChangeModel(); renderersManager.addMonomer(this.monomer, this.callback); } public invert(renderersManager: RenderersManager) { - console.log('invert MonomerAddOperation'); - renderersManager.deleteMonomer(this.monomer); + if (this.monomer) { + this.deleteMonomerChangeModel(this.monomer); + renderersManager.deleteMonomer(this.monomer); + console.log('invert MonomerAddOperation'); + } } } @@ -39,7 +49,7 @@ export class MonomerMoveOperation implements Operation { renderersManager.moveMonomer(this.peptide); } - public invert(renderersManager: RenderersManager) { + public invert() { console.log('invert MonomerMoveOperation'); } } @@ -57,19 +67,31 @@ export class MonomerHoverOperation implements Operation { ); } - public invert(renderersManager: RenderersManager) { + public invert() { console.log('invert MonomerHoverOperation'); } } export class MonomerDeleteOperation implements Operation { - constructor(private peptide: BaseMonomer) {} + monomer: BaseMonomer; + constructor( + monomer: BaseMonomer, + public addMonomerChangeModel: () => BaseMonomer, + public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, + private callback?: () => void, + ) { + this.monomer = monomer; + } public execute(renderersManager: RenderersManager) { - renderersManager.deleteMonomer(this.peptide); + this.deleteMonomerChangeModel(this.monomer); + renderersManager.deleteMonomer(this.monomer); } public invert(renderersManager: RenderersManager) { + console.log(this.monomer); + this.monomer = this.addMonomerChangeModel(); + renderersManager.addMonomer(this.monomer, this.callback); console.log('invert MonomerDeleteOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Clear.ts b/packages/ketcher-core/src/application/editor/tools/Clear.ts index 27da31b2af..7784d46924 100644 --- a/packages/ketcher-core/src/application/editor/tools/Clear.ts +++ b/packages/ketcher-core/src/application/editor/tools/Clear.ts @@ -13,14 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseTool } from 'application/editor/tools/Tool'; class ClearTool implements BaseTool { + private history: EditorHistory; + constructor(private editor: CoreEditor) { this.editor = editor; + this.history = new EditorHistory(editor); + const modelChanges = this.editor.drawingEntitiesManager.deleteAllEntities(); this.editor.renderersContainer.update(modelChanges); + this.history.update(modelChanges); } destroy() {} diff --git a/packages/ketcher-core/src/application/editor/tools/Erase.ts b/packages/ketcher-core/src/application/editor/tools/Erase.ts index 2ee1a47011..4100bd9bd7 100644 --- a/packages/ketcher-core/src/application/editor/tools/Erase.ts +++ b/packages/ketcher-core/src/application/editor/tools/Erase.ts @@ -36,8 +36,8 @@ class EraserTool implements BaseTool { this.editor.drawingEntitiesManager.deleteDrawingEntity( selectedItemRenderer.drawingEntity, ); - this.editor.renderersContainer.update(modelChanges); this.history.update(modelChanges); + this.editor.renderersContainer.update(modelChanges); } } diff --git a/packages/ketcher-core/src/domain/entities/Operation.ts b/packages/ketcher-core/src/domain/entities/Operation.ts index 4fd0c40882..97c37e2a42 100644 --- a/packages/ketcher-core/src/domain/entities/Operation.ts +++ b/packages/ketcher-core/src/domain/entities/Operation.ts @@ -1,8 +1,10 @@ import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; +import { PolymerBond } from 'domain/entities/PolymerBond'; export interface Operation { monomer?: BaseMonomer; + polymerBond?: PolymerBond; execute(renderersManager: RenderersManager): void; invert(renderersManager: RenderersManager): void; } From 93959e93a4dd19c23746f4d82de39554816eda8e Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Thu, 9 Nov 2023 19:00:59 +0100 Subject: [PATCH 04/18] add-delete bond: undo redo (with issues) --- .../editor/operations/polymerBond/index.ts | 47 +++++-- .../domain/entities/DrawingEntitiesManager.ts | 132 +++++++++++++++--- 2 files changed, 151 insertions(+), 28 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 1d8d5afd88..2b97f1f0a5 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -14,78 +14,103 @@ * limitations under the License. ***************************************************************************/ /* eslint-disable @typescript-eslint/no-use-before-define */ +// eslint-disable no-unused-vars +/* eslint-disable @typescript-eslint/no-unused-vars */ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import assert from 'assert'; +import { Command } from 'domain/entities/Command'; export class PolymerBondAddOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + public polymerBond; + constructor( + private addPolymerBondChangeModel: () => PolymerBond, + private deletePolymerBondChangeModel: (polymerBond) => void, + ) { + this.polymerBond = this.addPolymerBondChangeModel(); + } public execute(renderersManager: RenderersManager) { renderersManager.addPolymerBond(this.polymerBond); } public invert(renderersManager: RenderersManager) { + this.deletePolymerBondChangeModel(this.polymerBond); + renderersManager.deletePolymerBond(this.polymerBond); console.log('invert PolymerBondAddOperation'); } } export class PolymerBondDeleteOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor( + public polymerBond: PolymerBond, + private deletePolymerBondChangeModel: () => void, + private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, + private finishPolymerBondCreationModelChange: () => PolymerBond, + ) {} public execute(renderersManager: RenderersManager) { + this.deletePolymerBondChangeModel(); renderersManager.deletePolymerBond(this.polymerBond); console.log('execute PolymerBondDeleteOperation'); } public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); + this.polymerBond = this.finishPolymerBondCreationModelChange(); + this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); + + console.log('this.polymerBond: ', this.polymerBond); } } export class PolymerBondMoveOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.movePolymerBond(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondMoveOperation'); } } export class PolymerBondShowInfoOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.showPolymerBondInformation(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondShowInfoOperation'); } } export class PolymerBondCancelCreationOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.cancelPolymerBondCreation(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondCancelCreationOperation'); } } export class PolymerBondFinishCreationOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + public polymerBond; + constructor( + private finishPolymerBondCreationModelChange: () => PolymerBond, + ) {} public execute(renderersManager: RenderersManager) { + this.polymerBond = this.finishPolymerBondCreationModelChange(); renderersManager.finishPolymerBondCreation(this.polymerBond); console.log('execute PolymerBondFinishCreationOperation'); } @@ -98,7 +123,7 @@ export class PolymerBondFinishCreationOperation implements Operation { export class PolymerBondAddAttachmentPointsOperation implements Operation { constructor( - private polymerBond: PolymerBond, + public polymerBond: PolymerBond, private secondMonomer, private firstMonomerAttachmentPoint, private secondMonomerAttachmentPoint, @@ -147,7 +172,7 @@ export class PolymerBondCleanAttachmentPointsOperation implements Operation { private firstMonomerAttachmentPoint; private secondMonomerAttachmentPoint; - constructor(private polymerBond: PolymerBond) { + constructor(public polymerBond: PolymerBond) { this.polymerBond = polymerBond; } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index 986cba4ceb..3204b460c5 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -89,14 +89,20 @@ export class DrawingEntitiesManager { return mergedCommand; } - public addMonomer(monomerItem: MonomerItemType, position: Vec2) { + public addMonomerChangeModel(monomerItem: MonomerItemType, position: Vec2) { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, position); monomer.moveAbsolute(position); this.monomers.set(monomer.id, monomer); + return monomer; + } + public addMonomer(monomerItem: MonomerItemType, position: Vec2) { const command = new Command(); - const operation = new MonomerAddOperation(monomer); + const operation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, position), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(operation); @@ -186,10 +192,21 @@ export class DrawingEntitiesManager { return command; } - public deleteMonomer(monomer: BaseMonomer) { + private deleteMonomerChangeModel(monomer: BaseMonomer) { this.monomers.delete(monomer.id); + } + + public deleteMonomer(monomer: BaseMonomer) { const command = new Command(); - const operation = new MonomerDeleteOperation(monomer); + const operation = new MonomerDeleteOperation( + monomer, + this.addMonomerChangeModel.bind( + this, + monomer.monomerItem, + monomer.position, + ), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(operation); if (monomer.hasBonds) { @@ -233,8 +250,16 @@ export class DrawingEntitiesManager { return command; } - public addPolymerBond(firstMonomer, startPosition, endPosition) { - const polymerBond = new PolymerBond(firstMonomer); + public addPolymerBondChangeModel( + firstMonomer, + startPosition, + endPosition, + polymerBondExists?: PolymerBond, + ) { + let polymerBond = new PolymerBond(firstMonomer); + if (polymerBondExists) { + polymerBond = polymerBondExists; + } this.polymerBonds.set(polymerBond.id, polymerBond); firstMonomer.setPotentialBond( firstMonomer.startBondAttachmentPoint, @@ -242,24 +267,59 @@ export class DrawingEntitiesManager { ); polymerBond.moveBondStartAbsolute(startPosition.x, startPosition.y); polymerBond.moveBondEndAbsolute(endPosition.x, endPosition.y); + return polymerBond; + } + public addPolymerBond(firstMonomer, startPosition, endPosition) { const command = new Command(); - const operation = new PolymerBondAddOperation(polymerBond); + + const operation = new PolymerBondAddOperation( + this.addPolymerBondChangeModel.bind( + this, + firstMonomer, + startPosition, + endPosition, + ), + this.deletePolymerBondChangeModel.bind(this), + ); command.addOperation(operation); - return { command, polymerBond }; + return { command, polymerBond: operation.polymerBond }; } - public deletePolymerBond(polymerBond: PolymerBond) { + public deletePolymerBondChangeModel(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); + } + + public deletePolymerBond(polymerBond: PolymerBond) { const command = new Command(); const operationCleanAttachmentPoints = new PolymerBondCleanAttachmentPointsOperation(polymerBond); command.addOperation(operationCleanAttachmentPoints); - const operation = new PolymerBondDeleteOperation(polymerBond); + const operation = new PolymerBondDeleteOperation( + polymerBond, + this.deletePolymerBondChangeModel.bind(this, polymerBond), + this.addPolymerBondChangeModel.bind( + this, + polymerBond.firstMonomer, + polymerBond.startPosition, + polymerBond.endPosition, + ), + this.finishPolymerBondCreationModelChange.bind( + this, + polymerBond.firstMonomer, + polymerBond.secondMonomer as BaseMonomer, + polymerBond.firstMonomer.getAttachmentPointByBond( + polymerBond, + ) as string, + polymerBond.secondMonomer?.getAttachmentPointByBond( + polymerBond, + ) as string, + ), + ); command.addOperation(operation); return command; @@ -289,6 +349,34 @@ export class DrawingEntitiesManager { return command; } + public finishPolymerBondCreationModelChange( + firstMonomer: BaseMonomer, + secondMonomer: BaseMonomer, + firstMonomerAttachmentPoint: string, + secondMonomerAttachmentPoint: string, + ) { + const polymerBond = new PolymerBond(firstMonomer); + polymerBond.setSecondMonomer(secondMonomer); + polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); + assert(polymerBond.secondMonomer); + assert(secondMonomer.renderer); + polymerBond.secondMonomer.setBond( + secondMonomerAttachmentPoint, + polymerBond, + ); + polymerBond.firstMonomer.removePotentialBonds(); + polymerBond.secondMonomer.removePotentialBonds(); + polymerBond.moveToLinkedMonomers(); + polymerBond.firstMonomer.turnOffSelection(); + polymerBond.firstMonomer.turnOffHover(); + polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); + polymerBond.secondMonomer.turnOffSelection(); + polymerBond.secondMonomer.turnOffHover(); + polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); + polymerBond.turnOffHover(); + return polymerBond; + } + public finishPolymerBondCreation( polymerBond: PolymerBond, secondMonomer: BaseMonomer, @@ -297,16 +385,26 @@ export class DrawingEntitiesManager { ) { const command = new Command(); - const operationAddAttachmentPoints = - new PolymerBondAddAttachmentPointsOperation( - polymerBond, + const firstMonomer = polymerBond.firstMonomer; + this.polymerBonds.delete(polymerBond.id); + // const operationAddAttachmentPoints = + // new PolymerBondAddAttachmentPointsOperation( + // polymerBond, + // secondMonomer, + // firstMonomerAttachmentPoint, + // secondMonomerAttachmentPoint, + // ); + + // command.addOperation(operationAddAttachmentPoints); + const operation = new PolymerBondFinishCreationOperation( + this.finishPolymerBondCreationModelChange.bind( + this, + firstMonomer, secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, - ); - - command.addOperation(operationAddAttachmentPoints); - const operation = new PolymerBondFinishCreationOperation(polymerBond); + ), + ); command.addOperation(operation); From 54b36691c4affcf07cf92a5631c10bfc05baec89 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Fri, 10 Nov 2023 15:38:05 +0100 Subject: [PATCH 05/18] fix finishBondCreation --- .../editor/operations/polymerBond/index.ts | 4 +- .../src/application/editor/tools/RnaPreset.ts | 6 +- .../render/renderers/RenderersManager.ts | 4 ++ .../domain/entities/DrawingEntitiesManager.ts | 68 +++++++++++-------- 4 files changed, 51 insertions(+), 31 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 2b97f1f0a5..059711b74b 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -47,7 +47,6 @@ export class PolymerBondDeleteOperation implements Operation { constructor( public polymerBond: PolymerBond, private deletePolymerBondChangeModel: () => void, - private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, private finishPolymerBondCreationModelChange: () => PolymerBond, ) {} @@ -60,7 +59,6 @@ export class PolymerBondDeleteOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); this.polymerBond = this.finishPolymerBondCreationModelChange(); - this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); console.log('this.polymerBond: ', this.polymerBond); @@ -107,6 +105,7 @@ export class PolymerBondFinishCreationOperation implements Operation { public polymerBond; constructor( private finishPolymerBondCreationModelChange: () => PolymerBond, + private deletePolymerBondCreationModelChange: (polymerBond) => void, ) {} public execute(renderersManager: RenderersManager) { @@ -117,6 +116,7 @@ export class PolymerBondFinishCreationOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondFinishCreationOperation'); + this.deletePolymerBondCreationModelChange(this.polymerBond); renderersManager.deletePolymerBond(this.polymerBond); } } diff --git a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts index b60b7565d1..f5d32ea485 100644 --- a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts +++ b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts @@ -17,7 +17,7 @@ import { Tool, IRnaPreset } from 'application/editor/tools/Tool'; import { Sugar } from 'domain/entities/Sugar'; import { Vec2 } from 'domain/entities'; -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseMonomerRenderer } from 'application/render/renderers'; import { MonomerItemType } from 'domain/types'; import { monomerFactory } from '../operations/monomer/monomerFactory'; @@ -42,6 +42,8 @@ class RnaPresetTool implements Tool { readonly RNA_BASE_PREVIEW_OFFSET_X = 2; readonly RNA_BASE_PREVIEW_OFFSET_Y = 20; readonly PHOSPHATE_PREVIEW_OFFSET_X = 18; + history: EditorHistory; + constructor(private editor: CoreEditor, preset: IRnaPreset) { this.editor = editor; if (preset?.base) { @@ -53,6 +55,7 @@ class RnaPresetTool implements Tool { if (preset?.sugar) { this.sugar = preset?.sugar; } + this.history = new EditorHistory(this.editor); // здесь история пишется } mousedown() { @@ -93,6 +96,7 @@ class RnaPresetTool implements Tool { : undefined, }); + this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } diff --git a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts index 71a564509c..bb8329a77b 100644 --- a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts +++ b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts @@ -94,6 +94,10 @@ export class RenderersManager { polymerBond.secondMonomer.renderer?.redrawAttachmentPoints(); polymerBond.secondMonomer.renderer?.drawSelection(); polymerBond.secondMonomer.renderer?.redrawHover(); + this.polymerBonds.get(polymerBond.id)?.remove(); + const polymerBondRenderer = new PolymerBondRenderer(polymerBond); + this.polymerBonds.set(polymerBond.id, polymerBondRenderer); + polymerBond.renderer?.show(); } public cancelPolymerBondCreation(polymerBond) { diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index 3204b460c5..028de483b1 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -27,7 +27,6 @@ import { PolymerBondMoveOperation, PolymerBondShowInfoOperation, PolymerBondCleanAttachmentPointsOperation, - PolymerBondAddAttachmentPointsOperation, } from 'application/editor/operations/polymerBond'; import { monomerFactory } from 'application/editor/operations/monomer/monomerFactory'; import { provideEditorSettings } from 'application/editor/editorSettings'; @@ -290,6 +289,21 @@ export class DrawingEntitiesManager { public deletePolymerBondChangeModel(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); + + const firstMonomerAttachmentPoint = + polymerBond.firstMonomer.getAttachmentPointByBond(polymerBond); + const secondMonomerAttachmentPoint = + polymerBond.secondMonomer?.getAttachmentPointByBond(polymerBond); + polymerBond.firstMonomer.removePotentialBonds(); + polymerBond.secondMonomer?.removePotentialBonds(); + polymerBond.firstMonomer.turnOffSelection(); + polymerBond.secondMonomer?.turnOffSelection(); + if (firstMonomerAttachmentPoint) { + polymerBond.firstMonomer.unsetBond(firstMonomerAttachmentPoint); + } + if (secondMonomerAttachmentPoint) { + polymerBond.secondMonomer?.unsetBond(secondMonomerAttachmentPoint); + } } public deletePolymerBond(polymerBond: PolymerBond) { @@ -302,12 +316,6 @@ export class DrawingEntitiesManager { const operation = new PolymerBondDeleteOperation( polymerBond, this.deletePolymerBondChangeModel.bind(this, polymerBond), - this.addPolymerBondChangeModel.bind( - this, - polymerBond.firstMonomer, - polymerBond.startPosition, - polymerBond.endPosition, - ), this.finishPolymerBondCreationModelChange.bind( this, polymerBond.firstMonomer, @@ -354,12 +362,16 @@ export class DrawingEntitiesManager { secondMonomer: BaseMonomer, firstMonomerAttachmentPoint: string, secondMonomerAttachmentPoint: string, + bondId?: number, ) { const polymerBond = new PolymerBond(firstMonomer); + if (bondId) { + polymerBond.id = bondId; + } + this.polymerBonds.set(polymerBond.id, polymerBond); polymerBond.setSecondMonomer(secondMonomer); polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); assert(polymerBond.secondMonomer); - assert(secondMonomer.renderer); polymerBond.secondMonomer.setBond( secondMonomerAttachmentPoint, polymerBond, @@ -387,15 +399,6 @@ export class DrawingEntitiesManager { const firstMonomer = polymerBond.firstMonomer; this.polymerBonds.delete(polymerBond.id); - // const operationAddAttachmentPoints = - // new PolymerBondAddAttachmentPointsOperation( - // polymerBond, - // secondMonomer, - // firstMonomerAttachmentPoint, - // secondMonomerAttachmentPoint, - // ); - - // command.addOperation(operationAddAttachmentPoints); const operation = new PolymerBondFinishCreationOperation( this.finishPolymerBondCreationModelChange.bind( this, @@ -403,7 +406,9 @@ export class DrawingEntitiesManager { secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, + polymerBond.id, ), + this.deletePolymerBondChangeModel.bind(this), ); command.addOperation(operation); @@ -579,16 +584,13 @@ export class DrawingEntitiesManager { monomersToAdd.forEach(([monomerItem, monomerPosition]) => { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, monomerPosition); - this.monomers.set(monomer.id, monomer); let monomerAddOperation; if (previousMonomer) { - const polymerBond = new PolymerBond(previousMonomer); - this.polymerBonds.set(polymerBond.id, polymerBond); - monomerAddOperation = new MonomerAddOperation(monomer, () => { - polymerBond.moveToLinkedMonomers(); - }); + monomerAddOperation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(monomerAddOperation); - polymerBond.setSecondMonomer(monomer); // requirements are: Base(R1)-(R3)Sugar(R1)-(R2)Phosphate const attPointStart = previousMonomer.R1AttachmentPoint; @@ -603,12 +605,22 @@ export class DrawingEntitiesManager { assert(attPointStart); assert(attPointEnd); - previousMonomer.setBond(attPointStart, polymerBond); - monomer.setBond(attPointEnd, polymerBond); - const operation = new PolymerBondAddOperation(polymerBond); + const operation = new PolymerBondFinishCreationOperation( + this.finishPolymerBondCreationModelChange.bind( + this, + previousMonomer, + monomer, + attPointStart, + attPointEnd, + ), + this.deletePolymerBondChangeModel.bind(this), + ); command.addOperation(operation); } else { - monomerAddOperation = new MonomerAddOperation(monomer); + monomerAddOperation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(monomerAddOperation); } From 6d49cf3251425ab543f47ccf1e071c75e7168d97 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Mon, 13 Nov 2023 11:02:23 +0100 Subject: [PATCH 06/18] Revert "fix finishBondCreation" This reverts commit 54b36691c4affcf07cf92a5631c10bfc05baec89. --- .../editor/operations/polymerBond/index.ts | 4 +- .../src/application/editor/tools/RnaPreset.ts | 6 +- .../render/renderers/RenderersManager.ts | 4 -- .../domain/entities/DrawingEntitiesManager.ts | 68 ++++++++----------- 4 files changed, 31 insertions(+), 51 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 059711b74b..2b97f1f0a5 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -47,6 +47,7 @@ export class PolymerBondDeleteOperation implements Operation { constructor( public polymerBond: PolymerBond, private deletePolymerBondChangeModel: () => void, + private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, private finishPolymerBondCreationModelChange: () => PolymerBond, ) {} @@ -59,6 +60,7 @@ export class PolymerBondDeleteOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); this.polymerBond = this.finishPolymerBondCreationModelChange(); + this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); console.log('this.polymerBond: ', this.polymerBond); @@ -105,7 +107,6 @@ export class PolymerBondFinishCreationOperation implements Operation { public polymerBond; constructor( private finishPolymerBondCreationModelChange: () => PolymerBond, - private deletePolymerBondCreationModelChange: (polymerBond) => void, ) {} public execute(renderersManager: RenderersManager) { @@ -116,7 +117,6 @@ export class PolymerBondFinishCreationOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondFinishCreationOperation'); - this.deletePolymerBondCreationModelChange(this.polymerBond); renderersManager.deletePolymerBond(this.polymerBond); } } diff --git a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts index 199d95a619..9dfd064f74 100644 --- a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts +++ b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts @@ -17,7 +17,7 @@ import { Tool, IRnaPreset } from 'application/editor/tools/Tool'; import { Sugar } from 'domain/entities/Sugar'; import { Vec2 } from 'domain/entities'; -import { CoreEditor, EditorHistory } from 'application/editor'; +import { CoreEditor } from 'application/editor'; import { BaseMonomerRenderer } from 'application/render/renderers'; import { MonomerItemType } from 'domain/types'; import { monomerFactory } from '../operations/monomer/monomerFactory'; @@ -42,8 +42,6 @@ class RnaPresetTool implements Tool { readonly RNA_BASE_PREVIEW_OFFSET_X = 2; readonly RNA_BASE_PREVIEW_OFFSET_Y = 20; readonly PHOSPHATE_PREVIEW_OFFSET_X = 18; - history: EditorHistory; - constructor(private editor: CoreEditor, preset: IRnaPreset) { this.editor = editor; if (preset?.base) { @@ -55,7 +53,6 @@ class RnaPresetTool implements Tool { if (preset?.sugar) { this.sugar = preset?.sugar; } - this.history = new EditorHistory(this.editor); // здесь история пишется } mousedown() { @@ -96,7 +93,6 @@ class RnaPresetTool implements Tool { : undefined, }); - this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } diff --git a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts index bb8329a77b..71a564509c 100644 --- a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts +++ b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts @@ -94,10 +94,6 @@ export class RenderersManager { polymerBond.secondMonomer.renderer?.redrawAttachmentPoints(); polymerBond.secondMonomer.renderer?.drawSelection(); polymerBond.secondMonomer.renderer?.redrawHover(); - this.polymerBonds.get(polymerBond.id)?.remove(); - const polymerBondRenderer = new PolymerBondRenderer(polymerBond); - this.polymerBonds.set(polymerBond.id, polymerBondRenderer); - polymerBond.renderer?.show(); } public cancelPolymerBondCreation(polymerBond) { diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index bfa769e5dc..745714c552 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -25,6 +25,7 @@ import { PolymerBondMoveOperation, PolymerBondShowInfoOperation, PolymerBondCleanAttachmentPointsOperation, + PolymerBondAddAttachmentPointsOperation, } from 'application/editor/operations/polymerBond'; import { monomerFactory } from 'application/editor/operations/monomer/monomerFactory'; import { provideEditorSettings } from 'application/editor/editorSettings'; @@ -285,21 +286,6 @@ export class DrawingEntitiesManager { public deletePolymerBondChangeModel(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); - - const firstMonomerAttachmentPoint = - polymerBond.firstMonomer.getAttachmentPointByBond(polymerBond); - const secondMonomerAttachmentPoint = - polymerBond.secondMonomer?.getAttachmentPointByBond(polymerBond); - polymerBond.firstMonomer.removePotentialBonds(); - polymerBond.secondMonomer?.removePotentialBonds(); - polymerBond.firstMonomer.turnOffSelection(); - polymerBond.secondMonomer?.turnOffSelection(); - if (firstMonomerAttachmentPoint) { - polymerBond.firstMonomer.unsetBond(firstMonomerAttachmentPoint); - } - if (secondMonomerAttachmentPoint) { - polymerBond.secondMonomer?.unsetBond(secondMonomerAttachmentPoint); - } } public deletePolymerBond(polymerBond: PolymerBond) { @@ -312,6 +298,12 @@ export class DrawingEntitiesManager { const operation = new PolymerBondDeleteOperation( polymerBond, this.deletePolymerBondChangeModel.bind(this, polymerBond), + this.addPolymerBondChangeModel.bind( + this, + polymerBond.firstMonomer, + polymerBond.startPosition, + polymerBond.endPosition, + ), this.finishPolymerBondCreationModelChange.bind( this, polymerBond.firstMonomer, @@ -358,16 +350,12 @@ export class DrawingEntitiesManager { secondMonomer: BaseMonomer, firstMonomerAttachmentPoint: string, secondMonomerAttachmentPoint: string, - bondId?: number, ) { const polymerBond = new PolymerBond(firstMonomer); - if (bondId) { - polymerBond.id = bondId; - } - this.polymerBonds.set(polymerBond.id, polymerBond); polymerBond.setSecondMonomer(secondMonomer); polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); assert(polymerBond.secondMonomer); + assert(secondMonomer.renderer); polymerBond.secondMonomer.setBond( secondMonomerAttachmentPoint, polymerBond, @@ -395,6 +383,15 @@ export class DrawingEntitiesManager { const firstMonomer = polymerBond.firstMonomer; this.polymerBonds.delete(polymerBond.id); + // const operationAddAttachmentPoints = + // new PolymerBondAddAttachmentPointsOperation( + // polymerBond, + // secondMonomer, + // firstMonomerAttachmentPoint, + // secondMonomerAttachmentPoint, + // ); + + // command.addOperation(operationAddAttachmentPoints); const operation = new PolymerBondFinishCreationOperation( this.finishPolymerBondCreationModelChange.bind( this, @@ -402,9 +399,7 @@ export class DrawingEntitiesManager { secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, - polymerBond.id, ), - this.deletePolymerBondChangeModel.bind(this), ); command.addOperation(operation); @@ -561,13 +556,16 @@ export class DrawingEntitiesManager { monomersToAdd.forEach(([monomerItem, monomerPosition]) => { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, monomerPosition); + this.monomers.set(monomer.id, monomer); let monomerAddOperation; if (previousMonomer) { - monomerAddOperation = new MonomerAddOperation( - this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), - this.deleteMonomerChangeModel.bind(this), - ); + const polymerBond = new PolymerBond(previousMonomer); + this.polymerBonds.set(polymerBond.id, polymerBond); + monomerAddOperation = new MonomerAddOperation(monomer, () => { + polymerBond.moveToLinkedMonomers(); + }); command.addOperation(monomerAddOperation); + polymerBond.setSecondMonomer(monomer); // requirements are: Base(R1)-(R3)Sugar(R2)-(R1)Phosphate const attPointStart = previousMonomer.getValidSourcePoint(monomer); @@ -576,22 +574,12 @@ export class DrawingEntitiesManager { assert(attPointStart); assert(attPointEnd); - const operation = new PolymerBondFinishCreationOperation( - this.finishPolymerBondCreationModelChange.bind( - this, - previousMonomer, - monomer, - attPointStart, - attPointEnd, - ), - this.deletePolymerBondChangeModel.bind(this), - ); + previousMonomer.setBond(attPointStart, polymerBond); + monomer.setBond(attPointEnd, polymerBond); + const operation = new PolymerBondAddOperation(polymerBond); command.addOperation(operation); } else { - monomerAddOperation = new MonomerAddOperation( - this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), - this.deleteMonomerChangeModel.bind(this), - ); + monomerAddOperation = new MonomerAddOperation(monomer); command.addOperation(monomerAddOperation); } From 66337a032d668d8b2cd21ec62219ec0e55eb9e98 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Mon, 13 Nov 2023 11:03:18 +0100 Subject: [PATCH 07/18] Revert "add-delete bond: undo redo (with issues)" This reverts commit 93959e93a4dd19c23746f4d82de39554816eda8e. --- .../editor/operations/polymerBond/index.ts | 47 ++----- .../domain/entities/DrawingEntitiesManager.ts | 132 +++--------------- 2 files changed, 28 insertions(+), 151 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 2b97f1f0a5..1d8d5afd88 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -14,103 +14,78 @@ * limitations under the License. ***************************************************************************/ /* eslint-disable @typescript-eslint/no-use-before-define */ -// eslint-disable no-unused-vars -/* eslint-disable @typescript-eslint/no-unused-vars */ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import assert from 'assert'; -import { Command } from 'domain/entities/Command'; export class PolymerBondAddOperation implements Operation { - public polymerBond; - constructor( - private addPolymerBondChangeModel: () => PolymerBond, - private deletePolymerBondChangeModel: (polymerBond) => void, - ) { - this.polymerBond = this.addPolymerBondChangeModel(); - } + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.addPolymerBond(this.polymerBond); } public invert(renderersManager: RenderersManager) { - this.deletePolymerBondChangeModel(this.polymerBond); - renderersManager.deletePolymerBond(this.polymerBond); console.log('invert PolymerBondAddOperation'); } } export class PolymerBondDeleteOperation implements Operation { - constructor( - public polymerBond: PolymerBond, - private deletePolymerBondChangeModel: () => void, - private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, - private finishPolymerBondCreationModelChange: () => PolymerBond, - ) {} + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { - this.deletePolymerBondChangeModel(); renderersManager.deletePolymerBond(this.polymerBond); console.log('execute PolymerBondDeleteOperation'); } public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); - this.polymerBond = this.finishPolymerBondCreationModelChange(); - this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); - - console.log('this.polymerBond: ', this.polymerBond); } } export class PolymerBondMoveOperation implements Operation { - constructor(public polymerBond: PolymerBond) {} + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.movePolymerBond(this.polymerBond); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondMoveOperation'); } } export class PolymerBondShowInfoOperation implements Operation { - constructor(public polymerBond: PolymerBond) {} + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.showPolymerBondInformation(this.polymerBond); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondShowInfoOperation'); } } export class PolymerBondCancelCreationOperation implements Operation { - constructor(public polymerBond: PolymerBond) {} + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.cancelPolymerBondCreation(this.polymerBond); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondCancelCreationOperation'); } } export class PolymerBondFinishCreationOperation implements Operation { - public polymerBond; - constructor( - private finishPolymerBondCreationModelChange: () => PolymerBond, - ) {} + constructor(private polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { - this.polymerBond = this.finishPolymerBondCreationModelChange(); renderersManager.finishPolymerBondCreation(this.polymerBond); console.log('execute PolymerBondFinishCreationOperation'); } @@ -123,7 +98,7 @@ export class PolymerBondFinishCreationOperation implements Operation { export class PolymerBondAddAttachmentPointsOperation implements Operation { constructor( - public polymerBond: PolymerBond, + private polymerBond: PolymerBond, private secondMonomer, private firstMonomerAttachmentPoint, private secondMonomerAttachmentPoint, @@ -172,7 +147,7 @@ export class PolymerBondCleanAttachmentPointsOperation implements Operation { private firstMonomerAttachmentPoint; private secondMonomerAttachmentPoint; - constructor(public polymerBond: PolymerBond) { + constructor(private polymerBond: PolymerBond) { this.polymerBond = polymerBond; } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index 745714c552..1719a5c95e 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -87,20 +87,14 @@ export class DrawingEntitiesManager { return mergedCommand; } - public addMonomerChangeModel(monomerItem: MonomerItemType, position: Vec2) { + public addMonomer(monomerItem: MonomerItemType, position: Vec2) { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, position); monomer.moveAbsolute(position); this.monomers.set(monomer.id, monomer); - return monomer; - } - public addMonomer(monomerItem: MonomerItemType, position: Vec2) { const command = new Command(); - const operation = new MonomerAddOperation( - this.addMonomerChangeModel.bind(this, monomerItem, position), - this.deleteMonomerChangeModel.bind(this), - ); + const operation = new MonomerAddOperation(monomer); command.addOperation(operation); @@ -190,21 +184,10 @@ export class DrawingEntitiesManager { return command; } - private deleteMonomerChangeModel(monomer: BaseMonomer) { - this.monomers.delete(monomer.id); - } - public deleteMonomer(monomer: BaseMonomer) { + this.monomers.delete(monomer.id); const command = new Command(); - const operation = new MonomerDeleteOperation( - monomer, - this.addMonomerChangeModel.bind( - this, - monomer.monomerItem, - monomer.position, - ), - this.deleteMonomerChangeModel.bind(this), - ); + const operation = new MonomerDeleteOperation(monomer); command.addOperation(operation); if (monomer.hasBonds) { @@ -248,74 +231,31 @@ export class DrawingEntitiesManager { return command; } - public addPolymerBondChangeModel( - firstMonomer, - startPosition, - endPosition, - polymerBondExists?: PolymerBond, - ) { - let polymerBond = new PolymerBond(firstMonomer); - if (polymerBondExists) { - polymerBond = polymerBondExists; - } + public addPolymerBond(firstMonomer, startPosition, endPosition) { + const polymerBond = new PolymerBond(firstMonomer); this.polymerBonds.set(polymerBond.id, polymerBond); const attachmentPoint = firstMonomer.getValidSourcePoint(); firstMonomer.setPotentialBond(attachmentPoint, polymerBond); polymerBond.moveBondStartAbsolute(startPosition.x, startPosition.y); polymerBond.moveBondEndAbsolute(endPosition.x, endPosition.y); - return polymerBond; - } - public addPolymerBond(firstMonomer, startPosition, endPosition) { const command = new Command(); - - const operation = new PolymerBondAddOperation( - this.addPolymerBondChangeModel.bind( - this, - firstMonomer, - startPosition, - endPosition, - ), - this.deletePolymerBondChangeModel.bind(this), - ); + const operation = new PolymerBondAddOperation(polymerBond); command.addOperation(operation); - return { command, polymerBond: operation.polymerBond }; - } - - public deletePolymerBondChangeModel(polymerBond: PolymerBond) { - this.polymerBonds.delete(polymerBond.id); + return { command, polymerBond }; } public deletePolymerBond(polymerBond: PolymerBond) { + this.polymerBonds.delete(polymerBond.id); const command = new Command(); const operationCleanAttachmentPoints = new PolymerBondCleanAttachmentPointsOperation(polymerBond); command.addOperation(operationCleanAttachmentPoints); - const operation = new PolymerBondDeleteOperation( - polymerBond, - this.deletePolymerBondChangeModel.bind(this, polymerBond), - this.addPolymerBondChangeModel.bind( - this, - polymerBond.firstMonomer, - polymerBond.startPosition, - polymerBond.endPosition, - ), - this.finishPolymerBondCreationModelChange.bind( - this, - polymerBond.firstMonomer, - polymerBond.secondMonomer as BaseMonomer, - polymerBond.firstMonomer.getAttachmentPointByBond( - polymerBond, - ) as string, - polymerBond.secondMonomer?.getAttachmentPointByBond( - polymerBond, - ) as string, - ), - ); + const operation = new PolymerBondDeleteOperation(polymerBond); command.addOperation(operation); return command; @@ -345,34 +285,6 @@ export class DrawingEntitiesManager { return command; } - public finishPolymerBondCreationModelChange( - firstMonomer: BaseMonomer, - secondMonomer: BaseMonomer, - firstMonomerAttachmentPoint: string, - secondMonomerAttachmentPoint: string, - ) { - const polymerBond = new PolymerBond(firstMonomer); - polymerBond.setSecondMonomer(secondMonomer); - polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); - assert(polymerBond.secondMonomer); - assert(secondMonomer.renderer); - polymerBond.secondMonomer.setBond( - secondMonomerAttachmentPoint, - polymerBond, - ); - polymerBond.firstMonomer.removePotentialBonds(); - polymerBond.secondMonomer.removePotentialBonds(); - polymerBond.moveToLinkedMonomers(); - polymerBond.firstMonomer.turnOffSelection(); - polymerBond.firstMonomer.turnOffHover(); - polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); - polymerBond.secondMonomer.turnOffSelection(); - polymerBond.secondMonomer.turnOffHover(); - polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); - polymerBond.turnOffHover(); - return polymerBond; - } - public finishPolymerBondCreation( polymerBond: PolymerBond, secondMonomer: BaseMonomer, @@ -381,26 +293,16 @@ export class DrawingEntitiesManager { ) { const command = new Command(); - const firstMonomer = polymerBond.firstMonomer; - this.polymerBonds.delete(polymerBond.id); - // const operationAddAttachmentPoints = - // new PolymerBondAddAttachmentPointsOperation( - // polymerBond, - // secondMonomer, - // firstMonomerAttachmentPoint, - // secondMonomerAttachmentPoint, - // ); - - // command.addOperation(operationAddAttachmentPoints); - const operation = new PolymerBondFinishCreationOperation( - this.finishPolymerBondCreationModelChange.bind( - this, - firstMonomer, + const operationAddAttachmentPoints = + new PolymerBondAddAttachmentPointsOperation( + polymerBond, secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, - ), - ); + ); + + command.addOperation(operationAddAttachmentPoints); + const operation = new PolymerBondFinishCreationOperation(polymerBond); command.addOperation(operation); From 9492ce0905184d998eec913ced4909b4f5395b56 Mon Sep 17 00:00:00 2001 From: Sasha Graves Date: Mon, 13 Nov 2023 15:11:48 +0100 Subject: [PATCH 08/18] Revert "monomers add - delete: undo/redo; add Erase and Clear to histore" This reverts commit 5c06197b39f5d94c7cb108141a45548112dce72c. --- .../src/application/editor/EditorHistory.ts | 9 ++--- .../editor/operations/drawingEntity/index.ts | 11 +++--- .../editor/operations/monomer/index.ts | 36 ++++--------------- .../src/application/editor/tools/Clear.ts | 7 +--- .../src/application/editor/tools/Erase.ts | 2 +- .../src/domain/entities/Operation.ts | 2 -- 6 files changed, 15 insertions(+), 52 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index d0789e4d29..ed8d5c7a91 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -16,13 +16,13 @@ import { Command } from 'domain/entities/Command'; import { CoreEditor } from './Editor'; -import assert from 'assert'; + const HISTORY_SIZE = 32; // put me to options export class EditorHistory { historyStack: Command[] | [] = []; historyPointer = 0; - editor: CoreEditor | undefined; + editor: CoreEditor; private static _instance; constructor(editor: CoreEditor) { @@ -57,8 +57,6 @@ export class EditorHistory { throw new Error('Undo stack is empty'); } - assert(this.editor); - this.historyPointer--; const lastCommand = this.historyStack[this.historyPointer]; lastCommand.invert(this.editor.renderersContainer); @@ -68,9 +66,6 @@ export class EditorHistory { if (this.historyPointer === this.historyStack.length) { throw new Error('Redo stack is empty'); } - - assert(this.editor); - const lastCommand = this.historyStack[this.historyPointer]; lastCommand.execute(this.editor.renderersContainer); this.historyPointer++; diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index bddd764449..27483cf23e 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -1,6 +1,3 @@ -// eslint-disable no-unused-vars -/* eslint-disable @typescript-eslint/no-unused-vars */ - import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import { DrawingEntity } from 'domain/entities/DrawingEntity'; @@ -12,7 +9,7 @@ export class DrawingEntityHoverOperation implements Operation { renderersManager.hoverDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert DrawingEntityHoverOperation'); } } @@ -24,7 +21,7 @@ export class DrawingEntitySelectOperation implements Operation { renderersManager.selectDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert DrawingEntitySelectOperation'); } } @@ -35,7 +32,7 @@ export class DrawingEntityMoveOperation implements Operation { renderersManager.moveDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert DrawingEntityMoveOperation'); } } @@ -46,7 +43,7 @@ export class DrawingEntityRedrawOperation implements Operation { renderersManager.redrawDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { + public invert(renderersManager: RenderersManager) { console.log('invert DrawingEntityRedrawOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index e3d480012a..ee5214f1bb 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ /**************************************************************************** * Copyright 2021 EPAM Systems * @@ -21,24 +20,15 @@ import { Operation } from 'domain/entities/Operation'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; export class MonomerAddOperation implements Operation { - monomer: BaseMonomer | undefined; - constructor( - public addMonomerChangeModel: () => BaseMonomer, - public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, - private callback?: () => void, - ) {} + constructor(public monomer: BaseMonomer, private callback?: () => void) {} public execute(renderersManager: RenderersManager) { - this.monomer = this.addMonomerChangeModel(); renderersManager.addMonomer(this.monomer, this.callback); } public invert(renderersManager: RenderersManager) { - if (this.monomer) { - this.deleteMonomerChangeModel(this.monomer); - renderersManager.deleteMonomer(this.monomer); - console.log('invert MonomerAddOperation'); - } + console.log('invert MonomerAddOperation'); + renderersManager.deleteMonomer(this.monomer); } } @@ -49,7 +39,7 @@ export class MonomerMoveOperation implements Operation { renderersManager.moveMonomer(this.peptide); } - public invert() { + public invert(renderersManager: RenderersManager) { console.log('invert MonomerMoveOperation'); } } @@ -67,31 +57,19 @@ export class MonomerHoverOperation implements Operation { ); } - public invert() { + public invert(renderersManager: RenderersManager) { console.log('invert MonomerHoverOperation'); } } export class MonomerDeleteOperation implements Operation { - monomer: BaseMonomer; - constructor( - monomer: BaseMonomer, - public addMonomerChangeModel: () => BaseMonomer, - public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, - private callback?: () => void, - ) { - this.monomer = monomer; - } + constructor(private peptide: BaseMonomer) {} public execute(renderersManager: RenderersManager) { - this.deleteMonomerChangeModel(this.monomer); - renderersManager.deleteMonomer(this.monomer); + renderersManager.deleteMonomer(this.peptide); } public invert(renderersManager: RenderersManager) { - console.log(this.monomer); - this.monomer = this.addMonomerChangeModel(); - renderersManager.addMonomer(this.monomer, this.callback); console.log('invert MonomerDeleteOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Clear.ts b/packages/ketcher-core/src/application/editor/tools/Clear.ts index 7784d46924..27da31b2af 100644 --- a/packages/ketcher-core/src/application/editor/tools/Clear.ts +++ b/packages/ketcher-core/src/application/editor/tools/Clear.ts @@ -13,19 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -import { CoreEditor, EditorHistory } from 'application/editor'; +import { CoreEditor } from 'application/editor'; import { BaseTool } from 'application/editor/tools/Tool'; class ClearTool implements BaseTool { - private history: EditorHistory; - constructor(private editor: CoreEditor) { this.editor = editor; - this.history = new EditorHistory(editor); - const modelChanges = this.editor.drawingEntitiesManager.deleteAllEntities(); this.editor.renderersContainer.update(modelChanges); - this.history.update(modelChanges); } destroy() {} diff --git a/packages/ketcher-core/src/application/editor/tools/Erase.ts b/packages/ketcher-core/src/application/editor/tools/Erase.ts index 4100bd9bd7..2ee1a47011 100644 --- a/packages/ketcher-core/src/application/editor/tools/Erase.ts +++ b/packages/ketcher-core/src/application/editor/tools/Erase.ts @@ -36,8 +36,8 @@ class EraserTool implements BaseTool { this.editor.drawingEntitiesManager.deleteDrawingEntity( selectedItemRenderer.drawingEntity, ); - this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); + this.history.update(modelChanges); } } diff --git a/packages/ketcher-core/src/domain/entities/Operation.ts b/packages/ketcher-core/src/domain/entities/Operation.ts index 97c37e2a42..4fd0c40882 100644 --- a/packages/ketcher-core/src/domain/entities/Operation.ts +++ b/packages/ketcher-core/src/domain/entities/Operation.ts @@ -1,10 +1,8 @@ import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; -import { PolymerBond } from 'domain/entities/PolymerBond'; export interface Operation { monomer?: BaseMonomer; - polymerBond?: PolymerBond; execute(renderersManager: RenderersManager): void; invert(renderersManager: RenderersManager): void; } From 8d7ecedfc1fee8c6d5a624905c5a048388daa087 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Mon, 20 Nov 2023 13:33:41 +0100 Subject: [PATCH 09/18] Revert "Revert "monomers add - delete: undo/redo; add Erase and Clear to histore"" This reverts commit 9492ce0905184d998eec913ced4909b4f5395b56. --- .../src/application/editor/EditorHistory.ts | 9 +++-- .../editor/operations/drawingEntity/index.ts | 11 +++--- .../editor/operations/monomer/index.ts | 36 +++++++++++++++---- .../src/application/editor/tools/Clear.ts | 7 +++- .../src/application/editor/tools/Erase.ts | 2 +- .../src/domain/entities/Operation.ts | 2 ++ 6 files changed, 52 insertions(+), 15 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index ed8d5c7a91..d0789e4d29 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -16,13 +16,13 @@ import { Command } from 'domain/entities/Command'; import { CoreEditor } from './Editor'; - +import assert from 'assert'; const HISTORY_SIZE = 32; // put me to options export class EditorHistory { historyStack: Command[] | [] = []; historyPointer = 0; - editor: CoreEditor; + editor: CoreEditor | undefined; private static _instance; constructor(editor: CoreEditor) { @@ -57,6 +57,8 @@ export class EditorHistory { throw new Error('Undo stack is empty'); } + assert(this.editor); + this.historyPointer--; const lastCommand = this.historyStack[this.historyPointer]; lastCommand.invert(this.editor.renderersContainer); @@ -66,6 +68,9 @@ export class EditorHistory { if (this.historyPointer === this.historyStack.length) { throw new Error('Redo stack is empty'); } + + assert(this.editor); + const lastCommand = this.historyStack[this.historyPointer]; lastCommand.execute(this.editor.renderersContainer); this.historyPointer++; diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index 27483cf23e..bddd764449 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -1,3 +1,6 @@ +// eslint-disable no-unused-vars +/* eslint-disable @typescript-eslint/no-unused-vars */ + import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import { DrawingEntity } from 'domain/entities/DrawingEntity'; @@ -9,7 +12,7 @@ export class DrawingEntityHoverOperation implements Operation { renderersManager.hoverDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityHoverOperation'); } } @@ -21,7 +24,7 @@ export class DrawingEntitySelectOperation implements Operation { renderersManager.selectDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntitySelectOperation'); } } @@ -32,7 +35,7 @@ export class DrawingEntityMoveOperation implements Operation { renderersManager.moveDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityMoveOperation'); } } @@ -43,7 +46,7 @@ export class DrawingEntityRedrawOperation implements Operation { renderersManager.redrawDrawingEntity(this.drawingEntity); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert DrawingEntityRedrawOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index ad5e366765..b86f51731a 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ /**************************************************************************** * Copyright 2021 EPAM Systems * @@ -20,15 +21,24 @@ import { Operation } from 'domain/entities/Operation'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; export class MonomerAddOperation implements Operation { - constructor(public monomer: BaseMonomer, private callback?: () => void) {} + monomer: BaseMonomer | undefined; + constructor( + public addMonomerChangeModel: () => BaseMonomer, + public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, + private callback?: () => void, + ) {} public execute(renderersManager: RenderersManager) { + this.monomer = this.addMonomerChangeModel(); renderersManager.addMonomer(this.monomer, this.callback); } public invert(renderersManager: RenderersManager) { - console.log('invert MonomerAddOperation'); - renderersManager.deleteMonomer(this.monomer); + if (this.monomer) { + this.deleteMonomerChangeModel(this.monomer); + renderersManager.deleteMonomer(this.monomer); + console.log('invert MonomerAddOperation'); + } } } @@ -39,7 +49,7 @@ export class MonomerMoveOperation implements Operation { renderersManager.moveMonomer(this.peptide); } - public invert(renderersManager: RenderersManager) { + public invert() { console.log('invert MonomerMoveOperation'); } } @@ -57,7 +67,7 @@ export class MonomerHoverOperation implements Operation { ); } - public invert(renderersManager: RenderersManager) { + public invert() { console.log('invert MonomerHoverOperation'); } } @@ -77,13 +87,25 @@ export class AttachmentPointHoverOperation implements Operation { } export class MonomerDeleteOperation implements Operation { - constructor(private peptide: BaseMonomer) {} + monomer: BaseMonomer; + constructor( + monomer: BaseMonomer, + public addMonomerChangeModel: () => BaseMonomer, + public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, + private callback?: () => void, + ) { + this.monomer = monomer; + } public execute(renderersManager: RenderersManager) { - renderersManager.deleteMonomer(this.peptide); + this.deleteMonomerChangeModel(this.monomer); + renderersManager.deleteMonomer(this.monomer); } public invert(renderersManager: RenderersManager) { + console.log(this.monomer); + this.monomer = this.addMonomerChangeModel(); + renderersManager.addMonomer(this.monomer, this.callback); console.log('invert MonomerDeleteOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Clear.ts b/packages/ketcher-core/src/application/editor/tools/Clear.ts index 27da31b2af..7784d46924 100644 --- a/packages/ketcher-core/src/application/editor/tools/Clear.ts +++ b/packages/ketcher-core/src/application/editor/tools/Clear.ts @@ -13,14 +13,19 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseTool } from 'application/editor/tools/Tool'; class ClearTool implements BaseTool { + private history: EditorHistory; + constructor(private editor: CoreEditor) { this.editor = editor; + this.history = new EditorHistory(editor); + const modelChanges = this.editor.drawingEntitiesManager.deleteAllEntities(); this.editor.renderersContainer.update(modelChanges); + this.history.update(modelChanges); } destroy() {} diff --git a/packages/ketcher-core/src/application/editor/tools/Erase.ts b/packages/ketcher-core/src/application/editor/tools/Erase.ts index 2ee1a47011..4100bd9bd7 100644 --- a/packages/ketcher-core/src/application/editor/tools/Erase.ts +++ b/packages/ketcher-core/src/application/editor/tools/Erase.ts @@ -36,8 +36,8 @@ class EraserTool implements BaseTool { this.editor.drawingEntitiesManager.deleteDrawingEntity( selectedItemRenderer.drawingEntity, ); - this.editor.renderersContainer.update(modelChanges); this.history.update(modelChanges); + this.editor.renderersContainer.update(modelChanges); } } diff --git a/packages/ketcher-core/src/domain/entities/Operation.ts b/packages/ketcher-core/src/domain/entities/Operation.ts index 4fd0c40882..97c37e2a42 100644 --- a/packages/ketcher-core/src/domain/entities/Operation.ts +++ b/packages/ketcher-core/src/domain/entities/Operation.ts @@ -1,8 +1,10 @@ import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; +import { PolymerBond } from 'domain/entities/PolymerBond'; export interface Operation { monomer?: BaseMonomer; + polymerBond?: PolymerBond; execute(renderersManager: RenderersManager): void; invert(renderersManager: RenderersManager): void; } From 36fcb4b5268937fa575be227fdc4d3daa76e8981 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Mon, 20 Nov 2023 13:33:41 +0100 Subject: [PATCH 10/18] Revert "Revert "add-delete bond: undo redo (with issues)"" This reverts commit 66337a032d668d8b2cd21ec62219ec0e55eb9e98. --- .../editor/operations/polymerBond/index.ts | 47 +++++-- .../domain/entities/DrawingEntitiesManager.ts | 132 +++++++++++++++--- 2 files changed, 151 insertions(+), 28 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 1d8d5afd88..2b97f1f0a5 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -14,78 +14,103 @@ * limitations under the License. ***************************************************************************/ /* eslint-disable @typescript-eslint/no-use-before-define */ +// eslint-disable no-unused-vars +/* eslint-disable @typescript-eslint/no-unused-vars */ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import assert from 'assert'; +import { Command } from 'domain/entities/Command'; export class PolymerBondAddOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + public polymerBond; + constructor( + private addPolymerBondChangeModel: () => PolymerBond, + private deletePolymerBondChangeModel: (polymerBond) => void, + ) { + this.polymerBond = this.addPolymerBondChangeModel(); + } public execute(renderersManager: RenderersManager) { renderersManager.addPolymerBond(this.polymerBond); } public invert(renderersManager: RenderersManager) { + this.deletePolymerBondChangeModel(this.polymerBond); + renderersManager.deletePolymerBond(this.polymerBond); console.log('invert PolymerBondAddOperation'); } } export class PolymerBondDeleteOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor( + public polymerBond: PolymerBond, + private deletePolymerBondChangeModel: () => void, + private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, + private finishPolymerBondCreationModelChange: () => PolymerBond, + ) {} public execute(renderersManager: RenderersManager) { + this.deletePolymerBondChangeModel(); renderersManager.deletePolymerBond(this.polymerBond); console.log('execute PolymerBondDeleteOperation'); } public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); + this.polymerBond = this.finishPolymerBondCreationModelChange(); + this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); + + console.log('this.polymerBond: ', this.polymerBond); } } export class PolymerBondMoveOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.movePolymerBond(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondMoveOperation'); } } export class PolymerBondShowInfoOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.showPolymerBondInformation(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondShowInfoOperation'); } } export class PolymerBondCancelCreationOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + constructor(public polymerBond: PolymerBond) {} public execute(renderersManager: RenderersManager) { renderersManager.cancelPolymerBondCreation(this.polymerBond); } - public invert(renderersManager: RenderersManager) { + public invert(_renderersManager: RenderersManager) { console.log('invert PolymerBondCancelCreationOperation'); } } export class PolymerBondFinishCreationOperation implements Operation { - constructor(private polymerBond: PolymerBond) {} + public polymerBond; + constructor( + private finishPolymerBondCreationModelChange: () => PolymerBond, + ) {} public execute(renderersManager: RenderersManager) { + this.polymerBond = this.finishPolymerBondCreationModelChange(); renderersManager.finishPolymerBondCreation(this.polymerBond); console.log('execute PolymerBondFinishCreationOperation'); } @@ -98,7 +123,7 @@ export class PolymerBondFinishCreationOperation implements Operation { export class PolymerBondAddAttachmentPointsOperation implements Operation { constructor( - private polymerBond: PolymerBond, + public polymerBond: PolymerBond, private secondMonomer, private firstMonomerAttachmentPoint, private secondMonomerAttachmentPoint, @@ -147,7 +172,7 @@ export class PolymerBondCleanAttachmentPointsOperation implements Operation { private firstMonomerAttachmentPoint; private secondMonomerAttachmentPoint; - constructor(private polymerBond: PolymerBond) { + constructor(public polymerBond: PolymerBond) { this.polymerBond = polymerBond; } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index 5650229bd7..f8449036b8 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -88,14 +88,20 @@ export class DrawingEntitiesManager { return mergedCommand; } - public addMonomer(monomerItem: MonomerItemType, position: Vec2) { + public addMonomerChangeModel(monomerItem: MonomerItemType, position: Vec2) { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, position); monomer.moveAbsolute(position); this.monomers.set(monomer.id, monomer); + return monomer; + } + public addMonomer(monomerItem: MonomerItemType, position: Vec2) { const command = new Command(); - const operation = new MonomerAddOperation(monomer); + const operation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, position), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(operation); @@ -185,10 +191,21 @@ export class DrawingEntitiesManager { return command; } - public deleteMonomer(monomer: BaseMonomer) { + private deleteMonomerChangeModel(monomer: BaseMonomer) { this.monomers.delete(monomer.id); + } + + public deleteMonomer(monomer: BaseMonomer) { const command = new Command(); - const operation = new MonomerDeleteOperation(monomer); + const operation = new MonomerDeleteOperation( + monomer, + this.addMonomerChangeModel.bind( + this, + monomer.monomerItem, + monomer.position, + ), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(operation); if (monomer.hasBonds) { @@ -232,8 +249,16 @@ export class DrawingEntitiesManager { return command; } - public addPolymerBond(firstMonomer, startPosition, endPosition) { - const polymerBond = new PolymerBond(firstMonomer); + public addPolymerBondChangeModel( + firstMonomer, + startPosition, + endPosition, + polymerBondExists?: PolymerBond, + ) { + let polymerBond = new PolymerBond(firstMonomer); + if (polymerBondExists) { + polymerBond = polymerBondExists; + } this.polymerBonds.set(polymerBond.id, polymerBond); // If we started from a specific AP, we need to 'attach' the bond to the first monomer if (firstMonomer.chosenFirstAttachmentPointForBond) { @@ -243,24 +268,59 @@ export class DrawingEntitiesManager { } polymerBond.moveBondStartAbsolute(startPosition.x, startPosition.y); polymerBond.moveBondEndAbsolute(endPosition.x, endPosition.y); + return polymerBond; + } + public addPolymerBond(firstMonomer, startPosition, endPosition) { const command = new Command(); - const operation = new PolymerBondAddOperation(polymerBond); + + const operation = new PolymerBondAddOperation( + this.addPolymerBondChangeModel.bind( + this, + firstMonomer, + startPosition, + endPosition, + ), + this.deletePolymerBondChangeModel.bind(this), + ); command.addOperation(operation); - return { command, polymerBond }; + return { command, polymerBond: operation.polymerBond }; } - public deletePolymerBond(polymerBond: PolymerBond) { + public deletePolymerBondChangeModel(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); + } + + public deletePolymerBond(polymerBond: PolymerBond) { const command = new Command(); const operationCleanAttachmentPoints = new PolymerBondCleanAttachmentPointsOperation(polymerBond); command.addOperation(operationCleanAttachmentPoints); - const operation = new PolymerBondDeleteOperation(polymerBond); + const operation = new PolymerBondDeleteOperation( + polymerBond, + this.deletePolymerBondChangeModel.bind(this, polymerBond), + this.addPolymerBondChangeModel.bind( + this, + polymerBond.firstMonomer, + polymerBond.startPosition, + polymerBond.endPosition, + ), + this.finishPolymerBondCreationModelChange.bind( + this, + polymerBond.firstMonomer, + polymerBond.secondMonomer as BaseMonomer, + polymerBond.firstMonomer.getAttachmentPointByBond( + polymerBond, + ) as string, + polymerBond.secondMonomer?.getAttachmentPointByBond( + polymerBond, + ) as string, + ), + ); command.addOperation(operation); return command; @@ -291,6 +351,34 @@ export class DrawingEntitiesManager { return command; } + public finishPolymerBondCreationModelChange( + firstMonomer: BaseMonomer, + secondMonomer: BaseMonomer, + firstMonomerAttachmentPoint: string, + secondMonomerAttachmentPoint: string, + ) { + const polymerBond = new PolymerBond(firstMonomer); + polymerBond.setSecondMonomer(secondMonomer); + polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); + assert(polymerBond.secondMonomer); + assert(secondMonomer.renderer); + polymerBond.secondMonomer.setBond( + secondMonomerAttachmentPoint, + polymerBond, + ); + polymerBond.firstMonomer.removePotentialBonds(); + polymerBond.secondMonomer.removePotentialBonds(); + polymerBond.moveToLinkedMonomers(); + polymerBond.firstMonomer.turnOffSelection(); + polymerBond.firstMonomer.turnOffHover(); + polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); + polymerBond.secondMonomer.turnOffSelection(); + polymerBond.secondMonomer.turnOffHover(); + polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); + polymerBond.turnOffHover(); + return polymerBond; + } + public finishPolymerBondCreation( polymerBond: PolymerBond, secondMonomer: BaseMonomer, @@ -299,16 +387,26 @@ export class DrawingEntitiesManager { ) { const command = new Command(); - const operationAddAttachmentPoints = - new PolymerBondAddAttachmentPointsOperation( - polymerBond, + const firstMonomer = polymerBond.firstMonomer; + this.polymerBonds.delete(polymerBond.id); + // const operationAddAttachmentPoints = + // new PolymerBondAddAttachmentPointsOperation( + // polymerBond, + // secondMonomer, + // firstMonomerAttachmentPoint, + // secondMonomerAttachmentPoint, + // ); + + // command.addOperation(operationAddAttachmentPoints); + const operation = new PolymerBondFinishCreationOperation( + this.finishPolymerBondCreationModelChange.bind( + this, + firstMonomer, secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, - ); - - command.addOperation(operationAddAttachmentPoints); - const operation = new PolymerBondFinishCreationOperation(polymerBond); + ), + ); command.addOperation(operation); From f957277e89ec370238cd9328e2d93835034a0468 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Mon, 20 Nov 2023 13:33:41 +0100 Subject: [PATCH 11/18] Revert "Revert "fix finishBondCreation"" This reverts commit 6d49cf3251425ab543f47ccf1e071c75e7168d97. --- .../editor/operations/polymerBond/index.ts | 4 +- .../src/application/editor/tools/RnaPreset.ts | 6 +- .../render/renderers/RenderersManager.ts | 4 ++ .../domain/entities/DrawingEntitiesManager.ts | 68 +++++++++++-------- 4 files changed, 51 insertions(+), 31 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 2b97f1f0a5..059711b74b 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -47,7 +47,6 @@ export class PolymerBondDeleteOperation implements Operation { constructor( public polymerBond: PolymerBond, private deletePolymerBondChangeModel: () => void, - private addPolymerBondChangeModel: (polymerBondExists) => PolymerBond, private finishPolymerBondCreationModelChange: () => PolymerBond, ) {} @@ -60,7 +59,6 @@ export class PolymerBondDeleteOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); this.polymerBond = this.finishPolymerBondCreationModelChange(); - this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); console.log('this.polymerBond: ', this.polymerBond); @@ -107,6 +105,7 @@ export class PolymerBondFinishCreationOperation implements Operation { public polymerBond; constructor( private finishPolymerBondCreationModelChange: () => PolymerBond, + private deletePolymerBondCreationModelChange: (polymerBond) => void, ) {} public execute(renderersManager: RenderersManager) { @@ -117,6 +116,7 @@ export class PolymerBondFinishCreationOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondFinishCreationOperation'); + this.deletePolymerBondCreationModelChange(this.polymerBond); renderersManager.deletePolymerBond(this.polymerBond); } } diff --git a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts index ba43ee9942..df79c4aac0 100644 --- a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts +++ b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts @@ -17,7 +17,7 @@ import { Tool, IRnaPreset } from 'application/editor/tools/Tool'; import { Sugar } from 'domain/entities/Sugar'; import { Vec2 } from 'domain/entities'; -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { BaseMonomerRenderer } from 'application/render/renderers'; import { MonomerItemType } from 'domain/types'; import { monomerFactory } from '../operations/monomer/monomerFactory'; @@ -42,6 +42,8 @@ class RnaPresetTool implements Tool { readonly RNA_BASE_PREVIEW_OFFSET_X = 2; readonly RNA_BASE_PREVIEW_OFFSET_Y = 20; readonly PHOSPHATE_PREVIEW_OFFSET_X = 18; + history: EditorHistory; + constructor(private editor: CoreEditor, preset: IRnaPreset) { this.editor = editor; if (preset?.base) { @@ -53,6 +55,7 @@ class RnaPresetTool implements Tool { if (preset?.sugar) { this.sugar = preset?.sugar; } + this.history = new EditorHistory(this.editor); // здесь история пишется } mousedown() { @@ -93,6 +96,7 @@ class RnaPresetTool implements Tool { : undefined, }); + this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } diff --git a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts index 030a61e1fd..056fae86ed 100644 --- a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts +++ b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts @@ -98,6 +98,10 @@ export class RenderersManager { polymerBond.secondMonomer.renderer?.redrawAttachmentPoints(); polymerBond.secondMonomer.renderer?.drawSelection(); polymerBond.secondMonomer.renderer?.redrawHover(); + this.polymerBonds.get(polymerBond.id)?.remove(); + const polymerBondRenderer = new PolymerBondRenderer(polymerBond); + this.polymerBonds.set(polymerBond.id, polymerBondRenderer); + polymerBond.renderer?.show(); } public cancelPolymerBondCreation(polymerBond) { diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index f8449036b8..d2f6a37444 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -26,7 +26,6 @@ import { PolymerBondMoveOperation, PolymerBondShowInfoOperation, PolymerBondCleanAttachmentPointsOperation, - PolymerBondAddAttachmentPointsOperation, } from 'application/editor/operations/polymerBond'; import { monomerFactory } from 'application/editor/operations/monomer/monomerFactory'; import { provideEditorSettings } from 'application/editor/editorSettings'; @@ -291,6 +290,21 @@ export class DrawingEntitiesManager { public deletePolymerBondChangeModel(polymerBond: PolymerBond) { this.polymerBonds.delete(polymerBond.id); + + const firstMonomerAttachmentPoint = + polymerBond.firstMonomer.getAttachmentPointByBond(polymerBond); + const secondMonomerAttachmentPoint = + polymerBond.secondMonomer?.getAttachmentPointByBond(polymerBond); + polymerBond.firstMonomer.removePotentialBonds(); + polymerBond.secondMonomer?.removePotentialBonds(); + polymerBond.firstMonomer.turnOffSelection(); + polymerBond.secondMonomer?.turnOffSelection(); + if (firstMonomerAttachmentPoint) { + polymerBond.firstMonomer.unsetBond(firstMonomerAttachmentPoint); + } + if (secondMonomerAttachmentPoint) { + polymerBond.secondMonomer?.unsetBond(secondMonomerAttachmentPoint); + } } public deletePolymerBond(polymerBond: PolymerBond) { @@ -303,12 +317,6 @@ export class DrawingEntitiesManager { const operation = new PolymerBondDeleteOperation( polymerBond, this.deletePolymerBondChangeModel.bind(this, polymerBond), - this.addPolymerBondChangeModel.bind( - this, - polymerBond.firstMonomer, - polymerBond.startPosition, - polymerBond.endPosition, - ), this.finishPolymerBondCreationModelChange.bind( this, polymerBond.firstMonomer, @@ -356,12 +364,16 @@ export class DrawingEntitiesManager { secondMonomer: BaseMonomer, firstMonomerAttachmentPoint: string, secondMonomerAttachmentPoint: string, + bondId?: number, ) { const polymerBond = new PolymerBond(firstMonomer); + if (bondId) { + polymerBond.id = bondId; + } + this.polymerBonds.set(polymerBond.id, polymerBond); polymerBond.setSecondMonomer(secondMonomer); polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); assert(polymerBond.secondMonomer); - assert(secondMonomer.renderer); polymerBond.secondMonomer.setBond( secondMonomerAttachmentPoint, polymerBond, @@ -389,15 +401,6 @@ export class DrawingEntitiesManager { const firstMonomer = polymerBond.firstMonomer; this.polymerBonds.delete(polymerBond.id); - // const operationAddAttachmentPoints = - // new PolymerBondAddAttachmentPointsOperation( - // polymerBond, - // secondMonomer, - // firstMonomerAttachmentPoint, - // secondMonomerAttachmentPoint, - // ); - - // command.addOperation(operationAddAttachmentPoints); const operation = new PolymerBondFinishCreationOperation( this.finishPolymerBondCreationModelChange.bind( this, @@ -405,7 +408,9 @@ export class DrawingEntitiesManager { secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, + polymerBond.id, ), + this.deletePolymerBondChangeModel.bind(this), ); command.addOperation(operation); @@ -635,16 +640,13 @@ export class DrawingEntitiesManager { monomersToAdd.forEach(([monomerItem, monomerPosition]) => { const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, monomerPosition); - this.monomers.set(monomer.id, monomer); let monomerAddOperation; if (previousMonomer) { - const polymerBond = new PolymerBond(previousMonomer); - this.polymerBonds.set(polymerBond.id, polymerBond); - monomerAddOperation = new MonomerAddOperation(monomer, () => { - polymerBond.moveToLinkedMonomers(); - }); + monomerAddOperation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(monomerAddOperation); - polymerBond.setSecondMonomer(monomer); // requirements are: Base(R1)-(R3)Sugar(R2)-(R1)Phosphate const attPointStart = previousMonomer.getValidSourcePoint(monomer); @@ -653,12 +655,22 @@ export class DrawingEntitiesManager { assert(attPointStart); assert(attPointEnd); - previousMonomer.setBond(attPointStart, polymerBond); - monomer.setBond(attPointEnd, polymerBond); - const operation = new PolymerBondAddOperation(polymerBond); + const operation = new PolymerBondFinishCreationOperation( + this.finishPolymerBondCreationModelChange.bind( + this, + previousMonomer, + monomer, + attPointStart, + attPointEnd, + ), + this.deletePolymerBondChangeModel.bind(this), + ); command.addOperation(operation); } else { - monomerAddOperation = new MonomerAddOperation(monomer); + monomerAddOperation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), + this.deleteMonomerChangeModel.bind(this), + ); command.addOperation(monomerAddOperation); } From 4c254776d3a4cfe1d2ef9424cc65b50d2ec63da5 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Tue, 21 Nov 2023 17:01:52 +0100 Subject: [PATCH 12/18] - fixed/added undo/redo for snake mode layout, rna/peptides/bonds operations, clear canvas, open from file --- .../entities/drawingEntitiesManager.test.ts | 6 +- .../src/application/editor/Editor.ts | 3 +- .../src/application/editor/EditorHistory.ts | 3 + .../editor/MacromoleculesConverter.ts | 2 +- .../editor/operations/drawingEntity/index.ts | 30 ++- .../editor/operations/monomer/index.ts | 31 ++- .../editor/operations/polymerBond/index.ts | 119 ++-------- .../src/application/editor/tools/Bond.ts | 17 +- .../editor/tools/SelectRectangle.ts | 27 ++- .../render/renderers/RenderersManager.ts | 12 +- .../domain/entities/DrawingEntitiesManager.ts | 215 +++++++++++++----- .../src/domain/entities/DrawingEntity.ts | 1 + .../ket/fromKet/polymerBondToDrawingEntity.ts | 12 +- .../src/components/modal/Open/Open.tsx | 4 +- 14 files changed, 280 insertions(+), 202 deletions(-) diff --git a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts index 90f3c55138..07f58c6f18 100644 --- a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts +++ b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts @@ -33,7 +33,7 @@ describe('Drawing Entities Manager', () => { it('should create polymer bond', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); - const { command, polymerBond } = drawingEntitiesManager.addPolymerBond( + const { command, polymerBond } = drawingEntitiesManager.startPolymerBondCreation( new Peptide(peptideMonomerItem), new Vec2(0, 0), new Vec2(10, 10), @@ -55,7 +55,7 @@ describe('Drawing Entities Manager', () => { secondPeptide.attachmentPointsToBonds = { R2: null }; secondPeptide.potentialAttachmentPointsToBonds = { R2: null }; - const { polymerBond } = drawingEntitiesManager.addPolymerBond( + const { polymerBond } = drawingEntitiesManager.startPolymerBondCreation( firstPeptide, new Vec2(0, 0), new Vec2(10, 10), @@ -96,7 +96,7 @@ describe('Drawing Entities Manager', () => { it('should delete polymer bond', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); - const { polymerBond } = drawingEntitiesManager.addPolymerBond( + const { polymerBond } = drawingEntitiesManager.startPolymerBondCreation( new Peptide(peptideMonomerItem), new Vec2(0, 0), new Vec2(10, 10), diff --git a/packages/ketcher-core/src/application/editor/Editor.ts b/packages/ketcher-core/src/application/editor/Editor.ts index 7ccf9eae05..5c4795417d 100644 --- a/packages/ketcher-core/src/application/editor/Editor.ts +++ b/packages/ketcher-core/src/application/editor/Editor.ts @@ -128,11 +128,12 @@ export class CoreEditor { this.canvas.width.baseVal.value, isSnakeMode, ); + const history = new EditorHistory(this); + history.update(modelChanges); this.renderersContainer.update(modelChanges); } private onSelectHistory(name: string) { - console.log(name); const history = new EditorHistory(this); if (name === 'undo') { history.undo(); diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index d0789e4d29..c6c1014362 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -61,6 +61,9 @@ export class EditorHistory { this.historyPointer--; const lastCommand = this.historyStack[this.historyPointer]; + const turnOffSelectionCommand = + this.editor?.drawingEntitiesManager.unselectAllDrawingEntities(); + this.editor?.renderersContainer.update(turnOffSelectionCommand); lastCommand.invert(this.editor.renderersContainer); } diff --git a/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts b/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts index 40b4d523c2..4942198182 100644 --- a/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts +++ b/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts @@ -278,7 +278,7 @@ export class MacromoleculesConverter { endAtomSgroup instanceof MonomerMicromolecule ) { const { command: polymerBondAdditionCommand, polymerBond } = - drawingEntitiesManager.addPolymerBond( + drawingEntitiesManager.startPolymerBondCreation( sgroupToMonomer.get(beginAtomSgroup), sgroupToMonomer.get(beginAtomSgroup)?.position, sgroupToMonomer.get(endAtomSgroup)?.position, diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index bddd764449..fc75e410f6 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -29,24 +29,40 @@ export class DrawingEntitySelectOperation implements Operation { } } export class DrawingEntityMoveOperation implements Operation { - constructor(private drawingEntity: DrawingEntity) {} + private wasInverted = false; + constructor( + private moveDrawingEntityChangeModel: () => void, + private invertMoveDrawingEntityChangeModel: () => void, + private redoDrawingEntityChangeModel: () => void, + private drawingEntity: DrawingEntity, + ) {} public execute(renderersManager: RenderersManager) { + this.wasInverted + ? this.redoDrawingEntityChangeModel() + : this.moveDrawingEntityChangeModel(); renderersManager.moveDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { - console.log('invert DrawingEntityMoveOperation'); + public invert(renderersManager: RenderersManager) { + this.invertMoveDrawingEntityChangeModel(); + renderersManager.moveDrawingEntity(this.drawingEntity); + this.wasInverted = true; } } export class DrawingEntityRedrawOperation implements Operation { - constructor(private drawingEntity: DrawingEntity) {} + constructor( + private drawingEntityRedrawModelChange: () => DrawingEntity, + private invertDrawingEntityRedrawModelChange: () => DrawingEntity, + ) {} public execute(renderersManager: RenderersManager) { - renderersManager.redrawDrawingEntity(this.drawingEntity); + const drawingEntity = this.drawingEntityRedrawModelChange(); + renderersManager.redrawDrawingEntity(drawingEntity); } - public invert(_renderersManager: RenderersManager) { - console.log('invert DrawingEntityRedrawOperation'); + public invert(renderersManager: RenderersManager) { + const drawingEntity = this.invertDrawingEntityRedrawModelChange(); + renderersManager.redrawDrawingEntity(drawingEntity); } } diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index b86f51731a..5c9a647e7e 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -21,15 +21,17 @@ import { Operation } from 'domain/entities/Operation'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; export class MonomerAddOperation implements Operation { - monomer: BaseMonomer | undefined; + public monomer: BaseMonomer; constructor( - public addMonomerChangeModel: () => BaseMonomer, + public addMonomerChangeModel: (monomer?: BaseMonomer) => BaseMonomer, public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, private callback?: () => void, - ) {} + ) { + this.monomer = this.addMonomerChangeModel(); + } public execute(renderersManager: RenderersManager) { - this.monomer = this.addMonomerChangeModel(); + this.monomer = this.addMonomerChangeModel(this.monomer); renderersManager.addMonomer(this.monomer, this.callback); } @@ -43,14 +45,22 @@ export class MonomerAddOperation implements Operation { } export class MonomerMoveOperation implements Operation { - constructor(private peptide: BaseMonomer) {} + public monomer: BaseMonomer; + constructor( + private rearrangeChainModelChange: () => BaseMonomer, + private invertRearrangeChainModelChange: () => BaseMonomer, + ) { + this.monomer = this.rearrangeChainModelChange(); + } public execute(renderersManager: RenderersManager) { - renderersManager.moveMonomer(this.peptide); + this.monomer = this.rearrangeChainModelChange(); + renderersManager.moveMonomer(this.monomer); } - public invert() { - console.log('invert MonomerMoveOperation'); + public invert(renderersManager: RenderersManager) { + this.monomer = this.invertRearrangeChainModelChange(); + renderersManager.moveMonomer(this.monomer); } } @@ -90,7 +100,7 @@ export class MonomerDeleteOperation implements Operation { monomer: BaseMonomer; constructor( monomer: BaseMonomer, - public addMonomerChangeModel: () => BaseMonomer, + public addMonomerChangeModel: (monomer: BaseMonomer) => BaseMonomer, public deleteMonomerChangeModel: (monomer: BaseMonomer) => void, private callback?: () => void, ) { @@ -103,8 +113,7 @@ export class MonomerDeleteOperation implements Operation { } public invert(renderersManager: RenderersManager) { - console.log(this.monomer); - this.monomer = this.addMonomerChangeModel(); + this.monomer = this.addMonomerChangeModel(this.monomer); renderersManager.addMonomer(this.monomer, this.callback); console.log('invert MonomerDeleteOperation'); } diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 059711b74b..5af69a870e 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -20,19 +20,20 @@ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; -import assert from 'assert'; -import { Command } from 'domain/entities/Command'; export class PolymerBondAddOperation implements Operation { public polymerBond; constructor( - private addPolymerBondChangeModel: () => PolymerBond, + private addPolymerBondChangeModel: ( + polymerBond?: PolymerBond, + ) => PolymerBond, private deletePolymerBondChangeModel: (polymerBond) => void, ) { this.polymerBond = this.addPolymerBondChangeModel(); } public execute(renderersManager: RenderersManager) { + this.polymerBond = this.addPolymerBondChangeModel(this.polymerBond); renderersManager.addPolymerBond(this.polymerBond); } @@ -47,7 +48,9 @@ export class PolymerBondDeleteOperation implements Operation { constructor( public polymerBond: PolymerBond, private deletePolymerBondChangeModel: () => void, - private finishPolymerBondCreationModelChange: () => PolymerBond, + private finishPolymerBondCreationModelChange: ( + polymerBond?: PolymerBond, + ) => PolymerBond, ) {} public execute(renderersManager: RenderersManager) { @@ -58,10 +61,10 @@ export class PolymerBondDeleteOperation implements Operation { public invert(renderersManager: RenderersManager) { console.log('invert PolymerBondDeleteOperation'); - this.polymerBond = this.finishPolymerBondCreationModelChange(); + this.polymerBond = this.finishPolymerBondCreationModelChange( + this.polymerBond, + ); renderersManager.addPolymerBond(this.polymerBond); - - console.log('this.polymerBond: ', this.polymerBond); } } @@ -104,12 +107,18 @@ export class PolymerBondCancelCreationOperation implements Operation { export class PolymerBondFinishCreationOperation implements Operation { public polymerBond; constructor( - private finishPolymerBondCreationModelChange: () => PolymerBond, + private finishPolymerBondCreationModelChange: ( + polymerBond?: PolymerBond, + ) => PolymerBond, private deletePolymerBondCreationModelChange: (polymerBond) => void, - ) {} + ) { + this.polymerBond = this.finishPolymerBondCreationModelChange(); + } public execute(renderersManager: RenderersManager) { - this.polymerBond = this.finishPolymerBondCreationModelChange(); + this.polymerBond = this.finishPolymerBondCreationModelChange( + this.polymerBond, + ); renderersManager.finishPolymerBondCreation(this.polymerBond); console.log('execute PolymerBondFinishCreationOperation'); } @@ -120,93 +129,3 @@ export class PolymerBondFinishCreationOperation implements Operation { renderersManager.deletePolymerBond(this.polymerBond); } } - -export class PolymerBondAddAttachmentPointsOperation implements Operation { - constructor( - public polymerBond: PolymerBond, - private secondMonomer, - private firstMonomerAttachmentPoint, - private secondMonomerAttachmentPoint, - ) { - this.polymerBond = polymerBond; - } - - public execute() { - this.polymerBond.setSecondMonomer(this.secondMonomer); - this.polymerBond.firstMonomer.setBond( - this.firstMonomerAttachmentPoint, - this.polymerBond, - ); - assert(this.polymerBond.secondMonomer); - assert(this.secondMonomer.renderer); - this.polymerBond.secondMonomer.setBond( - this.secondMonomerAttachmentPoint, - this.polymerBond, - ); - this.polymerBond.firstMonomer.removePotentialBonds(); - this.polymerBond.secondMonomer.removePotentialBonds(); - - this.polymerBond.moveToLinkedMonomers(); - this.polymerBond.firstMonomer.turnOffSelection(); - this.polymerBond.firstMonomer.turnOffHover(); - this.polymerBond.firstMonomer.turnOffAttachmentPointsVisibility(); - this.polymerBond.secondMonomer.turnOffSelection(); - this.polymerBond.secondMonomer.turnOffHover(); - this.polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); - this.polymerBond.turnOffHover(); - - console.log('execute PolymerBondAddAttachmentPointsOperation'); - } - - public invert() { - const cleanAttachmentPoints = new PolymerBondCleanAttachmentPointsOperation( - this.polymerBond, - ); - cleanAttachmentPoints.execute(); - console.log('invert PolymerBondAddAttachmentPointsOperation'); - } -} - -export class PolymerBondCleanAttachmentPointsOperation implements Operation { - private secondMonomer; - private firstMonomerAttachmentPoint; - private secondMonomerAttachmentPoint; - - constructor(public polymerBond: PolymerBond) { - this.polymerBond = polymerBond; - } - - public execute() { - this.firstMonomerAttachmentPoint = - this.polymerBond.firstMonomer.getAttachmentPointByBond(this.polymerBond); - this.secondMonomerAttachmentPoint = - this.polymerBond.secondMonomer?.getAttachmentPointByBond( - this.polymerBond, - ); - this.secondMonomer = this.polymerBond.secondMonomer; - this.polymerBond.firstMonomer.removePotentialBonds(); - this.polymerBond.secondMonomer?.removePotentialBonds(); - this.polymerBond.firstMonomer.turnOffSelection(); - this.polymerBond.secondMonomer?.turnOffSelection(); - if (this.firstMonomerAttachmentPoint) { - this.polymerBond.firstMonomer.unsetBond(this.firstMonomerAttachmentPoint); - } - if (this.secondMonomerAttachmentPoint) { - this.polymerBond.secondMonomer?.unsetBond( - this.secondMonomerAttachmentPoint, - ); - } - console.log('execute PolymerBondCleanAttachmentPointsOperation'); - } - - public invert() { - const addAttachmentPoints = new PolymerBondAddAttachmentPointsOperation( - this.polymerBond, - this.secondMonomer, - this.firstMonomerAttachmentPoint, - this.secondMonomerAttachmentPoint, - ); - addAttachmentPoints.execute(); - console.log('invert PolymerBondCleanAttachmentPointsOperation'); - } -} diff --git a/packages/ketcher-core/src/application/editor/tools/Bond.ts b/packages/ketcher-core/src/application/editor/tools/Bond.ts index 097615a843..a0420bde8c 100644 --- a/packages/ketcher-core/src/application/editor/tools/Bond.ts +++ b/packages/ketcher-core/src/application/editor/tools/Bond.ts @@ -31,11 +31,10 @@ class PolymerBond implements BaseTool { private bondRenderer?: PolymerBondRenderer; private isBondConnectionModalOpen = false; history: EditorHistory; - historyMouseDown: Command | undefined; constructor(private editor: CoreEditor) { this.editor = editor; - this.history = new EditorHistory(this.editor); // здесь история пишется + this.history = new EditorHistory(this.editor); } public mouseDownAttachmentPoint(event) { @@ -74,7 +73,7 @@ class PolymerBond implements BaseTool { return; } const { polymerBond, command: modelChanges } = - this.editor.drawingEntitiesManager.addPolymerBond( + this.editor.drawingEntitiesManager.startPolymerBondCreation( selectedRenderer.monomer, selectedRenderer.monomer.position, Coordinates.canvasToModel(this.editor.lastCursorPositionOfCanvas), @@ -82,7 +81,6 @@ class PolymerBond implements BaseTool { this.editor.renderersContainer.update(modelChanges); this.bondRenderer = polymerBond.renderer; - this.historyMouseDown = modelChanges; } } @@ -249,9 +247,11 @@ class PolymerBond implements BaseTool { }); return; } - const modelChanges = this.finishBondCreation(renderer.monomer); this.editor.renderersContainer.update(modelChanges); + this.editor.renderersContainer.deletePolymerBond( + this.bondRenderer.polymerBond, + ); this.bondRenderer = undefined; event.stopPropagation(); } @@ -337,10 +337,11 @@ class PolymerBond implements BaseTool { // This logic so far is only for no-modal connections. Maybe then we can chain it after modal invoke const modelChanges = this.finishBondCreation(renderer.monomer); this.editor.renderersContainer.update(modelChanges); + this.editor.renderersContainer.deletePolymerBond( + this.bondRenderer.polymerBond, + ); this.bondRenderer = undefined; - assert(this.historyMouseDown); - this.historyMouseDown.merge(modelChanges); - this.history.update(this.historyMouseDown); + this.history.update(modelChanges); event.stopPropagation(); } } diff --git a/packages/ketcher-core/src/application/editor/tools/SelectRectangle.ts b/packages/ketcher-core/src/application/editor/tools/SelectRectangle.ts index 3f9264c0c8..235ee76d9e 100644 --- a/packages/ketcher-core/src/application/editor/tools/SelectRectangle.ts +++ b/packages/ketcher-core/src/application/editor/tools/SelectRectangle.ts @@ -14,7 +14,7 @@ * limitations under the License. ***************************************************************************/ import { Vec2 } from 'domain/entities'; -import { CoreEditor } from 'application/editor'; +import { CoreEditor, EditorHistory } from 'application/editor'; import { brush as d3Brush, select } from 'd3'; import { BaseRenderer } from 'application/render/renderers/BaseRenderer'; import { Command } from 'domain/entities/Command'; @@ -26,10 +26,13 @@ class SelectRectangle implements BaseTool { private brushArea; private moveStarted; private mousePositionAfterMove = new Vec2(0, 0, 0); + private mousePositionBeforeMove = new Vec2(0, 0, 0); private canvasResizeObserver?: ResizeObserver; + private history: EditorHistory; constructor(private editor: CoreEditor) { this.editor = editor; + this.history = new EditorHistory(this.editor); this.destroy(); this.createBrush(); @@ -98,6 +101,7 @@ class SelectRectangle implements BaseTool { if (renderer instanceof BaseRenderer) { this.moveStarted = true; this.mousePositionAfterMove = this.editor.lastCursorPositionOfCanvas; + this.mousePositionBeforeMove = this.editor.lastCursorPositionOfCanvas; if (renderer.drawingEntity.selected) { return; } else { @@ -132,8 +136,29 @@ class SelectRectangle implements BaseTool { mouseup(event) { const renderer = event.target.__data__; + if (this.moveStarted && renderer.drawingEntity.selected) { this.moveStarted = false; + + if ( + Vec2.diff( + this.mousePositionAfterMove, + this.mousePositionBeforeMove, + ).length() === 0 + ) { + return; + } + const modelChanges = + this.editor.drawingEntitiesManager.moveSelectedDrawingEntities( + new Vec2(0, 0), + Coordinates.canvasToModel( + new Vec2( + this.mousePositionAfterMove.x - this.mousePositionBeforeMove.x, + this.mousePositionAfterMove.y - this.mousePositionBeforeMove.y, + ), + ), + ); + this.history.update(modelChanges); } } diff --git a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts index 056fae86ed..36c7ff7b59 100644 --- a/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts +++ b/packages/ketcher-core/src/application/render/renderers/RenderersManager.ts @@ -29,6 +29,7 @@ export class RenderersManager { public moveDrawingEntity(drawingEntity: DrawingEntity) { assert(drawingEntity.baseRenderer); drawingEntity.baseRenderer.moveSelection(); + drawingEntity.baseRenderer.drawSelection(); } public addMonomer(monomer: BaseMonomer, callback?: () => void) { @@ -85,22 +86,21 @@ export class RenderersManager { polymerBond.renderer?.remove(); polymerBond?.firstMonomer?.renderer?.redrawAttachmentPoints(); polymerBond?.secondMonomer?.renderer?.redrawAttachmentPoints(); - this.monomers.delete(polymerBond.id); + this.polymerBonds.delete(polymerBond.id); } public finishPolymerBondCreation(polymerBond) { assert(polymerBond.secondMonomer); - polymerBond.renderer?.moveSelection(); - polymerBond.renderer?.redrawHover(); + + const polymerBondRenderer = new PolymerBondRenderer(polymerBond); + this.polymerBonds.set(polymerBond.id, polymerBondRenderer); polymerBond.firstMonomer.renderer?.redrawAttachmentPoints(); polymerBond.firstMonomer.renderer?.drawSelection(); polymerBond.firstMonomer.renderer?.redrawHover(); polymerBond.secondMonomer.renderer?.redrawAttachmentPoints(); polymerBond.secondMonomer.renderer?.drawSelection(); polymerBond.secondMonomer.renderer?.redrawHover(); - this.polymerBonds.get(polymerBond.id)?.remove(); - const polymerBondRenderer = new PolymerBondRenderer(polymerBond); - this.polymerBonds.set(polymerBond.id, polymerBondRenderer); + polymerBond.renderer?.show(); } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index d2f6a37444..f91f614054 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -25,7 +25,6 @@ import { PolymerBondFinishCreationOperation, PolymerBondMoveOperation, PolymerBondShowInfoOperation, - PolymerBondCleanAttachmentPointsOperation, } from 'application/editor/operations/polymerBond'; import { monomerFactory } from 'application/editor/operations/monomer/monomerFactory'; import { provideEditorSettings } from 'application/editor/editorSettings'; @@ -81,13 +80,21 @@ export class DrawingEntitiesManager { public deleteAllEntities() { const mergedCommand = new Command(); this.allEntities.forEach(([, drawingEntity]) => { - const command = this.deleteDrawingEntity(drawingEntity); + const command = this.deleteDrawingEntity(drawingEntity, false); mergedCommand.merge(command); }); return mergedCommand; } - public addMonomerChangeModel(monomerItem: MonomerItemType, position: Vec2) { + public addMonomerChangeModel( + monomerItem: MonomerItemType, + position: Vec2, + _monomer?: BaseMonomer, + ) { + if (_monomer) { + this.monomers.set(_monomer.id, _monomer); + return _monomer; + } const [Monomer] = monomerFactory(monomerItem); const monomer = new Monomer(monomerItem, position); monomer.moveAbsolute(position); @@ -107,9 +114,12 @@ export class DrawingEntitiesManager { return command; } - public deleteDrawingEntity(drawingEntity: DrawingEntity) { + public deleteDrawingEntity( + drawingEntity: DrawingEntity, + needToDeleteConnectedEntities = true, + ) { if (drawingEntity instanceof BaseMonomer) { - return this.deleteMonomer(drawingEntity); + return this.deleteMonomer(drawingEntity, needToDeleteConnectedEntities); } else if (drawingEntity instanceof PolymerBond) { return this.deletePolymerBond(drawingEntity); } else { @@ -149,13 +159,33 @@ export class DrawingEntitiesManager { return command; } - public moveSelectedDrawingEntities(offset: Vec2) { + public moveDrawingEntityModelChange( + drawingEntity: DrawingEntity, + offset?: Vec2, + ) { + if (drawingEntity instanceof PolymerBond) { + drawingEntity.moveToLinkedMonomers(); + } else { + assert(offset); + drawingEntity.moveRelative(offset); + } + } + + public moveSelectedDrawingEntities( + partOfMovementOffset: Vec2, + fullMovementOffset?: Vec2, + ) { const command = new Command(); this.monomers.forEach((drawingEntity) => { if (drawingEntity.selected) { - drawingEntity.moveRelative(offset); - command.merge(this.createDrawingEntityMovingCommand(drawingEntity)); + command.merge( + this.createDrawingEntityMovingCommand( + drawingEntity, + partOfMovementOffset, + fullMovementOffset, + ), + ); } }); @@ -165,26 +195,60 @@ export class DrawingEntitiesManager { drawingEntity.firstMonomer.selected || drawingEntity.secondMonomer?.selected ) { - drawingEntity.moveToLinkedMonomers(); - command.merge(this.createDrawingEntityMovingCommand(drawingEntity)); + command.merge( + this.createDrawingEntityMovingCommand( + drawingEntity, + partOfMovementOffset, + fullMovementOffset, + ), + ); } }); return command; } - public createDrawingEntityMovingCommand(drawingEntity: DrawingEntity) { + public createDrawingEntityMovingCommand( + drawingEntity: DrawingEntity, + partOfMovementOffset: Vec2, + fullMovementOffset?: Vec2, + ) { const command = new Command(); - const movingCommand = new DrawingEntityMoveOperation(drawingEntity); + const movingCommand = new DrawingEntityMoveOperation( + this.moveDrawingEntityModelChange.bind( + this, + drawingEntity, + partOfMovementOffset, + ), + this.moveDrawingEntityModelChange.bind( + this, + drawingEntity, + fullMovementOffset + ? fullMovementOffset.negated() + : partOfMovementOffset.negated(), + ), + this.moveDrawingEntityModelChange.bind( + this, + drawingEntity, + fullMovementOffset || partOfMovementOffset, + ), + drawingEntity, + ); command.addOperation(movingCommand); return command; } - public createDrawingEntityRedrawCommand(drawingEntity: DrawingEntity) { + public createDrawingEntityRedrawCommand( + drawingEntityRedrawModelChange: () => DrawingEntity, + invertDrawingEntityRedrawModelChange: () => DrawingEntity, + ) { const command = new Command(); - const redrawCommand = new DrawingEntityRedrawOperation(drawingEntity); + const redrawCommand = new DrawingEntityRedrawOperation( + drawingEntityRedrawModelChange, + invertDrawingEntityRedrawModelChange, + ); command.addOperation(redrawCommand); return command; @@ -194,7 +258,10 @@ export class DrawingEntitiesManager { this.monomers.delete(monomer.id); } - public deleteMonomer(monomer: BaseMonomer) { + public deleteMonomer( + monomer: BaseMonomer, + needToDeleteConnectedBonds = true, + ) { const command = new Command(); const operation = new MonomerDeleteOperation( monomer, @@ -207,7 +274,7 @@ export class DrawingEntitiesManager { ); command.addOperation(operation); - if (monomer.hasBonds) { + if (needToDeleteConnectedBonds && monomer.hasBonds) { monomer.forEachBond((bond) => { command.merge(this.deletePolymerBond(bond)); }); @@ -248,16 +315,18 @@ export class DrawingEntitiesManager { return command; } - public addPolymerBondChangeModel( + public startPolymerBondCreationChangeModel( firstMonomer, startPosition, endPosition, - polymerBondExists?: PolymerBond, + _polymerBond?: PolymerBond, ) { - let polymerBond = new PolymerBond(firstMonomer); - if (polymerBondExists) { - polymerBond = polymerBondExists; + if (_polymerBond) { + this.polymerBonds.set(_polymerBond.id, _polymerBond); + return _polymerBond; } + + const polymerBond = new PolymerBond(firstMonomer); this.polymerBonds.set(polymerBond.id, polymerBond); // If we started from a specific AP, we need to 'attach' the bond to the first monomer if (firstMonomer.chosenFirstAttachmentPointForBond) { @@ -270,11 +339,11 @@ export class DrawingEntitiesManager { return polymerBond; } - public addPolymerBond(firstMonomer, startPosition, endPosition) { + public startPolymerBondCreation(firstMonomer, startPosition, endPosition) { const command = new Command(); const operation = new PolymerBondAddOperation( - this.addPolymerBondChangeModel.bind( + this.startPolymerBondCreationChangeModel.bind( this, firstMonomer, startPosition, @@ -310,10 +379,6 @@ export class DrawingEntitiesManager { public deletePolymerBond(polymerBond: PolymerBond) { const command = new Command(); - const operationCleanAttachmentPoints = - new PolymerBondCleanAttachmentPointsOperation(polymerBond); - command.addOperation(operationCleanAttachmentPoints); - const operation = new PolymerBondDeleteOperation( polymerBond, this.deletePolymerBondChangeModel.bind(this, polymerBond), @@ -330,7 +395,7 @@ export class DrawingEntitiesManager { ), ); command.addOperation(operation); - + console.log(this); return command; } @@ -364,12 +429,16 @@ export class DrawingEntitiesManager { secondMonomer: BaseMonomer, firstMonomerAttachmentPoint: string, secondMonomerAttachmentPoint: string, - bondId?: number, + _polymerBond?: PolymerBond, ) { - const polymerBond = new PolymerBond(firstMonomer); - if (bondId) { - polymerBond.id = bondId; + if (_polymerBond) { + this.polymerBonds.set(_polymerBond.id, _polymerBond); + firstMonomer.setBond(firstMonomerAttachmentPoint, _polymerBond); + secondMonomer.setBond(secondMonomerAttachmentPoint, _polymerBond); + return _polymerBond; } + + const polymerBond = new PolymerBond(firstMonomer); this.polymerBonds.set(polymerBond.id, polymerBond); polymerBond.setSecondMonomer(secondMonomer); polymerBond.firstMonomer.setBond(firstMonomerAttachmentPoint, polymerBond); @@ -378,6 +447,7 @@ export class DrawingEntitiesManager { secondMonomerAttachmentPoint, polymerBond, ); + polymerBond.firstMonomer.removePotentialBonds(); polymerBond.secondMonomer.removePotentialBonds(); polymerBond.moveToLinkedMonomers(); @@ -388,6 +458,7 @@ export class DrawingEntitiesManager { polymerBond.secondMonomer.turnOffHover(); polymerBond.secondMonomer.turnOffAttachmentPointsVisibility(); polymerBond.turnOffHover(); + return polymerBond; } @@ -408,7 +479,30 @@ export class DrawingEntitiesManager { secondMonomer, firstMonomerAttachmentPoint, secondMonomerAttachmentPoint, - polymerBond.id, + ), + this.deletePolymerBondChangeModel.bind(this), + ); + + command.addOperation(operation); + + return command; + } + + public createPolymerBond( + firstMonomer: BaseMonomer, + secondMonomer: BaseMonomer, + firstMonomerAttachmentPoint: string, + secondMonomerAttachmentPoint: string, + ) { + const command = new Command(); + + const operation = new PolymerBondFinishCreationOperation( + this.finishPolymerBondCreationModelChange.bind( + this, + firstMonomer, + secondMonomer, + firstMonomerAttachmentPoint, + secondMonomerAttachmentPoint, ), this.deletePolymerBondChangeModel.bind(this), ); @@ -638,16 +732,13 @@ export class DrawingEntitiesManager { let previousMonomer: BaseMonomer | undefined; monomersToAdd.forEach(([monomerItem, monomerPosition]) => { - const [Monomer] = monomerFactory(monomerItem); - const monomer = new Monomer(monomerItem, monomerPosition); - let monomerAddOperation; + const monomerAddOperation = new MonomerAddOperation( + this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), + this.deleteMonomerChangeModel.bind(this), + ); + const monomer = monomerAddOperation.monomer; + command.addOperation(monomerAddOperation); if (previousMonomer) { - monomerAddOperation = new MonomerAddOperation( - this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), - this.deleteMonomerChangeModel.bind(this), - ); - command.addOperation(monomerAddOperation); - // requirements are: Base(R1)-(R3)Sugar(R2)-(R1)Phosphate const attPointStart = previousMonomer.getValidSourcePoint(monomer); const attPointEnd = monomer.getValidSourcePoint(previousMonomer); @@ -666,14 +757,7 @@ export class DrawingEntitiesManager { this.deletePolymerBondChangeModel.bind(this), ); command.addOperation(operation); - } else { - monomerAddOperation = new MonomerAddOperation( - this.addMonomerChangeModel.bind(this, monomerItem, monomerPosition), - this.deleteMonomerChangeModel.bind(this), - ); - command.addOperation(monomerAddOperation); } - previousMonomer = monomer; }); @@ -701,6 +785,12 @@ export class DrawingEntitiesManager { return monomerChain; } + private rearrangeChainModelChange(monomer: BaseMonomer, newPosition: Vec2) { + monomer.moveAbsolute(newPosition); + + return monomer; + } + private rearrangeChain( monomer: BaseMonomer, initialPosition: Vec2, @@ -721,8 +811,15 @@ export class DrawingEntitiesManager { initialPosition.y + heightMonomerWithBond, ) : initialPosition; - monomer.moveAbsolute(Scale.canvasToModel(newPosition, editorSettings)); - const operation = new MonomerMoveOperation(monomer); + + const operation = new MonomerMoveOperation( + this.rearrangeChainModelChange.bind( + this, + monomer, + Scale.canvasToModel(newPosition, editorSettings), + ), + this.rearrangeChainModelChange.bind(this, monomer, oldMonomerPosition), + ); command.addOperation(operation); let lastPosition = newPosition; @@ -802,12 +899,22 @@ export class DrawingEntitiesManager { return command; } + private redrawBondsModelChange(polymerBond: PolymerBond) { + polymerBond.moveToLinkedMonomers(); + + return polymerBond; + } + public redrawBonds() { const command = new Command(); - this.polymerBonds.forEach((drawingEntity) => { - drawingEntity.moveToLinkedMonomers(); - command.merge(this.createDrawingEntityRedrawCommand(drawingEntity)); + this.polymerBonds.forEach((polymerBond) => { + command.merge( + this.createDrawingEntityRedrawCommand( + this.redrawBondsModelChange.bind(this, polymerBond), + this.redrawBondsModelChange.bind(this, polymerBond), + ), + ); }); return command; } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntity.ts b/packages/ketcher-core/src/domain/entities/DrawingEntity.ts index e2a05bad51..5725593db6 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntity.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntity.ts @@ -1,6 +1,7 @@ import { Vec2 } from 'domain/entities/vec2'; import { BaseRenderer } from 'application/render/renderers/BaseRenderer'; import assert from 'assert'; +import { isNumber } from 'lodash'; let id = 0; export abstract class DrawingEntity { diff --git a/packages/ketcher-core/src/domain/serializers/ket/fromKet/polymerBondToDrawingEntity.ts b/packages/ketcher-core/src/domain/serializers/ket/fromKet/polymerBondToDrawingEntity.ts index 5dce39c450..f684b399ff 100644 --- a/packages/ketcher-core/src/domain/serializers/ket/fromKet/polymerBondToDrawingEntity.ts +++ b/packages/ketcher-core/src/domain/serializers/ket/fromKet/polymerBondToDrawingEntity.ts @@ -19,19 +19,13 @@ export function polymerBondToDrawingEntity( Number(monomerIdsMap[connection.endpoint2.monomerId]), ); + assert(firstMonomer); assert(secondMonomer); assert(connection.endpoint1.attachmentPointId); assert(connection.endpoint2.attachmentPointId); - const { command: bondAdditionCommand, polymerBond } = - drawingEntitiesManager.addPolymerBond( - firstMonomer, - firstMonomer?.position, - secondMonomer?.position, - ); - command.merge(bondAdditionCommand); command.merge( - drawingEntitiesManager.finishPolymerBondCreation( - polymerBond, + drawingEntitiesManager.createPolymerBond( + firstMonomer, secondMonomer, connection.endpoint1.attachmentPointId, connection.endpoint2.attachmentPointId, diff --git a/packages/ketcher-polymer-editor-react/src/components/modal/Open/Open.tsx b/packages/ketcher-polymer-editor-react/src/components/modal/Open/Open.tsx index 4f10bfd00c..710c02c437 100644 --- a/packages/ketcher-polymer-editor-react/src/components/modal/Open/Open.tsx +++ b/packages/ketcher-polymer-editor-react/src/components/modal/Open/Open.tsx @@ -18,7 +18,7 @@ import { useCallback, useEffect, useState } from 'react'; import { ViewSwitcher } from './ViewSwitcher'; import { ActionButton } from 'components/shared/actionButton'; import { FileOpener, fileOpener } from './fileOpener'; -import { CoreEditor, KetSerializer } from 'ketcher-core'; +import { CoreEditor, KetSerializer, EditorHistory } from 'ketcher-core'; import assert from 'assert'; import { RequiredModalProps } from '../modalContainer'; @@ -39,6 +39,8 @@ const onOk = ({ struct, fragment }) => { deserialisedKet.drawingEntitiesManager.mergeInto( editor.drawingEntitiesManager, ); + const editorHistory = new EditorHistory(editor); + editorHistory.update(deserialisedKet.modelChanges); editor.renderersContainer.update(deserialisedKet.modelChanges); }; const isAnalyzingFile = false; From 60f48ff65878d3f6cec05d8342f4e1fa901ad047 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Wed, 22 Nov 2023 17:07:38 +0100 Subject: [PATCH 13/18] - fixed bugs --- .../editor/tools/SelectRectangleTool.test.ts | 3 ++- .../entities/drawingEntitiesManager.test.ts | 15 ++++++++------- .../src/application/editor/Editor.ts | 2 ++ .../src/application/editor/EditorHistory.ts | 6 +++++- .../editor/MacromoleculesConverter.ts | 14 ++++---------- .../editor/operations/monomer/index.ts | 18 ++++++++---------- .../src/application/editor/tools/Bond.ts | 1 - .../src/application/editor/tools/Erase.ts | 1 + .../domain/entities/DrawingEntitiesManager.ts | 15 +++------------ .../src/domain/entities/DrawingEntity.ts | 1 - 10 files changed, 33 insertions(+), 43 deletions(-) diff --git a/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts b/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts index 91462ceaec..91ddf0c0b9 100644 --- a/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts +++ b/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts @@ -99,7 +99,7 @@ describe('Select Rectangle Tool', () => { expect(onShow).toHaveBeenCalled(); }); - it('should move selected entity', () => { + it.only('should move selected entity', () => { const canvas: SVGSVGElement = createPolymerEditorCanvas(); const editor = new CoreEditor({ theme: polymerEditorTheme, @@ -111,6 +111,7 @@ describe('Select Rectangle Tool', () => { new Vec2(0, 0), ); editor.renderersContainer.update(modelChanges); + const peptide = Array.from(editor.drawingEntitiesManager.monomers)[0][1]; const onMove = jest.fn(); jest diff --git a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts index 07f58c6f18..79051f0448 100644 --- a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts +++ b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts @@ -33,11 +33,12 @@ describe('Drawing Entities Manager', () => { it('should create polymer bond', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); - const { command, polymerBond } = drawingEntitiesManager.startPolymerBondCreation( - new Peptide(peptideMonomerItem), - new Vec2(0, 0), - new Vec2(10, 10), - ); + const { command, polymerBond } = + drawingEntitiesManager.startPolymerBondCreation( + new Peptide(peptideMonomerItem), + new Vec2(0, 0), + new Vec2(10, 10), + ); expect(command.operations.length).toEqual(1); expect(command.operations[0]).toBeInstanceOf(PolymerBondAddOperation); expect(polymerBond).toBeInstanceOf(PolymerBond); @@ -122,8 +123,8 @@ describe('Drawing Entities Manager', () => { it('should move peptide', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); const peptide = new Peptide(peptideMonomerItem); - const command = drawingEntitiesManager.moveMonomer( - peptide, + peptide.turnOnSelection(); + const command = drawingEntitiesManager.moveSelectedDrawingEntities( new Vec2(100, 200), ); expect(peptide.position.x).toEqual(100); diff --git a/packages/ketcher-core/src/application/editor/Editor.ts b/packages/ketcher-core/src/application/editor/Editor.ts index f0e41a1e89..17baa77137 100644 --- a/packages/ketcher-core/src/application/editor/Editor.ts +++ b/packages/ketcher-core/src/application/editor/Editor.ts @@ -283,6 +283,8 @@ export class CoreEditor { public switchToMicromolecules() { this.unsubscribeEvents(); + const history = new EditorHistory(this); + history.destroy(); const struct = this.micromoleculesEditor.struct(); const reStruct = this.micromoleculesEditor.render.ctab; const { conversionErrorMessage } = diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index c6c1014362..1cb31f8100 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -61,10 +61,10 @@ export class EditorHistory { this.historyPointer--; const lastCommand = this.historyStack[this.historyPointer]; + lastCommand.invert(this.editor.renderersContainer); const turnOffSelectionCommand = this.editor?.drawingEntitiesManager.unselectAllDrawingEntities(); this.editor?.renderersContainer.update(turnOffSelectionCommand); - lastCommand.invert(this.editor.renderersContainer); } redo() { @@ -78,4 +78,8 @@ export class EditorHistory { lastCommand.execute(this.editor.renderersContainer); this.historyPointer++; } + + destroy() { + EditorHistory._instance = null; + } } diff --git a/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts b/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts index 4942198182..748e76b46d 100644 --- a/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts +++ b/packages/ketcher-core/src/application/editor/MacromoleculesConverter.ts @@ -277,20 +277,14 @@ export class MacromoleculesConverter { beginAtomSgroup instanceof MonomerMicromolecule && endAtomSgroup instanceof MonomerMicromolecule ) { - const { command: polymerBondAdditionCommand, polymerBond } = - drawingEntitiesManager.startPolymerBondCreation( - sgroupToMonomer.get(beginAtomSgroup), - sgroupToMonomer.get(beginAtomSgroup)?.position, - sgroupToMonomer.get(endAtomSgroup)?.position, - ); - command.merge(polymerBondAdditionCommand); - + const firstMonomer = sgroupToMonomer.get(beginAtomSgroup); const secondMonomer = sgroupToMonomer.get(endAtomSgroup); + assert(firstMonomer); assert(secondMonomer); command.merge( - drawingEntitiesManager.finishPolymerBondCreation( - polymerBond, + drawingEntitiesManager.createPolymerBond( + firstMonomer, secondMonomer, beginAtomAttachmentPointNumber, endAtomAttachmentPointNumber, diff --git a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts index 5c9a647e7e..85c282231b 100644 --- a/packages/ketcher-core/src/application/editor/operations/monomer/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/monomer/index.ts @@ -39,7 +39,6 @@ export class MonomerAddOperation implements Operation { if (this.monomer) { this.deleteMonomerChangeModel(this.monomer); renderersManager.deleteMonomer(this.monomer); - console.log('invert MonomerAddOperation'); } } } @@ -47,19 +46,19 @@ export class MonomerAddOperation implements Operation { export class MonomerMoveOperation implements Operation { public monomer: BaseMonomer; constructor( - private rearrangeChainModelChange: () => BaseMonomer, - private invertRearrangeChainModelChange: () => BaseMonomer, + private monomerMoveModelChange: () => BaseMonomer, + private invertMonomerMoveModelChange: () => BaseMonomer, ) { - this.monomer = this.rearrangeChainModelChange(); + this.monomer = this.monomerMoveModelChange(); } public execute(renderersManager: RenderersManager) { - this.monomer = this.rearrangeChainModelChange(); + this.monomer = this.monomerMoveModelChange(); renderersManager.moveMonomer(this.monomer); } public invert(renderersManager: RenderersManager) { - this.monomer = this.invertRearrangeChainModelChange(); + this.monomer = this.invertMonomerMoveModelChange(); renderersManager.moveMonomer(this.monomer); } } @@ -77,9 +76,7 @@ export class MonomerHoverOperation implements Operation { ); } - public invert() { - console.log('invert MonomerHoverOperation'); - } + public invert() {} } export class AttachmentPointHoverOperation implements Operation { @@ -94,6 +91,8 @@ export class AttachmentPointHoverOperation implements Operation { this.attachmentPointName, ); } + + public invert() {} } export class MonomerDeleteOperation implements Operation { @@ -115,6 +114,5 @@ export class MonomerDeleteOperation implements Operation { public invert(renderersManager: RenderersManager) { this.monomer = this.addMonomerChangeModel(this.monomer); renderersManager.addMonomer(this.monomer, this.callback); - console.log('invert MonomerDeleteOperation'); } } diff --git a/packages/ketcher-core/src/application/editor/tools/Bond.ts b/packages/ketcher-core/src/application/editor/tools/Bond.ts index e8192b8aba..90751afc2a 100644 --- a/packages/ketcher-core/src/application/editor/tools/Bond.ts +++ b/packages/ketcher-core/src/application/editor/tools/Bond.ts @@ -25,7 +25,6 @@ import { Sugar } from 'domain/entities/Sugar'; import { RNABase } from 'domain/entities/RNABase'; import { Phosphate } from 'domain/entities/Phosphate'; import Coordinates from 'application/editor/shared/coordinates'; -import { Command } from 'domain/entities/Command'; class PolymerBond implements BaseTool { private bondRenderer?: PolymerBondRenderer; diff --git a/packages/ketcher-core/src/application/editor/tools/Erase.ts b/packages/ketcher-core/src/application/editor/tools/Erase.ts index 4100bd9bd7..12bc0778ba 100644 --- a/packages/ketcher-core/src/application/editor/tools/Erase.ts +++ b/packages/ketcher-core/src/application/editor/tools/Erase.ts @@ -25,6 +25,7 @@ class EraserTool implements BaseTool { if (this.editor.drawingEntitiesManager.selectedEntities.length) { const modelChanges = this.editor.drawingEntitiesManager.deleteSelectedEntities(); + this.history.update(modelChanges); this.editor.renderersContainer.update(modelChanges); } } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts index ac928778dc..7027971ab3 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntitiesManager.ts @@ -169,6 +169,8 @@ export class DrawingEntitiesManager { assert(offset); drawingEntity.moveRelative(offset); } + + return drawingEntity; } public moveSelectedDrawingEntities( @@ -283,17 +285,6 @@ export class DrawingEntitiesManager { return command; } - public moveMonomer(monomer: BaseMonomer, position: Vec2) { - const command = new Command(); - monomer.moveAbsolute(position); - - const operation = new MonomerMoveOperation(monomer); - - command.addOperation(operation); - - return command; - } - public selectIfLocatedInRectangle( rectangleTopLeftPoint: Vec2, rectangleBottomRightPoint: Vec2, @@ -395,7 +386,7 @@ export class DrawingEntitiesManager { ), ); command.addOperation(operation); - console.log(this); + return command; } diff --git a/packages/ketcher-core/src/domain/entities/DrawingEntity.ts b/packages/ketcher-core/src/domain/entities/DrawingEntity.ts index 5725593db6..e2a05bad51 100644 --- a/packages/ketcher-core/src/domain/entities/DrawingEntity.ts +++ b/packages/ketcher-core/src/domain/entities/DrawingEntity.ts @@ -1,7 +1,6 @@ import { Vec2 } from 'domain/entities/vec2'; import { BaseRenderer } from 'application/render/renderers/BaseRenderer'; import assert from 'assert'; -import { isNumber } from 'lodash'; let id = 0; export abstract class DrawingEntity { From cd880dd9b1bace0f5cac46d6e53667b9ecda82fc Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Wed, 22 Nov 2023 19:25:54 +0100 Subject: [PATCH 14/18] - fixed bugs - added/fixed tests --- ...n-Chem-tab-in-library-1-chromium-linux.png | Bin 31156 -> 32037 bytes ...ne-in-default-presets-1-chromium-linux.png | Bin 44799 -> 45795 bytes ...te-default-RNA-preset-1-chromium-linux.png | Bin 52959 -> 54001 bytes ...ch-panel-is-collapsed-1-chromium-linux.png | Bin 33766 -> 34958 bytes ...er-panel-is-collapsed-1-chromium-linux.png | Bin 37660 -> 38620 bytes .../rectangle-selection-tool.spec.ts | 7 +- .../Undo-Redo/undo-redo.spec.ts | 113 ++++++++++++++++++ ...rs-and-bonds-addition-1-chromium-linux.png | Bin 0 -> 6052 bytes ...rs-and-bonds-addition-2-chromium-linux.png | Bin 0 -> 5634 bytes ...for-monomers-movement-1-chromium-linux.png | Bin 0 -> 7937 bytes ...for-monomers-movement-2-chromium-linux.png | Bin 0 -> 9988 bytes ...for-snake-mode-layout-1-chromium-linux.png | Bin 0 -> 6084 bytes .../Settings/Atoms/atoms-settings.spec.ts | 2 +- .../tests/utils/canvas/tools/helpers.ts | 13 +- .../tests/utils/macromolecules/monomer.ts | 13 ++ .../tests/utils/scrollSettingBar.ts | 16 +-- .../application/editor/EditorHistory.test.ts | 59 +++++++++ .../editor/tools/SelectRectangleTool.test.ts | 32 ++++- .../entities/drawingEntitiesManager.test.ts | 15 ++- .../src/application/editor/EditorHistory.ts | 11 +- .../render/renderers/BaseMonomerRenderer.ts | 1 - .../src/Editor.tsx | 4 +- 22 files changed, 254 insertions(+), 32 deletions(-) create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-and-bonds-addition-1-chromium-linux.png create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-and-bonds-addition-2-chromium-linux.png create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-movement-1-chromium-linux.png create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-movement-2-chromium-linux.png create mode 100644 ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-snake-mode-layout-1-chromium-linux.png create mode 100644 ketcher-autotests/tests/utils/macromolecules/monomer.ts create mode 100644 packages/ketcher-core/__tests__/application/editor/EditorHistory.test.ts diff --git a/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts-snapshots/Open-Ketcher-Open-Chem-tab-in-library-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts-snapshots/Open-Ketcher-Open-Chem-tab-in-library-1-chromium-linux.png index 582d85889abc9936ebdc477dae21ddf420eeb894..31a49a444b8c19718e5c375d6f26f0d567b83764 100644 GIT binary patch literal 32037 zcmc$`cTkjB_buFDU`A2KfJhJw1VNG@IU13SM9GTeoRQFgI>HzTHUg4WG7Yo>O=_T3 z21ybm=OCfUxyj+%Pvcwl{&VZQ_g8i6PE8Fx4Sk;ToM)fC*IsL#exaeJaO?=v5fln_ zO!4k5O%&=7yrgda<1qYaLig*!4=OiJg&U~cMwUqw>O4yE)^+X2@iYBi?%M4G-xsYc zTTU7LapAnkdE&|643p;~nNpN! zZvHW;)wo4dd-pE&pDKT-R3zc^;w8vlqQksRm9oBZW@cuzRB&1N$60xNhJXJhO1|R) z>frwCzOz*4_g@Wt{{!{=Z^iDQ{@8!B_$syh{;Mw`Cs5S;FCAZ_{@Q=#{D{>nFaP1$ zTr6d{K$bdlp^{N?>GT70(`s|4VveICoH%RO-j2GtMNq~*KZ0Q!KQ_`M?6I`$Vac}S ztwz%qjh#EicpRlQpz)en&HmSS%2nh!jeHX;R{eJ7E6WryZwhwD>DG~9=hfy<)e4

~RT}Al@_i+uMF)!w-kkC|Cb-PAEoYY2i~%Qg+TD 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 Jgq_yk{~r!$Ke_+_ diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/add-default-presets.spec.ts-snapshots/Macromolecules-default-presets-Check-Guanine-in-default-presets-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/add-default-presets.spec.ts-snapshots/Macromolecules-default-presets-Check-Guanine-in-default-presets-1-chromium-linux.png index 433c69c98ef7a6c713f0adbe95c53204124aa809..eba431e66158f669855bc51c359b2c3d04ceabc1 100644 GIT binary patch literal 45795 zcmce;1yq##+cr9=SO{zb49WnNmQ)%+(V@FTy1N?-wgotpG)T8}hoVx_F*HaIE!}+g z1NgrGv(`E5``&fdIjps}!|=@W{PMo9`?{{*ypfiCLU{JtSriIIh<^G=7KOrxm&aO8 zpM-y!-3JumA3R&xCqk&qCUP7KbsdF%^ibX@Vs^ke;)DHu&7XBH!?mlw48#MzD+}M; z4o)~x_in+pl&R1 z)GCswD65Z4YK$B8>p`eqgdFS73F_m>6@pFr>c7Z-2ANL3pPA{`9J7ThnGGZF*pQ

4_%TfNdw7eYT0SD$!h1s2zHVUpV(4 z2e-SvE`D1sv5qgN9#t%PYN_x&v|PjMzHK#XF)KiFV(6gLUZ(2K1=ye_$^hEs{0CSZ zYNgP&YN+|5O0n^&n7a71QzPFGo>>(cU~fnTe`hV(x9LSiRG-5CWaB2qa`2=g`}>}I z(M6J{tX9eWb5Gp!$wk@99^8IdvVPtrV#W@2)y9Rtwp0FL#Iu7>SY`C9yTZJTNfqzT zvnf45-hA+Nsx@x)7hAJYl^32U8Z8rWTcV@FeY=c_0Jel6T!FIkj)}SMzEpST8iz@s zo0}W^vnmt?m(8OjspzJeHWX@;9Pc`EUB5SnY1h<%+{%* znf4?<@!J9EifIJ&juowOPtugKG?{oj!a2>^O}iLEC

ii*nSn{-|xBXb=n31u@h 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 Fe*ra diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/delete-preset.spec.ts-snapshots/Macromolecules-delete-RNA-presets-Should-not-delete-default-RNA-preset-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/delete-preset.spec.ts-snapshots/Macromolecules-delete-RNA-presets-Should-not-delete-default-RNA-preset-1-chromium-linux.png index 14089e359492ebc4cfe7ac76590be1927241ea20..8c731e17f05b7df2906f37be92c37c950021d69b 100644 GIT binary patch literal 54001 zcmce;1yoe+`!+i0YX`4|fP?`mAfR-Epy&`H-JsIloffD_IFz(>3?bd2sFXBAm-GzX z4d1;1f8Xz{b=ErHf1Py>>wR?`X7=9Cv!Ca_ulu^Ld%u7BG)CjtI?%T0sbPgl6fSIN^hXRqfl2-=m+=Z?8B$}9KyYAcB|%Bx%F1ae(Os3 z|4oe)KN-<@yTnwT6X&|Fze%Mx_vE_0J(rcqKqGhf=!>QrNU6p0rhG_paO3f4X@BT}3 zt$*D2U%6kof%<3vWiKhw)%{n4zmB60zQietIyh9py+cC#zpn6h=xu25c+Qn^e(#M1 zI{%uHfMN59vjrJF+)^VvsNY;6+TpS+zs6_|BcBjz&{6w+?D7)a^>=kN3#Tq1@F9EcsnVH#Rc79Q}kI;m@i?6+St(kpB^`T-}}1suDGq;s0c8U~kawMrsau9f1v0 z{&b7ETpf7SQodEiK;s4FLW5&pYT~fRhJNgwvm(OZMvoeP&r-B&*^LUXJa*)>rL)w% zy)zZqaJub86+Ag+zD(hl{m)&`Y?PJE-r)zI)Xq4DPg@ zEY#d0XEzLRc6MfaR)M1AwtSE%71c1=f-xBYmW7M81jZ2Xa3=JhH z*{)0}!xTxxiv`NOKTpeMJEc@r^!YPsu4$jj!w(mw*B3@%DD>!-BZS=#35Aj>;i#|5ly7e;J z+HoI97*m+ki@5qTe0_a)wiczTY~6ObMby;7BVAUM1L?HUu)lVaPMTHEdPh~lj6-wWMRg4=O{42nFi{aHF*DmnVm zkEmVbs9lym!CjS+mBqmb7?r*X*-W+v(nx;3dtWk?O}f-^d8tL5nY-vzmG_lId}|`s zs3V=6!&oWdy~UF#fwW)VS9XVa)ISNHQ7;qCU{<#1Td=GYHEhH)j3=Gn-4=RpV9;Tr zmD^*}c%^doK}gs2y;$k4)>-P5|I3#;V`qEQXr%g+O0n&<&GUw@&nvB`I`5fuWj*x1 z!r8E*q=1#D;_yCJ2af??-f>mx&K=Cdg4n!z(of~N5ifx9hI-oUV5CRq=$ufmXasQY@m$Ce(sBILwIsS z1n=a~PcIA&F)?v`T%10ve#ganPF$gt-WhVX$5%Lv%_+n&V~tT6@#4XTn=8}Z`DRfq zEiFqso3om${jh7|P5X)rU`_HkuYC>WG)wOB+;FuJ*UW9-&1aK6bY4&4~-v6HV9ZLs%bqkucWcGR-=& z%z{#k5}$NuIn>!qa_p9%)p>1N7UJt>^d<8RM{5H&M*OANbZRedFSSakl-Orlvyb$a zIAjZKFUd}KWj})Rc6=mb&4I>{A-_WP6(I>!W8z z{`~o*H%q+U;TD|UuE^^aNb@s3E(Q04jOR*}xoQ=~vbDIwK)hSjY(okXI|iB9EJq$Q zs^&?+ijl9u(AtbtpG(s$*MR#Z4Z8<+2XT!t2Ll})T0H2EbTE@TEcBWyRM`%TV+05% zFJ8PDnViJJm+{$+0(Cj{u-7Q^&p#3sO;O5x!DBo1`TF(iOVjxS$PHu(kw}q__3)wM zr>CZ-M$5p+DTk@~9pxbODZrs=(1G;wEw70Ml3?Ma$YT{SBNN&mKYo;h-7S|QM_1KI z_HuY(v<{c1%6a6Ue;#8TmkIIrUmwN8SE}U};WzTRhVt?$a_FKBwMx!@dl5Vyuad3n zO=wTUo~IRij2WvByXEy0gBA2zUmQ33_UcHM(w&nhPBgbl38p>tB1yI!tvyLh+%eUa zed*k}Xowf;s}4mfiA)ifE?-WhY81d4u<9l$Osinx>ccp&daE;pT>_TSS=dUMhF7qe z?N^8OTuy^89FJ_R4P?M&>4?WCBoG95*L^=+q>Cvi;F1jIl0J9toY>>Xevr6_hKDJu zl2r54Rq~AS_N5lXqWrJ~HvV{0x237(^EsJS4-~Z}#c=rRR{OQ>{1J1EdBL3#WjOIZ3M9jKs{$^<8DEH#&Bb3IZ-J8$GSclvEQ-(NN7%8=%}$e|z}Q z(#i#C!wn&_TV>g)=TJyK6go@6WiDhj-hfM0&X!A8E0mZ#fBt-q!=f&wfU^?j;=liX z@fF-rA{N}5lk}Y&9gPoSR3%_D%4E#VzlO3I3>}|ifr)zb`WSILtUy?J(f+rjYEARS zF%b0PAjwtbb(EbwbH=7bz-_1G)$7-=04VCoO#j$!T{$JA*n?t9>q@-jUP5anPew|iM!xOgEn3vs_<(FON z-}0)|O&5$uI#Fc64o!iSfyUHm%P1**wqDMgtMR{uBs+a^Gch)f4LvcaC@J| zH=WX8;`IkBUJ{yPJ*{(ZFpKExCpAO~&K~bROT{-~?_$!a829+x&mTXk@1Cw&@Vd;L z^7zyB!jxS2)2GM7%=+WIcgNw_+@@ru3ZnI7$ZdS{<{y9{F0fC0%vot^9~vn0Nihts zog%sO6t-`M>SZdb^!ec`qph`hl`QS|kq%>IaQu;?x;fj@ty+dG6%#^NX|b^aR)g&B zAoZmkv}JEP1NxR!r1cxuoBlQPtNI&DcrkJDR#-}-5J@2W>pFUj=DHCZ;ZoxNRC@9j z3Gwsu&rWO-rC%Z=PtBZG#cl^ErzoT*6?LQ}oGGVnJ!M5=U=gL4(c{|Q9-;D;Vexn8 zJY8~!N&Zs)HsR^=HGUa_Sn#4-*dx5>L`_!r^u}0+OSj<2z{$B4nb$J3Z8^@$Y24#rg_3_HD50HE@~6N3iPoFlm$|y?MjXm}1x*^Y-SG@Y{f4B6#gmAk(m%9xl?l z$gH7;Kr|RMEt=PMs_Et7V{#c9rE0ith#4;PKQD_(NCedDw#K3TStMU!qS5|0yK@Zu zV`5`z(LH%4t#!=hchH92ImsNRy-B4`tF^k>$#%2-KI2#Wts41#Tu7MIKGX3PDPR@S z*er$~kaNXj{32gxEq&Ww7Kn^_cj_(`4s&vbg7kOTEIc&0*^q*=!ywdO46(* zJ_4_JO*3jTkN0xam!WHJHr$tq%N91Ag=1Q#IoL_rrR4=lu_@Faam3A@m;67Ee7AEr zLg|j|5Wm9;SX}cwvIZdoB?GG281iDKxZj?}5>^jG39Y*W)y8+^;d z?TuwwfYdoQlM3FX_k;lm%EHz^d6_Ad+iFbB?o?*F?eqEwUPYJ972MpPN@P_+w$mxP z#CfYb&jicww34KfYshk1WSM|#1;moxlMWjwl*1%6(sjcC5HI#=v@kipV-5|z-)R=7 z7v+)wv7*K>m!6(p?C{akel(?e2GU0+>UDdMuRWbvD65-y@qa92&&s(-os^xA6qg7MT9gVqGegs5Z0RN@G)se z$D&9_0v)?a_fnC0hHT;!$L-|~1Q7yYe8TUz)Z|I+ngqpyF1IPnL9X4b1}VBhMr?f?nPcKlEyG=NT9>6h-_ZQw;4A$*R|co!U)+Bg5)_iX*7$br)e-Bh7pcSJ z!}o$|(ARcc7qXOc@PgYTHp^;md}ElC+7=DA90+h<)@#8+E&7}^tLIGDw5@U)$6Jr1 z#U;0q`&Q5+5yJ8?jMJ<=fKHZ$F~4UT(CBAaKz4QcsKXsa=GR22s7ONUbwlbCBq%@5 zm`9Xp*PJ)$E0PD?sG$-3%6Y0>ToEhN?9`TC`}%|A6X{jvF(aA8M7cO2p`adOfU$H6 zSONWrb%&Ty5AU{D8tQWQuB*}RY`$FCvissw^#c$QKD0l#6basnmz`s&i79c^v!%&Y ztmQJz6~c~b=);tSq_GWAjm<*>eR3)0kJAa|%?{TYtPfJB99BW{!cB>$1j#VDVq234 zE(_r*AIerJ_1FOYl`s*nJ>qg&Nriow6v^*2Wv$m`_E zlPylOrHOeaJ;?5Z#H1J{;IdG}R&dU424xIkfga-H?)I#kowE!{MZ`$nVZVLS!@c+& z?=g2&_>Fv`tJ$bMS^|YK{rG>(h*(}i_3Lw-LvA9FFns zx80rb-9|Izn!blC(rTX{`*ICmi>@-vEy}x&{1&y4T%KNdVh6?5D0x_@vS6W3yJ(@D z7>%a0OJLdmKuBC%05-y{sQcq#RQ{|7(KAu(d~SIn6p;&~_VMxYb*AImdt^<;^w*v< z@$u?~?N6kn%E$6FTX7x~MMOlsRK8&*eio56Yt+ZHyHayQF_YWfPIUC7<13#%@S~<#h-Rx{HA}zt5iDV%2u`U2j0X z3P17vc)1CVyinVBaXJg<5_bZ`nWz28u3q-qIy-$#79*O_RJHv8wqrkFeyW@04 zI$=i~EpAt1LDU->kh4^L10|P`r&W25LairAVh5-OfQt?4g$*3s>51wtJ!VJ4>RrV* zO?rytH&>@|(IU1H>^9Y?gPE%cuU9>ddfL-Mf-+PJh5P&a35&vlxrTi=8wrQat@1CT z#(qjXxap6MjEwxp9l0JZ%BmGVuoc)R>P0EfV}E^kSD*;r?JlClOOHvt)#DC`!_N9Wa*`eJn;L${t<5wLLUuj<<934N39 z9O*{eNsG$qn^NIl#-#Y7H)j~eS{zY&cmI-)gELk`KP*hTO3;m~GfwJjc4-34B}wOL zud|QWF-LIZ^_h00hOk;|W^S@S8!T^|9o;#3_H1)FvmUp}>8pY@Hpi~+UADO!Z@yVD z4S)AY<`vU%JU+Q-dD5u;GOP7S_49|KK_%0f!$U(CsV`?dB4_jaX{lq|Ru#&D3-`Jl z5FUOF+)N4#VfI3rr4k~l{%np^co{^n1`B^kY)nP%gf2xO;bIw3av1* z=^dT?J2(A@hK6yakEEvivL68rBlF?~rZ(73C{0C>4h>s_QDZ6h?9>4Bt~)B%Xh7r7 zpH(%*@lON9Mmr@AVp8I*B7qE(nF;l5Mq{U;vJ<&PuMj}vQaZ@+cEHM)(3UpdX;z;S zxUe$cJX^k--kSI%rE_}~Tge(hk*|=UTqjd(m&lG)5WDGrmRcZn zalA2E)H@Vee;lS;XpiSfCOx(v?kLOD)YPctEnT7HxtNC9Me(<%hSUZ+4d(4i%r%N0 zOk_brM)^*R`=KLH>zKEi03g1G=2@?zenM9K?Axo8jA}}YmV2Mj=BbI%~8R@11{i62CH?JJe&QqZVPvy)j61 z>9*WcDPU_(U2ZVy$}(G8YMovtxW6p2zbDF@XXZ~s$#409_WF(G?n$%TEG#ltT(|D^ zG$yG+f!Q_b@Q|7>iIO)DYush|!AIb#`n2{(A0LJFlb14j>?Ye89k<@!T7oaqv(w6# z?`(JhF+sw-p^~PO-yHVZGf5`C7Ai^`AD5MxzF40K9<0>BwGq@Y- zg4@>dzeekVYU=954GUH>Nu@aCLPB#2NyZ zaRcp`YG8#+R+R#Ho%NX!@V|ebX)w+D<|Y>HpFpq1B~iY;fdvGV3ODQw8EGgk-|WiIrpdEsXtKB~KW z8ki@!``_+EfmC8T0M#2E-xigFgG2HI?Kq6TzYeKKq|=PUqs#H0o)78h++22GUCKoZ zzr9F8l5ptADX8_kq4fCx9E6zV2Vm4!rne;}!`Oo}GBU)1=;JNnfE$EykF7dE;TQ_+xd(EOcLl#%9Esi8G8` zS!!Ba8CrKvoH&uyHMOC=RZuPh-a+`aOA! zg!a-znwl4xNiTjL%XJ!m5+PtCMnpuEqFkIu&gm*w6nams#9o??j!tE3xr5NZ$c-#5 zn2?BQ5sIo(j^B&K$D2m$fXj~JagYJ#z%MFF(`T}TVzXl>_ytq)vv0zfI9LbtJR4sS z`i_b}s&0NB){0T1S$VRPZzR23k{?3$v11j->|y1(Dc>O}T_B(w?A6{oBXrmBaKx}y z1%KfZ$sq7%`oJc3Y$J5AR#>CJrbKI^l%3AL6mm6qhEYWhR!avEq)RirW|J-PpC|LW zN{tfx9h|%85N(X<{Jb5k^zj2l`~&)ACsAx8SFp?Mn*~1 zeAAk&l_`6B`y@c>D%p;KGBPsOgf=?K5I*Vm@6lOZ#v98WngQVf+eQT$#V<$(fdi<6 z;1R)NQ#&cMx85t{naf#(E;DO1c~EyiX%=DFwk9o~yzrGtjVr@MHD4c+y^l$vGlz7g zhp%7$>a<V_*dv0-hO>^9V=QNO0O9mQx?jp$ZmvdVEe^??wnyuPBPGbu_GfF!cK+Z{VgQDAV8 z5@skMY}igmHD6#MmlXq*vXfQo&k+PS>$N>C#+sap}(f>Y|95AhjR=TOPG$BSNk6nH3gSJ6*zN6 zKp1D#)|8i~y4=vSTOWMwnRjUJ(ngqBvUakJgZjxqp@Z>+e{XG-g%$Y}XNb$ek9&u5 z=vZn5|KomeG%i`u_EnG+*u#LL=j%B{C;ooyDuu=(d{x` zp)husEGaEr&e%O|i6?b0{;H%l5H-Gly356-1c^5g@(9**4+x_;{|t{N{}^d2VLDtP zFQAbgb+2di+%VAmxO_9sGn71SIFWs|Gi+|@YxO{fDv6hJLJ8B+>O=`e-rX&i(oy_# zi*-P))`=lj%e1#kQmR zQTr_DgT;L{6g4QpbOr^nEez|zNYd@QcV-ky&(aZP4>fp-WEcnJxd-Vhi_6RMa&iIL zbqAkVV29#A=2IBu*4CDqqU2c`TG~+&uCiR%I6|pT=SMZs-5%JdxfR&7n z{^p=g;?6tu{Vl13y^=OZm<~snHcN=D=*YMB(LCyOApyL03ddS~5 zGC=r6euVnHyv5r>PGyQcK?m2HHcnca*1q7V>!^}leRGul>lZhTU@OJHE`;iFrk}Kg ziR49k3c07xzrEGY?A_+{?l!iijgP}Oz0anXPks05I8pXrT;|sp!A*_*I{513++xk7 zjOFha_pt8ez7h#S@V+?8{;-`}_`!7qi=id`qcZF?f-S_ioJ#{Sp+Oxwy|}-Vw7?zK z=hvlOJIP}DzDpZZZ#rT_X2*U=2pIwjRpC8mKrbziN4e2+a3}yvY_(ocxZGn_j^AD#2==TBocIA-Os6(Lx-pXf5($ZI zPnFNRcTXQbeg^_W0?<~;Qc(gOCUzhqdXuw@Y5n?Gm^QEWyt}QD&2A+a;24I+>t~FU z7m2*@c%)*QN-kxOGZYe%VfPqX_1cRSiAy;qBtg3A&NN<3h+-ew{zKTUMe&p4Mtn+r z`-<(1{(OJSi42y9{fS) zp)ml06u?nA!(kybz*MU@X35FPp+FQP^6B$RkG^&b7)X43nkoYg4YE%^^_kkq{IpYO z)vZTj2ZpB0m;;HR{Z}~TSoIp^pFQ)VNq!bB9LnMl(@()S;!&lNYxx$zvT4et3qD8O zdF^J}U=+(!*^Mb6lVz!-ZLIW|EyMql!@hz+?+mpAa}$-jF%7Yc>OJSW`%UU(T8=V~CCh2Nee^cCj=99a5(idi3Mf1ipMzdn*J zEG)=Gc_NeizApTa@}@afByOfdZQ?K4MNJ+$F6KI)G=?s;M+hJ1}wxR zdu$Ly<6PZ(au5@f6w*{e3_A<0630MX1*CO}NlghLxFU#zI=L$B1}!uXA0Y(=BHIJu zZu?J~-K(E3q)Rt^^|v~kk>gSjJdMc ze(X0Hqguh;o@Jy`PggI_(W*KNYB!ga{@#u>4+A<7sTvS19`Tm=P;keI`L($o}#G0M-gRgG~$POdZ+Z}hZFVV|A z1%ezQk!_|rr2%S8b!Mih7w3t3lg9(uX$a>61ciJD=92xzkK^8CtfIaG8%ega{Vr94 zQ6Hc1XLmVQIPo`09r$ugvetaq{ z{Hn-i@+Nu%3=8Zo8`jeU<(j}d_?Wo3xPYq4YBSv}4?2&P?tVoucvN6_%gSYaG}tGq zw6v66_ctjnNm>LH>rX&$(j)`c=CPXzr%49ApgU8`6Jk(O>?7Y=D0UybKhFbvG9t;r zc1B}9Tw+Lg@$&;64^MaV5v5W`n-Ei$%Bd)~on)v$c#AT{g6<^y`Ta`?3NLsbf}WFh z7g)r?PDp-4c#$z=mk+-Y>YY!ur_=FNI1Iu0>oEWg?^~kt% zI?LV4sq6=djvP_PM`AV0%Z9rw!R>*VTyBWG|L~!ux6n!_y9>zz5qu6Z#dfm_Fl=1B z_~l?XDol>$U4GmL3 z_#Xv9J-^>ke873pTemSXt-AU#=t*_=q+eshdF`G6C<~+kq5}W&7*&%ObD4dsBdglx zX>OpOXm8%^H!pef=8eRr+Lbu?7d;P;3Um2ZmR1M^MBoZQ%jf3boXSRa5_o$OAs8e* z@}&ylVN#E-(UPQWM1`~cxu9M`8VhXaZ_6H6=H-sCjNM1e)CPVA>zP`QY;MB=SDn6P z-r=T0d&b1d7fFx>2Vu8AN4 z7T8d9M(IjudxoZ4*es2n+REt)6EWQqdb}UjHl1BuvZtIw1>MTPyw>lssty%7_$Zn))4}sbubdUPGSw9e1y!?_q&6T-cJU$&OdEJgnCg}hsJ@I-42+CSKXQshA2Js?oBmU# z0f!ki-V={aCj;Zw*6bnncg}Bg3o$dmP4sDCLx%{rfu8}{E4w?Z<=MUYkS)NV5(M`V z*~DoYr793h6J6;M*3Wibfo^;`*&cjHUM$zJqdAyWk1OjMS|!^s-jQ#$ zgvWLRd(RjOw;V^DSnyGI60e7_K-)o{YlGM>F-dYq=?hfw$>8^sAsGnn?Cew}XN7DH zS|J#%(qK|3-8g6dNfbDImjMQkL(FLj5+M?96#@bRNCsqgSkQ*>{TNwbL3fmg2$p;E zDa7$YOUni@eC>+l)XS!{yBdd1r zB?s{7Q3|@MK@JbxSt-ka%OnE|S_<&f9(5|XHK?SREJI7lWBnLxN1tdA`w2v{LK*`I z^@!{1bmdbaA$MUBk=eCz*{@Hp0o;8!(lW~B0ozv5sXF~ z;O#^h+2z>*O~~OLAdIrP?Ks0y=Lg%TPt|)++6}=|iWru_thm@HI6EXYJeGy!6nXm8 z@8}uwxF0_rfV%y&`Jn=20|Yql#jfE#x7}?70U@au*qzDdN7ObF*P%>jQT-S9#eSIh@3X(O!$CU&FT}Ak056=w(i@gsJP1C znhf^VH91U<)}}4O-6&;lvYOaQJ$Um<A`pe2zzhk@ zZXB$cF`lr{yU$B2PkqKgo`KMSBGZl~E^5;8zZFTecU36A0f{gU#td;3g_^*rgM!?>MCAX@WBy;&DOzan6l=$L zZDue}qKX5cZd<=THX>ed%!*oj*kb| zWrc&0k4~y;PtUuWLF#c0Dspgu_e_INC(C|w#6}r4b63^y10UZVa8Q8u$r6&jReKgh z`Tf!T|5kM`R!{D;A{7y%(|9^FX5>alIH;fYlLF3@4Xci(OJ<_>IuNy;f7DfqxC%r% zs2}y44UxF%;G{xRDUMDyV50O=b>Ex*>RZ4&2=p%$6+QC7@bHOD*z)%O_G1oIxb4dL9f!1K19VlMdt zRy-rHq9T4_6?uT~cRGk>8t_D4px|KB_bc1oaq0tu5}_+Q5o!P?#0HA#GgY*<&Oyp9 zIH3YC#WuEkMgmj?8gW}eLPx`L7f3^{875X9A~P*|etsVDWgP|c%k(|4@*-w)FlQ@+ zrCnjRzcjngcA_cTu<6T75N(hrR4z`EyoUR~a)tvx; zx*`Npgy`g7AMy8@lfuA?0~2Q=#HkcWunkmHdv}pb8dA~8i?_cVI&w0}xGO6~F(VQR z*D<95sBaPHEP&sJ6;ddwqtI2PEjpZfgb1+z6^<3zC8ju*9q>yrSk zw-$hVP)2;0AR67>9@wn`SPh2wR-=s4gli%mw}Jn`lg4!oFi?j?!Hi^f~7H#SyKaSN)5KffD#RWR%oCg-<$6OAy`h}9F4<9SV>Du8$vaj zV1gLm5lR3Y+ditVS%G9UfKNG2rsX570bpLJ!g2KKMb<&Xz?{ledJ+R^E-xnb0dbVi z&CRI|3~hp~kz4o?nlMma&SBPn2a8LAJ7EYU!@}ySB5=^SFZT~at#JR^wQGpqMx41c zpqTi?di!VTSayS<2Y7;d#LgIU!ChNMi`k(7FHxIm5ks&GV#RfrvPA zx0nL`|em^dg^41T;j2VD_Cz<&f|i4P;4kABL@_twP>yN83#4eh({1C%Bd0qJ^?4x+oOZo9z->&SY^&=f?VN(-*$ zeh-i`;GWZQFfx1g>d=A-rfCC49u$sUDwLI!KM~ zo1iDiTUuHMO(GjlaA!>f7%2aA0akNZl?Vy~40(y1Jmu@xyHFk8>ZuWeGWa4jbq0X` zZDmKBy}|}i(U7$P7e<2~aN8}d4PwN8{rXj+2if}o(ren9gP$Y84Z;Z2OL5?1 zegfWgBrF1F&Tc*^g!DW>Mf(&QVC26Dy)>S@0|w%wXDN~nLYd>*A5Y4Nk7i}-2@twt zp@dU|&Dm1%@-USA^F5o-{LFG(7trljU&Df`oy}mw_dvR+=`BZbQOLO;f6&#a>L`5>PKm6;i1g%feRmbxHBMIGPZq!VT@{N2t>U2Xc{qg6M_D-WV=n6q$ zA~WVdhVuzx=T`MAKMfNE-7GYMX)F$)Ye9Q2Wx0N9rr^?G>7Q;Fg0)8Q;jP#oi3#|M zE-Osju^ZoW=O<3MG^c}o*-Q8Z5sDsju$A&-yV!Ynj{rnYfJYK_~?gq|?#iEOY)YEOFTbbwXo&@+|Lh*K}{F~R%wusDiKBcI^29=9FxhQaH8TM4 zh_sGj#rAF1UBBjUHxB2g#2|H2%;8(v7(FU8E8-!FJ44);;5k@SQwB7k&yWP z)1%C7QKY1#kNx&n4XXDcRA>9&T@A*BrninW(=lCB#w)18n(eiSq$0U=a!&Sv(wCA_ zzQv;Ou>DRq6pA|tgGrbecB5Y?yW4k}>bexMIB3GX7I=j)8QE5wxlXb`I#*xknT3Cw zk`Y_&+%7aX+XpU3?Cy5BG}P2IU;=6GC@YkF~x|` zt1jbz5d4I)!)q92tRH+Wu0wSPd^U~d@s}N(VF`V3P=kiX$E6BKMw&QbZ!~rDO;gb` zVXf`RB>&Dwy^N}2W1i;VBR=DH4mYy1L|6Cb+dPCoFx=iO-z^5xsB;jg#Hu9#Ek$We zcJ`o;%d4mmFqx2^mx>3r8)&uu{Q6t+s+mIHPHkhOogEp9rmI(d?`SA}H&GvoWRS_h z@kM30q-DUN@V^)ac%S83hKvcp-9UqUN?%Nxd{zNjzE4InY*MF$|6BNg$SL07sIs45AuW zmHk+V9wM(*|1qBcN*W;q0W={90~%rg+B3%* zFM~8TM7gYlARPvP-1LD+1L*6wwY|*_eTKmN+MxT8k>s% zgy!luU&nQH7(vuKGX_1;p0%~La!N|K(PEO4I7!YvnpU=D=#DUe+qQv|ejZZy*9(y0 z8V`MPjGAR?XFX$UX00G#0o`|>Rrk0493PZRP*b)b?Rp3m*OPCiXlk0iGpf1s5NNrL zpUke&0FaYoVuZn5WAHDP#&4+mVqtCwz)mVc4aH&H`30_$7CKv?VGMeEt91spK{sP_ zS}_LBP!jrOpdRhm-E`ZPf>SnW?rtas1_x`}p3Y(Z$9->ER*XWc?M&e~6)^89Sy_M1 zBqLp)(1pdo%*+fP9W0JuJZ#Q|2x~A~&@-9UdNjv)mUt z=Wa?xrUI}Rjl#9JrxX+@K|$9JZJ5|EU%rT%5C{Y|tzV~s#N*%w`PGTdw3iE+NkI7s zzpIn2-gUGATA2`$9PVbFe<$;96M}#2& zmy$3vvX~3Nh&wK8I!AA9IV19*jg3u10#v5)KX{5HlF~LwsKWa zRb}w3{9}9r4f=35bPsQ=&Sp$a86(^Wd;rM22=b3z&;nMc(LP@(AZQIuyf7FcYS*>s z+PXS+{idsuk$i>H`g)`uu$;}i>};<+F8KnDPc7@>LZOqwY0w_PA}I?tgxQEF91aJ* zvD7ZDXqT%8(2{ZNmf-q(*VW+1{0ZkiTJ9MeMrWhrJK9EY;>Km<@!+MYKw= z;UW73)EtAgxj)|B8ipUK8;0SQ4h_A~dz^1JAOOvf%5ZOkov8(YcJ zzCM2q2MqA{kA?nxq=^aC7)5SiMJIoUup$u{!WVE~%qn3JG9elxtc$$7Jl%~OB2fD9 z=%M=El@3TZl{R>uL9WxPsUE3qhq~RKA^`FSs9eZ;PE*PhhKkX!-5$!+qRI5)rEkZm zlX7z8pyj;S6!D7Y6TJ$rOU1G6-~=`b(jaO(r9v(z;*}%>e!0| zu&%w@bj!s=`M0~=uDkqidS~sp8VDGnMkpi z%Jr5SIZ9VomjDJLq}LEic*m}l+}vF7puIuFQ!pI7`*$yuxpSn(M){@~8TL4L66GYM zgp%7Vt=a%|u{1y_LG0}ARsp_#BDX_BR#LM5Va9x((w&6`9=peQcs@ZgVle>p5GAlN zal^rh(}k37Z#3q^Q@#2MZ z*QKP06%G%1$f+u3q=c$a@&?9sLX6{Ax%0y6Jqb2FJ^cw885#ZU+xkl(5CyWbvfvbS zXmU=|aO6n=NSX#`2&Z$YrV@o^!pLNn@Xx!^3%C*GfantSaX$7`q^DeSk3K} zc#nNR&3Lu5QL#{Gl>Tx)Nqak1?K%`Nq~(P7iIkpU!j3kewlWb~SVu>vL9l$K+bE5legD23^3vOR z;Omkj+Vdp5E$@Pxg&lW=je)i`ap_%`tl~O96;>3*-DmE=1Hsb-VxU7iw>{_J@{eq; z6PN|J^;|Fur8};JUu0Oa0%R3jYgXKftb%Cp-z2H?Ujz#ETp-LQzErPdOEycLAv5-EG0U^ zdba^A%|Jj}{Nb?(;6(Z!__x~RWD7PU0`QQBIC4IG_`pCIA08H2J1D0Ll)S=;{!?7# zoFTEhd~hXSM*kYfP}Bc;pi-01e|VJt!JD7!`}Su7wS{z(Dl=vwlAgI8w@@}W#o3Uv zo&(>_04s7JF)stU z$CX`3H{4ATuLG^vX>mQG45C6(71W_KAQ!WRoGD?Fu#XL}{T z90%r>B*gX}Go5eT6$3*N8&^Ee1cn^&4b_vofLWs(+(%EsxuT)CM7IE=lLn6|2*!D> z_#WJe!6GXf#??@0K%vh_YW|d?7Tjk24Vk9VU`=}P)d_CnrE)=q7#$g5D>@#Rl_i6L zbP2122H<+-T{#t%6a--dk5dn!m{pU zMOGFIqk54X(y-ERyifErY49z#$vP5}6Uq7Exhy%LtC90TeHpQXkJ>>aC>$P4qzcHg z8oVQBZkwtM3LjTeafgv(@h?>0;4vR`Z%tbBLoj;t=FGH*Uz@55IqC1jJRF^eLlvdV6n>+vA)PtpWe9d9c9o1DZruP zEh;{pqm^cR^cg^JD#wXydTVy~O-$0Lzy#(3GD@2KzUqlGuhb7jeTAuosc8i|i+RHV z`Iy_51t@4~?0?BCQ&PsVBV6#XGuVi*Pqh7~0Z1Wy0AaO!w-gwNt`?pBGnQ`)zSC0KWgX0E1ab$eluFC?0$7g))G9Dik_2G5r6>_wE7*!DP1Wpwr$fjy%KbL-wX2vcbbat zaZL>`Z0w`;pYKh_n9wsY1b$u%0YlgI%DZieQfApPo6rQ zON#mB&oUD<=B;9QX%y2odpXhJqmMDr zo2CJg*UQ8GjoaRu`@)a3xPgZB<;Rc4QFAVGXD~XZf(Q%}tP?yDCwXGxc6~UvNOJN3 zHZ}FPgTuS$O4_8Nugjocb75}oDd4t?P2sOqJU5XD?FW` zV0lfL+l?De2$ke@xjaR{#gXpjP0`Fu7ihx|h=_>Y+B#Ia)Kb^5l3)N#QP#IS)mAoO zlQLj|g3#O;(TGh+35befu6g?4f&FWf%HgU3hi1pn(CmZ+(YJ3O0^YK8)y?m@L`7wL z#Oz$hcO9Z<5aMABG-$}%hz5AuL1t}fbxAp4CqRqkx9WW&ZbwMT|Nh~7^^Q>obbv0Ee`(&h-kIT2Wm)>XVH3DB3 zd~_Pj`8hgud7=!&%<;+GX$q6;fv}) z6e%a$f4p8i5God&&cqn@;jsl)Y3s7r1V=z$h?~Fb8Vb}v1)89Oon023jTWsJ74IwD zfBe`e(V$$(snfu)*nH5U>hXq-;@Jk$d|#JW<3X>I;ADym6Tc!sj)t)J8{*Nd|CEXh zVR@ka7KdF!HRby2h=>S;4HSCL-4x#=#>Q$D6g2}&s+cT3D<3KXDqZ0E*}5-Nw^)xD zk8z6#j$H}vO*4vPT^K*1$*_G}6l7Z*VC zh_7GQqDj@q=OGJp1IhaUa7v<8PaD*7>Vavf#Y2X=cuDjJ#0j;rdsR|XZzIM`1}s-q zR9!$Nt-2jX4+Tld=&UKL7`yTE)Z$tkAb?%My-hmne)%LfSkVB{GlMPx$^h*|4+;{~ zAIZ-2kwAUFm@AdN1AOkB&bd;N?XZXyR|BQ^TZt(bU4~?ikGCSSu z(Tpoq&c4qM!?{0>C)<{DGsS)L%1+AD_KK_Xp1wI%dHjW4?}fMR`3^?g^0*~xIA8Ls zfA8pc{gWzIS>;)zZ)=bxXf@QaagV)F32Ll7tL{-%h#(k>N9b3yN1~x=X>B$5mHz{3 zwa%KO=R>9R+G#Pzy3+e(H)8)WD7V{FHmpzicwkFXowU#1~=RR4vy&0C-&~i zRnX7~j#5iD>TCQPRkFmobw39B-?DMVIf^&gs>#Z!wPk$yxUq-hdPQ~N<=Eq#+Nu3b z!CSDtB}`doUbIHnibGmUux{XPZSmyn0c>G3u(q&p?8mLyTdMv7*45F`qY`qKmP2vY z);#I>$b!li;e+uFjElW8f5M$tzmc}Z@&1-V?D+J<06ERf$Ak z+3cInY$|M7EbQUCXjJF@BZl&(>0w?R8losUtx>BE74!G0%PsVL-wRUytjgI5FY{Bo ziMpnwUw_X&6AH!a>t!~|JRz8}bJ4E3Pyg?FKK-K?%PnrMbP!Jn_SdBop8dwJ=eI;e zhg;rU=OFGgp>nKV1DMxbE=Km$^ojzBeP@cmz_S_{onfc)UY+)XrL@uV)qUahQ zZEsj(zl77XV=MZ~ZmTt8a`b!zU%;^^ixb0`U06=^Ltw|=rXo_S!ezt?WdFP@>J z2Kk4X-@i@p?3Y^NF#8GuqE2k~QEt#!_SNM2vR$*EqI`AM82T$mYGmhE@h++bJ7-hk z#;FSzr33t&cLsJ$O(eCSocliEI~J8}6t%sRFN1V$k69aN$UZHZ=Ux*;l$a<<=SSO| zQ|G?dVfew(`RnXp^=yH<_rAR4(KW@V?4+To*I51a+G@u$A@5(OS<9__3kH|NfD$7NOw9?Wj?3T#7PR8$Tz zs&Y*>Qdw5%gEbwwmy7Pq?CmN1VrF?__EEp{X?v}{{q1eQMZ>ltz_RXI7V&?u-6z35-x#^EFeR6zd`0rmfQ&#Um;;wKpb%#Aq}Pm3c8` zZ-P^$tV36VlfMCqChu}dee>GKY@O!)*PMIpj6B)EWRZ{SG-5SG+t*p28h^2zM5?%R zXhfv|5#SBY}4*JI3`8Y($bf(v&Uu-o@oKGJo?mjPW!Q^gnUb`ytmz3d~r_A zeG|pur`c6$B0CMO{Jr0&9{{S`^)+59HE!+(yuO& ztLEqEt9X-z`nJWquSp$uk(y~dZ*_Kdbvkr4Jbt-!yjR$LaAss@zU+ATJ;fLuDDep0 z1ug+K$jwd&&fS!{ynI5H)LyN}=qD*IZAZ{QJ%5v_)>R8;f*D;>`L+{gLGXSA0`ygZAElHS0pWgh zVmu*BL?1dX0{hUWLW+10`~eY4pXc=&sl{42BYCo{-61cxOvA5Lm z?+q2>*$%U-?)&&nKp}5__%knEKE|iCc*jX{mj_OBI`S;!@5^_0_UpGoK)$)TjQzC`F4!c8rOF(sZVT!C9zOJ zBQrduarYtB>W4=uET4gnL&Zu!{h_B?lc$N}5)LYp^qyl=kQO5QM>7gxc~T^N7MK{J z|DmUZNK+gPk1WK6VArbN4857+LX{TNKFu&2EZhF3iF^E-Shn(%LGd+RH`mS=+0n9+ z2A*YRgDpBEUvr{=P=lxuhQWR(Xsb2-_{QtAdA9|=Nm4x8q#7*{dUX5A61(5kZGtgj zDRHKAJ_7z9*N^|Ye*B8pYH)68Y1S$NnO+UqS<#YqS&bYqMmn-y%m($Z{HnPnHOToJ z9hud)#!q3q<8=7r{ys;u!Gc7il7phM7FRAkb#zFHbyJWpxSBpWo*wsv72PacqgC?Y z`wA`}xe~jDYgORqo*x_ybd$D`K>uzmgj!>7so7Nq;y z;}`b6xuZYv`{jaVCSk+!HF~@&W=`LqioW#>kIAt0n?h5_m3E8sFS?J>F4z2c#GbaG z1z7#es=zpz;-RQuG|**VCdVdJzPzd1QqaYvt0$T|_e8fVX=sEt@23wkS~0`XzW!&Q z`pR4E0$K`{mK?MV`r_(Ybp2xLDecV-zZ%A?>m2nvl|?i{aYT1_D*=ZoZIk4+pl%9{#>sxE=eGx+^ei6DKSOZo;DU6n1{1VAoD#n{{E z;}e&^w`>VOpQ2HI91OM+wBc|eS}RNmON+p&lm)Nn_NjX$|NBCnwMU}bM+Xz(B}-JRQMcD@xg@iowd zH&k<GyrPxuW(PAAu zN;{iA;%73rFP`Tp85{yd1+5TE&K3L$(HnS&}FKk9a`;a2ZLwEJbkn5^4{`zcdIY(^>kk!YJ z{X6=9>_x$VM9M0FprqYy^P6xYI-O73O`)DKKnVNw`&s02;l-eMXWO+)7+fpPrz6xL zkmoG>>_YJWNbCc&I{n1Oe;2K?HtZ2lJGK+ILvf=+MiB-QJkq40*w^LN|1ILfkofpe z&g|8rC>ee)TK8l{*Dldo>{hsKIqUZG#;B(c`%sG=?Kj{1;EpmYL^4zS&TzNF)vK-N z>LOK#!l7t_$Y_eFDqP(x75(kJ4v1P0*XV)BPrR;u@6oEQ75(YITESgcZaZ@M!6x<# z(*A;(f2y;mB|;2vA`m18n3wDG!_b^ulr!vHWZak$TsnDYIOqUgFnOg99ytDulvCY8 zL1{EzxR!}FV_FrE!WH??1oWopB&^>cL<0Z0Z}u_*Hw#2wEac92IQZMDwffMvHR=ES za0{WPBEb3K<Zc^T2Gf`1r!y8KlH;CTz?M7z#lyO(AOYh{rT0RG!bB} zPn@00z~8%ijc20o@$qon^61k zFrMH}01u38ub*zzxNI3)IN!^Eecpg%6QA7o??HC|4Qm=%H{{nD8W~xRG?WANh~9l> znE_dewSuxs?)Loz3K}%z*+~fOSeZ1&iBm-yS2qWEo4v7&}-3^oqa~BpN5TZ>=FI z1F9LL3PT;`;t$=VYJKN$KwxJu+MH zJ31UWb=R8D?&8zpxh^W&bg`+kbY{obn(ngmy93g}Z(vYIx$jNq(lpEMNZB>#tZO{H z$}=SJ^D#hE^qam^e|{P2>h2zbBfF!Jvl>AcOHMF`?Ad!qpR5JG;ia1unT!1d_Z49!+jP$N zTj?4F6C5v={}{%J0L_~O5Q5TAPToEx_wLatfCUFY<4dC)Jz5e5r0$eQ%{otatBW-? zHCXs59W+2Lh~c;r@B7p~Yl1_8G~-wdZClV~L(C)#ahLTF z-_57-243U9qDfXR@QQ;hy8h@OO++Lws+p-~blVac#UBHAOa22PLRn&UX z9YmbQpGP+i`poM|YMpj3PGgNM6e?aaDKc7J8ii5`q7?~GE*1EwZU}aLiw%S}XXx{O zHp`!9(@>wm->DL8H)TRa1#e;Jrmm^!X9(?!Q!2o=%Uz1$n)qsB^R9;)>z1kaF|(4t@UIy!kleYH&p7N#wp* zfglie&5s|>@*A4NV@1_1-~SvS-#*+MGlmrh*` z(ZL}liK7)&RcV%Xvzu9c5nve0c^D?OgupNwGkxP5I+jv{{smz)p7TF=XeE97wv(6` zjYV&Cvt3cMW;hdnmg2>W7WW6I=;-*^`1#dHH|Gs5ir=rculCEk#W&P_!V-8L+plj5AoO7KcqxO)m+`&f=5SJ5-kcd z1a&~Lj3dIrq}A2cUz(pk`+$~~CPsjt#>|7rLifhK*z!YL>B4{&mtTAvwn866!}7d7{w{a2aI^=0-zaigO(6{TXXjv%%P zAv(#0UA3=V_d$XY(#GQ?r=+xBXlHe$lCu0k(a!qMLrq)to#UQ}={>KrNRL>yIZEAG zMGiV3R^SjH&BiGG5he2{t$yK(X$SM;i|53c6#cvfivk+_c?$Y}`^ki@AqHvbOLACh z%SyNw?V5et_4lq)sIEv$Uy;L7JjK4fm*dQWXxI3m_7Qnm#a6;@A2`VNQhVW`zs^Mn zJ=Vc%&aA97`KCun(sV^Krd|~E zw6?Suz{LVb*b6uydy8e~zUE-{*?7?--tJ8so4k~^i$or>MQ(Z; zVQAPueh4sJbH9t*JjRU8b~o+eMtl98k(lq5!Z_2Nb8fk}FLdLyUs+1Ha} znY-H&cL?O%>bYnnUTGE+{%Y>1niSmOTUntgx7gC9ac9sy+|>03uXa+2{$WU2-ZSlpde zi`SeCK$KYnOg zHPcK5qVqa32U_J=Y6C!ro9#KAZFp70o^9ui4t_K*;tT8c zk=^JfAD$8<_L0R6;!Y461z6BUq01YcpT~6jZ_R3+=cijQa2; zGcgJmAAz_x3bS>LAOsjM)S7(>=Lb)E=LXu%O$ow!&q_Qxw~Ig z{G4u7lCACObU7|ptCLcxw{;`J!<8f?GR+1G$S2SbRXJ;PL_|gy|F-7vnPuE@Kz9M^ zb}e4+Ak=!DJL6#0;Z>kv4gftPGfn^z4GsFw)Q{CHh1xU3K+~cg&xPRRcs|5keI=ep zeeqSV5SY6IgM#2mWg(GO=&ZaoMwfkcpBF?qbk%+?e^{F__3DXuL`8UD^7u!~(zj~X z`nlg4y$&ZOKWZpDGxakqOisjf<0b{e!C@UfUzK0IalYrDZJEuYpe6vQ0tI;h>jHY8 zfL=u6lTi5Dcs&;j!EgN5f5K3oBwVZEf{^*=8=a7#pmrj?II~6|2t-0<)%4y!+!Atl zwbew`4Cw|K2ZP)PE2I7x|5$w}Y3Y{PYZwshdr~8;;=Ue>Xl&-0zc8LuZbJMEy7<^d-* z(F}-|VP?Xgc>k%3Bmfh@APwuj)5U&LC-8{gmshVb)qo5(Ae|E2nnTcx8X@0AG&Otm&-3r!xzpdB7P1wo74>{`+g|U_{|?-2H$9l? zI!+i7>-3ChC($+&U#9)Tc1cJkKW4FW+4Q=VA zJEJbK^Ve40W4OBzqTPy6z3cHP>pLsniD%wfR>;jHHpUTu&S*(39o^hYzTR+d%;-#=v?&=n#BMe9Fpx7l z<7{K2rfN#RwhH@0JMU9bfBAiv7DL7fbte8>Cz2N@a~F(b@pnw2&zEN*RihSLnWN_$vY$q13MBHodgE+vVX+rO*+doN2ax94nW zb)yCS>Rg=jlgcV8o44sN3d;VVU%z}Y5%2!hFR!dhkD*l*yEu6f9mWgoEhs~h0rc*H zc>-P>K%$54MNLs5-{t2ZdRUof|{wXyyGCWX05e<<_p z-fN5I4uWc5=jpc7=`Ta+V-JU;Y0Eg#>7snD{A1t4ASiK>yvnC8Wo; zpXzFYB=2H*MV#)=1Av28t{jAUg*!N8$Jf>(wQWV&dQwlQFK-%xUKhJ?>jLB-s!838 zQTazeM^xxBbB;`yn;cuy>CAtA_A2pNieU>vyK#h!?g4_)7H4iZH6+w+k z%j9Kc-#}}Ylz&G=XNd!ae0)#auLP(9m2`}+?Q z@znIR9VXQMgJ|_22-zEKM@X-0l>ht`F@mG@@*SGZbm8FFGaIPh#y`B8VJp`K@K6{u zbW}H4Yl@*bh3nrpmFelnuiqDGB=U@}+p{%sThcjnB`IQ#4IiT1kcd zlkSB2)6vo2khBNmh>1ZD=34?YiEeTof#C*Kz#(C02QuNEF~$pS8!>#O!^bN3Kp4W` z+v_k8Qlh5jL_rDXR}@Fx*G#=apj+C0EuBX~4j2puv_(N0Q9qUu5g~>Gg}Un8*$2Ge zj-9ld^xYg48h!#!6DU!F!om);=>g~XfljV}(~U#(JyMQk`2FnA@!^$~ci-34W*ya- zJ*~EWyW+32f54Y*ndy_RJwjR~n_|jA-rsCIah|}Hi`RU~ymklSH(nA=CfAbd5-+{8 zAsRD?FfoA1J8RM`a}&qK=kK*y@q)LFIpkRZ6(#QI%5?%RLPY@)C4J;s~UI?Q^`Q zWE0V3wwH1PAL)Xo1`^cIc)@U2@ZH#h=#RwIQ|(t1RWTBAKXep)br>Y5Pap{7e}DhJ z%lE{~%1f1(F8@@;>>!0eYcH?C`jfr{0ExGSX0q7lb6UvFC#^d3D02$NE!B#?J7rfJ zFLdVNIX70;=!`3MImLq8z6qVy^o!d5Sa}Xo>B~(1G8T!}i`4S_{Ua+hZc4bn|M3-= z2vP*SG1ZjQSBnKvSfM#N4(Ih+A(l7=3F4D~RzMvaf=V1tk2fHE$mij>k%d)DT2wTg zC}}qAduAkG4QC~iU(Sz>kCP-*ek*38^B{>Gt5*XE*`8oMw5PJ?OriH1gIpa^At&| zsdZJ2&30SYc^#YUhb15*ziedpyydV&O;7LCOXd#Yg(Sn`S@T=jz<+sC!s~C$ z5wnIt7Sca`?4Q!W*n>m;D{!T_uYEJ72F+_+re-b5@|9D0ze_T2UXA1Ip4hXrre1o9 ztF4H2}T~AKfWnU~`buCwRlJ)5eZ*R5fHv`RQ zMMRWZ2LcAIGk5pwBzwJs^bN-SYbR@x4*8dGvh9h>?U@qvzpTTWBy;}2sEy#q^VRj^ z4h03jTbJh655yF5#?};k{`PQb9J_dkK|Z(C4$8nPVe&X2tDgPqYta4|uUWBhrci{p zEW|ofa+N=h{I%u{B>E(1hQt%4L1C4j|D;cO$?QYrdKlMnNwl*4_@Y;56(+tSY?yKw zt~e#l+q&Ne!M6-S$t@3)H2DblbVObn`(pk-(wpgglJ4d15j`JP`22M2l3U0EU=fT_ zi9fFylbkj$NZ@&yENU#AIZkI2M64|va~`BK8Ni-N^ydbHk6A22Z9vsJ^oG1$VA1S zs-D*BWt0F9A{ZM91hjhSs{>{&l%8?11Cr*ze%C<>) zG?^B9dxWaTC_(=i$0Q;f{DywlsPoiHcL;R27|!f)Q9Dvv`o#GORafC!uZA=4Opxcd z*zR096?c|$?kir8RyF6-*een01Q6hmW`;6ykmZ3HZN!Kms4m-k)BCE>o*>V5uoH<| zXXgIKhBb4jz2$Ef?Bs}V2 z1mo;aN}pj|Dak6h{V(CM2zH8k(lt+{UB-O*^2ID>aLk5;Js|pt^W3@0ZiD>UAE4xT zhKSMSU}B&Ks=eylZN8x&K725XF~&l$o0(`L(`6OrL%S%_w50-+Kh~Kf`!Q4!>r*zu!7D)OJoTT6`AEtd;q{$)G-zPl}ej3%^)KSKMJ9`g^cr z(XP2qul*EZv-0rlzmE^vWY~Br+6{X`qjFk9EUFrpXsD}6>%QYE2FruT&&=QB4(kOq zvn~o@&jH}22J~o!<%z^bSfmmzz2i4yG|2xNcP8iFy*(|r27iszRjTfkyrL3vIWX|= zbw5^H9$Y{FByxU}-xQrW%$J+J?F}p-Y4D#V8n)=QXnHgk?VqIWp0rat(KspXv2I~7 zf!GCcal|7PozYn44A1@GOOCwZiK$A(HImW$rUd>)j1Mn(jVKR}&a682x_Vus$W0 ztc|)x(en#h0LU+4$CiS%#4=2L6@8MiQP-NLaH*z6yJoEHPK?SYn3}F z($w=VOriAYRxg{6i-}8=`qXfSox(`#rq?=OJK2idcV@jTX;)=9m?Q7>rizfLli4&}CRC=7-ls1s=tuFO~@7f7%`Nn1IbpkeqSm5{BCQc`tEmKfoEE%<4gRk@Fc z)`4}D=@iSS(?jplxftX$I6Ai-*ThNrkiN01SA*Z}`77jasrg)Q0=<|y-B~zbZO$|C z&@*jlc&5BDLEg5%k-wnm^NYIXs^{7sG`TkO!l;tNt9XnWPj6Pg^}=ra2CepHdzg?^ zs@Bx<)unB0LY4Q|%%~vPLG@1~KcA21!NQiZ_Soi%I0Yl(Z}0nZN3KRiC5}mL^UZYT z{wcw!E2&wvDVlcKT1c3)&>Zh9|RKCy}Z_|UH8agoX zU6X887-~uaz^H$SJsai8Y)l0}$k{AFtT=d+_7=vuLR(A}PiT{?`s_ydHLPlMNo;iz zZZBaSC|sadB;t+O;}Bv_vP;Q;>9p>+!qePzl{)1iL!FJyvKV)SbOXsd zc9M!u-J`D5C2h(YL~{Ao(A7-*AV{mi0s_8Y@OJ7#xV@vr%+8%MP}gg|`W>m7BuM*U zyLazi%a8xi61Ar`d)?|{61i8++iIAT^DgbJ5pR!#cqRQ&|MJCh(~+-UeS2ADP?x0c zxA%y3+n8=&E^24LY!@*Qw?Lgs{xTOUWK!sMYdY$aU^1%3jCbGP_>Gq#VvU)!dMoGV13bDe$M)M|ELrhN#y*?g+t7_HUwwt7VRTkC z%Zke4ZF7C4ERt^33vSQHu68((TuJ!<8g31q1^L)fH?yxJ_bG=WfclH&^2xm(FcQt& zIo+h2D74|oJfT)`97{#c+S)pmO!gKbvx~1@4Ph@N0T;S;R^M%|T)FZ+)4(gvSdFB; zJbt{Ak#n_$nYno)rjC+`0Y1KFc0s|czp_+{ei!j-9pvwNJ3Y|9_^yt7OPSl=7#Tla zB^jC0yUixaY9`4d)L%obtgPeqZEpf~kbxj)qIKd#&66k2E3b9$1}a`!@VS^{X#8Q{ zm-0J(#U9Ko`>IOc7RIpuR?qtO>Uf9#KOG|ze_XPsc&&BKOlLGiH1XIre_wSG=a~Gmw#L zh7z03I#cuGr;l#dw!io7+P`6^f51Qa7X(K8wZsIPu%d@{9#=;ANO||>tL;k0bq6^F zPc2@?Ak&vMRhXHqs}h`KS{hd=+7)5I%0#gPm8Kvkx)ikschJC<~}6N#I?}ap!52M4dOY zCwz$+6EamPB%5HqR1ma=y9?v!eq2teN#@k>^vn*^rB$&w-{fmkw;ilJuVLSODDI-T zTJmH7b`ygs4bUmXoR3rY%cgCHr;Z+%yV zLRqzUMa!F~ZgFjTx>vf(RrGutP0}A*c7~ZWSdX`MNpzZNE4BQ(($(~|vAQxargEaM zxcc1Yn@SU_nH2WNI=|Tyh(I7dfAeTTmFX90Ln-oj&s1kxR6X5;pQaBz*JY}qoTWC} z>6nD~l$>>2O*xZUlvLftU@$YgTLf5N^gF2nQnOl4N+1{l1|qB=QP7wo%S>i05V$r9 zF+3!gh3H|Ce)I zGxm47*MU1!YV*5!DqQ@wTEexc$jJ9zC{tr7z7BG79(1$%pTg9kT;`cXZJ}1;0vBp1M5}_$EerMqj zUOzt67qgVU)d*DWYmTKvK@zyMk6pUS4mTIaF+N%Ma}{zMl-wLj_ms!^%_nq%&X zRIsD$b!)y*A~51JTMtXl)x#L)h*2hoM$-OSk-TS5eWl{&V#f1O>BxC5gQiMBNn+`( z%*N-#vlYB>*m38*c{i@qIbW-DFKP4GDDzw8{OkpjQBd9MP*C{0Rmt%4+yA^6jJMq$ z-hMsz6#lbq{x?Ek?Wg}y=n5aYOj>2i^=F-0&v;jiIMoE!*>mR=ZM@B9f6>|{A+LQHWA^Ml`8s+@j?9S@n&-|d7)vTfE&7h^ zEp|~-nXjbGwhm!eAFcY#?V2^?u>Pk`%Z)o%RM=N9iSTYRrM(T4c8oXsWd>`b!bIQO zS~}sm$5st7IKZ_>c8t23kuUPin>{C-_o4$gz;n(&yehT91V~Ys+W#tlkv2LA+xlpc9!1z{?X`NSGMG*`$^O8N`9&_gFZ%=D1b1=+3Z9n@{{{@8j zl3!F5RdIQyy}jM6L9gKM|nvcgBizFEr zwhb0O`DYbUz#}~WeOm_eL-w>7Gw1#Gy2uSVo?YMH-4oN$f`S8rxqT8| z%%V@8U2)tq_iX`uTT)X~C3Ux*6>%J%Q9;Z2ABfI>U<)zGqJEUdPO0qv{!Z(PiaYK$ zgKb>T_Qu5Z|F75be|W!9a{uQN%vs4OQtRs7s;p;+-KaJo*@CvgaM1iLo&E@Q zU?yWfqygS;lxL6^Pzsy3F!4Ax_31Z+T+!W8{1PJsU%cMqujO0I8&P4q>5ys=(r0lB z8zA+S1iX^k1ugqtDLM=t zT49ng46ov3b{07r09&1NZpIS9JVV0olT;=UzT02jO@_gQs5T%HF8%O$0|JF2L74;M z6DMO>K>Y8|Zi*r47!XdBxVQ>=g8IfuJfofCHBjsRo=Z2O$O`IS4j_{?q-ALhb19D$wIphDz;( zgz(&E_3L+gQ<_(k&Ls`L1v00o12{oBTKqpyKZEaDig_6vGD^Upt$ORjVP6oVBFY8? zVKB*{APN#_Y=QPNiw@j6Niu!`V^|e5JJfcJ>G_xcY4clSz`#Dw%PopMvSX;dR!r;K zw?lPSbpD5EX6FCExpDCQVW2|zL!uCA$X=iZ0ic*~Mv?gd{R$1SLD<_!SQrLlkQr#y z1f-DxO9dZOggi7jPGw=3j!x^0$QgpPCmP3qWY}xCc1cnkURM+XxIeeBZoQ8Xbe6T# zqOuT1;z1*c_$A4>3xRtc23{nxj#(5ZyBregNsjnunRCWNlkp`T!JD;QnN{4wn;LHG zUFcj0Xk%giAQCZg?ogs_^&($;$@mRdmneQ9k{Z;fK)7&67xq{!FW%^A%eSo`j2O?_ z;;|_^lA(rDr5v`M5c2*3z#=#Xd51_VQH!Zw(J4Ql(x0bRG({}dm4J^~STWc_G zUeXneWG7lo<~~uc>w`sc>>eiR&BKN<59dXDJ^?1a`j)ivI65WwXy64bxrsVkAFaEE zIB(kqt2$$%N@6C#Q_wH?A(((n1IwHoD1^kloGduf)&delcP#hVi4O}QB)*srC8r4k zqc}`FxGz9r@OI#D61g}OV?QMhuH{gCE6JV&Bf5%RVffZbma7cg@Jj`EOZ&C?+j6X( z9!d#vWbUY})+~SEZR#FmxMtDqdBbAj*Xd`BwwWgsv`i%{r=R)c{PwA*i>h;t=P}$8+TBgZbn=(L>!PJ?$7od5^DaB0pz7*)wB6)+Q(txd zi@l3W)-WQ$4F^yV+}aw~-z|j#a5@O>CmGTpb@KNEWCb6AaqK(>(t+)&0t)X#|cg-RkeMURQT1XlwsCm^gInwd~iA!SZpn_OaI&VcVB~i0^pF{;sN{eC3@f5L%d9hM}`>4goyz!2_oje`MH^W5B zLtb+%4;vZ|2{!osW`sp#+u^Xz)57j^<7cGBBgbsq&Z}E8{MaddhTEW4es6Tzc_YP` zh%&qRt{{x1Y^0ZEaB%IwFkX9{CSDN5LJ2o8V-mW-$a2!x>|0hnqK zj<3L#6oyC*txDawAE6}5x-E48Zd*o1W5813bDaaDv57E#vwC69JC!fvmOar`AwFv)q6p@gR&YWI7{~ zT(*qLh!J~mvA~GBFVJpmB(wzE2`j|7$YIPtDT&2|9FiP`-{u35OyK%#rrx8y{q*o1_*MCJI9)_RKH-Fs;(^HFS( zq7;F&hLA{-v1^a}W4Hl3R+7wG5^n%O9mx>6r!vP#3A=5#`?w-=qC4zB5x zvbPbQ@fnQ6d&wf&WHKESA~>!mz}0d}VCD8)qanj<0~d*{PCZe+^@WFNe`mX1*Qi3_@LwI4mI%5NT|PCUUMmpGdt*Mnr3A7#VK!-jIm9b+(wTk?Xr)} z@QT*dI1aT}?Eh1p=Pz$#bC1BPT6SaSVlw$ek}pm=O^=Vh?6fI9VLjnQPJ>_>ooEH` zB;%op&m+q$C#8q*TC;wC+K!zLsjR-mCmtRQ1^NkH^$X^y=AARrNKkq!Hn*>ZaRE6w zyvixn%BS&;-d!6(t;d5}_KBhm*6MHCXOU*V%!vaXT``u!H9d*uc`qo}^WY7U%AT%` zow`6tF`uwX>{GU*v>$i2Lm-CIcHYkV!QwTH*#U(QvG!4jlxO|180u~iq2jv4%ZHk1 z7|$4ZgO^O?JtWa&KN5v%9jHG|E73T#FS{X9F-k35WpEQU2-m$M-ITYmZ)CY`y|nGU zfmJ!6B4OSUQiP-(f@S-HkrQ2!@fI-i8R4!aJ;FXopDoV@=C+84`kEg8FqOg9@jowJ zD&NWk=G-tfiB`19P{*!>nY~E_L#s6XDts<$&uzfT=51CQw<{}Er%Pq=H5i=Qt9jl0 zVl&2S)ia02ji^EJjvD;p39LwJKzkN@!#kU*T?$uqD#gJO}pBY(Rduz`g#1CmK-TSC>y({H9dZ>YkDKc{jSie-4 zCXxQ4nEV6d^@h3A(&1PN|d8>y$K@j=O_w()Q4bzI*?X&-JMqz2xdOP4@dm z5lAE(-&!*>6?cCWlePXDIr|&Yci%OKkR^n?a!UTnpQH^Pc8AE+sl_xC*rlr zKsCvozI+et)0RICPuHoQQlZO$kwCNzO@wWkk?wY-#NP=lFXre)(N(f32hHk#TQ7M7t zigUbj@scx~>FQnClY9EdG6p%NRShHje8!b(oTDB&ZR>dCZSsN{vk6Yc%$Sp{`hcim zc}UbIj#n`+l(aUus_wfu9@UyT_Gmiu)(iIXGKW+5$!!N(rF^^jOt|CDG{`O@fIx#u z^@pj=vUybP&%jg8u&}q%GNm%x1cv!UWxL{Q+xvf96tHNzB5s?uLoSX%}ah*6Zme7ZU zOAgdW4<0<&FmFPkP~0}SQr@D+rv}X+pET4qrbi?>og-`i+zsU*w;5kXa3SLSUlZC7 zr-MR7RP%ADB!#~ZqWxzfGqvf@8_a#baMUJO%2#d)GVYN22U2mRh@KLmnaJ&?88XP; zhvdxW4P+l-I9zbN>mQ!qktl|V0ZSaH7RZ(?^irnXVpTKQ&lOV8$kQfTW+N|$6{k~^5zaN6U07Pg#nT-0>iHmCB4_>4Yix z5H`lpJYnkO(lN7CcF&O8SC=@r&5zLwi$dwv{x@Atfbl{x8_>ESW&h90U6^ql2C(g- zh@L$q|35+C|N9ac>{4x#29H}sf7aaX>~K^jcySKc<%sa0Mdy_f5LS}{x-u8N!JZcqUVhFv&A$%&q+CAw^90CEd3^|Hjn&`v#w zQ~6;flACQiFfkAj+<5e{?zwPV$4^h3hh1NJ4rL!n-e`F#e9tk>&7HDFLHC}vvBga5 za!I`WO$&KeoAW)$S?h_)Nvmf~pEtT} zXjZx%?4)scp|SEgt03rqNZpn9{4=ew2y2^#c4p~{OROQ066_yFebu*$D{syID=fDq z`|^f4qiAm3@7K9sPi=k}>F#CndEn69k>H0%db?J}7P!Un_PgWKHGgtmSaKBk|A}B@ z9e!HCdzIno2ZKe=EZY1@g9Z<*w8xSMOaA?8Z9)edtY?^9q2PVYc4McR!}Eo^R2yDD z=lN7_gcffhUt4JASBOIuSY>c-C9$jxWs{c6TSi354k6v}~j+!A9pg7^c)9h1h6 zXGa&-4n^|PmPgRnw2VyX)*U;#sN~WT2mAm&j^8b8q0V9%yLW%zy6{Gav8*tW-s-N4 zcuK7uE+X!_q9Pv4Xn$GJONxn=!8!(u<{Ric2po?%#ybH*K0D5@n|r`uBotu2$P3hU z5!cQTK$PV zhj=709hl6Vn4Q*18avpycRnzsEc|5ceU_Xs_Uxvew>AnbmOeFo2$K49n>8$6FwbJ< z2rjlj>QUDk`_VIB$HRISZVHzC8EF;gW}m~04}Uuqhig!1dF4gti8h}=4A|+yk*2ro z(%OYPD?mQ4Z(40*`~{TnGz{4DIG%)L-GC7}@A>bL7Js{BOX$zhe$H>FzBBOF2N2Q% z^HQlnNZSU`>CNPD|DPAL>fBvld?l4Zongvzbq);!v(hjo|H_Smnj;TUR z)9W|RGd(`tgW*ViOeDVLsUA~%IRMy0s7|^FBLt3Ka-#A0Jq?H1V=(=E*VXMIct7+m}OpG7qw%7yy|gvGBBpqN0KX$Px^?5OK(_LEQLRSZw-963ro= zi?E-WCXv&>jyq#%Ns!qbQUXJ+gjPh8L?$vogj5d5_YV=%ZL`TDzv|?zwV~ zsX-tHLcSPb{%s_d7a7h}2DJn?hEDZh10%!r^q(=pPc}o)h268VIfiSHdMaV?gYXO59mMSQQw0E&X#_VcZ{-lo5DFUPtvL zgC{5jx$7^@ze-R+rNH$itu^3Ew(JP@5TlY|M{weuw@0L_c%~JcxTHcR&>7~AlU#8! zAPd+H4>ILHe)?3mDpVG4-ZEku{=acyJ!` z){8jdz|o$+8yp{;=nrk7di35K;9N;OnYcPMs$|v(8Bz?RGU`24x@&w)f$V>`{XN(N zQ&t$d>SfNnc<;XS)nR@vptSf8aOLQe$zv?zvFvPX<>?fh=1(R0T4dB$!u*=krsKac z8Mi^s1TN3AM!3Wa#I2AVWu{Af9q( zhHK3L95XHnWL2_&egYbvY-B_FFds47BT@F*vQ=B8TZ?1Kq$~`-b$#*THBOhVj!=Ix zssM--MDF{LjqK_ggo{cd^!ul9=CO#9xunqS5yLu3uOohO5X)kJehiMugG7UT!T|fD zD&}W@*VNsL3Da1jGx~U|5hN6VA#W21kvgGmxO}S1j9@FGQ#uF*rT5P!{KKeri=5m?(Y@bo_=XwFC4ImjOn`3D`#R~ zsi1`Wk)(_#z|a^Djp}muw+NAlBJE@)at^2PH{N8WfCiGnk9*D#fsg}ZHiWJ#?AGc2 z7R%S>V@@U+5jqe~MJnbTh9V^G^77G7t_;`Thh`wB_m?9>k7-7(~K&BlcN0 zE9T%|PyY&*JuS3xx$2`Ezqa`VWXyL0qw}4BL-TP!g-Jd6NycL~b}H*$>^E-4TL^h` zBzp{Bl97t>P%)$g$OafMGPRR4w%wD0d}1;KgUpadIwH71v-AcoiKB-Lp=u7+W0cl@ zp#{W|!-MVcnKA%)cJ@1xgFi7yPS@wxh9t!Dt88iK%=akN{md=l86wm9tWf9o{K1y% zqrC-L>oPAsP*&{7Zc@~idA(Y%B`o0W1rwM3YgcVzo9==7H6w#AIJi&g@@bzvC)dSA z)}|k>>`PXVRu1^`zDCzsi9$>K>w2hlJ??ou?i1}`R{^QQ^y1M%wX~>-fKGCmibyU8 z+uC8zkb~JRuo0Er;J@IQ{`1BW2|0Iz&nNjzbe%Nb&I`k&=?^bn8~XFYXxodtW|;^3 zf9kJjr)sO-z0@~K>ALkXTL8T++>zcP7bo<0DL>84cF;L97O11_R%k!pw+oNztUN5~ z*3}*<y2sk7wLbo64}cos|NO)g`~+x<-N>d6A!cK=dEyC`RMJwNXD z*WSS}@oa;ilG2OosR=4~KN^;^=M2!5MJ(i*IT)^sp!`3TU3om!>DxY*c1F{l&_-mf zB+^3LWSKF@nx&K_6qPNqRTI^(sADT-s3;xEAla9hri4Nv*`j1$%f7$YebDdyW8U}u zy?r#FeC9aL_xpXG=f3ajzV7RaeKx&agQI_ueLP>F|7}xWg`dZl>=XOZ9r3FVG~hJ8 zx*^VTiZC0oe zR*>6%ik&ihZ_pPQU)+^3mwTVqgR2(~y-M_ax<+% z^JFqKarV6>A4YU^XdVf~6L6?|*L%$>Jt;ZyIDRVGo_+Msx#qOpFI~E{AlHv?!mk|R z!7zAn;P{XHPwuYx!aA_O^MgU^+O-Y+XYeE~LM;zJ_s_9hx&ACyhd{2`!t4CMO@+HV zfw}ctS2F^sl}^T*Xrz&EHd0p@V2Y_8OtJ~W-zbQfh@o^@>E3;g&c6>IKFoLLis=75 zRRz`sdca8(rvU{&vQtEsRsWmqOg^F5SFcn|AP4`Om-1|^ZuY&uQ;Jkg&0Rx9r5Gn8 zv5aoprK#dLfsH)G`D_*^@N)!CSBZB@gP{0-WX>Pfp&(!cU}F$3{0vgYOXA#`OE{I; zZ+TK1X|c%povMg-2tSYn=etu-2u8QzImT|^sqV9P0F_b@A-^1gCR7v$nze=)OYUPA5#!iBmmihmb!wy#QH2&j2s|VSCWX&7KE&f0eL4 zvyW0i!6v4c@4N00_KjftcXaNb5jp2co>Co;o~ZP2Wcea{q0a*&F;VMEH6Dk`4^8xU zZdYUtk53G?eKbs%53-T)I&bfwHR3UgS1U6NBai7Uk=uP~_UzdlS?7y)OLW|w`>mvs zOZQW>Xv!i9gALvsyEK*OES`O3@xcn04Sx$?_pt2j^53xbhLp-G%Wv*?WPM+U6=jCI ztkWpWD;Q|He+N4dQxFV%bH^so?P zbb2>3>b}c#F_bLhS|?Gz9GMd2k}+xA#$3RzAGaIxC3S!AJyH0<{iE&jL&x9Yo5u#vM$_I; zpM4A+=HI*gt$$X#BJ``8_R9x6wO_CPvYbEkPV7ebGxWy)jrU8RY^MW@KlY_r3wDfe zi; zY)y3QFta83u*C3F+o%A|V3D(EU0t26BA@21sk1D{V#jdveaJ9r!fu3^&}f9KkS?~0 zib_yvNrtOK4Tz0w1yanLYhYVu9c6e<-&yH`7DsU?Q$Uh~4i9oMM)?>6exNvPRFIT{ zShkvMmp~yR(pGAZ7qEcGhq6s!6GeUYG{=^E$Y+iriO1nkimQkQW3!_+`w+D5^uPzC zf(ikD8qbHEJYVGI zw%yn-bfc<+%4HcNb@)1we0FiMrm8k>J*-?}VKI=rG|Y%eoHnGqG>$|H9{3Q#s&J;G z$(%k2KDLr@5fW3Ux*QHTD3B~Csj1DG(0p7xwTYh?!1V$*0Y&6fmo8HXUhIW37|v+o zPU6?rtvCxgtQp+g(I|JBkyt=2U^SH?S1&MefJY2uQg4Cw0l5qCHG?3YiB3qk`~*0= zy|5Znwdy*s3?oyx5OpRV0U2*Wj{u*wo$0U?lBRIoMe|7;RcoA|b4TUS?kv>z;DLEG zImvOB&EQxyxx$ZNWk8dF9y3O+KEfTS))v_-)_UI#C5OhVw45+Yyr9)#0S_GLbHUI?l?i&}7e_^pZGAIm&63!( zNt>qax<=u^Lq593OAq5tL-6R+ynfsXyjEHv8wR)_cgh$wMKu-{7QQEu)R%p!R#}+GB~L zPz(zbJwquMz8uv4ZJj|@kA`0fc>Au4sOCNjFt-l>qTpdUi zfV+y3BWnm*kvJM;DQxhR#bFkNqAit`CL`wp0wv~E!fn71#%k8aeudSwAZ)aElV}_E z0vPP5k{`g4x|~U3C*+mf?@#d4Ey)-yIwz9D zen-at8UFqul>Mg>HDYGGWDHAPSx)QV!GmQY5zOfl~D;#!AeRult(&^%g@93wl?xH+0?Wi7x%C{lz1bI2 z${?>Os2e=O2)=`ivT-2JDI77-vw>l3$-6Q)0r zn+oQ2V4T`ym=&_hCfvhvk#DIA3*3fI%RO4At`QfRK%Bup!dhz z)Y%+G$=grdnkl-@#^GgSk7>c+kpTMUMM6V)(z+3+u*pWF&T{*u<>Px&^M~*59U6N0 z)S;XMXA@|(dG%jaf<@FD(z$q5<2RaJx%>paUig(kfc4RbVc~pZMk1LPM=P5QsIm2F zj-Qk@ptnnTbH}qP5^00-5rrb+Mq@4jYQlUpm>asu;tCX*JseVur3n}Yep3wK@hLpH zD7K-e4m%5nR5$9);}FCsSZeiGpfW_64~0!=mjS#3XvXl+SgSrW^6Asf$a;y}MV$lq z7D=l@%ek1Q%Lr!oF>A)~`7ms8@4^FpG&a0I=AwL^gMz?m#jv?NJiSsJJCnJ(ckf!| z8K}^_kr*6bBZV_l51*^7tubW=#;@PA2R@pcJTrtmB)@)7f|Pj!f^=8;?oi%!&hD1a zdI&ead$$0S<*wT;(zz!bFQ3$~yUZ_t+O)qC{ShBCF>!G^ z3~U6WuY!aJqYiNZpf}k1b*6!a)lg-a#zUUxVlEkY6*Q=`j(!yR10ib|2$6d(AArOa zb}74%X=K@=TmDg??6Q1ukMs~P508$f=Jl>rd2Zpsn4355@5dpxcaJa6+uQS&ylN0H zyCmwf-eUC3HGv(iY2|ySMxl6*gg&sdJ#~LmR<&rs+(766ZxcA3#`&c`#llt6FnIqr zAMarEo9|A%xeu`&$BMSIAy?g223ruWMh}ftGm%QrBr%K3lM)k?uo!5X8@{4$fT88U z>ZinME+3yh3>k=fgFtAFVGQ!WB!dg;0g&DWxNjt4j@S-q@E%y^b%D!B}vVxBwU=fpvu% z;B#HHnmn4^whK`Mrs<7V&CLfbBdM+zl+tTV?bgmun-I7Arz}<#hv!b0F?N0$!T-lU zoSm)54H~|lar|ulWIVIaTTM;90ekvX`j`0F9z_PPs+7@QiS64{cK1Ny3-rX5(k_y? zJOnZ}K_AHnHAnIb3-tg?VzyC~)(uXkGMsC@jkoP7>jKA;f2Vs2*9VIu{mZ51irSL|sJ(R($hj9m;ee4Fs)a_nvEwg<&!H3@r#>r5IOq7xYGa4YFWs)k^dVjV-uk zS+V8EkKRQqhF#NF6`9O!ulf0>YOX(aj}K3n2Fh+w{`K1O1J>oQ^YepiI!!`7h7Jc$ z;Z`=EZ8&orijpPOk>Au>h3UNv9s{>OVY^W34k5$fhsJ~D!+y&y`kG|*bcGy;_aO}n zftMDS*B9>5Z-~C+XsF4A+g6u{$4WMP)OdX?RPN*&EI1X#v1+Pxir$s6`kXadONK^* zo+Sp$jeekUgWfal9CxkxZK^iunK^OBqMEM=Y5Om=F@+ z`@8kWrW>8lO~mSkti>*co(oU)nw}GHT0NU{)Yq_Vl6c2pq&QFA5(eX+3e^8Jsx$tF zI{E)d6keN7eGqR}P=HbNfr=UVJ4}T4XdgQkv8L_4c35!^OPW_%WIEpaoKBbW7^$sS zJfpCmX}-)N*I%e8Kp1mgPmFGtg;?`1&a#A}11iJzvv#3ut~a_Z;yZVm0{qfK-U>j- zxT4nYSEQfB76pMxLa~cR!SNkZxj3~)YY|3~U_x!`ac`w<9Mw)heDtX$irJJJ$C6)| zkp!O+Tm`Bytd$-jl0~B`ps6?-jb5Krx(I`Iis&w-9;NXvG|FTY#xXF5!J({!odzl@ zm(WQmu|3$-_j0NWXS2#b_npr#XPuf)J`v7inj2cJw8|Aw=)JJzc%_7YZrYb5X>)Yp zs5qmdjD#A{GlTHN<1byGLr5kC#VZ?j0w?1EH2t2qT({9F0L4dOzM`tsB1l=8L- zm)%1%L=q(ZgntTlHe+hYyd^^ujsbvk%lwI zg3)k8icH*hJS-X>!>w}pv&-wnmBrwTga|{|(H5V8B)hsY=b$tfCIEsMhd9+Ittx!P zp!m;(&+SSGzBFH{9SJS`bn;b#BxbX9Xx5&1hHvBXpSZ@N@Hh+=;r~%iez2`?%F<4m zx8B*P(yQAyK{TYc4QV~aLPcMmryO|;AtF9L9(2&0BDW+Y_asN01(!)tiDy+Acuz&v0ILyPEV z5HGTN#!;qGZNw}^4;9*WxNP49+rqtu&-pf+DWzi_KNH;crx zV}4hnrC+s4X4tLq+0V!qP5QR$pPvd${Ea%!o-bytuqZhH>zL-reGbCH!eTfJ(8~=~ zICYQYsnKjzWuj<%L=rv7Dzs5R211+=-A*-t#)NTTw=$Vfz7M#M0I$l#z|dph*))KN zf;Y>RKprqQ#V}?;yh@S=KHCAHBoKu%9*q6aDTLr&B)nQkInjhdvSVBxp$}~#l6OW` z2PGy=Qd|IYbxl}iZXKezQ~fo08p{GF)-2TlKumvUO$>1H)45$}%%7-E(c;_DdmTo~ z(yBOu4&b<=M|b#7PP+X-iH}zp*)L-q%Fe>io!!^9Ba-R_uvfrl|0=Ra*?zDbEpW_I z>IV1qT(FC4urAoFuugD;ofrf(#IrLtRHpK#xvtf4fYn_Dy$Z02zlU*^2* zC&Oa~GWYZ@Hr)iT1B%TS%Y493E|7Yh@yTaJVXCv?tRs4Q!RWf@3;KgUj(-!b4={$( zW84K2Ri|EQOZ$%M3@DY60jjK3AFzK zyuDo2p@+V6Da71K^&I>00FWq>#YTs;GC5M8iE*vP%LeOz$Or5ZSkeL66J5Rq{qp`9QHm?(|GwQ-8%d|bMQmnCObwy42Rse*>FX#O(Hx}` z9q9hX^ztFB z3RE^Gv|jCdm>#_&Et))%UwHY-m2WdnF8&du53q|yem4q^S}3YPON)fFaeVf@mMv-q zA0(XC4$cKtrk~)p#%)b7v4{T#OSkRwu7<12Wl5b1a2||?a6g9c^<9O@9S-FHVd_p3 z6bWuJDag@y5OPuc4mLOm5=ij2iR$97G!6lYhu=MityQ%_54)rB5MPAi;nX4e2jH$T zSEpq@TI)@$L5_VEKK^VY!H$bTLcc4VU9y&$vy4SQzgEEZqN zv5G-|+*XIiS9ZxEF)v~et8n{zcXS~fk(nTb1toB7 z(L5KECtrpsLHU)h@d zQ+2|rO!t6c^Si{{p4fyDhG`pP14>e=J81-sCg$;j%rp zwW2aV5SQ5>3ZwJKwWE#l!(&}uUU{x~ZEv+hQAe_ zn3xLWipy!M;p9hngr0!d>eahI_ZUXVbeb3&fKX}M?`J!;0C*O>F++}pXF&XPH0|kQ zVUfyVKsaox!%w6b11GCBs(=GSoZCO#eetiQBZc;$vk)4J5REksgQ#`oUv}gs$$x5@ z2#{1S%wb#;>d^@*GyBriRI;CKz^N>E*f1C)#JNWSgle6Rz3(Pl+@r^>N>4&a>YnIz`jV(^O~&=)hkU5`GYPOy8OIx=!E^@nw#xRl<^lI2vMeEr}xOm`T=x}2Z|WI65?U%dvOuQX4t zVh_Iq$OLFo9##1L{@^#@)i|?Z*!C8TF>GMZxAE{aq0ND5oSn6)`%;s?}n=SS2UFQp?ISKsnu?fCrAf84)f=HrS;Fxsu?5S&H z&9Sc=DDmPbm24XSL2P6tXUMoo&J^KYXYI%Ao=ibysA&Vqvs!7rL>znU1p)1@iIyr3}!M};;z=M_>7GulC zm;1Q1$b4E^r*t)3a%{lI%krX98@D%u{^-bB$d4x%w)`-BN?x-hP&nWRi6f`uYBRv74^bU$h6R82| z(h0qV654ld@P5xZ|D12;n>jOwdF}^Hc9OlhQlZniVA)Awi*hx z5B}WKbZ|fXYV_*Wf?pJlYO=RbnZKEcDAZXL`u0tYCs9+qZh9Jo?dtiJUtgXdeD%PD zuOK<`)B3H5hmXv4M>7lgjV-$HR+`!5u9fb=n24_Aq{5I3VfR0!6`IT(3A;aY!+El&fKvfP$2Ij6>og?lf%f3o)pS`9n*Rj9hgwbh6*is zPNJ9Nhn*wNuD95ZQn5|Ph;43(r3kMfM{3*XU(8}gnUutx*&hG%<0UeBC|{<##j#4o z#s)7jm4co+=Rw_0gS|g4Pi1ve>F}7ixw+Lo^p})dst4ihYx;PodF-*dkuB%?b5>^=J?*89$VZ4kg+$w zG4_~L-CFM7WHyvya*j`DwEEGVCvEh}sWJavUD1$vYCELiz`lW1~H$UGoUZkd` zreYLQ@TX>NPg74>D87c0Iwy-dh#Z&ykbu>6pUlW_OOT~@^YFNyCrKVp;L^l~;XTH-7AH2H8oF{knOj}3_}NzMzywLC%Dx*1nLDNJ-`n(fxqA|36aLx-^X#d(h&J-Rv_DejR6SHq8n zSEsnl_C`%T#k~=;u3{6DL0O8>4EB_xd95X2;m)y>2bO{O55X z-n1biNzk(Wl8}%VtWV*i3ouD12)L9a`Eaqk4BcG0TnmDlgG1KiZn!3RpZLQxT&a46 z4iO^upC21KIpuWam?!-G`#>{8SCd;S{XP3TMqwo{@{(#pgrK1Nk{P;Xrni`os>-IB zsiz}o(N@!hkByDJpztv+jQ2hk-iSOJY1@W3lzjQ}CGpzfMN)^Mb|{yo z(`@Mq)?;Pn&AWFE3!5@`?qJ?(jM=!Cn-%gSXRm->OWt#1% ztdutW9c7=hKGs2e^!PDpsZ|-LmLzxh(4ppEp9GlKwKDb6)@O>9VK_D5;+8g7`VCh+ z{vQ4M^()zHeYT@_dwsbdzy4_?pETKFxwbG8h!?i)OV`TKB@XzrwjW^iJc}b>hlh=F ztvc0?(D7*`+pVL?&N>{bTW!9>>7um%$elTTElUlHvL-e|@|{Py18Uc_Ji2 z&~h2iNPP3%d?`!Q-L01TQ=T^cV%c((T=AVyk0Jf4ltd$o$GP3k9o)9pOMfz+L+yn- z=F9Zw>tp{5$}#EZr2WR>j62{S3A_}2{PS&dbAoKH+oB2F#HpgOEZvNWp2F<1jRpDY zyh6t@6J7DuXxF}GIHv^3tyO9GFTuc_$Wc9bp6$+CmCh_<=h0vEUdx@P6Mw!YU@(~B zi3w~?&0Su-0+j^Wps-#W?dm{gLA$?F%r~B>WScf>b!6&0&kxF=F#!PqaQspwwd6QK z+fWl87ku>NV8;FY-}Zdy2uYu^Fg|^(b$6b5f0>sY8r|%(wHT`~J3U+*Jkgxs4=W%+ za(hFa_kNzn_SPl`S~iG%xw*b#IoY1! zJ{Iko^SJsLx@B&lQqXxqgIUb!uH)EmLVmw@WP)RVX3cCE)+3y+tHj(f*(=h!H+4q8 z$gH!a=0*lli`TGBPd!-ynFzVwo9?^@CHK^HYYNRehaeWxW6B0&<#5B0kW&n zZ5j84(Q2d#f^)yuig~3UmHWngHAn3g%oTXAk-AXzmxpPX3{wsS)`#(`2eF6`4-K)Q zC%W_Tcix_fckTBQmTo|vf$E@9>h6p-Zxr+#3DpjPx}%BHN>fd^!=;@W#ZH{Wmxon7 zs%>6*w6(FOTVNN@LmTjhhC4YW#$B%8dp!d=r_f8Pw+y{Vp>kn7X)vWt$v2`ipolE2*0v&N%j!vJ1mkHbF)eVn z(^(Us&!tsT5=i&VXmVr7X<;`Tn zN8qQqi{Y8Jc0c(KtqHyP^_TgI@kvB{L;CpO|Al0L%R= zG`o!RGH+^Z@^KnzYJo#?A(sZ8Fw@c|Lm_(U?>`9(9jlEuU@1LyHlglYRqj-0pZnkt zKRcR|p(D6BKqfVmiK-i9vSKF z;g;$xX)otB#?zEc7ps0{Hp=jT<1^H8q$y@Sgau*IlK7fSBQ@?Av)DKeU*_;a8Scwr zYHIB#PgZ%Oi=p2m}6`RgdgnM557Xx!OTDUE-J_tQ}Y^TMFwiGV!&+7cBv6=w=zc7IU6R93LNN3c6aN z|J?srD8WK~Hb&eyTUXHO&lexf)r+-P^tCZcQ6d8eHx(`f4~>myH%h1j5-lT7aJ#v? zTePR^(8oM3&|iTsU6_zKkq~S?abeCssVAwCE|Y545m`RaUk-c%-Vj zy51z)oV-M&r@e{pC~2G>f^v-!O@^yt-ykEW3(b@$doUmD$-R#|HIX zdq+e}nm^0Xe^0O!-&!3)KL2Q?iiHK%kD4_TUd#pc9FRoE>r)rm(SY0x{l0MFsXQJQ zkV%s%=PF}5vKy)D!Wl9z^6@EYXX@E+$SW!~w3#eVb&7d!6dYrfNY}|WF)qCIg-&bdxbsYpXog6SPAj^Sm(3+%w@+j&Mk(Usrd^XhWocfip(AQ z!KpaCaXW0fyZs}F=dNEY*2tUwm130P;y#(@hQ#8 z-q&Q&31yk;iy~uG2G39UA~)$hl@^Y0We|V+^-0}qlXpd~vzbt9zn?Jb<;w0%uV(ep ztF5io2~=YgFnQaRXN{|o=F24F4VGGy`rX17b{n}jy2EV-#+;<)wBhkn_IfB1gCa0~E&qlV>M zguH7U}daK0PUymrF{BD<0IjQTF@9ZljLZimdFEijX`FEarwiC50P2J zaLw$!hwc8F_~)jLxap-vk_k?>ZQ$ty`ERx163OFmnX|) zoTeVV9h!XH9L|oeDk&W{`D!*4@O*fAC3oxI5(iD~U_^8`LaaaG6MY1Z0za&=5jM*2 zHqPxjedf&HrO(KH`>Q12II3XXm4g;A{r&4puT4IJM`8ZY^D0y9&vYKRm7}M}b2YNz zYNR6loy)W@)|a3(nZcDH#crYa^yx>oJo;%9Ni%Be5i6V*uAs%sKjMk{F&cI!VtKlQ z4D#gATDU&z;CZ*tnmE`Rgfiq@no6MplCc$VjA ze+E|f{9W5z_uJBRo+26?U`TcJP zrI4YkNd^S31q2cqiMCAr>rgbgcz6_Gn$*m;sQ8{9KHD8o7(z$czIQb`b2zOi)`tDt_$8bMk-5yn-FMJf$>d#=f?gJ%^ z&#>%sNQg$~wBGBTcPn6aDUJ^b$?=$OYir|~t)lqrQqYrrlk9w9lmEC$whkv}nw*l- zhhCfTkma{~wzzf_5UJ&)#+=}mnOwyS!60J{b^4gEFBaZK?fb4sS#ga>$0BW#jmGEz z!@Up;|NqU9ZTGWeOdNIpnhHg3dq=Yzb-+`dbv1gt_b=f}NRbJK?80lDA+1A@tqiRH3C0R;CS++inq!l4@&?q(rfi5|oXi zn%qS636xyNvFk!1TTIVzbeF;|96-+d?8TPY#c*#)uj#u|rdgd+`A$9Uy!Uf_`VE-H zPIDL<8fs!Sbet#J)oY7qe~%n~`h7&p=c42JZi)wD+S=NM(5u(Jv-&-}Bq*q z-ys?mpJtYv1^EpFn~S&I?%&V1s{P_swZJ+&Gm}Ztc(i56x@%P38I?5@wx?p_9;w6V zYAt~fx(kDRZ#b+uyd|#?lRkbt<4kPVS7fzF#&FDr6&DvT&-5lJoBVG2G0$qTT~^94 zUuU_d&*wW?V~_gCI?x~8B#c}U>Se=rA2V)s^@(D{RmD&)?cZPcuPsSZ`696pc4<4kNd& zt<>{7X4nFC6wQ|G5KpQ%`!h#(&1~-YzP+bgd-%tOby=kzVut?Ry12jHW!91G#DUSE zo-ffj9FF1TOY`4!v4B1$X-=wb<*f(4dq)WU!|nbBeM*PN9G4)`^7-YcK}pGzUj3Un z>!ZS(QU@7v4^lgjn;Z+m;i~G3sTKqe(vwI43$WIz`n?k<*H`Mht7WIJJE^=r>1vE! zoMZK|*y=Fk7UYl-oGCX9%6Zik)ftO(nJ&W8GH{{ECIfpy3nuvlt=j(B_h4!2M`i}% z5%Qm+6r)1CYTWi!ovylVLX%tj((-~a&5@%TkwVI;ZQ?6tgf}CY+C+qwk2S`s_ZE?c zCns@KjO_qmb1gdz&W+S_U%8_CLB6~-URrfwez}?L#0jk0NMH9>%-{ZZ{|54Guzs;i zUCP}PYpbh0Io6$7BkbslTV!r+@-m5}`Cxu9Vw-ehbH4fnV_27;0mAY&$i9Qgaj2rk>LtA~aGQ1(C&WMZUfuGb_ujbDBhW z46@Akmy2)SZYU{>6K*zAGiCX<}t^EVe@=u(Q}TNX(UprJ#%@{513-0RIxSTHQ`_nHJM6m&o{O z{NaOxqhsrrf$fxP-Q0HJ09r0!720L|t1IVsxFHJl>5N}|0k?L@$B$21^R9&Rq2-Ru zI6UvP((3o#)XcNevEFcgF7ag6hdkA)>;&WjR5kr#C!dB0F8!h$V0CSuWnRGQWJ9|r z%E-fgzX$v<>mx77E=VnA2RRexwn)omaN};V>ohR`6&&2|n(prV8GzcpeFJbC7k8GB zYG3}#B%4bsJ@Lnn7d(?z8-Jf4KFX5`Pl^A@Njo;xol+Ny8&}Z?Ia=8SZFiXUFTbQ@ zxk5E4YBC&hJsiTq!l6eFsRAMcuof$^$&_$OUynylu86#*eS}IAKr+qg(~0NHWHice zQtI%~!cDovc?B&Lskpv8qZRNf4CaBx+F=@vBnKLq&CSC2xjGVO1%OIK(h6ji^saQt z%*;gS7J%>AZjPO5IO7=WmO3Hp%r}<|Y5&jcXyf|O`p`0Kp-4S_eL~zr zHbJvLcae`;nQi^PW{8u;_kqelC@b~IHEm?6zS7>NLGKq23YXb@en3c6NP5L!Rgz`< zDPG+ri{o^RjFSg9*f~WCZg+XSexr7x|9s%IuQ&q~?P+b>Wbe4i4YuM~YF z4c4ovC|Mcf8K8G6Y^&G5)~Kb=%Om%}H_uOs7uHVKijZ3xs-`3G3J%WB^>&_mdQnzF z#mNdW!)C_W$y^1uUr&}DIDM>;1r;OVMNS@wWru|_F%%>j_V5hIKvFj0J6#oJQ~6vm z!lM0Gkf3#)k>baV55Gp!FP>oeQ*MaU%2b&aa|W6k%k9N_!%pgczKvE;OeqJNHb5pm ze#N|c8J=E9^z`)9z~7_U2cR5 z6wYtx;_0>U2 z`R>aT8J}eWKw*5Wo9p0~7qqgx49ZY*)0ls46$kIa>%hP;e}9j>#;4C})6{(twH0(j zV{%8ShpTKPy?_ZqTOCd4ckcID{~10_Io|WS7Ta51?vo9wMNXVz>XFRlwjGfP2H_xB z#+DTd7o=DfX2CUvv~QK%q2tq2QBZj6-Cw3J8^o;H=`f;^p_}U6ou_$GIYtA-?J)lB zo0A=z=QlUgCE*7yyCG7j&L+FoBG+UhL6>0BHNQS9<~I1^&@SyEaWioty5y)R^{vrZ}~ zC`biC8iwK}2&hgA!{~;MClP}~r;M^Yb1XZQI4Y=6z{QA#+Ml02Kv^o;v?B3-|ut|&h4W8rpP>1MSa z9T~}(5qGyBVMBFS>UBT;GTC?F0Pb-L9}po7yZFN0BfK9amF?~A4tURr$XSk%CKKR@c#qnVW$k#81{FOR|f_`&|t&kySoT_mSZ-cp4f9-yl6SFffs!6H~TP;!HxP3*Rcmn zY+L#W>$#(Jte{in&ro&HB+$VSc3|_Gh_?eJ0u-<~pa=4p3rbO`KvU1Rew{5_&jj1R z_Q}@Xljg`+N}V%4;|K0suMJ2~^%l9DmoKlg{bJ`FmHRz|qpEEBzR%FI{cVuIyF0l4 zxOn%K=@ezthPI!E!l_EVMGT9}_YnA%8uaYv<)dD!-#jLov%~jL28_9iuF}nMW3uN+ z-(Q*)7ThxuiZm9A1S`*GwWLmumEvPrmJ)dq(SAY3MWj+Tl!Br6dh9VK5xdr16owjR z4z5jHW)>rU)e4$aX}bwvFzHd%9%m@|3oFV;SY=Ds!upsBLA#iU%dhF6|UF@X=Zfg=FWFek&Q;H z*Yr=K{<*xqdLb-(@;sNWh&N|?d52RHj&fpy=N4G?6c$ibvg>j`FnHg`{^Ii_1>oxPU6+ zrl{B6vpa8CkPXKzusfmbOzqrJe?TchE zj!Gc*JN!5Vt5bsdbYOJ+Uck$N>fHyWZ0bm;xtZcwEjTadjn#Q3<}r{U=H}*l_;y$V z3U#UN--MrASa8td?Zmu){~o`&W7WPlggN~13>e6r(=Iw0LZG7!yXv48{=7WW>|p;D zEQNY2A@H4h=bGI|CuerM2Wk%g&-es4{=r_IsM=TmWdVHuofO5LUBh$dfdBtJ$hW4y zd!ncXLj|i6CBs*$kJPYME*{?Dj_S18Ix#GnMchrw-erAj`oEdq{aaXZ?~6|};@K`X z;tI;~&-T2jdsMi1@m-gd3kQ4Bc+-3~Rz>XI)(hVbnSa-=QWGt~nh=LFTzld+?8@0` z^7W(Uk8bG;!LdrQLFZ5MYqIXF^k>RZLj>kBvxVrJyzlxkRG+QVbYJQH?X^aq;Xw>-bU{%O7MjsSZ*l&!XU}Zbdk|In z>!YgE^z>=)ffg0M6rZ}7#oaYPd~1Di=#&jk(sb3R{b5I4gYXf$@!-ZWqt##JmFcALJ0;k|G~8l&)?KT(pIc+rRP8Az=DXD3hE-J#oG`HH4QE8sL1Gea{>bhiV|zXr(`43y;H#EP60HIxJ&JT zSOgz_e{nRn5*)B=W=&^v&0FsLaLUEQCM0r9_jXR(5&ppUAwt|vLwLre-yfSJHVHS@ z*4E?!3epmO1*H%P9kP9MdfZ{#aRBYi33VfGv>?lr>4WCo)~YO-0fK&wMefAEM2w zgO~6IiXF6t{YTHlK}_H-<~$o)t~<$s-tQcsDk_F+<9V`!BQF3Db>-XQ%e>aPfK7tj zE1aGW?yvjc>x(%)+ul__evHTav#8y^{i1Ar<~j)c>OPyK@FJIKELd5_XDAAu%s)bs z2|%J?%6a=SAX>lM;wUGWe^mi=9q-Rc18?O9lb+a`!p+4c=l2l7TNC}|D3mmfBcx=u>C`&zo5g?8Q!gBMg;9Xefm@h z?*=|5__WcW6_5UD&$ZMJ<?d{bE zlgr*FhIZ%93_nE-1+cu`!KvjygC~I%0>BGi1=fOq?JDys2F;iY4FY;37zm(HU3>U_ zZ?1K>7Kq4*A#mp%LlRgC*t;LjXWio|au|7&tQ^bNDj1*uw@mRJgP@v}lrMxb*x;4+ zgSWvy)|mOS}-K{0||Sy_2=p`O1B)}pg1gP1(|u6TB* zXQexMgkTq*Jb7}djvJ3;L!|wWX@Z|jS{(|qgx|<_x4tvB?H%fI&$E)da!uFX;@LY|A&3>%;jiq0M0u`O7!dz?D`7>aaMK z{Z%(ZcYTq8;{r#TUg7a-mw>9z-kS#|5^7J8nseysz4y0dtPy1qG74^1gg8?st2SP( zS}8hO*A_@;AoKNPI)f+YTFd-d+%I*kA31ic9WKlXjHFQB`&y=rF`6K0g44_y*$_6l zxv38Kr^EXc7)m%ejjPpTPZnw~B2k%0`+SNVB$xyrx}#Glfe~j%Q07H7InA{A}Cx-D~Qp~VCX@D;T{HIQlWhMy5J@Ss`@%l zwAEf+Eo=wn%W0yGv)U|uVWb`hr9=$;VHnd(m6vlKR_-U@w3VqPRv%>gTo4Wp2}y*a z&Ux*c284PbEwJP~nE`W*J?&woABG)7Lgf13?LXZi>083oDq89D7@3U~a_8gW`897< z*zdEg4}vcu7O-=|Yyf*LxWPmn2)Xm%k3-XczDmc($4|6pM7B!!TW07M-YVb7(!zv< zd_;`u$>^`!q2MzmynA@YqGjnEug*qB*!Enht_1mB@?yGPp&pxon<8e(?up|&&mqB- z1HLf9FzlcVMCNUd&B|*%?Oh_a3Q)aT|NET!>RUBy2tUAD!DkuQTY#Nr0m-e*plc;D z2r{+-KOB~TM_}VT6t6K8^v;s`%ZeDCMb49A;A4*s4h;!t7aFC}Jr`9-Cq zq`;fm{xQ_k)AM_rN!0@XqM@Nl`u6<5^}NF3Vs2P7pxibiMIF`#Qa!Qv^D`m5#Nq0? za^G{TvvuPGZJ;SiDOOB|j{gq#wWTti?qlvYuME7_WL}E@VXs_<{0$Gx3NRt0cdCj6zT*;#%l zEs7D>IO{iI;<-bo359sb%Oi9Xkap;Jb%M>IO;$<2_+X7>Z@K{*sbXLV&OGt5jti%; zwY9CTxrU~{rQze_1MG5Qduw((>qegUCK>8|8N@g~A3Alx43?P%NR(9T^@`EOPOYuI z#p4xQn^=e0(of6bc$J$Z#%pci*^=QP+*=vuJ}Pu45mSEa7m4NZ>dob9W!{@lK_5z?Jr#9Lj{_*3-`xDu)HUS8<0I7ud4RN)z=E!KI zaBbO=p%W;Aln0KbsvRo>DUn6v^+^tzX>AtO05&-&2^LE$OY=_e7+#t;C`*cYxmy8@%XK2EZ9<5p$a5_VoTGH` zcPGLPy;T8DMzxqi@FoZRx$1*mC4(U+e4*-pAXqdkS6;}_!a?Z{dq|+!nSSr{Sv;n$ zAdL#9tS02|2p|I~05h~5Q#Gb@Ii+7!pP`oGQ>Yk zKGwO5L#b|qMUlEV)@WJt{v5+qqgN)sqtZZ~t$*}&yjhkt6c#a(!UCTf357y2@%Hwf z=)lJcNWQTuG$&c$h+I0C>ED!)ilVqy(QLGx#Fk@W~Ync>EhFQBjjuRYDe5+fV?T~j&7LoT3P zKM@op)!^h$bS-m>i`prC`q#WBWHE{TdDg+<;rWnV2#)X7=aA=$yXTu{-TRqL6-5`) z>oHsEKJbz*2Ld|{(bu(ESXi(IrA0t#qX*VMG6N(dz=;Z29igHEy}B&o;e90I0V_WB z=JWme`aVh@p=P~{6fUl-ub(VhH}GCF&M+)Dz?Uq%K`;gw)X|tM&U2RLD11T}0!@BckMAP3G zN3AQ!n2I?~y`6aB*HiM4!v6p6IYVGpn2GcWr|#Q2-Cu5q$r9gl8BiPM$rkI*gh0Ko zk2;BB5wVkkU}X@PDp>>xp!!r)&UZw250Hu<36YUH#&YB1bh8g}TKd+lEao#i-X^N2 z7MMe@Ps5VoY0tuJ z=As|wM|*1NT!P<*wv8KnLwT$29<&ktFEKZ_92y7SOQ=Ka^+PZvNcj%!(tPrF@78o| z?G%z4et?jdk9JPOFc+t5Me@wBz!>}9Fp*b+1f~qY4KPnHsCSi5K0JJR_cZ>`vh)8( z(fh(-*IhZ`tZiX&QC)At`RvYr>Iry~RTkQ})UsOF|G6A-$L$^MKZN^RdWTb-cE1pe zp2?)GwNt<4@J4<8(Z7>_`2xha%IL3B712K$2wbOoatjDJ7FMC| zmj_QlkaNst-@QF?Dvn*jlIm(|*C16JE$$)IDgjRJJ61^pNYiNs(DDus4t@sQidBx4 zh>-9qdUKj{FgJ8?gnm|SdJQ;^nTJu<-U`Vq4;e9Rjm%9g{dRS8S`GRfazDeqcc6Q(S zyuY^r%DK;dJ0M`S2;Ln8{|wwlXdqB(2H;&c&*~FIq7e8gTfDWoj)R!?;Uh;Jtr!I@ zLXa3ObbB$Ay<6%KWOe#mK~dd-WVE485MaSEwu=FV(=U0V+IVB}?f38BAs!T_V4bdo zV-T|XI3f`j=Qy~ha`zD+hNVgyW z1;N9EeP5RKpfz2C*nN0`JZU z)o=iBN0=kz`G|i;!Lx-PXaQxc!>eo?l!G>`CO1M}u3WhS+Z9yu$k(6D#Ubbx@^YgE z?a#pmeNHXWRP%uiWZut5DMoy@*A0=R%hjuD{H0462w&i(3=9~=7DGk6R zeHZxMa>(8c0aK;qp;ISMA_+0jQuSaG!i98F$x=W+)rCVfL3<(q-G;Nf#UU3`W8aI! z*x8(Tw9-HN9i>0dX+8WG%DJG`pUdDmrvf8Ga-0wczKDikY=>i`xNGm&={+40mu*S_ z&tTJ76$v5e;DzF-Nr$fUXSX52Pld<~CfTBuhRDV#SnAQ1kOd6fCxI+3z%V-3U1v0a zTwl%cSQ`l^Ks$spy-~Rgwm6u%1`y&7W(TLDzQ5lPgrvHx^08PS1DGfw?BLy?A-70~ z5_N0?$%BdD1!+aiRF!Y@Bm^F!5zPdWeXuT=*VWY2Kzow`EIt+X{myA6BHQ-puV`-c zM0;U24=o*)=ko7Ji5OFg2f*<(lNIREYEUi~u=jUP*^Uv?p@`6eR;$Hufb${_XT`0K zx(EI-02lQ3=B$r^l_69nNKhrpvU+J?ASp%wwgo7Wzdo%L&<~eRR$@XqjGQIhOeE28 zw9+o;y3f`I)g+%mNr6(#4dSZUW^Q?TIRH=+(B3)%K@;NyBoYSR41)g9%R9+>Dg}y6 zk~dFP2X#ahI%<~R^g_45AB5>y8r*Eo@ym_Ls7QqiunI4oKmW||!p_-mB|(jZ{VN|w z%KAz@K-}AEfze`55*M%ow)*DPD;3B-LckVrkO55@xH8y*n1yfwZtcu*5Jj5+fW-k_ zg(!|Q&N2OPBSs30~k&9+1~oJTv%90gq)y@!t5q7 zC03)*!Fb=kea2=TARj13iKs%YYPfdS3`$jC2joSdo~pw_2m46SbJY&k-7P?=KsnlA z2r}=RLQel0@;EFLu&o1h?Jo4zS*<$kPGtmq}r2`6< z216)p6%O`8!r~6ZQc*eMcMgDHK4Vt*be67lR)L4n`jbckR?5flqSnE`T6zVixdY^v ztBIYMU}QI2r&U;|6-2;`2Htk-QKOP_+(@ES699dfsE12V?2$s|gVaM1;7=?3K8A|U zI(XOR*$w1D`1u`f8sNM07g#MGd;k3@_5X=gF^c&wVN?hPv}r<5n87a|%{(>*!@kDm8{hvD48705|z%6088*_&O?2KS16a_5R!6wE)uO zhoPeF84UI$Q{wp<8!+zX@G3ug6*Zqd*C-v<*L7X}==aMo3O2y}hvN!}}gm&7yE{ zXA@ur^Lai_(aLQ|?CCkYVJA+77IbLs}6yDS5B zn!)WP>gSIisQ}u2g!uH5*VWW+LLK5-1VSTN0ot^nQs3EO&&z zL~8frQK;ebbfz&IkZDI0RtWBY$XJHV3bLg|EB)R%fLf+uyGEkT->G8TVb?&lmPKAQy=2Xo9N3 zsh%wIz1#_^cEsg}xBQ3|phkk%aCqP!|NFbQkQSwzp#`Fz97HTK)0>)_c)F)Mvt_i zqFDUByVn*KNBLyq^j|Qb%)UL_2kCYMKQ4iyI^nau;zI(}rJm@7xOGVJKeW9&7QV;+ z&ZAT?APHn35+Ja2WUp19=b|E^t*sz`Q;aEa`Q9!}LsjJG$fGWyL9lOwEsk+;PoO*B z0u4VE*>m*$f6k(_%W(l3>E?2Nxpm{N|0s0;mtomdJ9t%7LzK|;XL#Dd_t@CuY;195 z=J*`T!XjzjMKr^ro) zbzye++=F6kirvYsFK?~?{1_8=TijOZ$d~m~TLajU$Juo!#_=~d-7U921Y>cwOD<^M z|KfDk4q2;jPd@ryqQAc>js54HaieB)+wkV|d!%;8rRf5Vrr^TjWY2x(r-7qmlL-r4 zDf#tgCn(PDJZ%>2_wz#D=AQn+$Js9AO1pnN%D1|WKp;wP4N2yJ+-A~2%`BEExiueT zfUUcZm};6@TJA=fpFf}9gedq*ja~uyzkTgN^))pr=H_Yn^{BJ8qtm-3L#ji-%Xb#p3^!H?NuW)H;XaE*b2m*im_NXY+v0j&MYecVHSX?AP zHlo*SrT6MlX;D#8GVDdr(9uZ)UArMlR2{(Fj3DGZ5D#&Ju6*?+ds=$B0)pnZCd;?v zA^6mW;gHwR&`5;RhFE`KFS!G>1!rMvZ}fxzvH%lfgR_Je;kpFY`%-W?ppWgt65vBDwwB)`?jS?6B8DjL}i~ApcbjxhF+SdE+{ks zJtF-QXdKrrCx^y(E$gf>DT|XrkiQD`_`JYvL0}uC3nAYRdxbBRE_YdCvDg-FdmER2Jp=ODW#mx=ya0$dw99%!L zchTh6$9O1$$X+zWg#)-qLPj?5`b^Wt+9E8cM1XkL?k7O~hci~w(fP#AdGVqwV6_nQ z2zPKx1;KgVTnI1MfbCa^q+Y0(Nn73sSQnU?Fl<^$=p;o&F@brlpe(VL$l^A9!n&_S z2X=&!^L^HZA=5E2Cb?bczBC>m5y8L=*%h59PtL{qY!w3JOGVH;+zkSl6Tu9j?(EpnL@EEr-3(h(NnWCQoc{mT#vZejM;+ZD(g^oMW8jxqrxp#WYvfd3`$H z67+QkvB=o>Vn#K`d+n>4fl7r#%0xF~<_cf9Jan(nsz*rH6SA0iCe;nKiG z$zAngI_96O6pe)h%%X&)nVE{4TcP{%RGQ&7x#KVumAI|K!bKCe3c=;Zv{^{G#p`mz#EeMZn)8<|khHY2 zg7vErId-eVu9o8OLa)ct#)K0ymw7*(`vpJ0@!B@~BIo1ltvfWNpv4msAsw?o?M>o$ zf)k(wAT84G;dpL`L2;_+bC9xNEx~$_6JxXp4GFn+WIHi?pc4!VV7YwAK*F*IAzaLH z^sUF+`jHmUm`GZ#1vu>wu$26;zFcpgmHn8A!a+}+A!bX z41$@4fx*l%B4jv{pdHus_ita1trni$9u+(0FRg{sM5aIJK*fE&zP__jNAz1cY$;}5 z0R=l28Zxm)AWoOhA7Ed-m)Bg`RKM->DgK zFo#?gHZ|2OHw?hg1hNTMQSlv|WV)7R_OYL2GI?#)z?&4%fbvQW}@7)2g!Xx%Yb4br=z1om)>BJ%LS^@4kWX*M10vz$monR z`)bF_&!DDW%{4Mw?n-ry$m)X3!_2Wto5B%VMDfFEWvD@2K^6fR#paMxu#Vst6VuJ_ zaR}&h8)HU3$hN->%E0oz>g2>kWCPVqMh-wrL{bmq(fJJW8|Q@!cN|B5L2@MGnmGnZ z3m|(SrTvboIygAsa(nD5sgO-qNVSG*19|H%C|%*~Kuac}C$s?;?3!YM)PWb-sg%@y zA4VhMhFjLU{!6(1NI`_%%x5DTl0mwJ5s`zk1GU6`zKV|Y=W&oZf?U8QM2aD3ZZjpW zXJe3EYse1$?M2CLq>|+1T!S!EE>SdL@-p0~`x2w0_mK_IoR79_yOQE&)mD4(>}Wwj zLFOX9okkx0vVH^u|1&Q#ib!T)j5H#x&t$~+x3~SdB>SMgTXKDaEQ;PHyRHg*#W>#U z&=0n=m+|NQJDsIUPbef6T)iiwkXV$qR0Kbj9e* zPgk2O;UfEXb|9ggRDt%_)zw+JpbpsyT7;|nQhIp_p5?k_EGSsV%NN?)AuH`J1I@)^ zGQ@EqB%M~eqnf0p^G@AEId_wtap#nM^Hy79w-W#Sxd)Q+lj74AxEm~}tq$H(q^3WN zMpuq*KCZUeTzWntca*BRrO=Tb-MtXVJxvg%8K0aib16yJTPfY7p04AcbK12=Dx^KF zv;?mS)mEF3TsW;4aE8(4@95`pxCdrm$mXM{17EjP3I~RaOo~^J8Swq-lHdQ>!=*!@ zUzudIYj{*t7G0kLcs1ujFO{Np-w;1@^JyPnf(*+v>Mb=@7(27L*PS6lasakmqW9w1 zaN6QAs+9&4F1GN(F18(vgd-tMWXlFI8Jgw4wQ9lR^sqo@}bNvhkcX47JJ3a_sW00bf~ z-DiEe+|=|Zv5UN)SxhT&_=VXTIj8;#Bg;_p#8ro&OKdAOGQHU=8Xs&ttm7}%?+h|( z`bU3gH#)~#Qt=|M3T6CdD zb=4&J`~G5a&o~^r9;&rHwI$T=Xzi4U{A+oWd`LNL7u)gO{5UlAaDNKUvPAEYo$>V* z*GoMEo0PY1Fre~Wx@@ywQb}(+*WaGz=V|xh+a8nYg>S2YpRQ`(R6BG_Oz=yC%)JF! z(d*Zp6rB>ox##C-{|;g;R?eNxuwPx97+{p0D3T~$sw^)}*$^0s`R85fJ=?bZaoL#Z z#%IYSQwxRuC$`~~dS7YN8{f0{I#wR!*B&HFgGZ+I^IN4ggXI}Nc4CplSMr$hOzYe7 zjoyD_>??m+Gzo8`@K*b0JX^$CxG-sa^=nbGc8+@&Wr;pR6Ol$+)3U!--QC_RS!j$| z8}@+}an`QibWai4%g)Jj8|ULvZn8F=9s7s`TSqOTCTjqffjojY5(KW(ni(7Zv0X^(@F(~1q8*KF(GkC&9gc9|ug+DA5( z*{xN7T|18mwcub~@gINRMVb=fKW7zZsWF-p!%f2>WyrIAYxC4J3}!1XXv~csihJsY z{OH3+9LzLsvC?R2apo6jxEQih5ovhQSeU23Ytfi7&A=cuw<9i^R;< zw(Q)I3YiE|qd1de^nWG_oQZ{)#DvCQwzC+N-ku;Al((kcvQu!X%}re~*FbLx8_3p3 zu-}s(`;Dy3rKu&(ez)z{0wd&Vx?)W=&FR|zJRDq@EM-MW%T?Zcv7C#OGZOV32fU)z z``bkr8J1YU1&InY2h1sZAhHny5>Q8Uu#(+@mj0>u1 za+0-*t`4@rj~5uR81b?{$0~ zf6g8LD#q`mnNcVwnLPQ@`SzQXPLpvIG3oy<$JbvUw$ko=dJ_xsm0A`bsu1@%zn-G& z*N8){Q(@a5qq-3Xw_+yYJyN^JrLC?V*Zx}vN2U9n!&QBTB4Hao^pmq<=jk~0%ZlOY zv|?LLg7SG7xQH?~V^47h+yT`FCca(2wB8f{dMBt03Qs7UIVs^c%|2(-HmxP725m_fI zD+|HFh8u%)NXRt5{=4See?+xbPveg{x_C? zZ^9#50FOhXqS6s5K^x%DOuk^y*tD;+wtPmnr09x%Tam$8w z$BqV2)dYJj2#_i{wkA=q&{^^?nO#xEbt%1V>$wazGp#(`ZO?SsM8B|}>WP~yScR-k zE5t#BOGF}~h@3zGqb3E=-|({`VF)cjq7yCFeNF_vsRZ2uE*6rCL!!$_Tu@&>nw^-} zZKDp`da5U6I%NN`yMjTc8s4%g0E<}53Foup}Wn01l4_u93p zsqsOLIr>TOag#x zN8C0DvI1Nof;kEHRrqLQEFN~~BQt|9ygtEsaN_2_%kn({m`DlYJ?)U3It?>|6&L`y ze0yEedA3g<_ye8=5~lCy1%7TGD@VTD3hsm!;K4kbUTjm73Td|A5F|AQ3C{u~T9cHN zM1=8JUJ$MfeRE7|cg9kCzyw+PaY{MLb@L~qtp?=cvMq7i_;zaVIZA}0AbJyG^Z@kp z0!Nrxldni*&%YP*Gl)5*BJ)yw@s|LC>VQ9%>Ypq+gFoP_si{ex%5Fr)(>8p!JvI#> zhA%*5+wiA+zi_iC9!^dqE0qBR+Y;QKzW>q~5>fByiCnSrd)&Rom< zo$nRup2W=f%$CZ$dGn^Fz+Tuui`h)y-xWoB`ZO@6z9&OeK-!(1b^{8iX>eU`d2OvN z*GI64i%W-wYO-K!va_;XiL3Lc`uHfVo8p;$$G(>j4n9JX`gosBoI9x~C*&Wbq+0Rbo7-4VTpwxMi2PxUdOfyDICr3M4Bv zwc547|JD*PQ7Hd=CZ#nklv}c8Yx4kb;u!Mc5=4qy4{_dkd&4 z+jU)dip3|kViPJTA)o>(jV&NZBW-~K0!m6_;%A|gk`j~#3F$^bL_t8hL_|P3q?`YG zh;N_0&#rUE`Nug9*H~*gVa|8H@jUl^)twV8?d|54pac{P=~LeTjU#`FQv$lc%187O zX1`8kqVY3pdU~1f(#IQ9Q@zIQhew{9n66m??%a;IFXDT!4OYgV;4OyWSSwZCZe=7m>o?QaBr`J ztV%UCX~hx71Q)`UUAFR!oSB&``3bhqucs!~K&xn{f9={g!=(Cfq&4B}DPj#PX)n|1 zv7U7rMMinL4S9ZY&XPa_sMP!89s0^(7!vB5UNq6vn$z{A^!0*?=;`AT7ETwL=LXso zaj$d)d1zIVOZWWw&rB_Oc@8idFc&08L-hYyH!dtbK0epQq3PE+5m?Y|nv}!7sRWFP z>M{WoCoCrBOi)k=XceC1Jnvxkkg}TVb&+~r9PI2BxXYj?$m{7$NJ!w|;&Qvfwr5Xj zO=9EU8;mnAh;T)!YC~}x%L{VT(t#)>+OBQ;C@7h>)Dd_AHeT*|t|2*`V63(SN63RS z@|`!N;tzHPK25G?e};xCKoR(3yJW`-z5TFJX^3A`3H)CzCZ3NTcLu1&8D;(a-s;nN z#s{YZII#EAfj@srK0Wm=>J*;j=8DuyP|NDsIN782EwfgK?gn-UIKD(lniu37|J>ge zIjgFOAQVw|mfFzn$=TUu$oO)YX%`fWg*|w%475x95pAQMorX2kpyXsx1To&R?{{%R z@~Bzgg($47W*v&JpGYE^sK?$iC>o3?M;X4Ze@1FMLXM!H2io;_gm+lm#al<8{;h8e>IFAgg|{)cnRe%oj5M(IKuo2~3b+(- zUz2N<`rGR^v7nkIN<{?*p4hqbLu&@F@lZzscx0$&EC1dw7XJ3FB5r4xflwr<0Sq{S zJ5l-M$spy(@$(2+JQ5uR>yv(=m-&j7D@mAE;`J}`H*fwu=N<~Kh^W%9iKS0%e9#*f z8hT#a_MHMMfE|{GIyyQgg1&G7ia$00y)lB#$a?9LC2aflDSCQ(1I;bha^Bu>$*uzl zLzyqPLlvvWP!@8IiFMDOju5e_Fu-zFUvf3i96x^dbn9%{`ctyW#J4_E&x>32x?ykk zO;0=!>NA#8xq?(nHLB~{&9iey0%KpO#5h$)gfBjmIja?G!EzH^Ff138jUp)RGbMoNnKYwm|iB3(# z+D)~p0bY8#otJ*ww(-c6J34VSuAV8X>WQ|&_+@ENYIvrd3vLfrS66?mY?9}SWwn0D z5vR!R(^@lV8{fA0VC|gZi;33(*9OS_xB#0FE&=zpj`gTm)4IT3DOHt8O>`5jB^ZsAwi0 zkEW8V4W8wP`BK-I{`r_}sv&(f&rj%H%Xf!{+|Z~fBP)fmr0VYB$6I@Dq9W4LWSYIH zjBloB^!zO5ljc8k=u1ay!|w_2ZQEODSN7e~>?}29m6+Weg|RuBREuac{p3>Om$7_V z_bXXHUdgFQRz#}0u_|J z^&qZ{ek8?Q!T+Ar73-z-ji|W1yU5ge$V_#Yp z9&P-*-9*B~DrvvJ^h(v0$1^iUSH#!pAb21Mzw}S*lB1ts%kXLxxEJlr4IO|~)Qjf@ zrAPPvb8Nq_-?%gcILG6I(1Jqnzk3=eIAIEovoNH12zKJ@%8&OE@khGm>TkMW1%eBL zKJ8IJ^;*}G{Lkm*7CR-=sO*76gny+f*QScf!?)0*B~oUe8%LQBe44RpZKKDlE+lL@ zSXflD^vrx~BDmB;1H~kYq(0h+3J#Bj>+@YBSZdRcF(>ZqOIu7z7R~j9ebT|h2BDj$40u=T8;&1k5WD%Qt|c@vQ5hOL zYG7B_^;KIBo&d{DfN(6BO0u&4DEv9mf{=JSbMpj%#6&>`RGo;^Yg5f5JhGNXDJDMC zib+mBucxQiupw)U-5d>$?*NP`4wGVLc9d) zg~!J$!V}`ok}>w%o2X8WGRJhM21CRukTgfc4k+IUG(28tY##tdLJt}UlATFXw6M>1 zk{TMsv(TWBzd>6cW&iHo0X4NdZb$&gvL5;xScy{t{U%ttp}fSpKJtg5Q2(_P)Dgjj)6H_k2*-|pKA zP14b=QapdnUx;>6zk!{hh;vBN5L+tz7L|=TPN-^=I$)b9hbq55jRm?4g3gmOE=4#*AtyYy{Ns+wj?N4ZG z)Bp-%u>bPIE(?sg4N-elz4jwQ2;x0!`NJwi%l6MnNb?{BJxK!e5PC;|1w^%6Ys|ji zt;Une9gvz@YkuHxd|ui(;TAGRe?89s`c)C3O^+`d=<5q-iq2jc6&jBMR{Sk9`|@uW z@atm@^&Xcrt)p1Sw~ricECHb<54EMBDCUZk>L*Wm{cvU$4)@{Z6M=K6PVh zVc;q25n0+Tzx$i&t@On)!NI49r^0?ThpFRF9#gB?w%OD3Q_f~&^C7yKUD-P}i=003 z@_3HZVCm+Xy=Idiw~p1mmDCm5pUUQJNpW{|4aK*B9vEUw*^?(vdJ8U^yZ6)-RH{OA zPM?!X9mL0f?qjyx`}1|Wd_^U{b>J!gxIed+UqGA@7?K}$Bbqu_u3Uqc2E9&6Nr^Sw zY#X;!54&s39?FfDBbHk}x4d-sD*e^E*_;~Yk|U`-!p)46p*qeVcuA=TFe{uO=#Y=k%vfiH08-zKIT}*kqP^cfFH2XNbZ$s=44|#bNI)RQ@c;Ctb*jjoiyp_)q&H&b@_Eu zm05}gwD^(WA9t4V@!#rW9x0NG=W#Y(G#z}J(dtAmN`Ve?2TJi##UfW+0DEYqWxY@lG&(@VOR_sloHxH#+QOL!(DP_bht z_UK9Nl%e0~Q`+Cc$tsaGJ*0q|0P_DRs9I|$(>8is`$E;(CSo1WXnidTxJJZC!;E;a zUOt~Rm&WKb05<%VJ$7CPE~lE9472UN++@|+Tm2&P?b}G$tiyj7WoYAhP)qJ(5b%{D zSX^Y%4<(?X$YCDo2=+E2*P1u5p`~ zy^n5Dx^%Ffe(|e}*qXPJQr^L#p=?2cEC%_miaJ+&MWZu8kL$s2ylp@8$&wN|@)Q2d zPQ$%o{y-GMUcWw?RBsW19S-7Rq6Ih=a?T^Ab5=|mpQ@`|d3BrE^d8dwXV~QF4|jPs zpJWKEpRd~}X7>`WFCSJOwUp8CIFT_}S^yJy2s}F9tE40)ThL*D{!BZP0C5rG2i)A< z6L0k!YiKZ$edNO(v2cf(Ov$rnk-g-Aml5<37C#vO%3*rx$gMIyh>W}q)A*&4rx64r zjT?HsYP$^7R;XX7D|0`dI9zu~_~x(s+J7oby@rN{2!e;S!I7)zksduW%IdBf-Ap4s zd(Lm$ca+ zVHZCD8=-#FCux`?`N^H8!3{Xq4pQ>&%{~)8rVM`ru|l1ACGI972#`=%X65VD5ER58 zsoYuRd#6E@uJ&A-@w}|0jW%cbi2Rik&jaJ?ZcCl3GJAxzdb?4w77_)Z|al)*-uOG^YO9q@df6N;la}@aNn1kJ5&PvYtY3{82!PUyUR^+x`Gu#Ry!h`@-;ejG=-<)zCl9}4ha)bHw)*ux^A^pvlOg(`1x>`y>wpYt00$`?5r|A68*}( zQaDZK9D@M0m9gR5H-Eg$-LCrU*Fszm_vO)_T8|!0RtYVdp`SJ%(I4GQvcpJ24*>Cd z716`Ex?ZsxZCsD{faArvEoY5KhnK-J4z{-IFZH%OK(nf-t?lr`2N-fik#7ws|5E(d zd_#{kUZQ%;eeA&o01zt9vT!9Pzp9qK63_~ij}Ns&$dt5Vg^XT%X$!uM+^x|XD-CWB zFdnb5MQ{k&cw~-V3R%Bl!}kO?H@7eCW{Ii4hpHUTbykHKU=1OqCy@R%q>*QI-uAB= z`PvBgLweV)^>vKT-XXWV3(PG#gCP-kmoU|>#a-qa9o;&k>A=zpI&UZUXzcF;(h8Z3 zpBdilN)1a*)uMMZrxx9JDDe>K&8>}X;RPbVXOpFU8Dcty)8B_DGzi+lCdlfwsv!oQH%w#?W^-|yepx^jiUH4|*?@jvp z`st~2_1=$PCMn-P`007+U%yVRD9$PzIm~}3f8Ca!e^M)hS|zD_o=By>wL;(15@QpU z8OtjpAz#e+YNkkBU9sXw{ZXUGP2s+=S|?sMD5`LJ7jit#-Ss$Vi1PgS+>jZ52U@3ct@OSYJX>PpNO+Tt#= zVOqjtE#(J9pxtt(2~c&*+-~+h{+3y^Y_GDh$0D<>=?lc{e-3GoUVgp}2Kd1}J}>xp z90ot||8`$b$j14;o|uT(*(D4r-@YLJD;wJkq26?&Ks4Nz2AePBlwX_p{Y@9R=)M>j zD~S&VA(qRxDrw{tQGG2ZRtBBNwRLiXEm+iT4=`k20{>j*bol z+KsRQO=y_-F+wDxq;5DZHvWP@_lp)UV?#kpESN-oYSDEbs&##I-97w7NBwk%fIJ9V zStFw;mUej13AjySRxktyno}uE9r;#lKg>%&;pmKEFOsAK&&@0?l*G73kg|w*_G*g@ z5kDk~8*&;Tz9VjVn3<^%wu#P6nr0xR90eOvTAc>d8m453Hyw=};J`~HHiIaN5AyP| zl1zvSLg;?~uA!r=i!JXdHPF$Kg74mbdpYAb1Ur~@RUaU+CWHfqEo`V%iboH@62zBE z4CC0?Nit<6VlomC=QP#A<3Qw+hnY6izK9Ii1dNqvXIW;?4j^eEeZASkzv0HVFTC9I zk(!%Id3bs@yF^C`mw0{ZSj6cO%E@~If`QMzem#r&6h$0qS78QAW%&YY9g(v^WFe{r z21Y&cdI`GveG+665uG^cT~v2SJvuex0N5gn_^gKpd__C?zH2B)sN&Hv(BYe^5XhOYNidRcW%x< zt`YTnZ|=4SulxFLfWPk~=k3l?xrjd4>SoRwz;16CSOMNIYjO~eRtcRgF4qm1N$GT4Ye`)8_4hC z?@tx=;>+~g^RzeQMb%IVKl_W05)pBot3LVFwrBDNif^S|PnxHs-B}1W0{}}c#UzMK z6(Fi#>z*>O8p?`D9N3(w5d!px&`*lT%?T(z)BB&;uyVuy!?$pH7q~mv+adwqkE$$Z7`m zip;wwYp0ZMW5>5f>PiW#Un@BoaK#YGJGmnqCh8ghX9s3YbsLkxG)N1co@^D9qCQy7 z5bihGyqAROK*g|{*s2}I3bc#7O@T#`+m=Mn5GW2jJ(7qL;r)5LoblHCsm%9i#lGmq z5v=NYbhPnl2XnKv1nQ_5k8!|m=Mn!6f_$WyaI|;PaoP;F-IN$Wd7)7{xBhCh<7n~s zY#D1AUqy8_ON4fv_PdH%si9+Dr<#ZTaCr^sHw|7vNG#B07#;no#{Ws7(-kl7rztzN z@BnqI`h`O*QivbGa7i)$@~VnVu*;eiZ`D##epHCNPzhJRxBjvSg!3kS+= zxW!UNK{FBrA3Ov5HX;9?ua0rra6!|o63CDy1NN%JZ)4?eh$5`b22`>F_j?9Q)oA}t zx_n=}b$+H9CF%%n36AJcr4gfPNlDs_wuy;7_c+)-pTj>3D)d};S|P$CAmG^}rm@~R zYjIyn>#H*8g4K7J_B?DiCX>s621uNnN26+AROren1cZ5cEvxBfi1SVC`dXuMFL!8l zX0yPrOLvD_UeUPu-V8r&S#11tnIIijHL@za*ZFJZ5t~~dpLN+*l=HAi6J3>j_(^4qDe&g@jnNZVZjelvAyHrd6o{fkrJ~ z)Zk#v>i5h}4Xn{Ew8A#Vswu5&cGw{_gMRJLXsZE6*WCW-=?L(GYB4`qMG!G(a%4wj zk;|)0Ikdk9Wz~sl@oh|)99D@699IsYDdGXnzk8R#-9A0?Lp>1v*3<2lO*$2~D;I!h zZYdy<=yxM~>L+y)%+Hoz7#sgs_GwQQYw^t<8IShccesE47m|RVf96#gH-`TD>m4V{ zM|)LMzC(u+t*$2-*>iB~DW24c%sxiLqnGh$MQfF5!qk$+$LqiiL#EvcGx>{pd#mDQ z$vc)flG950`KXNRvvw|PMR;iPASEXKjWV@7!QQeK2j3Axl8-# z(W9wE?1Tl7E@45!{ZfLM;o45$|BBJQ*LoLmnXr^No*J#}X!ky;A$e*V3Q@XuaR2^=3)| z{|zBc##p}_H4xSUcGS*LP^o~`Hnh+NjR;|MFj*X5JN+gdtM$y(8Yqd+mX&AU?`6Y{ zVA}cvHi}?Q6zT^L9(t8D{fwc8pew}f-t&Ee9wBJ==^9>?wJRzpkQ^mVBG*|Xd?VT@ zwf)pALW9UMf*#1rzd>vo2E7;=n->;~*1-=ZR@M9^jKB^!+P3$%@6L)LmN=3tic7j- z9b=$)TC`8Xs#?pKwl}>Ee(L+K8s6=)(7x|v)#LcoxD$dRc;nwf^Wk1lF==-n+GNZi z@q;8m6F8RSnTJ(Kg>-cpaDxK@|4rxDmsS*zps0?(C?|nsFqU1{iBt zmLlPDuk33)&TrAR#aC4GcU0bf6tpEBUaG2odXuBxa52jc^)N)>Lg!bFl%BisDYrd_ z>pe0qt$*HL&LS~A-R<&rjxUP1n|tY6^-rz*uYzxnpO&QG${5I4zqr<{*V7~f5UwOO zYJ08JrpG1u3?6$yuwmGp4g$^;fW`N80#N8jj>VNL_a@Y!9K)`G_E=qb>@atfGyJsi z7d|jmWI1S~r{fSv$->Jk=pHMoS*syC>5fgho)_ww!o+&7;4msxp1@@h%646uTI%YM zSIA2|Kq=>Kxc$|UKfmcJ!J+?8$iy@KmM0eATju?I?|MdnW~w$r=HG)YbPGbZPr%QExI_f9=ec@&M}R?S zFFRLt4Y`yiDQ5|I@K!ZR`$msxkvR)OL>1)ZUKD;JW_{ort>%pO9`2R#YLVKOE9@<~ zu4(_Xal9QB{jiOXSyDOTuWboe0*k+-vRk@2W#L$P7_!z;vY`Qs~b zYJAtkU4LD&u{iI0`1_3v81+H2SdS!p`?j_Mqzx9lk%Y-f7yLG6r4$_1{lB1J5SE#T zWK`m-wL~^<>iG7oey^g%r!d}@qTU_bOUt5m-o4b^TlMb6Lu8sl!8G*So38$UggWX? z3KZc}i&PtW7nP#x4@DD;Z#R{bon7wCnLexDuj(1rk$~HAADBb%gnAz0%_vlRL`wo< zt^~P45dVZJMTk}gN^B^KFhCL>>UdugYk+tHF7;SN4UISW1t`Jvpo4&9@V-%UqYbc= z%FWtc<<1Vmd7A2QQuxS(073co%d1LzMg(e1Ej%cQ3IG?ci(Vw5s_9eGc|U827kGXz zV`B0f4iA#vwr$%#jr#9@Q7Wv7)d*(S*6y87%VY&;IX(d<9<>ECJNdmm z^mto`cXQKaxm%&f?Jn7H1UV$H|8?w2T*AzQ&s^%F3YRV&iyN6(x_m?tR;NdgrTBEe zvH|o&;U|~p?Dy@#s;%Sw1v^liW42ar!SIlu0q(#s z{WzK56B(InPUCZAY2Z}|?AS%@0w6DO^%9hT?1{<}5~mDp2Ug+$RF0dfp8Wl{vZiL_ zLEgg#twq;|#%5~L2Kqw7C!Cx7Y_5Jeb|`z3MSRxt(5u{%4U^SaEBn@U#kBakwX%n9|DxH&{DS44Naq#rl#!9sUtPs%{yKZ`V!yqJ zZ=R=3amt9$-W;YW;nweE@$Zmv!|YKIsaxo!Jle4Pd_P_KbfE@KNz}t`&gRo_%zng zb=^v>Xcf5^N=c&r>9N8B)B8t!x?@e7*-pRgEhum+YbRQ_!hz+E!V3Ta?ZqXIv+qd} zr(I}~DaW=fVxIfQwf`cCSi6t~9lo+4_Kqga+O20Z#oFRV*@JUE;4yslgR z>E|;iPo4Pub{8+@ueoAU+^zA(OR@WV8)FUs?px!5%6RA22dX;RVt>y!Z;A)*fB1WM zwGL(H-Kz__ke&bFA^#gEhH~#8?K|^5fyH)5o$~@PCXueA(;^M=r(1tMn)@=29h^TG z{Vd?gdJCtjhHQhnQOZeT)O6&W6US1*dEDou5fsYKub+#G5(~;2ZKcda7@c9~TXiv9IAgM0`kNQ+J+rnCgB;#EYbV(%TlMV)c-?}69jcj^ZT1Wx5jb2 z6LkI9xSyVW>+6{PDlt+oKJw1L%~tYR@CZNci+*(Nd-6M@j3MPn^|ar(U4>KbIVjyL zzRF(Uvc2oz&|rzxQ|46yhI>Npwg__`b-W z<>?N7H3lKe7lw6`5;CRV1)?#dz*@f|Rr-Ag=a(MiEcdF;h3Nj!YXtj1co~U9jEUJV zArI)t3~9uja0OBW2M5iNlb{ZfL#&}XuI*6qY9Bx>L^lgKtqr<$GINuI?4D><ixeNF)W~!q}lq>8y&bA{K*(4{1Tp(-DX!Dy=8=g6))KoMD}=dACL6rKVqS zctjo-+Y^4%B{+7Ul++Kq)4PqfMphcuc04XV%*MkL9aCIcNWyd($ETRw;5$*#&Gg?> z$jxa{kFukFe;0P*$&?-+;e`FS>PfU<-Ddwbv(zxrjUiug5rXq7Nfp$tS4uRLqS{wyol}{d>+WZ4m!^xxNNkDqEE%6(hgv) zqqJL1LcVE_H2r231+g8~(GX$VWsL|ij31CgN<*sMq%ZQYzNyUAhduL+QoeE}@NAi) zM^sf?XY{m9WrkFz1N)_Ab1Pz~3F2LX08^PJ3c#66RBUk3;t+k2>*B66R*V7i6Ah43 z7sR?E3IPMCN1Zn>6$E|`8B_{H30z?}KB=BPdzLv%-YxEOo=5)IGgW?!Hq{Pa8*g-c zYRr;-wpSgA+0#wXYH@q0Q=9)>;oQ~l(7J240UIZ0r_TrsLW(D@teW}6NQH4F?CsaD z>+5)|EMNa{Fn+R|p!?Rjzu1 zgFk**Hh(FSch<722x*|SG~bH1uis`^Gnf*Xon`(sH16t7_sSXhe^yiY`&cy2x1V^d@xwBy5m)6JFm_bqH;GGG>l;{2x05(t#UDx$9^ zBT~naHW`K6TtZ$=&1=TW5&CpRK-x0`=0TVYare;mYGynr5GKxI^iZ;q*nSwCh}(!7 z4+j=t>cmS~SJr~hg^*A|zcgO;U6Wy*_G<=hBc<+I^XB~wwQ&>b5~aU+4vpST+av9* zSLI;&xpjb@lT)F=J}%;;&CAsaDFP|jHU9ib*r>v*C6r{0R6J~k2)8TI@zDHkly;Nf zfI~FX-D1+L9zX+^?Zhf@?H#^JzdO@J(pV+cX&U>+xN?|iVD&Q_6$|4sVl|PwLu9aa8m>=GF@_Yk&P{#aO zG9H5LYX}@s46Euw*g5E9en>RX(GjsG^lz?;$$_Jg-@VXLB|+2nLlN3a`6DYIbk`+@ z8m4g;t%$EpG>8uB%?kPceaF)+=HAm&(IfHYiRR{2M&aw|S=AF$wM-)s!igcVADOVs zr$>#BDY0_5V0gLb!Gonk&3;T}Ow)s|pPn#8uleDCnHjN?G9FS{>2}B71%2GC|FwI= z;0J21+K@v*%YFv307A%K5un0k*EgLue&Nfdt--IK`KE@-HD$j)GSqi5V{)=Vr^X$G zR>X^dPiLrVNqP}Uzl$rvT=o{%%*bE9a`kFmOZ(cbj$&VP`)&yz%@CWdlRjLkOT1p^ zu2X|OLM!^*vzWdC%gMiIyNChfOE>aHZ-TXH%yoUVVn31;rUsrKmJ)Foyrssfd^a{! zed7D}nvGxbi(cfY4qI7grfUfJ0+3@bua3Ux^ zBm*k*t}Fj1ZscuZtBkyX;Bv`h6+sS1=qB+!4hQ8>{t{k_PFE5I(D#`1x zJS`9_cTBO z%jyxrK*BB23dCFXYLUETJn7}YMOh>e_gJQIP9zAMnD4;&5=U~a9XrAgE*7V_wNmLQ zWC{hBcBTgQknsV(nYVC2`NcWfO$?Jou@-YHkOw^kO9})RQRTx6zYkiJR+^rHvdnD5 zbCN9q5h2lq0;?q1I;KA~s6-+ISKU#}B`AT?ZU`pAC9y2z(ysH>cF><8{^kxyoW4 zMMh!Nxc|G&HI289OB}(7y0Ro(ujzjit+bJ1kA$Dic5`v8H@20@D!cEkR-zn{R(3yq zkmoj~5BK-%0CA1M1e|5KDVQaonN4r&TtvQs<1s`R^SL5i+r-4QW#HY8Ews!0isfaD zqA)qz<7_}*gYHt3WxsZz&fxf7cz7)w8Y~hhl@=kPjr@6jwoLZc`D7DT1~Jblz*2tG zVi^owrH=X^F&7G&<3|r^Rq*=P6|WX;c}|JJ@<_#q#}k^Sh5Vb%$fr+a|%zo&}^hww0%2DvLQ*ldYw^P_nRmp zFQ4I`{W9V|>6fj3cEMwjKXpm-R>utMA$jD+k+QZM0hJndhIN&wpQijg_NnfYfd2d( zv*f(-J3PU0i6iuEA0MLCcR)?t(lG%Bv;)EJRS8}*Ak)C{!0&iC=h3G)>T@xp z10u3Z6mLX;h^#!h-}Yn}8vJ-<035Q8&QO7{XAjKGem#mKh4wsU3lmfH-dDG<-LyG7 zOa=g;k32XeB_o4W3&b$xIWwtXG!C?Jed2C&UQ&vp!6G^eE3xxhBdiKZJb;&3F?DVz z-40=+kL+ZiFtxU}W-eIh;t18WM1XOelhWVW%FPISdZy<1nN1UjLCXdpE}lW zf;MHAsd#>IW2WQ=Li@~j(iQZJm?>eCi!QwPSU?#<1${ou1*T9mlD$ekXofBK?`J43 z;8L;C{XY+lEZ9QgsuRtc&nw3ipoMB#P2nmCe<&C}nK63{g>vsJsQk^d0SeKbc3CsG zQpT-?88P*~W~QSw=rP&hL3Jt1Cd|ZL`Lcd$DB6L`GAobKhGcs6TW8>Bq!4UT?8hTv zJ=*Bx=Iy<`je1+Mai6ghyi4cQ4kQcnC{6fW4OxRjyusQu|J1T;pB}b zwslN(B3Q&Aax*)L3j|OINfRO#2t4;?$hr#=>PbFM0&o#tM>YeJ#Z(DBPXabWToY+O z+y1{Zr^gLQt{$WFX=3WZI4Cll$3YYODUk&r+-R2sydlb`PCXzJ0VrQc)cSZuv^}va zpfQAwhnO|UbdjabOT+yV06@k1|bmD;M!8|U3$-!>}cL>l>ecMNbX*HKNJiOZ48 zJb8~qB3;~qyAXc~NQT;Mw?qg0k8{`vIqTRXId|?nO69Ykyaj4N4GCFpEJS337{0Qu znmCN%z@8t5V!qz2OnQ14V*OWGU5dhYLXLuKs|2+?%*K)ezPXp5*QZ%dA}s>2S$iC~I|wOX+wz5>&L^SOj(i+uIe391XiWk6&!uuzf=m z23uWgSd(Y2Gx5MguwZJ*0b=olC=lXfvgAVCFry(?y_bHOEs5w7^BEYkC7I=KpE(UN1W2-lvE8Zcg5k z2p?PokmTtQ;B`XSkTW@oL^KHZ20&1rOp{Gp)AR$7(pTh6EOYV zhOe!1Cc#;#)?M?ZGob`NzKg-V6cHLTkre!GL%e0s-5I#2=?avBq>RL}xj6IVSpwT@~ z>LlMgdAf?$;x7t^Cl61OMz<=>%DH#`AE}rB;xqo6G}pgkbN<_J`I5JK?pitK543kU zCp5;HON!VYsScu4XdRmxM?;?kNcH^dk@>Jqf3H!qp**0~y?pH|3JA)-d%w$gZ8}B!}06aOf!?D96&hX=dz{&*Z#72&h=|xY_O%03z((Ximc5vkLNd(pSzMZ zxD97aB2q^>f-rADd35U2Ge7^R`Y1QUI>EsvXRo1Bx^R`~%-RHF?bjpH5;B#)3$@o$ zwC*gpe7Q@%ZGX@{Wx2WimEMTQt?3!%eO1B5hx0oJIv)9Hhp8JeL>~TKs8paFS)Or~ zN9Rglr{$WnRU&1<5z=)QlESxSjWhn76B!=$lgbDogX`kMqIyb|(z2#bb=M|U4K_@l zIv$m#<@Z)CZ11aSZy8^~u#i-eg~j20GP_OdCiI%p8w97<}{0s~r^?vReW)aXjTSCbJ&Ob$+3 z-XaQEPSd8-6g)lK#|K=_b@H4O33&PPJVB8$W2|)hz;C42_LgeDvYtI7LdF?{TzHz? zqOAENU7)dn_2EC)vO19~XTMoNWB_D`k6VVUANw{;w;VEWw|KhCpd74n$B#G<3!{c8 zG~4a(r?V+HW=0w!Fo(T1D|$agIL6pdEkVGNa;+}W9+j*I(xY$%+r{jaoSwnshKi=- zMY*DRZ;ceSyeqaqkylh}BC{a^)*%KNiIT(G4gggm)+IeDE%r+Kc38VxzD!rTB1Z1A z1i^y`hg8yV^U@sB3bkDTNogJ3Bh?}<2Amonba7Tn(h`}udCnqH*&$tWdu6l>i>iAN z5cP^Eh0{xa&{)OBp-K_0zg1QU*p2B+>^@v=?W`S#Uw@oP$F=9WHGnnI)|PA4OfD_I zaY?CzD2L#9$b@zCko8dBX@^!Z4?mCSw{Q2Eci1MJdXg&56g??cXk+&bNuXG&9oT`o z;sSQQJI&ZXa?|NPJ1;Nqjm7sR7ltpdWzO0nAnD*R&b}(GU3cbPb@Gu_Dbv>Z@qZXF!|WA{NT;f==i?wq(MI&DT19IzTl7HY~^De+|~xuVnfxt z*AN%7UhP>C>mfPdP)2??oTmSDaB_SuRylFy-l=D)(zAD;+pAabG5SPZ)lFafd|X!G z2_W-J>a(jP_acCNiH54~Al#dW#+zyBcuZ%)Tzbp91WY+&j!`zhNuN1nXO&_iNFt1a z^*--kp&fMbuQ_$%e|vM3m1ZfAj?Q6c2ORodZ*@o@8>Vio$XMXGD^56TWh7j0Uw+R~ zoc`t!){_O(Q@5=LyEI>q9DtR)dqu_^m_kcim#9;hxUaxnN44MD&g9;GkIrp=_Wkb; zz10pW&vD`mm89sn$!2BZcO&f=FLRIZ`?n&2C62RSTVoduHo)XTx5Jbx|Epi-KicX4 zf8B-uQ~k=n+Smo|&Ii?nY9tzZw4V<}$#phQQocS<=F%khr`#v?xy*A^gTEKs3N_(Z zwixlvxm)DiQZ3HUN=uy!^f(T2YdqcdiEURlSJ>eG;A>si>xQ#rk7$KBZ*5Ys&|ydu zUwDIUY%4Tl;|74*%H2=l@;r6hCzz)?Xz5eEBd&g(6-k7!j*ZeUr*$#2SZiv1jsE5( zH;su`9xwhxDn8$Y38$-7e7asHa$FPD6i8S$miP1z=iP(PH2t>#^EeSTccEw=9ozV? zv>+;5rWsxodn^1^p{2It8Et~Tum9&WmhU`OXSSP4t;-XWudb}SqoG&fYB{v4r94w6 zSnr^Hi(+lH@8f^D7oH9bU*52G_5;Ef5#EyedjH`8N6Gb@l#hr8i3AkI?n@cTT6-^_ zdsWXA&*#{EpL%J047zCU&zG6^V#=;w(7DoFaB<_3v_KAao@nt`--T7(m9FnmDyaq{ zvenb(&iRWKx>tJGcLeb2zBypus#03L)S7+&yj+C#=EDssK`;S>A0!}xCWAG8P%916^|9Q1Gv0DlrK!^)f>k{p@c9}T(FC?_@ z#0Z{4=*#6GVMV<42J+g%GD9mdH?gf9s|T&%JbdT)d}s=i2K?ua=CZYl3+&lWq@s&h zxB8x>1|GOcZHC zonKl^!c1GA&3-n`+<90_B?Zro#!C{VZ6!&_1KRVMe$j^y|HraG@@6)Rv=d8yLG%mpF4@YV*R?c?5$ebaVLYt|PI2=TFvu zdXuZLLZgT7AG3|!_t?|X;~#;SPj0&zSOs`j{nqxa&zrwJ6gMn6%(e!58|+jm^+sUX zCGJbz4SL_ZDIHVT2>^^h7=jp*wiEL;Mthwe=djHo#r`LNPI0iYJ+JDFj9GPbA=4j* z+cI!FBuAZ$ZG~aQLcCYO_n!vaF~~c4Z3xc{m$hebdjtECwQ-cq`_B7AeS+&yL?yEw zME-o-0I@|zn?bWb`@g+z$x>B109)z?(PGPmguYHJsx7H{KmB1j-CFI0AAh^8HB&C+q?y zB|D`7Rr2fPyFN}mrBwP>m3InU+dd2EC4Az}DKXtGb)Q+Lzxl!}CI}m~R#$agvFP^a z26wkQ&Yn2`mGk&7Xgo5QjHI}dc@Yx#X-5T??ep#miao=B2jh=CElEmy@ObbnwtQv|$Ofmj#9n}e?>MkwNoLfVir zK~Vo^bXjVps5VAFuG(=#mV})e+YfAqerYT#55cU1kF_UfhXf($rmZ*bdd)$C`H^HH zOqwZ_&qLt_U%+M?$YLa^nPb1VBhTy``k0UauB0w1}4Xhj+lB=X(nA{6W?sg5Hgg zoy4q$uN92XBM~4(x<<@`K!(Htqm}{4Bd|IV+mYmb$RuRD7_}Xy639%G!#{2v$8sdcxH015k8~?6n3nO#?;%leIOZ}ET1#SOVGbFYDh}s#2F_0maj>#%Pp};`!N8;w z4fYd;?+#(SL3HMLI7Bvq7|`K9!6>eGejdTdCt6@&KciN4Lp}BCh%k+0nGHSVO8WjL zkI5nZV? zKK&@67y1hp0;ytkb4ON&BE}WYl-5wk#W1bcM3Am&HEs!vh@dyPtm=-{AOL4h5=k9U zEC6fm_ls5tc{XELGSE$CJ79^Ka6Wv!I;On04&yxmqeoP~L+BS`S6g#?nryL{&5hUQoV`pb0|y9b~I+j4vI)5Ea@Zb_!qwcKy8dd3I$<74Fvxah81MI zu3$Csb_P7Gqk$rc_~37ijH9v3{VSc{;wJm8Rpm5PjR6vVt-#A#STG!b3ydl}>2 zqjAd-RF}*b0!S)=K(vC^fiUPN@KuN?4yY-tR=qR!*zu@=urXgN@)02O9-c9YMZx)K zfX5}br*X&{Q&Ms>My@1^uE(KF`fwPgS!@$92}IIZ1a91#tb6AD&0h%GO^7V4XUbTn`bM_% zU3*S$dC;e4vB9qq?h_9i*@F4B7(+u`pq-FAz>DERSd!U!+PGuLq(wV~bP-=MF_lIj zLjeeQF~OI?btsXKh1Mj5ILV2;1PCjNqP|NbTX=P!kf|ns<7IG>;t9Dlg`qtHt)CcS zE31N5X$aww64-QPL3Y6TrgEu{cxv%oajv=b(%IiujcQF{_G9qTbPMBoOuJ?9ewyDM#SbhQOx_ z=G_9>#dUd|LnIZVy}d@iE>@3KiIYr=0-!)x1di@kv~Phjg<~}$vMEGf0VSVxwGI~d z^R7G|miLS^>-}EPWFckkemmO-#wN4Gk_ukm6Kr)bx?-+STJ6iTau8E6+RZ-mNqYv% z{d!VR_GhK|?9O(~=i(OJZ0pu-7G1pdhzm5{IQ;gls`&*x&kMSTm)|}4$lfMck7MuN zbL?TK={IkW+;91E$Fq*K{S~cot{#3N@q=IG^SGbSKgehc;_jY}8(+qqynkZNbm&W$ zc2Znvh!swAdIkMP`l*>XJt6AHS`holkWoQ%G%x33 ze)|n~L5th-;z4m*&Q0%KV{e{33BigD$B;d(ut$OFsEJUEMOw2-%A}Md!)hm=)ge1V zmfm4qs(RA!akeNTYfMM4sJgQ#MXZgvrUCFi$L#Z@-gn9EY2ph=@3sren7Qv2w7A!G zyVubN@ApvWPEv=B{r9=sZUOfwoo7#GiGYnkNTO%(+0GF0m~HnR>_hJNpS*njMS%k= z&HO23lybcJ+DDA5*E~hjWE0mSi+3_1>0d#(UTFt(+aM)_qx2IA37^fvT%$Hp#ad=E4o_)=ietf>Rq-gNb zh`V}#h4?zN)b1*`Dp%*%1gh@RO<^)|lw$hl$}IDTL{WTnVd;emhDFR2@~7g2xtHGk z_c8m_6O~54X1?(#ZgnxN%XO!0-uX4cYyQ%OF1ud0hjJq2q{9!D68^w8TK2E(DZbQ# zou0v0k}m~SC-x^MYopCo%8%>1aq-r#U9)e!Gm34Jv(}29_Te3~t$Q<{+YFq!&!oPy zAePoEf{jLe_Gi$+i7T>Z#x%!yviZEe6tDn4+(nEM}PuCveW&?Z~k>* z%-9W+PRX&0)6yw2^Md$r5>uD zgVJSLjZO}6&Vf18_KAjZf1RN}Ht)zOD(JTGqo+v9%g8(i4DF!T=i{0{`z0_ck~vd*5EX zoI_Yx1L26gjZABoEVPTQ2{#(EFZo@*e3>kusE%OQxCy10N}O&X`1dkqC0c*JC645q zQhug`4gYjW%2B#Z5l4tM20F*7ynuj!yK;<qr4v|3?2eDll>0ofQ=fIkex+p<_DI9ARqr?)>{ptLw!r(;h6Wdl=k1 z;|GGjWS2eqHEY)z)$@5g!yuWhJ=Y@s*MiFGxj{sZQs)cXJ`W_a*9w1Z9Z))UGBnET zP&iZ9`tYYsRw*s|#q;a&e@)2!_hGuLG4q2xl*+IjZ|zzyy9kBqM*R1eg}Uo++DDGx z-p^yu|G{TJhYq{DIy0brKq#?S_SC6UtjY_bZpxCcP6g8eb$L%peoK273nsM>@R&`! zJfJr1w}vxe4~_WjwV*JIe|j<%WN+G=k$U<25ySCIE;FOSJcsmt-TQ02Fk?i2kS9-3 zUwXcgqfnN7t5*mK^=H;5!>ZE{|9D=d?*GN|N03d3bQxYzv=&+7IQPclj`ag|4f&lz zj)qcxXTBp;gm~ z!ZR#AjxMTmW(QgUG>l;?(ORhMbux?Y-nxH=j6h4*{*gcosKxI&_q?+hG|Iy!q=M5sF|%n{lwQWMojXnz=b?+WYm& zZcdg}J1-{52GU--zI(|-=Eo0D>BzDFf3;nCIF)(dKbCp&OhwIPQqM$&G7)NGDofhy zL}l$nmW)Ii+E9tml=kgZB*|JGOQ^`cjTwq8!#T(@c#?7?*|MMWe!i!p=a2WjuII0J zuC8mY$#8D>egA&H@AvclEJ63roeTK*t@Ko@#&zBK2&hiR2CU;IT24irXohu3dXE=2dZb&j*8{RV^=PRJ?fW8!?7hge_$u+T?Xk zZQ=cg56LBl40l2O;Gw%AO}^~e*NHw*Q5-y&5?d-;fZG5uMLy2zS^x`={&gV7jO=C* z&d_zFVjj3zaQDJm-iBh=bo1tOS)QHIC~bj#QtY3@$&vezB9W#Fh3Y+gmoLDNRtVs{Mxg^Y{>ohjT$dV`)!w&t&4BYBdqJ$%8XvkbW{coQ#|Cjg- z1P?Skn1_073Ut+YNfR#Xhd@N4fkZy?_k^=LU+I8CkWo%{RTDTsa0c8?CcbpOg9{7P zEEk$=Kq$zDRAmM`qo4jTC7-q0eR2oY1!Yzl6kCerq}06@f3g=)h3DH&*j@<2eTuNE zfF?oGRpyWE);zc}CU{8%ojF6?XTk1DTw_MY@ZElW$cxsmw@s~>T5g9kG3-E|HI#ao zL$jdvz;;1P6Z9WK9oP_nEDR~LDmp5Y;eAkUwP+tZXoeR9xs@!$4}e~i>MuM=-9FNI z++YSu#<>?Rd`+4XAS=8N5=46*0hXZr$^XJb)EKuUi^NY%~FgGU}%|4hKBgKG6;iJ%l z;cX^wsh+&Cq{U_CjnCXgQX4iGr~<_-!nD&-Wd?UnP)%p5TlVM8{NN$bf2h5J0ynwI zc;@1Yd9 zrhHLO>=y60jMa?E7lrTW0b{a#ezzdEWoz zsMu<;+(QC1PJbTq2l)K)x|d6Tzb#@FhW&2Y(`+TgSHV@mE0bm?$v+3m+qaB=$Vjec z&_Dc{m~A7!szFPtE(53+{8h?4(vj1_^In-@A{{{g4}&WuN>;+t$7^&*d-dIrlGkP^ z&#>D8Y{42Js?!~wo@A%2K|1`&-n@UlvZrgM{$W@l_{wXDPp$c_R@2>l9V<$8g|!V{ z`Zu$OQnu+E?|-akI~BXZAkcK@zbuM(%6mE~O+3UT1wdC&6tS#+hQ`+ehlUP|ogixx_Hzr zk>&%(U7QWx`@oLpU5PL_Zcfxl!ElMu=v4$1k2Iu~$Pp<}bhLLoR6 zIU#$VzCv7V5=eTe;oUHQB42y5D96rApsn`_=Szo>q>4L*O>H|OcdKD6k3CtLz6x*- z1{KlyiVgwtvn+GH!Gf&ONtg!{-J!D%c}LL6qbV4GtYG-65~cy@jlPzZ4JKCJizSzy zc5sY+1MeMpaR5g=p5sKNpYr^|miu$`Kg`50H&@p;gYHX{M@aFwPwK*LcVZvER?OrN ziq9X@tG6G-ML4vq-(}RSW{qT83y-zO5kX~>kQwG8H>(>Q7_|;Q!5WAJA#vy&hJ3F_b7fKMQ zE`;XrZpQLUB==xUAV!hm9S=i33SR@TTaDt5`_yH-FcXimx3|}&+^p{QgHB>WVdy zgqqJ8kTMfD7O7b0kn^U&q`)+tqaSQB;rJ0{1Ym)_qu@{Oe#|-pF$``qh3gycYfmj09UK#OG6HNB&oElpnjsV_`&CVoH3_hVyYmEMd} z;yQ@4{V{ezx40~e)O~jZAB-Ga<_}5acyo2Wa6AUjX{#>TYGHK#qG^ajDz|pK-1F|< z(kH*Rd=(IEQd6}xoIPuvRXV8WWT8OABjEb>z58d+nngiQxc{v223BLJM5LpFw73u=wYJ`J)}HkTHCevSFhtz|Q%^J4 zY6BWbewWsQ+TF14xr&#M)QpIDiI&j7me4{a<=xG{i~A@3xiULR-wv<%lMXvA+6h!UyE&O}rcOyMU^7P4J@NCbd$oUKPOmeFmN|&gHF$*jrtfr6oI#e12 zWu2M4+UM!t*U$d2Gx&aMWa;e!BpUCG2tN>~-R96d3ECLGnd<4grZw|Qj9`UB!KRO_ zA@Ky-v@%?yb>*^I>n93a6mN@9>;h|i_$X+?(9} z8CzK0t-e^@>g1a97q;Dcac$O|Innh&(`U)gF>kytks&F*c+NuuMdNJY3EQ)>v$wFP z#qj3Ss>$Kf0!M`M?SvFZJW z$FMx`LlJ0Xb2%+g%vRy9vroQ1J#476t7rpT)tK$?EJWEA7PqkX4Fy629?^Bv6ybBm2evD;F#R+~ zL~TX)1Y@V`IAkz1OR^C#`AEy*W*%{Y=E)j_j<@sbU>GG_QIs(dnVmEVDJzcl`Kz@r zj=Sc3d;!xcMy_QjSk;Aj=9912lj1r#AaCgL=wP6>@N2r2SV z??W6&w_PN(gY#%cagU$hTjW+*2g72WJWAd{LTJ=ek7nKux=Z*ENWG@Qd;ob1_ZS}4bt9C(H19B8hctYlT<+hO@Qkv_WPTo~IimKzHDfDQvj-oo4mzrB11skTa_>EdP;- z0+X8bU@bfH4D3WY9?Uafor+$Itbox6(Kyx*S_eGH+k~p1jOJ7DDY`wN6tOs#HFu`0 z1__KH1azzq5h}ZuCffilqWs5SD+wZ>#A7$^MCTN&3Pw>UCQ_M%3FENOh4z5PNyI_A zN_r?^ju6^f44xouMJt3R4jhV!LflS53Yu}`+TI!qBRy~=O&9p+FLDC6ku$7<>VIl|)CUlXfqYRDoD@F0fXZa9wFvFInLea2v) zT3`QriiSQMgxb+UqBK;%SH;2xatKCoi{Dk)_ZqRT6zFD-c|N+1W{>1r-FG*_!yhem zD&`=i2suQd2$e`8+ZOXThX2@p&mfNKQ#@vT$vW*wu6;6PCE*x#D>;ze{j)m^iHP?> zu{un1R3dYAT<3!werD=y{^jL=SDpUnx9TlEMW*1(;`>-JLyFax<}9Ptf;-oKN;y({ zybAyeWS+`pqit)_EBg|M23xD58nT?btdreG_B>VmUe8kFZ_GFQxzb^u4+_)DcKH>~ zbAxh16ucESI=d>=aS9hyE(M7JfKcg@X#g2^?6MiT5iuTHnx>&Yqra~Y?dxl|5@_ub zX=y`f1F04ZPa7vIkw#ow3j*2dJ#8H~AWKFJC(0U39e&i)%WC+ZZ3&bFNxYq?stK|w zd!y$vA)fK>NoQ?TLv_~On9jl^-)rEV8SRAtq)5}Ei|s|owr9e;&V2LpA^jhf051XS zz*yihAf=lqNb&N*y?+rP5zL(LtUU6-Ce<|xuuqZF%`LYi+CXCPLZqi%-wB5Z(qmyG z1YI1E8QC~N{|B?1`-mKgZK%fu?t8&rK;#ZgE*D_$L{=Y~fVL-Y3VQEZltTLa(zFS$ zwzc=0*gr5Eo*cip@v=hH`5Oy610AO4Ca!c7n|}xRbe#2EdE7u({~=xo0po-DAH~Id z*dhtu20K$uFTGuu)JN0s_q^J@Dl8WxqO)MfXOn99rGEv)%}C(mMi!3zR%-opZyYu{ zipPb003Jidu1dhT$XZ^^9L1hwWn&XhGy^nwpaYuP+ux%;4e!);Kn-!;CwWze2KhY7 zPJj+tiwRKB!qoH{MX3&dbliH+zN;-22kEwCHfvoT8FbxxSBL3TVtBZBs;#5A zF5xb_K2tfQX+q6POX3Q`Y=#TUsvbLSB7_J|07#?p1%W6XTiLXN>B6!V?EPHoNj-tcRHMHI9KtieUzs zJHFV(1^7JN=y-3zi{W0W0tD?$pd+fLNj(I49Q076$o*^&F$g0sdYYhTk~{hP7PE9{ zOMM1;EXa@(DCL{d*Nzk(Cn^uot+aCo*t87-f}i+sG~WW2+T`;<9#4czMXvdcLYIlZ zfRzToU<-CmV4&pkPHO{EnOWV>8p(>m?Fbr9g4nQBajyuyg5By)QpF+;x|WzkD3FZV zcpF6NZ&)yb{#|Kq_rZqSgtr^F5C}a_{$%>0G?SC#Le(;J)6FTxm;F;~`AhC@Q}c@z z6{=i`|Alu6BKNzOjo7I5-@VoC_cm-hd*9~XLo>7DEUJ%}@PhHc)OB<$al#~Zn^*LK zGO-B%N!B}ZdBy&MekIaMV^wFJx}`j${f#`5jlmcTeE`9tR{cn+R>9|wUANqOv!(0v zufF?-4O@B9Vx7(5dO9nGEAG~y03jsLu2z?#)Q){@)v%n&UnaR)^lg0Q>}JcWT90^( zJIBHgC#>4Dxjd|x)2R7q&(oPoT!gsXBp)2Sfr7|>*pGoSz{Aqku(h7}w|6!2I zA%L=!pazQt7);+7{a7TYd$@hG;i&82iH|_^w}*y?(#A!k9KfW+B?Od|@GR_O+BtDi z8o4n#W-TwvS;Z?)*$gu(POau#G&S2m3gRLK4geET0bwF&ii1;6WBf)e_MrV$k!wUB zcBI1uiWd-rG(ZmgPF;BDvDh$~AsOVTFj|BP0r;pZ{&!jq&Zw5-IUG|QsW{CJ7HVZ> zeE|_AoKW1LWFf0JOn1Eh>Lvem=k&%wWF%N%0)X0#6;+yWQGDGD83jOEL5>I%&P4>< zB|M)>{h#&qci~b~fYL|tScc!l`+dDK6A>jVdou9OjF#{g=uR}d zh?Q!5nX>rtZ~yK}YwtaVKRk|^i6-l-R=2WBA+q2W0Ya%soF?^3JO~Z=g&932$7z{n zC2%-+NIF3DN^q5ftwxqi12VqdW1$93X-cuU*pR-v>xqXF$Rsd3bl8OY47|Q zEiEH?vhaIdd)&ZYiZ1macx-zkYlhh?jFv%xTd+*rNPnN{aKJp@|O7KOub2Fxz zbKW{QB0;;oxlCuEELp0gvSmtAXk+?*OR#G9JKN))^<39~2vhOA&>=#Oq$jZ$k{&Lr z+}kl2VyG|5-)rIB97rbN8zyKmV-nalHfO$hbEMad2aT!Mt0139bZ?FBb1T7OeVYsxI$lOiX=Pq06yIQ=_tFU+w5WT2 zv$48bQ%Z`0lNC7yYJfSYo`IR!S3qDuKYO6;6YrTF&5fN&x00G~Zv27rgjIf>!sJE% z4`Z1`Bh9BF;8dc+;N_9&o{amH)#ozZLKF9Ffu8b7t8I zr5*GK2iAF3x}c~Wic=?rXzDU7;K^Q9uKD4^{b@ZtlHX0cWnMZsOfRZlPmHHn)P#~A zIbDctbW!=mk->qRsNJ2Vir43@)D!;oijamyZtrE_dlZZMQjX9%G~=c=ZuuUCCsF!VVX^{VpHolTG5LNrwwruVncSJ}1@ zH$DFIHI|H>7YiLk4CqBXy@>qL7cURz$y9%AC=w>zp<&7)w)h+JA^nB-mwBb4`R&>R zuZWOcyqL@+8IdC5eXduN0);x_2}hs;DP3J%*Ln?Ojpur@t!->N;7Hq*F?6)Bhft|F z32Myx@Hi{Fu5{J-jUgB5!BU6N=FcDtJ|YD=y@_L&+ewn<$u%vaOD72X*y8bCI?y|KszbBo1AybU(2crp4TRXSEk z)qc0Yyx(MDpcsA{xXQ%z1ec~L|LD;pA3K|grk_PGMj6n8&TDO1m3t9q$%*UC{=K_7 z`%%!Zsemz{|_qYgTY)1HZJ?_QUTo`Q^*ADj{KEDR#46^*9`! zNP(0=IZI2B+j2;tv=J3pe*%RJ+lbJ6DsC}pVM5+0;XUQ;Ja>Zg<0ns8`T4i~AH*~p z$TvrD=bQE3s?Fgx?MgAhrTGK|IIx#GE`N^Twah%vD3+p<{XF7^&MRF_N5`VRJmYxc zqo-0dimlc1O@bMaah@40Eo4>BO#l1ZlcyMW0$v%Hp{|@L9@=$5THr&vrlqB&ADyrk zhgzOY_Vb#xL5JZ~%i)Ss=guj?Ly^A6BihqK6M3+HS4r*OnC9OtN0T{`BqXi%Q*@nlzKM6B9|5d)tlKgTlki@7}-f zTx}K3l1mh0frC1dr5)1M%boLSJ$7FNv#ZL%3A+P?_rfMBA1M6;$L_i9bZAt14Da0$ z&YdgJZ=}f3C~jYNpKOUX>CH)uaa}>Xt<*E;sAa&ADEm@yDu;&aH5Kq z!Pq4levefu#kop4R{kqjYIu}NHQx?h!qYcMTp*%{2}9{sy(Bq)$GDy0EY+Q-x&;L&~?cKvM*k|u(r4FS{ZN5hv)LUbn~Ho zsV2=m`%X_HlC^%zO5>I&zM1w!-%PD?R7EHbNSXpB=Wh}*~>}Ik-Yc( z8PTUNa(3qEH|80(($er*KRS8xS*^AvPbRntgMk)3SJ>ky>{muJv9CsAhLO49)xCgPpY|1matwJ4Z(;fLR zxg44$3MJ&$3q9E)FfhgEX!sMz*_4dd=X#My9vB$Fylq^aY*qF?M|0;{73!_G_blWC zOagwk8~fn(F&Ke{f>n_P{IEV2KVR`0lTcUWm>+XX{i5Zg!S0*2LfvASq|=M5)vDyk z916Vo@t!gs31N%D5+sDBVgyqCF7wX7In$IfB4QkWpA2s{sQLbVYG<)h8G>1{%yIc1 zZSG@Vikacc%5T-x;|mL!aB)*ubM*z3_w3V0Wq-%T(UY^tJxZ2}mV5Rr&V6@Tlta5h zgDD8jZPM9B=dpVQas(RUKbU%cf4P>9-(#<=#D1O?ou-og8CeGAgC&X?>V+W;qS8N* zbFnE&Fp7P&Dw94%t(>m%X<@Lmv9VDc)0r$yclI)m1fBb)PEG{!n>0mi8Z5^4j2CBz z9Y@bHGBKGzyr-!bX8Mq`F`?DIJbTGbA?~%uLBXk!0?&Zd&(>DyR>6&^5O&qiV!^Db z&%VCeo`|$0yL2f9zLT^mkgI0Y&FS<0y+Z3`YIMihp^;Rhl&O)bl%d8VB&4;!;jy0#>FD~cTXOPA60$HPpFe*d`~Ca# zWnPQB{<4J@n)xQUhGpm3t_kRn>SK0`LxTM+XN%Rlse*C#GiH<+eudPOWVVm8 z*m~`m9U?)6>y|Mt{1btX8#@!s(0s*3Mnf?qRJry+S4V%}`SO6KmgmEZWoPsHQ-t0A z#fHW4M2DDjvbi~lx0ajaL{SI8XxeJ7=Vo)Pu(r))i(>dKeN2Y0k59Wl%{|-S-%p}3 zp`oEdgf)4^RJrlYTDuo7WU)#aYx9M}4c*i^$YtM z(GVs<0RaKJ{r%cIJ3IHZv@2XyD=I2(g-iJB!`~&g)0j~=xfH`}m9byHeyLbwt56e- zK@bMfY{b?+J^%OLpUnFUkVN3G9}^Q(Vm&VA6Jcq|R(|#B)y_{M$3+*jH#Z$cTkB!n znslbfLXr+CEG$GKnSw)2ugGub=19%Ok6~ePT7#vg6LY;eY8P->4s^&|opoG(dt9xN za9trKaMbSCx3}c9w47+Tvr{Kd1X>7E?A2Vd09(ktv&EV9z6bw7HV!nW+( zxpPPsB0qora}cw1nn7~}>6)u2L*nVNZl8-T)8Skd7zTWnvV5i#MgH!tIEP2}q@cGa z#&&8~o2tSrxMHsBf&S@ZMs0<|_qxiL3DPT8FMbYnA2;3aU7fkTp+3J^89Fu@zC8Qv z$zLc0tKR2N*DO_n+$!_#JR|bhZmZ3_{!8@`_*br6Id$@6ak8$rm)8vBo=|xD(VM;f zcJqCTkbx8d93-j>u3$EIc4pz0{o`QP+-=G#1n1af;yhu^>R91%;2aZfmlt>=dF!lmKSlDE#OUO5Eh|~MlrM5$mz8L42=0o|t;MCzTu^oR{GRA=X;3vUuU2T0!6KhjcjF9_2&dXU^_9C6K7amP z0jtCjE$E_zS=$^9U_Ond&AYNsnO5PpW6~C=y!Kn1BsbA3@6qGO(*WQ6W50j@PS)QP zep}SACF*B=5HmN_dIiH11!@^98ylgerKOyjB?%Br$&>@mPEM%+jw1N&OwuZ6t6tl# zh!q{<*wwmlFHbhGGAqfVHufGCK;DRZ(>%+yeol9ED7tggMPgM)+H)_CZx z$lR>`#z5u$AanC!bbo<)P&u8Dt7BUK+TyVGyLa!L*Lw|d>8iP8zqE{uQnWk>b^w_k z>Nk9pg@k~II*Uc{Rl#Ly>hx-FQmp-aU%2a&``ZNj<(xjL=nMyS9z}0fa(sPjWZtty zE(h1$?nd0>$F5~T9JiBKYTv$cTAf>q0w@5Kl56mvj2(bJWZsQkqvjBZy-}=eFCn?L5F60KU=%0~Up* zV|5=O`iBICiO&oyGz44m@u}+ZMC$WIV(`zJPHs#Od+e9P%_eRPdkB|`Kj2&kY@?WM zbtOM*x9IBg(aurq+X$-d^iyNYVs<-!vvpl>F~ND8V*;4f0L605bSRP&pHA!X5bpf6 ze-1ajbOPXzcy5WE%rx;9zTq=n-t;Ej_9}rFXVX&1Iu|XS#cdoHq+E>~Z*)@Yt1J~8 z+h~*_IFv{wc+q+yPY`$x+M^CYdHHTT_P9(+m)@`JBZsgRk|oFa7YrKv}nxghbhVwsuFx zIli@HN31-e778A;+c8aZ{bi7=dh+Bup8)B=L5oleKiR4_&#Fq1c87>XcDUQXa!gEK zkj0Q`qy&>HyFqP_2XD8bLomwvRp~KLUPevFGvUolXoKE)`)~>P?=cU*gGU^p4R7Wp z5zg&(o#npZiK^3>o+2``et&OiLz~G$>z^~#fxWIaG`S=s`{&TZx)r(brTgn8Zbcbm z<$DtKF+Unly;F+(eg3?DVK1feUv)xpv2|!( z`Rj%z(K9*A%F2EIE24iH@rYx>haOc`o(s5uJVYH^alOUidtE@6zZ)ABi}%^FHX1>)V~mp#sv_VvU}$?@`e{QOKsQc zbZCTWlc29lQ%G%3(~3_brgLKGFg;=&2^pklu_Z){G-=EXdOcTB}qK zIkJ^D9u4$5bKJ9+?<}8u+yPa#G~&AU%Lq!X>2E`Mg*4k~y;)WTM~ztj$T;+cAEwio znl!omw1_+AF~;Wm_-<{r@)c%+(|S6)L9UO$dRRoEqZpvs@UAB&{@!nmch)nUD_mOd zS!~pNtT$O+>u_HCc~w=7G?22XSM%V8QI4BYd^T$L9L$u5-AUx$cofd=fAeKkVt=|? zvB%%hSI|EnanG=TmSZK%>kJ{_ScSmTiVF9L4g7$FDM_8=tpSq5^*QFcvp)BML9jPr znx@dk-d<^NA&V-+qB8jAuIf(g%b0hpKBP<@;J9d9!v`C%eBLUB&M#)&_@#UC-@J=hQ5%9~{(F z&eZ72fo8bhuzx!E%KnFDgAOnJEF&7LOh{nJF;k;BeZ0}5&8F3^jZMUBW(H?9KbWhIS*xuNVx=HU=+^QOdGO#tUzxFdM6B!v ztzaisTKg?wJ#u|vFupyp@jCllm@SrBS4AbPAvi1W`LJfG{Y+|dY?o;BaOhO zFVGSpoLf?`ba0W?!%8(i!O%}S*9rl7B{$i|IU_vs*nGG^GL%cZEAUfRnp*x$U(UFJ zA6p1lsIRZD*BLiO=|Z!_MG7uCTU*LB;n^jx&lUqRW@dAmg?>f$k|pE= z`o~~kgxq$JZmqAv94oZ7d98WdI>~)!o)_Job(}O!ZoGk2F5w>m0fEkRRT~;1*Qc1y zJk`^6yXF**OgzWY7>Re7}-b0BOEcm*OFyI^;9d3YA_GA7wxj z5fM56ekXP-vYAyi=Oaw9Tt==IVS8nxHOtczg|qCDsr9Fpoo?5+6=0X}(wXW^6&@R% zy=G~-NVXHgsrdwu90nfJ=jc%u9v&qxofL<~3V*GSztKKKseSM zua#rBNA5zOAAQfE zEBv-}$UMM|tR1eI+h`UW+cFG@h_ zMi+QMBWT7`DinEVd9k%UB8B+q=_IFfbu_mGQDs)YzG+qqqs1g7IxlLw0_^Lo^w@9W zJjk)A0q^azR3<;xxbBSSqN#+ZZNi&Vg&#T2P041cmW$!il%aW*PRb+nXX`?Dl3cPe z#fZ*PVNa9!^@66SP#W$u2#5%iuFQ-dez6}d^v?jIQUs1K#C;>$d2J>GXm03l%J2O) zuYF-jx++j!W(zc3?T(FM>r6v1+se|?Q-|p8YkNccY5-B2Bc(A4CAP+I-x8955KlAA z8k!awTK;l_W*e`JpXwEd>F)rlFW&&)V7s_DJ!8DBv-k9h=;0>Q!h2NUjj#yP=C2MHI^0NS4}ixu&v-QVQR zY@Y24mG87z0jR()1UW^!_)xH=txmR>j(XvN=bJ_F9Xu0WI`gx|4QcjLVjosb6gSEN+^VW8D!JsglKYu>Y zw7W&YRN6NvCEkZa@@s#~7ob zp+QDP6)~82`1I;pv;vP{s(wyLUe5Q}7veVAO#t@&Gn+D}=|*OBU%6?hZvS*glF?Yo zPiwpK{UHNd+L)QHa__E8)r{syo(4T0?ERO-Gd(N{u;?)fNs^J%{cl&v$;lI;#F^|g zRY(D_X4H_f5)M2p;l0d%wyxP|GcADGHIws-d1*R!%R)tvh zqBos;N?>5%Jz8O}M^wmI28x5A_upD6X%EudXrH1F**hlHH}a=2`(+Y_lu5}N|pcEGqq!+v{7afRTIsThN6@QC#R2wiUFvh!8y}S6p5Z| zyB!(XlS57$g2;p2b69BWuO6;z>#^gj=Q_SVn@r9I^~HCN^Qcu_$e)5W#ts#Riq9l3 ztvlt@V5$A|pu=7yn@ANEx9K#VcUW%uJY!BNS=GxwhwGg(G&J<1=2lb0Ds~|EY_ol_ zSMxlI`2N8i1%_iDR#8X`W*GM6w=P(t^lBLB_sPh}5`Z{q=;qbUJ%7-`cs3bkhd~PO z$R01Zv9rT@>{+UW6cCM(QHXbKv^K7w+JHY*#45q_yD0G<$cw0jZ_PETfZTgEk9n#O zXymy6m}3vPv@zEk4@7~{_kaFY9V9!rhoaMlAj=MF>cb@(7M^=*G}vM%W0OmgnU8vY1}Y77@Qckw_m}N92|+#OD)>;6S={IbC+-csQFa;(Wjj4J5^V-|fSi{8%5PS-BBaucT zJa>|5r)e8Mo!aeHo_d~9oIhl~r$RDb_)_A7*WOe0flQ=x0_Ujj#sMue3u2o!C>q7q z<50BHUL8FxR#?G>(CX*T+0WU`bh7wS^U2*dY_T;9>T^f~lnqZ6O~I}b2ZFH)JaoN~ zw`q5#@krH6la3@me*3ww#7XpFAl~O({dSs*;q)Ea1ds$9z@33X$X{S!g+3C+F&sT| z@$0jEczd)Tup`lz2sZ#C)$6DnViBD-)Qz9stJ?C#cT z#7$ie%@1h?tf z_;@04x{O$z;R?41VUG%^=E1@q?uf1pq;N3K1P6*XIRyn%^$mqI1r|^{TmQ}zIzi$4 z82@V4wEfMCZP4>+h@P!ZNE_p4f+5ylJMS+0q%K@`B9!dib&|6TxRjbGUeN(s@7UsE z>^L`ZD7u3oe zUqsAu0kufj*)UxkD);gAZEQ+9$d6TS2)U04(l>Q~7(tchcUnoXUl?GKmX?OgO2OpX zn3aO`4dkV`myQtxF=$9XL3!Y|8o3X89-7x;AkgBd2>jIsk2^lIy}_Of1FsBb0o>=u zrx6Vwz6WXutcQXh{xn#mHZ_IagxD;3G3o{VRoc&ZQBydvGx!ngU~L@V+hV|X-i~Z` zNavj{(|!JY?Z;)ysf@y*c35#_w6vLB8R}TjTb-v9Llt1E^lF727NSBp)RSc6pG;Si z3U@*_pq_kRKokt0) zD4eAk-&1s#oQ+}(5g0oQhf!`q#;?v?!@uM2%Gy!IU*`E(uO~OkEV8!R$E~Vm2_Xb} zPV`m1;DjfBRQlVaOGi(U1wto>2tR`jb>}Z!Ais1eEOkDCQ679tUZ3D$*;rY{5Ni$t z=#`SW2F>m88RB>8=>nbr7PxYu#h^mM(+^GTf107Mq1x`L;G^kV9>U=iM{5I={iwJV zimmne?%fl|AaEOE5{)tGN>2q{C=K}fZCJO!hAXD4+|(>{ltnbTa%VgP`mqn0?1!t5 z$tWl$rjDwVJKKdX+^U`flSLx91MWHNl5=TkxVyU}sR{Au08q4>RRVQD9*N$ZRwfQG zRzN&uvnr&}!$Q(5vbxgj3<;PEohF~`&%gqN3aeUP%C~RdYqKnzBrr(+PtV2v<#oORwqHPVgaF--(@`=$+D-&SyLcIs_r>GZI8fV^Nc&5 zpyf2o(%~61HbnQOwY0SS&4I3Y?d7*dXlGR0>Ig7d?(AUk&vnL&opl)ni9P6wk!N@XJJ_u2Y2f3C(eH{cihS@}ryEM&va~^}PkAuik z1p9%+qH$OVyVDWJ-{0SX!yp1t><~9d2*_4gP|1*%3z4rF#Y2pGbM&1-Wx>G|q+dV8 zWxFD94h&vM{M6*<_;_x^7V2m|nY;eRsN;OODjd6=g9e1WqTs&aP8NH#6ciM4+$>1j;a`xMk|3^n zvzs8MAoa4!C%upH*mDB)Q3BGf0)$v+u3@X5AZPBwprmGMU6fSxZg{5FS>?B<0+LJS zt3r=WH+Sz#f5l&BP0>5vwdERfvaBP{Y~8bHZjTkp5TLJap+xRq+T%yXL$6fFz2GPvcKovDJwELK?J zTwsC|qv5wjWNkg3Vb__v&|L}>)`AS0!ail|*3Nu?cfomQ{vPRxL*`^57Jzb^U@SN` zt_Rg8AZ|FA0Ps<~NN)^c4)D3il?l{{F(iH{3~>xd4Ep%^K;82H>jo<;YjuFk_U2|C ztVb9M2|G6#nLsV4adJcu1sOI%(4_zzLLpyow}$mI6V)4)V{Au%oE>kC9bVpEzt6=D z{saFQV+`hPija^HqO53v$f&T9p@n0P3+Mkr88R=pZM+9 zQW`#TL_T+eE<*upPva(NSa9t!CV?BPlm@_MhI-qf_RHg8&bApvw%j|YJQa4}v=R^> z-}-z%vw9)o;(}BS9jbovG@Cj$H~UZ)H&A zF$9uQAalbFV}1e`^9icSG<1}0Af3hH#t*UL9XQt%!1xbQw zuXQzRe8>^g6r`aC7{q>p=$)7ZC|t-aLEVRR0UDymNUSu#p3ZDtL&@-6)rkJJxj|8^ zaz;B|ohSl$*gkHo;zrl#D0-&rY}dA(u;JEdHsTcn*Vh_E>NM!YCGLb0Xfu$V=wV=<5d1UeS<_y_@~9I=nrKh5BfJJKi+g~; z8?YK(y?F8BSz3X+z47VBsT##O$mnT;P3HBnv+Z#YUf%(YlmjpVM7p#f{-f^Qn;>7G zrM&eBJ^%dwJvknwFm+# zU;c48#qz6c6JOLRG&TuG`a?AxS^_aPE)~7 z8#>sP-LzJrNvu|SKXHcqReQF6i`BSTQB)K=jKZx*NpJ@_%;CdR1yO|EU5p>;k~A=2 z6uyi&J8(jLh>g`QaQJmtFHqJPiL)q8O-;oNwS1Sp?%`qK+v5MWuk?RfCsdueK}%Hl zAS3FWs?g~h2a$yGoD=!K=wl^_4nEd9t%26UtQffT3T94b~YO@^68oG99&ZGB9Ka#yg<4EL!}Z{ zl0vy~j`MUCiGgnbFn|B@K^@Jpc}pk$++^VEzYnZQ@O{2ZMDz!zLH)n;A)mg(;kb=_ zwYIYl!TKUM1YPN|xxZQbRY#sr%+5i2jVh#i9&KVH|Wgc3J5LEc(*#n5`Styx4@81245p+S!t#9AFx$d#I3&v(KK>2OwHBEcFDfa_3ZlY2bYiVt~c@_U&6^s5aZMDuEX5 zYvMeddp!&cBP--8Oaj!NSwG&PHfRuW@uH;YcCgso(fM}dES-=*vn~SzgAsHApg?1k zva~WlcS$Us|L5;(opBFHfaIMYuGF@y*h)g0cmt#BXy}OLU0rtxQA~mH`rDU00myWf z*v*cOj>a2zBq7D~#TyR{GQLR?l!)aRTD8WxiG!QE&$P0#A_wlkkId4v!JL|Ehz|%- zE%hw0VpzmF3$|!uT3x85NCJgiljn?|xmPebF_8oY{kr~sb--hCz^EdQe<-|&566EV z3__y>=zQ|5#~a9Mx4}#gMN6F9tVc%M4IixQ1oF#}^DGDQ0o)8g&qxNu0o1Yds~X>O zZ*l7FMXkCK=A!~-x42R7|M{m42o6RxIBm1Rpcgh#fJ6;=03*Yj4;F(bI~gTqDlpHf za5;Z{XmW8QUte=OuNgrTs<5FBPGhwKvs4gPuV20Tur`2BTG^!%WJm-m!#DJcx`y3% zBx7Ay-VM3$m~&{A-BrE6Rk=@)hT^DJ;aZF!zjDHQKeXV14CX^+s?Z;FgIVg<0F$*h zz=rwZLg8lo&c?j5p57Qq#iL7GDI$d|U?;Kk;@7vM<$K$+2kgZ63(^ez3&4~q2Y~dO zfDY1Ygl;@#YRahg#xu}=R+g84LUhTSF9s`X$pYGDK&-YMQ2DqW7Bqkh5fZV}E_YTu z@Jf4(eGp|p!%e`>05BNF>uNrH_zGzSg@r3!PF?;``o@0#Gt7nEbSK(ovROW(FP{N@ zuV7K8yG^EiyU%oHfbmXgqXbh2Gtte+W&mH(r4N{yfw<<#jXbP&s&UY}udJ_!FdRL0 z3^By=J1#x*L45%!7>tWSdmEMejOrC8IM%b&cV!S5V{2;N2HX3d9G8jLw0i$m1rgU_4&>x%DV;Dh;3}Ha5i+~6Dt;ha> z9amn$*T#fMv|Jy&dv|iCuQ+$2C6XD-Eh|_en5C@kA_>3Q{1MQ!hQ5C=?)O^|2SiU# zk3u&rTyc-Rtz>^{zN>>&Z03;45UbuUfq9?cV0_@oG^ZgI`pnGd>oB`pg zbP&<@aV9}EIF7-c{&c0Sow4S2Dk8msVABsdcN0Algw$Pu0Q@gd%hfgdPr*g~f5Yzo zhqHII0-IKD=@As^CBcJDN~r$@m)!rlpYH$c$opx1f;;bD&34H;Iy(B;9rxIJjGyW3 zYP*s(fWIr8sq)F$&V+f#c;L%R=Z(2f(f8~VdMto#VDVqxOW9ak7Tp)mcAZO(P0@<( z14eU5F#1~HV>_3+p~6HOO*SOffNxu z=4v^yP=V7N7Kc*pDUTgoo-_-93{a$kzy(;d?~DcnmADH&gmoLj0Q-^hjk**N5zB0~ z8}_*W*x!9#4Ta)|c&8s@ogV9I03; zMI-7s2~WvyH*2zL9&j{EeIvI)IVBF%YJYttEN=M%6lN~NmXDytgPt3m-t3HjrI>HR z?MKJU*<1o5u9x3sGL6a#pqCVv-!bRCxJE=D7$MDlug z+{cK}(eA7)fF{?$M~-fvkc{kPxuZ}?x9@V|%dxYUO`1gM>MaTz&3H@)TZOTzz7+oW z?ksKP>g})f{e&fM0Z5uDKZQq;haSfqt)MySoQ~HG{+n6)5`di-)iQ zMv4N}l_Dz-IRuP0UtHbX5MGN^c)KTi2qILsR@$m8Ai%fd)z&Kh=e|&9de%gpnbcn3 z@Av=;S)d5H-RJH?brO6mIoq8P1j0tc0hy_p?9U__l>+gORh;coT|=YxrQoh2B$#Sv z5wr$&x0a=wF>dRs$cDt*jfZ%7N&;m9f3d5;J)k9k36OSMltt zSw{6jcLG20{Smrb<;S0407DOS6uGww@4Fg=9BxLw^}vd--Iw5EeEzaoDS%znkQ__+sZaimRv4GS;H#*Rk^by&XoAec)o) zu3Y(=Z+r0|9(LVrXFAc#@=R>Jyvou-_%;20+kgDK8oA1^M|&`hWM%iZ)ST~CRaG|Y zC>JH=(A?&l-)!~JAR0;XyG#ztWyoV&K3o3Hj?j{)(Ei+Q^Q~>u!Cv4WDzA-T2b@nW zz2&HqN|uMNOc`*q_`n80s5I4FCeoRM@g8wVsqy1QX%NUTHW<-c-rR zf>WfV`?#AKN?61}5X`2ekw5r`nTf*X$p~;6ow?o7HQ$8MU|z4V0H-~;yI7Yuh*^oR zF*Db)Ke!jVKRD`<4VlRV04l<@(>hOGK@h)orF$iRQuQyytJs++ei0hJ)im>Ydl%z| z17uZY7?#A+acA5%!kRzY`mT@O*%Rz9_OE)2e7f?0He>N+#fE8T%Fmghc<6ynk+Jv&$7=Ml@9EQOOYOcyt8hH2sJqWFDkH9<%`{ zfjNL;NT^xob#$Uq?+8Zn7@!I`axD92GhUgyu$2QxdO6CfQHSIaE1WKW6WtiI;$ zNexWeckDiAo+a$ImIEU#~=55_62*f~Gma?0sV2QylZ z3P71(&Uc2#i|~}5f9}9t```MFqWj}PxPSDwEq}Qtv8V6H+F=GF`hz3My*|Bq=w0ZG zvie}-5v1(y9((UkA(oLZK-1l;}helDgVq@ zdGeBx^94tSCd=2SVruSg6iz>26xKd;@N0CiQ;57Idf5>4(V0mE8tGe-@|fxQcF$Aa zf%^hGj=YRa95D&8{_@hP`^5JTuE6>i7WX->ivH-aBT=n{6Z@VkhEY4UUmOK?FA&im z96{b%T=jKk{ub)vg_y(52f%jTAijU_OH`Hje<%>4|7;pq(mCRJ_-jwn|M&%5|3edv zRR3?oWw81^4mR2XGUSr&N49JN@Qk^B7?P-zr2$$LLVX~NVU(2NyT0xeS&_xERe#vp zKB#$ET7_C$hp(BspmzPq$3rvAKLiEoh9rqtSuK%gA=Lz6t2}sQVRPUzRu{_14CuZg zAmd^f#l^^oLu~c09NcNek2{j#Ni4}7A3LT$R?8+--Js}1kxObR6`1j00k*@)dc9b% zW3(Vto`m>0b^5d-2yM*}Z%2e(KDbj|{Le!3Z2N$bKDUA1UZ!4u7&a zO2LR$omm4W0ns#}Ef3XLg? z2_zp@CKPL)^=TBqtPEN~=M?ZY_Cb%~BzgFihN?S>op(wL8&M<2#wk#s<}3I1_BOP% zbirE)8co#>o=8SaDmitqRC=bi91RMIS?YG*yuIB*+Yo-H{ia&LnW-!eZMX4kXD*eB zHEm~nmIsGj<;9rD%%~`8KI(IJ)0Z^U_X31B?_<{H@{)r?LnmLR5w))NT%q5`LhVOr z698~)wZePZWl4ukYNCvSE$41ylfXrL8bSLf{-3XMTTrW}y%5@-6eg$DLi>Mvh=5xz z0bb4h&2BlM9_mGcLz^A;ElWR}bSptShuG>(aM)RVZ?0x{^|x<~Xb0QrG!G8d&o2W6 ze%F}1%wZ`+-2gu^D663i__^NP|6JQ@(<+T^x0L?oO%WZPmuXspdEZChc)ej|XP3Zq z7HSKZ7mm=-?2lh`D;YO^`_^l^5sFHt+wqz+l%H!B%dv`VN>4G{11_<&lmaS1py7PR z)pmzm8XB59In4Wv`f@u!kxq#h-cPS2*d-w*;U|(2Mh!vIEQC2#jwoSmNC&{j$<0mO zbY9Kx&eIvZn4^+Wl4YrVmXc=|!yn3}nf5`KHi#iwOiWHe0X83!+o4O>fBvKrd|tFI zy!(ZnqD7%5KXJfa_iVKcV&cFmb5VN9YIPi-Bu}{%b>4?O>dQs+?CkdyvByH4nlgsn zu>%7dh|r8#+cFflg^sbLRGJPk`}V_T#VDs${PtX7-h%HDbHciMw4lus%kr%xgS~l0 zw*uF`no! zV@CAe-d>tkc?s-hP?*^9^tp2Tw!HA%fL+Zj{5P?wsmVH{K7$SQ`qeA4zy6AYt!ixW zRucucj`nus-y$lFM6ZucV`1Jwq(RGBuNdR7+S*wadtLzb zW9Zyv922bw(+e&w&9{vLL%0Z`7>tyboQS)7g`AvR=UB=L4 zu?*uA6RFOAR8#`CVNp`aT7+2%@JyWzpkYCqbSAu8pWAyN8OhByuKD;e=8JQ_R`gAg z+{wy#^}YfY`}tDy{yX+#PbHmK(1LB19>ut^F4PwQ_Efj@{uy#v6rArb%u;Y8AtB*@ z{`~~(ed~{AJYYpVKNq&7iu#tHi>>!VlIO=afZ4 z=1t&=?baohtHt>37Sa1@jbXav=e0AoX?E3iCFO-)U#xR|1{efCmZdK0@JrI3Urhf17!e?c&VTcKMi?d6*f zK1`z3>6N@ZN&NSV8PSnTCEsG8U%7c{PKtp}84X#%FWKaGib7X0hDFo`84OU02V% ziR`BVi~LmESCY(DB-ivWPNfr(3a96FDiF3(nemH?YFS0J!AjsgWKAKQZt^&^a2|KmlF3aIZDdu%ncX&{WzddjloZV zO-Xs`JLIMuZLv6467%6hCg|)gV?tFM@8A0d#iu+C@VoR0pm2Px|Ekz#@`}Kpos7Fe z2}u)EwRFB_y(nKvz_NHvy7JF zyvHXOf#h>B8Mzivlu5_us&Z4r%NZVwS8#oE6l2^VOn<*xG+;%I27s$nYFDQ7PN09g z1;+uOQKkIfI|8yx6lyas&QU+@N|jfw5yEPgVj}LmQxLN*aPM>2#t0P-4{h?|_FV7^ zyJUXO>{7sWmYS4)`}WX}nn&R@1xHAY+_vFW;)Rc)!5pxe#<%9GZwNaHbNZ5mm? z{~;`8Zf*`+(Er6fdRxo(;SDPeoj)39_X!7cqON^vV!7NWVQEpMsN1|EE~gZ0KvwW+b>&|eNwk5PAqFYSgUd08X8)ZA3Tsv z-QL_$C#Rqq$&NsMjMBM;d5*g0Q ziGqL65ZQE(xRBtz1L2eSH*<4lgsoN&&h_4*au@tqkTk^((uBfUi}-D)K!!Os4TN+1 z)(v|Q1c5;h1rY%Dv>Vh5c)Uh@nW3S|{=>(LN~}+!IyyQK&j?g@ zM1h8b+d7zyrX&EB|%U8_t5yrUml7F9H|pTA9#j@3$+ z)Y18byz>URX?QCI0uElWVkY}I@iHb`9_>l~;aR3pC?CSzzKRG4ky1t>|EWFAH z+17+b$UDtNXRt9` zOL%wbHN5643*OCg9kejf0Iib2-d|QmAV``FmgL(Cl_G2myt~Rb|DNqsAV7p;XD-FH zwaFm&1sg$;sY4zQ{C3FZc6exI(2jY`dZ6O~RR`RDW48Q)j>#`Et464>s3?ukON*~Q zf4+)XfuNhg>!}{ZT9pVic1h6U7{Rx|022waDT2-WOtV<-+*wO=gI)8fklLq_dta#7 zu|OO@?OPee;4kX}D@`zPgP;y6-?)y3m600bG(m~H&48<7^D~?@0jRq)5J8;5gw7dm z2r3vv{s+^0w$S;J)6oG`btX4emXV>4%-GyY1-k~k9^s(zvN5+=-`GH0mz+*#s93$4 znk422vR8e&9Ts|04`H7!?3e4Be=&qVD%c_+#sNM==fQp2OFQmu$wZNqPj%s z+!9I`O2okhvW27ZfY}BIcRRc;4NRFypbO2wUfNIwL~}%5umcJ%tUl<=0OM-7aiwpb zK6MJikeHOz0FwiLUF6L_oZ+V6V=GxGnRUmP!W*z8R8>_Gn*cPQLc2>MjEsz_adGz% z0T_%&X%I^^!tNT#+W=rOYPw~WF7U(eunHUJDs*r@!OnUk_hG9i0b|-|E#n zXzx3KqRjH`8_apeoB$m`#RL*WGLEsyB0-6cnJ9vQWK6J&3fc-NN|Gp{QIQ-PhfxFs zlq{)1l7QqK`+sgXyF0u4-`e-~RlVA+dQ&r119bSp{q8-#^E>C<4xgC(#H}EBs8lLx z{HQ+LAL8alDSRTDn;1K6Vv*5zBy*@j56!-jLo>HA2Uwh&o10`!VLnlU#HbvJGx4N3 zM8vkMCWs;ug0FYl3lLU!LW-sT7R}zytcmW@$9vBXLN~s$(=jA~KXb4|X}mo$XfRTK ziVDeCHT10l)&kqM?fmJduR08+8C@PxTXocDrV|M%3C@E}fE3jv zcgF_g1U-86XnF14QUB{Vd9`a(uB>0aBGg=u)$^&wTrb)9Tf)&J*G7kwqS^$h$jkY56i;i9-XoG{clt0`h>K zT<@SH#WV|Flw%o?F8(J}AQ=UcUbxvTwEUaw^6`@7mGE8XSBqv{PZPA)wfa>ipxWlCR@ zxXH(FR`I#0U(iR64ms#yxO}>Oa(aYlJ}_TrhVeBbIuQS4H6nJW0{*2pmW@A8LFW(7 z;1QYXFny7{KG2_)m|uMS{i9)q_=cFWhed63Veuil$=3-9M2bbk74E-$XtX5pRxmFs zs;X8H=^+HIO05WqAuUiSLSk@gXcHUS`u##0uUDttAU{M~{>_yw0Z5fS!d(4u#tI<*c9-+k4KFSMIHq)HsNy>C3kVS3yZm}*=u4wRhi>5thLd>`K`>FRw@Ng$CE9Y-wcV1r?^ zH;8sYE?+eA8Zc=Gh{eYXBULg9|l2D9r#pw7Mv6sAdy|0>V8YK`1QAKVi?8uo(dbD z{mMJ=C%_nLC>SLT5e4QEUTTSoL|qsJ5r$S8UPVD~Rv@}5BSS`KRLB3I{P%xIG_PED zDqQpIxpS??1xY~#Vy=VcOSA-KUMf2)oq-F$)62`2r*-euZ|WpD2Tw$dUYp>qU1g!( za?#!xgopI57l=%6@s@dx_`<40*>#qYZ{8$8egOXT)GidXDIGnpYg`tEK7USP^*)#+ zLXcwsr$nyMDKEGp>(4YYp(NVh$7u^3qu~h+cb)1qDj8ec2#mmc>TnzUF+@Rtwwv8V z6>Sh&i5M(8w_Hc-EITiM<*};`(J^w?0&;;ulBgho7q$hka(HAN-e3VDMRwpAyNaWD zKEbNG&%8PeEI~U25^F=e|Q5xn!+y_Lj4=&Nn9Q&R#Qt$7K*I z4LthC@RWaol_A=7dLRhTe_Esa1~IH@XL23<=IXhz5y&bZ=_E>9)uK1{1+KW7ZQtH6 zT#z-WzJ$^e^G452b~#0{1UhxBS4O*DrbD19?l}Bi#KU!l$+PB_03kWGmQTEsyrfF8%V++BFpZxaVEYif2cq;Toixae>N zZ=0c+}BC(O(^}Y6tmB zT)R4hmb2IR*v~m_4`tRMvrMdT@=QW*8wco7oQ^-4mEAv|m9cl`z#5dU&E3R4L(1=o zXYJO53iPeNF^we3qC*mF)0aku305)HB+CB?^xWEF+LL$UweI3Xb9J?gU8&V}JHD(q z&;AfMjnSTBW7=kM3-$7vaEj%YJ+pyF*HCYW)W5H-v`2+UqbD zXjn3K-_qFZ?mln67d=h6FSNRJyZ3Miqeq{*`5s8 zc-l~btTx5rNnt9~AaR={>k1k^6Zn16VXK5rQT)=UO~eNVWJ9c0{KP{?Rui49HR>7` zODG$TXg}cRk$y-&Qv9*3%5{$)f0wMiqIiT{{Q46?m37u@sBOvIm5;|Wcqej2s2ZUI z&g?OuF!p7jR8SyLSw7hzcRx!c{I`eg)dQt3M7%e^;P>*SFqTyl$gi_$aFs-%+%kr6k`xB@_H8`W5_A~|X2F3O1DH6pKDqcPFpv%iLlh3c zDVbYg_Jr6;U&QXff$NY?J%^HsN&}&TItkV%M`{g8#KVmyu#MCqK+4h343b3-P~fXc zC8T?#M+0t}7KTFiun|bx%UNo@OP)M=Qk{CXZB={^5ILxidj%{*Axz&mF z*q8tO`SXHch#|QvF;A|urScFv-ECLKR{W9(G|BS49sf_T0`Y}_0*4AWrP^RrQeNH& zx<7*H2cfYy#TX1vJKC!fqa9nOB$N?+`_AeYUFPO@3~GkEw3mR5R%4A7ukY>6wu;Hy z63Ll3-I(#SJWgDlJmmf?V$X(Y14|2umnU+)g0$QiDk|#_`(E>cf>RLb6f}}SrV=D) zK*WnUSTWaWr>-vvN6}M4Cz);R0`4#@fr@sB;BeUfJ_Ds|Mym3ly&{W-D*YA8lB+;o zBzqC4I}pzTvB<*f7X>Q+UB@vh^*9V9e>6$@Vg~!+3APIg_7XmovK&NHnY?Q2;- zomaZ z*_6R=_l*^|(L@wiQBZ@FuFAku*iMiwgvcaFn)Cx;qtix>L2_RwC!KJ%0G*^|hwGx7 zZW|Y&{Ny<<8VQ4id&vj#5q`nFdyj{NgpiaW_&CB5q=KQ2VDyy_mAAFh1>_@Ss_bg_Nb# zVYNL*deK?zwI}$yuD;QU)k+Ik9vOn`j3~zI3|QY^T#1X6qkc^DN%b)PEL|2Q4)?!I&(n&Vt{j%q7){?#Vsu@u*48^ z1DYf6I--#O+j;+iQE8&74rxs0<>ggFNz(R9 zQWe$IbO_;M#{fb>x&uVh4ypfRI*pIElh zS*gU*xS`HV*^WWqJVmY|Xl)aFkAOoC?$R>`3LW)0lRs3~>Z>uk_U~znkJV2&xwy{3 z+TgJEl2ns)mQ7FQNSX^>BixhF8NhW>Xj_n)sXJpp71AF4gYJtz?~KoQPHe`hZGokx z@tF~*>d&@!I$Tuuh3a3~l5aisdF^v0Mxx4>DyO6~HkFUU!sF9e5}F z%hwfz_!U<89gbhkM5dn-%|zLGT0%u%aJ%}vpnzResb{nZ$F|+tinc|oYJvj$F1Am~ zIkLycj-N`!Ku|qX9hl@=cbHImt$ig$Rf$vb4E-w;(Z8%UsYwfr)?P5ZM9Yy$&Izg= zeVp{jhf(-XD^dN*?33$dl#~?Zn5(CuZ&PRk}Ir&O7yVy-p+2d6FG%xT%|P;oi~rs!Gzyi)g*e7#Fdm zPt?_FL|&Xc)%kv@kPS0Ru~Bz}gmRoorPW0$`wSX(>^M66MP1y``NXwtfeS7vYR7~O zo3D?uI&?p|!1_*&MY;-BMI9{0HM!GZ3=yi|HhhK4&I%cVLfh~2YoRYcab&1GtU7g- z^V@0kY@)KNC8Faugciw)4O$i4$(c3ljagY}TB?P)oi7LQ(0_Waalbmzc+=CupPmLC z?y3<}5ARjD?AM}A7$%}Lkh8!lPgX4US9NaQB)>Jlm%n`BveJ^OwNp*<@|S99t4vNN zdiuV9e~dQG{M?l0*!{dO_T{BC zbY!gVyx7vxS(IE~9_AWXag^D0)w#ZDJfeQbjJu>)($JtXy=im-;z{)wewi=T2^jZV zzRw|npYtKvktxoLEKhBew$@(4lF6yz0AoOUk8O^e)BFeMe!@UzCb#ZUq0qJy8IZ?V ztzNF4b}arQ*J+HZ@yjNgd|&!20_yAN_I>cfuB(JOhsb(K(3xOP(52sJ9$(^I)?OpwYnlaHSApxJa> zji9MsG-16xXZ~e4VYpjbAhL8<`D3`Tl54H*be2b`Y#8dQ(RnIy*_WSCZ-}Mu|0E%` z4S)hH-%cCGwjd`Bkkl42XW=t~nbMEn7<)K$d`XDJY(sc1RJ~>87H@CNNgF7VE(aG+ zZ1aFWib_hQ*2S`INxJHTr(1Jzi!<+Bro^^RYpTB1B{YeV>Cz3ZKnOQ@DlTFY5uDp={xhWN1iyk!0Z?TUW;)J@VF>DR938ZwsRBb+`%EuWqRx)RRc8zATIHZ#GQQgt9UUPGoY(tP!jm>zw#WY zpe=2mRr4|20^-X|oJs+CMT#syY|?~%TBvPS-Y^GOh9sJh6bMvT?PQ}2DDA@riq|Tu zs%oQ=fF_J4dK_n*15}B9qOrthU?HoL_}7u9d+Hdodsf> zRD763iCzjrhA{LY(c)sTTJy+UQ%5s|Or8Ab$x!KXVD)I_CR)cn_}t82V|eWV!ahpCHJ^WVQVe)< zXN9Oq+4efCg59(*xE6N+c#|DVK%=h0l`SjNBtb5u*Lic9+{swhyO1VA#oxWVm~`i8 zk3fb(tO3X9PSiFlwkm(ZTo(s?)kTw9oU^@@A#|-WYHuiJ*WeIvx^`=Xd~=RRRsE79 zZZUc7-g?or+Rn`!ZZY`A0yK*II^+Z7c~Ug4onD~pYk=nUBQy#y>$H1GcYlJ`l0>{< z;F|O|=VAYhGC)n_8*O`9NE9Q~68weCYs6FU%9>!3+>JAhH7u0q8klx*!iY84(^a2I z#FiyvFLw(GsYx*m-~bS-p0j|+OOHMv_ZU(W zXqX#(devsTvG1{_O!&fqkJiOpgI6hQp#>v+vk+tQHCj4w2KXDJri5ge_-fHnrlSHS z?8kb9(03lHgKY8=mT1yqMKF9QnrI!-17y1>q0B)V32Z0R4|4k1yMSCMTuuFXY;;~p;_{G&2Evxft^>F{r5JH5 z(HTYm9oIq?T@D|9(z*fV{26&ntsTs$<6EW%f>@A7lP(aHTFnm}mli)2?pu&2*21?o zc<&W&`?#ghwnu7q9=mz-W}U7AAUT$-2u$uiQJHmyX&zo|DA=&`?{x+dud-_F_48gx zw)u`27|T&tAB;Y}TRHA>wDmjNdJ$~)gS%`z+S^#ar)4>b5yL58WlfFv+218zN@6uN zyw*4;xx(GlNVobFJUr+q5Pj}1`Zg`-uyU!YsFai71e*>`XY8v`&mlJ57Pff1M#TkZ z$Cxb^6F8`0d7oi1ez44^rtvihnLV(kj!E2mg)5DMsMuUQ1oGeRv?cEY16|i znxVx}9k22#yzsfJYeS4-083hMXb<#u{Ccvn9>;MLA8 zJJsC7dV3YL;+8+3zf68)nZlPxwu>xN`M7D19))2aD>N}lFWRPKayoDedvGco{_(ir zu^)YIWEjk)EEB90&mfbEk1HVAmdP2FuS{&MHpOs03j#v@MkB2F`KAu+H&cRt-r={( z4XyH9uAE=Et+^&c$=E*`1G~gb%aEe(C6hL1^yg7KWPPEZ1VOZ#>P!{U@Dr~d*EKMw zzj7kODcJ=w%PA3IVZ^5;W!-ugsWwU+5gmnc?T<&3C_OdFYJh^|fo?4hipR35raW_) z4LWNjB_%HyOU<4)&o8Qu%oaezSSNfElM2vqvEZ3$>fJW>2YOMBL_<~3BlOttjh`<2 z%?W;Xdv+Blkn^wB67~N3)JmUgyC{PzxfRHnDIB&*rF>fd!#7eEh+aJ4@`78zn}-vy zK%rz${3}h7*>2>MDU|DBS^lgM1Nnu{!f2i^>gZFu4$~ccQTm(BIq;P`>|^u z3Pp2%3om8v?Aa?FjUa`G^v4uRjg}cTKc!(HUzYM6yLDk-Bz~mWs}Qywy}fupLkB{s zw-|6tg_MTU{Hb+r2

?Vuv6ffbE@PVw!qMW}guO=7Z;gOkQ>zVu9jT+@CL)O#_v= zrLq`3h==@Gf6Mh+IG2bbmj|r}@Nv>*CVg;lFeb@*|3;*U$Dn)yW!U_}it{?Rg?S%{ z(5iIv{{5pmH5o85Ibez@M?d%Qp+owK<}lQj!(EPQE%^}FrfqZCBY4M-8D0iM^8^-? zSgz~!dlo53TCZ*fH#$SK+_jG1d1YduLV6vY*cr3kNWS$px)jH_2VacUgkUzx7MKl8 zAhbgC1t2X#-a5LCXU^e~Ta6B-0tgB|7os>ALd=~BQjEcCVwosGjYzPoo!Xxs(S@~H z+@HYmk)8ICDjtLOcV7EdPQVWu25F8`GaszeI80He5mgb^iyhbsa>bu*0-L>OyGgm~ z_R5abHaQrgbV=!EeJJWB~S+EMv zvcJW0H=f)G{@5Ix27m-k#siX&n5+z@3DVx{nW!0p!PNsK`do{)PjMOW|+bt1aqOtrB z4-fg9?Z3S^NkA%A+x&gL+u9YwH*afIap(PD>ArUE;tghBJx}NG?K%5Y@8+kgwIb~Hz_MCZ!9HNIk&UnooQDM{9G7H3}$herqIDfX0NZ0MKDZ74jw#c zT(i}@Cd@d3Z=z}WX>zT$E3<0@w_j%~{0IE#KF|4AAf4~kiJdRKWE*d-5ZSkH-?s zWhr#?nppHh5MXHU?!insirsuR4#wid)v1*>?P+_aTrdEGUc4}LUwxOi^Of7F3a0oI z5HD}cA10ZXh?ROzt-D64MURS}))6f;RCa<&0|zCE;DC>4*9=r7XNe=v${x|{1DQR} zLO=?6z>+k6WZqt|fZFkyZME?{83uV)vYiAd+>*T94G>T~1Hrc+H}eCO88oPY_$=KZ zoohkX&PVWgWQR4Uu>zx_r_9OLDf$|6iyp_%R@ej}H_u_keaG(9ZQzM4j~qQ}4T);& zEWXift{@p|{q%5h8zK^m5rNSEFldq=YFFOoW8^*y$1mAMk%PV>wJWJcL`urP7|J3^ z%w)^Pt0IhFqqKZxQ*r7Gy63PFha9*!hrDT^I-9!zNe87i276MQX&FsCJ^P!RjvhH; zm9s>GpDH)-r1%`D*_-Rxt$^0J>$9`@Sfjc2gP)HkAec(u_RDz>=RmLkvgmpiqFUs= z)^Pp6U3TMPpjv^u0hjWLVZ5ImW1{XWgyqLgp#=)tdcRCyD!%(VKjeo2XXr*InG$mx`#pXD3u81*rX{LDPeOC}y+y z178%lPgmOH1*VTJ{S{3*8vi;T9-a?lIqGqF6IXA>Kv4n6%x91zv|{IF z*|4+e^a4mAMmrej9AcMk+>yC^*Rwy%6rW{Y)0)FKZAoj6F`DYw%rjAIUEETlBvk0_ zG8if|Tt#-WwN{mC4~xaV!@s){kNH8kT&Yef)XD1ik?H@iWu9{_x{E=er7xfeJC$y0 zPHTqvZE%cTVhK}bEpme}qX;;*R7}MJL{O{|V>;N&aeA!nAwN>?KjIi4TNg=g!)Z4L zzh}?b_U5O#gsF(_dH@19%)G{_+d8N~f-zPoA=Bz1KiMe9av@J7fcP>ive6agaq`^t zl!xa43&{b{Gy3zNVT4{zak((B;Vv20(J}P=va+(^qwFcjK5`u&U(eDOH&9d8m%c(;sB#91J$gH?jwS<++IJ~HvdzvKL+x8GjzE_!@E zGtcPUwQHE_B4(yKFMEoNCif=1XTXOtzgd{OAzO%Jt?=Sw|C+LLD?4IN;g|o(j~*K- z6I0WlpEU1xwZL~#9^Y9iN$IZ7ocN|}^-NxZ{OaT391jPD_{xIj=5y{I9;Hd<{t=Q= z54%3w7>rN3L_|cCbPjoSum`b%I6g078@J~b@lN&Y`9EvD`;SY@Ip#z%a;{V?@ClKU61Y-T&-Tc2h_`flL-Mxp%g{BD4Ut?hD^4@hg!P#Ya4PWL@ zuKgGNrt^pF;#tW~jX^!tZ5J6ymcMj6_C5%eYBS@&%VkmagYX_Gqc-?=o!rH&`4@FogH`OzF7 z`<52JfwB`UY16;Ft)<%A^`{>P^NTz(H%jAmlLR?Ag8pv(= zp0OtRLi8R=#8l+$bMCc|U>oA;2`jKFt*^EGdJ=|%ru+E%@hL4M#g3QBON{-u7SxYS zPrkn#X#cTQUe_P(P=8~xO`<2@r$Hs)dr8lTsCaq7ryHNo%C6p+jMc%aK*jZ`Ji|<@ z=w#Z}Af{}BjcEm|lhNFx&Gc_m$ETXs6Jqcx4bWZ`;f!f zV257+ZxQ#tytXgxteCF!Ewn#V`rgT5XgB^yrID98W?dVJEp~pxsSY1m7W;JWoIdgpaVKf|f6+S{;Chx|xB^OSXG2Nw9tW}^<>V;Y&1{Z6rL)aG^o zmoAw(Jn|)_v6H;mYDm1Y%dV@uQr{1|?X<|VnjYM}cMl`#RDey=d^a*EAN9$rP21V_ z)Cb6?efv5&luLKc8LD*tI=*Z{6~bnf|h_i|RR*we_(|6?y;n0@=bw;wreu(|VS|>^bl8mJ2tS zLauXK{W4i|m02Fy*IBDm7LbjlKW-N78MtUm8M5n9WH6ZnkL#C~+0-5AS>PPJyEhxe(W<_iX4!EwaRI?9P-n^!J%w_9h-da-w z&bgl(S8+|Q9Lf8n{*c}|Jo`qaEf=?SO}*cE*6;_pbk@?Xql?_gdCwC^vQbxLr{Nt} z6;bQ<_|bVbVvMWpEagelW#fr^2>#06C_43)RcDxf(=dI*rJAi&(|Ma#3MVw#wI1Os z6&iaIKhHIlT{2OuKbc;hOxKa0_dQYJ2MMn0+!y59F1HS4jHqTG+|2o?q@F$5-8S;` zTC;9WA*td=GJJ#Qe_l4KRee?#2Lwzt$Qd1fOIiF4gYh>%RMMfDm7Ai literal 33766 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 diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-RNA-Builder-panel-is-collapsed-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-RNA-Builder-panel-is-collapsed-1-chromium-linux.png index 561b536329445e90952937268b8c68f3d65df439..7e2b8efad981836c8b0f7a9bc9a78f8caefe6ee9 100644 GIT binary patch literal 38620 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 literal 37660 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 diff --git a/ketcher-autotests/tests/Macromolecule-editor/Rectangle-Selection-Tool/rectangle-selection-tool.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Rectangle-Selection-Tool/rectangle-selection-tool.spec.ts index f62905e339..dd5a152235 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/Rectangle-Selection-Tool/rectangle-selection-tool.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/Rectangle-Selection-Tool/rectangle-selection-tool.spec.ts @@ -1,7 +1,6 @@ import { test } from '@playwright/test'; import { addMonomerToCanvas, - dragMouseTo, selectEraseTool, selectRectangleArea, selectRectangleSelectionTool, @@ -11,6 +10,7 @@ import { } from '@utils'; import { turnOnMacromoleculesEditor } from '@utils/macromolecules'; import { bondTwoMonomers } from '@utils/macromolecules/polymerBond'; +import { moveMonomer } from '@utils/macromolecules/monomer'; /* eslint-disable no-magic-numbers */ test.describe('Rectangle Selection Tool', () => { @@ -129,10 +129,7 @@ test.describe('Rectangle Selection Tool', () => { await takeEditorScreenshot(page); - // Move selected monomer - await selectRectangleSelectionTool(page); - await page.mouse.click(400, 400); - await dragMouseTo(200, 400, page); + await moveMonomer(page, peptide2, 200, 400); await takeEditorScreenshot(page); }); diff --git a/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts new file mode 100644 index 0000000000..607b62b50d --- /dev/null +++ b/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts @@ -0,0 +1,113 @@ +import { Locator, test } from '@playwright/test'; +import { + addMonomerToCanvas, + clickRedo, + clickUndo, + selectSingleBondTool, + selectSnakeBondTool, + takeEditorScreenshot, + waitForPageInit, +} from '@utils'; +import { + hideMonomerPreview, + turnOnMacromoleculesEditor, +} from '@utils/macromolecules'; +import { bondTwoMonomers } from '@utils/macromolecules/polymerBond'; +import { moveMonomer } from '@utils/macromolecules/monomer'; +/* eslint-disable no-magic-numbers */ + +test.describe('Undo Redo', () => { + let peptide1: Locator; + let peptide2: Locator; + test.beforeEach(async ({ page }) => { + await waitForPageInit(page); + await turnOnMacromoleculesEditor(page); + const MONOMER_NAME = 'Tza___3-thiazolylalanine'; + const MONOMER_ALIAS = 'Tza'; + + peptide1 = await addMonomerToCanvas( + page, + MONOMER_NAME, + MONOMER_ALIAS, + 300, + 300, + 0, + ); + peptide2 = await addMonomerToCanvas( + page, + MONOMER_NAME, + MONOMER_ALIAS, + 400, + 300, + 1, + ); + const peptide3 = await addMonomerToCanvas( + page, + MONOMER_NAME, + MONOMER_ALIAS, + 500, + 300, + 2, + ); + + // Select bond tool + await selectSingleBondTool(page); + + // Create bonds between peptides + await bondTwoMonomers(page, peptide1, peptide2); + await bondTwoMonomers(page, peptide3, peptide2); + + await hideMonomerPreview(page); + }); + + test('Undo redo for monomers and bonds addition', async ({ page }) => { + /* + Description: Add monomers and bonds and do undo redo + */ + + // check that history pointer stops on last operation + await clickRedo(page); + await clickRedo(page); + + // check undo + await clickUndo(page); + await clickUndo(page); + await takeEditorScreenshot(page); + + // check that history pointer stops on first operation + await clickUndo(page); + await clickUndo(page); + await clickUndo(page); + await clickUndo(page); + await clickUndo(page); + + // check redo + await clickRedo(page); + await takeEditorScreenshot(page); + }); + + test('Undo redo for snake mode layout', async ({ page }) => { + /* + Description: Add monomers and bonds, activate snake mode and do undo redo + */ + + await selectSnakeBondTool(page); + await clickUndo(page); + await takeEditorScreenshot(page); + }); + + test('Undo redo for monomers movement', async ({ page }) => { + /* + Description: Move monomers and do undo redo + */ + + await moveMonomer(page, peptide1, 500, 500); + await moveMonomer(page, peptide2, 600, 600); + await moveMonomer(page, peptide2, 400, 400); + await clickUndo(page); + await clickUndo(page); + await takeEditorScreenshot(page); + await clickRedo(page); + await takeEditorScreenshot(page); + }); +}); diff --git a/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-and-bonds-addition-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-and-bonds-addition-1-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7b2432cc45866dfd3a348e18573d4004f3e4bf77 GIT binary patch literal 6052 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 literal 0 HcmV?d00001 diff --git a/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-movement-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/Undo-Redo/undo-redo.spec.ts-snapshots/Undo-Redo-Undo-redo-for-monomers-movement-1-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ae5b4e7bdfe1fa4a220d043f3c407fa139c712 GIT binary patch literal 7937 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 { + let canvas; + let editor: CoreEditor; + let history: EditorHistory; + beforeEach(() => { + canvas = createPolymerEditorCanvas(); + editor = new CoreEditor({ theme: {}, canvas }); + history = new EditorHistory(editor); + }); + + afterEach(() => { + history.destroy(); + }); + + it('should be a singletone', () => { + const historyInstance2 = new EditorHistory(editor); + expect(history).toBe(historyInstance2); + }); + + it('should create another instance after destroy', () => { + history.destroy(); + const historyInstance2 = new EditorHistory(editor); + expect(history).not.toBe(historyInstance2); + }); + + it('should add commands into history stack', () => { + history.update(new Command()); + history.update(new Command()); + expect(history.historyStack.length).toEqual(2); + }); + + it('should move pointer when undo/redo methods called', () => { + history.update(new Command()); + history.update(new Command()); + expect(history.historyPointer).toEqual(2); + history.redo(); + expect(history.historyPointer).toEqual(2); + history.undo(); + expect(history.historyPointer).toEqual(1); + history.undo(); + expect(history.historyPointer).toEqual(0); + history.undo(); + expect(history.historyPointer).toEqual(0); + history.redo(); + expect(history.historyPointer).toEqual(1); + }); + + it('should have stack maximum size equal 32 commands', () => { + for (let i = 0; i < 40; i++) { + history.update(new Command()); + } + expect(history.historyStack.length).toEqual(32); + expect(history.historyPointer).toEqual(32); + }); +}); diff --git a/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts b/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts index 91ddf0c0b9..0b655ad41b 100644 --- a/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts +++ b/packages/ketcher-core/__tests__/application/editor/tools/SelectRectangleTool.test.ts @@ -34,7 +34,28 @@ jest.mock('d3', () => { style() { return this; }, - on() {}, + on() { + return this; + }, + append() { + return this; + }, + data() { + return this; + }, + text() { + return this; + }, + node() { + return { + getBBox() { + return {}; + }, + getBoundingClientRect() { + return {}; + }, + }; + }, }; }, ZoomTransform: jest.fn().mockImplementation(() => { @@ -67,6 +88,10 @@ global.ResizeObserver = jest.fn().mockImplementation(() => ({ })); describe('Select Rectangle Tool', () => { + afterEach(() => { + jest.clearAllMocks(); + }); + it('should select drawing entity on mousedown', () => { const polymerBond = getFinishedPolymerBond(0, 0, 10, 10); const event = { @@ -99,7 +124,7 @@ describe('Select Rectangle Tool', () => { expect(onShow).toHaveBeenCalled(); }); - it.only('should move selected entity', () => { + it('should move selected entity', () => { const canvas: SVGSVGElement = createPolymerEditorCanvas(); const editor = new CoreEditor({ theme: polymerEditorTheme, @@ -117,6 +142,9 @@ describe('Select Rectangle Tool', () => { jest .spyOn(BaseMonomerRenderer.prototype, 'moveSelection') .mockImplementation(onMove); + jest + .spyOn(PeptideRenderer.prototype, 'drawSelection') + .mockImplementation(() => {}); const selectRectangleTool = new SelectRectangle(editor); diff --git a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts index 79051f0448..b3a161e6c3 100644 --- a/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts +++ b/packages/ketcher-core/__tests__/domain/entities/drawingEntitiesManager.test.ts @@ -10,14 +10,15 @@ import { PolymerBond } from 'domain/entities/PolymerBond'; import { DrawingEntity } from 'domain/entities/DrawingEntity'; import { DrawingEntityHoverOperation, + DrawingEntityMoveOperation, DrawingEntitySelectOperation, } from 'application/editor/operations/drawingEntity'; import { MonomerAddOperation, MonomerDeleteOperation, MonomerHoverOperation, - MonomerMoveOperation, } from 'application/editor/operations/monomer'; +import { RenderersManager } from 'application/render/renderers/RenderersManager'; describe('Drawing Entities Manager', () => { it('should create monomer', () => { @@ -86,10 +87,12 @@ describe('Drawing Entities Manager', () => { it('should delete peptide', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); + const renderersManager = new RenderersManager({ theme: {} }); drawingEntitiesManager.addMonomer(peptideMonomerItem, new Vec2(0, 0)); const peptide = Array.from(drawingEntitiesManager.monomers)[0][1]; expect(peptide).toBeInstanceOf(Peptide); const command = drawingEntitiesManager.deleteMonomer(peptide); + renderersManager.update(command); expect(command.operations.length).toEqual(1); expect(command.operations[0]).toBeInstanceOf(MonomerDeleteOperation); expect(drawingEntitiesManager.monomers.size).toEqual(0); @@ -97,6 +100,7 @@ describe('Drawing Entities Manager', () => { it('should delete polymer bond', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); + const renderersManager = new RenderersManager({ theme: {} }); const { polymerBond } = drawingEntitiesManager.startPolymerBondCreation( new Peptide(peptideMonomerItem), new Vec2(0, 0), @@ -106,6 +110,7 @@ describe('Drawing Entities Manager', () => { Array.from(drawingEntitiesManager.polymerBonds)[0][1], ).toBeInstanceOf(PolymerBond); const command = drawingEntitiesManager.deletePolymerBond(polymerBond); + renderersManager.update(command); expect(command.operations.length).toEqual(1); expect(command.operations[0]).toBeInstanceOf(PolymerBondDeleteOperation); expect(drawingEntitiesManager.polymerBonds.size).toEqual(0); @@ -122,15 +127,19 @@ describe('Drawing Entities Manager', () => { it('should move peptide', () => { const drawingEntitiesManager = new DrawingEntitiesManager(); - const peptide = new Peptide(peptideMonomerItem); + const renderersManager = new RenderersManager({ theme: {} }); + jest.spyOn(renderersManager, 'moveDrawingEntity').mockImplementation(); + drawingEntitiesManager.addMonomer(peptideMonomerItem, new Vec2(0, 0)); + const peptide = Array.from(drawingEntitiesManager.monomers)[0][1]; peptide.turnOnSelection(); const command = drawingEntitiesManager.moveSelectedDrawingEntities( new Vec2(100, 200), ); + renderersManager.update(command); expect(peptide.position.x).toEqual(100); expect(peptide.position.y).toEqual(200); expect(command.operations.length).toEqual(1); - expect(command.operations[0]).toBeInstanceOf(MonomerMoveOperation); + expect(command.operations[0]).toBeInstanceOf(DrawingEntityMoveOperation); }); it('should hover drawing entity', () => { diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index 1cb31f8100..80afa23c72 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -45,16 +45,9 @@ export class EditorHistory { this.historyPointer = this.historyStack.length; } - // historySize() { - // return { - // undo: this.historyPointer, - // redo: this.historyStack.length - this.historyPointer, - // }; - // } - undo() { if (this.historyPointer === 0) { - throw new Error('Undo stack is empty'); + return; } assert(this.editor); @@ -69,7 +62,7 @@ export class EditorHistory { redo() { if (this.historyPointer === this.historyStack.length) { - throw new Error('Redo stack is empty'); + return; } assert(this.editor); diff --git a/packages/ketcher-core/src/application/render/renderers/BaseMonomerRenderer.ts b/packages/ketcher-core/src/application/render/renderers/BaseMonomerRenderer.ts index 129c945cc4..97c0bcc805 100644 --- a/packages/ketcher-core/src/application/render/renderers/BaseMonomerRenderer.ts +++ b/packages/ketcher-core/src/application/render/renderers/BaseMonomerRenderer.ts @@ -338,7 +338,6 @@ export abstract class BaseMonomerRenderer extends BaseRenderer { this.rootElement = this.rootElement || this.appendRootElement(this.scale ? this.canvasWrapper : this.canvas); - this.rootElement = this.rootElement || this.appendRootElement(this.canvas); this.bodyElement = this.appendBody(this.rootElement, theme); this.appendEvents(); diff --git a/packages/ketcher-polymer-editor-react/src/Editor.tsx b/packages/ketcher-polymer-editor-react/src/Editor.tsx index 98d5b0d312..265d540471 100644 --- a/packages/ketcher-polymer-editor-react/src/Editor.tsx +++ b/packages/ketcher-polymer-editor-react/src/Editor.tsx @@ -326,8 +326,8 @@ function MenuComponent() { /> - - + + From 855f27f6e9ac1e675a8f3493864118c4a0243dd8 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Thu, 23 Nov 2023 15:33:21 +0100 Subject: [PATCH 15/18] - fixed bug with selection overlapping the bond --- .../render/renderers/PolymerBondRenderer.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/ketcher-core/src/application/render/renderers/PolymerBondRenderer.ts b/packages/ketcher-core/src/application/render/renderers/PolymerBondRenderer.ts index 83784b0aca..190c7f5f41 100644 --- a/packages/ketcher-core/src/application/render/renderers/PolymerBondRenderer.ts +++ b/packages/ketcher-core/src/application/render/renderers/PolymerBondRenderer.ts @@ -23,7 +23,7 @@ export class PolymerBondRenderer extends BaseRenderer { private editorEvents: typeof editorEvents; private selectionElement; private path = ''; - private previousStateOfIsMonomersOnSameHorisontalLine: boolean | undefined; + private previousStateOfIsMonomersOnSameHorisontalLine = false; constructor(public polymerBond: PolymerBond) { super(polymerBond as DrawingEntity); this.polymerBond.setRenderer(this); @@ -154,14 +154,14 @@ export class PolymerBondRenderer extends BaseRenderer { } public isMonomersOnSameHorizontalLine() { - return ( + return Boolean( this.polymerBond.secondMonomer && - this.polymerBond.firstMonomer.position.y - - this.polymerBond.secondMonomer.position.y < - 0.5 && - this.polymerBond.firstMonomer.position.y - - this.polymerBond.secondMonomer.position.y > - -0.5 + this.polymerBond.firstMonomer.position.y - + this.polymerBond.secondMonomer.position.y < + 0.5 && + this.polymerBond.firstMonomer.position.y - + this.polymerBond.secondMonomer.position.y > + -0.5, ); } From 8a2801d19cd433befb75b3742ec459a6adc3faf7 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Thu, 23 Nov 2023 17:45:37 +0100 Subject: [PATCH 16/18] - fixes after self-review --- .../editor/operations/drawingEntity/index.ts | 11 ++-------- .../editor/operations/polymerBond/index.ts | 20 +++---------------- .../src/application/editor/tools/Monomer.ts | 2 +- .../src/application/editor/tools/RnaPreset.ts | 2 +- 4 files changed, 7 insertions(+), 28 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts index fc75e410f6..c8dc827f37 100644 --- a/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/drawingEntity/index.ts @@ -1,6 +1,3 @@ -// eslint-disable no-unused-vars -/* eslint-disable @typescript-eslint/no-unused-vars */ - import { RenderersManager } from 'application/render/renderers/RenderersManager'; import { Operation } from 'domain/entities/Operation'; import { DrawingEntity } from 'domain/entities/DrawingEntity'; @@ -12,9 +9,7 @@ export class DrawingEntityHoverOperation implements Operation { renderersManager.hoverDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { - console.log('invert DrawingEntityHoverOperation'); - } + public invert() {} } export class DrawingEntitySelectOperation implements Operation { @@ -24,9 +19,7 @@ export class DrawingEntitySelectOperation implements Operation { renderersManager.selectDrawingEntity(this.drawingEntity); } - public invert(_renderersManager: RenderersManager) { - console.log('invert DrawingEntitySelectOperation'); - } + public invert() {} } export class DrawingEntityMoveOperation implements Operation { private wasInverted = false; diff --git a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts index 0ab7daf51b..d709d6d980 100644 --- a/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts +++ b/packages/ketcher-core/src/application/editor/operations/polymerBond/index.ts @@ -13,9 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. ***************************************************************************/ -/* eslint-disable @typescript-eslint/no-use-before-define */ -// eslint-disable no-unused-vars -/* eslint-disable @typescript-eslint/no-unused-vars */ import { PolymerBond } from 'domain/entities/PolymerBond'; import { RenderersManager } from 'application/render/renderers/RenderersManager'; @@ -41,7 +38,6 @@ export class PolymerBondAddOperation implements Operation { public invert(renderersManager: RenderersManager) { this.deletePolymerBondChangeModel(this.polymerBond); renderersManager.deletePolymerBond(this.polymerBond); - console.log('invert PolymerBondAddOperation'); } } @@ -57,11 +53,9 @@ export class PolymerBondDeleteOperation implements Operation { public execute(renderersManager: RenderersManager) { this.deletePolymerBondChangeModel(); renderersManager.deletePolymerBond(this.polymerBond); - console.log('execute PolymerBondDeleteOperation'); } public invert(renderersManager: RenderersManager) { - console.log('invert PolymerBondDeleteOperation'); this.polymerBond = this.finishPolymerBondCreationModelChange( this.polymerBond, ); @@ -76,9 +70,7 @@ export class PolymerBondMoveOperation implements Operation { renderersManager.movePolymerBond(this.polymerBond); } - public invert(_renderersManager: RenderersManager) { - console.log('invert PolymerBondMoveOperation'); - } + public invert() {} } export class PolymerBondShowInfoOperation implements Operation { @@ -88,9 +80,7 @@ export class PolymerBondShowInfoOperation implements Operation { renderersManager.showPolymerBondInformation(this.polymerBond); } - public invert(_renderersManager: RenderersManager) { - console.log('invert PolymerBondShowInfoOperation'); - } + public invert() {} } export class PolymerBondCancelCreationOperation implements Operation { @@ -106,9 +96,7 @@ export class PolymerBondCancelCreationOperation implements Operation { ); } - public invert(_renderersManager: RenderersManager) { - console.log('invert PolymerBondCancelCreationOperation'); - } + public invert() {} } export class PolymerBondFinishCreationOperation implements Operation { @@ -127,11 +115,9 @@ export class PolymerBondFinishCreationOperation implements Operation { this.polymerBond, ); renderersManager.finishPolymerBondCreation(this.polymerBond); - console.log('execute PolymerBondFinishCreationOperation'); } public invert(renderersManager: RenderersManager) { - console.log('invert PolymerBondFinishCreationOperation'); this.deletePolymerBondCreationModelChange(this.polymerBond); renderersManager.deletePolymerBond(this.polymerBond); } diff --git a/packages/ketcher-core/src/application/editor/tools/Monomer.ts b/packages/ketcher-core/src/application/editor/tools/Monomer.ts index b3816d5242..dbab6a8eba 100644 --- a/packages/ketcher-core/src/application/editor/tools/Monomer.ts +++ b/packages/ketcher-core/src/application/editor/tools/Monomer.ts @@ -44,7 +44,7 @@ class MonomerTool implements BaseTool { constructor(private editor: CoreEditor, private monomer: MonomerItemType) { this.editor = editor; this.monomer = monomer; - this.history = new EditorHistory(this.editor); // здесь история пишется + this.history = new EditorHistory(this.editor); } mousedown() { diff --git a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts index df79c4aac0..40e9739fc1 100644 --- a/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts +++ b/packages/ketcher-core/src/application/editor/tools/RnaPreset.ts @@ -55,7 +55,7 @@ class RnaPresetTool implements Tool { if (preset?.sugar) { this.sugar = preset?.sugar; } - this.history = new EditorHistory(this.editor); // здесь история пишется + this.history = new EditorHistory(this.editor); } mousedown() { From 6d917a85eade364c539de1a4eb5552f143b14f22 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Fri, 24 Nov 2023 14:50:33 +0100 Subject: [PATCH 17/18] - fixes after review --- packages/ketcher-core/src/application/editor/Editor.ts | 4 ++-- packages/ketcher-core/src/application/editor/EditorHistory.ts | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/ketcher-core/src/application/editor/Editor.ts b/packages/ketcher-core/src/application/editor/Editor.ts index 17baa77137..61adba4c4a 100644 --- a/packages/ketcher-core/src/application/editor/Editor.ts +++ b/packages/ketcher-core/src/application/editor/Editor.ts @@ -21,7 +21,7 @@ import { resetEditorEvents, } from 'application/editor/editorEvents'; import { PolymerBondRenderer } from 'application/render/renderers'; -import { EditorHistory } from './EditorHistory'; +import { EditorHistory, HistoryOperationType } from './EditorHistory'; import { Editor } from 'application/editor/editor.types'; import { MacromoleculesConverter } from 'application/editor/MacromoleculesConverter'; import { BaseMonomer } from 'domain/entities/BaseMonomer'; @@ -133,7 +133,7 @@ export class CoreEditor { this.renderersContainer.update(modelChanges); } - private onSelectHistory(name: string) { + private onSelectHistory(name: HistoryOperationType) { const history = new EditorHistory(this); if (name === 'undo') { history.undo(); diff --git a/packages/ketcher-core/src/application/editor/EditorHistory.ts b/packages/ketcher-core/src/application/editor/EditorHistory.ts index 80afa23c72..08e59cc870 100644 --- a/packages/ketcher-core/src/application/editor/EditorHistory.ts +++ b/packages/ketcher-core/src/application/editor/EditorHistory.ts @@ -19,6 +19,8 @@ import { CoreEditor } from './Editor'; import assert from 'assert'; const HISTORY_SIZE = 32; // put me to options +export type HistoryOperationType = 'undo' | 'redo'; + export class EditorHistory { historyStack: Command[] | [] = []; historyPointer = 0; From 55f8379f9753542f0d7967f884ba571aea30f9d3 Mon Sep 17 00:00:00 2001 From: Roman Rodionov Date: Fri, 24 Nov 2023 16:04:57 +0100 Subject: [PATCH 18/18] - updated screenshots --- ...n-Chem-tab-in-library-1-chromium-linux.png | Bin 30922 -> 31824 bytes ...ne-in-default-presets-1-chromium-linux.png | Bin 44724 -> 45766 bytes ...te-default-RNA-preset-1-chromium-linux.png | Bin 52892 -> 53965 bytes ...ch-panel-is-collapsed-1-chromium-linux.png | Bin 33579 -> 34759 bytes ...er-panel-is-collapsed-1-chromium-linux.png | Bin 37685 -> 38690 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts-snapshots/Open-Ketcher-Open-Chem-tab-in-library-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts-snapshots/Open-Ketcher-Open-Chem-tab-in-library-1-chromium-linux.png index 87150fb137b29f1ab3f586c3bf4bfd3dc5a0710f..703adec71084a309ee5ec89234123cec9257b2b7 100644 GIT binary patch literal 31824 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 zν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 Sy)*e9s6cF4(I4Lkh(uc=Ar2_}Za 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

DEDpZ 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 diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/delete-preset.spec.ts-snapshots/Macromolecules-delete-RNA-presets-Should-not-delete-default-RNA-preset-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/delete-preset.spec.ts-snapshots/Macromolecules-delete-RNA-presets-Should-not-delete-default-RNA-preset-1-chromium-linux.png index aa429a5fefe9177f994f30e805ef7e11f05930db..ae5be330273982fc06a4560af70bc13e4abdfbfc 100644 GIT binary patch literal 53965 zcmd43bySqw`!_t|v4dk^&?=~afFL1_qT-NBH;3--7{CGr>5@j88A53oLggSO%`nm^ zAUPm0biCIMe!uJat@p3@eb#!`<2r%EJ@>uuy{~=6=kvMtnWaU-w z$?I=Ez71)pHZprz5czi~uXIz-YTO01!Um@BoI&8xH#Z}4A2w7g^_;mPUBYFo+bXa+ zPx;F*_OkIiu5Xoz!G3;sRxyLCWC1@1;7{pkaY z`#*;Gok3CT|LAt<|Idd4gN>hk^$c~H_ii$#cs-m&v$Yl@7~(S6=ybLDz&}lOOyjX( zo%|Os?_I&oIc_|3J8w`ib3oUGd_8H?k#W8$Z{|V9!B5>6&yVWT#g%>7yD;PsaV|4| zPyjptm~v&wn7{BtbaR45(1={v(q&X;`+KdO!W{CPE?F5ap(V($$b zf=||lv>2-@D1=$^#W6J+a_dqqb=FMC&5I5a2oH_#tWJsRI0_Np&=|R&`MdT*vo*ir z$9LmDesJ8lapEG?-s9&&8V$q3!ynSq&lRZU4Yt$xZb#K`Z;B4;{}82X!0liXKJ?#l zNqB76jQZX8Y9gupD+foOi^iS3FF*DR2*8cfYh4zu4~7@?#yclG#?X~T$^@Z!Xm6CL zaf_J#y?3GEXR&LjK+S<}hosYEs>Hl=ET46MC6Z&_oblOBdlQqOdUEfwf>uNBbd7;) zRVPD`+ew$p4ctBcTg93hwd2r%-WJ-ssNpg(k>q4$7~B}Kp%cI9h}t0XjtmpuEDzZK zmE4#%bK~ciy_Nnn7{1dWI@fg|?d?wUENVnX^ya6CDS^7Zn~basZmfI%6s7w_wh;ey z_LEE=#kYruEu(z!EUBAz$k!TX$)8woH}*bd6blFn>IuCjsbICVvZC_%@#6|oFs(q! z&=`2599^q)wkzNSWt*X`gjb!Ja(?gs-KUFT|+5VGFYWKihX=$ z2FENNHRf#AaP3QNEuqwASg9YYl8c?{%FOKd8Yr{ttMYKcT6Ja0s}iuv4n=aP$M;Z2 z;dYGj3uH3kMv~`MZ*OmO=g8+5yq;^e2_haU_wL;**QQ_ep^+R?%F|NEY_7D}@+2{x zy3GBcqod>ai4$Gbn9a`kgD88A>lY6o=Huhhzd@cM?`+QFEQooF%gc_I-qYEcN;zs= zq`qP{)ftH)MVtydslQY{j^C!$b|XJees!?OEPRF3pQ%x7K1iTGApVyR+zGYlFB``v z@JP>Tx*IJSOz$+yrc+tg8ZQt&XQzTwz8;PqtZh`~e+F-C@{GB`U_g%@<0%Q?w0EHr3s5KFOP+#Sr1lBtqyy)y*hrtkUs-;5XRPUZq^wO zce#e%n8xLI7n;aB%?+prQuBtz#l>0jY5LZ?ySkc=ehu^w4vxm-@k}fN0_tL0zh7u+ zYtQ$2eA@op+$HJWYV(}@M+LVU@$c>TVNe0o{ z(Ry%VRr3?io;&A&KZ)vnduD%Y z-Kx5n^k^M-GR%6&w@^84*bHdQ%Fv8@jkj#DXFSy_(5!&qgUQnms! z+*|7X`}Y;D3n>P}&kvnAPfMGlU+16gFwq*cI`ivSM$PU{f5+UgSmtYg|IPr;>Z}5z zX4boR)!+r}XEjT$6X@N>&P1{(KB8h(YA+r3iu;jtPY$_uNW|mLK#fb=&`GhvxMRnT zb-cZNhqlXWlRT5znjnB)Z-= zs1J%Hm@Dh+r^NExgzD{L&bH!(wire7Z9|;8755 zHrTRID`sU@o!5F`t(rzJV9V^^X|nt1%zURMC%^sMm82?Xt6S@>lK!$%Qe9uoOL3EN zsdJBFE??c--nP1Zr8Y?!GBGI!4jwlB_KvIXgPug}ZIiKvP(iz&FH3BO^S%bsn7DG_ z2-qMxq3NYIF&9hCBGaeX5BI}F*G3MCtc|?bfE8HYULBqx6LpEbg(l2s3BS|IZ_Y9= zgDLL~w*CE!vuDqa&Ccd1<5bM1I@77S^k0Hm3p!3F!?vDo2)!07=3TAh`s0vxwWoU6 z*w|Rw%a?y)RtH_&XL3uIzntJSoos*K2b*_PE3C+{@ocVExdPsq)cN_vk;sUMG+6Q5 zEgnJ+zus0jld!PwCcl3)FdwQcH;CwabM6LW_n6)7RYAAKv^pOh?z()8r0r^<`2KLFe5{M8aytY3G0 z%Dt=t+^B4Vpz`MGJaL+U17jA>)yAt>TU%$}C)EX9#DUkF?k~;1diAQ~+<*YOGgxdV z>+mV+hQ>FIZ^|}@)XU{`=hkJz&PRr1spu^^iVFS;Y8BWikFu|l+!Y;;Q%2n4Cs{DR zM>v&S1#nu*SS1!ZF)u9|e(UaXhY6)z4PKFr$yDyR7XN^NE~2h?E?6kCJ@`dTmVUJm zGUXW_K6ubDIH)bQvzBVy8XtpgSz8#TQ+)H{#S7(1SG$C}cK5+mZ>;p&6q^%RV`Q!q zvYtwK@2qDI3=E{ru+?QO?@lCnPtW!i2Awg0J=b|HSU81Uvm^^vK5Xn#<0aU3Va(E4 z$EnVsBt?pP0!|fi-$B`FRqo`@_V*Ix4oQY|tQ&cnfYm6*vMOVlw7v6w#MxA5kBu4T z>elEu&GaZYhA}gvbv+ke-MSzhwR0=#mU;^8nI`>@4a38_Z6d4jQJlJYO_6N4$Dvm> z%52|1fBqa^GMy*ML~f>g{m{dQ53@G|IL%ut-LT4=eH66)CDw|;)`L9%v@<$+zVFh` zo$~6+)#MjhZkGs4OBC@iZ;9nK?=46Nmq;Go-BEpY;-ZR@QpA@pU(TODpZ4zErSh_} zn}ULUc0u5^utv>MK}5|G%MOP&k<28o4YW4ixutm3cPrN+kk$MSCh;Vi#DGi7WQ$U4 zHcOhGsUB1+690;GAO1Fy&PEvf!EJAE*O8*V$zxpG<}da5$?jn%TC0?^XUQ9jgpHjB z2G+6hbeE*l%3XfV#-l>g3Pf;rhHP= zpmj8pcDen->gwvC68`GbM~~W8R)YuK+S*cJr}!~3k$K`G$6YVEW8_;G0)&NyY5UnP z1YGl}gi&CZb~b5Qu3o!FZsx4Xdhq6KkX2%0BDiIR*jSrcwnF#~p&H{+e>3mje;?F0 zG$O&WJL@S{x2D~-=AxlNZln-m? zj(aJAL#m$vXU=l<>ivr9*XV!#Np{2tZoo!Z-kh&#?(f%h#%tI4Q#sJ8raeAWKLdG# z1w^Rhr%n;T6)3|l#cz1|oWJtwgc-S6Wcl0MHYPM?nh=2tf5@KUg;nNssUiLSBy1&V zTeDUrkC3U|H}m7_GwR>t#2}1~*LH%imR8Yb;IlrDjU0FOHHH42P5&*CLa*(X;}qhs zG^o|cQ#5>8_g)-k)vhQ4kDCwnBlzV8Cnx7CUtd-pp5>C(!ED7FnBSj|EG{gdT?9=g zS`&B;8~(1B%KQBJa}eghfdfe3x@Ib5KlXZ*9H^)JU-lpy6)UD3>^6G?1 zb`ShlDC5-dEG=wNcsVDT!OEvnEi8Fj-d&*G>0H*tgv`oW4u<6`rXk-`3cr*DokzIvUMeEQUGaHW=Zcd{dzmz^Pn>=!(}jt%}bKr?>X z2buUeel9Mq<42E%goi`&5t|18PX7DmTv!?vn+g){N-=ZbUnj>J!#7B!!^{7klTYjQ z2G?7!)b}vp!W1}v|2O3;-?A>SYuvnbONK8_)?;P%X@a1W;iX5h4iPt>-Uqi$glT6+ z<6Y)^U;`@W>r~w$^c5IMV^(@ipsQZEX9+m>3ysyFu2RSn{TF7Ot8<$_r ziZ<^n$}X|&O*wevbc1mr5=DY07~z54cHbZaQFwKiAM(UVa5aXPe4)}o%z`vfu4rdx z2boP2ECD;(eJoT`;ngFT{t=?@BqT*PfdB%`{1Y6(vO}}TP(g_YLh#H5|bUS)ZUa!A`}I+rS(_0q*9S3wcEQgU0hr+ z3w0N>GkzK)ZnD^W*9(G_tgl{{PL(^gprdK5Ggxy^ynw^UYDU|bkd@D4~{$bA<1ERX=hR_Xx*fKU8L1z#km zv>$KE_E??UfV7?PL9f|gOF|Uf^9}0(NN^gmSV-#=Q$ZWl?5gX| z?vOLOysNadl?I462z(BLyID`ud`jhXf*iLzxqtdIH4b-4a9ju|*(t5j%G>4tW%w_Z zTjtWR|Ew|CzO2Wgn%3JVFZ*7>4~9T2A($(Q`{)K;+$%{h$M9N2m00y>fX$`%S(o-Lz=&@=|p6Zf>8j=V}9xo*S5cp;DD;K3INcBNQ+~d zeutfq(ZAD~eiUjSL%uj8zBq-z_-`jxr*yryi=Ah`zlY?Gu~hn==t^so6ILlFt54bO zLFmG<>6PBIvh&M1$2~mK`@JA@minMUemc|L#>EcFbJWUoj{m)fN{b1>MY{=C1TUY- zR?&0dEtU3ob)F;bo^(w|o8)e{E<`}LV?_ITm3gDlsOx+%XUjvq;kF8g|i zErTUA>VGu-`R|*c?4hZ^jBk{!Nn-hsW@JOPTCRP3v3ylibjp=9Iu|u}XV+SF{pvIK zn!0f6wQ>H6*pTGUfzxKYy-Q(f!ATg6UG);FV6VIPb`t5`^XtOZPw!eExrRbA#{m}| zuXUsKjg9FSl%h{yM~s7ULa4++-CM3rz4#2$m~5Nj>aa90;Vk%Yab=~|R%#x0;dwf` z+z%gaBeize`3n~^z+*&T2VuX35!A(Q%5VGk0(-n*>CtOxFrhN^^W9ma0JOtg^B`gp!U?Ex}Aw{B{d z(HX+2G|dZ*Osj`8&<63Q`*@bbIIi1 zze7w}*~^)0yF29!M|^~wx=^=`vK9hsZrr#rGfgmMW@c`-o{-wZ13v+Jb&8o;8&3ph zEw_r?^kr8rb()rm!p@;DmV9h1Eb4FGprMNCB%7T7oqzVz_LXs=7MBa~oCa-{JESy= z)jq&4E(G*0%+^?JI^d;HZlBo?ezH*D5cd6M9L`h-Wthx$`0oqvz`enZ@Wr$cDZ~nU zJ-3~tZZ}l%`OJnQFqg3Fa*}sUnX?`DNeSbnVoc8IlLHJ2)%BhxU^_koPNV0CyHj^| zE^kLG9<&b2C6=$T#H{S(BlHa`)X%oYoNL0>L#I%;UlkS>#wR4qZ+v0!)w>BENCijE zTRDNurnp=Mkw~a?=T%_9+?5h?nSET0A;r#*O;2M*w>NOgGkoPL3_hCpT-0rTm2KV_ z8GC2v>!`h@AK@s6uT^LTNe~ zXEWhkj^Yj(hueIq@px~8JR7wbw~OJ?`1tW->=yc6lkdy4KGlyuuTk^sg=NUZW>Gaq zPkqEH6UG{idwZZz-_3QhsP59ulyBDO!>vhBW~(n{j!jHNTVc{BOkK-LtOrvr;+<>E z@R#+vy0@k>$s;f79E#`}h2A;f_a29`ofmMLPJ;>=8|}U-dv0eiOTH#rxxnzl1fC9#l5_CG?v$&Th1J8kS`FX*vDGOFdojNFeZ_XvBtO( z2WMxM!3}cpNTHjc*Ven|FQfL29aGYXZletC)DbhvDsdB?c)9{}t$y>RlW znI4wwe2oJPS(<2@nHkre0%R#FGc%K#*E**jtJ2l++m^KHlyvKQcuGnt zA=iVF?t6_c09eYFmhnx|-fFoTV%K1Moyt|)i9F39$Ry9nS!^+^^U(jitm4FiSddxc zMctbMEa+gByqp_xd|l7im!QZ#rJSYqG;EpB$*G)X`jn8Z*=9GeQEV|b{VN0NY6+9J zc$Eb|dIi4;A%P5)eBDx&r>gl)VvORsnqsN?l%iQ=3*zJJ;Q+W~1YG3IdK4JT`Xt#0 za>QG;x4TQMgbqcsrmwBJ=4z}5f^9}eXGSMl_Q;GkiFnp~UoWfS`ZJMf3;i}VP0jt9 zIyyR~mYOLK(CE&onw_So>J#U0Ci~ofRWue*2jERAWP(w>mOUpD@JP-V&7s}hlwYF~ zXVP!pK0-7s>|O2(7Ly9=$=#N_GTt=RQtCHVzCt1omJT z0zAJBq)Q}T)8Bt9#5+rc?Ff5mF~4|0-k`BT5Vbh39f8`mEQ?a>>5duZR}2Cv z0E)6OrNw`#rIaR0a{K!E;XGgYn*|MiG{7giZeASeadE9MNv(1Vh%%f_qQNZvy{bNpvI%QK1rTk4>LHQ4*bZmW4oR^RIDmWpPwJ1x^(I0JjD=J8D9cr`|}qs zBL7Ze1O)fR5iiv);}#_BE2K-~v>pq*(%l^h@iy8#KLSO%)9m-BnQ{pgWKoB~8pqhjoY6KO~ScC(=Ch|kLW@ciAcvGHKzjyqe!8XrAl&Yn9<^&~6AvDQ81 z(21RM{{n0yKp}=^)hcT!UOh|C0q+n*;@1pW{`yZ_Tbn%BM=qF*aJ*k;Yob7Et>5W% zp$+-4v6-1WPG)gYPGqCAu5sKq330h-Cr=rfx0ZZ((HQRa zq_)o3oG%ak4cF*H#0))9t^l`cLKcRk)|c-XH^8h;b=|->?>jx0k%hyjcs+VfzQS-n zJeMgG*&DyZ^aUPnwp~$-RjH}~FrzSi{+b`9#Y8JP9c5r;>x zJF)8c5^8?0`xS{?T7Z87hODtbP@V2c&Gf&>3G2K(^!i88($J+}ZtiYVfE)%TwZ)6( z!ftDxkk0IhQ`$wkT$e=0>V7N^PfdsVwb_zHXGtFmzzkJZU47r#d9Qk+TtEX{yo zis3PMM->|Hji=yO6d;tX%=M<8yCI(ih5@Bnit~J5Hq@v$xwxKM^mt~r#Cb*KiOsat z*Gu~9nQoTk7W7*J;bOLt^`!dw3TY5`CsUq{gF^-KK{W3m-<=Z6p){C>sV}dV`qsLF z-P079VFt?W`#xgu!omaN5WuFEVD~}PZ0hP#M5EDt9}PSzicS875)2Y(!iJMYWJpLd z48gSL?d`g+UmL+X0o_;j)cTqq>N0o^hmw!se#pVW0r{$;b@V<7o9E#)@()1OXvE@S z8)Q8ly`hxeWPq>^&U4@M5`>)Z_O-@d&InC?)J!0^O2)alx?-h?)_otm68N?&pI$Fi zM=(T)04%p}KM7kN3zsF2ht>JNdGplPmZjM3mwLH}YnI;V*H}I$e_;_}WBu!7As!AFU5Es%VACMi>w%G%D;>Ds~4D zcsYw{>hqEOK+#G<_mnpq&DoS;uT5ox`Yrit(Q5PdtWcGFjcnPtPTiMGBJ7%_Jw!l9 zz|rAXJpcVApA7}Hl#EPwC$lc%TwzB(smNz&_%bOupeqB}#Uqu|WrQc+6*J|gdQFld znGkTIKA3?BP$J|Hna-p>bQprYw25xsYWc{3Sq{A~Az|abbN8$nVoBnnMwfhn2OhL; zur6&jFJ@t6T)Os+iG^FxVwC_kFcqz9y7KL^*`rhfR$EfUy(&%Kq^%QNah7`^HMM|w z5u{#)-I6*6mwdklZmVhIom9oe-w$vcSv|lopYtj|n&Tmq+gA&FZx!}3g*Q5OO(+|0 z9{m&%>7<~;0MIzByb{34bijZw_U}3aC!l%Q2N@V@WR5FF#+Y$ zB{ImDp`#=9$KopGlW|t%u^A6`PtVn=Rq_yi-gJgjljmnbDeup1%0;WA08?bu`cXCx z4krAjTzyN6IsDI~!>4KAO~?2EqTC#~Uk`|12kV&ZXi{F*!k;$pUOOhamO0aw=mGas zu6lIJYPedq)~_li-Gn&KTr<~?n^(zK>B?wvz@PtgMU_Gv87nHJ^saz_*;rNwRwvaL zOz{2c5ax!iuMe+zPbZB{RW3O631=3cg9jLqt5FRXT3cI@*~6;fGIDDyJL1*v*yEW{ zfBC>K;a!E&U;4Bpxofl)Sw;7cqZ-~k6yITo(9K!39JaMpP{Mj<@45!B3jykUaU$o~ zZIW;}oX+NaJ1yy81KX{rc!s3t(F4gzNl8Eqv%0vf#?K+D3#c-m#|0GXkM2>6#Pag7 zE&pBtdak*?VrgJM2uKlJ!M1my?TJ>o3y|qI>2ozl^w*)*Bc?VQ#N=I61%%Y?D{E*O z_OK$r_}E+JqVQ)0QDyvNuBh*6=yQN)GiBnDk{14i1X)s|T7G#OQ_Tm2 zxqg@dAy?r~FN@^CPe4K$PpJjG`cc3Cp}2F?3hMW>BlJ(=_^cdZ=ij26fT-Bs-agCm zr-p1G{xSaFzkfHBn{!_Q7oobj_e;joOTK{28kW*PVOF4Fb^Pe>W>Nua!07*Fi;^=j zcLx3pWTaYhk0XZ>jOqR5^JgIRkN&UzP_A5if1oIPT|=duR&9SJ&-(?I&K}m$4$>D2 z)#t2RS*b^^B~c`nYqyF7{;9PYlkjJ$aAIv*N>_#{jxV#_3>Y6u;xRAmrHT$oOU-P> zIWBxzWd7^h-v=1??k+CsGN+$Lv3i6}z?YkHE z$05Lag$qqTmshU+)oQ`kMftwIf_1c={I&g}3e_-S=`3L!&QjW3#%>&r=EH~f8x3^* zFKB?tzRV^hxN>t2FX+B(8cXWRkX3}h=}@_gpcq(fdBme?*@tjLeW?bLgL^uaQ;3xq@4bK=vcuB7hICz*{FR=ecSd!;!!Jm;!r&pa*<^(cY?5+0@x!0jsd!xcJ-nEV`2>_(BBBX zGWzb^4LMVwcw_IF1f|Nl4`%}khqdZ2+4vd2Sp-xi42g>{VLRSLMV=ql&DAVb@jFdt zzl=HiXKvb-XNa82$#(q6ui-IaX+YjX;k%xA62%Phto=+i^Y!cI9VriExsCjRrgoE@ zfK(z^qtu!mbRV!iA2{Ph;#jNkv3wSJ#2q1}FsL$$$kFT@|BM}N(JfOG6$O-u;?N0m zh{;vFmTR(Y#m+4*)4fZ~kh=WJJLCf}d`B8Od>KZJ1r-LQ2nZ!fp2N?ZgZyN1`P){? z)zS?)WYPg*a{m=$f^d9;Sc*f(2NpIPPEv^PnF}Kt&$N(~VK>GlRDDnxwU5L|JSb(Mgr_0wKH8>I!q;3BOMqbNG;db z*0Q{JcU*+ea zVns0(z)Caja@@=<2RM+q}0LC{g#6|-ni&&N2=+_`C&dT3Fz&UI40zQt{;g<}$b8ZmtM4ncb zeRumFd>#=T9K5r&)P~>a1%d`sqgVCw+*u`nR}AoV`W@0$o95FIXzsVm7pK=2{N~B7 zwZ0%$GT(ZTRXzMcw0lWO2bajamvBSc%Y+8~OEk~qFUHEyNlG5cZMUGBYg-ofM-U`4sJ-}1ZrGAu(WMu|tLMQ5}1~5;k-X-AN z0?d1Ivg;YVh3iG*-ZC*Unf4YKA(=7kBoIxNpPb2k^8Ptfwp@ZB;$4m-tTfzTp5Io= z4(v)~>v!!Uxr)y{&ue=l$fOyuL4NT;8_Q-0&23s zd8TK2B8gur?Cj4`@cgeuFKv4-E-u;^ah;SnMa|bqWQ($BaT&(0E6QgIv{g7+@GQ5K zGNa{R@^$=n8A8f{U#28r^um}J7?LzgwpUk~na8R+00!qZ`1)3<|7#FkoOy&fC_0MW zmW(5TcLaF>!b28d()1qL8y^1+6s8k6Y{c<{C$hH$a!VB;29Q}WYnR#HYmVk5g58lp zLN@*CqE5pbkiNp7Pc_23TT9uGlG0x~AV49AaA0zn1L{)XeWx35Bt69C#!RVih*U{j>#rkPP-l+ zSvE_WTpT~DoU``0!fLaITim8J;@F$G2r zInE3W3^6UnP}i+Tc?a)oV+1f8MWBC*#v;_3^}1FI1XEL}5Zr&fx>)2iqf)iAG1FIO zH%eC>{;lz&35o-h7Zsx2g-}?U4_8-7MRTwhuJ`4P{?RhUig=WK4Q9v(v6tD}?>Mo) z_py@!0Z5M>B}LiQ3myPg4<=p>2>_5Aw40SxRfvR#G+d(#e6bQZGG;W8kV=47oUFBd z=>v15o_K$1W`+&c8)iaaa2qTZR7fGf6c>Zm0vww>#EO=mLT#}$7Y{U=SA`*5&HY!$ z1$2flO{Uj(b#-xZ%PL_1CJ>3LVA9>*J4;E9!MQ*!BP0&uEaUG!1;L&o#8I1d`aU4EZlBZg`j%Ue<>RoPeC^aZ5nY9Px!sc|H8;jDYLq(5 z1|9af5bzK-Y6pO1-H4aojN;G+g^zi*+DCl_!QtqJhKBy>E|Bj)#sn&~7XyQXbl&`P zzLrokx%ZV=;q+>Kvn_iIvUhw22L_hE-Dxug=gg}1A-Q_}7Yzm?lz{f>J)>?A2bh80 zb>x8htqTdF7>y&RX`g^e8hAs=MFwj_AbLuXuQ7ghonM@GN(V3v8Mk z79Az-hS?`(W!*%~3!*P%f>~e*nV>-em&tbX=46zjze8Wkv}`Ch+v3*x5+W^wV3p=w zHBS@CuBn1BdZ0zzLr>+!1Xf@f5osv_oG3gih^`BSL9A$vLgPS~2iDr#u%*&{e0=ab z>*sH(JptZ9>3fkpw`EtA31_Y*UPU$kh$*NKXnOJ$2WPtK6}xjab;WjmV}j&^Nr0uP zL~^H^{HfU%He90>gB? z*v*@d8NAlsZ>-MeLvpjX@wc@OAyQvzxD0c%x2bce8l84&1kkauC9 zruzQ+7L&?n)ps`ts%7fi|M(cUCFYJdM>j))1d;|B-bmhS@bVq7P4+O^OSi=j9zNNg zqh5&U_+W`d$lZ!T^>09NVETLHGYC{b0@ESQSrt*6^flK=$>zAOuI?#1K_&1o(*xy& z2ItkmjqpO|EP}YM*41`|t0**fUuxkWpPI@BHRYF&rVqeTgDzPYQI-Pev-taWJ4iZj zYA0z>13d}yQDx&ob=WGPlBvQayZY(nE3hmk;T6D=xu{N zA1_D=f$wD}l=xGzP3M*lNfqZpwzn}`*ro*fMN2oz7)1Rq>wPThq^ql|Vc9(7Xt42= zD>i*kUQPjLY~*TLYCVWdT_C-PMkH%`&8;G9*T>iPOnp62?-FFN&Uhf$L8F=BgQ^+e zI57q42S3rBwNY9cbkv~poLC+=<@oF!Du>RFaBrM@-H1%lHyRFYf5<@}!Za8cqOXTf zWu%H0Lfo&Z@y1RZ+=>IlwoV`IGW?FqU~GOqX-2|zzn=D~WYRn+4sICY0;weE6l8m? z`>_N{`@lcd6Kag#;n%lD(pi)rt?r>qdqYKu&t3UbgrOF1Q;6?>$VmC0$_zfdu&3)r zjfgt``a+dZWy=gz+Qgwl8&YSJlm(wtV3a>~iNHtK4hat~wYXfl*{+(WPTPryYV6o`ZcH+G`1{M_8jHN%he?ihTk9 z|H;bxzol~-UMnGCd|DqF5KC#mfkl?u+YyGvY#dj(>Nodwx+q2lJ3IR@zc>f$=mTRO z5GC?jFErXd)zVi8TB$q#&)(}U9s`v{9Gk&2ACETyg%6$ap{ba^|CDUKsASrYap~$K(>Vlmdup zK_lgQ!{%H=SHbpWAE>yxKqSowzO*G?K(S4D>Fu>GVE=n_Ko?~8@9Q(>p!aZgq1;=F zg3##bXh=QANu=D6kiQ|I$ls8Qx1B{A9r&yVvH++vat(s=?Is|CQ2QbhG3&l0=tn@l zG&%}$Kk975#xP)P%Rn)!jCZz@6v7dv*PxPafsiK~>wp1o4FJI_YCg*>0EWMP6alR& z(0e7w2T(XdHtik7w7uBO2_L*0!mMh;taAn=owuED>OtLx(if_aFec2_LOqzsV_z#U zLL3w++(P($d`{pdE2|VD)&mVPZU1o~Jf9srV!k}t0a@x4eW^1^1A^pzByogfA&6ci zHhU)s`e8uMiqxd)d1N5?sG)7cmy#h5f@k{io4fP7JMxg7f&oYBcyBwMVi45=04OXC z{5z6KAd0c5%?CR?W?vr2Cf?-&PnB(%K;gNyX6NSSmJN5sLfYy}f>x1a02T~QhmD zkDAv!B1Z)W8vE||5=WroWNKFQ1VqY1a`Gk`iMBAKP<77U^km+d zhQ^XWiL7L4nKR1u&zm=I7Rh8~NNl@EHtosxU_S*hO+lrCRG-L9LCs;5JqP6rZcj1J z0BIds0Sab#T@db%e2)grDYsD*=)QL|3NJsSNq@VgX^YY8Z>1Az(zjC>j-IcY8ttt< z`Wl3T;^N|8=>!E37t}k5C{4iO9RMmn6e?>b7RZEN@Jy)0CHq-aBsF!@JwM zSQ5}p$QU70kw+6R9LfB&JGIBB+d@>+fX8?U-l%r8Y=Ge*W*jlYM+p zi0%<`hszv?!+_j^Bp$Gj8SswnF2k5i09lZcfS?HRrQlc)NK5@z)XABXAczJjU6BQm z1L?z1%#aDK(+`E=PD2U_;#C&dqyPmf1k;PqwxRyA9xp6+;JtQB=EMaK$Cut=N;qeB zcD1r6;Wy;ECzdXbnFsFv2fgObwf*r0N+pAeO)V|0Ww3^u5K6+9k#rn1j*#q<0@1}`r>OYT{Mw z(6;KieCk?*+?dK1^T_DTP4<56w{HkOoHae1-iZ~p{?E2>UcV(`+w+Pkgl!Vi>;C=P z{4-+R&b{Q{zo5q37lImcYi~xL+3%%8`6%gV7u>Jea+8W=II2+o<=LXMQzI$NXY+X} zE})6(v{HIWug=H z1|xp_YUkd~GBYQE`t86`(xod<}mT7h9qBry+B z;6H{?wxHVva9yfmvl`qy(p2Q-<<;BEytl*+kGPJ#$@V&8>!E)(oC!UVYG99#m_3D} zWN3ALJPL~H_fXMs4`Kiw?)v?smi*ly*vLd+-#Wyrqe%fi?_{nkL(g1uJ*l_Q@4o^` zV~7LPzE>dmZ+XXcO-O!E;s!h^pOFR1lskqtpC6KgHnCmd<_T92zZ0Owo4vJvkzvPr z@DLOPKASo}_=nm^XVc;@9eAe?NeAGz@=N?9R_|IIdo)^~gHOOx0cq21B^`KsQFjK_M9z5Kv@rdM0-&}UR9>bTlW zFt-ZRa{x5%a2w3HTAFlcA7YqEl~ zA({q^f0Z?!`muhu-eK88ta;O`eCx-I=LN~rJw=DU^T^T(yFP*H*3w}ZLE^!K!Sn~+ zI<`OlvJ3$pl%+iceqJ7EJxji4Wj@^Ao}80&OJ(;@ntZy4;{bHO9%0UIVM9^U3*Q8g z`TO_pD>whJi)F^e(x`Wdi5zGvodd3GzxB}ihZy(oKJpK#gyJ@Iy3o_p!;R0QAQF{{ zH2t}8o;u0?Si^e>zrM3ea^8c^ctYwb**2 zJgxdZJBva|9`O;|SqKK@L}q7ar}Q+!d*bIRnnTn7+{M-r^&NuGbK(8JC!e!3{XiL6Ki<)O-OLqsbtlxpo*pM0j{AlI4PL08qfp%nX4U9DjYg4AI{L#sU;l zXirtG33CC=)#l$|B9U8rOdIwct}Y0sZiyz=uy8aI!hJlPGn1&>9~ zEu=R%Y#D)%CB-&Eu{azVIHv~lVr)*14Cs|s++@1C0eQ~>_6!jfL2nJxVF<~DlDc{} zVo>fQ&yFBMcC*E?Mnq16uvo)ezxdt3Q;-aV*T=$Gma3*4dt^c!a(Z4vSDwCGMy zJ;AXB%iyMQP&I0l+ovPw7PJ~pLxTna`9Whk`G+6FG;EPhz{Ch}6F|!N;!;5#kIl+@ zVrG`j#KO)lOVoBrfEj`WKDQ%Pa)wy5Qw-b+LKya1mZ;RoySrCF5tRV|B)>;uR8$7= zJ(F*4B(@{qI1rCnA3i)0+n$m~Dl*-j#pr1Oc(7QkBVf_SKYpxxLMA8(onc6aGBXp? zO%@jPt5>h29zT8}F789``TKJ~^(Igj7DJV8Ks~lYr}h{~Vt3bqciRDOBA3=|%SJ{< zUZgvyec}M)-rlgi3n{+Pe5E2J=-51KFNtZSX9V5?6lW5?da&?){ogJ55O@u6U8uIZ zlJC7ZfA;KE8ylNfFJER=RA^*pXCrk9ket_`(G4Po1oXYy@cHRog7%{x@O|kH_XeTc zHXb&QOR7MGT~6y-(I zq5q}CvP_}dc*QQI+Qu>fO7>s@O4_DxAeMWs;L=b{7HJK`dmT3c1Dta6dA+`5apMWz!V z!Uc@U3{FEp`awWM#;pK@>#Oo8HMg*cgoIpPULK685spOgqhtU=uM43fbacErG&;Mw z$gM*2Sy-$TocW-FEABo1wW6Zp0tPBgpkn|cz`|Tx^%X%gMcvLIluhuxJn)rB!Je0w z$9=N4x~T&+hKL&lzoGQ>>HCO?h@~FmVht*wToB*H%gYNx?qSQX{Bqfc$f&Xp&iOba zbTDbCs-NC>&})+f4cfs)Ufb?<|Nd(V&Qhbwy%;!xzKjK+gd8_Xr89#r!vuH&V#2`h z%vV|&=<7RztaDREax0s@%qIU0XqBpVz zK&(KBvF!4AMAU<|E%9n;p>%a~E7s+;dZMg6-o3t;)Yx8#Yq<{pbQLx7$U;WdH0|{x z_q|y6_jX2x`JPhm6}M>tw8D-7=n=1dyyC-&?ZKlu z8=7c^o;$gI{Zx^J0-Y~LoPou>_I3jJux@=W!%JTemA(sL|Fpk_aI9=>ic(Tig(n{S zSUkmB9)ON$vn8o2D6K(KQYyKBM$QQJO1;?5(=%tzfNs+c)OCsi!YI#)1eaw1N}73E z_=+jP57F3EUICOq@{e?swt-NG-SB<1m+(l%K?Gzk3uiO%l>c z@L|=afEu_X4g3gx2d&KVN0I(Wl=zLF!FuUpCvt-5EJ{#8Ry(0$(_IMvRt56T94uA= zgQ)_&#WJ90xV*f%N}{XgtqX3h@gix<(AG;tT6^*H)tU&=C@i8W_V)bVOW&1LdqPPk z>?I{}gbXhuo@qC0_+CHdOT6|YT;KRfaWn+|E@0&&lahvi-hm>ZYVBu$|J%3Spo&4b zUc`t1KI=}}S-t^HWF@NVd$%3oF2|RfKN-GF67syi{pH2j++35nxK=ol=qak^r`|Yz zo{s7|KhZhhJ8jA!*22{EiL-MF%)N%^FNk&n16mIsJ(3DT;ywTvY6zL9qeFjyaqs2{ z5q@#FlxwvSnrhfC6Rgs3`{Znx&*_P2ePtJ2&bpPEtshB!cTkQF4qec<84(#t_<0AI z(o?i|KlBzZSyAnmcL~AxxPYs*NS^4!XI_eGhe%PgL(cEFaNT=K`)LYHrLx-7?64-* zbq@~#JnaZpSwWo{eSFbw=g^f4CV#YNg27;t=+0+~>}|_O+MQ*+{SN!Rx{HqpI)$2< zo>o#-C59^Q>4$x!fA2mD3}M>la*HdJK9FbL%x4qHH0ZH((-z6eDM40xu^Y+uks5?zq*m-qqjdyp|<}!zO57uvNa9lhs{PE9o?0VPjFh zaLzw~K3Q{P)yY|%d)2!Vw0*ln4~&4`qZmR0&~yNIR;Fg`SNYL5+v_#Gw|nK6^`>1m>Yq8L z8&6=9Qx>0-c0Fgb(4Ck#vB^)Y&suMMCrZ}3zcSabESjTrPbh5uIP+nTLxASjP$sBa zi~oB^v(^tYJSN}kB;Lw4UJgskF^O^(S4MFt`yKKD5ip$mLB~tCHw}9g3Luz}%&K~M zReLQ2=xQkp|NN<6j>k8{pV0r*hD08}!#>EN5^Y{9cdE!entP$X8mcB}2M&c4k?s#_ ziL#Y-Si3L+;ItW}t&mn#q;KD#|E&Rh=I@-8;7|#;g-A%_p@cF9ct4{h!}pOQUtCM?`1k*GtH{+2 zMwU^i-TF=ph@AhrTznRkzyf$Ct=j*{C~0qAyCwlZr>c~cKlhzG2)@8_<;v$?qaW1&!2?Ic z1q1}Z!>It2$b^PC;0|XWFazI+DOFHZWJW`DC**r?TM!5YGYDV^uZ$e>0iY4O6MPpA z${bd1?#`jzVxmqLasp6$`x8h_1V}H9|s*m_}UP#oPybZDUe5S$hIG5zc3 z?A{JWfoWRrT&5FLNN&Pbuu<3dH_N^_{1*$)ccNY~90pgEIZmgb7+!2aMATNQppWrdDNJI4#2?Zdb`FZ{yu2u;m<(VNnb44~ z-#(cDNhAM&?F#@4vVeUs1=e823-Ykjxfit=*id_c_LFjE%Hphf*=0K}Ri4%xG@T>^ z0V!A@K0dX3!OJ0mLo9~N@P*g#| zDJ`Y|b3w%uwQWqZw^x1gelFBAAjd`x{ai<)LTG5mY%j7>1z_d!V$v28j^F z@%moo_o)d&2Mb6or_fgOUGES4Y(L z0Dsa^kIwn<2&CRlaCA|BZOwHune0CK-fx+ps_Uf0vj5aiyr~itpMZ9;06rEZrr+Jf zAn_(5r|v+-=knkWtOu73mZBg#WCPe;U0pr51Ojb40Oc8CTR$kN`K`4){zyJ(Efwt_ z(P$J~KhkIeB3Y5UT|Qg~wMa!#tQO z_Lpc>ZD0=lwPw*2(Fg_vdH?wQJe(q;6HVByT2)~Kb_+7WvJ^pEJ5mM3hvZ~&SkFq+ zHDcPwk53UiLP}b?zwp-Hi}^SM2MH?cA9? z^p1~E0|fVvwRIk>m?+hS3&^P@h)NETaN1O_XAr#LNCzZUzsk>Fx^iv{`5WY^c`vYe4bb8vX64Zqt zNd_&TBOK54I1EsSV(US7Ba?{+P;H&N{4m_PmK&|mF47ufP3zmjz=^@ z{MXG^=R~+=6~Rx3n#Gb9hdRP)OHt6o$A4lMk<|^ljs_wSigm?Q#)%agVb>4Hr)TZ< z7NVW`lJEPqwfYnYr6A7Un|eps2I;ZLn1wF<=H11sny*U;t5&pp0UpBmt4EC`u4eqGZgY zC}>L%BuUOlR#KZ$5Xm4JMI;F*IkV3JoO|!?t^My-eP7j9Ej89C-89|5aL)Ta?-KxF zn6wqzYv}1EzI%5#QF};}hz>ni8l!bA{6pWoQHK0+snE$C22&Fw73n5wV)ng3tU&|u z$#$mgpOVFFO#@j3A0>l@365xlUX!G@73yn$|JtpSo3LhaeZXWMa+Y!jIoVfpe34RS zFaeIDJJK-x8V&wIv9ti%0LSqI#X(NdYs{NBgOgu3eC z{T8Jh68HJ@27F9@Y1f<1E-p45rKcmKIn`0V_dYx0i*`@c>f1$NEK1zmk;9I&a}m~{ z-P~;giUBsn{w=8~Z=0xP(`Gw&yDhiO7bL~Ts^T(1?feamFgTU99MiQt)|UvIDk5ZN zvVFMcg<`$y(wW&4E33JlRs4`h{WaERTU%SQm|&Txld-n8Ry%pJgFE+-?oyO|@Ic__ z<9onGfJ>0V+Rgodi4lU^xc+EC3 z4<8+!gYL7lv4T*Wnwn6vrcG&;1TVmo)%5lAr?iwl@quL-f4;>1L_yK}y>TM+W2!i^ zivGK_WM;+;QDn34qdkGp7nns6mJn>u=BpixLtlUd4wf$iJ1K_Pr#L3hc9jcaxC49sv0cmU~jHt;_W3)_kvA#3k$%hxx# zz=Po1zyDZm?LI<$hwzxVr!j4!4Zd8$X)-yQ!Y?8dKGZE!WuB#Ip<453XE-Jm+cDw= z-|~ootAE(5S6flu5XI!CJzOR|b+*~qsWntoVl4A(<3pw{T*=D>DxsmN*`3{Os1r00 z_1K~kxHzE&zIYJ~66q~A;J{;v;kSptZFU|%F7YfoJ9FFtY#NBc2|kid0fz-msQP7_s!@J7t+Va$BVjV&$F!N>9nB6e3JkSDC_bw3(f^tS({DGbc+=H z`j{qv_0XYlgR;F*CWSp)pUbU7tK#FM8K3|1f?W6VfnlqP&;F1dD~BRfua zRW1HBGB7fthK^?0at~BH8?d#-!jVYAVHeZ{DTm-U8I|v{4Z;AgZ&tk}8Q44l(5a#H zaogcb$4ng_tt(x|+B9)>l&70qV%rf)2W&My;&oiRZUHxsrRuqJz97s3elF4fINoT# z1dP*I5L^KfeGuJ*Ny46|5nw~svVE&=QQq)%k%bLFZJuqI`m$tGPC=S>sZ@~RVlfT`n+b3 z_KS=+=hAAg$yA6|m6r0x=g2>v5Z@#EzM#J1i>4CdvYa|$tNH{P4(K-%}VAAE=qbBY@+9zfQ!-#W#^tAy8Is^WA<-$W2wob zsLmfCL3SLY8_hqll)51;JcdF~Fe)+MBa*H=P=Kks5 zbjhc?&%QTI;pa(~)u<9P{qdI$@0CnrQAG`n8eV*l#Y5vTkJf^Ye;O0$%XfZj>*S;I z^9rl#>E#`JtVk=ajr^iLG8NLYc(;@s%WISw@ws`q*_Jktat`#442nKDR{LKXHxbW!@o)hQ&7T9bIoFAr8Y)<>-E&SO!wPbMe z=2>d^_;fXgRP7aw>uYr)HL4U!1dP4rYWEi!?;CxF6rM@IsVW}Bjg*+Eq$af5`z9?b z-I}Bic@#7YdYtZlP{8eW(G=0 z;YD+wNpmS6%c>g{g{5LAg>H6jI;JJ~$>42QDP2SEwcJq4^|I7Jo#6WP(qD$lIkrt^ zcl&d`-3JdM@^#TC<->MR=E%kHR68+MPn5ZP!%DpcpR=OrTzv80(zoZ0@@Q07QEBB$ zZG4wIEgxqHCC6&~EN?dL{n;!%Ft=lerI#r_wJ%IS`unH-S6ke!R#V$#!ma78SEqfWw zVSje+{%c{g+d7d>%iOGbynjv5N9mp)R@i^TfBw8kJ#K0mhvGR3=$RR;vIvBW@}3l+ zcoduLAwb=x=z0kM9f$z*1SVh&ewt=`rU2YD*ITcc<#j1J-M9Le5A|`*gg^Z8_Z&c| znbWGpJw7a(G({ibe6R8SHf?3{8E_YtEnTXrqH^CNZ|KCFRVdNBV6dxp`0&j?R&gW% zo$tn6=mbViXi;p6gtEv4h!FdT^bh?7p`N0k*p8<}w{xx>?Cm7yBIsv?uSIT-i?)!LAk4 zBrYnMP7=ieG+0FOQ(B#G5inbBLb zgJJXze~5FpuH84h_Wrhl^tSgYdos+&Q<_S74$h2@9W0)%F!)Uyc=m2`$K>)Ko#rzm zX@8yyK31WwepdEY4a=G}L~e%x<}qcdA#YF*h_DUTBu8mqzkbEayB#{wu3)F$GR#hm z0-}fkFc~P(Y`(o;^GZh7SLxEyBQq~3=9fEMhq`Njxy=#8UsUy7Jp9GswG4F`ex(7^ zBiCoL@}4ZVmtDrj#z=b(iIO)8Mly-WthZ3Za217#>rlLb2_zt75bX_C97;KC_)0|Y z!cE0qT7_9_!x!6dvx^~*?H`spbbTiv|Si>dndv3mhlhSulr{I|e%TKQQ8n!0QtI6%^F8u0T8murr zh?=8cV`93On(dVS-0h6qHRoI@cKw>DZ!4(f-)>JO8wX-4Hg;K0+od_Oop0c5Y^B2J zh|7&bK6Uu?TzveyLL22|b?f=#;@ZAi{Ti}o))2$!&zz$sAs&X;K5q@*li|zZ`1;rE z*^5VW8l0)ejl~TTsV74Xlr{@cyEe5Xi!EJFmfPTX?Yhgd zMz$__)8;+V5~_}M|Gdh%nJcJ-1&&RzEfc5V}nswxrb+^)vs^yNkyjEArku6l1c*3Ont zUS6S{`Qs3Zu-5)x&o8_C|Gx)yN+qHbDU#FGR8m3pKrP%)xb_y;ujGyFmTJ8xbyCaQd8LO^TIPundp{X zPy*N28ntW<%$|n~ZP*|34AaA=nV8J$uWpj$J!xypRQN%trZ{Qh=c&`G zkuGfpmyN}lo(rcpc5U8i`0V&`J5zKo#lcbox#sBRd>)P7Udb*2ry_L2vTqAY?nB=Y z>^hzWz>|2o5=TqOeb*F^_ts|_eE6VaGj8KQIW;BbGOiBEyfRH4R07}^@E|z|^KUTR z|Ni>b;$fAkx$5iT9!YOnsv2%?Y%bMzH&!sOxda=QSFa9|ej1$<*zHtZ;YzCptvxq2x_qJ#d)Dk^(L86L@ zx?@Q=1U~nlsz3yzb9;T8Ps#apu|bmb>dM$l+D}jA7Zw%S zj{baL=g?>DIZs~H%@F2h_|bv88X^=?5RJLFyYfFy91|mi1_foAnCI4g>dpBN?%e5$ z-)DVJK&VF&kjQ6|RXbOBtaxo)odu#4AOf%oo}z6Pg@Zw{zx6E~;VX+etuCby00$Fr z=5^~5O)9>62V~O^xqy*fGuWwy#xfl29deZZb-J6sa}hDSGX*Hy}kb3zuVjSvsG{%rTGErL|u|xCo`KT8D?+b09NZ^~e-o zAs1z0mT?d0D6sR0goJe%B%q?H9~x`lL?Fitd(<90a1jLn*v_6qt+?|B_X4k|XoQv| z=G34(6CfxCh+i86R6 zx?Zr5EUQwDL^|I;SOF%!DbQCio9=rQ)sD8;TULPZ1pB^?!#gp2o1Anc+^$7`1m?Z1 z6;;fe=yeL%??79)$cbOfHsn}Ex~06*F4A(cdcoM@b%qua~xT}omR%M7M~nA_QLI^TVoL0G?fMdAyyOkC!GEd)W(yuq!L^p zkl4&bFaNZ~>f-Y$ktV>;e_T&b&ts?fg(Kxnd9nPwyruZxJZfXpXiLQ2<1N>`2;~sh zvo?LYf+c>E3j@@$y4-zQ6T>~478b!|;ka?*(6VI`lAc(X>N2|FrNb8))mtIn{6hn% z$8a4We*nBLW&13%I}e*T1twtC>4KQuab{{2*mR#gEjKGBfIIW8!ms>gRaM4RoXIsH zTG5|orAqE;wHMB3Sp-BWviN0M_NMtqH8gCVnHehBeUyu;`e0g9)YAmOjBM{}wgyn# zZ24u>1ZrQ?p9*k{94BB&SB*$q?U?KIv}<8W2~=kfP%-0HBgQ7mJj&;~Jw!4)aK3m3b!0Xp%1Mb1J;IUoLxOQ+b2TYnh!FL1hk6Skq`yPHc z4)lk&ZyTck9aE3n+TMf0Bnjj=FoV)1&R@R#2m>U7`}8zEj+1uTx}Jk$yQZf2p~J(S zEiyr#s+!HG4EA;YZKrtQ-aY7QhnJrWn0~%GJT*0Sh^bAcrLE1Dub3ULR~S1m%Lr%@ z#Dtk+(myKp=FP)ejZ$?D^pqzDq?>|QCYz~Q-Q+Uqe}f~cBu9$C&6)7WI&P*~Ql z??4QaCT6WWJ=Ift0k zoy~aqb(P+=D#Q1pk_G%PRxYJLd8BjQ4Yoz>JH=*?#WRJ^XHh5F+HG`~g9%El%{>P9 z=2bHg-ZRe3KH-H!?Xky#fn&FXUm0#lwWTq;_hiTB^G(7iIpvlc{7riHanHSy=|8*% z3k(wd{r%_p9xVZBupS4QL;$RQD8##(>2!!5d8vTJ?M9vF84C54cGxpXM$T(9*>*BX zJbn5Jak-$;)?!4rdU~!kF)JkPI2>9hC!Gleg)mRjj?x$@$yyLcM@2`+gFX$)G$Dx{ zm>(b{X%WvF5QlMd6FM}g3db?Is{+jm$aXY1;e_D_^=gPk?ytk_doRk~yLWHg&uxsA zOs}Al$C6rsF+HY*D+oUq^faPwb@3$PQj*|>IVn=7xTs$H`~M~`M*x8V=GQAwsbz$V zK=kwx5r2Uynhhb8*u@rEBIQ$ZmNT~OvHGJ06Z1h>3v@%m<(-^t>2z!k>$<4%`Prp# zRCvTaG&L2Q=N?73$yQEC>I8{71IZbJr2`>XV7LP}Le9#x66tuq6qYy)#MnDwU(bsEK)%wA(<}FqIO5iOvRGCf^G7iqzWO-MsP+5vOqM)sBgx> z*CuZMRh5;*Gd+9YlO*%%)h$12ZrGJt__-eo-v2!B<{YxKH+k~vZV5g8@YH@bK=enE zGBTi^Wx>%^)~NRKiZuK20xY?N*IXe=6cOYQ(#WI)L~cDAwgm$+YygB`30fmBl@K9` z@dU9k2fwtMJ~Kfli3x<207(W3HNnz-gw~rkq7PR;J(>;J5_JU);HNr{^d`c7qXVRu zc(BodX;p;fV;)0rE1Eh~1|L5jTlhjau2Fan1EF;AYE%u?O;=s&Q7S(1E@dk-i$+XR zk}5U{e%?40e50qy>9|2}p}MW2OHNIN%^#<*b)o!>fJ|6Jf|W9Tzqoob>g4MkWCla9 z5QyghT~&y<{#rh9UJ2?lL7Kr;K-r<4t%dgouyz(;}xQbLDvE#hZ5Z^K$>v zCcIC~AYocBwd2UtRvnAeLn8w;dWhfnU!$EJzYN*;9}k^sZi8cOti6Z~k9uPRvOb7k zDELRH7?dsZhJ1;21}@d3(AnPi@bDlxUDR?Ss~QNI(Ir;_Xy&Nqw|6SLjjMU=JP!c@ zF;m6lku*x^CJ61A#9NWY0jEA4t1vkkAl4F}88G#~U$^w~JOzSmU0vy?Pen!XqzFP8 z@J|s0CO*u|{G$|6r$2e3dSb*^M?oawUwe0dtFf4LFW=)JN%Q=aGps2jK8PWPY82)m6;cNZn@Da!yn)JV|bOfNuBq&xl&Fw zqs<=-?z2mAOPm_60;4vuuBKwSsc=VqtCl~+_r=$&X37L(Anu@Q}*xu`Wy zF?+$Bk{x)DH7>4h#;$RDWONC~8kXAnnbd;6@BWk#udV_|&d=lb#kj_@B+XC$2er8K z>FTG04RKPOeMR(VVX-0$wq#3K%yZ5)xl+AChNIi!GLsJQ<)kJVCx8WIZmOwkWw$sq z*=xe6q^;E@)6&GhRb;cvf1)Sj@&AFI{CeK87d<~Ad;l+vuZnNhly#>gTgUlO>kr@o zAb#BWyTev%s@cgh15G2MEv^g1En+QLCOdmLE*@IwwNZSd0L+uFV~eC z=ls|i;8=HT3G>h*2L}*ryBjq{4_o!K1npD%@-$#GANmEQ;Exa#887-x853Yx-4f|e zNfuxW$0k~Ao?~mRd0O>aVM!(Lju#WD-vvaHrNvLwTdvMu?=o?ipU)&MiSGI|H#g}= zBSrJ-@8gFlE1HxTFzNj`DZV~6M`+nuYLvZ(Z!UtGLWb|~HTv#Q4}PlvSS+wiI0?pP zY3P+ZULk+3TD3}QYS5DCVqm(WNG!uZRSAH3xFwzTFsoy*a~JXG8y}3tJ{!Uni}n2W z?GRpp?(66u(WkFQ^@}-3UD(Z@dV5{~1wi$g*RF*TbCduia5PliF<_VrNJ`2>!yd5X zbRh8_pidh4?AqnYzpXU}xH|@#fhXG2YcJG2+eu=2z<~j2?eAl0LB9H7i+}SafOYt~>jLvYcYEvv|+PQmCkujAvPY>IJkyjxK*Qy*y8Z-~S zItWNf&BSC0bWGJO1AVm*-HvxvVHV%(`dWiNo}?0cOXuV0aL5_@>;&GEiasV;r#Vg zwRB~_PnO@~II}L>pGRJDkH~nd#&iWZf|Sy+kdM#6q&z~0aAbyh z*`J{0e_!0wZ+Y=u@>jEHdRmkJOnH*3 zEhKUInXIJUIsWdmu?hITh_fF1VnKEa1?*!}oe`EuK0s}yZfu084x)?iH44)q`x zPz~s5YNr#Yov*8}sj2C%jBOBbj5e11y?DlJ|CP*v0aLitMA{Hh8UKuloA7E4aq9bc z*5LE2{38cWu&!TV)VzjSo#k!zmi6(&(HYNJ%`yx#m^Ck}s0t>zUp>yhg?H=Y)L6c- zEvX7?7oJ}Fr~ifBBh%BAD25|PPSKV=9O)h_uJCv2d)_X|BNq}K(!6hE^T&@G-=8!X zCMT*2X|o!fG*gwm-j1_&$3G^!7G+G=;rx;dnp#V223lo8?v!JUkBP}&`Wp{;g zJ7Bveo+{h7%zj`?v4Yie7{*!HW-PrQq$uOB&~o~+2#p_vvy(=&5_`J6<<0!5VJ9e- z60g(|S~0K+q)}zRk%m=C=vxmuK{;S$728&%S=cw?HxSdh!3^fC%HEMz>U)IgrV3Ah zVMWZT{#ToNTAv+@GMC(?7r82RbG>iDy1E%XgSGXUZTns~ylmT5_0%=2tJ+gj_ri5S zzt~p`=?xZYRIxKv&rXYFm_CSzQZ#+v#y_+80R{*P^fASXttBJz`gs9F6L|NoOILZ@ zGKc*fVrIjedg^?_5Fy)ji*rv$?mz%Gs`xgEaeEB0li>rG1g3EC#pEul=epYY&XM_$ z=Iz=wZ1Te06=|aWm}|nl1~w|n$l{HJlYDg2v#(Zqt`724lGPc}(ZLJDFLm(a9-2>} zY_dw!N;`qdlOX))rHr(EQA@{t`!)j|tuIKKjp*W%F%IUV5=_0nP2k&*BQfAuJCR^O z55_<}-FZyGWyU2H1l<_4Y9D%rW2g_`wM~yO`dmF|aB8>TDP8-!ts~GHz1S{Tp#OF! zwmSuVb=RxNbxzggu+dKz|9yb@JzE*B%HVhoj2RvJ%Qri(xn1qTvCch(jEh4`qCa;O z>Ts%@sBLPHeWcTG>u_j~&OY{>Ee5_uA4Hk_zjrQ@4gSsbxW03KBcW`$`;X}1^gl65 zjAt0!DYIX)8w95GzZ^(MJ5AzRf#x3vbiuq)Yn`ECHtp8h{t0sjYipm@p}5dcmCV*7{AxA}7@B{{yfg$&C+hV3)=L80CA7;_ zRZ|nni}Q+xzX$DECmF1FU!*AYYyhZ^_fKzjV2*wjvS7oyb>VOpBqmN^eMiD%6v{4x;;Sd$<1mbCu7VUthGTbgJCVKR4dwOQQ+SXvEkp@Wsva z_>U$8I;zpIjNDW4nL7dex3|5dcAl48z^nCqu{%+E!Bxx0-(Tyit#pVoarq?a2Qe{) zQcQE_fU>v7`zU1;-A#v&rhXYn2r+Noyjhz}yd|ec3uH{+-~Y2sb>4SCC33M8WzaDX z=y&SjyBnSWllC2@9GrdA6iQpXjm`t_msr@o4U7S=mWRPF>=Yo=*!H<`{yDriLQ5zK zI$25Z9vuR{U<_B7@e%rrP<eqAoqZl>ny_h~iH9%*;$ z2d#Uts%Q4R&om!%cGX(*Akw05WNiJWbs9-x3wd)cSOyCg@ed8z9mp3fqM5MmQk1)S z>6=DisO3VdFvJ5AJH)oeIoD*0yBcp6H{ROp*FmrOqMpKdrY)ag&Y3UJN!lP?#Xv|a zEImD4#qW3mehOScEq&qfcccc2&LoMIf&mFvn{(2^-cjwL8Q?svfF)Z0vu#8E( z;mD{al}zG@D#h0|BjQbWYM#S&H=paxmIC#US-W;EoNxAI*WjF(!nZ1>=*1;0r5Eek zKD*NCuex4#YDCeOEZ8#px|G%Le(R6icl?$aQLgW_n{V)ZXf@qc@M6k1SIh=+2LQoY znXCJPMf~ZWOV@3WfmjH;q1laL9aZTdN%`*Tq;i)L8O&)--|COlTw2wsylQ{k8`DF{ zTKP7&%PZ{7J~N3k@9Q0z$dDeB%*Yu`-Bq>Q;j4#2?NB_J+FWmWxMHmRdb`RK<^6lD zw+|bg?fCgcFsNowysb&|&~MTo;?nDh?*T4?L8xtGVA@1{j7btJwo@Wde&nFONhPpOW?p zZa>|ydW#&zsEtj^%JsP>;cRIz zrqr{i-uwQem~keyV4LRL-2Hh2)tmYqtwr0asM)PaGZnq*>Mpw`hl|Jc8MFuc!)e#r%&cmg|suv4GN?pg7YR!YBdeI9u!Q+0YfYHpL(*==v<-I zb5Wa7MlsWdzYrW%bE~4c;!A>Ht!HA9gf7RZD`HlTApS;(-kj{4SZ`dKA(w96%_21I z{6tsyDEg$X%MR^^^&w`zuh7UeSgJsbCA@l?ooF%8{2!qWf@6&EE;hn%%RsmxL8ssw z5snRhdr>N;fU&nY9FIUaQqDR3bBUfqn-B4~ft6|maRSFaMZ`XpVTYEJlR~5^z>>*m zh}FPZl`OwlR5ymLiP?a$?1=&;P2N9us-~n|svGK761z}&GSl3w`WC10`=@J6YvVHV z#~g26wl1G7PPd(Nf$%|TK6 zc@tf#ZC--<*sx;p5@aadYT5p_UKYN5{6d1yyz4 z5hiaz(aG%2^rRo19Q(MjF`>$wJ_^RBo#Fm{(2Qv6WL>DXZ%(S>oW4va8PQGkmYv+zWEZKq$vN$Gy!ma04C~JMA)C4cE~i~@(+XR0 z%U69#kaPT+a%)k6U{R#m9|p;~mY(3(Eh=cV$ZD|g;`-2Ctg1dZ^XZU$0k5QF&YS$y zv{eH965F4q+~R^&x4^{DFKYTS-LE?Xrpi`Oj~g0_F+J-F*jm!&aqsp+&zp~2>B=*c z6U__TVUzQ%_=BpKzKcbd!BW^uomA^L;(16VDhb2j4iU zJ7K+Me(jI3(ayXOJ2ub`97rdn;Kpuvj}S)+;-x{5*SPp3c-G0=-Gax4ld@AY!t;P= zESBzruQm=Z5^4f~FiQ|wcwoM2+dyNs7*-mm%F$n;3Ql({pn5M4tRmY*u=%hv`-^-RosY9oUG6QCEn2E=E=h|sGtbTHr{n=ybfw2NVckEkNElfZ@kRW z0s}>#pdj|kN_v;DrA5PcAqM_6Sh3wE>YE2|$xI%AIIsrZFWBlupsy#f$f<$?tA%eq zmU1fh@pn+U$0p8am1|qSd~hnu%(eo?xx0kS>qZ}HXPPEfH777K*y9;x<1?DN(k91i($mH_h4T`^wbL&|n%=Hj&%BWvxrb3bi^mPi z&XYR@+m`W=xPXziuW)xM)z|jyqSe&#mPV843vR;v)|3rh=9zi=mPh8ocqq(g0Kx%O zy9u7@KJ5JQ*kg%12xeW|sl;8BxKsclh{di&rfS4#0Os7;pPlRwpG;!9T}B#tvg#8- z!0f=<;pZvL=ZYoWs6La}A~w%Vk1!AG3DntlSI5{sUaqt(T|3JpeqWl*arlGWTtQcz znI7F%d}*^@b;?6S!!vE~RSSxeONV=OhDM?}G|?5=zP!O2V#R0q`miDxVMkg+oR7IV zd^Ksb889C|JA7-r-{X+g^TzQWp=}<5+|p{|jk}JAd<=*^6jJ=qNE>&^Ei9l_SUAb1 z=(5W!YDGmUx1XKLwVUz_TL&9+h6Q)cMS{`oQQCnyB|uEv<^t59spj&T=0)uTMR)!dJXEx8QaZ%&j1v9!%bu*pILJ~% zj4~KANnv1MNmu(ZmN&6WAe|#n|9CM?Jaymp`o}y)sR}Lz|1^4k$MTjpJ*4-IzI zs$sb+g{8|uy=7cbU?1Hr6Byeo<>-4^?}AN)phryfuBU=(DP@t(PjYgfAJm(BBQd(; z!_e(KAkJM-^4-V|@8;jlN zUOW9*h058#BKo;{BrhI;su9Z#ZCzJ6-ZT6ht#TT%gQ?^36|Z?~IF`;am0}JG7J(`b zX82am@2=O~WZ&-goD4Z#C|V@`kKRP1YZQWIAv>@ixKaEuJw#Rq8(;qO- z6R9ZfJ6Hxcy1(5APC4Kg9x6#lBEHIpM^68-g?#GJI79s9_ufl+@$0|#APZ&5bI~5& z{pX_FYhCsA(}gr8N_*1O#6Xda3l1ZaFxhsWy9?VQ8vC8OpK!l(3S0ADBa_wa>~%9G zS8KYNOy-yl*YEsClL)g#soBpmF~aF>q=l9+%H;hH&)hq&|Mgk^tt(n6JNNqk#%F(SkKc*W_A7yk1nk-|87NzHM~q~y7YPm2_emhe}& zpiYGJH5v%VEYYE;tsKq}q-7$!hO7oF(xGjw&m4j?o!JZb1;n4C$$3C=pXWB}__v43 zqF_zfc9tJnwg0E=sXv;)As~7)VueH^gz!@EqDp{Q88K&?6<>}_4B^s^LqbGXV@?+A zrH9n2_klWrl0=0@v;p7>Wad0r zD3IJi(2f%)e8D;r0YFIH=d!;Cn1Ot|kbDlJA%SZ}0x=RoyAnxM^h7(lY0rhyzbsHnniiEfN`lG8zCB{v!+|0M6W0k`s~i z{5u=99M0-C1?={uuck$iUX-}2qhaEv5^r$$3yM1Qp9PqNJOErj9q=b)(w%{O6((6d z5p3v~NaGgdHa$iTw{B9{&i7ylE&@jtD=cwX&TjRTJX@a$^0x^pa&jKe13#H~k+N;C2we=Rj~J!0iT+1X26<*$Rz5fb`!M|3j#Dh`=pa6+biC?u9Fi&*92-E4fC*GuDVUa{g6U0u6 z)MZGC(>ojPNwibB1D}Yo=E4H-dq9LH9N0ucBqAJ}DJ&?}pjmh%j)8we^34_=^^xLG zexP*?zcg5x(feB)tHHACZb8C*TvYP5#kw-*%&Mcn-eV*`s>ICv->_VkG$_-&x7`DT{` z{Kls25G$XUmh94Vh{3X#4s6in#HgSAkkY9|8Y& z@810r*x)Sf3ul91Ge|1~fGBWLdiQRUS=+XUg>hBivBy#3`fhrbFcDyc3rs~@&|o!g z-_iae$C<_v{`BqV=47cVZzKAo5-cC8Eex@bJ|8>vmPuWbPwCdGcC(oUeN=Pd{7~2D zmAl}G4Rc?4Fq+aPUFlG(ZNBW<0#z6x&5-f|J6$!bCRs_b{p$Ks5}`K;`}0_niYScP zuVNGe3vN-Yi11mo&W6z%v8)4^{0I}}?*U1&nsBT8&z+;$-8LwMNi(1%QPX*+XsCBdU%b}9cV_K}z~0rOp2q`d zZPQfbyPU@}<2T1B)wuG1-URbLj*Ru)6pf5v=eJ6rhIg4(q-NShpYO~W;wc%;i8F{# zi_1$Tr;#AgB%Y32ACvYN9gF9OIGul9Irea|4`brg#44OO|0s;Ep-p-aImGjob1d9 z_*XW<&sb{z+_2a0=^XazZvEF&UrKk!_APulUV@7(PKu~zn7%tg+m+Uz{;OT;P*TP* zId);G0ro2k7&Nu~DC_3V@I_C?a}>swhPS`>b_&D%O-P~q`y?jmRC8%J87{Qkt#jNT zd|&3w++m|I@*G%2F~Cg+$fNsi-O5dSj=>Z5;?sG(5G78~cg{u%ulI4TL1?i#YJ=Vu zOJYgPqrd*}>WiZ*m7@OiKaQci{@bPFYg>R@1h+1k zUHd5NYw;Fl518!RF)^WSmE4q=Q#;ofc?`~%P)s&$%C@<2VUh+!pTha zYe{**KUc+YbydelAE?n!W-jvcHIrd*pZzH6YdUl6*G(_*Io9YnROmvLUa)2M`#{1A z5&1z7L*M`z@OU70R#^DS1eZ)4h4r#Y$Rsi#&N=waRn!!9Y8wj$52zFG8}MB(mp=#l z5bcl&c4f!0Ha~3MyhI59u;^{@+$@PAyJNA`C3rKG62T&N&{|@R+OS9Rv{{7y@r!w2GZ`%qar7HKt0T)k-o4O}k#OqNym;+3SlVQmPI4iSf8;&4pz7)QU{ z0;sscPHXNcw!P}H>&~&PiL=hKK+Ea+e8hghd|OpY1v46(9M>t0hx)FnzMQHsP7C%JW1@Xsd1U5H}Ucg){& zy!MNdIU;H~Kk*Jvo*!uMyj?JzP{84GWOp=O1chd@cynoCTM-vkOY4@+2zz+OuV_wg zpc6kzM|ozn4MT38Mh5x2>;$<2*_;%&Ng1K>3s*SUoI-F4d@v~xk(vn%zWk%avFkQM zGwb(IX~5^xV=cRWUGnM>adSO66EJ=gWf~V%CSfM|oy?e~lyvW!yvbJ#?9zdes37z9 zI3UooHq6i9(dzU|a&H;6DWh;6>xNmgCO)LTQ;!&qMN*|X)9X@V?ToaolK@nza4Ogm zQs<6np%1DTKZ{0)+aiZ%6s0?z`$w8hisLK?OT$|Sv!X*ZzQ4RSZu-G6!?;QTD5wwD zRH{Q-KwynJvRfZ;nKzDmU`Nr2n>H`-HDbSgS+L@`-SFwD)-hHxKB?Z6++9BG*LnMw zTa8dwV^R%|vNtY`@tN)2KflO1T21aAudgWK2O^i_+87J*byrVTRM&7By`nkT^@Mp{ zX4R6u{BV$=nKs&8LojWWjHk<%nAThUtm%}WxWau}_hy3#T{XNSDlogzf@p_ngC%a$ zY8y9he91pIZ3}JK>$wfGz#li)1WbK7Hs+kawVgg;7bIbmty{JeL3?UJId*FO_RXD> z13Jd_)!P=dR2#UeW^qVm*cLsYT&(vMGA)byMk&3tc`DmFI$tm61gq|4)t1q>J;Eg7 zGRNL)I3haUy2gSQvAsPg+O#U(tVrZBGbd+qBj%QuUa#sOb7tFh;hAei!gJTj(|K&- zCJ7j%DA2NPx}Pv1XtB9()%dd~Um4mqy2A{)1~bScnCjizys!UmpLLT%JKk7H4FqQ} zQ_@A?n8b#*xdp;IXFw-ied-UU!8X?bI@S@f)XY_$h#7veG0q+MBA!4hX2`g%+pXM#{dR>jwpwshZ$(Ha<7)PAP* ztLJbxnHjaVax4uLcrQXsK!wfS{0V>-A~Jc*GH>6Zo;tm-FWX!Nl5674b+WorjkS(KEmkT)?X**QK?V)-P*wP6btV8wCrX{V6dsh!bWk+@E^1-XMzn`SIg*fJB?E(1hvjwQJW^h8e|&_UYd(T~@fZ1?u-Bv`;cKlNI_- z62!)tYihLB>%5D|>`mc*M?LL?kZo@r5>12|H|KPGwbRaV^npl-iz?tNR8=FOd4v{_ zWgN@xK`(VsblXOiNH$T!BiB2h^^51BGd`LoL*fQYqzx{Yy;V4>Se4c~ zv%NmWM?ELgB7ew^dK~59&?kCSoP2T_JMEnB{9Ju`dclh>Bs zTw?o@F#sv73}5A0m9|cQg@Q}WhQo-o@i(jo_vN9dRR8;J1g#+zsvg{A&g+5J-w1xq ztZ#jf9qYdKA;*&O>DiAH=<$ESJ8dU&`ZgqfP>b?4yGJQZN|@QxbJbbPmm3vfz|9q{ z@8kC#&|0WF(Q!@4zPG`ldIX2a4|Ah~2VYUYxcgp_0N68|5inaMVSh_qszCXSG-ql# zRz%0@kvc1zobEFt^Civ2?^oAS?9f)D*hfqLaF1n^Zd9gcE3u2XQZgHLg)s4L8zSd- zYYlCcg|Z;H!+@Jw4%>Y^8P4AE7SG#Q;3GX7KTHT9ATz~bqkqXe&jpAn$FET+x2@6R z!4D(#2Z9NDWe>V5ANXXch95RTrB91Mz3$OImsGL(tZi3yRWIQMENI!AQ&FxSZP94e zv(0z`33DZRNJu-9Le!um8p@+p!svf!#B&P{(y{o%w*T_Qr-gGOba~s(YCY?A=Yx!l z>TB^zq9e^AF-L29+v>ao9*K8DW}_?Y$Kf)lnm5^BWQsT?;hZ0-YwII|ei}%ictP6J zeFR)x)nc1HWg7a)O)lK>j;%uAs}*sQPt5ytRd z4;ii_V^;*u8a+6J1i9HzEx+z>&gI=hzL9f++E+LKqpbh|%sQ+En%C`N^hWOu8tS*!#znEZfA%8`^WT)+AQ?U%73ps6*Sa@Sf+a~QD$!rqm7@LkU?pZgnP{}{qZyzPMk;~CF;L9KhQ zuzKFD`E};qsE@u$f$)a;P9kQZ=M7=R)7RxXByZiHc`RH-xPr5*{NOuLLFR8`gB6F9 zwF5&U9zA00Tz}x>uO}Ln(}%1q9S$6>Rz80E+~54kTn)FazUst3tv%UR-NCv+{9W>T zg?)A}4S~$Aem;9~UtGDDCG7J*EHBXO8Xx?$^qS0XSQa~?YpA6PGKObZxYVI@=cX(_ znjh-X3H>`m{APBg0^dyP#==C0$YT{}Cktbqr3l=Xkx>@*!#ZOW@Xn+@W$CQpH$}s} zb+3YA(edlI9Au-{uDNv9`Hs`!AoKeE3objkGJ=-x*D>%mufN;8k=NwM)f@ACpX({D z=T8|KF~8rnOiu53q<4q`ucdzeg?iy#54%2p9-DIAcuV|7`n$r9dviPAZwT74?%prS zJhgjzPyH6|o|`7S@30qS7##Ct*tyrgxzDfUd`S9%x4#y|En9`3Q%L-&a*AbBtLEXi zclCD6Qvp|hU$|g}Qumw4M+NUZ@p5Nc-;DY+#=aAN^cxvh3f~`6!Xm7|w(VW=*)}O@ z26u9jDe4Otc0{T*Y-cf?R7!rtop9HH&%3qX;P(Oe((^{;iCf4~xf4f?#4XF-y_itD zv9tFvV~T=zs^m}KUjpIl-gzp@&b}0d;?1^T%iLf8eW3L2w?6tLf(gn8J9l#_3A`Mz?Xnqqr2K=Qox!)(#0`kRp6d8EsOE^E?=W4X6xChkI zDCX$GgIDJrueJ!HbX3b<62~@=>9{|wOf_20grK0G95He8hf?+=rYfe*(=;s3*EcWN zLS7iJ40~5Ni$-xF)^XE%IL~*{-0!#i^TLTbBZ*KM`G5{=+nvv3yHEE0ZvgLUWwxyV zutx!4<#3x=Mjo37Dk#?@30(JbNrCV9c>MU9wGyPxJ*fA`)qjYeG%g@vdp}VNE?S(K zKOz*|cf zRBOyx8YTl@B3gkzi0nF1ppS`%beqdzFAkUT4dgH*WrA;{Peq$&+D>U?>=^OVAelSU z(<5|PV+NCP4jBl6s9ty8#d7n@`FXMWg7cdy!QYcd+7PJ)5VahEvqM4;CA#lNfdv6) z@0?Fv96n%tC=L=G<@=qOKwnU+EeL(qMt@ni_#{ojzBd8A0qefu2J4c=ZB3`Wd1r)IY&MlYIY^3M!0rEgkx`v{3u!ktN!IDpUp_tDu^T92&t-pRfCvqmpXxX zI9&!GI7^41d5i`-0D+iB2z(5;$R9gr+f%1OjsOnEEKRws(1%Pe2(XScdt%UiXdM3H z*T|0&3pE0v15|)B*Ub9ZFG$VCO6eR*LWA+E#{oGI4p%pE@dkxuQAwPD2lUm1UPmTW zWEKdp>WIwLpxOg75TAK5Q-U1HR`hyGgZWEN2lcjZqE9bU_GX#iK-+jqFjP_{4?6w`b1@EJ?zC-4XuR3+kFL z6|m36m%?+51Z7kK5P2bXk4DVS|goEp{a`E!tEDY3k2) z<-e{(>kR(k`seR5&57_>X7cAX7`5TjM0vYK4%OQxkD@t9z zZk=_ZQ+1509GS`iH{+(FdpzElZ9C-UHYrCEY;pN=K}beMe5o!#t!+UgibID{UUq*M zym8)(VNj%oC0%;7Wf5p+COFv;=!*Qxsm6H&9qdX;0bS-nQ5*kSLk>4DT=Or^Ns{o$U|U*O;%7W5^%3wJ?aW$ zTp9rhA#>sb$dinXBpSmbQ+&`v<3GooNn9^Tcj*{LlF;jm$zO3>%7?g)$HLYx8vfU2 zNHcre`@^h0b0sFc-$4FK^bpQIg1(6`pNQ-m@~1!caPCuu!z`LzAT316?Bk>HW1{d? zriTTK;f8lqxAt|(FV{q~<(!%aOG20JSRt2ksdu-9TTez!9F}J?v&|px63D|4@d|eW z2`V6yF0$~Tu|4i5thca-tbH~5P6$L`A}}M?NR82A^tb^ezbY(z!*`gCI}{Li&?6l9#VqIA-={N z`&>0oyKH?%0u*r5lNAM#(s)NG>~<;c-ceMtV@2foA8H4l7+7TK2>S`_kSp&SS>o!( zkrgSCp)}L*KJL5v8T;%Vr6D0ae$WEIUA@(Nx3E{id@;*tjr0dm#Y2bIF4}T=(p6{i zjl~k)K8cf84?dR)mfdmrV@h+dNdVMGn%d*~+}q#qy;}EYQC#+NwJBGfvBhJB`)!_m zPFcQvx^1>oT>ag%c;&9*xJ}PmK3-@{Ir?kKDn1DbZBQuX&;K8_U3omzd)popaU@y~ zElQ;*QYtMJQ<6ruWXYDOsfa>o#c0t}iPL0hv6d{ObW+qPQJu0?vP^PPDID1eaf-ax zZRvUcIG^YF{;E2u{o2-#SEtR|t}yo^#=;tKG&exZlx|%`%Vb zeC|_Q)#HAx_BX5tdi;ueU@XyM2YW)rJ*0b6lS>9AD54R^6r+0 zy3wX^=lqqLd!C|<8D=txEgUgs=cn~Ob>~1bIIi?*m&9kDqfNlp);}1HYjgb$BeldT zEj7CMwV3t0>AQbAMkM(LYqKbK7#qZH=5;UTp2J)_v}UPUWYWedwf1kHb(z2Hd+UYqx$*a~YD2+~&;24LJLVzK4g9OzQ{MlW6_K+3 zfOl_G`llU?hI=1ktCt@y&ONKo-X^Om%EdE;YG|w|S6QWFbKcGi`cJg0|3MbrazE>Pq1blk#gKp zJM>qqiB-#`MHC8DTN_~$JBZ$<|Tv-@>oe+xeUkS#T~^0Jv1c3 zIM$gpybVi`qY!%l`)Xi93A*3#mXB%Q&zhb4<%7YHR{-c<*I7F-8U>vrWzVKR+FI8l zGl<|=udbgS_pu>+U8;+)CirZa)*`b#A^O;n3C<&z_DZ;ZJ(s5S>ZQljr6S2|hb}Y6 z`QXav^Gp^g`;eLW!VPK(p|Hqa(PRo$oR3x;S_rRcpcedLXgVCuZ+Nq~N<0)X^==AV)7CT)F|VSE-4R9k=ZyMtclU48xSnMc!3=xt=3 zPBj65&fTGU5(Iif3PgiPpVrt75yWT3SJtcf*m zag*%zCNl5IF_K&-)l*xp_rJcT+M4F&X!RX#8ck zS%=RrOsnY@ulZM--Iu9IW+X%nw0cfU3VXw!mEYK6?hmpS`22ReB=5a#4lk^wAT2ek z^SAh8`oZ}YJF=Y@wRhV5GC?-K-YfE8OrgKD>|>=N8127yt*;LnnXoi|wbE)x%N3QC z`9+jjer-;fp%HJgrS~ryfp_nHJ{_Dm^u_;?+4tZ3+)NhT7lICl%W<#*tc627y(y*0 zR#GxW?M6VSlGHHHJ!&}=Dqig zVLBTlNwF|Ot@Kryxm*4l&-V|5j4o>|(Xc>QBs*2(=aqyhdgqOw91)%BkZ^78wtee% z9e(zg)LA)gyXunCuAcG9<>_-Qha_N(dBqoQnH1Kk6#vWd$&&p)j{M!Heb&!2zC_9J z6@KB+eQ0R&GPnj`n|j*6d>=7c{m4D0U-mPT$j!4q#{B&C?ropq`_H@D?lC$3EckFj zLBlW!nUQ+#)OjTf?_X4zgQz#-_+loD7LS%sU2ITsXBUdJ2&3tBZ^}!bBoa9&%kyT; z_{gij45!5^OaNcee;J^WX{$T~stRGYuM?h5RsJI*M%M z$>jh$K*^f)=g2BmCX4$AB9k8iXw>&Mi*rFQqgOH2~0~}-%#C48Eur-eoIu` z1yTJlP~L@94E2l|a^Nxy_7)~@(x=QHbqIkKs5yvYND4Ou0Pl_$%TmC2gx0!Fxb0E` z=xFha<+%hjAc<8)dfxrP-vL4eE3l%Xk9^4=6)cY_4K#8SeNnhy{D$Kk!NVKA+E7Z8 zq0)VyW}c%QGN~{?1hD`p%n?3F)B?ndui7h`I-#2}*mAMD4(<8LI~BRPe(=A0r}q>W%z!MniUulUw%XDFcg_V+QSqNMDG?J_s08hIp;CW)8K zs?Oht*+#T1XtV}o2Z;RWRzRyOl$7TV+?T4;_)5vhNW(eK#7KjH0ci!sk(R}?$73w{ zLa!!xq!QNw9sz6~zE2`Bnstbv^Y*_$y^{o9BJpDtN$)_$U??n)yzhZd_%%vzl_-IU zBi+1*zK7X7wCj-ylUX{%k@lWVnBs!(lY($-U}Q8}Sd0?IG_O3v&9?bNcK?Iab+MVl z`@rftt`He6rcr>645vt$HQ$*5Ts-Sj4uKu!TnoJs2vl)y$WEy7@M|+7YdKt%P~yDz z%(Y*SB2WmOFPm3d4=7;!=L0|+Kfb&6tOWu(&}kE%o{=rA^{l5-o96qG`6eDcq=`IK zt01{J%x#@wI&t_go~Q-H2*4b80yXZ-J28+h|D*eQ9=fd9Lb@tl>-6;I0`vq%vGsE= z*r~8132$Tup$Cl9LHAKK76PG3EO)=a4tMV>r}07A8>pwqS&W#x_zODE0pyYA0j6+~ z?2paEc?6I%^;;H`KY94Mi?A>=yMlFu77oO}P1J*jL%iC_CviZ0tT6_OX3+t6!-zPu zmT6oN>RzF8yR)-s8t{5w=zVA$tl{k?;S!=uUOdWuvJt>@jJ`kG8@GL0D*wLP@UZL+ zxzA?z_wB`Bt(Yo}f1szL@+XBj_PZ4-Wjr3&fXx~3V5YLmYNq?uD?g7%l!n(9r?kF? z4j8qijM438%$wHk@7+iGsW_q6wr$&V>olW`$>)sxzfkZ^#Lh$ki%D|?l)wN8%xr)L zzahfJ(>}yaM&4si^GeL$MNGaA#0vO%6xEK%PkB{b9Q4kt6RUV`L>nYdi(1 z8*WI*44%G`KqlzsBj@lGpt~&fL}Hb@@4>7JPt6TlmPQ?4V*c|v^}mn4pNRKA@#O#W zY04Vy^w!5Bg6s0Qt^rl|L>>TWz%P zxpiNCcKVKH>E?>VYZE(0rQFdr&%%T3i{W(NfFs{=d@>RdQ1EV#;9ZNU_|~?Kzs{)o z8>+p8xa8zNdADjG_)faKboVY7zNM)qkR=30?uo#SSI_$Np%~uBy7mS29fsXKd)BX1L!;b`9MGId$Vv63vs(rX8_urw~ zjhmap(PAu^Ao}Tg*$fk9+?i~{4W*TTcL)U=cCyWe5}f++b3V5#nce((qskU;*&AT@ zQbO+#6Pjx2le*dtr?4qFVX5Pev`qLISvgL_?bE}i^!bH2BxyQ4fy2p|gFzS-#a>Va zv1+7fBkCNM48dw9LK93aiSCr)rh>tq@P8?$v3S5nCN18PSFd_j-8gzBjS@PTwS^EA zsP#3E^!yG>Z#shJ!gRshWMPiy{lfAVpZgrSb%JIr(Ql>oQf{M+1B?s|2$5X#Rt6Xq z6*)*b;&xw5IQU*p$X@trl=0tP2Ueoik;;+|jkUzBG}V`8=O<1z-Lf)c!Eaa`Xmc>6VPq0tI^H9_B4$;~1a;fNOTTP1dF z2%MYlEHqVDKNpeZ=U%X@%@N=kAUvXaL()N-%Auw{sY>B#V~W^GVUA27XRQk|#gRHe zR#pi|G^B)loRA==T?Eh^516>IHp1aGFuL?ZT`s6nXplT=h_JWKmQeO0eOS{4#j-Qr zur{OKP&THtUiI!OG-6_od^ts^7zlSjyV&)x*e$+tf}U@rHp%$!8_ZcrW}xMjio&)& z;quEVS2NX(7IzB7j_D+pTJM=LCbNHDOGSHiZMXOmryh5)Uca+3%WoMx)?qIK7f{fs zG_XEGuG?EEfWtZ1WPkUGJk2e?(I(IwZ;9JKUTI%fYqPk;r;fQ}B=RJCI2B(H%5wwb zGj2@5#CZOiYWQ(AKq4{!?tH*igv}z?@x~}V;%(4Gb~?JznIIzoAbJmsW3+F;o1~zz zYo59~I3{P!AYcf^1fuNT+6C140Q!3sV=$6{E@~d?O#0DVr?VTG4PogcrKcvLixM&A zKB_&e1}gZw1#UV%O&1c3qiDdU(w!G|9raKVyn+k@_Ul)1M3DbDFCPA-HsoQ7xJWLW zF1H?IBg9VJ#C6h3r|IV4Z2Wc45`1K)*+7d1;#hj-AQ>*I|ZbUd)dVDxQaD zc0Rx75$0obbD6F2PIs5Dwa2WPtbyg@pPD|N5x(j}h8sejZ|kaSL2lwT-QPL3;mq*a zZ!-!`_&4u0F}G`~)#~4~9m6@xkpf~Wi3*Jo1 z^JVOvYBia$Xs|@!PF9o~2h*o-?dig<)P#aJKBfUIRs!b)b4}@zvN$)MQ{w@CX3ccB zs+<70mpnN*D!@FjsmT=wy~f`64@z$OW<^b5Ob%S#Cj0Zim?8CK`P+B<=X^eO)5`Xp zrpBgcuSZCVs-k`^o#EZ^YIFM4S$Io>V)#42w`iSq%z`_MJn)oxB}3j)?~=t>Z(6}^ zt;}hytO^f8HW{lqa!vNCy;n!HJ9fy=$X`qw-2y z`lHI81@(P9RPJFN?yFa>s;q2^(n2?cv=$&4qLbgK$VP9p|vtUgwc>+^Aj3nZudP_8kv4kEBGkQ)K zq=;!u5gEF|-#8V2{(dk8 zB>Upi4#e6m`-pTs85uze>T2ruf+abT|B*VPaFp>vR)X@{qU56VQ?%77vSq@Ii7blI zH$o0=LNd7_Ga7{4irYI=zyKii`Fp?bZg>q#A(rL~qY^WNJp`zFO{0GFs#snpXGTRf z3XL+F>4|Gt(fNKYjf90xiwt`C;BB5hbEXs_fs{sUa<4|G-0NxUDt9#|i$Omw7g#y3 z19WvlA1(|!Gi~SkwE6WpaZM==OeyNuqA(Z!?x@QyL0PK-aoml~x7L7lL1hQtm?V&N z#)Hmpj%nJ6!t+2*FVFsALDz(y;1Woes3#q_dx70OQ&KyE^{>b#C8%OPLNykg>TwF+ z)FR?ha|bmFeF}M+ppu|8ZSW*)F9CXGyXJeL@zVX3{Y!vLOI9x3RJL`~ay=_5dD> zdAc@8^nmqR^}VnDh7rM={tAA6rlqLzT=Ihl4;pQT$KPofTKf1sm04<#D7LfD)Lm~I z9IGKv-$MO7YKA*L78TxfaNw0CnoNgV=NdfsCGz_#c~>O*wR`}h^q5o5hze@Soz~>UXkKBh8Q{!a-#lIwsx9_> zM_EV1FB?9doK8v0Y&KlPNi2fImi`W2lW(2*eDiB z=~(M|;wwl{Mx0dpKLb8@9fH5I>7K(FWQ(eXST)!kDsWoE7d_P5o=c2wwi%+-nmTfi z0z!_ZPmU60iqO3V>mmd; zR$3I1}m z$kdd-SmYxFy}~PcXC$+`lWdZ8qfMa#^t%|IAn2$|*%$GW7a#Ou65)viH&&a(Zz;bt zeB?PcNsjdAh%v2vjA3Q3%uV?h97^PM{8o0t6+LRX#~R$VQgByEo7dN1m0g0zRtM~S z8$9UnY|`>k^?HdJGARDcQ(iwkRzMCxKtncxlY-h07TF7IiY};cBjYr734~s;XqCvX zI%JMi*V4x364seaFW_Lf89fNK{eBg%+Gz?Lbed=!D6-99VOU9SFL!BGX`mdbK0w7N zN_ny{DCOG&)AVOSzBZ^f)=5pFuUpvK?c8~OR+zTqQT*atX891cl{I?&rnj3uw&+Az z%il8&N@VJ9$pV;z)X)VwItr0Af&foO5~&QKO9o^^5l3LBwj#wvf<(I>pHu`)upSRS=_XD~bzRl#~jd?M-t z;3<+MUAMlCs<}`&&K#DO5R?aQ0sdr9&0a7Yp!BCv2D-!&aK41eLIF5c6Od>&A_G6K zD6mU4mE8)?xgeNrKD{V-`hsko*s)Jes#JCF?)~GG#ke0sNH+IU-RZ|G?{{i*%QYE6 zsH{*vUD5f`9zwl&a;~8|YKal*TA~Y)034(X5?h|IENd=J40(U3aXx{9a083*>$v>E z&NH&J)2r{JjQ=a*wji<*D}=h}mZ^5hWKB=5KOoRdJ6JQ89v?KnH!6%FHXLwJ8a_ox zE)jAfjT6a>9;Bn#N;#N^W7(-;LTF+dX9LETtb>kM2sRH9kcg?oi$_>)#KM;VkCD^N zhMPqzooc>rETi<55z76M8 zpuOYg&uVY?zS&@7yI7_%ep&XNtX8LL_M*|rtNZ?Jc%@cOvJ^>Ef33exdE z2Kzw&*g5%$NSPYhHzf2k9+!vtbq~LfOT1Tl5kHlgbGFJerGI4cVAG71zHI}hF}p0S ze%^YtaJXYU`BrnuNymj^a!JWYqjG$ne$ipFC{1AS&up#Q-;&L62~W!&VbHHzRgyjG z-cVjDT;JB(yHy-2onX~M%?@QZ@ie#lkE2#I_SkW>e2q#&;rOxq`KykSzKCozn(6Hr zLgO|Wf3!^3O9qNuo1qXDz&fD*qU5PI<_vVKl#{Y-x^FzR>>6g@^t0{%64bcMrMZ1K zWVvUI8pGDJ}_}&-#5Xw#42}3AmJ?c+rc&bX0iLKE>|y)lQY^y>~yA_6-}71it+7aqr2N z5k5;5#+>0Y92E}4WLI?yT$QTAhOq6}$toYjcE#M4XLVT>AMUf45>cRU$8bFQN+##T d|4W_G=Rbdvm5P(?$?x<*Y(3+(scW_#{U3BULCF9B literal 52892 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 diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-Each-panel-is-collapsed-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-Each-panel-is-collapsed-1-chromium-linux.png index b7403823391111fa8f24f1f7446b8af8e55e0c4b..9d70f73bf5d2bf678e44a71f318dccf7c21271b5 100644 GIT binary patch literal 34759 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 diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-RNA-Builder-panel-is-collapsed-1-chromium-linux.png b/ketcher-autotests/tests/Macromolecule-editor/RNAEditor/rna-layout.spec.ts-snapshots/RNA-layout-RNA-Builder-panel-is-collapsed-1-chromium-linux.png index ddb5ba8714ef4f3df6942589496bc67035ebb9eb..9f10bc053ec332d6ea2cc644e2243758763e097f 100644 GIT binary patch literal 38690 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 IYINm)08a>a2><{9 literal 37685 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ɿ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