From 9dd9cc4f5b236b1b8c5f146fab11537409f385f8 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 4 Jul 2022 21:54:14 +0100 Subject: [PATCH 1/6] Clean up comments in CConnectDlg --- src/connectdlg.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 0e5a3b497b..18a979b6f6 100644 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -237,7 +237,7 @@ void CConnectDlg::RequestServerList() } cbxDirectoryServer->blockSignals ( false ); - // Get the IP address of the directory server (using the ParseNetworAddress + // Get the IP address of the directory (using the ParseNetworAddress // function) when the connect dialog is opened, this seems to be the correct // time to do it. Note that in case of custom directories we // use iCustomDirectoryIndex as an index into the vector. @@ -302,7 +302,7 @@ void CConnectDlg::SetServerList ( const CHostAddress& InetAddr, const CVector 0 ) @@ -349,7 +348,7 @@ void CConnectDlg::SetServerList ( const CHostAddress& InetAddr, const CVector Date: Mon, 4 Jul 2022 22:14:20 +0100 Subject: [PATCH 2/6] Clean up "directory server" usage - and other changes - in main.cpp --- src/main.cpp | 56 ++++++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index a23e1c1494..702878429d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -108,7 +108,7 @@ int main ( int argc, char** argv ) QString strHTMLStatusFileName = ""; QString strLoggingFileName = ""; QString strRecordingDirName = ""; - QString strDirectoryServer = ""; + QString strDirectory = ""; QString strServerListFileName = ""; QString strServerInfo = ""; QString strServerPublicIP = ""; @@ -258,13 +258,13 @@ int main ( int argc, char** argv ) continue; } - // Directory server ---------------------------------------------------- - if ( GetStringArgument ( argc, argv, i, "-e", "--directoryserver", strArgument ) ) + // Directory to register with ------------------------------------------ + if ( GetStringArgument ( argc, argv, i, "-e", "--directory", strArgument ) ) { - strDirectoryServer = strArgument; - qInfo() << qUtf8Printable ( QString ( "- directory server: %1" ).arg ( strDirectoryServer ) ); - CommandLineOptions << "--directoryserver"; - ServerOnlyOptions << "--directoryserver"; + strDirectory = strArgument; + qInfo() << qUtf8Printable ( QString ( "- register with directory: %1" ).arg ( strDirectory ) ); + CommandLineOptions << "--directory"; + ServerOnlyOptions << "--directory"; continue; } @@ -272,14 +272,14 @@ int main ( int argc, char** argv ) if ( GetStringArgument ( argc, argv, i, - "--centralserver", // no short form - "--centralserver", + "--centralserver", // no, it's not a short form... + "--directoryserver", // ugh... well, we only just added it... strArgument ) ) { - strDirectoryServer = strArgument; - qInfo() << qUtf8Printable ( QString ( "- directory server: %1" ).arg ( strDirectoryServer ) ); - CommandLineOptions << "--directoryserver"; - ServerOnlyOptions << "--directoryserver"; + strDirectory = strArgument; + qInfo() << qUtf8Printable ( QString ( "- register with directory: %1" ).arg ( strDirectory ) ); + CommandLineOptions << "--directory"; + ServerOnlyOptions << "--directory"; continue; } @@ -292,7 +292,7 @@ int main ( int argc, char** argv ) strArgument ) ) { strServerListFileName = strArgument; - qInfo() << qUtf8Printable ( QString ( "- directory server persistence file: %1" ).arg ( strServerListFileName ) ); + qInfo() << qUtf8Printable ( QString ( "- server list persistence file: %1" ).arg ( strServerListFileName ) ); CommandLineOptions << "--directoryfile"; ServerOnlyOptions << "--directoryfile"; continue; @@ -669,13 +669,13 @@ int main ( int argc, char** argv ) if ( !strServerListFileName.isEmpty() ) { qInfo() << "Note:" - << "Server list persistence file will only take effect when running as a directory server."; + << "Server list persistence file will only take effect when running as a directory."; } if ( !strServerListFilter.isEmpty() ) { qInfo() << "Note:" - << "Server list filter will only take effect when running as a directory server."; + << "Server list filter will only take effect when running as a directory."; } } else @@ -689,7 +689,7 @@ int main ( int argc, char** argv ) } // therefore we know everything based on command line options - if ( strDirectoryServer.compare ( "localhost", Qt::CaseInsensitive ) == 0 || strDirectoryServer.compare ( "127.0.0.1" ) == 0 ) + if ( strDirectory.compare ( "localhost", Qt::CaseInsensitive ) == 0 || strDirectory.compare ( "127.0.0.1" ) == 0 ) { if ( !strServerListFileName.isEmpty() ) { @@ -751,22 +751,22 @@ int main ( int argc, char** argv ) { if ( !strServerListFileName.isEmpty() ) { - qWarning() << "Server list persistence file will only take effect when running as a directory server."; + qWarning() << "Server list persistence file will only take effect when running as a directory."; strServerListFileName = ""; } if ( !strServerListFilter.isEmpty() ) { - qWarning() << "Server list filter will only take effect when running as a directory server."; + qWarning() << "Server list filter will only take effect when running as a directory."; strServerListFileName = ""; } } - if ( strDirectoryServer.isEmpty() ) + if ( strDirectory.isEmpty() ) { if ( !strServerPublicIP.isEmpty() ) { - qWarning() << "Server Public IP will only take effect when registering a server with a directory server."; + qWarning() << "Server Public IP will only take effect when registering a server with a directory."; strServerPublicIP = ""; } } @@ -996,7 +996,7 @@ int main ( int argc, char** argv ) iPortNumber, iQosNumber, strHTMLStatusFileName, - strDirectoryServer, + strDirectory, strServerListFileName, strServerInfo, strServerPublicIP, @@ -1049,8 +1049,8 @@ int main ( int argc, char** argv ) qInfo() << qUtf8Printable ( GetVersionAndNameStr ( false ) ); // CServerListManager defaults to AT_NONE, so need to switch if - // strDirectoryServer is wanted - if ( !strDirectoryServer.isEmpty() ) + // strDirectory is wanted + if ( !strDirectory.isEmpty() ) { Server.SetDirectoryType ( AT_CUSTOM ); } @@ -1115,10 +1115,10 @@ QString UsageArguments ( char** argv ) "\n" "Server only:\n" " -d, --discononquit disconnect all Clients on quit\n" - " -e, --directoryserver address of the directory Server with which to register\n" - " (or 'localhost' to host a server list on this Server)\n" - " --directoryfile Remember registered Servers even if the Directory is restarted. Directory Servers only.\n" - " -f, --listfilter Server list whitelist filter. Format:\n" + " -e, --directory address of the Directory with which to register\n" + " (or 'localhost' to run as a Directory)\n" + " --directoryfile File to hold server list across Directory restarts. Directories only.\n" + " -f, --listfilter Server list whitelist filter. Directories only. Format:\n" " [IP address 1];[IP address 2];[IP address 3]; ...\n" " -F, --fastupdate use 64 samples frame size mode\n" " -l, --log enable logging, set file name\n" From cbe1170a824cba2dd0f0da9b7ae21fbe2c052cce Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 4 Jul 2022 22:21:18 +0100 Subject: [PATCH 3/6] Clean up protocol comments --- src/protocol.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/protocol.cpp b/src/protocol.cpp index 75ed3c1ddc..88cf217a58 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -306,7 +306,7 @@ CONNECTION LESS MESSAGES NOTE: In the PROTMESSID_CLM_SERVER_LIST list, this field will be empty as only the initial IP address should be used by the client. Where necessary, that value will contain the server internal address. - When running a directory server and a registered server behind the same + When running a directory and a registered server behind the same NAT, this field is used the other way round: It will contain the public IP in this case which will be served to clients from the Internet. @@ -422,11 +422,11 @@ CONNECTION LESS MESSAGES - "status": Values of ESvrRegResult: 0 - success - 1 - failed due to directory server list being full + 1 - failed due to directory's server list being full 2 - your server version is too old 3 - registration requirements not fulfilled - Note: the directory server may send this message in response to a + Note: the directory may send this message in response to a PROTMESSID_CLM_REGISTER_SERVER request. Where not received, the registering server may only retry up to five times for one registration request at 500ms intervals. From 4b5351864b1c25c8721ba4aa06328eb88901caf7 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 4 Jul 2022 22:28:36 +0100 Subject: [PATCH 4/6] Clean up CServerDlg --- src/serverdlg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/serverdlg.cpp b/src/serverdlg.cpp index 874c08145e..c0e14c670e 100644 --- a/src/serverdlg.cpp +++ b/src/serverdlg.cpp @@ -199,7 +199,7 @@ CServerDlg::CServerDlg ( CServer* pNServP, CServerSettings* pNSetP, const bool b edtCustomDirectory->setWhatsThis ( strCustomDirectory ); edtCustomDirectory->setAccessibleName ( tr ( "Custom Directory line edit" ) ); - // server list persistence file name (directory server only) + // server list persistence file name (directory only) pbtServerListPersistence->setAccessibleName ( tr ( "Server List Filename dialog push button" ) ); pbtServerListPersistence->setWhatsThis ( "" + tr ( "Server List Filename" ) + ": " + tr ( "Click the button to open the dialog that allows the " From 22ab4418bbe86ac4208e30218d318b112529416a Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 4 Jul 2022 22:44:14 +0100 Subject: [PATCH 5/6] Clean up comments and add translations in CServerListManager --- src/serverlist.cpp | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/serverlist.cpp b/src/serverlist.cpp index b3e8c564a3..8d34a0c7db 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -184,8 +184,9 @@ CServerListManager::CServerListManager ( const quint16 iNPortNum, /* * Init server list entry (server info for this server) with defaults. * - * The client will use the built in or custom address when retrieving the server list from a directory. * The values supplied here only apply when using the server as a server, not as a directory. + * Note that the client will use the directory address (i.e. the address the server list was returned from) + * when connecting to a directory as a server. * * If we are a directory, we assume that we are a permanent server. */ @@ -402,7 +403,7 @@ void CServerListManager::SetIsDirectoryServer() // this is called with the lock set // per definition: If we are registered and the directory - // is the localhost address, we are in directory server mode. + // is the localhost address, we are in directory mode. bool bNIsDirectoryServer = DirectoryType == AT_CUSTOM && ( !strDirectoryAddress.compare ( "localhost", Qt::CaseInsensitive ) || !strDirectoryAddress.compare ( "127.0.0.1" ) ); @@ -415,13 +416,13 @@ void CServerListManager::SetIsDirectoryServer() if ( bIsDirectoryServer ) { - qInfo() << "Now a directory"; + qInfo() << qUtf8Printable ( tr ( "Now a directory" ) ); // Load any persistent server list (create it if it is not there) (void) Load(); } else { - qInfo() << "No longer a directory server"; + qInfo() << qUtf8Printable ( tr ( "No longer a directory" ) ); } } @@ -494,15 +495,15 @@ void CServerListManager::Register() // in OnTimerCLRegisterServerResp on failure TimerCLRegisterServerResp.start(); - // start timer for registering this server at the directory server + // start timer for registering this server at the directory // 1 minute = 60 * 1000 ms TimerRefreshRegistration.start ( SERVLIST_REGIST_INTERV_MINUTES * 60000 ); - // Start timer for ping the directory server in short intervals to + // Start timer for ping the directory in short intervals to // keep the port open at the NAT router. // If no NAT is used, we send the messages anyway since they do // not hurt (very low traffic). We also reuse the same update - // time as used in the directory server for pinging the registered + // time as used in the directory for pinging the registered // servers. TimerPingServers.start ( SERVLIST_UPDATE_PING_SERVERS_MS ); @@ -512,7 +513,7 @@ void CServerListManager::Register() } } -/* Directory server list functionality ****************************************/ +/* Server list functionality **************************************************/ void CServerListManager::OnTimerPingServerInList() { QMutexLocker locker ( &Mutex ); @@ -534,7 +535,7 @@ void CServerListManager::OnTimerPollList() QMutexLocker locker ( &Mutex ); - // Check all list entries are still valid (omitting the directory server itself) + // Check all list entries are still valid (omitting the directory itself) for ( int iIdx = ServerList.size() - 1; iIdx > 0; iIdx-- ) { // 1 minute = 60 * 1000 ms @@ -601,7 +602,7 @@ void CServerListManager::Append ( const CHostAddress& InetAddr, // Check if server is already registered. // The very first list entry must not be checked since - // this is per definition the directory server (i.e., this server) + // this is per definition the directory (i.e., this server) int iSelIdx = IndexOf ( InetAddr ); // if server is not yet registered, we have to create a new entry @@ -643,7 +644,7 @@ void CServerListManager::Remove ( const CHostAddress& InetAddr ) QMutexLocker locker ( &Mutex ); // Find the server to unregister in the list. The very first list entry - // must not be removed since this is per definition the directory server + // must not be removed since this is per definition the directory // (i.e., this server). int iIdx = IndexOf ( InetAddr ); if ( iIdx > 0 ) @@ -735,7 +736,7 @@ int CServerListManager::IndexOf ( CHostAddress haSearchTerm ) // Called with lock set. // Find the server in the list. The very first list entry - // per definition is the directory server + // per definition is the directory // (i.e., this server). for ( int iIdx = ServerList.size() - 1; iIdx > 0; iIdx-- ) { @@ -780,14 +781,14 @@ bool CServerListManager::Load() if ( !file.open ( QIODevice::ReadWrite | QIODevice::Text ) ) { - qWarning() << qUtf8Printable ( - QString ( "Could not open '%1' for read/write. Please check that %2 has permission (and that there is free space)." ) - .arg ( ServerListFileName ) - .arg ( APP_NAME ) ); + qWarning() << qUtf8Printable ( QString ( tr ( "Could not open '%1' for read/write. " + "Please check that %2 has permission (and that there is free space)." ) ) + .arg ( ServerListFileName ) + .arg ( APP_NAME ) ); ServerListFileName.clear(); return false; } - qInfo() << "Loading persistent server list file:" << ServerListFileName; + qInfo() << qUtf8Printable ( QString ( tr ( "Loading persistent server list file: %1" ) ).arg ( ServerListFileName ) ); // do not lose our entry CServerListEntry serverListEntry = ServerList[0]; @@ -850,7 +851,7 @@ void CServerListManager::Save() if ( !file.open ( QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text ) ) { // Not a useable file - qWarning() << QString ( tr ( "Could not write to '%1'" ) ).arg ( ServerListFileName ); + qWarning() << qUtf8Printable ( QString ( tr ( "Could not write to '%1'" ) ).arg ( ServerListFileName ) ); ServerListFileName.clear(); return; @@ -861,7 +862,7 @@ void CServerListManager::Save() // (that's this server, which is added automatically on start up, not read) for ( int iIdx = ServerList.size() - 1; iIdx > 0; iIdx-- ) { - qInfo() << qUtf8Printable ( QString ( "Saving registration for %1 (%2): %3" ) + qInfo() << qUtf8Printable ( QString ( tr ( "Saving registration for %1 (%2): %3" ) ) .arg ( ServerList[iIdx].HostAddr.toString() ) .arg ( ServerList[iIdx].LHostAddr.toString() ) .arg ( ServerList[iIdx].strName ) ); @@ -910,8 +911,8 @@ void CServerListManager::OnTimerPingServers() // first check if directory address is valid if ( !( DirectoryAddress == CHostAddress() ) ) { - // send empty message to directory server to keep NAT port open -> we do - // not require any answer from the directory server + // send empty message to directory to keep NAT port open -> we do + // not require any answer from the directory pConnLessProtocol->CreateCLEmptyMes ( DirectoryAddress ); } } From a323d1c17fca701182c8f3d845d5078a2a3dcb88 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Mon, 4 Jul 2022 22:52:54 +0100 Subject: [PATCH 6/6] Add TODO items to serverrpc.cpp and clean up a comment --- docs/JSON-RPC.md | 2 +- src/connectdlg.cpp | 2 +- src/serverrpc.cpp | 6 +++--- src/translation/translation_de_DE.qm | Bin 124992 -> 125410 bytes src/translation/translation_es_ES.qm | Bin 122932 -> 122924 bytes src/translation/translation_fr_FR.qm | Bin 130346 -> 130308 bytes src/translation/translation_it_IT.qm | Bin 124164 -> 122058 bytes src/translation/translation_ko_KR.qm | Bin 86709 -> 85361 bytes src/translation/translation_sk_SK.qm | Bin 76489 -> 76427 bytes src/translation/translation_sv_SE.qm | Bin 104356 -> 104294 bytes src/translation/translation_zh_CN.qm | Bin 76259 -> 76209 bytes 11 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/JSON-RPC.md b/docs/JSON-RPC.md index 039a659ef8..42a6e5017a 100644 --- a/docs/JSON-RPC.md +++ b/docs/JSON-RPC.md @@ -280,7 +280,7 @@ Results: | result.city | string | The server city. | | result.countryId | number | The server country ID (see QLocale::Country). | | result.welcomeMessage | string | The server welcome message. | -| result.directoryServer | string | The directory server to which this server requested registration, or blank if none. | +| result.directoryServer | string | The directory to which this server requested registration, or blank if none. | | result.registrationStatus | string | The server registration status as string (see ESvrRegStatus and SerializeRegistrationStatus). | diff --git a/src/connectdlg.cpp b/src/connectdlg.cpp index 18a979b6f6..ca84acc9d5 100644 --- a/src/connectdlg.cpp +++ b/src/connectdlg.cpp @@ -237,7 +237,7 @@ void CConnectDlg::RequestServerList() } cbxDirectoryServer->blockSignals ( false ); - // Get the IP address of the directory (using the ParseNetworAddress + // Get the IP address of the directory (using the ParseNetworkAddress // function) when the connect dialog is opened, this seems to be the correct // time to do it. Note that in case of custom directories we // use iCustomDirectoryIndex as an index into the vector. diff --git a/src/serverrpc.cpp b/src/serverrpc.cpp index f66a28c84a..fe1196cc44 100644 --- a/src/serverrpc.cpp +++ b/src/serverrpc.cpp @@ -106,7 +106,7 @@ CServerRpc::CServerRpc ( CServer* pServer, CRpcServer* pRpcServer, QObject* pare /// @result {string} result.city - The server city. /// @result {number} result.countryId - The server country ID (see QLocale::Country). /// @result {string} result.welcomeMessage - The server welcome message. - /// @result {string} result.directoryServer - The directory server to which this server requested registration, or blank if none. + /// @result {string} result.directoryServer - The directory to which this server requested registration, or blank if none. /// @result {string} result.registrationStatus - The server registration status as string (see ESvrRegStatus and SerializeRegistrationStatus). pRpcServer->HandleMethod ( "jamulusserver/getServerProfile", [=] ( const QJsonObject& params, QJsonObject& response ) { QString dsName = ""; @@ -119,7 +119,7 @@ CServerRpc::CServerRpc ( CServer* pServer, CRpcServer* pRpcServer, QObject* pare { "city", pServer->GetServerCity() }, { "countryId", pServer->GetServerCountry() }, { "welcomeMessage", pServer->GetWelcomeMessage() }, - { "directoryServer", dsName }, + { "directoryServer", dsName }, // TODO rename to 'directory' and update doccomment in line { "registrationStatus", SerializeRegistrationStatus ( pServer->GetSvrRegStatus() ) }, }; response["result"] = result; @@ -233,7 +233,7 @@ QJsonValue CServerRpc::SerializeRegistrationStatus ( ESvrRegStatus eSvrRegStatus return "registered"; case SRS_SERVER_LIST_FULL: - return "directory_server_full"; + return "directory_server_full"; // TODO - remove '_server' case SRS_VERSION_TOO_OLD: return "server_version_too_old"; diff --git a/src/translation/translation_de_DE.qm b/src/translation/translation_de_DE.qm index d8bc3f9115a67718da2c6ee4a8c8892c3b8724b8..3023bc5a3ad3442ee96100709267d3b264d79324 100644 GIT binary patch delta 5830 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 delta 5755 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 wEOAO^q>i+(7N9L1r8yPHUIzs diff --git a/src/translation/translation_es_ES.qm b/src/translation/translation_es_ES.qm index 42b71872a7d775eb2e7917472a1e8542e53ffa53..68f26def01bdbf122b06ed821d96a7267a135bcf 100644 GIT binary patch delta 5424 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 S3dl6y2&MJ;=__fy&;J3axGUNK diff --git a/src/translation/translation_fr_FR.qm b/src/translation/translation_fr_FR.qm index 74f4a651bc3d8d2e81518e969bbc66df12b1118f..17d0903f66eafd9034f00b799d54948fbcdff13e 100644 GIT binary patch delta 5383 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 Wc{!neNlNyk4YbZ8JK-Ri2L2E9{Aeox delta 5359 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 diff --git a/src/translation/translation_it_IT.qm b/src/translation/translation_it_IT.qm index aacf0ebc947c7a0cdec49ba8fbd539ecc9737270..f8c9d6e9b873445dc25dc84094cb97503f9cd0be 100644 GIT binary patch delta 1327 zcmXAodr*{R6voea_rCjmyZ8Z{F!HUJ36!ZNht#nNaB@QKcmeT-xPmUO3W|ne0hwIn zB3_OTqNWHUo1!ch6c=Zyv0)4eZ3xG460!>#P0~B^*YBTm&ig#iId4Iirt7-q zkROx2zhY5ipsg5G;qd^i(?At52e5nyR55h`atElEzYp+r|0`l@8O37;%h^pXwBtq! zV6t?e1|q)+0{G++MD2PHaK%wdV%h9g81*o#IyNnBnx12H|}136#$~hr7%aOusy;r7n{s91X023QzNCbhqG$e?&oGXOBJNHP3mE#O|DMe0zNUP{GknO*Ls zdbK|*>!%)dhIFw}*_QJ2xitQI=R2x&RsdMsM21>gaPI&W11VAf*_(`D<^PN@4Masb=A$fYy;I!>#fTPgrQh*gh$IRkK+ z?*vOO(umH=%8SUNH|wvKXyPoF05>O7nBL4%`YB0o(Mg&@fw#8!P`-Y-@5xn~+xM*i zi_Wp#AM5J|rq-efK-Sp;+7#)sM)|5X9{{W-zlBNHqQ(7Jm0z>o@U>*GqE zdN%!A5rCV|bbb%G=BjaB;F36i9kIH(D_;Vhd4qZc ze|Go}dM>P$9Ai3H@=kz?A9P*SMt&zlWEZV$|2e7@Wp-#UImK{hUq|Djnb9+P%^1pd zoS-CQHd{B7dW#sc_ufXCCNs;NL&YX}X`4<6yT=u88x6%B*?03pLcOlHa9%!ZRoSMNmEfkr6vAu3t=dX}k5h2xF$dtX0PeLc1kjztjxVi%p>Gnlu>eoc z2EfK$c*${Yxaa_P_LvC3ujP81DduBmxf}lq0=`kryy`m3f(5FgTuS#(y{eJ} zZorMR*#q@(%bQkJ->zPOv306jU%dplb_yG-$>XZ6tXAXTj$C81W;n-guue_Da_D%{ zsn{?;Yj@K5u4cgIC2WE=z{w+6t9H1d^Ec{BZZ+WM>#R@f;u>uS%{miW{Lg5XXjFg= zVa@WnrGT+4mZgsxyprZ>ehl!Vzp_@n%`T15eCyltWWXcX9Pw znAu=6yvMXf&bI-jn=H#<%2q&xtnw+ZpyU&8=JyA454Rrw-0v!&i@CKc*m0!J^Df2ZvY&>tmD> z$WrDtJ4!C3@)JIxh--8CiI+&QLC5*x?3;k4g?zX-vLmxk6-p|5n#(uetEYGaAzaCY|gW9_421*{1jlwRsL)nUH2^IFX%=C z1|lpg#lfvw$%<1PIo=H8;5}-9Bd^3QvZ+R)g;J~^Z_J!YEt53fn0+q|;QnCanC<{z z%_SzM6dAU^X58LQm?tw>e~K;Vt$yR)NgV*Wg~pacmOjV z*HoFlT22r*R+_$E=K`FVY`V4R7GU@1%xSS17N(gqPCpG8-N+_bZ1#^9m8i&x~P0vvwO zp8CsV%we+~C782npQC-B1IzQ#Bv12Vx;*|Znq`WZ(r)tNcbds~0j7fpK@eaOM8FMx z2!W5R@)aN&-;wBCq?HIB8X|;gNVLv`VUSJVQF8No%uopsl5a0XtC}Vdk-yl6PsqP| z0tb$cK!Cg>bW5a}@)hW24t;Croe&K-&BKHu#SsZD{-T`UfUnA<*P~5tsl&nSRBqY| zH@I~4X9^nn9hxi!1$Q7OMBV;~D2R(aVog}c9G0CqN(fi_LPAIkM#Z2I6urJsSPX`Q zT3@(Qa0}(Wpy&xp!I%(|$kQFByew~-I(C1l%$Xte@ebsk3-t|0NM>aj)Y>$v4(OFvYl<|$v<)?$cySRU8~SSd-#&ajL3|gO9RO_#xKHg;0&?@m0hqce%d_2RAuRpC-Xron zkx*EwR?>8~XD-IUTGD9iDNJR}OEl?^N?wM-}&N0%q9z+Jfh2XJ=n6HT(0U=_v`Fohd=R0BHnghiJ}h2i#)-KB3?P2dT6gY9&n;59&x6$pVELHrEth67+(pr zt|V`zRg`85ll+TvsBWe<;6Qb}ZQ1EP!{ns%nCA99)+d`vsd5ud5OgcrK1%f=r_?Dy zF(B58H3@zW{)1Hmoyi2wiq diff --git a/src/translation/translation_ko_KR.qm b/src/translation/translation_ko_KR.qm index 1ab6ea0f212ae8c43b504484fd1e094dc7aff317..46ac8029e3d7cb7cb2488100c645ef08adc16e93 100644 GIT binary patch delta 1383 zcmXApYfzL`7{~wT?C!f4-hJQQ7j_#E-W5bZ!UZxx83oiyKn&0XL<5E{qK>z540Q~K z$qQNrRYGPX%^YL64|DB!dN0 zRk5x{(uHs!`yLi-o(s5kvrJk*Bd4-1>QsiS&|cULGTDHuU7aANZYFE;7$yI*<9Yl8JflQc_1D&OcsI^&*_>whr5B0yPBSVazG3tEJ28+Llvwy)4?+KXE!1Lt$JSKAMPcu!`j`U0wa&f4@rrm1UmE9njpb3AkFoz!}wA=n@h zWyn|9CTKvcvxK5$OF%G-B^V20+=6gBaVtplEaBm<9N^$B;o)c8o0buwuWt!3d`)mW zNb3=T8G9>47w@Z!~-X4tw34h0s^5Y9&$MJDqyfDt^#bYG0i`94}u|bciK5x_+ z>I&L`vRuRQOYuPbRYSdgFECik;zXM#kscUYuJh%(zcZYBbbu$7$JUE}9(a{t=sn#G z^aip6q8czzZuIWl2ke?{^t;2i_StU?U6cYW&NoJ7an0&pc0&xJUgd05%u!y7#+K|& zzzTokl|vFQS1wy`c2aXEt2C?Bvy8Qv=lcx)Yg+f$QQ%3XX_lJt_^S^Y(;om#tan0n;+sw?2)3@g~`?HH1IeF8e3f@>4Ng zo^!d6r?yO<^Q!_9^$ROg?9`OUY7__YV{M8`-G%I-q6W__l%KeH{KaW<&l%2Z{c_Kr zkNG($kq0aikEd@HNX$nKVV-eDGOb~aZ~6VkFtSwJG(jL)LemyA*{D5GtdONmD?P~~ LbJJ~pbt3);P{F$+ delta 2463 zcmZ8hYgAKL7T)LP9dB|WkboG%K@pI#5vV*$6>B?V#Ro7B2s&aL;R=~z!X)7}t>9|a zjx%dHwx?aOkEu_V*p*QP6qFVad4#EhwyR*BvB2_C?5I$ff`BM-FNSA zf8V#y@Q0$)6{3BCjF0qGkQhabRe@+l3c#NafoNq6AoV>Et*HReOo3?qZvg({@WlIL zBn6om={C}Ya?x%Q#^_XAu&5cJITP98&PXjm#RI!H1AKf{Jn&aFK+_}f$VeK%!;i%GgZ2UveJGx+od)PT0LVhnvSJUz@ zhfA^|WB{WzBt;%1J1W`5(&Dibq*%V5!A^2Xu3;8_N(SV5CT0`yo3$b#zD~M&DJ3NM zmUMM)7r@&`q-&=W0WHpzCRdLF?EHr(wqEeW(U;v3sRhJ7D@n2|hSpc?A$_y-Ok6YJ zSWWZ;tMuH%4*;CQp4e0CiFYr$Bl4M$HuX@fy+@_Zx9wE8LXyG;&O#6`9X`_tFmi_! zv%0zC8M4`3?*i;zDhuqRO@fZgB7U0;ur5~?yMaGClZq;{e;Py`dLXE8MZjgcI(bYK;A%3a+(08gDtp4tHe*T+ZQJT3cbdb zb?NDJi%B1s7~qq^wq^bsVD^h_=c(BMV~g2~(r2kn!bqH#j*)*&GQ4!r<3yo7CIWc# znmZ!jMg?}zq19$ZSUNS==?X>Eq%XiJRuR)>qAoc{4tOOe1XL+L>Y_cLwJVO~(c|!y zii%tbK%8E2><0Z@yH-*85*1)!zrs;V-%tEnang_uhzTb_-Wn#{N#eYNP&di&E=w2; zSMEwZLbsqsNz_}Yum7$*G=7W%{*OB%jlZ(-tGxia3(9ZQaRB`}%IlI43WX<}N|UhE zM>(0^MO(ead2eU|kZ!XAl^HKu*FxLoZ z*`Asy)iN21u34hpcf)=w7-4&s1bNk5oX!*)TOkbQLlphRPHlTh_a?ySDr@@zJ5+6# z0oOpc4R8m2&TBv0S^XYhnjH$W`u=u>zRgDa;@-MGxt+&e z=b6n`-c`zuF~W5rLbO3VujGuEo0b_GUE>4pX$9OKb3T(&aF3MT*4mqVkXY%Wr?c6q z?#^tx3z#e~(!|aTo_RjL{k3S+>wHnbLbC^MN`cL2 zHd(RFum#)9GfX@tBD>IPGjFp8V-!@kU5+fm^2En-xthC#b>VWepV`?AxNTL(lKPNy zRP>+C;TH9m5TE;O2-pm+yLArn6ZVPUIX?;7yvRj{hl-9DC=ow6s$4tJljfm`?#A)@tPU!wXGdJwt{rH(>D1P5@@xg&9H_47 z-sB>(C%vPjJM%;&9Y*NdBj?nKNGGD?(p*PWOMmTxr_H_|_NGz$d8}+PxKw>S(@#WF zzgu_{U(Dy=0^VXY=NPjM`T3=;S+^Np|5<~0#S&XzA$9l3f<|3 WB7-sCuqB_jFK3XtZod{?jr>329Y<3D diff --git a/src/translation/translation_sk_SK.qm b/src/translation/translation_sk_SK.qm index 62a925c8885966c7d5145462121dae93ed2ec634..bc3fd3c4cba5720df330f44120a00b45d544f6b7 100644 GIT binary patch delta 903 zcmXAmZETZe6o&8TZQrl<{a6>)roj4A#Wgk2#t@YRrJ3lc(`;lq>rB`}RSK9$B*s~l zjYNWpjZSwYixJ59L6`v@b3=YiS2J9c5PRSR@1K#V*L%nd?(_88#%2jUA)0iWL}a^fb{vb6B)1@Z`% zD}krahJbf2qq_MCVBA5Qg|`I#7NvxM>nn`x&4JlQaqfH;xcmVv3AzoIZbHbIv9^h&trR-64zpd`nHsDGZS)#@46c)owp;j@(`l(xtyGHCkChi0J zlJ;{WoxswQ6p(f^H+4vs`nb45*w6pop_Jqku3x0QwBV|e-j!^?^$k+XOV0!OHz+S} z-*sVGnu;XA-2KuYNxn(X`_kefA77l8maLC~>2IamefI)CPZv3RMrO$`frE!-&k+OI z__bUf;oawU${XA7f~hCvx}o*JLvgvjtPzOalDFQk^0eGq@d?HlomXmEf-JR}#i&EI z)DM-KZ~g+V9iWu@x?mP4RRQ8*$y5ft)vffjl*7LroRR_6e;r3XVmKOc(<$G zY&(}JSIhJK)!!@BM;h(|cc!S@;TCR8)377zs!~&1-vsu~s-vCUxR9feGr-PJ)M>Hz zsM)z$bvX8=Hvx;|G|VS{T5!ghN>QyRH%d#I#WeEhJ_ml%TCxuU z%b!wM54(0~LofaY_-C~-WgYJqp*B6_?bBBu7lHP=BCkE5uQ|yb=1OQ%Z&F{@zsS~r zX;Tz7+@*hx>Rp=#fX8Bb_qKX|A%o&ZfMux7hzIu>R2Bn{t}>1;9|tB*6ghX(82E*6 z9vn7i5fE*MF~BYDE?^1)2SFpK5%t~fuh$=+AA7&w zpHF1OI51-T%*EO|bctnMhRGKI>gQqdzW~gvz*KYzaIM0$|23fDj}%8e6kvVAu#KF8 zZg0ol9xrh6F$%*4!0;~GBb*S_Z4?ze_6gjnih~(}dxJ6HaThHM6)Zv_gU5ZIwKd)&2wPpG~r3|ec<=cDQXPL*9|4#9R{AnNjK^2CCW49v0SP#dD#NBn?m+Avj-WHmYm zTx^z~+V&wZdO^;J)p1doa%O^y{<~1#abOKtb;$WI&j6qLWgoKxk^A!N9dTg6Nl{DC zeoBrW;?q@A^4(@`WiE|8Ru4;3z^bz=RAJpC@3PeP?FRm|P?T4KG-(a7JPO!q-1}{5 zodUO2Zp*A{1h!AuT<5rp{-G2Tpn03l3P@927AD%NW7)t;KkZcV?2WeGH-7=#Q?{SX z+kuDGbXxIdOe;^fnt-~J6sO--Hhs%Q&G=|gDa~n6zKj)vDGuf9qvgPkP0FQ^1Qe}T zS|@nd5|p;x-M}klO8en`{J5`Dsp?_>(P=f5|Gi4-JhYaLYRgJ1Ffx|ntViu0Ityg= ztK-rZe({IubT!}6azvdylMUPtt8>TsUpiOFt2ymGTK>QyQ0><8haLQ1YAL9BGitT2 zFb{|oXtzQ!pg_@X)o@P_!qlWW)i!PJMlsOy&U;`R7CUci9ai>y=ZTFM`bZz$N=31Hyz7Z9AK+nDPZ&<`V87;_!yg7{(*1s8;& zh^R5caHAwM8ACLXtXsDg!Hu{&Hw47AS)yWG2FAy>%nAC(oQcWsm+h~U+?$ZGA^C7U7e+uCK9IQ_~0&uGCHe$gMGBJ&>lfii$ z=HF0y&JWN|u)TFNpg%z-H(;-Z>GpZR#xTsLQ-GxxXqoFl3-wrh*hz7V)3N0ijyRqL z5aT!*0l>;mnzL*Y)aVxgHlFm1HB_1LB6=v9QRr>v&Megc78i3f6MF#U25$cFB4G1T z?((0_faSlCZtciibHfr2u&wpSX~1gOXDkaJ&jaLtV_Cem3ox{b($*jzA&u9OBOmX> zGBWul`|6DI`yK#`h>F=^8mul!t`6rcJ|N0^w1%|7q(F}(~sw=H#6kw5z7KB%9Fo} zWeq8S&%P2XmWu&jt)-<*T{6Y+$s2%SCuz1;mq(1XOaUYhibucR2oNa|j|=Ys7DZ{m z=5&;gh{+$Al=p4%%d7o>6|VY!o0t3E??16&?GjK^exoNmF&apL}Y|y#+tY*$IyQ z$R*j`eh6UgpzP^ohF$SH7;K}YYG4j6sGgkAfAZen8L2!bx33QaK0PXTr1AiFjFPSe zUA6LL^-ln~r{$RwF2MXw`CD-v;D$MB(h6O>m3xM*0PzdA5i2H?+?dLm>7%3;kya=l zrI=!Ch>R?KWvMb!at2_-^Gdw#alqgyW$ffUpxmXT>RHD-uPdn;7P?^zMY9Zinf7Px z_x7sYl|z7KQ*J-}>49sG9~uwc&}G#kmVJ97e;)N36~`nzKF`a8_}eUs|qON)SS zbdhP-C0=t+t^nNl8a3HfhU>aw?(vu#S9!;^AbwE&KQ;d^X#fBK delta 1031 zcmXAne@v7G7{|ZQd)&S6d-vXZ+$o&Lgcq85mIZ1Yhzf|zP=4IO2At3asTJ5#90gYq z5KA+(ZL|8i`0j+5|Nb2!+{NwAvuFD40RDn&npXW`BLR@1A|1=lSeAecII8 zX?in)e(BOgdY}}>M}0sqVBF#X`S!w?c?t;s1jhW$z`5=Bl;Wn?M`P5>nh@d0c4O;j zF+epVJ+KKBGs8Zi+1`Mm>Iu-UeHa-V1*MC;ARM3sK45TD4|f_u9h+mR-SIRab<%(z zpzIzVH>7Z6&?+&h_yS-tu`j5Ma=AY!KB`^ln=b$*Jtqu*`Xr!~2oopfK;^fD>7UC% zSxeYytTC@yY49fMTX#%zvr)4z7$)DH06d=?=4OjPX*+q$m`qb_GdXE3yG?GYW1p$a z{#4MF7w!k4CTL{n1gKz~$4r$%j)l`iw|v`JD(nMgEa!k2Lv`J4qDqc+9#fUcpc9%g z)fDD}HqG*&6rhWoEIZ}vraM{#DD@B*%h7@_gb(Xxh3M5zgA(84PB~QYg!7=R$#=wh zMW3u%&-1e1H6&j8HX87ji$nYMvlo9S4z(Ny?XKZsa}3?(!{#*C1t}v@f2GJJWt5Bp zA77TT7Lq{EAK`hkQ?8f1Xa4|sGudVdxN@bA%0Zz29qGfX8v%c+bVhs~l+eh{me8<= zE=lMAejAiIA@zTyM@GFWUHqv@NBI&DS~QyFA1zu`rtBI$3Vh^{!zcAa9}CD2=6Hd! z3OTOeAJF4R*{x`Fh0~NGA<@HaN<3ZTN!@yu7nC&DU*P>N(-t0vjV|ON;Q}5=D0_&!1_JYfL&wsZqJ(CSuyTKMd zutH~Z))tk~4h-J3r40WD9Bj0ueCYtyWpS$w1)S#hSS4QO*_MAdDDQ0f_rZyQRB9M0qJNxl>h($ diff --git a/src/translation/translation_zh_CN.qm b/src/translation/translation_zh_CN.qm index 0f2aa18cd8c9cef0445bb95472f46f435477665e..d697d546a8245149b1c3f35dd4b81ffb9607b68f 100644 GIT binary patch delta 5519 zcmZu#30O_}-~XO-&vKV@?@dIEB}^nsHFhOSNa9vPh|q2%iXu#xQI^SM$zUv5Qc@%$ zMidzo{@K?d+hk3og)H@c?wr>%&%1b@e9k@RcfRZAyWIQqI(P6ox2BcR`~?wN6Q$~b zu0&=FfFp^9PLy#@wv3tiz)?hvLx7`+hV_zh(Qz5Gx&gh3npzO?zC=GLh(s5NoK4i( z5!dk$i)*v(M20m)jXL3Y2pMVK_e5j-h%6F`#>E1U%DDd{(fGqe-Ji=?=s^@ZglP9u zqD6~{4%{c^#&jYt6>+N$5T!H3CC3r9y(weI5yb8I1NSqCdjW+3sl>g#1H3`JEsSZr ziuleqjPP_Z@jY31JWZqE`7bwr9xpiZxMt z2eK` zQ_5+SQ!3HaY%(OkfzHQdEVL%WhEw1`5qbK+fT0W-y(b`-`|N1^*J^}vB~7&If)IYC z$wFJAZO3S`>3MQ1@*fdObhH)C2u>tMS4E4qCLsbBX>DOLQBVTyUOg0C$fR^T5Rsiu z8K>V9MU~M3moY?-e5mNBQewD!bn$WtQH2#~1}M~(7DdJnq3Ba6u0mL4HewD(6U z^RXeC%u-D!5UwDV;VWS=`yHc-Ndbdr%a}Hs(R75uOU)VWLqx!PGozcni^$%I>0}2_ z_Z(q5y{!PZHZiu#9Eg~yOy8M!-rS1u>e8Ob$M}GmxHFj;wvGu{8Huv+Waf`Uj>w)_ zm4JxYJ!cXJLGaxF#(UOG;z%=CUd^l(5s{_)nVos9iJl*1(#?M)5`Jd#pIQ(-G00e* z!<_Yjxav>Lty(y6(VDqiTZc@IVjg>cAurBg zTj(soAxE~|6F4?9i|uhShiJtgY+uz!L@<+ewSX0F2znwtzIEgLJ3nEhav!y#Kh*8zC&)&e(${Mz^MIWL_ z8@Afb51yB^HFH7Ym_!-(2eP%>5XnhH*t$q#U$Ax{Tem0%E%+!~cM%q@HfKNC;J~_Q z1=nL1QR}q|VNVotcS#|w;?XYx6=qlKi3Xojm{))!eXA6$KEvQaYZW~l@Z2Lq(ZdgN z?xZOU{lR*Ar5K$(4XiI#%pKPQk*QQHvd$vPaZxNWo~$8KWGQw}NCex16c2hfBdTdo zJls`^hH+j|@yd^=e6FJU0YW)HN>N=30rUS=j5YefUhZPi4x-Om?sC|AknTGfr{r;0`aw~4tc)kpl4glb zjVF3?<%iM7*nHmXI35q}%9|HruA8o%0iaziQZif?XO5;~dM<1(R#;>~cGaBzCe$7+_ zC^MGdm?EMU%K1&1IM=wZj3;jKTerdy_3tufP2#s6eh)`3^E;L3b3ZrmDPar2q-T6a zQ2~l-rNHNV{tnOg^7(P_aQimC$n6VJUOj)s9~9X3ioZDt4bV_4W7+}!^|5@kkuv^E zceIhg+hr`A$A9gHNDa6w@SX7<_eJ32fxC(YewP6o!AC*)7zsHwL$F+|C-Scsnl~~c zlo1uU0A}O~&O3FO*1p2X?x^y%A;N@FB}AHb!c@}^a&d()&Ef_6)N&yVBZ5k+g@u9w zk!dQ#P8>s2W)R{%Q40blBXT!qE~KmN#4| zFpdES8`TO0CXCD%3Vw42rP73g23YLlBb;s(j_JH#D9o5nwEVnq?jG)2dI&`k-JocK z@SkDdqeHh4?hlV4rtu5m`7%F5G(&ivV1bb`OL+ethCNy)d}xzM^lYc_=`bRBeUprp zk%F=QP8QLxOGPGOFHv-`$UcXH5J}Wmv?huz7n>#PF!gK1R>MKAsz}k+z7*}IM(kBL zA4}eJ(Rp1xG3qMO&<1iIHHf3n_93#$631G=kO9ra$+jw@dsD?In;YQ71u<%23DH3> zah@r%(lw(Pr@+A*r^I*((^~(lxT<9ZQP)awO?(taL`QL5(G{!-@nX^!yfA*Axana& zM$07eA5xuBh`SzM$1pAt_Xc8Us?EgAif%CYpm=-}R#V+M@kAoze{C(E{tNeeXvCsr zrMUl9EK0#F6^xI>$CFV;$pzx$+yTH*;*G@9hG)*Wf&1PGRAl)?M_4Cmd#2BuR|Ehla)OSy=GUDb4;40;ufp8$dt1_lCk*JMYxzzC{ z>VMl(r(U2c-uG1&*3}b*Hz?2j zmWcXaGFJH{&j5k*WPJQsS(%$pbo-sMX1hN^W>k@>+>Xyw=?W@{)}B)}?lPC?ezvN4 z$vTkMQq}4qJo?g8W$Ohw!|$njO@M-i#j1XO;Y20ns{UrqP^eK2a(sEuofZTd_@)T8abV>RfSEfM#x^O!h$Oa|5VFIV2|nlK(#Ws z9Z~N=s$cq>TClrn?WgCc@5ZXV_maW>8r8vDs1A?!szX;%o{vtc3MRwgiJ__sJ9KE( z-Bl$H6(FOh>ZNf(3CM6-_3oh!dUT1ZZg&!9lA!uLAdzU`EHyjC4ZZrf`uj1MVRJ*( zb|;{q{WNu7Q>fe4tNXw1MpWyi9)1y3ko!=^ldshy&isT9=&KG40hz~W)j@6?8qPU& zkUKtiELDek7UB7BwK4Q13>Z0I9s2PDa(GT1{x|x-bqDoAw+ierzpEFYbHO6ys$TuM z2T{B8>TSOwGQAVkX=5xwzUAtSz&pr!hI(HW*lwPyK059ghNg%5xIK?ndtH69KMX88 ztj;$BHVst&*%ULw%vD{qKOYS*(x|?<42mvYRR5K2vgoS%r9C|CQ>WoFK+0YpG)jd# zhJ}~L&awoapVagoHHYZP8yQbVYrHKnJ)dCjrw zzL9=>iqQA_RSG-dj0NqJG`kG)x;K-4>R})w!}gJ4OK{-x9Vy912R7$Q8-H>_j&Dgv z+u{C*w$kyp2>Fm;DUSj6iIg!bNy_&v#Uk}cIx}Q0c3C^=?D%^`&3a132ch`hZRwJ- zJJ{buy0kVDE!keWex(J<{j~I~>MkM|BfYTBNBzILDZPmDLug8+%7~+|I9RHij8x2V z((3LYwD+HBTkb*VBWq-QzesDf4~ACt)OH+efmR)-b@^Q4 zqpE>(u=)I;Yj(MUDD1tibtQ7WV2Q5XNmJSN*V&YBMabXj2F0zw*M_UQpXJvi1~H(PNSRdq%e8I3ZZYo#+Tj@%3b`sm_4Q_yG;wM56DW=){0^sUa?fVAfNw(jZJ?t2*ZgNolHS6lRhZkS_( zS)v~qgAQdiM?dDT0C-rYpO&H{dXu9M{?A#=2uZ(c3(CfB3pRyt{CxCApL{$FtdG(k z84dQ2x6+@S=YlWKg1*o+O*@zB3ynzWgXQ|`iBOn3QGde-c~e`;n9;4L{z=MM1 z2>5Gcm=!rMC}jGyaI3+yX3RX38kTg`vT;s@#UDJ=JtzG;*E}P0f}F^ooTDqIjBRLv zYdh1YH7fs?WJMkE%bElJw=!sbY)mH%UBg~@t@4-}9T%bncsJ^Rnwk>u>(bTMyw z%PZQ@)j$T@nS*9J``9Fu{rlGcJqry+lZqcqD*U2-Y}TkY#e|9rV-4y6(RZ^+%#v3? zH*yek{@ujp^)_|_Q`Hw1ojz)&`!X>^?7v&UFZrv@pZOg4VaSC1A( zgU%$-q`>4^gS7f?XzvDTiZ^VtrtV}F9T#Qe-`nJw>`PE>gXI0zfL~X9clq~T@OE`+ zK&o$D!UI|4=w>TI4PE8a|2sn8Oq1_N$Ndw@$t`?0hqMW<4$5wj3}y4fJs$jj0;A*n z2ZpG=SsiTWo4jGD_uD9&=s0`!Te4Y$lfUzj>5)MJb7w`y^mDTFceYAuR@GPOXl#=iZy8#f+u0CA1K-g(0nO6xpMVB8^g!?OMt(aYbVplC|s& zvJ7oRWXrz92*nU4B1<9v_s;pv^PA`Y^E`P^=X}riv%T-<^F1BBA+Nk4PiqFpg0e-4A8Q6ztT7r2o) zdj!)YfVhq~4T!{pI2YWw8%^9`KcZP`;yk+%y*o{uZzfUG55xt!6D7Wou*^u@XgE8& zhPdg-n0qO4Njf46hPbU9QT8fe1JPo439~;Dm*q%g`HHw)WNX70;ydVxR(>X-nPCPZ zi6Y^A5z)Y@q;cL&&WsGle={IY-p`5p{DvLZq@GkF{q|lE28q@DLkx@FWitUUwl+ z$HhdNV)9HzL_;&kE9@c4?Mq&3km}k%@;Z%3{2R!7<_}mOM&3oshz6yT&xQ4<{{!+( zLI4wTXh@$-qKPv}pMn578YDdRiu7wwqV_9k=twv)sDumwqfyJfA86FqTB5;2X^eFz zr0@)l=Rv?t1{!aAzUc{tct;Q&eL_kHsAOI_G4fY*@k%LCbr-s3^g4bsKV&vau8h~`~GkB}+a z?MzQc+7XRAPwzWa5*0=du$T6ES4uGM!|KOcbjM3K&k>oO~1Y~G&9J4jICDEUk zm|cyh5b<72L8Up-<46f>i<#n)*!I21-2Q-o3};U>WgqH@?k!**2Yew4`N~uTMiZS6 zWGadg!J!dM%~B;)5X{tkC?)!3EX(b+g-Y(Rf(Ifh%wko;f{479v1(mCk!u)h_I@(t z8_SxPKplHdvfpW~z$KQotw3PD@vO_m9HONQ*q+Ky(7!&G?aet5oh)YECgc+-tk`}h z5kY7P+pn@K(dhTAK6E~GyhFm$;p`Y!IOa5k9p4M#tzFpjx#2|04s7|BYGPDs z_Rqf%@mqnd`OcLn<~3XE6@(1ruckO111|P=WIt@G2HDhXU2IRVSYYesCK6@N zXX`Gy5gE(adOJK{-B%`e`H`sQC>g&q9;BNh6PI)7A01_8*BXd^SRrd%4UY6YA#3p& z4i6Y5b8*IVzZjWI5cauMCe!zY3h0Z>|3ENQa9NU2Sven_ zgxUBx(u~tvy;3@ao??B{JA@`fVjA+JI`8c2RXwjm4IulCN-c>$pR~a(X zRGyd~2QE#QFS`8+4XCYrO*Z$>+oC^AmtQQ|LiD+n{7Td>M7jzI zCoGa*?FB;z+$GGLmNr4KFywyW%ue9;pjxhR(QI(}8E5VpPE-`hS+q40^}oQiOF_Ks zTF$W*5_@?z*INVb^S8J@;}1ivGdQ<;KcbAcoW~cKm)+;|_PBp#As3hi2FtU#Xn|&vmX#F&9X(akt?Rswc zrA27Kt+~{RNX%Y$ZryeP8pz?+@5Q<%Bw^krEDx+>0Ch)BHSFtm3Vz2$}Q%uhM@AB4sy4~q5tXgCCp0T zUjANyF0haL(iLswhe;9^xp7||j70s`@?1x}CqK<|$-r%?Jhx4clR+V`c#J}v?7~|u zz~~Ao=9@J_CS#5O4Y=5|hyVK{{6?F{$k=Rta~i0&v^}4B5}oyE z1b?g)j^*n3!r`D^qkO*5V7iD+<_p)jflAZ(!f)_+WJ~^3i)c*gIKF64B+*Ys{_H*6 zx3b_%VjN(|n!h}_4I1+h{twSYVw%+R&z1xcEsNowrI=%+bm!l`g=6I#`H!uPL{Ibh z`oqZNmF^POB=HS*vx!!C3kD`-H&H@ofqe!8lWqvQ>XtW|}f9{wgHNuXsl8cP-n^Qq^Y21xay-$#YGHNBRU8+5g|sht zVU(M&{$T+|N^3zP)dgYO!y8cj8ew-BhNkk4u(#R)4$l%!tjBRuyF$n_!oXK2;naQH z?|NM*SyGPsXM~dN84&AR;qiE=D8sNsczm=UE}9Az4NrjiLS_AFqBCVeRjZa5B_D-v z{oIJrdMo7qfjCxFD;$%aVj|>8m}sGJJOx7=gB8xh4q*tlQFJRx2B&^d^v-Au_BSZp z+C3r)E>L)72NBcAT;bCf>l>OWd?q6>!%R!XkZ&-c`AMNa^d8guM+x`lNO;Fa!nfBH zBb%We#nmVx&KBb!_C~_YPl_0mVTV5zF_9O+?&XS@Ti(C`#f<)lJik_vSYt&0yQWy& z`xaE?tw`>M-(Q(4ewuCx{m$l_IqaCD680{3^>P z#>`u>FX0@xp;YWY+aK$GR2&eN6aBGKapLQ*7&SK}%yX6S$^{8)ZYTC3w#lcE4$?k-UQd?L} zv}%R2NvAlXvPxyM($zT0Jyf=Mh={&;DD8(~AJ47I?xSJg+iGR6plG5CKP&s1xe-mf zt{l)CUlbuKFisDcB&{ZtX3KBAWQRnbq-4@$47=6F@( z95Ye1;Os!0gGQ@Xes;mipZ1HJ%-F6I&xUT{J!b{D|{6stX7W=&nCL~SRIv* zPUp(0V@#hVch0G2wrU_c)lr??2m6+&)G15Asb!>IQI$kgVW?97;#7xeR;f-O{0nM- zLA|*jYTjstgnLDG*2*97S@~Fy! zjp|23v0ght!eN!_5BRj88LsNOR|Q1vSg~>KO^`Q7Y?{MD|JRp`E#|>9TX(VLN{}x< zQNoH?v1MHtB7G&cv%>Q&=fqB(;?Zb2if%{x5!1L*>~}YasL~+zzb!+@oFe);KSz(R z7bhjb&}%DkN^UchGDVzHiPZNRE=J|K5&b2K)1P9$F6H7p7d;sm)?1ukiUprvh-r3O zuz8-iZeAbMc$0X{7WciLizi+q<%2qlxeU;?r-a#K#DcNqI7sajPY;SCsu>^_kGh8% ze-Y0ggyFj?@sgq|*xy0Cv?>-S$&ccVtKUKHOT|Cml_7Ke#pi7cp#Q2j;`8_*q$X3W zi8%(3#!PmhGc)u5XIcxoWzV zMq?Q5()gqpA=^iqk$VFmy9^0;XKKQ>7vT3AO}Jkz?3DuzxEK_!iTzLwT@Ti*S^|}4 z9@DHI0ngiw)NEY)4(!)zHkRs%5$|ZWN5DWEGfn1Xu-LhmW@n|As4h~oYalkZv)Al9 zjOX`GXnqSG0di$&jvhjW4%cW(LrRJIywH@MZ@`CKiKgr*RJ3om=7nJ*9(b?O)b!G0 z!`GVH!@z5swL(K{lMLlr zyI1M>bHXw0fTX4Pj99OA-{=5`?`nO2EhYMHrgqq$Fsyi?jo#IO{!yu$w&1#v==bmln$9;79m~3xZutFBM7U2Eyj=?x7waZnE=Hrd zpu;GMC33q?dRoI*-#=K7V@}r(;dV;RnG@Oog(N#aFLQO^82Q#d{ekPI_ zi(@%rlOi@pusF^!U2;x+?~$A1d|xf5Excl#cB$Mfr_Zx9GQ;Yzb$Vl}GNfv47+F($ z{6)cJjAe8lmr; zs%#lj6_j9F;P3R05hqq*nr1wH4yWBL8^Ux+v%NQIovVy#dg$dk&JY-4v4Asq{BM7Q z5=Ppk6d0mYmFp7&g7uwE*Crnqz8Jef?`86Iq|?a$lf(b({ePY${T)T;e;J+T7i&Eu zJSsdi&bobD=l0gY(P7pzriX_{PD->6wjP)^ugvdnXL8oP5#{|{{=X-a!&42zhK%F= zCjJxae{KGct)6KWcYFT5TiW(oy@Rc3Gn3oX2269)Kb2k_TNm_8!vDJ2Ga#*XnXB~f zPpih~=-=n5MtDov#d1{1R6D=#hDS_pHL-m{l7Elz1ExyNiuQZ(?~3?a4y*si)6}oC ZqQ_