From b43664905319a33fd9c1ead3ad71e0ee2f1aa5a9 Mon Sep 17 00:00:00 2001 From: Arved Solth Date: Mon, 7 Apr 2025 15:34:00 +0200 Subject: [PATCH 1/2] Add japanese translation file --- .../resources/messages/messages_ja.properties | 1436 +++++++++++++++++ 1 file changed, 1436 insertions(+) create mode 100644 Kitodo/src/main/resources/messages/messages_ja.properties diff --git a/Kitodo/src/main/resources/messages/messages_ja.properties b/Kitodo/src/main/resources/messages/messages_ja.properties new file mode 100644 index 00000000000..d052008c2d5 --- /dev/null +++ b/Kitodo/src/main/resources/messages/messages_ja.properties @@ -0,0 +1,1436 @@ +# +# (c) Kitodo. Key to digital objects e. V. +# +# This file is part of the Kitodo project. +# +# It is licensed under GNU General Public License version 3 or later. +# +# For the full copyright and license information, please read the +# GPL3-License.txt file that was distributed with this source code. +# +AND=Contains +audioWaveformToolsCenteredCursor=Centered cursor +audioWaveformToolsZoom=Zoom +authorities=Authorities +authority=?? +DMSExportByThread=The process is being exported into the DMS by the task manager\: +DMSExportThreadCreated=The DMS export for the process has been prepared in the task manager\: +emptyTask=Example of a long-running task +mapping=ElasticSearch mapping +NOT=does not contain +NoCataloguePluginForCatalogue=None of the OPAC plugins available is capable of reading this catalogue. +active=Active +ACTIVE=Active +activeUsers=Current users +addElement=Add element +addLogicalDivision=Add logical structure element +addPhysicalDivision=Add physical structure element +addMediaPartial=Add media partial +addMessage=Add message +addMessageForAll=Add message for all processes +addNewMetadataGroup=Add new metadata group +addToBatch=Added process to batch {0}. +addToProcessLog=add to process log +addToSelectedBatch=add selected processes to selected batch +adjustSettingText=Your administrator can adjust the corresponding settings under System → Legal! +administration=Administration +# administrativ is supposedly use for translation of TaskEditType +administrativ=administrative +allPages=All pages +allMyTasks=All my tasks +allProcesses=All processes +allProjects=All projects +allTasks=All tasks +alreadyLoggedIn=You are already logged in. How do you want to proceed? +amount=Amount +applicationTitle=Kitodo.Production +apply=Apply +applyAndEdit=Apply & edit +applyToAllProcesses=Apply to all processes of the batch +applyToThisProcess=Apply to this process +arabic=Arabic +archive=Archive +archived=Archived +ARCHIVED=Archived +assigned=Assigned +assignedTo=In edition by +assignMedia=and assign selected media +assignOcrdWorkflow=Assign OCR-D workflow +assignToNextElement=Assign to next element +ats=ATS +actions=Actions +audio=Audio +automatic=automatic +automaticDmsImport=Automatic DMS export +automaticLogoutWarningDescription=Pending logout due to inactivity... +automaticLogoutWarningTitle=No activity registered +automaticTask=Automatic task +automaticTasks=Automatic tasks +author=Author +available=Available +back=Back +backToTask=Back to task +basicData=Basic data +batch=Batch +batchProperties=Batch properties +batchStep=Batch task +batches=Batches +batchesForMigration=Please select batches for migration +edit=Edit +editMediaPartial=Edit media partial +releaseTask=Release edition of this task +reallyReleaseTask=Do you really want to release the edition of this task and set the status to "open" again? +selectPlease=Please select +blocked=The metadata cannot be modified at this time. Another user is working with the data\: +calendar=Calendar +calendarNotConfigured=The creation of subordinate processes is not configured for the docType of this process. +calendar.applyChanges=Apply changes +calendar.applyChanges.placeholder=The link to apply changes will become available when an input box is changed and the page can be updated. +calendar.block=Block +calendar.block.add=Further episode +calendar.block.add.query=Your changes to the current episode will be applied and afterwards a copy of the current episode will be created. Would you like to continue? +calendar.block.addFirst=Create episode +calendar.block.alter.query=When altering the episode without applying your changes beforehand your entry will get lost. You can click \u201Capply changes\u201D to change the record first. Do you want to continue and loose your last change? +calendar.block.caption=Episodes of the course of appearance +calendar.block.firstAppearance=from +calendar.block.firstAppearance.early=The episode begins unusually early in history. +calendar.block.firstAppearance.fiction=The beginning of the block is in the future. +calendar.block.firstAppearance.invalid=Please enter a possible date (day, month as number, year) for the beginning to continue. +calendar.block.firstAppearance.rejected=The beginning overlaps with another episode. +calendar.block.lastAppearance=up to +calendar.block.lastAppearance.early=The episode ends unusually early in history. +calendar.block.lastAppearance.fiction=The end of the block is in the future. +calendar.block.lastAppearance.invalid=Please enter a possible date (day, month as number, year) for the end to continue. +calendar.block.lastAppearance.rejected=The end overlaps with another episode. +calendar.block.long=The episode comprises more than 100 years. +calendar.block.negative=The episode ends before its beginning. +calendar.block.remove=Delete episode +calendar.block.remove.query=Do you want to delete the episode? +calendar.block.select=Episode\: +calendar.change=Change +calendar.day.1=Mon +calendar.day.2=Tue +calendar.day.3=Wed +calendar.day.4=Thu +calendar.day.5=Fri +calendar.day.6=Sat +calendar.day.7=Sun +calendar.header=Enter course of appearance +calendar.isEmpty=Course of appearance contains no issue. +calendar.issue=Issue +calendar.issue.add=Add issue +calendar.issue.delete=Delete issue +calendar.issue.delete.query=Do you want to delete the issue? +calendar.jumpToDay=Jump to day +calendar.metadata.global.add=Add metadata to all issues +calendar.metadata.issue.add=Add metadata to this and all following issues +calendar.metadata.issue.addToThisIssue=Add metadata to this issue +calendar.metadata.global.add.tooltip=Add metadata to all appeared issues +calendar.metadata.issue.add.tooltip=Add metadata to all appeared issues from this one onwards +calendar.metadata.currentValue=Current value +calendar.metadata.firstAppearance=from +calendar.metadata.lastAppearance=up to +calendar.metadata.setLastIssue=Set as last appearance +calendar.metadata.startValue=Start value +calendar.metadata.stepSize=Step size +calendar.metadata.stepSize.static=static +calendar.metadata.stepSize.issues=by issue +calendar.metadata.stepSize.days=by day +calendar.metadata.stepSize.weeks=by week +calendar.metadata.stepSize.months=by month +calendar.metadata.stepSize.quarters=by quarter +calendar.metadata.stepSize.years=by year +calendar.sheet.column.1=Jan +calendar.sheet.column.2=Feb +calendar.sheet.column.3=Mar +calendar.sheet.column.4=Apr +calendar.sheet.column.5=May +calendar.sheet.column.6=Jun +calendar.sheet.column.7=Jul +calendar.sheet.column.8=Aug +calendar.sheet.column.9=Sep +calendar.sheet.column.10=Oct +calendar.sheet.column.11=Nov +calendar.sheet.column.12=Dec +calendar.sheet.issue.notSelected=didn\u2019t appear +calendar.sheet.issue.selected=appeared +calendar.upload=Import +calendar.upload.info=Uploading a file will adopt the course of appearance from the file and override your current changes. +calendar.upload.submit=Submit file +calendar.year.begin=First day of the year +calendar.year.name=Name of the year +calendar.year.next=Next year +calendar.year.previous=Previous year +calendar.year.settings=Change year +cancel=Cancel +cannotDeleteProject=The project cannot be deleted when processes exist in this project. +cannotDeleteTemplate=This template cannot be deleted because it has already been used to create processes. +cannotSetUserPasswordForReadOnlyLDAPServer=User password cannot be set for ready only LDAP server +changeDocstructType=Change docstruct type +choice=Actions +choose=Choose +chooseFile=Choose file +citation.accessTimestamp=Accessed\: +citation.containedIn=In\: +citation.quotes.close=\u201D +citation.quotes.open=\u201C +citation.pages=Pages +citation.versionDate=Version of\: +clear=delete entry +clearData=Clear data +client=Client +clientList=Client list +clientAssignable=Client authorities +clients=Clients +clientAddTo=Add to clients +clientDeleteFrom=Delete from client +clientNew=Create new client +clientSaving=Saving client... +clientSelect=Select a client +clientSelectNone=No client selected +clientSelectNote=To complete your login, you must select a client. You can change clients at any time using the user icon. +childElement=Child element +close=close +colorScheme=Color scheme +columnConfigurationSaved=Column configuration saved +columnCount=Column counting +comment=Add comment +comments=Comments +commentDelete=Delete comment +commentEdit=Edit comment +commentWrite=Write comment +configureColumns=Configure columns +configurationChanged=Configuration changed +configurationFile=Configuration file +configurationOPAC=OPAC configuration +configurationSaving=Saving configuration... +confirm=This operation may take some time. Are you sure you want to continue? +confirmArchive=Confirm archive +confirmArchiveWorkflow=Archive workflow? +confirmClose=Confirm close +confirmDelete=Confirm delete +confirmDeleteClient=Delete client "{0}"? +confirmDeleteDocket=Delete docket "{0}"? +confirmDeleteImportConfiguration=Delete import configuration "{0}"? +confirmDeleteLdapgroup=Delete LDAP group "{0}"? +confirmDeleteMappingFile=Delete mapping file "{0}"? +confirmDeleteProcess=Delete process "{0}"? +confirmDeleteProject=Delete project "{0}"? +confirmDeleteRuleset=Delete ruleset "{0}"? +confirmDeleteTemplate=Delete template "{0}"? +confirmDeleteUser=Delete user "{0}"? +confirmDeleteUserWithTasks=If you delete this user "{0}", all tasks assigned to him will be reset to 'Open'. Do you want to continue?" +confirmDeleteRole=Delete role "{0}"? +confirmDeleteWorkflow=Delete workflow "{0}"? +confirmUpdateWorkflow=Changes to the workflow will delete existing metadata editor layout settings. Continue? +confirmNewPassword=Confirm new password +confirmRelease=Confirm release +confirmUnassignTasks=All tasks in progress that are assigned to this user will be set again to 'Open'. +copy=copy +copyRolesToClient=Copy roles to client +copyTemplates=Copy Project including Templates +correction=Correction +correctionFor=Correction for step +correctionMessage=Correction message +correctionMessageSend=Send correction message +correctionMessageSendAllTasks=send correction message to all tasks +correctionMessageSendCurrentTask=send correction message to current task +correctionMessageSendPreviousTask=Send correction message to previous task +correctionMessageWrite=Write correction message +correctionNecessary=Correction required +correctionPerformed=Correction performed +correctionReportProblem=Correction issue message to previous task could not be reported! +correctionSolutionFor=Correction done for step +correctionSolveProblem=Solution of correction could not be reported! +correctionTasks=Correction tasks +correctionWorkflow=Correction workflow +corruptData=Data corrupted +corruptDataDescription=The action could not be executed because an error occurred. The editor will be reloaded and the last save will be restored. Changes made since then are discarded. If this problem occurs repeatedly when trying to execute this action please try to execute this action in the structure tree and inform your administrator. +couldNotCreateImageFolder=Image folder could not be created +count=Count +counting=Counting +createExcel=generate excel +createMapping=Create ElasticSearch mapping +createNewspaperProcessesTask=Creation of processes for a newspaper +createNewBatchFromSelectedProcesses=create new batch of the selected processes +createNewDocket=Create new docket +createNewLdapGroup=Create new LDAP group +createNewProcess=Create new process +createNewProcessFromTemplate=Create process from template +createNewRuleset=Create new rule set +createNewRole=Create new role +createNewWorkflow=Create new workflow +createPdf=create pdf +createProcessAsChild=Create a new process as subordinate process +createProcessAsChildNotConfigured=The creation of subordinate processes is not configured +createProcessesWithCalendar=Create processes with calendar +createXML=Export logfile as XML file to home directory +createdInUserHome=Folder created in user directory +createdInUserHomeAll=Folders created in user directory +csvFileUpload=CSV file upload +csvSeparator=CSV separator +currentFolder=Current folder +currentPageReportTemplate={currentPage} of {totalPages} +currentRepresentative=Current representative\: +currentTask=Current task +dataTransfer=Data transfer +dataCopier.runtimeException=Copying the data failed\: +dataEditor.addElement.assignPagesToSingleDocStruc=Pages can only be assigned to a single element! +dataEditor.addElement.createMultipleDocStrucWithoutPages=Multiple elements can only be created at once when no pages are selected for assignment! +dataEditor.addElement.newStructureWillBeAddedTo=New structure will be added to +dataEditor.addMetadata.maximumNumberOfMetadata=The selected structure contains the maximum number of allowed metadata elements of this type! +dataEditor.addMetadata.newMetadata=Add new metadata +dataEditor.addMetadata.noMetadataAddable=No additional metadata can be added to this structure! +dataEditor.addMetadata.noMetadataAddableToGroup=No further metadata can be added to this group +dataEditor.addMetadata.toGroup=Add metadata to group +dataEditor.childNotContainedError=Parents of structure {0} do not contain structure! +dataEditor.comment.correctionWorkflowAlreadyActive=This process is already in a correction workflow state +dataEditor.comment.firstTaskInWorkflow=Correction comments cannot be created for the first task in a workflow. +dataEditor.comment.markCorrectionCommentAsSolved=Mark correction comment as 'solved' +dataEditor.comment.markCorrectionCommentAsSolvedToCloseTask=Please mark correction comment as 'solved' to close task +dataEditor.comment.parallelTaskInWorkText=Correction comments are disabled while parallel task {0} is in work by user {1}. +dataEditor.comment.role.archivist=archivist +dataEditor.comment.role.creator=creator +dataEditor.comment.role.custodian=custodian +dataEditor.comment.role.disseminator=disseminator +dataEditor.comment.role.editor=editor +dataEditor.comment.role.ipowner=intellectual property owner +dataEditor.comment.role.preservation=conservator +dataEditor.comment.type.individual=individual +dataEditor.comment.type.organization=organizational +dataEditor.copy={0} elements copied to clipboard +dataEditor.dragNDropError=Unable to move element of type \u201E{0}\u201C to element of type \u201E{1}\u201C! +dataEditor.dragNDropLinkError=Structure elements and media cannot be moved between different processes! +dataEditor.fileReferencesChanged=File references in the workpiece have been updated due to added or removed image files. +dataEditor.fileReferencesChangedTitle=File references changed +dataEditor.fileReferencesChangedUnsavedWarning=Updated file references are not saved automatically to the meta.xml file of this process. Please click the 'Save' button to persist updated file references manually! +dataEditor.fileReferencesUnchanged=No changes in referenced files detected +dataEditor.forbiddenChildElement=Structure of type {0} is not allowed as child of {1}! +dataEditor.galleryStructuredView=Structured view +dataEditor.galleryDetailView=Detail view +dataEditor.invalidMetadataValue=Cannot store "{0}": The value is invalid. Value: {1} +dataEditor.invalidStructureField=Cannot save "{0}": There is no such field ({1}). +dataEditor.mediaNotFound=No media found, but at least one file reference is present. The automatic removal of missing media from the workpiece was skipped. +dataEditor.multipleMetadataTasksText=There are multiple metadata editing tasks assigned to you for the current process. Please select the task you want to work on! +dataEditor.noParentsError=No parents of structure {0} found! +dataEditor.noStructureTreeTitleFoundWarning=There are no metadata keys that are selected to be used as title attributes in the structure tree (use="structureTreeTitle"). +dataEditor.numberOfScans=Number of scans +dataEditor.position.afterCurrentElement=After current element +dataEditor.position.asFirstChildOfCurrentElement=As first child of current element +dataEditor.position.asLastChildOfCurrentElement=As last child of current element +dataEditor.position.asParentOfCurrentElement=As parent of current element +dataEditor.position.beforeCurrentElement=Before current element +dataEditor.position.currentPosition=Current position +dataEditor.removeElement.noConsecutivePagesSelected=Select consecutive pages to create structure elements! +dataEditor.selectMetadataTask=Select task +dataEditor.layoutDeletedSuccessfullyTitle=Custom layout deleted +dataEditor.layoutDeletedSuccessfullyText=Default column configuration deleted successfully +dataEditor.layoutMenuActiveText=active +dataEditor.layoutMenuButtonTitle=Open menu to save default layout (column configuration) +dataEditor.layoutMenuDeleteTitle=Delete default layout +dataEditor.layoutMenuSaveDefaultText=Save default layout +dataEditor.layoutMenuSaveForTaskText=Save task-specific layout +dataEditor.layoutSavedSuccessfullyTitle=Current layout successfully saved +dataEditor.layoutSavedSuccessfullyDefaultText=Your current editor column configuration has been successfully saved as default configuration. The next time you open the editor, the width of all three columns (structure data, metadata, gallery) will be loaded according to your current configuration. +dataEditor.layoutSavedSuccessfullyForTaskText=Your current editor column configuration has been successfully saved as default configuration for the task type "{0}". The next time you open the editor for the same task type, the width of all three columns (structure data, metadata, gallery) will be loaded according to your current configuration. +dataEditor.navigateToPreviousElementMany=jump multiple elements back +dataEditor.navigateToPreviousElementOne=show previous element +dataEditor.navigateToNextElementMany=jump multiple elements forward +dataEditor.navigateToNextElementOne=show next element +dataEditor.renamingMediaComplete=Finished renaming media +dataEditor.renamingMediaError=An error occurred while renaming media files +dataEditor.renamingMediaText={0} media files in {1} folders have been renamed. Please click the 'Save' button to persist changes to the filenames. Otherwise the renaming will be reverted upon closing the editor. +dataEditor.structure.customizeDisplay=Customize display +dataEditor.structureTree.collapseAll=Collapse all +dataEditor.structureTree.expandAll=Expand all +dataEditor.unableToMoveError=Unable to move structure element! +dataEditor.undefinedStructure=The division isn't defined in the ruleset +dataEditor.undefinedKey=The key isn't defined in the ruleset +dataEditor.unlinkedMediaTree=Unlinked media +dataEditor.unstructuredMedia=Unstructured media +dataEditor.updateMetadata.help=You can update the existing metadata for this process with the current data from the source system. A new query has been made to the source system. You can see the existing data on the left and the current data from the source system on the right. Data records that are identical in both systems are not displayed. You can use the arrows to decide for each type of metadata whether you want to keep the existing data, replace it with the current data from the source system or merge it. +dataEditor.updateMetadata.metadata=Metadata +dataEditor.updateMetadata.metadataUnchanged=Metadata unchanged +dataEditor.updateMetadata.modeExtend=Add metadata imported from OPAC to existing Kitodo.Production metadata +dataEditor.updateMetadata.modeKeep=Keep Kitodo.Production metadata, ignore metadata imported from OPAC +dataEditor.updateMetadata.modeReplace=Replace Kitodo.Production metadata with metadata imported from OPAC +dataEditor.updateMetadata.updateMode=Mode of change +dataEditor.validation.state.error=Validation error +dataEditor.validation.state.warning=Validation warning +dataEditor.validation.state.success=Validation successful +dataEditor.withoutType=(Division without type) +dashboard=Dashboard +dataPrivacy=Data privacy +# used in "LegalTexts.java" +dataPrivacyDefaultText=Data privacy information have not been configured for this system. +databaseStatistic=Database statistics +day=day +days=days +deactivatedTemplates=Deactivated templates +defaultClient=Default client +defaults=Defaults +delete=Delete +deleteAfterMove=Delete after export +deleteIndex=Delete ElasticSearch index +deleteLinkHomeDirectory=Remove link from home directory +deleteMedia=Delete media +deleteMediaPartial=Delete media partial +deleteFromProject=Delete user from project +deleteProcessChildren=This process has {0} submissions, delete them too? +desktop=Desktop +details=Details +detailsOfBatch=batch details +determineWhichImagesNeedToBeGenerated=Checking {0} +closeTask=Finish this task +dialogAddDocStrucType.searchButton=Search +dialogAddDocStrucType.searchButtonClick.empty=You have to search for something. +dialogAddDocStrucType.searchButtonClick.error=The search ran on a mistake: +dialogAddDocStrucType.searchButtonClick.hint=If you already know the process number, you do not need to search, but you can also proceed directly to OK. +dialogAddDocStrucType.searchButtonClick.noHits=The search went, but nothing was found. You can only link processes if both have the same rule set and the top structure has a type allowed here as a child. +dialogAddDocStrucType.searchButtonClick.timeout=There could have been more hits but the time to analyze has expired. Narrow down your search query. +digitalCollections=Digital collections +directory=Folder +directoryRemoved=Removed directory from home directory +directoryRemovedAll=Removed all folder from home directory +directoryRemovedSelected=Removed selected folders from home directory +displayRules=Metadata display rules +dmsImportCreateProcessFolder=Create process folder +dmsImportPath=DMS export path +dmsImportPathXmlFile=DMS export path for XML file +docket=Docket +dockets=Dockets +docketPrint=Print docket +# docketSaving is used in docketEdit.xhtml - line 45 +docketSaving=Saving docket... +docstructs=Docstructs +documentType=Document type +down=down +download=Download images +doYouWantToProceed=Do you want to proceed? +draft=Draft +DRAFT=Draft +duplicate=duplicate +duration=Duration +durationOfTasks=Duration of tasks +editFolderDialog.caption.add=Add subfolder +editFolderDialog.caption.edit=Edit subfolder +editFolderDialog.copyFolder=Copy on DMS export +editFolderDialog.createFolder=Create empty folder on process creation +editFolderDialog.derivative=Scale +editFolderDialog.dpi=Resolution +editFolderDialog.fileGroup=METS filegroup +editFolderDialog.generator.derivative=Create derivative +editFolderDialog.generator.dpi=Change DPI +editFolderDialog.generator.imageScale=Create web image (%) +editFolderDialog.generator.imageSize=Create web image (width px) +editFolderDialog.generator=Generate images +editFolderDialog.imageScale=Scale +editFolderDialog.imageSize=Width +editFolderDialog.linkingMode.ALL=All files +editFolderDialog.linkingMode.EXISTING=Only really existing files +editFolderDialog.linkingMode.NO=No +editFolderDialog.linkingMode.PREVIEW_IMAGE=Only selected preview image +editFolderDialog.linkingMode=Link in METS file +editFolderDialog.mimeType=File type +editFolderDialog.mimeType.disabled=File type cannot be changed if project already contains processes! +editFolderDialog.path=Folder +editFolderDialog.path.disabled=Folder cannot be changed after processes have been created for project! +editFolderDialog.urlStructure=METS path +editFolderDialog.validateFolder=Validate contents +editMetadataGroup=Edit metadata group +editType=Update type +editor=Editor +createProcessFromTemplate=Create process from this process template +elasticSearchNotRunning=The elastic search server is not running +endDate=End date +# used in batchList.xhtml +enterBatchName=Please enter a name for the batch\: +executeKitodoScript=Execute KitodoScript +exemplars=Exemplar records +exit=Exit +existingTemplate=Existing template +exportBatch=Export batch to DMS +exportDMS=Export DMS +exportDmsTask=Export process +exportUnavailableNoImages=Export unavailable, process does not contain any images or subordinate processes +exportFiles=Export files +exportFinished=Export finished. +exportMets=Export metadata as METS file to home directory +exportNewspaperBatchTask=Export complete newspaper into DMS +exportPdf=Export images with metadata as PDF file to home directory +# exportRus is used in commented pages +exportRus=Export Rus +exportSerialBatchTask=Export serial publication into DMS +extendedSearch=Extended Search +field=Field +file=File +fileDownload=Download file +fileManipulation=Exchange of files +fileUpload=Upload files +filegroup=File group +fileGroupAdd=Add sub-folder +fileGroupDelete=Delete file group +fileMassImport=File mass import +filename=File name +files=Files +filenameLengthForRenaming=Filename length for renaming media files +filter=Filter +filterAdjust=Adjust filter +filterApply=Apply filter +filterByProject=Filter by project +filterByTask=Filter by task +filterByTaskStatus=Filter by task status +filters=Filters +finished=Finished +firstPage=First page +fixed=fixed +folderImport=import from folder +folderUse=Folder use +folderUse.audioPreview=Use as preview for audios +folderUse.audioPreview.disabled=Preview for audios disabled +folderUse.audioMediaView=Use for the media view for audios +folderUse.audioMediaView.disabled=Media view for audios disabled +folderUse.audioMediaViewWaveform=Show waveform in media view for audios +folderUse.generatorSource=Use as source to generate contents +folderUse.generatorSource.disabled=Content generation disabled +folderUse.mediaView=Use for the media view +folderUse.mediaView.disabled=Media view disabled +folderUse.preview=Use as preview +folderUse.preview.disabled=Preview disabled +folderUse.videoPreview=Use as preview for videos +folderUse.videoPreview.disabled=Preview for videos disabled +folderUse.videoMediaView=Use for the media view for videos +folderUse.videoMediaView.disabled=Media view for videos disabled +formConfigurationMismatch=Form configuration mismatch\: +from=from +fromFirstSelectedPage=From first selected page +gallery=Gallery +generate=Generate +generateImages=Generating {0} +generateMediaFailed=The generation of newly uploaded media is not successfully completed. +generateMissingImages=Start the generation of all missing images +generateMissingImagesStarted=The task manager is having all missing images generated +generatesNewspaperProcessesThread=Creating newspaper processes +generator=Generate {0} images +generatePNGs=Generate PNGs +getNormDataRecord=load +globalAssignable=global authorities +granularity.apply=apply +granularity.batches.label=In order to design the logistics of the excavation, transport and processing optimally, you can have the generated processes combined into batches automatically. To use this feature, select a level of granularity, which produces easy to handle segments in the workflow\: +granularity.batches.noData=Please select the level for the processes first. +granularity.batches.notAvailable=This feature is available only with finer levels. +granularity.create=Create processes +granularity.days=Days +granularity.download=Export +granularity.header=Pick granularity degree +granularity.info.full={0} Kitodo processes with an average of {1} pages per process will be laid out. +granularity.info.largeNumberOfImagesWarning=With a correspondingly large number of images, problems may occur in the further course. +granularity.info.legend=Your choice\: +granularity.info.noNumberOfPages={0} Kitodo processes will be laid out. +granularity.info.textbox.batches=In order to optimise the logistics of the excavation, transport and processing, the generated processes are automatically combined into batches per {0}. +granularity.info.textbox.caption=Explanation +granularity.info.textbox.days=Each process represents a single calendar day from the course of appearance of the newspaper, containing all issues actually published that day. Processes are laid out only for days where an issues actually has published. With only one issue per day, this selection is identical with the option \u201Cissues\u201D. +granularity.info.textbox.glyph=i +granularity.info.textbox.issues=Processes are laid out for actually published editions only. As long as the calendar day selection can link to exactly one process only, having several editions on the same date means that the other issues are not searchable in this way. +granularity.info.textbox.months=Each process represents a single calendar month of the course of publication of the newspaper, which contains all this month actually published editions of the newspaper. Since the DFG Viewer\u2019s calendar day selection can currently (as of 2014) only link to the processes level, this has the consequence that it will always be jumping to the first image of the month, regardless of the day chosen, therefore\u2212in most cases\u2212on the wrong day. +granularity.info.textbox.mouseOver=This symbol indicates useful tips and recommendations as well as information for efficient and fault-free operation. +granularity.info.textbox.quarters=Each process represents a single quarter of a year of the appearance curve of the newspaper that contains all this quarter actually published editions of the newspaper. The quarters start with the 1st of January, April, July and October, respectively. Since the DFG Viewer\u2019s calendar day selection can currently (as of 2014) only link to the processes level, this has the consequence that it will always be jumping to the first image of the quarter, regardless of the day chosen, therefore\u2212in the very most cases\u2212on the wrong day. +granularity.info.textbox.weeks=Each process represents one week of the course of publication of the newspaper and contains all issues actually published this week. A week starts with Monday. When New Year's Day does not fall onto a Monday, two processes for the two week parts in the respective calendar years are generated. Since the DFG Viewer\u2019s calendar day selection can currently (as of 2014) only link to the processes level, this has the consequence that it will always be jumping to the first image of the week, regardless of the day chosen, therefore\u2212in many cases\u2212on the wrong day. Note also that week boundaries regularly do not correspond with monthly limits. +granularity.info.textbox.years=Each process represents a single calendar year of the appearance curve of the newspaper that contains all this year actually published editions of the newspaper. Since the DFG Viewer\u2019s calendar day selection can currently (as of 2014) only link to the processes level, this has the consequence that it will always be jumping to the first image of the year, regardless of the day chosen, therefore\u2212in the very most cases\u2212on the wrong day. +granularity.issueCount=Number of issues\: +granularity.issues=Issues +granularity.months=Months +granularity.null=none +granularity.numberOfPages=Guessed number of pages per issue\: +granularity.numberOfPages.invalid=I would like to ask you to enter regular numerals only to continue. +granularity.numberOfPages.tooSmall=This function has been locked by the administrator for as long as the average number of pages per process is less than {0}. Please enter a value of at least {1} in the field \u00BBGuessed number of pages per issue\u00AB and click \u00BBapply\u00AB to continue. The input does not affect further on. +granularity.pick=Pick a granularity\: +granularity.quarters=Quarters +granularity.title=Aggregation of processes +granularity.weeks=Weeks +granularity.years=Annuals +guessImages=guess Pages +help=Help +hideClosedProcesses=Hide closed processes +hideCorrectionTasks=Hide correction tasks +hierarchicalParents=Superordinate processes +hierarchicalChildren=Subordinate processes +hierarchicalBoth=Superordinate and subordinate processes +hierarchyMigrationTask=Migrating serial publications +hitlist=Hitlist +hitWithoutTitle=[Hit without title] +homeDirectory=Home directory +id=ID +idImport=ID import +idList = List ids +linkHomeDirectory=Link within home directory +imageNumber=Image number +imageVisualization=Image visualization +imageSelection=Select file +image=Image +imageGenerator.generationMode.ALL=all +imageGenerator.generationMode.MISSING=missing +imageGenerator.generationMode.MISSING_OR_DAMAGED=missing or damaged +imageGenerationNotPossible=The generation of images is not possible due to missing configurations in project. +images=Images +imagesRead=Read images +imagesWrite=Write images +important=Important +import.failedImports=Failed imports +import.successfulImports=Successful imports +importConfig.addSearchField=Add search field +importConfig.addUrlParameter=Add URL parameter +importConfig.assignedAsDefaultConfig=Import configuration "{0}" is configured as default configuration of project "{1}"! +importConfig.configuration=Import configuration +importConfig.configurations=Import configurations +importConfig.custom.idSearchOnly=Import configurations of type 'CUSTOM' currently do not support hitlist but only search by ID and therefore cannot contain more than one search field +importConfig.defaultConfiguration=Default configuration +importConfig.defaultChildProcessConfiguration=Default configuration for creating child processes +importConfig.editSearchField=Edit search field +importConfig.editUrlParameter=Edit URL parameter +importConfig.migration.importCatalogConfigurations=Import catalogue configurations +importConfig.migration.importCatalogConfigurationsDesc=Import catalogue configurations +importConfig.migration.importCatalogConfigurationsResultHeader=Catalog configurations import results +importConfig.migration.numberOfCatalogConfigurations=catalog configurations found +importConfig.migration.startImportDescription=Please select the catalog configurations you want to import and click "Start" to begin the import process +importConfig.migration.error.configurationExists=Import configuration already exists +importConfig.migration.error.invalidPort=Port ''{0}'' is not an integer between 0 und 65535 +importConfig.migration.error.mappingFilesMissing=No mapping files found for metadata format ''{0}''! +importConfig.migration.error.mappingFileMissing=No MappingFile found for XSLT file "{0}"! +importConfig.mode.create=Create new import configuration +importConfig.mode.edit=Edit import configuration +importConfig.mode.view=View import configuration +importConfig.new=New import configuration +importConfig.field.anonymousAccess=Anonymous access +importConfig.field.configurationType=Configuration type +importConfig.field.defaultImportDepth=Default import depth +importConfig.field.description=Description +importConfig.field.fileFormat=File format +importConfig.field.host=Host +importConfig.field.interfaceType=Search interface type +importConfig.field.itemField.ownerSubpath=Item field - Owner XPath +importConfig.field.itemField.ownerMetadata=Item field - Owner metadata +importConfig.field.itemField.signatureSubpath=Item field - Signature XPath +importConfig.field.itemField.signatureMetadata=Item field - Signature metadata +importConfig.field.itemField.xPath=Exemplarfeld - XPath +importConfig.field.metadataFormat=Metadata format +importConfig.field.metadataRecordIDXPath=Metadata record ID XPath +importConfig.field.metadataRecordTitleXPath=Metadata record title XPath +importConfig.field.parentElementTrimMode=Parent element - Trim Mode +importConfig.field.parentElementType=Parent element - Type +importConfig.field.parentElementXPath=Parent element - XPath +importConfig.field.path=Path +importConfig.field.port=Port +importConfig.field.prestructuredImport=Prestructured import +importConfig.field.queryDelimiter=Query delimiter +importConfig.field.scheme=Scheme +importConfig.field.url=URL +importConfig.field.urlparameter.srurecordschema=SRU record schema +importConfig.field.urlparameter.sruversion=SRU version +importConfig.field.urlparameter.oaimetadataprefix=OAI metadata prefix +importConfig.fileupload.fileformat=File format of upload file +importConfig.fileupload.metadataformat=Metadata format of upload file +importConfig.fileupload.parentMappingFile=Mapping file for parent record +importConfig.fileupload.selectParentMappingFile=Please select mapping file for parent record +importConfig.remove=Remove import configuration +importConfig.searchField=Search field +importConfig.searchField.label=Search field label +importConfig.searchField.value=Search field value +importConfig.searchFields=Search fields +importConfig.searchFields.defaultField=Default search field +importConfig.searchFields.idSearchField=ID parameter +importConfig.searchFields.idPrefix=ID prefix +importConfig.searchFields.parentIdField=ID parameter of parent record +importConfig.searchFields.selectDefaultField=Please select default search field +importConfig.searchFields.selectIdSearchField=Please select search field for ID search +importConfig.searchFields.selectParentIdField=Please select search field for parent record ID search +importConfig.selectConfigurationType=Please select configuration type +importConfig.selectDefaultConfiguration=Please select default configuration +importConfig.selectInterfaceType=Please select search interface type +importConfig.selectSruVersion=Please select SRU version +importConfig.selectTrimMode=Please select parent element trim mode +importConfig.selectParentElementType=Please select parent element type +importConfig.templateprocess.defaultTemplateProcess=Default template process +importConfig.templateprocess.selectDefaultTemplateProcess=Please select default template process +importConfig.validation.error.firstMappingFormat=First configured mapping file "{0}" must have "{1}" as input metadata format (found "{2}" instead)! +importConfig.validation.error.intermediateMappingFormat=Mapping file "{0}" output metadata format must match next mapping file's input metadata format "{1}" (found "{2}" instead!) +importConfig.validation.error.lastMappingFormat=Last configured mapping file "{0}" must map to KITODO internal format (found "{1}" instead) +importConfig.validation.error.missingMappingFiles=Import configuration must map imported metadata format "{0}" to KITODO internal metadata format with appropriate mapping files! +importConfig.validation.error.prestructuredImport="Prestructured Import" flag of last configured mapping file "{0}" must match corresponding flag in configuration +importConfig.urlParameters=URL parameters +importConfig.urlParameterKey=Parameter key +importConfig.urlParameterValue=Parameter value +importConfig.urlParameters.conditionUnique=URL parameter keys must be unique ("{0}" already exists!) +importedBatchLabel=Imported from {0}, {1} o'clock +importingData=Data are being imported +importChildren=Import child processes +importDepth=Import depth +importDms=Import into DMS +importEadProcessesThread=EAD collection import +importProcesses=Import processes +imprint=Imprint +# used in "LegalTexts.java" +imprintDefaultText=Imprint information have not been configured for this system. +indexedEntries=Indexed entries +indexing=Indexing +indexOutOfDate=The search index needs to be updated! +insert=Insert +insertAsUncounted=Insert as uncounted +insertHere=insert here +isInUse=is in use of +jumpBackwardOneSecond=Jump backward 1 second +jumpBackwardOneHundredMilliseconds=Jump backward 100 milliseconds +jumpBackwardTenMilliseconds=Jump backward 10 milliseconds +jumpBackwardOneMillisecond=Jump backward 1 millisecond +jumpForwardOneMillisecond=Jump forward 1 millisecond +jumpForwardTenMilliseconds=Jump forward 10 milliseconds +jumpForwardOneHundredMilliseconds=Jump forward 100 milliseconds +jumpForwardOneSecond=Jump forward 1 second +kitodoScript.generateImages.error.noSourceFiles=Cannot generate images for process {0}: No contents found in source folder {1} +kitodoScript.generateImages.error.noSourceFolder=Cannot generate images for process {0}: Project {1} has no source folder defined. +kitodoScript.generateImages.error.noDestination=Cannot generate images for process {0}: Folder(s) {1} cannot be generated. +kitodoScript.generateImages.ok=Generating {0} images for process {1}, folder(s) {2} in the task manager. +kitodoScript.generateImages.partitial=Generating {0} images for process {1}, folder(s) {2} in the task manager. Folder(s) {3} cannot be generated. +language=Language +languageUserInterface=Language for user interface +lastEdited=Last edited +lastEditingUser=Last editing user +lastPage=Last page +lastUpdatedBy=Last updated by +later=Please try again in a few minutes. +ldapKonfigurationSchreiben=Write LDAP configuration +ldapWritten=LDAP configuration successfully written for user\: +# ldapgroupSaving is used in ldapgroupEdit.xhtml - line 39 +ldapGroupSaving=Saving LDAP group... +ldapGroup=LDAP group +ldapGroups=LDAP groups +ldapServers=LDAP-servers +ldapServer=LDAP-server +ldapServerNew=Add new LDAP server +# ldapgroupSaving is used in ldapserverEdit.xhtml +ldapServerSaving=Saving LDAP-Server... +ldaplogin=LDAP login +legal=Legal +link=Link +listProcesses=List processes +listSourceFolder=Searching for files +loadAllProcesses=Load all processes +loadAssociatedBatchOfProcess=Highlight the batches containing the chosen processes +loadProcessesOfBatch=load processes of the selected batch +locked=Locked +location=Location +loggedIn=Logged in +logical=Logical +login=Login +loginNoteText=Kitodo.Production is the workflow management module in the Kitodo suite. It supports the process of digitising a range of material types, such as books, periodicals, manuscripts, printed music, single-sheet media, and document collections. +logout=Log out +# manuellMultiWorkflow is used in TaskEditType enum +manuellMultiWorkflow=Manual +# manuellSingleWorkflow is used in TaskEditType enum +manuellSingleWorkflow=Manual +mappingFile.file=Mapping file +mappingFile.files=Mapping files +mappingFile.inputFormat=Metadata input format +mappingFile.mode.create=Create new mapping file +mappingFile.mode.edit=Edit mapping file +mappingFile.mode.view=View mapping file +mappingFile.new=New Mapping file +mappingFile.outputFormat=Metadata output format +mappingFile.selectFormats=Please select input and output file formats for mapping file +massDownload=Bulk downloads +massImport=Mass import +massImport.addRow=Add row +massImport.results=Mass import - results +masterpieceProperties=workpiece property +media=Media +mediaUploaded={0} is uploaded successfully +medium=Medium +messageAdd=Add message +messages=Messages +metadata=Metadata +metadataCorrupt=The metadata file is faulty, please inform the administrator. +metadataDelete=Delete metadata +metadataDeleteNotAllowed=Metadata is set as'Required' oder "alwaysShowing" in the ruleset +metadataDoesNotEndWith=not end with the value +metadataDoesNotStartWith=not start with the value +metadataDuplicate=Duplicate metadata +metadataEdit=Edit metadata +metadataForDMSExport=Export metadata for DMS +metadataGroups=Metadata groups +metadataHideImage=Hide image +metadataImport=Import metadata +metadataLanguage=Language for metadata +metadataPaste=Paste metadata +metadataTimes=times +metadataToManyElements=may exist only once, but exists +metadataWithValue=with the value +metadataView=View metadata +metadataSaving=Saving metadata +metadataSaved=Metadata saved successfully +metadataShowImage=Show image +metadataSortByRuleset=Order metadata as in ruleset (otherwise alphabetically) +metsContentIDs=METS ContentIDs (physical structure) +metsDigiprovPresentation=METS Digiprov Presentation +metsDigiprovPresentationAnchor=METS Digiprov Presentation (Anchor) +metsDigiprovReference=METS Digiprov Reference +metsDigiprovReferenceAnchor=METS Digiprov Reference (Anchor) +metsEditorFileUploadSuccessful=The file import was successful. +metsParameter=METS parameter +metsPointerPath=METS Pointer Path +metsPointerPathAnchor=METS Pointer Path Anchor +metsPurl=METS PURL (logical structure) +metsRightsOwner=METS rights owner +metsRightsOwnerLogo=METS rights owner logo +metsRightsOwnerMail=METS rights owner contact +metsRightsOwnerSite=METS rights owner URL +metsfilegroups=Sub-folders and METS file groups +migrateMetadata=Migrate metadata +migrateMetadataHint=The migration has been started in the task manager. +migrateMetadataOfSelectedProjects=Migrate metadata of selected projects +migrateNewspaperBatches=Migrate newspaper processes +migrateLdapManagerPasswords=Migrate LDAP manager passwords +migrateLdapManagerPasswordsDesc=The migration encrypts the LDAP manager password with the "security.secret.ldapManagerPassword" parameter in the kitodo_config.properties and overwrites the password in the database. Existing encryption will be ignored when you run the migration again. +migrateProjects=Migrate projects +migrateSerialPublication=Migrate serial publications +migrateWorkflow=Migrate workflows +migration=Migration +migrationTask=Migrating metadata of project +modeler=BPMN Modeler +modeler.controls.zoomfullscreen=Full screen +modeler.controls.zoomminus=Zoom - +modeler.controls.zoomplus=Zoom + +modeler.controls.zoomreset=Reset View +modules=Modules +month=month +months=months +multipleCopiesFound=The selected record contains information on multiple exemplars. +multipleCopiesFoundSelectCopy=Please select one exemplar to continue! +multipleProjectsText=The selected template is used in multiple projects. Please select one project to continue! +multipleTemplatesText=There are multiple templates configured for this project. Please select one template to continue! +name=Name +neu=Create new record set +newPassword=New password +newStructuralElement=New docstruct +newStructuralElementFromPages=New docstruct from selected pages +new=Ready +newAuthority=New authority +newClient=New client +newDocket=New docket +newElement=New +newLdapGroup=New LDAP group +newLdapServer=New LDAP server +newProcess.catalogueSearch.additionalImport=Additional import +newProcess.catalogueSearch.additionalImportSuccessfulSummary=Additional import successful +newProcess.catalogueSearch.additionalImportSuccessfulDetail={0} metadata was added +newProcess.catalogueSearch.catalogue=Catalogue +newProcess.catalogueSearch.exemplarRecordParameterNotFoundError=Unable to find required parameter \u201E{0}\u201C in configuration of OPAC \u201E{1}\u201C! +newProcess.catalogueSearch.exemplarRecordSelectedSummary=Exemplar record selected +newProcess.catalogueSearch.exemplarRecordSelectedDetail=Owner: {0}
Signature: {1} +newProcess.catalogueSearch.failed=The plug-in failed to import the hit\: +newProcess.catalogueSearch.heading=Catalogue search +newProcess.catalogueSearch.nextPage=Continue +newProcess.catalogueSearch.previousPage=Backwards +newProcess.catalogueSearch.results=Your search achieved {0} results +newProcess.catalogueSearch.searchTerm=Insert search term +newProcess.catalogueSearch.importSuccessfulSummary=Import successful +newProcess.catalogueSearch.importSuccessfulDetail={0} processes retrieved from {1} +newProcess.catalogueSearch.linkedToExistingProcessSummary=Processes linked +newProcess.catalogueSearch.linkedToExistingProcessDetail=New process linked to existing process \u201E{0}\u201C. +newProcess.catalogueSearch.loadingChildrenSuccessfulSummary=Child processes retrieved successfully +newProcess.catalogueSearch.loadingChildrenSuccessfulDetail={0} child processes retrieved +newProcess.catalogueSearch.manyChildrenWarning={0} child processes have been found for the selected data record. +newProcess.catalogueSearch.parentIDMetadataMissing=No parent ID metadata ("higherlevelIdentifier") found in ruleset! Resetting import depth to 1. +newProcess.catalogueSearch.parentIDParameterMissing=Child processes cannot be imported because the required "ID parameter of parent record" is missing in this import configuration. +newProcess.catalogueSearch.savingSecondaryProcesses=Saving secondary processes +newProcess.childProcesses=Child processes +newProcess.docTypeMetadataMissing=Unable to import metadata. No metadata for document type classification ("use='docType'") found in ruleset "{0}"! +newProcess.fileUpload.heading=Fileupload +newProcess.fileUpload.eadLevelParent=EAD-Level parent process +newProcess.fileUpload.eadLevelChildren=EAD-Level child processes +newProcess.processHierarchy=Process hierarchy +newProcess.rulesetSelection.deactivated=Ruleset is predetermined by given template and cannot be changed during process creation +newProcess.titleGeneration.creationRuleNotFound=No title creation rules found for docType \u201E{0}\u201C in ruleset \u201E{1}\u201C! +newProject=New project +newRole=New role +newRuleSet=New rule set +newspaperMigrationTask=Migrating newspaper +newTemplate=New process template +newWorkflow=New workflow +newUser=New user +next=Next +no=no +noExistingWorkflow=No workflow found +noLdapGroupAssignedToUser=No LDAP group is assigned to user +noLdapServerAssignedToLdapGroup=No LDAP server is assigned to LDAP group +noMedia=No media +none=None +normDataRecord=URI +noImageFolderConfiguredInProject=No target folder for imagegeneration configured in project. +noSourceFolderConfiguredInProject=No source folder for imagegeneration configured in project. +noProjectsConfigured=This template has been deactivated or is not used by any project! +noTemplatesConfigured=This projects has either been deactivated or no templates are configured for this project! +notSelected=No selection +nr=Number +numProcesses={0} processes +numberImages=Number of pages +numberVolumes=Number of volumes +numberOfMetadata=Number of metadata +objectType=Object type +ocr=OCR +ocrdWorkflow=OCR-D workflow +ok=Ok +oldPassword=Old password +onlySelectedPages=Only the selected pages +orLast=or last +orUnlockHere=Or unlock here. +order=Order +otherUsersTasks=Other users tasks +page=Page +pages=Pages +pagination=Pagination +paginationAdvanced=Advanced +paginationFictitious=Fictitious paginating +paginationFreetext=free text +paginationStartValue=Pagination start value +paginationStartValueNotSpecified=Pagination start value not specified +paginationText=Text +paginationTextHint=Mark as static text +paginationNoIncrement=+0 +paginationNoIncrementHint=Do not increment the counter +paginationHalfIncrement=+\u00BD +paginationHalfIncrementHint=Increment every second time +paginationOneIncrement=+1 +paginationOneIncrementHint=Increment by 1 each time +paginationTwoIncrement=+2 +paginationTwoIncrementHint=Increment by 2 each time +paginationThreeIncrement=+3 +paginationThreeIncrementHint=Increment by 3 each time +paginationRectoUse=[1] +paginationRectoUseHint=Only on the front side (after increment using half steps) +paginationVersoUse=[\u00BD] +paginationVersoUseHint=Only on the back side (after remaining using half steps) +paginationNoPagesSelected=No pages for pagination selected +paginationSaved=Pagination has been successfully applied. +paginationSaving=Pagination in progress... +paginationScope=Pagination scope +part=part +password=Password +passwordChange=Change password +passwordChanged=The password has been changed. +passwordsDontMatch=The passwords you entered do not match! +passwordReset=Reset password +person=Person +persons=Persons +personsDataDelete=Delete person data +physical=Physical +pleaseSignIn=Sign in +plugins=Plugins +position=Position +ppn=PPN +preview.headline=Preview +previewHoverMode=Hover-Mode +previewHoverMode.OVERLAY=Overlay +previewHoverMode.TOOLTIP_PREVIEW=Tooltip preview +previewHoverMode.TOOLTIP_MEDIAVIEW=Tooltip mediaview +priority=Priority +process=Process +processConfig.fromTemplate=From process template +processData=Process data +processDetails=Process details +processList=Process list +processManagement=Process management +processMetadata=Process metadata +processProperties=process property +processSaving=Saving process... +processesSaving=Saving processes... +processTemplate=Process template +processTitle=Process title +processes=Processes +processesInThisBatch=processes of this batch +processId=Process ID +processingBegin=Start of work +processingBeginLastTask=Processing begin of last task +processingEnd=End of work +processingEndLastTask=Processing end of last task +processingStatus=Processing status +processingStatusDown=Set status of process down +processingStatusUp=Set status of process up +processNotDeletableWithChildren=Process cannot be deleted while subordinate processes exist. +progress=Progress +project=Project +projectConfiguration=Project configuration +projectIsActive=project active +projectIsArchived=project inactive +projectList=Projects list +projectNotAssignedToCurrentUser=Project "{0}" not assigned to current user! +projectProgress=Project progress +projects=Projects +projectsForMigration=Please select projects for migration +# projectSaving is used in projectEdit.xhtml - line 32 +projectSaving=Saving project... +properties=Properties +propertiesSaved=Property saved. +property=Property +propertySaved=Property saved. +createProcessForm.titleRecordLinkTab.noInsertionPosition=You cannot link the process with this title record because the selected DocType is not allowed as a child anywhere. +createProcessForm.titleRecordLinkTab.searchButtonClick.empty=Query is empty +createProcessForm.titleRecordLinkTab.searchButtonClick.error=The search ran on an error: +createProcessForm.titleRecordLinkTab.searchButtonClick.noHits=The search completed, but nothing was found. You can only find processes that have the same rule set and are potential parent processes. +createProcessForm.limitExceeded=The maximum number of records to be processed in the import mask is {0}. The uploaded file exceeds this limit and contains {1} elements of type "{2}". Process import will be delegated to a background task. +quarter=quarter +quarters=quarters +ready=Ready +recordId=Record ID +recordImport=record import +records=records +regenerateAllImages=Start the regeneration of all images +regenerateAllImagesStarted=The task manager is having all images regenerated +regenerateMissingImagesStarted=The generation of all missing images has started, you can now complete this task. You can follow the progress of the image generation in the Task Manager. +regenerateMissingAndDamagedImages=Start the regeneration of all missing or damaged images +regenerateMissingAndDamagedImagesStarted=The task manager is having all missing or damaged images regenerated +relativeAmount=Relative amount +reload=reload +remark=Remark +removeAllTasks=Remove all tasks +removeClosedTasks=Remove finished tasks +removeElement=Remove element +removeFilter=Remove filter from list +removeFromAssociatedBatch=remove selected processes from assigned batches +removeFromBatch=Removed process from batch {0}. +removeLogicalDivision=Remove logical structure element +removePhysicalDivision=Remove physical structure element +removeRole=Remove role +removeUserFromGroup=Delete user from group +renameBatch=Rename batch +renameMediaFiles=Rename media +renamingMediaFilesOfSelectedProcessesStarted=Renaming media files of selected processes started successfully. +requiredField=Fields marked with * are required +reset=Reset +resultPDF=Result PDF +resultSet=Result set +retry=Retry +rights=Rights +roman=Roman +role=Role +roles=Roles +rolesAdd=Add roles +ruleset=Ruleset +# rulesetSaving is used in rulesetEdit.xhtml - line 39 +rulesetSaving=Saving ruleset... +rulesets=Rulesets +saveTifHeaderFile=Save file with tiff header +script=Script +scriptExecute=Execute script +scriptExecutionSuccessful=Script "{0}" successfully executed. +scriptName=Script name +scriptPath=Script path +scriptTask=Script task +searchForTask=Search for task +searchForVolume=Search for volume +searchOPAC=Search OPAC +searchResult=Search result +searchResultFor=Search result for: +searchProcessTitle=Search process title +pageAllocation=Page allocation +pageAssign=Assign pages +pageCount=Page counting +pageCountDouble=Page counting double pages +pageCountRectoVerso=RectoVerso Foliation +select=Select +selectAll=Select all +selectCatalog=Select OPAC +selectSearchField=Select search field +selectFilter=Select pre-defined filter +selectFromExistingProcesses=Select from previous processes +selectImportConfiguration=Select import configuration +selectInsertionPosition=Select insertion position for +selectProcess=Select process +selectProject=Please select a project +selectTemplate=Please select a template +selectWorkflow=Please select a workflow +selfAssignTask=Accept editing of this task +sendSolutionMessageNextTask=Send message about problem solution to following task +sendSolutionMessage=Send message about problem solution +sendSolutionMessageForAll=send troubleshooting message to all steps +sendSolutionMessageForSingle=send troubleshooting message to the current step +separateStructure=Extended structure +separateStructureCheckboxTooltip=edit logical and physical structures separately +setImportConfiguration=Set import configuration +setImportConfigurationSuccessful=Import configuration set successfully +setImportConfigurationSuccessfulDescription=Import configuration "{0}" set successfully for {1} selected processes +setImportConfigurationFailed=Error setting import configurations +setImportConfigurationConfirmMessage=You are about to change the import configuration of all selected processes. This process cannot be reverted. Do you want to continue? +setImportConfigurationForSelectedProcessesText=Please select the import configuration for the selected processes. Re-importing metadata from remote catalog interfaces is only supported for processes with import configurations of type 'Catalogue search'. +setRepresentative=Set representative\: +settings=Settings +sheetCounting=Sheet counting +sheetCountingRectoVerso=RectoVerso Pagination +shortcuts=Keyboard shortcuts +shortcuts.change=Change keyboard shortcuts +shortcuts.clear=Clear shortcut +shortcuts.dataEditor.help=Show help +shortcuts.dataEditor.structuredView=Show structured view +shortcuts.dataEditor.detailView=Show detail view +shortcuts.dataEditor.nextItem=Move to next item +shortcuts.dataEditor.previousItem=Move to previous item +shortcuts.dataEditor.nextItemMulti=Move forward multiple items +shortcuts.dataEditor.previousItemMulti=Move backward multiple items +shortcuts.dataEditor.downItem=Move to item below +shortcuts.dataEditor.upItem=Move to item above +shortcuts.dataEditor.downItemMulti=Move down multiple items +shortcuts.dataEditor.upItemMulti=Move up multiple items +show=Show +showAssignedPages=Show assigned pages +showClosedProcesses=Show closed processes +showDataForProcess=show process data +showHierarchyLevel=Show hierarchy level +showInSelectList=Show in selection list +showInactiveProjects=show deactivated projects +showOnlyStructureElements=Show only structure elements +showProjectProcesses=Show processes of this project +showProjectTasks=Show current tasks of this project +signIn=Sign in +# shouldContentBeRemoved is used in onclick +shouldContentBeRemoved=Do you really want to delete the content? +shouldItemBeRemoved=Do you really want to delete this item? +showProcessInTaskList=Show process date column in user task list +sorting=Sorting +surname=Surname +save=Save +saveExit=Save \u0026 exit +search=Search +selectAllRows=Select all rows +selectAllRowsOnPage=Select all rows on page +start=Start +startDate=Start date +startIndexing=Start indexing +startIndexingAll=Start indexing for all +startIndexingRemaining=Start indexing for not indexed +startPage=Home page +statisticalEvaluation=Statistical evaluation +stateOfVolume=State of volumes +status=Status +statusDone=Completed +statusDown=Move status down +statusInProcessing=In process +statusLocked=Locked +statusOpen=Open +statusUp=Move status up +stepDoneByUser=Step done by user +stop=Stop +stringCopiedSuccess=String copied to clipboard: +stringCopiedError=Error copying string to clipboard: +structure=Structure +structureData=Structure data +structuralElement=Structural element +structureElementAdd=Add docstruct +structureElementDelete=Delete docstruct +system=System +systemComeBackLaterMessage=Please try again later! +systemErrorHeader=System error +systemErrorInformAdminMessage=Please inform an administrator! +systemErrorMessage=A system error occurred. +systemMaintenanceHeader=System maintenance +systemMaintenanceMessage=The system is currently under maintenance. +table=Table +tableSize=Table size +task=Task +taskDetails=Task details +taskImageGeneratorThread=Generating images +taskList=Task list +taskManagerIsRunning=do not start tasks automatically +taskManagerIsStopped=start tasks automatically +taskManager=Task manager +taskSaving=Saving task... +taskScriptThread=Script task +taskStatus=task status +tasks=Tasks +technicalData=Technical data +template=Process template +templateDetails=Template details +templateNotAvailableForProcess=This process template contains tasks with incomplete details or is inactive. +templateProperty=template property +templateProperties=Template properties +templates=Process templates +templateSaving=Saving process template... +templateTitle=Template title +termsOfUse=Terms of use +# used in "LegalTexts.java" +termsOfUseDefaultText=Terms of use have not been configured for this system. +textMassImport=Text mass import +textSaved=Text saved +textSavingFailed=Error saving text +thereWereMoreHits=There were more hits. Please specify your search. +tifHeaderDocumentName=Tiff header document name +tifHeaderImageDescription=Tiff header image description +timeZone.+01\:00=CET +timeZone.+02\:00=CEST +timeout=Timeout +timeoutForSession=Timeout for sessions (in minutes) +timeoutWarningDMS=During import a lot of data needs to be transferred to the presentation system. As a result of this a timeout can be triggered. This doesn't necessarily mean that an error has occurred. To verify a successful import always use the presentation system. +title=Title +titleRecordLink=Title record link +to=to +tooltip=No. {0} +hits=Hits +tsl=TSL +typ=Type +type=Type +unassign=Unassign +unassignTasks=Unassign Tasks +unit=unit +uncounted=uncounted +unknown=Unknown +unlinkProcess=Unlink process +unlocked=Unlocked +up=up +updateFileReferences=Update file references +updateType=Update type +updateMetadata=Update metadata +upload=Upload +uploadFile=upload file +uploadImport=file upload import +uploadMedia=Upload media +uploadMediaCompleted=Uploading and generating new media has been completed successfully. +uploadMediaFileLimit=Maximum number of files exceeded +uriMalformed=The URI is malformed. +url=URL +useExistingWorkflow=Use existing workflow +useExistingTemplate=Use existing template +user=User +username=Username +users=Users +userAccountActive=User account active +userConfiguration=User configuration +userCreate=Create new user +userData=User data \u0026 settings +userDN=User DN +userDocumentationLink=Kitodo.Production 3.X user documentation +userEdit.metadataEditorSettings = Metadata editor +userEdit.metadataEditorSettings.defaultGalleryView = Default gallery view +userEdit.metadataEditorSettings.paginateFromFirstPageByDefault = By default paginate from first selected page +userEdit.metadataEditorSettings.showCommentsByDefault = Show comments by default +userEdit.metadataEditorSettings.showPaginationByDefault = Show pagination by default +userEdit.metadataEditorSettings.showPhysicalPageNumberBelowThumbnail = Show physical page number below thumbnails +userInstruction=User instructions +userInstructionText=You will find instructions for Kitodo.Production 3.x in the +userList=User list +userManagement=User management +userWithoutTasks=This user does not have any tasks in progress +# roleSaving is used in roleEdit.xhtml - line 40 +roleSaving=Saving role +userNotFound=User not found +# userSaving is used in userEdit.xhtml - line 39 +userSaving=Saving user... +validatingData=Validating data... +validate=Validate +validator=Validate {0} images +value=Value +video=Video +view=View +viewPageInNewWindow=View page in new browser window +visible=Visible +volume=volume +of=of +physicalTemplate=Physical template +physicalTemplates=Physical templates +firstName=First name +week=week +weeks=weeks +wholeIndex=Whole index +wikiField=Wiki field +# reallyExecute is used many times in onclick +reallyExecute=Are you sure you want to execute? +workflow=Workflow +workflowSaving=Saving workflow... +workflows=Workflows +workflowUnableToArchive=Only active workflows can be archived. +working=Working +workpieceProperties=Workpiece properties +year=year +years=years +yes=yes +# youWillBeRedirected is used many times +youWillBeRedirected=You will be redirected after successful save. +relatedPages=Related pages +welcome=Welcome + +# Actions on database / authorities + +addAuthority=Add authority +addBatch=Add batch +addClient=Add client +addDocket=Add docket +addFilter=Add filter +addImportConfiguration=Add import configuration +addLdapGroup=Add LDAP group +addLdapServer=Add LDAP server +addMappingFile=Add mapping file +addProcess=Add process +addProject=Add project +addProjects=Add projects +addProperty=Add property +addRole=Add role +addRuleset=Add ruleset +addTask=Add task +addTemplate=Add process template +addNewTemplate=Add new template +addTemplateProperty=Add template property +addUser=Add user +addWorkflow=Add workflow +addWorkpieceProperty=Add workpiece property +assignImportConfigurationToClient=Assign import configuration to client +assignTasks=Assign tasks +overrideTasks=Override tasks +superviseTasks=Supervise tasks +viewIndex=View index + +deleteAuthority=Delete authority +deleteBatch=Delete batch +deleteClient=Delete client +deleteDocket=Delete docket +deleteImportConfiguration=Delete import configuration +deleteLdapGroup=Delete LDAP group +deleteLdapServer=Delete LDAP server +deleteMappingFile=Delete mapping file +deleteProcess=Delete process +deleteProject=Delete project +deleteProperty=Delete property +deleteRole=Delete role +deleteRuleset=Delete ruleset +deleteTask=Delete task +deleteTemplate=Delete process template +deleteUser=Delete user +deleteWorkflow=Delete workflow + +duplicateLdapGroup=Duplicate LDAP group +duplicateProject=Duplicate project +duplicateTemplate=Duplicate template +duplicateWorkflow=Duplicate workflow + +editAuthority=Edit authority +editBatch=Edit batch +editClient=Edit client +editDocket=Edit docket +editImportConfiguration=Edit import configuration +editLdapGroup=Edit LDAP group +editLdapServer=Edit LDAP-server +editMappingFile=Edit mapping file +editProcess=Edit process +editProcessMetaData=Edit metadata of the process +editProcessStructureData=Edit structure data of the process +editProcessPagination=Edit pagination of the process +editProcessImages=Edit images of the process +editProject=Edit project +editProperty=Edit property +editRole=Edit role +editRuleset=Edit ruleset +editTask=Edit task +editTemplate=Edit template +editUser=Edit user +editWorkflow=Edit workflow +exportProcess=Export process + +performTask=Perform task +assignTask=Assign task +overrideTask=Take on task +superviseTask=Watch task +resetWorkflow=Reset workflow +reimportMetadata=Re-import metadata +renameMedia=Rename media +renameMediaThread=Rename media +renameMediaForProcessesConfirmMessage=The media files of {0} processes will be renamed according to their order in the individual processes. This change cannot be reverted. Do you want to continue? +runKitodoScript=Execute KitodoScript +linkToProcessesOfUnassignedProjects=Link to processes of unassigned projects +useMassImport=Use mass import + +viewAllAuthorities=View all authorities +viewAllBatches=View all batches +viewAllClients=View all clients +viewAllDockets=View all dockets +viewAllImportConfigurations=View all import configurations +viewAllLdapGroups=View all LDAP groups +viewAllLdapServers=View all LDAP servers +viewAllMappingFiles=View all mapping files +viewAllProcesses=View all processes +viewAllProjects=View all projects +viewAllRoles=View all roles +viewAllRulesets=View all rulesets +viewAllTasks=View all tasks +viewAllTemplates=View all templates +viewAllUsers=View all users +viewAllWorkflows=View all workflows + +viewAuthority=View authority +viewBatch=View batch +viewClient=View client +viewDocket=View docket +viewImportConfiguration=View import configuration +viewLdapGroup=View LDAP group +viewLdapServer=View LDAP server +viewMappingFile=View mapping file +viewMigration=View migration page +viewProcess=View process +viewProcessMetaData=View metadata of the process +viewProcessStructureData=View structure data of the process +viewProcessPagination=View pagination of the process +viewProcessImages=View images of the process +viewProject=View project +viewRole=View role +viewRuleset=View ruleset +viewTask=View task +viewTaskManager=View task manager +viewTemplate=View template +viewTerms=View terms page +viewUser=View user +viewWorkflow=View workflow +viewDatabaseStatistic=View database statistics + +# Tooltips +tooltip.importConfig.titleHelp=Title of this OPAC configuration +tooltip.importConfig.descriptionHelp=Description of this OPAC configuration +tooltip.importConfig.configurationTypeHelp=Import configuration type +tooltip.importConfig.customUrlParameterHelp=Define custom URL parameters that will be added to each query send to this custom search interface +tooltip.importConfig.interfaceTypeHelp=Type of the search interface +tooltip.importConfig.queryDelimiterHelp=A query delimiter can be used to enclose the search in some specific character if required by the search interface +tooltip.importConfig.urlHelp=URL of the search interface +tooltip.importConfig.prestructuredImportHelp=Prestructured import facilitates importing existing structural elements; Important: the configured XSLT mapping file is responsible for creating a valid METS structure! +tooltip.importConfig.sruVersionHelp=SRU version of SRU search interface +tooltip.importConfig.sruRecordSchemaHelp=SRU record schema of SRU search interface +tooltip.importConfig.oaiMetadataPrefixHelp=OAI metadata prefix of OAI harvesting interface +tooltip.importConfig.usernameHelp=Username for accessing search interface +tooltip.importConfig.passwordHelp=Password for accessing search interface +tooltip.importConfig.anonymousAccessHelp=Anonymous access support +tooltip.importConfig.returnFormatHelp=File format returned by the OPAC search interface (currently only XML is supported) +tooltip.importConfig.metadataFormatHelp=Metadata format returned by the OPAC search interface (e.g. MODS, MARC etc.) +tooltip.importConfig.metadataRecordIdXPathHelp=XPath for XML element that contains catalog ID in imported documents. This is required for displaying hit lists. +tooltip.importConfig.metadataRecordTitleXPathHelp=XPath for XML element that contains title in imported documents. This is required for displaying hit lists. +tooltip.importConfig.parentElementTypeHelp=Define the XML element containing information about the parent process +tooltip.importConfig.parentElementTrimModeHelp=Parent element trim mode +tooltip.importConfig.defaultImportDepthHelp=Configure the number of hierarchical processes to be imported by default +tooltip.importConfig.searchFieldHelp=Define search fields available in this search interface +tooltip.importConfig.idSearchFieldHelp=URL parameter for unique identifiers. This parameter is used for importing individual records from the search interface +tooltip.importConfig.idParameterPrefixHelp=This optional string will be prepended to each ID when querying datasets by ID. This can be used to simplify querying OAI interfaces for example, where each identifier must be preceded with a valid set identification. +tooltip.importConfig.defaultSearchFieldHelp=Default search field for this import configuration; will be pre-selected when creating a new process from this configuration +tooltip.importConfig.parentIdSearchFieldHelp=The parent ID search field is used to query for records whose parent record has the provided ID value (not supported by all interfaces) +tooltip.importConfig.itemFieldXPathHelp=XPath for item information +tooltip.importConfig.itemFieldXPathOwnerHelp=XPath for item owner information +tooltip.importConfig.itemFieldXPathSignatureHelp=XPath for item signature information +tooltip.importConfig.itemFieldOwnerMetadataHelp=XPath for item owner metadata information +tooltip.importConfig.itemFieldSignatureMetadataHelp=XPath for item signature metadata information +tooltip.importConfig.defaultTemplateProcessHelp=This template process will be pre-selected when creating a new process +tooltip.importConfig.uploadFileFormatHelp=File format of upload files (currently only XML is supported) +tooltip.importConfig.uploadMetadataFormatHelp=Metadata format of upload files (e.g. MODS, MARC etc.) +tooltip.importConfig.parentMappingFileHelp=Mapping file used to extract parent metadata from an uploaded or imported XML document +tooltip.importConfig.searchFieldLabelHelp=Label displayed to the user when importing processes using the current OPAC import configuration +tooltip.importConfig.searchFieldValueHelp=URL parameter used when user selects the corresponding search field represented by the label (see above) +tooltip.importConfig.searchFieldHiddenHelp=Configure whether the search field should be displayed in the import mask or not + +tooltip.mappingFile.title=Title of this mapping file +tooltip.mappingfile.file=Filename of mapping file used to map metadata from one format to another +tooltip.mappingFile.prestructuredImport=If this is set to 'true' this mapping file is responsible for creating the METS container format including its structure maps +tooltip.mappingFile.inputFormat=Input metadata format for this mapping file. The mapping file transforms data records in this metadata format into the specified output metadata format +tooltip.mappingFile.outputFormat=Output metadata format for this mapping file. The mapping file transforms data records in the specified input metadata format into this output metadata format + +tooltip.project.defaultImportConfiguration=The default configuration will be preselected when creating a new process for this project +tooltip.project.defaultChildProcessImportConfiguration=This import configuration will be preselected when creating child processes for an existing process in this project From 6bcd828fa6ac1b1128c8681d50f803f4963d61d9 Mon Sep 17 00:00:00 2001 From: Arved Solth Date: Mon, 7 Apr 2025 15:40:16 +0200 Subject: [PATCH 2/2] Change encoding of 'MetadataST.java' to 'IBM-Thai' --- .../java/org/kitodo/selenium/MetadataST.java | 982 +----------------- 1 file changed, 1 insertion(+), 981 deletions(-) diff --git a/Kitodo/src/test/java/org/kitodo/selenium/MetadataST.java b/Kitodo/src/test/java/org/kitodo/selenium/MetadataST.java index a709c9556c8..87b6352337c 100644 --- a/Kitodo/src/test/java/org/kitodo/selenium/MetadataST.java +++ b/Kitodo/src/test/java/org/kitodo/selenium/MetadataST.java @@ -1,981 +1 @@ -/* - * (c) Kitodo. Key to digital objects e. V. - * - * This file is part of the Kitodo project. - * - * It is licensed under GNU General Public License version 3 or later. - * - * For the full copyright and license information, please read the - * GPL3-License.txt file that was distributed with this source code. - */ - -package org.kitodo.selenium; - -import static org.awaitility.Awaitility.await; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.Callable; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; - -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; -import org.kitodo.MockDatabase; -import org.kitodo.config.ConfigCore; -import org.kitodo.data.database.beans.Process; -import org.kitodo.data.database.beans.User; -import org.kitodo.data.database.exceptions.DAOException; -import org.kitodo.data.elasticsearch.exceptions.CustomResponseException; -import org.kitodo.data.exceptions.DataException; -import org.kitodo.production.services.ServiceManager; -import org.kitodo.production.services.data.ProcessService; -import org.kitodo.selenium.testframework.BaseTestSelenium; -import org.kitodo.selenium.testframework.Browser; -import org.kitodo.selenium.testframework.Pages; -import org.kitodo.selenium.testframework.pages.MetadataEditorPage; -import org.kitodo.test.utils.ProcessTestUtils; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; -import org.openqa.selenium.interactions.Actions; - -/** - * Tests for functions in the metadata editor. - */ -public class MetadataST extends BaseTestSelenium { - - private static final String TEST_MEDIA_REFERENCES_FILE = "testUpdatedMediaReferencesMeta.xml"; - private static final String TEST_METADATA_LOCK_FILE = "testMetadataLockMeta.xml"; - private static final String TEST_RENAME_MEDIA_FILE = "testRenameMediaMeta.xml"; - private static final String TEST_LINK_PAGE_TO_NEXT_DIVISION_MEDIA_FILE = "testLinkPageToNextDivisionMeta.xml"; - private static int mediaReferencesProcessId = -1; - private static int metadataLockProcessId = -1; - private static int parentProcessId = -1; - private static int renamingMediaProcessId = -1; - private static int dragndropProcessId = -1; - private static int createStructureAndDragndropProcessId = -1; - private static int createStructureProcessId = -1; - private static int linkPageToNextDivisionProcessId = -1; - private static final String PARENT_PROCESS_TITLE = "Parent process"; - private static final String FIRST_CHILD_PROCESS_TITLE = "First child process"; - private static final String SECOND_CHILD_PROCESS_TITLE = "Second child process"; - private static final String LINK_PAGE_TO_NEXT_DIVISION_PROCESS_TITLE = "Link page to next division"; - private static final String TEST_PARENT_PROCESS_METADATA_FILE = "testParentProcessMeta.xml"; - private static final String FIRST_CHILD_ID = "FIRST_CHILD_ID"; - private static final String SECOND_CHILD_ID = "SECOND_CHILD_ID"; - private static List processHierarchyTestProcessIds = new LinkedList<>(); - private static final String FIRST_STRUCTURE_TREE_NODE_LABEL = "1 : -"; - private static final String SECOND_STRUCTURE_TREE_NODE_LABEL = "2 : -"; - - private static void prepareMediaReferenceProcess() throws DAOException, DataException, IOException { - insertTestProcessForMediaReferencesTest(); - copyTestFilesForMediaReferences(); - } - - private static void prepareMetadataLockProcess() throws DAOException, DataException, IOException { - insertTestProcessForMetadataLockTest(); - ProcessTestUtils.copyTestMetadataFile(metadataLockProcessId, TEST_METADATA_LOCK_FILE); - } - - private static void prepareProcessHierarchyProcesses() throws DAOException, IOException, DataException { - processHierarchyTestProcessIds = linkProcesses(); - copyTestParentProcessMetadataFile(); - updateChildProcessIdsInParentProcessMetadataFile(); - } - - private static void prepareMediaRenamingProcess() throws DAOException, DataException, IOException { - insertTestProcessForRenamingMediaFiles(); - copyTestFilesForRenamingMediaFiles(); - } - - private static void prepareDragNDropProcess() throws DAOException, DataException, IOException { - insertTestProcessForDragAndDrop(); - copyTestFilesForDragAndDrop(); - } - - private static void prepareCreateStructureAndDragNDropProcess() throws DAOException, DataException, IOException { - insertTestProcessForCreateStructureAndDragAndDrop(); - copyTestFilesForCreateStructureAndDragAndDrop(); - } - - private static void prepareCreateStructureProcess() throws DAOException, DataException, IOException { - insertTestProcessForCreatingStructureElement(); - copyTestFilesForCreateStructure(); - } - - private static void prepareLinkPageToNextDivision() throws DAOException, DataException, IOException { - linkPageToNextDivisionProcessId = MockDatabase.insertTestProcessIntoSecondProject(LINK_PAGE_TO_NEXT_DIVISION_PROCESS_TITLE); - ProcessTestUtils.copyTestFiles(linkPageToNextDivisionProcessId, TEST_LINK_PAGE_TO_NEXT_DIVISION_MEDIA_FILE); - } - - /** - * Prepare tests by inserting dummy processes into database and index for sub-folders of test metadata resources. - * @throws DAOException when saving of dummy or test processes fails. - * @throws DataException when retrieving test project for test processes fails. - * @throws IOException when copying test metadata or image files fails. - */ - @BeforeAll - public static void prepare() throws DAOException, DataException, IOException { - MockDatabase.insertFoldersForSecondProject(); - prepareMetadataLockProcess(); - prepareMediaReferenceProcess(); - prepareProcessHierarchyProcesses(); - prepareMediaRenamingProcess(); - prepareDragNDropProcess(); - prepareCreateStructureAndDragNDropProcess(); - prepareCreateStructureProcess(); - prepareLinkPageToNextDivision(); - } - - /** - * Tests whether structure tree is hidden when user lacks permission to see a process structure in metadata editor. - * @throws Exception when page navigation fails - */ - @Test - public void hideStructureDataTest() throws Exception { - login("verylast"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.METADATA_LOCK_TEST_PROCESS_TITLE); - assertFalse(Pages.getMetadataEditorPage().isStructureTreeFormVisible()); - Pages.getMetadataEditorPage().save(); - } - - /** - * Tests if process metadata lock is being removed when the user leaves the metadata editor - * without clicking the close button. - */ - @Test - public void removeMetadataLockTest() throws Exception { - // Open process in metadata editor by default user to set metadata lock for this process and user - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.METADATA_LOCK_TEST_PROCESS_TITLE); - Pages.getMetadataEditorPage().save(); - // Leave metadata editor without explicitly clicking the 'close' button - Pages.getMetadataEditorPage().clickPortalLogo(); - // Try to open metadata editor with separate user to check whether metadata lock is still in place - Pages.getTopNavigation().logout(); - login("verylast"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.METADATA_LOCK_TEST_PROCESS_TITLE); - assertTrue(Browser.getCurrentUrl().contains("metadataEditor.jsf"), "Unable to open metadata editor that was not closed by 'close' button"); - } - - /** - * Verifies that linked child processes can be reordered via drag'n'drop in the metadata editor. - * @throws Exception if processes cannot be saved or loaded - */ - @Test - public void changeProcessLinkOrderTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editParentProcessMetadata(); - assertTrue(Pages.getMetadataEditorPage().getNameOfFirstLinkedChildProcess().endsWith(FIRST_CHILD_PROCESS_TITLE), "Wrong initial order of linked child processes"); - assertTrue(Pages.getMetadataEditorPage().getSecondRootElementChildLabel().endsWith(SECOND_CHILD_PROCESS_TITLE), "Wrong initial order of linked child processes"); - Pages.getMetadataEditorPage().changeOrderOfLinkedChildProcesses(); - Pages.getMetadataEditorPage().saveAndExit(); - Pages.getProcessesPage().goTo().editParentProcessMetadata(); - assertTrue(Pages.getMetadataEditorPage().getNameOfFirstLinkedChildProcess().endsWith(SECOND_CHILD_PROCESS_TITLE), "Wrong resulting order of linked child processes"); - assertTrue(Pages.getMetadataEditorPage().getSecondRootElementChildLabel().endsWith(FIRST_CHILD_PROCESS_TITLE), "Wrong resulting order of linked child processes"); - } - - /** - * Verifies that clicking the "collapse all" and "expand all" buttons in the structure panel of the metadata editor - * does indeed collapse and expand all tree nodes correctly. - * @throws Exception when page navigation fails - */ - @Test - public void toggleAllStructureNodesTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.METADATA_LOCK_TEST_PROCESS_TITLE); - assertEquals(2, Pages.getMetadataEditorPage().getNumberOfDisplayedStructureElements(), "Number of visible nodes is wrong initially"); - Pages.getMetadataEditorPage().collapseAll(); - assertEquals(1, Pages.getMetadataEditorPage().getNumberOfDisplayedStructureElements(), "Number of visible nodes after collapsing all is wrong"); - Pages.getMetadataEditorPage().expandAll(); - assertEquals(2, Pages.getMetadataEditorPage().getNumberOfDisplayedStructureElements(), "Number of visible nodes after expanding all is wrong"); - } - - /** - * Tests total number of scans. - */ - @Test - public void totalNumberOfScansTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - assertEquals("(3 Medien)", Pages.getMetadataEditorPage().getNumberOfScans(), "Total number of scans is not correct"); - } - - /** - * Verifies that turning the "pagination panel switch" on in the user settings - * results in pagination panel being displayed by default in the metadata editor. - */ - @Test - public void showPaginationByDefaultTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - assertFalse(Pages.getMetadataEditorPage().isPaginationPanelVisible()); - Pages.getMetadataEditorPage().closeEditor(); - Pages.getUserEditPage().togglePaginationToShowByDefault(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - assertTrue(Pages.getMetadataEditorPage().isPaginationPanelVisible()); - // disable pagination again to prevent conflicts with other tests (when interacting with metadata table) - Pages.getMetadataEditorPage().closeEditor(); - Pages.getUserEditPage().togglePaginationToShowByDefault(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - assertFalse(Pages.getMetadataEditorPage().isPaginationPanelVisible()); - } - - /** - * Verifies that changing the pagination type does not reset the selected pagination scope. - * @throws Exception when page navigation fails - */ - @Test - public void keepPaginationScopeOnPaginationTypeChangeTest() throws Exception { - String paginationTogglerId = "secondSectionSecondColumnToggler"; - String paginationScopeId = "paginationForm:selectPaginationScope"; - String paginationTypeId = "paginationForm:paginationTypeSelect"; - String secondTypeCssSelector = "#paginationForm\\:paginationTypeSelect_items li:nth-child(2)"; - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - Browser.getDriver().findElement(By.id(paginationTogglerId)).click(); - // get current scope value - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id(paginationScopeId))::isDisplayed); - String scope = Browser.getDriver().findElement(By.id(paginationScopeId)).getText(); - // change pagination type - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id(paginationTypeId))::isDisplayed); - Browser.getDriver().findElement(By.id(paginationTypeId)).click(); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.cssSelector(secondTypeCssSelector))::isDisplayed); - Browser.getDriver().findElement(By.cssSelector(secondTypeCssSelector)).click(); - // verify that scope value did not change - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id(paginationScopeId))::isDisplayed); - String scopeUpdated = Browser.getDriver().findElement(By.id(paginationScopeId)).getText(); - assertEquals(scope, scopeUpdated, "Pagination scope changed after changing pagination type"); - } - - /** - * Verifies that changing process images on file system triggers information/warning dialog. - * @throws Exception when page navigation fails - */ - @Test - public void updateMediaReferencesTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_REFERENCES_TEST_PROCESS_TITLE); - assertTrue(Pages.getMetadataEditorPage() - .isFileReferencesUpdatedDialogVisible(), "Media references updated dialog not visible"); - Pages.getMetadataEditorPage().acknowledgeFileReferenceChanges(); - } - - /** - * Verifies that renaming media files shows 'renaming successful' dialog and renames files correctly according to - * their corresponding physical divisions ORDER attribute. - * @throws Exception when page navigation fails - */ - @Test - public void renameMediaFilesTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - assertEquals(FIRST_STRUCTURE_TREE_NODE_LABEL, Pages.getMetadataEditorPage().getSecondRootElementChildLabel(), "Second child node in structure tree has wrong label BEFORE renaming media files"); - Pages.getMetadataEditorPage().renameMedia(); - assertTrue(Pages.getMetadataEditorPage() - .isRenamingMediaFilesDialogVisible(), "'Renaming media files was successful' dialog is not visible"); - Pages.getMetadataEditorPage().acknowledgeRenamingMediaFiles(); - assertEquals(SECOND_STRUCTURE_TREE_NODE_LABEL, Pages.getMetadataEditorPage().getSecondRootElementChildLabel(), "Second child node in structure tree has wrong label AFTER renaming media files"); - } - - /** - * Verifies single thumbnail drag and drop functionality in gallery. - * - * @throws Exception when page navigation or process saving fails. - */ - @Test - public void singleDragAndDropPageGalleryTest() throws Exception { - login("kowal"); - - // open metadata editor - MetadataEditorPage metaDataEditor = Pages.getMetadataEditorPage(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - - // wait until gallery is visible, page order should be 2-1-3 - WebElement unstructuredMedia = Browser.getDriver().findElement(By.id("imagePreviewForm:unstructuredMedia")); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(unstructuredMedia::isDisplayed); - - // wait until first page is visible in unstructured media stripe - WebElement dragThumbnail = Browser.getDriver() - .findElement(By.id("imagePreviewForm:unstructuredMediaList:0:unstructuredMediaPanel")); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(dragThumbnail::isDisplayed); - - // hover over second thumbnail to verify overlay text before drag'n'drop - metaDataEditor.checkGalleryThumbnailOverlayText( - "imagePreviewForm:unstructuredMediaList:1:unstructuredMediaPanel", - "Bild 1, Seite -", - "Second thumbnail has wrong overlay before drag'n'drop action" - ); - - // drop position for drag'n'drop action - WebElement dropPosition = Browser.getDriver() - .findElement(By.id("imagePreviewForm:unstructuredMediaList:2:unstructuredPageDropArea")); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(dropPosition::isDisplayed); - - // drag'n'drop action - Actions dragAndDropAction = new Actions(Browser.getDriver()); - dragAndDropAction.dragAndDrop(dragThumbnail, dropPosition).build().perform(); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id("buttonForm:saveExit"))::isEnabled); - - // page order should now be 1-2-3 - - // save process - Pages.getMetadataEditorPage().saveAndExit(); - - // check whether new position has been saved correctly - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - metaDataEditor.checkGalleryThumbnailOverlayText( - "imagePreviewForm:unstructuredMediaList:1:unstructuredMediaPanel", - "Bild 2, Seite -", - "Second thumbnail has wrong overlay after drag'n'drop action" - ); - - // move page 2 back to first position - dragThumbnail = Browser.getDriver() - .findElement(By.id("imagePreviewForm:unstructuredMediaList:1:unstructuredMediaPanel")); - dropPosition = Browser.getDriver() - .findElement(By.id("imagePreviewForm:unstructuredMediaList:0:unstructuredPageDropArea")); - dragAndDropAction = new Actions(Browser.getDriver()); - dragAndDropAction.dragAndDrop(dragThumbnail, dropPosition).build().perform(); - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id("buttonForm:saveExit"))::isEnabled); - - // page order should now be 2-1-3 again - - // save process - Pages.getMetadataEditorPage().saveAndExit(); - - // check whether original position was saved correctly - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - metaDataEditor.checkGalleryThumbnailOverlayText( - "imagePreviewForm:unstructuredMediaList:1:unstructuredMediaPanel", - "Bild 1, Seite -", - "Second thumbnail has wrong overlay after drag'n'drop action" - ); - } - - /** - * Verifies multi-select drag and drop functionality in the logical structure tree. - * - * @throws Exception when page navigation or process saving fails. - */ - @Test - @Disabled - public void multiDragAndDropStructureTreeTest() throws Exception { - login("kowal"); - - // open metadata editor - MetadataEditorPage metaDataEditor = Pages.getMetadataEditorPage(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - - // wait until logical tree is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("logicalTree")).isDisplayed()); - - // wait until gallery is visible - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("imagePreviewForm:unstructuredMedia")).isDisplayed()); - - // page order is 2-1-3 - - // select page 1 and 3 in structure tree - metaDataEditor.selectStructureTreeNode("0_1", false, false); - metaDataEditor.selectStructureTreeNode("0_2", true, false); - - // verify two images are selected in gallery and pagination panel - metaDataEditor.checkPaginationSelection(2); - metaDataEditor.checkGallerySelection(2); - - // drag and drop them to first drop position inside structure tree - WebElement dragElement = Browser.getDriver() - .findElement(By.cssSelector("#logicalTree\\:0_1 .ui-treenode-content")); - WebElement dropPosition = Browser.getDriver() - .findElement(By.cssSelector("li.ui-tree-droppoint:has(+ #logicalTree\\:0_0)")); - new Actions(Browser.getDriver()).dragAndDrop(dragElement, dropPosition).build().perform(); - - // verify selection in gallery and pagination panel remains active after drag and drop - metaDataEditor.checkPaginationSelection(2); - metaDataEditor.checkGallerySelection(2); - - // page order should now be 1-3-2 - - // save process - Pages.getMetadataEditorPage().saveAndExit(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - - // wait until gallery is visible - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("imagePreviewForm:unstructuredMedia")).isDisplayed()); - - metaDataEditor.checkGalleryThumbnailOverlayText( - "imagePreviewForm:unstructuredMediaList:1:unstructuredMediaPanel", - "Bild 3, Seite -", - "Second thumbnail has wrong overlay after multi-select drag'n'drop action" - ); - - // revert page order to original order such that test is idempotent - metaDataEditor.selectStructureTreeNode("0_2", false, false); - - // drag and drop page 2 to first drop position - dragElement = Browser.getDriver() - .findElement(By.cssSelector("#logicalTree\\:0_2 .ui-treenode-content")); - dropPosition = Browser.getDriver() - .findElement(By.cssSelector("li.ui-tree-droppoint:has(+ #logicalTree\\:0_0)")); - new Actions(Browser.getDriver()).dragAndDrop(dragElement, dropPosition).build().perform(); - - // save process - Pages.getMetadataEditorPage().saveAndExit(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.DRAG_N_DROP_TEST_PROCESS_TITLE); - - // wait until gallery is visible - await().ignoreExceptions().pollDelay(300, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("imagePreviewForm:unstructuredMedia")).isDisplayed()); - - metaDataEditor.checkGalleryThumbnailOverlayText( - "imagePreviewForm:unstructuredMediaList:2:unstructuredMediaPanel", - "Bild 3, Seite -", - "Last thumbnail has wrong overlay after reverting drag'n'drop actions" - ); - } - - /** - * Verifies functionality of creating structure elements in the metadata editor using the structure tree context - * menu. - */ - @Test - public void createStructureElementTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.CREATE_STRUCTURE_PROCESS_TITLE); - WebElement createdStructure = Pages.getMetadataEditorPage().createStructureElement(); - assertEquals("Band", createdStructure.getText(), "Added structure element has wrong type!"); - } - - /** - * Verifies that moving media to newly created, but unsaved structure element in the gallery using drag'n'drop works - * as expected. - * - * @throws Exception when page nagivation fails - */ - @Test - public void movePagesToUnsavedStructureTest() throws Exception { - login("kowal"); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.CREATE_STRUCTURE_AND_DRAG_N_DROP_TEST_PROCESS_TITLE); - Pages.getMetadataEditorPage().createStructureElement(); - String dropId = "imagePreviewForm:structuredPages:1:structureElementDataList_content"; - String targetId = "imagePreviewForm:structuredPages:1:structureElementDataList:0:structuredPagePanel"; - String expectedOverlay = "Bild 1, Seite -"; - WebElement target = Pages.getMetadataEditorPage().performDragAndDrop(dropId, targetId, expectedOverlay); - assertEquals("Bild 2, Seite -", target.getText().strip(), - "Dragged thumbnail in new structure has wrong overlay after drag'n'drop action"); - } - - /** - * Tests that column layout can be saved to database and is loaded into hidden form inputs. - * Does not test whether column layout is actually applied via Javascript (see resize.js). - */ - @Test - public void saveLayoutTest() throws Exception { - login("kowal"); - - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - String structureWithId = "metadataEditorLayoutForm:structureWidth"; - String metadataWidthId = "metadataEditorLayoutForm:metadataWidth"; - String galleryWithId = "metadataEditorLayoutForm:galleryWidth"; - - Function getValue = - (id) -> Browser.getDriver().findElement(By.id(id)).getAttribute("value"); - - // by default, layout settings are all 0 - assertEquals("0.0", getValue.apply(structureWithId)); - assertEquals("0.0", getValue.apply(metadataWidthId)); - assertEquals("0.0", getValue.apply(galleryWithId)); - - // open layout menu - Browser.getDriver().findElement(By.id("metadataEditorLayoutButtonForm:open")).click(); - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id("metadataEditorLayoutForm:saveDefault"))::isDisplayed); - // save layout - Browser.getDriver().findElement(By.id("metadataEditorLayoutForm:saveDefault")).click(); - - // wait until success message is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(Browser.getDriver().findElement(By.id("dataEditorSavingResultDialog_content"))::isDisplayed); - - // confirm success message - Browser.getDriver().findElement(By.id("dataEditorSavingResultForm:reload")).click(); - - // close metadata editor, wait until closed, and re-open - Pages.getMetadataEditorPage().closeEditor(); - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(3, TimeUnit.SECONDS) - .until(() -> Pages.getProcessesPage().isAt()); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // verify that layout was saved - assertNotEquals("0.0", getValue.apply(structureWithId)); - assertNotEquals("0.0", getValue.apply(metadataWidthId)); - assertNotEquals("0.0", getValue.apply(galleryWithId)); - } - - /** - * Verifies that turning the "show physical page number below thumbnail switch" on in the user settings - * results in thumbnail banner being displayed in the gallery of the metadata editor. - */ - @Test - public void showPhysicalPageNumberBelowThumbnailTest() throws Exception { - login("kowal"); - - // open the metadata editor - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // verify that physical page number is not shown below thumbnail by default - assertEquals(0, Browser.getDriver().findElements(By.cssSelector(".thumbnail-banner")).size()); - - // change user setting - Pages.getMetadataEditorPage().closeEditor(); - Pages.getUserEditPage().toggleShowPhysicalPageNumberBelowThumbnail(); - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // verify physical page number is now shown below thumbnail - assertFalse(Browser.getDriver().findElements(By.cssSelector(".thumbnail-banner")).isEmpty()); - } - - /** - * Verifies that the label of a node in the logical structure tree changes according to the - * "structureTreeTitle" option from the ruleset after switching to the "title" display option. - */ - @Test - public void selectStructureTreeTitleTest() throws Exception { - login("kowal"); - - // open the metadata editor - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // wait until logical tree is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("logicalTree")).isDisplayed()); - - // check that first tree node label shows type label "Band" - assertEquals("Band", - Browser.getDriver().findElement(By.cssSelector("#logicalTree\\:0 .ui-treenode-label")).getText()); - - // open select menu - Browser.getDriver().findElement(By.id("logicalStructureTitle")).click(); - - // wait until select menu is open - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("logicalStructureTitle_panel")).isDisplayed()); - - // click on title menu entry - Browser.getDriver().findElement(By.id("logicalStructureTitle_1")).click(); - - // wait until menu disappears - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> !Browser.getDriver().findElement(By.id("logicalStructureTitle_panel")).isDisplayed()); - - // check that node title has changed to metadata value of "HauptTitel" - assertEquals("Der Titel des Bandes", - Browser.getDriver().findElement(By.cssSelector("#logicalTree\\:0 .ui-treenode-label")).getText()); - } - - @Test - public void linkPageToNextDivision() throws Exception { - login("kowal"); - - // open metadata editor - Pages.getProcessesPage().goTo().editMetadata(LINK_PAGE_TO_NEXT_DIVISION_PROCESS_TITLE); - - MetadataEditorPage metaDataEditor = Pages.getMetadataEditorPage(); - - // wait until structure tree is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(metaDataEditor::isLogicalTreeVisible); - - // check page "2" is not marked as "linked" - assertFalse(metaDataEditor.isStructureTreeNodeAssignedSeveralTimes("0_0_0_0")); - - // open context menu for page "2" - metaDataEditor.openContextMenuForStructureTreeNode("0_0_0_0"); - - // click on 2nd menu entry "assign to next element" - metaDataEditor.clickStructureTreeContextMenuEntry("assignToNextElement"); - - // verify page "2" is now marked as "linked" - assertTrue(metaDataEditor.isStructureTreeNodeAssignedSeveralTimes("0_0_0_0")); - - // verify linked page "2" was created at correct tree position - assertTrue(metaDataEditor.isStructureTreeNodeAssignedSeveralTimes("0_1_0_0")); - - // check page "3" was moved to be 2nd sibling - assertFalse(metaDataEditor.isStructureTreeNodeAssignedSeveralTimes("0_1_0_1")); - - // open context menu for linked page "2" - metaDataEditor.openContextMenuForStructureTreeNode("0_1_0_0"); - - // click on 2nd menu entry "remove assignment" - metaDataEditor.clickStructureTreeContextMenuEntry("unassign"); - - // check page "2" is not marked as "linked" anymore - assertFalse(metaDataEditor.isStructureTreeNodeAssignedSeveralTimes("0_0_0_0")); - - // check page "3" is now only child of folder again - assertTrue(Browser.getDriver().findElements(By.cssSelector("#logicalTree\\:0_1_0_1")).isEmpty()); - } - - /* - * Check if media can be linked to next structure element via thumbnail context menu in gallery when media is hidden - * in structure tree. - */ - @Test - public void linkPageToNextDivisionViaGalleryWhileMediaIsHiddenInStructureTreeTest() throws Exception { - login("kowal"); - - // open metadata editor - Pages.getProcessesPage().goTo().editMetadata(LINK_PAGE_TO_NEXT_DIVISION_PROCESS_TITLE); - - MetadataEditorPage metaDataEditor = Pages.getMetadataEditorPage(); - - // wait until structure tree is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(metaDataEditor::isLogicalTreeVisible); - - String menuButtonId = "logicalStructureMenuButton"; - String hideMediaOptionId ="logicalStructureMenuForm:hideMediaCheckbox"; - - // hide media! - pollAssertTrue(() -> Browser.getDriver().findElement(By.id(menuButtonId)).isDisplayed()); - Browser.getDriver().findElement(By.id(menuButtonId)).click(); - pollAssertTrue(() -> Browser.getDriver().findElement(By.id(hideMediaOptionId)).isDisplayed()); - Browser.getDriver().findElement(By.id(hideMediaOptionId)).click(); - pollAssertTrue(() -> Browser.getDriver().findElement(By.id(menuButtonId)).isDisplayed()); - Browser.getDriver().findElement(By.id(menuButtonId)).click(); - - String thumbnailId = "#imagePreviewForm\\:structuredPages\\:2\\:structureElementDataList\\:0\\:structuredPagePanel"; - - pollAssertTrue(() -> Browser.getDriver().findElement(By.cssSelector(thumbnailId)).isDisplayed()); - - // assert first thumbnail is not yet linked - assertTrue(Browser.getDriver().findElements(By.cssSelector(thumbnailId + " .assigned-several-times")).isEmpty()); - - // open context menu of first thumbnail - Actions rightClickAction = new Actions(Browser.getDriver()); - rightClickAction.contextClick(Browser.getDriver().findElement(By.cssSelector(thumbnailId))).build().perform(); - pollAssertTrue(() -> Browser.getDriver().findElement(By.id("imagePreviewForm:mediaContextMenu")).isDisplayed()); - - // link to next structure via gallery - pollAssertTrue(() -> Browser.getDriver().findElement(By.className("assignToNextElement")).isDisplayed()); - Browser.getDriver().findElement(By.className("assignToNextElement")).click(); - - pollAssertTrue(() -> Browser.getDriver().findElement(By.cssSelector(thumbnailId)).isDisplayed()); - - // assert first thumbnail is linked - assertFalse(Browser.getDriver().findElements(By.cssSelector(thumbnailId + " .assigned-several-times")).isEmpty()); - } - - /** - * Tests that a metadata row of the metadata table is highlighted as soon as a user adds a new - * row via the add metadata dialog. - */ - @Test - public void focusRecentlyAddedMetadataRowTest() throws Exception { - login("kowal"); - - // open the metadata editor - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // wait until metadata table is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS).until( - () -> Browser.getDriver().findElement(By.id("metadataAccordion:metadata:metadataTable")).isDisplayed() - ); - - // verify no metadata row is focused yet - assertTrue(Browser.getDriver().findElements( - By.cssSelector("#metadataAccordion\\:metadata\\:metadataTable tr.focusedRow")).isEmpty() - ); - - // click on add metadata button - Browser.getDriver().findElement(By.id("metadataAccordion:addMetadataButton")).click(); - - // wait until dialog is visible - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS).until( - () -> Browser.getDriver().findElement(By.id("addMetadataDialog")).isDisplayed() - ); - - // open select menu - Browser.getDriver().findElement(By.id("addMetadataForm:metadataTypeSelection")).click(); - - // wait until selection menu list is visible - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS).until( - () -> Browser.getDriver().findElement(By.id("addMetadataForm:metadataTypeSelection_items")).isDisplayed() - ); - - // select Person as new metadata row - Browser.getDriver().findElement(By.cssSelector( - "#addMetadataForm\\:metadataTypeSelection_items li[data-label='Person'].ui-selectonemenu-item" - )).click(); - - // confirm dialog - Browser.getDriver().findElement(By.id("addMetadataForm:apply")).click(); - - // wait until dialog disappears - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS).until( - () -> !Browser.getDriver().findElement(By.id("addMetadataDialog")).isDisplayed() - ); - - // verify metadata row with name "Person" is selected - assertEquals("Person:", Browser.getDriver().findElement( - By.cssSelector("#metadataAccordion\\:metadata\\:metadataTable tr.focusedRow label") - ).getText()); - - // verify accordion was scrolled down - assertTrue(0 < (Long)Browser.getDriver().executeScript( - "return document.getElementById('metadataAccordion:metadata:metadataTable').scrollTop;" - )); - } - - /* - * Verifies that an image can be openend in a separate window by clicking on the corresponding - * context menu item of the first logical tree node. - */ - @Test - public void openPageInSeparateWindowTest() throws Exception { - login("kowal"); - - // remember current window handle - String firstWindowHandle = Browser.getDriver().getWindowHandle(); - - // open the metadata editor - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // wait until structure tree is shown - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("logicalTree")).isDisplayed()); - - // open context menu for linked page "2" - Pages.getMetadataEditorPage().openContextMenuForStructureTreeNode("0_0"); - - // click second menu entry to open new tab - Browser.getDriver().findElement(By.cssSelector("#contextMenuLogicalTree .viewPageInNewWindow")).click(); - - // find handle of new tab window - String newWindowHandle = Browser.getDriver().getWindowHandles().stream() - .filter((h) -> !h.equals(firstWindowHandle)).findFirst().get(); - - // switch to new window - Browser.getDriver().switchTo().window(newWindowHandle); - - // wait until preview image is found - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> !Browser.getDriver().findElements(By.id("imagePreviewForm:mediaPreviewGraphicImage")).isEmpty()); - - // check that title contains image number - assertEquals("Bild 2", Browser.getDriver().findElement(By.id("externalViewTitle")).getText()); - - // check that canvas is visible - assertTrue(Browser.getDriver().findElement(By.cssSelector("#map canvas")).isDisplayed()); - - // close tab - Browser.getDriver().close(); - - // switch back to previous window - Browser.getDriver().switchTo().window(firstWindowHandle); - } - - /** - * Checks that multiple elements can be selected in the logical structure tree using the - * ctrl and shift keys. Verifies that selection is applied to pagination panel and gallery. - */ - @Test - public void multiSelectInLogicalStructureTreeTest() throws Exception { - login("kowal"); - - // open metadata editor - Pages.getProcessesPage().goTo().editMetadata(MockDatabase.MEDIA_RENAMING_TEST_PROCESS_TITLE); - - // wait until logical structure tree is available - MetadataEditorPage metaDataEditor = Pages.getMetadataEditorPage(); - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement(By.id("logicalTree")).isDisplayed()); - - // select first page - metaDataEditor.selectStructureTreeNode("0_0", false, false); - - // verify metadata shows of first page is displayed - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement( - By.id("metadataAccordion:metadata:metadataTable:0:inputText") - ).getAttribute("value").equals("-")); - - // select second page with ctrl - metaDataEditor.selectStructureTreeNode("0_1", true, false); - - // verify metadata panel is empty - await().ignoreExceptions().pollDelay(100, TimeUnit.MILLISECONDS).atMost(5, TimeUnit.SECONDS) - .until(() -> Browser.getDriver().findElement( - By.id("metadataAccordion:metadata:metadataTable") - ).getText().equals("No records found.")); - - // verify both pages are selected in pagination panel - metaDataEditor.checkPaginationSelection(2); - - // verify both pages are selected in gallery - metaDataEditor.checkGallerySelection(2); - - // select last page - metaDataEditor.selectStructureTreeNode("0_2", false, false); - - // select first page with shift (range select) - metaDataEditor.selectStructureTreeNode("0_0", false, true); - - // verify all pages are selected in pagination panel - metaDataEditor.checkPaginationSelection(3); - - // verify all pages are selected in gallery - metaDataEditor.checkGallerySelection(3); - } - - /** - * Close metadata editor and logout after every test. - * @throws Exception when page navigation fails - */ - @AfterEach - public void closeEditorAndLogout() throws Exception { - Pages.getMetadataEditorPage().closeEditor(); - Pages.getTopNavigation().logout(); - } - - /** - * Cleanup test environment by removing temporal dummy processes from database and index. - * @throws DAOException when dummy process cannot be removed from database - * @throws CustomResponseException when dummy process cannot be removed from index - * @throws DataException when dummy process cannot be removed from index - * @throws IOException when deleting test files fails. - */ - @AfterAll - public static void cleanup() throws DAOException, CustomResponseException, DataException, IOException { - for (int processId : processHierarchyTestProcessIds) { - ProcessService.deleteProcess(processId); - } - ProcessService.deleteProcess(mediaReferencesProcessId); - ProcessService.deleteProcess(metadataLockProcessId); - ProcessService.deleteProcess(renamingMediaProcessId); - ProcessService.deleteProcess(dragndropProcessId); - ProcessService.deleteProcess(createStructureAndDragndropProcessId); - ProcessService.deleteProcess(createStructureProcessId); - ProcessService.deleteProcess(linkPageToNextDivisionProcessId); - } - - private void login(String username) throws InstantiationException, IllegalAccessException, InterruptedException { - User metadataUser = ServiceManager.getUserService().getByLogin(username); - Pages.getLoginPage().goTo().performLogin(metadataUser); - } - - private static void insertTestProcessForMediaReferencesTest() throws DAOException, DataException { - mediaReferencesProcessId = MockDatabase.insertTestProcessForMediaReferencesTestIntoSecondProject(); - } - - private static void insertTestProcessForMetadataLockTest() throws DAOException, DataException { - metadataLockProcessId = MockDatabase.insertTestProcessForMetadataLockTestIntoSecondProject(); - } - - private static void insertTestProcessForRenamingMediaFiles() throws DAOException, DataException { - renamingMediaProcessId = MockDatabase.insertTestProcessForRenamingMediaTestIntoSecondProject(); - } - - private static void insertTestProcessForDragAndDrop() throws DAOException, DataException { - dragndropProcessId = MockDatabase.insertTestProcessForDragNDropTestIntoSecondProject(); - } - - private static void insertTestProcessForCreateStructureAndDragAndDrop() throws DAOException, DataException { - createStructureAndDragndropProcessId = MockDatabase.insertTestProcessForCreateStructureAndDragNDropTestIntoSecondProject(); - } - - private static void insertTestProcessForCreatingStructureElement() throws DAOException, DataException { - createStructureProcessId = MockDatabase.insertTestProcessForCreatingStructureElementIntoSecondProject(); - } - - /** - * Creates dummy parent process and links first two test processes as child processes to parent process. - * @throws DAOException if loading of processes fails - * @throws DataException if saving of processes fails - */ - private static List linkProcesses() throws DAOException, DataException { - List processIds = new LinkedList<>(); - List childProcesses = new LinkedList<>(); - childProcesses.add(ProcessTestUtils.addProcess(FIRST_CHILD_PROCESS_TITLE)); - childProcesses.add(ProcessTestUtils.addProcess(SECOND_CHILD_PROCESS_TITLE)); - Process parentProcess = ProcessTestUtils.addProcess(PARENT_PROCESS_TITLE); - parentProcess.getChildren().addAll(childProcesses); - ServiceManager.getProcessService().save(parentProcess); - parentProcessId = parentProcess.getId(); - for (Process childProcess : childProcesses) { - childProcess.setParent(parentProcess); - ServiceManager.getProcessService().save(childProcess); - processIds.add(childProcess.getId()); - } - processIds.add(parentProcess.getId()); - return processIds; - } - - private static void copyTestFilesForMediaReferences() throws IOException, DAOException, DataException { - ProcessTestUtils.copyTestFiles(mediaReferencesProcessId, TEST_MEDIA_REFERENCES_FILE); - } - - private static void copyTestFilesForRenamingMediaFiles() throws IOException, DAOException, DataException { - ProcessTestUtils.copyTestFiles(renamingMediaProcessId, TEST_RENAME_MEDIA_FILE); - } - - private static void copyTestFilesForDragAndDrop() throws IOException, DAOException, DataException { - ProcessTestUtils.copyTestFiles(dragndropProcessId, TEST_RENAME_MEDIA_FILE); - } - - private static void copyTestFilesForCreateStructureAndDragAndDrop() throws IOException, DAOException, DataException { - ProcessTestUtils.copyTestFiles(createStructureAndDragndropProcessId, TEST_RENAME_MEDIA_FILE); - } - - private static void copyTestFilesForCreateStructure() throws DAOException, DataException, IOException { - ProcessTestUtils.copyTestFiles(createStructureProcessId, TEST_RENAME_MEDIA_FILE); - } - - private static void copyTestParentProcessMetadataFile() throws IOException, DAOException, DataException { - ProcessTestUtils.copyTestMetadataFile(parentProcessId, TEST_PARENT_PROCESS_METADATA_FILE); - } - - private static void updateChildProcessIdsInParentProcessMetadataFile() throws IOException, DAOException { - Process parentProcess = ServiceManager.getProcessService().getById(parentProcessId); - Path metaXml = Paths.get(ConfigCore.getKitodoDataDirectory(), parentProcessId + ProcessTestUtils.META_XML); - String xmlContent = Files.readString(metaXml); - String firstChildId = String.valueOf(parentProcess.getChildren().get(0).getId()); - String secondChildId = String.valueOf(parentProcess.getChildren().get(1).getId()); - xmlContent = xmlContent.replaceAll(FIRST_CHILD_ID, String.valueOf(firstChildId)); - xmlContent = xmlContent.replaceAll(SECOND_CHILD_ID, String.valueOf(secondChildId)); - Files.write(metaXml, xmlContent.getBytes()); - } - - private void pollAssertTrue(Callable conditionEvaluator) { - await().ignoreExceptions() - .pollDelay(1, TimeUnit.SECONDS) - .pollInterval(100, TimeUnit.MILLISECONDS) - .atMost(5, TimeUnit.SECONDS) - .until(conditionEvaluator); - } -} +a\@\@Mƒ]@า‰ฃ–„–K@า…จ@ฃ–@„‰‡‰ฃ“@–‚‘…ƒฃข@…K@ๅK@Lƒ–•ฃƒฃ|’‰ฃ–„–K–™‡n@\@\@ใˆ‰ข@†‰“…@‰ข@—™ฃ@–†@ฃˆ…@า‰ฃ–„–@—™–‘…ƒฃK@\@\@ษฃ@‰ข@“‰ƒ…•ข…„@ค•„…™@วีไ@ว…•…™“@ืค‚“‰ƒ@ำ‰ƒ…•ข…@ฅ…™ข‰–•@๓@–™@“ฃ…™K@\@\@ฦ–™@ฃˆ…@†ค““@ƒ–—จ™‰‡ˆฃ@•„@“‰ƒ…•ข…@‰•†–™”ฃ‰–•k@—“…ข…@™…„@ฃˆ…@\@วืำ๓`ำ‰ƒ…•ข…Kฃงฃ@†‰“…@ฃˆฃ@ฆข@„‰ขฃ™‰‚คฃ…„@ฆ‰ฃˆ@ฃˆ‰ข@ข–ค™ƒ…@ƒ–„…K@\a—ƒ’‡…@–™‡K’‰ฃ–„–Kข…“…•‰ค”^‰”—–™ฃ@ขฃฃ‰ƒ@–™‡Kฆ‰ฃ‰“‰ฃจKมฆ‰ฃ‰“‰ฃจKฆ‰ฃ^‰”—–™ฃ@ขฃฃ‰ƒ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kมขข…™ฃ‰–•ขKขข…™ฃล˜ค“ข^‰”—–™ฃ@ขฃฃ‰ƒ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kมขข…™ฃ‰–•ขKขข…™ฃฦ“ข…^‰”—–™ฃ@ขฃฃ‰ƒ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kมขข…™ฃ‰–•ขKขข…™ฃี–ฃล˜ค“ข^‰”—–™ฃ@ขฃฃ‰ƒ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kมขข…™ฃ‰–•ขKขข…™ฃใ™ค…^‰”—–™ฃ@‘ฅK‰–Kษึลงƒ…—ฃ‰–•^‰”—–™ฃ@‘ฅK•‰–K†‰“…Kฦ‰“…ข^‰”—–™ฃ@‘ฅK•‰–K†‰“…Kืฃˆ^‰”—–™ฃ@‘ฅK•‰–K†‰“…Kืฃˆข^‰”—–™ฃ@‘ฅKคฃ‰“Kำ‰•’…„ำ‰ขฃ^‰”—–™ฃ@‘ฅKคฃ‰“Kำ‰ขฃ^‰”—–™ฃ@‘ฅKคฃ‰“Kƒ–•ƒค™™…•ฃKร““‚“…^‰”—–™ฃ@‘ฅKคฃ‰“Kƒ–•ƒค™™…•ฃKใ‰”…ไ•‰ฃ^‰”—–™ฃ@‘ฅKคฃ‰“K†ค•ƒฃ‰–•Kฦค•ƒฃ‰–•^‰”—–™ฃ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kม†ฃ…™ม““^‰”—–™ฃ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kม†ฃ…™ลƒˆ^‰”—–™ฃ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kย…†–™…ม““^‰”—–™ฃ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kฤ‰ข‚“…„^‰”—–™ฃ@–™‡K‘ค•‰ฃK‘ค—‰ฃ…™K—‰Kใ…ขฃ^‰”—–™ฃ@–™‡K’‰ฃ–„–Kิ–ƒ’ฤฃ‚ข…^‰”—–™ฃ@–™‡K’‰ฃ–„–Kƒ–•†‰‡Kร–•†‰‡ร–™…^‰”—–™ฃ@–™‡K’‰ฃ–„–K„ฃK„ฃ‚ข…K‚…•ขKื™–ƒ…ขข^‰”—–™ฃ@–™‡K’‰ฃ–„–K„ฃK„ฃ‚ข…K‚…•ขKไข…™^‰”—–™ฃ@–™‡K’‰ฃ–„–K„ฃK„ฃ‚ข…K…งƒ…—ฃ‰–•ขKฤมึลงƒ…—ฃ‰–•^‰”—–™ฃ@–™‡K’‰ฃ–„–K„ฃK…“ขฃ‰ƒข…™ƒˆK…งƒ…—ฃ‰–•ขKรคขฃ–”ู…ข—–•ข…ลงƒ…—ฃ‰–•^‰”—–™ฃ@–™‡K’‰ฃ–„–K„ฃK…งƒ…—ฃ‰–•ขKฤฃลงƒ…—ฃ‰–•^‰”—–™ฃ@–™‡K’‰ฃ–„–K—™–„คƒฃ‰–•Kข…™ฅ‰ƒ…ขKโ…™ฅ‰ƒ…ิ•‡…™^‰”—–™ฃ@–™‡K’‰ฃ–„–K—™–„คƒฃ‰–•Kข…™ฅ‰ƒ…ขK„ฃKื™–ƒ…ขขโ…™ฅ‰ƒ…^‰”—–™ฃ@–™‡K’‰ฃ–„–Kข…“…•‰ค”Kฃ…ขฃ†™”…ฆ–™’Kยข…ใ…ขฃโ…“…•‰ค”^‰”—–™ฃ@–™‡K’‰ฃ–„–Kข…“…•‰ค”Kฃ…ขฃ†™”…ฆ–™’Kย™–ฆข…™^‰”—–™ฃ@–™‡K’‰ฃ–„–Kข…“…•‰ค”Kฃ…ขฃ†™”…ฆ–™’Kื‡…ข^‰”—–™ฃ@–™‡K’‰ฃ–„–Kข…“…•‰ค”Kฃ…ขฃ†™”…ฆ–™’K—‡…ขKิ…ฃ„ฃล„‰ฃ–™ื‡…^‰”—–™ฃ@–™‡K’‰ฃ–„–Kฃ…ขฃKคฃ‰“ขKื™–ƒ…ขขใ…ขฃไฃ‰“ข^‰”—–™ฃ@–™‡K–—…•˜Kข…“…•‰ค”Kยจ^‰”—–™ฃ@–™‡K–—…•˜Kข…“…•‰ค”Kๆ…‚ล“…”…•ฃ^‰”—–™ฃ@–™‡K–—…•˜Kข…“…•‰ค”K‰•ฃ…™ƒฃ‰–•ขKมƒฃ‰–•ข^a\\@\@ใ…ขฃข@†–™@†ค•ƒฃ‰–•ข@‰•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™K@\a—ค‚“‰ƒ@ƒ“ขข@ิ…ฃ„ฃโใ@…งฃ…•„ข@ยข…ใ…ขฃโ…“…•‰ค”@ภ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ใลโใmิลฤษมmูลฦลูลีรลโmฦษำล@~@ฃ…ขฃไ—„ฃ…„ิ…„‰ู…†…™…•ƒ…ขิ…ฃKง”“^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ใลโใmิลใมฤมใมmำึราmฦษำล@~@ฃ…ขฃิ…ฃ„ฃำ–ƒ’ิ…ฃKง”“^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ใลโใmูลีมิลmิลฤษมmฦษำล@~@ฃ…ขฃู…•”…ิ…„‰ิ…ฃKง”“^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ใลโใmำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmิลฤษมmฦษำล@~@ฃ…ขฃำ‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ิ…ฃKง”“^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@”…„‰ู…†…™…•ƒ…ขื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@”…ฃ„ฃำ–ƒ’ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@—™…•ฃื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@™…•”‰•‡ิ…„‰ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@„™‡•„™–—ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@ƒ™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡•„™–—ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@ƒ™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@‰•ฃ@“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ื™–ƒ…ขขษ„@~@`๑^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ืมูลีใmืูึรลโโmใษใำล@~@ื™…•ฃ@—™–ƒ…ขข^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ฦษูโใmรศษำฤmืูึรลโโmใษใำล@~@ฦ‰™ขฃ@ƒˆ‰“„@—™–ƒ…ขข^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@โลรึีฤmรศษำฤmืูึรลโโmใษใำล@~@โ…ƒ–•„@ƒˆ‰“„@—™–ƒ…ขข^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmืูึรลโโmใษใำล@~@ำ‰•’@—‡…@ฃ–@•…งฃ@„‰ฅ‰ข‰–•^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ใลโใmืมูลีใmืูึรลโโmิลใมฤมใมmฦษำล@~@ฃ…ขฃื™…•ฃื™–ƒ…ขขิ…ฃKง”“^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ฦษูโใmรศษำฤmษฤ@~@ฦษูโใmรศษำฤmษฤ^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@โลรึีฤmรศษำฤmษฤ@~@โลรึีฤmรศษำฤmษฤ^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ำ‰ขฃLษ•ฃ…‡…™n@—™–ƒ…ขขศ‰…™™ƒˆจใ…ขฃื™–ƒ…ขขษ„ข@~@•…ฆ@ำ‰•’…„ำ‰ขฃLnM]^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@ฦษูโใmโใูไรใไูลmใูลลmีึฤลmำมยลำ@~@๑@z@`^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@†‰•“@โฃ™‰•‡@โลรึีฤmโใูไรใไูลmใูลลmีึฤลmำมยลำ@~@๒@z@`^@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ิ…„‰ู…†…™…•ƒ…ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…„‰ู…†…™…•ƒ…ขใ…ขฃM]^@@@@@@@@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ิ…„‰ู…†…™…•ƒ…ขM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ิ…ฃ„ฃำ–ƒ’ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…ฃ„ฃำ–ƒ’ใ…ขฃM]^@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃิ…ฃ„ฃฦ‰“…M”…ฃ„ฃำ–ƒ’ื™–ƒ…ขขษ„k@ใลโใmิลใมฤมใมmำึราmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ื™–ƒ…ขขศ‰…™™ƒˆจื™–ƒ…ขข…ขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@—™–ƒ…ขขศ‰…™™ƒˆจใ…ขฃื™–ƒ…ขขษ„ข@~@“‰•’ื™–ƒ…ขข…ขM]^@@@@@@@@ƒ–—จใ…ขฃื™…•ฃื™–ƒ…ขขิ…ฃ„ฃฦ‰“…M]^@@@@@@@@ค—„ฃ…รˆ‰“„ื™–ƒ…ขขษ„ขษ•ื™…•ฃื™–ƒ…ขขิ…ฃ„ฃฦ‰“…M]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ิ…„‰ู…•”‰•‡ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ู…•”‰•‡ิ…„‰ฦ‰“…ขM]^@@@@@@@@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ู…•”‰•‡ิ…„‰ฦ‰“…ขM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ฤ™‡ีฤ™–—ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ฤ™‡ม•„ฤ™–—M]^@@@@@@@@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ฤ™‡ม•„ฤ™–—M]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ีฤ™–—ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ม•„ฤ™–—M]^@@@@@@@@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ม•„ฤ™–—M]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ร™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ‰•‡โฃ™คƒฃค™…ล“…”…•ฃM]^@@@@@@@@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ร™…ฃ…โฃ™คƒฃค™…M]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…ำ‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃMำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmืูึรลโโmใษใำล]^@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขM“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ื™–ƒ…ขขษ„k@ใลโใmำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmิลฤษมmฦษำล]^@@@@ะ@@@@a\\@@@@@\@ื™…—™…@ฃ…ขฃข@‚จ@‰•ข…™ฃ‰•‡@„ค””จ@—™–ƒ…ขข…ข@‰•ฃ–@„ฃ‚ข…@•„@‰•„…ง@†–™@ขค‚`†–“„…™ข@–†@ฃ…ขฃ@”…ฃ„ฃ@™…ข–ค™ƒ…ขK@@@@@\@|ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•@ฆˆ…•@ขฅ‰•‡@–†@„ค””จ@–™@ฃ…ขฃ@—™–ƒ…ขข…ข@†‰“ขK@@@@@\@|ฃˆ™–ฆข@ฤฃลงƒ…—ฃ‰–•@ฆˆ…•@™…ฃ™‰…ฅ‰•‡@ฃ…ขฃ@—™–‘…ƒฃ@†–™@ฃ…ขฃ@—™–ƒ…ขข…ข@†‰“ขK@@@@@\@|ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•@ฆˆ…•@ƒ–—จ‰•‡@ฃ…ขฃ@”…ฃ„ฃ@–™@‰”‡…@†‰“…ข@†‰“ขK@@@@@\a@@@@|ย…†–™…ม““@@@@—ค‚“‰ƒ@ขฃฃ‰ƒ@ฅ–‰„@—™…—™…M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃฦ–“„…™ขฦ–™โ…ƒ–•„ื™–‘…ƒฃM]^@@@@@@@@—™…—™…ิ…ฃ„ฃำ–ƒ’ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ิ…„‰ู…†…™…•ƒ…ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ื™–ƒ…ขขศ‰…™™ƒˆจื™–ƒ…ขข…ขM]^@@@@@@@@—™…—™…ิ…„‰ู…•”‰•‡ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ฤ™‡ีฤ™–—ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ีฤ™–—ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ร™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขM]^@@@@@@@@—™…—™…ำ‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•M]^@@@@ะ@@@@a\\@@@@@\@ใ…ขฃข@ฆˆ…ฃˆ…™@ขฃ™คƒฃค™…@ฃ™……@‰ข@ˆ‰„„…•@ฆˆ…•@คข…™@“ƒ’ข@—…™”‰ขข‰–•@ฃ–@ข……@@—™–ƒ…ขข@ขฃ™คƒฃค™…@‰•@”…ฃ„ฃ@…„‰ฃ–™K@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ˆ‰„…โฃ™คƒฃค™…ฤฃใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•Mฅ…™จ“ขฃ]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลใมฤมใมmำึราmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃฦ“ข…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‰ขโฃ™คƒฃค™…ใ™……ฦ–™”ๅ‰ข‰‚“…M]]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…M]^@@@@ะ@@@@a\\@@@@@\@ใ…ขฃข@‰†@—™–ƒ…ขข@”…ฃ„ฃ@“–ƒ’@‰ข@‚…‰•‡@™…”–ฅ…„@ฆˆ…•@ฃˆ…@คข…™@“…ฅ…ข@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@\@ฆ‰ฃˆ–คฃ@ƒ“‰ƒ’‰•‡@ฃˆ…@ƒ“–ข…@‚คฃฃ–•K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@™…”–ฅ…ิ…ฃ„ฃำ–ƒ’ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@aa@ึ—…•@—™–ƒ…ขข@‰•@”…ฃ„ฃ@…„‰ฃ–™@‚จ@„…†ค“ฃ@คข…™@ฃ–@ข…ฃ@”…ฃ„ฃ@“–ƒ’@†–™@ฃˆ‰ข@—™–ƒ…ขข@•„@คข…™@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลใมฤมใมmำึราmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…M]^@@@@@@@@aa@ำ…ฅ…@”…ฃ„ฃ@…„‰ฃ–™@ฆ‰ฃˆ–คฃ@…ง—“‰ƒ‰ฃ“จ@ƒ“‰ƒ’‰•‡@ฃˆ…@}ƒ“–ข…}@‚คฃฃ–•@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“‰ƒ’ื–™ฃ“ำ–‡–M]^@@@@@@@@aa@ใ™จ@ฃ–@–—…•@”…ฃ„ฃ@…„‰ฃ–™@ฆ‰ฃˆ@ข…—™ฃ…@คข…™@ฃ–@ƒˆ…ƒ’@ฆˆ…ฃˆ…™@”…ฃ„ฃ@“–ƒ’@‰ข@ขฃ‰““@‰•@—“ƒ…@@@@@@@@ื‡…ขK‡…ฃใ–—ีฅ‰‡ฃ‰–•M]K“–‡–คฃM]^@@@@@@@@“–‡‰•Mฅ…™จ“ขฃ]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลใมฤมใมmำึราmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃใ™ค…Mย™–ฆข…™K‡…ฃรค™™…•ฃไ™“M]Kƒ–•ฃ‰•ขM”…ฃ„ฃล„‰ฃ–™K‘ข†]k@ไ•‚“…@ฃ–@–—…•@”…ฃ„ฃ@…„‰ฃ–™@ฃˆฃ@ฆข@•–ฃ@ƒ“–ข…„@‚จ@}ƒ“–ข…}@‚คฃฃ–•]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@“‰•’…„@ƒˆ‰“„@—™–ƒ…ขข…ข@ƒ•@‚…@™…–™„…™…„@ฅ‰@„™‡}•}„™–—@‰•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™K@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@‰†@—™–ƒ…ขข…ข@ƒ••–ฃ@‚…@ขฅ…„@–™@“–„…„@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ƒˆ•‡…ื™–ƒ…ขขำ‰•’ึ™„…™ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃื™…•ฃื™–ƒ…ขขิ…ฃ„ฃM]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃี”…ึ†ฦ‰™ขฃำ‰•’…„รˆ‰“„ื™–ƒ…ขขM]K…•„ขๆ‰ฃˆMฦษูโใmรศษำฤmืูึรลโโmใษใำล]k@ๆ™–•‡@‰•‰ฃ‰“@–™„…™@–†@“‰•’…„@ƒˆ‰“„@—™–ƒ…ขข…ข]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃโ…ƒ–•„ู––ฃล“…”…•ฃรˆ‰“„ำ‚…“M]K…•„ขๆ‰ฃˆMโลรึีฤmรศษำฤmืูึรลโโmใษใำล]k@ๆ™–•‡@‰•‰ฃ‰“@–™„…™@–†@“‰•’…„@ƒˆ‰“„@—™–ƒ…ขข…ข]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒˆ•‡…ึ™„…™ึ†ำ‰•’…„รˆ‰“„ื™–ƒ…ขข…ขM]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…ม•„ลง‰ฃM]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃื™…•ฃื™–ƒ…ขขิ…ฃ„ฃM]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃี”…ึ†ฦ‰™ขฃำ‰•’…„รˆ‰“„ื™–ƒ…ขขM]K…•„ขๆ‰ฃˆMโลรึีฤmรศษำฤmืูึรลโโmใษใำล]k@ๆ™–•‡@™…ขค“ฃ‰•‡@–™„…™@–†@“‰•’…„@ƒˆ‰“„@—™–ƒ…ขข…ข]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃโ…ƒ–•„ู––ฃล“…”…•ฃรˆ‰“„ำ‚…“M]K…•„ขๆ‰ฃˆMฦษูโใmรศษำฤmืูึรลโโmใษใำล]k@ๆ™–•‡@™…ขค“ฃ‰•‡@–™„…™@–†@“‰•’…„@ƒˆ‰“„@—™–ƒ…ขข…ข]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ƒ“‰ƒ’‰•‡@ฃˆ…@ƒ–““—ข…@““@•„@…ง—•„@““@‚คฃฃ–•ข@‰•@ฃˆ…@ขฃ™คƒฃค™…@—•…“@–†@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@\@„–…ข@‰•„……„@ƒ–““—ข…@•„@…ง—•„@““@ฃ™……@•–„…ข@ƒ–™™…ƒฃ“จK@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ฃ–‡‡“…ม““โฃ™คƒฃค™…ี–„…ขใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลใมฤมใมmำึราmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃล˜ค“ขM๒k@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃีค”‚…™ึ†ฤ‰ข—“จ…„โฃ™คƒฃค™…ล“…”…•ฃขM]k@ีค”‚…™@–†@ฅ‰ข‰‚“…@•–„…ข@‰ข@ฆ™–•‡@‰•‰ฃ‰““จ]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ–““—ข…ม““M]^@@@@@@@@ขข…™ฃล˜ค“ขM๑k@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃีค”‚…™ึ†ฤ‰ข—“จ…„โฃ™คƒฃค™…ล“…”…•ฃขM]k@ีค”‚…™@–†@ฅ‰ข‰‚“…@•–„…ข@†ฃ…™@ƒ–““—ข‰•‡@““@‰ข@ฆ™–•‡]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K…ง—•„ม““M]^@@@@@@@@ขข…™ฃล˜ค“ขM๒k@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃีค”‚…™ึ†ฤ‰ข—“จ…„โฃ™คƒฃค™…ล“…”…•ฃขM]k@ีค”‚…™@–†@ฅ‰ข‰‚“…@•–„…ข@†ฃ…™@…ง—•„‰•‡@““@‰ข@ฆ™–•‡]^@@@@ะ@@@@a\\@@@@@\@ใ…ขฃข@ฃ–ฃ“@•ค”‚…™@–†@ขƒ•ขK@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ฃ–ฃ“ีค”‚…™ึ†โƒ•ขใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃล˜ค“ขMM๓@ิ…„‰…•]k@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃีค”‚…™ึ†โƒ•ขM]k@ใ–ฃ“@•ค”‚…™@–†@ขƒ•ข@‰ข@•–ฃ@ƒ–™™…ƒฃ]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ฃค™•‰•‡@ฃˆ…@—‡‰•ฃ‰–•@—•…“@ขฆ‰ฃƒˆ@–•@‰•@ฃˆ…@คข…™@ข…ฃฃ‰•‡ข@@@@@\@™…ขค“ฃข@‰•@—‡‰•ฃ‰–•@—•…“@‚…‰•‡@„‰ข—“จ…„@‚จ@„…†ค“ฃ@‰•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ขˆ–ฆื‡‰•ฃ‰–•ยจฤ…†ค“ฃใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃฦ“ข…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‰ขื‡‰•ฃ‰–•ื•…“ๅ‰ข‰‚“…M]]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“–ข…ล„‰ฃ–™M]^@@@@@@@@ื‡…ขK‡…ฃไข…™ล„‰ฃื‡…M]Kฃ–‡‡“…ื‡‰•ฃ‰–•ใ–โˆ–ฆยจฤ…†ค“ฃM]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‰ขื‡‰•ฃ‰–•ื•…“ๅ‰ข‰‚“…M]]^@@@@@@@@aa@„‰ข‚“…@—‡‰•ฃ‰–•@‡‰•@ฃ–@—™…ฅ…•ฃ@ƒ–•†“‰ƒฃข@ฆ‰ฃˆ@–ฃˆ…™@ฃ…ขฃข@Mฆˆ…•@‰•ฃ…™ƒฃ‰•‡@ฆ‰ฃˆ@”…ฃ„ฃ@ฃ‚“…]@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“–ข…ล„‰ฃ–™M]^@@@@@@@@ื‡…ขK‡…ฃไข…™ล„‰ฃื‡…M]Kฃ–‡‡“…ื‡‰•ฃ‰–•ใ–โˆ–ฆยจฤ…†ค“ฃM]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃฦ“ข…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‰ขื‡‰•ฃ‰–•ื•…“ๅ‰ข‰‚“…M]]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ƒˆ•‡‰•‡@ฃˆ…@—‡‰•ฃ‰–•@ฃจ—…@„–…ข@•–ฃ@™…ข…ฃ@ฃˆ…@ข…“…ƒฃ…„@—‡‰•ฃ‰–•@ขƒ–—…K@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@’……—ื‡‰•ฃ‰–•โƒ–—…ึ•ื‡‰•ฃ‰–•ใจ—…รˆ•‡…ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@โฃ™‰•‡@—‡‰•ฃ‰–•ใ–‡‡“…™ษ„@~@ข…ƒ–•„โ…ƒฃ‰–•โ…ƒ–•„ร–“ค”•ใ–‡‡“…™^@@@@@@@@โฃ™‰•‡@—‡‰•ฃ‰–•โƒ–—…ษ„@~@—‡‰•ฃ‰–•ฦ–™”zข…“…ƒฃื‡‰•ฃ‰–•โƒ–—…^@@@@@@@@โฃ™‰•‡@—‡‰•ฃ‰–•ใจ—…ษ„@~@—‡‰•ฃ‰–•ฦ–™”z—‡‰•ฃ‰–•ใจ—…โ…“…ƒฃ^@@@@@@@@โฃ™‰•‡@ข…ƒ–•„ใจ—…รขขโ…“…ƒฃ–™@~@{—‡‰•ฃ‰–•ฦ–™”เเz—‡‰•ฃ‰–•ใจ—…โ…“…ƒฃm‰ฃ…”ข@“‰z•ฃˆ`ƒˆ‰“„M๒]^@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•ใ–‡‡“…™ษ„]]Kƒ“‰ƒ’M]^@@@@@@@@aa@‡…ฃ@ƒค™™…•ฃ@ขƒ–—…@ฅ“ค…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•โƒ–—…ษ„]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@โฃ™‰•‡@ขƒ–—…@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•โƒ–—…ษ„]]K‡…ฃใ…งฃM]^@@@@@@@@aa@ƒˆ•‡…@—‡‰•ฃ‰–•@ฃจ—…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•ใจ—…ษ„]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•ใจ—…ษ„]]Kƒ“‰ƒ’M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™Mข…ƒ–•„ใจ—…รขขโ…“…ƒฃ–™]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™Mข…ƒ–•„ใจ—…รขขโ…“…ƒฃ–™]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฅ…™‰†จ@ฃˆฃ@ขƒ–—…@ฅ“ค…@„‰„@•–ฃ@ƒˆ•‡…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•โƒ–—…ษ„]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@โฃ™‰•‡@ขƒ–—…ไ—„ฃ…„@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M—‡‰•ฃ‰–•โƒ–—…ษ„]]K‡…ฃใ…งฃM]^@@@@@@@@ขข…™ฃล˜ค“ขMขƒ–—…k@ขƒ–—…ไ—„ฃ…„k@ื‡‰•ฃ‰–•@ขƒ–—…@ƒˆ•‡…„@†ฃ…™@ƒˆ•‡‰•‡@—‡‰•ฃ‰–•@ฃจ—…]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ƒˆ•‡‰•‡@—™–ƒ…ขข@‰”‡…ข@–•@†‰“…@ขจขฃ…”@ฃ™‰‡‡…™ข@‰•†–™”ฃ‰–•aฆ™•‰•‡@„‰“–‡K@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ค—„ฃ…ิ…„‰ู…†…™…•ƒ…ขใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลฦลูลีรลโmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]@@@@@@@@@@@@@@@@K‰ขฦ‰“…ู…†…™…•ƒ…ขไ—„ฃ…„ฤ‰“–‡ๅ‰ข‰‚“…M]k@ิ…„‰@™…†…™…•ƒ…ข@ค—„ฃ…„@„‰“–‡@•–ฃ@ฅ‰ข‰‚“…]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ’•–ฆ“…„‡…ฦ‰“…ู…†…™…•ƒ…รˆ•‡…ขM]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@™…•”‰•‡@”…„‰@†‰“…ข@ขˆ–ฆข@}™…•”‰•‡@ขคƒƒ…ขข†ค“}@„‰“–‡@•„@™…•”…ข@†‰“…ข@ƒ–™™…ƒฃ“จ@ƒƒ–™„‰•‡@ฃ–@@@@@\@ฃˆ…‰™@ƒ–™™…ข—–•„‰•‡@—ˆจข‰ƒ“@„‰ฅ‰ข‰–•ข@ึูฤลู@ฃฃ™‰‚คฃ…K@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@™…•”…ิ…„‰ฦ‰“…ขใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ขข…™ฃล˜ค“ขMฦษูโใmโใูไรใไูลmใูลลmีึฤลmำมยลำk@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃโ…ƒ–•„ู––ฃล“…”…•ฃรˆ‰“„ำ‚…“M]k@โ…ƒ–•„@ƒˆ‰“„@•–„…@‰•@ขฃ™คƒฃค™…@ฃ™……@ˆข@ฆ™–•‡@“‚…“@ยลฦึูล@™…•”‰•‡@”…„‰@†‰“…ข]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K™…•”…ิ…„‰M]^@@@@@@@@ขข…™ฃใ™ค…Mื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]@@@@@@@@@@@@@@@@K‰ขู…•”‰•‡ิ…„‰ฦ‰“…ขฤ‰“–‡ๅ‰ข‰‚“…M]k@}ู…•”‰•‡@”…„‰@†‰“…ข@ฆข@ขคƒƒ…ขข†ค“}@„‰“–‡@‰ข@•–ฃ@ฅ‰ข‰‚“…]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ’•–ฆ“…„‡…ู…•”‰•‡ิ…„‰ฦ‰“…ขM]^@@@@@@@@ขข…™ฃล˜ค“ขMโลรึีฤmโใูไรใไูลmใูลลmีึฤลmำมยลำk@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K‡…ฃโ…ƒ–•„ู––ฃล“…”…•ฃรˆ‰“„ำ‚…“M]k@โ…ƒ–•„@ƒˆ‰“„@•–„…@‰•@ขฃ™คƒฃค™…@ฃ™……@ˆข@ฆ™–•‡@“‚…“@มฦใลู@™…•”‰•‡@”…„‰@†‰“…ข]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ข‰•‡“…@ฃˆค”‚•‰“@„™‡@•„@„™–—@†ค•ƒฃ‰–•“‰ฃจ@‰•@‡““…™จK@@@@@\@@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@–™@—™–ƒ…ขข@ขฅ‰•‡@†‰“ขK@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ข‰•‡“…ฤ™‡ม•„ฤ™–—ื‡…ว““…™จใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ิ…ฃ„ฃล„‰ฃ–™ื‡…@”…ฃฤฃล„‰ฃ–™@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@‡““…™จ@‰ข@ฅ‰ข‰‚“…k@—‡…@–™„…™@ขˆ–ค“„@‚…@๒`๑`๓@@@@@@@@ๆ…‚ล“…”…•ฃ@ค•ขฃ™คƒฃค™…„ิ…„‰@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰]]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mค•ขฃ™คƒฃค™…„ิ…„‰zz‰ขฤ‰ข—“จ…„]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@†‰™ขฃ@—‡…@‰ข@ฅ‰ข‰‚“…@‰•@ค•ขฃ™คƒฃค™…„@”…„‰@ขฃ™‰—…@@@@@@@@ๆ…‚ล“…”…•ฃ@„™‡ใˆค”‚•‰“@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๐zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“]]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“M„™‡ใˆค”‚•‰“zz‰ขฤ‰ข—“จ…„]^@@@@@@@@aa@ˆ–ฅ…™@–ฅ…™@ข…ƒ–•„@ฃˆค”‚•‰“@ฃ–@ฅ…™‰†จ@–ฅ…™“จ@ฃ…งฃ@‚…†–™…@„™‡}•}„™–—@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จใˆค”‚•‰“ึฅ…™“จใ…งฃM@@@@@@@@@@@@‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๑zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“k@@@@@@@@@@@@ย‰“„@๑k@โ…‰ฃ…@`k@@@@@@@@@@@@โ…ƒ–•„@ฃˆค”‚•‰“@ˆข@ฆ™–•‡@–ฅ…™“จ@‚…†–™…@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@]^@@@@@@@@aa@„™–—@—–ข‰ฃ‰–•@†–™@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@ๆ…‚ล“…”…•ฃ@„™–—ื–ข‰ฃ‰–•@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๒zค•ขฃ™คƒฃค™…„ื‡…ฤ™–—ม™…]]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“M„™–—ื–ข‰ฃ‰–•zz‰ขฤ‰ข—“จ…„]^@@@@@@@@aa@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@มƒฃ‰–•ข@„™‡ม•„ฤ™–—มƒฃ‰–•@~@•…ฆ@มƒฃ‰–•ขMย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]]^@@@@@@@@„™‡ม•„ฤ™–—มƒฃ‰–•K„™‡ม•„ฤ™–—M„™‡ใˆค”‚•‰“k@„™–—ื–ข‰ฃ‰–•]K‚ค‰“„M]K—…™†–™”M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‚คฃฃ–•ฦ–™”zขฅ…ลง‰ฃ]]zz‰ขล•‚“…„]^@@@@@@@@aa@—‡…@–™„…™@ขˆ–ค“„@•–ฆ@‚…@๑`๒`๓@@@@@@@@aa@ขฅ…@—™–ƒ…ขข@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…ม•„ลง‰ฃM]^@@@@@@@@aa@ƒˆ…ƒ’@ฆˆ…ฃˆ…™@•…ฆ@—–ข‰ฃ‰–•@ˆข@‚……•@ขฅ…„@ƒ–™™…ƒฃ“จ@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จใˆค”‚•‰“ึฅ…™“จใ…งฃM@@@@@@@@@@@@‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๑zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“k@@@@@@@@@@@@ย‰“„@๒k@โ…‰ฃ…@`k@@@@@@@@@@@@โ…ƒ–•„@ฃˆค”‚•‰“@ˆข@ฆ™–•‡@–ฅ…™“จ@†ฃ…™@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@]^@@@@@@@@aa@”–ฅ…@—‡…@๒@‚ƒ’@ฃ–@†‰™ขฃ@—–ข‰ฃ‰–•@@@@@@@@„™‡ใˆค”‚•‰“@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๑zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“]]^@@@@@@@@„™–—ื–ข‰ฃ‰–•@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๐zค•ขฃ™คƒฃค™…„ื‡…ฤ™–—ม™…]]^@@@@@@@@„™‡ม•„ฤ™–—มƒฃ‰–•@~@•…ฆ@มƒฃ‰–•ขMย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]]^@@@@@@@@„™‡ม•„ฤ™–—มƒฃ‰–•K„™‡ม•„ฤ™–—M„™‡ใˆค”‚•‰“k@„™–—ื–ข‰ฃ‰–•]K‚ค‰“„M]K—…™†–™”M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‚คฃฃ–•ฦ–™”zขฅ…ลง‰ฃ]]zz‰ขล•‚“…„]^@@@@@@@@@@@@aa@—‡…@–™„…™@ขˆ–ค“„@•–ฆ@‚…@๒`๑`๓@‡‰•@@@@@@@@@@@@aa@ขฅ…@—™–ƒ…ขข@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…ม•„ลง‰ฃM]^@@@@@@@@aa@ƒˆ…ƒ’@ฆˆ…ฃˆ…™@–™‰‡‰•“@—–ข‰ฃ‰–•@ฆข@ขฅ…„@ƒ–™™…ƒฃ“จ@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จใˆค”‚•‰“ึฅ…™“จใ…งฃM@@@@@@@@@@@@‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๑zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“k@@@@@@@@@@@@ย‰“„@๑k@โ…‰ฃ…@`k@@@@@@@@@@@@โ…ƒ–•„@ฃˆค”‚•‰“@ˆข@ฆ™–•‡@–ฅ…™“จ@†ฃ…™@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@”ค“ฃ‰`ข…“…ƒฃ@„™‡@•„@„™–—@†ค•ƒฃ‰–•“‰ฃจ@‰•@ฃˆ…@“–‡‰ƒ“@ขฃ™คƒฃค™…@ฃ™……K@@@@@\@@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@–™@—™–ƒ…ขข@ขฅ‰•‡@†‰“ขK@@@@@\a@@@@|ใ…ขฃ@@@@|ฤ‰ข‚“…„@@@@—ค‚“‰ƒ@ฅ–‰„@”ค“ฃ‰ฤ™‡ม•„ฤ™–—โฃ™คƒฃค™…ใ™……ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ิ…ฃ„ฃล„‰ฃ–™ื‡…@”…ฃฤฃล„‰ฃ–™@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@“–‡‰ƒ“@ฃ™……@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“ใ™……]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@‡““…™จ@‰ข@ฅ‰ข‰‚“…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@—‡…@–™„…™@‰ข@๒`๑`๓@@@@@@@@aa@ข…“…ƒฃ@—‡…@๑@•„@๓@‰•@ขฃ™คƒฃค™…@ฃ™……@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๑k@†“ข…k@†“ข…]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๒k@ฃ™ค…k@†“ข…]^@@@@@@@@aa@ฅ…™‰†จ@ฃฆ–@‰”‡…ข@™…@ข…“…ƒฃ…„@‰•@‡““…™จ@•„@—‡‰•ฃ‰–•@—•…“@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ื‡‰•ฃ‰–•โ…“…ƒฃ‰–•M๒]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จโ…“…ƒฃ‰–•M๒]^@@@@@@@@aa@„™‡@•„@„™–—@ฃˆ…”@ฃ–@†‰™ขฃ@„™–—@—–ข‰ฃ‰–•@‰•ข‰„…@ขฃ™คƒฃค™…@ฃ™……@@@@@@@@ๆ…‚ล“…”…•ฃ@„™‡ล“…”…•ฃ@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{“–‡‰ƒ“ใ™……เเz๐m๑@Kค‰`ฃ™……•–„…`ƒ–•ฃ…•ฃ]]^@@@@@@@@ๆ…‚ล“…”…•ฃ@„™–—ื–ข‰ฃ‰–•@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M“‰Kค‰`ฃ™……`„™–——–‰•ฃzˆขMN@{“–‡‰ƒ“ใ™……เเz๐m๐]]]^@@@@@@@@•…ฆ@มƒฃ‰–•ขMย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]]K„™‡ม•„ฤ™–—M„™‡ล“…”…•ฃk@„™–—ื–ข‰ฃ‰–•]K‚ค‰“„M]K—…™†–™”M]^@@@@@@@@aa@ฅ…™‰†จ@ข…“…ƒฃ‰–•@‰•@‡““…™จ@•„@—‡‰•ฃ‰–•@—•…“@™…”‰•ข@ƒฃ‰ฅ…@†ฃ…™@„™‡@•„@„™–—@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ื‡‰•ฃ‰–•โ…“…ƒฃ‰–•M๒]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จโ…“…ƒฃ‰–•M๒]^@@@@@@@@aa@—‡…@–™„…™@ขˆ–ค“„@•–ฆ@‚…@๑`๓`๒@@@@@@@@aa@ขฅ…@—™–ƒ…ขข@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…ม•„ลง‰ฃM]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@‡““…™จ@‰ข@ฅ‰ข‰‚“…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จใˆค”‚•‰“ึฅ…™“จใ…งฃM@@@@@@@@@@@@‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๑zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“k@@@@@@@@@@@@ย‰“„@๓k@โ…‰ฃ…@`k@@@@@@@@@@@@โ…ƒ–•„@ฃˆค”‚•‰“@ˆข@ฆ™–•‡@–ฅ…™“จ@†ฃ…™@”ค“ฃ‰`ข…“…ƒฃ@„™‡}•}„™–—@ƒฃ‰–•@@@@@@@@]^@@@@@@@@aa@™…ฅ…™ฃ@—‡…@–™„…™@ฃ–@–™‰‡‰•“@–™„…™@ขคƒˆ@ฃˆฃ@ฃ…ขฃ@‰ข@‰„…”—–ฃ…•ฃ@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๒k@†“ข…k@†“ข…]^@@@@@@@@aa@„™‡@•„@„™–—@—‡…@๒@ฃ–@†‰™ขฃ@„™–—@—–ข‰ฃ‰–•@@@@@@@@„™‡ล“…”…•ฃ@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{“–‡‰ƒ“ใ™……เเz๐m๒@Kค‰`ฃ™……•–„…`ƒ–•ฃ…•ฃ]]^@@@@@@@@„™–—ื–ข‰ฃ‰–•@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]@@@@@@@@@@@@K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M“‰Kค‰`ฃ™……`„™–——–‰•ฃzˆขMN@{“–‡‰ƒ“ใ™……เเz๐m๐]]]^@@@@@@@@•…ฆ@มƒฃ‰–•ขMย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]]K„™‡ม•„ฤ™–—M„™‡ล“…”…•ฃk@„™–—ื–ข‰ฃ‰–•]K‚ค‰“„M]K—…™†–™”M]^@@@@@@@@aa@ขฅ…@—™–ƒ…ขข@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kขฅ…ม•„ลง‰ฃM]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@‡““…™จ@‰ข@ฅ‰ข‰‚“…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๓๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จใˆค”‚•‰“ึฅ…™“จใ…งฃM@@@@@@@@@@@@‰”‡…ื™…ฅ‰…ฆฦ–™”zค•ขฃ™คƒฃค™…„ิ…„‰ำ‰ขฃz๒zค•ขฃ™คƒฃค™…„ิ…„‰ื•…“k@@@@@@@@@@@@ย‰“„@๓k@โ…‰ฃ…@`k@@@@@@@@@@@@ำขฃ@ฃˆค”‚•‰“@ˆข@ฆ™–•‡@–ฅ…™“จ@†ฃ…™@™…ฅ…™ฃ‰•‡@„™‡}•}„™–—@ƒฃ‰–•ข@@@@@@@@]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@†ค•ƒฃ‰–•“‰ฃจ@–†@ƒ™…ฃ‰•‡@ขฃ™คƒฃค™…@…“…”…•ฃข@‰•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@คข‰•‡@ฃˆ…@ขฃ™คƒฃค™…@ฃ™……@ƒ–•ฃ…งฃ@@@@@\@”…•คK@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ƒ™…ฃ…โฃ™คƒฃค™…ล“…”…•ฃใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kรูลมใลmโใูไรใไูลmืูึรลโโmใษใำล]^@@@@@@@@ๆ…‚ล“…”…•ฃ@ƒ™…ฃ…„โฃ™คƒฃค™…@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ™…ฃ…โฃ™คƒฃค™…ล“…”…•ฃM]^@@@@@@@@ขข…™ฃล˜ค“ขMย•„k@ƒ™…ฃ…„โฃ™คƒฃค™…K‡…ฃใ…งฃM]k@ม„„…„@ขฃ™คƒฃค™…@…“…”…•ฃ@ˆข@ฆ™–•‡@ฃจ—…Z]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@”–ฅ‰•‡@”…„‰@ฃ–@•…ฆ“จ@ƒ™…ฃ…„k@‚คฃ@ค•ขฅ…„@ขฃ™คƒฃค™…@…“…”…•ฃ@‰•@ฃˆ…@‡““…™จ@คข‰•‡@„™‡}•}„™–—@ฆ–™’ข@@@@@\@ข@…ง—…ƒฃ…„K@@@@@\@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•‡‰ฅฃ‰–•@†‰“ข@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@”–ฅ…ื‡…ขใ–ไ•ขฅ…„โฃ™คƒฃค™…ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kรูลมใลmโใูไรใไูลmมีฤmฤูมวmีmฤูึืmใลโใmืูึรลโโmใษใำล]^@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ™…ฃ…โฃ™คƒฃค™…ล“…”…•ฃM]^@@@@@@@@โฃ™‰•‡@„™–—ษ„@~@‰”‡…ื™…ฅ‰…ฆฦ–™”zขฃ™คƒฃค™…„ื‡…ขz๑zขฃ™คƒฃค™…ล“…”…•ฃฤฃำ‰ขฃmƒ–•ฃ…•ฃ^@@@@@@@@โฃ™‰•‡@ฃ™‡…ฃษ„@~@‰”‡…ื™…ฅ‰…ฆฦ–™”zขฃ™คƒฃค™…„ื‡…ขz๑zขฃ™คƒฃค™…ล“…”…•ฃฤฃำ‰ขฃz๐zขฃ™คƒฃค™…„ื‡…ื•…“^@@@@@@@@โฃ™‰•‡@…ง—…ƒฃ…„ึฅ…™“จ@~@ย‰“„@๑k@โ…‰ฃ…@`^@@@@@@@@ๆ…‚ล“…”…•ฃ@ฃ™‡…ฃ@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K—…™†–™”ฤ™‡ม•„ฤ™–—M„™–—ษ„k@ฃ™‡…ฃษ„k@…ง—…ƒฃ…„ึฅ…™“จ]^@@@@@@@@ขข…™ฃล˜ค“ขMย‰“„@๒k@โ…‰ฃ…@`k@ฃ™‡…ฃK‡…ฃใ…งฃM]Kขฃ™‰—M]k@@@@@@@@@@@@@@@@ฤ™‡‡…„@ฃˆค”‚•‰“@‰•@•…ฆ@ขฃ™คƒฃค™…@ˆข@ฆ™–•‡@–ฅ…™“จ@†ฃ…™@„™‡}•}„™–—@ƒฃ‰–•]^@@@@ะ@@@@a\\@@@@@\@ใ…ขฃข@ฃˆฃ@ƒ–“ค”•@“จ–คฃ@ƒ•@‚…@ขฅ…„@ฃ–@„ฃ‚ข…@•„@‰ข@“–„…„@‰•ฃ–@ˆ‰„„…•@†–™”@‰•—คฃขK@@@@@\@ฤ–…ข@•–ฃ@ฃ…ขฃ@ฆˆ…ฃˆ…™@ƒ–“ค”•@“จ–คฃ@‰ข@ƒฃค““จ@——“‰…„@ฅ‰@ัฅขƒ™‰—ฃ@Mข……@™…ข‰ฉ…K‘ข]K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ขฅ…ำจ–คฃใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@@@@@@@@@โฃ™‰•‡@ขฃ™คƒฃค™…ๆ‰ฃˆษ„@~@”…ฃ„ฃล„‰ฃ–™ำจ–คฃฦ–™”zขฃ™คƒฃค™…ๆ‰„ฃˆ^@@@@@@@@โฃ™‰•‡@”…ฃ„ฃๆ‰„ฃˆษ„@~@”…ฃ„ฃล„‰ฃ–™ำจ–คฃฦ–™”z”…ฃ„ฃๆ‰„ฃˆ^@@@@@@@@โฃ™‰•‡@‡““…™จๆ‰ฃˆษ„@~@”…ฃ„ฃล„‰ฃ–™ำจ–คฃฦ–™”z‡““…™จๆ‰„ฃˆ^@@@@@@@@ฦค•ƒฃ‰–•Lโฃ™‰•‡k@โฃ™‰•‡n@‡…ฃๅ“ค…@~@@@@@@@@@@@@@M‰„]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰„]]K‡…ฃมฃฃ™‰‚คฃ…Mฅ“ค…]^@@@@@@@@@@@@@@@@aa@‚จ@„…†ค“ฃk@“จ–คฃ@ข…ฃฃ‰•‡ข@™…@““@๐@@@@@@@@ขข…™ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จMขฃ™คƒฃค™…ๆ‰ฃˆษ„]]^@@@@@@@@ขข…™ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จM”…ฃ„ฃๆ‰„ฃˆษ„]]^@@@@@@@@ขข…™ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จM‡““…™จๆ‰ฃˆษ„]]^@@@@@@@@aa@–—…•@“จ–คฃ@”…•ค@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…ฃ„ฃล„‰ฃ–™ำจ–คฃยคฃฃ–•ฦ–™”z–—…•]]Kƒ“‰ƒ’M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…ฃ„ฃล„‰ฃ–™ำจ–คฃฦ–™”zขฅ…ฤ…†ค“ฃ]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@aa@ขฅ…@“จ–คฃ@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…ฃ„ฃล„‰ฃ–™ำจ–คฃฦ–™”zขฅ…ฤ…†ค“ฃ]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ขคƒƒ…ขข@”…ขข‡…@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„ฃล„‰ฃ–™โฅ‰•‡ู…ขค“ฃฤ‰“–‡mƒ–•ฃ…•ฃ]]zz‰ขฤ‰ข—“จ…„]^@@@@@@@@@@@@@@@@aa@ƒ–•†‰™”@ขคƒƒ…ขข@”…ขข‡…@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„ฃล„‰ฃ–™โฅ‰•‡ู…ขค“ฃฦ–™”z™…“–„]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ƒ“–ข…@”…ฃ„ฃ@…„‰ฃ–™k@ฆ‰ฃ@ค•ฃ‰“@ƒ“–ข…„k@•„@™…`–—…•@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“–ข…ล„‰ฃ–™M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๓k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‰ขมฃM]]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฅ…™‰†จ@ฃˆฃ@“จ–คฃ@ฆข@ขฅ…„@@@@@@@@ขข…™ฃี–ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จMขฃ™คƒฃค™…ๆ‰ฃˆษ„]]^@@@@@@@@ขข…™ฃี–ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จM”…ฃ„ฃๆ‰„ฃˆษ„]]^@@@@@@@@ขข…™ฃี–ฃล˜ค“ขM๐K๐k@‡…ฃๅ“ค…K——“จM‡““…™จๆ‰ฃˆษ„]]^@@@@ะ@@@@a\\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ฃค™•‰•‡@ฃˆ…@ขˆ–ฆ@—ˆจข‰ƒ“@—‡…@•ค”‚…™@‚…“–ฆ@ฃˆค”‚•‰“@ขฆ‰ฃƒˆ@–•@‰•@ฃˆ…@คข…™@ข…ฃฃ‰•‡ข@@@@@\@™…ขค“ฃข@‰•@ฃˆค”‚•‰“@‚••…™@‚…‰•‡@„‰ข—“จ…„@‰•@ฃˆ…@‡““…™จ@–†@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ขˆ–ฆืˆจข‰ƒ“ื‡…ีค”‚…™ย…“–ฆใˆค”‚•‰“ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@@@@@@@@aa@–—…•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@@@@@@@@@aa@ฅ…™‰†จ@ฃˆฃ@—ˆจข‰ƒ“@—‡…@•ค”‚…™@‰ข@•–ฃ@ขˆ–ฆ•@‚…“–ฆ@ฃˆค”‚•‰“@‚จ@„…†ค“ฃ@@@@@@@@ขข…™ฃล˜ค“ขM๐k@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจKƒขขโ…“…ƒฃ–™MKฃˆค”‚•‰“`‚••…™]]Kข‰ฉ…M]]^@@@@@@@@aa@ƒˆ•‡…@คข…™@ข…ฃฃ‰•‡@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“–ข…ล„‰ฃ–™M]^@@@@@@@@ื‡…ขK‡…ฃไข…™ล„‰ฃื‡…M]Kฃ–‡‡“…โˆ–ฆืˆจข‰ƒ“ื‡…ีค”‚…™ย…“–ฆใˆค”‚•‰“M]^@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฅ…™‰†จ@—ˆจข‰ƒ“@—‡…@•ค”‚…™@‰ข@•–ฆ@ขˆ–ฆ•@‚…“–ฆ@ฃˆค”‚•‰“@@@@@@@@ขข…™ฃฦ“ข…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจKƒขขโ…“…ƒฃ–™MKฃˆค”‚•‰“`‚••…™]]K‰ขล”—ฃจM]]^@@@@ะ@@@@a\\@@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@ฃˆ…@“‚…“@–†@@•–„…@‰•@ฃˆ…@“–‡‰ƒ“@ขฃ™คƒฃค™…@ฃ™……@ƒˆ•‡…ข@ƒƒ–™„‰•‡@ฃ–@ฃˆ…@@@@@@\@ขฃ™คƒฃค™…ใ™……ใ‰ฃ“…@–—ฃ‰–•@†™–”@ฃˆ…@™ค“…ข…ฃ@†ฃ…™@ขฆ‰ฃƒˆ‰•‡@ฃ–@ฃˆ…@ฃ‰ฃ“…@„‰ข—“จ@–—ฃ‰–•K@@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@ข…“…ƒฃโฃ™คƒฃค™…ใ™……ใ‰ฃ“…ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@“–‡‰ƒ“@ฃ™……@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“ใ™……]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ƒˆ…ƒ’@ฃˆฃ@†‰™ขฃ@ฃ™……@•–„…@“‚…“@ขˆ–ฆข@ฃจ—…@“‚…“@ย•„@@@@@@@@ขข…™ฃล˜ค“ขMย•„k@@@@@@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{“–‡‰ƒ“ใ™……เเz๐@Kค‰`ฃ™……•–„…`“‚…“]]K‡…ฃใ…งฃM]]^@@@@@@@@aa@–—…•@ข…“…ƒฃ@”…•ค@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“โฃ™คƒฃค™…ใ‰ฃ“…]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ข…“…ƒฃ@”…•ค@‰ข@–—…•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“โฃ™คƒฃค™…ใ‰ฃ“…m—•…“]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ƒ“‰ƒ’@–•@ฃ‰ฃ“…@”…•ค@…•ฃ™จ@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“โฃ™คƒฃค™…ใ‰ฃ“…m๑]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@”…•ค@„‰ข——…™ข@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@Zย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“โฃ™คƒฃค™…ใ‰ฃ“…m—•…“]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@@@@@@@@@aa@ƒˆ…ƒ’@ฃˆฃ@•–„…@ฃ‰ฃ“…@ˆข@ƒˆ•‡…„@ฃ–@”…ฃ„ฃ@ฅ“ค…@–†@ศค—ฃใ‰ฃ…“@@@@@@@@ขข…™ฃล˜ค“ขMฤ…™@ใ‰ฃ…“@„…ข@ย•„…ขk@@@@@@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{“–‡‰ƒ“ใ™……เเz๐@Kค‰`ฃ™……•–„…`“‚…“]]K‡…ฃใ…งฃM]]^@@@@ะ@@@@@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•M]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmืูึรลโโmใษใำล]^@@@@@@@@ิ…ฃ„ฃล„‰ฃ–™ื‡…@”…ฃฤฃล„‰ฃ–™@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ขฃ™คƒฃค™…@ฃ™……@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“M”…ฃฤฃล„‰ฃ–™zz‰ขำ–‡‰ƒ“ใ™……ๅ‰ข‰‚“…]^@@@@@@@@@@@@@@@aa@ƒˆ…ƒ’@—‡…@๒@‰ข@•–ฃ@”™’…„@ข@“‰•’…„@@@@@@@@ขข…™ฃฦ“ข…M”…ฃฤฃล„‰ฃ–™K‰ขโฃ™คƒฃค™…ใ™……ี–„…มขข‰‡•…„โ…ฅ…™“ใ‰”…ขM๐m๐m๐m๐]]^@@@@@@@@aa@–—…•@ƒ–•ฃ…งฃ@”…•ค@†–™@—‡…@๒@@@@@@@@”…ฃฤฃล„‰ฃ–™K–—…•ร–•ฃ…งฃิ…•คฦ–™โฃ™คƒฃค™…ใ™……ี–„…M๐m๐m๐m๐]^@@@@@@@@aa@ƒ“‰ƒ’@–•@๒•„@”…•ค@…•ฃ™จ@ขข‰‡•@ฃ–@•…งฃ@…“…”…•ฃ@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒ“‰ƒ’โฃ™คƒฃค™…ใ™……ร–•ฃ…งฃิ…•คล•ฃ™จMขข‰‡•ใ–ี…งฃล“…”…•ฃ]^@@@@@@@@aa@ฅ…™‰†จ@—‡…@๒@‰ข@•–ฆ@”™’…„@ข@“‰•’…„@@@@@@@@ขข…™ฃใ™ค…M”…ฃฤฃล„‰ฃ–™K‰ขโฃ™คƒฃค™…ใ™……ี–„…มขข‰‡•…„โ…ฅ…™“ใ‰”…ขM๐m๐m๐m๐]]^@@@@@@@@aa@ฅ…™‰†จ@“‰•’…„@—‡…@๒@ฆข@ƒ™…ฃ…„@ฃ@ƒ–™™…ƒฃ@ฃ™……@—–ข‰ฃ‰–•@@@@@@@@ขข…™ฃใ™ค…M”…ฃฤฃล„‰ฃ–™K‰ขโฃ™คƒฃค™…ใ™……ี–„…มขข‰‡•…„โ…ฅ…™“ใ‰”…ขM๐m๑m๐m๐]]^@@@@@@@@aa@ƒˆ…ƒ’@—‡…@๓@ฆข@”–ฅ…„@ฃ–@‚…@๒•„@ข‰‚“‰•‡@@@@@@@@ขข…™ฃฦ“ข…M”…ฃฤฃล„‰ฃ–™K‰ขโฃ™คƒฃค™…ใ™……ี–„…มขข‰‡•…„โ…ฅ…™“ใ‰”…ขM๐m๑m๐m๑]]^@@@@@@@@aa@–—…•@ƒ–•ฃ…งฃ@”…•ค@†–™@“‰•’…„@—‡…@๒@@@@@@@@”…ฃฤฃล„‰ฃ–™K–—…•ร–•ฃ…งฃิ…•คฦ–™โฃ™คƒฃค™…ใ™……ี–„…M๐m๑m๐m๐]^@@@@@@@@aa@ƒ“‰ƒ’@–•@๒•„@”…•ค@…•ฃ™จ@™…”–ฅ…@ขข‰‡•”…•ฃ@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒ“‰ƒ’โฃ™คƒฃค™…ใ™……ร–•ฃ…งฃิ…•คล•ฃ™จMค•ขข‰‡•]^@@@@@@@@aa@ƒˆ…ƒ’@—‡…@๒@‰ข@•–ฃ@”™’…„@ข@“‰•’…„@•จ”–™…@@@@@@@@ขข…™ฃฦ“ข…M”…ฃฤฃล„‰ฃ–™K‰ขโฃ™คƒฃค™…ใ™……ี–„…มขข‰‡•…„โ…ฅ…™“ใ‰”…ขM๐m๐m๐m๐]]^@@@@@@@@aa@ƒˆ…ƒ’@—‡…@๓@‰ข@•–ฆ@–•“จ@ƒˆ‰“„@–†@†–“„…™@‡‰•@@@@@@@@ขข…™ฃใ™ค…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจKƒขขโ…“…ƒฃ–™M{“–‡‰ƒ“ใ™……เเz๐m๑m๐m๑]]K‰ขล”—ฃจM]]^@@@@ะ@@@@a\@@@@@\@รˆ…ƒ’@‰†@”…„‰@ƒ•@‚…@“‰•’…„@ฃ–@•…งฃ@ขฃ™คƒฃค™…@…“…”…•ฃ@ฅ‰@ฃˆค”‚•‰“@ƒ–•ฃ…งฃ@”…•ค@‰•@‡““…™จ@ฆˆ…•@”…„‰@‰ข@ˆ‰„„…•@@@@@\@‰•@ขฃ™คƒฃค™…@ฃ™……K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ๅ‰ว““…™จๆˆ‰“…ิ…„‰ษขศ‰„„…•ษ•โฃ™คƒฃค™…ใ™……ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMำษีาmืมวลmใึmีล็ใmฤษๅษโษึีmืูึรลโโmใษใำล]^@@@@@@@@ิ…ฃ„ฃล„‰ฃ–™ื‡…@”…ฃฤฃล„‰ฃ–™@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ขฃ™คƒฃค™…@ฃ™……@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“M”…ฃฤฃล„‰ฃ–™zz‰ขำ–‡‰ƒ“ใ™……ๅ‰ข‰‚“…]^@@@@@@@@โฃ™‰•‡@”…•คยคฃฃ–•ษ„@~@“–‡‰ƒ“โฃ™คƒฃค™…ิ…•คยคฃฃ–•^@@@@@@@@โฃ™‰•‡@ˆ‰„…ิ…„‰ึ—ฃ‰–•ษ„@~“–‡‰ƒ“โฃ™คƒฃค™…ิ…•คฦ–™”zˆ‰„…ิ…„‰รˆ…ƒ’‚–ง^@@@@@@@@aa@ˆ‰„…@”…„‰Z@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…•คยคฃฃ–•ษ„]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…•คยคฃฃ–•ษ„]]Kƒ“‰ƒ’M]^@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„Mˆ‰„…ิ…„‰ึ—ฃ‰–•ษ„]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„Mˆ‰„…ิ…„‰ึ—ฃ‰–•ษ„]]Kƒ“‰ƒ’M]^@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…•คยคฃฃ–•ษ„]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…•คยคฃฃ–•ษ„]]Kƒ“‰ƒ’M]^@@@@@@@@โฃ™‰•‡@ฃˆค”‚•‰“ษ„@~@{‰”‡…ื™…ฅ‰…ฆฦ–™”เเzขฃ™คƒฃค™…„ื‡…ขเเz๒เเzขฃ™คƒฃค™…ล“…”…•ฃฤฃำ‰ขฃเเz๐เเzขฃ™คƒฃค™…„ื‡…ื•…“^@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™Mฃˆค”‚•‰“ษ„]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ขข…™ฃ@†‰™ขฃ@ฃˆค”‚•‰“@‰ข@•–ฃ@จ…ฃ@“‰•’…„@@@@@@@@ขข…™ฃใ™ค…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจKƒขขโ…“…ƒฃ–™Mฃˆค”‚•‰“ษ„@N@@Kขข‰‡•…„`ข…ฅ…™“`ฃ‰”…ข]]K‰ขล”—ฃจM]]^@@@@@@@@aa@–—…•@ƒ–•ฃ…งฃ@”…•ค@–†@†‰™ขฃ@ฃˆค”‚•‰“@@@@@@@@มƒฃ‰–•ข@™‰‡ˆฃร“‰ƒ’มƒฃ‰–•@~@•…ฆ@มƒฃ‰–•ขMย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]]^@@@@@@@@™‰‡ˆฃร“‰ƒ’มƒฃ‰–•Kƒ–•ฃ…งฃร“‰ƒ’Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™Mฃˆค”‚•‰“ษ„]]]K‚ค‰“„M]K—…™†–™”M]^@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”z”…„‰ร–•ฃ…งฃิ…•ค]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@“‰•’@ฃ–@•…งฃ@ขฃ™คƒฃค™…@ฅ‰@‡““…™จ@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒ“ขขี”…Mขข‰‡•ใ–ี…งฃล“…”…•ฃ]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒ“ขขี”…Mขข‰‡•ใ–ี…งฃล“…”…•ฃ]]Kƒ“‰ƒ’M]^@@@@@@@@—–““มขข…™ฃใ™ค…MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™Mฃˆค”‚•‰“ษ„]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ขข…™ฃ@†‰™ขฃ@ฃˆค”‚•‰“@‰ข@“‰•’…„@@@@@@@@ขข…™ฃฦ“ข…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจKƒขขโ…“…ƒฃ–™Mฃˆค”‚•‰“ษ„@N@@Kขข‰‡•…„`ข…ฅ…™“`ฃ‰”…ข]]K‰ขล”—ฃจM]]^@@@@ะ@@@@a\\@@@@@\@ใ…ขฃข@ฃˆฃ@@”…ฃ„ฃ@™–ฆ@–†@ฃˆ…@”…ฃ„ฃ@ฃ‚“…@‰ข@ˆ‰‡ˆ“‰‡ˆฃ…„@ข@ข––•@ข@@คข…™@„„ข@@•…ฆ@@@@@\@™–ฆ@ฅ‰@ฃˆ…@„„@”…ฃ„ฃ@„‰“–‡K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@†–ƒคขู…ƒ…•ฃ“จม„„…„ิ…ฃ„ฃู–ฆใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@”…ฃ„ฃ@ฃ‚“…@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]Kค•ฃ‰“M@@@@@@@@@@@@M]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…ฃ„ฃมƒƒ–™„‰–•z”…ฃ„ฃz”…ฃ„ฃใ‚“…]]K‰ขฤ‰ข—“จ…„M]@@@@@@@@]^@@@@@@@@aa@ฅ…™‰†จ@•–@”…ฃ„ฃ@™–ฆ@‰ข@†–ƒคข…„@จ…ฃ@@@@@@@@ขข…™ฃใ™ค…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขM@@@@@@@@@@@@ยจKƒขขโ…“…ƒฃ–™M{”…ฃ„ฃมƒƒ–™„‰–•เเz”…ฃ„ฃเเz”…ฃ„ฃใ‚“…@ฃ™K†–ƒคข…„ู–ฆ]]K‰ขล”—ฃจM]@@@@@@@@]^@@@@@@@@aa@ƒ“‰ƒ’@–•@„„@”…ฃ„ฃ@‚คฃฃ–•@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M”…ฃ„ฃมƒƒ–™„‰–•z„„ิ…ฃ„ฃยคฃฃ–•]]Kƒ“‰ƒ’M]^@@@@@@@@@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@„‰“–‡@‰ข@ฅ‰ข‰‚“…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]Kค•ฃ‰“M@@@@@@@@@@@@M]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„„ิ…ฃ„ฃฤ‰“–‡]]K‰ขฤ‰ข—“จ…„M]@@@@@@@@]^@@@@@@@@aa@–—…•@ข…“…ƒฃ@”…•ค@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„„ิ…ฃ„ฃฦ–™”z”…ฃ„ฃใจ—…โ…“…ƒฃ‰–•]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ข…“…ƒฃ‰–•@”…•ค@“‰ขฃ@‰ข@ฅ‰ข‰‚“…@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]Kค•ฃ‰“M@@@@@@@@@@@@M]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„„ิ…ฃ„ฃฦ–™”z”…ฃ„ฃใจ—…โ…“…ƒฃ‰–•m‰ฃ…”ข]]K‰ขฤ‰ข—“จ…„M]@@@@@@@@]^@@@@@@@@@@@@@@@@aa@ข…“…ƒฃ@ื…™ข–•@ข@•…ฆ@”…ฃ„ฃ@™–ฆ@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M@@@@@@@@@@@@{„„ิ…ฃ„ฃฦ–™”เเz”…ฃ„ฃใจ—…โ…“…ƒฃ‰–•m‰ฃ…”ข@“‰I„ฃ`“‚…“~}ื…™ข–•}YKค‰`ข…“…ƒฃ–•…”…•ค`‰ฃ…”@@@@@@@@]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ƒ–•†‰™”@„‰“–‡@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„„ิ…ฃ„ฃฦ–™”z——“จ]]Kƒ“‰ƒ’M]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@„‰“–‡@„‰ข——…™ข@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]Kค•ฃ‰“M@@@@@@@@@@@@M]@`n@Zย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M„„ิ…ฃ„ฃฤ‰“–‡]]K‰ขฤ‰ข—“จ…„M]@@@@@@@@]^@@@@@@@@aa@ฅ…™‰†จ@”…ฃ„ฃ@™–ฆ@ฆ‰ฃˆ@•”…@ื…™ข–•@‰ข@ข…“…ƒฃ…„@@@@@@@@ขข…™ฃล˜ค“ขMื…™ข–•zk@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃM@@@@@@@@@@@@ยจKƒขขโ…“…ƒฃ–™M{”…ฃ„ฃมƒƒ–™„‰–•เเz”…ฃ„ฃเเz”…ฃ„ฃใ‚“…@ฃ™K†–ƒคข…„ู–ฆ@“‚…“]@@@@@@@@]K‡…ฃใ…งฃM]]^@@@@@@@@aa@ฅ…™‰†จ@ƒƒ–™„‰–•@ฆข@ขƒ™–““…„@„–ฆ•@@@@@@@@ขข…™ฃใ™ค…M๐@L@Mำ–•‡]ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K…ง…ƒคฃ…โƒ™‰—ฃM@@@@@@@@@@@@™…ฃค™•@„–ƒค”…•ฃK‡…ฃล“…”…•ฃยจษ„M}”…ฃ„ฃมƒƒ–™„‰–•z”…ฃ„ฃz”…ฃ„ฃใ‚“…}]Kขƒ™–““ใ–—^@@@@@@@@]]^@@@@ะ@@@@a\@@@@@\@ๅ…™‰†‰…ข@ฃˆฃ@•@‰”‡…@ƒ•@‚…@–—…•…•„@‰•@@ข…—™ฃ…@ฆ‰•„–ฆ@‚จ@ƒ“‰ƒ’‰•‡@–•@ฃˆ…@ƒ–™™…ข—–•„‰•‡@@@@@@\@ƒ–•ฃ…งฃ@”…•ค@‰ฃ…”@–†@ฃˆ…@†‰™ขฃ@“–‡‰ƒ“@ฃ™……@•–„…K@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@–—…•ื‡…ษ•โ…—™ฃ…ๆ‰•„–ฆใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@™…”…”‚…™@ƒค™™…•ฃ@ฆ‰•„–ฆ@ˆ•„“…@@@@@@@@โฃ™‰•‡@†‰™ขฃๆ‰•„–ฆศ•„“…@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K‡…ฃๆ‰•„–ฆศ•„“…M]^@@@@@@@@@@@@@@@aa@–—…•@ฃˆ…@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@ขฃ™คƒฃค™…@ฃ™……@‰ข@ขˆ–ฆ•@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“ใ™……]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@–—…•@ƒ–•ฃ…งฃ@”…•ค@†–™@“‰•’…„@—‡…@๒@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]K–—…•ร–•ฃ…งฃิ…•คฦ–™โฃ™คƒฃค™…ใ™……ี–„…M๐m๐]^@@@@@@@@aa@ƒ“‰ƒ’@ข…ƒ–•„@”…•ค@…•ฃ™จ@ฃ–@–—…•@•…ฆ@ฃ‚@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{ƒ–•ฃ…งฃิ…•คำ–‡‰ƒ“ใ™……@Kฅ‰…ฆื‡…ษ•ี…ฆๆ‰•„–ฆ]]Kƒ“‰ƒ’M]^@@@@@@@@aa@†‰•„@ˆ•„“…@–†@•…ฆ@ฃ‚@ฆ‰•„–ฆ@@@@@@@@โฃ™‰•‡@•…ฆๆ‰•„–ฆศ•„“…@~@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K‡…ฃๆ‰•„–ฆศ•„“…ขM]Kขฃ™…”M]@@@@@@@@@@@@K†‰“ฃ…™MMˆ]@`n@ZˆK…˜ค“ขM†‰™ขฃๆ‰•„–ฆศ•„“…]]K†‰•„ฦ‰™ขฃM]K‡…ฃM]^@@@@@@@@aa@ขฆ‰ฃƒˆ@ฃ–@•…ฆ@ฆ‰•„–ฆ@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]Kขฆ‰ฃƒˆใ–M]Kฆ‰•„–ฆM•…ฆๆ‰•„–ฆศ•„“…]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@—™…ฅ‰…ฆ@‰”‡…@‰ข@†–ค•„@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@Zย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃขMยจK‰„M‰”‡…ื™…ฅ‰…ฆฦ–™”z”…„‰ื™…ฅ‰…ฆว™—ˆ‰ƒษ”‡…]]K‰ขล”—ฃจM]]^@@@@@@@@aa@ƒˆ…ƒ’@ฃˆฃ@ฃ‰ฃ“…@ƒ–•ฃ‰•ข@‰”‡…@•ค”‚…™@@@@@@@@ขข…™ฃล˜ค“ขMย‰“„@๒k@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M…งฃ…™•“ๅ‰…ฆใ‰ฃ“…]]K‡…ฃใ…งฃM]]^@@@@@@@@aa@ƒˆ…ƒ’@ฃˆฃ@ƒ•ฅข@‰ข@ฅ‰ข‰‚“…@@@@@@@@ขข…™ฃใ™ค…Mย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจKƒขขโ…“…ƒฃ–™M{”—@ƒ•ฅข]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ƒ“–ข…@ฃ‚@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]Kƒ“–ข…M]^@@@@@@@@aa@ขฆ‰ฃƒˆ@‚ƒ’@ฃ–@—™…ฅ‰–คข@ฆ‰•„–ฆ@@@@@@@@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]Kขฆ‰ฃƒˆใ–M]Kฆ‰•„–ฆM†‰™ขฃๆ‰•„–ฆศ•„“…]^@@@@ะ@@@@a\\@@@@@\@รˆ…ƒ’ข@ฃˆฃ@”ค“ฃ‰—“…@…“…”…•ฃข@ƒ•@‚…@ข…“…ƒฃ…„@‰•@ฃˆ…@“–‡‰ƒ“@ขฃ™คƒฃค™…@ฃ™……@คข‰•‡@ฃˆ…@@@@@@\@ƒฃ™“@•„@ขˆ‰†ฃ@’…จขK@ๅ…™‰†‰…ข@ฃˆฃ@ข…“…ƒฃ‰–•@‰ข@——“‰…„@ฃ–@—‡‰•ฃ‰–•@—•…“@•„@‡““…™จK@@@@@\a@@@@|ใ…ขฃ@@@@—ค‚“‰ƒ@ฅ–‰„@”ค“ฃ‰โ…“…ƒฃษ•ำ–‡‰ƒ“โฃ™คƒฃค™…ใ™……ใ…ขฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@“–‡‰•M’–ฆ“]^@@@@@@@@aa@–—…•@”…ฃ„ฃ@…„‰ฃ–™@@@@@@@@ื‡…ขK‡…ฃื™–ƒ…ขข…ขื‡…M]K‡–ใ–M]K…„‰ฃิ…ฃ„ฃMิ–ƒ’ฤฃ‚ข…Kิลฤษมmูลีมิษีวmใลโใmืูึรลโโmใษใำล]^@@@@@@@@aa@ฆ‰ฃ@ค•ฃ‰“@“–‡‰ƒ“@ขฃ™คƒฃค™…@ฃ™……@‰ข@ฅ‰“‚“…@@@@@@@@ิ…ฃ„ฃล„‰ฃ–™ื‡…@”…ฃฤฃล„‰ฃ–™@~@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]^@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃMยจK‰„M“–‡‰ƒ“ใ™……]]K‰ขฤ‰ข—“จ…„M]]^@@@@@@@@aa@ข…“…ƒฃ@†‰™ขฃ@—‡…@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๐k@†“ข…k@†“ข…]^@@@@@@@@aa@ฅ…™‰†จ@”…ฃ„ฃ@ขˆ–ฆข@–†@†‰™ขฃ@—‡…@‰ข@„‰ข—“จ…„@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃM@@@@@@@@@@@@@@@@ยจK‰„M”…ฃ„ฃมƒƒ–™„‰–•z”…ฃ„ฃz”…ฃ„ฃใ‚“…z๐z‰•—คฃใ…งฃ]@@@@@@@@@@@@]K‡…ฃมฃฃ™‰‚คฃ…Mฅ“ค…]K…˜ค“ขM`]]^@@@@@@@@aa@ข…“…ƒฃ@ข…ƒ–•„@—‡…@ฆ‰ฃˆ@ƒฃ™“@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๑k@ฃ™ค…k@†“ข…]^@@@@@@@@aa@ฅ…™‰†จ@”…ฃ„ฃ@—•…“@‰ข@…”—ฃจ@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]K—–““ฤ…“จM๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@Kค•ฃ‰“MM]@`n@ย™–ฆข…™K‡…ฃฤ™‰ฅ…™M]K†‰•„ล“…”…•ฃM@@@@@@@@@@@@@@@@ยจK‰„M”…ฃ„ฃมƒƒ–™„‰–•z”…ฃ„ฃz”…ฃ„ฃใ‚“…]@@@@@@@@@@@@]K‡…ฃใ…งฃM]K…˜ค“ขMี–@™…ƒ–™„ข@†–ค•„K]]^@@@@@@@@@@@@@@@@aa@ฅ…™‰†จ@‚–ฃˆ@—‡…ข@™…@ข…“…ƒฃ…„@‰•@—‡‰•ฃ‰–•@—•…“@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ื‡‰•ฃ‰–•โ…“…ƒฃ‰–•M๒]^@@@@@@@@aa@ฅ…™‰†จ@‚–ฃˆ@—‡…ข@™…@ข…“…ƒฃ…„@‰•@‡““…™จ@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จโ…“…ƒฃ‰–•M๒]^@@@@@@@@aa@ข…“…ƒฃ@“ขฃ@—‡…@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๒k@†“ข…k@†“ข…]^@@@@@@@@aa@ข…“…ƒฃ@†‰™ขฃ@—‡…@ฆ‰ฃˆ@ขˆ‰†ฃ@M™•‡…@ข…“…ƒฃ]@@@@@@@@”…ฃฤฃล„‰ฃ–™Kข…“…ƒฃโฃ™คƒฃค™…ใ™……ี–„…M๐m๐k@†“ข…k@ฃ™ค…]^@@@@@@@@aa@ฅ…™‰†จ@““@—‡…ข@™…@ข…“…ƒฃ…„@‰•@—‡‰•ฃ‰–•@—•…“@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ื‡‰•ฃ‰–•โ…“…ƒฃ‰–•M๓]^@@@@@@@@aa@ฅ…™‰†จ@““@—‡…ข@™…@ข…“…ƒฃ…„@‰•@‡““…™จ@@@@@@@@”…ฃฤฃล„‰ฃ–™Kƒˆ…ƒ’ว““…™จโ…“…ƒฃ‰–•M๓]^@@@@ะ@@@@a\\@@@@@\@ร“–ข…@”…ฃ„ฃ@…„‰ฃ–™@•„@“–‡–คฃ@†ฃ…™@…ฅ…™จ@ฃ…ขฃK@@@@@\@|ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ฆˆ…•@—‡…@•ฅ‰‡ฃ‰–•@†‰“ข@@@@@\a@@@@|ม†ฃ…™ลƒˆ@@@@—ค‚“‰ƒ@ฅ–‰„@ƒ“–ข…ล„‰ฃ–™ม•„ำ–‡–คฃM]@ฃˆ™–ฆข@ลงƒ…—ฃ‰–•@ภ@@@@@@@@ื‡…ขK‡…ฃิ…ฃ„ฃล„‰ฃ–™ื‡…M]Kƒ“–ข…ล„‰ฃ–™M]^@@@@@@@@ื‡…ขK‡…ฃใ–—ีฅ‰‡ฃ‰–•M]K“–‡–คฃM]^@@@@ะ@@@@a\\@@@@@\@ร“…•ค—@ฃ…ขฃ@…•ฅ‰™–•”…•ฃ@‚จ@™…”–ฅ‰•‡@ฃ…”—–™“@„ค””จ@—™–ƒ…ขข…ข@†™–”@„ฃ‚ข…@•„@‰•„…งK@@@@@\@|ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•@ฆˆ…•@„ค””จ@—™–ƒ…ขข@ƒ••–ฃ@‚…@™…”–ฅ…„@†™–”@„ฃ‚ข…@@@@@\@|ฃˆ™–ฆข@รคขฃ–”ู…ข—–•ข…ลงƒ…—ฃ‰–•@ฆˆ…•@„ค””จ@—™–ƒ…ขข@ƒ••–ฃ@‚…@™…”–ฅ…„@†™–”@‰•„…ง@@@@@\@|ฃˆ™–ฆข@ฤฃลงƒ…—ฃ‰–•@ฆˆ…•@„ค””จ@—™–ƒ…ขข@ƒ••–ฃ@‚…@™…”–ฅ…„@†™–”@‰•„…ง@@@@@\@|ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•@ฆˆ…•@„…“…ฃ‰•‡@ฃ…ขฃ@†‰“…ข@†‰“ขK@@@@@\a@@@@|ม†ฃ…™ม““@@@@—ค‚“‰ƒ@ขฃฃ‰ƒ@ฅ–‰„@ƒ“…•ค—M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@รคขฃ–”ู…ข—–•ข…ลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@†–™@M‰•ฃ@—™–ƒ…ขขษ„@z@—™–ƒ…ขขศ‰…™™ƒˆจใ…ขฃื™–ƒ…ขขษ„ข]@ภ@@@@@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM—™–ƒ…ขขษ„]^@@@@@@@@ะ@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM”…„‰ู…†…™…•ƒ…ขื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM”…ฃ„ฃำ–ƒ’ื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM™…•”‰•‡ิ…„‰ื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM„™‡•„™–—ื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขMƒ™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡•„™–—ื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขMƒ™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขษ„]^@@@@@@@@ื™–ƒ…ขขโ…™ฅ‰ƒ…K„…“…ฃ…ื™–ƒ…ขขM“‰•’ื‡…ใ–ี…งฃฤ‰ฅ‰ข‰–•ื™–ƒ…ขขษ„]^@@@@ะ@@@@—™‰ฅฃ…@ฅ–‰„@“–‡‰•Mโฃ™‰•‡@คข…™•”…]@ฃˆ™–ฆข@ษ•ขฃ•ฃ‰ฃ‰–•ลงƒ…—ฃ‰–•k@ษ““…‡“มƒƒ…ขขลงƒ…—ฃ‰–•k@ษ•ฃ…™™ค—ฃ…„ลงƒ…—ฃ‰–•@ภ@@@@@@@@ไข…™@”…ฃ„ฃไข…™@~@โ…™ฅ‰ƒ…ิ•‡…™K‡…ฃไข…™โ…™ฅ‰ƒ…M]K‡…ฃยจำ–‡‰•Mคข…™•”…]^@@@@@@@@ื‡…ขK‡…ฃำ–‡‰•ื‡…M]K‡–ใ–M]K—…™†–™”ำ–‡‰•M”…ฃ„ฃไข…™]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…„‰ู…†…™…•ƒ…ขใ…ขฃM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@”…„‰ู…†…™…•ƒ…ขื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…„‰ู…†…™…•ƒ…ขใ…ขฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…ฃ„ฃำ–ƒ’ใ…ขฃM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@”…ฃ„ฃำ–ƒ’ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ิ…ฃ„ฃำ–ƒ’ใ…ขฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ู…•”‰•‡ิ…„‰ฦ‰“…ขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@™…•”‰•‡ิ…„‰ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ู…•”‰•‡ิ…„‰ใ…ขฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ฤ™‡ม•„ฤ™–—M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@„™‡•„™–—ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ฤ™‡ีฤ™–—ใ…ขฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ม•„ฤ™–—M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ƒ™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡•„™–—ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ีฤ™–—ใ…ขฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ‰•‡โฃ™คƒฃค™…ล“…”…•ฃM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ƒ™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขษ„@~@ิ–ƒ’ฤฃ‚ข…K‰•ข…™ฃใ…ขฃื™–ƒ…ขขฦ–™ร™…ฃ‰•‡โฃ™คƒฃค™…ล“…”…•ฃษ•ฃ–โ…ƒ–•„ื™–‘…ƒฃM]^@@@@ะ@@@@a\\@@@@@\@ร™…ฃ…ข@„ค””จ@—™…•ฃ@—™–ƒ…ขข@•„@“‰•’ข@†‰™ขฃ@ฃฆ–@ฃ…ขฃ@—™–ƒ…ขข…ข@ข@ƒˆ‰“„@—™–ƒ…ขข…ข@ฃ–@—™…•ฃ@—™–ƒ…ขขK@@@@@\@|ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•@‰†@“–„‰•‡@–†@—™–ƒ…ขข…ข@†‰“ข@@@@@\@|ฃˆ™–ฆข@ฤฃลงƒ…—ฃ‰–•@‰†@ขฅ‰•‡@–†@—™–ƒ…ขข…ข@†‰“ข@@@@@\a@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ำ‰ขฃLษ•ฃ…‡…™n@“‰•’ื™–ƒ…ขข…ขM]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ำ‰ขฃLษ•ฃ…‡…™n@—™–ƒ…ขขษ„ข@~@•…ฆ@ำ‰•’…„ำ‰ขฃLnM]^@@@@@@@@ำ‰ขฃLื™–ƒ…ขขn@ƒˆ‰“„ื™–ƒ…ขข…ข@~@•…ฆ@ำ‰•’…„ำ‰ขฃLnM]^@@@@@@@@ƒˆ‰“„ื™–ƒ…ขข…ขK„„Mื™–ƒ…ขขใ…ขฃไฃ‰“ขK„„ื™–ƒ…ขขMฦษูโใmรศษำฤmืูึรลโโmใษใำล]]^@@@@@@@@ƒˆ‰“„ื™–ƒ…ขข…ขK„„Mื™–ƒ…ขขใ…ขฃไฃ‰“ขK„„ื™–ƒ…ขขMโลรึีฤmรศษำฤmืูึรลโโmใษใำล]]^@@@@@@@@ื™–ƒ…ขข@—™…•ฃื™–ƒ…ขข@~@ื™–ƒ…ขขใ…ขฃไฃ‰“ขK„„ื™–ƒ…ขขMืมูลีใmืูึรลโโmใษใำล]^@@@@@@@@—™…•ฃื™–ƒ…ขขK‡…ฃรˆ‰“„™…•M]K„„ม““Mƒˆ‰“„ื™–ƒ…ขข…ข]^@@@@@@@@โ…™ฅ‰ƒ…ิ•‡…™K‡…ฃื™–ƒ…ขขโ…™ฅ‰ƒ…M]Kขฅ…M—™…•ฃื™–ƒ…ขข]^@@@@@@@@—™…•ฃื™–ƒ…ขขษ„@~@—™…•ฃื™–ƒ…ขขK‡…ฃษ„M]^@@@@@@@@†–™@Mื™–ƒ…ขข@ƒˆ‰“„ื™–ƒ…ขข@z@ƒˆ‰“„ื™–ƒ…ขข…ข]@ภ@@@@@@@@@@@@ƒˆ‰“„ื™–ƒ…ขขKข…ฃื™…•ฃM—™…•ฃื™–ƒ…ขข]^@@@@@@@@@@@@โ…™ฅ‰ƒ…ิ•‡…™K‡…ฃื™–ƒ…ขขโ…™ฅ‰ƒ…M]Kขฅ…Mƒˆ‰“„ื™–ƒ…ขข]^@@@@@@@@@@@@—™–ƒ…ขขษ„ขK„„Mƒˆ‰“„ื™–ƒ…ขขK‡…ฃษ„M]]^@@@@@@@@ะ@@@@@@@@—™–ƒ…ขขษ„ขK„„M—™…•ฃื™–ƒ…ขขK‡…ฃษ„M]]^@@@@@@@@™…ฃค™•@—™–ƒ…ขขษ„ข^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ิ…„‰ู…†…™…•ƒ…ขM]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขM”…„‰ู…†…™…•ƒ…ขื™–ƒ…ขขษ„k@ใลโใmิลฤษมmูลฦลูลีรลโmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ู…•”‰•‡ิ…„‰ฦ‰“…ขM]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขM™…•”‰•‡ิ…„‰ื™–ƒ…ขขษ„k@ใลโใmูลีมิลmิลฤษมmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ฤ™‡ม•„ฤ™–—M]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขM„™‡•„™–—ื™–ƒ…ขขษ„k@ใลโใmูลีมิลmิลฤษมmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ร™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡ม•„ฤ™–—M]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขMƒ™…ฃ…โฃ™คƒฃค™…ม•„ฤ™‡•„™–—ื™–ƒ…ขขษ„k@ใลโใmูลีมิลmิลฤษมmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃฦ‰“…ขฦ–™ร™…ฃ…โฃ™คƒฃค™…M]@ฃˆ™–ฆข@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•k@ษึลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃฦ‰“…ขMƒ™…ฃ…โฃ™คƒฃค™…ื™–ƒ…ขขษ„k@ใลโใmูลีมิลmิลฤษมmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ƒ–—จใ…ขฃื™…•ฃื™–ƒ…ขขิ…ฃ„ฃฦ‰“…M]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•k@ฤฃลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKƒ–—จใ…ขฃิ…ฃ„ฃฦ‰“…M—™…•ฃื™–ƒ…ขขษ„k@ใลโใmืมูลีใmืูึรลโโmิลใมฤมใมmฦษำล]^@@@@ะ@@@@—™‰ฅฃ…@ขฃฃ‰ƒ@ฅ–‰„@ค—„ฃ…รˆ‰“„ื™–ƒ…ขขษ„ขษ•ื™…•ฃื™–ƒ…ขขิ…ฃ„ฃฦ‰“…M]@ฃˆ™–ฆข@ษึลงƒ…—ฃ‰–•k@ฤมึลงƒ…—ฃ‰–•@ภ@@@@@@@@ื™–ƒ…ขข@—™…•ฃื™–ƒ…ขข@~@โ…™ฅ‰ƒ…ิ•‡…™K‡…ฃื™–ƒ…ขขโ…™ฅ‰ƒ…M]K‡…ฃยจษ„M—™…•ฃื™–ƒ…ขขษ„]^@@@@@@@@ืฃˆ@”…ฃ็”“@~@ืฃˆขK‡…ฃMร–•†‰‡ร–™…K‡…ฃา‰ฃ–„–ฤฃฤ‰™…ƒฃ–™จM]k@—™…•ฃื™–ƒ…ขขษ„@N@ื™–ƒ…ขขใ…ขฃไฃ‰“ขKิลใมm็ิำ]^@@@@@@@@โฃ™‰•‡@ง”“ร–•ฃ…•ฃ@~@ฦ‰“…ขK™…„โฃ™‰•‡M”…ฃ็”“]^@@@@@@@@โฃ™‰•‡@†‰™ขฃรˆ‰“„ษ„@~@โฃ™‰•‡Kฅ“ค…ึ†M—™…•ฃื™–ƒ…ขขK‡…ฃรˆ‰“„™…•M]K‡…ฃM๐]K‡…ฃษ„M]]^@@@@@@@@โฃ™‰•‡@ข…ƒ–•„รˆ‰“„ษ„@~@โฃ™‰•‡Kฅ“ค…ึ†M—™…•ฃื™–ƒ…ขขK‡…ฃรˆ‰“„™…•M]K‡…ฃM๑]K‡…ฃษ„M]]^@@@@@@@@ง”“ร–•ฃ…•ฃ@~@ง”“ร–•ฃ…•ฃK™…—“ƒ…ม““Mฦษูโใmรศษำฤmษฤk@โฃ™‰•‡Kฅ“ค…ึ†M†‰™ขฃรˆ‰“„ษ„]]^@@@@@@@@ง”“ร–•ฃ…•ฃ@~@ง”“ร–•ฃ…•ฃK™…—“ƒ…ม““Mโลรึีฤmรศษำฤmษฤk@โฃ™‰•‡Kฅ“ค…ึ†Mข…ƒ–•„รˆ‰“„ษ„]]^@@@@@@@@ฦ‰“…ขKฆ™‰ฃ…M”…ฃ็”“k@ง”“ร–•ฃ…•ฃK‡…ฃยจฃ…ขM]]^@@@@ะ@@@@—™‰ฅฃ…@ฅ–‰„@—–““มขข…™ฃใ™ค…Mร““‚“…Lย––“…•n@ƒ–•„‰ฃ‰–•ลฅ“คฃ–™]@ภ@@@@@@@@ฆ‰ฃM]K‰‡•–™…ลงƒ…—ฃ‰–•ขM]@@@@@@@@@@@@@@@@K—–““ฤ…“จM๑k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@K—–““ษ•ฃ…™ฅ“M๑๐๐k@ใ‰”…ไ•‰ฃKิษำำษโลรึีฤโ]@@@@@@@@@@@@@@@@Kฃิ–ขฃM๕k@ใ‰”…ไ•‰ฃKโลรึีฤโ]@@@@@@@@@@@@@@@@Kค•ฃ‰“Mƒ–•„‰ฃ‰–•ลฅ“คฃ–™]^@@@@ะะ \ No newline at end of file