From 4dca6df296a3e3882f5cbd7a1e04a867377dc900 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Mon, 9 Jan 2023 11:50:34 +0800 Subject: [PATCH 01/67] enh: optimize the error message of the situation that percentile function does not support --- source/libs/parser/src/parTranslater.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 05d49bb027..69a39b956f 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -1550,11 +1550,14 @@ static int32_t translateRepeatScanFunc(STranslateContext* pCxt, SFunctionNode* p // select percentile() without from clause is also valid if ((NULL != pTable && (QUERY_NODE_REAL_TABLE != nodeType(pTable) || (TSDB_CHILD_TABLE != ((SRealTableNode*)pTable)->pMeta->tableType && - TSDB_NORMAL_TABLE != ((SRealTableNode*)pTable)->pMeta->tableType))) || - NULL != pSelect->pPartitionByList) { + TSDB_NORMAL_TABLE != ((SRealTableNode*)pTable)->pMeta->tableType)))) { return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_ONLY_SUPPORT_SINGLE_TABLE, "%s is only supported in single table query", pFunc->functionName); } + if (NULL != pSelect->pPartitionByList) { + return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_NOT_ALLOWED_FUNC, + "%s function is not supported in fill query", pFunc->functionName); + } return TSDB_CODE_SUCCESS; } From 7466b5042d2249f70d4429605e4c068e81c5fac5 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 12 Jan 2023 13:50:31 +0800 Subject: [PATCH 02/67] fix: stmt memory leak --- source/libs/parser/src/parInsertStmt.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 4ed72e6c14..f5c362edf9 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -47,7 +47,7 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const ch TAOS_MULTI_BIND* bind, char* msgBuf, int32_t msgBufLen) { STableDataBlocks* pDataBlock = (STableDataBlocks*)pBlock; SMsgBuf pBuf = {.buf = msgBuf, .len = msgBufLen}; - int32_t code = TSDB_CODE_SUCCESS; + int32_t code = TSDB_CODE_SUCCESS; SParsedDataColInfo* tags = (SParsedDataColInfo*)boundTags; if (NULL == tags) { return TSDB_CODE_APP_ERROR; @@ -137,7 +137,8 @@ int32_t qBindStmtTagsValue(void* pBlock, void* boundTags, int64_t suid, const ch } SVCreateTbReq tbReq = {0}; - insBuildCreateTbReq(&tbReq, tName, pTag, suid, sTableName, tagName, pDataBlock->pTableMeta->tableInfo.numOfTags, TSDB_DEFAULT_TABLE_TTL); + insBuildCreateTbReq(&tbReq, tName, pTag, suid, sTableName, tagName, pDataBlock->pTableMeta->tableInfo.numOfTags, + TSDB_DEFAULT_TABLE_TTL); code = insBuildCreateTbMsg(pDataBlock, &tbReq); tdDestroySVCreateTbReq(&tbReq); @@ -460,9 +461,7 @@ void qFreeStmtDataBlock(void* pDataBlock) { return; } - taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pTableMeta); - taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pData); - taosMemoryFreeClear(pDataBlock); + insDestroyDataBlock((STableDataBlocks*)pDataBlock); } void qDestroyStmtDataBlock(void* pBlock) { From 0e061fb53cb44117f5dcb5342b45f540625c7b58 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 12 Jan 2023 13:57:47 +0800 Subject: [PATCH 03/67] fix: stmt memory leak --- source/libs/parser/src/parTranslater.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 69a39b956f..9991c2c6ae 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -1556,7 +1556,7 @@ static int32_t translateRepeatScanFunc(STranslateContext* pCxt, SFunctionNode* p } if (NULL != pSelect->pPartitionByList) { return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_NOT_ALLOWED_FUNC, - "%s function is not supported in fill query", pFunc->functionName); + "%s function is not supported in partition query", pFunc->functionName); } return TSDB_CODE_SUCCESS; } From 4359562e9cde38df77ce722abc8c16794ea29913 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 12 Jan 2023 15:01:19 +0800 Subject: [PATCH 04/67] fix: stmt memory leak --- source/client/src/clientStmt.c | 15 ++++++++------- source/libs/parser/src/parInsertStmt.c | 4 +++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 82ea9e0d8f..c040d389cd 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -152,9 +152,10 @@ int32_t stmtRestoreQueryFields(STscStmt* pStmt) { return TSDB_CODE_SUCCESS; } -int32_t stmtUpdateBindInfo(TAOS_STMT* stmt, STableMeta* pTableMeta, void* tags, SName* tbName, const char* sTableName, bool autoCreateTbl) { +int32_t stmtUpdateBindInfo(TAOS_STMT* stmt, STableMeta* pTableMeta, void* tags, SName* tbName, const char* sTableName, + bool autoCreateTbl) { STscStmt* pStmt = (STscStmt*)stmt; - char tbFName[TSDB_TABLE_FNAME_LEN]; + char tbFName[TSDB_TABLE_FNAME_LEN]; tNameExtractFullName(tbName, tbFName); memcpy(&pStmt->bInfo.sname, tbName, sizeof(*tbName)); @@ -300,7 +301,7 @@ int32_t stmtCleanExecInfo(STscStmt* pStmt, bool keepTable, bool deepClean) { continue; } - if (STMT_TYPE_MULTI_INSERT == pStmt->sql.type) { + if (pBlocks->cloned) { qFreeStmtDataBlock(pBlocks); } else { qDestroyStmtDataBlock(pBlocks); @@ -776,9 +777,9 @@ int stmtAddBatch(TAOS_STMT* stmt) { int stmtUpdateTableUid(STscStmt* pStmt, SSubmitRsp* pRsp) { tscDebug("stmt start to update tbUid, blockNum: %d", pRsp->nBlocks); - int32_t code = 0; - int32_t finalCode = 0; - size_t keyLen = 0; + int32_t code = 0; + int32_t finalCode = 0; + size_t keyLen = 0; STableDataBlocks** pIter = taosHashIterate(pStmt->exec.pBlockHash, NULL); while (pIter) { STableDataBlocks* pBlock = *pIter; @@ -848,7 +849,7 @@ int stmtUpdateTableUid(STscStmt* pStmt, SSubmitRsp* pRsp) { pMeta->uid = pTableMeta->uid; pStmt->bInfo.tbUid = pTableMeta->uid; - taosMemoryFree(pTableMeta); + taosMemoryFree(pTableMeta); } pIter = taosHashIterate(pStmt->exec.pBlockHash, pIter); diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index f5c362edf9..2466e784c1 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -461,7 +461,9 @@ void qFreeStmtDataBlock(void* pDataBlock) { return; } - insDestroyDataBlock((STableDataBlocks*)pDataBlock); + taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pTableMeta); + taosMemoryFreeClear(((STableDataBlocks*)pDataBlock)->pData); + taosMemoryFreeClear(pDataBlock); } void qDestroyStmtDataBlock(void* pBlock) { From 4c8a2caa1238afeb57e49806efac6d82c6bf56e8 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 12 Jan 2023 17:24:04 +0800 Subject: [PATCH 05/67] fix: stmt memory leak --- include/libs/parser/parser.h | 4 +++- source/client/src/clientStmt.c | 6 +----- source/libs/parser/src/parInsertStmt.c | 13 +++++++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/include/libs/parser/parser.h b/include/libs/parser/parser.h index 9be79a539f..e6240f64b5 100644 --- a/include/libs/parser/parser.h +++ b/include/libs/parser/parser.h @@ -90,6 +90,7 @@ int32_t qCloneStmtDataBlock(void** pDst, void* pSrc); void qFreeStmtDataBlock(void* pDataBlock); int32_t qRebuildStmtDataBlock(void** pDst, void* pSrc, uint64_t uid, int32_t vgId); void qDestroyStmtDataBlock(void* pBlock); +void qDestroyStmtDataBlockExt(void* pBlock); STableMeta* qGetTableMetaInDataBlock(void* pDataBlock); int32_t qStmtBindParams(SQuery* pQuery, TAOS_MULTI_BIND* pParams, int32_t colIdx); @@ -108,7 +109,8 @@ int32_t qCreateSName(SName* pName, const char* pTableName, int32_t acctId, char* void* smlInitHandle(SQuery* pQuery); void smlDestroyHandle(void* pHandle); int32_t smlBindData(void* handle, SArray* tags, SArray* colsSchema, SArray* cols, bool format, STableMeta* pTableMeta, - char* tableName, const char* sTableName, int32_t sTableNameLen, int32_t ttl, char* msgBuf, int16_t msgBufLen); + char* tableName, const char* sTableName, int32_t sTableNameLen, int32_t ttl, char* msgBuf, + int16_t msgBufLen); int32_t smlBuildOutput(void* handle, SHashObj* pVgHash); int32_t rewriteToVnodeModifyOpStmt(SQuery* pQuery, SArray* pBufArray); diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index c040d389cd..8a677d7a5e 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -301,11 +301,7 @@ int32_t stmtCleanExecInfo(STscStmt* pStmt, bool keepTable, bool deepClean) { continue; } - if (pBlocks->cloned) { - qFreeStmtDataBlock(pBlocks); - } else { - qDestroyStmtDataBlock(pBlocks); - } + qDestroyStmtDataBlockExt(pBlocks); taosHashRemove(pStmt->exec.pBlockHash, key, keyLen); pIter = taosHashIterate(pStmt->exec.pBlockHash, pIter); diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 2466e784c1..8a23cd32b4 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -476,3 +476,16 @@ void qDestroyStmtDataBlock(void* pBlock) { pDataBlock->cloned = false; insDestroyDataBlock(pDataBlock); } + +void qDestroyStmtDataBlockExt(void* pBlock) { + if (pBlock == NULL) { + return; + } + + STableDataBlocks* pDataBlock = (STableDataBlocks*)pBlock; + if (pDataBlock->cloned) { + qFreeStmtDataBlock(pBlock); + } else { + qDestroyStmtDataBlock(pBlock); + } +} From 9ba8d4f935204480a562cd736649089d20f48e05 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Mon, 16 Jan 2023 09:53:43 +0800 Subject: [PATCH 06/67] fix: rollback --- include/libs/parser/parser.h | 1 - source/client/src/clientStmt.c | 7 ++++++- source/libs/parser/src/parInsertStmt.c | 13 ------------- 3 files changed, 6 insertions(+), 15 deletions(-) diff --git a/include/libs/parser/parser.h b/include/libs/parser/parser.h index e6240f64b5..52edd9708c 100644 --- a/include/libs/parser/parser.h +++ b/include/libs/parser/parser.h @@ -90,7 +90,6 @@ int32_t qCloneStmtDataBlock(void** pDst, void* pSrc); void qFreeStmtDataBlock(void* pDataBlock); int32_t qRebuildStmtDataBlock(void** pDst, void* pSrc, uint64_t uid, int32_t vgId); void qDestroyStmtDataBlock(void* pBlock); -void qDestroyStmtDataBlockExt(void* pBlock); STableMeta* qGetTableMetaInDataBlock(void* pDataBlock); int32_t qStmtBindParams(SQuery* pQuery, TAOS_MULTI_BIND* pParams, int32_t colIdx); diff --git a/source/client/src/clientStmt.c b/source/client/src/clientStmt.c index 8a677d7a5e..3be1b58bad 100644 --- a/source/client/src/clientStmt.c +++ b/source/client/src/clientStmt.c @@ -301,7 +301,12 @@ int32_t stmtCleanExecInfo(STscStmt* pStmt, bool keepTable, bool deepClean) { continue; } - qDestroyStmtDataBlockExt(pBlocks); + if (STMT_TYPE_MULTI_INSERT == pStmt->sql.type) { + qFreeStmtDataBlock(pBlocks); + } else { + qDestroyStmtDataBlock(pBlocks); + } + taosHashRemove(pStmt->exec.pBlockHash, key, keyLen); pIter = taosHashIterate(pStmt->exec.pBlockHash, pIter); diff --git a/source/libs/parser/src/parInsertStmt.c b/source/libs/parser/src/parInsertStmt.c index 8a23cd32b4..2466e784c1 100644 --- a/source/libs/parser/src/parInsertStmt.c +++ b/source/libs/parser/src/parInsertStmt.c @@ -476,16 +476,3 @@ void qDestroyStmtDataBlock(void* pBlock) { pDataBlock->cloned = false; insDestroyDataBlock(pDataBlock); } - -void qDestroyStmtDataBlockExt(void* pBlock) { - if (pBlock == NULL) { - return; - } - - STableDataBlocks* pDataBlock = (STableDataBlocks*)pBlock; - if (pDataBlock->cloned) { - qFreeStmtDataBlock(pBlock); - } else { - qDestroyStmtDataBlock(pBlock); - } -} From d9b22b32991c072fe81e5ffd2ea4e3e8f5c3a087 Mon Sep 17 00:00:00 2001 From: slzhou Date: Wed, 18 Jan 2023 15:13:16 +0800 Subject: [PATCH 07/67] fix: add node stopped and get/accquire ctx return node stopped --- source/libs/qworker/inc/qwInt.h | 2 ++ source/libs/qworker/src/qwUtil.c | 21 +++++++++++++++++---- source/libs/qworker/src/qworker.c | 3 +++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/source/libs/qworker/inc/qwInt.h b/source/libs/qworker/inc/qwInt.h index aa1ce80903..bde05d4116 100644 --- a/source/libs/qworker/inc/qwInt.h +++ b/source/libs/qworker/inc/qwInt.h @@ -194,6 +194,8 @@ typedef struct SQWorker { SMsgCb msgCb; SQWStat stat; int32_t *destroyed; + + int8_t nodeStopped; } SQWorker; typedef struct SQWorkerMgmt { diff --git a/source/libs/qworker/src/qwUtil.c b/source/libs/qworker/src/qwUtil.c index fdd2775daa..7ee7c50c96 100644 --- a/source/libs/qworker/src/qwUtil.c +++ b/source/libs/qworker/src/qwUtil.c @@ -213,9 +213,15 @@ int32_t qwAcquireTaskCtx(QW_FPARAMS_DEF, SQWTaskCtx **ctx) { QW_SET_QTID(id, qId, tId, eId); *ctx = taosHashAcquire(mgmt->ctxHash, id, sizeof(id)); + int8_t nodeStopped = atomic_load_8(&mgmt->nodeStopped); if (NULL == (*ctx)) { - QW_TASK_DLOG_E("task ctx not exist, may be dropped"); - QW_ERR_RET(TSDB_CODE_QRY_TASK_CTX_NOT_EXIST); + if (!nodeStopped) { + QW_TASK_DLOG_E("task ctx not exist, may be dropped"); + QW_ERR_RET(TSDB_CODE_QRY_TASK_CTX_NOT_EXIST); + } else { + QW_TASK_DLOG_E("node stopped"); + QW_ERR_RET(TSDB_CODE_VND_STOPPED); + } } return TSDB_CODE_SUCCESS; @@ -226,9 +232,16 @@ int32_t qwGetTaskCtx(QW_FPARAMS_DEF, SQWTaskCtx **ctx) { QW_SET_QTID(id, qId, tId, eId); *ctx = taosHashGet(mgmt->ctxHash, id, sizeof(id)); + int8_t nodeStopped = atomic_load_8(&mgmt->nodeStopped); + if (NULL == (*ctx)) { - QW_TASK_DLOG_E("task ctx not exist, may be dropped"); - QW_ERR_RET(TSDB_CODE_QRY_TASK_CTX_NOT_EXIST); + if (!nodeStopped) { + QW_TASK_DLOG_E("task ctx not exist, may be dropped"); + QW_ERR_RET(TSDB_CODE_QRY_TASK_CTX_NOT_EXIST); + } else { + QW_TASK_DLOG_E("node stopped"); + QW_ERR_RET(TSDB_CODE_VND_STOPPED); + } } return TSDB_CODE_SUCCESS; diff --git a/source/libs/qworker/src/qworker.c b/source/libs/qworker/src/qworker.c index e38361d87f..fedaa96ed9 100644 --- a/source/libs/qworker/src/qworker.c +++ b/source/libs/qworker/src/qworker.c @@ -1188,6 +1188,9 @@ void qWorkerStopAllTasks(void *qWorkerMgmt) { uint64_t qId, tId, sId; int32_t eId; int64_t rId = 0; + + atomic_store_8(&mgmt->nodeStopped, 1); + void *pIter = taosHashIterate(mgmt->ctxHash, NULL); while (pIter) { SQWTaskCtx *ctx = (SQWTaskCtx *)pIter; From fae4f2c4ed96427cfefa25c6609455ed804d1e46 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 20 Jan 2023 18:08:34 +0800 Subject: [PATCH 08/67] refactor: do some internal refactor. --- source/libs/executor/inc/executorimpl.h | 3 ++- source/libs/executor/src/exchangeoperator.c | 30 ++++++--------------- source/libs/executor/src/executil.c | 4 +++ source/libs/executor/src/projectoperator.c | 29 +++----------------- source/libs/executor/src/scanoperator.c | 16 +++++------ source/libs/executor/src/sortoperator.c | 28 +++++-------------- 6 files changed, 32 insertions(+), 78 deletions(-) diff --git a/source/libs/executor/inc/executorimpl.h b/source/libs/executor/inc/executorimpl.h index c68f7c4697..4ae178d508 100644 --- a/source/libs/executor/inc/executorimpl.h +++ b/source/libs/executor/inc/executorimpl.h @@ -704,9 +704,10 @@ void doBuildResultDatablock(SOperatorInfo* pOperator, SOptrBasicInfo* pbInfo, SG SDiskbasedBuf* pBuf); bool hasLimitOffsetInfo(SLimitInfo* pLimitInfo); +bool hasSlimitOffsetInfo(SLimitInfo* pLimitInfo); void initLimitInfo(const SNode* pLimit, const SNode* pSLimit, SLimitInfo* pLimitInfo); void resetLimitInfoForNextGroup(SLimitInfo* pLimitInfo); -bool applyLimitOffset(SLimitInfo* pLimitInfo, SSDataBlock* pBlock, SExecTaskInfo* pTaskInfo, SOperatorInfo* pOperator); +bool applyLimitOffset(SLimitInfo* pLimitInfo, SSDataBlock* pBlock, SExecTaskInfo* pTaskInfo); void applyAggFunctionOnPartialTuples(SExecTaskInfo* taskInfo, SqlFunctionCtx* pCtx, SColumnInfoData* pTimeWindowData, int32_t offset, int32_t forwardStep, int32_t numOfTotal, int32_t numOfOutput); diff --git a/source/libs/executor/src/exchangeoperator.c b/source/libs/executor/src/exchangeoperator.c index 037b33dc9f..08b7d371e2 100644 --- a/source/libs/executor/src/exchangeoperator.c +++ b/source/libs/executor/src/exchangeoperator.c @@ -707,6 +707,8 @@ int32_t prepareLoadRemoteData(SOperatorInfo* pOperator) { } int32_t handleLimitOffset(SOperatorInfo* pOperator, SLimitInfo* pLimitInfo, SSDataBlock* pBlock, bool holdDataInBuf) { + SExecTaskInfo* pTaskInfo = pOperator->pTaskInfo; + if (pLimitInfo->remainGroupOffset > 0) { if (pLimitInfo->currentGroupId == 0) { // it is the first group pLimitInfo->currentGroupId = pBlock->info.id.groupId; @@ -750,36 +752,20 @@ int32_t handleLimitOffset(SOperatorInfo* pOperator, SLimitInfo* pLimitInfo, SSDa // set current group id pLimitInfo->currentGroupId = pBlock->info.id.groupId; - if (pLimitInfo->remainOffset >= pBlock->info.rows) { - pLimitInfo->remainOffset -= pBlock->info.rows; - blockDataCleanup(pBlock); + bool limitReached = applyLimitOffset(pLimitInfo, pBlock, pTaskInfo); + if (pBlock->info.rows == 0) { return PROJECT_RETRIEVE_CONTINUE; - } else if (pLimitInfo->remainOffset < pBlock->info.rows && pLimitInfo->remainOffset > 0) { - blockDataTrimFirstNRows(pBlock, pLimitInfo->remainOffset); - pLimitInfo->remainOffset = 0; - } - - // check for the limitation in each group - if (pLimitInfo->limit.limit >= 0 && pLimitInfo->numOfOutputRows + pBlock->info.rows >= pLimitInfo->limit.limit) { - int32_t keepRows = (int32_t)(pLimitInfo->limit.limit - pLimitInfo->numOfOutputRows); - blockDataKeepFirstNRows(pBlock, keepRows); - if (pLimitInfo->slimit.limit > 0 && pLimitInfo->slimit.limit <= pLimitInfo->numOfOutputGroups) { + } else { + if (limitReached && (pLimitInfo->slimit.limit > 0 && pLimitInfo->slimit.limit <= pLimitInfo->numOfOutputGroups)) { setOperatorCompleted(pOperator); - } else { - // current group limitation is reached, and future blocks of this group need to be discarded. - if (pBlock->info.rows == 0) { - return PROJECT_RETRIEVE_CONTINUE; - } + return PROJECT_RETRIEVE_DONE; } - - return PROJECT_RETRIEVE_DONE; } // todo optimize performance // If there are slimit/soffset value exists, multi-round result can not be packed into one group, since the // they may not belong to the same group the limit/offset value is not valid in this case. - if ((!holdDataInBuf) || (pBlock->info.rows >= pOperator->resultInfo.threshold) || pLimitInfo->slimit.offset != -1 || - pLimitInfo->slimit.limit != -1) { + if ((!holdDataInBuf) || (pBlock->info.rows >= pOperator->resultInfo.threshold) || hasSlimitOffsetInfo(pLimitInfo)) { return PROJECT_RETRIEVE_DONE; } else { // not full enough, continue to accumulate the output data in the buffer. return PROJECT_RETRIEVE_CONTINUE; diff --git a/source/libs/executor/src/executil.c b/source/libs/executor/src/executil.c index 757324a773..92d52fbb0a 100644 --- a/source/libs/executor/src/executil.c +++ b/source/libs/executor/src/executil.c @@ -1749,6 +1749,10 @@ bool hasLimitOffsetInfo(SLimitInfo* pLimitInfo) { pLimitInfo->slimit.offset != -1); } +bool hasSlimitOffsetInfo(SLimitInfo* pLimitInfo) { + return (pLimitInfo->slimit.limit != -1 || pLimitInfo->slimit.offset != -1); +} + void initLimitInfo(const SNode* pLimit, const SNode* pSLimit, SLimitInfo* pLimitInfo) { SLimit limit = {.limit = getLimit(pLimit), .offset = getOffset(pLimit)}; SLimit slimit = {.limit = getLimit(pSLimit), .offset = getOffset(pSLimit)}; diff --git a/source/libs/executor/src/projectoperator.c b/source/libs/executor/src/projectoperator.c index 3e3610827b..b1dc217bf5 100644 --- a/source/libs/executor/src/projectoperator.c +++ b/source/libs/executor/src/projectoperator.c @@ -185,36 +185,15 @@ static int32_t doIngroupLimitOffset(SLimitInfo* pLimitInfo, uint64_t groupId, SS SOperatorInfo* pOperator) { // set current group id pLimitInfo->currentGroupId = groupId; - - if (pLimitInfo->remainOffset >= pBlock->info.rows) { - pLimitInfo->remainOffset -= pBlock->info.rows; - blockDataCleanup(pBlock); + bool limitReached = applyLimitOffset(pLimitInfo, pBlock, pOperator->pTaskInfo); + if (pBlock->info.rows == 0) { return PROJECT_RETRIEVE_CONTINUE; - } else if (pLimitInfo->remainOffset < pBlock->info.rows && pLimitInfo->remainOffset > 0) { - blockDataTrimFirstNRows(pBlock, pLimitInfo->remainOffset); - pLimitInfo->remainOffset = 0; - } - - // check for the limitation in each group - if (pLimitInfo->limit.limit >= 0 && pLimitInfo->numOfOutputRows + pBlock->info.rows >= pLimitInfo->limit.limit) { - int32_t keepRows = (int32_t)(pLimitInfo->limit.limit - pLimitInfo->numOfOutputRows); - blockDataKeepFirstNRows(pBlock, keepRows); - - // TODO: optimize it later when partition by + limit - // all retrieved requirement has been fulfilled, let's finish this - if ((pLimitInfo->slimit.limit == -1 && pLimitInfo->currentGroupId == 0) || - (pLimitInfo->slimit.limit > 0 && pLimitInfo->slimit.limit <= pLimitInfo->numOfOutputGroups)) { + } else { + if (limitReached && (pLimitInfo->slimit.limit > 0 && pLimitInfo->slimit.limit <= pLimitInfo->numOfOutputGroups)) { setOperatorCompleted(pOperator); - } else { - // Even current group is done, there may be many vgroups remain existed, and we need to continue to retrieve data - // from next group. So let's continue this retrieve process - if (keepRows == 0) { - return PROJECT_RETRIEVE_CONTINUE; - } } } - pLimitInfo->numOfOutputRows += pBlock->info.rows; return PROJECT_RETRIEVE_DONE; } diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index 813763fffa..2813ef3505 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -256,12 +256,11 @@ static void doSetTagColumnData(STableScanBase* pTableScanInfo, SSDataBlock* pBlo } } -// todo handle the slimit info -bool applyLimitOffset(SLimitInfo* pLimitInfo, SSDataBlock* pBlock, SExecTaskInfo* pTaskInfo, SOperatorInfo* pOperator) { +bool applyLimitOffset(SLimitInfo* pLimitInfo, SSDataBlock* pBlock, SExecTaskInfo* pTaskInfo) { SLimit* pLimit = &pLimitInfo->limit; const char* id = GET_TASKID(pTaskInfo); - if (pLimit->offset > 0 && pLimitInfo->remainOffset > 0) { + if (pLimitInfo->remainOffset > 0) { if (pLimitInfo->remainOffset >= pBlock->info.rows) { pLimitInfo->remainOffset -= pBlock->info.rows; blockDataEmpty(pBlock); @@ -276,12 +275,14 @@ bool applyLimitOffset(SLimitInfo* pLimitInfo, SSDataBlock* pBlock, SExecTaskInfo if (pLimit->limit != -1 && pLimit->limit <= (pLimitInfo->numOfOutputRows + pBlock->info.rows)) { // limit the output rows int32_t keep = (int32_t)(pLimit->limit - pLimitInfo->numOfOutputRows); - blockDataKeepFirstNRows(pBlock, keep); + + pLimitInfo->numOfOutputRows += pBlock->info.rows; qDebug("output limit %" PRId64 " has reached, %s", pLimit->limit, id); return true; } + pLimitInfo->numOfOutputRows += pBlock->info.rows; return false; } @@ -393,13 +394,12 @@ static int32_t loadDataBlock(SOperatorInfo* pOperator, STableScanBase* pTableSca } } - bool limitReached = applyLimitOffset(&pTableScanInfo->limitInfo, pBlock, pTaskInfo, pOperator); + bool limitReached = applyLimitOffset(&pTableScanInfo->limitInfo, pBlock, pTaskInfo); if (limitReached) { // set operator flag is done setOperatorCompleted(pOperator); } pCost->totalRows += pBlock->info.rows; - pTableScanInfo->limitInfo.numOfOutputRows = pCost->totalRows; return TSDB_CODE_SUCCESS; } @@ -2714,9 +2714,7 @@ SSDataBlock* getSortedTableMergeScanBlockData(SSortHandle* pHandle, SSDataBlock* } } - applyLimitOffset(&pInfo->limitInfo, pResBlock, pTaskInfo, pOperator); - pInfo->limitInfo.numOfOutputRows += pResBlock->info.rows; - + applyLimitOffset(&pInfo->limitInfo, pResBlock, pTaskInfo); qDebug("%s get sorted row block, rows:%d, limit:%"PRId64, GET_TASKID(pTaskInfo), pResBlock->info.rows, pInfo->limitInfo.numOfOutputRows); diff --git a/source/libs/executor/src/sortoperator.c b/source/libs/executor/src/sortoperator.c index 97b4fd9dc4..e91d41897d 100644 --- a/source/libs/executor/src/sortoperator.c +++ b/source/libs/executor/src/sortoperator.c @@ -222,6 +222,7 @@ SSDataBlock* doSort(SOperatorInfo* pOperator) { T_LONG_JMP(pTaskInfo->env, code); } + // multi-group case not handle here SSDataBlock* pBlock = NULL; while (1) { pBlock = getSortedBlockData(pInfo->pSortHandle, pInfo->binfo.pRes, pOperator->resultInfo.capacity, @@ -236,28 +237,13 @@ SSDataBlock* doSort(SOperatorInfo* pOperator) { continue; } - // todo add the limit/offset info - if (pInfo->limitInfo.remainOffset > 0) { - if (pInfo->limitInfo.remainOffset >= blockDataGetNumOfRows(pBlock)) { - pInfo->limitInfo.remainOffset -= pBlock->info.rows; - continue; - } - - blockDataTrimFirstNRows(pBlock, pInfo->limitInfo.remainOffset); - pInfo->limitInfo.remainOffset = 0; + bool limitReached = applyLimitOffset(&pInfo->limitInfo, pBlock, pTaskInfo); + if (limitReached) { + resetLimitInfoForNextGroup(&pInfo->limitInfo); } - if (pInfo->limitInfo.limit.limit > 0 && - pInfo->limitInfo.limit.limit <= pInfo->limitInfo.numOfOutputRows + blockDataGetNumOfRows(pBlock)) { - int32_t remain = pInfo->limitInfo.limit.limit - pInfo->limitInfo.numOfOutputRows; - blockDataKeepFirstNRows(pBlock, remain); - } - - size_t numOfRows = blockDataGetNumOfRows(pBlock); - pInfo->limitInfo.numOfOutputRows += numOfRows; - pOperator->resultInfo.totalRows += numOfRows; - - if (numOfRows > 0) { + pOperator->resultInfo.totalRows += pBlock->info.rows; + if (pBlock->info.rows > 0) { break; } } @@ -680,7 +666,7 @@ SSDataBlock* getMultiwaySortedBlockData(SSortHandle* pHandle, SSDataBlock* pData break; } - bool limitReached = applyLimitOffset(&pInfo->limitInfo, p, pTaskInfo, pOperator); + bool limitReached = applyLimitOffset(&pInfo->limitInfo, p, pTaskInfo); if (limitReached) { resetLimitInfoForNextGroup(&pInfo->limitInfo); } From 7803104b7e31ab9283b29aa33ec391804b721123 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 20 Jan 2023 22:50:35 +0800 Subject: [PATCH 09/67] fix(query): do some internal refactor, and identify a bug. --- source/common/src/tdatablock.c | 1 + source/libs/executor/src/projectoperator.c | 11 ++++++++++- source/libs/executor/src/sortoperator.c | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/source/common/src/tdatablock.c b/source/common/src/tdatablock.c index 43f272d599..f41eb1adaf 100644 --- a/source/common/src/tdatablock.c +++ b/source/common/src/tdatablock.c @@ -1431,6 +1431,7 @@ SSDataBlock* createOneDataBlock(const SSDataBlock* pDataBlock, bool copyData) { pBlock->info.rows = 0; pBlock->info.capacity = 0; pBlock->info.rowSize = 0; + pBlock->info.id = pDataBlock->info.id; size_t numOfCols = taosArrayGetSize(pDataBlock->pDataBlock); for (int32_t i = 0; i < numOfCols; ++i) { diff --git a/source/libs/executor/src/projectoperator.c b/source/libs/executor/src/projectoperator.c index b1dc217bf5..d641810cee 100644 --- a/source/libs/executor/src/projectoperator.c +++ b/source/libs/executor/src/projectoperator.c @@ -90,7 +90,16 @@ SOperatorInfo* createProjectOperatorInfo(SOperatorInfo* downstream, SProjectPhys pInfo->binfo.pRes = pResBlock; pInfo->pFinalRes = createOneDataBlock(pResBlock, false); - pInfo->mergeDataBlocks = (pTaskInfo->execModel == OPTR_EXEC_MODEL_STREAM) ? false : pProjPhyNode->mergeDataBlock; + + if (pTaskInfo->execModel == OPTR_EXEC_MODEL_STREAM) { + pInfo->mergeDataBlocks = false; + } else { + if (!pProjPhyNode->ignoreGroupId) { + pInfo->mergeDataBlocks = false; + } else { + pInfo->mergeDataBlocks = pProjPhyNode->mergeDataBlock; + } + } int32_t numOfRows = 4096; size_t keyBufSize = sizeof(int64_t) + sizeof(int64_t) + POINTER_BYTES; diff --git a/source/libs/executor/src/sortoperator.c b/source/libs/executor/src/sortoperator.c index e91d41897d..6d3da3e111 100644 --- a/source/libs/executor/src/sortoperator.c +++ b/source/libs/executor/src/sortoperator.c @@ -237,6 +237,7 @@ SSDataBlock* doSort(SOperatorInfo* pOperator) { continue; } + // there are bugs? bool limitReached = applyLimitOffset(&pInfo->limitInfo, pBlock, pTaskInfo); if (limitReached) { resetLimitInfoForNextGroup(&pInfo->limitInfo); @@ -666,6 +667,7 @@ SSDataBlock* getMultiwaySortedBlockData(SSortHandle* pHandle, SSDataBlock* pData break; } + // todo fix it: we need to decide whether this block is belonged to previous group or not . bool limitReached = applyLimitOffset(&pInfo->limitInfo, p, pTaskInfo); if (limitReached) { resetLimitInfoForNextGroup(&pInfo->limitInfo); From a898be4f7d1bc5fb9c528353d4c2ddf039c86b1e Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Fri, 20 Jan 2023 23:38:31 +0800 Subject: [PATCH 10/67] fix(query): set correct total rsp rows. --- source/libs/executor/src/exchangeoperator.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source/libs/executor/src/exchangeoperator.c b/source/libs/executor/src/exchangeoperator.c index 08b7d371e2..e5089ab4a9 100644 --- a/source/libs/executor/src/exchangeoperator.c +++ b/source/libs/executor/src/exchangeoperator.c @@ -218,10 +218,7 @@ static SSDataBlock* loadRemoteData(SOperatorInfo* pOperator) { if (status == PROJECT_RETRIEVE_CONTINUE) { continue; } else if (status == PROJECT_RETRIEVE_DONE) { - size_t rows = pBlock->info.rows; - pExchangeInfo->limitInfo.numOfOutputRows += rows; - - if (rows == 0) { + if (pBlock->info.rows == 0) { setOperatorCompleted(pOperator); return NULL; } else { From ec1592390af6c346c0d56e750f12fcdc5cd6f247 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Sat, 28 Jan 2023 10:35:21 +0800 Subject: [PATCH 11/67] fix: limit push down error --- source/libs/planner/src/planSpliter.c | 32 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/source/libs/planner/src/planSpliter.c b/source/libs/planner/src/planSpliter.c index a7eac2c853..d85e4ca10d 100644 --- a/source/libs/planner/src/planSpliter.c +++ b/source/libs/planner/src/planSpliter.c @@ -348,7 +348,8 @@ static bool stbSplIsPartTableAgg(SAggLogicNode* pAgg) { return false; } if (NULL != pAgg->pGroupKeys) { - return stbSplHasPartTbname(pAgg->pGroupKeys) && stbSplNotSystemScan((SLogicNode*)nodesListGetNode(pAgg->node.pChildren, 0)); + return stbSplHasPartTbname(pAgg->pGroupKeys) && + stbSplNotSystemScan((SLogicNode*)nodesListGetNode(pAgg->node.pChildren, 0)); } return stbSplHasPartTbname(stbSplGetPartKeys((SLogicNode*)nodesListGetNode(pAgg->node.pChildren, 0))); } @@ -1025,21 +1026,29 @@ static int32_t stbSplSplitSortNode(SSplitContext* pCxt, SStableSplitInfo* pInfo) return code; } -static int32_t stbSplSplitScanNodeWithoutPartTags(SSplitContext* pCxt, SStableSplitInfo* pInfo) { - SLogicNode* pSplitNode = pInfo->pSplitNode; +static int32_t stbSplGetSplitNodeForScan(SStableSplitInfo* pInfo, SLogicNode** pSplitNode) { + *pSplitNode = pInfo->pSplitNode; if (NULL != pInfo->pSplitNode->pParent && QUERY_NODE_LOGIC_PLAN_PROJECT == nodeType(pInfo->pSplitNode->pParent) && NULL == pInfo->pSplitNode->pParent->pLimit && NULL == pInfo->pSplitNode->pParent->pSlimit) { - pSplitNode = pInfo->pSplitNode->pParent; + *pSplitNode = pInfo->pSplitNode->pParent; if (NULL != pInfo->pSplitNode->pLimit) { - pSplitNode->pLimit = nodesCloneNode(pInfo->pSplitNode->pLimit); - if (NULL == pSplitNode->pLimit) { + (*pSplitNode)->pLimit = nodesCloneNode(pInfo->pSplitNode->pLimit); + if (NULL == (*pSplitNode)->pLimit) { return TSDB_CODE_OUT_OF_MEMORY; } ((SLimitNode*)pInfo->pSplitNode->pLimit)->limit += ((SLimitNode*)pInfo->pSplitNode->pLimit)->offset; ((SLimitNode*)pInfo->pSplitNode->pLimit)->offset = 0; } } - int32_t code = splCreateExchangeNodeForSubplan(pCxt, pInfo->pSubplan, pSplitNode, SUBPLAN_TYPE_MERGE); + return TSDB_CODE_SUCCESS; +} + +static int32_t stbSplSplitScanNodeWithoutPartTags(SSplitContext* pCxt, SStableSplitInfo* pInfo) { + SLogicNode* pSplitNode = NULL; + int32_t code = stbSplGetSplitNodeForScan(pInfo, &pSplitNode); + if (TSDB_CODE_SUCCESS == code) { + code = splCreateExchangeNodeForSubplan(pCxt, pInfo->pSubplan, pSplitNode, SUBPLAN_TYPE_MERGE); + } if (TSDB_CODE_SUCCESS == code) { code = nodesListMakeStrictAppend(&pInfo->pSubplan->pChildren, (SNode*)splCreateScanSubplan(pCxt, pSplitNode, SPLIT_FLAG_STABLE_SPLIT)); @@ -1049,12 +1058,11 @@ static int32_t stbSplSplitScanNodeWithoutPartTags(SSplitContext* pCxt, SStableSp } static int32_t stbSplSplitScanNodeWithPartTags(SSplitContext* pCxt, SStableSplitInfo* pInfo) { - SLogicNode* pSplitNode = pInfo->pSplitNode; - if (NULL != pInfo->pSplitNode->pParent && QUERY_NODE_LOGIC_PLAN_PROJECT == nodeType(pInfo->pSplitNode->pParent) && - NULL == pInfo->pSplitNode->pParent->pLimit && NULL == pInfo->pSplitNode->pParent->pSlimit) { - pSplitNode = pInfo->pSplitNode->pParent; + SLogicNode* pSplitNode = NULL; + int32_t code = stbSplGetSplitNodeForScan(pInfo, &pSplitNode); + if (TSDB_CODE_SUCCESS == code) { + code = stbSplCreateMergeNode(pCxt, pInfo->pSubplan, pSplitNode, NULL, pSplitNode, true); } - int32_t code = stbSplCreateMergeNode(pCxt, pInfo->pSubplan, pSplitNode, NULL, pSplitNode, true); if (TSDB_CODE_SUCCESS == code) { code = nodesListMakeStrictAppend(&pInfo->pSubplan->pChildren, (SNode*)splCreateScanSubplan(pCxt, pSplitNode, SPLIT_FLAG_STABLE_SPLIT)); From beb3de8530ddd38e29efdc094badaf46158e360b Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Sat, 28 Jan 2023 10:53:43 +0800 Subject: [PATCH 12/67] fix: limit push down error --- source/libs/planner/src/planSpliter.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/libs/planner/src/planSpliter.c b/source/libs/planner/src/planSpliter.c index d85e4ca10d..4c8b996a75 100644 --- a/source/libs/planner/src/planSpliter.c +++ b/source/libs/planner/src/planSpliter.c @@ -560,6 +560,8 @@ static int32_t stbSplCreateMergeNode(SSplitContext* pCxt, SLogicSubplan* pSubpla if (NULL == pMerge->node.pLimit) { code = TSDB_CODE_OUT_OF_MEMORY; } + ((SLimitNode*)pSplitNode->pLimit)->limit += ((SLimitNode*)pSplitNode->pLimit)->offset; + ((SLimitNode*)pSplitNode->pLimit)->offset = 0; } if (TSDB_CODE_SUCCESS == code) { if (NULL == pSubplan) { From 8258c68b6dd76e7c14b50ceb3f4fde4183ecb79f Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Sat, 28 Jan 2023 11:11:37 +0800 Subject: [PATCH 13/67] fix: subquery output ignores group id --- source/libs/planner/src/planLogicCreater.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 084d99cae5..bd1823a770 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -1016,7 +1016,7 @@ static int32_t createProjectLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSel TSWAP(pProject->node.pLimit, pSelect->pLimit); TSWAP(pProject->node.pSlimit, pSelect->pSlimit); - pProject->ignoreGroupId = (NULL == pSelect->pPartitionByList); + pProject->ignoreGroupId = pSelect->isSubquery ? true : (NULL == pSelect->pPartitionByList); pProject->node.groupAction = (!pSelect->isSubquery && pCxt->pPlanCxt->streamQuery) ? GROUP_ACTION_KEEP : GROUP_ACTION_CLEAR; pProject->node.requireDataOrder = DATA_ORDER_LEVEL_NONE; From 1fb2df0385f6a3bafe9b5b168710daee54d50b28 Mon Sep 17 00:00:00 2001 From: kailixu Date: Sat, 28 Jan 2023 17:00:53 +0800 Subject: [PATCH 14/67] fix: rsma close and commit refactor --- source/dnode/vnode/src/inc/sma.h | 2 ++ source/dnode/vnode/src/sma/smaCommit.c | 34 +++++++++++++++++------- source/dnode/vnode/src/sma/smaOpen.c | 1 + source/dnode/vnode/src/vnd/vnodeCommit.c | 12 ++++----- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/source/dnode/vnode/src/inc/sma.h b/source/dnode/vnode/src/inc/sma.h index 0072075623..c3e8d7ef1d 100644 --- a/source/dnode/vnode/src/inc/sma.h +++ b/source/dnode/vnode/src/inc/sma.h @@ -209,6 +209,8 @@ static FORCE_INLINE void tdUnRefSmaStat(SSma *pSma, SSmaStat *pStat) { smaDebug("vgId:%d, unref sma stat:%p, val:%d", SMA_VID(pSma), pStat, ref); } +int32_t smaPreClose(SSma *pSma); + // rsma void *tdFreeRSmaInfo(SSma *pSma, SRSmaInfo *pInfo, bool isDeepFree); int32_t tdRSmaFSOpen(SSma *pSma, int64_t version, int8_t rollback); diff --git a/source/dnode/vnode/src/sma/smaCommit.c b/source/dnode/vnode/src/sma/smaCommit.c index 38f04bb8e8..90542ecebd 100644 --- a/source/dnode/vnode/src/sma/smaCommit.c +++ b/source/dnode/vnode/src/sma/smaCommit.c @@ -17,18 +17,26 @@ extern SSmaMgmt smaMgmt; -static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma); +static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit); static int32_t tdProcessRSmaAsyncCommitImpl(SSma *pSma, SCommitInfo *pInfo); static int32_t tdProcessRSmaAsyncPostCommitImpl(SSma *pSma); static int32_t tdUpdateQTaskInfoFiles(SSma *pSma, SRSmaStat *pRSmaStat); +/** + * @brief only applicable to Rollup SMA + * + * @param pSma + * @return int32_t + */ +int32_t smaPreClose(SSma *pSma) { return tdProcessRSmaAsyncPreCommitImpl(pSma, false); } + /** * @brief async commit, only applicable to Rollup SMA * * @param pSma * @return int32_t */ -int32_t smaPrepareAsyncCommit(SSma *pSma) { return tdProcessRSmaAsyncPreCommitImpl(pSma); } +int32_t smaPrepareAsyncCommit(SSma *pSma) { return tdProcessRSmaAsyncPreCommitImpl(pSma, true); } /** * @brief async commit, only applicable to Rollup SMA @@ -124,7 +132,7 @@ _exit: * @param pSma * @return int32_t */ -static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma) { +static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { int32_t code = 0; int32_t lino = 0; @@ -139,15 +147,18 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma) { // step 1: set rsma stat atomic_store_8(RSMA_TRIGGER_STAT(pRSmaStat), TASK_TRIGGER_STAT_PAUSED); - while (atomic_val_compare_exchange_8(RSMA_COMMIT_STAT(pRSmaStat), 0, 1) != 0) { - ++nLoops; - if (nLoops > 1000) { - sched_yield(); - nLoops = 0; + if (isCommit) { + while (atomic_val_compare_exchange_8(RSMA_COMMIT_STAT(pRSmaStat), 0, 1) != 0) { + ++nLoops; + if (nLoops > 1000) { + sched_yield(); + nLoops = 0; + } } } + pRSmaStat->commitAppliedVer = pSma->pVnode->state.applied; - if (ASSERTS(pRSmaStat->commitAppliedVer >= 0, "commit applied version %" PRIi64 " < 0", + if (ASSERTS(pRSmaStat->commitAppliedVer >= -1, "commit applied version %" PRIi64 " < 0", pRSmaStat->commitAppliedVer)) { code = TSDB_CODE_APP_ERROR; TSDB_CHECK_CODE(code, lino, _exit); @@ -156,7 +167,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma) { // step 2: wait for all triggered fetch tasks to finish nLoops = 0; while (1) { - if (T_REF_VAL_GET(pStat) == 0) { + if (atomic_load_32(&pRSmaStat->nFetchAll) <= 0) { smaDebug("vgId:%d, rsma commit, fetch tasks are all finished", SMA_VID(pSma)); break; } else { @@ -184,6 +195,9 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma) { nLoops = 0; } } + + if (!isCommit) goto _exit; + smaInfo("vgId:%d, rsma commit, all items are consumed, TID:%p", SMA_VID(pSma), (void *)taosGetSelfPthreadId()); code = tdRSmaPersistExecImpl(pRSmaStat, RSMA_INFO_HASH(pRSmaStat)); TSDB_CHECK_CODE(code, lino, _exit); diff --git a/source/dnode/vnode/src/sma/smaOpen.c b/source/dnode/vnode/src/sma/smaOpen.c index 21c2839943..00000cb129 100644 --- a/source/dnode/vnode/src/sma/smaOpen.c +++ b/source/dnode/vnode/src/sma/smaOpen.c @@ -167,6 +167,7 @@ _exit: int32_t smaClose(SSma *pSma) { if (pSma) { + smaPreClose(pSma); taosThreadMutexDestroy(&pSma->mutex); SMA_TSMA_ENV(pSma) = tdFreeSmaEnv(SMA_TSMA_ENV(pSma)); SMA_RSMA_ENV(pSma) = tdFreeSmaEnv(SMA_RSMA_ENV(pSma)); diff --git a/source/dnode/vnode/src/vnd/vnodeCommit.c b/source/dnode/vnode/src/vnd/vnodeCommit.c index aeb90b7080..241470ac8c 100644 --- a/source/dnode/vnode/src/vnd/vnodeCommit.c +++ b/source/dnode/vnode/src/vnd/vnodeCommit.c @@ -296,12 +296,6 @@ static int32_t vnodePrepareCommit(SVnode *pVnode, SCommitInfo *pInfo) { tsem_wait(&pVnode->canCommit); - taosThreadMutexLock(&pVnode->mutex); - ASSERT(pVnode->onCommit == NULL); - pVnode->onCommit = pVnode->inUse; - pVnode->inUse = NULL; - taosThreadMutexUnlock(&pVnode->mutex); - pVnode->state.commitTerm = pVnode->state.applyTerm; pInfo->info.config = pVnode->config; @@ -331,6 +325,12 @@ static int32_t vnodePrepareCommit(SVnode *pVnode, SCommitInfo *pInfo) { code = smaPrepareAsyncCommit(pVnode->pSma); if (code) goto _exit; + taosThreadMutexLock(&pVnode->mutex); + ASSERT(pVnode->onCommit == NULL); + pVnode->onCommit = pVnode->inUse; + pVnode->inUse = NULL; + taosThreadMutexUnlock(&pVnode->mutex); + _exit: if (code) { vError("vgId:%d, %s failed at line %d since %s, commit id:%" PRId64, TD_VID(pVnode), __func__, lino, From a558e499993f3424e67783099f82141ef2038fdb Mon Sep 17 00:00:00 2001 From: kailixu Date: Sun, 29 Jan 2023 22:13:14 +0800 Subject: [PATCH 15/67] fix: tsdb snapshot reader type --- source/dnode/vnode/src/tsdb/tsdbSnapshot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c index 5c7bfee5a7..453b95b6c3 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c +++ b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c @@ -302,7 +302,7 @@ static int32_t tsdbSnapCmprData(STsdbSnapReader* pReader, uint8_t** ppData) { } SSnapDataHdr* pHdr = (SSnapDataHdr*)*ppData; - pHdr->type = SNAP_DATA_TSDB; + pHdr->type = pReader->type; pHdr->size = size; memcpy(pHdr->data, pReader->aBuf[3], aBufN[3]); From 1741e98a4e8fd5353aa541ca9a06def8546f5349 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Mon, 30 Jan 2023 10:13:54 +0800 Subject: [PATCH 16/67] fix(query): reset the del file index when beginning last file check. --- source/dnode/vnode/src/tsdb/tsdbRead.c | 44 ++++++++++++++++---------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead.c b/source/dnode/vnode/src/tsdb/tsdbRead.c index 85282a2340..a77eb8298e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead.c @@ -215,6 +215,7 @@ static int32_t doBuildDataBlock(STsdbReader* pReader); static TSDBKEY getCurrentKeyInBuf(STableBlockScanInfo* pScanInfo, STsdbReader* pReader); static bool hasDataInFileBlock(const SBlockData* pBlockData, const SFileBlockDumpInfo* pDumpInfo); static void initBlockDumpInfo(STsdbReader* pReader, SDataBlockIter* pBlockIter); +static int32_t getInitialDelIndex(const SArray* pDelSkyline, int32_t order); static bool outOfTimeWindow(int64_t ts, STimeWindow* pWindow) { return (ts > pWindow->ekey) || (ts < pWindow->skey); } @@ -2526,6 +2527,14 @@ _end: void setComposedBlockFlag(STsdbReader* pReader, bool composed) { pReader->status.composedDataBlock = composed; } +int32_t getInitialDelIndex(const SArray* pDelSkyline, int32_t order) { + if (pDelSkyline == NULL) { + return 0; + } + + return ASCENDING_TRAVERSE(order) ? 0 : taosArrayGetSize(pDelSkyline) - 1; +} + int32_t initDelSkylineIterator(STableBlockScanInfo* pBlockScanInfo, STsdbReader* pReader, STbData* pMemTbData, STbData* piMemTbData) { if (pBlockScanInfo->delSkyline != NULL) { @@ -2543,7 +2552,6 @@ int32_t initDelSkylineIterator(STableBlockScanInfo* pBlockScanInfo, STsdbReader* if (pIdx != NULL) { code = tsdbReadDelData(pReader->pDelFReader, pIdx, pDelData); } - if (code != TSDB_CODE_SUCCESS) { goto _err; } @@ -2572,11 +2580,13 @@ int32_t initDelSkylineIterator(STableBlockScanInfo* pBlockScanInfo, STsdbReader* } taosArrayDestroy(pDelData); - pBlockScanInfo->iter.index = - ASCENDING_TRAVERSE(pReader->order) ? 0 : taosArrayGetSize(pBlockScanInfo->delSkyline) - 1; - pBlockScanInfo->iiter.index = pBlockScanInfo->iter.index; - pBlockScanInfo->fileDelIndex = pBlockScanInfo->iter.index; - pBlockScanInfo->lastBlockDelIndex = pBlockScanInfo->iter.index; + int32_t index = getInitialDelIndex(pBlockScanInfo->delSkyline, pReader->order); + + pBlockScanInfo->iter.index = index; + pBlockScanInfo->iiter.index = index; + pBlockScanInfo->fileDelIndex = index; + pBlockScanInfo->lastBlockDelIndex = index; + return code; _err: @@ -2676,13 +2686,17 @@ static int32_t uidComparFunc(const void* p1, const void* p2) { } } -static void extractOrderedTableUidList(SUidOrderCheckInfo* pOrderCheckInfo, SReaderStatus* pStatus) { +static void extractOrderedTableUidList(SUidOrderCheckInfo* pOrderCheckInfo, SReaderStatus* pStatus, int32_t order) { int32_t index = 0; int32_t total = taosHashGetSize(pStatus->pTableMap); void* p = taosHashIterate(pStatus->pTableMap, NULL); while (p != NULL) { STableBlockScanInfo* pScanInfo = *(STableBlockScanInfo**)p; + + // reset the last del file index + pScanInfo->lastBlockDelIndex = getInitialDelIndex(pScanInfo->delSkyline, order); + pOrderCheckInfo->tableUidList[index++] = pScanInfo->uid; p = taosHashIterate(pStatus->pTableMap, p); } @@ -2690,7 +2704,9 @@ static void extractOrderedTableUidList(SUidOrderCheckInfo* pOrderCheckInfo, SRea taosSort(pOrderCheckInfo->tableUidList, total, sizeof(uint64_t), uidComparFunc); } -static int32_t initOrderCheckInfo(SUidOrderCheckInfo* pOrderCheckInfo, SReaderStatus* pStatus) { +static int32_t initOrderCheckInfo(SUidOrderCheckInfo* pOrderCheckInfo, STsdbReader* pReader) { + SReaderStatus* pStatus = &pReader->status; + int32_t total = taosHashGetSize(pStatus->pTableMap); if (total == 0) { return TSDB_CODE_SUCCESS; @@ -2703,7 +2719,7 @@ static int32_t initOrderCheckInfo(SUidOrderCheckInfo* pOrderCheckInfo, SReaderSt return TSDB_CODE_OUT_OF_MEMORY; } - extractOrderedTableUidList(pOrderCheckInfo, pStatus); + extractOrderedTableUidList(pOrderCheckInfo, pStatus, pReader->order); uint64_t uid = pOrderCheckInfo->tableUidList[0]; pStatus->pTableIter = taosHashGet(pStatus->pTableMap, &uid, sizeof(uid)); } else { @@ -2720,7 +2736,7 @@ static int32_t initOrderCheckInfo(SUidOrderCheckInfo* pOrderCheckInfo, SReaderSt } pOrderCheckInfo->tableUidList = p; - extractOrderedTableUidList(pOrderCheckInfo, pStatus); + extractOrderedTableUidList(pOrderCheckInfo, pStatus, pReader->order); uid = pOrderCheckInfo->tableUidList[0]; pStatus->pTableIter = taosHashGet(pStatus->pTableMap, &uid, sizeof(uid)); @@ -2740,11 +2756,7 @@ static bool moveToNextTable(SUidOrderCheckInfo* pOrderedCheckInfo, SReaderStatus uint64_t uid = pOrderedCheckInfo->tableUidList[pOrderedCheckInfo->currentIndex]; pStatus->pTableIter = taosHashGet(pStatus->pTableMap, &uid, sizeof(uid)); - if (pStatus->pTableIter == NULL) { - return false; - } - - return true; + return (pStatus->pTableIter != NULL); } static int32_t doLoadLastBlockSequentially(STsdbReader* pReader) { @@ -2752,7 +2764,7 @@ static int32_t doLoadLastBlockSequentially(STsdbReader* pReader) { SLastBlockReader* pLastBlockReader = pStatus->fileIter.pLastBlockReader; SUidOrderCheckInfo* pOrderedCheckInfo = &pStatus->uidCheckInfo; - int32_t code = initOrderCheckInfo(pOrderedCheckInfo, pStatus); + int32_t code = initOrderCheckInfo(pOrderedCheckInfo, pReader); if (code != TSDB_CODE_SUCCESS || (taosHashGetSize(pStatus->pTableMap) == 0)) { return code; } From 1ce1f8143cd638ec9cab541aba160c2e2ddfaa73 Mon Sep 17 00:00:00 2001 From: 54liuyao <54liuyao@163.com> Date: Mon, 30 Jan 2023 10:45:12 +0800 Subject: [PATCH 17/67] fix:process data with incorrect timestamp --- source/libs/executor/src/timewindowoperator.c | 14 ++- tests/script/tsim/stream/basic1.sim | 53 +++++++++++ tests/script/tsim/stream/triggerInterval0.sim | 88 +++++++++++++++---- 3 files changed, 135 insertions(+), 20 deletions(-) diff --git a/source/libs/executor/src/timewindowoperator.c b/source/libs/executor/src/timewindowoperator.c index d78e9c4edf..d320ef6e9e 100644 --- a/source/libs/executor/src/timewindowoperator.c +++ b/source/libs/executor/src/timewindowoperator.c @@ -2477,7 +2477,19 @@ static void doStreamIntervalAggImpl(SOperatorInfo* pOperatorInfo, SSDataBlock* p pInfo->delKey = key; } int32_t prevEndPos = (forwardRows - 1) * step + startPos; - ASSERT(pSDataBlock->info.window.skey > 0 && pSDataBlock->info.window.ekey > 0); + if (pSDataBlock->info.window.skey <= 0 || pSDataBlock->info.window.ekey <= 0) { + qError("table uid %" PRIu64 " data block timestamp range may not be calculated! minKey %" PRId64 + ",maxKey %" PRId64, + pSDataBlock->info.id.uid, pSDataBlock->info.window.skey, pSDataBlock->info.window.ekey); + blockDataUpdateTsWindow(pSDataBlock, 0); + + // timestamp of the data is incorrect + if (pSDataBlock->info.window.skey <= 0 || pSDataBlock->info.window.ekey <= 0) { + qError("table uid %" PRIu64 " data block timestamp is out of range! minKey %" PRId64 ",maxKey %" PRId64, + pSDataBlock->info.id.uid, pSDataBlock->info.window.skey, pSDataBlock->info.window.ekey); + } + } + if (IS_FINAL_OP(pInfo)) { startPos = getNextQualifiedFinalWindow(&pInfo->interval, &nextWin, &pSDataBlock->info, tsCols, prevEndPos); } else { diff --git a/tests/script/tsim/stream/basic1.sim b/tests/script/tsim/stream/basic1.sim index 7bf10df637..c61c7667f8 100644 --- a/tests/script/tsim/stream/basic1.sim +++ b/tests/script/tsim/stream/basic1.sim @@ -834,4 +834,57 @@ endi print ====== test _wstart end +print insert into ts1 values(-1648791211000,1,2,3) + +sql create database test7 vgroups 1; +sql use test7; +sql create stable st(ts timestamp, a int, b int , c int) tags(ta int,tb int,tc int); +sql create table ts1 using st tags(1,1,1); +sql create stream streams7 trigger at_once into streamt7 as select _wstart, count(*) from ts1 interval(10s) ; + +sql insert into ts1 values(1648791211000,1,2,3); +sql_error insert into ts1 values(-1648791211000,1,2,3); + +loop18: + +sleep 200 +sql select * from streamt7; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $rows != 1 then + print =====rows=$rows + goto loop18 +endi + +if $data01 != 1 then + print =====data01=$data01 + goto loop18 +endi + +sql_error insert into ts1 values(-1648791211001,1,2,3) (1648791211001,1,2,3); + +sql select _wstart, count(*) from ts1 interval(10s) ; + +print $data00 $data01 +print $data10 $data11 + +loop19: + +sleep 200 +sql select * from streamt7; + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +if $rows != 1 then + print =====rows=$rows + goto loop19 +endi + system sh/exec.sh -n dnode1 -s stop -x SIGINT diff --git a/tests/script/tsim/stream/triggerInterval0.sim b/tests/script/tsim/stream/triggerInterval0.sim index 7353f026bb..b522dcf035 100644 --- a/tests/script/tsim/stream/triggerInterval0.sim +++ b/tests/script/tsim/stream/triggerInterval0.sim @@ -29,69 +29,119 @@ sql insert into t1 values(1648791223001,2,2,3,1.1); sql insert into t1 values(1648791223002,2,2,3,1.1); sql insert into t1 values(1648791223003,2,2,3,1.1); sql insert into t1 values(1648791223001,2,2,3,1.1); + +print step 0 + +$loop_count = 0 + +loop0: sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + sql select * from streamt; + if $rows != 1 then print ======$rows - return -1 + goto loop0 endi if $data01 != 1 then print ======$data01 - return -1 + goto loop0 endi sql insert into t1 values(1648791233001,2,2,3,1.1); + +print step 1 + +$loop_count = 0 + +loop1: sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + sql select * from streamt; if $rows != 2 then print ======$rows - return -1 + goto loop1 endi if $data01 != 1 then print ======$data01 - return -1 + goto loop1 endi if $data11 != 3 then print ======$data11 - return -1 + goto loop1 endi sql insert into t1 values(1648791223004,2,2,3,1.1); sql insert into t1 values(1648791223004,2,2,3,1.1); sql insert into t1 values(1648791223005,2,2,3,1.1); + +print step 2 + +$loop_count = 0 + +loop2: sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + sql select * from streamt; if $rows != 2 then print ======$rows - return -1 + goto loop2 endi + if $data01 != 1 then print ======$data01 - return -1 + goto loop2 endi if $data11 != 5 then print ======$data11 - return -1 + goto loop2 endi sql insert into t1 values(1648791233002,3,2,3,2.1); sql insert into t1 values(1648791213002,4,2,3,3.1) sql insert into t1 values(1648791213002,4,2,3,4.1); + +print step 3 + +$loop_count = 0 + +loop3: sleep 300 -sql select * from streamt; -if $rows != 2 then - print ======$rows - return -1 -endi -if $data01 != 2 then - print ======$data01 - return -1 -endi -if $data11 != 5 then - print ======$data11 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then return -1 endi +sql select * from streamt; +if $rows != 2 then + print ======$rows + goto loop3 +endi +if $data01 != 2 then + print ======$data01 + goto loop3 +endi +if $data11 != 5 then + print ======$data11 + goto loop3 +endi + system sh/exec.sh -n dnode1 -s stop -x SIGINT \ No newline at end of file From ac9cdf6c58eaf5f4e4303a52fe855485a7f321eb Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Tue, 31 Jan 2023 00:46:58 +0800 Subject: [PATCH 18/67] fix: install script refine sentence for main (#19703) * fix: packaging/tools/install.sh for main * fix: refine sentence * fix: dpkg grep ii to detech deb package --- packaging/tools/install.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packaging/tools/install.sh b/packaging/tools/install.sh index 4be179b04d..dfdbaa6fdd 100755 --- a/packaging/tools/install.sh +++ b/packaging/tools/install.sh @@ -210,8 +210,8 @@ function install_bin() { [ -x ${install_main_dir}/bin/${serverName} ] && ${csudo}ln -s ${install_main_dir}/bin/${serverName} ${bin_link_dir}/${serverName} || : [ -x ${install_main_dir}/bin/${udfdName} ] && ${csudo}ln -s ${install_main_dir}/bin/${udfdName} ${bin_link_dir}/${udfdName} || : [ -x ${install_main_dir}/bin/${adapterName} ] && ${csudo}ln -s ${install_main_dir}/bin/${adapterName} ${bin_link_dir}/${adapterName} || : - [ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -s ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${demoName} || : - [ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -s ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${benchmarkName} || : + [ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -sf ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${demoName} || : + [ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -sf ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${benchmarkName} || : [ -x ${install_main_dir}/bin/${dumpName} ] && ${csudo}ln -s ${install_main_dir}/bin/${dumpName} ${bin_link_dir}/${dumpName} || : [ -x ${install_main_dir}/bin/${xname} ] && ${csudo}ln -s ${install_main_dir}/bin/${xname} ${bin_link_dir}/${xname} || : [ -x ${install_main_dir}/bin/TDinsight.sh ] && ${csudo}ln -s ${install_main_dir}/bin/TDinsight.sh ${bin_link_dir}/TDinsight.sh || : @@ -746,7 +746,7 @@ function is_version_compatible() { deb_erase() { confirm="" while [ "" == "${confirm}" ]; do - echo -e -n "${RED}Exist tdengine deb detected, do you want to remove it? [yes|no] ${NC}:" + echo -e -n "${RED}Existing TDengine deb is detected, do you want to remove it? [yes|no] ${NC}:" read confirm if [ "yes" == "$confirm" ]; then ${csudo}dpkg --remove tdengine ||: @@ -760,7 +760,7 @@ deb_erase() { rpm_erase() { confirm="" while [ "" == "${confirm}" ]; do - echo -e -n "${RED}Exist tdengine rpm detected, do you want to remove it? [yes|no] ${NC}:" + echo -e -n "${RED}Existing TDengine rpm is detected, do you want to remove it? [yes|no] ${NC}:" read confirm if [ "yes" == "$confirm" ]; then ${csudo}rpm -e tdengine ||: @@ -787,7 +787,7 @@ function updateProduct() { if echo $osinfo | grep -qwi "centos"; then rpm -q tdengine 2>&1 > /dev/null && rpm_erase tdengine ||: elif echo $osinfo | grep -qwi "ubuntu"; then - dpkg -l tdengine 2>&1 > /dev/null && deb_erase tdengine ||: + dpkg -l tdengine 2>&1 | grep ii > /dev/null && deb_erase tdengine ||: fi tar -zxf ${tarName} From 889019b253c7236e9d922689330e3ff04761e36f Mon Sep 17 00:00:00 2001 From: sunpeng Date: Tue, 31 Jan 2023 09:37:50 +0800 Subject: [PATCH 19/67] build: add python demo to ci (#19699) * build: add python demo to ci * build: fix python demo --- docs/examples/go/go.mod | 6 - docs/examples/python/conn_native_pandas.py | 7 +- docs/examples/python/conn_rest_pandas.py | 6 +- docs/examples/python/connect_rest_examples.py | 23 ++-- .../connection_usage_native_reference.py | 8 +- docs/examples/python/fast_write_example.py | 119 ++++++++++++------ docs/examples/python/kafka_example.py | 80 +++++++++--- docs/examples/python/mockdatasource.py | 19 ++- docs/examples/python/sql_writer.py | 24 +++- docs/examples/python/tmq_example.py | 95 +++++++------- tests/docs-examples-test/python.sh | 43 ++++++- 11 files changed, 298 insertions(+), 132 deletions(-) delete mode 100644 docs/examples/go/go.mod diff --git a/docs/examples/go/go.mod b/docs/examples/go/go.mod deleted file mode 100644 index 2bc1a74cb6..0000000000 --- a/docs/examples/go/go.mod +++ /dev/null @@ -1,6 +0,0 @@ -module goexample - -go 1.17 - -require github.com/taosdata/driver-go/v3 3.0 - diff --git a/docs/examples/python/conn_native_pandas.py b/docs/examples/python/conn_native_pandas.py index 56942ef570..f3bab15efb 100644 --- a/docs/examples/python/conn_native_pandas.py +++ b/docs/examples/python/conn_native_pandas.py @@ -1,8 +1,11 @@ import pandas -from sqlalchemy import create_engine +from sqlalchemy import create_engine, text engine = create_engine("taos://root:taosdata@localhost:6030/power") -df = pandas.read_sql("SELECT * FROM meters", engine) +conn = engine.connect() +df = pandas.read_sql(text("SELECT * FROM power.meters"), conn) +conn.close() + # print index print(df.index) diff --git a/docs/examples/python/conn_rest_pandas.py b/docs/examples/python/conn_rest_pandas.py index 0164080cd5..1b207d6ff1 100644 --- a/docs/examples/python/conn_rest_pandas.py +++ b/docs/examples/python/conn_rest_pandas.py @@ -1,8 +1,10 @@ import pandas -from sqlalchemy import create_engine +from sqlalchemy import create_engine, text engine = create_engine("taosrest://root:taosdata@localhost:6041") -df: pandas.DataFrame = pandas.read_sql("SELECT * FROM power.meters", engine) +conn = engine.connect() +df: pandas.DataFrame = pandas.read_sql(text("SELECT * FROM power.meters"), conn) +conn.close() # print index print(df.index) diff --git a/docs/examples/python/connect_rest_examples.py b/docs/examples/python/connect_rest_examples.py index 900ec1022e..0f8625ae53 100644 --- a/docs/examples/python/connect_rest_examples.py +++ b/docs/examples/python/connect_rest_examples.py @@ -1,24 +1,25 @@ # ANCHOR: connect from taosrest import connect, TaosRestConnection, TaosRestCursor -conn: TaosRestConnection = connect(url="http://localhost:6041", - user="root", - password="taosdata", - timeout=30) +conn = connect(url="http://localhost:6041", + user="root", + password="taosdata", + timeout=30) # ANCHOR_END: connect # ANCHOR: basic # create STable -cursor: TaosRestCursor = conn.cursor() +cursor = conn.cursor() cursor.execute("DROP DATABASE IF EXISTS power") cursor.execute("CREATE DATABASE power") -cursor.execute("CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)") +cursor.execute( + "CREATE STABLE power.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) TAGS (location BINARY(64), groupId INT)") # insert data -cursor.execute("""INSERT INTO power.d1001 USING power.meters TAGS(California.SanFrancisco, 2) VALUES ('2018-10-03 14:38:05.000', 10.30000, 219, 0.31000) ('2018-10-03 14:38:15.000', 12.60000, 218, 0.33000) ('2018-10-03 14:38:16.800', 12.30000, 221, 0.31000) - power.d1002 USING power.meters TAGS(California.SanFrancisco, 3) VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000) - power.d1003 USING power.meters TAGS(California.LosAngeles, 2) VALUES ('2018-10-03 14:38:05.500', 11.80000, 221, 0.28000) ('2018-10-03 14:38:16.600', 13.40000, 223, 0.29000) - power.d1004 USING power.meters TAGS(California.LosAngeles, 3) VALUES ('2018-10-03 14:38:05.000', 10.80000, 223, 0.29000) ('2018-10-03 14:38:06.500', 11.50000, 221, 0.35000)""") +cursor.execute("""INSERT INTO power.d1001 USING power.meters TAGS('California.SanFrancisco', 2) VALUES ('2018-10-03 14:38:05.000', 10.30000, 219, 0.31000) ('2018-10-03 14:38:15.000', 12.60000, 218, 0.33000) ('2018-10-03 14:38:16.800', 12.30000, 221, 0.31000) + power.d1002 USING power.meters TAGS('California.SanFrancisco', 3) VALUES ('2018-10-03 14:38:16.650', 10.30000, 218, 0.25000) + power.d1003 USING power.meters TAGS('California.LosAngeles', 2) VALUES ('2018-10-03 14:38:05.500', 11.80000, 221, 0.28000) ('2018-10-03 14:38:16.600', 13.40000, 223, 0.29000) + power.d1004 USING power.meters TAGS('California.LosAngeles', 3) VALUES ('2018-10-03 14:38:05.000', 10.80000, 223, 0.29000) ('2018-10-03 14:38:06.500', 11.50000, 221, 0.35000)""") print("inserted row count:", cursor.rowcount) # query data @@ -28,7 +29,7 @@ print("queried row count:", cursor.rowcount) # get column names from cursor column_names = [meta[0] for meta in cursor.description] # get rows -data: list[tuple] = cursor.fetchall() +data = cursor.fetchall() print(column_names) for row in data: print(row) diff --git a/docs/examples/python/connection_usage_native_reference.py b/docs/examples/python/connection_usage_native_reference.py index 4803511e42..0a23c5f95b 100644 --- a/docs/examples/python/connection_usage_native_reference.py +++ b/docs/examples/python/connection_usage_native_reference.py @@ -8,7 +8,7 @@ conn.execute("CREATE DATABASE test") # change database. same as execute "USE db" conn.select_db("test") conn.execute("CREATE STABLE weather(ts TIMESTAMP, temperature FLOAT) TAGS (location INT)") -affected_row: int = conn.execute("INSERT INTO t1 USING weather TAGS(1) VALUES (now, 23.5) (now+1m, 23.5) (now+2m 24.4)") +affected_row = conn.execute("INSERT INTO t1 USING weather TAGS(1) VALUES (now, 23.5) (now+1m, 23.5) (now+2m, 24.4)") print("affected_row", affected_row) # output: # affected_row 3 @@ -16,10 +16,10 @@ print("affected_row", affected_row) # ANCHOR: query # Execute a sql and get its result set. It's useful for SELECT statement -result: taos.TaosResult = conn.query("SELECT * from weather") +result = conn.query("SELECT * from weather") # Get fields from result -fields: taos.field.TaosFields = result.fields +fields = result.fields for field in fields: print(field) # {name: ts, type: 9, bytes: 8} @@ -42,4 +42,4 @@ print(data) # ANCHOR_END: query -conn.close() +conn.close() \ No newline at end of file diff --git a/docs/examples/python/fast_write_example.py b/docs/examples/python/fast_write_example.py index c9d606388f..626e3310b1 100644 --- a/docs/examples/python/fast_write_example.py +++ b/docs/examples/python/fast_write_example.py @@ -1,15 +1,14 @@ # install dependencies: # recommend python >= 3.8 -# pip3 install faster-fifo # import logging import math +import multiprocessing import sys import time import os -from multiprocessing import Process -from faster_fifo import Queue +from multiprocessing import Process, Queue from mockdatasource import MockDataSource from queue import Empty from typing import List @@ -22,8 +21,7 @@ TABLE_COUNT = 1000 QUEUE_SIZE = 1000000 MAX_BATCH_SIZE = 3000 -read_processes = [] -write_processes = [] +_DONE_MESSAGE = '__DONE__' def get_connection(): @@ -44,41 +42,64 @@ def get_connection(): # ANCHOR: read -def run_read_task(task_id: int, task_queues: List[Queue]): +def run_read_task(task_id: int, task_queues: List[Queue], infinity): table_count_per_task = TABLE_COUNT // READ_TASK_COUNT - data_source = MockDataSource(f"tb{task_id}", table_count_per_task) + data_source = MockDataSource(f"tb{task_id}", table_count_per_task, infinity) try: for batch in data_source: + if isinstance(batch, tuple): + batch = [batch] for table_id, rows in batch: # hash data to different queue i = table_id % len(task_queues) # block putting forever when the queue is full - task_queues[i].put_many(rows, block=True, timeout=-1) + for row in rows: + task_queues[i].put(row) + if not infinity: + for queue in task_queues: + queue.put(_DONE_MESSAGE) except KeyboardInterrupt: pass + finally: + logging.info('read task over') # ANCHOR_END: read + # ANCHOR: write -def run_write_task(task_id: int, queue: Queue): +def run_write_task(task_id: int, queue: Queue, done_queue: Queue): from sql_writer import SQLWriter log = logging.getLogger(f"WriteTask-{task_id}") writer = SQLWriter(get_connection) lines = None try: while True: - try: - # get as many as possible - lines = queue.get_many(block=False, max_messages_to_get=MAX_BATCH_SIZE) + over = False + lines = [] + for _ in range(MAX_BATCH_SIZE): + try: + line = queue.get_nowait() + if line == _DONE_MESSAGE: + over = True + break + if line: + lines.append(line) + except Empty: + time.sleep(0.1) + if len(lines) > 0: writer.process_lines(lines) - except Empty: - time.sleep(0.01) + if over: + done_queue.put(_DONE_MESSAGE) + break except KeyboardInterrupt: pass except BaseException as e: log.debug(f"lines={lines}") raise e + finally: + writer.close() + log.debug('write task over') # ANCHOR_END: write @@ -103,47 +124,64 @@ def set_global_config(): # ANCHOR: monitor -def run_monitor_process(): +def run_monitor_process(done_queue: Queue): log = logging.getLogger("DataBaseMonitor") - conn = get_connection() - conn.execute("DROP DATABASE IF EXISTS test") - conn.execute("CREATE DATABASE test") - conn.execute("CREATE STABLE test.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) " - "TAGS (location BINARY(64), groupId INT)") + conn = None + try: + conn = get_connection() - def get_count(): - res = conn.query("SELECT count(*) FROM test.meters") - rows = res.fetch_all() - return rows[0][0] if rows else 0 + def get_count(): + res = conn.query("SELECT count(*) FROM test.meters") + rows = res.fetch_all() + return rows[0][0] if rows else 0 - last_count = 0 - while True: - time.sleep(10) - count = get_count() - log.info(f"count={count} speed={(count - last_count) / 10}") - last_count = count + last_count = 0 + while True: + try: + done = done_queue.get_nowait() + if done == _DONE_MESSAGE: + break + except Empty: + pass + time.sleep(10) + count = get_count() + log.info(f"count={count} speed={(count - last_count) / 10}") + last_count = count + finally: + conn.close() # ANCHOR_END: monitor # ANCHOR: main -def main(): +def main(infinity): set_global_config() logging.info(f"READ_TASK_COUNT={READ_TASK_COUNT}, WRITE_TASK_COUNT={WRITE_TASK_COUNT}, " f"TABLE_COUNT={TABLE_COUNT}, QUEUE_SIZE={QUEUE_SIZE}, MAX_BATCH_SIZE={MAX_BATCH_SIZE}") - monitor_process = Process(target=run_monitor_process) + conn = get_connection() + conn.execute("DROP DATABASE IF EXISTS test") + conn.execute("CREATE DATABASE IF NOT EXISTS test") + conn.execute("CREATE STABLE IF NOT EXISTS test.meters (ts TIMESTAMP, current FLOAT, voltage INT, phase FLOAT) " + "TAGS (location BINARY(64), groupId INT)") + conn.close() + + done_queue = Queue() + monitor_process = Process(target=run_monitor_process, args=(done_queue,)) monitor_process.start() - time.sleep(3) # waiting for database ready. + logging.debug(f"monitor task started with pid {monitor_process.pid}") task_queues: List[Queue] = [] + write_processes = [] + read_processes = [] + # create task queues for i in range(WRITE_TASK_COUNT): - queue = Queue(max_size_bytes=QUEUE_SIZE) + queue = Queue() task_queues.append(queue) # create write processes for i in range(WRITE_TASK_COUNT): - p = Process(target=run_write_task, args=(i, task_queues[i])) + p = Process(target=run_write_task, args=(i, task_queues[i], done_queue)) p.start() logging.debug(f"WriteTask-{i} started with pid {p.pid}") write_processes.append(p) @@ -151,13 +189,19 @@ def main(): # create read processes for i in range(READ_TASK_COUNT): queues = assign_queues(i, task_queues) - p = Process(target=run_read_task, args=(i, queues)) + p = Process(target=run_read_task, args=(i, queues, infinity)) p.start() logging.debug(f"ReadTask-{i} started with pid {p.pid}") read_processes.append(p) try: monitor_process.join() + for p in read_processes: + p.join() + for p in write_processes: + p.join() + time.sleep(1) + return except KeyboardInterrupt: monitor_process.terminate() [p.terminate() for p in read_processes] @@ -176,5 +220,6 @@ def assign_queues(read_task_id, task_queues): if __name__ == '__main__': - main() + multiprocessing.set_start_method('spawn') + main(False) # ANCHOR_END: main diff --git a/docs/examples/python/kafka_example.py b/docs/examples/python/kafka_example.py index 735059eec0..a89287d372 100644 --- a/docs/examples/python/kafka_example.py +++ b/docs/examples/python/kafka_example.py @@ -26,7 +26,8 @@ class Consumer(object): 'bath_consume': True, 'batch_size': 1000, 'async_model': True, - 'workers': 10 + 'workers': 10, + 'testing': False } LOCATIONS = ['California.SanFrancisco', 'California.LosAngles', 'California.SanDiego', 'California.SanJose', @@ -46,11 +47,12 @@ class Consumer(object): def __init__(self, **configs): self.config: dict = self.DEFAULT_CONFIGS self.config.update(configs) - self.consumer = KafkaConsumer( - self.config.get('kafka_topic'), # topic - bootstrap_servers=self.config.get('kafka_brokers'), - group_id=self.config.get('kafka_group_id'), - ) + if not self.config.get('testing'): + self.consumer = KafkaConsumer( + self.config.get('kafka_topic'), # topic + bootstrap_servers=self.config.get('kafka_brokers'), + group_id=self.config.get('kafka_group_id'), + ) self.taos = taos.connect( host=self.config.get('taos_host'), user=self.config.get('taos_user'), @@ -60,7 +62,7 @@ class Consumer(object): ) if self.config.get('async_model'): self.pool = ThreadPoolExecutor(max_workers=self.config.get('workers')) - self.tasks: list[Future] = [] + self.tasks = [] # tags and table mapping # key: {location}_{groupId} value: self.tag_table_mapping = {} i = 0 @@ -104,8 +106,8 @@ class Consumer(object): for task in self.tasks: while not task.done(): pass - if self.pool is not None: - self.pool.shutdown() + if self.pool is not None: + self.pool.shutdown() # clean data if self.config.get('clean_after_testing'): @@ -115,14 +117,14 @@ class Consumer(object): if self.taos is not None: self.taos.close() - def _run(self, f: Callable[[ConsumerRecord], bool]): + def _run(self, f): for message in self.consumer: if self.config.get('async_model'): self.pool.submit(f(message)) else: f(message) - def _run_batch(self, f: Callable[[list[list[ConsumerRecord]]], None]): + def _run_batch(self, f): while True: messages = self.consumer.poll(timeout_ms=500, max_records=self.config.get('batch_size')) if messages: @@ -140,7 +142,7 @@ class Consumer(object): logging.info('## insert sql %s', sql) return self.taos.execute(sql=sql) == 1 - def _to_taos_batch(self, messages: list[list[ConsumerRecord]]): + def _to_taos_batch(self, messages): sql = self._build_sql_batch(messages=messages) if len(sql) == 0: # decode error, skip return @@ -162,7 +164,7 @@ class Consumer(object): table_name = self._get_table_name(location=location, group_id=group_id) return self.INSERT_PART_SQL.format(table_name, ts, current, voltage, phase) - def _build_sql_batch(self, messages: list[list[ConsumerRecord]]) -> str: + def _build_sql_batch(self, messages) -> str: sql_list = [] for partition_messages in messages: for message in partition_messages: @@ -186,7 +188,55 @@ def _get_location_and_group(key: str) -> (str, int): return fields[0], fields[1] +def test_to_taos(consumer: Consumer): + msg = { + 'location': 'California.SanFrancisco', + 'groupId': 1, + 'ts': '2022-12-06 15:13:38.643', + 'current': 3.41, + 'voltage': 105, + 'phase': 0.02027, + } + record = ConsumerRecord(checksum=None, headers=None, offset=1, key=None, value=json.dumps(msg), partition=1, + topic='test', serialized_key_size=None, serialized_header_size=None, + serialized_value_size=None, timestamp=time.time(), timestamp_type=None) + assert consumer._to_taos(message=record) + + +def test_to_taos_batch(consumer: Consumer): + records = [ + [ + ConsumerRecord(checksum=None, headers=None, offset=1, key=None, + value=json.dumps({'location': 'California.SanFrancisco', + 'groupId': 1, + 'ts': '2022-12-06 15:13:38.643', + 'current': 3.41, + 'voltage': 105, + 'phase': 0.02027, }), + partition=1, topic='test', serialized_key_size=None, serialized_header_size=None, + serialized_value_size=None, timestamp=time.time(), timestamp_type=None), + ConsumerRecord(checksum=None, headers=None, offset=1, key=None, + value=json.dumps({'location': 'California.LosAngles', + 'groupId': 2, + 'ts': '2022-12-06 15:13:39.643', + 'current': 3.41, + 'voltage': 102, + 'phase': 0.02027, }), + partition=1, topic='test', serialized_key_size=None, serialized_header_size=None, + serialized_value_size=None, timestamp=time.time(), timestamp_type=None), + ] + ] + + consumer._to_taos_batch(messages=records) + + if __name__ == '__main__': - consumer = Consumer(async_model=True) + consumer = Consumer(async_model=True, testing=True) + # init env consumer.init_env() - consumer.consume() \ No newline at end of file + # consumer.consume() + # test build sql + # test build sql batch + test_to_taos(consumer) + test_to_taos_batch(consumer) + \ No newline at end of file diff --git a/docs/examples/python/mockdatasource.py b/docs/examples/python/mockdatasource.py index 1c516a800e..15a7d2ff8c 100644 --- a/docs/examples/python/mockdatasource.py +++ b/docs/examples/python/mockdatasource.py @@ -10,13 +10,14 @@ class MockDataSource: "9.4,118,0.141,California.SanFrancisco,4" ] - def __init__(self, tb_name_prefix, table_count): + def __init__(self, tb_name_prefix, table_count, infinity=True): self.table_name_prefix = tb_name_prefix + "_" self.table_count = table_count self.max_rows = 10000000 self.current_ts = round(time.time() * 1000) - self.max_rows * 100 # [(tableId, tableName, values),] self.data = self._init_data() + self.infinity = infinity def _init_data(self): lines = self.samples * (self.table_count // 5 + 1) @@ -28,14 +29,19 @@ class MockDataSource: def __iter__(self): self.row = 0 - return self + if not self.infinity: + return iter(self._iter_data()) + else: + return self def __next__(self): """ next 1000 rows for each table. return: {tableId:[row,...]} """ - # generate 1000 timestamps + return self._iter_data() + + def _iter_data(self): ts = [] for _ in range(1000): self.current_ts += 100 @@ -47,3 +53,10 @@ class MockDataSource: rows = [table_name + ',' + t + ',' + values for t in ts] result.append((table_id, rows)) return result + + +if __name__ == '__main__': + datasource = MockDataSource('t', 10, False) + for data in datasource: + print(data) + \ No newline at end of file diff --git a/docs/examples/python/sql_writer.py b/docs/examples/python/sql_writer.py index 758167376b..db51bb7174 100644 --- a/docs/examples/python/sql_writer.py +++ b/docs/examples/python/sql_writer.py @@ -10,6 +10,7 @@ class SQLWriter: self._tb_tags = {} self._conn = get_connection_func() self._max_sql_length = self.get_max_sql_length() + self._conn.execute("create database if not exists test") self._conn.execute("USE test") def get_max_sql_length(self): @@ -20,7 +21,7 @@ class SQLWriter: return int(r[1]) return 1024 * 1024 - def process_lines(self, lines: str): + def process_lines(self, lines: [str]): """ :param lines: [[tbName,ts,current,voltage,phase,location,groupId]] """ @@ -60,6 +61,7 @@ class SQLWriter: buf.append(q) sql_len += len(q) sql += " ".join(buf) + self.create_tables() self.execute_sql(sql) self._tb_values.clear() @@ -88,3 +90,23 @@ class SQLWriter: except BaseException as e: self.log.error("Execute SQL: %s", sql) raise e + + def close(self): + if self._conn: + self._conn.close() + + +if __name__ == '__main__': + def get_connection_func(): + conn = taos.connect() + return conn + + + writer = SQLWriter(get_connection_func=get_connection_func) + writer.execute_sql( + "create stable if not exists meters (ts timestamp, current float, voltage int, phase float) " + "tags (location binary(64), groupId int)") + writer.execute_sql( + "INSERT INTO d21001 USING meters TAGS ('California.SanFrancisco', 2) " + "VALUES ('2021-07-13 14:06:32.272', 10.2, 219, 0.32)") + \ No newline at end of file diff --git a/docs/examples/python/tmq_example.py b/docs/examples/python/tmq_example.py index a4625ca11a..32778e9f25 100644 --- a/docs/examples/python/tmq_example.py +++ b/docs/examples/python/tmq_example.py @@ -1,58 +1,55 @@ +from taos.tmq import Consumer import taos -from taos.tmq import * - -conn = taos.connect() - -print("init") -conn.execute("drop topic if exists topic_ctb_column") -conn.execute("drop database if exists py_tmq") -conn.execute("create database if not exists py_tmq vgroups 2") -conn.select_db("py_tmq") -conn.execute( - "create stable if not exists stb1 (ts timestamp, c1 int, c2 float, c3 binary(10)) tags(t1 int)" -) -conn.execute("create table if not exists tb1 using stb1 tags(1)") -conn.execute("create table if not exists tb2 using stb1 tags(2)") -conn.execute("create table if not exists tb3 using stb1 tags(3)") - -print("create topic") -conn.execute( - "create topic if not exists topic_ctb_column as select ts, c1, c2, c3 from stb1" -) - -print("build consumer") -conf = TaosTmqConf() -conf.set("group.id", "tg2") -conf.set("td.connect.user", "root") -conf.set("td.connect.pass", "taosdata") -conf.set("enable.auto.commit", "true") -def tmq_commit_cb_print(tmq, resp, offset, param=None): - print(f"commit: {resp}, tmq: {tmq}, offset: {offset}, param: {param}") +def init_tmq_env(db, topic): + conn = taos.connect() + conn.execute("drop topic if exists {}".format(topic)) + conn.execute("drop database if exists {}".format(db)) + conn.execute("create database if not exists {}".format(db)) + conn.select_db(db) + conn.execute( + "create stable if not exists stb1 (ts timestamp, c1 int, c2 float, c3 varchar(16)) tags(t1 int, t3 varchar(16))") + conn.execute("create table if not exists tb1 using stb1 tags(1, 't1')") + conn.execute("create table if not exists tb2 using stb1 tags(2, 't2')") + conn.execute("create table if not exists tb3 using stb1 tags(3, 't3')") + conn.execute("create topic if not exists {} as select ts, c1, c2, c3 from stb1".format(topic)) + conn.execute("insert into tb1 values (now, 1, 1.0, 'tmq test')") + conn.execute("insert into tb2 values (now, 2, 2.0, 'tmq test')") + conn.execute("insert into tb3 values (now, 3, 3.0, 'tmq test')") -conf.set_auto_commit_cb(tmq_commit_cb_print, None) -tmq = conf.new_consumer() +def cleanup(db, topic): + conn = taos.connect() + conn.execute("drop topic if exists {}".format(topic)) + conn.execute("drop database if exists {}".format(db)) -print("build topic list") -topic_list = TaosTmqList() -topic_list.append("topic_ctb_column") +if __name__ == '__main__': + init_tmq_env("tmq_test", "tmq_test_topic") # init env + consumer = Consumer( + { + "group.id": "tg2", + "td.connect.user": "root", + "td.connect.pass": "taosdata", + "enable.auto.commit": "true", + } + ) + consumer.subscribe(["tmq_test_topic"]) -print("basic consume loop") -tmq.subscribe(topic_list) + try: + while True: + res = consumer.poll(1) + if not res: + break + err = res.error() + if err is not None: + raise err + val = res.value() -sub_list = tmq.subscription() - -print("subscribed topics: ", sub_list) - -while 1: - res = tmq.poll(1000) - if res: - topic = res.get_topic_name() - vg = res.get_vgroup_id() - db = res.get_db_name() - print(f"topic: {topic}\nvgroup id: {vg}\ndb: {db}") - for row in res: - print(row) + for block in val: + print(block.fetchall()) + finally: + consumer.unsubscribe() + consumer.close() + cleanup("tmq_test", "tmq_test_topic") \ No newline at end of file diff --git a/tests/docs-examples-test/python.sh b/tests/docs-examples-test/python.sh index 140d05395b..ccb391b752 100644 --- a/tests/docs-examples-test/python.sh +++ b/tests/docs-examples-test/python.sh @@ -23,7 +23,7 @@ python3 bind_param_example.py # 4 taos -s "drop database power" -python3 multi_bind_example.py +python3 multi_bind_example.py # 5 python3 query_example.py @@ -44,4 +44,43 @@ taos -s "drop database test" python3 json_protocol_example.py # 10 -# python3 subscribe_demo.py +pip install SQLAlchemy +pip install pandas +taosBenchmark -y -d power -t 10 -n 10 +python3 conn_native_pandas.py +python3 conn_rest_pandas.py +taos -s "drop database if exists power" + +# 11 +taos -s "create database if not exists test" +python3 connect_native_reference.py + +# 12 +python3 connect_rest_examples.py + +# 13 +python3 handle_exception.py + +# 14 +taosBenchmark -y -d power -t 2 -n 10 +python3 rest_client_example.py +taos -s "drop database if exists power" + +# 15 +python3 result_set_examples.py + +# 16 +python3 tmq_example.py + +# 17 +python3 sql_writer.py + +# 18 +python3 mockdatasource.py + +# 19 +python3 fast_write_example.py + +# 20 +pip3 install kafka-python +python3 kafka_example.py From cabf3e86839de09bbfa45a623319b7d43f57d0e2 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Tue, 31 Jan 2023 11:22:06 +0800 Subject: [PATCH 20/67] fix: invalid read --- source/dnode/vnode/src/tsdb/tsdbSnapshot.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c index 1bfd630331..98c9c0fdda 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c +++ b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c @@ -1643,8 +1643,8 @@ _exit: if (code) { tsdbError("vgId:%d %s failed at line %d since %s", TD_VID(pWriter->pTsdb->pVnode), __func__, lino, tstrerror(code)); } else { - tsdbTrace("vgId:%d %s done, suid:%" PRId64 " uid:%" PRId64, TD_VID(pWriter->pTsdb->pVnode), __func__, pId->suid, - pId->uid); + tsdbTrace("vgId:%d %s done, suid:%" PRId64 " uid:%" PRId64, TD_VID(pWriter->pTsdb->pVnode), __func__, + pWriter->tbid.suid, pWriter->tbid.uid); } return code; } From a84e990c4e1f99cd2f68c7913c2c56197cba2f7f Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Tue, 31 Jan 2023 11:29:46 +0800 Subject: [PATCH 21/67] fix: not try to propose commit on vmCloseVnode --- source/dnode/mgmt/mgmt_vnode/src/vmInt.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/dnode/mgmt/mgmt_vnode/src/vmInt.c b/source/dnode/mgmt/mgmt_vnode/src/vmInt.c index 99ba9b9b3b..951544c766 100644 --- a/source/dnode/mgmt/mgmt_vnode/src/vmInt.c +++ b/source/dnode/mgmt/mgmt_vnode/src/vmInt.c @@ -79,8 +79,6 @@ int32_t vmOpenVnode(SVnodeMgmt *pMgmt, SWrapperCfg *pCfg, SVnode *pImpl) { void vmCloseVnode(SVnodeMgmt *pMgmt, SVnodeObj *pVnode) { char path[TSDB_FILENAME_LEN] = {0}; - vnodeProposeCommitOnNeed(pVnode->pImpl); - taosThreadRwlockWrlock(&pMgmt->lock); taosHashRemove(pMgmt->hash, &pVnode->vgId, sizeof(int32_t)); taosThreadRwlockUnlock(&pMgmt->lock); From b56db2026b7c7a30cc94196edf5b1b887ae52996 Mon Sep 17 00:00:00 2001 From: Xuefeng Tan <1172915550@qq.com> Date: Tue, 31 Jan 2023 15:14:48 +0800 Subject: [PATCH 22/67] fix(taosAdapter): set option `TSDB_OPTION_USE_ADAPTER = true` (#19711) --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index 13b247770e..d156057459 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG 213f8b3 + GIT_TAG 3e08996 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From f6df973d4d2e3ae42da47fc82f9ead04b353fff2 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Wed, 1 Feb 2023 10:15:42 +0800 Subject: [PATCH 23/67] fix: no cache auto create table error --- source/libs/parser/src/parInsertSql.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/libs/parser/src/parInsertSql.c b/source/libs/parser/src/parInsertSql.c index 98c6aed829..1e1821842f 100644 --- a/source/libs/parser/src/parInsertSql.c +++ b/source/libs/parser/src/parInsertSql.c @@ -1760,6 +1760,9 @@ static int32_t getTableSchemaFromMetaData(SInsertParseContext* pCxt, const SMeta if (TSDB_CODE_SUCCESS == code && !isStb && TSDB_SUPER_TABLE == pStmt->pTableMeta->tableType) { code = buildInvalidOperationMsg(&pCxt->msg, "insert data into super table is not supported"); } + if (TSDB_CODE_SUCCESS == code && isStb) { + code = storeTableMeta(pCxt, pStmt); + } if (TSDB_CODE_SUCCESS == code) { code = getTableVgroupFromMetaData(pMetaData->pTableHash, pStmt, isStb); } From c4531512303fb4129b22cde6552bfe193cce80c5 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 1 Feb 2023 15:56:58 +0800 Subject: [PATCH 24/67] test(query): add regress test case. --- tests/script/tsim/parser/regressiontest.sim | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/script/tsim/parser/regressiontest.sim b/tests/script/tsim/parser/regressiontest.sim index 1b127155cb..3ce2b47b44 100644 --- a/tests/script/tsim/parser/regressiontest.sim +++ b/tests/script/tsim/parser/regressiontest.sim @@ -63,4 +63,38 @@ if $rows != 8198 then return -1 endi +print ===========================> TD-22077 && TD-21877 +sql drop database if exists $db -x step1 +sql create database $db vgroups 1; + +sql use $db +sql create stable st1 (ts timestamp, c int) tags(a int); +sql create table t1 using st1 tags(1); +sql create table t2 using st1 tags(2); + +$i = 0 +$ts = 1674977959000 +$rowNum = 200 + +$x = 0 +while $x < $rowNum +$xs = $x * $delta +$ts = $ts0 + $xs +sql insert into t1 values ( $ts , $x ) +sql insert into t2 values ( $ts + 1000a, $x ) +$x = $x + 1 +$ts = $ts + 1000 +endw + +sql flush database $db + +sql insert into t1 values('2018-09-17 09:00:26', 26); +sql insert into t2 values('2018-09-17 09:00:25', 25); + +sql insert into t2 values('2018-09-17 09:00:30', 30); +sql flush database reg_db0; + +sql delete from st1 where ts<='2018-9-17 09:00:26'; +sql select * from st1; + system sh/exec.sh -n dnode1 -s stop -x SIGINT From a3a2af4b3fb35f9c62ad43a86b388a43814bbcf0 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 1 Feb 2023 15:59:29 +0800 Subject: [PATCH 25/67] fix: taosbenchmark schemaless refine for main (#19714) * fix: taos-tools 143b9e4 for taosbenchmark schemaless refine for main * fix: update taos-tools 723f696 * test: fix ../tests/develop-test/5-taos-tools/taosbenchmark/sml_json_alltypes.py * test: check nchar temporarily as diff behavior between main and 3.0 branch * fix: update taos-tools 181bcac --- cmake/taostools_CMakeLists.txt.in | 2 +- .../taosbenchmark/sml_json_alltypes.py | 62 ++++++++++++------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 13a81f88ea..926d0c63e7 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG 0cd564a + GIT_TAG 181bcac SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE diff --git a/tests/develop-test/5-taos-tools/taosbenchmark/sml_json_alltypes.py b/tests/develop-test/5-taos-tools/taosbenchmark/sml_json_alltypes.py index 2c6d09b0f5..1b65e38d72 100644 --- a/tests/develop-test/5-taos-tools/taosbenchmark/sml_json_alltypes.py +++ b/tests/develop-test/5-taos-tools/taosbenchmark/sml_json_alltypes.py @@ -19,32 +19,38 @@ from util.dnodes import * class TDTestCase: def caseDescription(self): - ''' + """ [TD-11510] taosBenchmark test cases - ''' - return + """ def init(self, conn, logSql, replicaVar=1): - self.replicaVar = int(replicaVar) tdLog.debug("start to execute %s" % __file__) + self.replicaVar = int(replicaVar) tdSql.init(conn.cursor(), logSql) def getPath(self, tool="taosBenchmark"): selfPath = os.path.dirname(os.path.realpath(__file__)) - if ("community" in selfPath): - projPath = selfPath[:selfPath.find("community")] + if "community" in selfPath: + projPath = selfPath[: selfPath.find("community")] + elif "src" in selfPath: + projPath = selfPath[: selfPath.find("src")] + elif "/tools/" in selfPath: + projPath = selfPath[: selfPath.find("/tools/")] + elif "/tests/" in selfPath: + projPath = selfPath[: selfPath.find("/tests/")] else: - projPath = selfPath[:selfPath.find("tests")] + tdLog.info("cannot found %s in path: %s, use system's" % (tool, selfPath)) + projPath = "/usr/local/taos/bin/" paths = [] - for root, dirs, files in os.walk(projPath): - if ((tool) in files): + for root, dummy, files in os.walk(projPath): + if (tool) in files: rootRealPath = os.path.dirname(os.path.realpath(root)) - if ("packaging" not in rootRealPath): + if "packaging" not in rootRealPath: paths.append(os.path.join(root, tool)) break - if (len(paths) == 0): + if len(paths) == 0: tdLog.exit("taosBenchmark not found!") return else: @@ -52,31 +58,45 @@ class TDTestCase: return paths[0] def run(self): + tdSql.query("select client_version()") + client_ver = "".join(tdSql.queryResult[0]) + major_ver = client_ver.split(".")[0] + binPath = self.getPath() - cmd = "%s -f ./5-taos-tools/taosbenchmark/json/sml_json_alltypes.json" %binPath + cmd = "%s -f ./5-taos-tools/taosbenchmark/json/sml_json_alltypes.json" % binPath tdLog.info("%s" % cmd) os.system("%s" % cmd) tdSql.execute("reset query cache") tdSql.query("describe db.stb1") tdSql.checkData(1, 1, "BOOL") tdSql.query("describe db.stb2") - tdSql.checkData(1, 1, "TINYINT") + tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb3") - tdSql.checkData(1, 1, "SMALLINT") + tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb4") - tdSql.checkData(1, 1, "INT") + tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb5") - tdSql.checkData(1, 1, "BIGINT") + tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb6") - tdSql.checkData(1, 1, "FLOAT") + tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb7") tdSql.checkData(1, 1, "DOUBLE") tdSql.query("describe db.stb8") - tdSql.checkData(1, 1, "VARCHAR") - tdSql.checkData(1, 2, 16) + if major_ver == "3": + tdSql.checkData(1, 1, "NCHAR") + tdSql.checkData(1, 2, 16) + else: + tdSql.checkData(1, 1, "NCHAR") + tdSql.checkData(1, 2, 8) + tdSql.query("describe db.stb9") - tdSql.checkData(1, 1, "NCHAR") - tdSql.checkData(1, 2, 16) + if major_ver == "3": + tdSql.checkData(1, 1, "NCHAR") + tdSql.checkData(1, 2, 16) + else: + tdSql.checkData(1, 1, "NCHAR") + tdSql.checkData(1, 2, 8) + tdSql.query("select count(*) from db.stb1") tdSql.checkData(0, 0, 160) tdSql.query("select count(*) from db.stb2") From 869ab0d394e08e19839a22300bbd55e059166462 Mon Sep 17 00:00:00 2001 From: Liu Jicong Date: Wed, 1 Feb 2023 17:27:56 +0800 Subject: [PATCH 26/67] fix: snode timer --- source/dnode/snode/src/snode.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/dnode/snode/src/snode.c b/source/dnode/snode/src/snode.c index 860db20fa8..1d2f4da26b 100644 --- a/source/dnode/snode/src/snode.c +++ b/source/dnode/snode/src/snode.c @@ -93,6 +93,8 @@ int32_t sndExpandTask(SSnode *pSnode, SStreamTask *pTask, int64_t ver) { pTask->exec.executor = qCreateStreamExecTaskInfo(pTask->exec.qmsg, &mgHandle); ASSERT(pTask->exec.executor); + streamSetupTrigger(pTask); + return 0; } From df30b51a7517d63d89c9730d8e52aed920c6de49 Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Wed, 1 Feb 2023 17:59:39 +0800 Subject: [PATCH 27/67] fix(stream): use tdb page replacement with stream state --- source/libs/stream/src/streamState.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/libs/stream/src/streamState.c b/source/libs/stream/src/streamState.c index 6670bf463e..2460da25f4 100644 --- a/source/libs/stream/src/streamState.c +++ b/source/libs/stream/src/streamState.c @@ -192,7 +192,7 @@ void streamStateClose(SStreamState* pState) { } int32_t streamStateBegin(SStreamState* pState) { - if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, tdbDefaultMalloc, tdbDefaultFree, NULL, + if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, NULL, NULL, NULL, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED) < 0) { tdbAbort(pState->pTdbState->db, pState->pTdbState->txn); return -1; @@ -208,7 +208,7 @@ int32_t streamStateCommit(SStreamState* pState) { return -1; } - if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, tdbDefaultMalloc, tdbDefaultFree, NULL, + if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, NULL, NULL, NULL, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED) < 0) { return -1; } @@ -220,7 +220,7 @@ int32_t streamStateAbort(SStreamState* pState) { return -1; } - if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, tdbDefaultMalloc, tdbDefaultFree, NULL, + if (tdbBegin(pState->pTdbState->db, &pState->pTdbState->txn, NULL, NULL, NULL, TDB_TXN_WRITE | TDB_TXN_READ_UNCOMMITTED) < 0) { return -1; } From 8e4c6ccbb3c49a92296dc6d424d26af947c467a7 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 1 Feb 2023 18:15:35 +0800 Subject: [PATCH 28/67] fix(query): move the reset to other place. --- source/dnode/vnode/src/tsdb/tsdbRead.c | 19 +++++++++++++++---- source/util/src/talgo.c | 8 ++++---- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead.c b/source/dnode/vnode/src/tsdb/tsdbRead.c index a77eb8298e..0bb9ebc40e 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead.c @@ -2693,10 +2693,6 @@ static void extractOrderedTableUidList(SUidOrderCheckInfo* pOrderCheckInfo, SRea void* p = taosHashIterate(pStatus->pTableMap, NULL); while (p != NULL) { STableBlockScanInfo* pScanInfo = *(STableBlockScanInfo**)p; - - // reset the last del file index - pScanInfo->lastBlockDelIndex = getInitialDelIndex(pScanInfo->delSkyline, order); - pOrderCheckInfo->tableUidList[index++] = pScanInfo->uid; p = taosHashIterate(pStatus->pTableMap, p); } @@ -2704,6 +2700,18 @@ static void extractOrderedTableUidList(SUidOrderCheckInfo* pOrderCheckInfo, SRea taosSort(pOrderCheckInfo->tableUidList, total, sizeof(uint64_t), uidComparFunc); } +// reset the last del file index +static void resetScanBlockLastBlockDelIndex(SReaderStatus* pStatus, int32_t order) { + void* p = taosHashIterate(pStatus->pTableMap, NULL); + while (p != NULL) { + STableBlockScanInfo* pScanInfo = *(STableBlockScanInfo**)p; + + // reset the last del file index + pScanInfo->lastBlockDelIndex = getInitialDelIndex(pScanInfo->delSkyline, order); + p = taosHashIterate(pStatus->pTableMap, p); + } +} + static int32_t initOrderCheckInfo(SUidOrderCheckInfo* pOrderCheckInfo, STsdbReader* pReader) { SReaderStatus* pStatus = &pReader->status; @@ -3052,6 +3060,7 @@ static int32_t buildBlockFromFiles(STsdbReader* pReader) { // this file does not have data files, let's start check the last block file if exists if (pBlockIter->numOfBlocks == 0) { + resetScanBlockLastBlockDelIndex(&pReader->status, pReader->order); goto _begin; } } @@ -3083,6 +3092,7 @@ static int32_t buildBlockFromFiles(STsdbReader* pReader) { // data blocks in current file are exhausted, let's try the next file now tBlockDataReset(&pReader->status.fileBlockData); resetDataBlockIterator(pBlockIter, pReader->order); + resetScanBlockLastBlockDelIndex(&pReader->status, pReader->order); goto _begin; } else { code = initForFirstBlockInFile(pReader, pBlockIter); @@ -3094,6 +3104,7 @@ static int32_t buildBlockFromFiles(STsdbReader* pReader) { // this file does not have blocks, let's start check the last block file if (pBlockIter->numOfBlocks == 0) { + resetScanBlockLastBlockDelIndex(&pReader->status, pReader->order); goto _begin; } } diff --git a/source/util/src/talgo.c b/source/util/src/talgo.c index a06aac6afe..e373850b3c 100644 --- a/source/util/src/talgo.c +++ b/source/util/src/talgo.c @@ -28,14 +28,14 @@ static void median(void *src, int64_t size, int64_t s, int64_t e, const void *pa void *buf) { int32_t mid = ((int32_t)(e - s) >> 1u) + (int32_t)s; - if (comparFn(elePtrAt(src, size, mid), elePtrAt(src, size, s), param) == 1) { + if (comparFn(elePtrAt(src, size, mid), elePtrAt(src, size, s), param) > 0) { doswap(elePtrAt(src, size, mid), elePtrAt(src, size, s), size, buf); } - if (comparFn(elePtrAt(src, size, mid), elePtrAt(src, size, e), param) == 1) { + if (comparFn(elePtrAt(src, size, mid), elePtrAt(src, size, e), param) > 0) { doswap(elePtrAt(src, size, mid), elePtrAt(src, size, s), size, buf); doswap(elePtrAt(src, size, mid), elePtrAt(src, size, e), size, buf); - } else if (comparFn(elePtrAt(src, size, s), elePtrAt(src, size, e), param) == 1) { + } else if (comparFn(elePtrAt(src, size, s), elePtrAt(src, size, e), param) > 0) { doswap(elePtrAt(src, size, s), elePtrAt(src, size, e), size, buf); } @@ -47,7 +47,7 @@ static void tInsertSort(void *src, int64_t size, int32_t s, int32_t e, const voi void *buf) { for (int32_t i = s + 1; i <= e; ++i) { for (int32_t j = i; j > s; --j) { - if (comparFn(elePtrAt(src, size, j), elePtrAt(src, size, j - 1), param) == -1) { + if (comparFn(elePtrAt(src, size, j), elePtrAt(src, size, j - 1), param) < 0) { doswap(elePtrAt(src, size, j), elePtrAt(src, size, j - 1), size, buf); } else { break; From 043fc8d98046afbfea2ae8cb84899391f88b83de Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Wed, 1 Feb 2023 19:11:51 +0800 Subject: [PATCH 29/67] enh: improve logging msgs for sync snapshot repl --- source/libs/sync/src/syncUtil.c | 133 +++++++++++++++----------------- 1 file changed, 63 insertions(+), 70 deletions(-) diff --git a/source/libs/sync/src/syncUtil.c b/source/libs/sync/src/syncUtil.c index b246d9a79d..6a50572cba 100644 --- a/source/libs/sync/src/syncUtil.c +++ b/source/libs/sync/src/syncUtil.c @@ -141,20 +141,15 @@ static void syncLogReplMgrStates2Str(SSyncNode* pSyncNode, char* buf, int32_t bu } static void syncPeerState2Str(SSyncNode* pSyncNode, char* buf, int32_t bufLen) { - int32_t len = 1; - + int32_t len = 0; + len += snprintf(buf + len, bufLen - len, "%s", "{"); for (int32_t i = 0; i < pSyncNode->replicaNum; ++i) { SPeerState* pState = syncNodeGetPeerState(pSyncNode, &(pSyncNode->replicasId[i])); if (pState == NULL) break; - - if (i < pSyncNode->replicaNum - 1) { - len += snprintf(buf + len, bufLen - len, "%d:%" PRId64 " %" PRId64 ", ", i, pState->lastSendIndex, - pState->lastSendTime); - } else { - len += snprintf(buf + len, bufLen - len, "%d:%" PRId64 " %" PRId64 "}", i, pState->lastSendIndex, - pState->lastSendTime); - } + len += snprintf(buf + len, bufLen - len, "%d:%" PRId64 " %" PRId64 "%s", i, pState->lastSendIndex, + pState->lastSendTime, (i < pSyncNode->replicaNum - 1) ? ", " : ""); } + len += snprintf(buf + len, bufLen - len, "%s", "}"); } void syncPrintNodeLog(const char* flags, ELogLevel level, int32_t dflag, SSyncNode* pNode, const char* format, ...) { @@ -245,7 +240,7 @@ void syncPrintSnapshotSenderLog(const char* flags, ELogLevel level, int32_t dfla char cfgStr[1024] = ""; syncCfg2SimpleStr(&pNode->raftCfg.cfg, cfgStr, sizeof(cfgStr)); - char peerStr[1024] = "{"; + char peerStr[1024] = ""; syncPeerState2Str(pNode, peerStr, sizeof(peerStr)); char eventLog[512]; // {0}; @@ -255,20 +250,21 @@ void syncPrintSnapshotSenderLog(const char* flags, ELogLevel level, int32_t dfla va_end(argpointer); taosPrintLog(flags, level, dflag, - "vgId:%d, %s, sync:%s, {%p s-param:%" PRId64 " e-param:%" PRId64 " laindex:%" PRId64 " laterm:%" PRIu64 - " lcindex:%" PRId64 - " seq:%d ack:%d finish:%d replica-index:%d dnode:%d}" - ", tm:%" PRIu64 ", cmt:%" PRId64 ", fst:%" PRId64 ", lst:%" PRId64 ", min:%" PRId64 ", snap:%" PRId64 - ", snap-tm:%" PRIu64 ", sby:%d, stgy:%d, bch:%d, r-num:%d, lcfg:%" PRId64 - ", chging:%d, rsto:%d, dquorum:%d, elt:%" PRId64 ", hb:%" PRId64 ", %s, %s", + "vgId:%d, %s, sync:%s, snap-sender:{%p start:%" PRId64 " end:%" PRId64 " last-index:%" PRId64 + " last-term:%" PRIu64 " last-cfg:%" PRId64 + ", seq:%d ack:%d finish:%d, as:%d dnode:%d}" + ", term:%" PRIu64 ", commit-index:%" PRId64 ", firstver:%" PRId64 ", lastver:%" PRId64 + ", min-match:%" PRId64 ", snap:{last-index:%" PRId64 ", term:%" PRIu64 + "}, standby:%d, batch-sz:%d, replicas:%d, last-cfg:%" PRId64 + ", chging:%d, restore:%d, quorum:%d, lc-timer:{elect:%" PRId64 ", hb:%" PRId64 "}, peer:%s, cfg:%s", pNode->vgId, eventLog, syncStr(pNode->state), pSender, pSender->snapshotParam.start, pSender->snapshotParam.end, pSender->snapshot.lastApplyIndex, pSender->snapshot.lastApplyTerm, pSender->snapshot.lastConfigIndex, pSender->seq, pSender->ack, pSender->finish, pSender->replicaIndex, DID(&pNode->replicasId[pSender->replicaIndex]), pNode->raftStore.currentTerm, pNode->commitIndex, logBeginIndex, logLastIndex, pNode->minMatchIndex, snapshot.lastApplyIndex, snapshot.lastApplyTerm, - pNode->raftCfg.isStandBy, pNode->raftCfg.snapshotStrategy, pNode->raftCfg.batchSize, pNode->replicaNum, - pNode->raftCfg.lastConfigIndex, pNode->changing, pNode->restoreFinish, syncNodeDynamicQuorum(pNode), - pNode->electTimerLogicClock, pNode->heartbeatTimerLogicClockUser, peerStr, cfgStr); + pNode->raftCfg.isStandBy, pNode->raftCfg.batchSize, pNode->replicaNum, pNode->raftCfg.lastConfigIndex, + pNode->changing, pNode->restoreFinish, syncNodeDynamicQuorum(pNode), pNode->electTimerLogicClock, + pNode->heartbeatTimerLogicClockUser, peerStr, cfgStr); } void syncPrintSnapshotReceiverLog(const char* flags, ELogLevel level, int32_t dflag, SSyncSnapshotReceiver* pReceiver, @@ -291,7 +287,7 @@ void syncPrintSnapshotReceiverLog(const char* flags, ELogLevel level, int32_t df char cfgStr[1024] = ""; syncCfg2SimpleStr(&pNode->raftCfg.cfg, cfgStr, sizeof(cfgStr)); - char peerStr[1024] = "{"; + char peerStr[1024] = ""; syncPeerState2Str(pNode, peerStr, sizeof(peerStr)); char eventLog[512]; // {0}; @@ -300,22 +296,22 @@ void syncPrintSnapshotReceiverLog(const char* flags, ELogLevel level, int32_t df int32_t writeLen = vsnprintf(eventLog, sizeof(eventLog), format, argpointer); va_end(argpointer); - taosPrintLog(flags, level, dflag, - "vgId:%d, %s, sync:%s," - " {%p start:%d ack:%d term:%" PRIu64 " start-time:%" PRId64 " from dnode:%d s-param:%" PRId64 - " e-param:%" PRId64 " laindex:%" PRId64 " laterm:%" PRIu64 " lcindex:%" PRId64 - "}" - ", tm:%" PRIu64 ", cmt:%" PRId64 ", fst:%" PRId64 ", lst:%" PRId64 ", min:%" PRId64 ", snap:%" PRId64 - ", snap-tm:%" PRIu64 ", sby:%d, stgy:%d, bch:%d, r-num:%d, lcfg:%" PRId64 - ", chging:%d, rsto:%d, dquorum:%d, elt:%" PRId64 ", hb:%" PRId64 ", %s, %s", - pNode->vgId, eventLog, syncStr(pNode->state), pReceiver, pReceiver->start, pReceiver->ack, - pReceiver->term, pReceiver->startTime, DID(&pReceiver->fromId), pReceiver->snapshotParam.start, - pReceiver->snapshotParam.end, pReceiver->snapshot.lastApplyIndex, pReceiver->snapshot.lastApplyTerm, - pReceiver->snapshot.lastConfigIndex, pNode->raftStore.currentTerm, pNode->commitIndex, logBeginIndex, - logLastIndex, pNode->minMatchIndex, snapshot.lastApplyIndex, snapshot.lastApplyTerm, - pNode->raftCfg.isStandBy, pNode->raftCfg.snapshotStrategy, pNode->raftCfg.batchSize, pNode->replicaNum, - pNode->raftCfg.lastConfigIndex, pNode->changing, pNode->restoreFinish, syncNodeDynamicQuorum(pNode), - pNode->electTimerLogicClock, pNode->heartbeatTimerLogicClockUser, peerStr, cfgStr); + taosPrintLog( + flags, level, dflag, + "vgId:%d, %s, sync:%s," + " snap-receiver:{%p started:%d acked:%d term:%" PRIu64 " start-time:%" PRId64 " from-dnode:%d, start:%" PRId64 + " end:%" PRId64 " last-index:%" PRId64 " last-term:%" PRIu64 " last-cfg:%" PRId64 + "}" + ", term:%" PRIu64 ", commit-index:%" PRId64 ", firstver:%" PRId64 ", lastver:%" PRId64 ", min-match:%" PRId64 + ", snap:{last-index:%" PRId64 ", last-term:%" PRIu64 "}, standby:%d, batch-sz:%d, replicas:%d, last-cfg:%" PRId64 + ", chging:%d, restore:%d, quorum:%d, lc-timers:{elect:%" PRId64 ", hb:%" PRId64 "}, peer:%s, cfg:%s", + pNode->vgId, eventLog, syncStr(pNode->state), pReceiver, pReceiver->start, pReceiver->ack, pReceiver->term, + pReceiver->startTime, DID(&pReceiver->fromId), pReceiver->snapshotParam.start, pReceiver->snapshotParam.end, + pReceiver->snapshot.lastApplyIndex, pReceiver->snapshot.lastApplyTerm, pReceiver->snapshot.lastConfigIndex, + pNode->raftStore.currentTerm, pNode->commitIndex, logBeginIndex, logLastIndex, pNode->minMatchIndex, + snapshot.lastApplyIndex, snapshot.lastApplyTerm, pNode->raftCfg.isStandBy, pNode->raftCfg.batchSize, + pNode->replicaNum, pNode->raftCfg.lastConfigIndex, pNode->changing, pNode->restoreFinish, + syncNodeDynamicQuorum(pNode), pNode->electTimerLogicClock, pNode->heartbeatTimerLogicClockUser, peerStr, cfgStr); } void syncLogRecvTimer(SSyncNode* pSyncNode, const SyncTimeout* pMsg, const char* s) { @@ -351,13 +347,13 @@ void syncLogSendHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, bool int64_t execTime) { if (printX) { sNTrace(pSyncNode, - "send sync-heartbeat to dnode:%d {term:%" PRId64 ", cmt:%" PRId64 ", min-match:%" PRId64 ", ts:%" PRId64 - "}, x", + "send sync-heartbeat to dnode:%d {term:%" PRId64 ", commit-index:%" PRId64 ", min-match:%" PRId64 + ", ts:%" PRId64 "}, x", DID(&pMsg->destId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pMsg->timeStamp); } else { sNTrace(pSyncNode, - "send sync-heartbeat to dnode:%d {term:%" PRId64 ", cmt:%" PRId64 ", min-match:%" PRId64 ", ts:%" PRId64 - "}, timer-elapsed:%" PRId64 ", next-exec:%" PRId64, + "send sync-heartbeat to dnode:%d {term:%" PRId64 ", commit-index:%" PRId64 ", min-match:%" PRId64 + ", ts:%" PRId64 "}, timer-elapsed:%" PRId64 ", next-exec:%" PRId64, DID(&pMsg->destId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pMsg->timeStamp, timerElapsed, execTime); } @@ -368,14 +364,14 @@ void syncLogRecvHeartbeat(SSyncNode* pSyncNode, const SyncHeartbeat* pMsg, int64 pSyncNode->hbSlowNum++; sNInfo(pSyncNode, - "recv sync-heartbeat from dnode:%d slow {term:%" PRId64 ", cmt:%" PRId64 ", min-match:%" PRId64 + "recv sync-heartbeat from dnode:%d slow {term:%" PRId64 ", commit-index:%" PRId64 ", min-match:%" PRId64 ", ts:%" PRId64 "}, %s, net elapsed:%" PRId64, DID(&pMsg->srcId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pMsg->timeStamp, s, timeDiff); } sNTrace(pSyncNode, - "recv sync-heartbeat from dnode:%d {term:%" PRId64 ", cmt:%" PRId64 ", min-match:%" PRId64 ", ts:%" PRId64 - "}, %s, net elapsed:%" PRId64, + "recv sync-heartbeat from dnode:%d {term:%" PRId64 ", commit-index:%" PRId64 ", min-match:%" PRId64 + ", ts:%" PRId64 "}, %s, net elapsed:%" PRId64, DID(&pMsg->srcId), pMsg->term, pMsg->commitIndex, pMsg->minMatchIndex, pMsg->timeStamp, s, timeDiff); } @@ -400,67 +396,64 @@ void syncLogRecvHeartbeatReply(SSyncNode* pSyncNode, const SyncHeartbeatReply* p void syncLogSendSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s) { sNDebug(pSyncNode, - "send sync-snapshot-send to dnode:%d, %s, seq:%d, term:%" PRId64 ", begin:%" PRId64 ", end:%" PRId64 - ", lterm:%" PRId64 ", stime:%" PRId64, + "send sync-snapshot-send to dnode:%d, %s, seq:%d, term:%" PRId64 ", begin-index:%" PRId64 + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, DID(&pMsg->destId), s, pMsg->seq, pMsg->term, pMsg->beginIndex, pMsg->lastIndex, pMsg->lastTerm, pMsg->startTime); } void syncLogRecvSyncSnapshotSend(SSyncNode* pSyncNode, const SyncSnapshotSend* pMsg, const char* s) { sNDebug(pSyncNode, - "recv sync-snapshot-send from dnode:%d, %s, seq:%d, term:%" PRId64 ", begin:%" PRId64 ", lst:%" PRId64 - ", lterm:%" PRId64 ", stime:%" PRId64 ", len:%u", + "recv sync-snapshot-send from dnode:%d, %s, seq:%d, term:%" PRId64 ", begin-index:%" PRId64 + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64 ", data-len:%u", DID(&pMsg->srcId), s, pMsg->seq, pMsg->term, pMsg->beginIndex, pMsg->lastIndex, pMsg->lastTerm, pMsg->startTime, pMsg->dataLen); } void syncLogSendSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s) { sNDebug(pSyncNode, - "send sync-snapshot-rsp to dnode:%d, %s, ack:%d, term:%" PRId64 ", begin:%" PRId64 ", lst:%" PRId64 - ", lterm:%" PRId64 ", stime:%" PRId64, + "send sync-snapshot-rsp to dnode:%d, %s, acked:%d, term:%" PRId64 ", begin-index:%" PRId64 + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, DID(&pMsg->destId), s, pMsg->ack, pMsg->term, pMsg->snapBeginIndex, pMsg->lastIndex, pMsg->lastTerm, pMsg->startTime); } void syncLogRecvSyncSnapshotRsp(SSyncNode* pSyncNode, const SyncSnapshotRsp* pMsg, const char* s) { sNDebug(pSyncNode, - "recv sync-snapshot-rsp from dnode:%d, %s, ack:%d, term:%" PRId64 ", begin:%" PRId64 ", lst:%" PRId64 - ", lterm:%" PRId64 ", stime:%" PRId64, + "recv sync-snapshot-rsp from dnode:%d, %s, ack:%d, term:%" PRId64 ", begin-index:%" PRId64 + ", last-index:%" PRId64 ", last-term:%" PRId64 ", start-time:%" PRId64, DID(&pMsg->srcId), s, pMsg->ack, pMsg->term, pMsg->snapBeginIndex, pMsg->lastIndex, pMsg->lastTerm, pMsg->startTime); } void syncLogRecvAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s) { sNTrace(pSyncNode, - "recv sync-append-entries from dnode:%d {term:%" PRId64 ", pre-index:%" PRId64 ", pre-term:%" PRId64 - ", cmt:%" PRId64 ", pterm:%" PRId64 ", datalen:%d}, %s", - DID(&pMsg->srcId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, pMsg->commitIndex, pMsg->privateTerm, - pMsg->dataLen, s); + "recv sync-append-entries from dnode:%d {term:%" PRId64 ", prev-log:{index:%" PRId64 ", term:%" PRId64 + "}, commit-index:%" PRId64 ", datalen:%d}, %s", + DID(&pMsg->srcId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, pMsg->commitIndex, pMsg->dataLen, s); } void syncLogSendAppendEntries(SSyncNode* pSyncNode, const SyncAppendEntries* pMsg, const char* s) { sNTrace(pSyncNode, - "send sync-append-entries to dnode:%d, {term:%" PRId64 ", pre-index:%" PRId64 ", pre-term:%" PRId64 - ", lsend-index:%" PRId64 ", cmt:%" PRId64 ", datalen:%d}, %s", + "send sync-append-entries to dnode:%d, {term:%" PRId64 ", prev-log:{index:%" PRId64 ", term:%" PRId64 + "}, index:%" PRId64 ", commit-index:%" PRId64 ", datalen:%d}, %s", DID(&pMsg->destId), pMsg->term, pMsg->prevLogIndex, pMsg->prevLogTerm, (pMsg->prevLogIndex + 1), pMsg->commitIndex, pMsg->dataLen, s); } -void syncLogRecvRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, int32_t voteGranted, const char* s) { - if (voteGranted == -1) { - sNInfo(pSyncNode, - "recv sync-request-vote from dnode:%d, {term:%" PRId64 ", lindex:%" PRId64 ", lterm:%" PRId64 "}, %s", - DID(&pMsg->srcId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, s); - } else { - sNInfo(pSyncNode, - "recv sync-request-vote from dnode:%d, {term:%" PRId64 ", lindex:%" PRId64 ", lterm:%" PRId64 - "}, granted:%d", - DID(&pMsg->srcId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, voteGranted); - } +void syncLogRecvRequestVote(SSyncNode* pSyncNode, const SyncRequestVote* pMsg, int32_t voteGranted, + const char* errmsg) { + char statusMsg[64]; + snprintf(statusMsg, sizeof(statusMsg), "granted:%d", voteGranted); + sNInfo(pSyncNode, + "recv sync-request-vote from dnode:%d, {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 "}, %s", + DID(&pMsg->srcId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, + (voteGranted != -1) ? statusMsg : errmsg); } void syncLogSendRequestVote(SSyncNode* pNode, const SyncRequestVote* pMsg, const char* s) { - sNInfo(pNode, "send sync-request-vote to dnode:%d {term:%" PRId64 ", lindex:%" PRId64 ", lterm:%" PRId64 "}, %s", + sNInfo(pNode, + "send sync-request-vote to dnode:%d {term:%" PRId64 ", last-index:%" PRId64 ", last-term:%" PRId64 "}, %s", DID(&pMsg->destId), pMsg->term, pMsg->lastLogIndex, pMsg->lastLogTerm, s); } From 3665ce26e7ca2ab3f6c38747f3ef0c407418ec43 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Wed, 1 Feb 2023 21:32:34 +0800 Subject: [PATCH 30/67] fix: update taos-tools a0234fe for main (#19737) --- cmake/taostools_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 926d0c63e7..1053caf4ef 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG 181bcac + GIT_TAG a0234fe SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 9fe1512c553e0c9f33d858bc85ae26fa48a614e2 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Wed, 1 Feb 2023 22:41:39 +0800 Subject: [PATCH 31/67] refactor: add some logs. --- source/dnode/vnode/src/tsdb/tsdbRead.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbRead.c b/source/dnode/vnode/src/tsdb/tsdbRead.c index 0bb9ebc40e..db52d7604f 100644 --- a/source/dnode/vnode/src/tsdb/tsdbRead.c +++ b/source/dnode/vnode/src/tsdb/tsdbRead.c @@ -1113,9 +1113,9 @@ static int32_t copyBlockDataToSDataBlock(STsdbReader* pReader, STableBlockScanIn int32_t unDumpedRows = asc ? pBlock->nRow - pDumpInfo->rowIndex : pDumpInfo->rowIndex + 1; tsdbDebug("%p copy file block to sdatablock, global index:%d, table index:%d, brange:%" PRId64 "-%" PRId64 - ", rows:%d, remain:%d, minVer:%" PRId64 ", maxVer:%" PRId64 ", elapsed time:%.2f ms, %s", + ", rows:%d, remain:%d, minVer:%" PRId64 ", maxVer:%" PRId64 ", uid:%"PRIu64" elapsed time:%.2f ms, %s", pReader, pBlockIter->index, pBlockInfo->tbBlockIdx, pBlock->minKey.ts, pBlock->maxKey.ts, dumpedRows, - unDumpedRows, pBlock->minVer, pBlock->maxVer, elapsedTime, pReader->idStr); + unDumpedRows, pBlock->minVer, pBlock->maxVer, pBlockInfo->uid, elapsedTime, pReader->idStr); return TSDB_CODE_SUCCESS; } @@ -2187,17 +2187,17 @@ static int32_t initMemDataIterator(STableBlockScanInfo* pBlockScanInfo, STsdbRea if (code == TSDB_CODE_SUCCESS) { pBlockScanInfo->iter.hasVal = (tsdbTbDataIterGet(pBlockScanInfo->iter.iter) != NULL); - tsdbDebug("%p uid:%" PRId64 ", check data in mem from skey:%" PRId64 ", order:%d, ts range in buf:%" PRId64 + tsdbDebug("%p uid:%" PRIu64 ", check data in mem from skey:%" PRId64 ", order:%d, ts range in buf:%" PRId64 "-%" PRId64 " %s", pReader, pBlockScanInfo->uid, startKey.ts, pReader->order, d->minKey, d->maxKey, pReader->idStr); } else { - tsdbError("%p uid:%" PRId64 ", failed to create iterator for imem, code:%s, %s", pReader, pBlockScanInfo->uid, + tsdbError("%p uid:%" PRIu64 ", failed to create iterator for imem, code:%s, %s", pReader, pBlockScanInfo->uid, tstrerror(code), pReader->idStr); return code; } } } else { - tsdbDebug("%p uid:%" PRId64 ", no data in mem, %s", pReader, pBlockScanInfo->uid, pReader->idStr); + tsdbDebug("%p uid:%" PRIu64 ", no data in mem, %s", pReader, pBlockScanInfo->uid, pReader->idStr); } STbData* di = NULL; @@ -2208,17 +2208,17 @@ static int32_t initMemDataIterator(STableBlockScanInfo* pBlockScanInfo, STsdbRea if (code == TSDB_CODE_SUCCESS) { pBlockScanInfo->iiter.hasVal = (tsdbTbDataIterGet(pBlockScanInfo->iiter.iter) != NULL); - tsdbDebug("%p uid:%" PRId64 ", check data in imem from skey:%" PRId64 ", order:%d, ts range in buf:%" PRId64 + tsdbDebug("%p uid:%" PRIu64 ", check data in imem from skey:%" PRId64 ", order:%d, ts range in buf:%" PRId64 "-%" PRId64 " %s", pReader, pBlockScanInfo->uid, startKey.ts, pReader->order, di->minKey, di->maxKey, pReader->idStr); } else { - tsdbError("%p uid:%" PRId64 ", failed to create iterator for mem, code:%s, %s", pReader, pBlockScanInfo->uid, + tsdbError("%p uid:%" PRIu64 ", failed to create iterator for mem, code:%s, %s", pReader, pBlockScanInfo->uid, tstrerror(code), pReader->idStr); return code; } } } else { - tsdbDebug("%p uid:%" PRId64 ", no data in imem, %s", pReader, pBlockScanInfo->uid, pReader->idStr); + tsdbDebug("%p uid:%" PRIu64 ", no data in imem, %s", pReader, pBlockScanInfo->uid, pReader->idStr); } initDelSkylineIterator(pBlockScanInfo, pReader, d, di); @@ -2837,6 +2837,8 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) { SFileDataBlockInfo* pBlockInfo = getCurrentBlockInfo(pBlockIter); SLastBlockReader* pLastBlockReader = pReader->status.fileIter.pLastBlockReader; + ASSERT(pBlockInfo != NULL); + if (pBlockInfo != NULL) { pScanInfo = *(STableBlockScanInfo**)taosHashGet(pReader->status.pTableMap, &pBlockInfo->uid, sizeof(pBlockInfo->uid)); @@ -2857,7 +2859,7 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) { initLastBlockReader(pLastBlockReader, pScanInfo, pReader); TSDBKEY keyInBuf = getCurrentKeyInBuf(pScanInfo, pReader); - if (pBlockInfo == NULL) { // build data block from last data file + /*if (pBlockInfo == NULL) { // build data block from last data file SBlockData* pBData = &pReader->status.fileBlockData; tBlockDataReset(pBData); @@ -2889,7 +2891,7 @@ static int32_t doBuildDataBlock(STsdbReader* pReader) { pReader, pResBlock->info.id.uid, pResBlock->info.window.skey, pResBlock->info.window.ekey, pResBlock->info.rows, el, pReader->idStr); } - } else if (fileBlockShouldLoad(pReader, pBlockInfo, pBlock, pScanInfo, keyInBuf, pLastBlockReader)) { + } else*/ if (fileBlockShouldLoad(pReader, pBlockInfo, pBlock, pScanInfo, keyInBuf, pLastBlockReader)) { code = doLoadFileBlockData(pReader, pBlockIter, &pStatus->fileBlockData, pScanInfo->uid); if (code != TSDB_CODE_SUCCESS) { return code; From 041d0d817a63b514f22637f4478d5eace116f15c Mon Sep 17 00:00:00 2001 From: Liu Jicong Date: Thu, 2 Feb 2023 09:11:17 +0800 Subject: [PATCH 32/67] fix: tq open --- source/dnode/vnode/src/tq/tq.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/dnode/vnode/src/tq/tq.c b/source/dnode/vnode/src/tq/tq.c index b195cfafb0..cca241a1cf 100644 --- a/source/dnode/vnode/src/tq/tq.c +++ b/source/dnode/vnode/src/tq/tq.c @@ -93,21 +93,21 @@ STQ* tqOpen(const char* path, SVnode* pVnode) { taosHashSetFreeFp(pTq->pCheckInfo, (FDelete)tDeleteSTqCheckInfo); if (tqMetaOpen(pTq) < 0) { - ASSERT(0); + return NULL; } pTq->pOffsetStore = tqOffsetOpen(pTq); if (pTq->pOffsetStore == NULL) { - ASSERT(0); + return NULL; } pTq->pStreamMeta = streamMetaOpen(path, pTq, (FTaskExpand*)tqExpandTask, pTq->pVnode->config.vgId); if (pTq->pStreamMeta == NULL) { - ASSERT(0); + return NULL; } if (streamLoadTasks(pTq->pStreamMeta) < 0) { - ASSERT(0); + return NULL; } return pTq; From 1e17f1d482d65daba29c3f5d017d604383578913 Mon Sep 17 00:00:00 2001 From: Liu Jicong Date: Thu, 2 Feb 2023 09:42:06 +0800 Subject: [PATCH 33/67] fix: mem leak --- source/client/src/clientTmq.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/client/src/clientTmq.c b/source/client/src/clientTmq.c index 90c405c204..22739108e2 100644 --- a/source/client/src/clientTmq.c +++ b/source/client/src/clientTmq.c @@ -1891,9 +1891,6 @@ int32_t tmq_consumer_close(tmq_t* tmq) { } tmq_list_destroy(lst); - - /*return rsp;*/ - return 0; } taosRemoveRef(tmqMgmt.rsetId, tmq->refId); return 0; From 69d6fb5bfe504f2a661530762395ec2f22f45a9b Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Thu, 2 Feb 2023 10:20:34 +0800 Subject: [PATCH 34/67] fix(meta): use metaAbort instead of tdbAbort with metaClose --- source/dnode/vnode/src/meta/metaCommit.c | 5 ++++- source/dnode/vnode/src/meta/metaOpen.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/dnode/vnode/src/meta/metaCommit.c b/source/dnode/vnode/src/meta/metaCommit.c index f61930b84c..f597c100d0 100644 --- a/source/dnode/vnode/src/meta/metaCommit.c +++ b/source/dnode/vnode/src/meta/metaCommit.c @@ -56,4 +56,7 @@ int metaPrepareAsyncCommit(SMeta *pMeta) { } // abort the meta txn -int metaAbort(SMeta *pMeta) { return tdbAbort(pMeta->pEnv, pMeta->txn); } +int metaAbort(SMeta *pMeta) { + if (!pMeta->txn) return 0; + return tdbAbort(pMeta->pEnv, pMeta->txn); +} diff --git a/source/dnode/vnode/src/meta/metaOpen.c b/source/dnode/vnode/src/meta/metaOpen.c index 867b481bcc..35677d6f07 100644 --- a/source/dnode/vnode/src/meta/metaOpen.c +++ b/source/dnode/vnode/src/meta/metaOpen.c @@ -203,7 +203,7 @@ _err: int metaClose(SMeta *pMeta) { if (pMeta) { - if (pMeta->pEnv) tdbAbort(pMeta->pEnv, pMeta->txn); + if (pMeta->pEnv) metaAbort(pMeta); if (pMeta->pCache) metaCacheClose(pMeta); if (pMeta->pIdx) metaCloseIdx(pMeta); if (pMeta->pStreamDb) tdbTbClose(pMeta->pStreamDb); From 7f571b1ebdb122d8ce9b0defc29e79076cf47c7f Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 2 Feb 2023 10:59:47 +0800 Subject: [PATCH 35/67] fix: a time point can be fill --- source/libs/parser/src/parTranslater.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/parser/src/parTranslater.c b/source/libs/parser/src/parTranslater.c index 9991c2c6ae..183d1b0c6e 100644 --- a/source/libs/parser/src/parTranslater.c +++ b/source/libs/parser/src/parTranslater.c @@ -2978,7 +2978,7 @@ static int32_t checkFill(STranslateContext* pCxt, SFillNode* pFill, SValueNode* intervalRange = pInterval->datum.i; } - if ((timeRange == 0) || (timeRange / intervalRange) >= MAX_INTERVAL_TIME_WINDOW) { + if ((timeRange / intervalRange) >= MAX_INTERVAL_TIME_WINDOW) { return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_FILL_TIME_RANGE); } From e234dda2de599b0f39ab9f272e46131e0727cb61 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Thu, 2 Feb 2023 11:44:08 +0800 Subject: [PATCH 36/67] fix: interp support filter and scalar calc --- source/libs/executor/src/timesliceoperator.c | 12 ++++++++ tests/script/tsim/parser/interp.sim | 29 ++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/source/libs/executor/src/timesliceoperator.c b/source/libs/executor/src/timesliceoperator.c index 94c98f41c9..6561e810bb 100644 --- a/source/libs/executor/src/timesliceoperator.c +++ b/source/libs/executor/src/timesliceoperator.c @@ -433,6 +433,11 @@ static SSDataBlock* doTimeslice(SOperatorInfo* pOperator) { break; } + if (pSliceInfo->scalarSup.pExprInfo != NULL) { + SExprSupp* pExprSup = &pSliceInfo->scalarSup; + projectApplyFunctions(pExprSup->pExprInfo, pBlock, pBlock, pExprSup->pCtx, pExprSup->numOfExprs, NULL); + } + int32_t code = initKeeperInfo(pSliceInfo, pBlock); if (code != TSDB_CODE_SUCCESS) { T_LONG_JMP(pTaskInfo->env, code); @@ -531,6 +536,8 @@ static SSDataBlock* doTimeslice(SOperatorInfo* pOperator) { taosTimeAdd(pSliceInfo->current, pInterval->interval, pInterval->intervalUnit, pInterval->precision); } + doFilter(pResBlock, pOperator->exprSupp.pFilterInfo, NULL); + // restore the value setTaskStatus(pOperator->pTaskInfo, TASK_COMPLETED); if (pResBlock->info.rows == 0) { @@ -566,6 +573,11 @@ SOperatorInfo* createTimeSliceOperatorInfo(SOperatorInfo* downstream, SPhysiNode } } + code = filterInitFromNode((SNode*)pInterpPhyNode->node.pConditions, &pOperator->exprSupp.pFilterInfo, 0); + if (code != TSDB_CODE_SUCCESS) { + goto _error; + } + pInfo->tsCol = extractColumnFromColumnNode((SColumnNode*)pInterpPhyNode->pTimeSeries); pInfo->fillType = convertFillType(pInterpPhyNode->fillMode); initResultSizeInfo(&pOperator->resultInfo, 4096); diff --git a/tests/script/tsim/parser/interp.sim b/tests/script/tsim/parser/interp.sim index 1b7878178c..e6512a22d7 100644 --- a/tests/script/tsim/parser/interp.sim +++ b/tests/script/tsim/parser/interp.sim @@ -72,4 +72,33 @@ sql_error select interp(*) from nt5931 where ts=now sql_error select interp(*) from st5931 where ts=now sql_error select interp(*) from ct5931 where ts=now +sql create stable sta (ts timestamp, f1 double, f2 binary(200)) tags(t1 int); +sql create table tba1 using sta tags(1); +sql insert into tba1 values ('2022-04-26 15:15:01', -3.0, "a"); +sql insert into tba1 values ('2022-04-26 15:15:05', 3.0, "b"); +sql select a from (select interp(f1) as a from tba1 where ts >= '2022-04-26 15:15:01' and ts <= '2022-04-26 15:15:05' range('2022-04-26 15:15:01','2022-04-26 15:15:05') every(1s) fill(linear)) where a > 0; +if $rows != 2 then + return -1 +endi +if $data00 != 1.500000000 then + return -1 +endi +if $data10 != 3.000000000 then + return -1 +endi + +sql select a from (select interp(f1+1) as a from tba1 where ts >= '2022-04-26 15:15:01' and ts <= '2022-04-26 15:15:05' range('2022-04-26 15:15:01','2022-04-26 15:15:05') every(1s) fill(linear)) where a > 0; +if $rows != 3 then + return -1 +endi +if $data00 != 1.000000000 then + return -1 +endi +if $data10 != 2.500000000 then + return -1 +endi +if $data20 != 4.000000000 then + return -1 +endi + system sh/exec.sh -n dnode1 -s stop -x SIGINT From b9ee0f983f6f7b849d14bc8db3d023ae77fe343d Mon Sep 17 00:00:00 2001 From: chenhaoran Date: Thu, 2 Feb 2023 15:32:02 +0800 Subject: [PATCH 37/67] ci:add ci docker file to TD-rep --- tests/ci/Dockerfile | 48 ++++++++++++++++++++++++++++++ tests/ci/build_image.sh | 4 +++ tests/ci/daily_build_image.sh | 56 +++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 tests/ci/Dockerfile create mode 100755 tests/ci/build_image.sh create mode 100755 tests/ci/daily_build_image.sh diff --git a/tests/ci/Dockerfile b/tests/ci/Dockerfile new file mode 100644 index 0000000000..594bcc902d --- /dev/null +++ b/tests/ci/Dockerfile @@ -0,0 +1,48 @@ +FROM python:3.8 +RUN pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple +RUN pip3 install pandas psutil fabric2 requests faker simplejson toml pexpect tzlocal distro +RUN apt-get update +RUN apt-get install -y psmisc sudo tree libjansson-dev libsnappy-dev liblzma-dev libz-dev zlib1g pkg-config build-essential valgrind \ + vim libjemalloc-dev openssh-server screen sshpass net-tools dirmngr gnupg apt-transport-https ca-certificates software-properties-common r-base iputils-ping +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 +RUN add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/' +RUN apt install -y r-base +ADD go1.17.6.linux-amd64.tar.gz /usr/local/ +ADD jdk-8u144-linux-x64.tar.gz /usr/local/ +ADD apache-maven-3.8.4-bin.tar.gz /usr/local/ +RUN apt-get install wget -y \ + && wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb \ + && dpkg -i packages-microsoft-prod.deb \ + && rm packages-microsoft-prod.deb \ + && apt-get update && apt-get install -y dotnet-sdk-5.0 && apt-get install -y dotnet-sdk-6.0 +ADD node-v12.20.0-linux-x64.tar.gz /usr/local/ +RUN sh -c "rm -f /etc/localtime;ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime;echo \"Asia/Shanghai\" >/etc/timezone" +COPY id_rsa /root/.ssh/id_rsa +COPY .m2 /root/.m2 +COPY .nuget /root/.nuget +COPY .dotnet /root/.dotnet +COPY .cargo /root/.cargo +COPY go /root/go +ADD cmake-3.21.5-linux-x86_64.tar.gz /usr/local/ +RUN echo " export RUSTUP_DIST_SERVER=\"https://rsproxy.cn\" " >> /root/.bashrc +RUN echo " export RUSTUP_UPDATE_ROOT=\"https://rsproxy.cn/rustup\" " >> /root/.bashrc +RUN curl https://sh.rustup.rs -o /tmp/rustup-init.sh +RUN sh /tmp/rustup-init.sh -y +ENV PATH /usr/local/go/bin:/usr/local/node-v12.20.0-linux-x64/bin:/usr/local/apache-maven-3.8.4/bin:/usr/local/jdk1.8.0_144/bin:/usr/local/cmake-3.21.5-linux-x86_64/bin:/root/.cargo/bin:$PATH +ENV JAVA_HOME /usr/local/jdk1.8.0_144 +RUN go env -w GOPROXY=https://goproxy.cn +RUN echo "StrictHostKeyChecking no" >>/etc/ssh/ssh_config +RUN npm config -g set unsafe-perm +RUN npm config -g set registry https://registry.npm.taobao.org +COPY .npm /root/.npm +RUN R CMD javareconf JAVA_HOME=${JAVA_HOME} JAVA=${JAVA_HOME}/bin/java JAVAC=${JAVA_HOME}/bin/javac JAVAH=${JAVA_HOME}/bin/javah JAR=${JAVA_HOME}/bin/jar +RUN echo "install.packages(\"RJDBC\", repos=\"http://cran.us.r-project.org\")"|R --no-save +COPY .gitconfig /root/.gitconfig +RUN mkdir -p /run/sshd +COPY id_rsa.pub /root/.ssh/id_rsa.pub +COPY id_rsa.pub /root/.ssh/authorized_keys +RUN pip3 uninstall -y taostest +COPY repository/TDinternal /home/TDinternal +COPY repository/taos-connector-python /home/taos-connector-python +RUN sh -c "cd /home/taos-connector-python; pip3 install ." +COPY setup.sh /home/setup.sh \ No newline at end of file diff --git a/tests/ci/build_image.sh b/tests/ci/build_image.sh new file mode 100755 index 0000000000..1864df35db --- /dev/null +++ b/tests/ci/build_image.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker build --no-cache -t taos_test:v1.0 . + diff --git a/tests/ci/daily_build_image.sh b/tests/ci/daily_build_image.sh new file mode 100755 index 0000000000..47f0c971d9 --- /dev/null +++ b/tests/ci/daily_build_image.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -x + +script_dir=`dirname $0` +cd $script_dir +script_dir=`pwd` +cd $script_dir/repository/taos-connector-python +git pull + +cd $script_dir/repository/TDinternal +git clean -fxd +git pull + +cd $script_dir/repository/TDinternal/community +git clean -fxd +git pull +git submodule update --init --recursive + +cd $script_dir +./build_image.sh || exit 1 +docker image prune -f +ips="\ +192.168.1.47 \ +192.168.1.48 \ +192.168.1.49 \ +192.168.1.52 \ +192.168.0.215 \ +192.168.0.217 \ +192.168.0.219 \ +" + +image=taos_image.tar + +docker save taos_test:v1.0 -o $image + +for ip in $ips; do + echo "scp $image root@$ip:/home/ &" + scp $image root@$ip:/home/ & +done +wait + +for ip in $ips; do + echo "ssh root@$ip docker load -i /home/$image &" + ssh root@$ip docker load -i /home/$image & +done +wait + +for ip in $ips; do + echo "ssh root@$ip rm -f /home/$image &" + ssh root@$ip rm -f /home/$image & +done +wait + +rm -rf taos_image.tar + From 57a0c8abd20ef2291388221c5d6876dd2469e5a1 Mon Sep 17 00:00:00 2001 From: chenhaoran Date: Thu, 2 Feb 2023 15:52:12 +0800 Subject: [PATCH 38/67] ci:add ci docker file to TD-rep --- tests/ci/daily_build_image.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/ci/daily_build_image.sh b/tests/ci/daily_build_image.sh index 47f0c971d9..01148a3aae 100755 --- a/tests/ci/daily_build_image.sh +++ b/tests/ci/daily_build_image.sh @@ -14,10 +14,14 @@ git pull cd $script_dir/repository/TDinternal/community git clean -fxd -git pull +git checkout main +git pull origin main git submodule update --init --recursive cd $script_dir +cp $script_dir/repository/TDinternal/community/tests/ci/build_image.sh . +cp $script_dir/repository/TDinternal/community/tests/ci/daily_build_image.sh . + ./build_image.sh || exit 1 docker image prune -f ips="\ From a32c8520399e1b5f8694f61d03e77b5e0562d298 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Thu, 2 Feb 2023 16:13:17 +0800 Subject: [PATCH 39/67] fix:add ttl drop response for mnode --- source/dnode/mgmt/mgmt_mnode/src/mmHandle.c | 1 + source/dnode/mnode/impl/src/mndStb.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c index 16fe6c1b91..cf4eaaf7d1 100644 --- a/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c +++ b/source/dnode/mgmt/mgmt_mnode/src/mmHandle.c @@ -167,6 +167,7 @@ SArray *mmGetMsgHandles() { if (dmSetMgmtHandle(pArray, TDMT_VND_CREATE_STB_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_ALTER_STB_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_DROP_STB_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; + if (dmSetMgmtHandle(pArray, TDMT_VND_DROP_TTL_TABLE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_CREATE_SMA_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_DROP_SMA_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; if (dmSetMgmtHandle(pArray, TDMT_VND_TMQ_SUBSCRIBE_RSP, mmPutMsgToWriteQueue, 0) == NULL) goto _OVER; diff --git a/source/dnode/mnode/impl/src/mndStb.c b/source/dnode/mnode/impl/src/mndStb.c index d504a94700..471c53b2f5 100644 --- a/source/dnode/mnode/impl/src/mndStb.c +++ b/source/dnode/mnode/impl/src/mndStb.c @@ -41,6 +41,7 @@ static int32_t mndProcessTtlTimer(SRpcMsg *pReq); static int32_t mndProcessCreateStbReq(SRpcMsg *pReq); static int32_t mndProcessAlterStbReq(SRpcMsg *pReq); static int32_t mndProcessDropStbReq(SRpcMsg *pReq); +static int32_t mndProcessDropTtltbReq(SRpcMsg *pReq); static int32_t mndProcessTableMetaReq(SRpcMsg *pReq); static int32_t mndRetrieveStb(SRpcMsg *pReq, SShowObj *pShow, SSDataBlock *pBlock, int32_t rows); static void mndCancelGetNextStb(SMnode *pMnode, void *pIter); @@ -64,6 +65,7 @@ int32_t mndInitStb(SMnode *pMnode) { mndSetMsgHandle(pMnode, TDMT_MND_ALTER_STB, mndProcessAlterStbReq); mndSetMsgHandle(pMnode, TDMT_MND_DROP_STB, mndProcessDropStbReq); mndSetMsgHandle(pMnode, TDMT_VND_CREATE_STB_RSP, mndTransProcessRsp); + mndSetMsgHandle(pMnode, TDMT_VND_DROP_TTL_TABLE_RSP, mndProcessDropTtltbReq); mndSetMsgHandle(pMnode, TDMT_VND_ALTER_STB_RSP, mndTransProcessRsp); mndSetMsgHandle(pMnode, TDMT_VND_DROP_STB_RSP, mndTransProcessRsp); mndSetMsgHandle(pMnode, TDMT_MND_TABLE_META, mndProcessTableMetaReq); @@ -2176,6 +2178,10 @@ static int32_t mndCheckDropStbForStream(SMnode *pMnode, const char *stbFullName, return 0; } +static int32_t mndProcessDropTtltbReq(SRpcMsg *pRsp) { + return 0; +} + static int32_t mndProcessDropStbReq(SRpcMsg *pReq) { SMnode *pMnode = pReq->info.node; int32_t code = -1; From aab31f655c14a06df56be761a397fb51b566b240 Mon Sep 17 00:00:00 2001 From: Haojun Liao Date: Thu, 2 Feb 2023 16:57:05 +0800 Subject: [PATCH 40/67] fix(query): fix bug in multi-group limit/offset of the merge sort . --- source/libs/executor/src/sortoperator.c | 32 +++++++++++++------------ 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/source/libs/executor/src/sortoperator.c b/source/libs/executor/src/sortoperator.c index 6d3da3e111..98ef6b8a36 100644 --- a/source/libs/executor/src/sortoperator.c +++ b/source/libs/executor/src/sortoperator.c @@ -544,7 +544,6 @@ typedef struct SMultiwayMergeOperatorInfo { SSDataBlock* pIntermediateBlock; // to hold the intermediate result int64_t startTs; // sort start time bool groupSort; - bool hasGroupId; uint64_t groupId; STupleHandle* prefetchedTuple; } SMultiwayMergeOperatorInfo; @@ -591,7 +590,9 @@ int32_t openMultiwayMergeOperator(SOperatorInfo* pOperator) { return TSDB_CODE_SUCCESS; } -static void doGetSortedBlockData(SMultiwayMergeOperatorInfo* pInfo, SSortHandle* pHandle, int32_t capacity, SSDataBlock* p) { +static void doGetSortedBlockData(SMultiwayMergeOperatorInfo* pInfo, SSortHandle* pHandle, int32_t capacity, + SSDataBlock* p, bool* newgroup) { + *newgroup = false; while (1) { STupleHandle* pTupleHandle = NULL; @@ -600,8 +601,12 @@ static void doGetSortedBlockData(SMultiwayMergeOperatorInfo* pInfo, SSortHandle* pTupleHandle = tsortNextTuple(pHandle); } else { pTupleHandle = pInfo->prefetchedTuple; - pInfo->groupId = tsortGetGroupId(pTupleHandle); pInfo->prefetchedTuple = NULL; + uint64_t gid = tsortGetGroupId(pTupleHandle); + if (gid != pInfo->groupId) { + *newgroup = true; + pInfo->groupId = gid; + } } } else { pTupleHandle = tsortNextTuple(pHandle); @@ -614,12 +619,10 @@ static void doGetSortedBlockData(SMultiwayMergeOperatorInfo* pInfo, SSortHandle* if (pInfo->groupSort) { uint64_t tupleGroupId = tsortGetGroupId(pTupleHandle); - if (!pInfo->hasGroupId) { + if (pInfo->groupId == 0 || pInfo->groupId == tupleGroupId) { + appendOneRowToDataBlock(p, pTupleHandle); + p->info.id.groupId = tupleGroupId; pInfo->groupId = tupleGroupId; - pInfo->hasGroupId = true; - appendOneRowToDataBlock(p, pTupleHandle); - } else if (pInfo->groupId == tupleGroupId) { - appendOneRowToDataBlock(p, pTupleHandle); } else { pInfo->prefetchedTuple = pTupleHandle; break; @@ -632,11 +635,6 @@ static void doGetSortedBlockData(SMultiwayMergeOperatorInfo* pInfo, SSortHandle* break; } } - - if (pInfo->groupSort) { - pInfo->hasGroupId = false; - } - } SSDataBlock* getMultiwaySortedBlockData(SSortHandle* pHandle, SSDataBlock* pDataBlock, SArray* pColMatchInfo, @@ -660,14 +658,18 @@ SSDataBlock* getMultiwaySortedBlockData(SSortHandle* pHandle, SSDataBlock* pData } SSDataBlock* p = pInfo->pIntermediateBlock; + bool newgroup = false; while (1) { - doGetSortedBlockData(pInfo, pHandle, capacity, p); + doGetSortedBlockData(pInfo, pHandle, capacity, p, &newgroup); if (p->info.rows == 0) { break; } - // todo fix it: we need to decide whether this block is belonged to previous group or not . + if (newgroup) { + resetLimitInfoForNextGroup(&pInfo->limitInfo); + } + bool limitReached = applyLimitOffset(&pInfo->limitInfo, p, pTaskInfo); if (limitReached) { resetLimitInfoForNextGroup(&pInfo->limitInfo); From 6cdfa6d60f3fd46989ff084b2793d229dd0254ec Mon Sep 17 00:00:00 2001 From: Minglei Jin Date: Thu, 2 Feb 2023 17:51:04 +0800 Subject: [PATCH 41/67] fix(tdb): return success if txn is commited --- source/libs/tdb/src/db/tdbPager.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/libs/tdb/src/db/tdbPager.c b/source/libs/tdb/src/db/tdbPager.c index 62d82edeb1..63e88b0a12 100644 --- a/source/libs/tdb/src/db/tdbPager.c +++ b/source/libs/tdb/src/db/tdbPager.c @@ -457,6 +457,11 @@ int tdbPagerAbort(SPager *pPager, TXN *pTxn) { SPgno journalSize = 0; int ret; + if (pTxn->jfd == 0) { + // txn is commited + return 0; + } + // sync the journal file ret = tdbOsFSync(pTxn->jfd); if (ret < 0) { From 746a6bc243fd110ddd81e1c108244d224e33740b Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Thu, 2 Feb 2023 18:24:25 +0800 Subject: [PATCH 42/67] fix: taosbenchmark handle mem better patch2 for main (#19743) * fix: update taos-tools a0234fe for main * fix: update taos-tools c4a567b --- cmake/taostools_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 1053caf4ef..4da2d80fbb 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG a0234fe + GIT_TAG c4a567b SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From b6b0b3439e8c519a2210842fdc52089bb5f135be Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Thu, 2 Feb 2023 19:34:18 +0800 Subject: [PATCH 43/67] enh: rename syncNodeOnSnapshotPre to syncNodeOnSnapshotPrep --- source/libs/sync/inc/syncSnapshot.h | 2 +- source/libs/sync/src/syncSnapshot.c | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/libs/sync/inc/syncSnapshot.h b/source/libs/sync/inc/syncSnapshot.h index 5277e7818f..063b4f51f5 100644 --- a/source/libs/sync/inc/syncSnapshot.h +++ b/source/libs/sync/inc/syncSnapshot.h @@ -24,7 +24,7 @@ extern "C" { #define SYNC_SNAPSHOT_SEQ_INVALID -2 #define SYNC_SNAPSHOT_SEQ_FORCE_CLOSE -3 -#define SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT -1 +#define SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT -1 #define SYNC_SNAPSHOT_SEQ_BEGIN 0 #define SYNC_SNAPSHOT_SEQ_END 0x7FFFFFFF diff --git a/source/libs/sync/src/syncSnapshot.c b/source/libs/sync/src/syncSnapshot.c index 880c76e4dd..e61bcc9ffc 100644 --- a/source/libs/sync/src/syncSnapshot.c +++ b/source/libs/sync/src/syncSnapshot.c @@ -112,7 +112,7 @@ int32_t snapshotSenderStart(SSyncSnapshotSender *pSender) { pMsg->lastConfigIndex = pSender->snapshot.lastConfigIndex; pMsg->lastConfig = pSender->lastConfig; pMsg->startTime = pSender->startTime; - pMsg->seq = SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT; + pMsg->seq = SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT; // event log syncLogSendSyncSnapshotSend(pSender->pSyncNode, pMsg, "snapshot sender start"); @@ -379,7 +379,7 @@ void snapshotReceiverStart(SSyncSnapshotReceiver *pReceiver, SyncSnapshotSend *p } pReceiver->start = true; - pReceiver->ack = SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT; + pReceiver->ack = SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT; pReceiver->term = pReceiver->pSyncNode->raftStore.currentTerm; pReceiver->fromId = pPreMsg->srcId; pReceiver->startTime = pPreMsg->startTime; @@ -527,7 +527,7 @@ SyncIndex syncNodeGetSnapBeginIndex(SSyncNode *ths) { return snapStart; } -static int32_t syncNodeOnSnapshotPre(SSyncNode *pSyncNode, SyncSnapshotSend *pMsg) { +static int32_t syncNodeOnSnapshotPrep(SSyncNode *pSyncNode, SyncSnapshotSend *pMsg) { SSyncSnapshotReceiver *pReceiver = pSyncNode->pNewNodeReceiver; int64_t timeNow = taosGetTimestampMs(); int32_t code = 0; @@ -565,7 +565,7 @@ _START_RECEIVER: } else { // waiting for clock match while (timeNow < pMsg->startTime) { - sRInfo(pReceiver, "snapshot receiver pre waitting for true time, now:%" PRId64 ", stime:%" PRId64, timeNow, + sRInfo(pReceiver, "snapshot receiver pre waitting for true time, now:%" PRId64 ", startTime:%" PRId64, timeNow, pMsg->startTime); taosMsleep(10); timeNow = taosGetTimestampMs(); @@ -765,7 +765,7 @@ static int32_t syncNodeOnSnapshotEnd(SSyncNode *pSyncNode, SyncSnapshotSend *pMs // receiver on message // -// condition 1, recv SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT +// condition 1, recv SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT // if receiver already start // if sender.start-time > receiver.start-time, restart receiver(reply snapshot start) // if sender.start-time = receiver.start-time, maybe duplicate msg @@ -809,9 +809,9 @@ int32_t syncNodeOnSnapshot(SSyncNode *pSyncNode, const SRpcMsg *pRpcMsg) { int32_t code = 0; if (pSyncNode->state == TAOS_SYNC_STATE_FOLLOWER) { if (pMsg->term == pSyncNode->raftStore.currentTerm) { - if (pMsg->seq == SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT) { + if (pMsg->seq == SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT) { syncLogRecvSyncSnapshotSend(pSyncNode, pMsg, "process seq pre-snapshot"); - code = syncNodeOnSnapshotPre(pSyncNode, pMsg); + code = syncNodeOnSnapshotPrep(pSyncNode, pMsg); } else if (pMsg->seq == SYNC_SNAPSHOT_SEQ_BEGIN) { syncLogRecvSyncSnapshotSend(pSyncNode, pMsg, "process seq begin"); code = syncNodeOnSnapshotBegin(pSyncNode, pMsg); @@ -848,7 +848,7 @@ int32_t syncNodeOnSnapshot(SSyncNode *pSyncNode, const SRpcMsg *pRpcMsg) { return code; } -static int32_t syncNodeOnSnapshotPreRsp(SSyncNode *pSyncNode, SSyncSnapshotSender *pSender, SyncSnapshotRsp *pMsg) { +static int32_t syncNodeOnSnapshotPrepRsp(SSyncNode *pSyncNode, SSyncSnapshotSender *pSender, SyncSnapshotRsp *pMsg) { SSnapshot snapshot = {0}; pSyncNode->pFsm->FpGetSnapshotInfo(pSyncNode->pFsm, &snapshot); @@ -945,8 +945,8 @@ int32_t syncNodeOnSnapshotRsp(SSyncNode *pSyncNode, const SRpcMsg *pRpcMsg) { if (pMsg->startTime != pSender->startTime) { syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "snapshot sender and receiver time not match"); - sSError(pSender, "sender:%" PRId64 " receiver:%" PRId64 " time not match, code:0x%x", pMsg->startTime, - pSender->startTime, pMsg->code); + sSError(pSender, "sender:%" PRId64 " receiver:%" PRId64 " time not match, error:%s 0x%x", pMsg->startTime, + pSender->startTime, tstrerror(pMsg->code), pMsg->code); terrno = TSDB_CODE_SYN_INTERNAL_ERROR; goto _ERROR; } @@ -961,15 +961,15 @@ int32_t syncNodeOnSnapshotRsp(SSyncNode *pSyncNode, const SRpcMsg *pRpcMsg) { if (pMsg->code != 0) { syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "receive error code"); - sSError(pSender, "snapshot sender receive error code:0x%x and stop sender", pMsg->code); + sSError(pSender, "snapshot sender receive error:%s 0x%x and stop sender", tstrerror(pMsg->code), pMsg->code); terrno = pMsg->code; goto _ERROR; } // prepare , send begin msg - if (pMsg->ack == SYNC_SNAPSHOT_SEQ_PRE_SNAPSHOT) { + if (pMsg->ack == SYNC_SNAPSHOT_SEQ_PREP_SNAPSHOT) { syncLogRecvSyncSnapshotRsp(pSyncNode, pMsg, "process seq pre-snapshot"); - return syncNodeOnSnapshotPreRsp(pSyncNode, pSender, pMsg); + return syncNodeOnSnapshotPrepRsp(pSyncNode, pSender, pMsg); } if (pSender->pReader == NULL || pSender->finish) { From 40b745932ce8b17f1381ae12231c5391b16b1b78 Mon Sep 17 00:00:00 2001 From: dapan1121 Date: Thu, 2 Feb 2023 19:39:08 +0800 Subject: [PATCH 44/67] fix: scalar expr memory leak issue --- source/libs/executor/src/timesliceoperator.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/libs/executor/src/timesliceoperator.c b/source/libs/executor/src/timesliceoperator.c index 6561e810bb..bca87079ec 100644 --- a/source/libs/executor/src/timesliceoperator.c +++ b/source/libs/executor/src/timesliceoperator.c @@ -634,6 +634,7 @@ void destroyTimeSliceOperatorInfo(void* param) { taosMemoryFree(pKey->end.val); } taosArrayDestroy(pInfo->pLinearInfo); + cleanupExprSupp(&pInfo->scalarSup); taosMemoryFree(pInfo->pFillColInfo); taosMemoryFreeClear(param); From 6519ef904593ab7c3a1111919832f402b4d3a0f5 Mon Sep 17 00:00:00 2001 From: 54liuyao <54liuyao@163.com> Date: Thu, 2 Feb 2023 15:39:30 +0800 Subject: [PATCH 45/67] ci:add stream ci --- tests/script/tsim/stream/udTableAndTag2.sim | 149 ++++++++++++++++++++ 1 file changed, 149 insertions(+) diff --git a/tests/script/tsim/stream/udTableAndTag2.sim b/tests/script/tsim/stream/udTableAndTag2.sim index 5dd2e3ae2b..bacc301ad0 100644 --- a/tests/script/tsim/stream/udTableAndTag2.sim +++ b/tests/script/tsim/stream/udTableAndTag2.sim @@ -361,6 +361,155 @@ if $data02 != NULL then goto loop8 endi + +print ===== step6 +print ===== table name + +sql create database result5 vgroups 1; + +sql create database test5 vgroups 1; +sql use test5; + + +sql create stable st(ts timestamp,a int,b int,c int) tags(ta int,tb int,tc int); +sql create table t1 using st tags(1,1,1); +sql create table t2 using st tags(2,2,2); + +sql create stream streams51 trigger at_once into result5.streamt51 SUBTABLE("aaa") as select _wstart, count(*) c1 from st interval(10s); +sql create stream streams52 trigger at_once into result5.streamt52 TAGS(cc varchar(100)) as select _wstart, count(*) c1 from st interval(10s); +sql create stream streams53 trigger at_once into result5.streamt53 TAGS(dd varchar(100)) SUBTABLE(concat("aaa-", "1") ) as select _wstart, count(*) c1 from st interval(10s); + +sql insert into t1 values(1648791213000,1,2,3); +sql insert into t2 values(1648791213000,2,2,3); + +$loop_count = 0 +loop9: + +sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +print select table_name from information_schema.ins_tables where db_name="result5" order by 1; + +sql select table_name from information_schema.ins_tables where db_name="result5" order by 1; + +if $rows != 3 then + print =====rows=$rows + print $data00 + print $data10 + print $data20 + print $data40 + goto loop9 +endi + +if $data00 != aaa then + print =====data00=$data00 + goto loop9 +endi + +if $data10 != aaa-1 then + print =====data00=$data00 + goto loop9 +endi + +$loop_count = 0 +loop10: + +sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +print sql select tag_name from information_schema.ins_tags where db_name="result5" and stable_name = "streamt52" order by 1; + +sql select tag_name from information_schema.ins_tags where db_name="result5" and stable_name = "streamt52" order by 1; + +if $rows != 1 then + print =====rows=$rows + print $data00 + print $data10 + goto loop10 +endi + +if $data00 != cc then + print =====data00=$data00 + goto loop10 +endi + +print sql select tag_name from information_schema.ins_tags where db_name="result5" and stable_name = "streamt53" order by 1; + +sql select tag_name from information_schema.ins_tags where db_name="result5" and stable_name = "streamt53" order by 1; + +if $rows != 1 then + print =====rows=$rows + print $data00 + print $data10 + goto loop10 +endi + +if $data00 != dd then + print =====data00=$data00 + goto loop10 +endi + + + + + +$loop_count = 0 +loop11: + +sleep 300 + +$loop_count = $loop_count + 1 +if $loop_count == 10 then + return -1 +endi + +sql select * from result5.streamt51; + +if $rows != 1 then + print =====rows=$rows + print $data00 $data10 + goto loop11 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop11 +endi + +sql select * from result5.streamt52; + +if $rows != 1 then + print =====rows=$rows + print $data00 $data10 + goto loop11 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop11 +endi + +sql select * from result5.streamt53; + +if $rows != 1 then + print =====rows=$rows + print $data00 $data10 + goto loop11 +endi + +if $data01 != 2 then + print =====data01=$data01 + goto loop11 +endi + print ======over system sh/stop_dnodes.sh From 561ee87e9dd9a5ef2f1a6e9e3edba00b624b01d7 Mon Sep 17 00:00:00 2001 From: Benguang Zhao Date: Fri, 3 Feb 2023 09:22:00 +0800 Subject: [PATCH 46/67] enh: change the level of sync probe logging msg to trace --- source/libs/sync/src/syncPipeline.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libs/sync/src/syncPipeline.c b/source/libs/sync/src/syncPipeline.c index 6cc517fda0..bb3bb0d6a4 100644 --- a/source/libs/sync/src/syncPipeline.c +++ b/source/libs/sync/src/syncPipeline.c @@ -830,7 +830,7 @@ int32_t syncLogReplMgrReplicateProbe(SSyncLogReplMgr* pMgr, SSyncNode* pNode, Sy pMgr->endIndex = index + 1; SSyncLogBuffer* pBuf = pNode->pLogBuf; - sInfo("vgId:%d, probe peer:%" PRIx64 " with msg of index:%" PRId64 " term: %" PRId64 ". mgr (rs:%d): [%" PRId64 + sTrace("vgId:%d, probe peer:%" PRIx64 " with msg of index:%" PRId64 " term: %" PRId64 ". mgr (rs:%d): [%" PRId64 " %" PRId64 ", %" PRId64 "), buffer: [%" PRId64 " %" PRId64 " %" PRId64 ", %" PRId64 ")", pNode->vgId, pDestId->addr, index, term, pMgr->restored, pMgr->startIndex, pMgr->matchIndex, pMgr->endIndex, pBuf->startIndex, pBuf->commitIndex, pBuf->matchIndex, pBuf->endIndex); From d83a94bb195bcbd6e0c68ebcbb65cb511b7672f6 Mon Sep 17 00:00:00 2001 From: Liu Jicong Date: Fri, 3 Feb 2023 09:48:50 +0800 Subject: [PATCH 47/67] fix: check dup rebalance --- source/dnode/mnode/impl/src/mndConsumer.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/source/dnode/mnode/impl/src/mndConsumer.c b/source/dnode/mnode/impl/src/mndConsumer.c index 3bbf4a4279..1aa2fa997b 100644 --- a/source/dnode/mnode/impl/src/mndConsumer.c +++ b/source/dnode/mnode/impl/src/mndConsumer.c @@ -836,10 +836,13 @@ static int32_t mndConsumerActionUpdate(SSdb *pSdb, SMqConsumerObj *pOldConsumer, char *addedTopic = strdup(taosArrayGetP(pNewConsumer->rebNewTopics, 0)); // not exist in current topic + bool existing = false; #if 1 for (int32_t i = 0; i < taosArrayGetSize(pOldConsumer->currentTopics); i++) { char *topic = taosArrayGetP(pOldConsumer->currentTopics, i); - ASSERT(strcmp(topic, addedTopic) != 0); + if (strcmp(topic, addedTopic) == 0) { + existing = true; + } } #endif @@ -854,8 +857,10 @@ static int32_t mndConsumerActionUpdate(SSdb *pSdb, SMqConsumerObj *pOldConsumer, } // add to current topic - taosArrayPush(pOldConsumer->currentTopics, &addedTopic); - taosArraySort(pOldConsumer->currentTopics, taosArrayCompareString); + if (!existing) { + taosArrayPush(pOldConsumer->currentTopics, &addedTopic); + taosArraySort(pOldConsumer->currentTopics, taosArrayCompareString); + } // set status if (taosArrayGetSize(pOldConsumer->rebNewTopics) == 0 && taosArrayGetSize(pOldConsumer->rebRemovedTopics) == 0) { From 49631f6e9647617ef13c230d7e3f31d9b7c27a18 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 3 Feb 2023 14:34:55 +0800 Subject: [PATCH 48/67] fix: snapshot coredump caused by type --- source/dnode/vnode/src/tsdb/tsdbSnapshot.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c index 98c9c0fdda..e8181f922f 100644 --- a/source/dnode/vnode/src/tsdb/tsdbSnapshot.c +++ b/source/dnode/vnode/src/tsdb/tsdbSnapshot.c @@ -1205,7 +1205,7 @@ static int32_t tsdbSnapWriteTableRow(STsdbSnapWriter* pWriter, TSDBROW* pRow) { TSDB_CHECK_CODE(code, lino, _exit); } - tMapDataPutItem(&pWriter->pDIter->dIter.mDataBlk, &dataBlk, tPutDataBlk); + tMapDataPutItem(&pWriter->mDataBlk, &dataBlk, tPutDataBlk); pWriter->pDIter->dIter.iDataBlk++; } else { code = tsdbReadDataBlockEx(pWriter->pDataFReader, &dataBlk, &pWriter->pDIter->dIter.bData); From 9ca44cd5cd2e798a72f36b94e03ec9f0d42f4383 Mon Sep 17 00:00:00 2001 From: cadem Date: Fri, 3 Feb 2023 16:08:16 +0800 Subject: [PATCH 49/67] docs:fix docs table format --- docs/en/14-reference/12-config/index.md | 12 ++---------- docs/zh/14-reference/12-config/index.md | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/docs/en/14-reference/12-config/index.md b/docs/en/14-reference/12-config/index.md index 9e56a0b0bf..9d0c7de033 100644 --- a/docs/en/14-reference/12-config/index.md +++ b/docs/en/14-reference/12-config/index.md @@ -162,11 +162,7 @@ The parameters described in this document by the effect that they have on the sy | Meaning | Execution policy for query statements | | Unit | None | | Default | 1 | -| Value Range | 1: Run queries on vnodes and not on qnodes - -2: Run subtasks without scan operators on qnodes and subtasks with scan operators on vnodes. - -3: Only run scan operators on vnodes; run all other operators on qnodes. | +| Value Range | 1: Run queries on vnodes and not on qnodes
2: Run subtasks without scan operators on qnodes and subtasks with scan operators on vnodes.
3: Only run scan operators on vnodes; run all other operators on qnodes. | ### querySmaOptimize @@ -176,11 +172,7 @@ The parameters described in this document by the effect that they have on the sy | Meaning | SMA index optimization policy | | Unit | None | | Default Value | 0 | -| Notes | - -0: Disable SMA indexing and perform all queries on non-indexed data. - -1: Enable SMA indexing and perform queries from suitable statements on precomputation results.| +| Notes |0: Disable SMA indexing and perform all queries on non-indexed data.
1: Enable SMA indexing and perform queries from suitable statements on precomputation results.| ### countAlwaysReturnValue diff --git a/docs/zh/14-reference/12-config/index.md b/docs/zh/14-reference/12-config/index.md index 503f692764..6cef0059b4 100644 --- a/docs/zh/14-reference/12-config/index.md +++ b/docs/zh/14-reference/12-config/index.md @@ -162,11 +162,7 @@ taos --dump-config | 含义 | 查询语句的执行策略 | | 单位 | 无 | | 缺省值 | 1 | -| 补充说明 | 1: 只使用 vnode,不使用 qnode | - -2: 没有扫描算子的子任务在 qnode 执行,带扫描算子的子任务在 vnode 执行 - -3: vnode 只运行扫描算子,其余算子均在 qnode 执行 | +| 补充说明 | 1: 只使用 vnode,不使用 qnode
2: 没有扫描算子的子任务在 qnode 执行,带扫描算子的子任务在 vnode 执行
3: vnode 只运行扫描算子,其余算子均在 qnode 执行 | ### querySmaOptimize @@ -176,11 +172,7 @@ taos --dump-config | 含义 | sma index 的优化策略 | | 单位 | 无 | | 缺省值 | 0 | -| 补充说明 | - -0: 表示不使用 sma index,永远从原始数据进行查询 - -1: 表示使用 sma index,对符合的语句,直接从预计算的结果进行查询 | +| 补充说明 |0: 表示不使用 sma index,永远从原始数据进行查询
1: 表示使用 sma index,对符合的语句,直接从预计算的结果进行查询 | ### maxNumOfDistinctRes From ff31b94c874f01163970868552a6c10815d1451d Mon Sep 17 00:00:00 2001 From: cadem Date: Fri, 3 Feb 2023 16:18:56 +0800 Subject: [PATCH 50/67] docs:fix documents confusing wording --- docs/zh/14-reference/12-config/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/14-reference/12-config/index.md b/docs/zh/14-reference/12-config/index.md index 503f692764..560b9b86ca 100644 --- a/docs/zh/14-reference/12-config/index.md +++ b/docs/zh/14-reference/12-config/index.md @@ -389,7 +389,7 @@ charset 的有效值是 UTF-8。 | 属性 | 说明 | | -------- | -------------------------------------------- | | 适用范围 | 服务端和客户端均适用 | -| 含义 | 当日志文件夹的磁盘大小小于该值时,停止写日志 | +| 含义 | 当日志文件夹所在磁盘可用空间大小小于该值时,停止写日志 | | 单位 | GB | | 缺省值 | 1.0 | From c21ab3b345b92ceb2852648e86f7663342500c85 Mon Sep 17 00:00:00 2001 From: wade zhang <95411902+gccgdb1234@users.noreply.github.com> Date: Fri, 3 Feb 2023 16:54:45 +0800 Subject: [PATCH 51/67] Update index.md --- docs/en/14-reference/12-config/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/14-reference/12-config/index.md b/docs/en/14-reference/12-config/index.md index 9d0c7de033..48864636b0 100644 --- a/docs/en/14-reference/12-config/index.md +++ b/docs/en/14-reference/12-config/index.md @@ -162,7 +162,7 @@ The parameters described in this document by the effect that they have on the sy | Meaning | Execution policy for query statements | | Unit | None | | Default | 1 | -| Value Range | 1: Run queries on vnodes and not on qnodes
2: Run subtasks without scan operators on qnodes and subtasks with scan operators on vnodes.
3: Only run scan operators on vnodes; run all other operators on qnodes. | +| Value Range | 1: Run queries on vnodes and not on qnodes; 2: Run subtasks without scan operators on qnodes and subtasks with scan operators on vnodes; 3: Only run scan operators on vnodes, and run all other operators on qnodes. | ### querySmaOptimize From 595e87cddf23cf31449f9b5ec7debd7e2d6ff5a3 Mon Sep 17 00:00:00 2001 From: wade zhang <95411902+gccgdb1234@users.noreply.github.com> Date: Fri, 3 Feb 2023 16:55:59 +0800 Subject: [PATCH 52/67] Update index.md --- docs/zh/14-reference/12-config/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/14-reference/12-config/index.md b/docs/zh/14-reference/12-config/index.md index e751959421..c7a26d8051 100644 --- a/docs/zh/14-reference/12-config/index.md +++ b/docs/zh/14-reference/12-config/index.md @@ -162,7 +162,7 @@ taos --dump-config | 含义 | 查询语句的执行策略 | | 单位 | 无 | | 缺省值 | 1 | -| 补充说明 | 1: 只使用 vnode,不使用 qnode
2: 没有扫描算子的子任务在 qnode 执行,带扫描算子的子任务在 vnode 执行
3: vnode 只运行扫描算子,其余算子均在 qnode 执行 | +| 补充说明 | 1: 只使用 vnode,不使用 qnode; 2: 没有扫描算子的子任务在 qnode 执行,带扫描算子的子任务在 vnode 执行; 3: vnode 只运行扫描算子,其余算子均在 qnode 执行 | ### querySmaOptimize From 8292bb838eef8e146bc8f9ef1c33a33908c96568 Mon Sep 17 00:00:00 2001 From: wade zhang <95411902+gccgdb1234@users.noreply.github.com> Date: Fri, 3 Feb 2023 17:13:51 +0800 Subject: [PATCH 53/67] Update index.md --- docs/zh/14-reference/12-config/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/zh/14-reference/12-config/index.md b/docs/zh/14-reference/12-config/index.md index c7a26d8051..28b409de30 100644 --- a/docs/zh/14-reference/12-config/index.md +++ b/docs/zh/14-reference/12-config/index.md @@ -172,7 +172,7 @@ taos --dump-config | 含义 | sma index 的优化策略 | | 单位 | 无 | | 缺省值 | 0 | -| 补充说明 |0: 表示不使用 sma index,永远从原始数据进行查询
1: 表示使用 sma index,对符合的语句,直接从预计算的结果进行查询 | +| 补充说明 |0: 表示不使用 sma index,永远从原始数据进行查询; 1: 表示使用 sma index,对符合的语句,直接从预计算的结果进行查询 | ### maxNumOfDistinctRes From 889b7ea872bcc1afd98be71353b52fd3f16f2fbe Mon Sep 17 00:00:00 2001 From: wade zhang <95411902+gccgdb1234@users.noreply.github.com> Date: Fri, 3 Feb 2023 17:14:18 +0800 Subject: [PATCH 54/67] Update index.md --- docs/en/14-reference/12-config/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/14-reference/12-config/index.md b/docs/en/14-reference/12-config/index.md index 48864636b0..e6fd6dbe6f 100644 --- a/docs/en/14-reference/12-config/index.md +++ b/docs/en/14-reference/12-config/index.md @@ -172,7 +172,7 @@ The parameters described in this document by the effect that they have on the sy | Meaning | SMA index optimization policy | | Unit | None | | Default Value | 0 | -| Notes |0: Disable SMA indexing and perform all queries on non-indexed data.
1: Enable SMA indexing and perform queries from suitable statements on precomputation results.| +| Notes |0: Disable SMA indexing and perform all queries on non-indexed data; 1: Enable SMA indexing and perform queries from suitable statements on precomputation results.| ### countAlwaysReturnValue From 5108e454cd96c434099b2f1fc027f96b78097162 Mon Sep 17 00:00:00 2001 From: WANG Xu Date: Fri, 3 Feb 2023 17:44:47 +0800 Subject: [PATCH 55/67] Update 02-database.md Use the same database name "db_name" in all the examples; "SHOW CREATE DATABASE db_name" should be run with \G, otherwise the output is not complete. --- docs/zh/12-taos-sql/02-database.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/zh/12-taos-sql/02-database.md b/docs/zh/12-taos-sql/02-database.md index fc35da8636..b0a84af6dc 100644 --- a/docs/zh/12-taos-sql/02-database.md +++ b/docs/zh/12-taos-sql/02-database.md @@ -142,7 +142,7 @@ SHOW DATABASES; ### 显示一个数据库的创建语句 ``` -SHOW CREATE DATABASE db_name; +SHOW CREATE DATABASE db_name \G; ``` 常用于数据库迁移。对一个已经存在的数据库,返回其创建语句;在另一个集群中执行该语句,就能得到一个设置完全相同的 Database。 @@ -150,7 +150,7 @@ SHOW CREATE DATABASE db_name; ### 查看数据库参数 ```sql -SELECT * FROM INFORMATION_SCHEMA.INS_DATABASES WHERE NAME='DBNAME' \G; +SELECT * FROM INFORMATION_SCHEMA.INS_DATABASES WHERE NAME='db_name' \G; ``` 会列出指定数据库的配置参数,并且每行只显示一个参数。 @@ -177,4 +177,4 @@ REDISTRIBUTE VGROUP vgroup_no DNODE dnode_id1 [DNODE dnode_id2] [DNODE dnode_id3 BALANCE VGROUP ``` -自动调整集群所有vgroup中的vnode分布,相当于在vnode级别对集群进行数据的负载均衡操作。 \ No newline at end of file +自动调整集群所有vgroup中的vnode分布,相当于在vnode级别对集群进行数据的负载均衡操作。 From 4a87a58c655e13f07776778148913a7c64dd7c35 Mon Sep 17 00:00:00 2001 From: xiaolei li <85657333+xleili@users.noreply.github.com> Date: Sat, 4 Feb 2023 02:10:47 +0800 Subject: [PATCH 56/67] docs(node):fix node-rest example failed (#19797) --- docs/examples/node/restexample/connect.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/docs/examples/node/restexample/connect.js b/docs/examples/node/restexample/connect.js index bb027d4fe8..f36472b4c0 100644 --- a/docs/examples/node/restexample/connect.js +++ b/docs/examples/node/restexample/connect.js @@ -3,18 +3,14 @@ const { options, connect } = require("@tdengine/rest"); async function test() { options.path = "/rest/sql"; options.host = "localhost"; + options.port = 6041; let conn = connect(options); let cursor = conn.cursor(); try { let res = await cursor.query("SELECT server_version()"); - res.toString(); + console.log("res.getResult()",res.getResult()); } catch (err) { console.log(err); } } test(); - -// output: -// server_version() | -// =================== -// 3.0.0.0 | From d0dc6dc5ef668d0f10116ea83d0c9bd27f803fd0 Mon Sep 17 00:00:00 2001 From: xiaolei li <85657333+xleili@users.noreply.github.com> Date: Sat, 4 Feb 2023 13:27:10 +0800 Subject: [PATCH 57/67] docs(driver):update c# examples' .NET to 6.0 (#19795) --- docs/examples/csharp/wsConnect/wsConnect.csproj | 2 +- docs/examples/csharp/wsInsert/wsInsert.csproj | 2 +- docs/examples/csharp/wsQuery/wsQuery.csproj | 2 +- docs/examples/csharp/wsStmt/wsStmt.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/examples/csharp/wsConnect/wsConnect.csproj b/docs/examples/csharp/wsConnect/wsConnect.csproj index 6d78be6e7a..c7988b6e9c 100644 --- a/docs/examples/csharp/wsConnect/wsConnect.csproj +++ b/docs/examples/csharp/wsConnect/wsConnect.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 diff --git a/docs/examples/csharp/wsInsert/wsInsert.csproj b/docs/examples/csharp/wsInsert/wsInsert.csproj index 95bfbdea3d..5aa419b2c8 100644 --- a/docs/examples/csharp/wsInsert/wsInsert.csproj +++ b/docs/examples/csharp/wsInsert/wsInsert.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 enable diff --git a/docs/examples/csharp/wsQuery/wsQuery.csproj b/docs/examples/csharp/wsQuery/wsQuery.csproj index e5c2cf767c..bcc7c19a59 100644 --- a/docs/examples/csharp/wsQuery/wsQuery.csproj +++ b/docs/examples/csharp/wsQuery/wsQuery.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 enable diff --git a/docs/examples/csharp/wsStmt/wsStmt.csproj b/docs/examples/csharp/wsStmt/wsStmt.csproj index e5c2cf767c..bcc7c19a59 100644 --- a/docs/examples/csharp/wsStmt/wsStmt.csproj +++ b/docs/examples/csharp/wsStmt/wsStmt.csproj @@ -2,7 +2,7 @@ Exe - net5.0 + net6.0 enable From 44cb5ae7d525563f0dcc2404771200787622d2f9 Mon Sep 17 00:00:00 2001 From: Shuduo Sang Date: Sat, 4 Feb 2023 22:36:19 +0800 Subject: [PATCH 58/67] fix: taosbenchmark exist stb (#19801) * fix: taosbenchmark reuse exist stb * fix: update taos-tools dd8d99f * fix: update taos-tools 3eb18bc * fix: update taos-tools bff4e31 * fix: update taos-tools ad47fef * fix: update taos-tools f177a39 * fix: update taos-tools 19e725f * fix: update taos-tools 6a2d9fc --- cmake/taostools_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taostools_CMakeLists.txt.in b/cmake/taostools_CMakeLists.txt.in index 4da2d80fbb..37dd448b87 100644 --- a/cmake/taostools_CMakeLists.txt.in +++ b/cmake/taostools_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taos-tools ExternalProject_Add(taos-tools GIT_REPOSITORY https://github.com/taosdata/taos-tools.git - GIT_TAG c4a567b + GIT_TAG 6a2d9fc SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 7a110083162c809f45bb21033e12194e0fb89f05 Mon Sep 17 00:00:00 2001 From: danielclow <106956386+danielclow@users.noreply.github.com> Date: Mon, 6 Feb 2023 00:07:16 +0800 Subject: [PATCH 59/67] doc: add descriptions to all docs --- docs/en/01-index.md | 1 + docs/en/02-intro/index.md | 1 + docs/en/04-concept/index.md | 1 + docs/en/05-get-started/01-docker.md | 3 ++- docs/en/05-get-started/03-package.md | 3 ++- docs/en/05-get-started/index.md | 2 +- docs/en/07-develop/01-connect/index.md | 4 ++-- docs/en/07-develop/02-model/index.mdx | 1 + docs/en/07-develop/03-insert-data/01-sql-writing.mdx | 1 + docs/en/07-develop/03-insert-data/20-kafka-writting.mdx | 1 + docs/en/07-develop/03-insert-data/30-influxdb-line.mdx | 3 ++- docs/en/07-develop/03-insert-data/40-opentsdb-telnet.mdx | 3 ++- docs/en/07-develop/03-insert-data/50-opentsdb-json.mdx | 3 ++- docs/en/07-develop/03-insert-data/60-high-volume.md | 3 ++- docs/en/07-develop/03-insert-data/index.md | 1 + docs/en/07-develop/04-query-data/index.mdx | 2 +- docs/en/07-develop/06-stream.md | 4 ++-- docs/en/07-develop/08-cache.md | 4 ++-- docs/en/07-develop/09-udf.md | 4 ++-- docs/en/07-develop/index.md | 1 + docs/en/10-deployment/01-deploy.md | 3 ++- docs/en/10-deployment/03-k8s.md | 3 ++- docs/en/10-deployment/05-helm.md | 3 ++- docs/en/10-deployment/index.md | 1 + docs/en/12-taos-sql/01-data-type.md | 4 ++-- docs/en/12-taos-sql/02-database.md | 4 ++-- docs/en/12-taos-sql/03-table.md | 1 + docs/en/12-taos-sql/04-stable.md | 3 ++- docs/en/12-taos-sql/05-insert.md | 3 ++- docs/en/12-taos-sql/06-select.md | 3 ++- docs/en/12-taos-sql/08-delete-data.mdx | 4 ++-- docs/en/12-taos-sql/10-function.md | 3 ++- docs/en/12-taos-sql/12-distinguished.md | 3 ++- docs/en/12-taos-sql/13-tmq.md | 3 ++- docs/en/12-taos-sql/14-stream.md | 3 ++- docs/en/12-taos-sql/16-operators.md | 3 ++- docs/en/12-taos-sql/17-json.md | 3 ++- docs/en/12-taos-sql/18-escape.md | 1 + docs/en/12-taos-sql/19-limit.md | 3 ++- docs/en/12-taos-sql/20-keywords.md | 3 ++- docs/en/12-taos-sql/21-node.md | 3 ++- docs/en/12-taos-sql/22-meta.md | 3 ++- docs/en/12-taos-sql/23-perf.md | 3 ++- docs/en/12-taos-sql/24-show.md | 3 ++- docs/en/12-taos-sql/25-grant.md | 4 ++-- docs/en/12-taos-sql/26-udf.md | 3 ++- docs/en/12-taos-sql/27-index.md | 5 +++-- docs/en/12-taos-sql/28-recovery.md | 3 ++- docs/en/12-taos-sql/29-changes.md | 4 ++-- docs/en/12-taos-sql/index.md | 2 +- docs/en/13-operation/01-pkg-install.md | 2 +- docs/en/13-operation/02-planning.mdx | 3 ++- docs/en/13-operation/03-tolerance.md | 1 + docs/en/13-operation/07-import.md | 1 + docs/en/13-operation/08-export.md | 1 + docs/en/13-operation/10-monitor.md | 1 + docs/en/13-operation/17-diagnose.md | 1 + docs/en/13-operation/index.md | 1 + docs/en/14-reference/02-rest-api/02-rest-api.mdx | 1 + docs/en/14-reference/03-connector/03-cpp.mdx | 3 ++- docs/en/14-reference/03-connector/04-java.mdx | 6 +++--- docs/en/14-reference/03-connector/05-go.mdx | 5 +++-- docs/en/14-reference/03-connector/06-rust.mdx | 5 +++-- docs/en/14-reference/03-connector/07-python.mdx | 4 ++-- docs/en/14-reference/03-connector/08-node.mdx | 5 +++-- docs/en/14-reference/03-connector/09-csharp.mdx | 5 +++-- docs/en/14-reference/03-connector/10-php.mdx | 3 ++- docs/en/14-reference/03-connector/index.mdx | 1 + docs/en/14-reference/04-taosadapter.md | 6 +++--- docs/en/14-reference/05-taosbenchmark.md | 2 +- docs/en/14-reference/06-taosdump.md | 2 +- docs/en/14-reference/07-tdinsight/index.md | 1 + docs/en/14-reference/08-taos-shell.md | 2 +- docs/en/14-reference/09-support-platform/index.md | 2 +- docs/en/14-reference/11-docker/index.md | 2 +- docs/en/14-reference/12-config/index.md | 2 +- docs/en/14-reference/12-directory.md | 2 +- docs/en/14-reference/13-schemaless/13-schemaless.md | 2 +- docs/en/14-reference/14-taosKeeper.md | 2 +- docs/en/14-reference/index.md | 1 + docs/en/20-third-party/01-grafana.mdx | 3 ++- docs/en/20-third-party/02-prometheus.md | 3 ++- docs/en/20-third-party/03-telegraf.md | 3 ++- docs/en/20-third-party/05-collectd.md | 3 ++- docs/en/20-third-party/06-statsd.md | 3 ++- docs/en/20-third-party/07-icinga2.md | 3 ++- docs/en/20-third-party/08-tcollector.md | 3 ++- docs/en/20-third-party/09-emq-broker.md | 3 ++- docs/en/20-third-party/10-hive-mq-broker.md | 3 ++- docs/en/20-third-party/11-kafka.md | 3 ++- docs/en/20-third-party/12-google-data-studio.md | 3 ++- docs/en/20-third-party/13-Jupyter.md | 3 ++- docs/en/20-third-party/index.md | 1 + docs/en/21-tdinternal/01-arch.md | 3 ++- docs/en/21-tdinternal/03-high-availability.md | 3 ++- docs/en/21-tdinternal/04-load-balance.md | 3 ++- docs/en/21-tdinternal/index.md | 1 + docs/en/25-application/01-telegraf.md | 3 ++- docs/en/25-application/02-collectd.md | 3 ++- docs/en/25-application/03-immigrate.md | 3 ++- docs/en/25-application/index.md | 1 + docs/en/27-train-faq/01-faq.md | 1 + docs/en/27-train-faq/index.md | 1 + docs/en/28-releases/01-tdengine.md | 4 ++-- docs/en/28-releases/02-tools.md | 4 ++-- docs/en/28-releases/index.md | 1 + 106 files changed, 179 insertions(+), 100 deletions(-) diff --git a/docs/en/01-index.md b/docs/en/01-index.md index 13552ea9dc..296cd96898 100644 --- a/docs/en/01-index.md +++ b/docs/en/01-index.md @@ -1,6 +1,7 @@ --- title: TDengine Documentation sidebar_label: Documentation Home +description: This website contains the user manuals for TDengine, an open-source, cloud-native time-series database optimized for IoT, Connected Cars, and Industrial IoT. slug: / --- diff --git a/docs/en/02-intro/index.md b/docs/en/02-intro/index.md index a60bfab2cc..95dd4324f1 100644 --- a/docs/en/02-intro/index.md +++ b/docs/en/02-intro/index.md @@ -1,5 +1,6 @@ --- title: Introduction +description: This document introduces the major features, competitive advantages, typical use cases, and benchmarks of TDengine. toc_max_heading_level: 2 --- diff --git a/docs/en/04-concept/index.md b/docs/en/04-concept/index.md index 0b1b226c17..771a061c31 100644 --- a/docs/en/04-concept/index.md +++ b/docs/en/04-concept/index.md @@ -1,5 +1,6 @@ --- title: Concepts +description: This document describes the basic concepts of TDengine, including the supertable. --- In order to explain the basic concepts and provide some sample code, the TDengine documentation smart meters as a typical time series use case. We assume the following: 1. Each smart meter collects three metrics i.e. current, voltage, and phase; 2. There are multiple smart meters; 3. Each meter has static attributes like location and group ID. Based on this, collected data will look similar to the following table: diff --git a/docs/en/05-get-started/01-docker.md b/docs/en/05-get-started/01-docker.md index ac273daba4..42e6861674 100644 --- a/docs/en/05-get-started/01-docker.md +++ b/docs/en/05-get-started/01-docker.md @@ -1,6 +1,7 @@ --- -sidebar_label: Docker title: Quick Install on Docker +sidebar_label: Docker +description: This document describes how to install TDengine in a Docker container and perform queries and inserts. --- This document describes how to install TDengine in a Docker container and perform queries and inserts. diff --git a/docs/en/05-get-started/03-package.md b/docs/en/05-get-started/03-package.md index 54d2e046c2..a0c1d93983 100644 --- a/docs/en/05-get-started/03-package.md +++ b/docs/en/05-get-started/03-package.md @@ -1,6 +1,7 @@ --- -sidebar_label: Package title: Quick Install from Package +sidebar_label: Package +description: This document describes how to install TDengine on Linux, Windows, and macOS and perform queries and inserts. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/05-get-started/index.md b/docs/en/05-get-started/index.md index 12cfa22c69..66573a89cd 100644 --- a/docs/en/05-get-started/index.md +++ b/docs/en/05-get-started/index.md @@ -1,6 +1,6 @@ --- title: Get Started -description: This article describes how to install TDengine and test its performance. +description: This document describes how to install TDengine on various platforms. --- import GitHubSVG from './github.svg' diff --git a/docs/en/07-develop/01-connect/index.md b/docs/en/07-develop/01-connect/index.md index 45bbaa2751..913c24f189 100644 --- a/docs/en/07-develop/01-connect/index.md +++ b/docs/en/07-develop/01-connect/index.md @@ -1,7 +1,7 @@ --- -sidebar_label: Connect title: Connect to TDengine -description: "How to establish connections to TDengine and how to install and use TDengine connectors." +sidebar_label: Connect +description: This document describes how to establish connections to TDengine and how to install and use TDengine connectors. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/02-model/index.mdx b/docs/en/07-develop/02-model/index.mdx index 19a239805f..db5a259cfe 100644 --- a/docs/en/07-develop/02-model/index.mdx +++ b/docs/en/07-develop/02-model/index.mdx @@ -1,5 +1,6 @@ --- title: Data Model +description: This document describes the data model of TDengine. --- The data model employed by TDengine is similar to that of a relational database. You have to create databases and tables. You must design the data model based on your own business and application requirements. You should design the [STable](/concept/#super-table-stable) (an abbreviation for super table) schema to fit your data. This chapter will explain the big picture without getting into syntactical details. diff --git a/docs/en/07-develop/03-insert-data/01-sql-writing.mdx b/docs/en/07-develop/03-insert-data/01-sql-writing.mdx index f2168645ff..32ba53a0cb 100644 --- a/docs/en/07-develop/03-insert-data/01-sql-writing.mdx +++ b/docs/en/07-develop/03-insert-data/01-sql-writing.mdx @@ -1,5 +1,6 @@ --- title: Insert Using SQL +description: This document describes how to insert data into TDengine using SQL. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/20-kafka-writting.mdx b/docs/en/07-develop/03-insert-data/20-kafka-writting.mdx index ffb969a8a6..89ca10b669 100644 --- a/docs/en/07-develop/03-insert-data/20-kafka-writting.mdx +++ b/docs/en/07-develop/03-insert-data/20-kafka-writting.mdx @@ -1,5 +1,6 @@ --- title: Write from Kafka +description: This document describes how to insert data into TDengine using Kafka. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/30-influxdb-line.mdx b/docs/en/07-develop/03-insert-data/30-influxdb-line.mdx index fc5644850c..c559883d26 100644 --- a/docs/en/07-develop/03-insert-data/30-influxdb-line.mdx +++ b/docs/en/07-develop/03-insert-data/30-influxdb-line.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: InfluxDB Line Protocol title: InfluxDB Line Protocol +sidebar_label: InfluxDB Line Protocol +description: This document describes how to insert data into TDengine using the InfluxDB Line Protocol. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/40-opentsdb-telnet.mdx b/docs/en/07-develop/03-insert-data/40-opentsdb-telnet.mdx index 5d3f25dca9..30bc3b87bf 100644 --- a/docs/en/07-develop/03-insert-data/40-opentsdb-telnet.mdx +++ b/docs/en/07-develop/03-insert-data/40-opentsdb-telnet.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: OpenTSDB Line Protocol title: OpenTSDB Line Protocol +sidebar_label: OpenTSDB Line Protocol +description: This document describes how to insert data into TDengine using the OpenTSDB Line Protocol. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/50-opentsdb-json.mdx b/docs/en/07-develop/03-insert-data/50-opentsdb-json.mdx index 214580c179..e9db130241 100644 --- a/docs/en/07-develop/03-insert-data/50-opentsdb-json.mdx +++ b/docs/en/07-develop/03-insert-data/50-opentsdb-json.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: OpenTSDB JSON Protocol title: OpenTSDB JSON Protocol +sidebar_label: OpenTSDB JSON Protocol +description: This document describes how to insert data into TDengine using the OpenTSDB JSON protocol. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/60-high-volume.md b/docs/en/07-develop/03-insert-data/60-high-volume.md index 272a138813..d5afa8ef6e 100644 --- a/docs/en/07-develop/03-insert-data/60-high-volume.md +++ b/docs/en/07-develop/03-insert-data/60-high-volume.md @@ -1,6 +1,7 @@ --- -sidebar_label: High Performance Writing title: High Performance Writing +sidebar_label: High Performance Writing +description: This document describes how to achieve high performance when writing data into TDengine. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/03-insert-data/index.md b/docs/en/07-develop/03-insert-data/index.md index 1a71e719a5..15f8f4ee9e 100644 --- a/docs/en/07-develop/03-insert-data/index.md +++ b/docs/en/07-develop/03-insert-data/index.md @@ -1,5 +1,6 @@ --- title: Insert Data +description: This document describes how to insert data into TDengine. --- TDengine supports multiple protocols of inserting data, including SQL, InfluxDB Line protocol, OpenTSDB Telnet protocol, and OpenTSDB JSON protocol. Data can be inserted row by row, or in batches. Data from one or more collection points can be inserted simultaneously. Data can be inserted with multiple threads, and out of order data and historical data can be inserted as well. InfluxDB Line protocol, OpenTSDB Telnet protocol and OpenTSDB JSON protocol are the 3 kinds of schemaless insert protocols supported by TDengine. It's not necessary to create STables and tables in advance if using schemaless protocols, and the schemas can be adjusted automatically based on the data being inserted. diff --git a/docs/en/07-develop/04-query-data/index.mdx b/docs/en/07-develop/04-query-data/index.mdx index 38dc98d1ff..7e167bb4f3 100644 --- a/docs/en/07-develop/04-query-data/index.mdx +++ b/docs/en/07-develop/04-query-data/index.mdx @@ -1,6 +1,6 @@ --- title: Query Data -description: "This chapter introduces major query functionalities and how to perform sync and async query using connectors." +description: This document describes how to query data in TDengine and how to perform synchronous and asynchronous queries using connectors. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/07-develop/06-stream.md b/docs/en/07-develop/06-stream.md index 36f903ee9a..125173e60b 100644 --- a/docs/en/07-develop/06-stream.md +++ b/docs/en/07-develop/06-stream.md @@ -1,7 +1,7 @@ --- -sidebar_label: Stream Processing -description: "The TDengine stream processing engine combines data inserts, preprocessing, analytics, real-time computation, and alerting into a single component." title: Stream Processing +sidebar_label: Stream Processing +description: This document describes the stream processing component of TDengine. --- Raw time-series data is often cleaned and preprocessed before being permanently stored in a database. In a traditional time-series solution, this generally requires the deployment of stream processing systems such as Kafka or Flink. However, the complexity of such systems increases the cost of development and maintenance. diff --git a/docs/en/07-develop/08-cache.md b/docs/en/07-develop/08-cache.md index 82a4787016..6a6ca3e594 100644 --- a/docs/en/07-develop/08-cache.md +++ b/docs/en/07-develop/08-cache.md @@ -1,7 +1,7 @@ --- -sidebar_label: Caching title: Caching -description: "This document describes the caching component of TDengine." +sidebar_label: Caching +description: This document describes the caching component of TDengine. --- TDengine uses various kinds of caching techniques to efficiently write and query data. This document describes the caching component of TDengine. diff --git a/docs/en/07-develop/09-udf.md b/docs/en/07-develop/09-udf.md index 699b3ebe5f..553a7b932b 100644 --- a/docs/en/07-develop/09-udf.md +++ b/docs/en/07-develop/09-udf.md @@ -1,7 +1,7 @@ --- -sidebar_label: UDF title: User-Defined Functions (UDF) -description: "You can define your own scalar and aggregate functions to expand the query capabilities of TDengine." +sidebar_label: UDF +description: This document describes how to create user-defined functions (UDF), your own scalar and aggregate functions that can expand the query capabilities of TDengine. --- The built-in functions of TDengine may not be sufficient for the use cases of every application. In this case, you can define custom functions for use in TDengine queries. These are known as user-defined functions (UDF). A user-defined function takes one column of data or the result of a subquery as its input. diff --git a/docs/en/07-develop/index.md b/docs/en/07-develop/index.md index 34649d32a2..8f80b82b97 100644 --- a/docs/en/07-develop/index.md +++ b/docs/en/07-develop/index.md @@ -1,5 +1,6 @@ --- title: Developer Guide +description: This document describes how to use the various components of TDengine from a developer's perspective. --- Before creating an application to process time-series data with TDengine, consider the following: diff --git a/docs/en/10-deployment/01-deploy.md b/docs/en/10-deployment/01-deploy.md index 5dfcd3108d..da00e21a7e 100644 --- a/docs/en/10-deployment/01-deploy.md +++ b/docs/en/10-deployment/01-deploy.md @@ -1,6 +1,7 @@ --- -sidebar_label: Manual Deployment title: Manual Deployment and Management +sidebar_label: Manual Deployment +description: This document describes how to deploy TDengine on a server. --- ## Prerequisites diff --git a/docs/en/10-deployment/03-k8s.md b/docs/en/10-deployment/03-k8s.md index b0aa677713..49e61caafc 100644 --- a/docs/en/10-deployment/03-k8s.md +++ b/docs/en/10-deployment/03-k8s.md @@ -1,6 +1,7 @@ --- -sidebar_label: Kubernetes title: Deploying a TDengine Cluster in Kubernetes +sidebar_label: Kubernetes +description: This document describes how to deploy TDengine on Kubernetes. --- TDengine is a cloud-native time-series database that can be deployed on Kubernetes. This document gives a step-by-step description of how you can use YAML files to create a TDengine cluster and introduces common operations for TDengine in a Kubernetes environment. diff --git a/docs/en/10-deployment/05-helm.md b/docs/en/10-deployment/05-helm.md index 90baa5f445..aa61717669 100644 --- a/docs/en/10-deployment/05-helm.md +++ b/docs/en/10-deployment/05-helm.md @@ -1,6 +1,7 @@ --- -sidebar_label: Helm title: Use Helm to deploy TDengine +sidebar_label: Helm +description: This document describes how to deploy TDengine on Kubernetes by using Helm. --- Helm is a package manager for Kubernetes that can provide more capabilities in deploying on Kubernetes. diff --git a/docs/en/10-deployment/index.md b/docs/en/10-deployment/index.md index 7054a33e4a..865fbc2da5 100644 --- a/docs/en/10-deployment/index.md +++ b/docs/en/10-deployment/index.md @@ -1,5 +1,6 @@ --- title: Deployment +description: This document describes how to deploy a TDengine cluster on a server, on Kubernetes, and by using Helm. --- TDengine has a native distributed design and provides the ability to scale out. A few nodes can form a TDengine cluster. If you need higher processing power, you just need to add more nodes into the cluster. TDengine uses virtual node technology to virtualize a node into multiple virtual nodes to achieve load balancing. At the same time, TDengine can group virtual nodes on different nodes into virtual node groups, and use the replication mechanism to ensure the high availability of the system. The cluster feature of TDengine is completely open source. diff --git a/docs/en/12-taos-sql/01-data-type.md b/docs/en/12-taos-sql/01-data-type.md index 60046629a4..641fd3cbb7 100644 --- a/docs/en/12-taos-sql/01-data-type.md +++ b/docs/en/12-taos-sql/01-data-type.md @@ -1,7 +1,7 @@ --- -sidebar_label: Data Types title: Data Types -description: 'TDengine supports a variety of data types including timestamp, float, JSON and many others.' +sidebar_label: Data Types +description: This document describes the data types that TDengine supports. --- ## Timestamp diff --git a/docs/en/12-taos-sql/02-database.md b/docs/en/12-taos-sql/02-database.md index 059f124ea5..280d72697c 100644 --- a/docs/en/12-taos-sql/02-database.md +++ b/docs/en/12-taos-sql/02-database.md @@ -1,7 +1,7 @@ --- -sidebar_label: Database title: Database -description: "create and drop database, show or change database parameters" +sidebar_label: Database +description: This document describes how to create and perform operations on databases. --- ## Create a Database diff --git a/docs/en/12-taos-sql/03-table.md b/docs/en/12-taos-sql/03-table.md index 6d12b8c730..f61d1f5147 100644 --- a/docs/en/12-taos-sql/03-table.md +++ b/docs/en/12-taos-sql/03-table.md @@ -1,5 +1,6 @@ --- title: Table +description: This document describes how to create and perform operations on standard tables and subtables. --- ## Create Table diff --git a/docs/en/12-taos-sql/04-stable.md b/docs/en/12-taos-sql/04-stable.md index 8a7c713f8c..5b316d0d24 100644 --- a/docs/en/12-taos-sql/04-stable.md +++ b/docs/en/12-taos-sql/04-stable.md @@ -1,6 +1,7 @@ --- -sidebar_label: Supertable title: Supertable +sidebar_label: Supertable +description: This document describes how to create and perform operations on supertables. --- ## Create a Supertable diff --git a/docs/en/12-taos-sql/05-insert.md b/docs/en/12-taos-sql/05-insert.md index ca3154c25e..c22357abfa 100644 --- a/docs/en/12-taos-sql/05-insert.md +++ b/docs/en/12-taos-sql/05-insert.md @@ -1,6 +1,7 @@ --- -sidebar_label: Insert title: Insert +sidebar_label: Insert +description: This document describes how to insert data into TDengine. --- ## Syntax diff --git a/docs/en/12-taos-sql/06-select.md b/docs/en/12-taos-sql/06-select.md index ee06a7be2d..183ab58726 100644 --- a/docs/en/12-taos-sql/06-select.md +++ b/docs/en/12-taos-sql/06-select.md @@ -1,6 +1,7 @@ --- -sidebar_label: Select title: Select +sidebar_label: Select +description: This document describes how to query data in TDengine. --- ## Syntax diff --git a/docs/en/12-taos-sql/08-delete-data.mdx b/docs/en/12-taos-sql/08-delete-data.mdx index 999c467ad0..f91a89a7eb 100644 --- a/docs/en/12-taos-sql/08-delete-data.mdx +++ b/docs/en/12-taos-sql/08-delete-data.mdx @@ -1,7 +1,7 @@ --- -sidebar_label: Delete Data -description: "Delete data from table or Stable" title: Delete Data +sidebar_label: Delete Data +description: This document describes how to delete data from TDengine. --- TDengine provides the functionality of deleting data from a table or STable according to specified time range, it can be used to cleanup abnormal data generated due to device failure. diff --git a/docs/en/12-taos-sql/10-function.md b/docs/en/12-taos-sql/10-function.md index 802eb259bf..b2d44f1a1d 100644 --- a/docs/en/12-taos-sql/10-function.md +++ b/docs/en/12-taos-sql/10-function.md @@ -1,6 +1,7 @@ --- -sidebar_label: Functions title: Functions +sidebar_label: Functions +description: This document describes the standard SQL functions available in TDengine. toc_max_heading_level: 4 --- diff --git a/docs/en/12-taos-sql/12-distinguished.md b/docs/en/12-taos-sql/12-distinguished.md index 0763e85a53..536fd8ffc3 100644 --- a/docs/en/12-taos-sql/12-distinguished.md +++ b/docs/en/12-taos-sql/12-distinguished.md @@ -1,6 +1,7 @@ --- -sidebar_label: Time-Series Extensions title: Time-Series Extensions +sidebar_label: Time-Series Extensions +description: This document describes the extended functions specific to time-series data processing available in TDengine. --- As a purpose-built database for storing and processing time-series data, TDengine provides time-series-specific extensions to standard SQL. diff --git a/docs/en/12-taos-sql/13-tmq.md b/docs/en/12-taos-sql/13-tmq.md index befab4f4f0..1a805c76fb 100644 --- a/docs/en/12-taos-sql/13-tmq.md +++ b/docs/en/12-taos-sql/13-tmq.md @@ -1,6 +1,7 @@ --- -sidebar_label: Data Subscription title: Data Subscription +sidebar_label: Data Subscription +description: This document describes the SQL statements related to the data subscription component of TDengine. --- The information in this document is related to the TDengine data subscription feature. diff --git a/docs/en/12-taos-sql/14-stream.md b/docs/en/12-taos-sql/14-stream.md index e70e962668..b8f6c3a163 100644 --- a/docs/en/12-taos-sql/14-stream.md +++ b/docs/en/12-taos-sql/14-stream.md @@ -1,6 +1,7 @@ --- -sidebar_label: Stream Processing title: Stream Processing +sidebar_label: Stream Processing +description: This document describes the SQL statements related to the stream processing component of TDengine. --- Raw time-series data is often cleaned and preprocessed before being permanently stored in a database. Stream processing components like Kafka, Flink, and Spark are often deployed alongside a time-series database to handle these operations, increasing system complexity and maintenance costs. diff --git a/docs/en/12-taos-sql/16-operators.md b/docs/en/12-taos-sql/16-operators.md index c426e28793..32ad4e7075 100644 --- a/docs/en/12-taos-sql/16-operators.md +++ b/docs/en/12-taos-sql/16-operators.md @@ -1,6 +1,7 @@ --- -sidebar_label: Operators title: Operators +sidebar_label: Operators +description: This document describes the SQL operators available in TDengine. --- ## Arithmetic Operators diff --git a/docs/en/12-taos-sql/17-json.md b/docs/en/12-taos-sql/17-json.md index 77f7743033..b2494e0cc1 100644 --- a/docs/en/12-taos-sql/17-json.md +++ b/docs/en/12-taos-sql/17-json.md @@ -1,6 +1,7 @@ --- -sidebar_label: JSON Type title: JSON Type +sidebar_label: JSON Type +description: This document describes the JSON data type in TDengine. --- diff --git a/docs/en/12-taos-sql/18-escape.md b/docs/en/12-taos-sql/18-escape.md index a2ae40de98..85e4610e44 100644 --- a/docs/en/12-taos-sql/18-escape.md +++ b/docs/en/12-taos-sql/18-escape.md @@ -1,5 +1,6 @@ --- title: Escape Characters +description: This document describes the usage of escape characters in TDengine. --- ## Escape Characters diff --git a/docs/en/12-taos-sql/19-limit.md b/docs/en/12-taos-sql/19-limit.md index f00ec90f57..654fae7560 100644 --- a/docs/en/12-taos-sql/19-limit.md +++ b/docs/en/12-taos-sql/19-limit.md @@ -1,6 +1,7 @@ --- -sidebar_label: Name and Size Limits title: Name and Size Limits +sidebar_label: Name and Size Limits +description: This document describes the name and size limits in TDengine. --- ## Naming Rules diff --git a/docs/en/12-taos-sql/20-keywords.md b/docs/en/12-taos-sql/20-keywords.md index 23f85947e3..a2191c87ee 100644 --- a/docs/en/12-taos-sql/20-keywords.md +++ b/docs/en/12-taos-sql/20-keywords.md @@ -1,6 +1,7 @@ --- -sidebar_label: Reserved Keywords title: Reserved Keywords +sidebar_label: Reserved Keywords +description: This document describes the reserved keywords in TDengine that cannot be used in object names. --- ## Keyword List diff --git a/docs/en/12-taos-sql/21-node.md b/docs/en/12-taos-sql/21-node.md index a0d49ab208..8a5069e66f 100644 --- a/docs/en/12-taos-sql/21-node.md +++ b/docs/en/12-taos-sql/21-node.md @@ -1,6 +1,7 @@ --- -sidebar_label: Cluster title: Cluster +sidebar_label: Cluster +description: This document describes the SQL statements related to cluster management in TDengine. --- The physical entities that form TDengine clusters are known as data nodes (dnodes). Each dnode is a process running on the operating system of the physical machine. Dnodes can contain virtual nodes (vnodes), which store time-series data. Virtual nodes are formed into vgroups, which have 1 or 3 vnodes depending on the replica setting. If you want to enable replication on your cluster, it must contain at least three nodes. Dnodes can also contain management nodes (mnodes). Each cluster has up to three mnodes. Finally, dnodes can contain query nodes (qnodes), which compute time-series data, thus separating compute from storage. A single dnode can contain a vnode, qnode, and mnode. diff --git a/docs/en/12-taos-sql/22-meta.md b/docs/en/12-taos-sql/22-meta.md index 1cd759742a..d2bc72f047 100644 --- a/docs/en/12-taos-sql/22-meta.md +++ b/docs/en/12-taos-sql/22-meta.md @@ -1,6 +1,7 @@ --- -sidebar_label: Metadata title: Information_Schema Database +sidebar_label: Metadata +description: This document describes how to use the INFORMATION_SCHEMA database in TDengine. --- TDengine includes a built-in database named `INFORMATION_SCHEMA` to provide access to database metadata, system information, and status information. This information includes database names, table names, and currently running SQL statements. All information related to TDengine maintenance is stored in this database. It contains several read-only tables. These tables are more accurately described as views, and they do not correspond to specific files. You can query these tables but cannot write data to them. The INFORMATION_SCHEMA database is intended to provide a unified method for SHOW commands to access data. However, using SELECT ... FROM INFORMATION_SCHEMA.tablename offers several advantages over SHOW commands: diff --git a/docs/en/12-taos-sql/23-perf.md b/docs/en/12-taos-sql/23-perf.md index 29cf3af6ab..fc369ec663 100644 --- a/docs/en/12-taos-sql/23-perf.md +++ b/docs/en/12-taos-sql/23-perf.md @@ -1,6 +1,7 @@ --- -sidebar_label: Statistics title: Performance_Schema Database +sidebar_label: Statistics +description: This document describes how to use the PERFORMANCE_SCHEMA database in TDengine. --- TDengine includes a built-in database named `PERFORMANCE_SCHEMA` to provide access to database performance statistics. This document introduces the tables of PERFORMANCE_SCHEMA and their structure. diff --git a/docs/en/12-taos-sql/24-show.md b/docs/en/12-taos-sql/24-show.md index f70d86570e..dc1db956a0 100644 --- a/docs/en/12-taos-sql/24-show.md +++ b/docs/en/12-taos-sql/24-show.md @@ -1,6 +1,7 @@ --- -sidebar_label: SHOW Statement title: SHOW Statement for Metadata +sidebar_label: SHOW Statement +description: This document describes how to use the SHOW statement in TDengine. --- `SHOW` command can be used to get brief system information. To get details about metatadata, information, and status in the system, please use `select` to query the tables in database `INFORMATION_SCHEMA`. diff --git a/docs/en/12-taos-sql/25-grant.md b/docs/en/12-taos-sql/25-grant.md index f895567c62..8b4c439352 100644 --- a/docs/en/12-taos-sql/25-grant.md +++ b/docs/en/12-taos-sql/25-grant.md @@ -1,7 +1,7 @@ --- -sidebar_label: Access Control title: User and Access Control -description: Manage user and user's permission +sidebar_label: Access Control +description: This document describes how to manage users and permissions in TDengine. --- This document describes how to manage permissions in TDengine. diff --git a/docs/en/12-taos-sql/26-udf.md b/docs/en/12-taos-sql/26-udf.md index 977f3bcc08..249fcd3b54 100644 --- a/docs/en/12-taos-sql/26-udf.md +++ b/docs/en/12-taos-sql/26-udf.md @@ -1,6 +1,7 @@ --- -sidebar_label: User-Defined Functions title: User-Defined Functions (UDF) +sidebar_label: User-Defined Functions +description: This document describes the SQL statements related to user-defined functions (UDF) in TDengine. --- You can create user-defined functions and import them into TDengine. diff --git a/docs/en/12-taos-sql/27-index.md b/docs/en/12-taos-sql/27-index.md index 7d09bc43ab..7586e4af76 100644 --- a/docs/en/12-taos-sql/27-index.md +++ b/docs/en/12-taos-sql/27-index.md @@ -1,6 +1,7 @@ --- -sidebar_label: Index -title: Using Indices +title: Indexing +sidebar_label: Indexing +description: This document describes the SQL statements related to indexing in TDengine. --- TDengine supports SMA and FULLTEXT indexing. diff --git a/docs/en/12-taos-sql/28-recovery.md b/docs/en/12-taos-sql/28-recovery.md index e869ffc45f..b4da25ea0c 100644 --- a/docs/en/12-taos-sql/28-recovery.md +++ b/docs/en/12-taos-sql/28-recovery.md @@ -1,6 +1,7 @@ --- -sidebar_label: Error Recovery title: Error Recovery +sidebar_label: Error Recovery +description: This document describes the SQL statements related to error recovery in TDengine. --- In a complex environment, connections and query tasks may encounter errors or fail to return in a reasonable time. If this occurs, you can terminate the connection or task. diff --git a/docs/en/12-taos-sql/29-changes.md b/docs/en/12-taos-sql/29-changes.md index f288cd7545..341791d675 100644 --- a/docs/en/12-taos-sql/29-changes.md +++ b/docs/en/12-taos-sql/29-changes.md @@ -1,7 +1,7 @@ --- -sidebar_label: Changes in TDengine 3.0 title: Changes in TDengine 3.0 -description: "This document explains how TDengine SQL has changed in version 3.0." +sidebar_label: Changes in TDengine 3.0 +description: This document describes how TDengine SQL has changed in version 3.0 compared with previous versions. --- ## Basic SQL Elements diff --git a/docs/en/12-taos-sql/index.md b/docs/en/12-taos-sql/index.md index a5ffc9dc8d..276f84f21b 100644 --- a/docs/en/12-taos-sql/index.md +++ b/docs/en/12-taos-sql/index.md @@ -1,6 +1,6 @@ --- title: TDengine SQL -description: 'The syntax supported by TDengine SQL ' +description: This document describes the syntax and functions supported by TDengine SQL. --- This section explains the syntax of SQL to perform operations on databases, tables and STables, insert data, select data and use functions. We also provide some tips that can be used in TDengine SQL. If you have previous experience with SQL this section will be fairly easy to understand. If you do not have previous experience with SQL, you'll come to appreciate the simplicity and power of SQL. TDengine SQL has been enhanced in version 3.0, and the query engine has been rearchitected. For information about how TDengine SQL has changed, see [Changes in TDengine 3.0](../taos-sql/changes). diff --git a/docs/en/13-operation/01-pkg-install.md b/docs/en/13-operation/01-pkg-install.md index d7713b943f..6e6c4aaebf 100644 --- a/docs/en/13-operation/01-pkg-install.md +++ b/docs/en/13-operation/01-pkg-install.md @@ -1,6 +1,6 @@ --- title: Install and Uninstall -description: Install, Uninstall, Start, Stop and Upgrade +description: This document describes how to install, upgrade, and uninstall TDengine. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/13-operation/02-planning.mdx b/docs/en/13-operation/02-planning.mdx index 2dffa7bb87..37ef6aae26 100644 --- a/docs/en/13-operation/02-planning.mdx +++ b/docs/en/13-operation/02-planning.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: Resource Planning title: Resource Planning +sidebar_label: Resource Planning +description: This document describes how to plan compute and storage resources for your TDengine cluster. --- It is important to plan computing and storage resources if using TDengine to build an IoT, time-series or Big Data platform. How to plan the CPU, memory and disk resources required, will be described in this chapter. diff --git a/docs/en/13-operation/03-tolerance.md b/docs/en/13-operation/03-tolerance.md index 21a5a90282..4f33748e68 100644 --- a/docs/en/13-operation/03-tolerance.md +++ b/docs/en/13-operation/03-tolerance.md @@ -1,5 +1,6 @@ --- title: Fault Tolerance and Disaster Recovery +description: This document describes how TDengine provides fault tolerance and disaster recovery. --- ## Fault Tolerance diff --git a/docs/en/13-operation/07-import.md b/docs/en/13-operation/07-import.md index 8362cec1ab..e95824e927 100644 --- a/docs/en/13-operation/07-import.md +++ b/docs/en/13-operation/07-import.md @@ -1,5 +1,6 @@ --- title: Data Import +description: This document describes how to import data into TDengine. --- There are multiple ways of importing data provided by TDengine: import with script, import from data file, import using `taosdump`. diff --git a/docs/en/13-operation/08-export.md b/docs/en/13-operation/08-export.md index 5780de42fa..bffda36e23 100644 --- a/docs/en/13-operation/08-export.md +++ b/docs/en/13-operation/08-export.md @@ -1,5 +1,6 @@ --- title: Data Export +description: This document describes how to export data from TDengine. --- There are two ways of exporting data from a TDengine cluster: diff --git a/docs/en/13-operation/10-monitor.md b/docs/en/13-operation/10-monitor.md index 74a5564a2a..346b874059 100644 --- a/docs/en/13-operation/10-monitor.md +++ b/docs/en/13-operation/10-monitor.md @@ -1,5 +1,6 @@ --- title: TDengine Monitoring +description: This document describes how to monitor your TDengine cluster. --- After TDengine is started, it automatically writes monitoring data including CPU, memory and disk usage, bandwidth, number of requests, disk I/O speed, slow queries, into a designated database at a predefined interval through taosKeeper. Additionally, some important system operations, like logon, create user, drop database, and alerts and warnings generated in TDengine are written into the `log` database too. A system operator can view the data in `log` database from TDengine CLI or from a web console. diff --git a/docs/en/13-operation/17-diagnose.md b/docs/en/13-operation/17-diagnose.md index fa202a23ea..9d42b3ebbc 100644 --- a/docs/en/13-operation/17-diagnose.md +++ b/docs/en/13-operation/17-diagnose.md @@ -1,5 +1,6 @@ --- title: Problem Diagnostics +description: This document describes how to diagnose issues with your TDengine cluster. --- ## Network Connection Diagnostics diff --git a/docs/en/13-operation/index.md b/docs/en/13-operation/index.md index c64749c40e..8b386dc19a 100644 --- a/docs/en/13-operation/index.md +++ b/docs/en/13-operation/index.md @@ -1,5 +1,6 @@ --- title: Administration +description: This document describes how to perform management operations on your TDengine cluster from an administrator's perspective. --- This chapter is mainly written for system administrators. It covers download, install/uninstall, data import/export, system monitoring, user management, connection management, capacity planning and system optimization. diff --git a/docs/en/14-reference/02-rest-api/02-rest-api.mdx b/docs/en/14-reference/02-rest-api/02-rest-api.mdx index 09e40b956f..b138d69bfc 100644 --- a/docs/en/14-reference/02-rest-api/02-rest-api.mdx +++ b/docs/en/14-reference/02-rest-api/02-rest-api.mdx @@ -1,5 +1,6 @@ --- title: REST API +description: This document describes the TDengine REST API. --- To support the development of various types of applications and platforms, TDengine provides an API that conforms to REST principles; namely REST API. To minimize the learning cost, unlike REST APIs for other database engines, TDengine allows insertion of SQL commands in the BODY of an HTTP POST request, to operate the database. diff --git a/docs/en/14-reference/03-connector/03-cpp.mdx b/docs/en/14-reference/03-connector/03-cpp.mdx index 906d56ab15..3bd7b7f4c6 100644 --- a/docs/en/14-reference/03-connector/03-cpp.mdx +++ b/docs/en/14-reference/03-connector/03-cpp.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: C/C++ title: C/C++ Connector +sidebar_label: C/C++ +description: This document describes the TDengine C/C++ connector. --- C/C++ developers can use TDengine's client driver and the C/C++ connector, to develop their applications to connect to TDengine clusters for data writing, querying, and other functions. To use the C/C++ connector you must include the TDengine header file _taos.h_, which lists the function prototypes of the provided APIs. The application also needs to link to the corresponding dynamic libraries on the platform where it is located. diff --git a/docs/en/14-reference/03-connector/04-java.mdx b/docs/en/14-reference/03-connector/04-java.mdx index c37738b3f8..61ce166069 100644 --- a/docs/en/14-reference/03-connector/04-java.mdx +++ b/docs/en/14-reference/03-connector/04-java.mdx @@ -1,8 +1,8 @@ --- -toc_max_heading_level: 4 -sidebar_label: Java title: TDengine Java Connector -description: The TDengine Java Connector is implemented on the standard JDBC API and provides native and REST connectors. +sidebar_label: Java +description: This document describes the TDengine Java Connector. +toc_max_heading_level: 4 --- import Tabs from '@theme/Tabs'; diff --git a/docs/en/14-reference/03-connector/05-go.mdx b/docs/en/14-reference/03-connector/05-go.mdx index 60407c0735..da2f54708f 100644 --- a/docs/en/14-reference/03-connector/05-go.mdx +++ b/docs/en/14-reference/03-connector/05-go.mdx @@ -1,7 +1,8 @@ --- -toc_max_heading_level: 4 -sidebar_label: Go title: TDengine Go Connector +sidebar_label: Go +description: This document describes the TDengine Go connector. +toc_max_heading_level: 4 --- import Tabs from '@theme/Tabs'; diff --git a/docs/en/14-reference/03-connector/06-rust.mdx b/docs/en/14-reference/03-connector/06-rust.mdx index 4e2a7848dc..6e84859610 100644 --- a/docs/en/14-reference/03-connector/06-rust.mdx +++ b/docs/en/14-reference/03-connector/06-rust.mdx @@ -1,7 +1,8 @@ --- -toc_max_heading_level: 4 -sidebar_label: Rust title: TDengine Rust Connector +sidebar_label: Rust +description: This document describes the TDengine Rust connector. +toc_max_heading_level: 4 --- import Tabs from '@theme/Tabs'; diff --git a/docs/en/14-reference/03-connector/07-python.mdx b/docs/en/14-reference/03-connector/07-python.mdx index d593c3f133..146da268a8 100644 --- a/docs/en/14-reference/03-connector/07-python.mdx +++ b/docs/en/14-reference/03-connector/07-python.mdx @@ -1,7 +1,7 @@ --- -sidebar_label: Python title: TDengine Python Connector -description: "taospy is the official Python connector for TDengine. taospy provides a rich API that makes it easy for Python applications to use TDengine. tasopy wraps both the native and REST interfaces of TDengine, corresponding to the two submodules of tasopy: taos and taosrest. In addition to wrapping the native and REST interfaces, taospy also provides a programming interface that conforms to the Python Data Access Specification (PEP 249), making it easy to integrate taospy with many third-party tools, such as SQLAlchemy and pandas." +sidebar_label: Python +description: This document describes taospy, the TDengine Python connector. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/14-reference/03-connector/08-node.mdx b/docs/en/14-reference/03-connector/08-node.mdx index a36cf0efc9..1ac8f69d06 100644 --- a/docs/en/14-reference/03-connector/08-node.mdx +++ b/docs/en/14-reference/03-connector/08-node.mdx @@ -1,7 +1,8 @@ --- -toc_max_heading_level: 4 -sidebar_label: Node.js title: TDengine Node.js Connector +sidebar_label: Node.js +description: This document describes the TDengine Node.js connector. +toc_max_heading_level: 4 --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/14-reference/03-connector/09-csharp.mdx b/docs/en/14-reference/03-connector/09-csharp.mdx index 756e948bd2..e984967fb7 100644 --- a/docs/en/14-reference/03-connector/09-csharp.mdx +++ b/docs/en/14-reference/03-connector/09-csharp.mdx @@ -1,7 +1,8 @@ --- -toc_max_heading_level: 4 -sidebar_label: C# title: C# Connector +sidebar_label: C# +description: This document describes the TDengine C# connector. +toc_max_heading_level: 4 --- import Tabs from '@theme/Tabs'; diff --git a/docs/en/14-reference/03-connector/10-php.mdx b/docs/en/14-reference/03-connector/10-php.mdx index 87f8616f9e..fd00d11239 100644 --- a/docs/en/14-reference/03-connector/10-php.mdx +++ b/docs/en/14-reference/03-connector/10-php.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: PHP title: PHP Connector +sidebar_label: PHP +description: This document describes the TDengine PHP connector. --- `php-tdengine` is the TDengine PHP connector provided by TDengine community. In particular, it supports Swoole coroutine. diff --git a/docs/en/14-reference/03-connector/index.mdx b/docs/en/14-reference/03-connector/index.mdx index da3aae8309..2df73b8592 100644 --- a/docs/en/14-reference/03-connector/index.mdx +++ b/docs/en/14-reference/03-connector/index.mdx @@ -1,5 +1,6 @@ --- title: Connector +description: This document describes the connectors that TDengine provides to interface with various programming languages. --- TDengine provides a rich set of APIs (application development interface). To facilitate users to develop their applications quickly, TDengine supports connectors for multiple programming languages, including official connectors for C/C++, Java, Python, Go, Node.js, C#, and Rust. These connectors support connecting to TDengine clusters using both native interfaces (taosc) and REST interfaces (not supported in a few languages yet). Community developers have also contributed several unofficial connectors, such as the ADO.NET connector, the Lua connector, and the PHP connector. diff --git a/docs/en/14-reference/04-taosadapter.md b/docs/en/14-reference/04-taosadapter.md index 9eb6cb9213..c1ec97b647 100644 --- a/docs/en/14-reference/04-taosadapter.md +++ b/docs/en/14-reference/04-taosadapter.md @@ -1,7 +1,7 @@ --- -title: "taosAdapter" -description: "taosAdapter is a TDengine companion tool that acts as a bridge and adapter between TDengine clusters and applications. It provides an easy-to-use and efficient way to ingest data directly from data collection agent software such as Telegraf, StatsD, collectd, etc. It also provides an InfluxDB/OpenTSDB compatible data ingestion interface, allowing InfluxDB/OpenTSDB applications to be seamlessly ported to TDengine." -sidebar_label: "taosAdapter" +title: taosAdapter +sidebar_label: taosAdapter +description: This document describes how to use taosAdapter, a TDengine companion tool that acts as a bridge and adapter between TDengine clusters and applications. --- import Prometheus from "./_prometheus.mdx" diff --git a/docs/en/14-reference/05-taosbenchmark.md b/docs/en/14-reference/05-taosbenchmark.md index 4017b12be9..9828d71ece 100644 --- a/docs/en/14-reference/05-taosbenchmark.md +++ b/docs/en/14-reference/05-taosbenchmark.md @@ -1,8 +1,8 @@ --- title: taosBenchmark sidebar_label: taosBenchmark +description: This document describes how to use taosBenchmark, a tool for testing the performance of TDengine. toc_max_heading_level: 4 -description: "taosBenchmark (once called taosdemo ) is a tool for testing the performance of TDengine." --- # Introduction diff --git a/docs/en/14-reference/06-taosdump.md b/docs/en/14-reference/06-taosdump.md index 9c63b4dc03..dcfc068a3d 100644 --- a/docs/en/14-reference/06-taosdump.md +++ b/docs/en/14-reference/06-taosdump.md @@ -1,6 +1,6 @@ --- title: taosdump -description: "taosdump is a tool that supports backing up data from a running TDengine cluster and restoring the backed up data to the same, or another running TDengine cluster." +description: This document describes how to use taosdump, a tool for backing up and restoring the data in a TDengine cluster. --- ## Introduction diff --git a/docs/en/14-reference/07-tdinsight/index.md b/docs/en/14-reference/07-tdinsight/index.md index d03c16a8bc..1c58dd6a76 100644 --- a/docs/en/14-reference/07-tdinsight/index.md +++ b/docs/en/14-reference/07-tdinsight/index.md @@ -1,6 +1,7 @@ --- title: TDinsight - Grafana-based Zero-Dependency Monitoring Solution for TDengine sidebar_label: TDinsight +description: This document describes TDinsight, a monitoring solution for TDengine. --- TDinsight is a solution for monitoring TDengine using the builtin native monitoring database and [Grafana]. diff --git a/docs/en/14-reference/08-taos-shell.md b/docs/en/14-reference/08-taos-shell.md index 68e2f08765..7833ac861f 100644 --- a/docs/en/14-reference/08-taos-shell.md +++ b/docs/en/14-reference/08-taos-shell.md @@ -1,7 +1,7 @@ --- title: TDengine Command Line Interface (CLI) sidebar_label: Command Line Interface -description: Instructions and tips for using the TDengine CLI +description: This document describes how to use the TDengine CLI. --- The TDengine command-line interface (hereafter referred to as `TDengine CLI`) is the simplest way for users to manipulate and interact with TDengine instances. diff --git a/docs/en/14-reference/09-support-platform/index.md b/docs/en/14-reference/09-support-platform/index.md index 061294f016..7dfa8ac93a 100644 --- a/docs/en/14-reference/09-support-platform/index.md +++ b/docs/en/14-reference/09-support-platform/index.md @@ -1,6 +1,6 @@ --- title: List of supported platforms -description: "List of platforms supported by TDengine server, client, and connector" +description: This document describes the supported platforms for the TDengine server, client, and connectors. --- ## List of supported platforms for TDengine server diff --git a/docs/en/14-reference/11-docker/index.md b/docs/en/14-reference/11-docker/index.md index 89987c456f..b9278c6961 100644 --- a/docs/en/14-reference/11-docker/index.md +++ b/docs/en/14-reference/11-docker/index.md @@ -1,6 +1,6 @@ --- title: Deploying TDengine with Docker -description: "This chapter focuses on starting the TDengine service in a container and accessing it." +description: This chapter describes how to start and access TDengine in a Docker container. --- This chapter describes how to start the TDengine service in a container and access it. Users can control the behavior of the service in the container by using environment variables on the docker run command-line or in the docker-compose file. diff --git a/docs/en/14-reference/12-config/index.md b/docs/en/14-reference/12-config/index.md index e6fd6dbe6f..afa9f5a8ae 100644 --- a/docs/en/14-reference/12-config/index.md +++ b/docs/en/14-reference/12-config/index.md @@ -1,6 +1,6 @@ --- title: Configuration Parameters -description: "Configuration parameters for client and server in TDengine" +description: This document describes the configuration parameters for the TDengine server and client. --- ## Configuration File on Server Side diff --git a/docs/en/14-reference/12-directory.md b/docs/en/14-reference/12-directory.md index 19b036418f..651892c8b2 100644 --- a/docs/en/14-reference/12-directory.md +++ b/docs/en/14-reference/12-directory.md @@ -1,6 +1,6 @@ --- title: File directory structure -description: "TDengine installation directory description" +description: This document describes the structure of the TDengine directory after installation. --- After TDengine is installed, the following directories or files will be created in the system by default. diff --git a/docs/en/14-reference/13-schemaless/13-schemaless.md b/docs/en/14-reference/13-schemaless/13-schemaless.md index a97a54af02..caedd76df8 100644 --- a/docs/en/14-reference/13-schemaless/13-schemaless.md +++ b/docs/en/14-reference/13-schemaless/13-schemaless.md @@ -1,6 +1,6 @@ --- title: Schemaless Writing -description: 'The Schemaless write method eliminates the need to create super tables/sub tables in advance and automatically creates the storage structure corresponding to the data, as it is written to the interface.' +description: This document describes how to use the schemaless write component of TDengine. --- In IoT applications, data is collected for many purposes such as intelligent control, business analysis, device monitoring and so on. Due to changes in business or functional requirements or changes in device hardware, the application logic and even the data collected may change. Schemaless writing automatically creates storage structures for your data as it is being written to TDengine, so that you do not need to create supertables in advance. When necessary, schemaless writing diff --git a/docs/en/14-reference/14-taosKeeper.md b/docs/en/14-reference/14-taosKeeper.md index 665bc75380..0b4a1fbd60 100644 --- a/docs/en/14-reference/14-taosKeeper.md +++ b/docs/en/14-reference/14-taosKeeper.md @@ -1,7 +1,7 @@ --- sidebar_label: taosKeeper title: taosKeeper -description: exports TDengine monitoring metrics. +description: This document describes how to use taosKeeper, a tool for exporting TDengine monitoring metrics. --- ## Introduction diff --git a/docs/en/14-reference/index.md b/docs/en/14-reference/index.md index f3a64913d0..bc8ec69965 100644 --- a/docs/en/14-reference/index.md +++ b/docs/en/14-reference/index.md @@ -1,5 +1,6 @@ --- title: Reference +description: This document describes TDengine connectors and utilities. --- This section describes the TDengine connectors and utilities. diff --git a/docs/en/20-third-party/01-grafana.mdx b/docs/en/20-third-party/01-grafana.mdx index ca32ce8afc..b33e1c1199 100644 --- a/docs/en/20-third-party/01-grafana.mdx +++ b/docs/en/20-third-party/01-grafana.mdx @@ -1,6 +1,7 @@ --- -sidebar_label: Grafana title: Grafana +sidebar_label: Grafana +description: This document describes how to integrate TDengine with Grafana. --- import Tabs from "@theme/Tabs"; diff --git a/docs/en/20-third-party/02-prometheus.md b/docs/en/20-third-party/02-prometheus.md index ef9b9cb637..bfdd3d015e 100644 --- a/docs/en/20-third-party/02-prometheus.md +++ b/docs/en/20-third-party/02-prometheus.md @@ -1,6 +1,7 @@ --- -sidebar_label: Prometheus title: Prometheus writing and reading +sidebar_label: Prometheus +description: This document describes how to integrate TDengine with Prometheus. --- import Prometheus from "../14-reference/_prometheus.mdx" diff --git a/docs/en/20-third-party/03-telegraf.md b/docs/en/20-third-party/03-telegraf.md index 8f3cab0e57..7e99b84eab 100644 --- a/docs/en/20-third-party/03-telegraf.md +++ b/docs/en/20-third-party/03-telegraf.md @@ -1,6 +1,7 @@ --- -sidebar_label: Telegraf title: Telegraf writing +sidebar_label: Telegraf +description: This document describes how to integrate TDengine with Telegraf. --- import Telegraf from "../14-reference/_telegraf.mdx" diff --git a/docs/en/20-third-party/05-collectd.md b/docs/en/20-third-party/05-collectd.md index 5b52e3b7bc..d8c8e7f81d 100644 --- a/docs/en/20-third-party/05-collectd.md +++ b/docs/en/20-third-party/05-collectd.md @@ -1,6 +1,7 @@ --- -sidebar_label: collectd title: collectd writing +sidebar_label: collectd +description: This document describes how to integrate TDengine with collectd. --- import CollectD from "../14-reference/_collectd.mdx" diff --git a/docs/en/20-third-party/06-statsd.md b/docs/en/20-third-party/06-statsd.md index b861a48ecd..ea428e9cdb 100644 --- a/docs/en/20-third-party/06-statsd.md +++ b/docs/en/20-third-party/06-statsd.md @@ -1,6 +1,7 @@ --- -sidebar_label: StatsD title: StatsD Writing +sidebar_label: StatsD +description: This document describes how to integrate TDengine with StatsD. --- import StatsD from "../14-reference/_statsd.mdx" diff --git a/docs/en/20-third-party/07-icinga2.md b/docs/en/20-third-party/07-icinga2.md index 167b6a4303..540aae8689 100644 --- a/docs/en/20-third-party/07-icinga2.md +++ b/docs/en/20-third-party/07-icinga2.md @@ -1,6 +1,7 @@ --- -sidebar_label: icinga2 title: icinga2 writing +sidebar_label: icinga2 +description: This document describes how to integrate TDengine with icinga2. --- import Icinga2 from "../14-reference/_icinga2.mdx" diff --git a/docs/en/20-third-party/08-tcollector.md b/docs/en/20-third-party/08-tcollector.md index b604a2d712..f1c0ecd44d 100644 --- a/docs/en/20-third-party/08-tcollector.md +++ b/docs/en/20-third-party/08-tcollector.md @@ -1,6 +1,7 @@ --- -sidebar_label: TCollector title: TCollector writing +sidebar_label: TCollector +description: This document describes how to integrate TDengine with TCollector. --- import TCollector from "../14-reference/_tcollector.mdx" diff --git a/docs/en/20-third-party/09-emq-broker.md b/docs/en/20-third-party/09-emq-broker.md index 2ead1bbaf4..10ce0174ed 100644 --- a/docs/en/20-third-party/09-emq-broker.md +++ b/docs/en/20-third-party/09-emq-broker.md @@ -1,6 +1,7 @@ --- -sidebar_label: EMQX Broker title: EMQX Broker writing +sidebar_label: EMQX Broker +description: This document describes how to integrate TDengine with the EMQX broker. --- MQTT is a popular IoT data transfer protocol. [EMQX](https://github.com/emqx/emqx) is an open-source MQTT Broker software. You can write MQTT data directly to TDengine without any code. You only need to setup "rules" in EMQX Dashboard to create a simple configuration. EMQX supports saving data to TDengine by sending data to a web service and provides a native TDengine driver for direct saving in the Enterprise Edition. Please refer to the [EMQX official documentation](https://www.emqx.io/docs/en/v4.4/rule/rule-engine.html) for details on how to use it.). diff --git a/docs/en/20-third-party/10-hive-mq-broker.md b/docs/en/20-third-party/10-hive-mq-broker.md index 828a62ac5b..6c5165596e 100644 --- a/docs/en/20-third-party/10-hive-mq-broker.md +++ b/docs/en/20-third-party/10-hive-mq-broker.md @@ -1,6 +1,7 @@ --- -sidebar_label: HiveMQ Broker title: HiveMQ Broker Writing +sidebar_label: HiveMQ Broker +description: This document describes how to integrate TDengine with the HiveMQ broker. --- [HiveMQ](https://www.hivemq.com/) is an MQTT broker that provides community and enterprise editions. HiveMQ is mainly for enterprise emerging machine-to-machine M2M communication and internal transport, meeting scalability, ease of management, and security features. HiveMQ provides an open-source plug-in development kit. MQTT data can be saved to TDengine via TDengine extension for HiveMQ. For more information, see [HiveMQ TDengine Extension](https://github.com/huskar-t/hivemq-tdengine-extension/blob/b62a26ecc164a310104df57691691b237e091c89/README_EN.md). diff --git a/docs/en/20-third-party/11-kafka.md b/docs/en/20-third-party/11-kafka.md index 3e8f7c295d..0998862b2d 100644 --- a/docs/en/20-third-party/11-kafka.md +++ b/docs/en/20-third-party/11-kafka.md @@ -1,6 +1,7 @@ --- -sidebar_label: Kafka title: TDengine Kafka Connector Tutorial +sidebar_label: Kafka +description: This document describes how to integrate TDengine with Kafka. --- TDengine Kafka Connector contains two plugins: TDengine Source Connector and TDengine Sink Connector. Users only need to provide a simple configuration file to synchronize the data of the specified topic in Kafka (batch or real-time) to TDengine or synchronize the data (batch or real-time) of the specified database in TDengine to Kafka. diff --git a/docs/en/20-third-party/12-google-data-studio.md b/docs/en/20-third-party/12-google-data-studio.md index fc94f98056..ea6431fa5a 100644 --- a/docs/en/20-third-party/12-google-data-studio.md +++ b/docs/en/20-third-party/12-google-data-studio.md @@ -1,6 +1,7 @@ --- -sidebar_label: Google Data Studio title: Use Google Data Studio to access TDengine +sidebar_label: Google Data Studio +description: This document describes how to integrate TDengine with Google Data Studio. --- Data Studio is a powerful tool for reporting and visualization, offering a wide variety of charts and connectors and making it easy to generate reports based on predefined templates. Its ease of use and robust ecosystem have made it one of the first choices for people working in data analysis. diff --git a/docs/en/20-third-party/13-Jupyter.md b/docs/en/20-third-party/13-Jupyter.md index fbd7e530f0..1ac9df1da4 100644 --- a/docs/en/20-third-party/13-Jupyter.md +++ b/docs/en/20-third-party/13-Jupyter.md @@ -1,6 +1,7 @@ --- -sidebar_label: JupyterLab title: Connect JupyterLab to TDengine +sidebar_label: JupyterLab +description: This document describes how to integrate TDengine with JupyterLab. --- JupyterLab is the next generation of the ubiquitous Jupyter Notebook. In this note we show you how to install the TDengine Python connector to connect to TDengine in JupyterLab. You can then insert data and perform queries against the TDengine instance within JupyterLab. diff --git a/docs/en/20-third-party/index.md b/docs/en/20-third-party/index.md index 87bd9e0751..6fc8043eef 100644 --- a/docs/en/20-third-party/index.md +++ b/docs/en/20-third-party/index.md @@ -1,5 +1,6 @@ --- title: Third Party Tools +description: This document describes how to integrate TDengine with various third-party tools. --- Since TDengine supports standard SQL commands, common database connector standards (e.g., JDBC), ORM, and other popular time-series database writing protocols (e.g., InfluxDB Line Protocol, OpenTSDB JSON, OpenTSDB Telnet, etc.), it is very easy to integrate TDengine with other third party tools. You only need to provide simple configuration, the integration can be done without a line of code. diff --git a/docs/en/21-tdinternal/01-arch.md b/docs/en/21-tdinternal/01-arch.md index 697ecb98a1..cef05dcc56 100644 --- a/docs/en/21-tdinternal/01-arch.md +++ b/docs/en/21-tdinternal/01-arch.md @@ -1,6 +1,7 @@ --- -sidebar_label: Architecture title: Architecture +sidebar_label: Architecture +description: This document describes the architecture of TDengine. --- ## Cluster and Primary Logic Unit diff --git a/docs/en/21-tdinternal/03-high-availability.md b/docs/en/21-tdinternal/03-high-availability.md index e2e1c6521e..a0f6ca4ffe 100644 --- a/docs/en/21-tdinternal/03-high-availability.md +++ b/docs/en/21-tdinternal/03-high-availability.md @@ -1,6 +1,7 @@ --- -sidebar_label: High Availability title: High Availability +sidebar_label: High Availability +description: This document describes how TDengine implements high availability. --- ## High Availability of Vnode diff --git a/docs/en/21-tdinternal/04-load-balance.md b/docs/en/21-tdinternal/04-load-balance.md index 7648398059..73da1c1dd6 100644 --- a/docs/en/21-tdinternal/04-load-balance.md +++ b/docs/en/21-tdinternal/04-load-balance.md @@ -1,6 +1,7 @@ --- -sidebar_label: Load Balance title: Load Balance +sidebar_label: Load Balance +description: This document describes how TDengine implements load balancing. --- The load balance in TDengine is mainly about processing data series data. TDengine employes builtin hash algorithm to distribute all the tables, sub-tables and their data of a database across all the vgroups that belongs to the database. Each table or sub-table can only be handled by a single vgroup, while each vgroup can process multiple table or sub-table. diff --git a/docs/en/21-tdinternal/index.md b/docs/en/21-tdinternal/index.md index 999d6f89ff..4f08467543 100644 --- a/docs/en/21-tdinternal/index.md +++ b/docs/en/21-tdinternal/index.md @@ -1,5 +1,6 @@ --- title: TDengine Inside +description: This document describes the internals of TDengine from an architectural perspective. --- ```mdx-code-block diff --git a/docs/en/25-application/01-telegraf.md b/docs/en/25-application/01-telegraf.md index 65fb08ee67..e043aebcb6 100644 --- a/docs/en/25-application/01-telegraf.md +++ b/docs/en/25-application/01-telegraf.md @@ -1,6 +1,7 @@ --- -sidebar_label: TDengine + Telegraf + Grafana title: Quickly Build IT DevOps Visualization System with TDengine + Telegraf + Grafana +sidebar_label: TDengine + Telegraf + Grafana +description: This document describes how to create an IT visualization system by integrating TDengine with Telegraf and Grafana. --- ## Background diff --git a/docs/en/25-application/02-collectd.md b/docs/en/25-application/02-collectd.md index 97412b2309..6ac7253fc4 100644 --- a/docs/en/25-application/02-collectd.md +++ b/docs/en/25-application/02-collectd.md @@ -1,6 +1,7 @@ --- -sidebar_label: TDengine + collectd/StatsD + Grafana title: Quickly build an IT DevOps visualization system using TDengine + collectd/StatsD + Grafana +sidebar_label: TDengine + collectd/StatsD + Grafana +description: This document describes how to build an IT visualization system by integrating TDengine with Grafana and collectd or StatsD. --- ## Background diff --git a/docs/en/25-application/03-immigrate.md b/docs/en/25-application/03-immigrate.md index 1aabaa43e7..30d069e4e2 100644 --- a/docs/en/25-application/03-immigrate.md +++ b/docs/en/25-application/03-immigrate.md @@ -1,6 +1,7 @@ --- -sidebar_label: OpenTSDB Migration to TDengine title: Best Practices for Migrating OpenTSDB Applications to TDengine +sidebar_label: OpenTSDB Migration to TDengine +description: This document describes the best practices for migrating an OpenTSDB application to TDengine. --- As a distributed, scalable, distributed time-series database platform based on HBase, and thanks to its first-mover advantage, OpenTSDB is widely used for monitoring in DevOps. However, as new technologies like cloud computing, microservices, and containerization technology has developed rapidly, Enterprise-level services are becoming more and more diverse and the architecture is becoming more complex. diff --git a/docs/en/25-application/index.md b/docs/en/25-application/index.md index 5383a00c67..178fef47b6 100644 --- a/docs/en/25-application/index.md +++ b/docs/en/25-application/index.md @@ -1,5 +1,6 @@ --- title: Application Practice +description: This document describes some examples of building systems around TDengine. --- ```mdx-code-block diff --git a/docs/en/27-train-faq/01-faq.md b/docs/en/27-train-faq/01-faq.md index 7650e97365..9e7f4f8e0d 100644 --- a/docs/en/27-train-faq/01-faq.md +++ b/docs/en/27-train-faq/01-faq.md @@ -1,5 +1,6 @@ --- title: Frequently Asked Questions +description: This document describes the frequently asked questions about TDengine. --- ## Submit an Issue diff --git a/docs/en/27-train-faq/index.md b/docs/en/27-train-faq/index.md index 2cb87aab00..cc55a41559 100644 --- a/docs/en/27-train-faq/index.md +++ b/docs/en/27-train-faq/index.md @@ -1,5 +1,6 @@ --- title: FAQ & Others +description: This document describes common issues related with TDengine. --- ```mdx-code-block diff --git a/docs/en/28-releases/01-tdengine.md b/docs/en/28-releases/01-tdengine.md index 83ea3eb5e6..a6a28e04c4 100644 --- a/docs/en/28-releases/01-tdengine.md +++ b/docs/en/28-releases/01-tdengine.md @@ -1,7 +1,7 @@ --- -sidebar_label: TDengine title: TDengine Release History and Download Links -description: TDengine release history, Release Notes and download links. +sidebar_label: TDengine +description: This document provides download links for all released versions of TDengine 3.0. --- TDengine 3.x installation packages can be downloaded at the following links: diff --git a/docs/en/28-releases/02-tools.md b/docs/en/28-releases/02-tools.md index 97fed654f2..3c1dc32f8d 100644 --- a/docs/en/28-releases/02-tools.md +++ b/docs/en/28-releases/02-tools.md @@ -1,7 +1,7 @@ --- -sidebar_label: taosTools title: taosTools Release History and Download Links -description: taosTools release history, Release Notes, download links. +sidebar_label: taosTools +description: This document provides download links for all released versions of taosTools compatible with TDengine 3.0. --- taosTools installation packages can be downloaded at the following links: diff --git a/docs/en/28-releases/index.md b/docs/en/28-releases/index.md index c01c99cdce..d1f93c3b9b 100644 --- a/docs/en/28-releases/index.md +++ b/docs/en/28-releases/index.md @@ -1,5 +1,6 @@ --- title: Releases +description: This document describes TDengine products that have been released. --- ```mdx-code-block From ba73ba935912d3600bb2fe57968507f34eb2b4f7 Mon Sep 17 00:00:00 2001 From: xiaolei li <85657333+xleili@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:47:24 +0800 Subject: [PATCH 60/67] docs(driver): add macOS installation instructors for node (#19796) * docs(driver):add macOS installation instructors for node * docs(driver):node add install EN macos install instruction * docs(driver):fix typo * docs: refine a bit --------- Co-authored-by: Shuduo Sang --- docs/en/14-reference/03-connector/08-node.mdx | 14 ++++++++++++-- docs/zh/08-connector/35-node.mdx | 10 ++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/docs/en/14-reference/03-connector/08-node.mdx b/docs/en/14-reference/03-connector/08-node.mdx index 1ac8f69d06..83479f91da 100644 --- a/docs/en/14-reference/03-connector/08-node.mdx +++ b/docs/en/14-reference/03-connector/08-node.mdx @@ -60,9 +60,19 @@ Please refer to [version support list](/reference/connector#version-support) - `python` (recommended for `v2.7` , `v3.x.x` currently not supported) - `@tdengine/client` 3.0.0 supports Node.js LTS v10.9.0 or later and Node.js LTS v12.8.0 or later. Older versions may be incompatible. - `make` -- C compiler, [GCC](https://gcc.gnu.org) v4.8.5 or higher +- C compiler, [GCC](https://gcc.gnu.org) v4.8.5 or later. + + + +- `python` (recommended for `v2.7` , `v3.x.x` currently not supported) +- `@tdengine/client` 3.0.0 currently supports Node.js from v12.22.12, but only later versions of v12. Other versions may be incompatible. +- `make` +- C compiler, [GCC](https://gcc.gnu.org) v4.8.5 or later. + + + - Installation method 1 @@ -250,4 +260,4 @@ let cursor = conn.cursor(); ## API Reference -[API Reference](https://docs.taosdata.com/api/td2.0-connector/) \ No newline at end of file +[API Reference](https://docs.taosdata.com/api/td2.0-connector/) diff --git a/docs/zh/08-connector/35-node.mdx b/docs/zh/08-connector/35-node.mdx index 35c28e3b9f..f2aff41da2 100644 --- a/docs/zh/08-connector/35-node.mdx +++ b/docs/zh/08-connector/35-node.mdx @@ -62,6 +62,16 @@ REST 连接器支持所有能运行 Node.js 的平台。 - C 语言编译器,[GCC](https://gcc.gnu.org) v4.8.5 或更高版本 + + + +- `python` (建议`v2.7` , `v3.x.x` 目前还不支持) +- `@tdengine/client` 3.0.0 目前是只支持 Node.js v12.22.12 或 v12 的更高版本;其他版本可能存在包兼容性的问题 +- `make` +- C 语言编译器,[GCC](https://gcc.gnu.org) v4.8.5 或更高版本 + + + - 安装方法 1 From 1401aab1e8fca833007d33e7128a100a06c5e50d Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 6 Feb 2023 17:50:58 +0800 Subject: [PATCH 61/67] fix:parse json error in schemaless --- source/client/src/clientSmlJson.c | 34 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/source/client/src/clientSmlJson.c b/source/client/src/clientSmlJson.c index db1ca5a421..9ed1d83338 100644 --- a/source/client/src/clientSmlJson.c +++ b/source/client/src/clientSmlJson.c @@ -275,6 +275,7 @@ int smlJsonParseObjFirst(char **start, SSmlLineInfo *element, int8_t *offset){ } if(unlikely(isInQuote && *(*start) == '"')){ element->measureLen = (*start) - element->measure; + (*start)++; break; } (*start)++; @@ -393,6 +394,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){ while(*(*start)){ if(unlikely(*(*start) == '"')){ element->measureLen = (*start) - element->measure; + (*start)++; break; } (*start)++; @@ -406,15 +408,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){ element->timestampLen = tmp - (*start); *start = tmp; } - continue; - } - - while(*(*start)){ - if(unlikely(*(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){ - element->timestampLen = (*start) - element->timestamp; - break; + }else{ + while(*(*start)){ + if(unlikely(*(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){ + element->timestampLen = (*start) - element->timestamp; + break; + } + (*start)++; } - (*start)++; } }else if((*start)[1] == 'v'){ (*start) += offset[index++]; @@ -425,14 +426,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){ element->colsLen = tmp - (*start); *start = tmp; } - continue; - } - while(*(*start)){ - if(unlikely( *(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){ - element->colsLen = (*start) - element->cols; - break; + }else{ + while(*(*start)){ + if(unlikely( *(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){ + element->colsLen = (*start) - element->cols; + break; + } + (*start)++; } - (*start)++; } }else if((*start)[1] == 't' && (*start)[2] == 'a'){ (*start) += offset[index++]; @@ -442,7 +443,6 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){ element->tagsLen = tmp - (*start); *start = tmp; } - continue; } if(*(*start) == '}'){ (*start)++; @@ -1259,6 +1259,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) { if(info->dataFormat) { SSmlLineInfo element = {0}; ret = smlParseJSONString(info, &dataPointStart, &element); + if(element.measure == NULL) break; }else{ if(cnt >= payloadNum){ payloadNum = payloadNum << 1; @@ -1269,6 +1270,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) { } } ret = smlParseJSONString(info, &dataPointStart, info->lines + cnt); + if((info->lines + cnt)->measure == NULL) break; } if (unlikely(ret != TSDB_CODE_SUCCESS)) { uError("SML:0x%" PRIx64 " Invalid JSON Payload 1:%s", info->id, payload); From d3c260ad55e9347cdd2415247a6743a9132f224c Mon Sep 17 00:00:00 2001 From: kailixu Date: Mon, 6 Feb 2023 18:45:33 +0800 Subject: [PATCH 62/67] feat: grant support upgrade/downgrade --- source/dnode/mgmt/mgmt_dnode/inc/dmInt.h | 2 +- source/dnode/mgmt/mgmt_dnode/src/dmWorker.c | 2 +- source/dnode/mnode/impl/src/mndGrant.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/dnode/mgmt/mgmt_dnode/inc/dmInt.h b/source/dnode/mgmt/mgmt_dnode/inc/dmInt.h index ff32cbcb08..600a1f6829 100644 --- a/source/dnode/mgmt/mgmt_dnode/inc/dmInt.h +++ b/source/dnode/mgmt/mgmt_dnode/inc/dmInt.h @@ -48,7 +48,7 @@ int32_t dmProcessAuthRsp(SDnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t dmProcessGrantRsp(SDnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t dmProcessServerRunStatus(SDnodeMgmt *pMgmt, SRpcMsg *pMsg); int32_t dmProcessRetrieve(SDnodeMgmt *pMgmt, SRpcMsg *pMsg); -int32_t dmProcessGrantReq(SRpcMsg *pMsg); +int32_t dmProcessGrantReq(void *pInfo, SRpcMsg *pMsg); // dmWorker.c int32_t dmPutNodeMsgToMgmtQueue(SDnodeMgmt *pMgmt, SRpcMsg *pMsg); diff --git a/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c b/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c index 76c8e09b70..0d3b423771 100644 --- a/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c +++ b/source/dnode/mgmt/mgmt_dnode/src/dmWorker.c @@ -234,7 +234,7 @@ static void dmProcessMgmtQueue(SQueueInfo *pInfo, SRpcMsg *pMsg) { code = dmProcessRetrieve(pMgmt, pMsg); break; case TDMT_MND_GRANT: - code = dmProcessGrantReq(pMsg); + code = dmProcessGrantReq(&pMgmt->pData->clusterId, pMsg); break; default: terrno = TSDB_CODE_MSG_NOT_PROCESSED; diff --git a/source/dnode/mnode/impl/src/mndGrant.c b/source/dnode/mnode/impl/src/mndGrant.c index 396de7eed3..42851bd16a 100644 --- a/source/dnode/mnode/impl/src/mndGrant.c +++ b/source/dnode/mnode/impl/src/mndGrant.c @@ -129,7 +129,7 @@ void grantParseParameter() { mError("can't parsed parameter k"); } void grantReset(SMnode *pMnode, EGrantType grant, uint64_t value) {} void grantAdd(EGrantType grant, uint64_t value) {} void grantRestore(EGrantType grant, uint64_t value) {} -int32_t dmProcessGrantReq(SRpcMsg *pMsg) { return TSDB_CODE_SUCCESS; } +int32_t dmProcessGrantReq(void* pInfo, SRpcMsg *pMsg) { return TSDB_CODE_SUCCESS; } #endif From 40d6e9d688722df9cadc71aed913e904cb16c909 Mon Sep 17 00:00:00 2001 From: wangmm0220 Date: Mon, 6 Feb 2023 23:20:43 +0800 Subject: [PATCH 63/67] fix:fields error in schemaless --- source/client/src/clientSmlJson.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/client/src/clientSmlJson.c b/source/client/src/clientSmlJson.c index 9ed1d83338..228f8d40f3 100644 --- a/source/client/src/clientSmlJson.c +++ b/source/client/src/clientSmlJson.c @@ -256,7 +256,7 @@ int smlJsonParseObjFirst(char **start, SSmlLineInfo *element, int8_t *offset){ if(unlikely(index >= OTD_JSON_FIELDS_NUM)) { uError("index >= %d, %s", OTD_JSON_FIELDS_NUM, *start) - break; + return -1; } char *sTmp = *start; @@ -385,7 +385,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){ if(unlikely(index >= OTD_JSON_FIELDS_NUM)) { uError("index >= %d, %s", OTD_JSON_FIELDS_NUM, *start) - break; + return -1; } if((*start)[1] == 'm'){ From cdd7d07ee9d58c5884a635ca7fcc0ee0833ce5a2 Mon Sep 17 00:00:00 2001 From: Xuefeng Tan <1172915550@qq.com> Date: Tue, 7 Feb 2023 10:28:16 +0800 Subject: [PATCH 64/67] enh(taosAdapter): add whether to disable the collection clientIP configuration option (#19818) --- cmake/taosadapter_CMakeLists.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/taosadapter_CMakeLists.txt.in b/cmake/taosadapter_CMakeLists.txt.in index d156057459..8df50af03c 100644 --- a/cmake/taosadapter_CMakeLists.txt.in +++ b/cmake/taosadapter_CMakeLists.txt.in @@ -2,7 +2,7 @@ # taosadapter ExternalProject_Add(taosadapter GIT_REPOSITORY https://github.com/taosdata/taosadapter.git - GIT_TAG 3e08996 + GIT_TAG db6c843 SOURCE_DIR "${TD_SOURCE_DIR}/tools/taosadapter" BINARY_DIR "" #BUILD_IN_SOURCE TRUE From 8659c21beb284107510e4d72864717946fd9f740 Mon Sep 17 00:00:00 2001 From: xinsheng Ren <285808407@qq.com> Date: Tue, 7 Feb 2023 14:29:46 +0800 Subject: [PATCH 65/67] fix: tools (#19772) Co-authored-by: facetosea <25808407@qq.com> --- packaging/tools/install.sh | 55 ++++++++++++++++++++++++------- packaging/tools/install_client.sh | 31 +++++++++++++---- packaging/tools/makeclient.sh | 34 ++++++++++++++----- packaging/tools/makepkg.sh | 29 +++++++++++----- packaging/tools/remove.sh | 31 +++++++++++++---- packaging/tools/remove_client.sh | 17 +++++++++- packaging/tools/tdengine.iss | 18 +++++----- 7 files changed, 166 insertions(+), 49 deletions(-) diff --git a/packaging/tools/install.sh b/packaging/tools/install.sh index dfdbaa6fdd..5aeff0e2fa 100755 --- a/packaging/tools/install.sh +++ b/packaging/tools/install.sh @@ -35,6 +35,20 @@ dumpName="taosdump" demoName="taosdemo" xname="taosx" +clientName2="taos" +serverName2="taosd" +productName2="TDengine" +emailName2="taosdata.com" + +benchmarkName2="${clientName2}Benchmark" +dumpName2="${clientName2}dump" +uninstallScript2="rm${clientName2}" + +historyFile="${clientName2}_history" +logDir="/var/log/${clientName2}" +configDir="/etc/${clientName2}" +installDir="/usr/local/${clientName}" + data_dir=${dataDir} log_dir=${logDir} cfg_install_dir=${configDir} @@ -217,6 +231,13 @@ function install_bin() { [ -x ${install_main_dir}/bin/TDinsight.sh ] && ${csudo}ln -s ${install_main_dir}/bin/TDinsight.sh ${bin_link_dir}/TDinsight.sh || : [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/${uninstallScript} || : [ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo}ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || : + + if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + [ -x ${install_main_dir}/bin/${clientName} ] && ${csudo}ln -s ${install_main_dir}/bin/${clientName} ${bin_link_dir}/${clientName2} || : + [ -x ${install_main_dir}/bin/${benchmarkName} ] && ${csudo}ln -s ${install_main_dir}/bin/${benchmarkName} ${bin_link_dir}/${benchmarkName2} || : + [ -x ${install_main_dir}/bin/${dumpName} ] && ${csudo}ln -s ${install_main_dir}/bin/${dumpName} ${bin_link_dir}/${dumpName2} || : + [ -x ${install_main_dir}/bin/remove.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove.sh ${bin_link_dir}/${uninstallScript2} || : + fi } function install_lib() { @@ -518,7 +539,7 @@ function install_config() { local_fqdn_check echo - echo -e -n "${GREEN}Enter FQDN:port (like h1.${emailName}:6030) of an existing ${productName} cluster node to join${NC}" + echo -e -n "${GREEN}Enter FQDN:port (like h1.${emailName2}:6030) of an existing ${productName2} cluster node to join${NC}" echo echo -e -n "${GREEN}OR leave it blank to build one${NC}:" read firstEp @@ -655,6 +676,9 @@ function clean_service_on_systemd() { fi ${csudo}systemctl disable tarbitratord &>/dev/null || echo &>/dev/null ${csudo}rm -f ${tarbitratord_service_config} + # if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + # ${csudo}rm -f ${service_config_dir}/${serverName2}.service + # fi } function install_service_on_systemd() { @@ -663,6 +687,13 @@ function install_service_on_systemd() { [ -f ${script_dir}/cfg/${serverName}.service ] && ${csudo}cp ${script_dir}/cfg/${serverName}.service \ ${service_config_dir}/ || : + + # if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + # [ -f ${script_dir}/cfg/${serverName}.service ] && + # ${csudo}cp ${script_dir}/cfg/${serverName}.service \ + # ${service_config_dir}/${serverName2}.service || : + # fi + ${csudo}systemctl daemon-reload ${csudo}systemctl enable ${serverName} @@ -793,7 +824,7 @@ function updateProduct() { tar -zxf ${tarName} install_jemalloc - echo -e "${GREEN}Start to update ${productName}...${NC}" + echo -e "${GREEN}Start to update ${productName2}...${NC}" # Stop the service if running if ps aux | grep -v grep | grep ${serverName} &>/dev/null; then if ((${service_mod} == 0)); then @@ -830,25 +861,25 @@ function updateProduct() { echo echo -e "${GREEN_DARK}To configure ${productName} ${NC}: edit ${cfg_install_dir}/${configFile}" [ -f ${configDir}/taosadapter.toml ] && [ -f ${installDir}/bin/taosadapter ] && \ - echo -e "${GREEN_DARK}To configure Taos Adapter ${NC}: edit ${configDir}/taosadapter.toml" + echo -e "${GREEN_DARK}To configure Adapter ${NC}: edit ${configDir}/taosadapter.toml" if ((${service_mod} == 0)); then echo -e "${GREEN_DARK}To start ${productName} ${NC}: ${csudo}systemctl start ${serverName}${NC}" [ -f ${service_config_dir}/taosadapter.service ] && [ -f ${installDir}/bin/taosadapter ] && \ - echo -e "${GREEN_DARK}To start Taos Adatper ${NC}: ${csudo}systemctl start taosadapter ${NC}" + echo -e "${GREEN_DARK}To start Adatper ${NC}: ${csudo}systemctl start taosadapter ${NC}" elif ((${service_mod} == 1)); then echo -e "${GREEN_DARK}To start ${productName} ${NC}: ${csudo}service ${serverName} start${NC}" [ -f ${service_config_dir}/taosadapter.service ] && [ -f ${installDir}/bin/taosadapter ] && \ - echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: ${csudo}service taosadapter start${NC}" + echo -e "${GREEN_DARK}To start Adapter ${NC}: ${csudo}service taosadapter start${NC}" else echo -e "${GREEN_DARK}To start ${productName} ${NC}: ./${serverName}${NC}" [ -f ${installDir}/bin/taosadapter ] && \ - echo -e "${GREEN_DARK}To start Taos Adapter ${NC}: taosadapter &${NC}" + echo -e "${GREEN_DARK}To start ${clientName} Adapter ${NC}: taosadapter &${NC}" fi if [ ${openresty_work} = 'true' ]; then - echo -e "${GREEN_DARK}To access ${productName} ${NC}: use ${GREEN_UNDERLINE}${clientName} -h $serverFqdn${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${web_port}${NC}" + echo -e "${GREEN_DARK}To access ${productName2} ${NC}: use ${GREEN_UNDERLINE}${clientName2} -h $serverFqdn${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${web_port}${NC}" else - echo -e "${GREEN_DARK}To access ${productName} ${NC}: use ${GREEN_UNDERLINE}${clientName} -h $serverFqdn${NC} in shell${NC}" + echo -e "${GREEN_DARK}To access ${productName2} ${NC}: use ${GREEN_UNDERLINE}${clientName2} -h $serverFqdn${NC} in shell${NC}" fi if ((${prompt_force} == 1)); then @@ -856,13 +887,13 @@ function updateProduct() { echo -e "${RED}Please run '${serverName} --force-keep-file' at first time for the exist ${productName} $exist_version!${NC}" fi echo - echo -e "\033[44;32;1m${productName} is updated successfully!${NC}" + echo -e "\033[44;32;1m${productName2} is updated successfully!${NC}" else install_bin install_config echo - echo -e "\033[44;32;1m${productName} client is updated successfully!${NC}" + echo -e "\033[44;32;1m${productName2} client is updated successfully!${NC}" fi rm -rf $(tar -tf ${tarName} | grep -v "^\./$") @@ -876,7 +907,7 @@ function installProduct() { fi tar -zxf ${tarName} - echo -e "${GREEN}Start to install ${productName}...${NC}" + echo -e "${GREEN}Start to install ${productName2}...${NC}" install_main_path @@ -965,7 +996,7 @@ serverFqdn=$(hostname) if [ "$verType" == "server" ]; then # Check default 2.x data file. if [ -x ${data_dir}/dnode/dnodeCfg.json ]; then - echo -e "\033[44;31;5mThe default data directory ${data_dir} contains old data of tdengine 2.x, please clear it before installing!\033[0m" + echo -e "\033[44;31;5mThe default data directory ${data_dir} contains old data of ${productName2} 2.x, please clear it before installing!\033[0m" else # Install server and client if [ -x ${bin_dir}/${serverName} ]; then diff --git a/packaging/tools/install_client.sh b/packaging/tools/install_client.sh index f7d677c982..1543c59297 100755 --- a/packaging/tools/install_client.sh +++ b/packaging/tools/install_client.sh @@ -23,6 +23,16 @@ osType=Linux pagMode=full verMode=edge +clientName2="taos" +serverName2="taosd" +productName2="TDengine" +emailName2="taosdata.com" + +benchmarkName2="${clientName2}Benchmark" +dumpName2="${clientName2}dump" +demoName2="${clientName2}demo" +uninstallScript2="rm${clientName2}" + if [ "$osType" != "Darwin" ]; then script_dir=$(dirname $(readlink -f "$0")) # Dynamic directory @@ -112,6 +122,15 @@ function install_bin() { fi [ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/${uninstallScript} || : [ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo}ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || : + + if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + #Make link + [ -x ${install_main_dir}/bin/${clientName} ] && ${csudo}ln -s ${install_main_dir}/bin/${clientName} ${bin_link_dir}/${clientName2} || : + if [ "$osType" != "Darwin" ]; then + [ -x ${install_main_dir}/bin/taosdemo ] && ${csudo}ln -s ${install_main_dir}/bin/taosdemo ${bin_link_dir}/${demoName2} || : + fi + [ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo}ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/${uninstallScript2} || : + fi } function clean_lib() { @@ -263,9 +282,9 @@ function update_TDengine() { exit 1 fi tar -zxf ${tarName} - echo -e "${GREEN}Start to update ${productName} client...${NC}" + echo -e "${GREEN}Start to update ${productName2} client...${NC}" # Stop the client shell if running - if ps aux | grep -v grep | grep ${clientName} &> /dev/null; then + if ps aux | grep -v grep | grep ${clientName2} &> /dev/null; then kill_client sleep 1 fi @@ -284,7 +303,7 @@ function update_TDengine() { install_config echo - echo -e "\033[44;32;1m${productName} client is updated successfully!${NC}" + echo -e "\033[44;32;1m${productName2} client is updated successfully!${NC}" rm -rf $(tar -tf ${tarName}) } @@ -296,7 +315,7 @@ function install_TDengine() { exit 1 fi tar -zxf ${tarName} - echo -e "${GREEN}Start to install ${productName} client...${NC}" + echo -e "${GREEN}Start to install ${productName2} client...${NC}" install_main_path install_log @@ -311,7 +330,7 @@ function install_TDengine() { install_config echo - echo -e "\033[44;32;1m${productName} client is installed successfully!${NC}" + echo -e "\033[44;32;1m${productName2} client is installed successfully!${NC}" rm -rf $(tar -tf ${tarName}) } @@ -321,7 +340,7 @@ function install_TDengine() { # Install or updata client and client # if server is already install, don't install client if [ -e ${bin_dir}/${serverName} ]; then - echo -e "\033[44;32;1mThere are already installed ${productName} server, so don't need install client!${NC}" + echo -e "\033[44;32;1mThere are already installed ${productName2} server, so don't need install client!${NC}" exit 0 fi diff --git a/packaging/tools/makeclient.sh b/packaging/tools/makeclient.sh index db28de8dec..208bfc183c 100755 --- a/packaging/tools/makeclient.sh +++ b/packaging/tools/makeclient.sh @@ -13,7 +13,13 @@ osType=$5 verMode=$6 verType=$7 pagMode=$8 -dbName=$9 +#comVersion=$9 +dbName=$10 + +productName2="${11}" +#serverName2="${12}d" +clientName2="${12}" +# cusEmail2=${13} productName="TDengine" clientName="taos" @@ -38,15 +44,21 @@ release_dir="${top_dir}/release" #package_name='linux' if [ "$verMode" == "cluster" ]; then - install_dir="${release_dir}/${productName}-enterprise-client-${version}" + install_dir="${release_dir}/${productName2}-enterprise-client-${version}" elif [ "$verMode" == "cloud" ]; then - install_dir="${release_dir}/${productName}-cloud-client-${version}" + install_dir="${release_dir}/${productName2}-cloud-client-${version}" else - install_dir="${release_dir}/${productName}-client-${version}" + install_dir="${release_dir}/${productName2}-client-${version}" fi # Directories and files. +if [ "$verMode" == "cluster" ]; then + sed -i 's/verMode=edge/verMode=cluster/g' ${script_dir}/remove_client.sh + sed -i "s/clientName2=\"taos\"/clientName2=\"${clientName2}\"/g" ${script_dir}/remove_client.sh + sed -i "s/productName2=\"TDengine\"/productName2=\"${productName2}\"/g" ${script_dir}/remove_client.sh +fi + if [ "$osType" != "Darwin" ]; then if [ "$pagMode" == "lite" ]; then strip ${build_dir}/bin/${clientName} @@ -131,22 +143,28 @@ fi cd ${curr_dir} cp ${install_files} ${install_dir} +cp ${install_dir}/install_client.sh install_client_temp.sh if [ "$osType" == "Darwin" ]; then - sed 's/osType=Linux/osType=Darwin/g' ${install_dir}/install_client.sh >>install_client_temp.sh + sed -i 's/osType=Linux/osType=Darwin/g' install_client_temp.sh mv install_client_temp.sh ${install_dir}/install_client.sh fi if [ "$verMode" == "cluster" ]; then - sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install_client.sh >>install_client_temp.sh + sed -i 's/verMode=edge/verMode=cluster/g' install_client_temp.sh + sed -i "s/serverName2=\"taosd\"/serverName2=\"${serverName2}\"/g" install_client_temp.sh + sed -i "s/clientName2=\"taos\"/clientName2=\"${clientName2}\"/g" install_client_temp.sh + sed -i "s/productName2=\"TDengine\"/productName2=\"${productName2}\"/g" install_client_temp.sh + sed -i "s/emailName2=\"taosdata.com\"/emailName2=\"${cusEmail2}\"/g" install_client_temp.sh + mv install_client_temp.sh ${install_dir}/install_client.sh fi if [ "$verMode" == "cloud" ]; then - sed 's/verMode=edge/verMode=cloud/g' ${install_dir}/install_client.sh >>install_client_temp.sh + sed -i 's/verMode=edge/verMode=cloud/g' install_client_temp.sh mv install_client_temp.sh ${install_dir}/install_client.sh fi if [ "$pagMode" == "lite" ]; then - sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install_client.sh >>install_client_temp.sh + sed -i 's/pagMode=full/pagMode=lite/g' install_client_temp.sh mv install_client_temp.sh ${install_dir}/install_client.sh fi chmod a+x ${install_dir}/install_client.sh diff --git a/packaging/tools/makepkg.sh b/packaging/tools/makepkg.sh index 0ee548242f..0a34d81b7f 100755 --- a/packaging/tools/makepkg.sh +++ b/packaging/tools/makepkg.sh @@ -16,6 +16,10 @@ verType=$7 pagMode=$8 versionComp=$9 dbName=${10} +productName2="${11}" +serverName2="${12}d" +clientName2="${12}" +cusEmail2="${13}" script_dir="$(dirname $(readlink -f $0))" top_dir="$(readlink -f ${script_dir}/../..)" @@ -38,11 +42,11 @@ release_dir="${top_dir}/release" #package_name='linux' if [ "$verMode" == "cluster" ]; then - install_dir="${release_dir}/${productName}-enterprise-server-${version}" + install_dir="${release_dir}/${productName2}-enterprise-server-${version}" elif [ "$verMode" == "cloud" ]; then - install_dir="${release_dir}/${productName}-cloud-server-${version}" + install_dir="${release_dir}/${productName2}-cloud-server-${version}" else - install_dir="${release_dir}/${productName}-server-${version}" + install_dir="${release_dir}/${productName2}-server-${version}" fi if [ -d ${top_dir}/tools/taos-tools/packaging/deb ]; then @@ -50,11 +54,11 @@ if [ -d ${top_dir}/tools/taos-tools/packaging/deb ]; then [ -z "$taos_tools_ver" ] && taos_tools_ver="0.1.0" taostools_ver=$(git tag |grep -v taos | sort | tail -1) - taostools_install_dir="${release_dir}/${clientName}Tools-${taostools_ver}" + taostools_install_dir="${release_dir}/${clientName2}Tools-${taostools_ver}" cd ${curr_dir} else - taostools_install_dir="${release_dir}/${clientName}Tools-${version}" + taostools_install_dir="${release_dir}/${clientName2}Tools-${version}" fi # Directories and files @@ -225,6 +229,10 @@ fi if [ "$verMode" == "cluster" ]; then sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove.sh >>remove_temp.sh + sed -i "s/serverName2=\"taosd\"/serverName2=\"${serverName2}\"/g" remove_temp.sh + sed -i "s/clientName2=\"taos\"/clientName2=\"${clientName2}\"/g" remove_temp.sh + sed -i "s/productName2=\"TDengine\"/productName2=\"${productName2}\"/g" remove_temp.sh + sed -i "s/emailName2=\"taosdata.com\"/emailName2=\"${cusEmail2}\"/g" remove_temp.sh mv remove_temp.sh ${install_dir}/bin/remove.sh fi if [ "$verMode" == "cloud" ]; then @@ -247,16 +255,21 @@ fi cd ${curr_dir} cp ${install_files} ${install_dir} +cp ${install_dir}/install.sh install_temp.sh if [ "$verMode" == "cluster" ]; then - sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install.sh >>install_temp.sh + sed -i 's/verMode=edge/verMode=cluster/g' install_temp.sh + sed -i "s/serverName2=\"taosd\"/serverName2=\"${serverName2}\"/g" install_temp.sh + sed -i "s/clientName2=\"taos\"/clientName2=\"${clientName2}\"/g" install_temp.sh + sed -i "s/productName2=\"TDengine\"/productName2=\"${productName2}\"/g" install_temp.sh + sed -i "s/emailName2=\"taosdata.com\"/emailName2=\"${cusEmail2}\"/g" install_temp.sh mv install_temp.sh ${install_dir}/install.sh fi if [ "$verMode" == "cloud" ]; then - sed 's/verMode=edge/verMode=cloud/g' ${install_dir}/install.sh >>install_temp.sh + sed -i 's/verMode=edge/verMode=cloud/g' install_temp.sh mv install_temp.sh ${install_dir}/install.sh fi if [ "$pagMode" == "lite" ]; then - sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >>install_temp.sh + sed -i 's/pagMode=full/pagMode=lite/g' install_temp.sh mv install_temp.sh ${install_dir}/install.sh fi chmod a+x ${install_dir}/install.sh diff --git a/packaging/tools/remove.sh b/packaging/tools/remove.sh index 8e5630ec2f..9c50c4582d 100755 --- a/packaging/tools/remove.sh +++ b/packaging/tools/remove.sh @@ -36,6 +36,16 @@ clientName="taos" uninstallScript="rmtaos" productName="TDengine" +serverName2="taosd" +clientName2="taos" +productName2="TDengine" + +benchmarkName2="${clientName2}Benchmark" +dumpName2="${clientName2}dump" +uninstallScript2="rm${clientName2}" + +installDir="/usr/local/${clientName}" + #install main path install_main_dir=${installDir} data_link_dir=${installDir}/data @@ -107,6 +117,15 @@ function clean_bin() { ${csudo}rm -f ${bin_link_dir}/tarbitrator || : ${csudo}rm -f ${bin_link_dir}/set_core || : ${csudo}rm -f ${bin_link_dir}/TDinsight.sh || : + ${csudo}rm -f ${bin_link_dir}/taoskeeper || : + ${csudo}rm -f ${bin_link_dir}/taosx || : + + if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + ${csudo}rm -f ${bin_link_dir}/${clientName2} || : + ${csudo}rm -f ${bin_link_dir}/${benchmarkName2} || : + ${csudo}rm -f ${bin_link_dir}/${dumpName2} || : + ${csudo}rm -f ${bin_link_dir}/${uninstallScript2} || : + fi } function clean_local_bin() { @@ -147,7 +166,7 @@ function clean_log() { function clean_service_on_systemd() { taosd_service_config="${service_config_dir}/${taos_service_name}.service" if systemctl is-active --quiet ${taos_service_name}; then - echo "${productName} ${serverName} is running, stopping it..." + echo "${productName2} ${serverName2} is running, stopping it..." ${csudo}systemctl stop ${taos_service_name} &>/dev/null || echo &>/dev/null fi ${csudo}systemctl disable ${taos_service_name} &>/dev/null || echo &>/dev/null @@ -155,7 +174,7 @@ function clean_service_on_systemd() { taosadapter_service_config="${service_config_dir}/taosadapter.service" if systemctl is-active --quiet ${taosadapter_service_name}; then - echo "${productName} taosAdapter is running, stopping it..." + echo "${productName2} ${clientName2}Adapter is running, stopping it..." ${csudo}systemctl stop ${taosadapter_service_name} &>/dev/null || echo &>/dev/null fi ${csudo}systemctl disable ${taosadapter_service_name} &>/dev/null || echo &>/dev/null @@ -163,7 +182,7 @@ function clean_service_on_systemd() { tarbitratord_service_config="${service_config_dir}/${tarbitrator_service_name}.service" if systemctl is-active --quiet ${tarbitrator_service_name}; then - echo "${productName} tarbitrator is running, stopping it..." + echo "${productName2} tarbitrator is running, stopping it..." ${csudo}systemctl stop ${tarbitrator_service_name} &>/dev/null || echo &>/dev/null fi ${csudo}systemctl disable ${tarbitrator_service_name} &>/dev/null || echo &>/dev/null @@ -172,12 +191,12 @@ function clean_service_on_systemd() { function clean_service_on_sysvinit() { if ps aux | grep -v grep | grep ${serverName} &>/dev/null; then - echo "${productName} ${serverName} is running, stopping it..." + echo "${productName2} ${serverName2} is running, stopping it..." ${csudo}service ${serverName} stop || : fi if ps aux | grep -v grep | grep tarbitrator &>/dev/null; then - echo "${productName} tarbitrator is running, stopping it..." + echo "${productName2} tarbitrator is running, stopping it..." ${csudo}service tarbitratord stop || : fi @@ -272,5 +291,5 @@ if [ "$osType" = "Darwin" ]; then ${csudo}rm -rf /Applications/TDengine.app fi -echo -e "${GREEN}${productName} is removed successfully!${NC}" +echo -e "${GREEN}${productName2} is removed successfully!${NC}" echo diff --git a/packaging/tools/remove_client.sh b/packaging/tools/remove_client.sh index 7ab7fa8599..10a0fb5e02 100755 --- a/packaging/tools/remove_client.sh +++ b/packaging/tools/remove_client.sh @@ -12,6 +12,15 @@ installDir="/usr/local/taos" clientName="taos" uninstallScript="rmtaos" +clientName2="taos" +productName2="TDengine" + +benchmarkName2="${clientName}Benchmark" +dumpName2="${clientName}dump" +uninstallScript2="rm${clientName}" + +installDir="/usr/local/${clientName}" + #install main path install_main_dir=${installDir} @@ -40,6 +49,12 @@ function clean_bin() { ${csudo}rm -f ${bin_link_dir}/taosdump || : ${csudo}rm -f ${bin_link_dir}/${uninstallScript} || : ${csudo}rm -f ${bin_link_dir}/set_core || : + + if [ "$verMode" == "cluster" ] && [ "$clientName" != "$clientName2" ]; then + ${csudo}rm -f ${bin_link_dir}/${clientName2} || : + ${csudo}rm -f ${bin_link_dir}/${dumpName2} || : + ${csudo}rm -f ${bin_link_dir}/${uninstallScript2} || : + fi } function clean_lib() { @@ -82,5 +97,5 @@ clean_config ${csudo}rm -rf ${install_main_dir} -echo -e "${GREEN}TDengine client is removed successfully!${NC}" +echo -e "${GREEN}${productName2} client is removed successfully!${NC}" echo diff --git a/packaging/tools/tdengine.iss b/packaging/tools/tdengine.iss index 3a22c73774..b2dac600ab 100644 --- a/packaging/tools/tdengine.iss +++ b/packaging/tools/tdengine.iss @@ -3,7 +3,7 @@ #define MyAppURL "http://www.taosdata.com/" #define MyAppBeforeInstallTxt "windows_before_install.txt" #define MyAppIco "favicon.ico" -#define MyAppInstallDir "C:\TDengine" +#define MyAppInstallDir "C:\{#CusName}" #define MyAppOutputDir "./" #define MyAppSourceDir "C:\TDengine" ;#define MyAppAllFile "\*" @@ -18,7 +18,6 @@ #define MyAppDLLName "\driver\*.dll" ;#define MyAppVersion "3.0" ;#define MyAppInstallName "TDengine" -;#define MyAppInstallName "TDengine" [Setup] VersionInfoVersion={#MyAppVersion} AppId={{A0F7A93C-79C4-485D-B2B8-F0D03DF42FAB} @@ -59,11 +58,14 @@ Source: {#MyAppSourceDir}{#MyAppDriverName}; DestDir: "{app}\driver"; Flags: igN Source: {#MyAppSourceDir}{#MyAppIncludeName}; DestDir: "{app}\include"; Flags: igNoreversion recursesubdirs createallsubdirs Source: {#MyAppSourceDir}{#MyAppExeName}; DestDir: "{app}"; Excludes: {#MyAppExcludeSource} ; Flags: igNoreversion recursesubdirs createallsubdirs Source: {#MyAppSourceDir}{#MyAppTaosdemoExeName}; DestDir: "{app}"; Flags: igNoreversion recursesubdirs createallsubdirs +Source: {#MyAppSourceDir}\taos.exe; DestDir: "{app}"; DestName: "{#CusPrompt}.EXE"; Flags: igNoreversion recursesubdirs createallsubdirs +Source: {#MyAppSourceDir}\taosBenchmark.exe; DestDir: "{app}"; DestName: "{#CusPrompt}Benchmark.EXE"; Flags: igNoreversion recursesubdirs createallsubdirs +Source: {#MyAppSourceDir}\taosdump.exe; DestDir: "{app}"; DestName: "{#CusPrompt}dump.EXE"; Flags: igNoreversion recursesubdirs createallsubdirs [run] -Filename: {sys}\sc.exe; Parameters: "create taosd start= DEMAND binPath= ""C:\\TDengine\\taosd.exe --win_service""" ; Flags: runhidden -Filename: {sys}\sc.exe; Parameters: "create taosadapter start= DEMAND binPath= ""C:\\TDengine\\taosadapter.exe""" ; Flags: runhidden +Filename: {sys}\sc.exe; Parameters: "create taosd start= DEMAND binPath= ""C:\\{#CusName}\\taosd.exe --win_service""" ; Flags: runhidden +Filename: {sys}\sc.exe; Parameters: "create taosadapter start= DEMAND binPath= ""C:\\{#CusName}\\taosadapter.exe""" ; Flags: runhidden [UninstallRun] RunOnceId: "stoptaosd"; Filename: {sys}\sc.exe; Parameters: "stop taosd" ; Flags: runhidden @@ -73,8 +75,8 @@ RunOnceId: "deltaosadapter"; Filename: {sys}\sc.exe; Parameters: "delete taosada [Registry] Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; \ - ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};C:\TDengine"; \ - Check: NeedsAddPath('C:\TDengine') + ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};C:\{#CusName}"; \ + Check: NeedsAddPath('C:\{#CusName}') [Code] function NeedsAddPath(Param: string): boolean; @@ -104,11 +106,11 @@ Name: "desktopicon";Description: "{cm:CreateDesktopIcon}"; GroupDescription:"{cm [Icons] Name:"{group}\Taos Shell"; Filename: "{app}\include\{#MyAppTaosExeName}" ; Parameters: "taos.exe" ; IconFilename: "{app}\include\{#MyAppIco}" -Name:"{group}\Open TDengine Directory"; Filename: "{app}\" +Name:"{group}\Open {#CusName} Directory"; Filename: "{app}\" Name:"{group}\Taosdemo"; Filename: "{app}\include\{#MyAppTaosExeName}" ; Parameters: "taosdemo.exe" ; IconFilename: "{app}\include\{#MyAppIco}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" ; IconFilename: "{app}\include\{#MyAppIco}" Name:"{commondesktop}\Taos Shell"; Filename: "{app}\include\{#MyAppTaosExeName}" ; Parameters: "taos.exe" ; Tasks: desktopicon; WorkingDir: "{app}" ; IconFilename: "{app}\include\{#MyAppIco}" [Messages] -ConfirmUninstall=Do you really want to uninstall TDengine from your computer?%n%nPress [Y] to completely delete %1 and all its components;%nPress [N] to keep the software on your computer. +ConfirmUninstall=Do you really want to uninstall {#CusName} from your computer?%n%nPress [Y] to completely delete %1 and all its components;%nPress [N] to keep the software on your computer. From 8df67a9a3c53ab8e3ff27f6186d67dc9a1fc49c8 Mon Sep 17 00:00:00 2001 From: kailixu Date: Tue, 7 Feb 2023 15:10:11 +0800 Subject: [PATCH 66/67] fix: rsma close and commit --- source/dnode/vnode/src/sma/smaCommit.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/dnode/vnode/src/sma/smaCommit.c b/source/dnode/vnode/src/sma/smaCommit.c index 90542ecebd..51011ef791 100644 --- a/source/dnode/vnode/src/sma/smaCommit.c +++ b/source/dnode/vnode/src/sma/smaCommit.c @@ -130,6 +130,7 @@ _exit: * 2) Wait all running fetch task finish to fetch and put submitMsg into level 2/3 wQueue(blocking level 1 write) * * @param pSma + * @param isCommit * @return int32_t */ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { @@ -155,23 +156,22 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { nLoops = 0; } } - } - pRSmaStat->commitAppliedVer = pSma->pVnode->state.applied; - if (ASSERTS(pRSmaStat->commitAppliedVer >= -1, "commit applied version %" PRIi64 " < 0", - pRSmaStat->commitAppliedVer)) { - code = TSDB_CODE_APP_ERROR; - TSDB_CHECK_CODE(code, lino, _exit); + pRSmaStat->commitAppliedVer = pSma->pVnode->state.applied; + if (ASSERTS(pRSmaStat->commitAppliedVer >= -1, "commit applied version %" PRIi64 " < -1", + pRSmaStat->commitAppliedVer)) { + code = TSDB_CODE_APP_ERROR; + TSDB_CHECK_CODE(code, lino, _exit); + } } - // step 2: wait for all triggered fetch tasks to finish nLoops = 0; while (1) { if (atomic_load_32(&pRSmaStat->nFetchAll) <= 0) { - smaDebug("vgId:%d, rsma commit, fetch tasks are all finished", SMA_VID(pSma)); + smaDebug("vgId:%d, rsma commit:%d, fetch tasks are all finished", SMA_VID(pSma), isCommit); break; } else { - smaDebug("vgId:%d, rsma commit, fetch tasks are not all finished yet", SMA_VID(pSma)); + smaDebug("vgId:%d, rsma commit%d, fetch tasks are not all finished yet", SMA_VID(pSma), isCommit); } ++nLoops; if (nLoops > 1000) { @@ -185,7 +185,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { * 1) This is high cost task and should not put in asyncPreCommit originally. * 2) But, if put in asyncCommit, would trigger taskInfo cloning frequently. */ - smaInfo("vgId:%d, rsma commit, wait for all items to be consumed, TID:%p", SMA_VID(pSma), + smaInfo("vgId:%d, rsma commit:%d, wait for all items to be consumed, TID:%p", SMA_VID(pSma), isCommit, (void *)taosGetSelfPthreadId()); nLoops = 0; while (atomic_load_64(&pRSmaStat->nBufItems) > 0) { @@ -201,7 +201,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { smaInfo("vgId:%d, rsma commit, all items are consumed, TID:%p", SMA_VID(pSma), (void *)taosGetSelfPthreadId()); code = tdRSmaPersistExecImpl(pRSmaStat, RSMA_INFO_HASH(pRSmaStat)); TSDB_CHECK_CODE(code, lino, _exit); - + smaInfo("vgId:%d, rsma commit, operator state committed, TID:%p", SMA_VID(pSma), (void *)taosGetSelfPthreadId()); #if 0 // consuming task of qTaskInfo clone @@ -237,7 +237,7 @@ static int32_t tdProcessRSmaAsyncPreCommitImpl(SSma *pSma, bool isCommit) { _exit: if (code) { - smaError("vgId:%d, %s failed at line %d since %s", SMA_VID(pSma), __func__, lino, tstrerror(code)); + smaError("vgId:%d, %s failed at line %d since %s(%d)", SMA_VID(pSma), __func__, lino, tstrerror(code), isCommit); } return code; } @@ -257,7 +257,7 @@ static int32_t tdProcessRSmaAsyncCommitImpl(SSma *pSma, SCommitInfo *pInfo) { if (!pSmaEnv) { goto _exit; } - + code = tdRSmaFSCommit(pSma); TSDB_CHECK_CODE(code, lino, _exit); From 1d483fd50309274cddcee572aa42cb11b508ec38 Mon Sep 17 00:00:00 2001 From: sunpeng Date: Tue, 7 Feb 2023 18:18:50 +0800 Subject: [PATCH 67/67] docs: update grafana and tdinsight docs (#19842) * docs: update grafana and tdinsight docs * fix: typo --------- Co-authored-by: Shuduo Sang --- .../assets/TDinsight-8-taosadapter.webp | Bin 10766 -> 79374 bytes docs/en/14-reference/07-tdinsight/index.md | 11 ++++++----- docs/en/20-third-party/01-grafana.mdx | 11 +++++++++-- .../grafana/create_dashboard1.webp | Bin 77164 -> 36460 bytes .../grafana/create_dashboard2.webp | Bin 99050 -> 51586 bytes .../grafana/create_dashboard3.webp | Bin 0 -> 60306 bytes .../assets/TDinsight-8-taosadapter.webp | Bin 10766 -> 79374 bytes docs/zh/14-reference/07-tdinsight/index.mdx | 11 ++++++----- docs/zh/20-third-party/01-grafana.mdx | 12 +++++++++--- docs/zh/20-third-party/create_dashboard1.webp | Bin 77164 -> 36460 bytes docs/zh/20-third-party/create_dashboard2.webp | Bin 99050 -> 51586 bytes docs/zh/20-third-party/create_dashboard3.webp | Bin 0 -> 60306 bytes 12 files changed, 30 insertions(+), 15 deletions(-) create mode 100644 docs/en/20-third-party/grafana/create_dashboard3.webp create mode 100644 docs/zh/20-third-party/create_dashboard3.webp diff --git a/docs/en/14-reference/07-tdinsight/assets/TDinsight-8-taosadapter.webp b/docs/en/14-reference/07-tdinsight/assets/TDinsight-8-taosadapter.webp index 942130d4fabf7944c7add10acb3bb42ca7f51e0f..a90477880ff3a2cb2068540b55b69e4bbdbd8d4c 100644 GIT binary patch literal 79374 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 Ay#N3J literal 10766 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 $from and ts < $to interval($interval)`. In this statement, $from, $to, and $interval are variables that Grafana replaces with the query time range and interval. In addition to the built-in variables, custom template variables are also supported. - ALIAS BY: This allows you to set the current query alias. - GENERATE SQL: Clicking this button will automatically replace the corresponding variables and generate the final executed statement. +- Group by column name(s): `group by` or `partition by` columns name split by comma. By setting `Group by column name(s)`, it can show multi-dimension data if Sql is `group by` or `partition by`. Such as, it can show data by `dnode_ep` if sql is `select _wstart as ts, avg(mem_system), dnode_ep from log.dnodes_info where ts>=$from and ts<=$to partition by dnode_ep interval($interval)` and `Group by column name(s)` is `dnode_ep`. +- Format to: format legend for `group by` or `partition by`. Such as it can display series data by `dnode_ep` if sql is `select _wstart as ts, avg(mem_system), dnode_ep from log.dnodes_info where ts>=$from and ts<=$to partition by dnode_ep interval($interval)` and `Group by column name(s)` is `dnode_ep` and `Format to` is `mem_system_{{dnode_ep}}`. Follow the default prompt to query the average system memory usage for the specified interval on the server where the current TDengine deployment is located as follows. ![TDengine Database TDinsight plugin create dashboard 2](./grafana/create_dashboard2.webp) +查询每台 TDengine 服务器指定间隔系统内存平均使用量如下. +The example to query the average system memory usage for the specified interval on each server as follows. + +![TDengine Database TDinsight plugin create dashboard 2](./grafana/create_dashboard3.webp) + > For more information on how to use Grafana to create the appropriate monitoring interface and for more details on using Grafana, refer to the official Grafana [documentation](https://grafana.com/docs/). ### Importing the Dashboard diff --git a/docs/en/20-third-party/grafana/create_dashboard1.webp b/docs/en/20-third-party/grafana/create_dashboard1.webp index 55eb388833e4df2a46f4d1cf6d346aa11429385d..df41d66d50e888555792ef34188a966c2e106a86 100644 GIT binary patch literal 36460 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

Rqz1$>i$!Jt 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

Hf0V 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 diff --git a/docs/en/20-third-party/grafana/create_dashboard2.webp b/docs/en/20-third-party/grafana/create_dashboard2.webp index bb40e407187718c52e9f617d8ebd3d25fd14b56b..ba50f5299605bd72ebfe1f3f5d1d62bdbc8939c9 100644 GIT binary patch literal 51586 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 E0QA~sc>n+a literal 99050 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 diff --git a/docs/en/20-third-party/grafana/create_dashboard3.webp b/docs/en/20-third-party/grafana/create_dashboard3.webp new file mode 100644 index 0000000000000000000000000000000000000000..84f387f87bcc8e06fca90deabebd1d601c528ef1 GIT binary patch literal 60306 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 z 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�}!LsB*DNd>LJu24;LWF2Z$dzT4VhtI10I35Xmyn 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 Ay#N3J literal 10766 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 $from and ts < $to interval($interval)` ,其中,from、to 和 interval 为 TDengine 插件的内置变量,表示从 Grafana 插件面板获取的查询范围和时间间隔。除了内置变量外,`也支持可以使用自定义模板变量`。 - ALIAS BY:可设置当前查询别名。 - GENERATE SQL: 点击该按钮会自动替换相应变量,并生成最终执行的语句。 +- Group by column name(s): **半角**逗号分隔的 `group by` 或 `partition by` 列名。如果是 `group by` or `partition by` 查询语句,设置 `Group by` 列,可以展示多维数据。例如:INPUT SQL 为 `select _wstart as ts, avg(mem_system), dnode_ep from log.dnodes_info where ts>=$from and ts<=$to partition by dnode_ep interval($interval)`,设置 Group by 列名为 `dnode_ep`,可以按 `dnode_ep` 展示数据。 +- Format to: Group by 或 Partition by 场景下多维数据 legend 格式化格式。例如上述 INPUT SQL,将 Format to 设置为 `mem_system_{{dnode_ep}}`,展示的 legend 名字为格式化的列名。 按照默认提示查询当前 TDengine 部署所在服务器指定间隔系统内存平均使用量如下: ![TDengine Database Grafana plugin create dashboard](./create_dashboard2.webp) +查询每台 TDengine 服务器指定间隔系统内存平均使用量如下: + +![TDengine Database Grafana plugin create dashboard](./create_dashboard3.webp) + > 关于如何使用 Grafana 创建相应的监测界面以及更多有关使用 Grafana 的信息,请参考 Grafana 官方的[文档](https://grafana.com/docs/)。 ### 导入 Dashboard diff --git a/docs/zh/20-third-party/create_dashboard1.webp b/docs/zh/20-third-party/create_dashboard1.webp index 55eb388833e4df2a46f4d1cf6d346aa11429385d..df41d66d50e888555792ef34188a966c2e106a86 100644 GIT binary patch literal 36460 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

Rqz1$>i$!Jt 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

Hf0V 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 diff --git a/docs/zh/20-third-party/create_dashboard2.webp b/docs/zh/20-third-party/create_dashboard2.webp index bb40e407187718c52e9f617d8ebd3d25fd14b56b..ba50f5299605bd72ebfe1f3f5d1d62bdbc8939c9 100644 GIT binary patch literal 51586 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 E0QA~sc>n+a literal 99050 zcmV)WK(4=1Nk&HEf&lw)e>6d^hLC|DX6I#Pu5yfwX^$Jq^+yn zQC_@SlO`!Wr3Mk6+qjJ+Ns-cj>rQoL12RnfDJHXgDf~0R3QU_ z1t21FFolr7jt(nCL;?oD23Y{6Y(@h_L;@l(LnI?(K>$Vw4k1J?h{z4hw?eQg5s`)s z8w@cp-v&W6L9`VYS?QOkKG*?3Mk3~ix@vt8lzSky6vGo53Iw?X@L&~DP~0&<04kzi zWJEzuLqYS1h-^Xxi0Bnv3N#R@^G|f>sPnUKw#}mVAOk=H3IG5C0Ae6hJq+45l9Xim zqyFy@M8pL6E%zTiGv) zFWxGiB6tpXh#{ZKxpC+p3(en-F@QfY__4wm!{0Ko7~2m}#sb)Vso<~q^`xMR-~C*@ z_y4cDWGVZ3&Z(-tesOoVkcdBkf54r;!ubO%A}4nF6D)Lh#@(%N&+YCy&)#d*+56GG zpQmKc)CYHW_FCv&6EX52y~Zb>Zk)pF2E|%cI5(^mcPbdc-6gscL9KPy32>;!zqq^e zMWUVzImk%ilDYL{cY3YDy&HG9xKnF26X72DorqP)6O7Mv;Xj;l*AGtNdXRC6aF?6S zvI-i9E?lDSi(3U_kw$1Vkm(Z??)JkuIMj_eIDLuqV8u*?Mmid@#;0(%#_5xx6^zf| z?v^<_Xxwd&PdDyTIDLt^nj_2;&bMCpDch5O@^X}Q4!#Tr?w1@YF8UF9+ z&g@^h5BJ)pLDL|uggz3&35OBIhhl{TnuZEFK(V616h9;%;ee=cpkgW-^e+$&RNzEI zHB{(G=vyEfS}t8wBf&^X`(#YadhoX|8>uLBwfDunbG@>)1x9H?;M(omtl zgm9ukG&s?qsnAO3Q-Bj%2~j*$XeERb4SEVFRyZJvuaH($OoanZ;6#Jo;x8Piz=?*6 zOEXUV3XB6z;DiGeqQU9?6bJ{L5Yi(m9L6|MF$EfFO*KOLisA?dL_>uG8Yh}pZ}H-U z1EQg#!Bb6xeg!zuAY`p*aAGPP(5HY32So7^4mdFt4Z49l4pc+&6Y>ftsAzCPG*rCB zD;g?9gA)y+L8stbARKT)6b#$84MThT|KrAv+qMxT+QIc-?!Cqv5+K`(TInLFh{`qj zfNbKHnc_VE-+D{7l;?SVYpuPrQcJS*_^CQ}&uw?b-QE5(AGx%K4<8StY7cRjI0y&N=V|sw%0q)nP?cUHr{%Uozx` z%&^>L=!oTAjf|-^=VdOh)aEp&nVB)o_A-;kT#B#^GUwdQFk?d3HyGpAW?sEZ1-%GhUl%j{}nzssAq?&vbe%c`!ZGh#2V?@=|~Zyk|Zy z-;|p_0PmQG@-lG!?eL-aqfh-ZsAQz&-JcX+(@znwMv_ug-hr7x1;Y`!n)g`N6cP z{#$@mnJnjno?v!#V%)_%zUW{MAP|uS4j>qr)Sz%+ z!_gWrLO>}Ja};0$QAt2h1ThMmURi;Wk_ZW*AVL5JWI_T#P=SDgWZ1Y2MTmq02sO$p zU?V6TwtX*jIhJfpo?MW(!k4AP3*J3ZZ3}Y@RP5a4{qydCwvqoFUJ(&eRLIbmj=;6} ziZ?~lDwK7@lt(F(ka;-*6IPwcf$#gqydxMR6~tMBO2%x^D}@irG}i(Oi11Y3kdH-` zO#vK{J*A?BD5x+1hni9yASUZmnS=cxd~-fF8k}mQJOv2}^+x^%{4CU~pisWm7vXJD z_^H&yiUwPtw5(CPo7+b1EzyO*el<=SG&)W7&%}4*(-WI*)p1i~Yw8Bc7|;q(5|0eF z?yU#&_L=Whv6`T%FuB2ulXqZ6inqyYFhiCwGQy&-%yq5C){p^Wu2RltAVG|dqIF8% zggnIDpn9|J68#yLK+-5r0-(G#-Yw?aVIa>yf$NLC4Jdg5L)xwhi0j z5LEEGkAMUt$^?-RG}qE{O^_UcWWWXqF>(tM6_Sc*jAxq}P=l6=pwYOJNLoD>0Yh-1 zC4n{KfCJf3Hj6j)yh*J{EeFj@D}qFpDXS!o%&9RR3=7k{r1G?mWMYn)z7mVgkWe>z z5l}KNxFptgds;b0yR?Nv5T_rL)-Y4DXadr`h_lX6&?Q zr)cbLUmg;B+(7e^<{8SR*PJxLGg;BZeE&YbHQ$8Ypn&jx80e%8Z+l`_7AbbS;-s&` zYXTJGiC>Zkc4p9S7GZbj!0Ujc={w;pYzP_R^B?3+%@B9{SeG}(n%MuY}J|& z#WlvOTSNf_-U0GM;ouSCs9%`32V(k}Ts!1tBMxisuly?(v?nJ zdi`L|xNm%;>z+B1F+9l9s_TyHlj^%-M@WmV-QC!mN1UPBb+!YG6uumXjf(uNJ}GtI z>Z*+k#{ylevaRRr}51{(~*l(*BE;Q;c6Tvx* zQjgJP!*hzpwXqbs zEH_L4H(dkb+*8vt7UDEpM+gQ-x>YVXeVWp zzjMs|L{Q}f7J$&?k>^`%uAj~iVl<=bz7LB$rQ=A~u5m|GEFIUPI!G#-2e%MbG-gE} zx|WzmZ60(so&BUeOo2e)S)3Mv5}80C3kmY?&%i5W;NV5cpeQts8&H&~X$p}d!<=p! z60AOPkuDSe4*Yml|EYja2-f&Z-F9umIIswrio`EUmttFM!UN%f@j6XD??+|<>e4jo z`=!?Z*7+DK&)j4nVVyD<4g)3v*)2SNohx@PV~e~S+yJ92w@lZ*3N5mftQag4g17NH zJRnw6=PXvY%{z9RsJXU5Un8GtBWTc3V;s8NmaRAyWGuXaXb#-r@vdBQnFuOMjp1Mr z4c}Uw%ZlOXtxhl`#OlEV6c}re5HPru4;~k4M?srzl(7Y1BK_<{%q(r;_B))jd)B`v z$`7Qqctc{xg)S}UmfSYkl4g#hB)iKLq`<{7!n3tvce&v!(>FYRL)s;$kT8~s6bPs5 zE^xX$;J!C;V{JBDn)Bs4(*@%cJ9=kgs(G<<*KY}gS5=d+N5@*$Wtz>N_LQl`8g1g# z7|x_MCWUe4+qTr88bo>5^=gUk(~h|GsaID zIk1fs?w#fVp`@uWu`!$;3b4EmEmw`tg_rIzL%sKgDxwWYhFJ`v%y+bTTHElJ#B}$p z)k;l{=*C28+ULpAgTO#%R%r#1lS~>0vK2(EAQiJu8LvApOwF8KGyl+=?=s*Xsc#zg z`8>#Q-Ig3wG-D9#f`P3(HXVF;?S@-5uCrb1d7JMs`o!r)D^5NB86A%?E4x|?SkTL_ z9D1waTK9%(t4Bx{LS~slDku^VaAUaHN}Fo+0q52Yg0Fiq)`RrFe#fVcpaMvu$U-O3 zdR^LalyomD*&^rdnU|QV^DccC3f$az&UH3eF)8pwGqvQkmeoEW79bkbs!Y)N_EE;W zW_w9arr|~XphP#HEGDUOW2Hyx+>~ROZ+ds1Da_vw9 zKliY?6=a}~#5(=nJ@#tH(bZdyhXnPj=iT@8&dV)*1R-D`b~XyLCt(q76sH{=NnWc= z^UO=Sw|MJwVN!F>-2kE{MFbFY_NL7XT+h(xS6C4eTb*o(TNW7^@+v0)07h>`Tbd0D z2YcmE&zrDOa63YbqOrDmY(MkfePEf3Nr9}PoNCS9c_b+|xR5s+6B_{o5mN}7AM)gB z_nK!kj4aL&YpJL~6-=7wzBukl0U7~!0x?+=k*`>Guq*pH5|ha^k5UP?TXP`g4W`9C zHyye=H3n{(lZz&?0_w$|n6qX*aMJ@)Zc4<=wsemnwVpl{OtN!p%v)^ZUuaSjLCI+S z$@9)S%5A4Dxm~M5s^&&u{GmEnoo8!etmTb?4Q4ShLA0@SM{aieEjxtYmQ}`FX6SnJ zeouVX(m?C2{XjrAMaGSQjerF~u||RH@KZi%@vBZ5xX?0}z^>)#8xEn+o1*b>KJE#Z zSnJ>!c4;kZmtQ^3V<$EidJBz-^KmzydXtNoB8VV^2=*o#5$EG>DIlO^42VL2y+<}4 z&c|K%oQN0@01&K9-7Jz)Q~-wPLTXG~g4r+|NnmW| zP>g7AcP61>^f`Hqd4BmlH83$Z!D5-`8KB^!ujnCu8RRLVAO}iD@{+{{YkCtYb0UO5 z2wKzbO)7b)){9J=ea%|0jc9vXidCdgZ)%N#G4-}W0HDd36r6Eln84&xii;UlLJb?y zN?_7JNi-{>kTu%dVD%groB<-CykwLNEl0G$gVT%~(P~>U2@E0{W)i{PRtS>-XVyhE zTvH@lGS^)4&THgEjb*0;D8;L0bFsYoX%Xrz7JFNf`41Q|@Zt0Jatwf#3r0MD)2wR- z!=3xRYvj@aO3+5M2e*cF`*<;t>3F+zsY~x!)P^l*S)8e_nbg<}51*(>I?a3RD#Wd! z$T$W2Xsgo0{K{VjsV$0f@51YT+I#a2F>*^~hJ^rQ;dzQ%d+fQIPSMga5i=W{px+y- zUf}b-$M?8-l$)DES9$b$(CbLA6CF)EsY_FvG`H>PX~k&0IeK~!e!$7DxpJpkMUT~ zDMmX>lEhKdOVTm3&9?d)mvkN#snX~DXRo&5$o1>zTXdA$L;%5nO(jd|ijz8;%@6$B z7x3Y}=_S(0kDc~TkMDp#=_|x&MOMVD(}s5W@Fmc_!h%!JbqeAHhfX!?Y=<{@Tm=`H zNQeXwsNLH(l1xkFw7!9!^bQXV?cZ^+U+9ev-j9cd7;Qxx<|H%k(ed;29!A!B=!vEB z^u@%vHxjJYizrBgwqoJ-sTtH zi9rhDw9Y9oa}jtCycs#kjF>HF#RI?w08j4>_|(A)DI?zqASfUY z3^0j3N16>x@8XdS$~m60JmH%FKD}bOr@clo?W|)2C6++kyDZpVnu;l+S4q*P_Ni- zA2Qly1wsTwfZhgG!4i7KalH_s9eo4IfZ~Gs8=j^ei6ZTMxiic?47=dp&>2( zdc|~?1Q2M46d>q*X_TUX2A2a7pLUb|$K)H)2pTAaNCK2clYAlufn*dA2^;|+#9UAS z#2JD_ao)?P6Kf1O(WX3^qH2Mavx+A&jtnpZ+6<$zqG8*(SE*@atJP$h4H>9-%tUgZ zCreC-BpR(j)jETCEphh7^Pz7rc5EEDdaDuss@xo_0l}HJM za|JZuEqhVxM8H5$L?x}I=!`4XM2z!}S}$Gu9(U8e#;?^v;X8~x>`@D>9>A|Q?$o;I z^!Hsk`uJ1la^m!%DJ{N!2{y)gFCiB(;f(UU=T2Ht^=XhLUNp6PAhPte{2r^H{lpgz zEnTP@R$s}NPdaP$$5%Oz^DagvZM)sgUxB$VGQ<&2Jb%Wqo>Hy*YiX@xZasUK-PRs$ zz|7Ght6hHLN)Pmjiay4R$gbs_NzLKQH$`WxbnSVs%O-<%QNF!>4rXht?pzLFXM z(m46j0trn$K%!U>EId9=UR3KI%a`7}`bjii^93i(f7cEZ-@Nf5>%LO%u=6=gaV*Jc z%SI8%Q)`&g*tBLC97&ZD#U|FJuLVNKgZVTymXyH}Q8rG#DuTfgk`0qD zlm^pASPw=}#JGbl+F|F-3eR?(9`-6vobgj~+~H^4vEuDx78$~~$xX8<@O)!+JAbad zX1Bm47H>PvC?Pe&-8n|pj8P0f%-XjI3Nil67v^Msp-GLfaq@*MJ4R8Uf$}w6c8qMG ze1)3nZckb307|UXj=pZ7C1)8dqLX5M zG#ar5O(F;p5v>{S|366}l*C5wfqo}DWQkG8crRbb1@B-IF>IK8Dfl}(*i@u(@@1CX z|8D>`PQIeFdjJ0k>i}}hgb#b>on!1lgReDA(+1O z*Vesw$mjQW&0}XxEu*$cF-)|E0eo9T1rdB9Yo@AH8UN*r#415W!{ke7mMFo7$rscl zQ^Ur|R|%?3>Os8~66T$rKWsYSOgqYIlgEpXD`KAqHZ{lV&Ybkt>n2>;Ja0(O(iDd- z^;+n>%UyGUtz`sI)AWOgg@TA;%E!RK2*!K)0x&S3G)%t6KmlryC zOaLhgAV4j^~+u1U5iu0GVSlpaP798bJV12n7kOkRUPvA|T_tFvuF6LX~Y)5=b>f z3^}N1WEM7#s*Ki{V1YbHj8`O#Vku-@s~~D5`8pDT7$XK1nAE$1ltAl&sTm>0i(p-5 zpY+T%7P$u@=JBj!M;LUhQC%(XeC&zZ^@cw8*)f8_uKO%s(&W?6Rg;*-c)dgB+!1Nl zmt0w6FmAfm$1ikD@V4u;_iP0N^!dar`$f-LP$l7_qyqnk`6cVuxo#B zE^1COg%gKAVz>LMxmmTNlH76N$P4IjTmfs`bQ^8)6s z9VU1{LaXb@7#xDIS&kJ z-lW4FtRWHC>^7K))^ICrV+^Ai5kdqa;CL@zl469EhRIiy6d0gk@&yzWF>IK8DMF=) z)B#bi>Cux9c+wSTn-uK$#}#pSTy!|Sciep3tK_Oe)8$o*lAXCxn6fZMKqh@uqo^G$ zNB|KGxGcbK8C||;oO}s@0*x$RMh_AQz8WT96O4}|%QuSqnF2tP=p)8Fqe7P3) zPW~d;d2wg%-E!Z4PfI@L!{0bNK5wS8Ivtu*-JH7R7J-i( zug@&83PBo^*7Uhe0V2780FdbN)rQHp$Wy9u@}&S^1LX_&_zEM-x1KzyYhh%jiFs3N zM~DiMsKQ;6#JVB%6;Ruygi?a$A*#v1$^PfE5*2?HQwlL3iEHK$-RlZn@)YQ1+zbh z;-layqL|4g1Q1=m+A#SV3D^{)$+vdeD?d|78Yf>rT||~|B%fCR0M>yKDr%09IWTh+ zbgZQ{sbnWgm1r?zFa>0ar727*>+P&9Cbhzvfq~^Bn3))$ERp4F8Yf={Ot+EciwN=+ z5CUnOe0^*w(dCN<_&Rcgv+>E^VV{_ypa6>if(RHZ1W61U81ATkR;ifn8QhgAccHA5H>3ZMgkkYhnxIMfTd ziBCeKQ_*3RQ%3GfQ(;AyGy-B`gzXg~wCq?Cn<6|Kp^C320I+yz1r3IUjqtgaO?G z#O;esZ1tWoQJ3`qUK+~8kaWpLmnfhk4FHb$8i}D8EQ~V3W8lrEYcYu-RV;mqxmhE| z;}zibwdXRq_Pz`dBhj-x*L%dR?8R1qLmyP zWsJgaE2$$$Upv8&Niyo?atoF1lv$(&!nw8iKvry6Gcid9w#r(6pN`jm9rvp)&EtA> zU${5AcWiu$kWE2GmX~a4CMgl3B5Jz8Lct@(*cp&-e2JGiry}f(wJ-#b%w&t&z-}rP{%+o0V&?Er| zDN_`;_h2QmWXbkU?9H;J`URF>d|ZnW0LQjYK_cr;I-|9rD?NiWNE8QBF0mnqV_RbM9zOWfRh5a{M{o-w<%o$hmYm`l9J`tmUG~QRyT=u)>)Nv*f7{ZWiw?VJjxSw@_FJ8CSU!X*hSsU4 z96h=1#IIZ6OTYnQEUwaI9D?vK5!l_Oy&E_S$7(|Xuw zM91XkaEpNJA|5X}s&JJQ=QWym05PJCPZvaTt&Kd>w&-rkS_C0sfffAZqF*$y42k^f zr6-o|kF zgx1JU00Bs8gn|d_X&&q%UwsizE*o$b0O&Y0ETh(IcW88p9M@w202S!9>;RR?+O(^8 zXbdP8!YO65L(YiFaHYJL#U#T8=otyzApbH)~JTPY#0BA^=k8^-4wQ^>S zPY=V#WMgxx92`zYZai_41_Wb%@BCgq>UFqwTDnHhXUqKM)yu_V z&sYl`O}de9ndLP@!*%CE5Df{c{z^hRfn=gf>vp-fd{(d5>sY?rJB}p1Gp*$>oB5Yb zqRFK8-oMP=@Wh9^OwP#zND&oL(wGA(#fYi^5I}epMn)ik4u~PC9f(>(N=j#qkEmyQ zycmb2^?m!kza$Gl1CY{nrIdl~Uv`!+RLd3BGQ*4&&RX%(*9{|0ARM)E*wbWQ`iip} zUV62DM2xl8h}cY|nXHd{InTy&WYvaZ)yOICN3=%vt7&P@yDLl8h{W;%4`>ZdLlqHJ zDW#NFTC2EHI=;?o_>im|Hd^g4B<*2MA76!r=Dub_)g)22!BnkoNSy2AWp3^uhUnT% zH$Qj4G2$Vr?cy_N^y{n<#O|3Ul`N?nPn*FSPI!iMXiY2}3kotc%`*_nTtPaXmmQIy zCBQ(&-6DKANamJXl@Bk@Xi~IA-1xb_(n$p?Ce{iO({&8QMA*WDM2t2@rIuRCHsswe z`kJ6*e!AW2Ij)$K7azAEmOEm*)yx05b8pAzj=ndaI73(B4dVvZF6jn{O>kr}@Fqu5 z@OXREiWFK%6!iMG0jU2)*MSq44hp4z_5JUU-~Te~BhRcjVcGrM&x98^{5%53H5haGGO@^mY@II zekM0;J!KeBIOEh`wsd#j$p3S974wAth5fPaoGWD6D3L%53ON!3`igr4*{zxyf`cLgu<^>9@wtf8?@;A9{sYTK5BdC9pAQlh2xud<$dWDZ*{cx zsE&-aJtHZsg@_n2D9Mugw@qJp@BSMyUm)U=5_nIV9C&at)I+lQZMOI=FmuEzNn=9!6$d_42#y z8{qJYVa{GrpgMc*G6x_->VYgLAQET7L_s(y-%W|cT2)s0PV4)jP`DVhxBT5f_j8Lu z)ft1ETMSG~qsj1P1Uco=hLO?u6b9k&uhvqYzkDeCvgePU*}>Y`et7N^Nsav7n?~Kb*ht(M}!m-hF@W zKE8Gu=5IB>wbiOwOWP3dX|%9OC@5e-NE7eOGmPt!Q{gy5 zU!Fw#ci0LTmEDiz3WcqfZjGh zI2V12Gsc7jeJgpk{NB(T`+x6&No89Woqv1(|JV8bob%TegOjq$s4xshSP%PpZ#H85 zu-pTRg}jPu;DsY7Qb6^Gs4WpMZ`XhC&_6Z_o48B&RJS~AukQJDxNU#Lr?(M01u=l` zcrhS7^ggTU`$ZP|zUcS(zViPPoc^cJt^b>{n^O<_W#t)5`@^Z~nJxWf zm+gJ#$RFrF?n^WBh4laj4fK+_G zaVC-QXM?>Yd(bA`Cz@=uoiaM?ZAJ|DvrDtL^XA_?$;i(61PhsPsE5mk3k}8UT@iqJ z<46Mu*TT0%9$K^SyX^lGyC_%JhfO9M!yxMq+|z6~v;DBUroxh|IK-;npT_iRg|JBI zVF^?G_r1Q_FX?X`IY1du4N&`q!S5ZjtbGta{CuD6vQti3w)CJ^TYT}}kLfxs7^lgZ ze6!Q8FZzJbdDj=c>rftu?v(k!>;eYt*6qoxLy{pm(b3rh1pp`*000$8dvps3h|oc-}!M0FqQE#R7yVx&ZKy>up3D1j7>^{-{S8 z0GV6{0ALcpYS5k4-ny9~?Plp_s{vs|^A+uAwtZCjv_)GnJWNeq=nXGkO_0vv$N$v=c~vU|*3IGmZydHa8ZPK*{pb zF&hBz#yiM5Ap+^&C|q)8olFYllyPL*3PrO#h#tGJ#uT z{+apFoGbp%>l5VATls!o0-?!7m+W0Q|2chxY_h$Y9HOk6PLxjx*A>M zCc5U9JZs|t!i%D&(0%_lJmmv&kn>LXJ+b+31LQ-Va^(4ghI_d!wxb@JdyWS#8Xu)uO!sSPhC(<_&CMZ4|!36{D<*P+^SwJRNpTkmF9;R)c z5ym=o^wZB9<>ieo{hGO{YAIO&{zHpRqh=po5%X5MB+k5?@zh$bR3MW<9sOAQao zz`&g1vW5Ze9H8Ln#fKsOv^b+;db%7ha1zNA6LD%(49T#oX3V`T*&4f@M%7H_+UX^c zgcm&mMuzz0RIl5(oS6l)SK;B?&*w)l$IwL$hr6%;i%;%*>YvG1OMf()75iO0LWiHh zh}O84*0u|<7HQh7;kcBLwJ~W{O9@$9Bc~Z1E)p`TvyrlOAMFFX>dCu8 zf6P&?li(Z?$fEHGz<3E5WMJq5gP3v69n%3Q2pK}XIaNi?wKTR|Ul>Dtg-N9R1cy?| zUxJcVh;*ne(el6KL!1k$3!&4En0d2wrn+X58!aaz+K`zDI#bH zqH=9I6H8m-2qXeBFu(~5pItJ0!Tg9s&Lt6bjoeDbz=*S%Tns5XrkdYy8!QOL5v(hv zSO4@mrB*57g$7mc59~)57&YsKhm&V7wOxHt^^(|i8t8aQZGhQcmmOa^J??yrZ5eg%p`dYX+sDHI!Dh52ai!Q9C!6#>!WsYAJ@)U-Y%0mZm^}zWEv_UqCCR zptY0J`(;ONpUCDJG8-L$YtL}x8*y1*&VqM4>X+1GUZv6Y0EMTwO4TEq%z zgP-Hrz!$Di?%lUazZLs9d=1Mu(RlL_D&!wYQ#rr|y;%j~+wtC3=Y=Dxnp_VcJ* zaIvob1K=;leAkZn{TZ|N&C}S9T92!VIikx5tD68?fad*F_8K6n#d>NZC+j1&1T8bU9xvgUE%&bf z{k?SbB-}j>w=DeeSTlS?uwzPOXrhn<8haeiq|6DC&MF+L8UR3I0SB$6Y}PWun~QXa z<|P^hT@2|$Ye+=1M-sq~{S|3Bqx8L$8V+VvtS2%^M%Ya+iUS{A$N3s`Wh@(8S}S|F z>}u;F$%n|Ono>H!MhDTAjGOH~>igvUHoO|om2$No!i;O4@{-TUdu3L7!S|q_d3HHy zkb}1Q!BE`q&{dys-OjJig*GOwJUGWm021h`hF~-b+a8sQ{>2X8PgRw%0Ni8>m=C7D zIakJY{$tkwpaGWVTjx~Dc@Az|Hc9}x34lbTg^@TG;Y{iWKK>11CO0rm!{m9nd6N(4F2g^8g;}hv5Tq8Vrl+|PiTy%cajl+Nb(?Sgkth~b z!?lP2BA8<j!nc`o+mlQrfGTeTGu7FSg$#wtg3ovnC3}6&#>o&{(*QbQ_))K zlDTsh1r;(4EoC|T|2onV>ApBYq6Q)R#)M=0g43CydjJ3{fs6wXobIDZRGEnrHA$NWFkVb31l|M0nt^)-qqfB%hN|iLTSxQ6-sg_4( z#Yji`ynTSspo6B?ZYT{jWbOYgPxG!aeG>k^0GC|{eo^r}w2la{lZo}}y8r3~DT~?# zkpTcwcPt5e3_juXDQDZ)4CjqrK$>LAG{}Sm-FLs-b#FJQZrdN-b^|;}^Bpc5frq09 z*<15yYkkTUrnfJiyuJ0AUnzLThq>h@bV#vq0D={IqLZkDlHNx;B4R&5%>F2QByNaIb`>*8npyg@fZAb1+mNQR*85S06-FEKk{DIQE*~QE{Z)o zx^AVU6ivcZs+E=s8c-5J$%7cqhi+D*!BqLxZW8u4<#+!kl!|U^3a?Trt@Q@cZVMgw zaxqyZT8ll$^j?{fB3@J{jB%-Os4ry*rQgu&;M-X1He25%wIGq1I`(EgJhtKzoJVCrF(iGTxS!?Y6&6jTCywasB}P=E z#iKp5-=s%O3C6#rR8Clr)Wa29dq;Eer`=S73PyiCnnkgd9lY=t`hUjK;fTz+>Ng=~Sfy@;S00)O7#FIVKr8w4yMfCKV9f)6vR#% z+O55tvRlAA*ZA$qvF0Ov{K0V&)qO!nb?gyWa_OoO4G`r~Qp8{_l@+gOZ0RI(l*cS3 z^T;o<-h0a{kzLbkz(nPN!|~dYSPBhh0>rBP5gFYY zAXqNqKrwOx36Rss?pJAjum5)7^2uzi=V?CkA(O{+6p~r=NcP&r{yxUx&pFD z0<+iBB2=o;K7eCZ9gqHbjs{1 zJ?jh=wg$Q;!IOa>iytc>N-iJ?K9P$VUHtn65vQdLmm8YrN#qdG(wgIvnH!I-(*PBa zP#VYrlbMerSC4*n(nzf}QRHc%wLh@8A{}u1_`n)H+2i5okk26=-YJQNJBjNb4`5}) z2CK2M&WW&Nl0j}iHk*l>FSh_F{*Et_g$ znOn+s@vij}4%0hY6PdMWR#W>-3+yZZfvhTqd^rgYEhKY%Hw@}xs>2wfC`>Eg9oXP!1Sn1?EW~GEtB1#|J05_#MS!FN{cy{W7Qn14=zEG7)TJw z&kpBU^9t$2E$21vf9&Tn6c9#?90dSKDlH zu6lbKaD3Yd^hF(7PG^>#y?P8SfXn2lI`>AA<8`+CUodV0HhyOxu*2A6CX zL}p?)j?3_N>-VG`?gI)DMNhLirObWOzS|#LdR6?S=h?=O@60IMno{Lhw^=vEb-mLg zGj&J|6(Yon)_NV!D^~#$K#N8LfN=mcAaOUCZ=3KD$#2h^m(vOqOLwlqttHR}2!I3{ z3lh)-n=|9C4`gw1zMv@vhfc{V^6KY=XvSMzK{%n^7kY_gho*{}!Og&GgICt}kbC)U z@8yJZ%5m63IEP^}jF^YJK{?cZ;Cy;>;+w8Qh2`_V2}ks#Oy*uWwY!Z z_S(^55@(0Y8!{=1r3AtFx1@sfgxxN(Y)b|R0I^*TTyR-3 zS1KL_(pexYAS(!4A+Gc1aT5yuEe{2j*hCI$hme8f`?*3DYS)K*i3hiPCw$e`I-#wo zmZ^AKTWc{irqAJ4qz9)Vq4kS;8u0tRQ}}17IF03fYMvs5e=JGghf=GDF)np!V6pl|)7sUUGCZG8jKrMD}(JQv-7 z*(U>>$sA*Z?Wmb+2^?i%Gw3~?uIHaS6F@G^r28=Q`4b|{Z)APj@9yaBX1(9gojrbf zkE%Wov3;S)LCD0q;FOEvSc&esBSq8cB1pF=OG+w806;NK1%L*O3#0c7hVuyxG;0!c zr#nvS)vvPM>YWA{t>Fp*X`nb}JuG7rJKXI1xktNU*}v?Z-cZv%z^qFKIiLL?dq`Lp z_0v@15%_sOyE#|K6`K35T7A@XmNwd%Wm{`#2~3P?C<%y&#=GOE2X8BRM=f7db^DUu zU?DuevhD?-+A)>khC`M4|5@%633t+`0$JET$F{Nn;MfBo0>TFNKM~F&U|a=clY@ucr&WG34xhd{vOh#emRiwwMSW2|MJxX0P2_ovYoAF^1N}p zIe6aW%s5BG{j7qFcwP-DHBjpjS**G7h*=?LQH|D`t)we$Z=A!l{ERi6G|YgY*I!Yx zG{KxsUwDl+IqhHAAQ{vhu>BV`|S6dQ3ECp4Uz0thyxLRt{l; zMP&)`*=)q+gmYKJAqg32E&yHDdu;0t;4^+}$nz-+m8)cT<4V-Yl#dqYx=JLazfAP= zMEluQbJwU0^KnmS4GJsm{}L>ExUMEnzHYnkE7LoUf07_rwt_1n3eL@du2_rr`IYbN zh^GN?WOV)TG%Ux|pwoW)e%uUEh9!q0D&#*f-CU!MCG_ zWj^cAtqRZdY-Z}LKU#~|(=gfBCJ|CJGWjQ`I=oQtPvLJHum(@5t@{+Uvr9|AYvZKqIZ86X+^8oo${xA zdGqVTu6EVq_|n7b3yR_hYb4}Yiw*WMw{mods?Z)rOp{q0kwZk@UIRo#a1soD24Z<_ zRuWoHl#ivl9DWj>-HbJ9uCV@G-uh(JJs0~E!)JZo^7E`Ev;4ewTQrjz=#uH3Cnp1d z8=)_GH@^(@T**#=ap%_VaH2}n3A>(uDZI6Cs; zxbB$Tkee5nO!zX2fB7r_CU)T@y(3nyJf7g`Ki)}oEVhWJq>U%%t9Aq3$4BmnoHCa% zLT8DN>2U1dq8kL~;A+fkxLmp`RD9;{r5`@#DI5@aX(mp4vb|)Oba8LiDUFFh)!Y!t zCDp|vvX0Z ziLQQDU>d}cZ#c>=={ADvIk=Y|{?K@-m}jdcfQDla38|qo~HNYDT0Wb8r0h`riLPw!QJY0$2L<1Ucj(q*#f=OxK9mV%_=(@ZTWhFE@1GY(6hSs zG1HH!<%8CagDK?eH_J}hSzG&@Sz*7J`vDBEU6PwV=W7IfFa6>#mOL0UVD&7>0`XkM&N;2@AX~$e zfBS^IcWpn7`7X-@AJd*gSof^FvO5eBt0Rg#SginTT`_j4xRtt&n8%3*2u*a40kf5f z$QqeICd}q=4RCc-WAs7;DKWz~p_$iqa0An@=3wmt(9!bKbu1bv#Y=rvOIgIgYXTc^ zK_JBf*D?xvh}jU`ZY<@LYvt>#>G(M5AgXOu2ly3`MOGCq@c*X|jiXd=d1Yj%6#yBTY( zk?uY$yT&bJjaQuM$l@b~y}{BZH2?*G;`>FZ^Lo$}h%q8!MT{{bP5PXdXTzK)-fsQQ z`SXu>=P1O;(p1bz=&8cj@cqGN`qqS;>h9!mHeC>rL^4s8f!vPE<|YD#878pX*k{MI z8$T;k98sCXUKFA(gQ>XuQ7ia7g<(>{(hNz?O)52$2$3dJbs%pWPN0eNd0+C*rxa`$JThw z0rYe^a=JL`SuS{piRaj_fG94_UwUz*}bQWqG|*-a%n`2M74$xn*F= z>MaMh94qq6z?99#$)b&|yPFx?ZI<77a{*vBkQjjrnB6gc3P0zZIqRhB!H_2PLjCQ% zyn?df6$D&gRQYml>)K^&TZ>1>TPIAI&=#_;`H4FwS6=k)?{ZIn7Y~P)Irp6^00e{> zV+)ES5LhCrwaJqr9bHJJx+e*9cK6?-t7$iyS3s=&73MeNH)A=NxIiJqr zHae*NX038aG)9qym=`j%??fYnja)U&P*BFidVnVIIUcGz63aB1$z&sAB;rX4peujx zGWr8D2mqP8HW2K&fMVs4%QLk|K!w~J&O6Q<-a7}n9Pf?G>3Cz~cgDPtf9I3u-f`b} znuRwm=QTXbZcTpD|T5K@yU9_;w#_Bc1<%6>qBel(xpfGWYtF5 zz0caNjasMrG(P5M6`bZi7Wbw5GGszXxKDAN;qJ{Eol*vWY~ge_1bP(rucj{q1_C8H z@>}1jw&v#6;p>HmMs?W5yM7|W>XR!18(?4qtIdg+PIT#tAHT`42IXv@egWNnN%tdg z66elq%2@yqLFhmMTL5p!;KosIcIsM^V?4_nj(DpT6Lb1`6GTet^0dCqBp4)enW(LV zm)#M>xA}6e+U!`ill-3G(;ngrBwtiB_P;^n1W`bcN_WXBa?zvx0ejLQ4w+iV3UYK> z<=sDn*jMYh{ri3gcAq@wTIY+s+?PLM(~5~iV`LD#S^){ntrX5q=`>79v_k<=TUSm- zJ(U1t`#OMV&9y4yZBApcmy8T5E(b))*tB zAdp$uH@J9>8M)#O>;~WcICZ(ZsMsv8}@;3@sEXoi1XKDJ0jtCH%))TcN+UVf8g0GVdxI__bCOy(9D-Ysvm6! z^S#zSF=Xq6?BBfVZKrMDvA#Cn`*x>KW}dq^U-aJ4Gr`KgGxf9@!*0?{E7p3f=wfxP{kEsH#eu zrAG}LKpRrHX6*Oloe={njR=(vKG-jZZ(#w~a3GisH+Cc%7VyzWxVt*S_3h6!q|gNk z8uIgA06~)x0d(5*Ab)|G7OQkqdPEYVmZl{Tfk07Y0|0=Pj`j0g0v{KK4;gh7^1nGobXC|zOH`$d}rr*>wE8Fc)I5)&j#nU zGQmwE@_6WxWd_>1FBbWzf@injScj8h2w-QkH}W^5;9(_z zzVK?}0U7`0%*P()Yzen3n}jS(R|`MvYQ zEtW*_72$}8L6YtyVE_ZqL|ip&POpI&T^ubg9b98ArSGSl_6slcoZlhP4k91uIc1?g znbU6_svLvODLzQsviq43*GIVD&IkPAvfngGq|{Y8Ujf-t;Chtqy{r_Echt>BTp zJ6*Q3-PnGvmwR{4JD^9-E?ajpMYV#1P6B{*0pQvtYo~M$3>|vhX=p14Uy0zPkrbu} z+lQI79w=fyP0ru}Nqw`=5MNX+&<5jK+An!4$`f-38~+e=Svws{b?8^ zApt~IVGw5`7F7i_OxAz^qG6L0k%nAM6>N_XI%olq=gk-XWp9m%9&Jx+-#>N%+cM1O zl>tBfHby;PPjbHB%J6pY?^9yvAM}hSf(*%U(F=R{ZP^f91%@NDYyOpIm#lLV$4=R4 zo3&HAH{jD@$vVH>X6+JZumAx<)DlqZN_3w<%6A!NJ}JZDbg$sOz`tyfN6f6kELS^% zzACSEf}v?zgcCfN@fktQd7K=Ry1t&l0=>H8YF9jCAU=oS7vRU|1aLVi$G_|E4xe7kK4f2Jkpi9ak#jh4Cr`PXrLTgnQ35vjx@a!yQ3==o2YP&*FAGs z({VkPbEi(`8oyI*BnB?A2!oZ6bmh7bii;djE0I!aTLmF4KW;yHBDJTsWW@EynkeQH zC<=)%M9QkAOaTNC2pHb1Vlqzm>7ck|AQG}Gy5IAiNqcB6YuP#$@VT^0Fv+86{D+81 z!l*hkMp3}TBShC`1H7EcrqVSs~6^y#ZvfCAg$g%+2Ho2Fz@52&}q3uBYll z5gP%u4z@RkJ}mh|ep-T)T~EpL1ase>@Ra)}zn6WMC>nr<8}0;m+yV|c^oRe*z`&t? zAn40a{QfTO4_pM!&O?QgGh<4@(8GXX!v;(yod}n(TM|*y?ohgrBn1E|#3@K9$lurH zl~8?Q>2EQBynzAqH4aG5cv(~CSkdQy%x5B>nd?4M5aPuN6I$DBI?{pSo})TDU#VYb zjOP%)T!lj(hV7}PV193O>B}Gu`K#{nmXO$W$S+r}>y|(cZ~z0K&s*rljB={fMAh%F zK32<57mO`-_sMmk17azXD5s=sTVVg#J`W{w?x;tEwQ9t=(Ns@CMuc9kIF=bjNdnj` zvqnaQjfx9uHwVr5a;`)-ChyD~>Isd`s`CD>LP~;QC_+((Ru2ITAaENPLh6ZtmLw4& zq{t#b_)t86m9o-O_sFD}HLLLgB!c+e3xdzguh)H9yCArn; z2Rap7|K6vsKd+j;9sSup-R)NEI0vP4aRb;1+_s{tKPFXGl`SeEBB?kbKgorT$-kQ3 z5ymZdLYsmW$^Rwxcac#}>j$ zchHo+AC}J03ep`6Qw}@quoEu|C(Bnmwfa8{UgLI~A*iE(r>e*ng@%<50to|wIXoH2Z zBTGviX`D=HCQi53m|Ob&rwbiQk%T$U9+J}fn}-N;1~(#FBUj`3C`|Jh3|0nsCJ58Q zV>Bw-g*{J>uQ(A(oPPe5y}wNb$vl2|2Do!Fp9u{!NSQ*h3pVs*w?VcJfnVO+J9Ra+?jRx};$|4+$s|;5$A8;a`b4(B_LjzH`6kp+0wg?7foLJ*Iy7x? zHYJJznF4SvT8~x)j3y37(WEjLAlFnO0tOOOjkK6BjY6j-DWUlY zs-$&?(LiskxM3_Rj&3`9=&^FGPX<-LzC_`v@GhgkE#cJGb|` z>m1hJ^M0^79e1yz^I*@rHZs@x_xnJofra2+N&=Edxj2#|eluN?Mst&&7j+{RO}+lp zcA-WBpKCDV+9*(k`I|||0Z4<Ah<8E~<1UG_}>@GpPzQ*ba;V(TXYP zK6Pk%!dF2tVVP_JUi>+Szu(--{PVpFhDQGN zo?w${0=u}ujd%ka^9VXDy)swX=S)&iu zkgi0W3duo9O#C;m1$v4`l=rKfHQi*!O(+ zn^#(DYv;1nHlUQMFGl8KVZx0VA}}Y~bfzdk#jGd9Q3FR5fzzCo5kgNdiG@{1ZY-~- z_-mJ}9XGk#`|;MG?}D)-EGk~iQBX>hgGvW6P^$a1YeRA!P66Lvf!~3Km9ZrQ!bBI&naskLda!1c4*F+ zgd?)9&P-2a2K2pf**9d7QC%A%q>sP{C8q4tP~G5z0pFEx1ilJ4zikfK`G_t4kQ{xvw}8O-rwLHx2~X*OmNXNW<|niL`nVuIIH+?# zMgo8!8j!Guh^2~y^JUh^EC7RiQU1BM)kQ2(iC0%zU41z6(+I7u8zoy^kHf^Cc8mFZ zT)R4^gOr&HVCK}B#a2{%R32br(OfL)mc!l49c(-RKt-TnV&?{#ITO`(|)>!tgF9e$7!8 zR=;-4+#-iLYol1BIy4AvXx=UVUd;4~F^Mt0d*0#pFwlNMZrNy+@P7GXtTO$p@sz7x zHvKS2;Md@5a`N*(5C?rnc8+;TBUBorW%IDDgvGC>{mb6N&$~2a-y8II+XJ01PR@~k z2*DI$;evoPfQ0uPkw^kmkO}b2i2_(VT{t%~%HqP`MoBHTkFP)(nfCfaXkafEZShf%4!hyFBhI6C=Dy<8gf^i1bDZ69*+DD47%ns=$oZCt(|AD&Ze7wRDL=i4AB{5O4X%a%(C?fH8|cP040JKdE~mTmU)Q?@(rVFrFnyyveA1zje}80H21TB z)#qF9^>8Wt(?u69T#rZXYr(a9O$MSVwU^b)G?AbQ4-AzuKUC-O4dd@PAd}0Gj&XWs z^xDC6bQocqnLzGA=6Wy;OwHBV%f;Shq!{7)wR)H z2?!v9e1o6)eyszd2E-3%)9Jep%Yki`{+GwRW5T}vmHB#L(??^jFU~qM)3;5(1=AzE zHLd}3+a%7%3MEF^qF9yf>S z5PSKSCl|hz$@cKZEU~D3sI;V`wy|1huLuGHM3b+8FwsXH^GI;>Jms0fP)pYaJ$Thm z#*d)#s+{-X_-*(Gd_{KnQP=}-I@A|$ncHUm8N34)Ii?Y8n*8HJRO7iWhn;Xw3n zp80=W;@)lMwb?o4e1E@u#FW;hszweMB#Jv+M}(-QVe(b~T_VUA7wi)ee0&MtK=t_= zO>VCCB^r{O4f8o?UEfdCYAI?SuiO4IM15={<7R9=lG`Jtu^fk2~$>(0!6GPrCg3W1iXHC*ih*uc&-ucK-ITc`F<{PBl6p#Y-r2LR1TH+op8Jis`5@1P6ZLG9Lu!uzBi=SV+)yDHkC`4pmzrs4ONU1d znV4-OSnRuS=7AkgzJ0b4e=4r!HMw|!ov!@QUwsq+iKaKC1S9DUT`SECfRTg*7OR{4xztQ4ogPi;^>Nd< zti$iCI3DG7Kfh%58h}DZ}B>OX2vScEItH#LH*20D@~IOQ|$bzz)$4U)A8t&Z5-y%P=qBG z{v5m(aKa*Ai#}}tKm{me!=9F{`MNwBdG4UyOQbtNP$y*D<~0)MmdDp1NT={A9mNr? zmDF0BC<;|O7hkUW|u z^&&dU)FL;Zt$3&k5n_OMXmGt8ZII4H{8bxW=s_b2UI7s?-sATKu(JommXQ3C^Ucq= zX>P_-TrW!9;K)K~;1z0?qp@QlfSJCAf&+WEq}n7XvLh;bNsI?R9dc*QY&3!_n%sp* z%6m6THt9a$?UN*(RKxXDJ__go2Mw*Yf?MlI1ONyV)#r0P@HWgOC!cUuhu4O_5~HA5 zQl0mXsID#GYPNez=xqm};ylPHYXf-gz@=(?_|dDW~a)j9y!UGQ>zy(h9P1VAs`_O5?Z>lC_PB2<6S9=Q`PO?OT=AQff#RV zcmT>Sn60v#JKI@ZZ%1{|lLQca9m_#ef*hWvHVc|#%qEs6k!xtWXNQS6Fwjc6QllUR za=%4YrVTjtMR!Z0ey;wC+svAy!M-OwGL@iK9DpW3uDlL85g_K zZZvgPxH^!T*du>02y_1rJ1Q1OTqpIELb3 zg?^@CksT^bPM8&))&+$K(G{}JiMHL4#}0GeP5?+qGN>)d13K@u_I~T+{<7KwB`H_ zB#;a>X8njc00HD300f!uM(5Dp2*tqNrUcP6^s&&lBxqb4VoH2O6$;LV(uebeaUvLgwDeU^3&W{hb?$LGd^%wdg20$PJOs8)@ z1>(%&3Q6S*Lz)G?WNCkLSovze+p_S9^$(xefKYB;TcugiwBp|y9fp~sk1~9ot=7l= z#sU_ca~Nd{r0Xz;13CKu_V~2$01&Xbv;)RKLUWDu_gcA3@Kl%~$);wbytaG485%c+hp;YLxVPQp>gzcmkeAcqjrQ*gis4 zvu%uNbSE=zMC!b&bgzvLF1wwoqHxEr>kw!_J&q=NdI0kCxWSKcf3 zq33z@Y@j5q#fOLUlZ~D0`0hsONKXPAG_5%^gR4O3M^7Bk9QF^t7lYe->A$V#WZ5Z| zY2_*umW5SYQEPY3`GeuGy_&s*QSa58F0X4}q z2e!vvOLl1P;N<7o7zU6(a@S@LxR$a<_{*&hv+WSHEkrOwx@v|{ji8n1n(IttMzSVf zw_hp%*v^ij4akB91Q_sa?~`TVt8ljD|Y}!1HnuWL*S{%eX+1etX3#IZp}VW*BX-2!mUy_1lfNL%-cH zIjGEjw4L#;no;g9@<-h%=h`wAXI_vNr~}Qu-_RWVht2B@``$NO(=pk{{fu4*GhH=n zWED&{IB(i$?TCk};kn(o z#8H#Ive&X)?1H89*MD~DMQ(MG^GDjv-fIPG*Ip;scB8}HpBZj%Kj%AqbFHp>lrJo@ zlU4qTDpP4M>|v42ciK~eaunBd5@&9HP2C-S5Qx2Tv;2Bx1qKKfjDo-;8#8&1h4s8Y zJs6%H*8w^T%><7P1xe(uiDkqfSrN_9LFme~KK6%Yx#7CjR{en`xKol7Snk3iaV)?n z6;vj~K)urMw<1wS&LFKIuW|imC|#dy0vj}KdnLn`J*u6o2jSyG2oB9zbe)sgG2x(Z z#isq9cI(`N*%+4m?&o@pE-QPE`gs1B3wdY`4mPhGY>zCRzfsEnkr0!m%kbjKotj`S zgJNP}pQg0w6hzOk@Ize3teVj&z=gb~qlLS5hGnw*g0K_=aL#{sACDuh8rH z1O*TT(O4m-K4RB#ijH43Y`gxb`?`AzAUHi%6a*JOJv*|auHGy%Ev@ukI$alWKFa6E zVlg-P{#Y%IU3&-`c?b#J@p&^W8rV!Yx$cf>1GF_Ry&h8$6@wsbkmG}qM>eL`SEY=7zb=KI z8gz7G{%oQcj1{Gn8YBx50a8$DD2R;|R^4;9ejxxiDQ=Au2W&3{SJ+(ENywn_0>P*)r1YEf}4!I{G5dChs%-Brk;DUnR zVEiH?AbEjHu;HMoD-8gniJ0xq)zXz(xk@{9mY)Ry0bB|v0036x08kkJa?t6=dj-tX zT5EX|EoE-aELkuV`!NI@{P}-{c~h)vLK+{c%RgvqY9D%mnYv*BbT|f%DYAj=f4=ek z70=myzK)Xi=Md%Jr@iUS1xidhFcwrT#B|I#>z%0icGS?>cVB9@UKt$24)$hyZF~0u zebU}|w!NQ_zTWrpL%zxD{r(%^!@gtRUuUma$3I`UnJkGr4(QV-!#1v3F>OWtKeY|! zP+wetq6IQuYJQcepMfsgz#OX56w5{d@{vsoNoKOGl~`|B!ZttgrN4K>bRc;JKWCTE zUj&sPK!UzCkv=`-%Jo{q{3FUavPW+B<9Uno)p%0P%s>KeZO0HS2cS6w;EV|LZCpG! z*q@dH{nL-v0ifLXMH&EV-$D2v0RXcx1bnyI0EU4A8ODU66Vpj7OdWK8E+4kF?UAcN zFw$dPfBNX8nAwH7&rFsLt(4vH$2=A7eB^}obQ|;g&(JILO>iW znkhB6l9RYavMkpG-(5x2y-W9Wr_a+{z|*1{W-RP)hrtL)$TEmCxM4bW!!ly{Ig1n` z0QwY@Ufa9vwcN|N@5@ll(r5R{?r0B3duc|9kj94>yBCkql=&4LRhg^6T|ucW|G$(V z$PzH%TYoa^;Lb*QK}vrog4n&RpHDQ!-)?p_By3_f#RK8L-C5oP?_~bPHyA)#KXd!0 zv(5Dix}gw(2-<-7WSUGH$%Brv8wIs;=7eD4mm}NH{W&iEOkB~r0EFFM$P(N!HdTNG zJWY4s{+3B@;%xz}B$#so_I8`lxR97Jy}|vpb{VceV<>DmKJ^PP?QXV5zxE?NQcy$u zR2}!jmouM*3b+RgA#J0w6uT$zZ`-x(6p%~>;0N}1H%>Oz-5|S(vhmG`KkXHEv_6Mn z$A91v+=tpXu%E;2oGqwao)+#m*H7P@20I*-tB3u1c=)6?acKd6!nhu(IMqDBqksrj6p26p0lZn?jaWEg zkk4>Oo&)=xyrFORIMS zx-nS~e%bZ$=z15Q-8#EiKSR~_ASNc;?xF%4Dy*`h^Lu5s-&J2>zVV-1f0)B7iuOob zXBTi3T`~L2XK&Kcn;$&7!k5{IiC&IWe;Mz+N_fV!KBSTM@Y2yP48%Zp#-i>ZASfbZ zj|0eDaT-Eo?iR88;tB~fZWd|+#8zyYM;ZAq*53|D zH%7|?_SZRVeBV3S!|^YF9Y3;;IVA05vvlKT2-&PVl>ES-?B1|D{w*tXh#rCn9!C@b z1qLn|IIOB4J(TJzMcmTp4h$R_XkY_`UjdW0O|t`(PWO>Ep#){(6Ees}9rtZF5<`>w z`9>P01OOTc2F9K~E>iXPUy%Y3h8)(}c@!4{D>{({K10clt4Iis^dN=TxK{d`xR#pJ z6W3m5yIV7~8j@_%t{(-Go9>d_-I<3CF&lq6e6)w=U))*eU;JiXoGp%Okl;h^IpdQZbaP4|RS%Ff@LxO4DD0vu77Q50+;LP?53(t>@?+MTjPmkAD zW!)4d0}f8ax|QA1u`AbYzs~3HmpNPL=50s!yuI!aa_9lX$i%JO`n(mj`KT`9peu$u zwR{?8zo(7d7=n|?LQFt+#=6c7PX&OPKrn%GP*0YSJ&sR?M`*kPjjQ(q0I4tEYzb@| ze_jic#xuy|2&b6{AOU1EKn|G~JzoJp5r zCsI_%D?{*D+wX3+$XQ&<%Y;8@0S*r&4FxC?0mPO1$eYV}{=&#{r~<}hgo_NaBr}u5 z*`!J%6TM!ktt;m3=uYJN9n}Gl9Bi6bDY|aBR67EWX87ft%_p*#pftf3WTuaW<@Ab` zp(?X3OV&gN%;6<~#`_{R3Dr!^iwK^I(5^uy3q*V-Q}j*}W{Gij5iN_B=INeJ#d%F7 z@S-sn6QA5PZOl9#v%Oa(cRs9GOy-%uyeW9Ov9!Y3rzD2UJ3F}tAmZt=GZ!9tb7H1i zpwkMf0GRMP1r!tjpq*YNr$_C}A90!$I$W8=#4oo%O7tGrwobDNYy&<*gmNMbReeI6^bpts>>1no8O7=s$6ee;Fccf{ALdzf#2A#H6Y&%VXaS6}pBEYHBez{@n{Ef za{=QZLf<(B6r#)(yi;9SX)AcUOg#BMb6Jm=Br1>+0I5K%cq9PHGvO56*s1dcF`e`q z;opDX3TIj*n8VJCeRKK${BP7>hFRkCI-4l>h=at6;J!4FR~T!nf+_cMO){BiZu=67 ztDh(p_pNlKz9My1Lw#rW)x@H?6Fa`oTx}rcC~8nWq7BwS$~0O)AyfjY*|j0f7#PX$ z@8rJ^UyJpXvRmH@TX-U^HW6dX@7%J8{M&l$+x^TX34_zB4Mk*)nz>Na6g6WTBtdYo z|A-PkG=ojbrZ_`*uHby#pSGnsMJd(|$i{ zj~ii)kHClLwWydYeiU8wZF1=6;2psotlsj8BkUgs_@Uekz#(4)op(D1Oi$J#{?Kmu zQgkv!$aGVy(>mFY;Hi_Ww&nszgZE?;Swd?6}EHPeR4S8C}Pp@puE z=1qh)im<6kGc|0Od`)VM(y$I7K`e+CzWBsXNl~Uqr5p2|P}|p%zj@mWe+&b>8(x=1 zM}36fXRc1Ig;!9`H6q8CJ@cTAdgDiT-he3k&M2{f2!>lK0EFYgd(lGgI zI0mP6x2bsrprEnxrPPO!GCq`e^x~H<`K@_1A~`Mky3OZ%o;m+e2Mx4#@|*o24xv7K z`+eqGwj;#2pSc=wEf??Gq?2y`6_wpovg<9+5WlI=e6b^2>~jwZAcWDq=%Mjpz7z^5 z+A#UbumCjf_B1bqLWo9|Z>>C!K%r>#k>{E4VH1t|UfF}*8XuU@w80iMwx~28=34I#-W`Jc3%U2pE-#|Fc#>p3`tuXq9)S_zvsjc?89?U?oSMM{|o}&(GM;Xz{#mCjFvn;&W z@uCuL{yD5VMf`#Ep7)tc6{TB>9GiY_9P#_v(fgcDuyk2_VM`MQa!B8}Bdy zz(mr<#qndlf!C8XOuif<2FB;sM)Q&ptm~o790(HJI&o!da7VL4$UPd{Y|r z=aQ)~8V2LI(v5oieddxl76ha&2`~4*wMSrZu~;3Ld5v=Yp(+$? z5_og@y<6JU)8<}GFemvKGYS+!K{71g$b0)Pd&E5c72k@-kVob)#(Wb^uN*T>*=ToE z^6^y7A+I23%4tBHdFC`-oqnb54%^C^xnRvqfP@$`CR!`Wp`7sLvgBvP#n&AtKoGq+ z&Row1e8jKV+jaMs!JdP)5%YQgr$AW0SF|96NEu&7#@bE|X{@)wHG98GY6p_H{B+J;wS=r*rS^S)rV(^@j2W|h!RocT18DzYH~V&w9ybJgwkK}m z%UJE|&~}Sq>oJ}A1zBd|-~L8ub1NK(d76DZ*;>sny7_Rm<`?v9ZijaCA#-5n^+gUi zaTl}m%=2ICLlNJe@uu#3y!;oi?&8X1rf zKvLwWEQYNYWWdM>(mR?QvPdEyhwKCv0x$=ry`Q-d)aOwc(6IUx(0Sv?dJtzM+TLmR zT%a)r#=W1pBv`DzG_Fj+Wmsu)Vw^;UsJ2X@9%P@HAqjI}+WVR710e#Rk*QbPpnLz{ z0MokLTc_o&ohlJVyS;YjS_=o&?%^7K8){R!WSMeNi;xm{X03%HA=X2M%`Ni*8^4+Mu2f3;8=_ zo(o@(^dY!?o+TH(VcKO{MqA^ws=Md3secCR&ibRkP=xZn&s@2^K#32ebt6%=_q@+s z)%@ViPy0?>ahyrsZMFDm-MX(aWdHA*jr#n0a52ncH?>Z3@fw!5+Vry5Vf!#*)wT0| z=8ECAV;%F5_Fek16HN^F9DL5yL%ndGaVv9mPb5 zwdS&D&_7P&7zJBQk&xs!zt1xoL0sMr1_qj4+64Zb{PM`JyQ@Q5114&9!8#Nm+9X<_+-UMM<@K znE)^*1S1S!tU&|>1BirdkTfPnhHosY^+1Z0j6gEP4e-yXdFBcTkT|Nf8UnGALmtuC zV0|7EL2!gf?G0aI08{kp3!Z9uunmx}(ikO_jH^{Br1tVxGBGUw5&2%66Zrkmsq2!* zx`5Hyv)(1MD!d~udHX#7nvU4s@HNJ|@y@H=bQ4^4`xH+d`G5utj==AfOI|!$9w$1h zc=54Wg<|vKLtVb%Noo0hpZNV5YxVYy?=1a$OPhZNuGrAV6s+ym8$L+ZY~0&nvvZcj zY_;*a-@C9H#WeZumrrmL%5`V$xLn8XCPU}7z2V#KrmgXg5f9&Dj?0z6*MS;5-##&5 z4(psU^dxu2Cmq!KW7+@mys0@=nHyk0&I+QxXx~*%5;(8l%C2K6xmx#rANLa&=6YKG zlEc3*vmE1CFiK?jK6m0ZhQPc${M>7vh7cL0;eoTlM2#2qJH)+3(^MyHwe{s-TDkuKY3 zbDy&MA`O@?vYlfq)90}`{;@xj2c}wk!=`##V2sfYUv!6Vn~wQ|+47KK+dIC?cbJ-R z`}wx-6U&?uneYW5Da*-?*In*`ZEwb%CPc{UK1FVC z_^vx$r*31JAyzx&J|oVjnrrxcH>7&Y4U6tN(nuYu!*qPYbC)^JMPUvN&qEYKac+d} zxcyl9J!`Kp^hARWqt&jvJ?o~v=UR#P{NX%x%ct)aBROLt!*{gJ`<~Zi*ys4)g0-V0 zP}2ZIwg!doxwt!QKS%wXz2Uq3{3AWF z-}1nY>wOSbxVdO5T-G4lxY*S0@=yUoAhFxSvc6Fl~)u}{7I?(wn)9H7R^q_=I_XP@d@o?H%6(pE9m==vRl?$1#=lvH^a~v7V*+>6?zV z=N$QFGj)dB%!q^eVGcZU(|FUaN9>u69VM?>K=s((@TEOpe9jSTKI6*A4P`|D)iij% z{`5}e8pqx=3vPI9mr46tXwvbfVirn)8(^j|#oCEuPcrBl$7X9z)o*!?j6Hd6>v`5& zR%aREp3Yn9>7%TcP>B#3zI*b9+b?W8bi#oSEdl^FJP(mnaxZq;O|MyFVZT@BnfTCb z+VN^zzu=rTiYqp~;Ix+8Q!w>f;kmuxyUHZ>n+{#!1p~hUlMdAxG&aCY9F%Tky<;D^ z^Dx_oX&=`Hsb9((cr_At}n`965BExvcv z?jzeW!w6p}cX+>@%cUpW?ED6ce@n>A=GrhBb<`M9|~m(2*1X^?TIHWpMiPjkV- zu#Q~YH#>{ojvUUi;Nfa!r4J=EjPcR!Sg*U3Ix05*l~sXF5JBn?sxIP zhp@&58M1{$l65!V^xphyQ|f1Mj%S&`7`OaHJ$m}dF397qoM(v0#3Z5Rd)WcLJ@2)} zw=dagfqdus$Kjjg?p>@BwIP%Er`_qZ^&*3#^`AKQ)C70j^|Toq@WGJ-e828qTYQ&li|=tA zSL^G-g@(Ce)2v=|!uT-}LSr!#+cl=S#;w%vK+CMT!mveTG$SwC*TjpDIO65^AGO)) z9uh=tZ}`5Gz0I1o8exc&_NreZlC^sJ^$niy-ZxWWLgmuC?|;FfL(K~#^>g8vJ|Sbn zb1^YhH8&K$^S#sNaQm(^)&XPBzJR3C6>p>W0U2e==ja_bJb!;;AT<(NzLyl>`|;#lo;?WUKnIoarzgu1Rg@9uYXKknMg zCpzk|1B6Y(=liqv+TvS3yz^=|41Z1k-z|4~Yrh7Nr2)?7M~{0t%p|AP4!ic)_VK8_ zA+_AQ#t3QLQLm-@Zkb6HD6ILCQDDS=JM*@)j(vWE=llO`i!bIG-@NqAd;k8%+ib9o zi*MF|wf}bpql+hPKbGEgVh7n~j1S%eQgicyyX~ZL@P2MRh#GM2ngHLwa9e!0Y>V$> z{TdYof)}1lYLIwQ2yKaM5X1a?-Uj`&9%io`qu*LiGVAW!>_nGdbMsCk?Q`YcMG#PG zZ}@(uy%%L;_q%}}J>fcgux3SU_}h8Gc@c4uC5ML%#~EkR$-6AR*$J67Ci&D56Cq+q z0N>``Kx66pXRjkC&$cC+eC*MFOphAyXUI*l_v=9JM737)QHc zQ@y0q$(O%i;wy(MC!4e1dDb%`$5zi>bFRrff;CawAHF30J$c~`cRRjcucQFd@cB-A z%H?DBBO5(wnGrufluIzc%{RkbhK(;21N!vWBvs7x@kTZQubKt_V?_e9XheK*e=AUHQ zSf6JNyWH;0=Px{qGl`-${O!EzsfV_l ze#=3v@y;9kB3mLI(SIJ8k~Cc0wCAyGF1|FKzv}Rt`sEIucKnu|_8;+X7o)x4*qY0_ z_e6&8eDV30MF!k(&k=x;^3ZViP&d474c|QFjym;(V=jEag&SXZV%Ym;xAdCYaqS_h zxrEf-@SS!m7-Hmb^DV{Dx1E!bH4VAE-28jq<|~UG-d>)sm#Nn@x{{0Lp;___12Y1I zdgwkhv$QvStrzR_D8~7G)Ru0Qh8qGPRs)1CA{f|eXhd->DM6{044Qf%B{XPF`@=Ue zs@IUD!9vN{YO^uU_4$^(gGe zZz*kr{GJDZk!+S4a@7to_w|-hsm6wdY;28Q$V#YtRD)~~8NO$)o)s80qKnBR2sc;+ z=d!GDAy9T2OMBXqc$1C#DeV&U#j?wS;C2B$=*t$2JBk8pqRP#Q7?rAS!*E5 zy_f{aE0{#UBsOTY)ZXv~NI{J#8%va8Obzz~hFC;29F;IuqG(`^5L#pAM8PY7QRicB z+8e%syH%2R0UNG|2ndXZgVmaucqRK+sEO&%8DV03ZN}RYgQS$ znT<&iL)~-x!xtG0P-_WbL>U`!h{vclwFXyOWQZ7xY95_WSk^=GuI50??zK=aQ~Sf$ zimPz~pBi$#j~NpJ3bmU;>e_yLL^~eCSgHj_+rVlW&wM1$kFJ7#vm#mQiqlf}(w83}HA}b2m zYC+Q8@FhY9&j82}B{4N%#Wx3&2qdz_2-c9Gi`rC)mP9>jaFAIw?G4{(R1L%;Hsr`W zE}AS-s&?%aZ|Xj?(;9+UjBG#&)u6DnH+(f(00a<1HEaMIJYObZG{lHlYxXL_z50Hc zh8(hmBJ+*~7$U1j8}eFnsbvl(VH6V`zG6cn6j1fRC=C~atcEmluwqz}ZF0tWB_>-Y zHB9XdUla2n$rO<#n&uiZG~ixPNe0`;%Aj&FtQlKUi2!Jr1(U}tx78wZ)ZXxwyr!74 z#ARX7R=EN1GN}+FA&NDT5eNv2CPz-9FeT!^8c}^}Z}>7t090wf+GWLy5&{B2W#|f5 z9Y%2|C|PduQUy#xk@kmgw1FWoBceeG8rhc6+=L_jtoL6J4!KVT#_ z3>-*&p)f$MRB{1qKukdpB#8hBvf*eA zwm*Ck36caQ6zeTD{Oz0wg%CwhjT+#{c@4P%2QYy+MPgDQji}y=AfgCIL<9k3WcV5z z)Ye>pWFc#8mKrXQI4Yt+Xgn=` zC;#y~`H#mO;ExP{80d|sl;dC4?mHd(FN5bd9+rKeDLeqSOjTdI%%8G~EOa#XaN+QDG-2>^5dDxvZ;_LxvdwNr8rXq^hy7GFrBDFrgteQ9L;2Q?>-KhnMxv9&)Us*@3TdpY?j-XSzdI@JOG-!AI6!=PRx2HU^`K_(b&h$~)YorOj=0BYR8*5SG1i-70)S)Vd?DMbqyt{Q6X&)c4q~Wq z;T^sGr$?RSPd1W{_D%iy?~SK~*J_^C1^$X-IIdUtthTuykL_Y#FSpf|+4)`f`Ji;2 zzVg5*cP+5!7-qY<20meleWzzH2_nZ?1%N(upon~Y$`efozxe+DJNosr;I?X$)V+* zr*O?ZzXK0%)q{<%`5^gtv&{{{8$rjgw_ul7ki5=Ucu5bT2S$GH{rJ~5WVg!H)b&|$ z8S@>X#V?0tbQZt(bgO&xn4)dWst^pI5zPqUH?O81^0d%p!)wUjlWTyXg$F1+dfQKK z-+9NL+J9HF$DKahW4!Fo|6|X=W`_n>e?o0gH4K7RJ4t7!p&4zAv!AlW zxB|$;24k*>vWd~r`lF|2zW%ssYnc5}zcYkA7okA6k3J_)%K+12lG zbKrv?4lWNG#da#Lq5YQM_BpP7|j@P^2%uiYNRy6js>-+VNchBitL$R4F_iG+Vp&30R zEadIb%1CCD=1B7rFEUv*Xna0X9drX*&QaK=04I$ik-Mj91RB5M0iMh2o4`zm3u9GuhY+n~hlOf{}J+(^LU6P?IIo#NvYZ zdR*tmF6%Xl?HeHco910H8t0ObDsao6WYnud+s8PlILY!m*K1U9=zN}+tEGr5$0!pG4OWO^UtaqC3 zJ5G9+oU>uN9!aO#?>}m$YfrP4C0W9()!Xjt=}j$zw;%$^i;XNcLd6IQHdX}@0HC#o zoE?7VJ|#4wVigadixmLu2>^QlyOjGWA(FOR=4n)b0g1r?z%PT4i8V?Q1ptB6kyg?K zBm^>HRq8-Wsde<9+l+U>($MA&01y`JmNaz(DiDB_38$7tgphzdVCz#?3#6EnV8C2I zA}%E%gqfiFdBD~L1tEdiAgCt|#1jw^Bok85TFV2nARs~l0{YfeSJH(fX(yz9!8*_f zY_$U;5KtimL`3Qepeoj+6H@J82Sr#&eZUn22$MZhV+0UU)DM>~UE1TDGGXN<58zr1 z$@+{jP^i?A{gIj0todzDK;1OnS52@kAaj5d&QfgQBumY=_m2WRH|!tL_J0-HFtY$D z6h_YhRsmqb=pDzD&{9eX_W-EufB*o90x&k|1qmgx6b2~_=3#y`{i(ZY0VYf&Lu(t* zOz;3>B(unikvbr26GJ1juH1;Bfu!@1Vm?x2QT0bF0a?gWdRBd+rWSeLP6%PYTHu_M z5LP9INcVs3!CC!y_!EfE2Tn$AVEh z$xaM_frW~#jB#MF3KQbUd6$7<5L$YD5)+OXN~PclvPj_)i4`Z`SzL_)mWVRSxW|p- z3xXz=yb&p}9smqwmlW7ks8Ol^AYdR<7-8u!c*>YvEivOtEk{>Pt$L`DKbLhA9s~HZWNu8WcecdMl#BNC^>CgoWD` z0?sR`T&*MEB_A&xulzm}@|xx9>!VoTCfa#FqI0hdzNpnHD=4b^JhNgLeZ?md=+}dg%*|1{m@(ku;`ju0r`ERC5g2UuDe93S-3NlLi72Eh6TWL2gVdk)qGk z8i-z!koJD1FEHv98yT#9o3b)y$IV+3t@}V`j_C3Em$en8kq0j4tD3?{R3Ix9oriiv zg#rROLc@>@hCEVHjn8?Z%`d~=yGa7;0_W@H)5959c1JT23dtHdf>BD9%e${GX0yVC78Rk@IV zdn|w3OwBE7NerfHkql(6Qd%Glbq@fZsRqa;+aUUg6o3rnmS`T4`ZJa50X-Y{b?QJ~ zyJ$Jbm-2~71nK2|ZK3(OC##_zA^qW8ds~6Ny62(BR#}C;Gio!79+*kQxY`^CERJF@ z8PEV~6bT@vMs<xK;#m{Ph^Ly==YAJYt4hh|-c$^VqYM>5*mxHa>tLLkn3uwo z(DZK5q~CJVBoY0`gYmlft~83_p?H{cfo~DFTz$}K3)Sb0C{xV%v}>e==X)6Qye5n9 zFz6hD$)G5Zl4KaWcH>wtQ`8APsg-I4Lk`JE?o(+S;U!s?Bl7TJvHKhYLJNFN4$e}) z9k#!q=GJ`fjL)I8+;fYc&h(;FY(4V0Pg#481MkQMMm}DHBuPy#as{sbj5Yvt3x{Nztugk3A;0CUSLgbjvn%UA zndc6@;vr>y?1^dvjW_Zeuwb{I*rEF#t6jd&Q==~U5jgwB{lp}MjpeGtCL!fsS2h~^ zYGeyLpTaXbz6ygsaNS$sj#z{{y1#WuZ(Ete;1iyOUB@3|7Z~XE;BEpR(jTJ$1eKlybbg_aD?lUR(TPy>!5l5rqwy>ql97 zv@M4%Yn@hHWQ@V#)aj<5ia$Av%j%z*bhugi=YY2?8W$RF?WM8vHoobV`Jvoy9GV8` zSC0N!4B$8Z+JER5lp{i3OWX)5I}69H3V!Qmb@tHLPCe%i(*}-u z!L}W?ms4tfCc1p)k`S4>cY{QMoyQZat0~3vhL|@wcRlmLR_GZ~-+maX=Nah!wEy3B zi9_3>B9NlXtbtrk8|b3?g+o8rU3}52P|Fv;wbQU;d^gUkZrO5Bzd#m^E%%-Jx!XK$ z*IB!)mM-qQb6J`OcneppuK8K*S3KBy)*CKEmlXjULq)>a{+b5_WNfJ)z^_R_$+_;W zs9me_f&Pv_K6yme5r+h(WD z7v8P|8x+AH2U|Kp<`M(F8mM#l@yi{H%OBvU(DEnV^PDoiE_KUM*wCr?I^an6Fuxvj z_6*ZLzd_yt($uB-zE5ZW(9bU;qYaFvF%&2*V_L0==)w}T9h0_1XG=-d@y!4fDu8`U zgrwfA2P?%zWly$`;0*&dmFivh4xOp!-eS1mSA*q6pfv%X&CfbK?|YY>qe;!WqnoVK4~PG9fRu|Jc%)|w+! zs%ct!El!kUjx(G{Nt@X6>q84-m-&ihn9+HkoQ;Rz9=BJql9{5W4Gt!8*;-98&$!k# z6K5JfA@}+d8GNvXBbINUW?DvDq@qz`=o*{wi0hSfsMn@jGbI4C_v+1krD^IU0t`gG zU-3;xoqlzHu^>15LpDf=U3%R%`Hn`OhR&{fi?(f4Z4R+V2oR0DDid9ILf7^A{NWc} zb(qD6J0W6Du?pG5cPzEVUKE<8MG@2s>G`J~{*+nzy=u#$F*Q8J)~uk0R4bs8#frzq zPpIZH%Z10?{tO;<9{YSQ574<>aPJgtp=A!g{dV9F#k7#RFac2I2ap|4dkP}rBO*a0 zTgQh)z3K8949}Z~%cR750AbcS{;KvG+3JF}uV$H2mKZ4y&cGDs7C)Tr=ci)Wk2Gm5kNV4sco-|McFNH!Uw)q zTub$)p{Lk+VI6M&tpX1?SWA{_IdRYfW`=f0 zo}1r)Ud87~vM-w-+qb8z9f^h!gaH^p0F!`?R;V^HfC5GYMDyhFpYm#~HT3WXjU@;< zu|P8I!x3db8%50xa5N7kJECd)!?&7p@B=5Eoz}LSUp_Si&HWau%{RjjMi(**T{Q}& z;9|wODX%~o&G%k0;?l}BXvC6ZZW~nuA-md;I1>%L0Ao;Uvt^(#oFQl=Ypd+9y$JSs!0Zw68{xo$ZaL1}~tM;aOF^Zr32``ZafFE(i6u2w&MKYuLVfxsPIEpv1`GoipGpwH%7c!5$ z7hxDtZ5w>Or9#S?HHI4@!UbhEg;3s7Ntr^W$w5nj#F$km7)#8AT9kh8X-k$z28}8s zI6j@Cm2lF3Z~Wncj>~m}3gPaH*{*|ag9-IobBoQr5?N||2%p1)AnO^iMU2m5%s6US zFN(%ieQSz^HShw87MJQL>D&|4HOf3>q@=H}Z557L~@>Ba{ z6tJZ*z70j05E>sM4{AdMMCxh`fUy8BlvI>XW16pI2^u6fNtkmL8y;~Uj1xNF)?Rg1 zE7wE(B{>laBWU{?e4HL`@JKV#TmpM`o;7BwnKnK|NZg_d5L}fhktItc3c-=FF*7a+ zTN6d%gTT`8BS8^52h*71Ad$AMiH-o;g{wOWlY8X-YG_E+MgS#i1XNoprtu+|q6J}5 z!@wYbF%b(Off7R^K>`LA21-c1ua@n&R5ITtBOe+LzFdM2LML$03PU(&c0Lj_y=WU) zkbqEFV%{D~3{9?`X1YN{BTU$M4aK~aQoE7$ zR39UBzDnAU0l`AwjY!b`8mPZm`25)(WkLZtvW<<{lqovi=E`RkrB*#so1r9w+=l&} zP4K_^hh&f&3L7RpWRE(_8?_;ZU}9sotC<^jONbAHR$Yoo5fet8h5MvvD{iEvi5iF%h%kTzkS#v*P4^GuQX%a?;J& zYkG&?V|{0}kO6cY3J=*1oKzqN8504)0dV8d0>BakC60nbE_0Ma5063}Tp?h@WEyXv z5W!Vdiilw;bgC+Ft0?3k+q79g?Ab)*z_KdW-GE}vD1 zxn;S1Hkynv;*yFsAIrTweXQde=OAZul~qzN?A0)wqK+Eq_Mavl5Sh%Sv0GaW|0ZH7&UsQ?bd`L{U7z z;>;0wNi*z@R#jz{Az~jq3K1n)QJ98b8M5-mrcB_kTeE+o7Lg5=%U{s;S>kqCeXjLy zd)l(n?3TF9qy`VU%t|ZjQ24vLs3sLO&aK&4>Vr)*amvi(oC|i+uJGjMtzwXinNIRF zm|g`J9+*`m%8*Ir-Oo~rgc1>*K8PFL9(auY7vBZvW>6-0ns?>--lrJZ_V`@?*QNf& zeU-m&tAE+zqs2`}gCQD~T^5((GP_9Dhcqacm3-j3)!S81o%*CNZPK^FfBb0i0#goS zaq^a*TU=?PJ_N(Vmo#ZA4XQzG5$9gK8!`=ulH9tdbxI2nqhSp1pM~{h7*F}Z`lwtx zOaA(t_&;-2To<~`^v~Y%3s?KJH?ZCSS2f)|rTJ5sK@be8A=0HWEVbA=J*(b6?}INn zo*gI7FjV5bT=$%9x_A>7w`}ZwmV>gRr9g>2!GRn3 zQIhg>29K4PddIuf;t!ZmZLvRj$iLZE`0bPLW(~{PM8ePKPv|9A;9mtNksvULyimo} zcTohKrdi2XChf*L^;ofuiAzoP2HtOHiyxbeT;sP!P9~8CyAlorz&VIi|NKCvQ_~&o z?~f~&L`4w?^$G7&T90Ljl!|mno!(~~o`lD(ol^cyU+PqzXpLa%I*oFw{W1#7+;c#L zB7+bil8^}M+Io_7#+y7#bx_3*%~+3xQ)3(_94+U})dGJikVulJk%ZHo&wdhA9z%wfG; z>Sh_Vv}C%6W}@aMk@*CP!?`rby%btET(2p;DbBlkT&sM_^Jjm6uhRPsT6`y(wd6;7 z4pY!{g>k=_5vuMoLafaVjqQGx`m*{gARz7|3=H4^VG=44D5D*Whn3X5O*8u9&r|*D z>zv0*bh6=kKOR_mw=*_wL4z(Z9ib6EEs-xSt7`#;;6=bax4MF$lA$D{KR0u3?sEuz zoNK(^z@Roi948&EgT_*L#Le_obG4zl`6Tbd)uN+x?0yy!ncE93v`VQJ4VYL&1dM2w zcvy7%)}kM4E|=5~+d6+*aTQJXm$cknDZC^qT}4adrP&N?2v+Fp9lB7&-@4ydyCk@d zQBpJYe6j}dy-rUp$;7KG1sy)l6~{Q?+e&?R%z7u4w9xIIa9X|wwHovAQ?hI-C3bJC zvg)P4M#AD$EP;!7J{#TFIJK?y+t~1+mbYq}TWW4@US^UnnX7CmT{d|!+xMsT^}9cH z{U2Q#@-dFTD};{JQXun(N&F!weMVPnVnw5+CpRS~rnA%B8Exv*T8cE8e8lZaeN)Xx zll)xVe{x-xqTNp|F5o99&hBWDQkfQ(VgP%|027fYgBjX^4$o=#TJAX#|EMkV91R}@ zm}V?3xAe?-cD;n`KRRxG`rZFO$>V5N&PFlYyR~uXPy=UUHaVD&kREEeYVrA3_w#N% zt)yG=1;FCd_GQv@CVkl#pSKfnYx{MuH#y5Lym&1C^u^cp1auu;(J~^sqeU{YCy@2Q zC{bV;2}lCT04^aMpOuhvwR5iWv&F?WK^JLWanAMji7zC2gG-PE*CbywcqqMMvu zyko)&{?u=W6BvFY7Z@58gH8&F@8+QR1^ ze}cU3ZnIRmQ611~Me=EBr(GJw>299n@$8Umx#OF5biYH>BEGt(Z6bUjk(E2Ps2?yb zaA{UXUSeF6gtb1}1{b;b+SrQ@_(alBuKnrR?q|q(rnGw-wRtG3`)-xkjLRS-GeM#_ zyNsa0AM(fYcGRbe@0h&BDX+GEwN+NcEoO!YIq$Z_>$XhVC#IEvVif*u!NZ(A>Hk{N zzq&8Or3|>=~_i`q5FnmdoYkGHRUwV&V0eE-n+63y1CY>6qFsf# z+*PgkYspd!)wd9Sw{vTKL^U*mC-1)P=ABMB7O2MH7X047Bp-dE)2>ozIU zBi$9ZC!@_<)CkbH2$fiq=3#WDsI|I&89%=H9+i+~&QFb7N`Lok)~wsFQaAy zys#2wikKVMA{g#`dQ-W)43sFv2e>!$_@NWNd&J+L=^cZK>os8)JCA zdvMZ7naspYv=7eNez?bP`~*MDnZBR#chlR|kEH=T5fUAz3@AWyS4lpodsYpMLn{ii zWC%H+fjXcW{sT2QPRe#38>%&Sniz~_Qv7CH6V3;b>}J}&=<@gHT-vPh|Icif_&S<_ zsYQeVgeU=fiBLZ!)Q+)1KF_@SC4M}cc8?p;?WU*YN7pd8$n=P7<-a$Xx=Hybxji#f zqR^!$(^A*Fqz~()FJiW_h!k#KD;U*?)s>YM-Lv|SB(5@~E$~njOy-alj7o5GBtjuE zAU(P|4-!Mz0G^c092a>pA579Bm%l7}`o~NE^f#CLVjUKnwC)qf9@i;u|H+-2Y%|5G zLtUxXmcwh}VCt(a>E$u$+do{d`;A-Qpnmtg3%Qa)Nq{-jtsll@#u+-$(#WNmh`Yy2 z@bi-(5-j5vS46c2K!G4)C#&3a*Q%q$J30WNMZsDH%uqp&YH!(;Dlx0Ach&iNO;6yZ zI5}Z1I?f>dG}&jj|Fm4a&mH&n_`Gs_Y8{s}v<`$9LD>>~-cypVM)H;rkJH#6n={&^ z&u8k|qTZV*-xptkl8k{~%f$8ufI^;1)c`FO>4urveXe*{ikot@xsEpfeCHKzLoEpk zCxonG2q#vVDA~GaZIKnNK*x##N&)-7gs4=Rrns05%icb1dL)tY(fI--EoJU4zkKRQ zZ!^ApWBYGYPdLf=Y_!`q5Vfr%Wl7)d0d1+i)S)E}mei>!`A4--^JT90^uv#>miuz@ zxe=YvdqT9doWH57%?_g{MX(^J<_*TV`!YpWZZdBj4Nu#=e|1^>uU^Hcf9HvG{qzEX%4r^;5OxnJ;r;F02*QK!;4o^rRo5cA9 z;_oT#|2rLBtu@?E|6Z|$k7c*)h5ekE;uq<#A2ZX}i zyDq^kVTf2r!cC(hsQQIjwGD1QK?1vfc*@5H*L$M1WI7YclWU0XuQ&X-uUh}VoBg|g zb*|$!4gJ5@im41 zzjNq!i`8G}uUnh-a|1t`U#%<3#l5Me@epHaMdTz=Ddufz*ceUETS(Ty$0X#hsl43vz z$z)D-cdke1M395}U=>6HoH_Jtp(kTDwVl7$=v(9AW15mH%8;5$Gj1RY75I5tKiRZq zd-wm{VE;c>zT_hFuj^fYZrT3k8uWLQms`7Mr8!*v-b7ZTcq9(bgU8wae)7A2--0!N z{rmHuxAVVoW*| zBp5OQ}GbXh_jYVWUaNl zeOZyd-oPNU>{Dl)kpAxk{IO3P`IO?LLzFi{Av6$c0wiKJPSrMlHxK`~Y@^0*pt>}u0!i{{_9Wku6lsw zKHkIE`1`NE{r^kK-x~W$lxQr7=VnCT5Z)$Pig-$R>hnv|ufO=de7S|z8g|~S2hg}p zVo|FNi`-w27w?O-SMwseR?=;I{PCqJy^NEd!xi*Ph}HF*@mX}0W*}60t}UZTOgj=s zcdoh+K*@ptK=lr#y5f%Za8(VGuh#CSzfE7(DevFbEWfX4KWl5#)!nlh-k?*5%jKr6 z|1ZbQHBHwWqzUnqvP7n22x|LNZ_L~WU)$=ubXzNaZ0cXfjWWdI!wf1;$xuf5^X%z= z`RLab>Rr3Mz;b%t|=9TM;Y`30#JYfSUiYWLZD*PAAuN(Ri3UO z3lXupct_k4h*^bF0R3O4oZcTi{cOB?TO<49XfO1`Mn9F>U{3W@Q3Hu7`d#*B?mF$* zoc3|WuIz#P$TtkO0@k#ZqMNcNEFw#1cG+Kvb(Fv&sW_gm>J*#1%-=lol*^Z!{ir1l zcmM5+Hs4q)AtsS5q7eRA*Lj%_`Sm~1!Cky{;U#LWDcVnJ5rSfGe3^ifg%(;6z=%`h zR7(*$o%rOxhEW^4@oFM(Y<%8O<_TYhF|;#R&3ke3+f};^F_p_hyo%o#V>wy)jQMX*JM#D?CS{;NR{r(Z*;St_VF=!4wt65eZHx~+j1W_-|@41 zzK_CVXe=6ZIj#;o0Ji2OVi%UtwSQ6qn@HA5Vuct%%<8^#;S}J>%Q3k{;US;M{zhPb|AKUmy;MuDBq=6cCnDA=FHR$4PY>$P4kb z2{s{<-2JincYi+p`$NQEwA**L^n0D}@CwiHT+>DObmaREvA72ztL!2yARPc}V;O}t z_uQHmMAp%*%~lNOHjDckyC9xSgx{o9p@Y@jX4ye|XhS zFSLm(%o=`#J8?G(USNNMwUUR-AhZca91;L5z$|<*cm!4^gb*Ep*e3o$o*%UTIMH-G zu<4$>eN(P~`)2T`^PM+#zWL?09b1F8r9~x|N%D}g{e{lQ3ZB9twRD|vY4c{XvXQn*|KY^<|M&jgU*i3%Ubn~lAr?LS%5H;OH{@a(-Pf{6DI*my32aLFzJhT-EqGw# zw`oGG_QM#G2oy*Z07@gG<8I=cFeyo#@gAuU$LSyce8cp!o_0Fl=bew6XXB0Wx0f`N ztGS5}jhX@-b)*r8k5e^CD;lQ4(*0n=RhQkJPA@;j?%M;}K2G|YvVX|y>zSTE7JvH1 zb^gTNB{d?Au)A**9uhJ$3H2|blFNkiKuL1rqYt`J00Vi5gqU^P#43PUB$S^ljBR2o z&gqpsJ_X;c8TkF7&NtHiM!2t#@?3%C*YC{B2KoX8JnY5c==4j)q%hQt{rHo^rIGL?Ujv`{&fsI63&0~Jo7ZajpE z0i+&S14ujupe$m<0E)ym@ix8$CCN)ie4}^#I#c<}12K)a0T)xwuXD38A+6W3$blPru=*M<>(&!S(cdqbIEM=_lX$ldHaXITg4q z0|b1sB;gJD{d^K5o!$yBzEjFrkwhUnm?x1aS$L2n785HQ$=D_&K_uhDPz~(z#^bN< zaW)#)b)|k1-xT?c3)}avtKwMNzOJUP>*?n`1&IWTvS<_tnw7`&{ckgunzE>2HZHv# zem&2!pXbXD>`?6ag{;G$O(by!xQMo2SaOUN0nHnw62eQ|q3mhCuY3;$H-bIjD$)~=`Sbo{Ur818Her>e*|CL z8!v4`t>kP&CyCW8`nVWPqA;j8bezNs?q? zVyl9vVxuIo7MHjjyt;zS&>er0V2@#}CMy#c#y9bLiMW{>#MG7mPC&80ooVQ$8(nI0 z@@`iL{)jWnHmhDHT#EBs{PYKkC!r^!9A&a|xyu+I0-d+DpI#SO_mx^(+r9`F#Z8(~ zEjCxbmrYv;xs}pLK(KZa<<<~hFQlrDnqw@il}_7M7!Z;oL?;g%xIDgjk{LloVInt( zIGQ?%`Zkh^_cTkeAz1m4y-ilXo}eC0cnbo1}I)qQD>Pdl2i;t2O!Cc z3_@%ZV_6I2!%butlAxhoLaD{6pa@1c@&ZcmC)lAPjowHBBrL@LrR)Uuk3k_TJ#~7m zt7Z}#p^I4>p`mg&ggoDf$EyXc3Thun4PzxcAR#?Up>4Ecx*Mtu21KM$C@wB)7BJI? zdr6s4j1~ej#)-pCN?EQXwSi!vT-VhZWG2X7hDf!pI7$65IB0Ii>bWf@zZK5zKWZ&# z3lUJwnOGVZOQuqf`4Bh?2syWdz{`Q&iAq+yrAw+P* zIPbu=4fP_iI88#N>_%}A7oKX(OOj{?mrLa3Q*}v~+pVJ1ZRDhHdZbH+FbaSf{g~WK zHBg-uWhj}%CE1+vDuC)Gb$~@7qWZ+#9{)CXS=!Q0aK$MXv`KjUcg8m*x;g?F*j=aB zLI(>`icpFZM@2#Xu2{W45%=ekS*T0B1Rz6>+6zs||8!I#V)1C|6_!lItg9agVv-># z?aE;z0fIWP(UnlQ?YjO9K!^}NC57lg&qKRiXZ__i*-uZiWV6rN_8n+@$^th~YWg(cZCO(YNoyG%q=LbIfroh2HECUE^e-pp~AE;uX zt7&sf{JBl{4BoiL_kH;uGq0Dae{akE<8O?*B_pJlX#vEDZ?*k<&kdXb=wVxTckp?E z+F&NMQdY8~O?9@o<}Cpu&y|A6M!PlS>^cJ&GW?43h^3poLp3{O<7`taW%?5^KmZq=Jf5JwPupR{&V8P z=#gR9+O@b2aPvU#wSl_YVE@q7$dk={+ErTfyuQwTUtB(1Yfbuh7numJk|V85vB-5aY21&vaXBr(%3TGkj#`zN{ygMZ7hymkP_QIm zc#zyl_Kan*Wn{hHi;0vkb8C}2q%8<+G0Ahdwed}~>tAOM<6@65(ZvVNuWU1a0VHH57U|9R(6`;s^T!l;qGX@deSBP5B|=U0Ok2mq`DNjMrI}eAh>56vJ?a(a}>%9 z7_ZJeQl|7GEbwT*rd~rTKADOp9 z$*+Kv_L1CIB+>V#-n0QVKEp4G(DmK&-gz&)8ty~$9+)edcffn*tb=ZwWYRNS?>9NX zvj3S;uwD0C9e2x>^J?T=C;HPfB*=Vm|`f^u|!8PfYQ+b2!#+!JN+Nj z?&^3|(A4M^327G*KtO3khEVsuuG4*HHmJWL$9`idRok}D59XWknHcO_gYbd)g1iI- zrC~iTd3M+R)4NAvV5AH?iU=Y=BeG62&Er~MB_a*;^%)*~k++T3(yu<_QLl@AYkY1# z1PYq6b}h5k2qPkZ0oy9=YVS6e2mr&IlZXHyNTae*gCC!dhnN?vAt?2TZNsO!m*;#E zh9Q5{A|Ztaqy%g`5a_Bc1QK9oLTK!z`|RG~VA~JM$t~^^u!1Dh)8dQxE87x1&aZr< zdFkn8UUshjLUU|A&G{}U8`8KPKsyjXi#obuK%U)-XhfuO*%S~QWAvX-{oSL?1j5n| zMGysA0$lt_iSgpMibQ~hHP}_>W3M!gK}1Br#$@QF=K2)%{MJuSG64T|h$-WCMly%O zA(+?VbKvrgoHQT@JeY5zO(1l-;sWn?&qM@7q|wMi71NUA^IEtT)+Ck?|b^J>Gym9>QlxH0OuA6+h`R$RF za)=3#H~9<9fUsEcZ4p)-EbNuY| zJ`dGX=ek1J3@XO2!cWTFg%LT5=>!oFIX99N;F@kLZ%AV^%H_7cqpcM3;XOF^5(7lAB9fP@U70$#+UdSkWp!h_b@AA;KeBmxM% zjPw+NlNiL9mqqCe6AFt_hzLSZn%EE)lg%PbJ8w;^d@0wokuLXCoG5=IqD zVi-^iDgX!)a@6Fpw_#jNft*POK)p36j0V_%rKoHGR0ISVVgeCz!9_q03KDaZykbO1 zK`fyNA^{`f`u|`+~g@FJOh}laXR7C3CEQ_Q7kO-rtUT>=Ch+_&0q8L;l z7MTTzJx#R!-wFUG5eOn#&m7s<$ZAl)K+#eOOo#@VB%ufxHqPr~PS;`$1qP{nNbJwx z$mUwt55`aCyTdt!B7$Q^4~!L?41x6czFyv!%r`;bDl17&U<{ZrwAEBrRJavTRx$WX z@S=KXQamKWJjNqa!Ny>+Bi|<+7wACg3)~$r1u?FMPx!C@W{h1}>IzSUS!8%AXiC`U zJKP!|?Wn^9ZB)znuQ{OB+p2khb#dkuO>zX6e*#G zA|R75e1e)H3kh<}Z7ngWFanEcNQe@ZV=_iXSX9KAO6=|LrHC&iFa;-+43hH*?5Z}? zJcgtO4JDyG%Y}rU&zo|FkYXZdf=dP%v{nb7h}94y2}P%wLhfIg7IYCJW2}3y873kI z4a|8a8j)+wRI3L{A|jk;oB~?nlxiT72VY9#4`>( zG0Vw$ZM7T@aa0j%*kCG@~4s{{nH0E#hCYfJ7iX_hE5d#i!LhGr85%YuYZ$O(s( z0o$KPGY|m8JmwS=pvjPZo-`|(EGrr%5zd?uvFJ(Fa0YkC03?EgnAwD&c}CRQv7RN4Ofgji7|R4~ATdSt41&zolTi|UOVny8ibTr9s^mGv z$Dm4J3aF4BE$3fRDdSrK#iXjM{vm9SUos*r;VrYx+h8~AQAAXrTsWM4v{7a<4M1^n z!`V@Qs(NV-gELczbXS7P-RyVqWtv%O$0%PPf6Bbm}QbALNjrrsM7<% z+(c$f0Ck|iu>b*KaG8Qr1(nG4=oRW^0$T%)WVqR5mPccQw-`0VB1;jK1OUrQut99J z8QW+883oi(@2K`m>>}@gPev}KtJ+k=JhNZ}reNy^6wpeZm5FMs28w{T6s~pcm_rb< zBobR|j06}Nl97lCfG$SKHDFAN-pShiFI%dksEmM!fwkJ*MkqXt+Rd>spqinhI(b3O z#fyt7!9qv|OlBN4Ia8M%e>f%$e7HnWsd$Mh5CtQ<3@AusKw?SVlG;)dAbGTuv1@%B z{7{G=gPI+XjT*GW!EeXJlp7X=UlK)#+T)@eq-BCS z_r{T??CSIK59Oiev#!IR8Cg&9952Qv&CpWTVrm+72@0D;!Wad7{0p2!ct~|w$LCmNLN4jaSAk(g{X$I%Em4Mg0T-yrWZDFy;bTHIjuOvdBZ= z5Fj@ZZy9!h*9SvSps{3tEs${FBASO{BLHTs5+4lb!0HWHs%FV=^>z7S>{jD|j*JgZ zKs*}A5@(j8jmfCAgQsWEyhPW;$&1y}0HtaI6B0QlE*;m|7lEzhgDwAIh|%QWD{q(O zZn^EN0hP!o7|}*4gflD6L5+&Z@{JGrZ2Sn4fEY-m-U1uzlM7;+@-$(ZwKdBar4&tN zA%@GmENsND!Rs(CY9ura5_0AQ7?1)mGYN_Y7u44y0HlZ_3ur4LWn z4@_{$03;yBjFC`u)$heYHh zkFUzx=Ax`H0Sd}AMYfS+(PG~Uhd-g>XRdp4EKn9=OhPp%El@~S_*gU*&L|kj-zD3e z{G+M88k6ijYi{mu_Bp0^$M-`N!Ini}Bu@oV3K}iMqMFoXEQo?22Kn2wcGCcpzAleJ zRiab%@D6!L;EOd&RU&1rA;ZJNC};*BoDWT8_?Qf$HAFHX=DVTqoK|BHS!>Uic$V!U z35cb@#jL2MUy@6@P10JUsuQV}W36L4?yN~1=kCx}&c<{$BF(1T{M?Dg@i-MysN+&= zBG>$!iq+}<^wB$C6X>B^s@HP(VfA3jsjrA-}enm*D! zI-a>WHe=VMk4YDsBC=_*RI8=IbveG8Nd(7fe%_fK-Y!bY+JoA&@Ye+B0y*`5Mnn+7 zUO8tT3yDbSt?_o~E|^dhL5Tt&XBmzQUX&&)guuPU13@}haVv^p(S}!Q% zJM;PZo|t#cg>gx$2UPJEA=NA>`lyJMC};{`GYcV)v5ru(H6fu^W_S`9ZK{v>!nwOx zwuXW*R>^rv6cCba`9#dg_g`?-kKr{~{9Ce69fOD$aM8x~cbv#uq68qX%t}Yzs-cJg zijqq}M;M_wP*xW}dV9Qea>@6B0pwZFbn<=Kt^Z4w`@$S3grMH!ADiEn$5N?aM3|zj zfrf-EK!z+wbzAj4<78is4@mVfr*KAM(xW*%mI}{xSF+Ll?q0Yf8&cT(lQqAf>9J|k zfZ3+?<--dSXc`7zl|>PV$kZND;y{dEp7;Q#Ffd15hH!8-ZLz71DaJNolb>9=HSc1+ zE|c@#jM&hw>$+U2CgxbZr_nfhZ8NPSakZNsIK}5TS09UfwUN}~ZNotkx2Kr%<>T4U{NXk(UvK^u8wlt4^=&=R#qVq?X;gJf z$JuI^Gj3|CrNz(A+;wztJ49k^Q7+kKQso7*!VLnEreqi%4(l5O2|&mz#v+Jj&X76^ zF?}4?J4%c}g(9eUXCRl{$D&j=O+{_vx6R2vgB+sI%cRjp7sytVPn4I1PriE-)I&RR zXXKu3X$4JLR5d6QoBATIbLI?(JZdeE9vzSXG`HNa+eNPpMJw*Qoi5~zywQm2S?Vr(A2q4xg9f z=lnu!=!qEhdy7Rq+rp170-CI7?GaPVT2_xr25~L)MVwpSvIIerlxZpZ~#6Agah40|v9V;O9? zfjxg}#@~i#d`B$vwD-fLIIVw*?tb^yXW@6@ifO02{;M-I%Syi$G|h(o%d*oQi!Ss< zSiX}x?K{zS6h-StC_{hQp`V=ygEbfdH1XE z!Xs|qcH-N1LRF#gQb1a;(|(h!p9R@$_i~cO?|QsSppiZ;_xwoeJ}t79&InIO zPIBh1!UR%d!@rYuf>^RkxR?>$d_i{BYp&x$91|eZZyaqYfO-9D)FGQf5nkrj|sA! zhU2*w-0!FIwSKq1=iBYRioL>Ko4p5TZL&|@?=|~9$bR!% zyp;Xt{s%qV`>>B@J@29PKukd0WGk`Wl?W7Xx`V96W!Z&u2!xUt=EyjQmn}@4>Ia%6 zlT#)UN*Bs7OPR<0YwZd5%^!=%H<{vlIYfy=r!41QS_5T08#fo#H*QO&7l^BGytx2x zneN+3eML!wzHOROxcRL;#fElHSgYxWTH#f@>3^cN8fN&J%}-kThimIcPX75%siHN= zCTGUAWv0dB)aW2mm5>_G7s^Gbj7XqRQVJwhZSp{`p0UU<)+IlN_rkIB4mj0PE#+BX zp0ObSOu5<~^L={GJgx5)bZMV)lbMb^&kuLXDm>VFI>L1=*B!*6 zGQ;X37Y%aMsr&8q3waQik21#wZh+l~emU-2?6kGq4sox!mpgIC38zl;PLP(__~PAb91}w1yJt1shB|U8+-Rki)z6i6 z*(bB|ZSMU0D^trvGtffAt++GK*l%JYVs;XN^oVr?HnDAQS}aPjqUUc9;gmmafLhZ^XHI(mYeLA|r4Bp2s5?n7oU z=mN>thk^k{+U2BkuUm1;i?5-p@87|&(tb5NI@vt=3h`7!3N9pVE%`SLLY=)br z4G!3Bk$HbKI{#&6$>zSE{@kTbI4$3!f_cfu%=vveXJiiL*jM+x;GNU*xWio(rT+!& zz0Ie;HXAH8%7MXElZ|>%%Z)9!FLLvgt4)13Epiwd<@$*ARkwB<+8B7mH{izm##kk` zRwtXy&LlMNO)EczVCGTG3x=~(%(Uz1IKes_5O#Py7MnvjFu8t4-g)Bb&!M~Snr-ZOCGUKNU)Epy zz{-10c!@Fnu0Ggu+g%dp-#Ch)yz5C5>h>ELrG55nK56o!_G<0?K;OsaLUx?No_EN! zuHP_<-gmG9r0ecG!#`o4L&R~J_PpeZ7tV9YvcrwL=`44Q@xs2srfZF~NhlpAVe{lZ z=bPZhrLNj};XPru2RgyH8+T>yFgtHDMx}Dkk|&loT#@=8`*Zlh~` z!!Baeyg!FQr#ocqA)dYsU8ajq-Ql2lli7Ki+A3RiU46j;SKs_cvRRn2^9<)l7JrCY z6aWAT;W3~{Mq_$);3qFT6ZRM;aU1K!dZ`ChkHl0T=_@w}-wc+tr+U7P4{v&IUa1)! z9s~gy=?G^-RB8x71gIBrY_VM-Av^dsU5+d0lsp$D5(4+0WaZ0i#qXZ{&~E7WFCA~b zW_fxzrBQK=la*AC)i=jn-LcGIv;MZgFA3`a}Az1=Jnm{#gjL~ z)iq^aP(uLzy!3nA^u0}R(QHq4{eM$4E%gNdQ5)FgdPuLde#p?czQk?*Yd$o{!!Lt+ zV+K~A%qB@df2ct1njTUjHaXZczJLe(ZAId@-2a@n+>mf#HI)qb_F&Mcjizxw#%X#X&-H$#qd!S0phD5gtgeGK^^%i=LL zK6TwY(~Ijfw6<)LJ?Tyhk*!j2=|%Pyokq$7KR07MM_%M=6JPg2y9#eE5^@3is?ZAE zim_zTv$uLqFfR&1$)_iolT7HSb*R0l@&s8v*_v*+|G^tH!AxVwfnJ9X@i*e*Tt{mj-a=$0!KAG+C4q*|d z$Amt75C|ehAhIA3G6Nb>3<$?BW;Ft#`XUtONr*rK#72k&5W;{;V#q|Gl*HHPVf%bi zn1oX0qLQ2eChqiAZ&;?O^E@x&)aPy5I$FX~Q&3NcTA=9G_LaEg)Cnyj-Xj(*ZWbJj zy1PrH_ec9~x)6!Y1+{c115_*%1vF5>+WbUOOD;9f)Rsw_^+V1o`5CvIFxz3Z_wK(q zE7sIcm5-D{my%x)cX9Qpxxct_2CQXv;0YQpN^Z2&5;;l~r*x}yM+>1aUJNAh4pNr!y2aD$ zMAG%u(J>Vb*HMyGvKnw6tEhQE0}=|eiXCOgS(+a=RLeMdt%6`ZY+kEeDnFa_b4h}s zZ>V1y2_sN9turHVx53e7Ls1GjJfwV8FOh{ml9*H>gA>~2IQfDjm_p5ZmL7yY$B9AgjFV?liA zCW0&vX&&78^!IF2LcP@UlcXAuVoEX}42Ud14WQdriXkEdNrYtk3H>n6{@rV6X{mS) zg2gUKSV~Y!&ZX}5G>OH-PTHEe+~ds5^n?O)kmo9Wpr|xri%(i<%o#4Yj=#v&ub6I+ zTYTgqFXps`9cmZN6Cj_?CbvgA3bK1s`^{25SM#Ts>b=;5k zV1Cw$^L45T6Qr11DY)1zwU6htzelTAoAFREep7Cn@#yA|5K|-gYpCLv+Qd(ghU*Bm zWZnxe*`|8`jFavbCcf6y>e)x24fIsGZF@>Jtv$=M+%sdJ-xns5l8aA+d&%Xk-xcC> ze&P7;*WNnSgqwa99?lKty=%G-G0+!|gupIf47O~xPmQCkD46F_SQLN?kk*+?kUTtV zs3TUNZl7TX-ZKsh*Q8OdJ3THnRObyrqbEKqYbCrRVF|%Cck8MwEz8Fr3=q^aF%Am| zxLrQe#byIHL^NVeD3~xJ8|YR~@fey(WKsH|oLX*dBvsh?aLxKM!L$ z4Eb{VhI76&GyB$2L<6)KVw!HToo|Eh!wFOTaD*ydiWH0teW_7gxnn8Kgv96z2zexK zedoMr5xwi^C{k_Cl7^vY(2z_rMHwSlG)FCT36J%-Q3tfNNr&s!Jnz`sSD z$80x4NCnc5MEmWBI@1;`7?P_wTiTebByVe{!o=%v*;-a8%Q?<|OS;0Gu+?JQ)2_KQ z-VTT-CR*?ta?RRZCb;`LuZ&)OJ@bJp61AJ1my^)I-cVh>6`P&1iK%}qx@_Rinv|fZ z4?W*(@KgXnVZz6ZLiqvhj|3qR5GEvHh!}h_;#iVLQ*9MO0HS(2l@p*y?GeuJ1%&)9 zvH>(xy9`xA$j6Yp;yb1hpV@Ed*@YQUXBk{8_1`B^PF|T>sUq*wqyc7HGa5#y{O7so z7Jjb>daM>&=jeGpQ40$OHHQ4jj15(b^h>$tWH3**6i=RcM%ewMJelZ&x#a=p5}$ru z>x5RLI$6^hp0z|UEpx3*z%sXh{W|`;G#@U;uFUD}@oITl?%a49RFAD_6yhc&bg#WM zVswK|zaZDy+RtE*xsKTWqq6b5Ueb|t+(6?j#~pUP@yz)bKjY_PYsc^Sqmj~#6E2)= zPC47VCrowzAvA>fh|KBV3sh<8_V&QQF&Y(qDZGtg*Xq7I%swggn}cytQpzZGNl7xB z7c-4J?jX=a@$t)dS;k!SxX~v#u~@yO%Uol;XqK}!U3lHij_N|mxa5a!PF^t06&Q*# z5;Gc#d7Pwn*l}GKuU>zKu%L}%4Pu_Tif3N^>X8Q6X_3k_O$S`J+w%ve6nCC~l}*Rp z=g>jkGTkDOH6b@#S`4dnIDflT>w1zJAc?`!foAfJ?p%}3$}F3c%1f@jdN0!t1o^>d?MywRXvZ_x@VK~^)eAK##F0>=hZ$Ma~3nvix7!0qk6DcjCkl3 zD^=F$o&^hNB&S&SEN*Dse5QjBHo#mTFqs6;o9QdD=ZNgF)I5~e^*!1BC+@sQkx@Of z25&v6>%di#uH~lF40_Fz=DHJ(@$a3%ukdG0%8QrlS)ZgT6<@1N4H?IUaQBgJU1;4S zE*R|Kp$y~(LZA29ecYWi)QuZ-U7d(CDCdIOQ~Y4p+AYKL2MZ{<0_J%gx{Y+vW0&0W zwz2lx;i#m^c$tJ+_cUgibw@O(r?bV>TH{6VLKFnS$A~H*Ag~ASQqLFxl?*D-!$1FX z>s=mPL}FuOYHdLzFw$IyJw!kdY7U1w#3k8~7yuz9fs$}zr2hR~k@2E6a^7;rROD0l z>&D)HYi*hW&6T!x^~-sOePw^n;^l>Ix%ElcZSr>I?g|$1Mbe(OALX|Y!j?9&E$*m>#+@_ zug?)%6JEB@ywLLPxL*4lV6nZ{@8^~Q_|EI!F(j=`XuD>v6q$|tPrE}pU@-v%wJC-ota!uwVySHY5rp$B)e56kZBf*k-Zklj=KTKN zB_53!@oC8Em!I-yLUnRwW+s@opQV=@Va?QW(5aK-tZRTS>jxWrd|-r?_OI?SfL&&x zQx-d`uf>k5R+r02qZW`^8xpakQ-2HxFLw7)cP-dYc8$kK$k}(sY*LfqCpd2b(`7z! zXv0odrI*F*KkcMI^W-&`xvb1H31Y&ZT3ZPGIq!#`bv-Q zdoH8|w0YC1Oh_z`3GD+LFs6$+vHRsDQF_%qDA#6tu=a9^MHyWAzx?ZIn`3)EDG)Lm zlypyb>S73p8vw$RLA;8E8j=8#NH5tCH}iQIyy8;%836H8BxW4Rf7qZy!nis}B-U!@ z5yxhb#V^#O#VLIzmXa3uYbx1(;f|=rhIEsA4$yE#__`tPpcwt!Rd$buZg?$*!q^tc z;KV!+Dy@3lY<|!;rmKUY*~)OEs3sG98<^vCw=j*e>my-(*BHMciSj_)>o7)%o18ZS zp&lQ~4YM78j3A%7uUq2QSefQ%!MUINO2E(v*$#Z&CfE~Z#!+3~1{?e(6}>zqN>?wa zA~^9FgP*@fcN@k%?UIH2snwx26+ z4xbn#`6q?#6@CG?)5_;dX188?{DoTA#C5kbu=hkYbR8_DY%Ld_+x?jloMyTp+1g-` zB0hGg6Ma?u)$bFbd_-pGvT>-?3cBEw%nmrB&bN%F5c(~K-fg0VhJJ3yt2fxQPc^7# zX)*&YC`_QGyCtA5z=rI5hw^NMt5}|J-YbxX2Dmm_EFZ@GXZvnw>LE#H8Nqwq;5d@am~Cdt5R;4T1CnH4TQzqEF8wJ`J`xlacLTgwwpbINtw z3Ccc!nV%a#j%#i{wO&i69_5Bg5f>V&Xg+`{F;LeGfsK*|OVgVn79LcI&zho}JodbM zVpC)n6qjS3M}xw7$)`(pnOTqNx9GllmR4fY=-~YjiePr5OMfhmrT1$5Ve*H zGu9mAZ8BN99TWgi+to;RfbycuL*yo?kSLi}z-0W};FLKKxLC{p4@s6%s2MZ7Du*rp*c||(l}Es1wnG{9|L*6y zIuJm+HiUM-4%%o1(Zah$#2yx6C<84Fq7~{N%0SGhvjesGI)j)I_~1U2pXl&6_AY$F zFXm34R_(LD(~Q^o3PN^9j|?khW5BAbwR`jr^sqAmRv=_yaCi_y7)1N!AR<~p+X`8s zZy3?)QA-FJs1ndZN@%4(#G}?}zzjTUD{Cu6JPK=%!mSVkwpG`^cSaz1Ur#&Z{jmZV z%m|^47|aL+@XvY$2Mo^`l3}CWWBcCr@E*hOZu@|3_x?R!LBI}V^ssQ#eXO|m+I4T# zJ~qff4C7w4&W}N8Jim2F^2n@PN3(R>*&D>ipq8@%gcOQHM;hYOMZ$RcoDXU?7RilB zf9cm@6Kvw=+o6OopshV$fDrS5_@P)>jELB$OD_$tF^HIrh!BSR1Cmf-b|qTJIKYJf zlED6mWrPwtQAN2xkVsJyKtIqAML(vVOoe;4kNZTNH_PvTkIa2;(}RimljGP$rV8?i zJ!3W?&;}PxrAy@{pOptDz1#pseFPk+K<$w4E9d9j^amjWz5D;rZ|-Xd{hEKwvwsD5 zni0C7c;?sZ-r>6EU3YMgu6N?G2F0j0QXeNBk(r(sK_;^D$m~#z-gwZy13o6TdR2pD zO`P?^M^lH@%le#))SgO6!XYb(n*%o$+HC&vZ=c@k;uMP1pHftzybA&);-C^*GbS*W z!1@&Q5pZyNy(G@8h(-pE0(H;S``z99>YZ`$cN+-crq1vnKDB2V%m@wn*LHn>EGr{q zUl4pT`wtnO@e1xV*cH!1XCZ`W`$&ZtFr-vkh=s>TqJ5LMQ5-!c6)74gYkm31)_7*6 zym2?gz&;m2Nxb|gXwA|m*R$0VwrW(EG`u@#mW(qfOdJ%{psqpquGIKG(v8Nu!EuIufQ za+JgdZ0O_c4FMIS`jo^Fsyy7I^5LhUl*zyes_C6t-TMpyZbm`I1Z`p>N#NhjM@Ww-&bANE1$7IC-2>?=}%-R3~R5aDm^nQmv*!#YESVJ;4 zeeUi~gWIE3SNjSM?%!j`eGRGY`ulK}RX61Q$awbm@wB>L3k)d(^?`Bg(KXfCD+J3K zCT|~k-$o<3A^Vur$Jq`EP3|o`d!u=2ghO9yGUk|idS6U1Hk8)Sjy#$R;D4TP)KKbf z<2eX@M2>UxoVOIlmd>+qBFvnaI@Mh7cSzf@0!(NK)c{c43-^A9vB#Yb31svSgf?~V z>+XhQT}CK)Uv)h)w!gc;oet^x2Ox$VjL$wJqsQ>BxByZ$QBxn+r5f8z>KSw7M32nC z00$R9lHtdo!Z+8FL45XHUyAW%qwhHtuOfd~rQYGNW%HlgcS#O@^#;gPn3%dc4FURy zN>M~30~%yNLGex`8T3x$Baq8aKo9_IjLZOHa${_nKLSRE56KAhcp|ZCX>fR5|Jpz( zV@O6uFc^Ajce(uq!M;3u)LNnK>jGVIG%6tw_HiRclw=S9kQlwWX`8 z!3km_R1raV6jU}j*uxG55HV;60%&1y)65sU2O@?tf_5mQ_Ql+3=!ry;xv9_FwS$)3 zJHy^ImUqX1)lKZ7l>b9`?X;2pB{~eR!TxP)iCayRBGXorBZIb;*f)R5w)L^L2~(z7 zAYh|yg}UNNlY+t!g;-bs9u>jHKrk3Uv=9Rr3ZQ+#CUeN{IzMU**nw_e{1z1%`*w0) zV5T7s^L253X)8m^^idbjvbOibobVWPihu3ynfxZT3{lo%z^V;(#dAZE37DH%9)(2( z*@(7n2Rom_b3t?vnrI_ppsSV1vb%v@vU^viINLt4m+61g;XxoJVhoHViCr}lrx~b*GP|?)z1SWPcfVCKU9$j-+$<#y;;89e$pw2TSh_)RF*cM*!5JU{vR?zM` zm+1+h)uY=NztIIv=8WA2hn9tJLu0HY2AZjD+o$y8ezW3m;e>B@QOTrjL(99mYoiYS zCgTI0m0Ol=2QUx_3i7TV;?V_xGwcxBp~Jd5sHYu3JAfJ8z^varWkRZlcbJKBnaQ4h z=V3$EhM27VYX0x5xq#zi>!fap`O>2bNm_)-+rqj~@Y#39v+wF?HBf2+kHSWRXxp}p zxP3;Tu15e7$h&%;Ru_i2x6kMu!n!y{*E&DK8s6=T)bh|!*Od5Ae{iSs$P#W)9{TUU zc7S8NmTs85DRFWyA_#0E59` zUBC_n(Y_!k$U2wHwlXY4+p@dH8Ka#@RoCqclYUDoo15}~J?R+3EqEym-q}`D+Pw)! z{{O9qzxTWPs2919GSa&=Gf9ZN5d%T|d;^^yTNw}$v#_C7t5bV0j6~a`2gD zW2_KM5erKZF&CpH`54A1R^^8g(ZLHDyA!jvGvU2 z`Ti0|Vc!wqtL7C5*&;_oB#i{?N zyk|nhs~riBx7^Acy7zDW9v2U-fT(K0Dv`VmI)cRH!zQw4_Pu!Kn240bVOH+ud4nvg zbPQGt_KRJ~k;JU610|KC22qQl17Z+8S0pQmWRAkBENW|@C@d%%cIiCc-K-ILu{^*; zK#%R+Ycv8SUb7T6>^J4J!5_8!-qo6m;e?Omwb)JAs#0VB39z@qF9~CRl z8<8i&z%09JFt9mTg`nnOPpMWTVY}oW37p|Wb`gnz!J|Q0R)sTnbj-}D)iN~*0th}z zn$7Ogaxf9h1js2a9=f%IvB;S6L51aGj>bV*_nJvtL=de3xns()d{kwgbr2#BDvrqL z&OsQcai7xC;MQ5QeSagKCv+V_mf>T3iLpgT^|53vLUPLfD6RD=fuux42sf8+$@TxedmM zDv)W?L=Q5y!iqjPth2op^u>FUNxW~kADHKisl>?Ov2>->HVXXSi~99D2FtPo0otjM z@Ir~aBFN}REo)# zOCpz~x|9>@&B<#nd9>(qOI{RykEq$Zgu?jY5;KSTxT+HtGCsd@YR69yc_G)Nt75>6 ziQ;&BM`U83+^SeCQaPy7LB!0=P6Q=Bsh;I~enmNg@6{rC;Rk-%Vv+4r7ah%=_-O26 zmj&yYRB>0l+-rc&SId?}f*5&-BuV*1F^R51SR2y1P-<0wT#+s1f_o_gS-C`&U%eLu za8FU1lprx^(IHy`ceXxRT`(gGI7C|Ja1XQPEpI!#q*NSgb#tRfqz!@qh_p$Vb_WpY(-2@f4qPyEO!!wS+SGzl>$oL|=M?eyt-22!ueeKY}RmZX`<$Z{Iv=i4 z;4J#pcj69^?A4PZ_i*}nvU-`NkK#UMyYm=6c)`G-ANUbpS$T2IRbqKn01bWr@t{NA z)sf2bAi5-7tY@Atx^@IxA4F4fw<>X9@zID7o-5J?abN}Ly08pc=Hz+myhnJ?f*pyP zZFc!{3j9e_8 zSZv`SN$s$bq0e0A18Gy%-uR4n<%2{qwyt`SNA;T(Ly5GFpn5(#b^eO=?;oq@r~Yye zBXL0@=SUEf;lw>#rXxyey`n%)5Z&G^fHp)6|4*Zl)t0%daL?YiH)L!rn8SEqe=i}%6+JD+mB-86-OgDt5~7sQC@kQ&hvdF zNQ91l6~nA+zJoiDi6M?DI67xp#Zj5%)fJ_i|7H^G@<=%3xzP#kUv3+-Tm;&NeSm@`w)DGE!Mx;W*{xxfsdC zQ0yR#hB4d0tWFA~Yep)8Fu-xPE{P3@)eMMi{d9k3*&o+%DlfVv!4VmRu|XHz?+$+t zS+eR|i0&+sq(l|v4DDA1-tp4;7e7d*9xb>;bxHLvHKKa&5{S&n!2!?vpUx&RN(8s; zEqdYW>-J`V4FE8NX4W!DM*|^E7m}7F;jafdvig!g1Mvxv*}sh0{fIjlS`Zs^4dNc{ z^>0_@*N+}qb?+bi--w@|6#FWk>i$&w=aVgE60k^80k87cd?;;gr}GXhai}_f3v?j` zTMjr3XuY4b6;CgBIryq)wxg{P|!YJl8XqOMA7QJLh!VW1ToFkpc zC%@yLc7-ou2Z;o$%#_mm`roV~UVNA~~VqhsEN%`1jg z)r+jcs^Zt%@5Aj=U;66uB%!JXpcql#q0iVV$(G-zTiz9^v@QTi9!Lv9Si0^T{bQk^ zx4k=1OQGRG%DN^q8hqulF@I2TBM+7wy3IR`_;$*cU&Or-*#tXiFrDt@og?@>NOv*O ze_>jZb220djMPbE-02j@JiN?BGu~qup7}=Q{UFU?^ zpsO)vY?>n=h@yZp-tmLv`s}UeOC3oZI$Y!KgW_}NM1e)x;|K=r$N9b+FQhTSSB3~@ z4qCAj&#AHuHX;uGys*T`CzK+JvPU^fS<`);2J++b8Qocahg)|+u%C=vsa`e8Ajqzm z6;*w(9Im8p7<+J%LLqeDVrOav^Mz3}x;j#w=e}ZalSo;^t0@(yzHj(;fT=L=i$y#$ z5kQ0x5D~Mp6%Vj5JdVg?1W}&~cLPq+l`+j!hd-q!xicZ`{ikpxyP3L*sSHlpq&n}( zB4!|>3jD6q!xPuK2#xDVumOQ@TE?QO<&%XbC+SNTz2;-g7}SbYvBuk1BP{N8FVMv# zBm^qVkW#DHejPfb0H%;*GO|BGgX?tGXj=X-E$gqQ%x>S03`YhFShY3-kgNVOQkis+ zq{V4d#MHIr8r_UHO740ZaVxlYI(v;Qr7V?RyGsQme=fJ951+%;B-(|Lnf$7z@PFP| zI;nu0I`|l0DL?)A?z^SFJf4>lVvBQ1-)?~*;p#rH<7>tqJE$#-Dm0KEnzNw9NwO4D z@}y{TPlkonTT?VSLWGboT9h&eAr-0r9GW8`C}DJ_ecAk3$7t>x8u50#Qf2mE9YtAm zwhvXQ!>DTb$UYOC*C_im7T%AIX9IWm5AvQo^c{Inb;L%R|#QjVQ+OM8HpV>mIbb{S%|#E-)eiBH2_PH*Qxoy??^ zCQ4Hg?S`8>hBrWOO>G(XX}gH*x=f(F5RU#@Mb3nqr5&y^HoiGokUsYsp_8UEO~M;F zuwi8Kn9>}sjj*wr6dlf+P*ae;FQrgjhX4KMD??dB%Vr|nsztn2O z{E4(haN_K%kJq-d^&tDxTe@fdavHka;hgqM>ixsz)BQ`uKl}9lI)QE~)l$P+?Cq)D zZF(FovxN1#6I@5*r;J}`>d;orYsC_ia?QAKsg!HK+|6ZZfBbr#eci$TKX2RL|9Xtr zlvRj;JiQb^>Q&((a8p+wUY1{a#-HSb$pB+;zNpn}buW2KJu3_d3%PEEalW1jO zy|K;rhnpA>cbF&9OwUPw9Vh$inqYS0?!vlZ8V&5{xqCaqt=R3;+mR+~we58OL~{py z=<%mW`aREJTxFk26bEc4J7dz%li#SjOA#xl*5i!Zej*-CX7ZXYk~gh&_gY{FvcHG` zn_m;3+iWMFqBTEr(dk&?)zLJSIMldD9p{)0*K8wLbSm;>ly#b4=}GMz-=u$EL>iNn zEEh}j@Q0KpMJH|Gm5Q0$Xetz!*DHbLrHTM#0f>lzEMVe-?W;Fj>P*)`%|3A2xlM`f zUtbl+lDnnyejTr{j`yWJT`1qPpZMbs6A$B-Uhlk*q)#^EP19VbAzFE~Wm1~?IO)KK z?Rt(`Mw!!?roL)HM*8$j$~fW0mKLtFIprnAp`F^yL+xfd#+Rv_InAH8Sybn~PYFNG z=}v0*=*g*gZ_BY#*iYB5o4J2)=b2bD-JACGX^!XC=!1Aw%BGgzVEt+Ori0xcVxi{S z3%_lGsc3EUneE@Lo2=l~e+7li7G5gER*mx+v;Ic5){XAb`k#^3*7U^bKj*m53T zaXs~N3%OiRHRY4spVwNg*pRPRn5lD{_G9~Lnm)I76O5bB^u)FU)jB5opoyBV_U)F& zxG?p4kET9*+VaxgEMCs*eP)M!-ROOJU+ANp;Y*+7_sw@7k7wupO?+geg?m-=*)|Zh zn$k#Yc+*6NwuH8&aS0FWi%t&DZN zm6Jrfu|JHqxlQz?H{+s9?sGLE`XSTE-G1>br94BP^b$45&rTAEktsajeYmM8E5^KH zod{~MDMAzZe|^hwvpr~B%~M~WsiZuu^f}vH>|ss4_BCD4QZ`SpZTk7zB)g)nR$Z_9 zWLNiEP|-R41~9sL8wBWA0J1z2qAub3FJ`)Rc}xG`OB&Bvhxmb{*i_cn6`pAyt={d%<-8%n3D5UsZbKHjseN0b^rctK;b``uTFW{0HqRou1J62T6eKQ~zEmpy7ZFyB^aTGx zt{dQ6vB7Kb+6?(|Ic1rz#p~kId*-m0XYRZByvc{@RD1`%DfhiCeh6dzcoaSw9}xfj z_)6q&na|BQ@0~Z`ZSWnLMvwk@d;vD87UX^j*uG#ayM6e{-CbwPrOC(Zw9mceHg9>` zedG5tW^i~8SA$l6(cY)&Kdppwbl7r%i7ET5^lE;Ylhpj`=o}L~OGljb5v{*P8?Og&z;Qlb zSH1Q*sNL*7Z{iP6_m=X|9{fSax3=J7^yrPdqKa3MmR*swEX(BOPw&m^k zp4R&MSn8{_{xZh<(jLfP-zK}|5-(1dq&R&#-mQ<{`nfx#Z+7UNxl3U;@4(dwK)kr? zS5Uo%yUnI;zWyRuvc)P_gE!M`@)%eR(Gr8;R9s4!nVS0o2u_t^o>n6HDGF9w2^s4o zBzAQg&JHJAeykh4F`lz|p(#zjgv!t~%%r5V+-kmEttaj(x!CJ-n$LEF=a-JpTH>pZ zIU_o=gBvRLWH_QRdQbx~LS9G{(FRaCCCF zqp1^IPnJ#MU%B4+w7-{z*7sa(=HDQU#mQ*WN)L{FA zCoSJ}dN~>sTPxI+6ExRvJ!Oiu^E@Hhx@~A2t8Mr3=MsgoHK|fpnXvKBGWuXbKUaHR z{*u4AWU7G%!PE{?iWyQWpNtYEgd|Cv5qEa~kls|9nMz7k5XG=G0fC5pPgbAsiW54| zwt?u=mu9!`2Vp@1L9_yU5~w+(K+EK=D6XU5r49_-+-xi`=WdAP9X@c>Y--egkbmxAu*7Uxe z8937zQx8uqf6U!&XL$a3+R|@+{Ho^tr?yPg~WP*_pPoW3c?>$MAg|`_xbDs3qXM?jD(0=Q_*(Bd4yIvpo(?v`$ z_PEK1G`VEX6=OBu-sbomPw+*EWkLjr;4Kmk^CA9S`d_%rwV19&6WHaP`1icNKUL#P zH6D+(ete{iyK(KaAG-&+!jC%P-_+zaTDR0mN>86`zP2SGr96y?_t?Ey)5CGyw_p|C z!Or%m4T?P4I$mb->s&0i(|x(lalll6eJ(MaOT2uG&)H7K2JG%U8n7AE+geT-LBdqp zNNVQbW)9C;3u|Bk#DbKELAMa?xAc9T zYrmh;{05&ES1fXUE_qK^%WrJ5xj%q5_ymupcyiYmlE%2`eo^a3koIoowl34`w`OTu z{09GRjMp|#)k@n~dV8GANuNIb_!Uig#of#^TY8qVn&){v5L24BziP?6FJB-wJz3;Y zov5%ZNA+6q z$DFv;gyWbq2kRE_>Sm237XYQQf(THi43L0e5hjC-CfC9lE&z}+{z4u;%ZXYF zZ@}AQ1wXfW2fPYSzZCH5ymdY$?}d-ZYCntOJF(11fd>2JocgIPWeiFV_uu}zXaa|4M{LEv@b$qq>9uvG>gy5q)2dki<2x!I;oj*!Q8bfKh!FG z&OU{Nd0+QISRw&(o&9Bhz~^;_zdO{Kg#1csq7QjQM<4ynjJJDn5{?3N4>>eM*U$5>YL2`y-GydH;nTEc>w=YQO| zMZ3V9vlE#ab6hN~m8R?n{ZtJur7h6W!raX(@)z3x952IVxmc?9Ki1^G_LKizn{Uv1 zFZL-@@!9-p@m9Q`*UfCQ$tlx;=}^;wJbG`=TvV}^*DvLgKJ5lHj0MzITClw~?E;$8 zWF#^tL$rjCx9Dr2_V9wtygJ3$z~TqcQ&&g)cPE%likn&N7W4_k}!KIMROoo>s&UW(~KNwo0c zI(GizLwcvt4L09+w%u! z#9$%@uLe>CoQod9+vXPnKaQAUFW8KQG-7%+v`!v?;-&uNZe$%--JL6+({KX#7XSoz+N{vg;`+DylMuyy!m}C|cxfxS$cOMIE z^He`e_~bAe@^0OH(0Z>0r36E0D7M6wYrTxKn;q}(A1B)M>G*Z2gegw-LiN;7_3)z3 zNv&pEZ?41L_weAcX!jKTgA8R9=u*lU8{X$9m)@nhDSg~zm!_2ajM?TsL((m;wp{=9 z3HAF!VT4jLSQEVv48(HQgyVeD*}wR$ zJy3ByG^>)=MpUJMdRuXJ$mAp=k zG4T)k0{{O^M{Kav^nY;KtyVuRJ(991VlUuV)$gj6AE|hAG28eD@2BLYka&9<_FUf| z9O2szeltBw9R>4K92OsbP~$}^;$yD#`gzvfY3|dQQs$s!WHqQoeb>jgnp@ngb>1&I zoibH7?WU@tfFz+JLhvKi++=`>8I`jUmZi8EKD;B_Zex;uBsMZ*4fszj-85Wl54x}$36{KJF{^oo$h5Wa5A`b#a=^y&ib=Ur+VKS5~IIV35Wu1u!JJ`gE2pa4^M7h zhM$W(nB)tL4<%DCKN{}*HRv`Jjq{6%#s(hZL-1btk-YDyVX&Z7!_1|p7o^=Et3Mo5 z1?O0ORc}*Q&_{UpA$ZB|V8fj5lE$Nby=fgZq&`4>DDQMEyg%NPL`_!0*M%~cG5NHp zCigRBgx2W=K7uyizuFgO#(HOV&pQ?M~RmfliJK{;tnO$x5(<+DyEext?mnq}7?&^}lC z!joP+uH)iDy)3$YnBB+pi;TO;F1s$rDlZR{NoDH&$8Cy>pY5yPd_l24`2a-3Fxs6B z4^YnMEtAQh8SsZ1r+)fLi}Ywfl$+M_yj(5VNOK4Oxa56`=a7%|Z6OEVnx%h(IlgKq zD@`=bc+d4xbxh?;xq4Z!5B-{Je%wWxYkr>4N6IxtF10JJCIvh#bC_ve_;85*RN!J? z#w0p5W0r5~jsKv@9upqn-;CrhjZV9$KhK<_-IVFO5M{B*Zq^WlBo%>FRsJYoT!K1OW)F8Zg@Ye#;)%=P=s3Q6 zhSlISRvp^})lLFi?A+t6O$klyWg7jID|Bovpj^p;+3t5=dalwv>2?CN+}r&j7tHeN z{qe!hRpK-Yu7Cdkv6V{9GaSadaPOG1G4lp6c6zT&tp%oMCKpCm)6JdZoRd zWD8xCZ>o2CbJPIH_;C0k0Ej>v;v2EY+vN-Mt@+Tr2R;Oui7AT4dT{hD2_K2giVw*z z;I)_`PqmlDe`UTc^i4T|r~yC~{dXn0wB6qB+qjkYImf5Vlxs3Fqr*bq9rLF!mu2ie zJd2--0L9FLwt3Bco9cdUc>f^x59_S2f4@F%WPeE7jUFuVRJg_!Gb7R{Z?ryG4{cZS zK0EAk-hG~Y`gEKLO&_$XuMJ+Di9;lJdA>iy0~uascyIBeQboQE$P|X<+fxs$w28UF6LoRj6U=s9xy)PbK2nA{>sQBhj+$c0Q;)l+i#B4d zhJ(vY`RbfB@(jyCILPtnFwDpQ4^Gad25U(LS8uvAMKfUlSi1 z`|+ZGTG#zwF83@aU+8~JcZqB#`u8uF6E;Y+Lwx)4OaQc>y*A62Ex%===C9->FJht`u-upJkvV1(A^PbQwrFiNl*xS?S zc1r28;oqE(@qENz1(u>Kkwf zBz!sE4_^{L!p|Yc^bovo_{HSn=@YSY2kr6+@Z_mp($8eTm*8p9v(l_wFrbwY2&&Rz#{My~_L}4;WiC&K-AF{*q1lAfa&d0TV0+v{GmI>Z; zQH^PXtC|GUEcsX>_|^=9tJShQJPv;dm1;#YV0-%Smv;ynxRqhvsB1$^ROjHsk#; zkP^;GM242rTu&DjfPR?V=rQeflY_~!xamDJnXZzCNm;q0G^j!;MGf83uD{+Rpxt1F zLqb3WkYrXx3Fu*TRQ|z=kagKUK@AagrG-cZLGKvPkJQSk-daBh}E9&z~T!LnrQoJ`$$7E^*Of_8E#vKyp;VeXT9Qyg3nT^t>{aZL^an*{6a7W=2E(x)3KrcknV(MvE8hQ`GV(g;-{T2Z7jn12wZ zd@>mZvmY^#NLiAWlMVB&(@ee)XA5-0uE{BaD2WCjmi3`vnzJ#GW~qpaOk<&ooS2hF zpA?m%J&aTwDI%#xMq+M$t9R&$elW5?X{U=0!w(wCu_RpVphvQK*Esd!Af0meS$^kW zP=UADF%D8r-?*O4YY}|%K?_aJ3FAI?sQsvpA@Y5z2<!DWwaEJrkn*WoYA`Ga3gzgpf8*ucPGQSaox&PGhNQ~k zxN=QJKNKXR=FfV{J_2oPEBD4k&}`|VQhVc&cYwlF3fN@GsW^3&sjn8l2{uq2TH1Ad z!O#v>M4=J1@V)-GX>z~1){*&>CK$ZEMJXSmKlm9+GCiCQCKIGfB@>kr!3qOlP}BrK z00I?5@CWH36pFzYEiUZy9gf|ywWLNpq&P4fAeaO<=u`Y=A3*!aCZm$8l+{%48oJTS z=tMI$@Sdw0P_FOG%}`XPmYS1@(Q@i3NiND@AujDnF{G?501^AP+55Z0nrG$@)NdrykPlelMhNqL%WUOqQrKF8oDd^iP4A4>*@kmzB zFIYN1X~>PHa`#0+8L1O~dzXN8;IuR>pPKY^1w8W(PIo;=3f*5ys$7!>^Ktnw{dQ_= zyd^=Ri&Qs#Qz9iT#f2o{txL;{V`=kxG9uN+%K0OCy}o3(Foka}uFvpYfSl0DwR{B& zUao$T*5!BK*KdCNETHAm9WHnV?dqHMIyEMxytcyZrS|1l(KOPo?%F`K`XBvQ(-(^$ zn{S>}2qIGvH#F}IJqFk$S|k3o--qPZPX>{gQ8uYX1TREJy4&-u6VWKyd&b!;YEqU( zJSocU@RJ*EQhJ?4b;Cxo?IFnsx`UX-VPSh)k3GLFXnmj*Y6)Bv010@Is zrHrT4x#P;}%}G5%Od-*m%odR>wA3?an4m5afqNpjn4+a3k~M&UdG^5()zU_8F_g%o zObXYMwPsJ6$e7Q_W$V5an(3)D#oM<76LNMckcqaSQi*Yq{S7KD%b?hSlM|8QbvTRU zRxB0g@R#o9#*%%~CT+;63k#a;#}Zay(}WdbEN_}O0l0pKOQn3b7OwsEz1YbH?r zb{SgYll8}tR;5miOHlCm9e9~|7f+ZjF5tLxm;)(`C|8Z}A+zy{c)tT4oEK%=y?x={gZYKrGh zl_1C@H{g&ig}}K8L7G1K@GBuEkl2zdeus}+rJ{>{Tr|mGCyk82%(wp#4P?B9X_T~; z(P#vV7m(17l0>-y$m$r3s_UqXi>pRcT?tW2$-xo<3OgdJNBFlQf!u1;v}^+cF#r-0 zCP4u-2uSb{q8b1M1E2;>uYC}Rzy<&SC;<|*4>Evg2M~i+2+<1t>(tHZTfu1oMB##Z zG?JltN{#0tqC>g>6;`1XAk`&2Vn_ril3Q5Jw3EfR>?r`}Rd6rT9H6^&!b||XxCC)+ z$A>110~P~6+gQ=a7^U3T2~!QK6DWB@OttuV=B!Fl`z`z@bt> z;6n5}ydD5V?iPcCk{N(85+Eft(HfzH&;r+c%_uDfjh0f`gtCB#6ACUglM}aoxBU{r z`%(q6Qb0xAvlJC~lWasNS#>rT-lN^okz!GM@6Nu1b~iA3eU=khiefS5YOJv=98|r1 zC@G=~WwZFyhQJM{jeY-&L?fy4_XbD5U8Ly{AdLo2$pu_TVtz4OCqN^m$jZTyKqPE~ zh#N!?KXagkjzgkk(jhzUdnD$AGc3sf%ps9LDXEQyFbAzshm1hSnOdEiL~S6EM^$Io z9k9{11A(Az+ZeEH;tV4|l6fqaVK{6#zvf`@_BO~|1F|J+RKyw~sTUzymEoctM~oif zU~$-SKJaQMyU^LU^o5kLwqq4Wc0U$#i|WG_5bf8ruv2mg4R=9aL_4rmP0TvB5RWBBER^ImrPOl7;PP+<9)#66q9^Zr0c{+C*i)iQ zSkWC*tpRU>xQ!?rfX*}jJp%az!g4Gc87RbTLg_fgmXuZ&tuDr5EHBH>DMJi&R_t{H zyC`!_Zth7kYt>$xVa7AWI|>=*r-k zpZzOfF5-xneP~V*z(_3FcrnE7qR(aU){sr6jZnv;-T(gstBx(oJg8KrII!oAR9RYi zyFkg>W3QJflCd>&?gj`rICoez63V>*hzN-IDC&G1Z43mlvpfl)O``yjE3!qy*%idY zLXn$Q8m@n}w5>jp1w?bWhrz4}Vn`ZPkDkR_Q$34r*TP&W100_p5?&}7ScF^CCa2<= zhw{S?LF|slmSLD`q1j(XVHLqF;{(mn@0fSnF8M{_Osu-bGl-fK>t)Vi7|yQ;&ghY& zh#GcA0Bt*fAiSe+A=S*>PNpWwcPtu=IARo9&%94KyRr&e3lX<~6AJ^A1hb2Zqcv~Bk}MMX-*8|RW@ksOvMM|>5*|AWF<=L}i3Q4{ z4FP*XGc5VtamvAOkEkpW-w`OHKbW~E`+;~aEei3=P-??bIJ4-eql%<~PzkXzfc7uy zSyVadS9oSXd1TKb+~3+MhnOOjxW!dbl3AsQRnMI883l@wTfdO(=nL5*pK4*B?XCe_ zrB%^AaB5X78o)h~yoj^`9~Hq0+5xmJ!~kwY0IPG#aBNk+1CUjkQ{gy8*_S;wTvRjy z9C*-(J+k+$=ovdKw-|d?j_mm#qg8H|k3JB~o=Z^~T8LGcUsn2jMpYC(^(`V;8ZO5d zLM>=bJTRB8?1R}O!Wb>t689Qi-^GF{fQY~F^9kQU_*ko;JXV0=%F3{_3&siuR6BTV z5u$^Y)r9f`b+YkIIMvkP5E zk?d|_Hi4hWYw$L3^e*{W(0AjT@I!Dx5vgQoFen1D zr;fy;m~c5cIs1aE3yD6pL!u}fm_N{h;PHLpDh;R(<8BV$4d+8 z&nJJ2*nyWF9S$EW3Pnbn4fq)1iJt6cct)7&iQkVXT$+;XXZ#_N^Zb1`tZ1TUm4)h`|Dlw9*NZb$J-C z#bl@U1Q}2@PkiURN8TMT%LZSS3%(gwBN}HK)Cp-G)$`-FDj2P+0V}7hBA>V&g;5;! zr5p;%Dm;XQAz8Us;ovfWj{W?s!Xk`*wyzek@KRMkS&g}a!(maBlS{N0I!^Yc((`46 zHuOpx;8D_O(6;SBkO3j9(;!L_4lC(bf>@QGofoaD9)Q`EKp#3k!?#u>vDyJ#z}TE4@ld1zzPU zpL!@K+DBx*o~^^3J9YqV8!=EBMl7!>#4z@ZRpV8E4`4da2V)q<0xLfk92mp>u)wLj zVsW)~D3QsNWqc4y3j+%d$)I>;Kn4pqtqpk8%b| z{J?w~-ZJvD`9^#l%3dAv+=7t#;d~3stMk$LuyDVte^E~2WUyu%Own~|{HA5U<=PTS z1BBtc3`rzVS-6U75o)=dt*Q@-PC2<1A7i08jypDEGSZQG~=azKT04zx*~={*RwaAE|r<0onjPf$>q+O>hVxZbWdn709pxXzx<5 ztO3Ylt1!O;3sI?i*^hCGG(y{Unk3v!rWM$Nz_k-=))it&9DnJFQe!0LC^$m00D9b3X$jq0MJ+?w=5@YguDdr zq(<@vJVIHyJM_(Fnq_6c4D>|F{3`k!vg0q58|Wmun^-N}2J>JZN~fa&jP~_-1I$C9 zo{*lGKSTr-YY2Y&^2YJLmX+Q;J;&!`o@peyoEi|*y#&MFf6(QM@_P!wwMO-ngz&(c ze8e0n6+UKI4oL308%8Cok5dwUdN?AtEC&&LBHnu#2swxqca`n*bT*ZIL?Gcjp$I&R zYL;~%fVO4Z!)+_069+4zh0(!?7_Gp1r@j(nSco;p7GbpV-m|a<5gcj+mhn1ll` z_$NFD0m6!KEGnsxgm55YX;pqY7h+Xu6*}HPepM&EuheYeGOsI&`(>xY9BWhH7iIvU zEsq*Mcocx2va=15AKdAkKT2l{qt`85j6SOvVi9^#7(>LOPRfOJ0meE>$3M_XpW3I2 z>dOp&oo~Dp-#AbLgnt(zriWRGi0J|BiBYStlL8_9k#B^TD_Vu=jBuz6f+~@nG#4vM zhi738W?5K`G5k8wLVsPDl}?E1dS~IA!1NX9odfaN1<<>scTIG> zS7G4U^+ews_$Cku<(qhR6K69&to;)596%n9v?0&lH=h^?pP65J zF&F`ZuZQ?jFWEyrKaZ_4rgbYlzhDpN^YU>&bIP3Wf`F*oD#HD%1Prmr zK^r^ozZ9W^h=>wGl#z&nfSt4nt=ET$xK}6XkPeg)XzlryP3NuGg%s@hYa;F`h=|e) z(ZWvJgcg<{qM$-V3$KONg%A;OG_*kL*F?lU5wQzx+6yfljn-&H?CkRql%3SK@nT-f z!V4jG5|7vFB+b&Jvs827(jj7d`>FqBjd=c2??{FqL)Pne=Fc`i#SU{|CpC~iI_e1bMU!%c|HTD zzXGKIfFK}#dqYqNtN(^!=0?=Saj1 z>S;+J9R98FRruz-O7&7pr#CK4Fc%7c+j_%-@VlFTv3kWl=Xq7$C*K(sj5ZW+a|tzx zFpjd0vMZsrC2l4qC>fEM{ zzc-e4|Avq-82vWDD>K(*k^)l<7lgv8yJ!e>V8wd@J?=U%%*zG(`-6-T2iZ2A0OS2u@6E(^hsF35dj)Ja?;$ zAP=?NAvY!rK`{MnTxLz4B_^)MvjP5G|GGxGPd5__g0MzJ%Cp1*`N!sXg15wv;CFku z`kKY~iz)g&R7J2qsx%l0BT5C5flt|9p*Fg1T~N_a|A$4kYXZ9 z85DsDG)nFv8KB%J0t7)02*43-j0G9ikbM5;k$Q1LS z0)WN_1yUM(@#({_0NAP+FbZnCrwfUYE%S&>s5ATyK&%Hq2)THRnIp>W%2%_BF;s!DUXC_-U9_S|(8e;IbYC0d)L5Y!J!=YebN(%90eIyIY--#3a#qMId2>=$04| zJ=FYf&0K=fnK zZ)LB&4SX?{w{p-Aqnglg{0FWacPE_H9sOJ*(N>YtrMXpk8T zoPMk)KPxuZ5biqixOtmLpBr$*OX{^x&LN_;=9WCOt()#r?)0fiTirD{4%pY~EC9qw z$Jk-NVa7Fawj&^&`K>WN7n1_-Fd`ZGJbYIO(+wAmb(>st7wXOf!FR-I0$Q#1W{a(L z3V<4$S;=yPF^_(!&aaf|!DaSa=b5u^kO%t;Cv3C8 z)25@W3#UAAVyMvhD1Q)mzJ!p!B4A5%q#TUci5K}yy5PJJ5)+eQFo}CM<03x!#7m6! z00E+~x8Um(a?hZVg~_C-)?+dMpwm>5f5k%;&?o&q^_D+7%&N~lrak`O}Y)~-!j5PEv z_cJZF;TDrlHSJTOtP_xKu>7He54m~=o~3&8=VreR?wLW(Pr09b=f)7t~PA*0FT`$8OlSbpSZ@YD<3%z@+{?*>kmFum4gM6 zH1^$-D$Y&<8xPQR=RVUwxWhBo9jdl+MZ-Sb&N6N6u8USP$uOz645hjNg*R-93?2l7 z!O>P(pII~j0^jtM^;4*qu|O;pL;w-NHWh)n9fON6cjZp7%asfNbiM5G)p*KN_TAwC zPe8E0lp(hs`0iVuxYthhjx(P;#Ps2k8Us)QU2(3VyUtscZN@zE{-gHX$E1`Y^DalN zJ@aLku7(GOX-6KvU)j&xwag35Cf9a2b-$bErX{A?^`riobH$5qTd~V{ zT{j%!v}gW88!xgYUui1Jt^-ZB0QZ7uNRLL8TvrJ7a%MU^8Dv46_+dQb3Gb{ncAYl5 zI4!#PDOEkM(>8mxp23T~kfOy(a70R8OU;4|nob)dyxB@R{|!M6cL>`wz)MaLg{F@2$h# zu=vabTmMG)jFHCtxY*S$tos*?w%jQ7Uu0!{%yRkLA- zoA_v4>UrnRMpI8Z^q_+`k2yula?8|1rRuy@hL*0GrXi<;0r#32rd__&baGp z)4rmHldo@A#8lU+GqmgyF5?x}l<^Mh>W*DI5eh=+Ck^xzQei?Q6#)?d1da2~I`CuP zNSiyh%2f9a`-BN58+OGfJ$BeBI$n3f&Cd@nm~Irg_S!9*%H*wgwAN0;c0RAQqa@}D zPP&Y(WU97{bJ>tb?>^TED=s@heU1?XmYnP$XGS{U@Fx#E4vu*HOO_bHb{Y@{n61xA zO1gLNgKj%~@8zzzd_=xxzp3*2Ff;G#F~9WcbCw)Ao1xEnCYUB4VUnyUlQ1o}_?D}8 z^|2m@*>&-LF6i%qBTgEo>pqi28+KcI(r3U!ZT*YhA1(s`MG38^-D7H_?*u39v~lg6 zk?o~B&v(G6=UfI73ovxq#um)XXVDWc84IP+iaz)nwA5j~{lZrCUqUlpWb^Fk!LL zC($;*OHLm6^3&#-<=*_7g(GbJjDcD1n0Tbch8+iwyLP6tzm}DkOwIS*GSD@~aRz6v zG0BtH82a|~`WAsZ=K}3 z>y4XEvfuXW-+PlAVS6FHS+}u-HVU+jxb3RttpgjrE3I2Re$CkDep1U{xF#Mo6CE)6 zF?`XG2X^8mC*JZb4AT#|+h(2WzvB9HON-lVJd+cN!wk3sB3CWUw7`|)jQ037uQ_9d zzQ&#Fgbst54Q}r=@8SF4S&N@__t|swV&e@x&lz1ij2&^x_<168avQ zSVmp>L7{(qVKB=b=fd`Hzubq_Z>HbxjPp6KdyX%^;?rt}uc$^5ZRUcdxe8c_K=?O7 z_;6HylpT)EGw+xqEHcy+3IqD^I&vNu*cN%=n`G$-yGzwU) z8@u4qH?2GDQ&(;EMj25p2G$lQfXYwIO5p4X1=Npsaj z<{_83dEvbuI3PRcMI%fx-=07qNo0&Qm+&|B`M|yx22_HV_(Ud&AnbVKu>%UT!5I&p z$*gkQ?B^a3$76if#nX(?PF83aDr#k86&1ipeuqn_|yh*C!5S8Hr5ugcIGr`^h_8a#ekm z0np8I$iPLcb-!-Kqqe{aw;gJlmg_c}+w?QYfkzajF8JK5>SqmjflQ9uuY4ZilErd+ zM;qLst(}tZ|AN=!=5BHVNOOi|G4@~t&)Cc0z(aiyU1guscHd@^5!b5kx~fzz9bxO) zO`;8VY}cNy8)vBtchQ==biUELbU6BHcic1MrgwHZro$pz?=RH z=kL18Jj>n=>m5DV!Xu!Ze9M+mVm`q+>vJuo(7e=eGlli$xOMa{*+?@WA7zxEu%4!#7i!I;AH6{`yKOsv zO*^f6&MdW+fB?<(qwb3ehLD9lrrn>odpe7E9dy}#PQ3fN)2ycoIv za~52FAeirNdj6C4UVQgz$4SyGrz{Gnhy{`oOa>H}zj&i@Mtl0nalPlSdU?o$x%kAv zf{Q~uuq4kr^I*K>wpU$X4u1;6(Brc)Ir*aI&2|_E9Ea5wwSlh&Ic?~Xsh{Ja>4B|} zSonbXn2q(WX1aC}V*{So?PMJE4w|WYRQaMa3`PYiQ<|awg-1P-iT#>%_3?!VjCDFc zTs7WuCyca-i(8zw%LR)*e)Eo7(a=K$2zucmF3t#BEc(<=_kS;I3uT^CDBMotZ+OrX z9Lm;DU3HJV1QjH3L`y8Pw7l?$Cm{>hw#X2eOr9ZgU^WQb?tj|FTkSc`30t3W_)uyt zI&;#!ainXmf5N0)7f1`*Y9%&}40urI)k0CNcRy{rIo-L@8s}#jC-PC9_gbOTLDN2S z)+zTM7I?I)*Cax_=sv?f-;DdD)7F`Dto84u&f6aO9P4gc`0oDC=x>9uubm|9o8Ln7 zZPRUiAPs!)1ZOr~GVQcCY_$L5*DO2&gyv`UJ$vVkr{DBR7hg8Sz0;re-x~PJBW9gv zoMDqcGVdH5{ql}o(Qs)IYZVaF_ZSzgHHNJ6;>&iqZS?EUxoNSj4!r3GLNv*c$>)E{ z5h0g_^KJG{hCu*Wb^8+!*n0aet-c)|t3u{dncj!)f7_;MmebDq_SW~{^CIrJ;+ij% z>(-uoy}jIS_I@;ITE->1a+JrBVGFmNePed*TpU22dK%{!J#(xP?%r$7GnX6r={F~u zf3l+tO6t3xHCKptow4bNeXae>o6LB_&A*-qtT|QdWJiT{jvLF4=a!Z*?GhIc=n-HN z>etmz8lls@%TLicVaU3By=wC@Uoys^1NFE40zXJ6xMr-yhdpS>n}@t}LN2dJ^OPwo z&hf789$|RiLL&u>wQeKJuD2++4mA1`5-i(&4S3>3^LAVM+&!m{d7NhA3wK!jMo(Q| zGX6?W+s2xcx1EXd2u~Sd4yn`>ZkckD5%OQU(U%x1#V0+Z zV)V9iw%&D0vB>2!1Ty5c)0BV))mlG>dQChZ~v0>YyYG!u^x?fImNN27$`D!!eWNVO%HkXbe zQ<-l-)SXt+gS(~Xapn|c%^YFts87{0Q-tWDvwH}d@%`_^ncFA>{ta&yY z6g?z)HlW5;EvGDbd;IiUYy^JpnW^*kdI`#tR$TMx!OhuuiE++2{r;gyMK9mMz_42` zEd--38~4p*VMQZ4$uP3-4l7;|r&=I9{>lmZKLX6XcW%QV^sFcEwRha@ab2z%zMqqa zAnTPw{iG6C8>`s&#M38A5A4!83Z_~mMovqPHjmwS|Jvi%eDO`=c5(Gu!oVhv!?av` z@jY|El}|bCt?F*si#9rG{>5O#4yO-KQF}H{wR#XWsx_f*X&%MD4Uq2}FRCuF?GbIrdH&V>>zq@s+s-9p_Ui=uOF+=Nqw#jZZ|=I5wpc@%aY&bWBlyOx;t6gqYA zm&63<3j*X#!|jl*H#2T|ao5R(3W}~;Hz*r+ykz@PFMcT<_<5V2J!6->uYB?RcUAjZ z=}O~NV%ELJ?bvRnIZuctAF~Lx?q0f2u-Bc5MzgDv!04wgxc=hjyOuQVcvFp4JB~M+ zDh$2L3ReeNOJY zpgD8+FK?p{aoP-1hyE73!qUJuKF-GEMIVhQx*qGkO!$Pu)@q%ak$_Ak8!G2vzR)>( z-143io_z6ISz2wV7iZd>G22_#P3u`C_AZ7GFFs-On>XuxewuqXR~96=(Q}^*dhW)Z zJxI#>UuH8Q68D1r##3TJh*oHrZtK8lqt2u!tU1DnqcmN2&9IN{JnXE`hodjMWErJ% zL|m3vr{+akoXCAXC?bSBDrZGD^R*}5-uc`mb&*cTEHNIFhVzbUIg9ca+;fRh-uemK z_aWPpGn$$SIdH%2IoYt$bB7YK+gIkC8iO(l*$}rJcEd9x zjC5P=g#3zYHbtK0)UmB_9Aw<1o}jmPSmvy2HydnXz3PeM?5%N0H|m8v0Fx-CDDA};1bndvypr_d-N8WIVJ@;`Z-Mc@sFrjxm%X<4KL&`Ip zy!mr8L=iy7$rsmQQ-}c*${l;pu{@sPYoh|u{fg`MS*RXf8NnWqr zY=e%u0T33@H9J2J1n*nzsHc}I9FYZJ<=eI!yG$dk9p~-7{b_SJKmSu_HSF^ppM20` z%9Y_q_} zHhN$jF9qlGqxZkD8?bCO&7rr?b5lP5z3Zo~S2)P%&5s+(K&lOM!08y>E}Nb|qQP`z zea)wDJ^LrseV)|klXt%EggGZab&ofq#tk{qH|8Yc+LIR+{xHoFP_B6b2xch)A?r{ zeP`(~mLLiNDg{R=!ceoX@Zup~Fbr0t} zyaFP@1~7z;i9o?{5{MX_ggl5OGtTZaJ@BlFoj}9{B%p>#Z1j^&wEU?*OIKKJrtL18 zm`$q+b2m zBe2|b!~kDRY3xIPzO}vQ#exC?^pqzI*~Qs?$D(7k6T1kh=K4AOoaws&sw#pZqFxzk z+rC{-D~|GfYqui~US!c(XPf|boNM&OUNjkx(*KTAF0=?CV`L2TU3baR)6P8Rp>xgi zKzc>)v$G)6!otwJsb@$Sy9ro41_nPkFW!rXPnGj{vV~f!t&ffHb zccrJl6Wi#91Dg-OXwns5^mx;0>oeA$eFw6Eaw09}T4}+)YR8om|ZqB`!03#371>B=^0ld!IL&$^T{i0l5e=heG8{fSw7EI!`xu$yi;R zU3v5C``zrcLt}nZec*BOc+V6Az;4SNu-FrqyW^<*4WDrJkPx|9d*PZ z7e8T}69?L2%7t;u6TgMtdGcxh50vxq_?15YF1qxu!mU z*(&j_tIQ>PTzEGSbUL6i{koAZdyeUE++Fzg;cczbQjj@if3Xv{&ZPdDMW4JUx}nyz zw_ZB!V=)de+$brYBayH!Pdjk&HMHh1D*{R+%t2z|H(oILtNTKMwMV+K%Ei_Jv;Cjo z(^hA$Y!;dQ(w*l6?0+{l22-r5+4uQPYFxYiP&s96yW~tJ-L?G!J`CV%35i{_Wd?Om zUfrg5otb?gU2&hAq1ym(>(j=#Z|Wrk>fP=MlKVl2yhbx2pNHg#$wuo#u|jQyJ!%7* zvL2C5g%()snWc`VvCLDz^n?R%9L@BeTL!=f4Q0pN_w0d^HZ3*T(4&@wdA7vrz#xJE zAlla4?Z{R(#tkH?_T&S1S$nJMG0TCx7-DGMn3qg&`64q%jw&f)=Yy1e)7?W*g!H^w z>)ur@`vJzN2*;`DmMNXza|8o&Is$phC-sKwG{Pfd{ zL2dwd{cauId~5JT5&6hw(CnELTy$58b6k^W7e8st5rrn%5B&kxb}K;OId>f>gS-G? zj)l#00)vYKuVC7OabjG4TB|Oz%Le6=D-I(Q40+CM>)RmrF4ly|z>!1e(@*q|!)fk; zaNzW9BW1alt`yqgz!@9O{UdueY1~=5e@z|r&7QwzC3_AShEwucn(6Y>_sFXSrJ6M} zjg9~_k9XSHq}()9Dif3M`lOMqPig;MmmjjV-2Tv_)cGenxuxRI$%FOh@nN@vzjB;J z`z*Tk$V5-e6!u;-PS;QA#yKiOJhJ<8Pi@Ng9|J+wyKlZtM}-&88p1x$I)7gS1D%Na zz;U6L1MGUu_OSe7pwn+}*2{9r@?oFnLhjohh`Pr3O1ow=We%mK0!dEqH=N%g-8Eg7 zPCd+=vg$;bT1Kso-Qn@4Cz|vuDtYf=k>g?q!%BO=r~^IoCfN7|kpLIFqWfuiT4A|_ zgC35TPdXrCRv*o zKf))pl80K(Al0#+m4^RSDg$3)XFgRSBD?YG$4nFCkIx{|0I~Slqdvn?JoWCa_S>Y( zd}YWpW{7H!ZyFP9X17{-_RJu1SrCx|*{B4YZvqBQ5kVvcuyEF-+k)EqEEkSbm>zT< z(ECksW*hG4HeftA_p2#T0ZKHV!E;mJ<8X;+HauW#DC;;=a#l;izbF6SYQx#g%cY*G@B z991d8V(A@d%c;F1KoxDY1`#ez$8b!M)uW0qiUuI`a%mJkrg z(V|ly5I7kXBP^mEnS&&T%*EtQJ(@fw8%xJc&Aj>J5s0-^Rs$)RBtWg%;A1kGB*7B6 zGF>-y6{?l_X4u;VtT$CM%E_Sh;wZ4)eD=V?Sv^<-aor_uo!MAJiNw~_l~3BF=7J;^ zlfY}++bdF~>f%VN&zz#wC@DBYcBDhdHFbpy)nJl{NUAjcsK?Z7yRy--i)2GP;;K@a zAm&+e-dLe^yB(lHi8L^o?&}UXwb+Q2QX^rs6&MF>fW?SAKXfh1H^ zmDHf*RMsh#PkL&|4S^`RNS8Lx9;ogsPkel46bws>HYhO=8*rCS-6Y_s*6hWaOP4sN zTT}s)z}Sez3|DK!h-}oL&6=yZX$zGu{jx?u?f@+NX30Ay?}*Xvc+AWKz1j#QHY-X; z?84y>)HFIG)F>(PW!D{6%R>?dlOkR>_0aXee&u|RNXT}-O;WA?tBXsY@u!HXJX^X& z5g2RrS%pBs@S_omfCjHR*)SjKtkhv)1o9~*L4o{vMOn9j_c{IA=L|t$jV#bN9@|2Q z4O0T_!LF9qNmhR$Yn5`Jw9LT>`y#SHuqk5|Vz1z0$SKv>Vi0A_5H0w0rszm7yg8NV zf^vXob10pwrSuGjWF3G{bYxOO33o04*IT1z-xJn7eFY{VDQby0Wr$21L&c<;b5Npk zOXaB(ncSDI9S#jL1E!iIX|btxImbL;h9QBGj7=_RKoQBH$kgJknl*+$dx}kkFjg=H z>x;duuXL$Erj-x?1tR8NY>`^DP6-GVlJBwtB1I=?k`bZD2b+4f-d6IaB(|wpOXC7t zk4hR-6b1lX$L?{9i8f#djXh9W> zb`6nxmppztm2(Sfs{Fk4tzq12{7i>9DK@4CM>!X!9_Gl5UH$S z5NnbU7hPJLJ%+Zoe^w#Pk|2?S@h-Y7ftIKk66NGk*@HD=gF+-`&QczX3m}vmQQLw! z)#_16g9}BO2*^SdM2rqRiu=`q(6iYdfT(D=*D2BpKnTC%AAkI|fr3cTLuAVyarT8r z5nv_ILl*y_Pz-;37lCXDX9`O){;%>W&nWTwn*b3=ph0ToEh=OHt*}8cAPLK&w4!C* zLlX9!N=0NspSu>NgdSb3UUM7@9~~`yqYQMXWKOHCEjgLDc(Y$?OZ&^|k6WpwH?sWa zShIIVJ9PI7iH0V05}XXR@l88r0=XAt<}6mC^TvVz#nx(%D(Zf-shi|E@_@Z>N9)GbFG5)QLN#EQyemxuL@v$HYpb4qP##F6CmPb#V zqG-&UoMv1m+tLhzsah%3b*TtdYDJd3iyBQzwO!C1!#04zogQ>+J0ErkK#n8-9|EWuKWCK0P47LC?K zbP)jslEJd56@ow@Hn^r{60k8QAVey+s@j%jpU@X%VkKskhya>tv_NbU5)c{&5G88} zKx}|^q>`t=Hp3Luixb1vt5NV)OiDowW2z@~nu2 z5&tT~^;^Ze_)Q>y*Z>EmrQ+)W)IdPQ+yG+Js9BO&X;EMfqQasO0o4RfWb#bKmdOT_ zM^kUAX9b0%hGHGE1ONsQloFPSlnRrg=pK-ptjO{tWi!MGm6l}kNSLB}ZmyD~n3GAd zUQ5!0Y6xI*{G~c&HK9^FI&^_lP>DO%fzY+otLhBK6pMnAK*~~9bZk}wi3H4Txe?!N zP#^_BP-TPKR0#~=Y6&E-HV0!#QJR}tTZ&q9>5Mo+1@%Q{O{|Nb=TJ?1fo`5*fBafKgcp0oX_)Qo{%# z0Saf$8DdOCg~{qc)R;;&2Vk#3Swz6J)&SJ>int`xtF23lF)tHxmOuzpe5Gt{$ukRt zV3;*a99*fCf}>b;Yi%2p0x$!G?oFDoOv$T(iZ>~WBoGOOkczNzo{B)$v?JhdiPUI2 zqMXo6vnO`lT5CBO22*&E6s!OPmNpsh*Z@XT0CCHFo+BEC6aWl52nl_PHm1M|#^e%H zwGdlVNzwH>15zFnilnLnNFD%5QmmB3mPi-NF0C2ch%upIu~}Yo8Pwlc5#g6tbApJX>~ru1Wnv$_Xio^M7$iuejr?g(Wr*V* z5A`y_zfKs+f|ydY5ycd>`;X|Q{`sHb9KuWh00<3HtF@`{zzoqw5fPMLxrrNH^-^4< z!bIn>s1_O8fKqrHjfzpDAmSy(u3c1Xw$-y3Z0Eka07nFGyOVcPvUIJnMCTo~v}RhV zF{>FhT4OK(i&>>Wl7iz`_aVq(wC8Q3U@fCz$s1^}Vm+9+90Y7o=_8Y?jmXwXIuXd?gzho$Bb z1Ua*Yfh86hFoC9)9E>$wR)Pxqys4`R7DRyZfI>;VK&p1HT3{kng9J%10s;aD0ZS&& zQe@$jQ9@wCz(to<>Q(MV1mKvW1%ojq0}!2WXWAJlfa!O=OUm2WLW&sb+S0~E8r6s`okR-&A*JYiD2zdu6)`44 zV*w(wfB^(%@L;;OBxG^EmQuUYuv&@?T`h-9Kx4FsWTaju2$q0JfH==W9iplD=-4B2 zK;=k@y^CUlniMdvg5$t~q9GTrz5X)?2erRlaMZKqWp3E?K#F+_7PW-Amq#Ozn~)IG zZ{c55`9O1w2%BCue@iX`2B7e$hEdqpeeILSoIk(v74KCr2!M#v0HIyFwm6_@Lrh$& zgBp!w4T=??SPWQ-MX4gzvqlvl6ik6doM#aPCM6LDBqS!(Xw^7E0Y)H@kjI=#7A8~_ zgNQ6Kfw3OdB#AETRRW&~utaAN6a{OEO{G?InZtGs0jV(@lf{y)XUIKrnVh!}>tdx8 z_0~HwA*n%=Ok#@S2qY^aCIbaTQ6HQMT{9aw6y%+f`a(c57gzuP~JpA0Rez^j0h$6d9@yrPaKsH4T}afNuwm6NJ&%-nmiz+ zh=MWqmJkRq)f|XO0-u*^eNj~xI9h|mfM|dvd21*IM8?vkGWRN?7?Fdf2q;P*)*~XI z?^Tc$Km=2*5JCa4r2@p1JQFAYX>3QFo@Tjs(U!?r0zeQ_h>C<9Y-AAiiBvO12#%y( zyO?Z5flv_IHDkz2N69m_RdAA6fK7ss1P~zPfq^iUMW)(Tg@*_bIgv2Ei3*eij13Ab zf+i6m3P_$QiIN%w1dfu7%`inaNko!C(Wt@%08GY}4nraq3<}AR%UE0_Oh$cPCQ&pZ zd6_Uc$Q-q+=(;bet{{{=Fjz2pKBDG9Vi zia=DDfPeu64FUi^61GaOEQi7&^~RwoNr{C)m_QUrfg=N`7$smJ092!t2ql35VL~84 zCIGMofv{KfBZGhqC@3jHB0vEG1SSMQ0t5m=LI4dM-|V0CYab229Ml4Apxxhh(CC0b zG(HG{N9%c4{Y`!@cr~LJFfXAa^LV-rVBGZ_(w)asT zI*&i;>MtB;?w??20x+gC4qoe7bqxc3Q++D?)-J7?HX!t%(nu37FqR<4?6y{iQ?`1X zw&54pc6-bKr%o|La{z%|m%XzGMWdK!+!*-D|4vZWQ#Z$x4SV$NR~_Dlm(h2mgeVNZ zK#N1JpZjTQ#TRDiRsm^H=s~GbCTx@{Hkfv-p>eYWp(wvZ;Vl|HD}uc$RNk%#oW{+a03tja-U0x)@$;ey z0D7h0sCjvU((BbdNZ~C20U9-H2{vwZ)uHjU_?`U6WdCt=enE&Jgo$Dz!%kCz*V9Z`+~#;_Vy!Kita3qz0Wqo|89#>Qc1VHaq}iIzBf{3v4$c>eHP+#1DL zXCA4uiLr6kDgU}yiEkY4ca1jUw(s^Vczk@b zV!v7T8Dm6}Ucy=8tKhsvi!7yh^mwcNPZ`o*rmaUB=C1;WUy^n`a0{iHM2 zo{iPp7KWPyBC$}ELnbjRU)%5ReL_Fae2Nh$Ej9i{51|+zUU#3&zhTMSX8#)l>VtM5 z2_nLq7x4}C?=#iD%Xc65zBQCIHU=Io>%~W@fva|((?G+C-B2SD5U0GwQhmuCChXjC zfwiw;RB8N+U-MGs$GDdMWuNXmjUK*m-toaN_CI1>1V`Dg60shYK3?38#|`pYaB2)} zBp%!k`)%2PBef8ni3ky#VUCu9j&S;u)41aeZLl$KE|U~prU2`%8XtT*8285~1{0dA ze=Z*Baj&&ZW<<2C*9v5_#gt3EJU7p(0_-gSfMCqFcOi@@sFJ@?ZFW!b+0WJWnsVl1 zYpHO?+H~kaKY*;BL39QQ-2`J@JJm{kCL{&n#<=Swlth5l_gpjec)sCTQh!y5s-8Bhi`k==z{M7%txKOJY^Q&8T-~Wv}z?ksm z>{Hn%&z||GQ&KUG>fP>r&e1E~a{vF+PdYQ!f++UKj0gU_~ zD;+8AFm2iD`M>^)BhS=6uhVoW2*4DhZ4^q{5`@V}c%13!_C0T8BR~Ap!zWbUC|))` zXxC%+`)JeG)1~Lj69EwLK^3Rl?>`_t?nwS-M&DE~SmTxI-Pdn>gakO?Rpfm`sm}Fx zDMSbdedwia@6eB70KfnZ5Q(<86o7wyACBE2?Jt^|BKgD8hi(r5P-N|n z#io;#Pi|}gRlBFvhmIr+lrp~KH87?7$FyBgGVznPHUPc6$b&uvVd{=AU!$r@A9BcC zH4u<>AiyFBh=3bJ19?yg7+3%q8$|X@6#rHmaUb5k`KAh#lIbMnYj{D1{&4jgGcXVc z4@ZTK?R3}=?m>G|z%~dAV@nPCLja^cBA{t9$pBdqNKrSpr|&jAV37a}M^#P)k(Uen zR{?n8<)Z)CdPd{fP$uWzX+5Ob^s_J7eQ9GH4#>95dWjoG6GF0fv79?;Yv@IO%qIFF2Biu3=9CsAR>xo zQAXSIX@^6|Mi~VF6oE+r8K4i50yQFN)qyru2%`dM2-*x1QQHdEQv>jD6d;)Z0K*_G z5+vZHphG1<2b z6}kdqZ>F3mwA5{|_P0R*Xs==Se2(jdz6i-;IOk@um^^l>rvMNCT&F_1~hvv5RO z#`I@|Od>|1Y6|UYG^!{mNg^f;La~*WA+W^E`U92x^oLcW7RaRFvFQ?N$o6NyqDm5G6vqehJwQG2!MWFT*a%MB*)LXjfO zs8-<(g8~Zm!&4}l6-`H@QIm`wWg2F!=O#Iv$EbI zA!y7Efgwi_iooDqZz3eNndO=`z=B4WBC@fR48+s`qF|`VQj$RR5|I%f0S|{%5D5*8 zW+Q#N%E+o_??~H7vDFHMg6LTSvNR^R&U(p`f1dxVyz4^q#__w0#NFTN^6LWq>3%~V ze#!YwFH`hSE67x`{rZ{}P!dU;2`7Gr!~%(HReBnbY*up(dx~^-!De6qFjA^V#;k67 zyB~o}y{Xc0l;HPJ(Rxf4h$&i;;QH`#H_yh0uOSZ^8&`7PvF;y{v_lSx0>)~VrqkNV zpxQ)xioQos3`QhOi5LMI4?xL~>g>;mV`LTtMIN8L*3oiaZLMKz7V`-7JdJ_?$S;w( zhyIHI^`TL>+FqPs1kHBvhJ+>&IU`vmqUk*rH8~h=fUyULlSC2+3Ycs|aEXgdj8g6) zwd7zQu^oftDJRl-OYN*_R&``BY0c|NN@PP46ak8kj5Z>GfDw$ZO?p;;Yz0t`*>}_1 z?mG0)$S7@EXW~OomZ#CbFJy$hm8+)U=hQg~^pT@|S3IwWS??-r3njA`7p)QBY$UIx z-i{h!&0IhhfCe^5R=nmUf(A?y>Eq#T<}fhSyL1(=nR~<{tqnP{t27x*m^6D5$=XHJ z>;eKrGE9ibjR=$|mL=eN{+>&!!~jT}OyAEyw_RKZ^$%$?kYA4m`kU+ddCxs_L-;#yuno%mED|7TqiXH-KF5K$JIC zYI%@^Ia2SJlyej?Svts+rmv@IQfUn;iwy(5nbo9_8WkK=7XqlIJD(#Ttlm)>20;~Y z-GXj*Z5zes>ku2E#yYc>e`T?7$}P16FHh75*U+Ka{HJu0L;`JNu4B3|S`$$zRrB6K zh-@gD3J?KkV1tG=_fYAUqgiQ)cdRy8Ae);~7 zXBs7w)E19KL`)<(U;k?tAT^5WH3o6mxRh-^C;%G|T>?J$Q+#vU1 z;GP*Ob4O~PA{l51$27CxldjqyYFYP7jXT7dkARVU5x!(|MN|y|L9x2R%RM}cg&0nf~5JBE;#0rN)Ur48I8_!A5#zr!b#Cv z+Vdyj23}ggBvH;@`sIyZ9{!nsgUyeTUj@c731|FU?4+H`$4=4!BB=$fX&?0~%z9TAL4bITLE5 z5A-j2tcUpjsVQF1GQ$@-o{qz%j4jyfT+1>h)pCNy17i5Qq4Q)(|A7*st$;oE@or%>?#fHh+OPe>40S-QF#(kgE zrPFblwc|Cxf)_T&3l_bq!zhc}AVmgl>oZ5*v08K-ECfKF*^?!Jx{OqFgWNf^pa@DI z$fNLyif$FIB}uT>OkdP4HkOQ*%@bcc-IRGKj#$Nr-M-$^^>x{1nhJY<2>0qUJiSX? zgM%F45?dF%CK((l7Sk{>X5=XoqoC0xy66l;zX-5#L7VrUGi0TF!j7hfBtnFK)EYsC zNT8Ae?LMTT0VWn3`*0-aOV962kMDR^p-alikDsw~M^j9(#c79(cK>1L9z5&JwXS<- zXVCFo9=JA~^^O>MtY!0ZsDb<3^QikfJa^wCR~+lagNC1_WY(6t=pw6%-RC9?rjN|w0h}ZNtl6q>UNX4Nf9B=1 zM}1lS4jT2n=#dZBf7BF@r{f+;fhiK3G>>s2HzF+;zPV-9oY)S@? z891bEciVKV8K>*8!C7~`_=e5T>V>gjpv?@LV&PX7g62^Z86Sls==srx3Su8zZM4nu zOhG_6Lvf(%r0K9xPrFt)aK{`xk<~AJ zV{GPd#U>|`ok-DQgT`tq5&?*;o^NF4)LM(ejR@8&N!MP4?MA!p2<%zGWub_~EK~_c zk2qakoprsO95n!ssNLkfes9Nc8c#f=b(v+6PaWS>cAxGkBMd4cF-KupcE#i3fgQDJ zS;NQNS;XC^U3RP)7hP_u4g+kl>P64h1LO45Za0B3dxwBOvw?(SGmR;6L;=)36s4jH zX1Uf{*8|AbnP*`!IzH@A5x+4;4qlVoHXR+tFy>V z7KY#dPO-){fNDvt?aB6kv4{9!Yu{jV`e)H5z zEZOps=}!u2`5BK{tkdrMZm{n>=iGJ231QiE`ZX}gq8IfQhMJ(BKtVlw6>Ui*0EohU z+(1fRRidG~0Z>!iwb(c_o^{s6yYAojB^Pe{qSxVsxreOCf+z1Z%|Ry)b;Zn^6@9WT zwhgATRr5fX{R@w;C&SC7;?KamK16=kvnE6G0BOZF_DfWP_yy4C#%vLFV zI_HFwY+UNHO6$ZYk6Dl$JKq-WS=XM>Y5gJQdE%DYETL29Me1Rbqe37Ai(mq3+0|&- zN{nKdrH`Dg%)N>*88mDl-gV6?Gjy;)h&>x%@CXaZ&f7HtHR)MF!pj*<~k`_vgvKL_7Ry#M(0@r|P6 z)C*0GXCJ;x9it1+>2n;=06^LRW;D2a5A1?3*xm_1x;6)Imb{VhFf{>T%)3YJGM;6c z9sp%b&M^y$M)JH2EKF^09~)D1XyI`5pEUwPtTZ8^5o23&GJRyL4kQ@`WZG#IK;awP zU8GZD#dQ-vFjy2F+hL(A0!|Dt$MfW_{G2qS6nR_-P%KkmUocUMB5Z6QlK~Upr0lJP zCrr59K&Mt^)XhNv5HKus{fi&lR5uN<9%`T<1_&8U6hNU+i-_%VS228zge;W@%$-?zekv1)VoVM3$US0Qsxlyou*TlujHj#GD5tS2GlUJf z83LI0xU(fsOwi~+G(4BcB>!rgyF5$&@{~UF$4h>V4{cs0+hA0 zK%!w3Kok)cU;=EHiz_JD0NimC90As>AkSPFTZ7aqGYkz60wRo22^fV$dq-lb_LSK# zHJjIn1x(T|b!dzrp{C6s@c5k*NZWAI$&@S*?Mk_08Sv0+L2X389_v1!*ii}MNAOeO3*|^0z{+I4*#Q9 z+CXd+q6)Svib9YZLbccw6O_oA^_0{jB|u}CrJ)W1fg%ZjaPP2{lzCi&ROSUx6h=>; z8YT1$vOod>WB>s+2*hfj;eoL&Zh%4vfWX>r_nDD;HHo7lY2dauiv?mJs6AW+QH;sB zXtRVwkyC1r=h`8lU=$7XYEtjoU^KQ&u9C>)XvrfNB7}__nr;mMDu5}G)FcE%iTpTL z1N}7W5R*i>+XbE}Vp7^dO^+}~!w|!P03^vYug+6$U2_`EL`*u;W)hlG*Z)w>xxu7y zjZ3j6!06`3Ns$d05o_tSAu#QOzFCb3LeWJhPo>yo925i)1|BK~RI0==d_({sx>jD6 zu*oZGFGc~N6k`$ys3NR6awnj{tE0n~((c4+B({q{K0% zNCJ?8Eb=fAC>R2f0RjP32w@mHjw2w8XSRBx_7#aJFc7PVWz1MFya^f;0zuL@poSuX z5b)4Iog)d25Gz1iCh1ptFIsw=Radue>^2C)p}#3|WWYKVA1h!%9R22Qvj4zj|Nko{ e3;+U97?)mM+&OrcqI&b_skW2Hr-zO{VFv&jtVW># diff --git a/docs/zh/20-third-party/create_dashboard3.webp b/docs/zh/20-third-party/create_dashboard3.webp new file mode 100644 index 0000000000000000000000000000000000000000..84f387f87bcc8e06fca90deabebd1d601c528ef1 GIT binary patch literal 60306 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 z zzkq-J5pU*zswK->f#n16ecE{mTJJqZERrpD6Oi$o8J}VbDYl%)vV)I_b>2vx5(zQ) zxxX;kUR?>QHcuaSB^t$wtvp(DN#ru6%L$?am_ta>>@qM7O~!CjTRbVH3?JPr)G(4R zx6BDOGoC{N6b1X7Zjg<@s=+0M9h!45;QYp_&0QD#b@zePOkeEt>iL0W6ANb;zJAMm zdv3w0UKB<3nuBK5bmRoMw5=a~d9@hQImqwV-6b z09_D;4t5%vVGCNPnp(*~XOgC34J5NSsMw-@-CN*r}{U3~e zp-Z}>=`@Fg#B0|hYpHK?Z4eZvuOg3+Kyxq}XCfDBX-4F6~H5tVNH_9``8WA$%E zWrddD63wT|W-m)lDA~Fe_lSN@&0z4*Kk`ohF_8ry%ZT+much>i#*D*9My{8X=Z~m+ zCdCG|{VD#h6Ip*U+{?E)gvkc`@+&LFy+)5*f%26~EeQz(ZQ>@%r9+2Ahs^cAOh&aB zRe-ExuhUc~Y8e3V2JpC{3KCDp*1zzB0T=~o!6GUPA#ZZX@K|r5#TUv}thEQW>vsg9 zhq*XQqIGfHUHCsjtP;(uY;Hv25{NDJHMX?Bfw?P;_%zJJjWB^l+e#YH!2TQ}a+a?~ zjJhwC)+^GdY&foIQu380h#@&hT1?3AoRb;DAq9kXk5dOUjGQeeEm~d z&_rlyBifti+fmSoGq0%~hCV#&#P02C@5U+X_I>W&9~&0#t7Z57w-m_V@+5!h^ZzxO z!T~ai0<{p)%`7VYYzQO8xALYL$2M!uY}v5A#QyVNq#gept^emdW`tC+1nuR=R3Gga zFg~|l(rJ<;w>7dSiJPa!pUF%y{{oS59B6d;V!a5TD{7o?<~;A%yWIWy6c}$#nT)2@;VPTr}0FHaX#1tBPADua%T?iNtld zFEgciFfsh3fG`YD{(fj&C(w1GBV0aX7h0rGgw`Q{*k$)~tSA>|jNzO!1$^xkx6ZJw zY6-5gW;oWPtKuY`()kv-qa zrzDih`EvIsZJI(3FqtL+OXtb8rdU@`y*bVN16&A1ra-*JM9CXE&pjUXiTAWx&Eb(_ zrw(C4>gT23gb>MX{&#{-WN8Y80F^#2Ro4K+4^WDQ*a~O z&hso>+s=y%#E^d)AoL2phBMmLLwi296Fot;LghKG!4zP7H$JSDLUw}+sTU-wzrJD7g26&HLDTJ(-|LQ@}BKG4%*NMqiCG(zMn-;N@il&N~*M3NZQ z+SU!h|27)T>VJ}i&IIR;c#l6r6lucEx5^o#UL{!En|rDL11sp|fp-8eB8Y`v;UX^+ zS_8B#7||Hqo?k2gA}U_o|9elJ7`$SL8l@5!)Yh-)f-(cS95}yo_7oDfaw)6AOVmtI zu=%}@8Y;RALs6C6m=1=rNnWNaGaDGHFW_|BvEL*Ls}w$>7J~*8n)rPlwoXTY3Wr#Q zcT9cXdQnjQi}H^;$4aY)AI|%2JA8rS)JSFpxR(qNe&oI3UlRN5zBz5O1q$p;erBWD zF!?Hok%!=JTEFwIOi!9?Z=W>`z#n6s#MVG*l)XhfW_<4*-BO@1QRB{(^zUi#e|PV7 zpcj6kl+t)^tA#We--wI{l5sX}X{6I+pDNy8G2(r~twoM!C>WBwo<*5A z>n~_U&oW&SY*uPy?EPGFbgcv5h{HuLpLm0v}k%hhBBH zcF%QEe^L+P_O8c3V^{Dh5RfrV==bz;$>t}_WRvDAE@D@AYws@T>VHAB_DGH8gW*5t zyPLLSJD-RV4=bK*wch_7e;=`}!n4nL<$?MXO~~|N#44JjX1{|uNTht!!qvBq(C(!m z!SNe|ZZS`0nQX+xz!?h#Ch}CS_QEO}rfZG!+W^m;W*+Y$5Y@@NBwUw>nL}2vo=WzMTdn=?abE-G$e#}1 zp4I=cJ18I!wW(aFvG=zow?0&8&wF0iv;GLum)IszP zi?wr|1v?L9YYSPN?c2J|VIoUmnQ|g0C$M|lrNpctIDOOz2T@Leb7E-J4@L>Kj#XdT z4hzMj<;MWi{5upq)3ps4oXBCV{tt`j-;?2=>+xUN+r_e8f( zr!ToCV)Qpm}@zY}ZuTYXk3+M7u?l=u8tC zDG00Hy#L6AEHNX9Ve6F$SR2mlX~fz~OAVyCNc+ zJj!2gqyI(t=^-uKPA36^|8*nY5_#y?>LhdX&6kcde?U}_XE%yLnFg+04H`htx^Mqr z!7-zVHQ_6E>|NK}As4jXMSoTIF`UrNmb>6?dY00AnGnKvc7qNh5;FqIIIbm})ol#k z0PpyP>EX#?zbY{By3T^Wm5t1BVx_O@ByTUdCy|;a@lm* zfxJ8Kj-($7zR3ENc z><%(5$syqXU!;gY1j*>khDAYW&c`3bv`nlcJT@Du;$GK`tQs}JwW5Pfv)Mln8Tg*< zxx4*W2Ppn>Ig0StuZ9oS-`L3xkw@QWnqNa{Y^@PcAc1s@>^OZDF_u@k zEW_)H00hq5JeeA*{V$3K)LF3Gc0!vPb%HS!piWecP--}`xuG9L<55G#U4>qsLxg9mC>gY$UMC$w z`}!(}_5U~G`S%kYe=Wv;qRR#Vo?k?H+k$?cJNxs}jLyhFRNIgUo;%-lN``M}cjC{z zk^6wW%`a74m^c5h)6X5M(D;>tDFI#lD3m{~7OkW*S>lMeF?}_Bc@+lF{__$j%r``q z^7PXd532l&kJ=oBjmNc1ts6fKr25LG8-`)rLV0rAvQHQKaG9mCL1ol)k936*EOgOI zs-RlxYaJzq@wf#eloVN z>o_coL@$5&(f2tCXMS2>Sh^_*3_pAT0jWx(z1sE>zPb)4OUkUVJ#|}-FwJQ2Yq0u# z3VC*`x*#3K)axEK0rnH>M1{mHHb;hk55c<*MYxUQu{ zLi4-ge786q6YK7La*8Tj_q-z`?KiWx(btN@w+qVw%g;T-KtKPYQFW2(Fv3)l0scl8 z|9B`5f++shK@?-OdI=NIbyzwf@Qu37kRtQAhPk~655LuYT+E2 zhm^HRh>tDK0^Or!H=GR(dKVJYNlh@YS=ouXo!AeZL&#UG6Wc2c9k#yXGM`@}0*0gD%h?%H&bsQPqhB0_&66T1q==Eb%f?<%HZ^?`&2|s}b zn2#?U`L9;Vy#7(g>xId++~}}a9Z42D37bQiqE36AH5F_9L`hBR&Xk?5K!tpimn~7P zwF!5KZ(3!xKzu#9d83C6i4Y@900(;=;!ifNS8G|5RJ&-|UfzFL%Yfd6R^h?NmeOWt6ql)DeRzzTUd#a|)4T^coHJZsN)**9gpvzHmJkA5MR z?%;HW5^exLBJx#LKbFcx0U>IsCcA-jhOIZO&EM_hT5#hlRF-PI0j@d?vvZ%N!);6p z`TJeyg7B$ZEnoN*m6=HUCvmznA&836`Lm8T_q33geRBZ&9?!#JO1p-S zGmm49z}cN$LkTsF_=0vxrzll;WeKOoxuf6CHP6oFxg5b;bh3p{WQ zzD29rBn;_1uG-=IM+%^_jhm0%gmJF*_l!+VI8rSP*U1K&7BiS?nik#wtgS{k@>NRc zl-eNe`5QNz^YGKw9dB<}c)5e_gKWm8;bymSfKBfSg6$~c+wNT9Z_FGpn#rit)XX>i zL1Qkaun3ys<7k7}dSi|YLhlbwI;zqNL`|G~R*u&kHwz>dQ)p-Q5s!I6^!)+tAtbso zdrj@6*vk;v5?o4YR%T}_1YQv8)G9>D*tmC}&8khdF^NfQ6nd@rD(&D9Z#|gx1D6%X zKD!>w!g*dl?$ziOk#eh)wksn$9b86VJKeTA=v_wlN*Jl@MDyu1hvp)q8m}C-n6FK&C1gi^ZZjzN9$^#GkiT8! zDP9LAT1z(Fy24xi+X9Mh<^kDU*R!Y3ek1Nw?Ml*8GV(3Sj8s}6czHWzIat}<887oV zinT}43TYclP|_R11&c9|?R|K8!m7y-aA%v?Mh z+7Gn{jxyYK+QL5gcI$Y5fQyXvUqx+KYN`+y0*i`n!S00lNYd9NI5n)r9 z7x#c&xlY%?ZLf`F{UO}ifIK3@So*Eq4DnBKIrw8Nc%$;429ziEW@|OH3DrM27rdU1 zH)s4MWB}L)W8yna>cPPubkRDM!Y`^acU{n*^CKL0DsKynvjw--V8WExnC2G0vx_oI|#(c0E_L0c~~f~e{Xq;@Iy{ycRi->HuX zkoBorq9aLsgwLQssF+FJKPyIkT;pE%ervQ7jGi6iYQ$6CaWMX~DCh}vxas+D|Cx2x z*e0QNXtFy6wyl5OL z%`W6=pHEbN*kkl!!|F=tLV2zw9_!oi3j)_@P8+R4ui;Ag8bO+@cj2*c$ilAEcvf|` z;B#LM6)~eNys~d<%~=B{TKNyUH@FaN@c1mnJEZvm3X(%0k`-4x=;{2@wBG)ZP!e=t zY?`1k)JM_0+5rn6T_OuH#!^46Ms-^ca`#RF^vd;wr{ZLDIxQDhKRAjIz4wtJ1x^he$nTLX%IEoOD_7z z96A~4V_hr$AC-^okXA^hBKX4LTdi^29pVIKAW$8G$TdO+Vcr!XHDTiVFmI394nr>JCx5u2|PS=scUM1`$Y=91Qh)4~h2zE3MC) zFz!=9l(xypAt`S3fJW(%0!QjWN3NUB$_Ji6q#!hd=iv`G|zdV~c%>j{%EM zA&Ajmf8F3b=j4t>?`Tlz!jWVB4I_eoCw2?H>tYOrO&HIMC2S@hI}Y^iWBTfXvka>9 zgm3ME55)C=N*$Fv$dP;B9+cFyrpW60^#MxNO}bJsd`)6)@lH^YgGXEaa$yr0SJU`2 z77-7F^$$~o*)YT&oUjARiqT69?e0=oNoI4j4DxRryBwy+4g1-sK|4^?^dDE_?Ge11 zt>Ski#}D&rYQjCWwsS?~hNu`i1Xu2^!rU)GAHa|p($n3KuKb3{l zY+pninom~bMJ{8m+!OK6FzUEk<1Rz{P0&KAeeuWY?OG=!QfC(C6rUZ$ta;n>S*mfV z18!T^7O6KIjzpOxO%TGdP&0-K0Kn@^HQgzHdb60D;1z$fEwgtgnUrqGI4sN7(!F}b1-ndM0iGG$Jr<;ltx;gy{)7bKxU@dWF~5+0^@Q_O20FVE5yK@5KdFg7}GnBQV42?{P}K2&SiytD`kxr z=8FWFoxP1bG`D5eT7Po~0N_~aH;X9?iX{WqD;&TPF{P|H*+GNj$35!5vLFnjoU&XI zla0pZW_VE-?R^~rfgMH2;l>QAloR089uetp17{Hw3a6g*{phg zT9e^Bc>V9jvhKd}l|!sgAJkqdjN$7|Ql0Hq&Q3;`oX6mgV=@(uSdyng`~qW{Q2VB? zJnT3Nr#Xg#yRX=N&mRd!J4zI9MQ^1M(xM z_mJs_$lTc+hV;5Y1L3hr-!!Xglo=#ZrZG4fbNs{m%vj5oSjrY!*t$^Pc_4IGzkO%; z)?Hn8+IulWNlGFp)yysZr_1Vp-anRL>o{p4=MZQ3_nBk?hw9q67yAc+u{{)uPD^_A$KdsN<8{RWbYYwI!cWze_vQQzV2Q_%m*IyV$4P9qh>Td>9qG6id#SyIVRae z5S|7h!ZutZJFhKUkcOUYRvt+Y?u>2 z0BGAgOz>oWcplIqcF8gwQ1<@v+flVtZz|!mYu5+8cFsnq{qat2SsZHcpal837s%3l z6to?WEs%(wjm7!humF*S42_+V6*Lg4+|CPzRdMD|gwju~y_)!lu`956Ju78ZO`xUo zt)RBjF$J5ryzl9ZvcCq{!BYTlqwh`Yom-BJ057%iSF2* zP2SZ;o<`w~z2P{Zb&v_ca7sdrm=QrVcn%0#f?RvN3?oE*QO~PicPasYIuzPdM(blXXJMLg%EH9+ zNhFUr?+br1nI$Gpsjy(WI$E62sfLm&lOBd0*tAncI%10sti7(T^m@cLXHMMMW(Hlp zB5u8J9_pf8`5v&~2W`L^oP_0@Adn?KD%3a=G&z+^y;{r(Qct;FP>?7ha(2(jdjUlw zHCP%R9JDWz7TsT|w3i2<`kCzpV|$tEKviBH79wj=hqL9S3Cu?a*YVA{j4-&xP=~_Q zp=@lY$xH%oqny&bEoEZnkAAM24HjN3`z5vA5XFWv;2F=zc<=3xA$t@{_+8%ln%nqi zWLel$F-ul+6}a@1TCbA@+ywX5-KXGb^MRH5Vbg)0=a;);St`~Wzb`See?s=bc{la8 z%AJ-103`4O0ACU_pG;XY)~yR`MC?H6QQqW1}d(dj4FZ$b|-DKqwutX!V97e1t^kMoQJOsF+>G zX)8AYCuZNa>FXd!eN;EKlAm}MzK*Kv=j2@V&Lvge#PFxbRUu81Z{UN=k3m3#uiH1Q zs;J8^DD4V##wnGZ5G%&KX))5>LY;Goc*~_)57;{K=)6%LC2}S*Y8K7yS)3K``)-C3 zI{Dkpn`HadM+CVr(3l;9$p zmTODI*htZK!fTE3zH#)cIg_CntgYzCR1{!JTx^o(Ta+J>b8J4^;#Qb*Z$36;!p!dx z+AccsA)llvXs%pt^{*a)^--+jp%Z%e(drlcPK)~G|#8ZtZ^&Z#!{ZZoSz2YgkVrPX>xrJ&&% zTUp{YU@ZIGFofWZ958sOmZ5&1P>KrR9gsrG2?M=0?6DM&geV5rA*OXN<>2M>&KA@eZaS$t3YBy}f4OWiTOQy`!>G#dI zSq3eVa9VBnK4&ai!;F^a(O1!za&tnWW@*f>iUT>c9r3%ax$+T@1eaq%|HjQ^{-Rxi zeq@Lbh#&JET?5tua>}7q86XQ`B*ejLNN&X5d|V(~E3I)*r{oI!%G;%wrP^QSv0$8G zkPQRR>;ziE&zx{-9A^IkPhi{2e?hHa>BIHHh$Cx!_-tCb%2G!K&hG1f%^@4+Vz21; z)lOE8n-xdSi*|a^$NK0j?g#3~=SQdlFx@UKxW4^*`Y4?e%WYf^ysMrV_IKFhID$?p z0w>xuD!}bZ?`~}}CL8V&?-68DbCT}wrZlW9h}yayAu6tqew=bWg1p|vq0)KOzHVab zYbo?<)GPTMY71qOlb1+w(1Of)sz@G3Pe#*(VdhG+SIcxCf}JI;R2^5Hyo9FgXecz< zy{eg^wf$DM9ss1nIva*CjvsyFmlg^6m`~Uu7f>H&Vb~G-ctpZTSvU5;1OS!X@HSP( z)x1klmDl%#N%NI6i>Yx7!pploU@X85ArhmN1exK&)*sQZ%#>t^=j`p7uo*4FYLH;& zXUScO&%w?HWDSqZOL-%=Vqn-2Zeqs00U)h($s6O(e&R}3O#G~D=9UDxe2??#F_I!y246|{c&)5`CXy=Cb__?>Wves@eA0(;EW;7L<9CWk zEcNSS4kcd}o~dqdrj%FHA&X$&pYhTiYD%UWMadtfgJn=httr2eT>Hl2wVN8!fo=6J z`5l{yxI}^Y?I#@ttuGh7N>-BkQy(Nh+-n}#nx7;DSL=n6I(Tx39jubX#8woXh<_~X zrf8H@k@vQHeC)$q?zO8=HQ2eP>{CL9b!n9H89TgUs)UPHnuu}Jl@Qf^POGO`Y%Skz zb3M9S|Coqg;mG%PkDFH1&P0M;8O5cNWqy zG{5Gx46^eXD{p1-z@8GFXqL%*hfYP7s8i}OWjns!HY*jj*xO3N*&?xxpzDLa?B@@> zM_Ok7M^Yv*@0Caq#CKZXlMo55*GLG89FoqZ$G+_Xo%XY*;UB*aLBty`hl#pPn|F+o zLtSN3fL2Z@pTb?IvV!Zwd?7x+^F&$L=ZuP+r}XQc1vRnQHW(&%4bZ5KAz&}ndCv`) zGV!NMsi2lD=4;@S-lU2{76*JxpzkxX_Me8B6$1S}g$H*Hc{kKVJZeyEJkC6Lp1k8D z?RuA-4W*>&ocC1j(R&ZtUm;cMw}wPy^{;T)ik)d3<7$Yja6njU1W2PVBF=K1Nf0QLD#^R(n`Rl4BEDER%-N_T$HO*#sD9_ti8` zxz;zsqb$CIEI^PUC}Cwq2Wg_wdUHwAV5|hm63?bJ*zO%!w%-Hd5?F$s|L`U4KBcgf z8Uo25$Ul!WpA6%${PRyeC$jJOquvhVs3!QJX*(7i%%N4yr)I=cu5ra{!O4} zi>aZqPW%ZdTdhGxF_PTlg#2c~U}Z-8%uc;=Z?1=01@OM?Kmbt&NCG^rg7ztv#*D9% zZt1WR`wX~GfNndKVh3=^J-z0+B0Qv0@gj)9_idacF2MsShS6{qYm&x;Lt(h0RFGE2pMTunb9#inggc(8Fn;E5TRaPE_HY4133yf0Oqs&2N`5Sv_*J};6fu=EnzSN z#310l5Y1?Sp1b$7-tL_};9APEMMG>rAi=B{x!#{Ul^CnE|tvMOpR02BsS9n4&TD$#Fo>u=F*ueQiO7L* zSny&^uPY));g}>nYr|!p0U|t>kN-X%al-M>4*mSjoD% zA{mUeU|x@G`$bf2LLA)V9}G{{$Ev4yv_$I|#cIeb^U8b2)+WM000006G>Ap1^2nx0 zPuJwX;YNIl2E7sE^Yy*`SdcW4h^sZ$O)wz5(B-`dg?qWKL4 zRl|h0#I*(&DRY1fr6*xJ>w`baY|;j)Gfx&r%wYg0e-#WS*wLILb~(q@2RzP%sz;bW z`ph#nuLpj7ffhbF$hezoYDK}1Aw%$H4OAo0l(F$yc<0d$8Vk6`18#A`3+E7CEr(aL zb-WXZt4u;BTPnre$Kat}_?7&GFF4FXYEVpQKg{6T5--$RwKZN~HLPWJ6K@n5Z1C8Z z`~s-E+>HwsO~etWe#*VEO6AGrgwe$zE0J4+w994g&@>#U>-DVab?6%7CrvgsY@$8- zv!xGyCa<0=5|~7$6JJF$;AIJZq1MPx%#bZ*;dZ`DUorAu)&POj(qge5A4weBP^nsij?%y;4C6u#Lh1w4Zr+St^lkH9pi$`h zO2zLy+$+2&hd?wLlO<1%H8|&@iBKKXb!L*O26;{^#p+gwo_0MjD+cCqh49*1Cynz#${=)$CoD#) zXph6+)$+9BeP(oFC+`!X1g;9fcKSMIeEU97!7q#CDtSHdTEM(iT<*)NTzInM;B{H- zt4GKSs1;-kCR#Ig6wa*u3JL62u_XQm2D2lqPPD@k_H#=~+YFsYD(>Umrs4Dk|3hzN z7r#xjBwgz*nFX`SnH$B_v}Di|9PQ_~wI4;W^>LVgVgMALo~hY~yftq$o26S1XRS~x zAl|tTO0d1PCqIi1OVHKx3k_DIj;bo^tl}GhxqD-%2B-aSYFV!_!ev|R!6?&F)Y*a( z)K+(J6w-qAx9?jJckEXxKf~ol8^U&AJ6j)4rE2;Wo@P6vbv4MZ`MKv3cOJMd_3}Oe z(!Z=pwx|R!JIVmDM&-=xo7ZAM02e`$%eS;yIl23$#?3zLcPslfM>Bj~+MTh)mJ|5U zsL*tFW;UZ9vs!CQNTw}bYSfgIYMhF$1Ne2> zH;ZDaUT$_7Wtcjh@I{b5RMaJ6F4cZ_UkDbzmFH^bRRk#ML}r9Ry9I69jRtG{Y)B#= zPo2Z4MbrgG2W+v4VbAYYy9-?X^dWV}KKn0DQ zBQYc6jvY!4%HD3)@+``}5)uf#C#Zkeqj{BWEAe~Xf(}cAE5undw z=o$L!sTus!^tNS9>5SX*{ps!8#=L;kx!89yUHX(r`jjctkWS5--~a%6U*1O;28nbs ztZ1aA{|JmTr#-oSN8x^I%lCN(5IHo4b6e+5Jt(h8FY2O79-c_ zrW!Sx5M7mw(+Vz3Dn!JxYZ4?Gq|9-P79~M{pIX<{2cCeheb| zpE)r$(qFAy+6CuDkpcB?d3gzivYhp9Pk=aDF%S83T=GB z>j=mmy@c9@?qctVsZi8IpvSTWS$7_XExKx8jrAON9vrXMKI3{1byNDaj%zHK%0K?G z{C={|ox(Gi#6_+t)l9N9e!E(O0@%#3HIZxv>Lkb?=u+T}1&Nc9Ge#4e#xek<+JGkF zH=#eW;7v}Mg}Qu{`rW&r@WlE(Vg+pVs^LbYB3N2ogR}*V3kQJSDKgYF7r+W?`H}(| z>7uGECrd2Rp7RADWpZ|=TK1eK6PIdv^1fW#fOc`x?Y= z2I|EC01@u}uq^~SV_XwZ*^MzDxevWs2@Am`Eg zlY5I|B}_GI7$gEKHYB8cNF(#|-JIchr6xD)4uW~JNmWnjI#l>!0M;;f`aj9`SJGNT z;Y`($$&d`zp$zWyQ&!02mQvUfK*7WLBQyanMJU-mG{Kyc!){a3K z!#&5Z?3<-QmNHRz{2c$oIgm4X+*O}paVcJ(iQ!EC?m_Gl*#5W7!j2F91;sZUX<(_j zau~K~z5R6#9=7q%FEUMN?}fuSOnHO{bUPp3nc7a_SGCmtqSLqvmnQ0HWbuE&KcPT4f-|~ z7ru!qtd}e2amy3;x>Iryw=i9yD8>hIopv;)GKL`|+a73*H8NH4%|jaqd$8^VN7n)d z%{V8hF@K>7O>&(iob>d6b$B&>(K~{*%{#a>_O|XG*`uFq_jEWw22= zuR=wpBOfnB;GU*ELLhR`$dxwwcH~~g5lM_Vq{6bSsR_t~dLg*e1zT^S0vIBg7oQqc z{2zKPTrt0M#7`9kpdb=@54KX9!5NNtQJ{L~_l1$Z-$b`Bm?;(Pf0jRKXyLz!Cw!7w zWu=bCVuj~pZE|miHooBE5(9f`arlYiISOElr-@?dUh4wWlmnX>=4)V*)U@F+3jI{ax!ytjda*E1ZL;-kh8IwOqJU7 zgiCV%IhBV+#?}%^S>c8rhh;_r1cw>W;_gU@$MK;W4UxtYCcI1ci^aSMHT@^V6rSov zT%Dh+(;K4ls&VlKq~T_BH%_I89mT zZ9ndV0*vbg8``nH1ONahHAIr?CdrhFUlwYnloGoq)@eUAjWc^<8owL8?CuUSH)==s zF1Z;O*FoubAxty{f?%I*<$&uvn%jW4vi0LPE2iZnum;`z)G%QfceuEG~L_|_&( zGTH=-I+!pD(W6TedtfMYTafS@*sN!vB<)4BjyWTR{cAge(>K#u%(|8@EiK_t!k6&4 z${E^FQigX~p;ed6kHAW@&-YQm%|*Uo{?+dXPZEn)n0>ck)I zeg-e?zkDp%#to4mpOzWVFeFyhFwCEhn zj>rd~bcZ=k7_lOVe-KTgl50n?fg5MyF~t`dSLl428THa?U!d56=JcQwMygy!FOa9) z2i=vAPl57MHStU#9*e+TyqBiJrNZ<#Sv}sw!=0uR6YjjM%e2T8c!@;?Sl@2(#M**o zw4Af)VZCsEL_-2;f5jcsyK)PsIo6VU1^}N&{sI($2``qPbphzW9-nV`3xZqEhu6XS?g%-w)ZtlC@k4yoGwt_s5F&P@QbAwTZ4?D??WX4V6UpDLgv-oH9lUNs#$*@V;A)MD$wp8t z|3wI`i3LElv!qDa8ODSfh&P-MFg#o{2(XGqzfkbiQ4-^Ld%UfY8K7E{&q>X?Q$FMV zXU*fq&UmWJjIE$K>R$){24JxD9YqhVf?(7560`sRYd!pm?u(CHvMX42mpF>Gc+h7SKRQR$D&JC+iz|@^2PiTk5?O>9W@BYe>t53DJV|AOn#O92 zcR(D?2;~mNl`VEgmX;lSwg2K*2%9#>4sLSnNzanmFG@D3E%Ws0HPFR8oh!r$Yld1~NP*1)Q3rxF z*ZW^3mTM)F9KB_A0sjNHU=OS-pvf@$e9t)Rv~%A{ORksHXBrS{p@zkr8^+HTP)0w3u z9k(k8FwjQobeLbG&VN$f7xFaX*rje7`q(2uN5}=3veGp*0)M|7b6zmi8NDNRQ#bqwt@^r6sGz z1R@c@k(OgU=#okpMsbOvw3g^46)qDh{Dsb00s3G`vBY^TmLYp!X}PUkOa}6Ch{H+( z%d{<$R_AyhR5tWN*tD_wCR_<6iK}SV(gj4T>dsR`T@Ss;^&*-!^X^^UFRHq zL-EdK(}JQSI~7M5mfgr-!Tt_gaw-Y>uLLpux6Q_JrhkCB$VM`m-RsC<9C_`zzv;LL zg&X8x((ngd04;z7(*{FBagNx&Vi4t!5C{Yk4U)pCfybl{;!W1qbD`=!D&PRfMA;{U z{>Z=<9hGWRKB6}*-<=+M1SA2*6^vR)h_~BqLfh&rg&kNMv10J!0}5Wl=w^n)NSLo_ zdlnW7VeQ8GiA}ZAW`bC5{)!;yXhiQk6-g1V8?Oxe)7ZZo8}i5q{8ZJQk$FYi`M>a1 zjFe|e+t8j+Ns{5+Os8z{vW2ultIp&+wboiFdbuw0(<8qr@0?9azJ5?c0w-?BLKjJxmIbD`|KxM0K6>Wv@&}vo>YpJk zKmZNfoZsw(#~BFYVVJM@YA#P`s1yi<7*Fsmml$l33p%r>3z%eoOlN4Lq^H9rq1VbV zF;JQZ*Gz!mJmQN-GL4;DJ2JUsIzM|fKw*RpJ?n!?9Q)R?P8=@H&mTVVk(Us%$_G^MiFP)+nELn=uZ;WBnQ-0&XOmj71o-?x zS8N?hDuqMNfP9jaQf#z!<=mk9BuTTgSf3NFVvE5zsO%FL!qRh&ykr&5Vr~$a%0}Tf z)xAqAB^P0&X<<2MlYrL1&S{ct8nP4SSQqG+R)Jh;`{7U(;Sg_~5BudO7^je|_K33W#sla$&)rN6$5k8xtmf`rU8$^=<0 zlN!r!1Zl&)JQguf;;58$`**Cw&FUY5oLm1RBc64_CA@-7-d)XbUa*IacABTj5(g(SvSA1OUqF*)M>kwJ(EF`i1NyAuy zZtQTXtjtDMaN}O2)$Sw2TyZT*QK;F$To`-0Y77M^!3gcb>q$rRoIx$cQ2f95_aG!` z1dxw?RJsh+t5iM*-#MEz(3$vi0pf&OqqhaGZOp#VNwqT+U$foNs_0+)9Zl(7#qs3W z49d@5$(7~EWO@WE3Um?DEmv5I15>TLxd3h9qh~3I?-guqTCFo0N5(NL5Q$(~N(?YU zbhQw>PlHU$w(sp|H2UafUXZ>Bme1r(=VRb-2I}S=@q-qQD#J>A;-xxVBclDnTE+j1 zwO}SsS7>tFY)D+4K9=BFe~K{^+!y-MwqF~m>z3y>pM=~>x}$nS60z4x)@L;{JEoFp z^w69;4l4xv$7MZRhqTE#jw=ZDw^$AN_rLtYqIC8>8&5P@{K~bnJ;}|%m?OT=U&n%_ zfisD&$DHAG}QNyHNQEPY4m$b1rjqiTs>U2S2M?3qEjTL!CEci;d zu+CTB_1^iSoTL@&4My#wgAA_<%rUt?fm)+z1pV~&jPAGbPM%EUP4RLiFdB@u;Gtkv zL^M&B#Gw4Q%pMOZC=atV5Yt4J86NK39#Kz$4+ovFHX}A0!dsFjMO1K2BSpLOK1D~) zrhFRMi%gh9Dcn$TBW?x+;pXn<)B=*l1Y{?!Kgqy6v2KeAnun;$bSbi=1!ah-REu(~ z=kEUkDAs;zi(h;l=AO*Vl^`Cw<590(|UFRn>oOjPnU-xZZtD*W^&xgTzi9wMV(MN(IQgai*)P-;f zx@`wFsqDp z!yM01EwhaMFif20W`e8@(`;{?X{qaa>bJKdut30f;LFX;rx5h`gi=s^nzZ2tUoKOr zS$TLCMs$0+MOB8)&F5My%dNV8p5&^zwFUr>3a(&+3n)_*xQXSwCZ06>i#DGXO~}Qu z>=@C2gGB&UqMyTUDNBk6Fr=k!A;q~?bNIIoPHH~}SA}AlN{`1e_dpui-Dm`+-n3hl zXFr7)oT4~e&?GeXZ5&{>+ z4j5M8Z@_ULwh*QHL^)b_I9VP=qvW2gI|HU3hk?nUN-*BmhGkJWUTg~gl{&=&kEYK0 z+RsS^_e>mXIs<+vcQuB+Lk}bQY-+QYkCTdU}AC1kfZt< z0LP$-Z1?8FyxQ7}uEd-3S`oYRg{eDpPu(P=%oWSw_jKkWk@*6|97N5m41VxQuJKC0 za%6}M4x2Gj`v3p{2Tv31r42R#sY;$+laJkIS{Z?%-o&6kA}j46F7gvKRdc1u)gR*A zX=K4GObL)CadllgOJDnuimp&L?3^=P3&1tOYGUnkOIc(SDtNIe3JWdm((#@Dhag$% zt^ggv%}w*K0g`b_GMz9cIU*1Pii5gA$PF~%uK-O2O1D_d8<-P{cI}J4CVNnD4t;Kj zrtZ~Jlo$_wXX1mZwi(Y<0l3k~BKxu)JM?C(GDkX7+Mw*s^Tp^p$dfxTA`P8OC`N0W zSSpGSkfU#!w)R5<@oH*AI&%`s0Cd%{jg9zC4nP`o3UtMM>Wld(+}nUpCFV_td~C?* z`^gH?|LRR7MaPWI7k9;{*^X(m`U8o(tnixqzkJZJLvqb0rxSr=Y|df{u%Sy)QkfoZ z5S7PSNAq*}Yq+OL8km`Khh2oBX)vevh7-|XL0|y=0IAkLgCAVpIA|8ow;SZ0$2gW; zcxj;!2ZSVS<-xbT|J&xK61z8jC(>C(b4pLFeEi zQpEV;#VN^9-3z;?*!VcF`GJaL{w@9|pxy5c_=L%izfHWRm9|nMb zW>l|0xsg0&g?3;44)T5x8!(*UwD<0!-Gl@UTh%vBhOy8WmuYSr!nX&wH`gAFH zcX>r)((1C#gD{A#=K!SLZpEWtDEPfG#qUO8T1U0{3M?&+5PBRum)WHh(B-Id{}3DU z4m7MXsICznqm#IxrfVK@e0$(Q+MHDeoMAU*vOhBwA|r4XVtF4@5~BsjVeP%<8E1*- z?M%yLvX->;CnibynDB=SE!h~tz?1!wFo}ObV(uS(=uZC|M;~N}?DCVk5d%NPR8D$bdePOG&zCKrq!9yvz?=<7>E4yggAUN|S@1U#1o@Ap2j&$vO=}?p_U7w2%{iP%+ZD#ZHx*GZAL0jc*)QtE)0RQ;z;?tgS zgMD_eETLxZ=Fri9>J5cu%jaG9+n{ilt>-hqwbEalW!Q1i(4ec!}RdZgJ-l4PfLtQzvUg^#{vbjX2{A-ty~(5XRrF^io*P zLBwHVB;G;2H4wH$2>ogn_Mz+^o~@?OF*jrGDASxm!cl?(Df3@)y#gF6S{_vfW^HW{ zuW!uJ(w>>}B81+dt&RbqP_OzYUpcVbTXkHL45Nqu6%HU#!P1;z!htU&U;t+fCJjT3 zCi7SargZa>bnKZSPMFgm+A*3rz<+zRJTp{}6Xb(Xm&d)g;*f{{|b&*>NLDVzl`-D+){I#9w2z2A)p( zn+Wt^7o_`buZ_Pn1SNE-r~Zi+`+&QWigoZ=8I)Wa{)uw&C!ejpeAR^nr_`Dw)g^@g znoUg`k(VH68W3u;<}vfw6NDD)99(+3oQHWMUivx-3YOp&y>j|(+N8$Eh` zD8$@&k0-@7Er?^--4GI(J;C%LAwm9n%4JzG@|0-9e}Iwi357mRv1)UX)+b4}4+tH& z#%_s_L^I2w{~5FPEVP8tW0=ri$?rOkhXhW+X<>XRQlSRVCK{X#gNMTznNJIb_sv5B zU~%~CimMztDiu0!eNSE-QMDl=Gg85{<5OcGY(jbgcNF@l%OPdK~Rqa586- z320a(08=w#bM@ka_%qUG_VI?zy^3+)s84%e5mD1{De{%SQO< zA!<8!Zv(Q?mPhO<_6GT>=hkN`IS82x_-3o$Uq=T>R^nM=mQbyPUM>L&tnd0!@?olj ztCmr2%iUg6gU}#)g!&GQ8!+7HDY@{z-`~$mL)2I)o08kpz*xk2XRd`cpd9Y7zd99r zKN?o=z&>LFQJ2K|Y%a3r(;IaOJ5+OcTuiYW4PQjXWN{~R`_~op8Mw<_vF+E= zWL9Fe5;cvDCSJPiZf=u(791TV_|Sh7fNhpGt-ZRgo2>OZG;t8fjo{pSn_(fRhtCuo z!s9T$DrkzGf)PC*U9&H3dS4nKmp;lb&Bq&t^77ie^ca79{xgf z`1(Ga8|%st2kL!HD`=5SlL>jN-qcGpM#|$#J@YHoY;PzRHWzly%oSya$8gO&F`o4%# z7d7jL`YJrFn-#&WteFfQFHQDvDQv9h2CHsq4gy!c%?ZjhQ)W_b*v`#U=#kaem&72q zM5q9LlOZ{-uttxIqNDfMcCp#s8?dowSd@m@JDFN z&|eu38(cs@5_P#&a6vRj-@O0-(^j=e%qP|g^KKseRsHO}rN?2g+n02NJy@(4({V9B znMAM~UX-Z~mmyMT1+aI-;F|9!SS@tB&LAs6t7)zR6=RswKaru@W)r-Fa3PI!i5wep zZ}~CP(LN70fs}(o{HYZ?1aCBix+kA@PwoEaS@~q`oj&U7L3*~Apfx>NV{bacO8}CM zdR}GMVxw-)qP^s0X=8XEc|SR^l3elR3iSJulMAiW_8k0l4^U`8SyFNKit*?Q{c7&I zb)q4*_;-4+z%GT&1+JYkUV3o4eOA!B`co2x{g}3DbXzDYg`1Kk(9xA(bQc&xrH3!I zc?RBD>VHk`!26w^vbx#%wd&>Pq^&LI?Pi^z;eO=hSO-&L7EA@(?v2@LO*_oHtHriX%r`G2Gdm^gotvoeswf) z?20U*nkliaIT^7iS+(lky{SK0z5p21hvI$(8`0)6f-jPdhJLMld;vjoiRz22trCDO2Mb*rAb5^| zh!wK6gBSwO&NsBh|AK1;94Wv8E?HuLC#>2`BlA3MJkn3|BR+|=RHMm(w3F)MAUVnY z8Ir|dKV{_V4c&Y{&KEe%7W)+pry6yD<#a#Yl^vs&)6Gw}6~=10;WnNL19!iCd2!Kv zDgfT}!cCVm8ZpZo7kThT45XLjnoK4SSMBnc9-g9mS z_`SMH)&d)xidI&_W)BxDYI@+vn4DLcMi1^eyFPh4588iW{##qY+DLrSAF&jpyycmn zu5taCskw~m#fV3zn7@>NMlG#{Og(P@z)Xfdq5<4MXu)XzNAG3Fni6G=8ifo;3d}d< z)&X9R@W?D}6jd%9)1UUC_Y*aZJKUtVC!87$}oXV@@z5V_oA2FE{a5# zQYo=b>q2$fcWpIdrWq!k%V}_*g>lSSw$qY*_#71}-pBJ*w&u-oV;dvB*B?Jl?5L}g?)5? z?IChoRsA?Fa-o6Mfx%O`0S;U#p^}2S@b@+e8 zqPNa%qATom7!yrcZBoaZFhrc^10PWPPgRu{S{jsak?Y(!BjwY!Qg(4`xE7){+$kz& z$07lFQ7fk`9Hw^AI$p2>wLk%BjRncb4Lg4THW#sa)o4)k5V0)+D%_00K~h^vAM5G^ z^(Wlj6EHPR)sTn`@y1V}IRNUxVG0yfd8YNoZ)RNn6n)}J8#-hK&d#qvy46r_xKpd2 zlyMBPo2BksE{^`?Dz%fE_4zd{_ZN9@Y5<8Wqv|^8^FfM2G!o+7pj(E`!bk&3O|wQ> z9$5tSPKh+AU5g%{!xLiwmjHchUzjN?JXKq5cubT4&m7Cz?N2SHmr6#?zQM zr5+wVp+^Tv&u!D)qer?fDzTFB=m`^5Ah7OAj=JqXV^Et-r6{jqtXWq4HZbaAos{id z6b*iR{8&VV^wi(y$N?M}rWI(!3dZ}okhZlS*4r<1*g2@j$izFxwQl-T~_|^qo@&eSrh*+l}bg4 zXb+It?KdbF&19!~)#HiOfC?jP;%X@cg8lIn*9Fe~jBJpCoqlvx;VU{O=58=>ZKG`< z+836lN#t>ESGe<0ohDaJFy!p`dEMWLJ-UC^m4!c0$jEqNy^ znh&tsmXwf#vd54UB*Dvh{nK!ohQoozw0ni~JLp4KW5p6gOfAX3lxT;x9#}nb^$Hl% z?^o?Tb!T~|%&lcuWyFfk^87|8qcfZ3fv*>-&8kFJ)$heTTd&+(XWDFBn=5{bH@tOR zz;5CyNrZT*bNC6Xe)w);Tb$(_9Jus#nGIr$mm*58w{f;;O)!Atnm1og=d3or6Wpad zWEkAMTF>o_>&;66bvtK`;nvYKowyb0`Cqxm1+5(W@GneuVMytT_k434T8=YoWRf(U zV~9HFtY21=OsCUFyM-A;vZQHu8e?|X#zGO)KBs3ND)0<|JITEDNq z7Z9b4Y!ojP<1rR{lEiMzO$;zFAkiB{+(_9h>_p)h|2E}D1=6$;2`22TZWJrGtD|KuUZN$zYsIFb>_Yl`$pD5=} z`7}x@)3*8(+YC1}w$J`TFkERWu-Uz%?$AtCm4|J{*IAjUbn81ZDMXJk#;R(Pc4>(V%6NQwYqJt%!)gS+4JojEw1qJd#3HI(ZVhmHGqEb|bn zFQvR)VSDfTXTYhidtGoPFHkCJ!M0obPWF`*T{qEeZ7#^MK~hs_fK#n6T}XZ>;j(B^ zsCsJw zBYfC5s$znI$vkr(R&6eDe6e=NR}2fxnDPcVDnMSv&~7r4GVUx=F+e8=;GL5pgQe-d zy+qFZxY>YlA?Kmg^X4L}b#7dzHR)f1IEh)XQF&%V7ZZy%S?r|0*LagE@5OsUs_Ur<-Z^wM;I!Bzp!4DYIpMMVkS3O00VRbRd|{u$4`Vsj|bVc?^3;jWdwIIjRp`>Zce zf06^X;?X3};v2{V)tVYW~v}ok40#0DZHE!6W{tLaGRQT#8ATLJTmJ+oRj}bFKY4&mL|s z6r0X(xsg=sH&k(_Ry^D>v0J)5C>7O}F#x!wXX`toOFQsg!5_RK8t|lV-QaVyilgu} z#k}ZXREJCiMmsJWW}BMWI@dxnj385dn+$mU=%x1yqLC%kifmJQ(4BUj+f7)hhDoP# z+FU2$TyqvJwB(dWsmyytKgnQZs5v-UsYZ_&_~F}PtJnDIPsaKymaEatUc?e!WJ{lnI+lx=KmnHGd&cBOXaQ;MIWDP(UX};P-+T48ZA)x*m`5F_PYr zJo0bdL|<;h@V(JXoIO33EVt>bXRKaQ#s`S;mgt9fi3kD^6M8)J00t@6B}sf{lbQaK zib~}SZ@|LYaw;DzGFBGWs2A=UixBsj@&Za7kyt?#0CSaZ8izMNT^eJM?c5(!`njE< zWB_>pX^!TYQ&-}vAkH3-`Bx`x3otj2S&b=w8lW2JZgFg8!w2ROpjRh1jv_ z{!7-W*@XNo4fZd#I47YUq*YzCT&(r^$@f~%|L|9L@z_%i+07azsQ89gIDHJ`5kVyh za?a()b*05C$5&@}Wlwkq4!0t2lJE~^k&0laG`C&d4Vp_1i-$B#u~uU}otg%x6HY&f zbomZuVr*Me>j%=|xOXc$=Vq`h*+Z~m_mb5x{96O>w(eR0F^&r>Q!I)ZqpOXITr{)_ zDq9_0w#hQ@%*dfOF3$l$UA{!ZZjNeJt0hJ&Vax}L+q4TuuEV#e(DJtC&OuZ8|6uxokyMbpO;U{@$ zGZmX@Je0Lw?_QwjQt@4lNuaAv9I?h(>r51n%aimh~la2rC_Zq}O8mS{7e65)i1 z=ytQM3{eyh&fMhGOqHsHz8OgN(Q9n!ELQVat5*xPbKS~|eEnM=%>b8D$j?ol>4Vlx z>2*9}KnX&Ja{ebhU3xY|81>g&Z;Zb|Q$c4Hi~nVcFO4wN;A|X84K$nxU+B?$y&x0F zf$;QenO0JVzDRa@S!@X_Q&Z!Oz~T5+HEx~=^392xW3V!{Knq%8{$_JGoYDn|qYh&v z0i&;d4C4_&DAI(jANO^j#~|tzlH(A%a-tObeMfJxeX-;8NusgM6$xZ~4o37JIizr{ zGU$8`qSN_JJt|io-hhQ|yx=R<{;o|ncV?`r@5H%?(jK3}J&>jY>ESE@3m^0;)E|ebtv_SN$MTkv24cL76-*EBJK>ROepLK(DsG5m@Z4FltFBU5 z_LXAHyCJ9;==U~!!e?+}j-Z4rQbh3{+rt0B(vyI-_pdnVu$ii*Ppts$|~v8XC;$kYAu|kF^g8wvQ1{_6Q?0K)Zz>B+aGF z4d0$TkL>)RvFSS<%e{(o8a}7Hf`BNn%Yoz!iZD! zAn~^+V#rwPYMrJ*pU(6@R)&zj#Zey^d-8Wa{|^yIYv1j8p!==G@=nC6f}3GZtCEA+@GX1iP&q|7S^M@z2kMU13KHb!{n2% zVZZ4Db@bbmIiAK~ zw`PBI6=LHH3536ToJxX%mi)+-;-{THl*Mj4pXCD`0SSNF!Mu{utclWKl^dMTb~c|n zBWoFY7;8}6@PGotXFYh3fpDaGNrAK39fNF(@ZxtTKo$;Okr*p@b-kzk<~E{fpyi#b z=qhtl$dVv1Vd^{`o;B}OlhBQH*n3J36yiKpphfYLYJT=!(ztHtwgLxWDr;$H(nPeZ6XA8TAEPgxK)3J)UmqBt%aVH$jmd zH`7482Sgt`qMF^5;^F&b2ec6ElSYjY4bOFrr(9Dt5ZoPC4M4`mCNWJo9m*Wq5tyTl zOAqNGvxj*tgGCV;UYwv!c$t(xSdaQy~ZXw`^D6|NdWp^`J+6Mwx@i!C8Tm z`$X)0vszIu<%sKf$#GHMa;3nr*2l7B!hL!#*!|B(+cgd@TxS*^Dge^}di zF^!9<%i3WZx;(wB#M7zDwHAqzi78Lle=UJBU=GdCoqqyf_C8@e)Mcu(@XA)^<4(!!@mMGw!#@{Vx(ciz?aca_X=e?rMFeoVvzPn;cJ%3^ zjry17j2U#&b5oydX@e0MdtQ5?&mA*{HVjcULA8bS*ja{Rqq{({?&>=*c~qs#9d|0u z!w@gthG?)%y924CV}bX6`lz1x%sI2`p%Rnd@~6@Zi1rTr7w$CiXfYdktpAMwK{$u| zHhQg<602HzCY1}s6(CQIexWiCIOi2*ViM}d#{6R^gn)q;(%NfJgtL^lX=2Xwl*=v6 zY+$AqCzt;^KSfDJcnbRqAuzPvvNro#S(6HBB!1uG%!g;*VhOuSq#dm}$MpV^xf5?= zk)Gv6NOZoW7xat&+4yID&Q6$7%r%~R(#D%59f(HFfgbq}MO>nE-!jC=ezW(I6aVfr z?FEY?Xi*@8bXh>re9-wG059I! zl>5>uKAV6GU^mo9JJ&DS_Ngp(3cwPOk@M_~#lQf@ZORRh?>rn{Jw?Bc&*|NMs228s z3K*n$C-^M<^FDKzkm$M@tI-wJ!3H?a0l%ZB_hdm9JGfcDTSIFhWY^d?cg8`t?kgs; zQAAgy*I|JKs-oHgm1Q~89HmBtbx}r@&Srhb>~+DIpybETzq-TV&qJrSiTSG|(2Vqg zPO{Dg{rNpqWNW}HXK(poGMvg-O03mW9g8o+Ib-42Tp;G(woswJ798Z7|JdLK3R+9~ zA>g}BdF(<$z@_5xU8}DrN7v(+ZUMU_dHJu~CpU+6Q>7=xp2ytv=*^nNy`4e<#CAQg zN7?9UN8x$9-o{>+#qQ=UXuZcg@x+T6GZo5gK@O>A<{W! zEKXkqThBQs6Fs#)7ywBh3Xp#*w4ghtjKMZWY+uL^r; zx}_VirLC4qeZ#w(#$Gt%qS~n9H!Q7}*04WfG`htV9@`Sfikdn9Bjs{e?Xr*hGm&a* z@|6Mb&Y?#AN^NIh^Zb{wEkeuq#6`hgln36@s}1&1hjc_ZoQ;w6v@{`BTn_UCEdasbA<{&rJnTEa z>no*G>UO&bx%B#V%qr<}Gb?iB^C;5V1pw@OH2>SWC6PCWDU*G3dOyT*X`q8f zmmhEY$M6Gu3dyjGc>yyD`H`9NI|r)Oh;X|>6_9aJ0>w(|?}*bg-HB`ae+5A!>WO|{}o@uf1{#l`p-;DzW{Es;*gHiQES4fzjb)&m7(NLQ(**&^d zYjO9>lRyOb*@{e~!@x}uE}#pfz)kl~8Fx%!H5Dy7?iQX)@T_F+M@O@6?VgqAa7Av| z$}|o$fi7pJ0wo?Cy>WV^s~MZoN2GFPf;TpEc#diKfn2jcIw#+;j{j&tv~X3G zV*9cP)Z^7_iFOlvC|iI`H4}ze@(h0I@0$*XAK2G1k()Ombkfw^8yR9Z)8&W~7jU)z zU3Lu|)MOz|o#%>TTc2Rm&9o-S;&ObB;Tv`mISg4pfZz34X)_6i_KQ@7yf_lLlu~M8 zD@=3ZMqGH<$+zURJh!K?3oFHj>$<^;N2@4lxPf4IB0qM=O>23x4+%o#d54)=da6}> z@Sed~DvgDR3?b!qgQ`ti&E5PdQ+h@-(_d?d&}2)oCEFm^IChT|Vg6CQv=|e3>HatR ztRQnODyexix0C~*m;GqN$oREha)~#N;_mYQd)6}J$`=!bvD<~0s2wLnGlH3aFxBr=c+?PDOX3!icM**K2 zF~pzEuy+Gselw7FqS?<3$8x80TxkKWZ65mAp~ ze`Mv5HPWUX-#l$0B9Jyen`xQeRH*7@v;0pH8R-prL+B_pmQ!;W1`V6B_i-#qKdISp z>R-WEA?X3*j$F=+*~vpHHRo$3U+zW@A41h(jCQOt*tdA+8trR^vPD>>y8iyX-z_T*hF(zSeOeqOz z`uZk!*(W!b4MixjH&qwJx9Aa*)VMJkSSvhi+ErhpZs%+hd=k9Hp~bevRcI`I8xJ&6%R>PPe^2 zc=6YyW;~amJ1eAbaaL6Ah&mjGSn0nJnwZcJ-TC^o@j;h=G-QL0Y#`s^&Mi-Nz-T&? zw7z7Q9DdZsz{&$KYvm<*>so6?ANW~`N+_FBDV0Y6(QR-&n1{vR(~Df%FhNS(k=dU; zg40MgrT2Z6N8$F=Fgj(UzU>$gL|z#yAj=XKsi^Byr`DV1s(n1a5`veLfAPpIz*@|q z*M9-F+*}d6rj-L7EH6b=2MtBByPkU#7B^-ZL+hWP=n++Mf4h$Xj_8Op&zXR}OhR^Dd} zKg?;v^KgV&g$07yojh}v@(4de|D*w>o&`RqBhUpq= z4w1{0A=5cd)z-t_N--k{{n3;P2nV8_kdy(nD^50V2Ctq81!1#NJLaY!$#)|5dVw7) zOvB=n&;@zt2js`hC?>-%P>)}SC=0Tc-D6*_0b%i)CYr2wX3TV88LLH&*y4$`FN*g~ zEe-p`e&j+coU^=wr*p*`jkPjxPo6^;Q0sxjfACuN3dLew6!(&oyZ%I^x&Eun`A74# z2Y2y2Iucu>vIlQI&SHgpNdepM6BurynzHS87xyV5y60JYC{?M21)UO*cjZ_3dxBQk3of;mC@toz;^M zFy}{L?N-zX9B+WC$c3js4Qpchd={W$$knjt&L^hRsW{y3-RNA|C@os#2*{apM?oj- zREwIC!Eyuq6@Hy>+C&jTAc0T(O=ugu&>H{a@a+Hlz9PqKl zLiyo&VdR??q2~6_%>XHhM25u;sMdGMHL?02w{Lh5N@}Ao_}^;xe?0(&(my3n`zXuR zQ97rq8+(@%tCl*0mAE|IL<>M>bBzx4y_5FuAyhTeJIQ{*CFMUwQFwiLp-+1B>+pgQ zKUC;J%~@*r6i0efVj~1Q)~&CgNqwQ8-%Ukd z1*s}0^J-f;=>WXhB$Fm5UcG^iO*{Wv&NDcCi)383Q6=8AFD(3(P?n2p} zXv$*~O>(8Sv?qRer+h}!EW}IA8`5ND_^paGH9Q3RO)@0!nGdbI#PASLEIKhwusrdS zmw2vvf9Q_JY78OvKLyXPq{B`o?ZA~9YIr!(J)vRN_#)77HaCv)UdFLfPpvpnRVXi` zIGN{&QM03e+UQu>L*i|a8)LE_1Lr9CK%-q6kHk;X-CYl@nf~F0n${f{Br;VlbOX2u z0AxJ!w~sG~)kJayB>G!Y9Vl~28vbNfq;bw2QO_i;eJY`KvLL3HXgs#JYdT`AZM2wj zW;Dhy&5=iHrXq4Hr7O%&0Z~FxInhXgv6T$~2xev$0HQ8 zPIEhV5#7>7$VyS?c^@1Q6$xreUVd)4rvIa3Z7`zK4o^D` z$CYa&BkC+XKRHAYC8%jYNW#4LibNU1Ha}fMO=2;u6^p2fiG-th+2nP6>|aRINXLd> zc^=4oJ0_+3=b*Z@HWyzMgviK2LM9}44bga~)RXRALO5gJMXb$k#w|)yw}@UZA@p#+ z0kd@`^do6^9aABo`5*Pp{4j|G;&xA-(~T`>E%{Oi0`2R~ro=S=6Hz}A=22!sieur& zIbv-v8}7~rGmNDp`5InsWyG}vI{jw>Ab7l5{)*i7IXZLfjf6IGb+Y=w3FKJKmwehk zV`s3n_iSF;`P3rWozrx*?y#vOOK8=fH-nQ=tDwogH@43L;#7=`II4Uob643PC9M?3 zk5~hlQ>h1={Qh+lgK|SEjmmm$&XIu)oDI7Q1XYcbpw#Y2PO~eU=#FPGMm8UcQc1Su zVk`|;B=O-ugYi(1vTKH36oUnej8dlM*D_cnH&)Oh(*+%z8ii95@u)pU+U#-)|C=O0 z=&4Ko`vtH@3@^U#3#y28*oKp`w>@{rC#=mGgU|ba5?8tK4|-GeFz|ziUbvA*c<6P zZBs#b^0#2qUUM!p z%e82@6=HLR>L6G^3i!hX#(FLL3P!+e*VI+fvfM0`SeIB&gh!U=us6R0Q85SgNwA*p zKUD#aX_Hgj{2>%2HoP)?Ei{m|bwz>tRgacc=Iy?IyLbC}e*S#U?*X1p5!;5m7JxrtB({)Y@wt=-sDhPSl zY6QJ6CVxi@IlYrA%rT#F2t!L0F0qpp@j)slXu#r!Mwhtn^&2tm7&mZs64)okJH=Ot zGaIxf@e<`We&HE*X`D74Qd5$Y=D9bG_Y{-Pgxtw2G0eV#8b`IRATB4;X>eW^{IB`U ztT}6q*aS6gA!Qlx8^f+qM*9bgScJkjwelRTCW9&86AKCUJ4(IA08_o+>?%TB-Ju%J zn}ey6(n>7JHlzc^4P`fyKZP8k+*_b-+a{b=ns2U^elq|1DA(B+#*=P$l75juiE$Q$ zj?bxyTEgL>@9jUI>#>(%H4GC}b(34Qr=A1dKNgd*6pFRXTejv(dqWKr%Vo3#KzeH8p>-vDv`MuUXm^Cx!vy4A6BASKTW z#v~np6kKE_`hXBLvbUj(vtu7(R;RZ0A&wi73sVr$fBwV7cY0_Fu(^bE9`3feZ*uo4 z#f_y4+a}FGPa{5&jktNtBY?=J^ZR%@5@zZ;ASH=wt4s-Y;IH#`2#F_!rnqyJEtO8p zOF;6Fg`ANo!h1dW038MN_ z@k#>WGPwmiMzm1)FZsK_F;*5IVIW5;=8ikFvR1bxq7jEV-{Xq&R7-#5DIUjv+ucRM z^SSMJ<3w%1zDnr?Nr=eW7oTVR@~I2NGFF0;RX}@Yi(w9+5gNpSJOkF{H-DuX`f7uN z$EU#i;tPqM5^OS{Arh@55WbOj#fS~$^v{TK?;pyr~@9(gMeTsMk_8l}SAnd`L zD!#K}nXtsK|MccN2laDl|0Xg^>MQ`~B(iCfP*5w2O#LC`@q%`g%K+q7L;`!kytCY5 z?HJ*wa>{I$9UoHFFi*+{hh4hpFWcAw6WV7$s zq2r;dRm>z|QB5Qk+H{$KOQs@NV;9(nPaWB!tNyM^0FDF(*=gGP^A^6nY4eWLY&!EX~ zvs8FYsF3SWDtC4_{%J6h(Jp6Kxh#d`74@FsPBrg;q5%Lta`8bw!C6d9W<~q^x2VR) zH;~%?W|7Yt%kf|P+uwVjY;s}gKM?;&up$IX=FX@d7x*D#8h{28Fki%;s>KBc>8d4n zK}|D0QvC`imrA)}eRA~NU!+zJue>|`Mo=u_AMUZcMnz}g*2@}J>u%YFHofU!OA;pG z*0;<=W73rDjBX1s&+OA`C)u&Qx{R5R+jX9gM0v@2inH~3MHm4eGSAKr-BKN7ZL|r<#W678-Uk`Am4PrR(V)Q(Niy#w49E1{UNes`|vYWt3 zZN~xZ5)f#uXf>vgEo0sYo410|Unp*5xCKe#+sL(|=9$WM9j9 zP4>`?h)pjbmqRW{Ng;D+=5aW-I+FacU14iUU_BaSb*kO3-Hr=?MIgryUfc%0wvEqu#DmZfwGQvcwKKk2=xH)?)*n8);aX3c#a>cdwjFN@fri~H_K+d{Wq&mc zJLS5%Wc~(mGGq1z zq!JKnwRFG|$S0T{dpM^OY(NO$G*oALd&8d2OzFJ|0!<51XUx)h_;;vbo-@uhENXhI zAaK*OyoBi*UmD81WQT`?dgpZ|q!w26op-wgV!wxXoo;jeS44oYdCZ9uN~t(H;}tB6 z4oGH&_klHM7&al$9FECNq1wTE?)!?$fYjjKz5@=1T?lM~!48Q=;B;$&qnc#pcAM*R zhqu3`U&=+HD7RVD6EWGKLNsL*e7~i%=Z_R~qGWBnl@7!FmCES~ej7EsR)IoRHuZnf zUtOYV9n||CR2&flA^-G4HVrJTon2sxhkW#Sa%a9lJSg!5>Ron&w1-Q?{#pV7NpF;CB?KN$P}R3iC**m zIdP{(&6q%%8Hgi8ueIyES4G�}!LsB*DNd>LJu24;LWF2Z$dzT4VhtI10I35Xmyn zZp*aD9@zw)ift#H7%;rsU2oM^X!+?LV-ioonpPCuO zuo>IFc$*JqH?SiI^B1Ny_OxPO#J87=@P5(5Oi=(&b9)zb7*&;s>_7(3TpZF1(Pc!| z#*&v-PI-;WZBhSTqH`IwQQ{e6k%JhIm$4ex z@zoG9#uO&ubs2*p^y6cy3o^}j34t%<9D~=CUR3#dC@$mE@s?5nq=-rmnV4L_gvNUO zbfVAs+c$M;$Onvb9Sq9Wwt#k^5xc0jFCiQL7?Ed*Ix2Lk>-OPJ+zG`E6(|5CEazo*{iAi!s2fU?jya+@|>F9aE_(e2x<=KUc4ODb}|}*vgJ! z>1^Eq58nAP7Y4Si?+5J;GlQ$rOk(*j`5~-t74fKn4({fh$#zr>b`(IF`d=Hz4 zNeaFoi`k1du!`N_F=L)?lQuSWHPo*QN4_e=A(CHo@SZgl84@f=dt}!HI8AFD45;GL z1K6LCdoEPPGh9@wQlPOPLI2iQ6 zQPG*m&&xcCW3S=5MZ^10TLIq50Cs9dL!8*8IUgD}9xkYeAJVc`A78}#?w{T$oicBM zkEqKdiU9wdfiqo?GvTa$j1c;f>voCxJJ^x)q4|>kK%rJ#zLr#K8@6;a+xt@IZR-tZ zgIZ53s{ecrQ(Bi3kp(sF<10(@s&umP4wX)`^ekEn6mfrKN`92W9XQoIKW6HVxkl(YfK(ApO03kxKWNuLvkvofy$k1B@^t%pd`^bJeU?A8iUsxLac}(ADR{%f;4bscGd!AS~!Hc_qsV1_m zfSBLhxv>Wc^7{GWDk!&F_aR6YUTsWVc^fF`R)5Y1YzLvgZ2N2h}MH zA~%$_#aj4p`j>+PO>w1($_g%f3TyGFmTF(8aB4L#2%tj{9wnSDV>Dq7q##oE7*tl7 zO3_TKy}8!57Z6EDf3{R(X;1{jmN5sy2mD(2d;*m>zq8Fst#k~ zbU}%8Yj7`bAcmAB4x=GDMjnSoGRj8iD^>w1S)m|}P4Q%vAa$rE-G9u*oM^>N?t~z> zJukmQq=9zE7J8_D8}lgA@K-PmbRG$2orMd2#D3qfj6xhY?_YlaKqsHDM12z8#P!+^ z;u4=OnsnjG`1sD5#to}@ga7IrdtUO#TAA!?+voHnz~Ot-lJG^2^K>~35%x5nzy$m; z4W|-Zr&ZaJiwrb-1VDWxZ02^PM!MU3A-uD9N?k+I^0zp|$3nU1S}j1C-Y)ZhM?!ei zsQUzmuV6*IF6aP1yFIZHS9NH=M@ouLIr~6g#%Pt*!1S;TaqtmjLWQ#^Ww$l0mJskR zyaWsU^@|YH6*4#}tI|N2X!m`tDdhoUW?&v>$7+dF6u~VOE(&enY7f2o-l>Gdm?E0{ z*M>k2^t*<(HxNB_H5^f7*cTa%fL8kQPJ`F@SG@_T7{^nos+K-WOP0~txn=wmWgLPE z<-An7**_<`F>MbWfUYm%Hy^T#psBW52Vf5$I;W&ui=7Vjh%`O#R@m0d|o8p2x!rI-9R>uBH7)Fn~mS2kedPn8XzmZnk)F;*gNXd zC#)4!o_p~v8}-$Cc?5oq{I(UppdP1v{7}kl8u=P`((t4UE~r5@UG_tJ<`+!g@`X1? z^2TnK@J=AtRZWiaZ3gJP@nZ5vNn9~H*uzWv*A6Y!Izzwe*e05(*}%b@sYB{3meM8~ zh1^(dED^H&vNLtCIKs{vROrR1AeU6HgJB0hA!s_&z^3F{&2IP1)LCdPy(dn(@%`EuTvo^;X~ss*3?&JGFiJ5K%Czbv~)towb+CbanDj;g$1^?J`dy?(46R<|+!#zX=1gNAYA6@vfo%0_0I>(x(lqJnuSQ6O?GrIz`G_RhY~NaMB~Nbn?;vxZg)&%?xjwyw2i$>rdKsvgzC19ktS@EaBT# z_%HYztU7eopG1?8sAhITKO+G;|3(vPU`f>fF^F@%sT&4vCt%aCs0cZI(MUv*_J}np zJ0cCWw_%oOvf}R_`?Gzi?Upj1xh&2Byg5j%_V}3WfX1YHm*pKSCDt0hV3~MQqi_v% zIn0*zV|MCGk4hXu!~t9tOq!zNW>mPh1>sUADuKC|b&*K-^J`3~4YBqtl?_9k<<#jt zP!Xl7y?;6A`R2?dCU<=>Ztrz>%r0S&O&?*c?%EYlo6(Kfo&*gzoYEF7I4~3u^h`|; z5I)z9Pbs_#BG+Yj08hsB+hQl&FX+T2H{o77c~Qlmc(QCk(9&LU%<>cmo`UNX{yCX7 z(A2nDzoTvLORJm*?{0H^@5z$Q-)lBDV%Ymr;LcrfXtDYAeS$MC2;YVUhmMV&$ikNA zSm)+R?!hp-S+}P0p&{$*pq{H9GT#nyo%?W+8!%i?%DQ{3zZG$vyh#`>dmM(}Z{S>i z(^S%#IUp&q-7Kn7j0d_ux1#$s>3L?dZOL-WhZ$rj`R2MDt{0G!*OW)h_6>^NW-VYb zFx;Fc=okbPXOr6uUC@}qXq<@Zn=aO}qQdNS(Xj-TOE?LNqj<_#@Cp>FuZsNIer&i{ zojI|a7d*q5BG-9XDAug8%lG-2`drpm&wjUT$DeE6nAEc7C?ikziXHLous)kIZ=OC4+ zy}KX^FsDOi$Bt`dF;^3V;)d+p1hhzG2t2I}jx%OY8wwoX@*NrWwRzbK+FUB@r%O|t z*q<%hGFfP;6-#v?rSzOw8UU!T&sFDuDbg}-SD8;(OrOhK_6Eke{%diT;KV^Clz6BS zP4p#1HvJEj7hDqgeEITT^!YGH)?^)^ggEq4o@!>7tMwErQR)2K7-8B@(Gv4I#SSXi zEK_SGB^Kqj3iqt`Q$j@-%bf@{O|5@<`3sD z=xNolYlc20$(=F6KCW6@+O>iM(g=jz2S9sS;|sncVMAp&!As%OH|eM&Gt!`%b#?B_ za=BPE%JF{!K%%);Lsk@NDWB~aJ>_0(*A1`4_m!1}qH%wN_d4L&Jdb+<=FVHdz9xPB zEs-HUo`XguNLpiR!M90ytVmy`A4&Un(n>zr@IRec?J=_$aJkLP+;i;Uj1ZfdER zEj4-fbRuVrP|@z48yZLL45+;}BO$%KZSxiM+GdCuBdGlca^D=pD3X|vzT-J$%9l+Q zZ@$^U#Yav>-o)*zEt73w)Us1=H#%;6-K9xZ#Suz9(#&6jCNur@`^=Ij*N|5|yZmBZ z<8I?HvB7pFDyjX@bfK%&RU79<@0FgJ7?TYv=uP53q~)+A_Hx8lU4p49>1#NnnCV-# zzzvQ}he~!%5;1q>q1Tg#d(xMYS;2Yq#!bb65!OLg?s$K>BG9A}PG+785Jaf~)2WmX z$~2>lV((QB<~|#PGpa%E58ebf^8gDqM(nB_E%s6$Z17V5ac(Rcszniv<$LpS0mwR5 z2D4K#U{h#Ghi8DhB5rxG`jbLNVmnR}j>SBIe70VP6Gf1#iHBPiLmzJ6RuIR`BMTii zCIY^Ie<4i$`3d5-t@>I*FYwB~azKi&?OU~D#})si=J-dD4U)->N#j6uI zQt=eGW!W)O2R=t1j@C$4aWiKqLhw;?qMG51JEoa_r`UB;ajqy_ zeqpWiW8y8m9$n>5Da+f>)=^3c;p?Vps-aJ6l8|e$*{!%@kHl=MtF1eHY|IkYSVvUD zFd@S#&tfs4B#4yE3k@m8BSgj9!SOYuAZ;~Qhyhak8G|Kl0hJL4JrZZkuyuCVdL?My zKw-kZS`!u|ZhJDiUln+q)#8}J2b~I5^bmDa>O@&^^x>ADCqOk?i);DdjPUeR$pf>e ztgo;*fdsjAD*pG#_+ccA0rTBgm&rTDW7Nu+zsjW{p47MK+yYk{i8060ti{Dj$pog2 zsrL?Zk$?+6;{ z%3?%oqFR3WNW1V4-g~$4v|#%QE?oY833WJelkz9BY_>h%P1ngY_R^c*+#ZgC;a?F^ zH6P;m(ZF^HER>lHJ=OhXOSL&qN`$hoJi0jB;0?)CSKQ_g?#ZhrOr>@?BPCXo6+1 z4}w=IIN>l5aadA3Zp#XtUTnPjQ9dHakrJ089YOtMV%Egz{4^e4i~8SZ6LiA@V2wcUZ*y zPB2VZGdxcL3nh(({e~gn^oy|V69NfT0a1rO z7;aEd1`p^{(a*G3CB*m*nd2l>=@y%GP-&|1`BlUFp#k5XmNL3aUIwZ(n_o5JqldCk z=3#Nvz5sxWi9M#Dm^#jCJhrh~oq)nGU1xMYx-N*r1$2xSCO>4tV+j^*l^D#J)9fE<1tn@8 zW~d6}U!VG@NMli-WR`nhlA!Uk=BEEv7YS>EJ}QO^w@0yc)Zlf!tqSjIYp(5b$N+7FH5N(_|PovMt_GDJ(7nM zt=8|LoovqEH)kX`RE}M%+m>^jD$~Mw+lLe&v!3sSzR~}hLgKW&eY(h9mmO=j$pr&Al-yVOsaCxf7Z4o5L)}NWP9Ti4c%Y z{xc@5UcDDqds-)GJxFw74Dt@*@TYfVhr#K&rx%xMJ)!Do4X31tMf1u&r)JveMi2{u z3m6%HZrjpTf+Ux_{R5pG9MoV?AD7ky{Y=Y?L@ax%nDjdrR|iW)dG!n$Mw9L*2pJi^ zZPnGBry<*)y-p3jO0Jf>={++!K`&gIa|8hLvQ`^XSlL`^60!pe%BG9D^gGZm6WZRY zHbF$B8t9!sO?^>zCyRoVODm0*aC-`8N$(y{gj77C27JH$=c#wa8hk{>1 z?SIzfrV>!oWo_8PjgcfE_LfI77nnr;sod8QnypJB7l3f}T(kYXsb!12h3V3A%wVAE zdu5=ndJYtVPt%Xp={Mp3ywXzVa(3Vf0{%hP{PS?WvBI^+R$iWGLZzv#(C5B8GdhkL z-H`|UP$&?+U(sw+lkTRR@$+6SVO3d+K@c6m!ZtCZ2j$%)(pyU&TZ47>htRr+Moa8? zs{O_X@hkZ(ytI{b3u`vM?O^l!69wd_AIZ&v@gEb%rR0x}lJJj1dgU5DB=QFulHc$s zG^vHqwe5_OEMf3OF6FW&g+ucuPwGcG=#Pir85awZ9CP7-8+R&Qy>b!rAJq1K?vSaE zpF&7Cg&AWrWPIIz1@IfrLB{!($& z@W9GKK%;zbcqMJ6;-MOFuUOXd_Is=@bFnxk;gO%FJ5s*y`e(X&F$J%OMgI~{2~y#l zh{@Z^iPgbX2nHKr1ou_TU)8HTwk>7;isuj82w~9J6N6xy2z>G3?It;FE8X`F)(mm$ zwMhB{CN&YTcKxnZR5;_&Rb9t#Ie+VB2_u3K{Z=!p@&p1^a%PYLX6zTUPgc56%eCob z#%ptXA5}^o6fpPa9d%89Tp?xATnAT-V|ec~BVkl{we6^-~1I18*9ML}e!E#|8;Bke=jiC zasTf9pR@>Aw@Vas@*@jwCcYOTUPYsDj5_2IsOs(L;e#!9hMRF9C?2kNR(S>^={5{+})}1PYNcItvBMgoDx70TGsS@;f^X2{6+TL?s2BMaEbX zc#Pl0Dlfq!FKT3QqB~v=^o>iIaV7?GKm9dl05t}Ze>b7(bHP64sBhhv^UT6rA7Ve1 za4W-1nIfLXp|Xx3!I1)9+6Hw=fh8gQsMvd%mlNTmbV*L!za~+JX3NStfy+>NR2oVn zrUOA?Xssg6lAWrFGIjc>a9kSh{dqoe76A5P~v+V=zTk0`TZ(z&=3;@IH9-y8eT z>Xk2DAyB>CN7+d?8T_8{ATqjekn1clO4BpIuYLE~Ew*+I%lL;{1b|p*@;mqc$XTaI z;B_R$2sq`oh^BNo7gQmCl^%3_IP;~#S?z-8vY>cg2 zQH7oe=N#F0yVcD=!*A^cy$gfqRjyFI0?ztsDlD(-mUBsUGAenj{dJ{wWRNsEV70$^U8ZDx;$A zy8RGJw+PbA&y4V{uANSBl}2qH)bQVz`!f^>IFNJ!^9&l~ry^?thF z?{ogK_o=gm5)9EouXi)R)N5%DFi8($8I*9GJshXty5=L+OWROpEx3yR z#;G&f|E12dxmc2hxuP9&s0!?b@w^oTE&s|WwaJFwKv1svXhKBhO=WpG+SCd7F<($v zjU~qXJ032lHEMOys|vFyn`6y_c6-bXJd10A74M~;f+A~$*d{Avs4^;8N|rNc50JgF z_~t$sO9DwN-c}b#iY=pGoEfOr9oVkQ=IqU&I{j5-fcAyj6U;@I#!1`>$8RdqIM>D; zGR1FMA}3N@Y0Wci!r$gQ`cFRlEdj~FZB*aZS_r-TYbi>122ooemioN;Y%CSG(&iU|p)~y;TK$`6|=azxe@{Ug)wrxX>Xf&%E zdL-+H#I8O(Lw75{@I`|gYxT^J;XEUEjdxUDRMybmC1`sF<=Et{SmGtZXH0-cB#jOO zL7-RX#p4~}E!t^{fSU#(ohC>7|h=?!;80-Pz} z>+R!A7k+$z46yB00J|N}BtvmW8;2GC20X{GNTn&+muj~q7o(IE+ZZG_SUwxzZ>N2N zixpLTQ{eA8=a|pxU-$%95W?Bcm%+2IaOW#SkfGg+38&SLG~6HhP86_!R@?FBgk~-{ z#nx%A5~*nLQKC$(Z92c!Dh63%I$$zyM_E&a6@}#~6ZmjPl~-?sr=rRv)Vr;)%w%oY z=N7YC?CLr&^~asV%SiVt+>Dsru*uDX-1q6Nx`m!VWjg(5ig$Z#I_M|iQIpm@7G6?J zg@BH=>!XVw!r(BD6}-eDwD^f#&%IpM#v|QgLhHScVy7Q$xlQ#15GnJYu$)OAD~rB? zf1#7nVKyl#tWnVMQX7uHZErlhd(S)}m=3rvcK*?8JXo|bv$QutM__*vn9slXYYOb0 z@uCm3r+D(N`mr66))oNLg9%o^7ca-*BeDFPaeUID&CW!_I+yErvwYn>gh0B!=s0e$ z3u=y?HgyDgN9u~Sm_Jur^oYaqdhNWqx;jafvn9n~e#J^!i}S?(zFD)^8Ed_BhiLBd*CqSsCC(A==pnTaFx#2swlBhiUV!DsdLq}c=eP@upxsC**18Mn5 z$Ran9=WR^iVS~nx#)QT)u9Ap`!Wz8?s3FEy6_g2!%xMvS{wa|XyYSw3u+n7Ur<31e z5|YEXaJ{`WWa)$5c9`7lm;7Z~jIkPmdvFfL?%0`R_kMl3aF=<9siRHZ2y2ROZEI%# zX)dUFP%J%C{yQ%<15%;N>Bjk|gj`vqs)OM65UTs7OuZkuFaxNI2oyO%y_$VBa@K7KkrO2~Va|UzzvN9|v z#e_7HFl(>euy5~kuhXr7nne{E@=MVzD7U_OJIT=(*%fJ23)G)j@zv7pva|7Dj`{{$$+2WgXw6Qv6k357+}INlS*p& zPo4;TD(|j-GzM2Zu1!W47XEoJ`_6S_#${{1dHDW7I4W+6pGH>z9r}iwhg5c(G1yh? zAakj$$?qpi0QFH|zm)~Whdax>HUb_%3w{>qiBtm(r9Q9CRI8D4hS2IQcB0L_;qZA7 z-eo|&nr*h^%tJY`!@WByv}yM0Sv4*IA}_M0t~C1Ds5DuyDAX9(h|SsHB6;T{r}7w- z??@MZri(H|IS%u#*MH>(GhCIV@F z?u}P+>|roX!(B7UrbKwIbwyslfUmnis{E!S1hvIy%H5lbCrysWwb1?fbBhQfgxQ+_ zJAh|Lc}KOTrEhh5srzr;#2Q->khZRdE^jHO&Y=PIN4T*MDqJ1<NPHYg2 zp;08rY4NM;7)vVIbBT8?eZ8yKA@3=OfW{1%@TP zE_ayZo4y06EZ@$Ucfi!#E|NRvmeTP<6{(M8#=R+7Pny68`d84^;sTKX^5OezP znmVi+X7*j*(88=<)xpyDe+m;M16U+fU+Xv$jeNb7@Bnt2nEDS92%DO5TNz$+4d-=> z#xg#vOJVBu#Mrdw#9GsLNy)tkf6N**@oOjYO9?_$WHaw#v_sFssOZLFxr+DX_ra-4 zevbO4F~Ggt0`#06cS2Kc_#`NSxX;Ye7X4>cmbnJblZF$5ZyhJ)z5U;CvyMN`#BgKm z2o+j#U5FX0I?=nln}Cza!_bE==Z8&fU)I{Tg9+p5L=bDFczyWaVceGYF8SpuFI zOy^ZsUKuCl4)YHxy{hR%gq0`dn4|8|hHyE0Cg3{@V-a%1)yQo@BH4Rz=3SYQq4uuC z=O`Lf&{)RCaMNdV_MqjBr2N|trRF)^gGW_)l=^9k%F}sCQ>SlBQ~K1Be3*X^{_Zrb zXn&=kQp~A^W6-%}Em5vk7wSkI6%!G1JkRb>#%tFuF%{5a6AO%-xXW02IlI_Iw?bW3 zDjO-?t{oXTt}C_yYuaRBVa+C1E&jr3=k>>$qmxPn&0L^wLD2To>F&*{T}YV*Q^kE< zdQPw$V|da{l)Ikr`)r&f1@F}J;yGz|*veyRhT09r5I0tjmsJ^Qj*WiI91+%J zG^0NLLF2kD($>)Y!rz(?DI38%FYS#)XE_ZOq36iAzb=e;3hL~J4MXtygyos*+N#s- zq(%6^$@n&CS5AI9uj>pn{V;2XWkm6$0g;4F>m&{~Gqm1>PP5`>9&u=NH0;5hvtR5r z4Lt6=zFy-2&k_rLbDRHAu0zn!f6Z-q+eQK6Zk0x>U zNy1gN7phGfBBSS&7Tf;_K*L;;J0p=}h>4h`Q%f?bhomX`jPSA4gy|$^JW}O zRorH3aR~$sQ2FJWl{~AljMGmaZ~{A^=J4XZ+Ar;2Fo@kA%dopzUM<w)4fbgQH;_SqslJ@U?5%#mTd`!ylSCO*UwrFQUvpHYvgWRAYV8ibm1x_@uDj2-{uu0#qVB%2&! z9zpEFL3Sq@^75umaT<-!yp4BbtA4|sUqPX~$)>VT&tc7|gDRAgsz(RZ7troeW!?*g zRQS%ngnsQ^8OC~8N#9G@x+!d1=223a>$bX;=&zm|RH^7{f&)hiP(GxoRZGfyYM(#s zH(-R!dp(ula8nHl`zRjmU?Om~CtOyiyG_E!t?B!rvRRuxEde7%wwRR|t58}3ubioF zNzguTahY%i8R1!l3M(75N;gh^A3q@9;pnGz*Loh~{}L6KjN3&;tdqb3B(Vfr%hKi@ z;)}Mp@@vbriQYwe9@v7@RwUi9Tv zd{{MtHdL}Cm8>$pHQCoI)xCa|w99Dr&%Gx|n*zb}Uh9o2CW-zm*B{|ycIN??SatUA zTx#HC?YRiLWVm@-j?{qKPqoE9LgML*u+~8-;wn=6*O$ljgDT|4%S0uGnEFYipS(BP z2fv1pPtvf%gby{N#DAS(Bt{PYK}vnzFN5oIMqe6CzK@@Qu8E1>v?%UZHe4YDR(2JCp6RY>$rCG!L4$T(2m6XgFsp4>bR} z4YJm8)q3Do_oDUGaTOEQcSq2kFnSNwdSn5GrA1$=0Bd&tt^+8JW z6n-U_08~C>#VXE>w{07)`}b|=Pjn^iEn-GG^^8t}4GY-4LYPTgcs{ zl{gbZKFDJKY=}u7bAuMzjyjqDN*E)-ks6REMQCatOWrWS<1luc^~$+F)czpBC(ez0UtFPkE@ywA6?dJXYV)X~fksu4S$XUrfsgyf7p$-wA9K4z zQ~kBBN6Pdr{3`-ge#(Slx{@T2g7>!WQ_r&y*b34=QXQ#IjcY|;*wjyu!KKHQD5C1sjk3$fbU`10Nao$I%IK2?rLMqEDeR*?Qk*)~V< zO&Bwm*^SmKQAw65Op48BLlaj>Fk#YQAxlwSXX~oruC-sqZ9-Erv6^so^a4D_AvA_@ zIvXzzv6~pyk+HYG9xKq%rt(elw_=Ty)HAc+l~0({ddCX|sPlv8;=B`j@z&~PJzvG1EB zYw^LW@fjAnefgc{RN;+aQtITa+0EQavF}7=#M_jyka(rl99F!-w zWz`QD1xX_m-`EX?_wWMSU+ZJ9jPd)sVXG|S&aa0Ha2@EcEFb&?vI-{2b4K*wVd^G@ z<-wL-gtK%-@_QNK{lpH~i2B#e{;xkeX>Sye{iqcE)U6ub7c-E*tL*?lk}WJtG;YU3 z376M#L=+NdjXHWq#9WZ@w7$JRQu%%n%G$rkrH1o0ncE*kt&xU}Hc>+`8+~^4FWK)z z9u56yKWT(cIMcvCt;Ch|>DvW$tI?w_fpJ^@;vZxuZKAfHH+WSChU=)PJIhWhs{c+o zeo1fB(Tt7FRjywzLaU|n>e=0wrJo5f>BmkNrVRK#Q#-@Y^J!!d3e-DY$Y{vyyY)E7 z=IjbQ58lD5q5+C9x(yA$uGsVq(X!?>=Wpkxrpl5|?_MK%yK5r(!&!wjpX+RD!C;4; zanUzT$l9GJw~4aq$`K+xtQw}{^=0n-jy)`ftl-BEGWxk0JTA6u-30HAmo)mZ&^!sFck%|*cPBn7edE~>4&wF5s2NMr`a#A8+6h6w<=Ulyui2M9J&y~#N zcxz61`YDOGm)li;U6W;6T?v?SQQ69;qU~;1YGi47^;I>)E``n;?1Ki6p`nvEG@5N{A8$(8R&#LQhrP^w8Zt!-TGZIYUGa~@xYlWIf6 zM%dXyS6ujJ5J$@UOBW20`4MfiMXW#TU;tQ72qB-B8q4h~s}N(!LB&=%hM4DG) zc4x@{W`o#!dv1_!IQN}GiBRnnru@~-G$W~6%O;QQXy?h&i<`aoTK-znw0jdD;?F>Y z2Kz6^iv}dFEQ$$ROP+A}ODPqRDe@;6jwY0LQ?=~1eGg#?+gh?OZ+yxpCrki75?f-b zUsxp0T%fB>N+C)*1!C8OV@>E~w-_Hmvm|TpwSGRVy=;2*HG06Kw!SW&x#sG;Zd7Iz z`hXEu3*l;EJJjuFlYxMFE_aO4p(!IXEn_Nd=)qj#YZq><6=^rbCjudeaI6yrDGPp= zBmgxyzS@V{0D03c_eByW!@mGgD51pri40UW3dHUJ%s6o7%^&`=K` z$^n4+PaXhZK~dDnk^BaLg`%XWPa_}wKegEU`56D(HCD5WiQ-*g~{q<^SCml@kNndwRM-z+fLAA8sFhZdbS+m{(X>7|g>5=Huf+ zwczsbbMdtF<#O=={YQc<%)=V);O6Pz>ca4sL`y4IFHbQb5RB3Q{

WQ8PK$Wt%?xD-^2HgPsV3l=s;cMV@S{={6_Pio0_D;>b+w%P3{xN{TA zj7l@qsFbA@Zl@`93zIZYb38=0nIs3HhIW$6Vc#5Aq7-;wND8SjXuv{tQIy+UZ?Q5B zrb=lShn5qN78tMRCq;O;hvVy@Yt@k&9V?NUVV?*y1Nf97&}a10Of!xJfl|%-mXi5O z?4Y!l5i^PWNin^ZT?m$wVT{DXOx_9_A&5Y&)|4hIPKGFUvcHACaph{IE9(|m?6X6jon3C~J{dCTjZ^}%L{@c!o$KxS~ z1?M&W-Apnhm&^bvJc{nPXE&PmwK<#affNW2D}4UX#*fMQ5}M2%x4nbwwx~T_T0Kv>ki&15DmLtNP@>wLbaIID2(U`a313g=oU+!EK?SAzv@JC9WDQ8xK3UAlc4(nltH^bp8FFr`08ui%0UDwGT5mP!o(R{!=9FRY9F9ci zb=~T&Rfbicxx{BntjbFjCo6&XzYo;9NA-{Ow7{Tg^!P)^P5+bMyv8RMt&(YCN-MiH z?=}|~Ex((mEguMUV;&sVQ6^iLX?5?`PgPk^f|jeB=48YuCmMT`f7K@SKhCTBXnogh zFeD-*EV!Ycd_2yX`tE|SEO0|#u6+DgWxee1hw4(F13AC$JjPQ%s;`hj`o~@>9e;4@ zQ=QYwuE8DEOP0s{;Km0!Y3Pc?rmp$&5o7&}lUwFfHZtDdg-m54-${*;Bp&+c8Y_xtC$sv_xs>e%SS7@R|#^A9!mex^4PI zDE8gV%|pkRzQ=+yNa{&ZSbV0|4fQFVE04mB(CV>2(h)_{G8qoTY#JME+ZJ4AK7;L* zfw}G%dk;ijn;jUoFN|Iqx_=+0nBwp6I7!Hq`}y9-zPYdC>Nw@6{0H`Gu+wsy?~^|% z+@q}WvT1++chF*V7M2PYi9*w+VJiXq1JY-R&u-3D-+WG6z4n!-B7}PYEImAKhR1fp zu~vSfo>lev4+5g%y5HbMW2^p86x^9$vQczuPrrsuk_*0qeaDaD-u}DndSO~}zr*q_ zzlh&*v$y6_rOOh#)Uzp>{_~i<1>xX3+Tg#I>d~Fo?T1s{n|-3M_gpCLH#Q>p3u&|) zF@*E8tzWuxGAo-7dC%A zB*$%*!S*)uk6+9<#d}27uY9lS=Vd0Mdv~>RimrCIi@l?R{F{{ZKUo)HF2eE^om7#r z^*1(0EE>=An$P!Zt_6XD(N{OS_bcXSbd4>+XV?BnU%2_tI}|j%f=o73j#?*tx7Jz# z;<<)ad?1?Q%z5WCNv4kZY=?~^6x#&;C&432&fV*a0i*K4x=%s0)i$`^oMlm6;!*dt zx^a?4;ivOCcj$M6=u|#Dn6$y+MlEg>&&ht*)`^*l>2Y7W)R)6G{nYxXWbZ({mo!_? z3z~DE{ky%D*d`sKh!z4z1~E6w$()1r)BEUx1j^beuT!BG=221=#=Thg0S*!ydcNZ` z+=Jq;@@FfCo2hFEWN1pzeEL$K+wP}3x@=ZdEr)DB|J)~yGB!FdCKGA0#BQ{r1UvX+c)SS&h>Ym;u&32P(BEFlTY!$&i#&b z+ro4I2_ODn{`IrIpdxH0iD-FIsQq*W+ae zj=x#s1$W(R7efa;z&u*oX}5RdF|;xsu|GRa;Y#y6uHQTAq_*u;F^{qOI#42)8acPy zDOgN)dB)X7J?eS0&M~-h9x=Vlxo~7t`NgaJ6v8`#!aBnvnC}^(p%R~x z^I^SVnWxrtk&!3aPu)WS~f z$3rpLAvX*@ub4;acsy^@8_pV2(@Tv!$;L^5^q?g#UiWj$UX2Z})sjcs{$}}6jfFYb z`p1pgxOB?)s7GG^_-n6w`W!ti({*J$7CcP-yys*qKR*Dpw9^3d7!p!mVTZnz>uJpB z%7@>1gBEsbKOT>J(8kxf`EmYsp<*5y-`(F#laii%MBmc_Bx8HbU+a;Y41c%ebI5IO zMHTy-{2)m6@jGO5p)kpiwYTr$osy+{wrC|?x5?w~Lv+WOojp8juD4@IF&S_>i9hHe zJ3+<_~|Fv}rHkv@Byg}>;<>Uwwdpqm+iaHi?`mz z?Y700Za>4OyUetuiZm#;RxClFF}>W;$5O~Iwdc|{+krDIH01;Dy^R9gG+GAf<8sAkPx9PR#Yc@g@0BM`YW0Yzf?gHlB)FThR%ISA;yB%>Q*lN>V zD(CTnDIQ}GjBgM!fgSwJL!Y|&X(PL@RXLADFw>cuN;vo4d9n&|BCh8L{DAL#E13F> zo0*C9z4T?*^u{mftF^z!|N8fbe$BW00570z9--!$n~j?u_LwB+q&U?Z^sdzRw6!;z z-u5|SbiBgb=UjU}W3WU9n8zY5?6l~$-;KwCPyr7wHJEb2=dXnZ@N|bstxY=(0FT)m z=A56fn+Z(aHP?OjyPYm`#P#W#vsTQ5d5cAk)g+?be>WyKUpRW}`@KG=DXyU}yY!T+ z6&3Ih4Y78wqmNzZ4B&&GI&;x)k9HXO()AWxuzuS)FAXm{bp2l|RYx9c8CA^VyX<8%zycIVCF{Igx|RMa?i*1}E$ z&Z8Oqj;FnJucABboh@_BG7r%fcDii4@pv6(n>n7a(cmFh8~}fVdrp5nO7iA`m$(^n zT&-LtX)an)?L?em+zJOqtk~Z?rdz|19q#-HNZ}kg>=c~VGi+o}+Vu7<({-CXu6E1k zCjis4%Qn7-&6&+L;C5nZK6&{nIC6}VDEnmTG^E7aYFZBYVTAKa${qm+U$Xm1zY<>M zWlvr+me!`s$BeGA{5si`0%7>2`4*mM%pTEw*t2)U>Eyb8$yM5pV4h(Z{F0QRF?J54 zSw<}vHc2vf($(D^`AR$7*d6}FGfyYARtoo3$uv;BAEqpgV>5Tm>MzVs41Q+XR!JAm z4#n%1I}Q*JuP(XD%MQNdeMhDTdK(^RJw7{>uGZZ3$K(t!kMXCwO-g#a(7kl=6T{r} z@M6Z(QPT=mI+XWt5PIvk5uIh!?!D`w(<{quZ>-0|Dzafb@=&TEdf2e1`T!hXV)CHX z=k9q%BP<+lF#eV=*Z`-~TZd7j6QUs0HjmUZ^WL-1@u4&sV=ba!m^yJoJZq{ zV(2i;wD}zO^m5-GStL%GgLf4jZ%7IoezZLE#6 z&d#UvgOeH0R~ItTig_IS>?y)|Jw4Cl7Itbs9$98j*K3?+mGeL|?7JR1RWaE6jDvSe z77KU^Kc{!WJ8$3*O`p&Tk2d|y)iI=A_I7@@eP*tmSVHYtH5@i-SFAi;v!q=woqjf1 z|F{<(^U|3cS8r*j0q22UZtRk6HeLkJE8}SrS8rjb_TzCYNzaLkKe}EykJLAAMtP$a zR&$MGpSH8!qQ~GxaPXXdMLi0hAPXN_vA=PRv};T2o97y9@wG;dpWhxZe2Qn!56ej_ z>AFoG_h!noJab`cIU_r-D-5`uG%byq()#6{u-jvrb%!sTWzo4!b+H>PeVx^AJmpMa zM_En1RJaSuEcXil+;P!aD_Ucx zk;4n8KZC@rqa#mleX7&p0P6IomEL zfmOtVG&I@LT~^*2BhDZspoD2J26vREt`Z*qbI<>$u=2OAGv4*|PVqhJ;IDb+UBIWF zIA5O6ocEDi%90Ohn}+~^peZp3#dWW7pR3>gZrz#Mjjydwx#qR+x}_Yy#JbNi6|G=? zfQ>hPjHGK_W966Jer^_NH#-6MKKVX}0>pKlPgTuH>p8sS5{urUnYlnzF^@49yTcU>NH=O}rx7&XTd;QE0kb^%nzs-r zfap*+HqZd`xcEJt>YQiJTH9dx)gQSf%y{>Tc^J;M;5Po6_g!UyO)l|7pJw}Pb3%EW z-tE_DnXaK?9(&+}R=LsHH&~Y2v=da!W1TbfanIOqfqgf84jLh)v$eESyYYYnw~b4E zDRx<7z5(_(@}yZt%zEDqA0ZqMc*#~Lt^|dT*-*$UN}mP-VdJCEut(i>?(-kL=RH(# z&d1N)z3^u9-|$Y^j4jf&RuJBekA8kLFfYCYF^;<}qwtT)`< zd7ehj8*H-vhI?gc*my3sMsJUSYjPQidS1!Q=;vBzHd0ym8AojKfG9pMpZCB6Y1@^y z^k>~{-MIlO;~^(Zf6D;0`7C$Z;vPv+I(@`-rd)HE2kxLt-tn3HRjid;@ObRApO^?+ zy6cvge92kQJrFDBfd(Pv=+m_idFWD4r(T@mq-&nJ(L(o{X*Iv%9e3HZf)!8{oCI0t z=(XzIJk24OU218vz^P`%SbewFb6Q>d5u?Yi!`WNOsRSU|Mas6*ikG6txa$2{>a2RwAed#`&Eq*;`w zKWN@VAGOhQ<&=k1&VvHvJ@@On-zg8-cE1QL?vyznc#n%ca%$Y*de7Vs4J%nB*O}Lv zEnj+r^_M*M$@`_5wVRzVJ}EhN#gO}2qq*ChEXNM8opj}+XOkcJrU-GFWvM4bGZ6+1xy-u0>v;p@wORsuheubMH7%`r3ho?Vw zOM~bo9gzK7&9%)ua_rB_Kd8PRLd*$_Gx>o_^O4fSUvZOmx%MN+mBKs4N_)Fqa zI_&|6J$a$NJFUNEs94{Acafue4ji+T&avbAlEfEoPrBm8N5>)Kj>!hctOga-@8o#G z6l>YuLpS7??08&}xUzfO2Obgje&&4j)t>xZt%L_l%<$oNUkm3O{4~1WsE0ZPTl9v@ z?yjdj`9>p8+vT}jv36_0JV=vpqX(c=~IMCtYL9mZ?-Tit;gHu+h z^El}pyja+DKzM9Zt}GZ?XFJ+rSof|ky0o8j%FFg_`S{9tXaSAp#ln3ki<@mD^yK@j zlFfDNC#-u~-}=YRS2nXs7O>Rqw%~5z1Q6>Q|86|m&rU^oDVaI){gz*_+1Mz#To`aW z`IkcCA(grPd{L-ZI2s#;NvUi zA>lr2Ee|(ZXiL1;LU*ktu=CtEw|REo{$5kJOxG3jxcJFFU9*=Zw4a?83{y|N8r*B@ zN5;V2yFBvBE$!59JZ``8+_u&ow!hVC1MF{Lp@q(ohc2{Q7H_y{R-i1iznpv2iEvWo zntq=%!qivXh*mi8Ku)t8hKI+yY_RhRCl6b#;&e^8@$~Z$WruY=YFJH~)~dix)!p#Q zYwgdEUizhX%o~k;{l#<0ZvV(Fk9^F{FSGZ^ATg;R?fR^{(IepZeZsPMtyt~$6@S+o+Cs)7z&0bu8*5xmD%<<_>x8PkiJFqcE%vZ#g zmYM#R$(0Xz9-sPxn>{*tmXy~%?Lawqv$HRAgYol8tiX8Usk^bvf>Yp?@4GJC`x;9u zR^DO#sc&<+Ob)vH6Yls_y;0@bxCM`!U1_fu*U#R$=W*A$`Q=YK<4U)woQGu*U0KY2 zt$Wt5zTwTTGUjd=;Z`@iQE}MiF7w3Z4pKq6ly9;szVxsuc+o@dnO)|EPu(Qj{)iQ( z9CFpA_6+MjWWK&Sff6WG&{=COcEMJh<56>82XDRCdp_y-UGBKW^Y`3rX*abHSHgo> zDIZ*%L%ix7Q|^9V&#g^EGo@#z&%DeziRJ^qV;;?wR(#1WC*Aj`O&@xrIX2{2EcooZ zU%t0;9-0&pS3=w4skh&6y~cx|ulKy_w6|Mso|_(f`5{}T0V=7J8q%59c}S7IJCA4X zev6(5x0{_ZI;TG#tIXoByZR0{r#9_WNo|aoZ@G?N^4O>DdG&DeCjPq5IsEAh-)f#` zFTceS74uM{NUT&pd8(_eKe}<>`gJoR?d`fg?6SmN8wpgvFEWF`%xlfVr`-LC7ry~c zxyhL8p1H#l9}aQIVRIe!oaV`iKv}3(%;QS;aF2h_?7Ew^VyBrfD?GIWkH*RiL0I9m zbB4!Vj=gcCOJsm~xLaMPTzrT17ft85##(1w;+9Lhig_g6>zuGeTI_uPnIEyhvwMf@cF^{?6MLW;5I~>F9W~T+`(cX<$-ucv3UUZedTVL^^r*7EN zPVL5H|LmUIJ^k{Fw}-#!-FTT3=9v3=oAg{djpZ&6d}w$6hYpHow} z$U3vdr_K&axab3ht&5tUe9mbw?@Gspy~w(HLj~dVeMSOszvH_zwizB!f3iIFcsKWx z`c6JA52s$=DtE#=pMg7`y0Gqd^YZ!id3U|dUSZaK@aQ`&k=)zF3%j=CXa3#Xw)DQ_ zNIUd-jpc{!0`}zRZYkkbTT<9-!`M>+4Y6wz&Gz)9Cpx8hOiMGr+x94Vx}MdgdecPhP?TYyesTk9D5U zDeGDH+jf=NdY-xPUOR^UX25&hiIaOTC0=~90`93t><$@)2K3mO^>s_jMnVd0hRL*?E!8`zWJ%!E-=sFXKpgX5O~2} z<+?Xa!?fEcLc*2I4;!zuO&|(ao$6jYJ*K`(yV;3_8dicIbA`S$kABHLWWP4;)HaZ? z@@{trcl$@$QFpxB-ODp)eBvmWds}$&N>(wCkbBNj@uy#7-eRYF7gLV8eFUZ+8@kWl z`}fR|SKw2uk$WSaYx*;kZgpVUHPxQmj9zyibwT__x8J)+E`K@EJOqP^dAK$2_=2?t zU;8S%w6N3j!?bB44N1XrUb66|q zktX{bwoZeecgZ;SsdJyvHRVBf91r{5p5~piWxB4IN7u%4F0tlI;L9*UTRw!W;b*7rKQPPy2T)m4unLS6w6#U^T2^J-kg zoL7472WL9fcwG3@K~WP`!*h@^nYS02N7N7P&|SLCgcB!^a7#^=BsrNGsrh z4ps{SK)C5lQO{(x?o)du%kSPF4?h4rh>1kJ3e?6xWC0eZqsDouoW~9j%%F#xs#w$= zb&rXH<=9cvX($+jt6(eUEDgdWWx)}N+s{tIWt6R-tK%Qb-SykMqGy2ZWSBJr7>+Fi z<{?jHNS~s4+p%IE1mq5co`d|U&03$*`ne%bl@r+=-MQnmlHwnvn06Iq8VteopmD)* z9+1!hGc?Cf7a2UHYN28ty*-BFn|(!Fc1i}EM@+_-a(5MX_3qVo0wx$>9x-?aR*sLO zB?n&k{K|O%JFkv4&r2Vq*~oFM3~kn(wM^F)^T;03q>}VxX*WATAPf2U(MkrHsm2y| zYCj&NqsF9t%@7CJ--yq3{D=s#5ktYOlrE7TG?X$|dBH`Rg_LZ_Fcyeil9M%DBgP@a zDo)pIgdCNCP1C^Y+O$)(50Fn|2%^zPG*1zIcZSjY(7eY1y0(oj&8|qzdNj~jPXP?Q zkN`*{B_wnM;Ds^O0BNQaEfcn*oX>LP5fB@Nca^XuUzAS8L&|8PLDYF}22{&?Ttx>@ zpx6~DZN!*4F9H-|5Ku6mQg9{K!T|HYRKaB=0YII1NEP!)133>lf|AQfP$LD*8I6I^ zTt%4)VKX5JHDm!)i9XFNF+=R_TC+O=RRNU>>(2*FQ3Q*wv2|mISq@ClACF2Xx}=!_ z=00?5<{T=-kwsz_gr}p-Y6HN7Tp|)8V^KO#QI$*p)M3Rue99?P*_#OkaOy?VP&Qc& z0#SKx1;;3~q?v){o^!1`hunU4f;<7pB9{)cXgG4f?WB-r;vFlBS(2AjOPmkgjW_^2 zT-n50U(CD4V$6Djk13bY(7|+IX%Z`#uf5N~=ZH=+AfKx1NtN>?^%0o!k|G6DA1mfT zhM<%+Lkl|%CAQEmJnDHF3Knm@VQUA=6mLiD@uHEcZHtUf@71Sk8ReVc3wHpr*l*Hu?7+`;cwK1_fBvFgfVdkO_ zX&6c&ul&xkl#(Jr>n{<+Qk-T+qS_)|6SUp3i(Z8}4Owb|+O|`bKN1x+^^wteh=dZ- z0BIt|jTj>MN^;Cvh~5lYG!1M>rV0SqT_-3IYs*29=Z>2!$9l`n=481S2#m$M!fvB_Ki>U>=|lgg{N%kN~J+ z9!$*YG??p;N<4+ofMX_jMV0%bSz0Q0~Ukt`U;dX1TgE9Rjw zaM6R92tgoNhyW_VVduD_<(Yh;1I|Oi zP=X*3i{>3!;#x&^!W38-q^j*yJ$n`f5{5yeo5}sx={E&fX|82r z03MiMfq)qX9vub%B4(TP^a&75URaa@5D0~VNYT6kflgXl2gVGrHx_KfOaL_S=nxUI zM4WV_R$KMR%!IpRdm|D1IMC1qa#*?E=ZPjgEnKiCW?p@_mU@iBFz^sk^doyzCoQc= zQ3+0m5s2KL7hZ3KfLL9i;WSQ$$mmY{1|#Bd8s}3aiV5+o)KU+d)UzH1#DMj@@czds zzWX#0x~WfU(9_{>V1Oio9q-h5_O4n)rAws|^07{@h9sULass`KvZ$N?| zqy)e+dQ9eU(u=&g@#rLoA_^d^qAJ>X-+&kdmN0Brv^5LHzXW@+&~XC}31>!x=rgw`?x1!^h%bB2Lt za!+jS6F-%kT6Lg(qO}D*90YHBzOD5Vnn9#=c>UXY#fd;Lu zcB;3SVld4*?QQf8()=`Sm(e`?*&{hNKMnrlT%Dcb0Vl4H#PC)(SkU}HtM6R^LUa*< zHK`TdHED}sOaKvyCP+vp zQa7pTHn=!x_L?n{Y1^XXC2< z)j}b+py=e9O`A7?YHN$_+TxWuTqJT^O^p;aj)3E+o0OET+YPf(SO@pkr%{l<=4#gE z*qUD|(NJPEjvCkSN5&}yj!n@*Ddr5UD5EZ8+QL z_E1UTH-KuD71R@f7ZzWNI@e?$1EU;p zB+xD>kjNNbL6FXD&f2g>nDRjwMJ&RK!ERKAv|5Rz`l7Y{TS3Sj2n154M1o4~Fd=Sl zP=th<1dKIV69TP3LSzL2WpHaO0M7(CrgI2{Mr6Jfy>N~WHlv`50F)ttP@B%*Lyox#I2Sa%_fPCN>%W9#~@ z*==Q6nQ6r(Lr_J6h!Uod1j(G+!1vARye2p{Xb58xB&^mcb+cYtldU-Y$$VL}1$?#; zNXn8(bP$VBpkdMAHL}%w_kyJ)3EkHF%LF>ZKz;)<1!4O~p-cs=A_-mCTsMcm zB0OEo_m&hF7ZspA(IKRWkS5c*LU<@M^#1OPBII73!;1#ru~%uy!8XNIDV+^3jk8Kg ziefHV5QC;&Eg%zva$elx;Zk+C{N!X-__`kOVx-w zIQMb@x=J}>xl=y97zxfll7u7xZ1Q6Lg7SbNDJ z5#UuWVLOPWn#WV058KoDhL*B8rAnBv(dJ zFKK4JfS>{{(HK#)f_!j^kLn|n0UL!@ob|5g?jCP^8jWs=TOUCzkw^Aa1il7P6yDdFK#H3JFLn9A)NvUMOka{#uy^$7m zZDPn34JdE;ln}Jyy_*0;=*=vS=q1fo3djsn4il-tL)r|sXUMS(=0v?M6q*?%g%8f$ z&!o3>lsQj|{ZKTOG~;eA$mXg`OG%rj5vv zJINRV^d!SVloZQea;#==%M4i=i98FXnNTLg4w)>Y9+OBCTtpy7$~8d6OVm=5^So;i zeREzj(rDU}=!b4!($vq0o#?69`h;n$Sifo+KY(KtNnIm(2iESTA47x1HHsiCWa=pw zMi7Y{y2-x*J%?JuELCdvncjfIAM|iL zH$YWBFx92S02{!a3I4tNNNQQM&=5i*As_%E zAh|&aObr8|tf?92Aq7+zbgrkd8@uI-SDykHUXL^MD)i8k_dnXFi$3twOT_$n`;HxU zzi0dR!8hOzy=T20wee4XQv~k4>QwjfF|ccOk$Mo$!VDmYi;k|Cb)oL5kD?oU1|&GS ztE+K!O=&l7m;Y~zZ#koyyg9K~20sfxr130W|AfmDG;cBWxo1C7cPWNGa=IlR4EfXt z4nASNy>?&Y9ib`5pFh*!sZI*XwQlrk{5H%Hvp7iG_f&TVDnSJ1MlL${v*B7X0}BVg zItTs)ZvOGO&jZqM?4@pVMsw%aK{3C_OAdQgdY_TSv3;+_LR*!!TlC{<=1sMgo0T(3 z&HzBzQ&+M15;A!#NLS!|x!mObs@+eJKM#rv&u!h7eQ*NBSUt5fJZ)!^1yaj_rCmb{J^ z1WQt=Q~()n@zr9ER1{K8vdx9;j=SQ;Bckc-9oc#sm-C!>{|W#^l2K6>F&Jn)?MKpR zLYFm;lzb{aUJs|f)7?$uS@|??L>V6piI+x-J&WtvVa0Q;@!;_OndS;FsK!ai$9sMe zgLl?jjNB^twkmx-P|%&)VvvqsOI{qJI-c$DdmpydmiO7qCy!Zds%@5{z+#FI+By&H z-Opgd2cG<>Ro%`maD)N4cRk3AsPo3zSrv@zLhH$%4cA?6cdA>oEio(B*>U__%fLtg z)MYtix1!X7v-F*SN5k1Og0Ak8^ReML1f<#Z?Q!)ojS!3l9M?nlidG+ydb<4CR(&lx zz4_<2etH29PW>%zgK`_fVSAxnd)gu_MTbacA&F)LuE5^|xYJ24QH1&=>=`N;Xg3-W#S3(Vec%#$*{%%$!)&r{|A8B1R6_WT>plSgj^=T6`Kk|~bf zV~a%tJ#@%JqB%Umm3$jACmDf4<)f8k5JmmG`aE`7y$#c5U(-R^Vyj4inx;*Y z=#3ABanawW#Rls|2o$9>L&1Km_&hm%=kG`wc3I+DQzg$&G@yA1a^>qi5PA%lgJc-9 zl9FPE>&=+i9S>ux#=|5esUSP+7i%0c>rNg>5l_7@ZOThF$8DLo*PLa-&;?elg*zVh z20TB`z59wQ)<>0wDul&m`@p8&L76HRnY7Sm@y1%j%Ap8QydsXktdMYlq>%3RlS-g<}jJsCf z*pVko*Nbj=w>XpF6`5@Gi_^w9KX%9h=BxA67a20-X$b93YvW}fC|(@&5Ce*p#v z0`M0Af(g6{I^sD@LR_0rcW67A&6<));3CbXBqB2kh}%uWQ~S6q1f4A`7O|^6((SpQ7}+KDAxp2Vq(ei>^5t^aDz*Yd>a%vA}MgE z_yaYWU|et6TNNc(6YCfXAw^`Ch(yjWLdt zW)(i?1RZ&)5UU`AX{Vrq5#b>^*naUZQ_&~C+-bNAb;hq>RtOlzM9jb-NJHAhpF;utP?V}U7Y}cNE^x) zRn-_Ymd&Kd41JSvLV_#1F@Os$7;-Q6q+KW6FhH$gZHpMeAyMEZkkci64}h>SemRUc z5++fAv5^yoKy{=D_8)>ADFA1P0=(A*+Fo+?7?V_!W^w_nQOl$={R+~-bPF)}p}1&6%8H@YjO&QdR&)2or&1SY+6V?zV