From dfb58af913aeb238e82102d4e8d7da7558908acf Mon Sep 17 00:00:00 2001 From: CristianNCC <47252175+CristianNCC@users.noreply.github.com> Date: Fri, 1 Feb 2019 19:19:07 +0200 Subject: [PATCH 1/3] Create readme --- .../Decryption code/readme | 1 + 1 file changed, 1 insertion(+) create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/readme diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/readme b/Examples/Encrypting Messages Using Permutations/Decryption code/readme new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/readme @@ -0,0 +1 @@ + From 6e52803e19309abf5b9121fb2a1a0212a9e6c430 Mon Sep 17 00:00:00 2001 From: CristianNCC <47252175+CristianNCC@users.noreply.github.com> Date: Fri, 1 Feb 2019 19:20:33 +0200 Subject: [PATCH 2/3] Add files via upload --- .../AgapiaProgram.exe | Bin 0 -> 154112 bytes .../Def.txt | 16 ++ .../Drawing1.vsd | Bin 0 -> 100352 bytes .../MainInput.txt | 1 + .../agapia.txt | 148 ++++++++++++ .../clearText.txt | 1 + .../encryptedTextParallel.txt | 1 + .../execution.bat | 4 + .../includes.h | 11 + .../permutationParallel.txt | 1 + .../temp/A | 1 + .../temp/ALTCEVA | 4 + .../temp/AgapiaToCCode.cpp | 225 ++++++++++++++++++ .../temp/BBALTCEVA | 1 + .../temp/CEVA | 50 ++++ .../temp/Includes.h | 22 ++ .../temp/MAIN | 1 + .../temp/MASTER | 3 + .../temp/agapia.dat | Bin 0 -> 1218 bytes .../temp/agapia_transf.txt | 30 +++ 20 files changed, 520 insertions(+) create mode 100644 Examples/Encrypting Messages Using Permutations/AgapiaProgram.exe create mode 100644 Examples/Encrypting Messages Using Permutations/Def.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Drawing1.vsd create mode 100644 Examples/Encrypting Messages Using Permutations/MainInput.txt create mode 100644 Examples/Encrypting Messages Using Permutations/agapia.txt create mode 100644 Examples/Encrypting Messages Using Permutations/clearText.txt create mode 100644 Examples/Encrypting Messages Using Permutations/encryptedTextParallel.txt create mode 100644 Examples/Encrypting Messages Using Permutations/execution.bat create mode 100644 Examples/Encrypting Messages Using Permutations/includes.h create mode 100644 Examples/Encrypting Messages Using Permutations/permutationParallel.txt create mode 100644 Examples/Encrypting Messages Using Permutations/temp/A create mode 100644 Examples/Encrypting Messages Using Permutations/temp/ALTCEVA create mode 100644 Examples/Encrypting Messages Using Permutations/temp/AgapiaToCCode.cpp create mode 100644 Examples/Encrypting Messages Using Permutations/temp/BBALTCEVA create mode 100644 Examples/Encrypting Messages Using Permutations/temp/CEVA create mode 100644 Examples/Encrypting Messages Using Permutations/temp/Includes.h create mode 100644 Examples/Encrypting Messages Using Permutations/temp/MAIN create mode 100644 Examples/Encrypting Messages Using Permutations/temp/MASTER create mode 100644 Examples/Encrypting Messages Using Permutations/temp/agapia.dat create mode 100644 Examples/Encrypting Messages Using Permutations/temp/agapia_transf.txt diff --git a/Examples/Encrypting Messages Using Permutations/AgapiaProgram.exe b/Examples/Encrypting Messages Using Permutations/AgapiaProgram.exe new file mode 100644 index 0000000000000000000000000000000000000000..a7c93cecbdff2445508fbbb4da0b4e6478326d42 GIT binary patch literal 154112 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 z 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 literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/Def.txt b/Examples/Encrypting Messages Using Permutations/Def.txt new file mode 100644 index 0000000..44ede19 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Def.txt @@ -0,0 +1,16 @@ +% // Include files +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +% // Additional include directories +% // Additional library directories +% // Additional linker libs/dll etc +% // Additional source files diff --git a/Examples/Encrypting Messages Using Permutations/Drawing1.vsd b/Examples/Encrypting Messages Using Permutations/Drawing1.vsd new file mode 100644 index 0000000000000000000000000000000000000000..b5c4003e8ba8a89983be625f5109c9fdf81547f8 GIT binary patch literal 100352 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 bYtIr*c}=D<^;F>7E{qIp|M&Snp$7gJzk@bn literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/MainInput.txt b/Examples/Encrypting Messages Using Permutations/MainInput.txt new file mode 100644 index 0000000..025c737 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/MainInput.txt @@ -0,0 +1 @@ +nrofprocs 3 \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/agapia.txt b/Examples/Encrypting Messages Using Permutations/agapia.txt new file mode 100644 index 0000000..c589d19 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/agapia.txt @@ -0,0 +1,148 @@ +module MAIN{listen nil}{read nil} +{ + CITIRE # ( SLAVEA% SLAVEB % SLAVEC) # SCRIERE +}{speak nil}{write nil} + +module CITIRE{listen nil}{read nil} +{ + std::ifstream testTextFile("clearText.txt"); + std::ofstream permutationTextFileWrite("permutationParallel.txt"); + std::string strAllContent,strLine, strEncrypted; + std::vector arrPermutation; + + if (testTextFile.is_open()) + { + while (getline(testTextFile, strLine)) + { + strAllContent.append(strLine.begin(), strLine.end()); + } + testTextFile.close(); + } + else + { + std::cout << "Failed to open file"; + return; + } + std::srand(unsigned(std::time(0))); + for (size_t i = 0; i < strAllContent.size(); ++i) + { + arrPermutation.push_back(i); + } + + std::random_shuffle(arrPermutation.begin(), arrPermutation.end()); + + permutationTextFileWrite << arrPermutation.size() << " "; + for (size_t i = 0; i < arrPermutation.size(); ++i) + { + permutationTextFileWrite << arrPermutation[i] << " "; + } + permutationTextFileWrite.close(); + + int nTextSize = (int)strAllContent.size(); + int nPermutationSize = (int)arrPermutation.size(); + + int* ppermutation = new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + ppermutation[i] = arrPermutation[i]; + } + +ppermutationa = (int)ppermutation; +ppermutationb = (int)ppermutation; +ppermutationc = (int)ppermutation; +int chunkSize = nPermutationSize / 3; +chunksizea = (int)chunkSize; +chunksizeb = (int)chunkSize; +chunksizec = (int)chunkSize; +npermsizea = (int)nPermutationSize; +npermsizeb = (int)nPermutationSize; +npermsizec = (int)nPermutationSize; + +char * cstrAllContent = new char[strAllContent.size() + 1]; +std::copy(strAllContent.begin(), strAllContent.end(), cstrAllContent); +cstrAllContent[strAllContent.size()] = '\0'; +strallcontenta = (int)cstrAllContent; +strallcontentb = (int)cstrAllContent; +strallcontentc = (int)cstrAllContent; + +}{speak ppermutationa : int, chunksizea : int, npermsizea : int, strallcontenta : int ; ppermutationb : int, chunksizeb : int, npermsizeb : int, strallcontentb : int ; ppermutationc : int, chunksizec : int, npermsizec : int, strallcontentc : int}{write nil} + +module SLAVEA{listen perm : int, chunksizea : int, npermsizea : int, strallcontenta : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontenta); +int localsizea= chunksizea; +for (int i = 0; i < localsizea; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + +char * cstrLocalEncrypted = new char[localsizea + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); +cstrLocalEncrypted[localsizea] = '\0'; +locala = (int)cstrLocalEncrypted; + + +}{speak locala: int}{write nil} + +module SLAVEB{listen perm : int, chunksizeb : int, npermsizeb : int, strallcontentb : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontentb); +int localsizeb= chunksizeb; +for (int i = localsizeb; i < 2*localsizeb; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + +char * cstrLocalEncrypted = new char[localsizeb + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); +cstrLocalEncrypted[localsizeb] = '\0'; +localb = (int)cstrLocalEncrypted; + + +}{speak localb: int}{write nil} + +module SLAVEC{listen perm : int, chunksizec : int, npermsizec : int, strallcontentc : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontentc); +int localsizec= chunksizec; +int last=npermsizec; +int nLocalChunkSize = last - 2*localsizec; +for (int i = 2*localsizec; i < last ; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + +char * cstrLocalEncryptec = new char[nLocalChunkSize + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncryptec); +cstrLocalEncryptec[nLocalChunkSize] = '\0'; +localc = (int)cstrLocalEncryptec; + +}{speak localc: int}{write nil} + + + +module SCRIERE{listen locala : int; localb : int; localc : int}{read nil} +{ +std::string strFinalEncrypted; +std::string strLocalStringA((char*)locala); +std::string strLocalStringB((char*)localb); +std::string strLocalStringC((char*)localc); +strFinalEncrypted.append(strLocalStringA.begin(), strLocalStringA.end()); +strFinalEncrypted.append(strLocalStringB.begin(), strLocalStringB.end()); +strFinalEncrypted.append(strLocalStringC.begin(), strLocalStringC.end()); +std::ofstream encryptedTextFile("encryptedTextParallel.txt"); +encryptedTextFile< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/permutationParallel.txt b/Examples/Encrypting Messages Using Permutations/permutationParallel.txt new file mode 100644 index 0000000..c71fca4 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/permutationParallel.txt @@ -0,0 +1 @@ +35 5 20 7 0 4 28 6 10 25 23 16 14 22 34 1 11 3 27 29 15 9 24 19 13 18 32 2 31 21 17 33 26 8 30 12 \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/temp/A b/Examples/Encrypting Messages Using Permutations/temp/A new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/A @@ -0,0 +1 @@ + diff --git a/Examples/Encrypting Messages Using Permutations/temp/ALTCEVA b/Examples/Encrypting Messages Using Permutations/temp/ALTCEVA new file mode 100644 index 0000000..6a4ca6a --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/ALTCEVA @@ -0,0 +1,4 @@ +for (int i = 0; i < arrPermutation.size(); ++i) + { + std::cout << arrPermutation[i] << " "; + } diff --git a/Examples/Encrypting Messages Using Permutations/temp/AgapiaToCCode.cpp b/Examples/Encrypting Messages Using Permutations/temp/AgapiaToCCode.cpp new file mode 100644 index 0000000..9d15ee1 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/AgapiaToCCode.cpp @@ -0,0 +1,225 @@ +#include "AgapiaToCCode.h" +#include "ExecutionBlackbox.h" +#include "InputTypes.h" + +#include "Includes.h" + + +void CITIRE(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& ppermutationa = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizea = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizea = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontenta = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& ppermutationb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[0])->GetValueRef(); + int& chunksizeb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[1])->GetValueRef(); + int& npermsizeb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[2])->GetValueRef(); + int& strallcontentb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[3])->GetValueRef(); + int& ppermutationc = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[0])->GetValueRef(); + int& chunksizec = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[1])->GetValueRef(); + int& npermsizec = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[2])->GetValueRef(); + int& strallcontentc = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[3])->GetValueRef(); + + + // User code: + std::ifstream testTextFile("clearText.txt"); + std::ofstream permutationTextFileWrite("permutationParallel.txt"); + std::string strAllContent,strLine, strEncrypted; + std::vector arrPermutation; + + if (testTextFile.is_open()) + { + while (getline(testTextFile, strLine)) + { + strAllContent.append(strLine.begin(), strLine.end()); + } + testTextFile.close(); + } + else + { + std::cout << "Failed to open file"; + return; + } + std::srand(unsigned(std::time(0))); + for (size_t i = 0; i < strAllContent.size(); ++i) + { + arrPermutation.push_back(i); + } + + std::random_shuffle(arrPermutation.begin(), arrPermutation.end()); + + permutationTextFileWrite << arrPermutation.size() << " "; + for (size_t i = 0; i < arrPermutation.size(); ++i) + { + permutationTextFileWrite << arrPermutation[i] << " "; + } + permutationTextFileWrite.close(); + + int nTextSize = (int)strAllContent.size(); + int nPermutationSize = (int)arrPermutation.size(); + + int* ppermutation = new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + ppermutation[i] = arrPermutation[i]; + } + + ppermutationa = (int)ppermutation; + ppermutationb = (int)ppermutation; + ppermutationc = (int)ppermutation; + int chunkSize = nPermutationSize / 3; + chunksizea = (int)chunkSize; + chunksizeb = (int)chunkSize; + chunksizec = (int)chunkSize; + npermsizea = (int)nPermutationSize; + npermsizeb = (int)nPermutationSize; + npermsizec = (int)nPermutationSize; + + char * cstrAllContent = new char[strAllContent.size() + 1]; + std::copy(strAllContent.begin(), strAllContent.end(), cstrAllContent); + cstrAllContent[strAllContent.size()] = '\0'; + strallcontenta = (int)cstrAllContent; + strallcontentb = (int)cstrAllContent; + strallcontentc = (int)cstrAllContent; + + + +} + + + + +void SCRIERE(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& locala = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& localb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[1])->m_InputItems[0])->GetValueRef(); + int& localc = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[2])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strFinalEncrypted; + std::string strLocalStringA((char*)locala); + std::string strLocalStringB((char*)localb); + std::string strLocalStringC((char*)localc); + strFinalEncrypted.append(strLocalStringA.begin(), strLocalStringA.end()); + strFinalEncrypted.append(strLocalStringB.begin(), strLocalStringB.end()); + strFinalEncrypted.append(strLocalStringC.begin(), strLocalStringC.end()); + std::ofstream encryptedTextFile("encryptedTextParallel.txt"); + encryptedTextFile<m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizea = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizea = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontenta = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& locala = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontenta); + int localsizea= chunksizea; + for (int i = 0; i < localsizea; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + char * cstrLocalEncrypted = new char[localsizea + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); + cstrLocalEncrypted[localsizea] = '\0'; + locala = (int)cstrLocalEncrypted; + + + + +} + + + + +void SLAVEB(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& perm = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizeb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizeb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontentb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& localb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontentb); + int localsizeb= chunksizeb; + for (int i = localsizeb; i < 2*localsizeb; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + char * cstrLocalEncrypted = new char[localsizeb + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); + cstrLocalEncrypted[localsizeb] = '\0'; + localb = (int)cstrLocalEncrypted; + + + + +} + + + + +void SLAVEC(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& perm = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizec = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizec = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontentc = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& localc = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontentc); + int localsizec= chunksizec; + int last=npermsizec; + int nLocalChunkSize = last - 2*localsizec; + for (int i = 2*localsizec; i < last ; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + char * cstrLocalEncryptec = new char[nLocalChunkSize + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncryptec); + cstrLocalEncryptec[nLocalChunkSize] = '\0'; + localc = (int)cstrLocalEncryptec; + + + +} + + +void InitializeAgapiaToCFunctions() +{ +ExecutionBlackbox::Get()->AddAgapiaToCFunction("CITIRE", &CITIRE); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SCRIERE", &SCRIERE); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEA", &SLAVEA); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEB", &SLAVEB); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEC", &SLAVEC); +} diff --git a/Examples/Encrypting Messages Using Permutations/temp/BBALTCEVA b/Examples/Encrypting Messages Using Permutations/temp/BBALTCEVA new file mode 100644 index 0000000..362b653 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/BBALTCEVA @@ -0,0 +1 @@ +std::cout< arrPermutation; + + if (testTextFile.is_open()) + { + while (getline(testTextFile, strLine)) + { + strAllContent.append(strLine.begin(), strLine.end()); + } + testTextFile.close(); + } + else + { + std::cout << "Failed to open file"; + return; + } + std::srand(unsigned(std::time(0))); + for (size_t i = 0; i < strAllContent.size(); ++i) + { + arrPermutation.push_back(i); + } + + std::random_shuffle(arrPermutation.begin(), arrPermutation.end()); + + permutationTextFileWrite << arrPermutation.size() << " "; + for (size_t i = 0; i < arrPermutation.size(); ++i) + { + permutationTextFileWrite << arrPermutation[i] << " "; + } + permutationTextFileWrite.close(); + + + int nTextSize = (int)strAllContent.size(); + + + + + int nPermutationSize = (int)arrPermutation.size(); + + + int* pPermutation = new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + pPermutation[i] = arrPermutation[i]; + } + + diff --git a/Examples/Encrypting Messages Using Permutations/temp/Includes.h b/Examples/Encrypting Messages Using Permutations/temp/Includes.h new file mode 100644 index 0000000..3556d46 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/Includes.h @@ -0,0 +1,22 @@ +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + diff --git a/Examples/Encrypting Messages Using Permutations/temp/MAIN b/Examples/Encrypting Messages Using Permutations/temp/MAIN new file mode 100644 index 0000000..221b69d --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/MAIN @@ -0,0 +1 @@ + DOI diff --git a/Examples/Encrypting Messages Using Permutations/temp/MASTER b/Examples/Encrypting Messages Using Permutations/temp/MASTER new file mode 100644 index 0000000..0ee341b --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/MASTER @@ -0,0 +1,3 @@ + std:cin>>n; + + diff --git a/Examples/Encrypting Messages Using Permutations/temp/agapia.dat b/Examples/Encrypting Messages Using Permutations/temp/agapia.dat new file mode 100644 index 0000000000000000000000000000000000000000..6e0adb9e3ad4a7a749b64d80b665820041897b25 GIT binary patch literal 1218 zcma)4J4*vW5T0n%h~NY5Y(y*sAqYMiElk1{0hO2p5y=(j5g)i-f?iVCC|HSt4@A;yP16upX+hf=B0(M}M4Cde*}$R_sF}f<8RBLr z8dmTHVvfcfSHuet8P#MdU1NNb62vDWLGsN6Bi+#HNI;}1lSJH!-ccT9qYo^Yq+T@6 z?(A+4K?xR_^?PXaX9y;#2RJH zQkKg4a6O&);j^qTfMu9QdkEM2m%@C55!O3)$ht1Q6E}$69jjoX-hDe_NK@TMyKUx> zU1OZMNQjGsz7I(^ZJ!BPNBq&LK@imye6V_D`@}){gg>AbJ(Tw>$ma?Z733K|^+V6T zW$V5(KRhp3a9U14KjsdgCO=n6z$E&^sL!JojDGMq;S{IZH@I$NDvU%d=)}THaTSO! VcW?zA7|VYrps1>lan2RjegW>j@o)eD literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/temp/agapia_transf.txt b/Examples/Encrypting Messages Using Permutations/temp/agapia_transf.txt new file mode 100644 index 0000000..baf04bc --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/temp/agapia_transf.txt @@ -0,0 +1,30 @@ +module MAIN{listen nil}{read nil} +{ + CITIRE # ( SLAVEA% SLAVEB % SLAVEC) # SCRIERE +}{speak nil}{write nil} + +module CITIRE{listen nil}{read nil} +{ + @ +}{speak ppermutationa : int, chunksizea : int, npermsizea : int, strallcontenta : int ; ppermutationb : int, chunksizeb : int, npermsizeb : int, strallcontentb : int ; ppermutationc : int, chunksizec : int, npermsizec : int, strallcontentc : int}{write nil} + +module SLAVEA{listen perm : int, chunksizea : int, npermsizea : int, strallcontenta : int}{read nil} +{ + @ +}{speak locala: int}{write nil} + +module SLAVEB{listen perm : int, chunksizeb : int, npermsizeb : int, strallcontentb : int}{read nil} +{ + @ +}{speak localb: int}{write nil} + +module SLAVEC{listen perm : int, chunksizec : int, npermsizec : int, strallcontentc : int}{read nil} +{ + @ +}{speak localc: int}{write nil} + +module SCRIERE{listen locala : int; localb : int; localc : int}{read nil} +{ + @ +}{speak nil}{write nil} + From 26f09e96b73f0cda53f3a0f578aa7c382791e303 Mon Sep 17 00:00:00 2001 From: CristianNCC <47252175+CristianNCC@users.noreply.github.com> Date: Fri, 1 Feb 2019 19:22:09 +0200 Subject: [PATCH 3/3] Add files via upload --- .../Decryption code/AgapiaProgram.exe | Bin 0 -> 153600 bytes .../Decryption code/DecryptedTextParallel.txt | 1 + .../Decryption code/Def.txt | 17 ++ .../Decryption code/Drawing1.vsd | Bin 0 -> 100352 bytes .../Decryption code/MainInput.txt | 1 + .../Decryption code/agapia.txt | 154 ++++++++++++ .../Decryption code/clearText.txt | 1 + .../Decryption code/encryptedTextParallel.txt | 1 + .../Decryption code/execution.bat | 4 + .../Decryption code/includes.h | 11 + .../Decryption code/invers.cpp | 34 +++ .../Decryption code/permutationParallel.txt | 1 + .../Decryption code/temp/A | 1 + .../Decryption code/temp/ALTCEVA | 4 + .../Decryption code/temp/AgapiaToCCode.cpp | 231 ++++++++++++++++++ .../Decryption code/temp/BBALTCEVA | 1 + .../Decryption code/temp/CEVA | 50 ++++ .../Decryption code/temp/Includes.h | 22 ++ .../Decryption code/temp/MAIN | 1 + .../Decryption code/temp/MASTER | 3 + .../Decryption code/temp/SCRIEREI | 11 + .../Decryption code/temp/agapia.dat | Bin 0 -> 1215 bytes .../Decryption code/temp/agapia_transf.txt | 30 +++ 23 files changed, 579 insertions(+) create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/AgapiaProgram.exe create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/DecryptedTextParallel.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/Def.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/Drawing1.vsd create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/MainInput.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/agapia.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/clearText.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/encryptedTextParallel.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/execution.bat create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/includes.h create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/invers.cpp create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/permutationParallel.txt create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/A create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/ALTCEVA create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/AgapiaToCCode.cpp create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/BBALTCEVA create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/CEVA create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/Includes.h create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/MAIN create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/MASTER create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/SCRIEREI create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/agapia.dat create mode 100644 Examples/Encrypting Messages Using Permutations/Decryption code/temp/agapia_transf.txt diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/AgapiaProgram.exe b/Examples/Encrypting Messages Using Permutations/Decryption code/AgapiaProgram.exe new file mode 100644 index 0000000000000000000000000000000000000000..3747a79475e65d37d2ba6162ac03f3cf9aeb202a GIT binary patch literal 153600 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 P!9fwlsc@nH!N30k#1}r0 literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/DecryptedTextParallel.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/DecryptedTextParallel.txt new file mode 100644 index 0000000..4dd3034 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/DecryptedTextParallel.txt @@ -0,0 +1 @@ +Ana nu mai are nici mere nici nuci. \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/Def.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/Def.txt new file mode 100644 index 0000000..91b0d54 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/Def.txt @@ -0,0 +1,17 @@ +% // Include files +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +% // Additional include directories +% // Additional library directories +% // Additional linker libs/dll etc +% // Additional source files +invers.cpp diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/Drawing1.vsd b/Examples/Encrypting Messages Using Permutations/Decryption code/Drawing1.vsd new file mode 100644 index 0000000000000000000000000000000000000000..b5c4003e8ba8a89983be625f5109c9fdf81547f8 GIT binary patch literal 100352 zcmeEv30M?Y*7m*C)f-!H(105Sh~mnQy9KzT2qL&6G@D{jltoRV11hM|7(p?{#EC14 zE5=Mvcs$1ut^Pcy-xBC1! zMd_Mvn%qI}J$fPm(i@~m)L=UW&xvslIYL5sg2D6#gMn-lfVqRguZ@rYk`btd<0RLw z@$vuX2!x^}_?L?l!;$+vZ#2b=-}Bnv^O}G5^MB7i|C!hP zH-G*gdHqRlux`R;K{bPlr2^%tdn8Q0_A)A`R#J1K_jc;YgC|x-|OH1Nsf0vIbeA3@8ZYL zlncoG6vN-h|5Eth49pzN0?ZQ33QPtD5CAE_lwc|_YcLxyHJB}!9hf~>6R@UW&A^(2 zwE%MfW5682oWPvHT7tQNwE}Am<_gvZtSwkOu=Zdbz&e7tfsx}Q$LtBuy}-P|e87Cc zI)QZt>jKsltQ%N&upVGN!B{XqFn_QBuwG!j!TNv^r|k#UA8Y_vAlN{#L0~~(gTct< z3jrGf778{LEDS6hY#7*Zun}M*!A60N1{(tw0X7ya5-bW#0~QSy0~QMw2Nn-D4s1MF z0@wtw55N+^CV~-vOahw>HU%shECnnTEDdZb*fg-|U?iG<1oko546vDCe*sGe%K)pN zfB&rK!<*sZ1c(qWLEVGj`j3ASU-+XQbsr8-{-}NaGyC~({(LfrC^%UG7!5`+J&Dg` z{*yTM_vSx&Z{y>?dj#|_W9a&-4zBn=_aN^VVd6pWKFAj8$`4moc5EtNx?FclLvk z990ZP^3{CU8QI@`aBh-!h>w%U`_IX~`Xt81q$Vd#N{C_nlT%Z;IYIV9K94+p>;D$; zW|H^Fd6Y!sec#Q z&cCO@M%Wv9|By5|nD~UaWRx(j!RzWb!|UGNZ~dQ`U;jL&{uS}@B&NUr*$rO6op;@l zHuwV>`;g?Mn7G)q$KL~iiNdGt-xr1HO~rI6Pp z$B{vfi%dz2P8qM63@J33^Nrz})VSn{n&c0du!L0OxebboPh}eJ7+y;lhcn3i<>wZh9GW0 z?|R?%hd+>glE<(4c33ZW4|ne_oqaq!+`YW`*O8yUHGj!DlxD4}d=)%iz9k3dZ|hyx z$+?{d;PY#9m7HTL7&*rbFftzGTuCk=bCl#0GEQV%$p8_|*bM$BbJZLECpgj%{{KC5 zm5h0a2AoBcoYtP{l`uIuK|?Un`{zxLg*?c17%J4S>lkpeamkvAOy7jWxD>{9dS~A@ zV}cT5l9N)Bz%PR1;}c@y#sv56JD^t|56>}VsK$V21O@kw4C**+Xc)h*zxVmzLa2U+ z!xB;wl8_&4lefoNr1l}WGGj20yUF#3Q%0YHnI661NtEdq_`fS8;BGKTOrM~>$;y2sDmB;|Mg4K;sBBjzHrGG>$;y2sDmB;|Mg4K;sBB zjzHrGG>$;y2sDmB;|Mg4K;sBBjzHrGG>$;y2sDmB;|Mg4K;sBBjzHrGG>$;y2sDmB z;|Mg4K;sBBjzHrGG>$;y2sDmB;|Mg4K;sBBjzHrGG>$;y2sDnsf8hue6cqfgE!~vM z<^R?ZTD5A`@ZrOY8az&&It8CNaNt1q1`l6fUq9{vPa14?@7}#TY%VD&si>%Eu#ftu z4G$g$t>LeK_;Waywr$(Gy1Md*3O^+h2^^bLDs^#jfkWjVR#sN|`S}M991x4erfuCj zbm#!Dhf{+?pEhk8!!UI_;h(^TfIrn8^Z&xRv~S-Yj^vwfzJbsE{`>D`GFj)&o#Aso z{q)m^495ZZ$M^sdl zx3@Q($l}F|`}ON*XJ-c<*tBU=*cCi!)20oa=Ku1!j2blxKGEOb9|nKs%$fXrfny#$ zdNjs(FIE^*REZIC-(OCG)<2mKRzWTB{DLScdh>Y`-9^tmE@iP@N@9s!Tfb; zcp`8$`D=X{g3AZP zZfi^KNn&AP0TTo+3JgA+5xnKmqep-L@cvEb0-wtdU0`6~ph1Hg9s^vLmMvSt@WS}R zr^5sM4SdYa&8=6jUT`hOjT;9SsO~Xu-aHtGhI{y}=di2a`qTepJ6sDscG=k2K)mA5 zi~qTH?ON^(-v0qJV#SITSy@@@xJSdc{Lbh9zHkS@;{u#|B>^8848!+m;MY7pjB)PVx&MlDS-yOEL+6J~0gr}Trc9Z#ckkZ+igSU3oIZVe-7MI;bt@cs z-LDA=2@q7_V!_YfievvrJPHm2&IM2h?^^Nk@sQRbQv*2Uw*&_*r)fbz9&Gyx>20c#R+3I0B6$&^Q8rz7ZhznIreCBM)+aI@5FV`z)~8U~|AS z!Lq>Sg3SY)5B3Sz0-m70;~KaVfd3GAO#!mOKv49_bKRd2Ln{8EQL z$tcsQ=?pbu;2z=`22@;JjDY7epdWtt0Rg2~fxi6mOGlJ};tlcf2#^r+V&TS?P({D0 zBsX9EM~~n0nwo$|)wo6*4tM>2F$gg~Yc(ha89sm;Cc^DnQDhq2J2BRv^;e;5v8aP3 znpCcJLo<85(e{ShjCmJpu<*PecVl#mka_eN*g|gL$Zx4W z`Bx+BLvG z+wX6QEq#B>?z;`Qz-e(e#-!kX0T?-DawAgWm2iJd?&hPvbwg|TGYW4~t~FF@rRCaY zkE>R{t`^J6wa;}AYXTot(_PE8z2S1AFdzK5Dx*?2KsH)dsVjZsfgje4FMCuCFAalh zjl#0*%C+4~-sa+5_zT{?0uDydkrtL~MVrgD;&QE|32j!cHHTj;%C(l|TB}FZOFz2z z((N=A4t(iR{Fg^?JLPDM^!Cac?4YI`)PiV;i~2HMRxw?sTVbJcH+*Ehz2BXWGTG3> z0>6hfr!duDC0{`?Bh*edJ>?y2KUNCHshw2A>1fK)T9~62<*4JtIcmus#m7pi;|8^| zOgHy9>`QPA$rMSV^8-|pmQku^Z9+=lXxR+4Lw2)HwguLV&0*!oN|E&=*q?Y_d&#`^ z5AE!gd1fRC3S2*2KROg^!YNI-KocHLYr=(^ zaFHfltO+Sy75vTMtHFKhiEjMken%WOc&CZY81UL1;w7AoS=#r~Jl81)ZO0pGp|S1rKR3f>Zdk>dF|_%Gqzb6YMNQl=|<3V(f_oRqu@^|u)vIWaOlGAD9f)o2d=&gD*nFhD z(mF?NbF_y|v6ddQ#C60m>^CUA)zUMuo(I@j+s>R>k{{%Caee;m?J42ZcWWM;-jKSg ztYG%4+*KP^q5Z4ATXl2QvsGvfV`EX!Vm*wZeBXwzRf-LVluI`ReyviSJY<~*8*CmP z@=1s*SZs(7%pPc*ZWZ%(# zj>iy|O0wgR;lFe}U+TTo=k|$pKIry|UF1oY#C`h$iTlFdp^S~#K_S^GvDzcG+H=Ls zYL9u)9=U^B5p5&wv_Z_O5{l_#__c2JN;*SYB+QI|RGoY8W!NFt;Td9iYvlgj+Hm_5 zKW@i9MeY`|3{hr0Wp7On4^9aFxR+zeqCPp!A!S#4mkcYB@3OGkV`;TVXl1oWX0>DW zE{lf+yZ5yZ_sUUw=cs*Vw(=D`R641;1Zc{16OPkMOY%w|7G9^8Lfob}=hlNG%WM2EFiRL4-0GkQ2slT{wU&E@5< zY@Tbz(^avq{;sFR_=56@tN%r5n3IjlXQ}FO$5)y7+oP-dbR6U|*2#JAb4}K)@g4LY zbKLnzq{!TTJaMXzjv6~Z@a}VsaBi|)zgL;tCT@%Q)Szo6*>ftOy{yZQX6y+!<&!}y zx@UL_Upgh1ZD99z{Yzkn8nn3Ng6y8`gV&ahGYp>@RvW0>SM`Ss%HWp4@-MRkmc=2T znzjxTf(JW9IeguHmd!3l+;UE*5z9)h>~dT(z{%#g1G?()*x|K%*MNRqSE5cDvY zIRHe#ITm;3dVk`fe1dcEiv9MK!yRE-(!8Vb_z(ruI@rP3NcO9C1H!qFuq;0%W$D-q2*X`MQNA^Vu)iBe(k` z3vB7RbM9Y$D=4lk$)GFL6|UubXV1KUCT}lw#;oc5&gROHj7_y`zrXYS9YoD`);a4= z9G!$G;jriy3RE&>M*8&C%hT7T?@2$EzB5>UJQ$*5a4qHHwYbmX;hC?!BYN}+3vT*& z_bl_lAM8Gc7cK5FpoQ1Olf5^$I=3g@d)4uCm9f;%vs%Wk(r$Xv;)8_Y!b8gv3RZty zu&Ch3?OBSeC9QqZ4l(Bo?rxV}eOu7nOT6H!y&AP#b2rjb{#DV&q60-8lGr3PBq=7z z_FS8j?Jsry+xDy$pHrPj4jFgu!!vG|>^rYMwdJXh?s-xYdZL9Q^3KmCh7zQxaIWyF z=vOha;)9Br6|GJecf9cRqwVvC%u5@Q^r=i zkE`NeS0hSSX(cll%5)(PmZfh<{vY2{!T`2|(#l2LEV?!2B)ZDf#KM6DC)TPyL!4$Y`NB43r@ zut;xqTZBc?0u-+jM-PNAuTjyb;4i{iw%?WMPG?E_|5bpj&$Ih?IviKOGS{+r9;F(M z#IuA3*)wHa7QJ9TZZ=j-D;(yD9@flhcJJjlB?=ejTMuZ^iqbjGUQR(lx~96STCcI7k+DwL{x>r@Rb1@w2KWGeP)<# z(0*p1WZFfB7Xqze7?v5dpY}7*+Gc==o8pE22-r#x#?TRh;et?VFb>2Pf$&8(^9%%6 zk;la7CzUS^HM*jr$5n53v!!o#7xljLkpY0rk)rIQHASvt7Vl*sOV zseaPrP4$lg`g?X+f8#Z(hN}dqnkKkRTcxlRR8;qNmfnAXMIu&ErW^mLden0r)05&Z zRLR@?=ej<^0n)GTy)1$&^|K#bB6cHvk@dUsQb83J2#@c#+Ra9U_)2APZLsK;=$8H| z7Er>TG^RVKMVL-|u8qM7`N-eZd4i%<3BehMbgWODnhl-PC>SQgxA8>6moK1kVJI~UmAJy#wTVKW zDBQhR?i+=Iw#s8R%adBS@6Bs8;Q6cj`LDDkyCoY`!b zqF2UUl*etB=S`I}v6b>y$XrB4t$&HjbcsD_O3}V26;6%E)+KK#1*Pa>>5PTAf0^zp z#lxBwYXp8sDx!vKkUrN5f9XPf$wZgw76eM#I<5zxd{i_LBMT)`+IL~}7RoiavwaJ7 zS0^DhE2jifY~dS3Eew!s#K+uvQs{=;Q@2Q;Rz6-rU!U)-f?1{+K)2qCRz6c*JUg)$ zUGiiiD%l_Rm+K9lm=gBFv8pRSmTTdPW|nJvpcfqw^`!ErM`LUNv>7bW-B-A_lA^(H zypg50X`3xIc6VQi9#z9EU1_r0{dOy^Oq^(@zhD*&FJr5C3_<1U-*D=-G6H4u>2 z8LUeTh71Tq1|&8Z*os3IP_wZRqtviX#=(rAiCmdH6;Pp;=?lig3ysZBhYD$^Pw=o6E7FN`0QTi zX6Oz(zbE@-Y0oFuS!-dn0g24R`*Gn6e767NDjO&(A)ZN|R95N~mI{byTtFicu1t5) zO9(OTxz3M-GzfgIC2vVc>mj59>CHk+s>*UwuZp*epvZ+dSL%lCnUF2dKSGz&L5iF@>2 zM^&>$RFJa2QgAs+o~t-9^_t>U#)4!cfXu3h@s;a1uDR#TOaS_LRpZ=NMb zAIR4|*DdYFWcSj`gihTUM^zV3A?xd;@|4)K-I$Kvl&`zWGlz~~le(4Z{<;W0cW>B! z=Tmg?IpNcD!pG-?4(C}cYw6c&r}9B3v`rb~Tawxat`_`gDpafg0CDQCj-pKLn~ zTGQHReV_#1E}^bEm+5A{tpu(>O6x1N7avz?PdfJ$(Ca8luuy}&oh1O=U5@v$Y|jCl?-Vvd_1jDW=S7WPQDZ_9+?rqg;-Y_hMU%wiL z*JFuQuYzF(PODeIA!u-gzqY`I#Ycwvi6|V6+n(rc{&JY*%VAb8pqBa+&r2;rm3*@uDO@fY+%}huD;f1GZ+4t2Of*;nY_?$W1Ps z<&Qf=B1hFw$7S+un#Iv(XjV4fJFbf-T9kZJRji-qXzO0BD(>d*^(OilD{xc^Jlbzn zMTF97OO=CL6KRU~Ps)f;VUuKGnytL$hY-YzHc3>T+JV#4{gA*T^hxEqHE=XP?staN ze17wkul&F2*G>4zRAm$!(W^xWWaefe2~9$Vk4LHU5Lb0b8+k~$XYWv7c}URp$uZ4B zT~b2yT$`TKZg!kua@^)-Aya!~#9mSA z2MnPqP?T!e^~otH5*TccfDq3s@|Z9*QHC6mb9ri?A>ElW9ggcs3vnWjqd%Mas9K06 z_xjAYEYr=IVsRX;#(+k@%PerYo|%vDFWlmDJyVLA`wP8<*E84S`}5A^ckZhZV-zC9 zj+4hNaf-H8w6s-(MmwhGN-3vLbH7UNl9(eY^?+P79!Ctxxce$s__sD*!qZaFm2QR7Fn|LA^X2x zu(iv+zM5XnvxQjt6_t<2?TT?u8Aem{hS4K;Rw!e@ChnZ>Iw574aNaPXz=NWGXw^!Z zObP7vdOOqI9Crse3pLk!m8~goDHxqtEkd#)$0B93PYc>j`-+MPU6f1>AA!#l{Z#aG z(UY}Xe4gi7#@{%4kG+1PnT1_sHhj;&W@x?fQP?zM;-5vAv`9 zxLsX5r0a*%1;euU&vVY6ezih5_u`ksg$2X*D<`8B5YxuPwW%yQGdyV7!>ceLov~s>7mqF;Laf-l)wSOd>P49UxEn_gv;G~rOLkAG5DGEc zJjEZa@V)DNNL8FnJ3eKGq`P+L9rniY2{rk4sk@*5mn%-)Ilyib3Q||!#T)M7Z54uV zGF0xzE4p}6$uYZ7KxZ$3vg%dH40&57DrlB>zH;n7DkT!*nfvmU`JeAgjvV$%7=BrJ zqPNg`xo&rW=wKglH^(yF*gJ!^_)K_k#S`tC^PuRQL9(o3W5t1cbaBPS3Jclu3O~uq ziM#Bd=k0PejNeDiiN_USJV4Uc%b>|`0LoxqAxl)R2k00 zDKwd~>(1?TN3Zl5*D1fE3gjl$s}dY)D#Wj5T(W<@`%=bS*|ck((W@dpy>>)AT(3L;swZNwnAv2MF-yoSuvb-MGoMDqGZXq@clQ0Cq|UE7N874Cz7Hk)ELrSyVA z(ZPRWuDN0pK7Ek6xBbI*8-ix7E=aE#SRCyeGICa2+~jFahRGc-1O%KHgbJjQO(W?J zk?e4vz+vIn_IRgfCi@3`cVa?%a8B^L;5~gUL+8xFk^a}(ZDW>0RNp}8`dLE%Hs1WdHam}EOU=CPl&Pqkl-f3jinkHKZZZ-ZT} zBFiT`M_TXoOwQBnDs{>}JBNJ}84xOdu;#{hNjH<8 zCGF|kBXo}avZ1#oYc5TW8xduf(28=74!$(mF6(@7Xi{v_)FeNk!&jYd^PRJJh;m3SeN;6z7kzg$Pm`xwdOUC0}j@l!=?br48M4wTwmbI`MZnk-T zP~OOW2|0M-#=MK!YiYAjH%O*m(VpJbGA|;3hD(Q$zH>ra?Y~!Kzpmh$#KTO%uHxir zyNWZyvaz3c?bv;*_l@62!~Vq&ZrskZdsKjuH(x4F&Pcu_Jv`&u?whl&_1N1X%dM~3 zrqg%r@@rHDIh8FoOU~}-xB>SGno_Wr@u`{^fG%D1@Napnmt)IgMIJ4W9WG$rEZqm= zt8ll--(k0YSDnO!n~c; zhfAhkY9DbrPovJx)AX*OS}#vHlAGsoHAkI0!)4lsVK}eNvfNf*jEG+nzT=2~`XfSM zLN2~~r1TIQwa9V%F>TQm_cqI(L}p2+Kg1bmzH+7_xuGm{GOmdLpav|$UlD{FHQ5|WR%sO~7C@;aM#a*f*4hHB zgPut=eu35jd|nE`u^<~j>}{lfNeSBkY^Ch5l^t&4(7tIzlSP0L_O&(m^OD3C|U{4 z9jS?;CnCLc5f*E@v>Yk%XWA+#shb>1qAQt!k|BUbeJqj1hMCHYfzxdqT#=#`c3S9! z6|Lm0y{PpBIiAssZ}Wu!P@kEc*0;asRHoCicV0VoQwo%m#^XvNyYEf+pv&$NF&Eu|aQNOm{)T7h zS&!tuxr_ZZH{27xcYiSnb-d|L2#4@QCqL$5=ag0faj)H%#a(ot+SxC*iC0bLHn}Ra_8v*=e086+&Q~k2$yXy$ov(5vlF3&O zwr^VJtD%5|>wVP$kg&;D69p~meRT+~_f?5v7%9I@&iWHo=d3%sw5)el;412!)zZS` ztYW2&Qy<*WTbGpSMvQOM$LOsi^$ooBra)Qet;x3$cx#Xocxt$Fo7Fks<-X&cIadv- zbJZAM%NUP9@KfN6I6tk_K5pQry$nWPEV;tSiy@|n_tP`(o?DRn6?fk=?m%WQ zKRw_cf68;e$EM^$_i7K#Dfff}?vvi2j%PSOP24Q=V~RSbr~=|1xyJ<-xleWRixm?; z{X}Bj&`(dfoE{+ELHv~U?dF6u;kbdP&gO_PGV891yNJ~xizq!cfcWYi;;WfYfkU%8 z?%GxnhaT3LNshQL5paIn2mH2gm!oxl+h@4E^|1zi>%IW|c8!m;&#=DWw_>!Y-f#c7 z82hmXV(dNE-|JhdsMP4Uhe}K#mfh4K#M0Z0A=U~A1TMyslKp=*#!CL^7zG9EybHM#9?2G|$~ur0lFWB;W9dx;CMCGNhL+=I?SfIUMT_n3S91<%l<9?2)% z^&XlF?g_`Z0DH+8VD0^wGo4eK2gKgE@#AdV}k3$O~uyRVE9_F$doZqd|x z?r{=iA;$LPV(c0SvU+ML@!RqM+}}_69Q@W4W91~s_N|YxEj+P)ZQR4MDPi9d{s?)}nNFP{)Utl`lBopzN+1E8^xqE`S1cvoHfa~&K& zZ%l9?J00KvLVkb;Aja0?f%jvquiS(OekI2G$_XC0&>+T2hmoFuDa4j@Ay(l?i8a3` z#G1=hEq^VI@W-z{TqqFvbAPZ=qlt%;107-)o8|viR(z~Ivt^t;# zKFS(cWA~v5R7ZUG!GMftVEZL^Km)w99z5$_=d9~5cs6j>XUE(D4RFr71tr!wYg?Ur z17{rqVYWWXGTE4*fjVCuj_Q3?$^in-S4%~uqIn!7FnX&KxN8G%^*2HSqqj~ckig`v zBaD!M_f`eCYn``7x?_Z(#c;D+Te2Tu`0w7x5c8MObv)lb!%rv8#j$grbI`LwqcU2nPUsgj(i6Pik~Hv=L9UTj=w< zgnNp23HR>;iP;u9zmN^dB7MZ3n66FpM^R9k2=&jjSRfDw(paeeyeB5{C@K!9`O=B3 zUOVizGYq1ZQ9#f2`1FSVLC~)qc{Gv=U)1 z8@N^?%;j=4ZUjn=C4i|AwTXpRqWfXFZ&@q~+ANRBmqXrJvQ{3yL%Bwgyk34wp*gri zp0E~Li5+7RQvk?5@ui%}w@calRvC9*9+xklYQ@CnYUN&X^PW_cC$y;&!vg8&x|V@d zcp|nadAs_#&Py63T|s(?c>+8QBWX`cgY^rXmSYWC;!Ld|Iq0KBl5Tls#YKMKpLAMv zh{Z_JlX_06hDPIBBv)d!%IjyRHdW5h4_i1`(lyWQss!T-!4>B>)SWiXY&*F43p0AS z1-oh7QrxoKmb-0g)BVQY4&FaIEiL++o8ETp-PS7R%N1t+XR6(hh_z$evfX<`()@hi z0rR~FiXtt=f+x$z*ubUcdy0C}RD`e6MwXFUO&iivlsu}gg{ER=WH!CL^)!TT7-ziU zct#FA1-_@c#-D2|4w{_-EM)|82F+v~75f3I*$Z98aQy8Y`ry$BP@U3$mEEqb)Wt>( z&!&HlKsPG1SGQAtstNp#s^Fe+{$3%XU65O5&&LLb&kCviFD0@jvi9by<`rV|x$SW; zv}2~W7cGz(%(L3#^sGX9hrys7L8oIGOnLLnk(R}wlKx^=)K0cdc2GPYJG_M1{*pA) z$YUZj)Q-da%?GJK{q#Oj#AE@Z+~UPHPAdRXfvunwsLCjNQ~mf&^+^$#<$sJ=U>nTx zDG6AVPsa zlTv^a3b>e*0-R8wmRAbAH@!Kf06)EnQh*2r%1lZDGQCYo0Zu4z(5Mt3LIG}izm^lB zz-E(DfCvS0O-cbyDA2Yi4GlzhkP3_kq8pm;-5k3)@>&53rvLh{$V@k?1vKrD{tGAk zwF~t%%<>CHwZQHp(1CE`!~(q)7D`Sk;QgT!r65`XEC;Co=ClIq#TO+v-I}Rj()L!g z1+_reZWmgyIGhE|^y8}ZPC~qh?d&y}{h{+wcKysQAGvrgVXwLn?LZhO9vBsXqu$jH z>_;!SiQc?yj7=WUQ+472y#%Qtv;VbC&6PUsz?kUtYPqUx0Q1@-@n(H+r;3 zZ?t}(YtXI_hIyV7fg~7a`GZ3rpk+xSkmKYYUOtCj5rMk0RHd$aQcN~|DFWRF=>XdH z=StG=%<&TA9KY~8<~Zs_&qkQc@uI9kykia;L1$9oD08HRX?kyx>G#6?erI}r%T4dq zD{6I{YS@Q0U({BS3{K=gCyI(&WEH_A-_A|(0+{3bn+uAbRAy`|^Ae!P-RP4r%du&i z^Tjh(zll?W9 z(~q;zi8**0A2?*SiJS2sa5ElqHO%v$=rk#cVxVQq1_=!UlF-d;N>%b8&`gMZyRd&jp7#I#4MHQHLnd+(3zczdS)Fa~4%<%e8RQ%oplAQkl{p-i1iAUB)MU z$oVA-ef9l1@zCEPNz@D>Nt_s8H4|jT#B{V^ASj5Kcxxx2 zryklohG8sRQ=**WyqUN_3ubCE6C1|V67|rgsJAd&pdKPIfieb#yRZK0_*chFOTXtj zAx==1YimhN_}H2xe-Q<`kk?Kw82L~Lie-oipE{1p7w;a|$ewluOoN-*D;0st zpPWJzeatE-!Fc6VPmmBTlAtX(Uwl>4lar1-abn$G(cJ?twhW2v(p#Xfe7e1-dSS^yY=V=-Aj>2dufddOj zlmNX%U6e2Y9OwdJ;@)r$4)78q!`s+wx;w0oxCL>73loQ^^jzA;9qwnsQZvELsv%5F zjzG_OIAAd+gRV*CR7SBybLa=tBTxW|6gT6t+tCLjP;dneO6&M)9qj_)w<3;q7N>T{qzv%wfV2L*t z%{gNTJCeWtVo{5A2A@ukJ_WgcAYw;U|?}3H4eEr#{!d792=->dk0sOIV3@E%jWS`*`KUjOF1^ z9Bl;h<`s@|C@Z$mX)kcJNTG&8VpEzzVW3OHZAcA~2StQ9M!rZT$yG~l<|;-gAof7b zLGRqE6zo**R3Hc}8`UtML2d%k<(}f6;u)zZJ~4+@L49;7AmjjFPgIaj0as6KZpHXQ zJ)vY`dg3q?6r`SrVwlZx*OXYNxXw(RoSEu0 zm5Cj}ECi^ZND2v?x=MnC;KxBy>smI`BZi?1XeIbls6s&J;BlS%>#iMO{@-wKQT z7M8MB=?iPW<*SM9W0k6C9A|?k*;nT}8VduNd22T|ZJRAeF?IZd=_B zyPbEt>sIY1>e4+?)nkufc~Lu7Z_9QPstok`A#4nr#?E6`^f1b@pk@GB7AX%QrSLLS zb787cWr`5>s5${OSwif}CzM&x^8zIn^t^&_A0bI7Z=hWAQwT1w`U3hK>vtU7v}heZ z&id&U)V^!1-{E7z*9vMQdy5mEb|l@VNrYVzzY!wg8{tICN{!Tkpwfb6XHm>^1y#Wc z^_#0H!E2F_R%0u*;D(hNJAq~kFekI~mY~E(o(Ma6AkuF$3xquMiH&55TDpD-mL7vNXnlaB!;VdY$5o#?|Dcl6KiFz**e+s7t8t%5?mNcO z%%>fKppig&HXtGVR4G8=wBmJjYww*lzTQ@f&HkMd7fB$Y18TKEyd;ijQA!jGyUcU6 z)}eCkf&x3gP4vT>o4z|4YvihWSR>RsDX}C`^|lk#oq>`o>?8ISi_C*l{N5=T_*N%~ z-AJpmPL0R+I>~i+#zr8q2I^sF3_ya&i<|4YCMUVp28c;;t@F&%`?{o2`KdmMNN_P=Q>rt1EjY1_DizCZUV}?~E8=L(i_R*+Ns*UIJ_=J} z&PzC1@(X;~AQ`L_gsFvN!4GzjXuv22D>zPJ8wW-<+DLY&rC~c@_yKzK1KH+mb4eZc zcn;7*pbYazo0aIe4e8EYS7q_xp@(A+M{p877aT}?#sIoyjyQY`)rg+&&TQ9{Y6SR6 zJqkLQ$iz$_z$2E4U!Uw0d6?y)!Ag9B*DU*?54&EKOc5G&KP|m$6**#5x*#f0vVtw4>?Oq--JmaazZGA^yFH% zECsUANE|kjtT`3Yf=AU5lxp9=r1zV&b>UAXC1NE#YL z(oi**h7jXhEf0DMX{d~(q5JaqN@eIhMe;+rgQKQWo^W4IgbLMi0zbkNyE06fT}n@< zI3=?zu1r2Pgo*WJ+Q`jAVQGXbNkjn>`#ixuOqmkV(M6IDc`%&wozFlb8g|AO7Qk|e zC`;m3>ZqaTcL2S$bh{0tAvKg~;iDA&A3Sg6vE2rFddDhybo$lY!O3L)mE4ie=MKOL za7iF>aCswwuSB`LafMGDT;4E(N5~t}(lW>zrlc_t`5BW2T+bK+8cC`U0%DwCZ%3B7 z5ZYOU+liy+*+{b0(rm>?ihaOF69|&86l~qDHpiq|B`HIJE4BTkCDu@_l8o_E0M+UO zCAU1;*wnwS+5-zVw2$}TJp@|(3Zmqb28SrQq_LUL8hp|KL!b-+)5WNZ{+cbgU=gR zA#p&uuCv$8D5_W8DN*#RWKx6H;cjZ$DpE*!{>fkd6 z6JD1(xXfW(0JA_&G6%95>fG|zOAYXv|H@K>v^R{U1~|@tf2pxPYqB7H%6G=bMSZEE z@(K;~tg5dzL{M&+sts>gFG9+VhSkPvC^u9+CT*|Tx_Y0-Qe(-XvW4EoIR7(z)qzOa z(GW-UKqm=~z)t~3fS~9d91%=##77NrL}Fq#{iItxj?fu0m(a($BQ)hT2P2*WjPQQa z<0;ThKx)#N8Rc|m4o7sKmAi%Ro}`SU zkdfWQFAY6`_aY07u1!X!1x9~`6-K57Mu%aA5#%qc|Z- zdZA?oqC{Jif>CE2?=0*2s**v|(0CPktFvX$R542QKv9CXx=qPbkS|VEA*M#Fk-X40 z!_CC0<6zTUU0?CCBsVmnN*jYka`QM9ijASZ#N&mcLsAiTjCrA*fN7c9+_-XyG+K%Q zfxO#jIr57}OBh*{`H<_gKr>bFNA_7x^L>`$hJBVoBnQPQ$Dxj4ew1P-_`j#$xQU6pL8=mXac>`CAIR+D~T`st;San3W5# zwP`UXS}*SI^^=>R^Gi1~kB+3W>B%0ahqDQ+#I~c45a+O{ShAh1bi2q_;>YYoi7+_Z zHn=1F?Jq8#y@R_6WdM@+g_?T;aA7a}&O%LSws4Ut=_$~t&^CXEMrDCU-8-C%Ohy`& zo{~+w^=?3;UY-s87fBzu9}Q2V#!g&72S=cp1sYLiW(KW?rV3$HiIBo#_VQes3P4>* zk#oOEKh!M%-QyN({;7D>_9j&X(5U4Ycy})RROuo9@Lg5bP}fz}w>Qr$b7 zM9@<$oF+5R>@VJ7(1z19#lZ*`O`6Z?CNMz16+wShi<0RH7Gul@oBK=J$4P`3|LIuUfhn=H?z)u)Pt0E}=d^Lj6GTKmjOrU_%M@Z!Fn%Wyq3kYbHj?kR{s| zOneh3bI0V%R!l!fO%o=;0;rF=CEL+JkSSeL;+^8UGEkf3O`Xofj$+PQlU@rn73x9k z7mnx)V*_>q9G(Ekk0&ik>OgE@jT3(3LcQUoehE<}svI3NsX|#1lz;Kmn4oc)e^d%&8`-A#9Wa&4U23yjw?K7Vl((fcZc-p#xjSF7w*L zw(ai_e4|U~H5bnc*2~CywA~@s?+d`+_QKz*ezoNJ*RFn$;Cq(HY2fk~Lyx^c7`~%G z%sBwL{58;A)# zjtu^P5w-~?Yml0duJlWd^vLdX)& z*kXx!FbZbff`3r<4K5Hz2d4(BZPzdK`N_p|4apLGM?PDwSB7G{p?HDwAHr39E8~{1 zgD+eO=e1QAfuJ~KH4Ri3gqrBQ2p3XfU>RuP3n3K`4So?;TLVwd^<)VTPI|Ii2xB35 zE)pWOU^7x;;AX zDo_+JphLply`jEE!l~3l5Kt7)IF3TX01LX=n(>t|L5PXb%Snsmr958b^g@yRT3+Vm zs1Y#1r$XnkmXuP z4C{fTIIH^can(xaTR>9W0*->t5PMn2Wl6jg8hRyA6tR7zM+rx<5-19!z`#*-^*CzN z*V|e#q|>|g#Vb-@bp09X3s^S(PJQ7>>I+djBTqTAFK8lCvgvJ=+PYro?xgeu^xOdm zCGtu9IAre12sDiEh2H!CJx>yS+wMa=JC}YPfx5jV2|P13oAwF31`E77QZhCTaDdk! zxDlnE=rH=F;HlYkFWF$Y8|0syrG&)JWq9px6c`3$hTlSv)ODcOW7w{Ua}d0UctAoN}?40{JA=ig0_p{~0M+ zKhdunSig_S0lwaH4yOFYLonYZPYs~%f}>%2L7 z(lqxEaFd^(`+tw0lrW@CW}5pEWbzy5ekeEjO>>{{llW<$lf#8v!1&t9gAPt*Vp2&jYZCOb zW;jiBOrFeaa@5R#Ue+Yi%d#UxGxV~KGfb*$%4z6jtz_a-nW;CJ*h5T*mZX=pUtxlC zpr_lf*stI@$qT?qrpA$G);;UGX4Y^|9N|MnxC5C=npyW$=V)Lg;qE)*m1vTEtQu$9 z?__KQuQ)PtrxMfW_(XmV=gSVFuUItQZhzNU#S=*6uexOennTvX1pw!ILL+NX@Cz@? z;OtNP&kF87po@>^kl1~?bT!#P4i{vUvI zyA}0tZZ}}KE|&8NoHNHzA`@8uPoufzPCq&R`_WuOw6Gs>XrYFn1*lTqK?}|VEetcE z1yEA!rf1WOL!kRegw!se;5}}bvVcw)g3$OGEG5BVSsC<&I1168Bhz4 ziiPH*;)@A_C*a1n4-}*|#>uVpd^G`@3In+p z9MM$V8pl-=q?m|k(~MLTz$-Lk(s*Kl;}r(*#DbAmxWy3*9h*ThF&vaPTtx{5WjIeP z@Vr7GAd32i=Qs8xsti@>8%}sb;6w?)i5<>5((lyO_d98`Y}|6J7*s8=%utvq-N|Wh zj6F~E;CZOWRhzNi(-jHb`UuB*qgX}49|10YDV&L@Nk4F7K`qz+{4L>(focCZHUPUv@*c6T6d!k|4M(}Z61!NLgfoBxbKuh%RuE0wrR~>qy zsmwoA(xj3S^0$;U&K&yK-Vl9|mS}xP^f#q66Y8Wi&=KvxwM2~_QF^L^Yl%h~JE8-* zmZ-5Kiv9SODCvk!1u+eXci$D$AR*>kqNa{$sGCm%F-=>(B?@Aimd@b~muA(eFaM>M zDBPaAyTMP+>o32B%A%O{v)oJVn|cTqYMrDZAY_?esgq$c4-JPVwTjrZvb*qyIx*(A zPDLg$CbjvwWOE(!;cM-aYQ)9LQx~Wc$33OAv8nX}3O(r#FtdVX4 zHKrWsraCp|RG^z0s4-ibnbvjj%et!T)tJ&}+`2BJ#zdhF)R?zadZNbM1TE4jtf@sh zRyo|L##DI)dbX*mZ;@V=2pYCX7r3BzTcn~cwa_A+LRzFAKh?EJ8S@4$(s?Xe(c_Q6 zs78ezBnbngHb@fkCh5FH7f7c9;v+k$efzC8ZUNE1NuoF192?j40Qp=+!pw8QVbJMb z1EDU*Kt4PaNt}nHAZ@Q4uvJzVS;#M{@Eb`OM?1fvODCA2k=c&l|3z#UQ7|%#W5+?E>$4K*p^m>kwHWAX#2qVqkLli=Y zDRIQLahwvxW75W`Eh);@~VnvjzfZ37UPw!C7tL4(&4|o`rVTjXu}{@T?&j zWfs-~vgOwhGWB?tgR^h1%O2MC;-LiL9z>@13q1RxJ1^6FbKhVULJ)18OwZ3G(`#jt z=~+iStISse`afOuaEK5*;-5 z#t4Mv7Af+PXtSv|Mj}z}C?eW3LD*;z?Ukse8X;^Jp~LGS>^8a{!dhq14Iyl7CP>18 z6Xzi;;lz0e3&<59EaI^29}Hptp?h80mq0BBa^xQt|<1#wqzY%8V%afHV6?N9r5d|U|4wg{XrVc5AC0)eS zJFsNA)8`Ff3F(qIgeBuV0Ea+>v<{Xm^nrqgZ;+b$qkiwe5*IeG0W4953XKiYKf1QD zc&E0J{>N&Ycy6T`4g&c4Cn|1;{_~G3ZaDqt-z{z$qSpP0L#+oZ0JXx`Lm5?8M%3D! zpjOnLG-!>e_3e>m^xTS=2B_6~>H<0{7EtTQoB}j=ZpJS9C(}Zbtz{pe5)QQv$^rrC zy$CddBVBJAjxM9S#UXU!HAlN1I<|~P=f=TTiV@tp@;G2sHUS}*LXly{iDh)`2XK=V z2OuQ>#JDx>wXt3M^tao!BA{T+3*YR>>?Q>9RiXK){;ex>8>}Gt8K5cur5F%XP z@5U&4w02>~gD>Vk;SgzTYC7R+&#!a#;u}VLgV6*Ux%d~2`nWHD}Y&J2hq)~f|EFU4bloD@-B_y$G zY81z=Zsrz|5NZ_&*7c**hwD-45l*IIVpf0U-Wl)0QckAXb`U95ohW>P`69$ubln1E z(ox^VEkKr*!pdVHyTrhyS8#k+?I<5LxtkHc>Ufcn>aw>Rp%i^iE~AO&N`_U({Gww~ zAPsyex9FJATxPK97}B*jtV{HUfB!X0j&Jfyj=y*IJj6cY?q0+#H*QPT8xw|$Be>$o zy^B<^n2-=$h+A^(-Ne?k24HoACC92B|Bt*kkB74T|Ax=m>Ncq>fq-4v=jAogZj*M!0&+eq2Gb5hd-#p2y$Fmq4gYs z@Zx72YXwnJHvkvsK}B7E3Kk0LY<#!4`W3{Q%F>3i%AY~3R!K4B;eUcfqT>4RV3DY} zmL*^Zs_BS|>wd6^SW5ko@SoLmq`$?mi1aIjzmGG17SmyWf<-`w{nd2+F|3S1 zHA!KEBSisW3Iw%9b#;3>Mpd4RrB}-}`cP)bO{8z2=g_;iq~d=v-w;ArJs^Zt4XgK$ zd|v&uMoA@ME%oYqV_sZrtm3aw~8I0x5A}gIw-aOXO{Tiby$yn;A~=D zhp1C2tkl)8Xq2B<%LhKYpA}fIWJCkR!hpZ{)f399Aj)tDdP0GCfUpPsi~93l1Xv-FR2%jrM@JYn$;)`D8NMhq<4SoL;w6M zXFB@0CXqd3vaB>Ad#20^R3xkh1!{LR49NOXG?tCNzXsIqP>9esXl%-|XY*Jr#Zl3V zpmxWc6|BgL{F zgM@-Cq+$D$G6XO6$o@q=4jIHUFRwcWXbgZN&Q5xj-uT2O>F60+`58!Ul~lrRh;lzGQ!(l{a z77*NQUbBJLKHm6i$euDU%*C(p0`ms2_mOgDA&&PgG?chqM&0<{KHa7DD5z?p(<8Gv!Gp=QXC7D`BS@q*|-j3=)8WD$+61 zLzS7NTzrKNRyB1+e^C~Ghf2s;x_AxxI1y^FHsDZ$WkW8GawqLlmtL_W-LxlR;*qwr zV2Xl81U-p9i)M?1Ar8i04EE$G!)js5X~nS;4yb+N)ze-|{uNgE#ZhAWlcPixmMCZp zpWfemQU8p8)+Xsksx0UX4^&LtaY5q(o72S8beUTCmpt+uER!fv?5ZN!V&kAKBUS|i zS({j;UX1!SfD2t8v8ugL)1>o+lAv)PlL8G1WydW!sR5t_rNKQ4366~68iVA>h}=V_ z&@>$7yfjI4h7u!C3%~`CY4sOwH{zRV37SMJSB5Sq)E^PJ!DLgLLiqi~ig9A70z!U!yss-aBcvxa+laEylqNOGA}ie2`8cv}klb5?x_AI&0jocdS|F<+zh`Du00zt~u*!_6Ag?eB zxnyy|JgU;H^^>{(C9|*!f`9j70b#(fa0NE2q-t`sid}G{S#XtEoPi!Y2xE`$?;KG->t zfu-nTh8T^dsXo%i01|cQ9QR#OdjRqv;%xOc4&-nC4p6H40g9~z01EJk{|QjsF|Mk3 z^^wY^9)*6YO_e)2)ah~YKk*4{-{qQ2)q#O8-ZFslk^m@6e*%;)04OVD07V1v6Sa>goK7hxqbcyi}%4o+RX3VJSyNCkR(FNa#b2BH&5|F>3%LD4=zyLEX0pPc+J z@QKt$iArFSbPQ3I0i9%2)7r|b=TVgXNPt^3%Qs9Tg=5MQZ3F{kuhJI+TJb|;B7znR%ahB@hQ=>2dGF*{xm=?0Z zS}dszm++fUz`=O<&uwCg|3#bFKlADczrt${j!e0bJ^jT+c*OE$^&AH)0iw|EVy9@H ziHh|9An5yPQ~C+|3^65Lz$T#6Il#^bxv&*K+4+E+Z(ct;AD9%&!xYqSQ9RaUfvDV3 zsyziP3h1N6Z zaG6Ob0q>C*P!d5ql?*1m@*~ke3WU5QB{I1k147;hMBxVGg(3M(e}fRgvlrTHIGrjZ z(YDruK>n6G+&lFtbD(`$;C2 zH0g*vyHA-HUzcAoja+H@Y{T@mlR&ic|3pu~r-uH!{1j)OiSz`Klp46p*ahq;dF|R# z>kF#6%d7#5QkIa(K#SBuwD{bRLu3kBQI^k?rN_RCksoUTxlhtu;|p|IbWMtm4voba z=oS!B3VCD6Sfi!Z-v~^?pwvrehGG+S)HI@Y*)8xR(F4)9ytCPaf=_Qhcq$jHHxDisjKPxH>rm`P$wuDn~CaiEWBhi zi}h@9^f-fH5>PNcQ;)-0LHeu|Enp{k1@t8S)&G-$lAK6&66_@5hNYSd6se^@tMwFv z2Whv7LHBp9Vlr);b`&W8Hg|^;N}FwBl8dF>-|5e-v2BDCd5^HsK%oDpjdmk!H1iwS zXxLkyQ>UaZhx&3oR{e_&IT^VnQ&00T%onqvw$K)#p&zNuVyfqgd|$s(Ob%>CI~gEHhZ> zf22p|g8hXy9%{KgSqN4cYIiv#`Mz==5@D>V%H%m@+CuUynu{DkjJ%sJE&Na8O!Vzm zfyo`{*9Qem072-iFqD#ORTuW{D9#>47-#$;(Xao(Ql*aQ*!?54_`hR5uLo|!pMD4- zIQrWUY3^Q*0OEr&uEWbz&sJTcpP|Vjit64rq*S|F|T)5X}VJpvjup)9IZvXSs8`YeknzagFr zrHqPG$fq=mx+vFmN*RPdQB09uk(pzqCtl;Ua zxPz=2LCLJ6THsLl%lm}W>(!xbPO8w z8_6Whfq^Y{)g|cR9T=pD;n3v|?t{&==L){Kw1`lB4``$bp}87#v8J96}7SStPt$#qaV-t#xf zby7Q`VAMq<47+LZOGn*?>8W$PUq_uPud736tp250{7iL=_86IFu~IIDHbJXFGuD3K zWu6Ex^I1e{*nkuh5T#$SIPc2_5{9&}Ttbt03v}EIKp$Nw2KG{V+Hh>Eo-T&a3-q%H z=@dkLAVE_HFK%5YPVVdK?Gjeqd|OtrH{!7-4If53qpnR=p-oUxru~VV41k7`OdZfV zH&ooH-trZ|)mMp3&uS^~P_~H&#McO~b`fb2387Wv#6Cge5hm5K`@28qPV`1%irVln5oWS5{ zOd?U{kr$DOddC9{$`PHV31p)G-cHtk-vo>AQ;nw@#Cx13RsUZ)w*J6XbmBc83b=~S za+hZX(qw@Fq#mMbAk~P1u5rLss;n?X;41n6uJU2AXb>2fXAnG&6-;BrEn@{8cV|Ik zs?19~{h?m-p8QUe#%fw4PO_&PZ6+VlxjeFPklc9#tZ>k6(^n&ejH3+2Nsq>z9^|5l zzXD*jkx+Istk*;fo^Zts9EaUd zn?|@|A?hzBe^4A>Czkl4j)mG^G-U5JG|+^jmy%b<1T7f$oir5E0OO*cJBxg0CMEuq zQ^zMf$)U!kl7TI=pAmhZ=ME}&cp8S;%U*A;TUr9uZxIHDh>%lRL~8sM(7!WAgtvBn;8_Ht_``Kq?ra8K~k(FxSb5>+BS^L2#mgc*CcU9ioW3 z->I`_sE1z`>V#i@hvOjiak@%Q2rB1d{I(ob%MyguJsW?B&r+3`i8Ma(wzDwxIiv+7 zBA-Ya%fQTa_El4ybTDk|0SXAEdZm)s=V;4@*R9oix8jhtP zr1%Z-zw!A9#q&2Jn}@(R#)2aQ2%oop{UFFGyYqE-F&&en-8e zaM}+kpZ4n%uADOgF~oPj3)$r~=7MtCZQ%e?01``w51mfHJV@y$RVTG~f#jRYpL_GKBX4_210ycLFkBp0Mn54K7Y8#NWd z!Gfp`C~YfJ*`VJo##@IR-_F4NNt*|gmyDsfE*V2wGKRKWdpm==Tl-wAME2sJYSf1M z@f1?6{(XbRWCcu-;S0g3b-I++u?nqYeQ2#?>8)c`TE{B28dp#Zl;@GMNn*-uD{4B$ zfHsdLKi4YKBAa}O0WqaUO}0LmN4CDp$etuxTEu?@O@9p3U}F6-rCLJMspN&3RjrwO zjalGzSxiZ27IN3(qIuM1v(_GS|GQ>kLRn0y)=cJ-XhTft`s8R`yWme|!Pm{=?8dT# zRM|GHMI)YQD=nrNfYx1&nLNdi1do0;ttdh9iT1lMAkjFtaS*iuQ@?xnZVE|#WWh5t zD7l_({O*gsn-M6A0(r@iiHh+~q)p`J?iE>7MN$ySpUUD^j~oM%n9bdKX=LwAIO}WK za62?2%_Ge-NgBnBhl9U)%-%PJHPIv=Pokd7nl&N*TT_j z5XCg z{m^uf4V7}$dGied%||cUD*eWwws|R38br++G2$bin+0qJx!j_%g->m-cq-rUbr{PI zXN+aXjD?G_!BTUAU;AwB=+pYse#}z3;q!Xg5FXhic=E&mdA=?`fY*(6`D2v^i%4r} zq2PdrsvcbT+e`z6lFUqx=mawj&ASyML1tTm3kiQ9Li?C>Dw_AY)LgFY2RjuS)TVjWlvc?}WdH-rbQ)n0`;8O}uh#DaV?G8EqPxK1eP@ z=Mvv=AvxW2-7HrhXd;~vx)1Uh`C8&4Eix(4m?l-XAnRB!z>IWP z>wjkG%k)|O`_%&zRmR^ZNL+zcdpCpteFza@%y1xUanbxDk+tCcW7a~?tbc{kldUi$ zww0cl`zN!&HrWc(ViwYA@zy-*y;&>E*1yv%tVOoM==HBK(_n>Zn;ebX1#7Z{+sxt^ zv)DnFY!N|$Wk^cU2mWq|Y9d+A!cwuwR`Df~vxv1KdW@<`M5@dmyJb(-x)1jp;PF(< zFnp{v#V&_|?bY?PGMy;W0)&ixa;j04;~L@qjst;7!X|#`l>3cilxc>FMU6jxf*5$- zfKsp@iNX^%Y5<9XmW&+Lkw(Z@5AW|bMq7v%MfWM*&W<2LlsDjY=zk990jcucJ8t;u zwWYPz>}eS%NH;P2Q~a!jVaIn&157hoJ#8R9QYA;x3?pBL?-a<90rCGdvK&$QCO=Jk zF8TCV35o0hj79)~`Tzs@u~HX|*wD~`LD+=CpirJe;3NPZFhYL@m1QXeFUx&ueL7B4 z#`~`X7$+y-sJ23-jv_%9)lX^i6mSiohGw8#{?Jdk4AGH)2xTHLEB#CuLkPDD6d#5_ zGOAzlL8kanFd+HRulVp;CiyUg1;7Cs$^3{WL!!rUOuyuVO!48U`YUr-vo+^1Skagd z_q*79FUw*sE6@`|%Q1aOFipgEPQWZnSrbd(XfMX30Swax9SDM#xlPunOgK*C%3ndN z@AwCh6*kmXzrTfMfy(ODr!Xkg_Fpj8{Mn*5~+u5Y4>iV-PEtC%!XA0AEsw0~(1BvK;uBM62T z`aji%{ZgbjBBRq8Kvf8jC#B&K$ z;GbBm+)>dIgW&5x1)j@_qnHJ?ur!Ury$O3WpdA5@V;}SpL(Ij-vF8M|WiM zgaG}9y@J~7Z&^SA)jr^)zw}6^a^1E=K)&Bezh=9gdI)GW{N?hD(i5oPW#PDQG9t~O zjBM)RzC~Ct5tHwA#sb>2F)aS4T7XtV4)xg%XikhOhW|Ec%%L)8?gpA)f`$vj2yBXB zhhu=Yw7siU0zoAMl;vW?NMo_*@lA9xt_O@{H+O#|GvUQmZj(eLQMo$%Fbv#A+i~PP z?=1<`VUsWeSc1Rz_(13j%rNwnLJgY_`_T*ZasEC)_%$*Fat!*95wYj>AL9Wy zNHU2Ga6-9Vk_k#qfpCysZQ^zIuYjIaZl8~yB z+ke_Nu_^Pwv2M@Ja>2Y{9?J)AZlX)K@pMT90fmm9WzyFi}d=AnPRC z35d=B7{f3tV*cOn9p#^o{inefU)z=`q#|Nsn0GxGQ+SJ253(qXvv|z{bQs6M$F+w{JnRrcR5u4A0x>yau-H^&)fwgL-PMV67)WY zx&%gk&+`yQPW>_B@F9mvfji~^XVic0l`t|JMx1|*7=6s4R=~*Lt`CgR;ikCAwt;W| z?H3!iICi3h8u-U=(Vz)(`bz}F^Yl?_|Nr@*O`P`oF49Y+Lf4~XW^(_#rg=TI4cjAX+I z^N$g#B!_D9$4Cr}O!;HvEsQw*G2-0;Px`MB*wuggsAp9l@~*i|9OhbN7Z4NHguGKy=Kb zu&R z^s#hnI*0C0N4wD$ED4eLcqXELqoeiot#s@ly^?+d2;o}ky>vAui;3tcWpg})(RCV)g13tNu)LpU`r1`EcbzKNw0UMmF)?h~^}@IL_{a1-~;Cm_5u!x0SU3hP=Pzda@KrzdZ!==Migj;KxB`en=#-)9C zLry*m=jmQz2_|CQD$}SG?Mr=k+r(_y7HF+Hn@wyYd=@^4%|39qQgZk_?DpN4j&HB?`tgB7fTB&(3ryD>v_3+}WNgkfDu&IcQUc^i;ba;qib7eX_)_xeBkTor zcC_Q{0@zs>>XCl$_H6DZePa*o14{d3hX(R@>ML*eh=zu*jHXoMKs3x9|45~-y{;9kPd&e$&a{*b(n zYE+Ct44xQ)H5ZG4ZPH<6sca+#zV9o{rgp&y0mO(!h;W5LVH5sRh!5~Zgr=~%T8+l` z11E+wHT2nF6d@)>ikRHnZc_MAYHNo&m`a4&B-nUbn*_wg>2v6z^wsoCI<}u)PQOBb zNPkD~rYkXrL3EtSW_mG$m~qTh<{suTrprZU9kX#*pD8w;L=lM(Q$=E$NX#I~i^K{g zBC(=KtRxaEi^MAMK~*GH6N%}gK#EcWwh@UnMPe^?>$_7I6VBC)3>bs~;Asf z?rWU+BEl&x~is^X7%{R`Sw$`*_%K-X&f=?=9~uPk}##Z^EbA@ICqS2B}=MW#}_# zdZa#`i)`OF-?{QCXtQIcuz+mS)VxL5CYht(Vb8*5Po=PEz7Yyu8o%HL9p?&g1oir(r8kMy^7) z{q9w@>3pT(KhT01`P`-_X#)NDj#+~QqXpA4*Ul7-Gw_KnP6+sBw#q*tSi(ox@r12$ zp2sthM=?8E5Yj2t2-zn%F1RFE^FT1spmoE}KrGyRYjitbBo07E-?-OXZgH}4)rx}Z zrk36)y*wkcyy+P+v+~9n1f7bgh-`}LG^5%Y!$EZC^UykB<4U*0>9^?1g6}Vyqo12s zmNzZ4IQD*?wLw^)S)6HpREK50f1kx_0nL4i8Cnv+^hlYCuMn`K%Q^;^jVYU67M;u~ z8(|O_m{f7#YhriqU#LcYKkwW*=Olb&{v!5?gva{1Wz@2=X_?3GmsuMGBz`pyN$jbN z3<8h#b&mX06GaPIVWKgH6N24vG(Tt(%K-3MT7XjCVfF zH&A~+JmI}`m(Za^cwV@wRyffhjHpVq)_|;v|y?Bt-X1V{c7==r1@perl^u z?Wo$RwQQ zC9&g1E_B|(Z_vx_eY$kRt_Gu$hVu>UY8$i-VoyZ0W=Uge&sP;S*N%IN*jp~ni?y8i zRQ;B|WxHehw9NHO+N}+$nz}DGQQLdsOFFw+^w8Ro_NVXdyMNQUs;H}|{apK%#fM!Hr;v$b{I0M;mswIalV8fc^DHcNFvDD79KzAG%mjbbbo#WUHLEwdDYNe> z?(Fv92O4R2FrtOEcD(+aLj5vy8CjoCY(|a-jTO;Ba9fhmjccwW=Ap@>&${niJ#J`? z&6U{EXd2y}jwL1g(?=M@EVeK-C5Y~4nxYA&@~J;8^_)>5w=lvt zY>1D`annnt^`Lu!hL>I+xRu6!0N9xxzNNN#o1f_~lZxxzi?=b1HNj^RcfT zZg7xO$+^K9o$-vb>P_Gz&v4#WDF;2fGVRW*a%9gxIC-}yTYg$@l-P)C#kD!v8@ue` z>x-yR<+W|@^#vPE6=rL#@yiK6;8o6rqqrS2y|D741#&%h|NW627waS&cX3O&-3vzV zbn--#-P>j)zdQ7t^Y+D3@#4b?P0J$-Bw_k~$xYo06uZN6(WzyT?&t3Zn{$pnyOwvw zCnzzx`AXA@6A?Y;YjwL9gxiO@^qvdzF2+M?n;a*I2=$By#jUE`S@B_ z`bAIP{K8{*mOVChc!Vzta~K!kPipj*B)29vY1)=6SXb6nnD9?{ciz`Hnf^Fp(8;H# zLwrM*9aPZljYW3tq5z)pCP!3t{Dtn@K+c|S9o{Hj_ksf>!KNR3?k9S_0@LyntHG3ArWGexxA&z^EcbXj=t~AkF<+ka*4<92w8)23s{A5*&c4_ z)X+n#k8<`Ebtm(8@VgiMtUJD+PX zyMH*i;!?i4VB0tJ?X|_2DV*gFsG@qa_2KyYJG!R}JOp1C*=`tQ@D5EWwA(Ym^NXwf zZG~csWWf$Wk)Xa>&}|(Ra^U%9@5(c20;HwlbS7=nqn9;vV&C@&RPwqPQ2#=uG|Or4 z*!idN^ZVa8Ppp}qms%!epZIEbPJQnCafmJambhyfQC6&*mhJp%{q9@u#}y z$Qex&$Q_6~Rgrfs@9UyqG;yu&$7L$^>HMhRnd+UM^S|b$DwGW=bDj0TylmB*(+8k^ zVabck)iLy-aHMqGZqqK2^5L2($85vP)|YiJVCJI@-HA@uTu(m3L&Hy6pPPBStXC*? zopp#ke|z1JjmTxU?xv7Ps*hMr|6|#YGH37M^`pn2DElbR_FK6YDR1_0v;zpMe`Q`W zGVa}X$9^bZ2)M*KTS!=pXRC3#~ah zBV+9IJ6bhmxp(K+hS#1Cy~#sMK1j!KN_I{bylf3-8w!hSzbuYL!sw8+45G&o|ARP_fx zD+U$?EKmXt7WpOW0TBD4>v4t232!8O#Q>-I!aLR`0f-v=T^t+TCtmVh9E=5h7B33> z-U0RK09ZeKL552fzDb?OspR*Sy<0GncE3%s2;giG#zW%RFJkTB?;ZX>I(Xm3RN8zR z5PYP{7nF-HIG5(qbu7J20^m4&4LO}YpEd@W>Dc(sX>s1iUsFrwmd*q0ez2?-*4edLR;mA49j(QGPOl9!s81KTld=k4e3iD=Pc` z%JNf2b_Wi(2*1g7Nj#$H$@Cq{#aeeaA)hUc9(gY=ISLxnr}n>6y#Mm!jxSObd!Jt#>=W#=?~D=6wEb z2bapz2^>bd`}_n4)3LYlfJ!ywd$?)&N@1lfD*5Zj_7`C_M%@m)IlLXphvMdyDk7I0 z$E_=RIuvX8r~0Ivm%KKK$w7o=ZoYJEW_A}|a_~TgLWC99g)5yaud#U7G@m!Gk?n~Z zVMB+zhNL8hyNNq@{lonU6-cqnt?;R8#OIVzOO zx_$PzeX3o?6hYFc8(#^JV~6rXv`Mw_&7Dm9M1Hbm#lrnTDrA1|VnIH6;_$SDE!N2O zZ0MB7Q|GcJXe!^0KUaQaR{BhIrTM7y1v||_g5k;89V_|i{A|_r$jMdtuk!&ehxq)n zY-(eP;5@(R9>0;_CVBadk8MZ{>CQ;nmgucaNm}MN486~Rg1F@^qig2fTWBZn7VJL5zTiWb_lPo2 z^j&|S?bf|1<%0TEr1ivVlCAm|(sS%An=W;)LxEb?7uCbSdoP!82YhZjbbh0QF?W?C9hj}DzrjuY0`qN5w{-QE1;s6E;* zF7+F%^sug*a3SW(CrmF_=ta+mIu!0y!R%|kwru_&>=9-kA9Dk(xXc~lB4`X{UUvK# zw#KB^rq;7|ew(CWNiC)X&Q|rM@4O$Eyp@yvi+uIbhi#50GWu2=t{LqMlb?Er59yd9s4Quc>9V({!V~#gmYN)JlXp=O4gbG}d zIKF4L6?c}}fmNSOry*56+pP59fDbhWCr25#Pj26#Jbx}Kec{~@YQOa<{`%JRb?(1QovxXk^an6w`QO0O8az&$?7NH;YamC`WoqpN3(TZ1Y4p;Wt+oB`4 z%JX%{>&JHIqYC7G-fZ^Ebu-Z=*KC%uh2`kxqLXis8FMblEg%UQMSo#C9KWB#9Mah= zCqIO4LcdpqHif1?jO}En@%OWyT@XGzJeS_Pl#n;0WVHDJYjtAgqXaG77?-YBe!gnB)tLh& z$adrN3sV=|m6z1c!3#Kd%xiU4NRau5qaG(B)L*AypGP)zY{Lt14y*dJq3j}qMzL!)eyPTC8s)j0;72^{t;d?u&kN4VGZ&Lv8OgE$Z zHgc+}IvcHWZ-JzT%+=x^jGyi`D;1e+^mn*WP|6aVSu^v+>9{UMf%LjM=PFXi;2m ziQ8s{T;{A7xrI8Fyc@i=s>t8tM(q08Q|(aBu#DHsQufts?dB=*hw(=xPP63mIvn1_ zCIs>mRwl}QIur30O^f_~#6=*v#5~zl7d|(FpTu9Uj83%9D!4AynaMxh^18HBCG;;& zFD*~|V1}iyXLAMm#7>WPtXs0TdEK^FelK6=%+R|TupH$DISJ&vnX5lfD=8Tzm?}ux zj~pl|5688+X7Z8djs1%&P`JQlyF?jh@m!dq})VMOBNl>tIV?+e(+?@WAv)(kaP0vtEDMTZB{;v*1X<4 zwXz9X`enS18OtkzH(Yvm0ABsq-<=8-57#@P6U(!2^pzJ*><%c4DO<06JUH&_8f2~R zd~S8Txl>JU!GnUbZsCvuqrpL)wtKEI=bH?jpp~TGP$nsp)=>4TYx3)t9Yvg7 zBj1fPx-2izA0jjns_a*~XHbkL8qFx~_KlyL@;2u7Vqt_ZNtk_k%ER5lk7PIVD@!h% zci)I^H!aZ7u+3D(&s+^VxA)3R;b$SdDyP=ZP&xIu2sx)+yIVHC^NGYluQt3P`?9L{ zhG9r!wW8}*&E9N5g~XRPr#7_Kcj*|YYS_oR>P$ptGm8M z7$SD{Y*(7qccDJ}X>Dt5Z>>VpB+UlPgDo6p<5FQ#Lf@^qx6op=g3H+<9nGAyF4ts% zXG1^(JRY4^_k*tmiX72}bFY)^WB0%9-q!H8U7@Mo`-$~;G;gK-k>(SY6<5bPb&>8i zG&J;x}>ebNLCINBK3PeJAdsEEX9HpKOLP+I;dMi%+j`_MJx5=!X1yx^nrj(5Uj zi$l|Io^6v116LwQ7Zhq@vE^mpZLAoM`47j!Zs}qxL}GGlhcWFe6-{feIqL12a6tGt zb)C2MLGS|JfE(aUoCJAh_YOpI_xQ>C~sn`~-S$J+n=6EyKHQ zsXfYY**bj3ynOTKIeu02TXZA&b6e6;>ud2Yc20XO^TD$D1(~36$MjQ0xtooBUb|O2 zqf=k*^o;rt{dMb9rW^vTYnUPgdfsta-uKhh7I} zfbx?BG~tZHvLgG-Pt+|IUlyzSR7tdW_wc2@~k; znvo7^e7WT*sW02xBk*1oZkwbUZ(8zl5;C4qc5nTQ-098bCPnx;+(@2mU4(WsGru?< zvlz)-wtQvTly`VH4%f6CbEQRcG~H3zg51H;=s`u@7|wLgV{qK`k8-df1Rm4Hc-t90 zvu=XNg8Ygmd@3nFF_V8{*WHcV-6E~&y(F%`iqt#-yF==c&o;PS^O*6M>hvFCn^xF5RnWdDG<+#{E!Rk1fH>ism@X?k4)N>iJgI5Ry^FZL=eT~VJBF66 zHhq9{T&wt;LGy0gFFh>c5}ieD5`&Sv^ysL-L74wg%#HW4(+PdPcPp~;xE)0N70Djm zy+JX&-c7s!q+{AE5xs)mgE(6UtDq`IMq- z!tS0R*pdfWJ8D7pJw%~$&Um}Or`HUByER;}USK5ek%9iY^u$QteWM5SjoQoR&sABa z0--<}sC33k-IAMr1vzhY?63>|T%mr7(IKGb>Es!W&YQMvZB_?%AZAA1hpytyrAN_^ z(N!}NljFE4`q_mo7IAs0c}DVe=-h^~!XH2E()jD1?s&dqxOQb;ubOa}!P_r)mz}(d z?30Hq^RF*6k?=%$QrP}$=lH3JTerx0e}xAU4AoOTO5`K_RF@+M#T73@2HWrDrwFIW zt8|;KD04|D+Xf!Qh~lzo+d>@6TUJuagZ?V>*|>wwMv<1Djui>*2L-09Ger}GPQo@x z8!Fs&fA;Hkb}|2>*7 z4!n+t_M~>{!tIm7XT4zEU?In}^TG*MEAC5nm$aX6_fwtRF{%P7ubAU}G3ZSN-A3D7 z^K(0f7-(@;)~M0wSv~s;3r7!LI->1UHisPR2SVfcaKu#%OLU>P1hVprPl6kGL|H>xwdZ z=iFMl=&MEdDEd^oN2&5={?hSiaGzb~iMkUs`75+h;dG)NBHQ8!y>Z$#I}I0&I=WUt z@kb*RvwjEXxSJ;{r9A%YvI<$1#NcJ9J@dp)C69C?yont7d{oa=X11wxaaM=FUYf)6 zAIN=Mgl{xgWGL~EVkR@6J}FAR&qn(+mECfq1RqlN*Te+ZS2Axfy^60RKX=N^!D*Z= ze7j_p@Ick6E@rBn>0r~vS!SlDUknoTW5v#94*s5|3%74c921YWWAd(*`g$b6%+!0E zR+^@pdLHdU=XO7^d1LEb&i7ReQF~$j{+wyA4rg(er0w{!iKU3-eqy;%cawbcaODnD zD(>~6WoJIBbnTr{+~f3B;J7e9!VI^=JxU)U6wVx6Q_oJ~pS~{_uXbuz3_fZTz6)QR zWnPA3pAs+1_ujyt;_ixz?(PvGeYceJ#)Ic-HoJEA;3^!ompUGYP@A)bd-lSVLc!#G z*W1%M2e}8yr%_jV!wDaEEXgXIW^Ob14BlAHStLJ+B;C%!TKydEM;b zMz3bXxp;BXggMX2lJT3kySSc52Z`OBQJjXn`<~nDP6*y)++KK-Ys8Q8sz7~s>Eu+m z9dfvG+~DaK?J*vMC*3jF>P5qzQBE^a)!_J$!YQ_bZX2E_&!hB$y7l{JfPWfk=ne7i>lClWH4Nq*t_S<^r z926Y*N7a`lRC-RS@#?ck#QNjw1Ink9%`lX1|x5P{UB|7Sw@_kIinB1ms)&WLkR%K70+%A2BbiVWiyPv#z@~XPMPJTey9pTdhVFGm8 zD?sIj%Z3wp@W*|2#s~J49V>$e=F7A%3F>Sna!ZP}w9&V{DzSZ9)>;;@+%Yd*8+E@b zVi!;u2kAqZCR2wA#|zoQ(95b;zCz4wnQ&dzdg0u0NRwZ1F6zb(HahDTui){@B)hv@ zctserY^s^k%R&@=#I`7LyTkPw^oZUe3~30xd_E989-b}#$?dE=UfU40B)Mix?etpd zwwgT;tQTKic?5YR*t`gTH#t)r$q27qUmFs3EW@}Fl}^6IE_T*g<={0PtiA7b;jSfB!?050c4&ChNwV3bP(7Ui9XxW|D?B^eLqJS9* zq#WtRq-KS;nGGM>$xW*FgHZMLLM8j7OY)g1+dFTiU2Av@6QRqUQHw{b@!U~z<(ZX9 z;}XwwliRi01D4OlN+06}Vd2>$7B-X|KnnE7qEykLd8-56s{&@Cgp`>& zPwVbirpM8upf>G3R!DkE3OJ{ah3muKS4FB_MB{QN);spPp5>S4+R_G>|7ers5Uzqh zwmc6DB89zKfJH}wt1y|Syf+m2dYH_bad2u4^Ol<0yD8um&_f6H0bC9t;PPigl!g#B zFV)7IcWB#VhM&a_>7@(;Ess{OCk1I}NGB?Abyn%lt#L=T)h_R~?q@$2`uNdULD1dL$u#$gu9Pt|6i_uqxHI2m)+F@3M7tS=a5 zI^Hx!89gAM-B$MDmLob}^26`$P^x_QHhK{tU-#YhuvGfrv`eQiD^04|y5g@}^p|ui z`5ESD!S;IVVCS9Bm=0ri7Z(I+C^LsMrLjtFFES2Rn}#B%lOw`U?Y&Z@e~Iu*ntt?r z8O$;DH~PLx*TO=%<<%_KcQiI+<^dm*h{;#6{J+RsO%Iw{$%n=ui`ARj$J$nX#~Fe4 z-{mLYGabf(faan@3xjkTUn7tF_@eovcCVH!CsGeq@~1`HPD6&^n}eWjznY-r(v(j` zYCTHT8Lc&KbWiPa%;r09n7Pme-nov$`| z?B1^WUhrtuvmA`W;KV2|L-nVBIL?!|--lN_oz2v7i6J|2q}kjXRzr=xja-2^g5}C~ ziJNdq(P~a6M>Hzz#>VMLLw!a<`qQ=Cno0DjRh(O#dyCzmnXs;Qh(TJYPyBtNjP*N0THo=W-k#1yPhCb0fS1hM-&8W6v3_s5fE#r z`e2JFc70;+8dQAjMr>Hnqhdi(lK@I*zC8(|-v52?z5l<~ch~=|^_{g&CbQ3!Ju`dy zE{MNqWCRm9t#--encZeo##h(n;UxjtmiR1pS<&b|2 zl@69hTiCV0VTbyUv-UjiPgBSCH>p$2k;Y3;WWbK1)j=t;EDMjVzBp$lJGipfw-DeB zaq~%?UdPM49@gap*&oE1Z#aN?nIldb`X;m$Oq_lH_WDa)Cp<6JTzS-%DLOV|s%)Vw#yoIF zHGW%}!x8UUm?XG5Yk%b0eX>e9R7ut8-8aUa^B#gzHXqNNBDp`H^0ll~*4y}6+MELq zaCUqD1KN%8`>r4RkkVG(LmqAMqa~g*d}w_O_alo0&4Q9|_P>xCAzvU*S}jLyw#lnX z9XS`ax#1!Ek94gX;GMHtvjQcR;=%Y?6`sJj@@5`x@e0x0|`rD`g^ly5ExIwXdt+R2Is=$z#m( zpBp{aV)mQg=~+&T=Nq5Bl;2iyOi-`rjhZSoVU9tUojE&o6n@Or7(=mr3m0^Mu{$4v&uh z^-%d$F;|5IiK;&F($duX)2~jxu&v{SRw^tV7&1KG#%Q0cs^k5vE2>9;$y97M#DCB1 z9Pez}vu^U3ukT)1o3Qm`)u3Uh{jGup*l*h|^L@o%Y&EVNnjOIwm*3xI8i2>fKO4Sx z$%idh&vtvyU&5|uvjRljvFG8-ah^$mYXs2-Df_%GvG>`x?2VGrDprv;?-~8MbU-Kk z=2iKJ5TA3=^s>%JUyY0Ful85h$C#g4Z!~0_!)P3Ect=`)n=(J`!=>swxIBOC;g;U` z^tH#+ewcdZew4_M8g`5>mcXz%LIyn(#2 zp&!}q_|8e^BJT}L-Ff@(FMHANE!irpS%jai*(G{Db%qB%efZ8154q(k{vqBa-hEzq zzT-z;pZH@|RneV}?Yx_$prkADt7`95#pC@gu8&!8uDzhIAbH77PmJal3r7y!WK2hF zTD#;*$0)%$VSRc2%fh(+OCxt-?;P_b`P znXd%(uLK%F(lQhLW&DCx25r3e(kB1(*s^>_fufht*-KdVz-fYT6L4}Vzu(90ewzHLW$rt8Osnx&nu8?f^|_B>~o>fCdXhc+ODj-r#6T^x0w0viYC`W>jb zUcTyi`?D9>gY-qZ?1A&U$Fw3Xc8lup)hUbb;Set4ofi35<*HSOEjn>+#T~^t1qeHh zSg~$Rw)-A>Qzt>!P7*)WE=hgagYrbj)-gMRu}Aio8*L-c!&v&hxV*{(P z?&*W)hsc7@m}J}%7mAaXZNfo;gI<5G5S^zxo>+Fq%b#_$mN*l>sdhsped1&5c-lw! zFQ!r?Q(kw+aXZs{1l4n!SKg8oO3L%izq!nqi<7v%vVcd4ORqPn6mq3D(wu_FH}KIH zZ9E4BT!^5HPld`j7evyL()!$PQxeN(jNhfkK0AlKG`!zlpgI0FS^5E%$xV&N+TlKL z#3#)sM89A4*N2nIlFgDG((tPG8A|D`MS_?}j|Vp>34#HjfD+fuPzX-df45MLOLlhOn80`6+$&Rm6!VnYXo z`P-=r9OJUeXFI{~2mIr1l$oY(Hx8jQV+i6uh`lr5{a(~;m z2zx-<;94qE9F%9{zqz2)<*6p=_4l`Zy}Uu<=FlB`Y~HhR zz*?6d{4QzJl}nX7wxn)T&P)4obWQEiDHnkwGA=pw{3i?m)1XZK}CF}f9j7F-f+@#W!GxV6nOoe<#KD2PoF)(QL4qNb*gl^ zN^?1FVQQYDJpVx5TW>t`+!_&Ts>;|FKYbh~mRv1R^N zygGAmwC5*kINt93q`+{_rW}*WYz&*kW@fS4`0{+sLv3``^C<13tQ?#8ySPQD`S3&C zE``eMmtTJSmMv$E)EhlpsCylo(km_Qjalk&Nbyzv$Kw3HAN+Bgz~Ql7##Zm-DD`6X zI`t;Gy5F7{Cuwa!THe=t<2GHjk?QYiV~qZ4g)cw&_9QFA0Syi-a3vY9aiR&hR*RdM`9}vR2s{ptOkPx1uFszwY zrg=>60zUi@6qjf9#SQdCHSmU)Xe|$X(M;u_DIgwFqd^Bz=obx#a2u5y;_g$P^KK`2 z{>>B&wwmzx$Kw)hHf$mYJCCjLW(OYHZR5s`UWVp#7QjtK4VvM>Lyre#$KnWOxwq0T zOCT#=cw_NY-a_6Q-j*lZc;r%kUL9Oj)J?v|Ll4s@%V%OE|6%es1_?<%T?Q;D=2i2W z2(}6Y-FtCCKaQJqgp@y6fVs7umY(z(6o5B3pS3u^^4pu_Ndj_Wvu%^$n^w!0D$pF{ z|CK-gD}QDe6xfeDql_Qv&Vwry$?V&bm~*>_;Nzc)<6gxV9=uT~_$ENY?M;RI1!zpY zPZPVrTaVw&XbU&9+$$)K`k3!HUAR=ZK`74_B0H#;FgN}@H85It?g4>Yb=h;}Q5Q=r zUMu7up6`Dwwc>-YQfNl+XhZknM&9aUFCD-S>tjER&P&BLej^^Vb5F{q=Q|g8^pBfK zFQ;3k(Am3y5%r7ag3CZoeID?(9vza~;RHVZ!0S?)h4`dT-MR0@G&!c(DG={eaOW%% zoiaRO6-|o~zWHVlA9b%VP8}_D+4ldK?{) z)gpCc;#;S{oOfb!ER)kpBBZNhM-TRC5;{g?Uyipn^IEf_$t=cWo$nEjL^4-m)ns?N zr1m6zdE$FZ>9!XdJk#fIZ)Hr?d8f9k-b%_PM$$bkq%OnjuS_tkU$5eS8Hn9a#@2^V z%rUoWF;Pku!h18N2gMgXA;b>h?oa0*(%AEF(}Z!|s}EXbK9zo!)=KyBm~P{*Ou)(0 z)~@EY{@Vxdn3P3*TY4+lcPulLScDUc9OB@Wtn+{ZJ&b+iyqt%O=X^$PTZR zA?v&GS9&`{c-X&Q;qB0MedG;%%zW401>TAZK}53o!?J0@XR?yyoUSWCNdlJnr41Cs z&+7~dCmTM!~PwY|F|C z8+mJ*Jr-qUESvkv$=3IC=@CxP5wqItc$+%yS<0t*pVkyrjV>;i$*S5tfF_vvlR9u$qe{OX?kH5AF4 zGknPA9k`Wx{AQ0N@2wKGX`7g1JA;F|I9A#B>pskM>xs_;-eGsMfD>!}QBE-qSm!)a z8Ls@GD60ChqTIS$!bScz;d&72z#!G36Y7wIRL2Ho@5>**C)R(_08cTw>8t>r;?4*z zIwv*lyFPKlmzDW5RLfMKOIJL|RP9yyHC3we!S@J#Qq`y)8Z>3wv4f5eV#TcE=hA{m zb`krz^l2))i{;m(pJ(ra@A-SS0vxLsJhg-Rb7^5ewI4WEFQ=$u!F{z}Ehk>~wE8Bv zuivQ4z&ZNH9Jj%rOM4yfT@&W%g-a4#C3r3XdauTwTfpse9ACrQ_`WZ(ryAUTL`F{= z-`|Dj=>hJ5alBdJ3{2#CZUT3(f_E7l`WY{;1YD7UpqW4$Z{Gn1Tm9h;L$2kDUqlQN zIF=+hgbJp?XU7$Sbb+Hb-szy=B6yu23qBHWI}jBVYUA5?5)Kf8x5Fr51b90x6UvCU z(_Z0O@b<_T77?#YjnIPD#`kPT_o3s)l!@sudS%%ndM&`*&@TEUeYor{&C&&B6||{% z2gkrc+)KPj?xRw!xjr{JR=i5AjgOX#kAgEV`KI^c?+TO8lb5Ag zrL2{212^@g{JQ+`POCIlt_3&URMAQS-i%%fFK{y_D5Q#;JFPaZQe-JCu53E0xC)Nd zUoRA2!Ob#MHdlgovry>{?v^pi8Orm=(Mn||_-yZ9P&zm3uPRnLb}y52R83WhX*;^8 z2B{nq)3SqAk>K6Qs8We{*M8M`@a8;Jy(iw?bt)d4n6{?_+m8kB-Vy8+@a`jx=IX?>zn#=>YLuAfSvOwY_4~j!N$@*1Anyn`Q*WzZsuRiL~N%<9#k|?Zxv91-Ffq zw*s8DSv=|>xPq&^$Gp#FUwN1ZecGY9pp)QpsiV7KlmNU=GX%@P>zparOT6ur0>bOr z{*$0aVD#Y!2fN!B;t*k!aIp}r6K)q0?%GE}{X~pf)8tlrBppuAr<3W;G&)3IqVLmh z>2lggY$xt4Mgzse#goL*;so(V@jmf6F}fpuCDw=u!&7@nU&$~D8ZVhGiIb#BawMlD zHzdy`NPltcD0P*3OF<4nik3<@NOwq&N%N#cj-gtLnlNpd9?TFXh?&X|)={*T`J2gQ z^fQ);tfdTfl?|2!$|lRm()=&k0U5d=yC);3E9CmMqrATy`O7ED=g8yb8S*`H!mx?R z=>}3*E66dtuVSnM5pMnz#ZHBu+48dj)haBN_R5}0Pi2TQO1W5x$Wa72EPtf@psa*D zOw?M{T_sYDRE4YNtCCflRY-r({Z>`3GGgu6&MX?p4reE^(QE>{k=@6hW6>S<6{}&% z@ibvg9HvI&)w9)c>NItZ`jq;H`nei?QP->a*b%#8Z#)`L$7m_ufC&R(9)5z0aWzIn zoW2Kd2rr1IU;81#07%4--tht_UVlg7S&?Dk2;z!~S;!3fZ1htlQmk=JdaLIfL+3cZ1l1q~N68#d#PTET%&_Hk%DGncz6X&>8|cvz2lKNIUrNgVw@tI6%e%L@&%uAPE3j1CUOQVR8U+ z93Vvdkv>))KwdSb1K>YIz=@c-Apyb@yb-i6lxRRJ8t8+8gAN|9*77Y(Kp*~RkhA|- z4r)>}Dz+*qXCQ`!C7PfT1p3DAc%aQ6;HoRdk2@2TF;v2LgJPg5P-tLORgTaf>Uniq z+I}ROalVsw11IoKuucnkL92X4R;-xLd9Al^m1*9 zCKTN)(Yy;(tf3IEtAV!z_YMw9p$gg~lv^w0I&y3zDb)4OAUByh%IHg23U&Nw_pXMH zoOR*;s3$--j56vPnL@Dx1|anJD5KgLObWHq0~EN7GQt^iQmD4Rpmta`%E)zI3RNVo zKVY^Xg|ZqAu>GTq%9o^2cPB$4XBQZQA@Y^#SqPmUWkg-iR8pz22pt?{v=!gZqKegJKB#s^9?CM6oszyNBN%-4W2Wt|$jE@&X=8`W!}(<`Cl*isbH&GMf;q^JB> z&&wiE_JEodRaRpB7AG5TGoVl%HiKx*{gxla@0!=p{eAAG;(6~ZMLU-iw-uaQ07SHsbh9&@r@)M2iMLnuAwO3*f?$Ncjb z)QI_kV)P61`p*zahq)S%)?fa+SAQcV@VE!fI=iXK5Yy2Ym zAH|#d-^3gAF#b!ttAFBc02()Z^cAiITG3ZH23pZoxDseZU*Q;NMOWbmbhOe?;Rgw= zG*o!Cj#hLPt^``qSGXEzMPK3H2(5T_=LaImB| zF7JO>8s>4#j4+wWNe^Xo%GF5^#bj_H1Ou!i4FrS9;6ex{SUPnT2=WU?HX_gYH}!4|eYB#KpiV}XxZj5sz`QQ*RUHg1#vo$Y zK=i4W#}QJ%(ZN=hzbbi`1W@Iv5u9V+;F})X{>Uq|W6(_80Mi zV02@PVTdmw7fD-=Zg&4%q7la#XBrgZ;xf~wRP|?V=MqhVWd=1uQ34vMN;Do0+(Jbs zYm38O&>5kTKki~}5%C4)+~q=}3tg=(+I}5uD(TwY+TuwVIxjR*Hko8?k@_vrbSWEV zZ81z8WBO$>V{KswBke_@kz{ZnAW)22r-ea*7>*;eB}|qS6%5)~ zaVb&8I;ps{_)g|9n8L7b4udHS>*g?+!d8f0)s<>Z4g7g6P*J7# z=a1!(swbHWgQ!KIlFDF+QHq73agOopnwVJ7s~WWemY2>Y8X;G21ct4B%E@^OA2=_$ z#brcQR(&Ej*juO16@$`QZ=%o@6Roq}vg<{xcHzKFbl+x5Z)}!0Bs;KU4&8B>?J=HC zftF^R;B}3XL(IW|4y`SDl+9;ts(sU*Mwi=wL4t>EZrIIh!BH9T6FG(E*2Y$#%>5;( zLhfzOZ&*P))^J<$9Svw4gr^$CR?FOeJM(7ygwsfKgRdWeagkpq}a30&RdVRpgTOgt>L-Q}~J!ViwB zjd)DiI?Q=#JesW)**e%dV2h`mSdO0yv|2DUoB7XWPBXK26s&tK!(5FVL@t>>HSB^8 z-X=%$p7Le9H0ht1$#XEd0qc9O&ui;^XJ%g8KS? zfj?hd`ub|X)et}>{HX*$Ex5G=fZTojkb7U>asZSQz(+{qBcx#hA57c<&;)_+#<8ExV$7>lC z%c0DhrtokMUsE<<(Y*nAh9<|F-8VG0YW>nU&$LN z-_{%2Rft43e%9r*D9-h-cK7DJdmMX(t`L~o56p) ztihZy3NGUC2Yqp=_IgAY_*kv}Vi{%cGCZ`UKW#&F>Fg4kd=ij<$*)HM_8 zJM)Tdj=Wfwd_&$f^O;xAe`K6y;V#@!DB9QxEZ~ga$(g*XjDtovE~f*9;(YwBSl!!q zZzWgY)bCLB$0qJIhOOOeH-Nd7kuW`nAx=2%;p1*@Wy#nxJsD3XH-sVVKI=dt{8S6O zCfI1@!uhB0w4w=$Ep zUXT7c)d}-_%alurRXIkiXtXY&YSk&4Que$nXj*&>z z_FF$|XOXBwQzR0t4~%jAM2pLx^T(7uLr0V*4sE~RQ`)ai{_$OD{LlA9g`JaqQ(~}7 zK}=YzY|80r#ND?P)oFSft}?Mphk>FG=ti@LV?6=S#b^eng`7iga(YWU*x!A9__f;I zmaaELeZCEHoWvWV+%W~ssIRprvqvnNec+w7BlY4gO@X%Mn*(bAvy^ zF{jdG&=hC4zA-M2)jg=k2FnGl(%bBIDR;5rJR8El=I7G2&Gj1*j_vtRd_7cSR5S88 z^HiU=kNIwYm3_>9WL>wFZro8TmkZ2}+7upmTd?V=-^;)sMFKRRH5P7WyL7c+{e>=U ze|7!3p7*A=OW4J^ibWTdJ@A|#xt#Gn?j>&$)Em`$4MMp@ke3S*SSQ1vlLkO0=?cg3CJGdVO{8)A%N_YWEd1#94uW z?$7;3oPNV`oOg{^!285&gC@8jfwjO{&|Bau7%P}5$fZhdyJZRM1ZM>0cXvFNPd_>K z@ROT;jAn4@_ih;lfv^4+rWeNfz4V`&DvXq#6wVO_Kdj_mbvq=zbh&je^-XE6FmXTL zo$Om3w70t--sg3=wR``xt*F{zS8#RLUcIcqFk&xyZ}97O%09}W%5loSGzMTIwVc?Hs;W@$gg3XU?1(!!!fCT%tQ9JQpVZ{fB5VXk~)cv zRV`FqRA|3MtO`@TkR+-o#!7l#g@PXJ3VwcV=Ef3L(4&s4Ky7P|up_fhnzglOfVAy$ZEBqV*(aEHVaV1w^E_Jmm_?R{eG2R4mo&Rx zRM8(zqXJ{l02JEZzI(G{16rLhYjq@WTrU;#hPkpXqr_yi8*p&<;dem0JTHtLmlC+! zVN{Uv)QYQXP2+lV4C2&ZjH?~;SCIZ~@DEzE!s_O3<}?#ZPotL%ezUr^o(X=~b;6FB z%Z^}5Br42z5X`G94bb%4P}FxrQOiE|(OZV()5r6oG#9TLULKYdx3nsMMYwEx-Isqd zWU>L?2?KAmag)$jnpk=q<;MBj2Yb42$lQ{X8|v46(}q;3drIK7o!rSbFLMPUNt27m zJqij82|a-VM~w{`8{)S*WTfr=9fj9+at!x82gL@B$I@_`&KOK#u8q*DQqme zip^pVvgjg9E=C_Jv`BO~rJ4^gHd-F)X;UV0L;a_!QHB z+wf2ZuJe}jw=ydot}rG~xFOja=QVkVmY;HpFJ!(kgiF;~)?0>rWl!X(@?G+jwISI% zS5N#0otE8{IjcP7SY{=6lCP7aBdR0v8S-WFO5o;i&0dph3gn;UHS(+p&Tdy8KDa~w`V7GQv`_)4n^XeY~RG69sFaHa=-FC$by0CKdsV0mC9~cO=SI4sM*_{tJ@kaP_0(I z!xXDjp?p=5%AcLXo5OZt2eD^(akaRRm&k5n_p|5OtO=KJs`%*0FGk)O%su-2b>f!LteY`6;ZA&TZ$K+@tf1Nscp%d;>}Jk%G8FqIYyoE zk|R&7;?LH%55?2)5{%YkIX;T7;t_(0ytV>!V6(B_x%yS_KD-^&=Jq@3D?IcM97UP= z8wli3T%nCH$d~AD3l>HS>#Gi(cs8^5mb*={Nc3v<=@(z;R~Njt z8ya0pi+W@o_BT25j-C+yB_iSxTFNXwx_QJ#X5X@nQ!g_Q8AR@;htlKdSu{hZ(k;d4 zx%fK0gS&ae&ec2TSI|2sG;!)wCSJUT5sU9Fjf{BDpbDl;{I@vQ(^a;R87-?5zYb*_ zB)ueFlIFYCRmI@#16`;2B=tKWQ5Am;O5HiaqCkKSOM;GyqFeY#7_NCcphoErX;*(O6A&@Yp1V7RAN=`FKYHI*UHJC?i0sb;B8%c5nuo(ELO zQgu&td3}j8NM*w=RGG``pXGaRo1a?c{~8b5cqkcpv%c@YA8uh&@G$eFHNMI-E#ulqku2+cQ9B;9pFPp{V3a$uh+Y8dzz-dEve2B#P_QTSjf4eI6 zS<~*#tT7=$BE#;B9Z|-pnibn6KiDghmg*0Z%CX!iPFJ(Y%lQLMqc~B9LA=rgwWYOY z+vT>f3B}rlmLd@>KylyJmaw?EQzg$>aPjcRTH~><1@*PYffhk`9*=N3Z*cm4w)1Tk;S^DOp1Ng3!p@Cu*BpI%T0NhSH5?1-08>rZEVL=oAZ98z`$O{7j1htx<_SA z-EvmRnu|ok!=@gW!^tww+1!ukW5nfqqx2yq@!Q0TVQxPEh`|&sCw)i)_r18nYjRzx z(>!cypIphw&{j2DwYZ;M`sS-dLvU>1@k2BSIfQUpT-DN8x7h_9!J9krU!Sm7yZ3A2 zRo|!HeF&_CVb?K5jb@<8hxcJAtOSXnaO9DHf99+F2M8^Gf$S%94kCly6*(z(gJ@iz zbhXr!>O5su(*b6OqT8UF75jS(616d%#7TE|p+dBxfu>6hn$t6R7t0cOoy!E=Ye8HK z;WOSpk>duxktQ~;A0!Mk%gpogsl#!eN5*#hbY_8pL$u6c>%8?sx$vm)st`REeiT*- z&FMC@kal;gOZ)USMl^ef>F6F#l78a0&7M7-+_&G#8!>&cqW8T4W;--Ww2IE637fKt zenXehhQ4uQ-`I%jzkW-i#UsR1#3DxYwB-BZixWrppo4U~q^gwF0o1poud9r{C7tqI zAYZ+`=_ZsTuk}{S^Rt{JZW6-Rf@VlYDu_1Q6b0dD`6NL#5(}w7>LT@+G4@TcG*XHd zNz0jSQiYVTu)LR6NMG+c*>8hV>B@L@blsuAcaTwyB%Id$~dD2EMl)KAgeLKg==AVCQ6CuCz z%9TfzSCx;I35LyIZR6EitGqg<@0b_;>?D?Z?>AM<&Yxqzne2Bt{l2$qv}(F)sS0gS z?NAZbNl#S8s=<9b7h%|`lFdmSu7{oKhF%%o;`L=5(OTp0O|>JFnGnkD?YwunjpM-@ zb}RcgOAU3f%DvCF4>-`ihP6-&imy$U9v$7)HaunI{)wr{qkF6redV|CP#39@)_Vz!*7sx8T3B^9gGHyM*bk!#*k8N?r{mqYaRcNr!@-K&xw!F; z2*&Wx&pVgnyvf1e+b)sRYIx2!qVuEXg-*qbhon*L@H1}aZHIKSYU(I(6?h9q3($1I zQUOs5bWD&ZXt}1-3OxTj4;DF}Vk%&fQ_8o46-9^3lkT^D`fy6_$m9*vP&;8C;ZWf? z;VdB|Ocj1ih{GfP7E;@i=RXsc2nEH5X|kF-X?bIIkJtQL5z@@$`KuNfCC|^uu#zFC z4Tl#DmTl|}8~D|P#*vQ5#b0Ed!~?{g{ihC008w0Vk>aHC#93=JE4+uTn;nfr4FtjMlK-x^&LE2C1 zC!HXbN;NB_>C)ZOn(Ov_6RLu{qWO&|5$wl0lvNeBeR}lxoiEaQDOehJWLz0(ZIa&VM-iYc|WM_hzssBV=H=6oS_XM?y^9rrK-kROm zyAM0`*%ld5L4fjQMY3D0vAl)cL_J6@mLtNXl_=jN-!I2CFSGB;5n<1oscfd`py;RY zQ%q3gN)>ItAHCEEA5w7b?1$s5$!0^2dmbFFEGpXd=uPzd>}KedLZjd+ZItbmeU-zM zT z@%uyT8&U7AJRMh>n3yJd+IloM^0e)qa96;#MbnyB3pVy{ChX8@5xbV%#v%oKncXKO z%!eO@t<>Grh*pnK6Q;ve>X&}!wXk)%s8*?m@$`#2(A0}_18}XI%(9ty4Sqek(ipeu za<+cL(DUu+O#!RB@AJ8;9d3n`I3E{bFbUmY6rhq=1vni!u31zY<@uht@G=Ez6I+r4MyzzFesar+g z?{Jt7H>3KOT+xEb2IBq6JMbS&=WuJv5pJ**Cc+K2!bHVImGwV#N2%elU^nQQ2}fs} z2dog4pU9$$`WS)9oCZ5Iwj__=9+EwIMDRBGkx6}pxZd!8B)otHF#____6fOU{&&&6 z;M*679%0J)%>W3AF&^HZ56O%$Mv$i&y#D22!UoRhPe8H-=q5l0rmv%J01Cu#g(srn zckA~|su!e6%rU|JIs7h#e4-m60MI?bF1oXSxZmtpT-K~L+?N+(^g~PRT4Zv7^WtN< z_+xoDj^~y3++cT3JA+bfFqprv|E!&A@w%oPSYM2CG~sX>PW8d|MJG;BC$N2Sp{TNp zEjPFucaf>W;#D0-U}W;CbVX!)>WB6qXCKu?(8~N~XRrrt%MI+tF`8s^mAj8;#j^st zLb+hJn;S&ztZHbmP|CT=HCblW&2Y6%*j2-<=KfY!4J}7o!O>_pj?%1!VK*+vw=>m= zjtaz}C~XAVik5E2=M@FHR-1I`PxXBJ{>o-?mE zFYdF}5F2v19AhIe2VvZ&F?1-oKqIo(;T7fC^9r#YuQM0+{?nWw#C$P!>Duy9UlJ3vrA!?`1t$dY5%H`dD7U zLDZ*GF2@KN7;r{$^w^UqV7(Ixs>A4-f0ZV<5Zi)zXUt{Lj_O)fN869(3pj`mQMrcB zCImkcDFA_*DSLVu?WrlstJR$aV?b9 zhR4>fGD6g=w^ee4fOI)#*pO>zU}Rum02zMO)vHDW((jmvzZ1o}V0bwK+Fgo*?Z0cn z4bZ#_O;{mr`=;8%9zk>TgKMOh#>vZYIy{^%P z#+0FfA=khFY#;s#AA}faY#=AVW}uEz43Oweb(!W;WBQE<`RFQ+1!Z3-yh^hOX(0}& zIH0XJ#MVi!3D6b?7)Ve@dmt`zLR}4XPRcS8wF#@x%tufTl93GTd4P2s9ct2sqBj(T zWCU#srmP{W*q?1nvLWV9^x4?shHQTCP9z(DBnTrURiPor(Hoq228iE~jZjbVzv1MA z*f3JN6`EPP3MR!dK=%Jh1$z*RjfVD{My|B&(QraR3-qK521-_xzOCYTq0d^bxxw$4 zks>uvy*H4L0Cb#@iqQ2HUBRGSb-MZ^)u$x&r>nl-sNIJ&6&N1>e^2c}2tzDDbRH@I zjB7Ltux2FM2Kt(TRtoXUdQ64~cQQJB(+v+~bl_qm14Af+0qJps%ZX1W&;RiJd+w(K z2x;>&jdC>Sz{Nd6Ltq+$+ug!6DiR=M%F#nyU!+l)0BP3<@qC^}odZbUMo7@JG^!LJ z#OR$qR`}C2s$CO~&Ptsg5>t>yjRlBLW0-^|X;d~q`Zq!{9;Z<+0Me%slJh8yvbNyB zK>jo36A#mrs9hb>fdO@9w8j@BV<4tI{YNOAZ|3|BOWe zL=2E$Ww*JPMlAzKzs4}mchjg-0O{5UalMm96#=AYBgFG|8r6*Vd&)t#(x^aykV(Cv zer~2wGJyOld(4eA>Lx&j>B7K|j;GQGh<_THuE75t?uB7G4}#H{iGcnm1-1rF127P1 zmLUUPH{=39M_ouC@H0doNG!4X1QQ?}{b1-w7GWUIr(0@`ghUp=Q4p!RhDhYh4+EDE zWE+MmB2hGn5rhPbK$tE9l5Vd{dKMXJ=R@a`Leqpo2d&e1)M;j$qdpO63b6x3Xz^$2 zq-wqo`G3Z%o5O+rvIz2803(7qkVdpQV&>>(n<-fHc&Y`8Xo~z>!63t#0a=4(E+{`} z{XxrMB8QB~xWI{qFTnZ$b{cg4nN=EyLa+sswD6&!Okh2R)Lj_VClnjLcGrC+ z)l@gTLPMsFnJ9D`T8uR@1_*jzC|D(~(?nb70s~hkB;^VC;@J>#7E};31qK+v2SUz9 z5gZg_i~t)LNg9hzdc^O3*Z<&m`w#x!;QtQnqQ8(PC_~#qWN0{$X5S< z%y0ik>&BsLa`{3qsEov(TIh4Jn^7*l2@KU3FOf`3Y7w5r|A^ z1z{jriz3aT;VotwlJe<0B}pFUJYDjr0zy`i*&MwDivg1n=;Cjzh!M~*&<)63HMLG- z43!I6{);qV$bg_#nwh8oLYkupGH(25xB+)vEEInx2Z7*lL%O2>W>F^0G~_~V<|K9- zh_1(~zb^KFRWf@Nsz=lmO*KUpzvKC5b6~H}r6AQi2rZ+9~KEdr7OI{|0`FcQ>g-~hEkBOycVOat9;p{F14k`+u0 zvi}Yz`y4Xp=9>xl{Y0z-G2Gb+$Pf`NjJ@^RQA`qk2;m?xgtJDx^ z&?1&YN~o^~LO1L@=wuOO$Mh1W59sI>P)ZKzyZX*a!a$$Yb`oBL(Oi#uk z5U>uG-%`lh3*m);1L;?>;l?N&!-yJYh&W+|8nRZo1>_8D3b1z6KV;@5FL_8$o(Y@e zkFa&*!+$RwWGg@_075p^K03%9fHblG9pbuZE#&|ZvWC%zsf94!0Qr?p0)zYS9Ss1W0Fq zv~7gAR%cSa03quNJ%%SB_gH{*ZiI}7+~olIh4VUqDE@$40EqGr$QOX9{(wA!lCl7C zXiV98@mdPmaCFAc^|>bihRy)_g>xQ21_7i^V=T&l6E*gaFfowMJb-j)3}Z7PliCcB zU!}-{FnItGG=}knbcz7-t2W-n##5YT9GyXXeJfM*<0*?jAkF}3@dv~cAnpEuBtXh8 z0BO~jSL@7mls`ZSt?5ge2Vuhh2;&c7m_Nc$0h_2ze}q{IVU7Xh7u9(}nCpLpiGi}e z1qg7dHRSaOAXc`V2H6@y&j}E#KR|wA=sGcz3jQNZ20)erF17vVx$_bUL zsS<#Y)vUf;_eq(Q5Fo$knOeG*8V?ZX##q$wO;j8}exs=MS=2Uw5GfvgyF1_A zLhT0#S(B5UgMKwd7MC#o=?>J${0D5Qz`2Q#3B0E8n!#%hFG+_C+m`V1;3YkW9Isi! z+Z0}MNJm=G7T)IY5~?62Cw-T+2oYx^*b&Mk^lA?;={1h$c~CU!Pf78G)TV?%d6xeXNS9E zN;Ix&;0gsc-T%^x_#q4=`lbz>Nmj#}xf?eDddIiUU_~5kf9p(h2U~*!LRdN`VvY&P zs9j?QWYgJbH@q+t?1p;-?=wi~c)-c(qwF{;lvrff84l;`L~w?2bZ9pIkm~;5`-mWU zn;I}s3}qY+|407s&F=q0>LQ4f02q#esw2&-$MBDXjLou^{sU<(OCjHr2uR^gjMJucC};w=pcfnQlS&y!VG;^!3gyvgEwD*+SI#PjYy%kd;)1eFqjnrJoVbr zOd43gVaRD=eONHaL10yuNp;)Jw`*F}$;0Xze~}hU_ChWpsDqjVR|k?DxCMx6VNFi{ zohvdaz8MF-u`bhu3*Mm?R#gz7DW8Mxi>-Tt$~u940Suu=hApk?Xb&q`X{5B}l%URH bYtIr*c}=D<^;F>7E{qIp|M&Snp$7gJzk@bn literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/MainInput.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/MainInput.txt new file mode 100644 index 0000000..025c737 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/MainInput.txt @@ -0,0 +1 @@ +nrofprocs 3 \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/agapia.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/agapia.txt new file mode 100644 index 0000000..8868882 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/agapia.txt @@ -0,0 +1,154 @@ +module MAIN{listen nil}{read nil} +{ + CITIRE # ( SLAVEA % SLAVEB % SLAVEC) # SCRIERE +}{speak nil}{write nil} + +module CITIRE{listen nil}{read nil} +{ +std::string strLine; +std::string strEncrypted; +std::string strDecrypted; +std::ifstream permutationTextFileRead("permutationParallel.txt"); +std::ifstream encryptedTextFileRead("encryptedTextParallel.txt"); +std::vector arrPermutation; + + int nPermutationSize = 0; + permutationTextFileRead >> nPermutationSize; + for (int i = 0; i < nPermutationSize; ++i) + { + int nPermutationElement; + permutationTextFileRead >> nPermutationElement; + arrPermutation.push_back(nPermutationElement); + } + permutationTextFileRead.close(); + if (encryptedTextFileRead.is_open()) + { + while (getline(encryptedTextFileRead, strLine)) + { + strEncrypted.append(strLine.begin(), strLine.end()); + } + encryptedTextFileRead.close(); + } + +std::vector arrInverse; + for (size_t i = 0; i < arrPermutation.size(); i++) + { + for (size_t j = 0; j < arrPermutation.size(); j++) + { + if (arrPermutation[j] == i) + { + arrInverse.push_back(j); + break; + } + } + } + + int nTextSize =(int)strEncrypted.size(); + nPermutationSize = (int)arrPermutation.size(); + int* perminverse= new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + perminverse[i] = arrInverse[i]; + } + +perminversea = (int)perminverse; +perminverseb = (int)perminverse; +perminversec = (int)perminverse; +int chunkSize = nPermutationSize / 3; +chunksizea = (int)chunkSize; +chunksizeb = (int)chunkSize; +chunksizec = (int)chunkSize; +npermsizea = (int)nPermutationSize; +npermsizeb = (int)nPermutationSize; +npermsizec = (int)nPermutationSize; + +char * cstrAllContent = new char[strEncrypted.size() + 1]; +std::copy(strEncrypted.begin(), strEncrypted.end(), cstrAllContent); +cstrAllContent[strEncrypted.size()] = '\0'; +strallcontenta = (int)cstrAllContent; +strallcontentb = (int)cstrAllContent; +strallcontentc = (int)cstrAllContent; + +}{speak perminversea : int, chunksizea : int, npermsizea : int, strallcontenta : int; perminverseb : int, chunksizeb : int, npermsizeb : int, strallcontentb : int ; perminversec : int, chunksizec : int, npermsizec : int, strallcontentc : int}{write nil} + +module SLAVEA{listen perm : int, chunksizea : int, npermsizea : int, strallcontenta : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontenta); +int localsizea= chunksizea; +for (int i = 0; i < localsizea; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + +char * cstrLocalEncrypted = new char[localsizea + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); +cstrLocalEncrypted[localsizea] = '\0'; +locala = (int)cstrLocalEncrypted; + + +}{speak locala: int}{write nil} + +module SLAVEB{listen perm : int, chunksizeb : int, npermsizeb : int, strallcontentb : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontentb); +int localsizeb= chunksizeb; +for (int i = localsizeb ; i < 2*localsizeb; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + +char * cstrLocalEncrypted = new char[localsizeb + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); +cstrLocalEncrypted[localsizeb] = '\0'; +localb = (int)cstrLocalEncrypted; + + +}{speak localb: int}{write nil} + +module SLAVEC{listen perm : int, chunksizec : int, npermsizec : int, strallcontentc : int}{read nil} +{ +std::string strEncryptedChunk; +int*pPermutation=(int*)perm; +std::string strText((char*)strallcontentc); +int localsizec= chunksizec; +int last=npermsizec; +int nLocalChunkSize = last - 2*localsizec; +for (int i = 2*localsizec; i < last ; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + +char * cstrLocalEncrypted = new char[nLocalChunkSize + 1]; +std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); +cstrLocalEncrypted[nLocalChunkSize] = '\0'; +localc = (int)cstrLocalEncrypted; + +}{speak localc: int}{write nil} + + + +module SCRIERE{listen locala : int; localb : int; localc : int}{read nil} +{ +std::string strFinalEncrypted; +std::string strLocalStringA((char*)locala); +std::string strLocalStringB((char*)localb); +std::string strLocalStringC((char*)localc); +strFinalEncrypted.append(strLocalStringA.begin(), strLocalStringA.end()); +strFinalEncrypted.append(strLocalStringB.begin(), strLocalStringB.end()); +strFinalEncrypted.append(strLocalStringC.begin(), strLocalStringC.end()); +std::ofstream encryptedTextFile("DecryptedTextParallel.txt"); +encryptedTextFile< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/invers.cpp b/Examples/Encrypting Messages Using Permutations/Decryption code/invers.cpp new file mode 100644 index 0000000..d1f87e0 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/invers.cpp @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +std::vector inversePermutation(std::vector& arrPermutation) +{ + std::vector arrInverse; + for (size_t i = 0; i < arrPermutation.size(); i++) + { + for (size_t j = 0; j < arrPermutation.size(); j++) + { + if (arrPermutation[j] == i) + { + arrInverse.push_back(j); + break; + } + } + } + + return arrInverse; +} + + + \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/permutationParallel.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/permutationParallel.txt new file mode 100644 index 0000000..c71fca4 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/permutationParallel.txt @@ -0,0 +1 @@ +35 5 20 7 0 4 28 6 10 25 23 16 14 22 34 1 11 3 27 29 15 9 24 19 13 18 32 2 31 21 17 33 26 8 30 12 \ No newline at end of file diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/A b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/A new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/A @@ -0,0 +1 @@ + diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/ALTCEVA b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/ALTCEVA new file mode 100644 index 0000000..6a4ca6a --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/ALTCEVA @@ -0,0 +1,4 @@ +for (int i = 0; i < arrPermutation.size(); ++i) + { + std::cout << arrPermutation[i] << " "; + } diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/AgapiaToCCode.cpp b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/AgapiaToCCode.cpp new file mode 100644 index 0000000..3686d3a --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/AgapiaToCCode.cpp @@ -0,0 +1,231 @@ +#include "AgapiaToCCode.h" +#include "ExecutionBlackbox.h" +#include "InputTypes.h" + +#include "Includes.h" + + +void CITIRE(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& perminversea = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizea = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizea = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontenta = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& perminverseb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[0])->GetValueRef(); + int& chunksizeb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[1])->GetValueRef(); + int& npermsizeb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[2])->GetValueRef(); + int& strallcontentb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[1])->m_InputItems[3])->GetValueRef(); + int& perminversec = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[0])->GetValueRef(); + int& chunksizec = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[1])->GetValueRef(); + int& npermsizec = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[2])->GetValueRef(); + int& strallcontentc = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[2])->m_InputItems[3])->GetValueRef(); + + + // User code: + std::string strLine; + std::string strEncrypted; + std::string strDecrypted; + std::ifstream permutationTextFileRead("permutationParallel.txt"); + std::ifstream encryptedTextFileRead("encryptedTextParallel.txt"); + std::vector arrPermutation; + + int nPermutationSize = 0; + permutationTextFileRead >> nPermutationSize; + for (int i = 0; i < nPermutationSize; ++i) + { + int nPermutationElement; + permutationTextFileRead >> nPermutationElement; + arrPermutation.push_back(nPermutationElement); + } + permutationTextFileRead.close(); + if (encryptedTextFileRead.is_open()) + { + while (getline(encryptedTextFileRead, strLine)) + { + strEncrypted.append(strLine.begin(), strLine.end()); + } + encryptedTextFileRead.close(); + } + + std::vector arrInverse; + for (size_t i = 0; i < arrPermutation.size(); i++) + { + for (size_t j = 0; j < arrPermutation.size(); j++) + { + if (arrPermutation[j] == i) + { + arrInverse.push_back(j); + break; + } + } + } + + int nTextSize =(int)strEncrypted.size(); + nPermutationSize = (int)arrPermutation.size(); + int* perminverse= new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + perminverse[i] = arrInverse[i]; + } + + perminversea = (int)perminverse; + perminverseb = (int)perminverse; + perminversec = (int)perminverse; + int chunkSize = nPermutationSize / 3; + chunksizea = (int)chunkSize; + chunksizeb = (int)chunkSize; + chunksizec = (int)chunkSize; + npermsizea = (int)nPermutationSize; + npermsizeb = (int)nPermutationSize; + npermsizec = (int)nPermutationSize; + + char * cstrAllContent = new char[strEncrypted.size() + 1]; + std::copy(strEncrypted.begin(), strEncrypted.end(), cstrAllContent); + cstrAllContent[strEncrypted.size()] = '\0'; + strallcontenta = (int)cstrAllContent; + strallcontentb = (int)cstrAllContent; + strallcontentc = (int)cstrAllContent; + + + +} + + + + +void SCRIERE(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& locala = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& localb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[1])->m_InputItems[0])->GetValueRef(); + int& localc = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[2])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strFinalEncrypted; + std::string strLocalStringA((char*)locala); + std::string strLocalStringB((char*)localb); + std::string strLocalStringC((char*)localc); + strFinalEncrypted.append(strLocalStringA.begin(), strLocalStringA.end()); + strFinalEncrypted.append(strLocalStringB.begin(), strLocalStringB.end()); + strFinalEncrypted.append(strLocalStringC.begin(), strLocalStringC.end()); + std::ofstream encryptedTextFile("DecryptedTextParallel.txt"); + encryptedTextFile<m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizea = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizea = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontenta = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& locala = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontenta); + int localsizea= chunksizea; + for (int i = 0; i < localsizea; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + + char * cstrLocalEncrypted = new char[localsizea + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); + cstrLocalEncrypted[localsizea] = '\0'; + locala = (int)cstrLocalEncrypted; + + + + +} + + + + +void SLAVEB(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& perm = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizeb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizeb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontentb = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& localb = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontentb); + int localsizeb= chunksizeb; + for (int i = localsizeb ; i < 2*localsizeb; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + + char * cstrLocalEncrypted = new char[localsizeb + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); + cstrLocalEncrypted[localsizeb] = '\0'; + localb = (int)cstrLocalEncrypted; + + + + +} + + + + +void SLAVEC(InputBlock* pNorth, InputBlock* pWest, InputBlock* pSouth, InputBlock* pEast) +{ + // Local variables declaration: + int& perm = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + int& chunksizec = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[1])->GetValueRef(); + int& npermsizec = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[2])->GetValueRef(); + int& strallcontentc = ((IntDataItem*)((SimpleProcessItem*)pWest->m_InputsInBlock[0])->m_InputItems[3])->GetValueRef(); + int& localc = ((IntDataItem*)((SimpleProcessItem*)pEast->m_InputsInBlock[0])->m_InputItems[0])->GetValueRef(); + + + // User code: + std::string strEncryptedChunk; + int*pPermutation=(int*)perm; + std::string strText((char*)strallcontentc); + int localsizec= chunksizec; + int last=npermsizec; + int nLocalChunkSize = last - 2*localsizec; + for (int i = 2*localsizec; i < last ; ++i) + { + strEncryptedChunk.append(strText.begin() + pPermutation[i], strText.begin() + pPermutation[i] + 1); + } + + char * cstrLocalEncrypted = new char[nLocalChunkSize + 1]; + std::copy(strEncryptedChunk.begin(), strEncryptedChunk.end(), cstrLocalEncrypted); + cstrLocalEncrypted[nLocalChunkSize] = '\0'; + localc = (int)cstrLocalEncrypted; + + + +} + + +void InitializeAgapiaToCFunctions() +{ +ExecutionBlackbox::Get()->AddAgapiaToCFunction("CITIRE", &CITIRE); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SCRIERE", &SCRIERE); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEA", &SLAVEA); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEB", &SLAVEB); +ExecutionBlackbox::Get()->AddAgapiaToCFunction("SLAVEC", &SLAVEC); +} diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/BBALTCEVA b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/BBALTCEVA new file mode 100644 index 0000000..362b653 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/BBALTCEVA @@ -0,0 +1 @@ +std::cout< arrPermutation; + + if (testTextFile.is_open()) + { + while (getline(testTextFile, strLine)) + { + strAllContent.append(strLine.begin(), strLine.end()); + } + testTextFile.close(); + } + else + { + std::cout << "Failed to open file"; + return; + } + std::srand(unsigned(std::time(0))); + for (size_t i = 0; i < strAllContent.size(); ++i) + { + arrPermutation.push_back(i); + } + + std::random_shuffle(arrPermutation.begin(), arrPermutation.end()); + + permutationTextFileWrite << arrPermutation.size() << " "; + for (size_t i = 0; i < arrPermutation.size(); ++i) + { + permutationTextFileWrite << arrPermutation[i] << " "; + } + permutationTextFileWrite.close(); + + + int nTextSize = (int)strAllContent.size(); + + + + + int nPermutationSize = (int)arrPermutation.size(); + + + int* pPermutation = new int[nPermutationSize]; + for (int i = 0; i < nPermutationSize; ++i) + { + pPermutation[i] = arrPermutation[i]; + } + + diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/Includes.h b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/Includes.h new file mode 100644 index 0000000..3556d46 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/Includes.h @@ -0,0 +1,22 @@ +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MAIN b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MAIN new file mode 100644 index 0000000..221b69d --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MAIN @@ -0,0 +1 @@ + DOI diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MASTER b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MASTER new file mode 100644 index 0000000..0ee341b --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/MASTER @@ -0,0 +1,3 @@ + std:cin>>n; + + diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/SCRIEREI b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/SCRIEREI new file mode 100644 index 0000000..c22f1f2 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/SCRIEREI @@ -0,0 +1,11 @@ +std::string strFinalEncrypted; +std::string strLocalStringA((char*)locala); +std::string strLocalStringB((char*)localb); +std::string strLocalStringC((char*)localc); +strFinalEncrypted.append(strLocalStringA.begin(), strLocalStringA.end()); +strFinalEncrypted.append(strLocalStringB.begin(), strLocalStringB.end()); +strFinalEncrypted.append(strLocalStringC.begin(), strLocalStringC.end()); +std::ofstream encryptedTextFile("DecryptedTextParallel.txt"); +encryptedTextFile<fUp{@7(*HbI*I{)kL*K6pK&B6D9{gt;(nPBvtZS zNu`$-oLnlMNm(9Y&#yX*nT0hUIyg{*nQYn;!d`Z=DJN@rTE8gG>Piv@N)l>Hv*na* zT}i?~NkUD@_LS6C&%tOkKBjP4k5QYn0gbwqCQIbwS!SgsExAJ7L>GJ zWC}Da=wVo5fB(CO|NaSp;l{P&kqN?H&4H$e}%#^c_KuVS%y zc>j{SyM4)_a){UUPMAIlrXcF0L5@3lJ$;%Y)G;nv`nJT?^kdHnbI+DRS@vrW+k$0^ z8ywdSZHX1mLkk8i82%tw6SmI?%`<=L*8qjON{{AFJq!)p2YR+)rke?u@`VVs@!c-=z(;QpG8l*1A0%8Fc$azb$fNcNud}2<-QzAbaN(Ir WgP@n+Jf#NC4eT29I&ILZJogQK7VJv^ literal 0 HcmV?d00001 diff --git a/Examples/Encrypting Messages Using Permutations/Decryption code/temp/agapia_transf.txt b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/agapia_transf.txt new file mode 100644 index 0000000..f2224c6 --- /dev/null +++ b/Examples/Encrypting Messages Using Permutations/Decryption code/temp/agapia_transf.txt @@ -0,0 +1,30 @@ +module MAIN{listen nil}{read nil} +{ + CITIRE # ( SLAVEA % SLAVEB % SLAVEC) # SCRIERE +}{speak nil}{write nil} + +module CITIRE{listen nil}{read nil} +{ + @ +}{speak perminversea : int, chunksizea : int, npermsizea : int, strallcontenta : int; perminverseb : int, chunksizeb : int, npermsizeb : int, strallcontentb : int ; perminversec : int, chunksizec : int, npermsizec : int, strallcontentc : int}{write nil} + +module SLAVEA{listen perm : int, chunksizea : int, npermsizea : int, strallcontenta : int}{read nil} +{ + @ +}{speak locala: int}{write nil} + +module SLAVEB{listen perm : int, chunksizeb : int, npermsizeb : int, strallcontentb : int}{read nil} +{ + @ +}{speak localb: int}{write nil} + +module SLAVEC{listen perm : int, chunksizec : int, npermsizec : int, strallcontentc : int}{read nil} +{ + @ +}{speak localc: int}{write nil} + +module SCRIERE{listen locala : int; localb : int; localc : int}{read nil} +{ + @ +}{speak nil}{write nil} +