From 5ee76b9e531fb5be2d53ffba94dca1aedf8bf07f Mon Sep 17 00:00:00 2001 From: zhoujun <572459439@qq.com> Date: Tue, 25 May 2021 21:18:55 +0800 Subject: [PATCH 01/31] Update models_list_en.md --- doc/doc_en/models_list_en.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/doc_en/models_list_en.md b/doc/doc_en/models_list_en.md index 54ee7576..990263ba 100644 --- a/doc/doc_en/models_list_en.md +++ b/doc/doc_en/models_list_en.md @@ -103,14 +103,14 @@ python3 generate_multi_language_configs.py -l it \ | german_mobile_v2.0_rec | ppocr/utils/dict/german_dict.txt | Lightweight model for German recognition|[rec_german_lite_train.yml](../../configs/rec/multi_language/rec_german_lite_train.yml)|2.65M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/german_mobile_v2.0_rec_train.tar) | | korean_mobile_v2.0_rec | ppocr/utils/dict/korean_dict.txt | Lightweight model for Korean recognition|[rec_korean_lite_train.yml](../../configs/rec/multi_language/rec_korean_lite_train.yml)|3.9M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/korean_mobile_v2.0_rec_train.tar) | | japan_mobile_v2.0_rec | ppocr/utils/dict/japan_dict.txt | Lightweight model for Japanese recognition|[rec_japan_lite_train.yml](../../configs/rec/multi_language/rec_japan_lite_train.yml)|4.23M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/japan_mobile_v2.0_rec_train.tar) | -| chinese_cht_mobile_v2.0_rec | ppocr/utils/dict/chinese_cht_dict.txt | Lightweight model for chinese cht recognition|rec_chinese_cht_lite_train.yml|5.63M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/chinese_cht_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/chinese_cht_mobile_v2.0_rec_train.tar) | +| chinese_cht_mobile_v2.0_rec | ppocr/utils/dict/chinese_cht_dict.txt | Lightweight model for chinese cht recognition|rec_chinese_cht_lite_train.yml|5.63M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/chinese_cht_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/chinese_cht_mobile_v2.0_rec_train.tar) | | te_mobile_v2.0_rec | ppocr/utils/dict/te_dict.txt | Lightweight model for Telugu recognition|rec_te_lite_train.yml|2.63M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/te_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/te_mobile_v2.0_rec_train.tar) | | ka_mobile_v2.0_rec | ppocr/utils/dict/ka_dict.txt | Lightweight model for Kannada recognition|rec_ka_lite_train.yml|2.63M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/ka_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/ka_mobile_v2.0_rec_train.tar) | | ta_mobile_v2.0_rec | ppocr/utils/dict/ta_dict.txt | Lightweight model for Tamil recognition|rec_ta_lite_train.yml|2.63M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/ta_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/ta_mobile_v2.0_rec_train.tar) | -| latin_mobile_v2.0_rec | ppocr/utils/dict/latin_dict.txt | Lightweight model for latin recognition | [rec_latin_lite_train.yml](../../configs/rec/multi_language/rec_latin_lite_train.yml) |2.6M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/latin_ppocr_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/latin_ppocr_mobile_v2.0_rec_train.tar) | -| arabic_mobile_v2.0_rec | ppocr/utils/dict/arabic_dict.txt | Lightweight model for arabic recognition | [rec_arabic_lite_train.yml](../../configs/rec/multi_language/rec_arabic_lite_train.yml) |2.6M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/arabic_ppocr_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/arabic_ppocr_mobile_v2.0_rec_train.tar) | -| cyrillic_mobile_v2.0_rec | ppocr/utils/dict/cyrillic_dict.txt | Lightweight model for cyrillic recognition | [rec_cyrillic_lite_train.yml](../../configs/rec/multi_language/rec_cyrillic_lite_train.yml) |2.6M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/cyrillic_ppocr_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/cyrillic_ppocr_mobile_v2.0_rec_train.tar) | -| devanagari_mobile_v2.0_rec | ppocr/utils/dict/devanagari_dict.txt | Lightweight model for devanagari recognition | [rec_devanagari_lite_train.yml](../../configs/rec/multi_language/rec_devanagari_lite_train.yml) |2.6M|[推理模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/devanagari_ppocr_mobile_v2.0_rec_infer.tar) / [训练模型](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/devanagari_ppocr_mobile_v2.0_rec_train.tar) | +| latin_mobile_v2.0_rec | ppocr/utils/dict/latin_dict.txt | Lightweight model for latin recognition | [rec_latin_lite_train.yml](../../configs/rec/multi_language/rec_latin_lite_train.yml) |2.6M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/latin_ppocr_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/latin_ppocr_mobile_v2.0_rec_train.tar) | +| arabic_mobile_v2.0_rec | ppocr/utils/dict/arabic_dict.txt | Lightweight model for arabic recognition | [rec_arabic_lite_train.yml](../../configs/rec/multi_language/rec_arabic_lite_train.yml) |2.6M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/arabic_ppocr_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/arabic_ppocr_mobile_v2.0_rec_train.tar) | +| cyrillic_mobile_v2.0_rec | ppocr/utils/dict/cyrillic_dict.txt | Lightweight model for cyrillic recognition | [rec_cyrillic_lite_train.yml](../../configs/rec/multi_language/rec_cyrillic_lite_train.yml) |2.6M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/cyrillic_ppocr_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/cyrillic_ppocr_mobile_v2.0_rec_train.tar) | +| devanagari_mobile_v2.0_rec | ppocr/utils/dict/devanagari_dict.txt | Lightweight model for devanagari recognition | [rec_devanagari_lite_train.yml](../../configs/rec/multi_language/rec_devanagari_lite_train.yml) |2.6M|[inference model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/devanagari_ppocr_mobile_v2.0_rec_infer.tar) / [trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/devanagari_ppocr_mobile_v2.0_rec_train.tar) | For more supported languages, please refer to : [Multi-language model](./multi_languages_en.md) @@ -126,5 +126,5 @@ For more supported languages, please refer to : [Multi-language model](./multi_l ### 4. Paddle-Lite Model |Version|Introduction|Model size|Detection model|Text Direction model|Recognition model|Paddle-Lite branch| |---|---|---|---|---|---|---| -|V2.0|extra-lightweight chinese OCR optimized model|7.8M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_opt.nb)|[download lin](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_opt.nb)|[download lin](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_opt.nb)|v2.9| -|V2.0(slim)|extra-lightweight chinese OCR optimized model|3.3M|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_slim_opt.nb)|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_slim_opt.nb)|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_slim_opt.nb)|v2.9| +|V2.0|extra-lightweight chinese OCR optimized model|7.8M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_opt.nb)|v2.9| +|V2.0(slim)|extra-lightweight chinese OCR optimized model|3.3M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_slim_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_slim_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_slim_opt.nb)|v2.9| From 66ff8afb03769056323ed8606b61bc86a661221e Mon Sep 17 00:00:00 2001 From: zhoujun <572459439@qq.com> Date: Tue, 25 May 2021 21:27:25 +0800 Subject: [PATCH 02/31] Update readme_en.md --- deploy/lite/readme_en.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/lite/readme_en.md b/deploy/lite/readme_en.md index ec36de35..2c04c567 100644 --- a/deploy/lite/readme_en.md +++ b/deploy/lite/readme_en.md @@ -6,7 +6,7 @@ paddle-lite is a lightweight inference engine for PaddlePaddle. It provides effi ## 1. Preparation -### 运行准备 +### Preparation environment - Computer (for Compiling Paddle Lite) - Mobile phone (arm7 or arm8) @@ -87,8 +87,8 @@ The following table also provides a series of models that can be deployed on mob |Version|Introduction|Model size|Detection model|Text Direction model|Recognition model|Paddle-Lite branch| |---|---|---|---|---|---|---| -|V2.0|extra-lightweight chinese OCR optimized model|7.8M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_opt.nb)|[download lin](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_opt.nb)|[download lin](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_opt.nb)|v2.9| -|V2.0(slim)|extra-lightweight chinese OCR optimized model|3.3M|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_slim_opt.nb)|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_slim_opt.nb)|[下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_slim_opt.nb)|v2.9| +|V2.0|extra-lightweight chinese OCR optimized model|7.8M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_opt.nb)|v2.9| +|V2.0(slim)|extra-lightweight chinese OCR optimized model|3.3M|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_det_slim_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_cls_slim_opt.nb)|[download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/lite/ch_ppocr_mobile_v2.0_rec_slim_opt.nb)|v2.9| If you directly use the model in the above table for deployment, you can skip the following steps and directly read [Section 2.2](#2.2 Run optimized model on Phone). From 4ae833c519d445c8cad417b1abdf7b3c5bb8ab8b Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 06:49:17 +0000 Subject: [PATCH 03/31] support directory predict --- deploy/cpp_infer/include/utility.h | 3 ++ deploy/cpp_infer/src/main.cpp | 52 +++++++++++++++++++----------- deploy/cpp_infer/src/ocr_rec.cpp | 4 +++ deploy/cpp_infer/src/utility.cpp | 39 ++++++++++++++++++++-- deploy/cpp_infer/tools/build.sh | 13 +++++--- deploy/cpp_infer/tools/config.txt | 6 ++-- deploy/cpp_infer/tools/run.sh | 2 +- 7 files changed, 90 insertions(+), 29 deletions(-) diff --git a/deploy/cpp_infer/include/utility.h b/deploy/cpp_infer/include/utility.h index 367e37e4..6e8173e0 100644 --- a/deploy/cpp_infer/include/utility.h +++ b/deploy/cpp_infer/include/utility.h @@ -44,6 +44,9 @@ public: inline static size_t argmax(ForwardIterator first, ForwardIterator last) { return std::distance(first, std::max_element(first, last)); } + + static void GetAllFiles(const char *dir_name, + std::vector &all_inputs); }; } // namespace PaddleOCR \ No newline at end of file diff --git a/deploy/cpp_infer/src/main.cpp b/deploy/cpp_infer/src/main.cpp index 588c8374..96b5e895 100644 --- a/deploy/cpp_infer/src/main.cpp +++ b/deploy/cpp_infer/src/main.cpp @@ -27,9 +27,12 @@ #include #include +#include #include #include #include +#include +#include using namespace std; using namespace cv; @@ -47,13 +50,9 @@ int main(int argc, char **argv) { config.PrintConfigInfo(); std::string img_path(argv[2]); - - cv::Mat srcimg = cv::imread(img_path, cv::IMREAD_COLOR); - - if (!srcimg.data) { - std::cerr << "[ERROR] image read failed! image path: " << img_path << "\n"; - exit(1); - } + std::vector all_img_names; + // cv::Mat srcimg = cv::imread(img_path, cv::IMREAD_COLOR); + Utility::GetAllFiles((char *)img_path.c_str(), all_img_names); DBDetector det(config.det_model_dir, config.use_gpu, config.gpu_id, config.gpu_mem, config.cpu_math_library_num_threads, @@ -76,18 +75,35 @@ int main(int argc, char **argv) { config.use_tensorrt, config.use_fp16); auto start = std::chrono::system_clock::now(); - std::vector>> boxes; - det.Run(srcimg, boxes); - rec.Run(boxes, srcimg, cls); - auto end = std::chrono::system_clock::now(); - auto duration = - std::chrono::duration_cast(end - start); - std::cout << "Cost " - << double(duration.count()) * - std::chrono::microseconds::period::num / - std::chrono::microseconds::period::den - << "s" << std::endl; + for (auto img_dir : all_img_names) { + LOG(INFO) << "The predict img: " << img_dir; + + cv::Mat srcimg = cv::imread(img_dir, cv::IMREAD_COLOR); + if (!srcimg.data) { + std::cerr << "[ERROR] image read failed! image path: " << img_path + << "\n"; + exit(1); + } + std::vector>> boxes; + + det.Run(srcimg, boxes); + // for (auto box : boxes){ + // std::cout << "box: " << box[0][0] << " " << box[0][1] << " " + // << box[1][0] << " " << box[1][1] << " " + // << box[2][0] << " " << box[2][1] << " " + // << box[3][0] << " " << box[3][1] << " " << std::endl; + // } + rec.Run(boxes, srcimg, cls); + auto end = std::chrono::system_clock::now(); + auto duration = + std::chrono::duration_cast(end - start); + std::cout << "Cost " + << double(duration.count()) * + std::chrono::microseconds::period::num / + std::chrono::microseconds::period::den + << "s" << std::endl; + } return 0; } diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 76873dad..29b5618c 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -88,6 +88,10 @@ void CRNNRecognizer::Run(std::vector>> boxes, std::cout << str_res[i]; } std::cout << "\tscore: " << score << std::endl; + auto box = boxes[i]; + std::cout << "box: " << box[0][0] << " " << box[0][1] << " " << box[1][0] + << " " << box[1][1] << " " << box[2][0] << " " << box[2][1] + << " " << box[3][0] << " " << box[3][1] << " " << std::endl; } } diff --git a/deploy/cpp_infer/src/utility.cpp b/deploy/cpp_infer/src/utility.cpp index c1c9d938..2cd84f7e 100644 --- a/deploy/cpp_infer/src/utility.cpp +++ b/deploy/cpp_infer/src/utility.cpp @@ -12,12 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +#include +#include #include #include +#include +#include #include -#include - namespace PaddleOCR { std::vector Utility::ReadDict(const std::string &path) { @@ -57,4 +59,37 @@ void Utility::VisualizeBboxes( << std::endl; } +// list all files under a directory +void Utility::GetAllFiles(const char *dir_name, + std::vector &all_inputs) { + if (NULL == dir_name) { + std::cout << " dir_name is null ! " << std::endl; + return; + } + struct stat s; + lstat(dir_name, &s); + if (!S_ISDIR(s.st_mode)) { + std::cout << "dir_name is not a valid directory !" << std::endl; + all_inputs.push_back(dir_name); + return; + } else { + struct dirent *filename; // return value for readdir() + DIR *dir; // return value for opendir() + dir = opendir(dir_name); + if (NULL == dir) { + std::cout << "Can not open dir " << dir_name << std::endl; + return; + } + std::cout << "Successfully opened the dir !" << std::endl; + while ((filename = readdir(dir)) != NULL) { + if (strcmp(filename->d_name, ".") == 0 || + strcmp(filename->d_name, "..") == 0) + continue; + // img_dir + std::string("/") + all_inputs[0]; + all_inputs.push_back(dir_name + std::string("/") + + std::string(filename->d_name)); + } + } +} + } // namespace PaddleOCR \ No newline at end of file diff --git a/deploy/cpp_infer/tools/build.sh b/deploy/cpp_infer/tools/build.sh index 60653948..0c99f0e9 100755 --- a/deploy/cpp_infer/tools/build.sh +++ b/deploy/cpp_infer/tools/build.sh @@ -1,7 +1,9 @@ -OPENCV_DIR=your_opencv_dir -LIB_DIR=your_paddle_inference_dir -CUDA_LIB_DIR=your_cuda_lib_dir -CUDNN_LIB_DIR=your_cudnn_lib_dir +OPENCV_DIR=/paddle/Paddle/opencv-3.4.7/opencv3 +LIB_DIR=/paddle/OCR/debug/paddle_inference +#LIB_DIR=/paddle/Paddle/inference/2.0.2/paddle_inference +CUDA_LIB_DIR=/usr/local/cuda/lib64 +CUDNN_LIB_DIR=/usr/lib/x86_64-linux-gnu +TENSORRT_DIR=/paddle/Paddle/package/TensorRT/TensorRT-6.0.1.5/ BUILD_DIR=build rm -rf ${BUILD_DIR} @@ -12,9 +14,10 @@ cmake .. \ -DWITH_MKL=ON \ -DWITH_GPU=OFF \ -DWITH_STATIC_LIB=OFF \ - -DUSE_TENSORRT=OFF \ + -DWITH_TENSORRT=ON \ -DOPENCV_DIR=${OPENCV_DIR} \ -DCUDNN_LIB=${CUDNN_LIB_DIR} \ -DCUDA_LIB=${CUDA_LIB_DIR} \ + -DTENSORRT_DIR=${TENSORRT_DIR} \ make -j diff --git a/deploy/cpp_infer/tools/config.txt b/deploy/cpp_infer/tools/config.txt index 0e5f8472..9715fab3 100644 --- a/deploy/cpp_infer/tools/config.txt +++ b/deploy/cpp_infer/tools/config.txt @@ -1,5 +1,5 @@ # model load config -use_gpu 0 +use_gpu 1 gpu_id 0 gpu_mem 4000 cpu_math_library_num_threads 10 @@ -20,10 +20,10 @@ cls_thresh 0.9 # rec config rec_model_dir ./inference/ch_ppocr_mobile_v2.0_rec_infer/ -char_list_file ../../ppocr/utils/ppocr_keys_v1.txt +char_list_file ../../ppocr/utils/ppocr_keys_v1.txt # show the detection results -visualize 1 +visualize 0 # use_tensorrt use_tensorrt 0 diff --git a/deploy/cpp_infer/tools/run.sh b/deploy/cpp_infer/tools/run.sh index fa61da75..73118b71 100755 --- a/deploy/cpp_infer/tools/run.sh +++ b/deploy/cpp_infer/tools/run.sh @@ -1,2 +1,2 @@ -./build/ocr_system ./tools/config.txt ../../doc/imgs/12.jpg +./build/ocr_system ./tools/config.txt ../../doc/imgs/ From 2ab0ba91e491c5ad5b7a547966163d97bfb3bd73 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 06:50:02 +0000 Subject: [PATCH 04/31] delete debug code --- deploy/cpp_infer/src/ocr_rec.cpp | 179 +++++++++++++++---------------- 1 file changed, 87 insertions(+), 92 deletions(-) diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 29b5618c..cd0e94d2 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -88,103 +88,98 @@ void CRNNRecognizer::Run(std::vector>> boxes, std::cout << str_res[i]; } std::cout << "\tscore: " << score << std::endl; - auto box = boxes[i]; - std::cout << "box: " << box[0][0] << " " << box[0][1] << " " << box[1][0] - << " " << box[1][1] << " " << box[2][0] << " " << box[2][1] - << " " << box[3][0] << " " << box[3][1] << " " << std::endl; } -} -void CRNNRecognizer::LoadModel(const std::string &model_dir) { - // AnalysisConfig config; - paddle_infer::Config config; - config.SetModel(model_dir + "/inference.pdmodel", - model_dir + "/inference.pdiparams"); + void CRNNRecognizer::LoadModel(const std::string &model_dir) { + // AnalysisConfig config; + paddle_infer::Config config; + config.SetModel(model_dir + "/inference.pdmodel", + model_dir + "/inference.pdiparams"); - if (this->use_gpu_) { - config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); - if (this->use_tensorrt_) { - config.EnableTensorRtEngine( - 1 << 20, 10, 3, - this->use_fp16_ ? paddle_infer::Config::Precision::kHalf - : paddle_infer::Config::Precision::kFloat32, - false, false); + if (this->use_gpu_) { + config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); + if (this->use_tensorrt_) { + config.EnableTensorRtEngine( + 1 << 20, 10, 3, + this->use_fp16_ ? paddle_infer::Config::Precision::kHalf + : paddle_infer::Config::Precision::kFloat32, + false, false); + } + } else { + config.DisableGpu(); + if (this->use_mkldnn_) { + config.EnableMKLDNN(); + // cache 10 different shapes for mkldnn to avoid memory leak + config.SetMkldnnCacheCapacity(10); + } + config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_); } - } else { - config.DisableGpu(); - if (this->use_mkldnn_) { - config.EnableMKLDNN(); - // cache 10 different shapes for mkldnn to avoid memory leak - config.SetMkldnnCacheCapacity(10); + + config.SwitchUseFeedFetchOps(false); + // true for multiple input + config.SwitchSpecifyInputNames(true); + + config.SwitchIrOptim(true); + + config.EnableMemoryOptim(); + config.DisableGlogInfo(); + + this->predictor_ = CreatePredictor(config); + } + + cv::Mat CRNNRecognizer::GetRotateCropImage( + const cv::Mat &srcimage, std::vector> box) { + cv::Mat image; + srcimage.copyTo(image); + std::vector> points = box; + + int x_collect[4] = {box[0][0], box[1][0], box[2][0], box[3][0]}; + int y_collect[4] = {box[0][1], box[1][1], box[2][1], box[3][1]}; + int left = int(*std::min_element(x_collect, x_collect + 4)); + int right = int(*std::max_element(x_collect, x_collect + 4)); + int top = int(*std::min_element(y_collect, y_collect + 4)); + int bottom = int(*std::max_element(y_collect, y_collect + 4)); + + cv::Mat img_crop; + image(cv::Rect(left, top, right - left, bottom - top)).copyTo(img_crop); + + for (int i = 0; i < points.size(); i++) { + points[i][0] -= left; + points[i][1] -= top; + } + + int img_crop_width = int(sqrt(pow(points[0][0] - points[1][0], 2) + + pow(points[0][1] - points[1][1], 2))); + int img_crop_height = int(sqrt(pow(points[0][0] - points[3][0], 2) + + pow(points[0][1] - points[3][1], 2))); + + cv::Point2f pts_std[4]; + pts_std[0] = cv::Point2f(0., 0.); + pts_std[1] = cv::Point2f(img_crop_width, 0.); + pts_std[2] = cv::Point2f(img_crop_width, img_crop_height); + pts_std[3] = cv::Point2f(0.f, img_crop_height); + + cv::Point2f pointsf[4]; + pointsf[0] = cv::Point2f(points[0][0], points[0][1]); + pointsf[1] = cv::Point2f(points[1][0], points[1][1]); + pointsf[2] = cv::Point2f(points[2][0], points[2][1]); + pointsf[3] = cv::Point2f(points[3][0], points[3][1]); + + cv::Mat M = cv::getPerspectiveTransform(pointsf, pts_std); + + cv::Mat dst_img; + cv::warpPerspective(img_crop, dst_img, M, + cv::Size(img_crop_width, img_crop_height), + cv::BORDER_REPLICATE); + + if (float(dst_img.rows) >= float(dst_img.cols) * 1.5) { + cv::Mat srcCopy = cv::Mat(dst_img.rows, dst_img.cols, dst_img.depth()); + cv::transpose(dst_img, srcCopy); + cv::flip(srcCopy, srcCopy, 0); + return srcCopy; + } else { + return dst_img; } - config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_); } - config.SwitchUseFeedFetchOps(false); - // true for multiple input - config.SwitchSpecifyInputNames(true); - - config.SwitchIrOptim(true); - - config.EnableMemoryOptim(); - config.DisableGlogInfo(); - - this->predictor_ = CreatePredictor(config); -} - -cv::Mat CRNNRecognizer::GetRotateCropImage(const cv::Mat &srcimage, - std::vector> box) { - cv::Mat image; - srcimage.copyTo(image); - std::vector> points = box; - - int x_collect[4] = {box[0][0], box[1][0], box[2][0], box[3][0]}; - int y_collect[4] = {box[0][1], box[1][1], box[2][1], box[3][1]}; - int left = int(*std::min_element(x_collect, x_collect + 4)); - int right = int(*std::max_element(x_collect, x_collect + 4)); - int top = int(*std::min_element(y_collect, y_collect + 4)); - int bottom = int(*std::max_element(y_collect, y_collect + 4)); - - cv::Mat img_crop; - image(cv::Rect(left, top, right - left, bottom - top)).copyTo(img_crop); - - for (int i = 0; i < points.size(); i++) { - points[i][0] -= left; - points[i][1] -= top; - } - - int img_crop_width = int(sqrt(pow(points[0][0] - points[1][0], 2) + - pow(points[0][1] - points[1][1], 2))); - int img_crop_height = int(sqrt(pow(points[0][0] - points[3][0], 2) + - pow(points[0][1] - points[3][1], 2))); - - cv::Point2f pts_std[4]; - pts_std[0] = cv::Point2f(0., 0.); - pts_std[1] = cv::Point2f(img_crop_width, 0.); - pts_std[2] = cv::Point2f(img_crop_width, img_crop_height); - pts_std[3] = cv::Point2f(0.f, img_crop_height); - - cv::Point2f pointsf[4]; - pointsf[0] = cv::Point2f(points[0][0], points[0][1]); - pointsf[1] = cv::Point2f(points[1][0], points[1][1]); - pointsf[2] = cv::Point2f(points[2][0], points[2][1]); - pointsf[3] = cv::Point2f(points[3][0], points[3][1]); - - cv::Mat M = cv::getPerspectiveTransform(pointsf, pts_std); - - cv::Mat dst_img; - cv::warpPerspective(img_crop, dst_img, M, - cv::Size(img_crop_width, img_crop_height), - cv::BORDER_REPLICATE); - - if (float(dst_img.rows) >= float(dst_img.cols) * 1.5) { - cv::Mat srcCopy = cv::Mat(dst_img.rows, dst_img.cols, dst_img.depth()); - cv::transpose(dst_img, srcCopy); - cv::flip(srcCopy, srcCopy, 0); - return srcCopy; - } else { - return dst_img; - } -} - } // namespace PaddleOCR From 947470a3b21aaef7006670deb5d2abe3cc2e348a Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 06:55:34 +0000 Subject: [PATCH 05/31] fix error --- deploy/cpp_infer/src/ocr_rec.cpp | 159 ++++++++++++++++--------------- 1 file changed, 80 insertions(+), 79 deletions(-) diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index cd0e94d2..76873dad 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -89,97 +89,98 @@ void CRNNRecognizer::Run(std::vector>> boxes, } std::cout << "\tscore: " << score << std::endl; } +} - void CRNNRecognizer::LoadModel(const std::string &model_dir) { - // AnalysisConfig config; - paddle_infer::Config config; - config.SetModel(model_dir + "/inference.pdmodel", - model_dir + "/inference.pdiparams"); +void CRNNRecognizer::LoadModel(const std::string &model_dir) { + // AnalysisConfig config; + paddle_infer::Config config; + config.SetModel(model_dir + "/inference.pdmodel", + model_dir + "/inference.pdiparams"); - if (this->use_gpu_) { - config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); - if (this->use_tensorrt_) { - config.EnableTensorRtEngine( - 1 << 20, 10, 3, - this->use_fp16_ ? paddle_infer::Config::Precision::kHalf - : paddle_infer::Config::Precision::kFloat32, - false, false); - } - } else { - config.DisableGpu(); - if (this->use_mkldnn_) { - config.EnableMKLDNN(); - // cache 10 different shapes for mkldnn to avoid memory leak - config.SetMkldnnCacheCapacity(10); - } - config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_); + if (this->use_gpu_) { + config.EnableUseGpu(this->gpu_mem_, this->gpu_id_); + if (this->use_tensorrt_) { + config.EnableTensorRtEngine( + 1 << 20, 10, 3, + this->use_fp16_ ? paddle_infer::Config::Precision::kHalf + : paddle_infer::Config::Precision::kFloat32, + false, false); } - - config.SwitchUseFeedFetchOps(false); - // true for multiple input - config.SwitchSpecifyInputNames(true); - - config.SwitchIrOptim(true); - - config.EnableMemoryOptim(); - config.DisableGlogInfo(); - - this->predictor_ = CreatePredictor(config); + } else { + config.DisableGpu(); + if (this->use_mkldnn_) { + config.EnableMKLDNN(); + // cache 10 different shapes for mkldnn to avoid memory leak + config.SetMkldnnCacheCapacity(10); + } + config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_); } - cv::Mat CRNNRecognizer::GetRotateCropImage( - const cv::Mat &srcimage, std::vector> box) { - cv::Mat image; - srcimage.copyTo(image); - std::vector> points = box; + config.SwitchUseFeedFetchOps(false); + // true for multiple input + config.SwitchSpecifyInputNames(true); - int x_collect[4] = {box[0][0], box[1][0], box[2][0], box[3][0]}; - int y_collect[4] = {box[0][1], box[1][1], box[2][1], box[3][1]}; - int left = int(*std::min_element(x_collect, x_collect + 4)); - int right = int(*std::max_element(x_collect, x_collect + 4)); - int top = int(*std::min_element(y_collect, y_collect + 4)); - int bottom = int(*std::max_element(y_collect, y_collect + 4)); + config.SwitchIrOptim(true); - cv::Mat img_crop; - image(cv::Rect(left, top, right - left, bottom - top)).copyTo(img_crop); + config.EnableMemoryOptim(); + config.DisableGlogInfo(); - for (int i = 0; i < points.size(); i++) { - points[i][0] -= left; - points[i][1] -= top; - } + this->predictor_ = CreatePredictor(config); +} - int img_crop_width = int(sqrt(pow(points[0][0] - points[1][0], 2) + - pow(points[0][1] - points[1][1], 2))); - int img_crop_height = int(sqrt(pow(points[0][0] - points[3][0], 2) + - pow(points[0][1] - points[3][1], 2))); +cv::Mat CRNNRecognizer::GetRotateCropImage(const cv::Mat &srcimage, + std::vector> box) { + cv::Mat image; + srcimage.copyTo(image); + std::vector> points = box; - cv::Point2f pts_std[4]; - pts_std[0] = cv::Point2f(0., 0.); - pts_std[1] = cv::Point2f(img_crop_width, 0.); - pts_std[2] = cv::Point2f(img_crop_width, img_crop_height); - pts_std[3] = cv::Point2f(0.f, img_crop_height); + int x_collect[4] = {box[0][0], box[1][0], box[2][0], box[3][0]}; + int y_collect[4] = {box[0][1], box[1][1], box[2][1], box[3][1]}; + int left = int(*std::min_element(x_collect, x_collect + 4)); + int right = int(*std::max_element(x_collect, x_collect + 4)); + int top = int(*std::min_element(y_collect, y_collect + 4)); + int bottom = int(*std::max_element(y_collect, y_collect + 4)); - cv::Point2f pointsf[4]; - pointsf[0] = cv::Point2f(points[0][0], points[0][1]); - pointsf[1] = cv::Point2f(points[1][0], points[1][1]); - pointsf[2] = cv::Point2f(points[2][0], points[2][1]); - pointsf[3] = cv::Point2f(points[3][0], points[3][1]); + cv::Mat img_crop; + image(cv::Rect(left, top, right - left, bottom - top)).copyTo(img_crop); - cv::Mat M = cv::getPerspectiveTransform(pointsf, pts_std); - - cv::Mat dst_img; - cv::warpPerspective(img_crop, dst_img, M, - cv::Size(img_crop_width, img_crop_height), - cv::BORDER_REPLICATE); - - if (float(dst_img.rows) >= float(dst_img.cols) * 1.5) { - cv::Mat srcCopy = cv::Mat(dst_img.rows, dst_img.cols, dst_img.depth()); - cv::transpose(dst_img, srcCopy); - cv::flip(srcCopy, srcCopy, 0); - return srcCopy; - } else { - return dst_img; - } + for (int i = 0; i < points.size(); i++) { + points[i][0] -= left; + points[i][1] -= top; } + int img_crop_width = int(sqrt(pow(points[0][0] - points[1][0], 2) + + pow(points[0][1] - points[1][1], 2))); + int img_crop_height = int(sqrt(pow(points[0][0] - points[3][0], 2) + + pow(points[0][1] - points[3][1], 2))); + + cv::Point2f pts_std[4]; + pts_std[0] = cv::Point2f(0., 0.); + pts_std[1] = cv::Point2f(img_crop_width, 0.); + pts_std[2] = cv::Point2f(img_crop_width, img_crop_height); + pts_std[3] = cv::Point2f(0.f, img_crop_height); + + cv::Point2f pointsf[4]; + pointsf[0] = cv::Point2f(points[0][0], points[0][1]); + pointsf[1] = cv::Point2f(points[1][0], points[1][1]); + pointsf[2] = cv::Point2f(points[2][0], points[2][1]); + pointsf[3] = cv::Point2f(points[3][0], points[3][1]); + + cv::Mat M = cv::getPerspectiveTransform(pointsf, pts_std); + + cv::Mat dst_img; + cv::warpPerspective(img_crop, dst_img, M, + cv::Size(img_crop_width, img_crop_height), + cv::BORDER_REPLICATE); + + if (float(dst_img.rows) >= float(dst_img.cols) * 1.5) { + cv::Mat srcCopy = cv::Mat(dst_img.rows, dst_img.cols, dst_img.depth()); + cv::transpose(dst_img, srcCopy); + cv::flip(srcCopy, srcCopy, 0); + return srcCopy; + } else { + return dst_img; + } +} + } // namespace PaddleOCR From 4a27ac35f74a237ef51d31b4215f4418d681bacc Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 06:58:24 +0000 Subject: [PATCH 06/31] delete unused comment --- deploy/cpp_infer/src/main.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/deploy/cpp_infer/src/main.cpp b/deploy/cpp_infer/src/main.cpp index 96b5e895..f2f6d807 100644 --- a/deploy/cpp_infer/src/main.cpp +++ b/deploy/cpp_infer/src/main.cpp @@ -88,12 +88,7 @@ int main(int argc, char **argv) { std::vector>> boxes; det.Run(srcimg, boxes); - // for (auto box : boxes){ - // std::cout << "box: " << box[0][0] << " " << box[0][1] << " " - // << box[1][0] << " " << box[1][1] << " " - // << box[2][0] << " " << box[2][1] << " " - // << box[3][0] << " " << box[3][1] << " " << std::endl; - // } + rec.Run(boxes, srcimg, cls); auto end = std::chrono::system_clock::now(); auto duration = From 8fc45dc6026c6be770d77c792d2ed3bc64cc94f8 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:02:47 +0000 Subject: [PATCH 07/31] delete debug --- deploy/cpp_infer/src/main.cpp | 1 - deploy/cpp_infer/tools/build.sh | 7 +++---- deploy/cpp_infer/tools/config.txt | 2 +- deploy/cpp_infer/tools/run.sh | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/deploy/cpp_infer/src/main.cpp b/deploy/cpp_infer/src/main.cpp index f2f6d807..f25e674b 100644 --- a/deploy/cpp_infer/src/main.cpp +++ b/deploy/cpp_infer/src/main.cpp @@ -51,7 +51,6 @@ int main(int argc, char **argv) { std::string img_path(argv[2]); std::vector all_img_names; - // cv::Mat srcimg = cv::imread(img_path, cv::IMREAD_COLOR); Utility::GetAllFiles((char *)img_path.c_str(), all_img_names); DBDetector det(config.det_model_dir, config.use_gpu, config.gpu_id, diff --git a/deploy/cpp_infer/tools/build.sh b/deploy/cpp_infer/tools/build.sh index 0c99f0e9..e7689196 100755 --- a/deploy/cpp_infer/tools/build.sh +++ b/deploy/cpp_infer/tools/build.sh @@ -1,9 +1,8 @@ OPENCV_DIR=/paddle/Paddle/opencv-3.4.7/opencv3 -LIB_DIR=/paddle/OCR/debug/paddle_inference -#LIB_DIR=/paddle/Paddle/inference/2.0.2/paddle_inference +LIB_DIR=your inference dir CUDA_LIB_DIR=/usr/local/cuda/lib64 CUDNN_LIB_DIR=/usr/lib/x86_64-linux-gnu -TENSORRT_DIR=/paddle/Paddle/package/TensorRT/TensorRT-6.0.1.5/ +TENSORRT_DIR=your trt dir BUILD_DIR=build rm -rf ${BUILD_DIR} @@ -14,7 +13,7 @@ cmake .. \ -DWITH_MKL=ON \ -DWITH_GPU=OFF \ -DWITH_STATIC_LIB=OFF \ - -DWITH_TENSORRT=ON \ + -DWITH_TENSORRT=OFF \ -DOPENCV_DIR=${OPENCV_DIR} \ -DCUDNN_LIB=${CUDNN_LIB_DIR} \ -DCUDA_LIB=${CUDA_LIB_DIR} \ diff --git a/deploy/cpp_infer/tools/config.txt b/deploy/cpp_infer/tools/config.txt index 9715fab3..d4d66d65 100644 --- a/deploy/cpp_infer/tools/config.txt +++ b/deploy/cpp_infer/tools/config.txt @@ -1,5 +1,5 @@ # model load config -use_gpu 1 +use_gpu 0 gpu_id 0 gpu_mem 4000 cpu_math_library_num_threads 10 diff --git a/deploy/cpp_infer/tools/run.sh b/deploy/cpp_infer/tools/run.sh index 73118b71..fa61da75 100755 --- a/deploy/cpp_infer/tools/run.sh +++ b/deploy/cpp_infer/tools/run.sh @@ -1,2 +1,2 @@ -./build/ocr_system ./tools/config.txt ../../doc/imgs/ +./build/ocr_system ./tools/config.txt ../../doc/imgs/12.jpg From 16d70fb74bbeded98c134df0ab69bfc4b29eff31 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:08:56 +0000 Subject: [PATCH 08/31] add cpu_math_library_num_threads params --- tools/infer/utility.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index b5fe3ba9..41ca445f 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -21,6 +21,9 @@ import json from PIL import Image, ImageDraw, ImageFont import math from paddle import inference +import time +from ppocr.utils.logging import get_logger +logger = get_logger() def parse_args(): @@ -98,6 +101,7 @@ def parse_args(): parser.add_argument("--cls_thresh", type=float, default=0.9) parser.add_argument("--enable_mkldnn", type=str2bool, default=False) + parser.add_argument("--cpu_threads", type=int, default=10) parser.add_argument("--use_pdserving", type=str2bool, default=False) parser.add_argument("--use_mp", type=str2bool, default=False) @@ -140,14 +144,15 @@ def create_predictor(args, mode, logger): max_batch_size=args.max_batch_size) else: config.disable_gpu() - config.set_cpu_math_library_num_threads(6) + if hasattr(args, "cpu_threads"): + config.set_cpu_math_library_num_threads(args.cpu_threads) + else: + config.set_cpu_math_library_num_threads( + 10) # default cpu threads as 10 if args.enable_mkldnn: # cache 10 different shapes for mkldnn to avoid memory leak config.set_mkldnn_cache_capacity(10) config.enable_mkldnn() - # TODO LDOUBLEV: fix mkldnn bug when bach_size > 1 - #config.set_mkldnn_op({'conv2d', 'depthwise_conv2d', 'pool2d', 'batch_norm'}) - args.rec_batch_num = 1 # enable memory optim config.enable_memory_optim() From 9a68a6123a04bda96dcce6eed52fcc98b2ac06f0 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:09:52 +0000 Subject: [PATCH 09/31] fix hub server error --- tools/infer/utility.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 41ca445f..f4e62b87 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -215,7 +215,7 @@ def draw_ocr(image, txts=None, scores=None, drop_score=0.5, - font_path="./doc/simfang.ttf"): + font_path="./doc/fonts/simfang.ttf"): """ Visualize the results of OCR detection and recognition args: From c946b386fd8bc745bd4b8ac59f30f94067bc5483 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:18:40 +0000 Subject: [PATCH 10/31] add trt min max opt shape --- tools/infer/utility.py | 80 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index f4e62b87..8ad916be 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -139,9 +139,83 @@ def create_predictor(args, mode, logger): config.enable_use_gpu(args.gpu_mem, 0) if args.use_tensorrt: config.enable_tensorrt_engine( - precision_mode=inference.PrecisionType.Half - if args.use_fp16 else inference.PrecisionType.Float32, - max_batch_size=args.max_batch_size) + precision_mode=inference.PrecisionType.Float32, + max_batch_size=args.max_batch_size, + min_subgraph_size=3) # skip the minmum trt subgraph + if mode == "det" and "mobile" in model_file_path: + min_input_shape = { + "x": [1, 3, 50, 50], + "conv2d_92.tmp_0": [1, 96, 20, 20], + "conv2d_91.tmp_0": [1, 96, 10, 10], + "nearest_interp_v2_1.tmp_0": [1, 96, 10, 10], + "nearest_interp_v2_2.tmp_0": [1, 96, 20, 20], + "nearest_interp_v2_3.tmp_0": [1, 24, 20, 20], + "nearest_interp_v2_4.tmp_0": [1, 24, 20, 20], + "nearest_interp_v2_5.tmp_0": [1, 24, 20, 20], + "elementwise_add_7": [1, 56, 2, 2], + "nearest_interp_v2_0.tmp_0": [1, 96, 2, 2] + } + max_input_shape = { + "x": [1, 3, 2000, 2000], + "conv2d_92.tmp_0": [1, 96, 400, 400], + "conv2d_91.tmp_0": [1, 96, 200, 200], + "nearest_interp_v2_1.tmp_0": [1, 96, 200, 200], + "nearest_interp_v2_2.tmp_0": [1, 96, 400, 400], + "nearest_interp_v2_3.tmp_0": [1, 24, 400, 400], + "nearest_interp_v2_4.tmp_0": [1, 24, 400, 400], + "nearest_interp_v2_5.tmp_0": [1, 24, 400, 400], + "elementwise_add_7": [1, 56, 400, 400], + "nearest_interp_v2_0.tmp_0": [1, 96, 400, 400] + } + opt_input_shape = { + "x": [1, 3, 640, 640], + "conv2d_92.tmp_0": [1, 96, 160, 160], + "conv2d_91.tmp_0": [1, 96, 80, 80], + "nearest_interp_v2_1.tmp_0": [1, 96, 80, 80], + "nearest_interp_v2_2.tmp_0": [1, 96, 160, 160], + "nearest_interp_v2_3.tmp_0": [1, 24, 160, 160], + "nearest_interp_v2_4.tmp_0": [1, 24, 160, 160], + "nearest_interp_v2_5.tmp_0": [1, 24, 160, 160], + "elementwise_add_7": [1, 56, 40, 40], + "nearest_interp_v2_0.tmp_0": [1, 96, 40, 40] + } + if mode == "det" and "server" in model_file_path: + min_input_shape = { + "x": [1, 3, 50, 50], + "conv2d_59.tmp_0": [1, 96, 20, 20], + "nearest_interp_v2_2.tmp_0": [1, 96, 20, 20], + "nearest_interp_v2_3.tmp_0": [1, 24, 20, 20], + "nearest_interp_v2_4.tmp_0": [1, 24, 20, 20], + "nearest_interp_v2_5.tmp_0": [1, 24, 20, 20] + } + max_input_shape = { + "x": [1, 3, 2000, 2000], + "conv2d_59.tmp_0": [1, 96, 400, 400], + "nearest_interp_v2_2.tmp_0": [1, 96, 400, 400], + "nearest_interp_v2_3.tmp_0": [1, 24, 400, 400], + "nearest_interp_v2_4.tmp_0": [1, 24, 400, 400], + "nearest_interp_v2_5.tmp_0": [1, 24, 400, 400] + } + opt_input_shape = { + "x": [1, 3, 640, 640], + "conv2d_59.tmp_0": [1, 96, 160, 160], + "nearest_interp_v2_2.tmp_0": [1, 96, 160, 160], + "nearest_interp_v2_3.tmp_0": [1, 24, 160, 160], + "nearest_interp_v2_4.tmp_0": [1, 24, 160, 160], + "nearest_interp_v2_5.tmp_0": [1, 24, 160, 160] + } + elif mode == "rec": + min_input_shape = {"x": [args.rec_batch_num, 3, 32, 10]} + max_input_shape = {"x": [args.rec_batch_num, 3, 32, 2000]} + opt_input_shape = {"x": [args.rec_batch_num, 3, 32, 320]} + elif mode == "cls": + min_input_shape = {"x": [args.rec_batch_num, 3, 48, 10]} + max_input_shape = {"x": [args.rec_batch_num, 3, 48, 2000]} + opt_input_shape = {"x": [args.rec_batch_num, 3, 48, 320]} + + config.set_trt_dynamic_shape_info(min_input_shape, max_input_shape, + opt_input_shape) + else: config.disable_gpu() if hasattr(args, "cpu_threads"): From 0707f743487f8a4707aa7d6dedd78bc3e0d3f0fe Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:36:44 +0000 Subject: [PATCH 11/31] delete debug code --- tools/infer/utility.py | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 8ad916be..ff0b60b9 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -497,22 +497,4 @@ def draw_boxes(image, boxes, scores=None, drop_score=0.5): if __name__ == '__main__': - test_img = "./doc/test_v2" - predict_txt = "./doc/predict.txt" - f = open(predict_txt, 'r') - data = f.readlines() - img_path, anno = data[0].strip().split('\t') - img_name = os.path.basename(img_path) - img_path = os.path.join(test_img, img_name) - image = Image.open(img_path) - - data = json.loads(anno) - boxes, txts, scores = [], [], [] - for dic in data: - boxes.append(dic['points']) - txts.append(dic['transcription']) - scores.append(round(dic['scores'], 3)) - - new_img = draw_ocr(image, boxes, txts, scores) - - cv2.imwrite(img_name, new_img) + pass From 5b3e7a33935bab2bfbca37cc7ada89a14922a28b Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 07:56:06 +0000 Subject: [PATCH 12/31] support cpp trt predict --- deploy/cpp_infer/src/ocr_det.cpp | 38 ++++++++++++++++++- deploy/cpp_infer/src/ocr_rec.cpp | 9 +++++ deploy/cpp_infer/src/preprocess_op.cpp | 51 ++++++++------------------ 3 files changed, 61 insertions(+), 37 deletions(-) mode change 100755 => 100644 deploy/cpp_infer/src/preprocess_op.cpp diff --git a/deploy/cpp_infer/src/ocr_det.cpp b/deploy/cpp_infer/src/ocr_det.cpp index 9bfee613..33ad468a 100644 --- a/deploy/cpp_infer/src/ocr_det.cpp +++ b/deploy/cpp_infer/src/ocr_det.cpp @@ -30,6 +30,42 @@ void DBDetector::LoadModel(const std::string &model_dir) { this->use_fp16_ ? paddle_infer::Config::Precision::kHalf : paddle_infer::Config::Precision::kFloat32, false, false); + std::map> min_input_shape = { + {"x", {1, 3, 50, 50}}, + {"conv2d_92.tmp_0", {1, 96, 20, 20}}, + {"conv2d_91.tmp_0", {1, 96, 10, 10}}, + {"nearest_interp_v2_1.tmp_0", {1, 96, 10, 10}}, + {"nearest_interp_v2_2.tmp_0", {1, 96, 20, 20}}, + {"nearest_interp_v2_3.tmp_0", {1, 24, 20, 20}}, + {"nearest_interp_v2_4.tmp_0", {1, 24, 20, 20}}, + {"nearest_interp_v2_5.tmp_0", {1, 24, 20, 20}}, + {"elementwise_add_7", {1, 56, 2, 2}}, + {"nearest_interp_v2_0.tmp_0", {1, 96, 2, 2}}}; + std::map> max_input_shape = { + {"x", {1, 3, this->max_side_len_, this->max_side_len_}}, + {"conv2d_92.tmp_0", {1, 96, 400, 400}}, + {"conv2d_91.tmp_0", {1, 96, 200, 200}}, + {"nearest_interp_v2_1.tmp_0", {1, 96, 200, 200}}, + {"nearest_interp_v2_2.tmp_0", {1, 96, 400, 400}}, + {"nearest_interp_v2_3.tmp_0", {1, 24, 400, 400}}, + {"nearest_interp_v2_4.tmp_0", {1, 24, 400, 400}}, + {"nearest_interp_v2_5.tmp_0", {1, 24, 400, 400}}, + {"elementwise_add_7", {1, 56, 400, 400}}, + {"nearest_interp_v2_0.tmp_0", {1, 96, 400, 400}}}; + std::map> opt_input_shape = { + {"x", {1, 3, 640, 640}}, + {"conv2d_92.tmp_0", {1, 96, 160, 160}}, + {"conv2d_91.tmp_0", {1, 96, 80, 80}}, + {"nearest_interp_v2_1.tmp_0", {1, 96, 80, 80}}, + {"nearest_interp_v2_2.tmp_0", {1, 96, 160, 160}}, + {"nearest_interp_v2_3.tmp_0", {1, 24, 160, 160}}, + {"nearest_interp_v2_4.tmp_0", {1, 24, 160, 160}}, + {"nearest_interp_v2_5.tmp_0", {1, 24, 160, 160}}, + {"elementwise_add_7", {1, 56, 40, 40}}, + {"nearest_interp_v2_0.tmp_0", {1, 96, 40, 40}}}; + + config.SetTRTDynamicShapeInfo(min_input_shape, max_input_shape, + opt_input_shape); } } else { config.DisableGpu(); @@ -48,7 +84,7 @@ void DBDetector::LoadModel(const std::string &model_dir) { config.SwitchIrOptim(true); config.EnableMemoryOptim(); - config.DisableGlogInfo(); + // config.DisableGlogInfo(); this->predictor_ = CreatePredictor(config); } diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 76873dad..e3f88033 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -105,6 +105,15 @@ void CRNNRecognizer::LoadModel(const std::string &model_dir) { this->use_fp16_ ? paddle_infer::Config::Precision::kHalf : paddle_infer::Config::Precision::kFloat32, false, false); + std::map> min_input_shape = { + {"x", {1, 3, 32, 10}}}; + std::map> max_input_shape = { + {"x", {1, 3, 32, 2000}}}; + std::map> opt_input_shape = { + {"x", {1, 3, 32, 320}}}; + + config.SetTRTDynamicShapeInfo(min_input_shape, max_input_shape, + opt_input_shape); } } else { config.DisableGpu(); diff --git a/deploy/cpp_infer/src/preprocess_op.cpp b/deploy/cpp_infer/src/preprocess_op.cpp old mode 100755 new mode 100644 index fb7590e3..28590e18 --- a/deploy/cpp_infer/src/preprocess_op.cpp +++ b/deploy/cpp_infer/src/preprocess_op.cpp @@ -77,19 +77,13 @@ void ResizeImgType0::Run(const cv::Mat &img, cv::Mat &resize_img, int resize_h = int(float(h) * ratio); int resize_w = int(float(w) * ratio); - + resize_h = max(int(round(float(resize_h) / 32) * 32), 32); resize_w = max(int(round(float(resize_w) / 32) * 32), 32); - if (!use_tensorrt) { - cv::resize(img, resize_img, cv::Size(resize_w, resize_h)); - ratio_h = float(resize_h) / float(h); - ratio_w = float(resize_w) / float(w); - } else { - cv::resize(img, resize_img, cv::Size(640, 640)); - ratio_h = float(640) / float(h); - ratio_w = float(640) / float(w); - } + cv::resize(img, resize_img, cv::Size(resize_w, resize_h)); + ratio_h = float(resize_h) / float(h); + ratio_w = float(resize_w) / float(w); } void CrnnResizeImg::Run(const cv::Mat &img, cv::Mat &resize_img, float wh_ratio, @@ -108,23 +102,12 @@ void CrnnResizeImg::Run(const cv::Mat &img, cv::Mat &resize_img, float wh_ratio, resize_w = imgW; else resize_w = int(ceilf(imgH * ratio)); - if (!use_tensorrt) { - cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, - cv::INTER_LINEAR); - cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, - int(imgW - resize_img.cols), cv::BORDER_CONSTANT, - {127, 127, 127}); - } else { - int k = int(img.cols * 32 / img.rows); - if (k >= 100) { - cv::resize(img, resize_img, cv::Size(100, 32), 0.f, 0.f, - cv::INTER_LINEAR); - } else { - cv::resize(img, resize_img, cv::Size(k, 32), 0.f, 0.f, cv::INTER_LINEAR); - cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, int(100 - k), - cv::BORDER_CONSTANT, {127, 127, 127}); - } - } + + cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, + cv::INTER_LINEAR); + cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, + int(imgW - resize_img.cols), cv::BORDER_CONSTANT, + {127, 127, 127}); } void ClsResizeImg::Run(const cv::Mat &img, cv::Mat &resize_img, @@ -142,15 +125,11 @@ void ClsResizeImg::Run(const cv::Mat &img, cv::Mat &resize_img, else resize_w = int(ceilf(imgH * ratio)); - if (!use_tensorrt) { - cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, - cv::INTER_LINEAR); - if (resize_w < imgW) { - cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, imgW - resize_w, - cv::BORDER_CONSTANT, cv::Scalar(0, 0, 0)); - } - } else { - cv::resize(img, resize_img, cv::Size(100, 32), 0.f, 0.f, cv::INTER_LINEAR); + cv::resize(img, resize_img, cv::Size(resize_w, imgH), 0.f, 0.f, + cv::INTER_LINEAR); + if (resize_w < imgW) { + cv::copyMakeBorder(resize_img, resize_img, 0, 0, 0, imgW - resize_w, + cv::BORDER_CONSTANT, cv::Scalar(0, 0, 0)); } } From 3296edd7b72287c772eb8e915eacf77bdd1d18bf Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 08:03:13 +0000 Subject: [PATCH 13/31] -DUSE to -DWITH --- deploy/cpp_infer/tools/build.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/deploy/cpp_infer/tools/build.sh b/deploy/cpp_infer/tools/build.sh index 60653948..3e992670 100755 --- a/deploy/cpp_infer/tools/build.sh +++ b/deploy/cpp_infer/tools/build.sh @@ -1,7 +1,8 @@ -OPENCV_DIR=your_opencv_dir -LIB_DIR=your_paddle_inference_dir -CUDA_LIB_DIR=your_cuda_lib_dir -CUDNN_LIB_DIR=your_cudnn_lib_dir +OPENCV_DIR=/paddle/Paddle/opencv-3.4.7/opencv3 +LIB_DIR=/paddle/OCR/debug/paddle_inference +CUDA_LIB_DIR=/usr/local/cuda/lib64 +CUDNN_LIB_DIR=/usr/lib/x86_64-linux-gnu +TENSORRT_DIR=/paddle/Paddle/package/TensorRT/TensorRT-6.0.1.5/ BUILD_DIR=build rm -rf ${BUILD_DIR} @@ -12,7 +13,7 @@ cmake .. \ -DWITH_MKL=ON \ -DWITH_GPU=OFF \ -DWITH_STATIC_LIB=OFF \ - -DUSE_TENSORRT=OFF \ + -DWITH_TENSORRT=OFF \ -DOPENCV_DIR=${OPENCV_DIR} \ -DCUDNN_LIB=${CUDNN_LIB_DIR} \ -DCUDA_LIB=${CUDA_LIB_DIR} \ From b4dc3e9876abeab2ca307bb3f5828acd9638856a Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 08:04:12 +0000 Subject: [PATCH 14/31] complie path retrieval --- deploy/cpp_infer/tools/build.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deploy/cpp_infer/tools/build.sh b/deploy/cpp_infer/tools/build.sh index 3e992670..b767ca7f 100755 --- a/deploy/cpp_infer/tools/build.sh +++ b/deploy/cpp_infer/tools/build.sh @@ -1,8 +1,7 @@ -OPENCV_DIR=/paddle/Paddle/opencv-3.4.7/opencv3 -LIB_DIR=/paddle/OCR/debug/paddle_inference -CUDA_LIB_DIR=/usr/local/cuda/lib64 -CUDNN_LIB_DIR=/usr/lib/x86_64-linux-gnu -TENSORRT_DIR=/paddle/Paddle/package/TensorRT/TensorRT-6.0.1.5/ +OPENCV_DIR=your_opencv_dir +LIB_DIR=your_paddle_inference_dir +CUDA_LIB_DIR=your_cuda_lib_dir +CUDNN_LIB_DIR=your_cudnn_lib_dir BUILD_DIR=build rm -rf ${BUILD_DIR} From eaf38b9b12cb529daa9eb920b843c7754dac38a2 Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Wed, 26 May 2021 17:34:47 +0800 Subject: [PATCH 15/31] combine args in paddleocr and ppocr/infer/utility --- doc/doc_ch/whl.md | 2 +- doc/doc_en/whl_en.md | 2 +- paddleocr.py | 140 ++++---------- tools/infer/predict_system.py | 4 +- tools/infer/utility.py | 341 +++++++++++++++++++++++++++------- 5 files changed, 309 insertions(+), 180 deletions(-) diff --git a/doc/doc_ch/whl.md b/doc/doc_ch/whl.md index 2e93c487..c341b49a 100644 --- a/doc/doc_ch/whl.md +++ b/doc/doc_ch/whl.md @@ -59,7 +59,7 @@ im_show.save('result.jpg') from paddleocr import PaddleOCR, draw_ocr ocr = PaddleOCR() # need to run only once to download and load model into memory img_path = 'PaddleOCR/doc/imgs/11.jpg' -result = ocr.ocr(img_path) +result = ocr.ocr(img_path,cls=False) for line in result: print(line) diff --git a/doc/doc_en/whl_en.md b/doc/doc_en/whl_en.md index 69abf085..eeaf1347 100644 --- a/doc/doc_en/whl_en.md +++ b/doc/doc_en/whl_en.md @@ -59,7 +59,7 @@ Visualization of results from paddleocr import PaddleOCR,draw_ocr ocr = PaddleOCR(lang='en') # need to run only once to download and load model into memory img_path = 'PaddleOCR/doc/imgs_en/img_12.jpg' -result = ocr.ocr(img_path) +result = ocr.ocr(img_path, cls=False) for line in result: print(line) diff --git a/paddleocr.py b/paddleocr.py index c5da7248..5e14deb1 100644 --- a/paddleocr.py +++ b/paddleocr.py @@ -30,7 +30,7 @@ from ppocr.utils.logging import get_logger logger = get_logger() from ppocr.utils.utility import check_and_read_gif, get_image_file_list -from tools.infer.utility import draw_ocr +from tools.infer.utility import draw_ocr, inference_args_list, str2bool, parse_args __all__ = ['PaddleOCR'] @@ -167,106 +167,36 @@ def maybe_download(model_storage_directory, url): os.remove(tmp_path) -def parse_args(mMain=True, add_help=True): +def parse_args_whl(mMain=True): import argparse - - def str2bool(v): - return v.lower() in ("true", "t", "1") - + extend_args_list = [ + { + 'name': 'lang', + 'type': str, + 'default': 'ch' + }, + { + 'name': 'det', + 'type': str2bool, + 'default': True + }, + { + 'name': 'rec', + 'type': str2bool, + 'default': True + }, + ] + for item in inference_args_list: + if item['name'] == 'rec_char_dict_path': + item['default'] = None + inference_args_list.extend(extend_args_list) if mMain: - parser = argparse.ArgumentParser(add_help=add_help) - # params for prediction engine - parser.add_argument("--use_gpu", type=str2bool, default=True) - parser.add_argument("--ir_optim", type=str2bool, default=True) - parser.add_argument("--use_tensorrt", type=str2bool, default=False) - parser.add_argument("--gpu_mem", type=int, default=8000) - - # params for text detector - parser.add_argument("--image_dir", type=str) - parser.add_argument("--det_algorithm", type=str, default='DB') - parser.add_argument("--det_model_dir", type=str, default=None) - parser.add_argument("--det_limit_side_len", type=float, default=960) - parser.add_argument("--det_limit_type", type=str, default='max') - - # DB parmas - parser.add_argument("--det_db_thresh", type=float, default=0.3) - parser.add_argument("--det_db_box_thresh", type=float, default=0.5) - parser.add_argument("--det_db_unclip_ratio", type=float, default=1.6) - parser.add_argument("--use_dilation", type=bool, default=False) - parser.add_argument("--det_db_score_mode", type=str, default="fast") - - # EAST parmas - parser.add_argument("--det_east_score_thresh", type=float, default=0.8) - parser.add_argument("--det_east_cover_thresh", type=float, default=0.1) - parser.add_argument("--det_east_nms_thresh", type=float, default=0.2) - - # params for text recognizer - parser.add_argument("--rec_algorithm", type=str, default='CRNN') - parser.add_argument("--rec_model_dir", type=str, default=None) - parser.add_argument("--rec_image_shape", type=str, default="3, 32, 320") - parser.add_argument("--rec_char_type", type=str, default='ch') - parser.add_argument("--rec_batch_num", type=int, default=6) - parser.add_argument("--max_text_length", type=int, default=25) - parser.add_argument("--rec_char_dict_path", type=str, default=None) - parser.add_argument("--use_space_char", type=bool, default=True) - parser.add_argument("--drop_score", type=float, default=0.5) - - # params for text classifier - parser.add_argument("--cls_model_dir", type=str, default=None) - parser.add_argument("--cls_image_shape", type=str, default="3, 48, 192") - parser.add_argument("--label_list", type=list, default=['0', '180']) - parser.add_argument("--cls_batch_num", type=int, default=6) - parser.add_argument("--cls_thresh", type=float, default=0.9) - - parser.add_argument("--enable_mkldnn", type=bool, default=False) - parser.add_argument("--use_zero_copy_run", type=bool, default=False) - parser.add_argument("--use_pdserving", type=str2bool, default=False) - - parser.add_argument("--lang", type=str, default='ch') - parser.add_argument("--det", type=str2bool, default=True) - parser.add_argument("--rec", type=str2bool, default=True) - parser.add_argument("--use_angle_cls", type=str2bool, default=False) - return parser.parse_args() + return parse_args() else: - return argparse.Namespace( - use_gpu=True, - ir_optim=True, - use_tensorrt=False, - gpu_mem=8000, - image_dir='', - det_algorithm='DB', - det_model_dir=None, - det_limit_side_len=960, - det_limit_type='max', - det_db_thresh=0.3, - det_db_box_thresh=0.5, - det_db_unclip_ratio=1.6, - use_dilation=False, - det_db_score_mode="fast", - det_east_score_thresh=0.8, - det_east_cover_thresh=0.1, - det_east_nms_thresh=0.2, - rec_algorithm='CRNN', - rec_model_dir=None, - rec_image_shape="3, 32, 320", - rec_char_type='ch', - rec_batch_num=6, - max_text_length=25, - rec_char_dict_path=None, - use_space_char=True, - drop_score=0.5, - cls_model_dir=None, - cls_image_shape="3, 48, 192", - label_list=['0', '180'], - cls_batch_num=6, - cls_thresh=0.9, - enable_mkldnn=False, - use_zero_copy_run=False, - use_pdserving=False, - lang='ch', - det=True, - rec=True, - use_angle_cls=False) + inference_args_dict = {} + for item in inference_args_list: + inference_args_dict[item['name']] = item['default'] + return argparse.Namespace(**inference_args_dict) class PaddleOCR(predict_system.TextSystem): @@ -276,7 +206,7 @@ class PaddleOCR(predict_system.TextSystem): args: **kwargs: other params show in paddleocr --help """ - postprocess_params = parse_args(mMain=False, add_help=False) + postprocess_params = parse_args_whl(mMain=False) postprocess_params.__dict__.update(**kwargs) self.use_angle_cls = postprocess_params.use_angle_cls lang = postprocess_params.lang @@ -346,7 +276,7 @@ class PaddleOCR(predict_system.TextSystem): # init det_model and rec_model super().__init__(postprocess_params) - def ocr(self, img, det=True, rec=True, cls=False): + def ocr(self, img, det=True, rec=True, cls=True): """ ocr with paddleocr args: @@ -358,9 +288,7 @@ class PaddleOCR(predict_system.TextSystem): if isinstance(img, list) and det == True: logger.error('When input a list of images, det must be false') exit(0) - if cls == False: - self.use_angle_cls = False - elif cls == True and self.use_angle_cls == False: + if cls == True and self.use_angle_cls == False: logger.warning( 'Since the angle classifier is not initialized, the angle classifier will not be uesd during the forward process' ) @@ -382,7 +310,7 @@ class PaddleOCR(predict_system.TextSystem): if isinstance(img, np.ndarray) and len(img.shape) == 2: img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) if det and rec: - dt_boxes, rec_res = self.__call__(img) + dt_boxes, rec_res = self.__call__(img, cls) return [[box.tolist(), res] for box, res in zip(dt_boxes, rec_res)] elif det and not rec: dt_boxes, elapse = self.text_detector(img) @@ -392,7 +320,7 @@ class PaddleOCR(predict_system.TextSystem): else: if not isinstance(img, list): img = [img] - if self.use_angle_cls: + if self.use_angle_cls and cls: img, cls_res, elapse = self.text_classifier(img) if not rec: return cls_res @@ -402,7 +330,7 @@ class PaddleOCR(predict_system.TextSystem): def main(): # for cmd - args = parse_args(mMain=True) + args = parse_args_whl(mMain=True) image_dir = args.image_dir if image_dir.startswith('http'): download_with_progressbar(image_dir, 'tmp.jpg') diff --git a/tools/infer/predict_system.py b/tools/infer/predict_system.py index ba81aff0..78f5a472 100755 --- a/tools/infer/predict_system.py +++ b/tools/infer/predict_system.py @@ -85,7 +85,7 @@ class TextSystem(object): cv2.imwrite("./output/img_crop_%d.jpg" % bno, img_crop_list[bno]) logger.info(bno, rec_res[bno]) - def __call__(self, img): + def __call__(self, img, cls=True): ori_im = img.copy() dt_boxes, elapse = self.text_detector(img) logger.info("dt_boxes num : {}, elapse : {}".format( @@ -100,7 +100,7 @@ class TextSystem(object): tmp_box = copy.deepcopy(dt_boxes[bno]) img_crop = self.get_rotate_crop_image(ori_im, tmp_box) img_crop_list.append(img_crop) - if self.use_angle_cls: + if self.use_angle_cls and cls: img_crop_list, angle_list, elapse = self.text_classifier( img_crop_list) logger.info("cls num : {}, elapse : {}".format( diff --git a/tools/infer/utility.py b/tools/infer/utility.py index b5fe3ba9..3aa2a01e 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -23,87 +23,288 @@ import math from paddle import inference -def parse_args(): - def str2bool(v): - return v.lower() in ("true", "t", "1") +def str2bool(v): + return v.lower() in ("true", "t", "1") - parser = argparse.ArgumentParser() + +inference_args_list = [ # params for prediction engine - parser.add_argument("--use_gpu", type=str2bool, default=True) - parser.add_argument("--ir_optim", type=str2bool, default=True) - parser.add_argument("--use_tensorrt", type=str2bool, default=False) - parser.add_argument("--use_fp16", type=str2bool, default=False) - parser.add_argument("--gpu_mem", type=int, default=500) - + { + 'name': 'use_gpu', + 'type': str2bool, + 'default': True + }, + { + 'name': 'ir_optim', + 'type': str2bool, + 'default': True + }, + { + 'name': 'use_tensorrt', + 'type': str2bool, + 'default': False + }, + { + 'name': 'use_fp16', + 'type': str2bool, + 'default': False + }, + { + 'name': 'enable_mkldnn', + 'type': str2bool, + 'default': False + }, + { + 'name': 'use_pdserving', + 'type': str2bool, + 'default': False + }, + { + 'name': 'use_mp', + 'type': str2bool, + 'default': False + }, + { + 'name': 'total_process_num', + 'type': int, + 'default': 1 + }, + { + 'name': 'process_id', + 'type': int, + 'default': 0 + }, + { + 'name': 'gpu_mem', + 'type': int, + 'default': 500 + }, # params for text detector - parser.add_argument("--image_dir", type=str) - parser.add_argument("--det_algorithm", type=str, default='DB') - parser.add_argument("--det_model_dir", type=str) - parser.add_argument("--det_limit_side_len", type=float, default=960) - parser.add_argument("--det_limit_type", type=str, default='max') - + { + 'name': 'image_dir', + 'type': str, + 'default': None + }, + { + 'name': 'det_algorithm', + 'type': str, + 'default': 'DB' + }, + { + 'name': 'det_model_dir', + 'type': str, + 'default': None + }, + { + 'name': 'det_limit_side_len', + 'type': float, + 'default': 960 + }, + { + 'name': 'det_limit_type', + 'type': str, + 'default': 'max' + }, # DB parmas - parser.add_argument("--det_db_thresh", type=float, default=0.3) - parser.add_argument("--det_db_box_thresh", type=float, default=0.5) - parser.add_argument("--det_db_unclip_ratio", type=float, default=1.6) - parser.add_argument("--max_batch_size", type=int, default=10) - parser.add_argument("--use_dilation", type=bool, default=False) - parser.add_argument("--det_db_score_mode", type=str, default="fast") + { + 'name': 'det_db_thresh', + 'type': float, + 'default': 0.3 + }, + { + 'name': 'det_db_box_thresh', + 'type': float, + 'default': 0.5 + }, + { + 'name': 'det_db_unclip_ratio', + 'type': float, + 'default': 1.6 + }, + { + 'name': 'max_batch_size', + 'type': int, + 'default': 10 + }, + { + 'name': 'use_dilation', + 'type': str2bool, + 'default': False + }, + { + 'name': 'det_db_score_mode', + 'type': str, + 'default': 'fast' + }, # EAST parmas - parser.add_argument("--det_east_score_thresh", type=float, default=0.8) - parser.add_argument("--det_east_cover_thresh", type=float, default=0.1) - parser.add_argument("--det_east_nms_thresh", type=float, default=0.2) - + { + 'name': 'det_east_score_thresh', + 'type': float, + 'default': 0.8 + }, + { + 'name': 'det_east_cover_thresh', + 'type': float, + 'default': 0.1 + }, + { + 'name': 'det_east_nms_thresh', + 'type': float, + 'default': 0.2 + }, # SAST parmas - parser.add_argument("--det_sast_score_thresh", type=float, default=0.5) - parser.add_argument("--det_sast_nms_thresh", type=float, default=0.2) - parser.add_argument("--det_sast_polygon", type=bool, default=False) - + { + 'name': 'det_sast_score_thresh', + 'type': float, + 'default': 0.5 + }, + { + 'name': 'det_sast_nms_thresh', + 'type': float, + 'default': 0.2 + }, + { + 'name': 'det_sast_polygon', + 'type': str2bool, + 'default': False + }, # params for text recognizer - parser.add_argument("--rec_algorithm", type=str, default='CRNN') - parser.add_argument("--rec_model_dir", type=str) - parser.add_argument("--rec_image_shape", type=str, default="3, 32, 320") - parser.add_argument("--rec_char_type", type=str, default='ch') - parser.add_argument("--rec_batch_num", type=int, default=6) - parser.add_argument("--max_text_length", type=int, default=25) - parser.add_argument( - "--rec_char_dict_path", - type=str, - default="./ppocr/utils/ppocr_keys_v1.txt") - parser.add_argument("--use_space_char", type=str2bool, default=True) - parser.add_argument( - "--vis_font_path", type=str, default="./doc/fonts/simfang.ttf") - parser.add_argument("--drop_score", type=float, default=0.5) - + { + 'name': 'rec_algorithm', + 'type': str, + 'default': 'CRNN' + }, + { + 'name': 'rec_model_dir', + 'type': str, + 'default': None + }, + { + 'name': 'rec_image_shape', + 'type': str, + 'default': '3, 32, 320' + }, + { + 'name': 'rec_char_type', + 'type': str, + 'default': "ch" + }, + { + 'name': 'rec_batch_num', + 'type': int, + 'default': 6 + }, + { + 'name': 'max_text_length', + 'type': int, + 'default': 25 + }, + { + 'name': 'rec_char_dict_path', + 'type': str, + 'default': './ppocr/utils/ppocr_keys_v1.txt' + }, + { + 'name': 'use_space_char', + 'type': str2bool, + 'default': True + }, + { + 'name': 'vis_font_path', + 'type': str, + 'default': './doc/fonts/simfang.ttf' + }, + { + 'name': 'drop_score', + 'type': float, + 'default': 0.5 + }, # params for e2e - parser.add_argument("--e2e_algorithm", type=str, default='PGNet') - parser.add_argument("--e2e_model_dir", type=str) - parser.add_argument("--e2e_limit_side_len", type=float, default=768) - parser.add_argument("--e2e_limit_type", type=str, default='max') - + { + 'name': 'e2e_algorithm', + 'type': str, + 'default': 'PGNet' + }, + { + 'name': 'e2e_model_dir', + 'type': str, + 'default': None + }, + { + 'name': 'e2e_limit_side_len', + 'type': float, + 'default': 768 + }, + { + 'name': 'e2e_limit_type', + 'type': str, + 'default': 'max' + }, # PGNet parmas - parser.add_argument("--e2e_pgnet_score_thresh", type=float, default=0.5) - parser.add_argument( - "--e2e_char_dict_path", type=str, default="./ppocr/utils/ic15_dict.txt") - parser.add_argument("--e2e_pgnet_valid_set", type=str, default='totaltext') - parser.add_argument("--e2e_pgnet_polygon", type=bool, default=True) - parser.add_argument("--e2e_pgnet_mode", type=str, default='fast') - + { + 'name': 'e2e_pgnet_score_thresh', + 'type': float, + 'default': 0.5 + }, + { + 'name': 'e2e_char_dict_path', + 'type': str, + 'default': './ppocr/utils/ic15_dict.txt' + }, + { + 'name': 'e2e_pgnet_valid_set', + 'type': str, + 'default': 'totaltext' + }, + { + 'name': 'e2e_pgnet_polygon', + 'type': str2bool, + 'default': True + }, + { + 'name': 'e2e_pgnet_mode', + 'type': str, + 'default': 'fast' + }, # params for text classifier - parser.add_argument("--use_angle_cls", type=str2bool, default=False) - parser.add_argument("--cls_model_dir", type=str) - parser.add_argument("--cls_image_shape", type=str, default="3, 48, 192") - parser.add_argument("--label_list", type=list, default=['0', '180']) - parser.add_argument("--cls_batch_num", type=int, default=6) - parser.add_argument("--cls_thresh", type=float, default=0.9) + { + 'name': 'use_angle_cls', + 'type': str2bool, + 'default': False + }, + { + 'name': 'cls_model_dir', + 'type': str, + 'default': None + }, + { + 'name': 'cls_image_shape', + 'type': str, + 'default': '3, 48, 192' + }, + { + 'name': 'label_list', + 'type': list, + 'default': ['0', '180'] + }, + { + 'name': 'cls_batch_num', + 'type': int, + 'default': 6 + }, + { + 'name': 'cls_thresh', + 'type': float, + 'default': 0.9 + }, +] - parser.add_argument("--enable_mkldnn", type=str2bool, default=False) - parser.add_argument("--use_pdserving", type=str2bool, default=False) - - parser.add_argument("--use_mp", type=str2bool, default=False) - parser.add_argument("--total_process_num", type=int, default=1) - parser.add_argument("--process_id", type=int, default=0) +def parse_args(): + parser = argparse.ArgumentParser() + for item in inference_args_list: + parser.add_argument( + '--' + item['name'], type=item['type'], default=item['default']) return parser.parse_args() @@ -146,7 +347,7 @@ def create_predictor(args, mode, logger): config.set_mkldnn_cache_capacity(10) config.enable_mkldnn() # TODO LDOUBLEV: fix mkldnn bug when bach_size > 1 - #config.set_mkldnn_op({'conv2d', 'depthwise_conv2d', 'pool2d', 'batch_norm'}) + # config.set_mkldnn_op({'conv2d', 'depthwise_conv2d', 'pool2d', 'batch_norm'}) args.rec_batch_num = 1 # enable memory optim From a85941fff437c14727e26d41a59f50f51392a189 Mon Sep 17 00:00:00 2001 From: Double_V Date: Wed, 26 May 2021 18:49:44 +0800 Subject: [PATCH 16/31] fix comment --- deploy/cpp_infer/tools/build.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deploy/cpp_infer/tools/build.sh b/deploy/cpp_infer/tools/build.sh index e7689196..79611300 100755 --- a/deploy/cpp_infer/tools/build.sh +++ b/deploy/cpp_infer/tools/build.sh @@ -1,8 +1,7 @@ -OPENCV_DIR=/paddle/Paddle/opencv-3.4.7/opencv3 -LIB_DIR=your inference dir -CUDA_LIB_DIR=/usr/local/cuda/lib64 -CUDNN_LIB_DIR=/usr/lib/x86_64-linux-gnu -TENSORRT_DIR=your trt dir +OPENCV_DIR=your_opencv_dir +LIB_DIR=your_paddle_inference_dir +CUDA_LIB_DIR=your_cuda_lib_dir +CUDNN_LIB_DIR=your_cudnn_lib_dir BUILD_DIR=build rm -rf ${BUILD_DIR} From 0fd13fa41046d30d75c6f8a6dc9b542f9cee582f Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 10:54:54 +0000 Subject: [PATCH 17/31] process else --- tools/infer/utility.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index ff0b60b9..de3bb3db 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -212,7 +212,10 @@ def create_predictor(args, mode, logger): min_input_shape = {"x": [args.rec_batch_num, 3, 48, 10]} max_input_shape = {"x": [args.rec_batch_num, 3, 48, 2000]} opt_input_shape = {"x": [args.rec_batch_num, 3, 48, 320]} - + else: + min_input_shape = {"x": [1, 3, 10, 10]} + max_input_shape = {"x": [1, 3, 1000, 1000]} + opt_input_shape = {"x": [1, 3, 500, 500]} config.set_trt_dynamic_shape_info(min_input_shape, max_input_shape, opt_input_shape) From c8cc0fb4b77ec75c068c59d67956ec04cc8059f4 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 26 May 2021 10:55:53 +0000 Subject: [PATCH 18/31] pre-commit --- tools/infer/utility.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index de3bb3db..ff4a0276 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -224,8 +224,8 @@ def create_predictor(args, mode, logger): if hasattr(args, "cpu_threads"): config.set_cpu_math_library_num_threads(args.cpu_threads) else: - config.set_cpu_math_library_num_threads( - 10) # default cpu threads as 10 + # default cpu threads as 10 + config.set_cpu_math_library_num_threads(10) if args.enable_mkldnn: # cache 10 different shapes for mkldnn to avoid memory leak config.set_mkldnn_cache_capacity(10) From fc988f027905e3085dd4b783f49ebb9a3cadcc77 Mon Sep 17 00:00:00 2001 From: Leif <4603009@qq.com> Date: Wed, 26 May 2021 19:30:29 +0800 Subject: [PATCH 19/31] Update joinus.png --- doc/joinus.PNG | Bin 104688 -> 102068 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/joinus.PNG b/doc/joinus.PNG index 571232b4734ca52d74dcd346b1c981470663e8f8..934655e9e97130021649fc9d2e23fa805b8c7ba6 100644 GIT binary patch literal 102068 zcmd4&cQ~8x`^S$fMOBH?8Z}ZBRYhr0D?zB5Y3uc>n$e=_j^Vn!tV;{E>oj^AJJ-|_wP`$rB(?&QAZzV7R~&hvaeA7}Iuu6M#-a*qyla8)5o|W>Pk@lYD z^+PicIy&}WXRmXeZeQ(a=jH2ZYyRVFy)nbw@KV9N(jNrVWrN!2GVd(rh z$y-($+IJ{AD!JN>k3XAgs=U44cuV2jdkwnPM!xH@vroJUr$~w8fK0=_fWt;YBVlW1 z<7j!;u21>y?p~VmO4e?l>$A1NSYEjon5fI5ebwUwwo55Xmqj1EJ3Dm5yA%rk&nFKy z&hzq6{_nU%OU-=ze@{_8*TEQccItz7<1BY%NdI@Daj<(U@W0perhmtJ@}Dp8mU7ux zZtMQ%%2Ang|8KlBn}K?jK#Al}9eyR(4Mn%vX_xVz&kg?cMUzCf{&KC9lkA7T7$r3+ z0G9QspFoKK2Xvr!^^|MSK-7i!%KIXHGyVRi&1}^ZtS38o3U%y?8B3h9WfK%!ke$peRXN_# zAG{$a6MP&%P2|squ)PMQ+s>`21COl{9~*pLj)Zt3$IKkAqDQa=nigCJ zV`TU8#~+4LiAb4_o&;k!OKqFCJZd+6?n;_8K3O1Yv&gu6<{j*wTi@o_sCW!I2-hYu z*lRW&iq^)QOwFBmA7&jk6ddoD1U2S+uV`%WJc_1fGpjqw-#qGUd0egV(dI_jxfhR+ zgn+sA6YAV)qkzNEFAr{QnJn&TX0`cqIt7=iwsUx>-ITvd%@d95R)kxDlineWyE%YB z$J(scOhmr#ej#io(|_%o4w&l_|5WR1T%xWwwr;HQZPr@Xt3bWO70_XAlK%?ir0JAO zn6uh=!IN${hO6?WuEXXsy(gWLeCbgN#Q`(x-jP6*Z({0mg?kevS7*s%)!uVQeLio6 zHn`HC7MQ&z#=sg#yH8T<{!va9g>W6+zJG*Es>e2Nd9|OAvfIODJae`>l$zXqx`ZQ> z6>)!-B#s?`D-BOP2Z{WD=H~-RQvL-nOcGP29cX~oNmFe_!qkbmL1`uXumV^#( zs@=6V@2aFdEk>O_*`TA|TB=c`#T#Iti zqx_vwDDnHlX}W11v?z+|4?5YEIGU%1d4Wt(BomFU1-EDDh9W0}-V@t(X9;6t^r{C>q>XnO$=R8!w}wfIhL zDetE{gg`=oPp43T^SAz3&EA;!X$@k5H${P<4Pq5K_!;Tt7IZw-D`zH-_2Z^M0O}P1 zI8mS(MaKJ%OU~rAcV01qAc$Oulr{0~Oj6d~=dG0L279NxO*Ph&v(eeg15zCi=b6DZ z7#_5+UwI4LoLr~Cu+?5JPbLnYYWbF_ zyKSk-V>CXTtRb`SgD?P7SD~q7ofqHGv>8MWDQ&mtg{V?dv`H+x&$>Mn3EInPYleL` zm;jJHx-&nJ8H2tBy_a!+YpuV7XKp67%cfZGe>auhXQWnRYBdkTG^2wJRl0>QFQTExWb7iiA-=xoMywoXR zwcZXjpt3z6LV8ySwCS8`th!mzX7D39218pCCHW|=OpNVKneu_kVy~inAKKa#13cxg z=Q6&ZgTL_-0@C^$>eGBYBL>4woo!RnjiyW>RDZy%$)dqn1*uQV6GU5HF@OOM6lDo0 z+lbeZy|v^wc|XAo+jLNAAe7_OexZ*}dD1m9kpZw+AV0aSPU4|6ObvI+Q5|yr_k*C)H0! ztIVZ+h3+A$3pc{dkgbHk?A}Z{^l$pj>B}oyRxrvjOTNI;T#t~*!_#ezIAQX@;65gH zi$myJi6nOX%MAzX`GtMJTJ48iP6o*m%8(OC|s|OuGg&-d?&eTn-%xCUPXr$ z+@%fZc1{vvkV6zf3TYg)6~pwCZs?kFsh()wF#^g756h7ZhSgehH!$Hp%sN{+x;>80 z_eCZUd0=d@3{}0t4ci%i4ZQY@ntmI2hKx5kcERt+L~iIJ!{j^dP~Td0qh{~KVvo|^ zo%4HtWdUV*R>+?o9fD&9Zrlm0s8 z0|p-HI-Wj`l|eIiFnp(&5@Fs`=PiiGoheBMsR;nZBXYBP#=XUe}ti-*FiBCRYR zLJn?+7N(>dV!6h3u!jE>%}%|zQ^EUw6_S7nj*FY>9<2p9AT{XwcF#pW0RyokimrfT zbJ9RBvo>fe54r)@YXsOn0l$f{#EG)c`x`;j#bp z$N+3sn&)oSLS$z}d>!R4%nCI5#(bsn3o=3PZ|+J6>EkphP?t`f>(EcJ&HP5y`o(m* zYXY2lq5O2~nfOfG=#QM->K9TNCip&b_N6Wtn+dFbj25m_UGYg0xZkI3pYsp-8rI7N zK0C#Kw&;5a8zCp&X?bo&#pOv&D1KOHk+@>I<@n^z1$%_Jt}>1xy>C8zTO=q7Yo3^H z=WlUu^)3OsRW1@EoOYngJ0uBnlVzqJJ^t2z&)OmnW2km8;edWmh+fs#bDcj-LR0MC zA4~J8ddakM0FxSs@8#~EM^=20l8#UCSNk0UIbzyV03C$@1p%u~Pm^Kt+gE3}Sv+|7 zcFgtuCZNaoqy13%mxGFUZaXgtww{Y7(*pC?0F0>6VBi8P>?SreYV3i==`!pj-x>3B zR`@d8KMaF*$7%h@FUMhEQkcAOS-4e~J5xlg`o>#vzu}i+O3X|ZERhZIL6jwXpD$fs zsb7VmkyXzaJ^r5-ZH>0y{{ymZf$+pY;czXk;XUypBq)Nu;)zea%1DzGzzie3NmOWA@ zxT(t^t0FsIZ9v>_psfu#AHr;$Wm7<$ytZB2^KbEx`cXGjM(*-d4ylj6=`J_EEkd|4 zR!p@^eLDn@f%$l%z!}pEJK0&bq$U^_2OX57GjDSuY8VAwJ<_L=tu`Y%1O|TnG2ZD5 z1w+|?Uu-%e#s^vMrTvxgrG3@PTjn$NUX7+)+)Tx#<+lP?0O`CF*$=29E*4T@WN4@U0H8Q}Iv$A=ZFfk#3_Rd6s*NB^ z4CSUDtm;IXg(Y_vKC+7-vmiNlQSu+hl>u>TJ6*Y~ zua@78>jUg3I}Q@q5Y8!WK2+`d6CXe4hXFvoiwtTOpsz4X@srHIVfY-^PsVV)y~{iZ zOwp*r(>n5KNz>k0On)y0DfOVTx%omSE=e8$R&T%-!-RptOUc;tR0t{hWDNy(-Mohp{x=VZE(<$@oGz8+j!$1;XS3B`I`v8Xc>>RUPHz4YdiLf z@r%b#36-C_MAA5CNv((Y!Y4luGbOu}0;j!Vkks=09xdfp+Uz1$c*nHl?y6Qr>pD+ezWK~G!&%lD%ZP@^`%?TI)KwfW zuzU}hoZC$4ma6N_+B_E~nxv}%b}R{lYaHITDa~_PuY>cwnc^oZXX3*Iuveb#m2U%D zKgXbT1kFLx_B&3O10QX6>ToLGJdnNUTdsO!HD%7FJ|c#W;1HTr?F+4Xq7O^xE$r@n z$JOHV(3)}y*B*DxRb|9p7|rCRKyVs}a~<}rL}hWOR*D>SG8YmLe?$cmf5p+2u1Gy| z6>tX7e(e8Mz`Ug{|Dy!n;9za?(U}b=t;Qa{gzHILipmn!yIhX5E45}d|Ngpy5Jup$ zUE|gJj`V~OGpZtl%8`|sPwRtN<=NUSxF6t)r*xMW0X>Aue*?xLFF38(ejcCZ+=eq}IazJp`RYf1sdXnEdwjN=^#3R>Q+DZdl)gukoJA@t{K6>O)UZ$!KbgGF?i z&F?TgN3F$D5`U`jc0G%Ux;10~?AOY)+_0_svcd2pchi0_Ub6&K6`oG-myL_Zpz>c2 zCs2iPEfxIlE?Y!qTm>|PSD?0j);MuP=Yo(+wIxL`Hrmbj+5PBdpuB4pJV#0LQ)xm> z519)$VAA@l75j^noUyS!=fARd=+ZK-tuE2{X@obse4^fiO)xPU>gh%+8>>f()#ZaP z(UrMu5Ost0beH|t@U1Rgm1jv|eJh*m9hN3dp2kWaPz90Qu>cf9A$9`i8i}!Px4BB{ z)LOp{>!!sTOw%po$F66`9#B5Sz7}xMfCH)B>ZJLwUO7L~x8axhcUmVL!(>Q0FJpAo z*B-Y&^-8=t6J}t&^L|;f`z44(S>$QHA8)L0@9rJtDM@(dg+&l;s}M}lvA@3wMmc~{qaomGgn3z~alKKbKr&D5R_ARs@*S6wS=V)?@@M#47nVc5gI`|vi^fH#?E;LMpPr{g4f!& z0%OH6r*F+68P3UfF${^%cL5D;4i`$zz6DA<1aPQ3-%R=_VJ*GS3Uxw%l!%kcN4>XH zq3#VEpx&mF*m9cXZmF=XmZ?9SK9a0Wl~VyYH;BTi!p|jKcW!1tZ;I;kNl|-ze)Mfe+F9dr(PT&Wah6E zNGq)u{>rc4U{S9l#(FO|x4$C8wPso095dEx2Cj{0d zQVkqg-eS`^5z*l0`za>FrH;t(w?}K|vwwrLY;Q1YDf|3z*|-49uO9_P_ttt-TW)nq zF)EXm5|@Pc7(S2eN?)qntyngmL{ClxJH)6(f8+lSV_D?7w`W(cJ}=3NzxM}3n;DCc zmE9JYB54w)gb_cw^I|yx+)?0uqce$in0Nb1!!#O8#4@GvN1l9Fl)^!qKYkFnW9)N< zSJcy?`RGOBJfT7BnQPYBUNd=3E#vKd-XgKKySRP`XOvp&zkmDtozP38B8W@H%EU3Ji7bKoHt-Z=+VX9BQW#r2=hlpW1;=2doVin|| z-qu>M;!;MQD|N8`TvFDQHkp;IhGS4+3!z3UVE|J3*C58dovE{Fh%5*MF2ocx5g%-@mf2RxA3vvre7wzZ&O*-{JpL@2tMt zaCet|<`_hX(3(X{t-XrS}X7?F{ zHUHTfV6T|(VxT$81t30I3CvI-kRw6nx%G!Bz8zKElLM;vjNGz!D*)$n{)PzjGf|q@+t&>!?GD#u_m6_H&%W=v}XfUn}^7wqImK`xJq`6x#S0@NpLMcb1Ai%vOEJ3+DVYEgahO+wHP9NYJ08ff=&;E zWOpWBXnczY6&Jl+${blL?C%7h5JgJ=WdgR<03*T8j))ZOu9PzX9PI#vZaNp5*?zp9Lu_ljTl z$NJ(Sz)7nuL~8o&zZl${94j^qPCG8!muW3ni{c${PFr&ddER?fh^aA*{F!UTH7*GD_jP>bYY(B@A#`}Db z73J$#5HIohMpPYs;lA1tu{!9uTEfd|s!HkgUB6l(yRZMmxym9J zSbG)J@U362or#>it}weqC&6~5LU*u^no6IHa}*bM+!a_Hz->qTrXWRNY*QF zhf&&L$j(5SQyCVIuVb7`$x+P*}0%mu!JldNX=c23-USDV2sAF#b)g7A+ z=!!r#nw0hCll84k0&)ctIcz7x><%krM8h^tgPDT>tJ30b{=@0|6p}eR=1^fgxw+v+ zfq4S4$Sn|#C|8N623PY3l>Ukogw*k`{FRKkSD{o%oEzgt{`@(+9if!5F?HvBZO4Ow zh-P!zlCOeo_w$Eep1Q(!fqrvbL(a^peCdPpcA8|id`bQer^iEp*YSQzK?<~O0ONN0FHZSbcH(ggF=Qv7=E`yN$Al9~l z&~uBw#iwS6N-EjTsgo3xT#A~PnWwf*z;>`5Jqmt&=Yo?i`_JbWc7k1Byfe=x&+kNSAFMA__Ye<+iA+_K1}%<6zR2n|BGo6~MZmwWTrLK9;=H9X9#pvMM*tl@z?rAQ9Gu5$L&oPxGb` zds@xiZFvm~d|tEO1$+9*YkU;)%N>!ttY^7yvG}YePv;{MGM$xt_w9>=A@4{zqXoqU z@w>wFAIQnO9QA=Wx=de0V;eC2zAAA=(&HJ^&uuBzNh+JSF;g#Es|OOhnfLhK8X#`F zM1W2Z(#>~*F^)na63UB6YdqR=QP&>M|MoVH>5l)8bIGT>X-ee6Yy)Xlbxwces zyV1f-FOx!3HWX>Dw(%SwmEQjB$Er)I5P834%%+6Cd9D#BCToV`n=klhcRS?FpV9H* zNWwj2JKzsM0sFoEV{Bv3;@Wa`3r)9SmZ(+66`0uwY;y@gQ0I4O)lI4=!M9UY+`U_i zt45{(lhCy1x{L8TL5>z$|GT%`>9>DSt^lG(L?DJj9hY*L!K79bkCYkbQnRaBo&sc* ztl|<{I5S}H`sUO$d2KI=85P;D%ZFCTNDp%MzY4A<_XhfH9_}O2>0i0maBsbx)0KQe zf;#3F;`s^A%BsvG2CAJaotXz2aJQCEp6K0-mE;iI^y0JBy)yoB3Gh+(5D&b5|byI(Q^<8weu5-h>{fWc)YWR<`)nIg33JdNwbGdrrstM^@3B6U6D^OD%hb z)tLGYF&X#hvYX-#t?q2zfwUq`x@y@es0&(dlfsDZ`%4e%I-x64Q#^AP*Q`&;*i?W2 z%Gx$-Y6;B`G)4~0-v51Z$7u0L51+7Aew#!VM05$y3}+ow=o#MrB7J)=Xjdu71i@C~ z$78JAn<~V~S?!%sUscICw^+F4;uc`htsD4mpWCiRt}K#Cc_W=?DYSW$2dTvqI!g@C zhGA0J)%OPSt!Hb$0g`+GF^E z*XHRgJ`Bm+GYYcb@Mxk1av3VErv13x%COI6CV5;>$w!G;uJIfX6`(!!&31LDHn)+Y zqW@Hz%mFaDz+5<3nEMlBWn3IQ;8@S?2~5<5%vdn~ZIgqR9{_0vQDa3rJTcqEGv_W0 z5CU3T6=jEH%g!AAL}yo7S}BtyO69pRrtc>27bovQ8!{#0A&457VG23Cbfmz_s9WN5 zQQ7icseLFasUa-_b?)|lH0xXyM~nmbc!JA{RQMsBtn(e;Z)^{r`tdm^h~ddz+L!ui z-&F&c`6OU9lvF|!?Tip^=5f1&XO1c-k75=1w?6r0agSeN(mFL1wkOO}nSd>pYPX*x zd1V?oHD4PjX!gs(-~U{_Q?nE&bz*5edzR3=7e!<*myc zbW4bav5Soj?M=T3vA34F%~a2m-$?oon@va@qk;!lZsMj5rVHQX@5wivc84jrtNkrF;> zWmrZE4VVOpferbai#ugDeH1YSg!ECB=<}TapY0R)zic02ZX`i}67l#7Zsy%#%xui4 z*ZNhz>U(b{JBl91=J?-xLt+{2jJf`348a|}-Cw`xbWqzQ?WNT{N}gF1`T8J02y>9V z)y%0sSE+>@>0uFbUD5qHQ_WdUy1pETW3BtkAK@a$M3V26^ttlmn6cRy6jRc2i$@2f zPjpYUZS~9mEMI4-oaM+YyDquw&Wnj(t9k%ZySNHGEkIqU-GWFpOJ)5#){qRS6VUC~ z5jlC|R5ci8tq)Afr{>Nx=p8*oDU&L?Gw)^)?jEJ%pH(0F1`^E+bl(esL zWm@Gi_ET3PDatbBUy*&)i;E@xKP5D)AC&Us2RZwIaFLe1Y)QMqvv3_dJ56DahXs{P z%G~Zd-L77XOUYAOz$DMbB-vlxR#%9AFAT;wZV#C~T8#I*5Kk$iQ%3U~{TuuqRcR#L z-1j;uCH=!L7f$*u;3#`v2?+lMH5>On{|tctVF&yBM(4dicSe}^joY3}nU|iXcT*U~al;3Sxj&D&VfkqC z_RO_cLHb>JaVp=tdj1$7YXn4Cft#!FrIY}g-n1+L^CFG?T z)S*vM^~Q}ZT@Bfao0Q&WiowLa$V>bq8tY*eGiy)nxp>pRZ$r30T~nm@r&;h5fwYQ6 zs_7~EW6_l}zczU$a=qRbX zID%&CQ0rn~ltuf;z)-d36?KAHhosqHb3{|QbAt!107(`UYd5V|WWHXiBs8H=;!@sn zA2a8gXoG_9^FTL+Xq73{RcIx4=Et*`SRcF*RMq%D=6Id#&X-suC1}M5RZze4p~P}g z=^kMquwcr!09uBigaD8>Td_VZOl;Ki=86IM%=hz5m=;1MXj0ag2%Vo@|K;>9+V5Y+4} zKL`l+piO{An)`0O##6VbDn{jw=AXeoFgV^QhfX|O7U8MwszqM$Cl8~o6_*nW5RksA zpG4yzF6HP#UWo{)d~CyC1)VtGE+B%3kpiO`_#ejKH(FYkMWf}}{|fs>;;xv-qRHV+ zq-eI`zw!R4LGKH+;ezz9!%oRb?(d1Sp)w?1*}_s6Zv7wfiUsXr9wSvB9YTJLx;7-0 ze(4kViT4Xuy8%n-y-MEjNI<2#>r{Y`CFxEA5&1~yU4!~Fvt6GJrXmJNmB-@e? zyOou#OWGemsB4kWB`v=c{wHGO=MF}JX4;cH~vf1 z$-Qv>A6fg9S8IR$XJqmU)o-@E$YDq5(lRv{?KGfH@LKa(fuEB%>Cl}OTc-XyYc={A zq%zW3`aDX*LU9zkQ#v;0I{@iMwG@gGDu;#I$|LIP1dpWAE9od0&_8m0<1r&=T?Z% zz^V<&>D>DfD~X+0zMEE|y%%Fq~t=!OVVi_ls60N$vDRMnW1iEIsxG6D6ZDqCL8b9i>$i5Ko5m#6#;muFTSn!{MKXf>3+c{X?MpMs@6jZ zy$)dy==J=KpA`GhYyP&&(7-zOo5pPSUVm%J`~Cx?PCZ`jJeR5XC9(P^Yw+AbAXqHx zX43^HR`Dc5706ef87GDiSYv5;Pio|dctEN-=wW)`;Y>9N zh(2@oE&NY`d;QqiVG0gCJ{ob7HV_${dV(|BUA{ff^9FbXIcWFp>@M+3443dzIPWbc z6c@Qz*i0%k5ULtLH`y&#UyI_Kqu_PHw-6RUVO9Pip0fGMpAw-}p0*4$Xak8nf3bI& zuAbyxTl3Z6M9KmW&EkZ5_r+jbl&45g!|OD7(04vH;}du4{sT{irVo9lOJS8A-ZQ?P z*L#CUw`f?C?*z`i5yG)5eQwp|S7cs1sBZjrm*rc5`i?%@BIH8#oN+kyyO{(_alxkE z>+#L|`Di1p7C%)d$H>#OJmy6_e+iybNMCV?x@Ow!{|(DLg3azd6Evb>h7rD1Ho$ou znFN!igX-qMBc&DM-j&Z*stdysO7DD$=T1j#c4<{gb?#lEzQ?TT-5E3z$zJXy7$x1b zmoMv8km+siq}zu&-t-Xy)(HRXj$yOzQd>?o(Qkm`Pye`~%9A&S3o3zUc81THAS0oC zZzMwYbRKY$jn4=#ZC7d{#%|q39~mAFqfaWv9TKDG7y?}cye4|Bt46R~-mzzl*$j|6 z2xMF1j7nt-5wUg5srowk<87d`Xknkxe03oWOZty8(-B@XSjfb;xYG?qm5s|VM|jrL ze&P(RZkoHb+3ww?7#PbVSNgM>9IPmj>G@=#UB*RTh+h7TW+;=qVzqs@%Ho-?OP_7V z{OBYTa+gNpm2O{$cPZ|;Y>9X$Vt3ji8~{t(jA;Z zU`Y^l-6ys7x4n4XB_bzwS#j2VtL{(mcw{FBdY?&d!FGM798KL=EEEnZccCf%1<;fy z2kf`_f87jd^uDkrk)2z=l>D_S2in(NIqKZNm4zIEvKuJXPyEq`QM1ueeU(lSuyV4I z7MamKH>OGXf#(+U($KepER_j62wxj?0(#wm+V%uDl#g!cYnP}vJvoMw54c)u_r49v z4(NDOIu-4WI)OpR2|5;85MSGwll>m-9OYVMyn#i7Zt_c3;w5T^fF)zl926qUnJzqH z<9HZM9d2U)r|(``^(;`Gary?^W-S>XrzeQUtCj6JEG5Jz#J;Zhz}#KPeRlu7e}yIw zV~E+tXNXnmEbV#o2q7^|!U+X|g}O%6SV(EK^$y~KM3(R36L6~$*-q$d^y$ft>}eVP z4HWF;x=Ib=nDS}b&CFMCj38yB7Six{G0d1Y-Vbv$-V3qR3P8P1jOkD4w>s_81wBF7 zm|KfrX`lxXs_4!a`b@xgJ|qbQsTwr3-2T`RGegrD!_-m>3t)Xb8gpx#T>>BN8P(j>3=UO4$g=gUUa%(oBBdJ-As3^Q)+a4Z=y*sL$?C0EQQ!hgjZ#L9` zggG>ZHhGm{xwPZ3oOXK1XdJI5w~&{9*;408U!9>%nqg+xu0LnDGH+Mf75awD^PA8F z$aOH6rt8Ho=YZO(cNY(s(j@*5*Zws&Py5c zw&t~nZodcmW}2I0X~Pw`xcjc2yLh)8VQ$=5O40}_`*LIfb3aGU@w?2|OUyQ) z+%+PYC8&iYtJ0HhqCRmaZH6D^{hu-PZv6TGKmuq`_MyxOGwZy1#Nqzz=Em(SIBJHE znIGZ9q2uhFWMj#1)jxaKe!tm}+7zF`g>TTw$eq3m1hUn4c>-AkyrYq}l_uYMqih+>|4ax^^o0Y_rp4+!V(4VjNgyUl?K`wjwzQt9Eg;WJgOR9p%`Cx-GJ?> zaooOb%O=Dk&d0YhPL~#W-%i>w>M-}hdAU|2jk`|4-hChR=pF+9fi|T*6sC^nXNC}- zt=6@|iP4rWh8M`;Lp;inPDveO!Mfaa_&et}>5~k^KVEY_IfIZ;r-Y8gENR0xO$SdS z7vn$S69Iyi@v$-IGjD$aDZY6saq#l-^OcJD^Vo~HZbr~`S-&SHnGBVv-QaiI-*+n` z0P-H9oM}a9PT2m7XDde8eT0r(qD8N$UH|!G)*5BrMFvVJ^Cv~qRf7`TRD-Sk(*(T- zxC(d38c9-V00Pt)`qu(@pPt`*s>M&M5bZq-OvO8qhyn+r9}ym*i#$zmvSwx!vH+^sop_ARUV z(mj3`H5#&Tn|kTI*9P|Ki+PW5Da)LIZUbw1z4zPnRC&$u1O^z=nd!y*QAJdCZvlPhqD$R6ePF})KFP_n62Z;{!;&8`>n#HRn&wRIy#IqHf&eXtq(YX7$ zhJVG+A80qvx67j34?kfWz8ur`$Vc29RTciFM`xh&LXHfVRZK6{QjNI!lb( z;;yb~w`(0K9$h^HZ|hAP7O%E5E3V4r5Dj9_yr4}XVwCO`Fda&obX13JbUpkA4g5|L zFLjjb?NC*0ls|Ab&NF)P>{lr1jf7gxapT-^BO(s12LI2;8JEFL{ZK9o${F~e>}tzd zm+hTX7Bxd-y*Gq*KXzV$EqzG;+5!u9p7o&dyCoxp=F^ifrALS*2$1}!+aoXnxm7}^ zSU!Z_a=mXcK%{ANK8MiLJ*b!jl`{15fdYmGk;fCxD6mC|1He(Qm-m8X)9_A9#6!hb zi}5)EElXzo{!e|%(`SBc^O2<@YS74??ireQvi<^wI%g7gTV;E=l^Lj3Tgpd2^?P|Q zErnGvqn5_@!;ql!JF8j}NAtcngLuN15x$kYJx9Wh4tce@pq<1SnjklYa7pyvr}bqZ z3)C4j?uczZdeR?SiD(No6g+RnIgV*@4U>ow3@D4r&q7-&4f4`aOl3WZ1y$bUvg3c| z{h5B+G7R20%vez?Fr3~xN$jQr*EzX8q9J^#vTBLzwNoRmVyvKAafv!raW}_MGL6ho zD~%4!4rJqEZ(J>ibKMMmO+%c^>wgJuJ>vdHwK~mr=K4tX${B@M+Ks{XgjSkwFV}?6 zx_V5E8gF4acy>5NT?|_kNPb1!NY>o$S@vLV9r8RZta)`qT$*by0sYc!yPW}mAYGR$ zcJC67^gLs#>uIjvq?osNTQ7Qsp?2-%^0I7@U#Stu%myCCC=^7+23b+QLbE*KHIfZ9 z*51Nf10$vMNr9%68YHK4)OGPJl`;m9zERhWVk<4TC-!CtsOm0`^c+Rcqp4=<)K>H9 zadXUE>^UW71x%jb7 z`}3O$2A7P2cyH>wtUXvW*=mrCOZYc`W9eC(M{xrU3ODz~Y$XSme4J;b0VhQjkL$7& z_l~i&dyLLNao)$eKF;YPNTheiS(7W0{R0K+6)}bAt{!5$jCZM~wP!BB;40yn8J8+Y zdV+vJo4stngb4hTOIMsLxf4pNew{fdqO|#H2<&b&#Z4AOkrs4hEROlnyZEq;pI@XK z+sYZ6Kg+m$P+%mE-b;|+hSa?wGgek;QtiC6YJ^qix}VoiCC))lR){7+OBH*21>i>9 z#p4gs=#vLdtBTdNf8Ib5Iby2(2VAcPouUAo$0uL%wihCWK{uBo&;r$ue16My8dC24 zffXl-frgQN%o;L|U~L*S6!gsdF~+A$v1~(RTo#{CO+Z_gECJIXHG{FP_xP5Ita47C z=V83AiIk*Rt(QB>i+5R_XY1w{aXI48Cx{Go!rckmjX|3Xu$w;kEnZXoz&2yjkCX_K z?EC9ts!xX6Gp+O=st$Dck+ly6*2~3ETyNZZ>Ok06Ru~M|y_#9Tyho*(m}qb7yho0CxDA?+d=gQD}1h=Mw*_`^DV~7{z;gd(|n~%ySQlcb`i5J2E)cKkWL@ zl?MRcgkM}N9L+{Ih$D~nC~EGIEd6#6ar?^sKTw3&$WAN6_NqkhP}6dlhQ+>g{3GA{ z;sH^Bo|?f9qR7IW866@g&g=sIH=$?z5!W_sFFy#*W9>x|^>`fBVD4SipQ|T>iG&+L zb|M~HoIF^qcccaV|7(kT@B{e&r*aP{DDMZ=HzWy$`aJOqND!hcthK!>N;6>_^qpD0|`coAQsIZ3g@CJq+g?#S?!B31Ne55XA`B{*C+=>{X zq@lXUk9EiD&>E_ILzd7gAQ2z&=r}#7S_%Jt+`lvPV^!22VmrskLV>g)KLpOWgOPSm zi%@KWB>O+CRd0>w+btZ7j1LZ^&@Gs8MWreZBeGpp+19$X5;IZ4*t^!jMZ2NJe9+;) z=XP-3o5S2r>7}ZlO(wH5`dR(4yM%iKs=Js0tc3LUxK!a53M9~X0@8BOLouDQmK#-BS<1%RJH z58Z51tGu=<9tw~i*6W~>c>^*1H`I+J>TY21c~%AqOdDhe0S*0-9C+&d)D{Rlnm|vt(@cf&Wrvp=Z;PbY zA}2E5<9p5Hk`^H#C_xWR~yKs=I5?KNxzRmKiH52 zf7pFuCS9mHCn7mxQ9B>IM|q%3z8zWdcyU#!>8wL)Fa*`~ zJ%~Rd+a-$KKqX%OAg>hC;Ztw=`o5l zLmqhH3ch&ciLIZl%mB2vm)x}`52dEuF9g09<5p@u`cr=vDe{GC$J*Q)H zeNwp9@c0Lb@NteVE-qzjrmXZEM~{CU(V!A=s-}>|_N!899;E6lbtUM;;gFW@m6GI? z&BDO{DYBNP2Dj5)UbXSD4p$3V5@O2L%lE!<(~m25mTON^Z}Eeo8O>;LNhEjQyYieGK6rfK zhHcD=5O+rPz~S~UfUMGE-)pi({YToaHLdRrkawV4^s}zoF8E~kfzWqn?N~FXl>Spg zyIlh|(DUIzU7!_r;C_*@Z~3a*$zQjgFHeVYf9L~ewCDD|C`qeIiu1f0*gXTY>d$7@ z42`t3D6ZTMPrsvNB&2xO%y0!%4q-Ig(6wezCoQQrNQ~4k2Qz^~Bv~K9b+byK(XCI?zS|5j3lbF)v3EZeV ?y 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�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

;Hw+8`0W%k#aSHHZa)HZf2h8%i<@7g-?L`dhB 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 Date: Fri, 28 May 2021 12:00:38 +0800 Subject: [PATCH 20/31] fix cpp order (#2948) --- deploy/cpp_infer/src/ocr_rec.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/cpp_infer/src/ocr_rec.cpp b/deploy/cpp_infer/src/ocr_rec.cpp index 76873dad..28cd1cb8 100644 --- a/deploy/cpp_infer/src/ocr_rec.cpp +++ b/deploy/cpp_infer/src/ocr_rec.cpp @@ -25,8 +25,9 @@ void CRNNRecognizer::Run(std::vector>> boxes, std::cout << "The predicted text is :" << std::endl; int index = 0; - for (int i = boxes.size() - 1; i >= 0; i--) { + for (int i = 0; i < boxes.size(); i++) { crop_img = GetRotateCropImage(srcimg, boxes[i]); + if (cls != nullptr) { crop_img = cls->Run(crop_img); } From 1193789aaa6b9ba0bc2c915342c7f55a60080da2 Mon Sep 17 00:00:00 2001 From: gaotingquan Date: Thu, 27 May 2021 09:07:31 +0000 Subject: [PATCH 21/31] Add doc of distributed training, test=document_fix --- doc/doc_en/distributed_training.md | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 doc/doc_en/distributed_training.md diff --git a/doc/doc_en/distributed_training.md b/doc/doc_en/distributed_training.md new file mode 100644 index 00000000..7a8b71ce --- /dev/null +++ b/doc/doc_en/distributed_training.md @@ -0,0 +1,50 @@ +# Distributed training + +## Introduction + +The high performance of distributed training is one of the core advantages of PaddlePaddle. In the classification task, distributed training can achieve almost linear speedup ratio. Generally, OCR training task need massive training data. Such as recognition, ppocrv2.0 model is trained based on 1800W dataset, which is very time-consuming if using single machine. Therefore, the distributed training is used in paddleocr to speedup the training task. For more information about distributed training, please refer to [distributed training quick start tutorial](https://fleet-x.readthedocs.io/en/latest/paddle_fleet_rst/parameter_server/ps_quick_start.html). + +## Quick Start + +### Training with single machine + +Take recognition as an example. After the data is prepared locally, start the training task with the interface of `paddle.distributed.launch`. The start command as follows: + +```shell +python3 -m paddle.distributed.launch \ + --log_dir=./log/ \ + --gpus '0,1,2,3,4,5,6,7' \ + tools/train.py \ + -c configs/rec/rec_mv3_none_bilstm_ctc.yml +``` + +### Training with multi machine + +Compared with single machine, training with multi machine only needs to add the parameter `--ips` to start command, which represents the IP list of machines used for distributed training, and the IP of different machines are separated by commas. The start command as follows: + +```shell +ip_list="192.168.0.1,192.168.0.2" +python3 -m paddle.distributed.launch \ + --log_dir=./log/ \ + --ips="${ip_list}" \ + --gpus="0,1,2,3,4,5,6,7" \ + tools/train.py \ + -c configs/rec/rec_mv3_none_bilstm_ctc.yml +``` + +**Notice:** +* The IP addresses of different machines need to be separated by commas, which can be queried through `ifconfig` or `ipconfig`. +* Different machines need to be set to be secret free and can `ping` success with others directly, otherwise communication cannot establish between them. +* The code, data and start command betweent different machines must be completely consistent and then all machines need to run start command. The first machine in the `ip_list` is set to `trainer0`, and so on. + + +## Performance comparison + +* Based on 26W public recognition dataset (LSVT, rctw, mtwi), training on single 8-card P40 and dual 8-card P40, the final time consumption is as follows. + +| Model | Config file | Number of machines | Number of GPUs per machine | Training time | Recognition acc | Speedup ratio | +| :-------: | :------------: | :----------------: | :----------------------------: | :------------------: | :--------------: | :-----------: | +| CRNN | configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml | 1 | 8 | 60h | 66.7% | - | +| CRNN | configs/rec/ch_ppocr_v2.0/rec_chinese_lite_train_v2.0.yml | 2 | 8 | 40h | 67.0% | 150% | + +It can be seen that the training time is shortened from 60h to 40h, the speedup ratio can reach 150% (60h / 40h), and the efficiency is 75% (60h / (40h * 2)). From 359d81e585f54ed60a17e783d2bc682c4af7958e Mon Sep 17 00:00:00 2001 From: WenmuZhou Date: Fri, 28 May 2021 17:31:48 +0800 Subject: [PATCH 22/31] change infer args format from dict to list --- paddleocr.py | 24 +--- tools/infer/utility.py | 316 +++++++---------------------------------- 2 files changed, 60 insertions(+), 280 deletions(-) diff --git a/paddleocr.py b/paddleocr.py index 5e14deb1..7c45c438 100644 --- a/paddleocr.py +++ b/paddleocr.py @@ -170,32 +170,20 @@ def maybe_download(model_storage_directory, url): def parse_args_whl(mMain=True): import argparse extend_args_list = [ - { - 'name': 'lang', - 'type': str, - 'default': 'ch' - }, - { - 'name': 'det', - 'type': str2bool, - 'default': True - }, - { - 'name': 'rec', - 'type': str2bool, - 'default': True - }, + ['lang', str, 'ch'], + ['det', str2bool, True], + ['rec', str2bool, True], ] for item in inference_args_list: - if item['name'] == 'rec_char_dict_path': - item['default'] = None + if item[0] == 'rec_char_dict_path': + item[2] = None inference_args_list.extend(extend_args_list) if mMain: return parse_args() else: inference_args_dict = {} for item in inference_args_list: - inference_args_dict[item['name']] = item['default'] + inference_args_dict[item[0]] = item[2] return argparse.Namespace(**inference_args_dict) diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 3aa2a01e..88bfc6dd 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -28,283 +28,75 @@ def str2bool(v): inference_args_list = [ + # name type defalue # params for prediction engine - { - 'name': 'use_gpu', - 'type': str2bool, - 'default': True - }, - { - 'name': 'ir_optim', - 'type': str2bool, - 'default': True - }, - { - 'name': 'use_tensorrt', - 'type': str2bool, - 'default': False - }, - { - 'name': 'use_fp16', - 'type': str2bool, - 'default': False - }, - { - 'name': 'enable_mkldnn', - 'type': str2bool, - 'default': False - }, - { - 'name': 'use_pdserving', - 'type': str2bool, - 'default': False - }, - { - 'name': 'use_mp', - 'type': str2bool, - 'default': False - }, - { - 'name': 'total_process_num', - 'type': int, - 'default': 1 - }, - { - 'name': 'process_id', - 'type': int, - 'default': 0 - }, - { - 'name': 'gpu_mem', - 'type': int, - 'default': 500 - }, + ['use_gpu', str2bool, True], + ['use_tensorrt', str2bool, False], + ['use_fp16', str2bool, False], + ['use_pdserving', str2bool, False], + ['use_mp', str2bool, False], + ['enable_mkldnn', str2bool, False], + ['ir_optim', str2bool, True], + ['total_process_num', int, 1], + ['process_id', int, 0], + ['gpu_mem', int, 500], # params for text detector - { - 'name': 'image_dir', - 'type': str, - 'default': None - }, - { - 'name': 'det_algorithm', - 'type': str, - 'default': 'DB' - }, - { - 'name': 'det_model_dir', - 'type': str, - 'default': None - }, - { - 'name': 'det_limit_side_len', - 'type': float, - 'default': 960 - }, - { - 'name': 'det_limit_type', - 'type': str, - 'default': 'max' - }, + ['image_dir', str, None], + ['det_algorithm', str, 'DB'], + ['det_model_dir', str, None], + ['det_limit_side_len', float, 960], + ['det_limit_type', str, 'max'], # DB parmas - { - 'name': 'det_db_thresh', - 'type': float, - 'default': 0.3 - }, - { - 'name': 'det_db_box_thresh', - 'type': float, - 'default': 0.5 - }, - { - 'name': 'det_db_unclip_ratio', - 'type': float, - 'default': 1.6 - }, - { - 'name': 'max_batch_size', - 'type': int, - 'default': 10 - }, - { - 'name': 'use_dilation', - 'type': str2bool, - 'default': False - }, - { - 'name': 'det_db_score_mode', - 'type': str, - 'default': 'fast' - }, + ['det_db_thresh', float, 0.3], + ['det_db_box_thresh', float, 0.5], + ['det_db_unclip_ratio', float, 1.6], + ['max_batch_size', int, 10], + ['use_dilation', str2bool, False], + ['det_db_score_mode', str, 'fast'], # EAST parmas - { - 'name': 'det_east_score_thresh', - 'type': float, - 'default': 0.8 - }, - { - 'name': 'det_east_cover_thresh', - 'type': float, - 'default': 0.1 - }, - { - 'name': 'det_east_nms_thresh', - 'type': float, - 'default': 0.2 - }, + ['det_east_score_thresh', float, 0.8], + ['det_east_cover_thresh', float, 0.1], + ['det_east_nms_thresh', float, 0.2], # SAST parmas - { - 'name': 'det_sast_score_thresh', - 'type': float, - 'default': 0.5 - }, - { - 'name': 'det_sast_nms_thresh', - 'type': float, - 'default': 0.2 - }, - { - 'name': 'det_sast_polygon', - 'type': str2bool, - 'default': False - }, + ['det_sast_score_thresh', float, 0.5], + ['det_sast_nms_thresh', float, 0.2], + ['det_sast_polygon', str2bool, False], # params for text recognizer - { - 'name': 'rec_algorithm', - 'type': str, - 'default': 'CRNN' - }, - { - 'name': 'rec_model_dir', - 'type': str, - 'default': None - }, - { - 'name': 'rec_image_shape', - 'type': str, - 'default': '3, 32, 320' - }, - { - 'name': 'rec_char_type', - 'type': str, - 'default': "ch" - }, - { - 'name': 'rec_batch_num', - 'type': int, - 'default': 6 - }, - { - 'name': 'max_text_length', - 'type': int, - 'default': 25 - }, - { - 'name': 'rec_char_dict_path', - 'type': str, - 'default': './ppocr/utils/ppocr_keys_v1.txt' - }, - { - 'name': 'use_space_char', - 'type': str2bool, - 'default': True - }, - { - 'name': 'vis_font_path', - 'type': str, - 'default': './doc/fonts/simfang.ttf' - }, - { - 'name': 'drop_score', - 'type': float, - 'default': 0.5 - }, + ['rec_algorithm', str, 'CRNN'], + ['rec_model_dir', str, None], + ['rec_image_shape', str, '3, 32, 320'], + ['rec_char_type', str, "ch"], + ['rec_batch_num', int, 6], + ['max_text_length', int, 25], + ['rec_char_dict_path', str, './ppocr/utils/ppocr_keys_v1.txt'], + ['use_space_char', str2bool, True], + ['vis_font_path', str, './doc/fonts/simfang.ttf'], + ['drop_score', float, 0.5], # params for e2e - { - 'name': 'e2e_algorithm', - 'type': str, - 'default': 'PGNet' - }, - { - 'name': 'e2e_model_dir', - 'type': str, - 'default': None - }, - { - 'name': 'e2e_limit_side_len', - 'type': float, - 'default': 768 - }, - { - 'name': 'e2e_limit_type', - 'type': str, - 'default': 'max' - }, + ['e2e_algorithm', str, 'PGNet'], + ['e2e_model_dir', str, None], + ['e2e_limit_side_len', float, 768], + ['e2e_limit_type', str, 'max'], # PGNet parmas - { - 'name': 'e2e_pgnet_score_thresh', - 'type': float, - 'default': 0.5 - }, - { - 'name': 'e2e_char_dict_path', - 'type': str, - 'default': './ppocr/utils/ic15_dict.txt' - }, - { - 'name': 'e2e_pgnet_valid_set', - 'type': str, - 'default': 'totaltext' - }, - { - 'name': 'e2e_pgnet_polygon', - 'type': str2bool, - 'default': True - }, - { - 'name': 'e2e_pgnet_mode', - 'type': str, - 'default': 'fast' - }, + ['e2e_pgnet_score_thresh', float, 0.5], + ['e2e_char_dict_path', str, './ppocr/utils/ic15_dict.txt'], + ['e2e_pgnet_valid_set', str, 'totaltext'], + ['e2e_pgnet_polygon', str2bool, True], + ['e2e_pgnet_mode', str, 'fast'], # params for text classifier - { - 'name': 'use_angle_cls', - 'type': str2bool, - 'default': False - }, - { - 'name': 'cls_model_dir', - 'type': str, - 'default': None - }, - { - 'name': 'cls_image_shape', - 'type': str, - 'default': '3, 48, 192' - }, - { - 'name': 'label_list', - 'type': list, - 'default': ['0', '180'] - }, - { - 'name': 'cls_batch_num', - 'type': int, - 'default': 6 - }, - { - 'name': 'cls_thresh', - 'type': float, - 'default': 0.9 - }, + ['use_angle_cls', str2bool, False], + ['cls_model_dir', str, None], + ['cls_image_shape', str, '3, 48, 192'], + ['label_list', list, ['0', '180']], + ['cls_batch_num', int, 6], + ['cls_thresh', float, 0.9], ] def parse_args(): parser = argparse.ArgumentParser() for item in inference_args_list: - parser.add_argument( - '--' + item['name'], type=item['type'], default=item['default']) + parser.add_argument('--' + item[0], type=item[1], default=item[2]) return parser.parse_args() From d721519335b84f2af16df9a582bd814a6a09a59d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 Jun 2021 11:48:32 +0000 Subject: [PATCH 23/31] add ppstructure dir --- ppstructure/README.md | 0 ppstructure/README_CH.md | 0 ppstructure/layout/README.md | 0 ppstructure/layout/README_CH.md | 0 ppstructure/predict_system.py | 0 ppstructure/table/README.md | 0 ppstructure/table/README_CH.md | 0 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ppstructure/README.md create mode 100644 ppstructure/README_CH.md create mode 100644 ppstructure/layout/README.md create mode 100644 ppstructure/layout/README_CH.md create mode 100644 ppstructure/predict_system.py create mode 100644 ppstructure/table/README.md create mode 100644 ppstructure/table/README_CH.md diff --git a/ppstructure/README.md b/ppstructure/README.md new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/README_CH.md b/ppstructure/README_CH.md new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/layout/README.md b/ppstructure/layout/README.md new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/layout/README_CH.md b/ppstructure/layout/README_CH.md new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/predict_system.py b/ppstructure/predict_system.py new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/table/README.md b/ppstructure/table/README.md new file mode 100644 index 00000000..e69de29b diff --git a/ppstructure/table/README_CH.md b/ppstructure/table/README_CH.md new file mode 100644 index 00000000..e69de29b From 74f0c82cd342d860c6bb3dcb17e3205d096f0386 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Tue, 1 Jun 2021 11:52:56 +0000 Subject: [PATCH 24/31] add ppstructure dir --- ppstructure/{README_CH.md => README_ch.md} | 0 ppstructure/layout/{README_CH.md => README_ch.md} | 0 ppstructure/table/{README_CH.md => README_ch.md} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename ppstructure/{README_CH.md => README_ch.md} (100%) rename ppstructure/layout/{README_CH.md => README_ch.md} (100%) rename ppstructure/table/{README_CH.md => README_ch.md} (100%) diff --git a/ppstructure/README_CH.md b/ppstructure/README_ch.md similarity index 100% rename from ppstructure/README_CH.md rename to ppstructure/README_ch.md diff --git a/ppstructure/layout/README_CH.md b/ppstructure/layout/README_ch.md similarity index 100% rename from ppstructure/layout/README_CH.md rename to ppstructure/layout/README_ch.md diff --git a/ppstructure/table/README_CH.md b/ppstructure/table/README_ch.md similarity index 100% rename from ppstructure/table/README_CH.md rename to ppstructure/table/README_ch.md From 475d1c6104b948890c00a10072abe478e9b8ff29 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 2 Jun 2021 14:32:14 +0800 Subject: [PATCH 25/31] fix cpp doc of dygraph branch --- deploy/cpp_infer/readme.md | 7 ++++--- deploy/cpp_infer/readme_en.md | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/deploy/cpp_infer/readme.md b/deploy/cpp_infer/readme.md index ee5a9ed4..52d5f84b 100644 --- a/deploy/cpp_infer/readme.md +++ b/deploy/cpp_infer/readme.md @@ -77,7 +77,7 @@ opencv3/ #### 1.2.1 直接下载安装 -* [Paddle预测库官网](https://www.paddlepaddle.org.cn/documentation/docs/zh/advanced_guide/inference_deployment/inference/build_and_install_lib_cn.html)上提供了不同cuda版本的Linux预测库,可以在官网查看并选择合适的预测库版本(*建议选择paddle版本>=2.0.1版本的预测库* )。 +* [Paddle预测库官网](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html) 上提供了不同cuda版本的Linux预测库,可以在官网查看并选择合适的预测库版本(*建议选择paddle版本>=2.0.1版本的预测库* )。 * 下载之后使用下面的方法解压。 @@ -89,10 +89,11 @@ tar -xf paddle_inference.tgz #### 1.2.2 预测库源码编译 * 如果希望获取最新预测库特性,可以从Paddle github上克隆最新代码,源码编译预测库。 -* 可以参考[Paddle预测库官网](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/05_inference_deployment/inference/build_and_install_lib_cn.html)的说明,从github上获取Paddle代码,然后进行编译,生成最新的预测库。使用git获取代码方法如下。 +* 可以参考[Paddle预测库安装编译说明](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi) 的说明,从github上获取Paddle代码,然后进行编译,生成最新的预测库。使用git获取代码方法如下。 ```shell git clone https://github.com/PaddlePaddle/Paddle.git +git checkout release/2.1 ``` * 进入Paddle目录后,编译方法如下。 @@ -115,7 +116,7 @@ make -j make inference_lib_dist ``` -更多编译参数选项可以参考Paddle C++预测库官网:[https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/05_inference_deployment/inference/build_and_install_lib_cn.html](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/05_inference_deployment/inference/build_and_install_lib_cn.html)。 +更多编译参数选项介绍可以参考[文档说明](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi)。 * 编译完成之后,可以在`build/paddle_inference_install_dir/`文件下看到生成了以下文件及文件夹。 diff --git a/deploy/cpp_infer/readme_en.md b/deploy/cpp_infer/readme_en.md index 913ba1f9..df6dfb29 100644 --- a/deploy/cpp_infer/readme_en.md +++ b/deploy/cpp_infer/readme_en.md @@ -78,8 +78,7 @@ opencv3/ #### 1.2.1 Direct download and installation -* Different cuda versions of the Linux inference library (based on GCC 4.8.2) are provided on the -[Paddle inference library official website](https://www.paddlepaddle.org.cn/documentation/docs/en/develop/guides/05_inference_deployment/inference/build_and_install_lib_en.html). You can view and select the appropriate version of the inference library on the official website. +[Paddle inference library official website](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html). You can view and select the appropriate version of the inference library on the official website. * After downloading, use the following method to uncompress. @@ -97,6 +96,7 @@ Finally you can see the following files in the folder of `paddle_inference/`. ```shell git clone https://github.com/PaddlePaddle/Paddle.git +git checkout release/2.1 ``` * After entering the Paddle directory, the compilation method is as follows. @@ -119,7 +119,7 @@ make -j make inference_lib_dist ``` -For more compilation parameter options, please refer to the official website of the Paddle C++ inference library:[https://www.paddlepaddle.org.cn/documentation/docs/en/develop/guides/05_inference_deployment/inference/build_and_install_lib_en.html](https://www.paddlepaddle.org.cn/documentation/docs/en/develop/guides/05_inference_deployment/inference/build_and_install_lib_en.html). +For more compilation parameter options, please refer to the [document](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi). * After the compilation process, you can see the following files in the folder of `build/paddle_inference_install_dir/`. From 583b9dc2f66436675adc4b0ef1a47034d369f8fa Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 2 Jun 2021 14:37:17 +0800 Subject: [PATCH 26/31] refine en readme --- deploy/cpp_infer/readme_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/cpp_infer/readme_en.md b/deploy/cpp_infer/readme_en.md index df6dfb29..f2cd4fbd 100644 --- a/deploy/cpp_infer/readme_en.md +++ b/deploy/cpp_infer/readme_en.md @@ -99,7 +99,7 @@ git clone https://github.com/PaddlePaddle/Paddle.git git checkout release/2.1 ``` -* After entering the Paddle directory, the compilation method is as follows. +* After entering the Paddle directory, the instructions to compile the paddle inference library are as follows. ```shell rm -rf build From 8868d06867299c7239e0c6b94e9e54d023edeb91 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 2 Jun 2021 14:37:29 +0800 Subject: [PATCH 27/31] refine en readme --- deploy/cpp_infer/readme_en.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/cpp_infer/readme_en.md b/deploy/cpp_infer/readme_en.md index f2cd4fbd..cd44b1ce 100644 --- a/deploy/cpp_infer/readme_en.md +++ b/deploy/cpp_infer/readme_en.md @@ -99,7 +99,7 @@ git clone https://github.com/PaddlePaddle/Paddle.git git checkout release/2.1 ``` -* After entering the Paddle directory, the instructions to compile the paddle inference library are as follows. +* After entering the Paddle directory, the commands to compile the paddle inference library are as follows. ```shell rm -rf build From 7009c5078ae56872e19585970f8ef7fb3f4f834b Mon Sep 17 00:00:00 2001 From: Leif <4603009@qq.com> Date: Wed, 2 Jun 2021 17:05:58 +0800 Subject: [PATCH 28/31] Update joinus.png and PPOCRLabel --- PPOCRLabel/PPOCRLabel.py | 13 +++++++++---- doc/joinus.PNG | Bin 102068 -> 104232 bytes 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/PPOCRLabel/PPOCRLabel.py b/PPOCRLabel/PPOCRLabel.py index af7c2642..9ffa909e 100644 --- a/PPOCRLabel/PPOCRLabel.py +++ b/PPOCRLabel/PPOCRLabel.py @@ -92,7 +92,7 @@ class WindowMixin(object): class MainWindow(QMainWindow, WindowMixin): FIT_WINDOW, FIT_WIDTH, MANUAL_ZOOM = list(range(3)) - def __init__(self, lang="ch", defaultFilename=None, defaultPrefdefClassFile=None, defaultSaveDir=None): + def __init__(self, lang="ch", gpu=False, defaultFilename=None, defaultPrefdefClassFile=None, defaultSaveDir=None): super(MainWindow, self).__init__() self.setWindowTitle(__appname__) @@ -108,7 +108,7 @@ class MainWindow(QMainWindow, WindowMixin): getStr = lambda strId: self.stringBundle.getString(strId) self.defaultSaveDir = defaultSaveDir - self.ocr = PaddleOCR(use_pdserving=False, use_angle_cls=True, det=True, cls=True, use_gpu=False, lang=lang) + self.ocr = PaddleOCR(use_pdserving=False, use_angle_cls=True, det=True, cls=True, use_gpu=gpu, lang=lang) if os.path.exists('./data/paddle.png'): result = self.ocr.ocr('./data/paddle.png', cls=True, det=True) @@ -1239,6 +1239,8 @@ class MainWindow(QMainWindow, WindowMixin): def loadFile(self, filePath=None): """Load the specified file, or the last opened file if None.""" + if self.dirty: + self.mayContinue() self.resetState() self.canvas.setEnabled(False) if filePath is None: @@ -2037,6 +2039,8 @@ def read(filename, default=None): except: return default +def str2bool(v): + return v.lower() in ("true", "t", "1") def get_main_app(argv=[]): """ @@ -2048,13 +2052,14 @@ def get_main_app(argv=[]): app.setWindowIcon(newIcon("app")) # Tzutalin 201705+: Accept extra agruments to change predefined class file argparser = argparse.ArgumentParser() - argparser.add_argument("--lang", default='en', nargs="?") + argparser.add_argument("--lang", type=str, default='en', nargs="?") + argparser.add_argument("--gpu", type=str2bool, default=False, nargs="?") argparser.add_argument("--predefined_classes_file", default=os.path.join(os.path.dirname(__file__), "data", "predefined_classes.txt"), nargs="?") args = argparser.parse_args(argv[1:]) # Usage : labelImg.py image predefClassFile saveDir - win = MainWindow(lang=args.lang, + win = MainWindow(lang=args.lang, gpu=args.gpu, defaultPrefdefClassFile=args.predefined_classes_file) win.show() return app, win diff --git a/doc/joinus.PNG b/doc/joinus.PNG index 934655e9e97130021649fc9d2e23fa805b8c7ba6..6e299a2ebe0eb52aa799ba9fa924bd685cd248de 100644 GIT binary patch literal 104232 zcmdqJ_cz=B`#)aQRuxs%Ql(;#r`2jD6iL;pnyo&oX4I%nZ6TtnR&6nAhMIjUYS-4* z2x`;VGl(q_L_~bz`TD#+=Y78Cy#9gj4>?J$oRj39$Nhd?*KJ&hG|jt-P!H(C0b-~#rZYuj?VMB=Hqi^{XA>5Cl~BgbXCrstB7NwyuL_#&iM9; zvFEvSSAU(|=(^mBZO)xLEznX^dEsZVIm7T>NE0SKKl`^xNc_1-$-^3eygi7u7+g0b=T5*0-Ndl`N!o6kyluoL^g#8v1?q;j~ouC5!%Nr1At}RNnm5;k<)eZ13YsCfEBF1QbC! z{-rnl+EYgK6iat~l#;A$oIGPaGxNrqe={a!j@KT}2Iz0jq*(?n4(P+@{j$GrL~$M; zOu4mgr?ygTefvGLJ*UPxLRyNl{T&s6WfQ}*=WvPBpHUuy(?V+<1H@ckc-3c-tHO&C~kW~LJ`)mb!qe~evK`o1U zfrm4P&P$F%xMe9fws%riHpSp4YIt=J78Av4V&e+>CHEw zjTXwXj9X(v03XttG9PyMML*C{_Nc^H8Fc=~Y6+-mfn`RJ7at+(@aCIi)nzq3?9=LS zFfn(gc_(n^`Rc>^o|?tuxl_bpQjtez6ldoFf`w>^HlY zjZt3W8W1Dsm{bJX{hUW&8fVAM*Po}R>-6-%T$4Byj9LiEOsuv1KGIAga2R~s6BUp+ zwUw_&6@?siZ^xaI;(BW&ulNF`1J|^DcVGhnAN4wemEwb(LJ{S#KBpe}n61w3vU9M5 zQ|jEQ#8N!#Z|%Ld@eb{1$U#Ni&ExRSilztD?YH5II6H*sM+Iwu(k`&0m!HPJo>5K{^1G5ON!*$298)j}yQt9xx-P4G{*bQdWhP3=g8-B~v@iZSoKV z>3bOrbH}rXFSltc;K)9)lp(XOQE{3O|HTlh_~)eFc0&|-R3O#j1nUV5^trSTicOZG ztyrR!JXU_CJ2*PEW|6a%)X_u7z+(W9b%P`@_n6(lFXTm(6Bz#mn^?_K?!0B?{u@=UPl_bSImIaoU-;JTIxh&z@A7;ZV( zWYwZqQ{yufF_dhX;%Pw8k3b~_E~aiwKE&u7@0nf*wX+GiY1eO_!9X6W*PqqmYIHh} z>8>QiTEEWj6Z{@I@(*~!1-ArqtI@(zwIinvShz-KDYi@k|wK~|GDD^k8oT`%d5 z)+=EXD&rPzA%2t|a<>>gampxqU9+);`n*wLwD)plQlsrNoNE+zy>XSl%}I0F+-CdZ zeBPuR_eEMB#s*F}7PE`)g!tSf6?cAE{8hWZzWqy!J(jg$J_cOZwL=pK9V z-n#?u4DUTKJh>{@rMgtm&v2{3fuGzU0@w>)>%Y*vCpBn7@VyNGz`$M9A>x9S*Fmo3 zwMB~u!at0W69Gp})Ll2bUz(qY7aR1e+&JcuJg?mdPNnUjCrY?F!AHK8NYlnEjsRgJ z&=sEsk<5gg72kx$^Fvb~tk2bVuSodTiVb}&76l>Nppg(q+j5OHR7d16X5vvD+lYJi zUS?4{KPd4}U6hdQbhOTA8}i3l-J&qRWlk2Ljk~#IvYZ1axPJ!c1H|$kQ>3RkajM`? z$=JJAOAmHMAvR`u8QP?08A!c{4j$9wkrt*-IdEBC7K?ueut32M-D3PihxEMvgjfWT zLO2E9WxBZNe9v~<7>FA4$$Q?WxvIPa1C5$Bjk<&gr(1Fv7}1Vt<3QlH=TuoH zBQgaDymN1&87nL!o}s>ZC8x0+q`-9zb+T#K*f_l`-SHCWSpsa+0Fm~xcHlFh)}ubH z>s|YJjmJ1@IdWU6G9%EvF6?TWEF?l zyShTl#sQ%i3FuLehu$G6CyeD~HU%rH&jG0jGA2#6o=k05#05Iz8R8X^4tC(Hij7eg z#Lvqby$pNg*BtRdX#VgdE#-R)aknR@@v**=^*6JUCou-6v~1Wsx|AwU%gHr6h{ML2 zi_&j{J-|Xy(w#(1%Rx;f!1VY{=#0i3Wd-Cr;QyzpM*&8t3*(-uDG%J*{$w31PW{Bu zh|~wyH`0D8V-YLs$J;ec(IX5>^K>&=+g?Q;{VDze46?tCfDR)-Yn2caE=vj(`ASz+~Wsd^+df!|W1Tt zjRRxI??EM7&Iuq2O zZ_8d*cbKjd{D+1R}ozPH>v) ztuI&KxxkBW%<&)F3BxFxc96z#k??Le?{&8bVa$D3oLqYewCM(hd=u+OUAe6cVmXNB0p2%moR9(w3XuS+w<5aX;XniSLF2>H@Rnsr0 zd{{pqwd5%GiF+W3x|ez|LV4QR1)<`*KXFyM3ns$XI2D$`{5xUJ*7uLEDia60n{6ja zCO7=k6c4>0xmg-76Oro1V`}ojY2lw zrxh$~+L}3-+V63<&Yk)ta`YMpf@KzDYELdai&gHvx~v0vor>poCBxq5*y;M&hd>uw zs#G{zY)m&D1Mf=U>8vItU6W0(XLv8jN$Kls~HyKh)rA6hHSv+|5L;8-kuz7IwU%BpP}! zSKs;EK7-ddr<~Zjfw%LJKjMarzO^piYwSP1Ewaexve=rw%d`$wWaj{Sg*Y7aov%R0 zcm*ib+@=HL|K6&y>O-94?r#P-_OX{ul~avge=}=}&rMi|r zd@Oew22vKNQuiy>AT1`u3BAV66!;*dkwDd^F{vwFyVSve`h9^TO~{Q_%-cJJfW2H` zo00fPQ7G!gMC&{1M3*J+H)ZhOiy#@9z&y9k71R&@`24*u4^zKi!U+_!h&@NqS-!u|R?Ipob9;fy zxV}5jKWA7sgRB&x%O6G8QX-nl!;qL7gWz@vNtOgU2Jr=&Ql%1B4>6arx(C`LjF@Ck zI?VvcfL?|K%=%rKg)XRb-je?#UkWqD@(C{h>pNZlY!t2b`tvX^w8b9wWzW==yp;C6 z{3hvK>thkARVQKcM<~aNF;Ob2-TCz7P(~pg?%?f#e28ynkJ3AsFaWi05K>#=Ye9o5 z3@ii{%2ubH%mu`A41tZI(yVGnGmBM@Lgu@SLNgB0Lwv3-_Xw~V6NTfzgX=cggDKD> zrPhDOZ(2GJVc?x$yw>z%{IP(TyP%QYSKru)q4C|Qb09V$d-vLocZ}|AHrHLXnk{dO z9Wk;U#d|z^B74bM7#ZUgSxR)z*3wH8x?tPeYuVLn`BwGueg)n38<(Gg3{aq^k8aIC zVFDG%e7-?vFFEwFUt(8EijhQ+vQ5Y>AA;r<3O27bd_hojw>Cjnf^|7^OxNaeWK5)L zfH1Tgjw^BDc(Wzo`f{*KcXXuk`R4LZrS{Y#?W@P(1lxpm{d$L?ne+K$k#S}tvE>w7 zrwB|Of|xgK;avI69=0qa!#B%uQMGAYU$nw=`tc@dX5fevAct~_>Z-n1C1ztboMB;O zXHgtE>zduUSau0t)Obs`cfhB`m^JMXu^R%of$Gk%?RvX_yJ>NoY?)LE5DLk-$p05H zR$`fkU#P<^8j!nJ_CX&j*B(RAMpu<~+lCRwHv-9wbIjhOCw;;K`Cb=~Cx`Ox7K4kzw&?uNJ+xq4Chk3o`t(N2zI&iW@3!c8 zvZm4^8@us|p}F`fzY;mJY&XZPG)Q~R5Fis($#pX@{(CJshpJUc`XIAZ!~tr-$7n|% zM^+NG%p4z*ad}2$Zp}#D(;GFzb9d|ZsVt%6A#@+>`S7##2F-$@Nk(- zBn_x`el{y)Ixbpk7F%~4mC(H7Jt`E$j!GZ*-mK{2P~33G4BOJMz%Y1818!mgeC$6M z!uwz$S;k#;e8eHz#gp_jW&$37R+6c&tt+`++^JJ%&yw~? zh`MpICIkt8RL&ZRQ(bza;-tRw{c$r=M8XMu|X>j^m1d zzEBCcT)aWN^iN*Y@P32Zqyhun5Q-EPRWir4=+6_X*S;6xzTL(r7x^RTy;a*-&5A-k z{ec_Mwx*gWa6wxW*v~{EF%3+*$wjij%J_qh?0;;xp-k5b%9h9UZz0D^HQj0h-W&M~ zn6u(OKKlCaj$|NSYKgCsB8fc2Cxca+66v2dky=81;1~UDe~;z&%QfwCeT><_5<#_# zMMRfpd*(p&ZW2!*4$NY)_r1T9AL8<&9T+b`j0;j-th{{QeFdO^{Iv7*>?npPwEwVA zxIB=axSQC)_b6>tB|}~1XFNOiou%@x$O$3qMf_?J?vt9=_U$XJM0#(()rX2^Ao@N13(dPT23C%k9+k;$$(rm zU=Xcx^;T66vDB6y{fothYJ3Tu#{_8TW|eAV+g%u3e3Pe|y~p3$mGaQX{#kKgXSu>` z^0x&}y8kIf%a;EO*>tM6{Ri<>WLTYrKOCCuANMwC_Z~~{=%z+C)$R3ja2)Zv-6m`+ z?1Y40gQ}G~AO<_TLi}`(S8@@6jVuqiso+k%AZN{G8C$TPW5VHl&)DYF5IW$+r$Y8A z124dP-?p;Vnd1lcskQcEz@ki#9<^AYD&@K_0UmevhNAcEm&U842o>#kC4RTd>&;z8 zJtGc?@q{PT%BYwT$}BmIDhRxK_C5c8#%jrK(0`wls%}%Cn|4bVp?Dqv(yPsAuV(#h zRusn_%Kd2FQMO{~nLbr&v2|J}Nfj(C2m)e?W`xjQeSQ2);puJIk~`qstQc&PtWWKY zpw8N9c_$nv!ttJ39PTM}W%R_QobOY(w^tm$4*?0ioe$Gt) zr3@U~>7!E5%Z{ij>-Nqc-!I>)_)9jDYjgjC^Z8dII+90!OvmB@$xT`eOK3h{Igm<2~f?hgGwxwLl+LrH=G&Rk9o^ZNB%?QIv+&v z%^p0G-crR2L&rb`96*L)j`hqkt*q8Xl0(r&6%J3i>ODhkVPp8*V`Z4@u1z8c>#Kww zvQW6-)9AX#T}hmn$YF;bm3)%dGyOV}eA2Cp=c;hOt6|;Frz0;SDNN}`QM3+Ec7j?r zqir#Aij`^cDe9+3sM87a<4KG(5^_g}x3}|k_?b|ryEKCqoyej4I@gr;4T!q4UJf0kml_P3!N;VKOtudZDBcRsLQc_au zA2HLQ$&+nq-}+vgXL2kwAZ65`Z9zy}t~-v{F|jaeTD;jPVYYC^mfH${=i@!{Mk{rr zyX1<8=`F}kz}#^|1`Pt)b&EztrAxyXm^gXie6c<=Jc)<2j|r&Us>s;s*VsfH^+GL( zwf9%!XK^iu&2D&5v($=)Gf#BXJGKzC0N-2ZUSnk8a32~Ozhpb8F5^E`xu$2c6QMQG zHzm*oy`baTlQP{T;~uGPGGLDwneN(nC+{BWc`t&E;ua(C^o1&1qLB?INz~@v=eUcy z5;ELMLvHCVinl2t(SJwr;GOn0HY-1YS}Z4_%o>~juFo(b(!k-fr}MDSW?23MHt7(; zj^Mk<5!Aa>77yKTPeDige#3=v-1NJ;rJ$aX?34YyqIr&b{_ovb(+}vfZWi$!L*4x1 z&`6H+ zzsL@`+VLqHrfW%;Xy%g8k`u#?=+#z6P~tD@YnPe&jbeO(SSyY7UgzGikn9@dL z#^rDQzg*_}(Vgw?e`JNt!v7xTK6i9d#p;{{uEo>60H^;0$?vXU4Q+#g{~GRMc*yVl z^lc{V@AVcjfc$bE1Z&M3!FzO<72<7wd3|k1ux$MK#s@1DYgDEa=mG$yj@cZ<2s8|{ zxm@^Gy6?i|LI`l{qL?0w?K@v7hZp~O45j+?g-5`L2_`~A+WnoY;9Ga@MZ;AF?0RxZ z!8{tO)a>NwJor~pKzqbAEC)56Y-*M1{whRjy=DYqVJzq)O-pr`9*OuDMCMR?IM#nG zzY4tMfA_&<7K4y+Y&@gl6H{*yCNv9okg)ygEgAS{WMy({t%%|l{ueY*cQQvuc0}YB z^oAzuR@fs^m))#CZ!|+rh|dW>;se)l=0SK~)E^xFAj!EeKEGYeoZiR6PFtH00ve*fbd* z6&)B(al39XoRMFK*e~%#9Z#>;njf)5q*`9b(XvaBZ}Wz^+f?#>w*AE4iG4dCPY(Qz zBXp4Rq_h+ie7R5~RfjnF@Qh@gyaU4~AR{3l$lz=}DmHL0V=hxCr#?2$bBnYt5=P4ylVdc|y0c~aZD1Y*( z|IGT!y7laX>LOk8m++*VW)^))bZo3w46BphKZk~LWS9q+f6pn6)EQS^)6!oD@1+gs zh~$~Pw6sp92u07W)#)^yY`N{YdLT1yG$u0j+#c}jyx(xv11^g?5f?Z?tGAsij-uvX z9Y>=2-cJH46uY1UyBSe1K5`h0(9b+yf3)q}+DP=xf~MB%y@0aX?Xp+9)Pxgkq*oXh1xj){!L(6ulUWc^AWK=UF z|7|GYV1zIZJ=bye)&WNwMx8{H1PZ!S4ga@<8^_>S=0Sv}(r4`TJK^(_5Xvuz7ma`Q z{unpOW5FaTvYGXIdN3dz3LzxKdC_`FwR&)A3~F_f*gMYNI%ZXUnUq$ptYMixutuQq zQePW?u(%q;n&zWo{)uLUo$DQKUNuj&alo-i*+LY`d3?rS(}?$~XXRZ_QA!1yoOA_& zG2nNhWE+VOtHBJs@@S`LYMi6`KB44%$p&HxQ2?d<2*q<4X-qyqPP7+-b3#34MSGqG z{YobZ*N)xDKH)Q4W3b@wI#FvJW=+(Z!FK_mHv5sX{HrJVhEGRj&b^$akzkpjzEUNH zRPoAd+-$IfET_m|r-i@sTKUVTSHXwkwZnNRoq^BLVw7c6OhOb5AEN*0aj&Y5>i<;d z4LI&l!+UcNs1H|k@tRVupM-lA$;<@dqo6ut=8`g=X}w>GNN>C$1a_7DQMpV!0q*Sm ze1J;rE+?7yv*1l`;5|=mOeuQc6O*hr1*)vd)uf(J_Iu)Yso6)r?NSb$onVsbv_LM%M*Y>!9%IqzwG+V-4Mn+`qh=>F&E{K>B;c!Z> zt@^Vb)B1eNpIoI1Vh*s(N1x0vX#P2OiUB)sMBjOB1x>5qG_T>>_;4+@p-?7nl4**a-J_DvX}t@g*H{e}#kmDzE?%i)1r zZQ+tfvNFSSJn`l{rp*&J7V)c-EPafP^s=iq(vz1x2Ti^OXt>bl>fP!ZDGsF*U1;0q zsnZ%iU}-fN)qMV&Ao06J3t)dU`gl7uw6V*0M8jj);GbivpRv zMW}Z|O^SeX8k9?LBxTw{dK9z?+q<>XF6dF%J;jUTPVdaC6@OrbKZ(Up-TFn>~5x1%WU&_nn1Ak?-Du0fG;b@z6?ZtWVY+?{*6yzSe~cw@SNFw_=6r+xj1!ptm;rh zS=dAO+_)v&+;f6Lpof_txZMq{8C3}Xej8oEF9akwqQMQr#$dDxu-I+yBBdm)%pu$^ z%8VWpPMP;#KN{0~U;5QJvW!^f2{WQ=?D!==FM)6ftg#o6@hnmBGWtoQa)iV$jtHfy ztrBgYDNmeB<9gTon1p2Fia=Lf&~9D=4t;iF@xD|Jj+cf1QXB*mR#m+2M=t&n@vo(h z^`G;eQBYpFXq=G8JdiHyAZ_(F(JnC|YV+-VXEw<2#li_Yj{?*!hZ6k~MGJDBk}2uE zB1p!TwuRKG;Epn@xE3gglDTp zH%Mc^YJ+fw^Cu?7_hpRV+PIJPlq^}oS(aD6q8Bq=;rH@KG%n6zgDu6RqeNt}z64qK z>A$~K_q~^W#l}$TTg9iiFGZvqxt`_Jg+ft@MU7K4+dk@D)r_pdx0-;)^%H%rz_svjU`~I%&jfS#Jp`%jCNS>k ztX19Cb@LywA(Xo?^Ah62y;uXrfAt8Z7Zu~GUyeUo`McczZ`eO8b^K`_A`pkDxG-Y+ zMd05JLou!|MAEQYOkkT-l%DYEvN}tk%lExAQ2^^>^=fYfv!cCjmC?`+dTSVOYV%z| zG_3dhEO0}>h&kE$D_cP2Yo@G8;M=rbv%=%LpyN7Ok=>rfZ(*puW|{`R!+T2VN^P=Q zmEBtEWdQF6&(I`{xzACg!PX853;f6JXL0^7hC=l=onOx$m$Z^g78zVf|AZodpDNd` z+K*88gJqUSY1#i3^-8GGMiDklx7pP_$~377Q{)0-A{n>R5Q5)NjJ&zXcuhp#dz|B5 z=`U7D6G=R(##Y4{canYBWOp6vVH&ZgF)eBTOXmDJ8O(jg^lQnz@9FqH**vUW;vJQ} z)2J6j2i=Jc&dK_5I*Dni4WLm;W{G@F)nBwDOO^jg0Pa^5scoTEo%0~Gt}o(XzpWb> zlyNG;di6k7G#a(IE5amG`zHrEcc*Hsf}7OD$9kH}tz)U#UZk`vj?_xfA@|XrOxVf- zhrY?VGjAUF4Ft@3TIF#+*`N>9@u#Tzy5|_)(RXo0>}8}*3v{tON4?A@^+@o=K}=y$ z7r1eXGOApJis8BT`-JJSnV&H~)8yvvJ|JRnNdtZ|~rHHe3xGCtYubILGCy zOMC_I(uq3hy#oD4iAYB8v|vkaS*=fRbwosTY6Tbzi4RI1&=D?XnKbV*@-&tKc*zS+ z-$GN#O>s7MGeM<%z31-EGczL@PHU+9Zs!M4&GyQCQT;YtA5;mWUC{0V7(dVkcKwY6 zfMBOvBT3dZeT$2m=Bw$d8#52&;I*-{Dh_V-p?u`bmO`mNw-GVY{jQo*bx#d&Yf*T0 z&=K}11%BOh&?f@(IYMS*Iv>hZTcHT@?vetK{ol{iNSq@whMt-KBJ_22ZQA zP|hWbm%dz=qj<0RY4HGWW4XL+v#>JgqXYP^^suz&4_Osn?mSF<6YhO= z-z!Ic*7)(=$R(`S6Y#P;#&oxWn_I!gWVdE8&cY#sL}O|qx5&sYxf{yq&+z!5gD7%r?E z1UPr}s=Y@2{qH0^GVTN68J9<9oWDUozl&$fZL1}d$i9}8@{KU?Z9@R+Xiy5EGnT}f zLEuL%@!OZ^PPK|q@aTHh@Wr_FQB^RJ>pgXHMSfKZfZ$8Lqk4c(CL4ekO*l-Bs;&j5 zd|_wqcG22QWEk@P@UkMna3#`+8FeEw}-gSWEX&H6`<6XMS7{p`(5YSk%Ul zLJT(PGT=M)m?bbSr^k&a9y(p*BF_J!q<{G%nx7q19h$V)rWB5GBmf1}?P~4HX2r(8 zq`$o+m)DL0Q zI4g1N$ELeQ@Q$tuD5x5~yUWB5ZbJf0vT*5sHqSqac(ToRq4yP?Gp^N8dlYtqTtD?* z0HB4fPif|kHDe-Uy@*kw41D_isTszCg0=5usL<};g>~vOHDN1#VmsU;QUe8WAuG)Z z=ehjaH5zIZgfZy+sF-0ZCtb=DyL(lifX_ekD*q?aI!+D%*W#76{D zTCD?Gvk)Xb|8A( ze=$e&Qog1=A;gVJ(QZ9Kuk7E^HMe!h4`=i1;~7b72~AH6LdT^w>?WkHOX4-7rvBs3(3-zmssroGb1bm z>(+u+luo^iG2A_mWHX-xx|RWBWfRmHDow}bu~n!OXZ#mB;OL4I^w=a#{)hvRgbM!i zO$$kZW5{CNbkdG|Bo*Q@2f(ZxKjE$c@8GOlSUaeyFA=5<1Dc z+485RY%Fl)K1zHmc)PTGlVx{?rl(6jWci^NE8^VJ*KVe&Goy57Pr9KnIY0AWm%v)? zP>DliZI~5d0Xj~ro%;i)l!1=9?p_XOS($OQ(DKZ>`K2?O3;Q=o%yjU$6V&34|C_t+ z9blH`FY=)^`$nQIj#HJZ@v2wFxjzhP&DH=3KhC^c+cY5`+Wl-*6_L}MTn=CUS0o?G z`1(iV!2F;xRq9AUV{+a|5d1)dra$i_;fr0S^qgA>$>m-E>TY;%O>XA-jEl|N-sKYD zL02@?)!q%(Yx*&chgIqyV)H>w`HcDE^;EHk9Z;!p`QA4wD<#@c^6;{s2{Y(+d#J8x z=G(`IzCnk+9Sr?W?OlrgRebML--FYP$k@NSPI62XHoyIP=?@DT743Wq(JCXxE+(75 zC!Z@NhScHaL=obiQa(gFsiX$#%C}*C{|?Z#(^1=2D>E7(x9%SvaQ7pyPk?Bh%Tqv$ zE*E%EbmD1{q1jOggcLH&Is{TmCLMr&C7%`F0)0rlD4fX9a1atufMOQGuZtEl#{J9Q zl{f8%%18#1GaPbvzo=L^3$!kWkQsdnT7z$7?QWpV>h{4B+wO4zH%^zjK&nktg3PH$ zL96@Cxjn{!utEJt9h%Zcs7@qv;JP7FzM^VBS)L}b zu(2QiEE-#*ss8%i+~iS(!NoyURw<7)U_N_8r(D^+p->A|3VMyRx*)Jb8(l;5Baq7r z4NooKrof|l<@Te>k~Njrp9!;Ki(b`Qo=(kC50a^cMx@AvYvoZ;%3=rbVTEUeQP6!8 z80~<_N8ZVn0?3lXQ?$xh@%*Y+51Bqi>YG6L8^HTt^rf0`?I|3P)1v_+a(GB`ui1*M z#L3UEL?`d(nljeAXQngbmGs;2Cl)IqCaLMJv}?`*-n_M#$6G#klr<*~6pEGVo?E58 zL5K9#g!~2aN4W`d4f%taAk&;lzlKQt2OjRAdb?_$ZqU*TFkZ$)#6OLD>DMC(^enFX zqnA+*I89Vv>LmYpk6F~6s0+q{i%Ft?cRgV~&KD;f)0s~u%&=ApK)cIN-ic%WyvN1) zLfW*WN7Z@d%Nfz1In7JSHKhaCuoPONu0aC`#e~W-9rvR0`0}iXQQUT%(-_ zl|vE-OD?MTsiOaa+-U5!GiOQrXJOzH8+6DaTfX$7O?;m|w)SDL{78(n^DAKDF9lcc z$AlP*GWwvJ_&l$J2jXr-uEkKa_H_HVP$!%C$W$H|n7v?2Tlt8GBL^CK@7dx~cVlQP zdN4!!q|eKdf)jT2Flgzj3r0}#l~Dz*yz^{RN0FN*sQ6d67;?4@D1Xi?)p0JxXrzVk z^p^b2<)&-woO}L%jmvCIUH=6K{;#m43)_6i4S*YIydzvRc2)g2p`)q#ew$AVI$Y_< zPlN09_j$lE=~KI=D)~4^96%%ucGYAa&uen;BLvi5#^91Z4XSW^gAIBZKxM}fU2=qt zTZ?S4VCtj;AX_y@@lFjxrAfT@>F(~mzH8{ASm_#l9}!$T(1+!SakN6JcF$#NPMzM3 z$}iKv!q&R_>xTn=D)|R17>B%Xf0+{hJo{>3aaXt>9_a)B^HXl=N7q{}M#G@8S^vE1uWhtA6*!qhHt7 zH&5q!u=Ret#~&M3)UI=24@TkY=os=HqEyLSM0`J&$XMPm3T_y!eCH~n>M^5JI8g|7 zU61W{%bk66d9qt_5ai!3s>tp2Xh;F{E}bL-vW2oV-Wv)s=F^8i_HG$Xg1`M5N2p_j zXTm*|y!KYOT}T4f#Rt#ec{HqEkeHn;{9 z*`0g+A}t!ZZKK~)JX-|6JrGYcxU2h)xq;^P!kCkOa?X~b!|t6OrGM>BNkB4s!1}_S zH!RiNA0VFA)k{-noL{9@LX1kweyLkBi?#E5UbTDAnIUSM0YXxVR3Gg5g<-i22z2=; z4@K=y#$l2A(t#V1g1`&wln-k(CBh=11YnLc8cA&-77T;*X&vEF*_3#{hNf3#@RME! z+r#SJ$BNuQ`O4Svx=2cO6vD+7&Cqb0*cnmOr*u(@-bP*Kq51B6PNfVzpBEQE={g!- zr!Ma^TBegyJtl8CdiJb5r`THaXAF-Mzw9SJgqZf-LT*R_FuS0Yj zg^7u#rFx4cqbZqZ4%3jOIE&6NJZP)ef{&tX+-V`|S4O$6DSVv*kWa3Ok~qT2rLnu-mE`7x$4*6!fz^3-%BR-YG1i2C>H( z)(+w1Zu_4yfg>_o0(HyDPO*a!k-BBqd!RqLLY^sXI9Y%}8PO zKSOaq<;b0(Yvjn9>LSBlK`)vxp3?Uk>uojpxkcpA1&ox(2+8dJv*9QY9ety+ev|{% zDJ6mmBb(BRJ8scP{9ll@*~g9QE*xGz8AWd#zg)7Vnbc`iDhcTpzNm>=idA&|8D4Gz zMtf)Y;M11)E4xSTXXB%P-naISp!Ery$(b1`8Q6LeP*$%)SE(M3R!^qecT^4ZIl0$` zT20p7HkZlf+a9Tvj7C97NQT}M#E8URSi?&|b#veQ_h;s|P|O1`uAb&LoELdQmtiIv z1t^>#P3d^I-~+Y+y=s7}<)B;RqSH1vr@5=&Oct&_zS|y@c4O+8@k^4z)jw9IGaM-L z^u3Qf9?F68tG))Ts<`)h!Yl3fHtu6o)!tSD_wjmWUD5{W1GJ0tI_Im+x>{2T z%$eXG=4ozvDKS~;{Aq)?++=TEQA>Pf8tIb5tPnOb>a^o`nd?@3yIE}C*h|15vFZb)%7{d0x>5mX7c?Dr(x zI6{w9p`HCDgY%MXpyVaO%_CVAjx_v5N0roQR^ZC7THD~6mghz6Ct>hMaSuUAQz@M= zqW-b%FBv(UYKqwt@Muy~jJcPo$n_|#h^vtGAvZ}hemTFmS9Uhf_-V6Tqs=#)YHd=YY=IbQO*{7@km zqg5M>2r0aPlU0Q0trXizSoyQ#}?kI9&_ZyEGVZI!){P;{Ng& zUp7&GJ9^C6O>^b6MCy?*O^z4=T=oq4i;o^T*Wn|8@rS1GZjKT zYtghb{{&P8(z4+6%qjH{MakG4T)8x!-@c+&+UnFq>*2Rt;Y-|{L5*w;Ur2{DsdVn& zX#&+8jsFLvx2rdqLI)Q=S{%|0N!28GG$$EM>)bbJ&SS-7Snqe^ zH;5i(&skw<_eg<^uRgDN=Emixg%QNW;Ve$cIuX>9UEYXsT9=u zQgt9;M9=(!(6z)U!!tp~2TCjLwdTs~JOwP8iYf6TAwCB0Z*r|3d*X&P0W*R7CD0k4 zWu03T?7S!r+d>-}5rf|mJ!j+I@?&RGnf862r*dyq|F|oIQ*|RVkubCoq3sbG!K;Qc z0b$mJ7S62PoLMxliC;}_c|L+R;xzIvl=Lt&1bo2Ie8i30GzZplK9uClI*B2z=?9r` z+;uf6%Y`xgIkS0f(~5=Bgi5qa&8$-ge>l&u`Oa~LKkst5QJe$qi+(T&NWsj<0JJY8>@_)5~g|{)X`iMMq(f~5A0ilNL#?OsB^3W z2X^1=7Yz~IlMI#tmf>ck@>6noCB4|4aEgKiN6qE=MhWw^r?xzuDAlN4^<9Il z|G8j|%t=`v!TchP!V|E6KxE0$4KZ2U@RC`F<>|6FQpBB*XMX$iG#p4|fQ6#=5cA34 zpJQQ09a(X8rWnNL@Cs3Hb_Rf6R5&@;bD zDV(wdknz~vHrlj9LL~M>%1I$HCqkw^P24{v6)$zV^{B7@a8$GK$RA_G*Z53sUT%)= zz%4e7b@>g2Nk3hxTYfh30BoP2cxh5yrao4`6Rz!{rU+lwXFA!sB`?M6#NV)pY`X8W zm|7Fx64`960s7568H?X|72R4~!;==alYR>EKP?NBMR z`waiOa4N57q%Vr@UE?j;`u1In=)XDbcHUpL_i2&uAhtWyLQZ8Tv(kT5+FQzhH946* zdvZy!T|4j^0$tHE|3$cseFywnqy&?`DiG0vmBB-2K$`&7`7kkRL;Jr05%cZ1lm)}gbK+2Uw;60{JT9*&HD$D^T=D@WyDDl!sK)I(6^bXxGT#fy08b4CEtVbZZ0Q zT~^LX`g#!SYa~j|4Es%=duM@Ob};rFjISkur3UQqOJDUc^7hEOFEFL{G8)_Op1D*c zBjwRIzu(yJ6ZbAF^gfvBo_fxK=u!V#7WPGA#vX1yuO8Q{ zVOt7~Ogb7OKW0*~!_O&@3(|27#;LmE2BeLQMQ71804o1SelkSrCMiH_-@;GFVW5}4R zg*Ndt(mA3Wes4N8R>b2p%vZN1>A~9*y^+*Ru1xNWjBi_H<&MOKn`A(BnjCV#Vtk`D z_i-`u96T{GTK%)$T@V*#O}9mcrnF{RtmDF%ZCcZ6joAZcn4c|TeZO6^AvAH~S*IU%EW<~Xi%wi zR_<5+nyskH>#jey|?C3&|WW1Uv1?8S9Q9gThu?tuKHU#Lsw)| z*IWZPOjF@@))}ka0PZWaAx`LDwNes6^a_V$Olymhe4^AuLj!*EDvq4?Xpc-q|&qehIXRe+F#@^p)*}kyn z(A(q>Vi{FLdY9!h`Y?lkbacZ2$mTw+*k~{%GOAb<4?e@rKhm84yo;4zj8Fjw@-eYC z9n1xtR;H-|;u+VbMAe3jBS#gC{#4d#u3_{WY=5zF&k`e_+Z-Z|hw}7?Rg_JinhJB5 z1)Xeg&Y*KaYIEqg?JooFn+69ZqyLhS>Y^1-m=~S8PCk4ibOlkm*Z~VtWm3)@UUiK# zrNq+XIwD#VT)8`sL>O=?fA%bfeotaSk-6L2p{h+BTF$FexlXxX zu;Q(ReHSXRYQl~ngR(C|J-&W@Ud1$lw^(Li*0se)jXTf2V z9Qf>kkdwvFa^9WdP+%J8kUzol<@Hu4i@o%cl_FS|QU(vk?Xs0`8y&;fheq{2q=j(K zsqv3S6!Vct(d<_%tO^ew6!lL1J{p<)u8|!etoSP+4QDHT_^WL;r_z6&g~u#1*hl<0 zCwVF69ZvfYSFST7`2+y|R_Qa#n)1Bp!+7hHd5D_oJp=u4mm`B7o)B=P?WTK{@&+9* zX(7apN%lDS`Ah2L0sY&ld~}! zP*yNvSmMD2@*+n64YDblllVkWH^d2xKY0N7k}AXHG(v(ke3tR}y45s@YQ_GDhlJmC zYJ`2WpM`TlS%Q_Qh5}ouEQEOYquwy3kI_8w34}w?3B=2fcUi^F0c@)a95&-M6%Ib2+T;cI2HmWsm2|mzG7&i?7{iPRw7w zgE{!+&!CjXHF)jx16uCOFM+`7+m(+@SuVXL76N8WX6$lFcM>v|Yz1YnL;Ocyba|(P z*N^zO!Z$OL6Fohg$dcXT*@b*J-PsQNJYsBTxLs@@GUs=fW>ikop~7;K;YZ2#s~CdfO5maL z-dyxm*iO=6I?V11f}^@tz-J8Dq4!XH0%gtDD7~K>?%O5@-J&@SP{l)1{-iWLDM)(| zexiCuzj}`f1iW81rz&Bs<#SM;5pGT%G368QOzZ_2a9Q6)yTT*->%pw(VbI*Hm}yo5 z&`P_=0pZa%ko#zgY`&_Y`F|LD6K|;h`29O&NwP$deWyNXqL6KD31usv$U3rQ8AHa- z7@;i5zGWRtq3nCsQDo1~Fm}dH7=tmk`#qogd*8p`xzG8XbN>Z(UT3^tujlo=uE&Kp ziU>vA7h6cEh{9B=GSpY(jENpN%2LACiY-oK4;2#PV?5x_Er4@7QtnEBUF>^tse3z;ukcPDaORb z@01_X%8NxRbiy>t4pS3flQlU84>PE>J$c9}!YJZHAml2Ry2JN?Wf zUMME;bg7r}F?D8wmd5}N+LlZX*?ukC7ecv%vo{CdsCveK_l}OyeJ3P(GBy;J>3Feo zalSLt2;4aM6k1t1WcLV^&u8hWa5Fm2V6xZmtMc6SpZDBSnsCCAF*wG?V}Bk%aQ0p=1-J;T;L|SsXy`;& zj|(({w;5+a?@7K_8(o30i4x4# zUP(pfU)S1M?dTe?&RcD~=WmC6?(0VCC%*MZKDRGi5CE9TQ>$hjT6 zPJP6%_w#H`;xJ}U`Fu$^`Ef2yJz-f)mIWg`G&OrzTj_5Rn=Z|}mUl5IphD~XwvU(W znQDj$*s}S6PFHMPGDHYtdCwPky<~y2>Gj+ul({Q7Tqhk%5I(d0~b(A1^_@Y4`E2V=+IW&eh-1mXrv9#_`Xw6=n$6rzqE*m8ZBYg@~jHo0x4&VB70S zPC9(-8wc0FQB)?IlmF9dHrY3&+XqTxR|Fy#>^79d)^JI4D;DgN0J6^9*flCDG zXr;%te_>O5jWX&Aqoq_s`*m+RTfy3*job(QX5=+)f35m(@hDB@)|XKQySH`szqGj6 zuRg$s73%-UP06G=xpiPdBp~H_kNv{$ovDa-dTgS!dKm%`SI+*xa#?u4?HI3#ks&D% z>;J$32A+hV*0SS5IF%5W|4Wpsoz^HmgR@Sik`$5pi2}y%y#fTU+ zSYrdyG~Gl?St=0fb=_Quq-tTL9e_{1HN|9(VW{2|{ZJX~MC+%SQrVmjhOttShIO^k zUDRUDT~$ur8I}6eFVIE-UBf9{okk>EK{2DkZJL%~Q{?;)UP_iZzU`ESA`XN)wScnz zh{SKpuLb6w>bn?9hm*3TwVyG23kKki?$%L@a~$;@a|ga+`Vc9uDoME(qqQ;+PY(a% zFwzggfa9&rv_5PDH3LA2D`FlL>VAg$Su?EA)E zU0iAahp-O;9g8l3MsrJ1<8K6QR{j0{Z(!5y3d8>c$ca3F&(`|{#vh@-appFGoC2e3 z0Kmjir|N8i-%f(Ja-0b-QlaAldIA8{WnT z{sBAX7WzuV47vIqZakUpmYBOWj2W26p~P4UTqs7d@Sta>AMc)pmUEDQCp{xjrSWnPpZ?Y&$=&fLjz*vVa%E`;w*$Gae`>T z#?xjzqpWuUayuQ0_iOkv(3H(NNUzHoNYM-!Ron0RX7|ZH-&YB= zwTy6`d?e)V|L;+oVg2)R;G8@KPJFS|+D&?DyubT4Rl48l2gkNwLyrm*i@Li#8^#p* z5ODEtBO==ZSN;SObWyuBs{{w%iZR=Fi^>g;Y3xcwc`6E)cl@yJ$!p9nc0?TU{ADW@ zMr+SlkpyoRhh=`*=atrMX>3Sl<9*I}@=H0do@JHw=bz5G+U# zlmN8q{acHM+XOQiV#Ynf7h^j4A5TORYTV4GLfeC2(Gr*7c@95mN*z~2A5cn7FxV=% zs%FVptCz~ufcf_-Us<8NaCO-+n-L{QiBVxoxI0$B{&}Hm^{Gx^b|!>_0JmETR68MM`K<@~#wWCJrh!DTUr`cUE@ETv_t`#FYaI&|rK#Db6)pbJ5? zFlL$$hnDghXM)gyDvz!2bS!?gbY4a+*@g6xsT^w(uBMq2k6mrj=+$jPA)mDUI6;eH zu5_^7@*&m>1=r<>5T75(il5nr+9vWis~ZHDo@Djha)%YM^PYxM|HsdqEfcNnnR-UW~+G0B-T zPV-6cQ|^dB)1~Ik)HxfLMf}=0XUnT!Yw{K1w3rYuk-g!Rmg?%Vsf9dOkut&PN7hoU zPLEx+&p#SB<@%G8&g%u15X5@^!wFbgJ43{8R#@iJS9%n7p}##2Ni1Z{NPl0Imn9R& zHtEv>U`y_%$Hsn*R)je@*oQ;||FzAp+-Qd>tUTatl6ic50*D!vISe!OUu0IS_EX4| z6b%L>!RcoTZY-oMiN^a!8+VVcLVb?&UO^zK;5Ujj-^(>GmldwdN?l1>*GY)^9E2mL=_e<$kI3D0Zw?GG@2xPsJx+y7HXc1DBiDJb~RyUE-;j ztLdw&)4+*{rJt5-G_tNg3(T(jT+1{vCPTM)@M7Si76oTY7F?&@&q-b1W0iMZ^L`?D$XKLe}Wc7QjH#? zi8d_ISFYEQd8kTM*a`VpCf>jj(0a_)S*i(n1(m#oAHv+p%enNlMXA7OzyW$A3_197BNV z*3%K+Z5}>G5!*#Sf~3N#6D2Qups11Nu&V6Q1IC1eQ*dfft3Mimg8)DnQ#HyV<2vCBce_y@>)(Hi%dZzkjxUtQ136a^PO z*(T9en(u^IVCBOU?-pJ;7_#wiW$V%jl*)a!A)p^oT&`-d#n=^nwik4`QM=sP9u2+= zysg`vO}W-mHivw9Vml$k`E|tAGu$gec#FFHpKJQ@L<-K(`GLr+s{&<*o?1M+oRA@I z`XKSMJ!Vd1*$rgrvZ9+Q_0Wfbb>%PmDv&@pE2N$mGP)+()QvI-npNiuQ+$Yf_Bh(7 zy+A!XWMbD*si69*eyi)9GMvI$Qmmx0p*6G4{#dR`)Dk_Tv@z6Clzp`{7;JX(}eH; zX}=G^0d{hm)c4M>`OdAH2k6dL_<&Zq4K}Kav@QNT=*-D(p`KluN0C%AWe!dZcfMHx z7?#?KHa7y6oe!Pg#M@WXRMn%fnR67}Z-!H{nC*2Oc`D~)#WsgY+>tj&SgPKw2Nb5mV!w+Q_N#{ElWT|rHTP_R_+uJLy;CXIvRkCZ=P?SMB~7Eh=SHln9+bO1 zOugLyaf$Lz7*w4h@iy1?5+9m(tmOmW*r=X7?W=bM?yzo;Pp&?VfAg&_-{*hNtMpudONo1bl5A+}xtH0#MD|S_Qi;BQ*k}V@l;;h~VMU z>vwlEtI#5Q6pBue(YH$spzE&+$T>P%qSuT<1gE3N&Z!R|wQMJ3%ci*bvJZ}(+WH9)6OUVd0C6enC~8c*l^ zE9{(;$~n9rF}@MSOoz14=TU*P06QEtJS6p%Ai~Vy%APl;f{+)UYk;38TRC${G$7Qc zKA#&IEf~l%&sNWbgbI7@#Q>H%p252}@?b}6 z-8HX$z7z82_?sqe6WG>q({VgsnmY3F^LTcXXyIi*zj5%tT1Fg+N-T3B&(WJ3Yt(U? zWn|^U|EO`!qV#vz);M)_6%?iWmKoFa{Qxf%kUlk??;QRGjBKsyxK-x!`!C?o-h0f8 z5D?q71svKfb2=03SS+0>fZAo_&%kK&x+ zxK)_+e+z{_>T7yN_`=XXvCj9b_i}Vk2N%i2OEb7yOQmGXRW33Q0F*BGTLxcUv_QMG zmKSqRZn>dis3&2GY?=^NuoAfdbk-ozQ-GJc{6QaHLNzxz(eZiUFH9X=Czxq28!g3P zmf7VG5W)UMEMS>X8o>}}Q?H0;=DDA)G>nvllAsowrZe0-KAqNR)J}~rSZredKjfv^ zEIwJg1t(I+YTL(A009^ePq{O(<_7jz&0{4lFI{v7J7Se&)E8+Emu5(pAoy9*cwI8L zP*i%3xm7QDa;~I^c9VuF_FcxG&oiE9Hv%?nbB{Ct^~iC>)u)Y9#Ku+2yL^4H6MR@v z71gM6It_L9vX6$(b}+h1!H9&zI&?E}*q8pSYobJkPOX_If&MK?L&Xu2=RIm7b8{V~ zB9eY*^h*@f_AY>@g95prF)7&1*KJn=oGd+dSa9M^BO-5$qoC0zoa445^mYE#Zdyv`XBI?0!PdUzM(u8}X@(&F0(MQ-nd5J$!TwxmA^K{26&v|IB_#?0213TRV>B^)C->w6s)ScQ+ef(FdOlt)Q zLAIi5SJfx*unLt)yjfw-v!;oXe^L`;pj?rxYq4fHHTfUvr)tk}2vliIwyUs$Vf_*z zpE!N3t0d&VLl2S-kD6AMdPV+q<{tJp+Fb_TRuhXw=TGFvjHd)!;-)-0)p@FG`Qg#> z8-=-bzTv0xURupQ;Zf$8+7Di&2FrmIi3OW063DNjGeB@K$r>8H${)}sxWD|c(ve*u zjOm2TU(z`(8+hm|$NMqL4~B%w&}~HhBbI)U>;2T^rO7RR{p;#$EJfy`#*;MpTo}rs zZ;VcIdI39IwBI&qo__Pz0iR2ZevnNiI!0<@8=tVPI!8nkp*sl85F~{KiNf5dJo-%7 z`l_dRji)7ss%8cuN$-12L%rpe{kdAHexw3-Zp%d{8+gNvp6P5lcxMr>{4*OT=`%>}?G{?rKCn{NLAtB+@iwsr2{jbQ2tGTx&LMU4_b}`K zOZkb4`rnKXudo2Wbo>R0B|@2dMPDt4G$0T?w*61x_Ejg&4QNf~w@3)QS zPrGQ~qHaKm&BkkgDX*K>nnhEJH-VM^nTZU{I1&ZDFcImB0Fn!(NyH~|+ZIFtRfcxWS+;`GCmV@HlPRQ6V|Ka8sgDNe z5X8nTvtNNFLP%*8|CbW4!csFj)egfg{eY2Jwkz8Hx?hh zmC&v%de?t2|Mst-a&2Wvtt?CQ3;)jb^z+C|Elhz0*T>x6_RW3k4O2Rv5F=6dvy?@J z%Ezq9ffho-KJPx`&P(INBuV7b+*uk(t}ZI0S55!KZwDqh9YoB+-(ocrr_^ovJ8c<` ze@gS7$?;SM4)HOzhoPjhR&oe`&|P&pg9?<#k4g_j@8k_sBUBAydhPgm=|%!fd4M0w zNAAYN%_!b$W&EFe%?($sbn;tP#h&+kir_D_x5w2g8hFfxze+O_5scOz@&_->wHHNGo5%qy;52lvd06bk}Dl}kUYJ+=22+f9E2qB~9SjWXXe z!jK+RsFyM>(mjm-{j#!QS}|f?*HK zv!DvW6BT@ADOq}#= z#orhGzw2S5VPot&lhegx+7KI81Ctre1Tdcj=iQ8wJ+h>JcC^fGm)`e{Wa+Oi_$=sQd9- zqJeW}?MXt!tBg_TGuQ2z(X8F~qKPuva9VC~`2$u8Aib6%q9B8RP%T?x0(kuVQo|=% zk<#M-lDXr0E?d|dSv6m)TrUgDi6n`0Mj}DayTQ;K$T8}%vTST<>t<5DLsPe73NwkL z0c58iVwjzhB1;adWW?LimlO&ptekYLY1lC@<8wl&(|hA`n-@F)(IT zaZVPFK8SYRYB3Qbq}ttRT?KH1I;j`c+6brJ1A5?TB*pMR|N8Roe~YUtYm9-!wqNRq z6^iECx~uQV)Q;r^U4PPbK;U!(kT*>y$``8_iCn*-X?@#2Pl>C6=c{(JD@Xj9IA->h z;=bl038R9bnH7hno$toYP7xM9G}zc6@vMY&>{$8QO^_Vo;$$xHKI7u*TpIV4lS{gV zvghKf(g%9r-sqS6ml;QC@&<2ca!LLWG}HySyI&zWx6af^{g)fY{WOsqSR3J4#~3H{ z`&9w2>z@K(0e6~`ywdzP3{j@GM-g&+5JEv79-wr2uB-DZCQ3jQs9OMla_VllZZG9| z1SjBt1E61QVqS!V4wJ3#-vV>*Hu{c%IW8khc%2qEfnN<=Bl(d|q}w9yksGIzA%u7F zYYUqHR=tX=Uv+trm2yx?PZ6ZLj3B!lai)&Q4*bY9T9>~SUCY4>*5OgZ_NxOSy1K~e zPet47vQdOhHVTat$9-yFa`e%-6j0D^ny9xt_V8U~K|S&`?i(Z{my<#mRiV6&4tDcQu zV#47afKmBN3_#Dnnx5JR4~cm8uhTunBu?S&h9PH9E?E%cT+J>@lL%oG@{|}gk`9y; zxnR=!ErQp0=_RJXB675(!(L)dv{)Mv=JV}Y|NCTG@XaN85OflngRHzq>NM`9h8)Vq zM+}5!TQ-itg%4Uo?LyG&x^GUULDt^RCfmqzCFYa9XCodPuC>eBis$cv`-q9B$8?pW ze|^a>AgeZKO`^YFmKm@Z{twUOiL>+n4mA1y1lgKjp4}7QNlMo6)n93j+;7TrT;Pt8 zp_m!{%5!|I?V)Fao-+JCAPtH2V_f#(`N#uP%EXu6_dJfD_Wzn#O5-RSWxCdD>}#AP z6FufzXN2w?23PCEvh$u)CdZhW#dbK zPcnfT!fPObgDj>q{7Y6{wXupg&^a!We>Vrhj1zsM{+_0p&r_n^QsF!+nWpMREANnh z;mqMxDG@$*^{LRZk$cF`G#&?bO^`Io5=ESt4}Rkm_FAVg3$zl}5hB?+=K%(&$x5l- zEBsyhLVLE)raEf6bY{Z2L%yC1x4swr91P7C{n48}O%Q%1(!|O<=ZTT(W@lQsA+!Kp zD{7WH<>ox~;nPCzW+d%$Tu!CdGMFb(;Ox(~^kU9Z{-`rBBCR8ut^i%yC?=7VUw z$Q10yMu-ZdkF!@Nusturl+p6~Q@+`tdPHh{{#b-K_@lF=F{G{jymU#Uu5Uzo-G6}& z@&i|T`^mZDznxLyo+XM6U3nAv+vLNLxJ;=aE80!lpQ4fK;3Ov@WD^_lOo28Go7r-ccIQ&6)x<6)*(kQ5`X+A4wW9f9iPQ!b%8$36tmg^EY$@8wX#&GS z^g*PhL+X4WDOS5B;!eY8qP8NKGdR7n7MnV%;~>H70Svp^*;)43cnN`0A{_xj#X z!31TK?u$%Xu$JO}`^(KwL{0F7P$*+Ym9QL3)o%scw_*lG6112JN64L{o_F2z|9&4}xiLeg$fQsj=|7>id5Uqi+ygkS z-wA^DC9Q(8&1Cb7T|%5G=rvrYr8cEu^lO7CFvV&VOlR|N8(+zM;CTDp#o6421;HLl zw7oB)G=1uvZGr?v-&uzS$Nvk*jE5tD_&}bhK~>tB7sQu@oHvV90@uI~X`8 z#omu(S5MY_?g6@KXtClf`M zvZJCf4ChYpuVNOC@mF9x#Z>s|3|4Nl@Sq8DzT?p|%bNS+&MF5BjDbJQW6q^VGl38! z$o*<&<^ao*Mo0|oj;&~0P6d-vATSFDBZnn8tq7_RfP_#g^+WYnZXu&r4*0d*Z>#j# zp9#=t!?M!9BaHFzX8n#|`}P3g-c~RZX^c|#j7zW03{ zNSlzJUR0a=3<9gxQVZbsh9XK!y7)?b>{@u{x7q{?A!(y=RGEf&ZC#I;GL}{T+ZWgn zDKJ-VHG42uz<5=bG&@AyZ{X=!R7sciCz~ZxZ8W(HMuXQa!Au=*V4Z&KSomiNc#d{c zOR9&rlpaOC%MDpd8(xX_ZnEj_%~31>DdhtDkp{0`vsrj$(2bT7#y7$(4HsuSkPiA; z^%jAFro$!PiyvJh0QogW5#Ke8G`;s@9CTS^f9av60>|P$IcVg>(4Ie+_9wWtr@tqw zc=j`_rdM@mUM--tpfqDG4m!03GB7^+8PXE4sE<8}Fxw#UCGCS_6ToLyVqcMRS@~@b z=Svt{5*MmSq4Ss?@TZ&ZMzwm}SjS{N z^l3mS_8pWd06K+vnyPTaHo7Q>J9Vh{82GXbjrXOB=&ih2ZyH9F5b3c;vizwZpegF-E2iCjqRfLnm5MX!h#NjTa|7G@89^ zQyV8zK97H4;L@yPT>!2Aa<}ZdLE3%ZF)PK-(;*q(t6q2}ClO{5qknu^c^it#BY4m3 zF`3iFoQ^D>8W`fWrmH!J9ofn0%FTD5n&BRqPP`N z<7u4{d!Bg>YK0`{LL26%*I825j1$fyDryl@@5L{V7@>W&bgcamXq_$?9Ov3$U6dgI zxNc3BvbM7h@fEi1`h}q@vqKDaJQom+RCil&R}M>-B?tyilFvnt&ZOSmDwt*Qht4dv zr1P#1g}pj=F@L?b5PYnr^1;OJ(7m8>o_H?y$Ng=Bn0(IBQ@O z%F>t;u{E!G5Aq}?&HO{ObKz|f=ExVMy()A~q(bvbZAZ9;VpYVI2 zf-0y|Lqy!pWw%6;bH7}7cF5l0h3EqSU2Y1_?t^ftpm8eUT<6+ZMP?!sEGC01+)|VK zjJ#=&$LN1b(}~bMJTJ4UWX%OYV&%&9m=}Z!&=vIebea`9w~;x??>5Z2>G9z10#jbU z{aar$C5L{sFq~#7Nt&JjPwn)%sF$mr;wcnKLNUv7BPF7h;023`&w z$pe|4dH`G_&CXS|G4@MDoXjEU%@@7@M-#YM11+t)WPuxkRy1Rf93>UUto4O$Iq!)E z;zflosw2)N02^hUr)Z|fiwFv2>NNDf?8f9(Ej^R#KTN8@o-Xd+K*+tw4{T@jr$(T3 z{JeUoS9F4G(5tQwIEk4mt3o%juS2JOO8{LHvqfhRX z_Z8LRr-1yi4a7)~JjkzyNFAiZ8SVMvKHzgLTN9U2hus7I8E>+aP&t*Ry3MtO3A8^6 zbmE|s&LdvaH>7nfXDP;+AuuHF+By@a3Gp>D`)8qT4rnupsk4w{AyuvtmtsKa`wr?Z ze`01%@4k^)97f*RA;kFu@jZ*4iPa*Roi|j?eK~~O2PP#^{gVgVu7UoQBRD49;UQ2F z&?~S4(43zii(PLHgRA!aM{~1jGKf^HNe`1^T{CEV^z(w8fW5o73}hDt(l7lNp!6MT zsmv8U{|{SDPB|tZoC0dJ2u-rv1dU5H9JiV0j|T#gsqdT&Kp}|$t|0oUGVv$l(;3sB zIYYgrFFfMEXy36lxUE7MpOt(HJYD3s*YbJKb`5CaM6;<;+&{#rhcO2xYT5KWxZTcZ zbIL;W%(e@r8PG>0Dn9a*==iNcnL63RqoBWwBQHsQi76<#-a3vVx9v3k$Lq7Z=blP_ zj6OGU6a`Bo0jN*i2>{G}>4I$?XN40OFLoIt!HeO>Q-4hc{EYT)W#VcgzVxT7DA#KS z!a|)90GVml;^4dSHUq$r>VE$vfL=1u*z2o%g1t>|B%+C&HA#`QcMWV9+a>}DZ{UsT z8OcbjXpVUInM~5oIz5Pvk_$p zaO?x=HNJD;bu-fYM~k-!tC1%uj@o@IA=}`qa@5`iL?gsvW(lv_1^C>`ed1OTvn!$& z;!L|_d*{=8)yPh>MshLEGR4?sYLrYrLMPdu_TW-HF@bD5JAk-OD_5q&lcFt@q z;3gN2^4ku(18$w%vO~V(ZqlGQcYtz{M|_S5#lLeUX>8fnjXIt`o|=+0I3q*3lFmbG zoSa9ey5C}N>-Ld>%1QM=d7DCfdlAGTvB{L)89N&tR245dqO6llELkZ+^4EQjS#$eI zXIZ{`d$B5RXiED0@!S8Y`n34}QS}L!GGgb7TxL(x=gwSa{Kn_3Tu!`Ry^8Ag6& zYou%F>E9yA!Lgs^34i$Ak4-sVLt)~OTa4ZAy2VVs>J1prEldHGB{50Ah7v;|<)f#u*m6nP_mJlusd>dPALGnE60iQ7BQI*&{w-Pk+l< z6$D$8@ESQaSgl*amNw`GHciwEl5M5bHL7BtsWU0H@nb@}wD05dlIh_(GDCNRE_VY> zdXKSm`G;MPleHmI?`3y`NJ2sTTu_?Qk?whQpLX6-Rok*B*nfVy-8t;&ucq)Ek_)L` zVSl0T-So>owW}QzNK9ssn0TX7?=qYRDU!vHJV1_Rm8kEsD55n*AM8Q9DYr#67wK^| zU0CxFkl0VS)M0xPMoUJDK+Mw?2Dd=V6*kOC;}^sSx@B1TVp{m_))k z&>i>2XqhRR74GjpLg0dG)veNN;ZKUgI+A64+8IZ}1J^pn9c?_GTgfWFG1m<-&!fv+ zlYRK6oeqSt?u>=m;#tDKlI&~%4x$dvb-iFasY2StrbjL{@5C#NDjr03C$7~#4 zjZrBdqlzBUq-8IBs=dN7lVQ(n5VjjVz5N_mnlGmACrT5#zofN{g!2##H}ZC*UJu`o zOFiu_+rB;~yF`Q+W=6qrHq-1RaY+dx->!7HcxxV zlTQIzM$3paknb#_;_0v@X}C;OvRX;-eo+oAhiMgPgos-Sq8_<==9c*k267AoKP{jyQHr73 zvq_K)$GzQcB~%WS>|7S}fjNJ)9xmb!x}>b#u1c2VjXa4?OqUppunr=eu9So%tKhVP zYn=Oo`T^KSb3F0o*=0-QEx+)O3ef}XVmI4=Lc|KcHf4iAI1;erdpC9hsf^#e@rF|- zEMd(?Aj7Ir{}4^T0)v~PfYJ`0s@F) zJ%Gf3i0~o17YjpYR<@)ZJEdhwUJ21E&cu+wT@L*6%Tjofb;|U-|Dmwv70#OQ9E;vl zTGS3!^q%5YgZ&7%S;&#aDy9D-9-Qxicg69+tLxLBi2JV@{a+1fd?MzCPTw+C z@OEn3srvMR{|80$mK|u*5*W_eAl=_SgTCxqO9|8s6any?12BUIV#*!#>^pCj?+RDPL4I z0@9fRd*`X;70{j^@J%+5d7H4~0p&L$^Bmbj;>I@my=0~aBNdy%@clL9d+0Y?2@GK5 zth^_pli2)!&mqWSVzP}*VdyCa2&XhV4}~#eH8`4=e^ht^p2vc|dKg2<=LNxwCeqgt zgMRUAN;{R`O|JPBBu24jdt>LxmeG(-i4reZ$*8FN0!G1mx? zhdYFZ@WfRi?feT(k%bv`ez#c+&-xVp_TsmD|Dr$~MSGbdjo<+{Gq%yr-p691r1vlC zBvy?zu=?tMypwBxI-TXOOOMtn@v4z@^BQ!c8vZy@p4m#v>B%u#pNLn`hT=5p1`TG4 ztMi`s;=+tjB>C#qp9WL>qb+(U{+@#|CQH~{axlrK`IS(aVlgc}Elx+C--a;-y-1p1<;)kCX9N^> z>I2IqeJ(gmsb@y;U5`qKy-QsG=i>!37&r27`vYtFE31AJM@V&9~d9852$PL3~8s! z>yN7u*H93K!l@*(aUlpaAwtnEC-JD4&qH_0PE?cHl#f`b5iC~7{Li+ORVb;LW=kXn zwMgR^pV#NvDH2{y)j4k(jS0r`z5{`W_!FUsSZEIisa{Vr(MzHlP>yR6t?i%FlVmo7 z(&=WxJW5rKoMQsbx@g_H|JXYGl38Ew$UrgHg!A~kUv+9Ip+4(sZCm^Vz!rf@k6}ln zc3GmZrrGHE_?tB4J*6M%zsT(K57t8D@0^1qmWF=%G zFPkhTBiK0}0Nh94&#$Lq6}?6}rD23rHlpomh3A@OU0g-A^MlrnmooP5M!K{H!8KVb zeV3&S<0nPFxZl4sMwdVD1o|<=32(akRBh$9aGaq&BUp;!pD~S?hKu6FmOEz;UJ2H@ zBzR@x(n+SJn{;pbeCKF$qbm1}| zC!V5@{L#i9Oe&tK8A?jFSl}by7usqP!!W{6g+SJ7llM^xaKP}LTd=u-1oqF~ zWPSc)mP`J|8>+^(lRY-0Yh=fvwUPx9VDM2>p<@%tk(f!x|~F`ZNs%tPMGUt>Is z8|x8VqSg0N^9Cq;iJzw)cK`9<@%3q5yj6Aw-u*gcx&&zY#FcFw&(%_J)=UF6v>?Ah z`?aKZ=2hK2WQ)L};dwNA{F<9TP$+J8+RgyqD_%&t22lc9V(+cOz(L4JtoT(jch|$a zVI)%|U4)&j_tJ6Kqohvf0`Eqq>^5?PhfH;4c&L&0sY&WQwab@_*~iJEgt-xG4#iF3Zp!;9T| zr1d_~XbT6h;(sF_13)RjRmIiD&$pW~EkZj)-6F~c)3GJ5qUtOx6m?8-ZVzcz^ZUC! za?0i(8LgThN4X;Mwz7p&t9hS(KX|9ufD0|Xe$lnWdp;8VcjI~~A%eR~Md5u|i@tA< zVbA-5Qe8dIQ>*eOphY}u`t*Q1?NO}iy;-1+8+JtQxbY{Ape%i==oX9x6`2|7e&+-l z*d%MbGrxJ%Ue(MqK{deORRMFzHf?&vbSz7`E2;XXoSGE>&C9!@q7z+4MlJ~=-^D|gG`eo)T=wi(pMe{eBhXV_FL5L2#) z=iPLbXPD6<1ONpo(@MwP`uA41(%HP4tFv1}EKkQaYVz19oG&8L#7HuA*Svd=KNBFz zh0~{cM!OgB+Uwva#rkF}JH zv=zf`nMHy5t==T6poF_ITqm(T?f)iR@?pNTy2(CWrNTTMRz+puC?I6K-e5x!uZ6X> z&P7T6J5^x`7p#lF>4EG47H%rmKb{<2x5S8Ntyu>JcQWlH6EJMbaHjL1eGV)>0@?M) zC+*DRe(S-I-btEw>y8L(;8{g%#0B&PD(Kg24pnP$HV85VlU8PL0y@SF%(Apy&?o=)6tZeYdX1T|W!?{MHx#BDRe_0tQaN7UX;%h@8$J3Kya<%=Q`+D^5xqlN#Aahv^#`2yY% zDF|rI$vpCUx?{F+4*j|t(j@jGG}~o!h6~rmif_L1G~MJXo@d0rpef8V>MVLm3@86o zIRFkTdGG3z5W?%@{WTi0hY5vk)byUbcq_4^yZ%8lpoBVW$at#B-rX|cd?D`0L83a3 z#%BP7zbYJ!7ezv+`kv0ZFRf-~m92(hV{;N&;>OfUSN-D=|GwORMg4mRrV~6W+A@g0 zbcn&MerWMs-QtEx6o^#D2dcYM#s~V&ZJJNj(l z&+Guw=%7r<{Q$G(QH?s%59-;}S31rr$Y<-Q7&lWBXpT5(;^|7PBCpHvA9_)k+3s_^ zj)KhfZnK*U`i#hIPE@r)0e2=*dapR59}!Cxz0ZI0M%6kP1Yzh_x2=DIZf~m54^%#Y zw|xwd;8m=Sa`sez`^Wk+idd4gs;=8^TncS;Ccf%Ns2ddx6t{y2^uqnp8Ih5PtXHh3 z@v4Y6;~vMBc3yEjtK>PW#;H{XiAhq5Ie?%5KQr zX&GZ1NE=-?#WJdzg@h?ldt%2Q^ZMBjM{n=Pre7(aqm&Z@dBx@RJ$}_D%~VI=jIX_<9nE7x`WjTez+97k0V~*({97$-))(fp z?T{;*nP==_Ax3q26Y}+XMndXzACUG+^dfw7cNMg9WY6McTcWorI!<=7C$ePD*J!Ei z#@mX}Mc7N3i4Cd8>IfXO>v4|q9biK!ZpE9cA66&Q-Vd1g8R|%@lD}DDsLT?w#D898 z;Ib7LVVoVU)6RPbtahNL0zk(b>b!(zaUanybf5u)`bd0&wxS@KDwT%E$EsdLZ^Zg9 z?Tu4yDY?;}^dw@Bbz9LpNBpk68L)S?$C-K6 z)>a7Dhw*~dD^jW8Vd4pb^)4cSBj#?rBJ!iF*_3%+%HeUZb#ItBriM-j0V^WHn%3y!|oS!kk@ zl8tLzJE{Y9tkbmG4CxZZ*+-dNU6}bLEw$L|xMblxz26sL^3a)599G5G-Nw%RoO#l@ zBa~hG`YX(%4xyhBCiFCJtkQC3cTzyEx1x9>mx-0fy#uh;wed_3-VfvRqGwdaunQcHEaJa&rk z-wH}Q)3aYSoi`f)Yc2%cKELto&KbSz>TM2Ce5kL&0*)I;#e=X!BasYK-l#+2Z~1pJ z^nY--;wG88BZ@y?$Cz7r{4jJV78X7mes#-v$hWaLN)x(61f2FWaNz5FEU?X3ou*Qs zCc*ENDzUAA<~%GaqE@!rUa+sd#nf?^HEQPI-Ye4?R?C_afIJchtuA(ILfWgtWw1+5 zzk99=j=8&5+X8aB97JFxGTxd$^oZ7b?j*pH8hz?2_sP|e36Ql0hzpw4mndYrMaxVc z-}N?Ln$SCbUckMt(O9J#I5(AMMJkU$SmhsN*1ZTd&wfAC>d<>=h&J*P{|+MTTou{{ zu4~R?H9eQ}JS?qO=5;3N01u0|azcLF%{m;tn0IhiN&%smY%L+Vz)MT%r31i> zGbFF@f9c?A^5GU)4r`zI$)xpk0sr?7{OyMo>#)mjtms7MYEb@&#zY9r0H62f(F4 z^S}knaoUW*Ec^q+Q_*s+Rx(A#N*RGO&CrgZ4WNJ;U@uayBQ zR_d?DYI%9UXA zdn^B1*k(H3KIeN5eKwp%A4HX7i7I^}&&Thyk;t$>Y#b%5btfnS zc6j2R@8`RAaG-Uf@c2-4)uCkM2@|(?azRmQmLKKjbhODKxMH52rK$QTIjvdVOp?bc zIyJYKw{cFp6kGM@S^)mzovO_-z|g3@fC|;PpOem;Hdv$wILK25Mb`c50d<|i%Gj;t zP{Gou?m?Of^)vk&>FS&kct)hOToJ>3{E&0y!04aw-ldbI;qRb2-^6&=r<$V8(R%fJ z>VE_n`@d|m(4{RL3|jpygtihdJ0=@vSDHO|wNJ@*NaX(0u(=A1OPHreTdz^p@ZqR) z?DI}V7qnH1eMR54gu|vDVPze2R2^?UTYmBH?7yDA;G|&B?i%`};O(A{q9v_cTY8z4 zWAsQ5{{xkx$8hKM(ifEmu=2UR?{xRf}Z`)%sfgfwILV-_;mPbI)URO=35GJATo0gDBIpB!*~1+AT7F#KF<3uQ!(j zSVnmj(LL7&K%QB{j;Rwjnk0-SZ7$*Ry2G9cj?a?bsK8W3=gv563|6F4{u9Yh22>qw z6#hN; zE^G7m{0iD%yYAEE!F@9nU4AFMXr&(^eru54Yh&B+P5h;gM~zwM0Gnox zx&BVPK}Ny{e&rs^|BiS0XLjNmN8^g0<#k|x*>R0!eEEA^`uxHJRx5L5UtcZ4QsXJy8i@5M>BsI`mB+E%s$0R-O6ZiPj7g36ELcpnNgb;s)YG1 zNF%srypdNl|1q9;4G7zp89@7JtOYIHV_ym&fWEx(-J0!h5((K!gj`B(>-*whi0R#@ zR?~dp@_qkBA+fJ&4-Jp|mC>>~ z_5iW*lD4TxP&@Waiw_JgpXg|FnjP4dKldQjl8FN_5M;hy?qquZJ{zn z4bWzK|C^ui=?f>YUCP(!HNZZZ2t@A~%OViYdV-iC&zYT=LH|zW1HYm@Jn_s%epynY zE=Gvw#r>kT^SMb(GZ>618*p{eiGg4eEB7HC$g{;38O{xip5Kgyv^DF!vpJm7a4Xjl+}EZ?g*eF2-i7>5SeBu%vPd#enA|W z{3zcZeKCS{=Xs83+qiSt>q2B^5k1kp|2X8`*&)%T2NLx?!;5EMm*M^ah=y&Y81Q53 zV!!m2v9wr+HrtRNN>C$EN%VAaa;2IuMwcEnEKg# z)=<1IsnYY>fAA&YfU!YROtj4S@Pk!~(o8usGuJ6je_KT=C|>u?7zw0aJ)CyRpCS=! zB=dKtqcT~^xTWDfz_Z9p+VHlXDe=hnh8z;1QKP-i|kRHxaD z_)SyjL>#{lX0ixsLz*ENT6J)ZirXK0Y&ab|B3Nx6FOC!=YV02N4u`mJ>VLm z9@EHQS6s+@%cN^{%PsPwhhOB?9fwXjbj;oDfh+cZ0e`PGD|ZWR`<7BxRRdJDDK?PfqRS%WPSMy% zL3*61<*3{?l&z7Cq@Oa=0g8s}?=5H`%*b3Yry+0UQ)HXvNPsMDSxH$vGCuUUp&;%| zjWpU~w(?@zwP3)sL-W^Bb*vDB004w42&}If-KV4tyveC^)pn|1$EQseW-ho^gBf zR1kw)*QfU#^t%-+x0X+n9tcs``hnCUBOE7(7waa0p$tvo93QuWvQ^ zkM`SI#sg#P&`;W}iD_+r%dpe-OHW?XaTS`=Nu{^5p@_zyz~YGY2LqRCZEnGH7$~xa z==6S0yXHw0&@_BQ^k=wWF|uC>*>gvbLDn(W(Y5={@4m1fx!EpzyQlJ)(C9ZIV&;OF zbWn;6(RN9BEp#(H_Yc>#CJLSlq23y{x#PWG`1;v?5r3Hu5N|^{vb6TISUny*Yu= z`Gl$ha>kliLa(X}*WP{cor`RZkh6Blmhfv}_V%^6G6&^uZQk-BbSB!(PXPRMB_xem zIHEMFftuDhnZg{u=9hiK#vxh`8D+ju+vcc=bQj;77I{5!Q(>+)DN`Znx9;J8Z+!`T zG0sw&wyifzdj0Xv;RFxnY{A|1=7^=7H%ssH)VDfpWG-|B1hC3lzo+}%&i7;uj{wT+B6#uZ7?69=PTV*T zGjMnGIPUtLd#o)6Jy#1Wvha^r4uyhX6=eeu&OrTqqssAzQc;m=wDLd*L$w{YTQ=H7B;*L zfEdJa@g?AJA+*8}fOK4^@_*d&zVJL%>SrFFKjY5Pm&8lH>0lBqLFf_Kg%_MD z%J0!>$4>U^GXZqMea$Pu0BS+M)O9ite{~tS1q8u?d2uage7JjGZ_qlhEiMcJ_z%P9 zeA{G+eBw<)v|?gq7|BEM_u}gN4^hzdLRb9)ETC1pKR0%z{lk@@Qt|bY?)bKTl5nI* z0B7mx3U|zA_Cj2cz_|t!DbnaY6S@$JP z9H41ZmD;=o$Bg`ZglRYT8Xy8u^^24ZH^QED)EWcnoj?jLDL!P620DfQ{Pk{sgr`Sg zV=^DsNd$O=Yvp9AAB!g7J+1yP5c9dnNZpAnk1%72ogvml*b4v5mXhPo#Z`1KR)vlg z^#mrTZZNKLM})w~qZa{h9P!U(SgCq_GbSRU8wj~GseGE{ds6p>nTO%A7dJK8wlaIZ z{5LAtbxQ?3PFmuN0!wuPX`?9?W;fjgol!yW6s3os@RRcSLf}uyC4xL04y{-9mACoe zVmu8sFY}k|Hg>?09jd9bl&<&d@v-Ht&mJ%OLHkVEX96>k>nDF#U3Yqu~~#c(r)# z`}tna^;AwERFGKk(baS-tFLvlRl{A8V1pxZ$a@x6qlmC%7Ff+R6?r4244PRs5J1KF z)l(Al?9d09gLTka-&kvOQbdY-pthn^(6@V$ZEu%O)!DBk<_}HVu6#FNl>?R{upagS zmDc4?vi0V>o;w;6V<&JM1+(HCO8WZg#R6P~s~e|uXIg`9+a)pkpxUBLD9Yt2q&b@F zuasEAKPW>BajFl}l_XxomrPo^R(&-#tX}Uk~)u$SXQ1^G^LT zy?@@e#!t41In#aX@AmEQ*HVx4*K!ztdjg&OG*JzJPICHgo^vpz>;!xzN$jmPoCDs( z7~Lu*iMI_fjBD(dLz)K-!F%c#TA3tAm`(becHOKQ!sbWZ?z(L+Gc}?ss6|@aG=L7A zmIePCYB2tP$qfR_kyi{zP~JCsPoB}F{Cs*IqeyiCa<$pjYG}>6%|8PUp85rL6sBj2 zE+sOw0_>TizUT6!=ZS^tYxyrs9b0b{&obq=wl;!aLoY7gNLjirTpU#WkbxEmY=+g_ zizaCFE2#ms1izUoX(?9&+L7*m;h_-Gd1BG*9A5oCq4KK=@`vBIh`_*5Lw{ z0SCWNbgMnp4LSPOVx=3(tf2_LtoO$LAUd}Uof|9PZXy6KYbckjt?sJoWXn2}<} zbA8@`ObPyNx^QrtvP(llN94Ywh@V)3NQK_Zm!wO|KM~5%u%WmfouYxP7hNBV@>sH1R7?F0D>O04i z4As!5z{ffS-hUZdi1?H9YrW|DANb}CN6z}|t)**1oVoWh=fP2HdB=|q_ui}t`ZZnH z3N8QrxwreAFgZyo)7QqK{~C_nbNy^s+>1(sfclYj*)Q(QcyHc|fPFgJxxIb+y9zU- zMH}z+*ap$F1hjiJpcPj%D<3K*UjyO>A2pek_fp*5v_LVRf{~pYdbd6LgPAHvIAUy? ztRgY#S`OvK$q+j9=rBmiZ1d@%f;Y*(B(Ge%@Hy7}<=~+cO0M5d`>q$ByxtOxyf&2e zIKJv)tw!mAd~3zb+gP2cL#L(gAF5uNc9aiIa?2*&BLp3HP=y2=GwhfEiKQNQwW>9IdxUOu<(ZoFYJLX+u# z+ks|o@m%+6%C8o!&`;Mz8?SkmO&>+7f;f#~of~}+VycfBD(9>_@NMT`{it z^XrzZoyQ3$hGYXI1vM3EVju6GFU|)7U7_i3=tP*4bPsWbNLebvWC`N9Xb)@S|}fvFr{xG&`$?Ci?~^csKfvlBg?DOz_TDa+{9 zz@Cp?%j64z%kBM&I>zujzI@pMsu_ZhH>lTCJfKGjju3cm$!`$bfm?b$xtbX^kAOT3qCM z{00>H?|i?f^q5b)Icruaxjm0E?MuS7{Ld%${imBQsvcs71Gf-tudXV1)c1cWf$W3M z@FOmd#C^XE*}f~d{wqU@b}#0`;o0Lg;O5TmY5tT2%TKCAlmu2&=H_I${W71@*Uxqi z!t}b1>@fM}VWN=3dRY4hEhk)y45v}XUo^Ncyknwa1lINQak~9cJ^&yEBMbHj2Bf)< z0v`(=eJ#RI!au&TSRzJYc0R&S%DwWA5!(!Z^vvtCzygo&EOAkbT#H9A*8p_GB+bwP z&{tXi1*>VjJ6n0COR23V8lZWy-%~f&9}5NZI&BYl{M~HV6X1sf&<5I%Gk=(=Up#ng zDpGuJxuTC(+Z^V#;Lq>(MVY-P_IWB8`CnP$E1i>BOS7kq7UabDvZmm`Y^Wv#@QUe^ zdrc^rKevA7Rq{)d^P%{LuP(>e3GX&h+fNCxBT*!pQA2MDi|A?M`rEN}VhpHrx+YB| zDR*{B%(f)108N)wV2s;DUr!19Pu`-J(!03_ggSg30Ka!K-^zYzq48B@|5;NOJyT-{ zyKL01_fF^Gx+g!<)tJB^A&kZ~6!KKrM-6P%O-{W~K}kz2tutznGswV+6OJJ86Zu{y zm-jX7&ncSt=M0)68|=XMfuXMTHvOsPJTm~IFErzUcgN*NBJO$t%&)N zZd=UYHjCudDUG|lsGJJ4BFyvPwwhbe1Z7(mjZTx;{ZtH@47Gu?GPqCSgKoryp6-7v zNjVVw&)QrpSMq+q7jBgV2f-F21QNu6@cD8Z6Du3?lMn6HUA2Pzr^ zb(q#CT9?qrsVk9)V)nvATpxmb#&HP@|0ISfao8>=3S4HyQs+|;R*We>QayI07c@>O zC);uNO;2$5Wv)mZ+vFY&;s1i?#`wI*JG99^A*pGi_d^hMKS+OuI3u)JV}cbrC}6Mz z0UDf(((!khQ$UPp^oJ92=e32{EtS-ryqTZvu3J?A2FHy;ju|aTQW8G(>afU*3z0dVFui z+OoKD+xd{8-jkxxg@e4x7#rZ`5<Mzgmn034YpWRNyeLs^`LI+`CVy>;t@3!ZJ2+K!~=9U3qib&c7(da z+qoQ1U$5t@KeD6Ig{&#i?90dJ6OX#g4Y5?hyQIK#3n7b!FU_UE0O*1BMRY!S=lR!O z`w~PtOLjn0MviKFx`!%!K;%^B(S)oy(VEM52E6qfl<%Az(sQpF6jZFIZ;Qi$wh)r1y*6cPe&;8c@oHNsxTWyl0fWe?qnxOfV1AwHHis zEwRLOv(rZGXY5kQ4zMwZzf8@T05&xZ$@OySMZ@#xLSc2#Y7OESV8Zk(R7aV4rlzqS z=ke9jvgM)TZe{C&R{Uc9*;XOa#H#JD%M$UaUIl}N&M`K(UX2}Xw_LM6F`oE)%x&kV z%(zK|TpP2OX>*AA7W~}ggA?y((HjD_tf6A7B$_z=t6|GmCP zeDw0Oh+@MzR32lcxQJ_BO&9`AR8a}UK=kfl-R2SRWoh_SHdbgAUhlQ5(bG>#XXQPR z5%8)Kv?GZ*pbE&_tGfhv4r-Z*fy3KsK=`_u7bR5Q#&6K-<D8Yc^!;IV zDMo^_;OxD{4gRB~L9l3%><8PMq5 zo}f|?Po$;=86~;S16#zq!isdhK2*tcZ(|Ozq z#J=-dcJq9lXM#%cogc#|e!i_|xj{j#{GI(9I6eJ>8+|@p;j02e%34S|JRKZpoZ+{> zrNd-wxtetNBm!aRvyu#O_$nm9% zYJ^kke9Sl&=*K?f?BS%$Ql@LswM$jm;q)o=L(q#QRy1UdWs6deAEzo?V>G<38>oiqAErwO{Y|lK#BZ4WgYU$p*ay5(J;p^~nkX&$_3xd<-4Ln->nw zetR1fc@&2-5kH`cj*$<>QXffa4!x{@huGJ3$$4y!ze1xTf#7EkWwUY$pku&3M%xfx zIlKhAmGu>BCLNJySQ~6WS^0M?*;7UIHHo-?La9P%_e}BhDHI=SvJ}pUom6^~^7w$@ zX~EwSm;JMR_m?!@FTS7+28y$Ale0d}RRuT$rW>SF?)*ztg9kk`nurQ$*~0Z;;|$-B z+l1h-HnsYxV1&mXk8l}XkGYTWZXu=}1LM@)){~ug}{!!q$w6k8De5eLw=)9r6{=_fh zQsfk-HpW7`cslfW^s6Nyar#1k5aOr!&%@@aj!Sn?o=eyL{oo&pivW5-Vl2jj* z6hZX!yv^d(D4}&hm@`W!n941|p+Ch<3-e?(H^Z5CXS0SBhkkF#4u#(H&*#=F{{#F9 z#hflJXqq^t9tf8j;zl5Q5C)>{Q zZ%7--;HO^%%GYhlRWR38VgLie8_I1I<1Kb&q<6c zqth>Kg2>eq1$OWmB(mljd6eVI4a~Tv_WG5I8DvR5aanOgbm!0KitcDAeb`?8li@ngA*!W>+=cJ#YX8s;h||Dy z+iovkV8A?R$PD}F93a56dL4j*PF-pWsSOR(0)?JSgTI`_9jz1f?Y2(C56gsf?T5+- zURsHZPTu-{LOUqs)^07_xKybuy^it-qp#8f16gqjW6 zjiUIdbzfe3fo=d)lM($!b(5P4*}4kNJ`PR9)0w6K0)a2kFev}3t61+-A@}* z{x#eiJ*(bEw-r6QuXg!>oP<$}oPooMk<1tl>&%bNfP1}Gi}_{{49)t`&rN)WQMmNe zCw)rd?cpws&c=rb96cZXQXjEt5c2!(v9X0F6?QPj(LmXxp;3LlrT`Y zgW~02$6a?Tu#0difx98WbA-1-iP>yc28m)-mBD>>!7+0$7H?DpoqcmPXux6Y! zSOYT^QuJh++M5S57k%u}n&QtQA`U*Yt=6P-2gR7YtF%`YsBb>D69l`lRlClBPXn`JfjfB#hZTn_r>Q@#_@ zQU|L39o&jHd)68VFfgR>nw;ZHAeyIg(G#^>DXlFar* zS6b6X;S$=MwYR!bHyag(YwQTXxTD!WdDGZ6$T9I!{4)B`q^~JsouOaGUh@mB*L7Lr z!IFbTeux+9j%@*(o(rG1&TCym zKH5(E8gYy`eiJ6N?VcEN^2|)7e3VH0$GM)^hJo$FZN=7)eGtGgeYw5LN>GkzS@K=H z!UXWYUkGx49trVF;zw>U1@@E|{7aBp%3vNvEE9L@;gODiBF|Zc{TAmMMu#~on3N6t zIl=*k5DxkBDHeB<6e?4P`Bd_6*0ICXxt;s7F#uCIC`QAy>7K!LBmCR#ogzf^g@kZP1BY_VgraO*xod zxJQ$LVEwaErCgVfZ3K@htEK9=y)+`Zxa7owzQ zZ<>Ifc7ul4wA)q%<4dO9HUT#)k^yWA-Cv{{-HdII0N%1m*R6*Kb=rhegI}w;-M7HG zGz1#9yg?k8Tfa)=ud)0A<1ET5G->DC+YL5gV$Wem0yC=LqIk{nFd60)fDiMQ)O!8} zCH#ba@bb&oR6cISIn<_a=oqB*O5{K<_b<`AxreN^ z@4~b=eQR(>FvFU42DLyz)Q~H@Hj_64l!G;q!TIus`BsX79H6-X{`GivW=^Q6Q>M{k#l$et`$<4D*ND zN6&0zA1vJV_vYFf>Tb%X=T(kNcj-&3Q-L6MN>Im`O|oc%Fq$Y%_mKM9J2sQ+%`gyE zrQ76Ml)oyb=SDur0NLhEf`E_jqDA*|N6n4GPY2A7t@sL_Rjk3MP6tmby8WC=Z~SI= z@@ZaFbWgvox?Q+}Kwo=9NB6b%2ZXfL)2P#J#g`&8A-oMn?K{1)_4_k*9`8iCqe4PI z=g3!oUV;_7?A;SW*CGyX>*Qc(4|)%J;%6sZsf}7LdtW{~s~N!d1Vb6tCVCjc8r=_; zM+vgoy+VS-0qnHwo}Ead(RNMXP9o2=gt}csnxNFUtWo3ZE)Q@wg1ktcpOlrk-=1#f z6OqaiOVX%u0sqA@{{?~fMWEg}(#l{;sup_E9u}tzlNjH8<>dn1H5PD;NDhyo^i?o_ zDYjZilVWcz9AP=fTozkRNm+Q?=GCfUAFq8YZ6)a0y9&#y(2;$jGOTR9yQ*STZRav? zd~HK+SBUP@*slla$8brV+m=6_zQ>$a`-c0FF-buzk5I)WSj0v+>Dt`~AztIzx=y`= zSX&CBfZCmcGK8mEdXLy|rKC`JF9&xi(l2vbx1$BM#1jK>SH?%Y&ve|HjGk~^slg~o zv&N{GBsc|B(^SwXk(We(d1D7UG0JGhTVifq&xFIZL}Xh*WVbEr&LHSSFuov9YIOs} zO6G2r>8&3KUij^O{3@W0J@-Gdcah(@MIrDIFJb|9DtA9tHMM$oQ~|X^avyXc<|3;6 zM{62}F4~4Y)M<_d2}oR<6-G3_`w;sdpIziPIV26A?m8HO^(#utmI)-_0^Cb$ zcDv0yOi z6Xc!2xV{#5fPysLfZOKE0#i95X=yWUr3 zpqL<21R1%x^E|4D=Byv@7?g5d)zLn?1Qt}Hqf99+%h!F0-jA)TULDnaBGr_>hs8*y z&!zj|_B7=vJ|O9TiAOXN3#6)M(LS1?O~?@&u%!vrGtcd9YNccGT2AKfug4asSqb;E+Bg?p9Oz z+u%FzWf1A30sVJ~>c<`D-x|3tUQ_?kP|0+9JO!d9f#)8y$hcqFt%_7 zj${gt9`x#~n;Y02N)N1z3qb46;4l)7*$cB0Dw(6@f_delo*UhI=ddqknz~4x z8M<%@mG0=rdxeswM1&I_pFjSw!AyjcFz245V4iUIcV$C}_)>J?;Sl8{>|OeZVCXf)I8F8MM0d69Ft%sPR$wY*l{A9#~9{QJA>UQ1B!3xriR z0y>VTU~?P~?D%nLZzum|5?aJ}i#Qlv%1}4473F^u&TRD_;&x7YQ!nG@zY*m{kdGK2 z-Enmxl;b5UUWi8EK*#&Hdu`?-KX#o0gI9-h17zxWW6DQD4paLn#9eq#(IT}NGx`Y| zDZ^YO<`r`%sp-}Tb4Dwh<5Rtsi@@qv+t@L79@SsFo>+VNv$0`4;kmQLzMzDSp_{s! znLAJ~ogTf?qrR3sGhfrX_HXWsThi-pIj_?tgxG15Bh)s;u6smT5C&bFS08;!hXRU!*HaKuu_yQ6oy;nMb#|v_^agB zJyPIb!aH8sAJ3LXeRPV~RgE!VTg-hLu2B1R@i%1i=(wrxqCw#F>?PE5`E#}7&!|89 z+Rt7WWnSR!sKY9fjN0G*`3IOb?G?KnB5S6A1&FkTpYC>?=zbGD^xwuW>Zesg*G~DT z@AX4Dmmm5UevI-6Y5TtTcIpzHe|vTwjIzny8`f6a7jgM-m`;W6sa*i>@k2leoz0Iu zL88I$V&73Skifz%59*akm;Bl%9+jszf9Vg5cOq`Y)jey)el7R{WJv{*bGY?!_+;%j6!b0=xi+W#FxO9Sva1^(QcZWITRX`$A1nJs+5ZkTJSPhJMUV3&& zcdz5Gg-I=Ev2uzd^P-|RlH+x(Arz?B`=klxdF{5Zqdd>pB zRu_b(rloFEwkH{B#Cb-&9izn^z~SJpK?vNYos5a}s?mJnLJ|1ps#_vjhB|HuN&f2$ zjc6=i<8BCQrNM3LIg2Qs>v*YU$ZXMk`EB*&TJaEo0_V^oQP;J1vmx*o@ay3LW{;zC z^f{+*=RhrAcUFNe9qh~gZrzpFHO&89oO7)`*@l|5Y5v8$hH}OS2AmsD9>l*<1WYWi zz9@{`lzbAa(Ra3Y|DCrAKL@%W-LbxtlXi+6UbrnR2#xdCIGr?|;^#RIw7cEiKWYoL zJ(WRWwHNel{oB;+)jyNtr66b(n>=y_u#PfRw)r7?YqcoSc)ILy7~ zbfZfm2mio{wb+DeTBVb%)57m`FV}+qJZRYCk$1-CV4|HE&d_ z-QF%+%qJcMP7MAv>W?Im9O6X*?-W3{wHoK4Pv&zm0Xe$d7*%2^F4&a;WHYM>wG1Q? za4#D(P?vq0kTd$(1gDiRx~o|%E0Vx3F-to%ByXry@ za=qU&0~3i{$Ra{}f`S<=GyOX3#z8M4u;@%9f{6}wrmmBj)gE{}_uo8At#n{L7?7yH z2Wzej><6{FSsH~7;)Yf%o^sw+YuwlI*6JsG{3EVm&L# z3#S45ptO5j9%=huvTMv>eU(JA!Ip4(M=>&JUU{)DqL)`F6K2M#nd(S(41n+U?XFl% zvQb#vm zI=bd)tr?J4%=yOdDybhqP*WVK7K8ypK(bd|PFiZz z16Y8=M3Mo{?qYM&q}nj*uUnIAbHKgeyJuj~i!TyeA$A8YWfha8$HdaVVHtlfe{Onj&9t)4&(k04D5yo++u>*a0Tl$W++^6Jx$U+}e`i>Dy06zc3E>o&Z}Tx*F6Zy;jpG(Row z@|L}wfnRT_%0s_0gvW5`KgXJOhiS1VC|G6Gx(=}k%za07O-1#SI;}_JdXYgbC72c5 ztT=HC;*&@{gs#00Z^k+1u~+jQmoIP?t3o5TSDj#e9R@@*@Aco*eYlBT51;2*ml30h zaNYfqW^EgN)r!Ris{>vRZ>(((eaxCvLy0s71ivfNGi86J**D8QO<0q#K}2Q>r;mh> zIf=Z*7k>>!_f2Avgr9WW0fk4EVum#zlXwEw zWiXlg*b(W#=+s9MDFH2R2x8Tt=;jVdVs9_=A4ZZ`#$ftNg)q68bm(0;Yea)9nf65&_(x#i@%F);IhaU0CJ5W@8hB}d zbXJRtu~Fw7qNz16wh!7Lmb5gSZK-@!@)q9}Mo(81075h8kzK6>)gkxrybYbJRYNY| z0?*F^%wZj9bg832rjg!_KbLFI0&XvreMt-96+50y1IA*mm0C4Nr|wz(IdL&c`#`8& zXR}^XeEGc$Dt_+_-o`*ibIHBo2Ho_I#i6K8g}<+OW>N*?&)GkqX{0hQg{vH3oe$sJ zT>v4GJH6XK+Kku;ih^4Pt(%x5+EwDep_eQIg&TWwIAiZdI@dlwy#aegoC zQYV9Hx>!f=ZC6_5A_-RN(o6k7Li#bdeyD8rpb+m4{EMGmJ;4c7&6w=*G!FxdVW0>` zB2lzwGu(@WeAnNKrlKmz71VGD?@6`WN|M{t2qW&V2|ss6{~F>uVKWAKl;LUZA>-eY zOvPcuFqTjmo*%?~o9I_UmA0-mg!d1E`inexBw#)PMiPpvr*JxJHYBfGVKK*p3leQr zyWH{Z%1IGRHu(T_nOX?$jKfFJ++(+G#xt*bGCh z<1;A!d8xBouZod5rwHok(F4V<$S6k?0U$cvNI0IrOej(u)xN&J*+CKEq}zs!&uLyq!td6 zT;yH=0@AW8-^GyrfA<*f9RACJekQDL@0`4|@96>ecRd_|fF1>**ErtXELO&wD{XA# zUEwfg0NVZ08(q)Ed*O=MFcbUbdhYEtr;+kFT=h#dCmAKzsWL10)P6uviFYOS!xxBf8A`OxNo{uxdJD!wrA>`Qj|dmjjoB zupthtV(z{tCCJj!ZiujYM!eH@Wj*oTfo*|I5HatAl;67*FRz6Te&uAW^Pg5`yJeZ} zujJ58G037S2nhz7iaoTcp;(F94+89G&aziP>*}~gSIk_sj;v4p#AL;~@i{s})*Bkj`)MD2?HPc{# zSfr9_S$OKMx%#ZDRudmMY$;&o%&PO)-uFXEma9;7O9!Ym{>KrFz_~l``639q1MgC6 zz3ZikpAulXxnALeik775nF6P@iwoc$W$#2rYkC4YawTh$ZyD2lz2xKg*gYcOoG53A zTRKP|>RB)ow1a-b#%i$uQTiZ)*(7tBGuu=l`wpO{guhC-Y<=cG7-hWqe#+Phjo?KiB~%4CE~0U0UWalDm=<- zD>(`QQwU9N*<1*wy&856e|Y0pm&;`h!0cuH<*Q|g{9JrZ24ke)4dSX@iZQ@ z6;ki*sG@e;C8jFrz~eJ54aFZ~?WB~JDh);T|5l_LXLBmm-bLsE zgyyx$;Z3E}`yU1V8o4UE%nOVaV&H$hJh?MFb?H{#l9ouzO+F0536$K)Y#|mhv$*bePJju# zVoE(TbN%%gM-+fP|IuQ7hddC+01r16+rK61UwWRs7qO>ATF%>sTL=`A<=?L|+Y$Z* z6$Eb+4XPT@->$wVo$e0l4nreWc9i_9s%0u*)atXfupW4t6D4I5#;#o3C5?_+NZP-3 zeJ;HO$Nv~q;;s3)F9x#@j)Hk8^qKJM%XL*6(t|JY&s*XwAVHJ@B@~iUL<(KR=i%7> zl`=f0iF;o9M)pT?vGK|jy|i1)VrKx4#f5a?b)m@Cz}@aj8T9t7edVA5$I&g8d{x;zJu5wm-Z zXHBtgm?nP4VxhC^p?-SOs19)OCh<$lDy%{+&}zZy|Btcv3~F-y!hQu5M5HKNid3b# z0TGbiL_|cIWh)|8I#NQfp$ieI0#c*|L`65!dkqkJ3rG)02noF<1VREKyifLj&dhl~ zoS8Gj2bjz-8h;0+K0rE)3ucH2#LOI+<*3#(0xqF z(8i&>X~@%tGf6_E0DyRkC^uwNR$FI;-&j-gQ^C12C9Y^I{M%BcW$80U$1PMITCl}7 zbJoPix~7fOfJdn-QD4TepT1t2=587P@eX#h_pb|wO-t|D34QnP)_QBpxpXCWe(otN z#avzR^OGME3Thr1Eix&B5ny?cX$^>LObkCl2>Ick&3!zh25~mloR2_O=J2}5UVAxv z)ks)<<3IrO0EU5J4&C8Y4E^cn2^)n4%(^zeGClB4vy=#@=5SF*`qSC7uz<#;s5K!X zYA+J)?#7ivMHLqr(Vy($VCasgxz*>BVpq!l@zlUyEA2hwE5Ubar!}JbT?e<$3H)N6 zQANDLIBrF(S-pw9rUaQ1w~f74&!Y8@Uw;GL;+3F@a1g)se$pCyNglP>o2Af4D-k*p z2cnYP;1|MIqcL6WzVG+`2-yZ)UQ@-b>G!nFHkG>2-T{|%7-wolQ%Jv=)KA3BW5PN1 zh}T}M9@i$?kIk`W_cg=TrZi9Ao`%?*)KLHrlFiIa>%y8;OEb9UV#G}Muh?p}KofP3 zEl3Qu`Nf~&`MY0@{h*d5lt3i4Ujk1hmK+NKz|K7sb}@j|n(STBz+i|ve@9X$URO8u!XT>C=-@IG(vJ_2Hn%XQ zk0@nS8&9!D&!x9ri&k4Vi0=0_Zb>SX3EL2Yy}sP4$WD?BOgj7HCd8*nD0VB03E9~X zqy(RNG6#v^#JvjKJ`6uMnG3G(8jyfmB9A)0KgqYb(HugU`9!rC&)1H!#+w=9zo~?j zW9CI7GK4JN%H{1B*RY=XAJ4}@PoJLUMVnXI??j>}74jabtaiF@)X<*F1mrnUJ8bqW zQ7$h3uqasyC9dr@I2(vSA$O!~x!V+!(g})H2D?-KCzoa&haLGzdd42}UktXB0>eLX zTJY{|SxnC3zfdos9sAx!Lv zc&6w-;vzGzi7(^-=#ccMol=Q-S&~6=tde$U%;dMW5UND_&hC^Rx0zOIVNN8bI5?91 zW>z? zkC?Q73xZG-SJR#sSe(puvm@Qbp+rUpwxWpXchl{9S8d2+OOJPJp<<)--klOuWzeC+ z?dYpBAp-Mk(jJ_t@j2cGUUWa1(}cynW<<$Ox01VK+#M}+wD8T#V$7RcU*3-fMTZJ2 zXEd7^YJN>|mX8!T?0PLyV&}SN5d&6ZI{j0O>vNX6b7eA@t=bLx;5%K`fW~ocA*c0# zGC~IZ=3`}Q$6f21j)&2UL1{Ca0)OUyB!%wS8vj!MGM+roPm#hzH=gX36)V_?Iln~; zsK+Jb6PDp-5eHM~S_LB2w7b2G1ly&XaXct-bfw(_#%WxIQ_`=sn)624b5$X#KpGaI+oL)C*CawCx25a69{%jjR?%aIwk@_@UeNhNl+gKGA|N2TQs$ z3|@Jxi_&f1{4af&LB!|Iu)O6%rM3ZZkCe3>Wdlley;YLZyx#p#?SPHtv4w_)deHiN zkz^j~3GA%p0JDXpF40U45OoxJG+is;i-Sus)VPagV!4*DF~K0a|8_X!6^FJOxc^>~ zrVI`U(~#9LZ{3(a5j8ELMQb=lf8{hU)5yIJfpp6*wZ~F2l$SY9EU+A0$7r3BX?C9r z8x^d43uoK82v}*4Umj>j1Kt--K84S*t03-}WMTGIJa10-CM}TSseRg1H10R2wGx=1 zkK#>kJPw1zm}u^K^-}HsAnD*#rfteC=uS=qBk2?sjKWFv{qZMtBrPggk~)Siuc^R; zJ1o@SyO_UHcjOT~jEArzD7^`B0w?)$ly$Baq4TR2!c3~C15nC9d0IaCsfayh8K9mx zTzye5apNdObu}A(1W-O8w7i!;Rp$n2bvG+}aKG;3avmWM^)PZL7;D|aHHZd6NdtK+ z@J~}_Xi*&ODPi08L$CHWz9uoW0YJ`{Pr6fuGoD;LhAAPF#c?eQE4LjfD-5V=+oFIU zW3(U=J0|lseESs~om(2i=rX}^Gr6Hvla`y(ydhldXqVAo|5Jid{9J0qQ@0<_dz+9n z(7E6uP;l-2`-lHP-~7oUU@>8*Igf_IlClknA-U&{%CB~63W%kJK8lv65Bg$cEnc%Q z)9hZ$?8RQNp>N}eoS}5-=7dUk%|(8*hRtSCxn?y=6QFO0o0)^UI1BFZ`%gaYDY!g3 z4K;!M7Z7Fg@z)OMM#VvrW?Lt9VNEMgWxrp<(4uv{+ye;7pbKn-3k))Q1&u>&YRfw7 zfr>GF<$=6Ew#fu_KDFlgv@s%-fL1gM8}~xak?i}tIyRWtv|pW!2@v)f^}VUMp(H3Jg6hu1zP9MS`{wL4+=+xl;^8~VfV-Ls)$CO5JPNN}p-Zkz+=vfOv}j4r<5XI%^_aY6D?t{RYZtIWnJv36sLUQo5$3 zwCNd8lgnBWGF2*0_4Iw)(pe9@3BOOiRUfG`2W^0E{Mw|kg(j=}RIGes-S)^mcRCv@ z!KV2Z46pXacfuG|3xTZM5YwmP4Q?P>h@)Nn#@EfZ&K zrgyeT6zkV;@VU1es=hHI9A+gJ-GRCF^Q~&a&DJpFr^AFKIH@T=gHT*zdvzw8#-7VK%GK>>eb{YE_ z0y4I=_(K+#`*DihBWS9HxmO1qH>&c^Yf<;vubZeYZNtNX%rx*BlLV_i_2?%|5lAY0fGHfL@`gmg{R@J<4Vqm$3u-*o-<4k=oi^~66BoBw&BD(V zA-Q3=WXzYd7&KZacmanIK=GK&&nulPE^~8JKbz`p2s^QY_py-{yp~c?|Z&> z=hAb)eQaVMo|})-YV&=0k~T`^)tE|ME-;} zKv7D8`?%M%_arG{H5{|*24jFs937R7k_-YpV9%6Pf?OyEuzFO#^O^UR+C3FaBpPyZ zwt&;tCiI}|P{GbeWha^+1TbB9^3?c)kaKY`>K;reycKm6r$AJnahWMUzV`Cf8;eTh z`CpY?f^q(!5wkNlrppo(Qab$fY^wp%5>C;9&x{68UWL@7CxOD2D8y}awhyN|4-+>! zZoNB6$$eJ?GzsYVz2If9!4%WKq4MB==LQ>861sk3dYyOr)Z^?UD4idZ1&Dk*YH)EU zS~>UfmlB=SuS(-e60v`P;UwSt7}q8s!LAHGk%5@yooYi)`+80y*!kTCXOJkNX%nHW zLxoyxf~iNS9}@V@x~iM-j;b6+1FX%%0W|L!Aq6A8RO?+NFgJn&(Mj{QpQ>Q`PFUH) z5khR*TDY?~1{0yUi9kx>dVAL;DR&{_v2i3UDmb_YyRFZ9NG=!d`BQpf;wVGN$vl4qb}wG0wn!mJsIz42<$XmSN*Ixk@Qs0Hl%fv%Xy zy@vfvHFIkF&ga0OP12W)lNYRQ8m0`V^Hgmahcb+mcitLw2+9L-WtJ< z&586lzn|VyZ|n|7`0fX!j4kO+)UZlWhqK~ZTJhoVqfye}oe&@CdE`*OFWN8nw?f>R z`c5C554Mj)_t=o<-$aDwy(R}1*0s^YNKRIYK>6nE+H z*YDZwlx^lXJeYvLw0miOg0B#9K-rZVlVzzKhF|7 z-z7|wo)-CY!qqLoXC{5YVNDG;iSHGKa07R>rLPiFzI#NUf4rajk8vwk3V;9Av;&%t zLxLr`^N#H11Cbe9uSZO(;U`J2$rd*#)skuHtgMqUDYv&XMEwZ27;`Ky7k}<1wwLsg`0+GO`_OU(-$gmP6Eu#l-SA zy`eYQUZsQXbEAL+D%9qnh+*Ekw5O&G@338@nU=@qmMNa^X_ED+(?+ep39B>TOko`! zyIrgXSAhatph&HUjN|#0oa;g|iMc zzkPeHS_2hp-_A%~c$}CNOUo-w_r^?k@?rFT)39{%jPi>hgavlY`*mWH zI@z{-6F-*~4_#5!?qMga4mnj$!lRX<^&*SXEWAKoF?>dB1{Z%wMENLgsDt6Q%UczcJ>@vJR&q1E0dZJ| zPOS6Iuu-2a43a49Wmxn35mY?!Mdb?WG?SqsvO245w`+K^)H^h=dPNh`D*nmBgw z62nS+gX=zp=9iDfxvV{_BngFXSFPAeSMQgU1*5$bAPwX3!vU?iDT%68%iA4Rg(n zw7hUH&D9y=^z`NTa^=op7PXHXZ;L_(46UDWk=6^rnRjASw7_raPJzzp1Wij9`k4Yf zx}dU2qGJ#0zyYC(r5ZJ*!1a?0;|*U63@@4eZv3P7S8k*^j+W?aR6xnL^eRK&t%seo zz;fNiv8h{86@SRC0SL4N=jxn^W*;ub7aZ7l794I*s(}ltTe|E-!*8vr*s6H(NC+?y zz20~ikKDG|@w6AhdUQfexu)VI%Z^`4hXh;2K(@5`pz+^&lI8b7N}0Ld9{yo&IGtIPyuVd-%^k*7@7;t z*?yo5KZ;N>X>SK#msol(Gv-)!_<}f^NT z>O_U7dpzOPNCNwsCeRwDuv0dUEp{(SZ4bTjpnv%a{fj<qOt1bg0cR(4&Qe^-Z3 z-xm~9+x}8jm}l&@RyIAQ;!tNN<7k_dvo$ogO&|eXschpMgwq#P zpsX0k@_ACA%0kxrO~ATi-aZV@TXGh}(?AE;WN(`H+LRn({JQ>o+?Q4zYSE+;QnZh1Ajz=W)R+BF^F02G~~(czAwJW>5L?^&aw(BjEHMdCP zB$P7oY!O#ca(d#`-524kasVsWvRu_JziYXFW)lwibegY#Dp%aC6cszZZ z=DB!tbtr3pFK&?+UgReAz6eLt9Z#NLHcDQ@!dp8ap5ql_hkhTWEa)@|;g`%wy>YKI zn`>W8*O=ziKS6vXq*8l>Ru>jk%KGHyWKuXZhh>n(!A}uyrVDrOQMR*gY2sM&TYp_@ zYm{a%oCgexBFipxCQF;=J{P9DFK&Czi}JF*Mv&?~Qk8feCQ=`CO`N-@Y3(=FtBA{^ z22U&PSk`>h*^RQ6JoRBcnCIirl$Yaisgq$ew)?Sjx9xE1p|o@>vZvyPzc{1El(T$! zQJ%YpPygc~rr`1ZLWB7N4cSb`4)44Og_5dP?RYDL~hb}z{^C$I2q4?Vg3KHyR z%H^tV>Z4lQfk*_Kv-XN}A8Ut7_(MUaM0jXY?hH{VS$#K`NZr*Kk7Ng+3uZe)?mEygXwkCRoouT+Hnz zqh!a&vRZz2d_vj2btyKP@!ve?jow`zvc?D7y1|cjr@~53*S^J! zKJ6&yfuW;K^7*rF$&C7(NDHkc=YV^j;(eqhaqV#h*9QglWg6NuBKmASnS$<;{rG{% zq%!GuDLwt3fG zqxXct1f_>L4aZ2FdDkW_@=0J%Yf%Gmm{((ZpNebBj>+O#1cdu+T__H26IzD0a0YJ~ z`MAA39Z0dWFW|62$aKrVddJx6z#RQqlS4B~y#wFeRori`T`>2j68A637hp$fo7_Z} zq9WYk?5~3d75X;d&N8!t5pF`KYd19deQXdSic{eO&8cgjDSr>&d>i&gcgXprodU0W zcS`cm1MIoEA5*t{nQd@c3v)C%w&PsyJ@FShrSY9t@7rOOF=^G`L!Pi?#9IarNwFDK zyP$4HeNP~!8Cy^?V()SIOfjxsZ=6vIxql3i5V(q4&?W5{jA>_dazlMrDK~_ZRDdpbh^j}^~Gu;UqxZz=C5xmdN&S|l{7y}h|H5IBqz@pJd zXIvqz8Fl;XgQgC@jfHlI7y2Wi4r@7tyN8;WHbYH+Hryg1sVJbRT-ud+T}!=-9uf=x zE7zJ*TceuZvS}fB12WZb5FCB*6T^2CV#L=U90f7;-TzH5Y*YA2EDIY?JSbVy=&)Jr zy-l@qlQGO+5Y-P=B4P)uR{WG@x6BB0m#Z|1!O2OA<0Ag<{n@TR3u?&qD+*Fm#CzpK z=i7YsH1oUPRgi$OB!i*4#64l-_N$TJATWjxQS0UPfU&WYMx*=1-}{U~=(IMyRqF;# z&68y)VN?)(uap-=$VGvx370Y?X2sw7L=coCYBDA+uNkD{XEm|i?YY@ z2%1qVUK1}89OVP~0tO=GWe~_O&8$oQBW~6;q!Q{^OAHNJJpM+J#Mi;C1!)LB>%EiVR0?XkI4ZFHwC_QB|TRTysuvfhj5HxL)E1_rE5d_b6B z!l%wbkYcjd@j99YdD<{dmI@i#BO*FfN^M~Zy(1_phQ!0h&-N;p>UyN8O^|Kb4d}}D z(u(nZqm$W5N zI4oAmvS>IAISE!`z#P2^WpHlZ4hg zHrQeIqh3n2uuxReDrB)W+qoUK>tA7ktlwJrA~$Hc2>k3Ho<3SKp8PLDe~NnE+~qtv ze-G@edgsT(NyD_|wf7bb-{X8deEpke0h3&NX@F{>f;s);#Y3QO^Z|9*J}+x=&OO)n z{`x;@?bFILjv)GH`ljA;0|J0D3#a8n|K^@bcSin~51D&6Oh;X5lC)_CQ`0yePZ6{} z{+*S%hP}rE+0X!*T-oLyGvzCaQv82mZ3{@gQYtj=lz{{Ox#3xuJWp{B+VOX0DwYS zM4LwT1yb%XEm@q+42Y|e03$7DMtOkW3shy!-CgfHel6yzpr$!4qeSCdq7L+Xkp#l- zWIqcA-Y>FUl)GdStXN@Qi+{TkT(46thxZt{%i}iv{s?foSqKueB6$c}8B2B7PMo6h zXj{6<3+oS+KMxlxF5C0T3Jq4@%2DQa>g*5oe>DauRoo^`r-2d&5e?*NuN-|#7nM^J zlx)HxFYFiw{~1WKZbC`tW31ia1~AGB8fyXeAmJ;(&dREaR`{wc{^?yx%uk;Tq5bs) zR_)fE2E)+S5K6!58fZ8BIVzu6u1_lniErwdUjf5fKn9Ghk$jmO`QK;PUaBP6{l8zJ zNoH9$Tct7I;unYhisJse75pj7WTD|nR)Yb4-!4lY8_Vg~fBNvBqoeH$B3~DV{LtxH zY8q==W}uPHy-S0|E$tn*kIFZ=ziKYk7^NZt{oMeN^(HO>t#q*)GRXK~8NL()siPAu1M zRLeu0_^109a^$8aTzO}=lx`_RIGCPr`=B2&ktQ9KN{Y2XKa~PwX zP(OhB$fB_PE*;l$g>2UGQ`W3 zk!bhF{fAq8M`b4cruQ&z)P6|xHKMe9M7%+GTJ}O2GbKc1CseK=wja;gKU`X1k?OqQ z@XKv}Q$dQ%`-AE}R1x<&|K8%Xy_YVefg%v26 z#2UQiyBf&jeA>wnea_r^C2UIKf$WU?lZIu;H7+K5JuP0-9Q}Fzhs)v+nI(TqWkX>z zim1in(pon%ndxa&Is8jqxByTkVVq%F(_8AWJay^?c0pFJiI!k$3G$ zx^5VycfKl(7S?4r_WG+)8rr$q>v*0vOxouQgbWBD@r~1_kiXfbPf$9hiE;&t+tbzQX5EmAzRW;J*>!zH)1>Xv%R@o z6C4TgRlxaOOiX$#g?RJwUUHJYk{qGKA#Pn3b~@U87}ffzuQw0hvaKP;vc7!hbAida z+DwzlTn6^Z&#+tC5ue|5rc3$E%*w?f`5*Rv2!1MPgNx?g?hWGV(xnc@@V}alQAIK_ z*v~dRswroe8BoPcs><1dYt?cLu`(?rxJrJY$?Rp~F+6&onO=w`F;c*HSkC!+tGF2R z`Kvv*tdP^fEX?nT(IG&u9J;)|J^EejL6WprxwtB`KaCeJy*$|O)sxPOOeNFOW>*UM z{j2hg%p9-Ev_DI!U1K;*8@Lrgi?#m%+9--D4{+kf%vZ;RU&M~qf)Io0o(8IvXfcxW2lU&PO=2;-X zf1gVWiD!U$aviJx7*ysxPT+=3bL6szt?TxPhkQ)g3@D(5?`2J}ZE)sWSUb?tNu=;c zQ@^}lu3cW=J6A>nBIG2-m$_>w(etuly`QAxb&eKG)R|DT7b}^?Qrv#Au^{7jG^8b4 zN9MWi2fs$hM5(B+OhJTwFaKGMYRs)EGvu;3Ub52VQv(CMzU$QW6zY$R5p}a1;uZFFTX6n}Iph7X=*&$>YbL)MX!dq#IRtCUPQR@6L! zq+rKrlX15N@A9PhN+rfR4$TlX;-eF}d+F`=^4D_v;>&S@>5Z1$@p3vJb}7NYq9eEF z7u~X4`5C$RX&~Uo%-DTe*33&l*~AUwWM>y~d^=r`+^=uqM;D&U4J6Gx7|5Sy8u~&D z{u5&xkFcZ!xbAb})>Kj@$hA4G$nnco)+*%@-sg5O_!TsM3d&KqIt9vMLozDj&* z0%-;}wC#8#$kw6;d16r~Z78XI+@B9&E(?}iVfAUbHNx#7fWsQ*n186OKfvS$e|g#@ znHW+QezOr6&;Ym6CFd9a8xhgI^y2!TXz{-no=W?3K7qaRN0w)OdW!_X^0hm0CCrGE zy^#2SdwHF=DQ$I1B?Zj{R7XJ;u8T=qoAs%ZEbdY;T|9L+>he(;rHrFM^1Z1~l8{AE zm8f` zBWu6(^dUwo`Iqa{o3)ZRCA6>>n1(e|C4x@>&^Hgu+AGelWW|?zZ+j3 zXx(;pZv@$=A0`cFlqm;r#eUP%W_$DQokB-?c9D_GuIfPUN0~`#Y>fxGZqpJxwe=te$UYs`kD{S5FOS!+_h-UUMfxo>lh3A~QnA5R%a_+bF z+-`{$XM%KwG7i7f#@fz17HhS=26+j3kf~Gdv75yzpY|L)HR1MDRLPy8eSPJnJJVsC zB}7fXL}wnG26j2r*;Ke;GU58s7D}4eXc;_tS%TEJ#Z;DbW{q=?e+>7x>=scKtswc# zQ5VcQWhps%Zob0Z&>RKQq~&}UPp7V+TZxST_xbYGs>E1eTSS?T@hV2ad?q7mr+^T` z`R}G*6$>(ONn7j6M1!=<&H-GMujU7x4q=v$h}U!0nh{8wl0-mpM&@V{sx95-a87_H1T#K>nj%1~q5aB7c@svvwyea?Z2g zu$hOjD$?9gC1*{NCwx+pI_Lxf!|N%Z)~s*yFi}d&PPlkweIB=1x^ocly(SFURrxEoI9*Dhr(b-erhBU1WOVl8u0SQaP#lKw zw|&ZoFdyjdcE)~gTuqYr;CY}(=jpgqnPOeuerb2Z`s94Sm3Sf_44wkZw;2QejJxJR zCB^|tJ3hUQ?w$I};^98eZr6K%G_wJ~=!VIIS*{7j;;;7e$Hz9`k?sjttxxAVa5KxT zvV`QOhp64~uF|oc4=|qHii#k`rT7$@@$uO&f`|9+fp*N+VkCvbJUEnob4ItbQG}p~a`X<2Ta8*u4l&9DR|G_LHw&Y=&>GEryU7xI$ zjP#7R4$(783D#l#Jx;b0Z+zr8#`HR@0R+r7tD?-RE20ppyM2j6Q#d$__KW`mIC)EGpoD~XogO3U?p=?+y4m{`Jzakj8Vst}dF z0r9u6*IZ1^Ln1q*rZ{*izb$qwM@@;)aYHJrY1mPmIPg=9b*{^-d;y@}e8zI9&-3tw z(t^B(ie9$GL`RNnrWXetB6;@!v7O;DU;Ev;`X{@E#WOJKVXQuBYAGuhm^r}tfSH3G z)8{}+)gG{ua`c}n@6PBR^xArm|K9_kVQOB#UotF0Cs0qQESv??#tx0ZhK`xtqnEj% zK@mW6EI{jB<+(JE_I=gaS&)~LHHow6*E7v8(N)*9_@W9{#S`|m&j{LCvsm~uR;}6~ zZQ20l*kz`E0P=>Z{131K1mt4BWDUdqrZugr9Mwq`j&_rQ!H^3wm+XDGt}~rs&n4oY zKRvn^cTFa)cOiRBBt0sc0x72u?z(+-PcIdp-le!=v5ylFkIw1E{{x#l~R*Z@#iQ9!Gq; zsIqruoqh4kNZ96P0AEq&HR}!7HV^o@Qn$fNUi^=v=&uvbniwW(UqE-J;Qqq{`W zQThh>JO1@u;=1^~-$QZxDpC{MHK{(NgFTITE&Ewb^2t@PMz~L z*6q4FpW7h(4icFJ+?p)DO$Qv^$X0Z%HAsu1R^{w1I9D-)gl(*r3$=x&t1ii!aXvuS zae%t z?KHRYrS?w}Hk7Yfmhz_u)t@A|KLOip+8(yK;AN3;P*|!rQ*ZuB03~>u3;WIZ6{!6k zjhNMg>ScI~xhZ)3yAL6fwB{&6wp(;rgN{6z{_9x8QKo;~q|N_vu99|f!U%UnVd4Y; zDQ*Y|$`N@D-6|=t=2d7T`;N~R=bnr2>E!R4OI-aS=>3p?!8h?8H^GI->*<0*())b2%Y$A2aJCt{m-qJH zoxR6%6g0@aV-f5#fR$V$y;!W>ujPa#vR6kSJ5sjqT1$(Tv6K3~?0gWOxlVcBu#u!q zC4~C7$0e?OPGcfD+^|rh0FWZhFeP35H$}P-J|1GfCUIb*a79cRKmL%72u{|{>8)~; zg^-_1CrVW-h-cEy?92D_&b1lUQ`EdgCp<~Z9Oiz^_0%5DcR zWw%ORsaf_*cr{Pi5|}0Oo-F?|x$V$Z<_!c0g^+5rPio{125YSO9N7eqfsw8ased4# z6V1uguTnXr`Fi!sgB03MC}*&yOU(~>GzoV#tMLJE$^L|IE;Pqbzz3W01Z=UC>m5Q< z+;C`9N5ysT{u_`CA!%xrIdLx!&-mk>%y$2B@2s-@_|MLn`++&J^f zopC53No?M0bK zv>3}eZ@WBx$@BQb_DDmk&1XHyBiK&!kG-+>9t-ETl`=zkxQo-AH3f5vyq7IQ*L8)| zRL@H`HA!^t0;h9-lohR-C^^<#p~+!Gukw2h=V)7|6{kQnIVg)=GJ+=B5`DFge4mpa z^a8n?MAo$yJwdKoNxNJ{+t(&N(7lMWlZIb4R3Ptw^cK|rhUf70sTyE1_}>Zs|MO@E zMlB|qhm-rnV&%Cuoz0Och0$4Z=mdx4%(VKYa4P!sM6!Uk>Ve(dXldlRb6J-S9_ajY zb{a_i=LuQ93UwKToQP#b2J_to4TXk&`tuX|$qr=r6Rr-bSg!cR2#4RO~q!WC3;udmfh?Ns50w+L#(z`9j|N8)cTh(*UAab_APQ9mlm_P zr70iBY7m<0!;!oZbsaWM4RfdTqTc^9vy&ePw!6QWPP0*{WF9!0RbcOrCH>x|7uhCclgy|fIqe2O#`8M|$k z5tVbi6WJ-YYJSl|Qeg?3LNe8LpAJXfFTVXXjPbDgo{&%447L|`qY%n36E{leLo zLA+iK_SU*;1d9&rm8n(OSi{{6FC#c9I1F#9dss4PQW9U}75lQ|O$AzzN)9>-M2}kX zu*2L<4N}6k>ps_osxRv14n*v&1S=&;;HMhOo(_0zlwq+zItN|s$_IZ*S4rnZK{O`R zHF_$Q1vi7usZG;h4)eiIL|J-?%>Hu^`NQ;33%WMlGL!cvIU)nwRd+4^z#?iu3{BH1S6$*Yi~)iUtD>Y58nFZMck< z?cUlUM6X)t9;7ORrBc4%;B*dZ1_kH*6?WYlp~MiH^L}(3LLq5q1o)vLv*R(Qew0o# zWPR(bsBAX^)SRxbSStd*pJtGty-KG#&du9b2m9y~l8Pw+C;;MzIqq=fj3Cz`XL5#_ zu7Ebq)D)`6iHlO1|7ygikkhjM0>P;m&y+u9%#hmy)vnzl3wN;8j?{_E!-u;5Ojz-S zObERee6KlRERO&XR69;)7bA}MIW0<7x}+~6NdJ~_KVY2O36`t5Z-ZZvI@;d3;qNdX zv@&0ReY4ik{q5Q0SAqHITml#EO6ul#$ifH*1b)*@<{xoim+r=(f|rh(XWHUu`|2%k z1EYPX+=k>B1+B}F-nQj5h!BKE1fn?)!jWOXNQ(cq|4&0>Epy4zbe8^a7AzrErqS6! zVUGXJvJTAj%?@jXnZLFTbakXRx_?VQHu_8aL8~?}j>y!Ns2(evZNGAP7w~SYXDMTVZUnr8W)A1^FT7|d6aJw6TwrBpMU~~=A12apr>r>ZJ`N*d+1%u<;t0$ zvkAZ_@ui065R9WOD8Y3F_fye;7&(e{^H!P}Lq**`Bc+_ZQffZ{?I<|y0*{y-b`%OT z^WhEIUqSA<>YZ{KJ_^VSaz44}8b22%)DoSy%rGUY@mYKU{FrpP@NORDi9wP;u=G z+tkSttrz>*8sPb+8L%&@l{2R{t5ucx?;lL^YZreocm9k}T%NRSsAhh|SJ?>gS1WEePp=$s zyxI}_+_O&0LJa<1;?N1=a(J>N5%1|=YVj#vq#pCr`08~KF#; zzf2zvShW=l&<%;k9RvWTi3Xh!K|{-LY+axC@s6fa*qPXM;; zf=LY#Ck@L?&1qAEEdXatiE>vPCjs4RksUVx>*0 z0zOehl@z7fXi~S~$!zcFb*}fcY1p?Uii__x4cNgqSpmR8E0u8}2UZJZ+DAlhcXuQJ zy0;j&MMRo@7R`a*ljUJVUot&#fiDsqI(r}WU#4Xy>2QC6hYG;#R5SpTsx)V{5&;Ro zk{r^293E{ecfGQtL2S8R0&JsOEBt4tc**V`fVi8J2$^Q@{YJUldli*9A&hUhQ7epb z3@`J|Ne)s+Pcpv?a%lfIDy8)pK!ZJBzHi;a{KzsXI9JC5$@=%YsZeeqm{962I5wlP z<@ZSKsP|`ZSA0ATTW6TN$jIvS=lqzekcowMR0uJ(FN-oZXc#{4NA_YUtB^nXP%|N! zuAupcJN9Fs`JJq2xf>ECPm`GI0@jNl1si{f-QAQ^?cAjeFI{aI*zc;j_-sy-47QBG z51n@c{tU)P?H13dG?gU{SRhlFpJHp6*3(Y_$ZGw;lvbD~;yzNur?1;Gw1YwL&bW78 z<&eL+j*|L~eePhpLe5JV%gL9MN}%8ypPrY0r3|3 z2MH1n&T2McL*qpINJss^oOzgkVA>>Ns-+C$d)b5dR)_xc(Jl`wXlnHihe$Av(yIxB`{zEeAAAG#J_wTKEFPXRJ#Y5E zK_L3q|94j$X2X4NR?e$W_#&uYH=;PMt7+p}`irTx z)^V+N!6CHQg4FQjdx5n4^XcMl_T{XRn@UYLWgkw5dY?1mflKTxeq?y_zD~yr!jj}Q5aaQbU zA9k%fRUFu>1+95zu=@5Uo(MvdB#$3(lY26`92_pYWG(!>)x?7D3$O(q!@0GKq7ac$ zcLB+4#`&hA7qlYU2$*3Iasc$zaBH=Yx)?aElY}m^~0Z2>)%IU z?ZZEOwK2Yj!p#nf>N1*xZ#0CcePqaS2o0w{)!mo?;BI~ocTA_E6SEG3HlX;c(9wi` zxbNpMna%8XxFX-6cY97(!ncusSL{5rx$iTOuA+t6)Am+<>I@`%T)N2i6e)P;?IgLLj@-6)+;y&n$JkMKtx_;5F zaf7ca>J;3~KBsdCHJy*n4@)<`|8z#R-ccRUQO(Tzfk}|}{&AG+2n>G@ zQcwIIFJha`yJVRt4womZQ-eN!Vh#2KeI#!BdaO7miV3AnC?42{`s9_NtV3IguH^&I<8u(r)uDZg& zhzlIeoRuC|B*3aZ<7e(`=G-ed{8_?jec%-1|Cn4|HOa}KdQt8ekQk3~_>>4*A$3n9 zMs))?NY{Y9@&#M75fjnWC6_m&p+F1woZf;#NJoyON}%x|bGX>#jh5L|>7aM>{Tvkv z*)=yxq0i}Qw<}jLu-$%UF0QcCFKifDTcU1d^a1E(VXuy*IESs}4>}%ZeD#SOr1=UB z2B0JQoQv0W04I4=?g!5I znzi`cVA?&W`I<7iM;XP@?4WuxwQhLeMhgm}V1!`v649jUUTMe$)oz2^xp%Qwa>Hu= z(bcr(Js{OJ347A!b+|c1c)+q7dF~kfpLWbA+m!uk1_uW2=W-mj82f+~j3N{qW$0P} z1L)V1I35zv5x3^7`7CB%xUKXa2m? zg%)yWlmT0ISJqyrJU26D676oMQXwt3qKlc-dAMp8JlzEZH$DzUU9Np%k_8y!ZKSkt zQC|cUI?MnvDBt6P1E04q*CiVAf4@(u8e5Ha-r=7VRc~#ZM@`axB~B z8-i!4OV7!y;QRC;I{0s~lZpZV2_P|{kvzGI3la1?|N3w2p*3?xNHdXwWN_~TAi3CYk_YH$9!)Dbn#%qITDVxdBuOX{u*@S zghnV?ueqk}!I+>T{YaxX$$y~qu;V-M%|i61Yvn3D7mSSAWU%N8@*AmS}Zlpp$+gHq{DTm^P-J`wMZq9YSw@1o9<{UO2dOR z9JbXW+6^V5G(C$QVM z99kdlacw)BJweGb90)&WOGt2I$J>{g?(CWWOooKYXR-REOYyD59IwAFmf5Pyxps^v z&`lXupl6;XS>JYfzO_IEXjof1VXJYjV{x|+Q14M8F8;gt$8#ZDmLn3aK33wHO7dcm zhVQ(f$RPWPFykdw`?$9i#w`9j=bnpqC~gQ9?1q9eJsBMyv6*F5r>gn*?s?dUTμ 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 literal 102068 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 ?y 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 Date: Wed, 2 Jun 2021 20:10:59 +0800 Subject: [PATCH 29/31] slim code --- paddleocr.py | 32 +++++----- tools/infer/utility.py | 136 +++++++++++++++++++++++------------------ 2 files changed, 91 insertions(+), 77 deletions(-) diff --git a/paddleocr.py b/paddleocr.py index 7c45c438..1e4d94ff 100644 --- a/paddleocr.py +++ b/paddleocr.py @@ -30,7 +30,7 @@ from ppocr.utils.logging import get_logger logger = get_logger() from ppocr.utils.utility import check_and_read_gif, get_image_file_list -from tools.infer.utility import draw_ocr, inference_args_list, str2bool, parse_args +from tools.infer.utility import draw_ocr, init_args, str2bool __all__ = ['PaddleOCR'] @@ -167,23 +167,23 @@ def maybe_download(model_storage_directory, url): os.remove(tmp_path) -def parse_args_whl(mMain=True): +def parse_args(mMain=True): import argparse - extend_args_list = [ - ['lang', str, 'ch'], - ['det', str2bool, True], - ['rec', str2bool, True], - ] - for item in inference_args_list: - if item[0] == 'rec_char_dict_path': - item[2] = None - inference_args_list.extend(extend_args_list) + parser = init_args() + parser.add_help = mMain + parser.add_argument("--lang", type=str, default='ch') + parser.add_argument("--det", type=str2bool, default=True) + parser.add_argument("--rec", type=str2bool, default=True) + + for action in parser._actions: + if action.dest == 'rec_char_dict_path': + action.default = None if mMain: - return parse_args() + return parser.parse_args() else: inference_args_dict = {} - for item in inference_args_list: - inference_args_dict[item[0]] = item[2] + for action in parser._actions: + inference_args_dict[action.dest] = action.default return argparse.Namespace(**inference_args_dict) @@ -194,7 +194,7 @@ class PaddleOCR(predict_system.TextSystem): args: **kwargs: other params show in paddleocr --help """ - postprocess_params = parse_args_whl(mMain=False) + postprocess_params = parse_args(mMain=False) postprocess_params.__dict__.update(**kwargs) self.use_angle_cls = postprocess_params.use_angle_cls lang = postprocess_params.lang @@ -318,7 +318,7 @@ class PaddleOCR(predict_system.TextSystem): def main(): # for cmd - args = parse_args_whl(mMain=True) + args = parse_args(mMain=True) image_dir = args.image_dir if image_dir.startswith('http'): download_with_progressbar(image_dir, 'tmp.jpg') diff --git a/tools/infer/utility.py b/tools/infer/utility.py index 7b543353..3f0ff2ff 100755 --- a/tools/infer/utility.py +++ b/tools/infer/utility.py @@ -23,6 +23,7 @@ import math from paddle import inference import time from ppocr.utils.logging import get_logger + logger = get_logger() @@ -30,77 +31,90 @@ def str2bool(v): return v.lower() in ("true", "t", "1") -inference_args_list = [ - # name type defalue +def init_args(): + parser = argparse.ArgumentParser() # params for prediction engine - ['use_gpu', str2bool, True], - ['use_tensorrt', str2bool, False], - ['use_fp16', str2bool, False], - ['use_pdserving', str2bool, False], - ['use_mp', str2bool, False], - ['enable_mkldnn', str2bool, False], - ['ir_optim', str2bool, True], - ['total_process_num', int, 1], - ['process_id', int, 0], - ['gpu_mem', int, 500], - ['cpu_threads', int, 10], + parser.add_argument("--use_gpu", type=str2bool, default=True) + parser.add_argument("--ir_optim", type=str2bool, default=True) + parser.add_argument("--use_tensorrt", type=str2bool, default=False) + parser.add_argument("--use_fp16", type=str2bool, default=False) + parser.add_argument("--gpu_mem", type=int, default=500) + # params for text detector - ['image_dir', str, None], - ['det_algorithm', str, 'DB'], - ['det_model_dir', str, None], - ['det_limit_side_len', float, 960], - ['det_limit_type', str, 'max'], + parser.add_argument("--image_dir", type=str) + parser.add_argument("--det_algorithm", type=str, default='DB') + parser.add_argument("--det_model_dir", type=str) + parser.add_argument("--det_limit_side_len", type=float, default=960) + parser.add_argument("--det_limit_type", type=str, default='max') + # DB parmas - ['det_db_thresh', float, 0.3], - ['det_db_box_thresh', float, 0.5], - ['det_db_unclip_ratio', float, 1.6], - ['max_batch_size', int, 10], - ['use_dilation', str2bool, False], - ['det_db_score_mode', str, 'fast'], + parser.add_argument("--det_db_thresh", type=float, default=0.3) + parser.add_argument("--det_db_box_thresh", type=float, default=0.5) + parser.add_argument("--det_db_unclip_ratio", type=float, default=1.6) + parser.add_argument("--max_batch_size", type=int, default=10) + parser.add_argument("--use_dilation", type=bool, default=False) + parser.add_argument("--det_db_score_mode", type=str, default="fast") # EAST parmas - ['det_east_score_thresh', float, 0.8], - ['det_east_cover_thresh', float, 0.1], - ['det_east_nms_thresh', float, 0.2], + parser.add_argument("--det_east_score_thresh", type=float, default=0.8) + parser.add_argument("--det_east_cover_thresh", type=float, default=0.1) + parser.add_argument("--det_east_nms_thresh", type=float, default=0.2) + # SAST parmas - ['det_sast_score_thresh', float, 0.5], - ['det_sast_nms_thresh', float, 0.2], - ['det_sast_polygon', str2bool, False], + parser.add_argument("--det_sast_score_thresh", type=float, default=0.5) + parser.add_argument("--det_sast_nms_thresh", type=float, default=0.2) + parser.add_argument("--det_sast_polygon", type=bool, default=False) + # params for text recognizer - ['rec_algorithm', str, 'CRNN'], - ['rec_model_dir', str, None], - ['rec_image_shape', str, '3, 32, 320'], - ['rec_char_type', str, "ch"], - ['rec_batch_num', int, 6], - ['max_text_length', int, 25], - ['rec_char_dict_path', str, './ppocr/utils/ppocr_keys_v1.txt'], - ['use_space_char', str2bool, True], - ['vis_font_path', str, './doc/fonts/simfang.ttf'], - ['drop_score', float, 0.5], + parser.add_argument("--rec_algorithm", type=str, default='CRNN') + parser.add_argument("--rec_model_dir", type=str) + parser.add_argument("--rec_image_shape", type=str, default="3, 32, 320") + parser.add_argument("--rec_char_type", type=str, default='ch') + parser.add_argument("--rec_batch_num", type=int, default=6) + parser.add_argument("--max_text_length", type=int, default=25) + parser.add_argument( + "--rec_char_dict_path", + type=str, + default="./ppocr/utils/ppocr_keys_v1.txt") + parser.add_argument("--use_space_char", type=str2bool, default=True) + parser.add_argument( + "--vis_font_path", type=str, default="./doc/fonts/simfang.ttf") + parser.add_argument("--drop_score", type=float, default=0.5) + # params for e2e - ['e2e_algorithm', str, 'PGNet'], - ['e2e_model_dir', str, None], - ['e2e_limit_side_len', float, 768], - ['e2e_limit_type', str, 'max'], + parser.add_argument("--e2e_algorithm", type=str, default='PGNet') + parser.add_argument("--e2e_model_dir", type=str) + parser.add_argument("--e2e_limit_side_len", type=float, default=768) + parser.add_argument("--e2e_limit_type", type=str, default='max') + # PGNet parmas - ['e2e_pgnet_score_thresh', float, 0.5], - ['e2e_char_dict_path', str, './ppocr/utils/ic15_dict.txt'], - ['e2e_pgnet_valid_set', str, 'totaltext'], - ['e2e_pgnet_polygon', str2bool, True], - ['e2e_pgnet_mode', str, 'fast'], + parser.add_argument("--e2e_pgnet_score_thresh", type=float, default=0.5) + parser.add_argument( + "--e2e_char_dict_path", type=str, default="./ppocr/utils/ic15_dict.txt") + parser.add_argument("--e2e_pgnet_valid_set", type=str, default='totaltext') + parser.add_argument("--e2e_pgnet_polygon", type=bool, default=True) + parser.add_argument("--e2e_pgnet_mode", type=str, default='fast') + # params for text classifier - ['use_angle_cls', str2bool, False], - ['cls_model_dir', str, None], - ['cls_image_shape', str, '3, 48, 192'], - ['label_list', list, ['0', '180']], - ['cls_batch_num', int, 6], - ['cls_thresh', float, 0.9], -] + parser.add_argument("--use_angle_cls", type=str2bool, default=False) + parser.add_argument("--cls_model_dir", type=str) + parser.add_argument("--cls_image_shape", type=str, default="3, 48, 192") + parser.add_argument("--label_list", type=list, default=['0', '180']) + parser.add_argument("--cls_batch_num", type=int, default=6) + parser.add_argument("--cls_thresh", type=float, default=0.9) + + parser.add_argument("--enable_mkldnn", type=str2bool, default=False) + parser.add_argument("--cpu_threads", type=int, default=10) + parser.add_argument("--use_pdserving", type=str2bool, default=False) + + parser.add_argument("--use_mp", type=str2bool, default=False) + parser.add_argument("--total_process_num", type=int, default=1) + parser.add_argument("--process_id", type=int, default=0) + + return parser def parse_args(): - parser = argparse.ArgumentParser() - for item in inference_args_list: - parser.add_argument('--' + item[0], type=item[1], default=item[2]) + parser = init_args() return parser.parse_args() @@ -217,8 +231,8 @@ def create_predictor(args, mode, logger): if hasattr(args, "cpu_threads"): config.set_cpu_math_library_num_threads(args.cpu_threads) else: - config.set_cpu_math_library_num_threads( - 10) # default cpu threads as 10 + # default cpu threads as 10 + config.set_cpu_math_library_num_threads(10) if args.enable_mkldnn: # cache 10 different shapes for mkldnn to avoid memory leak config.set_mkldnn_cache_capacity(10) From bceb4c8bd3f0e6456e0207480bf74a9cd28dbf47 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 2 Jun 2021 20:16:34 +0800 Subject: [PATCH 30/31] Update readme_en.md --- deploy/cpp_infer/readme_en.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/cpp_infer/readme_en.md b/deploy/cpp_infer/readme_en.md index 913ba1f9..365fc5ba 100644 --- a/deploy/cpp_infer/readme_en.md +++ b/deploy/cpp_infer/readme_en.md @@ -144,11 +144,11 @@ Among them, `paddle` is the Paddle library required for C++ prediction later, an ``` inference/ |-- det_db -| |--inference.pdparams -| |--inference.pdimodel +| |--inference.pdiparams +| |--inference.pdmodel |-- rec_rcnn -| |--inference.pdparams -| |--inference.pdparams +| |--inference.pdiparams +| |--inference.pdmodel ``` From c59e122b5595eb00f45f5dad7dbfbaf44e3bfce2 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 2 Jun 2021 20:17:02 +0800 Subject: [PATCH 31/31] Update readme.md --- deploy/cpp_infer/readme.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/cpp_infer/readme.md b/deploy/cpp_infer/readme.md index ee5a9ed4..2beb1b64 100644 --- a/deploy/cpp_infer/readme.md +++ b/deploy/cpp_infer/readme.md @@ -140,11 +140,11 @@ build/paddle_inference_install_dir/ ``` inference/ |-- det_db -| |--inference.pdparams -| |--inference.pdimodel +| |--inference.pdiparams +| |--inference.pdmodel |-- rec_rcnn -| |--inference.pdparams -| |--inference.pdparams +| |--inference.pdiparams +| |--inference.pdmodel ```