diff --git a/README.md b/README.md index bd031b4b..520a1e0e 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,17 @@ 简体中文

+

Important things should be said three times.

+ +# [2024-05-17:Latest Installation and Usage Documentation](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) +# [2024-05-17:Latest Installation and Usage Documentation](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) +# [2024-05-17:Latest Installation and Usage Documentation](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) + +## Business contact information: +### 010-82558901 +![](docs/images/business.jpeg) + + ## Installation Requirements: diff --git a/README_zh.md b/README_zh.md index 00059432..d95c63cb 100644 --- a/README_zh.md +++ b/README_zh.md @@ -3,6 +3,19 @@ English | 简体中文

+ + +

重要的事情说三遍!

+ +# [2024-05-17:最新的安装和使用文档](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) +# [2024-05-17:最新的安装和使用文档](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) +# [2024-05-17:最新的安装和使用文档](https://github.com/netease-youdao/QAnything/blob/master/QAnything%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md) + +## 商务问题联系方式: +### 010-82558901 +![](docs/images/business.jpeg) + + ## 安装 要求: diff --git a/docs/images/business.jpeg b/docs/images/business.jpeg new file mode 100644 index 00000000..177958a4 Binary files /dev/null and b/docs/images/business.jpeg differ diff --git a/qanything_kernel/configs/model_config.py b/qanything_kernel/configs/model_config.py index 22fa50f7..8c2d0fe5 100644 --- a/qanything_kernel/configs/model_config.py +++ b/qanything_kernel/configs/model_config.py @@ -6,8 +6,20 @@ os_system = platform.system() +#### 用户配置区 #### # 默认的CUDA设备 CUDA_DEVICE = '0' +# 设置是否使用快速PDF解析器,设置为False时,使用优化后的PDF解析器,但速度下降 +USE_FAST_PDF_PARSER = True +# 设置rerank的batch大小,16GB内存建议设置为8,32GB内存建议设置为16 +LOCAL_RERANK_BATCH = 8 +# 设置rerank的多线程worker数量,默认设置为4,根据机器性能调整 +LOCAL_RERANK_WORKERS = 4 +# 设置embed的batch大小,16GB内存建议设置为8,32GB内存建议设置为16 +LOCAL_EMBED_BATCH = 8 +# 设置embed的多线程worker数量,默认设置为4,根据机器性能调整 +LOCAL_EMBED_WORKERS = 4 +#### 用户配置区 #### # 获取项目根目录 # 获取当前脚本的绝对路径 @@ -18,6 +30,7 @@ # 如果不存在则创建 if not os.path.exists(UPLOAD_ROOT_PATH): os.makedirs(UPLOAD_ROOT_PATH) +PDF_MODEL_PATH = os.path.join(root_path, "qanything_kernel/utils/loader/pdf_to_markdown") nltk_data_path = os.path.join(root_path, 'qanything_kernel/nltk_data') @@ -99,7 +112,6 @@ print('LOCAL_RERANK_REPO:', LOCAL_RERANK_REPO) LOCAL_RERANK_MODEL_NAME = 'rerank' LOCAL_RERANK_MAX_LENGTH = 512 -LOCAL_RERANK_BATCH = 8 LOCAL_EMBED_PATH = os.path.join(root_path, 'qanything_kernel/connector/embedding', 'embedding_model_configs_v0.0.1') if os_system == 'Darwin': @@ -111,7 +123,6 @@ print('LOCAL_EMBED_REPO:', LOCAL_EMBED_REPO) LOCAL_EMBED_MODEL_NAME = 'embed' LOCAL_EMBED_MAX_LENGTH = 512 -LOCAL_EMBED_BATCH = 8 # VLLM PARAMS model_path = os.path.join(root_path, "assets", "custom_models") diff --git a/qanything_kernel/connector/embedding/embedding_backend.py b/qanything_kernel/connector/embedding/embedding_backend.py index f352cf55..b6456a7b 100644 --- a/qanything_kernel/connector/embedding/embedding_backend.py +++ b/qanything_kernel/connector/embedding/embedding_backend.py @@ -1,7 +1,7 @@ """Wrapper around YouDao embedding models.""" from typing import List from qanything_kernel.configs.model_config import LOCAL_EMBED_MODEL_PATH, LOCAL_EMBED_MAX_LENGTH, LOCAL_EMBED_BATCH, \ - LOCAL_EMBED_PATH, LOCAL_EMBED_REPO + LOCAL_EMBED_PATH, LOCAL_EMBED_REPO, LOCAL_EMBED_WORKERS from qanything_kernel.utils.general_utils import get_time from qanything_kernel.utils.custom_log import debug_logger from langchain_core.embeddings import Embeddings @@ -31,6 +31,7 @@ class EmbeddingBackend(Embeddings): def __init__(self, use_cpu): self.use_cpu = use_cpu self._tokenizer = AutoTokenizer.from_pretrained(LOCAL_EMBED_PATH) + self.workers = LOCAL_EMBED_WORKERS @abstractmethod def get_embedding(self, sentences, max_length) -> List: @@ -41,7 +42,7 @@ def get_len_safe_embeddings(self, texts: List[str]) -> List[List[float]]: all_embeddings = [] batch_size = LOCAL_EMBED_BATCH - with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: + with concurrent.futures.ThreadPoolExecutor(max_workers=self.workers) as executor: futures = [] for i in range(0, len(texts), batch_size): batch = texts[i:i + batch_size] diff --git a/qanything_kernel/connector/rerank/rerank_backend.py b/qanything_kernel/connector/rerank/rerank_backend.py index 7cc1a59e..50374d94 100644 --- a/qanything_kernel/connector/rerank/rerank_backend.py +++ b/qanything_kernel/connector/rerank/rerank_backend.py @@ -3,7 +3,7 @@ from typing import List from qanything_kernel.configs.model_config import LOCAL_RERANK_MODEL_PATH, LOCAL_RERANK_MAX_LENGTH, \ LOCAL_RERANK_MODEL_NAME, \ - LOCAL_RERANK_BATCH, LOCAL_RERANK_PATH, LOCAL_RERANK_REPO + LOCAL_RERANK_BATCH, LOCAL_RERANK_PATH, LOCAL_RERANK_REPO, LOCAL_RERANK_WORKERS from qanything_kernel.utils.custom_log import debug_logger from qanything_kernel.utils.general_utils import get_time from modelscope import snapshot_download @@ -32,6 +32,7 @@ def __init__(self, use_cpu): self.batch_size = LOCAL_RERANK_BATCH self.max_length = LOCAL_RERANK_MAX_LENGTH self.return_tensors = None + self.workers = LOCAL_RERANK_WORKERS @abstractmethod def inference(self, batch) -> List: @@ -90,7 +91,7 @@ def predict(self, tot_batches, merge_inputs_idxs_sort = self.tokenize_preproc(query, passages) tot_scores = [] - with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor: + with concurrent.futures.ThreadPoolExecutor(max_workers=self.workers) as executor: futures = [] for k in range(0, len(tot_batches), self.batch_size): batch = self._tokenizer.pad( diff --git a/qanything_kernel/core/local_file.py b/qanything_kernel/core/local_file.py index cd85af49..61a74468 100644 --- a/qanything_kernel/core/local_file.py +++ b/qanything_kernel/core/local_file.py @@ -1,13 +1,12 @@ from qanything_kernel.utils.general_utils import * from typing import List, Union, Callable -from qanything_kernel.configs.model_config import UPLOAD_ROOT_PATH, SENTENCE_SIZE, ZH_TITLE_ENHANCE +from qanything_kernel.configs.model_config import UPLOAD_ROOT_PATH, SENTENCE_SIZE, ZH_TITLE_ENHANCE, USE_FAST_PDF_PARSER from langchain.docstore.document import Document from qanything_kernel.utils.loader.my_recursive_url_loader import MyRecursiveUrlLoader from langchain_community.document_loaders import UnstructuredFileLoader, TextLoader from langchain_community.document_loaders import UnstructuredWordDocumentLoader from langchain_community.document_loaders import UnstructuredExcelLoader from langchain_community.document_loaders import UnstructuredPDFLoader -import langchain_community.document_loaders.pdf from langchain_community.document_loaders import UnstructuredEmailLoader from langchain_community.document_loaders import UnstructuredPowerPointLoader from qanything_kernel.utils.loader.csv_loader import CSVLoader @@ -16,6 +15,8 @@ from qanything_kernel.utils.splitter import ChineseTextSplitter from qanything_kernel.utils.loader import UnstructuredPaddleImageLoader, UnstructuredPaddlePDFLoader, UnstructuredPaddleAudioLoader from qanything_kernel.utils.splitter import zh_title_enhance +from qanything_kernel.utils.loader.self_pdf_loader import PdfLoader +from qanything_kernel.utils.loader.markdown_parser import convert_markdown_to_langchaindoc from sanic.request import File import pandas as pd import os @@ -65,6 +66,27 @@ def __init__(self, user_id, kb_id, file: Union[File, str, dict], file_id, file_n f.write(self.file_content) debug_logger.info(f'success init localfile {self.file_name}') + @staticmethod + def pdf_process(dos: List[Document]): + new_docs = [] + for doc in dos: + # metadata={'title_lst': ['#樊昊天个人简历', '##教育经历'], 'has_table': False} + title_lst = doc.metadata['title_lst'] + # 删除所有仅有多个#的title + title_lst = [t for t in title_lst if t.replace('#', '') != ''] + has_table = doc.metadata['has_table'] + if has_table: + doc.page_content = '\n'.join(title_lst) + '\n本段为表格,内容如下:' + doc.page_content + new_docs.append(doc) + continue + # doc.page_content = '\n'.join(title_lst) + '\n' + doc.page_content + slices = pdf_text_splitter.split_documents([doc]) + for idx, slice in enumerate(slices): + slice.page_content = '\n'.join(title_lst) + f'\n######第{idx+1}段内容如下:\n' + slice.page_content + new_docs.extend(slices) + return new_docs + + @get_time def split_file_to_docs(self, ocr_engine: Callable, sentence_size=SENTENCE_SIZE, using_zh_title_enhance=ZH_TITLE_ENHANCE): if self.url: @@ -82,10 +104,16 @@ def split_file_to_docs(self, ocr_engine: Callable, sentence_size=SENTENCE_SIZE, texts_splitter = ChineseTextSplitter(pdf=False, sentence_size=sentence_size) docs = loader.load_and_split(texts_splitter) elif self.file_path.lower().endswith(".pdf"): - loader = UnstructuredPaddlePDFLoader(self.file_path, ocr_engine, self.use_cpu) - # texts_splitter = ChineseTextSplitter(pdf=True, sentence_size=sentence_size) - # docs = loader.load_and_split(texts_splitter) - docs = loader.load() + if USE_FAST_PDF_PARSER: + loader = UnstructuredPaddlePDFLoader(self.file_path, ocr_engine, self.use_cpu) + texts_splitter = ChineseTextSplitter(pdf=True, sentence_size=sentence_size) + docs = loader.load_and_split(texts_splitter) + else: + loader = PdfLoader(filename=self.file_path, root_dir=os.path.dirname(self.file_path)) + markdown_dir = loader.load_to_markdown() + docs = convert_markdown_to_langchaindoc(markdown_dir) + docs = self.pdf_process(docs) + # print(docs) elif self.file_path.lower().endswith(".jpg") or self.file_path.lower().endswith( ".png") or self.file_path.lower().endswith(".jpeg"): loader = UnstructuredPaddleImageLoader(self.file_path, ocr_engine, self.use_cpu) @@ -121,6 +149,7 @@ def split_file_to_docs(self, ocr_engine: Callable, sentence_size=SENTENCE_SIZE, debug_logger.info("using_zh_title_enhance %s", using_zh_title_enhance) docs = zh_title_enhance(docs) print('docs number:', len(docs)) + # print(docs) # 不是csv,xlsx和FAQ的文件,需要再次分割 if not self.file_path.lower().endswith(".csv") and not self.file_path.lower().endswith(".xlsx") and not self.file_path == 'FAQ': new_docs = [] @@ -136,7 +165,8 @@ def split_file_to_docs(self, ocr_engine: Callable, sentence_size=SENTENCE_SIZE, new_docs.append(doc) debug_logger.info(f"before 2nd split doc lens: {len(new_docs)}") if self.file_path.lower().endswith(".pdf"): - docs = pdf_text_splitter.split_documents(new_docs) + if USE_FAST_PDF_PARSER: + docs = pdf_text_splitter.split_documents(new_docs) else: docs = text_splitter.split_documents(new_docs) debug_logger.info(f"after 2nd split doc lens: {len(docs)}") diff --git a/qanything_kernel/qanything_server/sanic_api.py b/qanything_kernel/qanything_server/sanic_api.py index 8bd40add..b1a115e9 100644 --- a/qanything_kernel/qanything_server/sanic_api.py +++ b/qanything_kernel/qanything_server/sanic_api.py @@ -18,7 +18,7 @@ sys.path.append(root_dir) from qanything_kernel.configs.model_config import DT_7B_MODEL_PATH, \ - DT_7B_DOWNLOAD_PARAMS, DT_3B_MODEL_PATH, DT_3B_DOWNLOAD_PARAMS + DT_7B_DOWNLOAD_PARAMS, DT_3B_MODEL_PATH, DT_3B_DOWNLOAD_PARAMS, PDF_MODEL_PATH import qanything_kernel.configs.model_config as model_config from qanything_kernel.utils.custom_log import debug_logger from qanything_kernel.utils.general_utils import download_file, get_gpu_memory_utilization, check_package_version @@ -81,18 +81,27 @@ if os_system != "Linux": raise ValueError(f"Unsupported system: {os_system}") system_name = 'manylinux_2_28_x86_64' - # 官方发布的1.17.1不支持cuda12以上的系统,需要根据官方文档:https://onnxruntime.ai/docs/install/里提到的地址手动下载whl - if not check_package_version("onnxruntime-gpu", "1.17.1"): - download_url = f"https://aiinfra.pkgs.visualstudio.com/PublicPackages/_apis/packaging/feeds/9387c3aa-d9ad-4513-968c-383f6f7f53b8/pypi/packages/onnxruntime-gpu/versions/1.17.1/onnxruntime_gpu-1.17.1-cp3{python3_version}-cp3{python3_version}-{system_name}.whl/content" - debug_logger.info(f'开始从{download_url}下载onnxruntime,也可以手动下载并通过pip install *.whl安装') - whl_name = f'onnxruntime_gpu-1.17.1-cp3{python3_version}-cp3{python3_version}-{system_name}.whl' - download_file(download_url, whl_name) - exit_status = os.system(f"pip install {whl_name}") - if exit_status != 0: - # raise ValueError(f"安装onnxruntime失败,请手动安装{whl_name}") - debug_logger.warning(f"安装onnxruntime-gpu失败,将安装onnxruntime来代替") - print(f"安装onnxruntime-gpu失败,将安装onnxruntime来代替", flush=True) + glibc_info = platform.libc_ver() + if glibc_info[0] != 'glibc': + raise ValueError(f"Unsupported libc: {glibc_info[0]}, 请确认系统是否为Linux系统。") + glibc_version = float(glibc_info[1]) + if glibc_version < 2.28: + if not check_package_version("onnxruntime", "1.16.3"): + print(f"当前系统glibc版本为{glibc_version}<2.28,无法使用onnxruntime-gpu(cuda12.x),将安装onnxruntime来代替", flush=True) os.system("pip install onnxruntime") + else: + # 官方发布的1.17.1不支持cuda12以上的系统,需要根据官方文档:https://onnxruntime.ai/docs/install/里提到的地址手动下载whl + if not check_package_version("onnxruntime-gpu", "1.17.1"): + download_url = f"https://aiinfra.pkgs.visualstudio.com/PublicPackages/_apis/packaging/feeds/9387c3aa-d9ad-4513-968c-383f6f7f53b8/pypi/packages/onnxruntime-gpu/versions/1.17.1/onnxruntime_gpu-1.17.1-cp3{python3_version}-cp3{python3_version}-{system_name}.whl/content" + debug_logger.info(f'开始从{download_url}下载onnxruntime,也可以手动下载并通过pip install *.whl安装') + whl_name = f'onnxruntime_gpu-1.17.1-cp3{python3_version}-cp3{python3_version}-{system_name}.whl' + download_file(download_url, whl_name) + exit_status = os.system(f"pip install {whl_name}") + if exit_status != 0: + # raise ValueError(f"安装onnxruntime失败,请手动安装{whl_name}") + debug_logger.warning(f"安装onnxruntime-gpu失败,将安装onnxruntime来代替") + print(f"安装onnxruntime-gpu失败,将安装onnxruntime来代替", flush=True) + os.system("pip install onnxruntime") if not args.use_openai_api: if not check_package_version("vllm", "0.2.7"): os.system(f"pip install vllm==0.2.7 -i https://pypi.mirrors.ustc.edu.cn/simple/ --trusted-host pypi.mirrors.ustc.edu.cn") @@ -145,6 +154,15 @@ debug_logger.info(f'{args.model}路径已存在,不再重复下载大模型(如果下载出错可手动删除此目录)') debug_logger.info(f"CUDA_DEVICE: {model_config.CUDA_DEVICE}") +# 下载pdf解析相关的模型 +pdf_models_path = os.path.join(PDF_MODEL_PATH, 'checkpoints') +if not os.path.exists(pdf_models_path): + debug_logger.info(f'开始下载大模型:{model_download_params}') + model_dir = snapshot_download('netease-youdao/QAnything-pdf-parser') + subprocess.check_output(['ln', '-s', model_dir, pdf_models_path], text=True) + debug_logger.info(f'PDF解析相关模型下载完毕!cache地址:{model_dir}, 软链接地址:{pdf_models_path}') + + WorkerManager.THRESHOLD = 6000 app = Sanic("QAnything") diff --git a/qanything_kernel/utils/loader/markdown_parser.py b/qanything_kernel/utils/loader/markdown_parser.py new file mode 100644 index 00000000..943a3fe7 --- /dev/null +++ b/qanything_kernel/utils/loader/markdown_parser.py @@ -0,0 +1,253 @@ +import random +from langchain.schema.document import Document + +RANDOM_NUMBER_SET = set() + +def contains_table(text): + lines = text.split('\n') + if len(lines) < 2: + return False + has_separator = False + for i in range(len(lines) - 1): + if '|' in lines[i] and '|' in lines[i + 1]: + separator_line = lines[i + 1].strip() + if separator_line.startswith('|') and separator_line.endswith('|'): + separator_parts = separator_line[1:-1].split('|') + if all(part.strip().startswith('-') and len(part.strip()) >= 3 for part in separator_parts): + has_separator = True + break + return has_separator + +def _get_heading_level_offset(document): + + total_levels = [] + for block in document: + if not isinstance(block, list): continue + total_levels += [item['attrs']['level'] for item in block if item['type'] == 'heading'] + + offset = min(total_levels) - 1 if len(total_levels) > 0 else 0 + max_depth = max(total_levels) - min(total_levels) + 1 if len(total_levels) > 0 else 0 + + for i, block in enumerate(document): + if not isinstance(block, list): continue + for j, item in enumerate(block): + if item['type'] != 'heading': continue + document[i][j]['attrs']['level'] -= offset + + return document, offset, max_depth + + +def _init_node(node_type, title, id_len=4): + + while True: + random_number = random.randint(0, 16 ** id_len - 1) + if random_number in RANDOM_NUMBER_SET: continue + RANDOM_NUMBER_SET.add(random_number) + node_id = format(random_number, 'x').zfill(id_len) + break + + return { + 'node_id' : node_id, + 'node_type' : node_type, + 'title' : title, + 'blocks' : [] + } + + +def _get_content_dfs(item): + + def dfs_child(child, lines): + if 'children' in child: + for c in child['children']: + dfs_child(c, lines) + else: + if 'raw' in child: + lines.append(child['raw']) + return lines + + text_lines = dfs_child(item, []) + content = '\n'.join(text_lines) + '\n' + + return content + + +def _add_content_to_block(content, block): + + while content.endswith('\n'): + content = content[:-1] + + if len(content) > 0: + content_node = _init_node('ContentNode', '文字内容') + content_node['content'] = content + del content_node['blocks'] + block['blocks'].append(content_node) + + return block + + +def _update_heading_recursive(hierarchy_blocks, heading_depth, content): + + upper_level = max([heading_depth - i for i in range(1, heading_depth + 1) \ + if hierarchy_blocks[heading_depth - i] is not None]) + + # add content + if heading_depth == len(hierarchy_blocks) or hierarchy_blocks[heading_depth] is None: + hierarchy_blocks[upper_level] = _add_content_to_block( + content, hierarchy_blocks[upper_level]) + # update heading tree + else: + _update_heading_recursive(hierarchy_blocks, heading_depth + 1, content) + hierarchy_blocks[upper_level]['blocks'].append(hierarchy_blocks[heading_depth]) + hierarchy_blocks[heading_depth] = None + + return hierarchy_blocks + + +def _process_heading(item, hierarchy_blocks, content): + + heading_depth = item['attrs']['level'] + heading_text = item['children'][0]['raw'] + + if heading_depth < len(hierarchy_blocks): + hierarchy_blocks = _update_heading_recursive(hierarchy_blocks, heading_depth, content) + hierarchy_blocks[heading_depth] = _init_node('Level#%dHeadingNode' %heading_depth, heading_text) + content = '' + else: + content += '#' * heading_depth + ' ' + heading_text + '\n' + + return hierarchy_blocks, content + + +def _process_block(block, doc_json, max_heading_depth): + + content = '' + hierarchy_blocks = [doc_json] + [None] * max_heading_depth + + for item in block: + if item['type'] == 'heading': + hierarchy_blocks, content = _process_heading(item, hierarchy_blocks, content) + elif item['type'] in ['blank_line', 'thematic_break']: + continue + elif item['type'] in ['paragraph', 'list', 'block_quote']: + content += _get_content_dfs(item) + elif item['type'] in ['block_code', 'block_html']: + content += item['raw'] + '\n' + else: + raise ValueError('Unknown Type %s !!!' %item['type']) + + hierarchy_blocks = _update_heading_recursive(hierarchy_blocks, 1, content) + + return hierarchy_blocks[0] + + +def _update_node_id_title_dfs(doc_json): + + def dfs_recursive(node, node_id_list=[], title_list=[]): + + node_id_list.append(node['node_id']) + node['node_id'] = '-'.join(node_id_list) + + title_list.append(node['title']) + # node['title'] = '-'.join(title_list) + node['title'] = title_list.copy() + + if 'blocks' in node: + for block in node['blocks']: + node_id_list, title_list = dfs_recursive( + block, node_id_list, title_list) + + node_id_list = node_id_list[:-1] + title_list = title_list[:-1] + + return node_id_list, title_list + + dfs_recursive(doc_json) + + +def parse_markdown_mistune(file_path, doc_title=None, max_heading_depth=2): + + import mistune + + if not file_path.endswith('.md'): + raise ValueError('Not a markdown file !!!') + + with open(file_path, 'r', encoding='utf-8') as file: + markdown_content = file.read() + + mistune_parser = mistune.Markdown() + document = mistune_parser.parse(markdown_content) + print('Markdown parsing done.') + document, level_offset, max_depth = _get_heading_level_offset(document) + if max_heading_depth is None or max_heading_depth <= 0: + max_heading_depth = max_depth + + file_tile = file_path.split('/')[-1].replace('.md', '') + doc_title = file_tile if doc_title is None else '-'.join([doc_title, file_tile]) + doc_json = _init_node('DocumentNode', doc_title, id_len=8) + + for block in document: + if not isinstance(block, list): continue + doc_json = _process_block(block, doc_json, max_heading_depth) + # print(doc_json) + _update_node_id_title_dfs(doc_json) + # print(doc_json) + # with open('markdown_test.json','w',encoding='utf-8') as f_w: + # json.dump(doc_json,f_w,ensure_ascii=False) + print('Tree building done.') + return doc_json + + +def _convert_to_node_lists_dfs(parsing_json): + + node_lists = {} + + def traverse_and_group_by_depth(node, depth, group): + node_info = node.copy() + if 'blocks' in node_info: + node_info['child_id_list'] = [block['node_id'] for block in node_info['blocks']] + del node_info['blocks'] + if depth not in node_lists.keys(): + node_lists[depth] = [node_info] + else: + node_lists[depth].append(node_info) + if 'blocks' not in node.keys(): + return + for child in node['blocks']: + traverse_and_group_by_depth(child, depth + 1, node_lists) + + for doc_json in parsing_json: + traverse_and_group_by_depth(doc_json, 0, node_lists) + + return node_lists + +def convert_node_to_document(node_lists): + doc_lst = [ ] + for k,v in node_lists.items(): + for item in v: + if item['node_type'].startswith('Level'): + if len(item['child_id_list']) == 0: #是一个单独的标题,并且没有子节点,可能是markdown解析出现了问题 + title_lst = [] + for index,title in enumerate(item['title']): + title_lst.append('#'*(index+1)+title) + doc = Document(page_content='',metadata={'title_lst':title_lst,'has_table':False}) + doc_lst.append(doc) + if item['node_type'] == 'ContentNode': + title_lst = [] + for index,title in enumerate(item['title'][:-1]): + title_lst.append('#'*(index+1)+title) + has_table = contains_table(item['content']) + doc = Document(page_content=item['content'],metadata={'title_lst':title_lst,'has_table':has_table}) + doc_lst.append(doc) + return doc_lst + + +def convert_markdown_to_langchaindoc(md_file): + doc_json = parse_markdown_mistune(md_file) + node_lists = _convert_to_node_lists_dfs([doc_json]) + doc_lst = convert_node_to_document(node_lists) + return doc_lst + + +if __name__ =='__main__': + doc_lst = convert_markdown_to_langchaindoc('/ssd8/exec/qinhaibo/code/RAG/release/git/document-layout-parser/results/樊昊天个人简历_1715841225/樊昊天个人简历_md/樊昊天个人简历.md') + print(doc_lst) \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/convert2markdown.py b/qanything_kernel/utils/loader/pdf_to_markdown/convert2markdown.py new file mode 100644 index 00000000..b2d88b29 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/convert2markdown.py @@ -0,0 +1,50 @@ +import json +import re + + +def json2markdown(json_dir, markdown_dir): + pdf = [] + para_before = '' + before_patt = ['[a-z]', ',', ',', '-', '\(', '\)', '(', ')'] + after_patt = ['[a-z]', '·', '\(', '\)', '(', ')'] + js = json_dir + f = json.load(open(js)) + md = markdown_dir + for i, section in f.items(): + text = section['text'] + type = section['type'] + if isinstance(text, dict): + table = text['table_markdown'] + caption = text['table_caption'] + pdf.append(table) + pdf.append(caption + '\n\n') + elif type.startswith('title'): + pdf.append('## '+text.split('@@')[0]) + elif 'figure' in type: + pdf.append('![figure]'+'({}.jpg "{}")'.format(type, text) + '\n') + elif 'equation' in type: + pdf.append('![equation]'+'({}.jpg)'.format(type) + '\n') + else: + para = text.split('@@')[0] + '\n' + pdf.append(para) + if para_before: + if any([re.match(p, para_before[-2]) for p in before_patt]) and any([re.match(p, para[0]) for p in after_patt]): + pdf.pop(pdf.index(para)) + pdf.pop(pdf.index(para_before)) + pdf.append(para_before[:-1] + ' ' + para) + para_before = para_before[:-1] + ' ' + para + else: + para_before = para + else: + para_before = para + # print(pdf, flush=True) + for p in pdf: + print(p, file=open(md, 'a')) + return '\n'.join(pdf) + + + + +if __name__ =='__main__': + json_dir = '/ssd8/exec/qinhaibo/code/RAG/release/git/document-layout-parser/table_test.json' + json2markdown(json_dir) \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/__init__.py new file mode 100644 index 00000000..8af58ff0 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/__init__.py @@ -0,0 +1 @@ +from .table_parser_e2e import TableRecognizer \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_model.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_model.py new file mode 100644 index 00000000..ceea9d73 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_model.py @@ -0,0 +1,274 @@ +import cv2 +import os +import numpy as np +import onnxruntime +from tqdm import tqdm +import torch + + +class YOLOV8: + + def __init__(self, path, conf_thres=0.4, iou_thres=0.5, imgsz=(800, 800), device=None): + self.conf_threshold = conf_thres + self.iou_threshold = iou_thres + self.imgsz = imgsz + + # Initialize model + self.initialize_model(path,device) + + def __call__(self, image): + return self.box_objects(image) + + def initialize_model(self, path, device): + if device == torch.device('cuda'): + self.session = onnxruntime.InferenceSession(path,providers=['CUDAExecutionProvider']) + else: + self.session = onnxruntime.InferenceSession(path,providers=['CPUExecutionProvider']) + # Get model info + self.get_input_details() + self.get_output_details() + + def box_objects(self, image): + input_tensor,h,w = self.prepare_input(image) + + # Perform inference on the image + outputs = self.inference(input_tensor) + self.boxes, self.scores, self.class_ids = self.process_box_output(outputs[0],h,w) + + return self.boxes, self.scores, self.class_ids + + # def prepare_input(self, image): + # self.img_height, self.img_width = image.shape[:2] + + # input_img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + + # # Resize input image + # scaled_img = cv2.resize(input_img, (self.imgsz[1], self.imgsz[0])) + # input_img = scaled_img + + # h,w = scaled_img.shape[:2] + + # # Scale input pixel values to 0 to 1 + # input_img = input_img / 255.0 + # input_img = input_img.transpose(2, 0, 1) + # input_tensor = input_img[np.newaxis, :, :, :].astype(np.float32) + + # return input_tensor,h,w + + def prepare_input(self, image): + self.img_height, self.img_width = image.shape[:2] + + input_img = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) + + # Resize input image + scale = min(self.imgsz[0] / self.img_height, self.imgsz[1] / self.img_width) + scaled_img = cv2.resize(input_img, (int(round(scale * self.img_width)), int(round(scale * self.img_height)))) + dw, dh = self.imgsz[1] - scaled_img.shape[1], self.imgsz[0] - scaled_img.shape[0] + dw /= 2 # divide padding into 2 sides + dh /= 2 + top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1)) + left, right = int(round(dw - 0.1)), int(round(dw + 0.1)) + scaled_img = cv2.copyMakeBorder(scaled_img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(114, 114, 114)) + input_img = scaled_img + + h,w = scaled_img.shape[:2] + + # Scale input pixel values to 0 to 1 + input_img = input_img / 255.0 + input_img = input_img.transpose(2, 0, 1) + input_tensor = input_img[np.newaxis, :, :, :].astype(np.float32) + + return input_tensor,h,w + + def scale_boxes(self, img1_shape, boxes, img0_shape, ratio_pad=None): + if ratio_pad is None: # calculate from img0_shape + gain = min(img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]) # gain = old / new + pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (img1_shape[0] - img0_shape[0] * gain) / 2 # wh padding + else: + gain = ratio_pad[0][0] + pad = ratio_pad[1] + + boxes[..., [0, 2]] -= pad[0] # x padding + boxes[..., [1, 3]] -= pad[1] # y padding + boxes[..., :4] /= gain + self.clip_boxes(boxes, img0_shape) + return boxes + + def clip_boxes(self, boxes, shape): + boxes[..., [0, 2]] = boxes[..., [0, 2]].clip(0, shape[1]) # x1, x2 + boxes[..., [1, 3]] = boxes[..., [1, 3]].clip(0, shape[0]) # y1, y2 + + + def inference(self, input_tensor): + outputs = self.session.run(self.output_names, {self.input_names[0]: input_tensor}) + + return outputs + + def process_box_output(self, box_output,h,w): + predictions = np.squeeze(box_output).T + num_classes = box_output.shape[1] - 4 + # Filter out object confidence scores below threshold + scores = np.max(predictions[:, 4:4+num_classes], axis=1) + predictions = predictions[scores > self.conf_threshold, :] + scores = scores[scores > self.conf_threshold] + if len(scores) == 0: + return [], [], [] + + box_predictions = predictions[..., :num_classes+4] + + # Get the class with the highest confidence + class_ids = np.argmax(box_predictions[:, 4:], axis=1) + + # Get bounding boxes for each object + boxes = self.extract_boxes(box_predictions,h,w) + + # Apply non-maxima suppression to suppress weak, overlapping bounding boxes + #indices = nms_rc(boxes, scores, self.iou_threshold) + indices = nms(boxes, scores, self.iou_threshold) + + return boxes[indices], scores[indices], class_ids[indices] + + + def extract_boxes(self, box_predictions,h,w): + # Extract boxes from predictions + boxes = box_predictions[:, :4] + + # Scale boxes to original image dimensions + # boxes = self.rescale_boxes(boxes, + # (h, w), + # (self.img_height, self.img_width)) + + # Convert boxes to xyxy format + boxes = xywh2xyxy(boxes) + # Scale boxes to original image dimensions + boxes = self.scale_boxes((h, w), + boxes, + (self.img_height, self.img_width)) + + # Check the boxes are within the image + # boxes[:, 0] = np.clip(boxes[:, 0], 0, self.img_width) + # boxes[:, 1] = np.clip(boxes[:, 1], 0, self.img_height) + # boxes[:, 2] = np.clip(boxes[:, 2], 0, self.img_width) + # boxes[:, 3] = np.clip(boxes[:, 3], 0, self.img_height) + + return boxes + + def get_input_details(self): + model_inputs = self.session.get_inputs() + self.input_names = [model_inputs[i].name for i in range(len(model_inputs))] + + # self.input_shape = model_inputs[0].shape + # self.input_height = self.input_shape[2] + # self.input_width = self.input_shape[3] + + def get_output_details(self): + model_outputs = self.session.get_outputs() + self.output_names = [model_outputs[i].name for i in range(len(model_outputs))] + + @staticmethod + def rescale_boxes(boxes, input_shape, image_shape): + # Rescale boxes to original image dimensions + input_shape = np.array([input_shape[1], input_shape[0], input_shape[1], input_shape[0]]) + boxes = np.divide(boxes, input_shape, dtype=np.float32) + boxes *= np.array([image_shape[1], image_shape[0], image_shape[1], image_shape[0]]) + + return boxes + +def nms(boxes, scores, iou_threshold): + # Sort by score + sorted_indices = np.argsort(scores)[::-1] + # print(boxes.shape) + # print(scores.shape) + keep_boxes = [] + while sorted_indices.size > 0: + # Pick the last box + box_id = sorted_indices[0] + keep_boxes.append(box_id) + + # Compute IoU of the picked box with the rest + ious = compute_iou(boxes[box_id, :], boxes[sorted_indices[1:], :]) + + # Remove boxes with IoU over the threshold + keep_indices = np.where(ious < iou_threshold)[0] + + # print(keep_indices.shape, sorted_indices.shape) + sorted_indices = sorted_indices[keep_indices + 1] + + return keep_boxes + +def compute_iou(box, boxes): + # Compute xmin, ymin, xmax, ymax for both boxes + xmin = np.maximum(box[0], boxes[:, 0]) + ymin = np.maximum(box[1], boxes[:, 1]) + xmax = np.minimum(box[2], boxes[:, 2]) + ymax = np.minimum(box[3], boxes[:, 3]) + + # Compute intersection area + intersection_area = np.maximum(0, xmax - xmin) * np.maximum(0, ymax - ymin) + + # Compute union area + box_area = (box[2] - box[0]) * (box[3] - box[1]) + boxes_area = (boxes[:, 2] - boxes[:, 0]) * (boxes[:, 3] - boxes[:, 1]) + union_area = box_area + boxes_area - intersection_area + + # Compute IoU + iou = intersection_area / union_area + + return iou + +def xywh2xyxy(x): + # Convert bounding box (x, y, w, h) to bounding box (x1, y1, x2, y2) + y = np.copy(x) + y[..., 0] = x[..., 0] - x[..., 2] / 2 + y[..., 1] = x[..., 1] - x[..., 3] / 2 + y[..., 2] = x[..., 0] + x[..., 2] / 2 + y[..., 3] = x[..., 1] + x[..., 3] / 2 + return y + + +def sigmoid(x): + return 1 / (1 + np.exp(-x)) + + + + # if self.class_names[class_ids[idx]] == 'Caption': + + + + + + + + + + +# model_path = '/ssd7/exec/huangjy/ultralytics/runs/detect/train81/weights//best.onnx' +# yolov8 = YOLOV8(model_path, conf_thres=0.4, iou_thres=0.65,imgsz=(800, 800)) + +# test_dir = '/ssd8/exec/huangjy/ultralytics/' +# files = [item for item in os.listdir(test_dir) if item.endswith('.jpg')] + +# class_names = ( +# 'Text', 'Title', 'Figure', 'Equation', 'Table', +# 'Caption', 'Header', 'Footer', 'BibInfo', 'Reference', +# 'Content', 'Code', 'Other', 'Item', 'Author', +# ) +# for file in tqdm(files): +# img_path = os.path.join(test_dir,file) +# img = cv2.imread(file) +# h, w = img.shape[:2] +# # Detect Objects +# boxes, scores, class_ids = yolov8(img) +# for idx, box in enumerate(boxes): +# color = np.random.rand(3) * 160 +# cv2.rectangle(img, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), color) +# cv2.putText(img, '%.3f %s' % (scores[idx], class_names[class_ids[idx]]), +# (int(box[0]), int(box[1]) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2) +# cv2.imwrite('{}_res.jpg'.format(os.path.basename(file)[:-4]), img) +# # 输出的结果 +# """ +# boxes: 输出的bounding box,正矩形。N*4 +# scored: 每个框的置信度。N +# class_ids: 每个框的类别 +# """ + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_parser.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_parser.py new file mode 100644 index 00000000..4ef333d5 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/layout_parser.py @@ -0,0 +1,108 @@ +import numpy as np +import cv2 +import math +from layout.layout_model import YOLOV8 +from layout.table_cls.infer_onnx import TableCls +from layout.table_rec.pipeline import TableParser +import torch + + + + +def distance(x1,y1,x2,y2): + return math.sqrt((x2-x1)**2 + (y2-y1)**2) + + +class LayoutParser(object): + def __init__(self,device=torch.device("cuda")): + model_path = 'layout/best.onnx' + self.model = YOLOV8(model_path, conf_thres=0.4, iou_thres=0.65,imgsz=(800, 800),device=device) + self.class_names = ('Text', 'Title', 'Figure', 'Equation', 'Table','Caption', 'Header', 'Footer', 'BibInfo', 'Reference','Content', 'Code', 'Other', 'Item', 'Author',) + + self.table_cls = TableCls(device=device) + self.table_parse = TableParser(device=device) + + + def process_image(self,image): + boxes, scores, class_ids = self.model(image) + for idx, box in enumerate(boxes): + # print(box) + color = np.random.rand(3) * 160 + image = np.int32(image) + image = cv2.rectangle(image, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), color) + image = cv2.putText(image, '%.3f %s' % (scores[idx], self.class_names[class_ids[idx]]), + (int(box[0]), int(box[1]) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2) + # cv2.imwrite('tmp_res.jpg',image) + + def get_min_dis_box(self,caption_boxes,box): + dis = 1e6 + min_box = None + for c_box in caption_boxes: + # print(c_box) + c_x, c_y = (c_box[0] + c_box[2]) / 2, (c_box[1] + c_box[3]) / 2 + x, y = (box[0] + box[2]) / 2, (box[1] + box[3]) / 2 + c_dis = distance(c_x, c_y, x, y) + # print('*********') + # print(box) + # print(c_box) + # print(c_dis) + if c_dis < dis: + min_box = c_box + dis = c_dis + return min_box + + def extract_table(self,image,ocr_result): + boxes, scores, class_ids = self.model(image.copy()) + table_dict = {} + index = 0 + caption_boxes = [] + for idx,(box,class_id) in enumerate(zip(boxes,class_ids)): + if self.class_names[class_ids[idx]] == 'Caption': + caption_boxes.append(box) + # print(len(caption_boxes)) + # print(caption_boxes) + # vis_img = image.copy() + # for idx, box in enumerate(boxes): + # color = np.random.rand(3) * 160 + # cv2.rectangle(vis_img, (int(box[0]), int(box[1])), (int(box[2]), int(box[3])), color) + # cv2.putText(vis_img, '%.3f %s' % (scores[idx], self.class_names[class_ids[idx]]), + # (int(box[0]), int(box[1]) - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.7, color, 2) + # cv2.imwrite('layout_vis.jpg', vis_img) + # print(caption_boxes) + for idx, box in enumerate(boxes): + if self.class_names[class_ids[idx]] == 'Table': + # print(box) + x1,y1,x2,y2 = int(box[0]),int(box[1]),int(box[2]),int(box[3]) + # print(x1,y1,x2,y2) + table_image = image[y1:y2,x1:x2,:] + + # cv2.imwrite('/ssd8/exec/qinhaibo/code/RAG/QAnything-master/tools/TreeIndex/paddle_test/table_tmp3.jpg',table_image) + table_type = self.table_cls.process(table_image.copy()) + # print(table_type) + # cv2.imwrite('/ssd8/exec/qinhaibo/code/RAG/QAnything-master/tools/TreeIndex/paddle_test/table_tmp4.jpg',table_image.copy()) + # ti = cv2.imread('/ssd8/exec/qinhaibo/code/RAG/QAnything-master/tools/TreeIndex/paddle_test/table_tmp3.jpg') + # table_html,table_markdown = self.table_parse.process(ti,table_type,convert2markdown=True) + table_html,table_markdown = self.table_parse.process(table_image.copy(),table_type,ocr_result=ocr_result,convert2markdown=True) + # print(table_str) + if len(caption_boxes) == 0: + related_caption_box = box + has_caption = False + else: + related_caption_box = self.get_min_dis_box(caption_boxes,box) + has_caption = True + c_x1,c_y1,c_x2,c_y2 = int(related_caption_box[0]),int(related_caption_box[1]),int(related_caption_box[2]),int(related_caption_box[3]) + caption_image = image[c_y1:c_y2, c_x1:c_x2] + table_dict[index] = { + 'has_caption': has_caption, + 'table_html': table_html, + 'table_markdown': table_markdown, + 'table_box': box, + 'caption_box': related_caption_box, + 'caption_image': caption_image, + } + index +=1 + # print(table_dict[0]['table_content']) + # print(table_dict[0]['caption_box']) + # print(len(table_dict.keys())) + #对table dict按照box的左上角顶点进行排序 + return table_dict \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_cls/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_cls/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_cls/infer_onnx.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_cls/infer_onnx.py new file mode 100644 index 00000000..f50d066e --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_cls/infer_onnx.py @@ -0,0 +1,33 @@ +import onnxruntime +from PIL import Image +import numpy as np +import torch +from torchvision import transforms +from qanything_kernel.configs.model_config import PDF_MODEL_PATH +import cv2 +import os + +data_transform = transforms.Compose( + [transforms.Resize((224, 224)), + transforms.ToTensor(), + transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]) +cls = {0: 'wired', 1: 'wireless'} + + +class TableCls(): + def __init__(self, device=torch.device('cpu')): + # 输出当前文件绝对路径 + cls_model = os.path.join(PDF_MODEL_PATH, 'checkpoints/table/table_cls_l.onnx') + if device == torch.device('cuda'): + self.table_cls = onnxruntime.InferenceSession(cls_model, None, providers=['CUDAExecutionProvider']) + else: + self.table_cls = onnxruntime.InferenceSession(cls_model, None, providers=['CPUExecutionProvider']) + + def process(self, image): + img = Image.fromarray(np.uint8(image)) + img = data_transform(img) + img = torch.unsqueeze(img, dim=0) + output = self.table_cls.run(None, {'input': img.numpy()}) + predict = torch.softmax(torch.from_numpy(output[0]), dim=1) + predict_cla = torch.argmax(predict, dim=1).numpy()[0] + return cls[predict_cla] diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_parser_e2e.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_parser_e2e.py new file mode 100644 index 00000000..52570d0a --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_parser_e2e.py @@ -0,0 +1,16 @@ +from .table_rec.pipeline import TableParser +from .table_cls.infer_onnx import TableCls + + +class TableRecognizer(): + def __init__(self, device): + print('table model initing...') + self.table_cls = TableCls(device) + self.table_parse = TableParser(device) + print('table model inited...') + + def extract_table(self, table_image, ocr_result): + table_type = self.table_cls.process(table_image.copy()) + table_html, table_markdown = self.table_parse.process(table_image.copy(), table_type, ocr_result=ocr_result, + convert2markdown=True) + return table_html, table_markdown diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table.py new file mode 100644 index 00000000..c58caeb4 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table.py @@ -0,0 +1,106 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import pycocotools.coco as coco +from pycocotools.cocoeval import COCOeval +import numpy as np +import json +import random +import os + +import torch.utils.data as data + +class Table(data.Dataset): + num_classes = 2 + table_size = 1024 + default_resolution = [1024, 1024] + mean = np.array([0.40789654, 0.44719302, 0.47026115], + dtype=np.float32).reshape(1, 1, 3) + std = np.array([0.28863828, 0.27408164, 0.27809835], + dtype=np.float32).reshape(1, 1, 3) + + def __init__(self, opt, split): + super(Table, self).__init__() + self.split = split + self.data_dir = os.path.join(opt.data_dir, opt.dataset_name) + print(self.data_dir) + self.img_dir = opt.image_dir + _ann_name = {'train':'train', 'val':'test','test':'test'} + self.annot_path = os.path.join(self.data_dir, 'json', '{}.json').format(_ann_name[split]) + print(self.annot_path) + + self.max_objs = 300 + self.max_pairs = 900 + self.max_cors = 1200 #800 #1200 #800 + + self.class_name = [ + '__background__', 'center','corner'] + self._valid_ids = [1,2] + self.cat_ids = {v: i for i, v in enumerate(self._valid_ids)} + self.voc_color = [(v // 32 * 64 + 64, (v // 8) % 4 * 64, v % 8 * 32) \ + for v in range(1, self.num_classes + 1)] + self._data_rng = np.random.RandomState(123) + self._eig_val = np.array([0.2141788, 0.01817699, 0.00341571], + dtype=np.float32) + self._eig_vec = np.array([ + [-0.58752847, -0.69563484, 0.41340352], + [-0.5832747, 0.00994535, -0.81221408], + [-0.56089297, 0.71832671, 0.41158938] + ], dtype=np.float32) + # self.mean = np.array([0.485, 0.456, 0.406], np.float32).reshape(1, 1, 3) + # self.std = np.array([0.229, 0.224, 0.225], np.float32).reshape(1, 1, 3) + + self.split = split + self.opt = opt + + print('==> initializing table {} data.'.format(split)) + self.coco = coco.COCO(self.annot_path) + self.images = self.coco.getImgIds() + self.num_samples = len(self.images) + + print('Loaded {} {} samples'.format(split, self.num_samples)) + + def _to_float(self, x): + return float("{:.2f}".format(x)) + + def convert_eval_format(self, all_bboxes, thresh): + # import pdb; pdb.set_trace() + detections = [] + for image_id in all_bboxes: + for cls_ind in all_bboxes[image_id]: + category_id = self._valid_ids[cls_ind - 1] + for bbox in all_bboxes[image_id][cls_ind]: + if bbox[4] > float(thresh): + bbox[2] -= bbox[0] + bbox[3] -= bbox[1] + score = bbox[4] + bbox_out = list(map(self._to_float, bbox[0:4])) + + detection = { + "image_id": int(image_id), + "category_id": int(category_id), + "bbox": bbox_out, + "score": float("{:.2f}".format(score)) + } + if len(bbox) > 5: + extreme_points = list(map(self._to_float, bbox[5:13])) + detection["extreme_points"] = extreme_points + detections.append(detection) + print('total:',len(detections)) + return detections + + def __len__(self): + return self.num_samples + + def save_results(self, results, save_dir, thresh): + json.dump(self.convert_eval_format(results, thresh), + open('{}/results.json'.format(save_dir), 'w')) + + def run_eval(self, results, save_dir, thresh): + self.save_results(results, save_dir, thresh) + coco_dets = self.coco.loadRes('{}/results.json'.format(save_dir)) + coco_eval = COCOeval(self.coco, coco_dets, "bbox") + coco_eval.evaluate() + coco_eval.accumulate() + coco_eval.summarize() diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_mid.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_mid.py new file mode 100644 index 00000000..5696c7fe --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_mid.py @@ -0,0 +1,106 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import pycocotools.coco as coco +from pycocotools.cocoeval import COCOeval +import numpy as np +import json +import random +import os + +import torch.utils.data as data + +class Table(data.Dataset): + num_classes = 2 + table_size = 768 + default_resolution = [768, 768] + mean = np.array([0.40789654, 0.44719302, 0.47026115], + dtype=np.float32).reshape(1, 1, 3) + std = np.array([0.28863828, 0.27408164, 0.27809835], + dtype=np.float32).reshape(1, 1, 3) + + def __init__(self, opt, split): + super(Table, self).__init__() + self.split = split + self.data_dir = os.path.join(opt.data_dir, opt.dataset_name) + print(self.data_dir) + self.img_dir = opt.image_dir + _ann_name = {'train':'train', 'val':'test','test':'test'} + self.annot_path = os.path.join(self.data_dir, 'json', '{}.json').format(_ann_name[split]) + print(self.annot_path) + + self.max_objs = 300 + self.max_pairs = 900 + self.max_cors = 1200 #800 #1200 #800 + + self.class_name = [ + '__background__', 'center','corner'] + self._valid_ids = [1,2] + self.cat_ids = {v: i for i, v in enumerate(self._valid_ids)} + self.voc_color = [(v // 32 * 64 + 64, (v // 8) % 4 * 64, v % 8 * 32) \ + for v in range(1, self.num_classes + 1)] + self._data_rng = np.random.RandomState(123) + self._eig_val = np.array([0.2141788, 0.01817699, 0.00341571], + dtype=np.float32) + self._eig_vec = np.array([ + [-0.58752847, -0.69563484, 0.41340352], + [-0.5832747, 0.00994535, -0.81221408], + [-0.56089297, 0.71832671, 0.41158938] + ], dtype=np.float32) + # self.mean = np.array([0.485, 0.456, 0.406], np.float32).reshape(1, 1, 3) + # self.std = np.array([0.229, 0.224, 0.225], np.float32).reshape(1, 1, 3) + + self.split = split + self.opt = opt + + print('==> initializing table {} data.'.format(split)) + self.coco = coco.COCO(self.annot_path) + self.images = self.coco.getImgIds() + self.num_samples = len(self.images) + + print('Loaded {} {} samples'.format(split, self.num_samples)) + + def _to_float(self, x): + return float("{:.2f}".format(x)) + + def convert_eval_format(self, all_bboxes, thresh): + # import pdb; pdb.set_trace() + detections = [] + for image_id in all_bboxes: + for cls_ind in all_bboxes[image_id]: + category_id = self._valid_ids[cls_ind - 1] + for bbox in all_bboxes[image_id][cls_ind]: + if bbox[4] > float(thresh): + bbox[2] -= bbox[0] + bbox[3] -= bbox[1] + score = bbox[4] + bbox_out = list(map(self._to_float, bbox[0:4])) + + detection = { + "image_id": int(image_id), + "category_id": int(category_id), + "bbox": bbox_out, + "score": float("{:.2f}".format(score)) + } + if len(bbox) > 5: + extreme_points = list(map(self._to_float, bbox[5:13])) + detection["extreme_points"] = extreme_points + detections.append(detection) + print('total:',len(detections)) + return detections + + def __len__(self): + return self.num_samples + + def save_results(self, results, save_dir, thresh): + json.dump(self.convert_eval_format(results, thresh), + open('{}/results.json'.format(save_dir), 'w')) + + def run_eval(self, results, save_dir, thresh): + self.save_results(results, save_dir, thresh) + coco_dets = self.coco.loadRes('{}/results.json'.format(save_dir)) + coco_eval = COCOeval(self.coco, coco_dets, "bbox") + coco_eval.evaluate() + coco_eval.accumulate() + coco_eval.summarize() diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_small.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_small.py new file mode 100644 index 00000000..eeab2265 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset/table_small.py @@ -0,0 +1,106 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import pycocotools.coco as coco +from pycocotools.cocoeval import COCOeval +import numpy as np +import json +import random +import os + +import torch.utils.data as data + +class Table(data.Dataset): + num_classes = 2 + table_size = 512 + default_resolution = [512, 512] + mean = np.array([0.40789654, 0.44719302, 0.47026115], + dtype=np.float32).reshape(1, 1, 3) + std = np.array([0.28863828, 0.27408164, 0.27809835], + dtype=np.float32).reshape(1, 1, 3) + + def __init__(self, opt, split): + super(Table, self).__init__() + self.split = split + self.data_dir = os.path.join(opt.data_dir, opt.dataset_name) + print(self.data_dir) + self.img_dir = opt.image_dir + _ann_name = {'train':'train', 'val':'test','test':'test'} + self.annot_path = os.path.join(self.data_dir, 'json', '{}.json').format(_ann_name[split]) + print(self.annot_path) + + self.max_objs = 300 + self.max_pairs = 900 + self.max_cors = 1200 #800 #1200 #800 + + self.class_name = [ + '__background__', 'center','corner'] + self._valid_ids = [1,2] + self.cat_ids = {v: i for i, v in enumerate(self._valid_ids)} + self.voc_color = [(v // 32 * 64 + 64, (v // 8) % 4 * 64, v % 8 * 32) \ + for v in range(1, self.num_classes + 1)] + self._data_rng = np.random.RandomState(123) + self._eig_val = np.array([0.2141788, 0.01817699, 0.00341571], + dtype=np.float32) + self._eig_vec = np.array([ + [-0.58752847, -0.69563484, 0.41340352], + [-0.5832747, 0.00994535, -0.81221408], + [-0.56089297, 0.71832671, 0.41158938] + ], dtype=np.float32) + # self.mean = np.array([0.485, 0.456, 0.406], np.float32).reshape(1, 1, 3) + # self.std = np.array([0.229, 0.224, 0.225], np.float32).reshape(1, 1, 3) + + self.split = split + self.opt = opt + + print('==> initializing table {} data.'.format(split)) + self.coco = coco.COCO(self.annot_path) + self.images = self.coco.getImgIds() + self.num_samples = len(self.images) + + print('Loaded {} {} samples'.format(split, self.num_samples)) + + def _to_float(self, x): + return float("{:.2f}".format(x)) + + def convert_eval_format(self, all_bboxes, thresh): + # import pdb; pdb.set_trace() + detections = [] + for image_id in all_bboxes: + for cls_ind in all_bboxes[image_id]: + category_id = self._valid_ids[cls_ind - 1] + for bbox in all_bboxes[image_id][cls_ind]: + if bbox[4] > float(thresh): + bbox[2] -= bbox[0] + bbox[3] -= bbox[1] + score = bbox[4] + bbox_out = list(map(self._to_float, bbox[0:4])) + + detection = { + "image_id": int(image_id), + "category_id": int(category_id), + "bbox": bbox_out, + "score": float("{:.2f}".format(score)) + } + if len(bbox) > 5: + extreme_points = list(map(self._to_float, bbox[5:13])) + detection["extreme_points"] = extreme_points + detections.append(detection) + print('total:',len(detections)) + return detections + + def __len__(self): + return self.num_samples + + def save_results(self, results, save_dir, thresh): + json.dump(self.convert_eval_format(results, thresh), + open('{}/results.json'.format(save_dir), 'w')) + + def run_eval(self, results, save_dir, thresh): + self.save_results(results, save_dir, thresh) + coco_dets = self.coco.loadRes('{}/results.json'.format(save_dir)) + coco_eval = COCOeval(self.coco, coco_dets, "bbox") + coco_eval.evaluate() + coco_eval.accumulate() + coco_eval.summarize() diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset_factory.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset_factory.py new file mode 100644 index 00000000..bd00b272 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/dataset_factory.py @@ -0,0 +1,28 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from .sample.ctdet import CTDetDataset + +from .dataset.table import Table +from .dataset.table_small import Table as Table_small +from .dataset.table_mid import Table as Table_mid + + +dataset_factory = { + 'table':Table, + 'table_mid':Table_mid, + 'table_small':Table_small +} + +_sample_factory = { + 'ctdet': CTDetDataset, + 'ctdet_mid': CTDetDataset, + 'ctdet_small': CTDetDataset +} + +def get_dataset(dataset, task): + class Dataset(dataset_factory[dataset], _sample_factory[task]): + pass + return Dataset + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/sample/ctdet.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/sample/ctdet.py new file mode 100644 index 00000000..ef43ac0e --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/datasets/sample/ctdet.py @@ -0,0 +1,380 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import torch.utils.data as data +import numpy as np +import torch +import json +import cv2 +import os +from utils.image import flip, color_aug +from utils.image import get_affine_transform, affine_transform, get_affine_transform_upper_left +from utils.post_process import ctdet_4ps_post_process +from utils.image import gaussian_radius, draw_umich_gaussian, draw_umich_gaussian_wh, draw_msra_gaussian +from utils.image import draw_dense_reg +from utils.adjacency import adjacency, h_adjacency, v_adjacency, same_col, same_row +import math +import time +import random +import imgaug.augmenters as iaa +import time + +class CTDetDataset(data.Dataset): + def _coco_box_to_bbox(self, box): + bbox = np.array([box[0], box[1], box[0] + box[2], box[1] + box[3]], + dtype=np.float32) + return bbox + + def _get_border(self, border, size): + i = 1 + while size - border // i <= border // i: + i *= 2 + return border // i + + def _get_border_upper_left(self, border, size): + i = 1 + while size/2 - border // i <= border // i: + i *= 2 + return border // i + + def _get_radius(self,r,w,h): + if w > h: + k = float(w)/float(h) + else: + k = float(h)/float(w) + ratio = k**0.5 + if w>h: + r_w = r*ratio + r_h = r + else: + r_h = r*ratio + r_w = r + return int(r_w),int(r_h) + + def color(self,image,p,magnitude): + if np.random.randint(0,10) > p*10: + return image + gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + bgr_img = cv2.cvtColor(gray_img, cv2.COLOR_GRAY2BGR) + img_float,bgr_img_float = img.astype(float), bgr_img.astype(float) + diff = img_float - bgr_img_float + diff = diff*magnitude + diff_img_ = diff + bgr_img_float + diff_img_ = diff_img_.astype(np.uint8) + diff_img_ = np.array(diff_img_) + diff_img_ = np.clip(diff_img_,0,255) + diff_img_ = cv2.cvtColor(diff_img_,cv2.COLOR_BGR2RGB) + diff_img_ = cv2.cvtColor(diff_img_,cv2.COLOR_RGB2BGR) + return diff_img_ + + def rotate(self,p,magnitude): + if np.random.randint(0,10) > p*10: + return 0 + rot = np.random.randint(magnitude[0],magnitude[1]) + return rot + + def hisEqulColor(self,img): + (b, g, r) = cv2.split(img) + bH = cv2.equalizeHist(b) + gH = cv2.equalizeHist(g) + rH = cv2.equalizeHist(r) + result = cv2.merge((bH, gH, rH)) + return img + + def _judge(self,box): + countx = len(list(set([box[0],box[2],box[4],box[6]]))) + county = len(list(set([box[1],box[3],box[5],box[7]]))) + if countx<2 or county<2: + return False + + return True + + def _get_Center(self, point): + x1 = point[0] + y1 = point[1] + x3 = point[2] + y3 = point[3] + x2 = point[4] + y2 = point[5] + x4 = point[6] + y4 = point[7] + w1 = math.sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)) + w2 = math.sqrt((x2-x4)*(x2-x4)+(y2-y4)*(y2-y4)) + h1 = math.sqrt((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4)) + h2 = math.sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)) + nw = min(w1,w2) + nh = min(h1,h2) + x_dev = x4*y2-x4*y1-x3*y2+x3*y1-x2*y4+x2*y3+x1*y4-x1*y3 + y_dev = y4*x2-y4*x1-y3*x2+x1*y3-y2*x4+y2*x3+y1*x4-y1*x3 + c_x = 0 + c_y = 0 + if x_dev != 0: + c_x = (y3*x4*x2-y4*x3*x2-y3*x4*x1+y4*x3*x1-y1*x2*x4+y2*x1*x4+y1*x2*x3-y2*x1*x3)/x_dev + if y_dev != 0: + c_y = (-y3*x4*y2+y4*x3*y2+y3*x4*y1-y4*x3*y1+y1*x2*y4-y1*x2*y3-y2*x1*y4+y2*x1*y3)/y_dev + return nw,nh,c_x,c_y + + def _rank(self,bbox,cter,file_name): + init_bbox = bbox + #bbox = list(map(float,bbox)) + continue_sign = False + bbox = [bbox[0:2],bbox[2:4],bbox[4:6],bbox[6:8]] + bbox_= np.array(bbox) - np.array(cter) + i,box_y,sign= 0,[],'LT' + choice = [] + for box in bbox_: + if box[0]<0 and box[1]<0: + box_y.append(box) + choice.append(i) + i = i + 1 + if len(choice)==0: + i,box_y,sign = 0,[],'RT' + for box in bbox_: + if box[0]>0 and box[1]<0: + box_y.append(box) + choice.append(i) + i = i + 1 + if sign=='LT': + ylist = np.array(box_y)[:,1] + #index = list(ylist).index(max(ylist)) + index = list(ylist).index(min(ylist)) + elif sign=='RT': + try: + xlist = np.array(box_y)[:,0] + except Exception as e: + print("center:",cter,"box:",init_bbox,"box_y:",box_y) + return True,bbox + index = list(xlist).index(min(xlist)) + + index = choice[index] + p = [] + for i in range(4): + if i + index < 4: + p.append(bbox[index+i]) + else: + p.append(bbox[index+i-4]) + return continue_sign,[p[0][0],p[0][1],p[1][0],p[1][1],p[2][0],p[2][1],p[3][0],p[3][1]] + + def __getitem__(self, index): + img_id = self.images[index] + file_name = self.coco.loadImgs(ids=[img_id])[0]['file_name'] + if self.opt.dataset_name == 'ICDAR19': + if self.split == 'train': + img_path = os.path.join(self.img_dir, 'train_images' ,file_name) + else: + img_path = os.path.join(self.img_dir, 'test_images' ,file_name) + else: + img_path = os.path.join(self.img_dir, file_name) + ann_ids = self.coco.getAnnIds(imgIds=[img_id]) + anns = self.coco.loadAnns(ids=ann_ids) + num_objs = min(len(anns), self.max_objs) + num_cors = self.max_cors + if self.opt.dataset_name == 'TG24K': + img_path = img_path.replace('.jpg', '_org.png') + elif self.opt.dataset_name == 'SciTSR': + img_path = img_path.replace('.jpg', '.png') + elif self.opt.dataset_name == 'PTN': + img_path = img_path.replace('.jpg', '.png') + elif self.opt.dataset_name == 'bankdata_june': + img_path = img_path[:-4] + + img = cv2.imread(img_path) + img_size = img.shape + + height, width = img.shape[0], img.shape[1] + + if self.opt.upper_left: + c = np.array([0, 0], dtype=np.float32) + else: + c = np.array([img.shape[1] / 2., img.shape[0] / 2.], dtype=np.float32) + + if self.opt.keep_res: + input_h = (height | self.opt.pad)# + 1 + input_w = (width | self.opt.pad)# + 1 + s = np.array([input_w, input_h], dtype=np.float32) + else: + s = max(img.shape[0], img.shape[1]) * 1.0 + input_h, input_w = self.opt.input_h, self.opt.input_w + + + flipped = False + if self.split == 'train': + if not self.opt.not_rand_crop: + if self.opt.upper_left: + c = np.array([0, 0], dtype=np.float32) + else: + s = s * np.random.choice(np.arange(0.6, 1.4, 0.1)) + w_border = self._get_border(128, img.shape[1]) + h_border = self._get_border(128, img.shape[0]) + c[0] = np.random.randint(low=w_border, high=img.shape[1] - w_border) + c[1] = np.random.randint(low=h_border, high=img.shape[0] - h_border) + + else: + sf = self.opt.scale + cf = self.opt.shift + c[0] += s * np.clip(np.random.randn()*cf, -2*cf, 2*cf) + c[1] += s * np.clip(np.random.randn()*cf, -2*cf, 2*cf) + s = s * np.clip(np.random.randn()*sf + 1, 1 - sf, 1 + sf) + + rot = 0 + if self.opt.rotate==1: + print('----rotate----') + rot = np.random.randint(-15,15) + + output_h = input_h // self.opt.down_ratio + output_w = input_w // self.opt.down_ratio + + if self.opt.upper_left: + trans_input = get_affine_transform_upper_left(c, s, rot, [input_w, input_h]) + trans_output = get_affine_transform_upper_left(c, s, rot, [output_w, output_h]) + trans_output_mk = get_affine_transform_upper_left(c, s, rot, [output_w, output_h]) + else: + + trans_input = get_affine_transform(c, s, rot, [input_w, input_h]) + trans_output = get_affine_transform(c, s, rot, [output_w, output_h]) + trans_output_mk = get_affine_transform(c, s, rot, [output_w, output_h]) + + num_classes = self.num_classes + + hm = np.zeros((num_classes, output_h, output_w), dtype=np.float32) + wh = np.zeros((self.max_objs, 8), dtype=np.float32) + reg = np.zeros((self.max_objs*5, 2), dtype=np.float32) + st = np.zeros((self.max_cors, 8), dtype=np.float32) + hm_ctxy = np.zeros((self.max_objs, 2), dtype=np.float32) + hm_ind = np.zeros((self.max_objs), dtype=np.int64) + hm_mask = np.zeros((self.max_objs), dtype=np.uint8) + mk_ind = np.zeros((self.max_cors), dtype=np.int64) + mk_mask = np.zeros((self.max_cors), dtype=np.uint8) + reg_ind = np.zeros((self.max_objs*5), dtype=np.int64) + reg_mask = np.zeros((self.max_objs*5), dtype=np.uint8) + ctr_cro_ind = np.zeros((self.max_objs*4), dtype=np.int64) + log_ax = np.zeros((self.max_objs, 4), dtype=np.float32) + cc_match = np.zeros((self.max_objs, 4), dtype=np.int64) + h_pair_ind = np.zeros((self.max_pairs), dtype=np.int64) + v_pair_ind = np.zeros((self.max_pairs), dtype=np.int64) + draw_gaussian = draw_msra_gaussian if self.opt.mse_loss else \ + draw_umich_gaussian + gt_det = [] + corList = [] + point = [] + pair_mark = 0 + inp = cv2.warpAffine(img, trans_input, (input_w, input_h),flags=cv2.INTER_LINEAR) + + for k in range(num_objs): + ann = anns[k] + + seg_mask = ann['segmentation'][0] #[[351.0, 73.0, 172.0, 70.0, 174.0, 127.0, 351.0, 129.0, 351.0, 73.0]] + x1,y1 = seg_mask[0],seg_mask[1] + x2,y2 = seg_mask[2],seg_mask[3] + x3,y3 = seg_mask[4],seg_mask[5] + x4,y4 = seg_mask[6],seg_mask[7] + + CorNer = np.array([x1,y1,x2,y2,x3,y3,x4,y4]) + boxes = [[CorNer[0],CorNer[1]],[CorNer[2],CorNer[3]],\ + [CorNer[4],CorNer[5]],[CorNer[6],CorNer[7]]] + cls_id = int(self.cat_ids[ann['category_id']]) + + if flipped: + + CorNer[[0,2,4,6]] = width - CorNer[[2,0,6,4]] - 1 + + CorNer[0:2] = affine_transform(CorNer[0:2], trans_output_mk) + CorNer[2:4] = affine_transform(CorNer[2:4], trans_output_mk) + CorNer[4:6] = affine_transform(CorNer[4:6], trans_output_mk) + CorNer[6:8] = affine_transform(CorNer[6:8], trans_output_mk) + CorNer[[0,2,4,6]] = np.clip(CorNer[[0,2,4,6]], 0, output_w - 1) + CorNer[[1,3,5,7]] = np.clip(CorNer[[1,3,5,7]], 0, output_h - 1) + if not self._judge(CorNer): + continue + + maxx = max([CorNer[2*I] for I in range(0,4)]) + minx = min([CorNer[2*I] for I in range(0,4)]) + maxy = max([CorNer[2*I+1] for I in range(0,4)]) + miny = min([CorNer[2*I+1] for I in range(0,4)]) + h, w = maxy-miny, maxx-minx #bbox[3] - bbox[1], bbox[2] - bbox[0] + if h > 0 and w > 0: + + radius = gaussian_radius((math.ceil(h), math.ceil(w))) + radius = max(0, int(radius)) + radius = self.opt.hm_gauss if self.opt.mse_loss else radius + + ct = np.array([(maxx+minx)/2.0,(maxy+miny)/2.0], dtype=np.float32) + ct_int = ct.astype(np.int32) + + draw_gaussian(hm[cls_id], ct_int, radius) + + for i in range(4): + Cor = np.array([CorNer[2*i],CorNer[2*i+1]], dtype=np.float32) + Cor_int = Cor.astype(np.int32) + Cor_key = str(Cor_int[0])+"_"+str(Cor_int[1]) + if Cor_key not in corList: + + corNum = len(corList) + + corList.append(Cor_key) + reg[self.max_objs+corNum] = np.array([abs(Cor[0]-Cor_int[0]),abs(Cor[1]-Cor_int[1])]) + mk_ind[corNum] = Cor_int[1]*output_w + Cor_int[0] + cc_match[k][i] = mk_ind[corNum] + reg_ind[self.max_objs+corNum] = Cor_int[1]*output_w + Cor_int[0] + mk_mask[corNum] = 1 + reg_mask[self.max_objs+corNum] = 1 + draw_gaussian(hm[num_classes-1], Cor_int, 2) + st[corNum][i*2:(i+1)*2] = np.array([Cor[0]-ct[0],Cor[1]-ct[1]]) + ctr_cro_ind[4*k+i] = corNum*4 + i + + else: + index_of_key = corList.index(Cor_key) + cc_match[k][i] = mk_ind[index_of_key] + st[index_of_key][i*2:(i+1)*2] = np.array([Cor[0]-ct[0],Cor[1]-ct[1]]) + ctr_cro_ind[4*k+i] = index_of_key*4 + i + + wh[k] = ct[0] - 1. * CorNer[0], ct[1] - 1. * CorNer[1], \ + ct[0] - 1. * CorNer[2], ct[1] - 1. * CorNer[3], \ + ct[0] - 1. * CorNer[4], ct[1] - 1. * CorNer[5], \ + ct[0] - 1. * CorNer[6], ct[1] - 1. * CorNer[7] + + hm_ind[k] = ct_int[1] * output_w + ct_int[0] + hm_mask[k] = 1 + reg_ind[k] = ct_int[1] * output_w + ct_int[0] + reg_mask[k] = 1 + reg[k] = ct - ct_int + hm_ctxy[k] = ct[0],ct[1] + + log_ax[k] = ann['logic_axis'][0][0], ann['logic_axis'][0][1], ann['logic_axis'][0][2], ann['logic_axis'][0][3] + + + gt_det.append([ct[0] - 1. * CorNer[0], ct[1] - 1. * CorNer[1], + ct[0] - 1. * CorNer[2], ct[1] - 1. * CorNer[3], + ct[0] - 1. * CorNer[4], ct[1] - 1. * CorNer[5], + ct[0] - 1. * CorNer[6], ct[1] - 1. * CorNer[7], 1, cls_id]) + + hm_mask_v = hm_mask.reshape(1, hm_mask.shape[0]) + + inp = (inp.astype(np.float32) / 255.) + if self.split == 'train' and not self.opt.no_color_aug: + color_aug(self._data_rng, inp, self._eig_val, self._eig_vec) + + + inp = (inp - self.mean) / self.std + inp = inp.transpose(2, 0, 1) + + ret = {'input': inp, 'hm': hm, 'hm_ind':hm_ind, 'hm_mask':hm_mask, 'mk_ind':mk_ind, 'mk_mask':mk_mask, 'reg':reg,'reg_ind':reg_ind,'reg_mask': reg_mask, \ + 'wh': wh,'st':st, 'ctr_cro_ind':ctr_cro_ind, 'cc_match': cc_match, 'hm_ctxy':hm_ctxy, 'logic': log_ax, 'h_pair_ind': h_pair_ind, 'v_pair_ind': v_pair_ind} + + if self.opt.dense_wh: + hm_a = hm.max(axis=0, keepdims=True) + dense_wh_mask = np.concatenate([hm_a, hm_a], axis=0) + ret.update({'dense_wh': dense_wh, 'dense_wh_mask': dense_wh_mask}) + del ret['wh'] + elif self.opt.cat_spec_wh: + ret.update({'cat_spec_wh': cat_spec_wh, 'cat_spec_mask': cat_spec_mask}) + del ret['wh'] + if self.opt.reg_offset: + ret.update({'reg': reg}) + if self.opt.debug > 0 or not self.split == 'train': + gt_det = np.array(gt_det, dtype=np.float32) if len(gt_det) > 0 else \ + np.zeros((1, 10), dtype=np.float32) + meta = {'c': c, 's': s, 'rot':rot, 'gt_det': gt_det, 'img_id': img_id} + ret['meta'] = meta + return ret diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/base_detector.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/base_detector.py new file mode 100644 index 00000000..7e0d6248 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/base_detector.py @@ -0,0 +1,264 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import cv2 +import numpy as np +from progress.bar import Bar +import torch + +from models.model import create_model, load_model +from models.classifier import Processor, load_processor +from utils.utils import make_batch +from utils.image import get_affine_transform, get_affine_transform_upper_left + +from utils.debugger import Debugger + +class BaseDetector(object): + def __init__(self, opt): + if opt.gpus[0] >= 0: + opt.device = torch.device('cuda') + else: + opt.device = torch.device('cpu') + + self.model = create_model(opt.arch, opt.heads, opt.head_conv) + self.model = load_model(self.model, opt.load_model) + self.model = self.model.to(opt.device) + self.model.eval() + + self.processor = Processor(opt) + self.processor = load_model(self.processor, opt.load_processor) + self.processor.cuda() + + self.mean = np.array(opt.mean, dtype=np.float32).reshape(1, 1, 3) + self.std = np.array(opt.std, dtype=np.float32).reshape(1, 1, 3) + self.max_per_image = opt.K + self.num_classes = opt.num_classes + self.scales = opt.test_scales + self.opt = opt + self.pause = True + + def pre_process(self, image, scale, meta=None): + height, width = image.shape[0:2] + new_height = int(height * scale) + new_width = int(width * scale) + if self.opt.fix_res: + inp_height, inp_width = self.opt.input_h, self.opt.input_w + c = np.array([new_width / 2., new_height / 2.], dtype=np.float32) + s = max(height, width) * 1.0 + else: + inp_height = (new_height | self.opt.pad) #+ 1 + inp_width = (new_width | self.opt.pad) #+ 1 + c = np.array([new_width // 2, new_height // 2], dtype=np.float32) + s = np.array([inp_width, inp_height], dtype=np.float32) + if self.opt.upper_left: + c = np.array([0, 0], dtype=np.float32) + s = max(height, width) * 1.0 + trans_input = get_affine_transform_upper_left(c, s, 0, [inp_width, inp_height]) + else: + trans_input = get_affine_transform(c, s, 0, [inp_width, inp_height]) + resized_image = cv2.resize(image, (new_width, new_height)) + inp_image = cv2.warpAffine( + resized_image, trans_input, (inp_width, inp_height), + flags=cv2.INTER_LINEAR) + + inp_image = ((inp_image / 255. - self.mean) / self.std).astype(np.float32) + + images = inp_image.transpose(2, 0, 1).reshape(1, 3, inp_height, inp_width) + if self.opt.flip_test: + images = np.concatenate((images, images[:, :, :, ::-1]), axis=0) + images = torch.from_numpy(images) + meta = {'c': c, 's': s, + 'input_height':inp_height, + 'input_width':inp_width, + 'out_height': inp_height // self.opt.down_ratio, + 'out_width': inp_width // self.opt.down_ratio} + return images, meta + + def save_img_txt(self,img): + shape = list(img.shape) + f1 = open('/home/rujiao.lrj/CenterNet_cell_Coord/src/img.txt','w') + for i in range(shape[0]): + for j in range(shape[1]): + for k in range(shape[2]): + data = img[i][j][k].item() + f1.write(str(data)+'\n') + f1.close() + + def Duplicate_removal(self, results, corners): + bbox = [] + for j in range(len(results)): + box = results[j] + if box[-1] > self.opt.scores_thresh: + for i in range(8): + if box[i]<0: + box[i]=0 + if box[i]>1024: + box[i]=1024 + def dist(p1,p2): + return ((p1[0]-p2[0])*(p1[0]-p2[0])+(p1[1]-p2[1])*(p1[1]-p2[1]))**0.5 + p1,p2,p3,p4 = [box[0],box[1]],[box[2],box[3]],[box[4],box[5]],[box[6],box[7]] + if dist(p1,p2)>3 and dist(p2,p3)>3 and dist(p3,p4)>3 and dist(p4,p1)>3: + bbox.append(box) + else: + continue + + corner = [] + for i in range(len(corners)): + if corners[i][-1] > self.opt.vis_thresh_corner: + corner.append(corners[i]) + return np.array(bbox),np.array(corner) + + def filter(self, image_name, results, logi, ps): + # this function select boxes + batch_size, feat_dim = logi.shape[0], logi.shape[2] + num_valid = sum(results[1][:,8] >= self.opt.vis_thresh) + + #if num_valid <= 900 : #opt.max_objs + slct_logi = np.zeros((batch_size, num_valid, feat_dim), dtype=np.float32) + slct_dets = np.zeros((batch_size, num_valid, 8), dtype=np.int32) + for i in range(batch_size): + for j in range(num_valid): + slct_logi[i,j,:] = logi[i,j,:].cpu() + slct_dets[i,j,:] = ps[i,j,:].cpu() + #else: + #print('Error: Number of Detected Boxes Exceed the Model Defaults.') + #quit() + + return torch.Tensor(slct_logi).cuda(), torch.Tensor(slct_dets).cuda() + + def process_logi(self, logi): + logi_floor = logi.floor() + dev = logi - logi_floor + logi = torch.where(dev>0.5, logi_floor+1, logi_floor) + + return logi + + def _normalized_ps(self, ps, vocab_size): + ps = torch.round(ps).to(torch.int64) + ps = torch.where(ps < vocab_size, ps, (vocab_size-1) * torch.ones(ps.shape).to(torch.int64).cuda()) + ps = torch.where(ps >= 0, ps, torch.zeros(ps.shape).to(torch.int64).cuda()) + return ps + + def resize(self,image): + h,w,_ = image.shape + scale = 1024/(max(w,h)+1e-4) + image = cv2.resize(image,(int(w*scale),int(h*scale))) + image = cv2.copyMakeBorder(image,0,1024 - int(h*scale), 0, 1024 - int(w*scale),cv2.BORDER_CONSTANT, value=[0,0,0]) + return image,scale + + def process(self, images, return_time=False): + raise NotImplementedError + + def post_process(self, dets, meta, scale=1): + raise NotImplementedError + + def merge_outputs(self, detections): + raise NotImplementedError + + def debug(self, debugger, images, dets, output, scale=1): + raise NotImplementedError + + def show_results(self, debugger, image, results): + raise NotImplementedError + + def ps_convert_minmax(self,results): + detection = {} + for j in range(1,self.num_classes+1): + detection[j]=[] + for j in range(1,self.num_classes+1): + for bbox in results[j]: + minx = min(bbox[0],bbox[2],bbox[4],bbox[6]) + miny = min(bbox[1],bbox[3],bbox[5],bbox[7]) + maxx = max(bbox[0],bbox[2],bbox[4],bbox[6]) + maxy = max(bbox[1],bbox[3],bbox[5],bbox[7]) + detection[j].append([minx,miny,maxx,maxy,bbox[-1]]) + for j in range(1,self.num_classes+1): + detection[j] = np.array(detection[j]) + return detection + + def run(self, opt, image_or_path_or_tensor, image_anno=None, meta=None): + + debugger = Debugger(dataset=self.opt.dataset, ipynb=(self.opt.debug==3), + theme=self.opt.debugger_theme) + + pre_processed = False + if isinstance(image_or_path_or_tensor, np.ndarray): + image = image_or_path_or_tensor + elif type(image_or_path_or_tensor) == type (''): + image = cv2.imread(image_or_path_or_tensor) + else: + image = image_or_path_or_tensor['image'][0].numpy() + pre_processed_images = image_or_path_or_tensor + pre_processed = True + + + if not opt.wiz_detect: + batch = make_batch(opt, image_or_path_or_tensor, image_anno) + + detections = [] + hm = [] + corner_st = [] + if self.opt.demo!='': + image_name = image_or_path_or_tensor.split('/')[-1] + + for scale in self.scales: + + if not pre_processed: + images, meta = self.pre_process(image, scale, meta) + + else: + images = pre_processed_images['images'][scale][0] + meta = pre_processed_images['meta'][scale] + meta = {k: v.numpy()[0] for k, v in meta.items()} + + images = images.to(self.opt.device) + + torch.cuda.synchronize() + + if self.opt.wiz_detect: + outputs, output, dets, corner_st_reg, forward_time, logi, cr, keep = self.process(images, image, return_time=True) + else: + outputs, output, dets, corner_st_reg, forward_time, logi, cr, keep = self.process(images, image, return_time=True, batch=batch) + + raw_dets = dets + + torch.cuda.synchronize() + + if self.opt.debug >= 2: + self.debug(debugger, images, dets, output, scale) + + dets,corner_st_reg = self.post_process(dets, meta, corner_st_reg, scale) + torch.cuda.synchronize() + + detections.append(dets) + hm.append(keep) + + if self.opt.wiz_4ps or self.opt.wiz_2dpe: + logi = logi + cr + + results = self.merge_outputs(detections) + torch.cuda.synchronize() + + slct_logi, slct_dets = self.filter(image_or_path_or_tensor, results, logi, raw_dets[:,:,:8]) + slct_dets = self._normalized_ps(slct_dets, 256) + + if self.opt.wiz_2dpe: + if self.opt.wiz_stacking: + _, slct_logi = self.processor(slct_logi, dets = slct_dets) + else: + slct_logi = self.processor(slct_logi, dets = slct_dets) + else: + if self.opt.wiz_stacking: + _, slct_logi = self.processor(slct_logi) + else: + slct_logi = self.processor(slct_logi) + + slct_logi = self.process_logi(slct_logi) + + + if self.opt.debug >= 1: + self.show_results(debugger, image, results, corner_st_reg, image_name, slct_logi.squeeze()) + + Results = self.ps_convert_minmax(results) + return {'results': Results,'4ps':results,'corner_st_reg':corner_st_reg, 'hm': hm} \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/ctdet.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/ctdet.py new file mode 100644 index 00000000..0f73fc06 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/ctdet.py @@ -0,0 +1,196 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import cv2 +import numpy as np +from progress.bar import Bar +import time +import torch + +from external.shapelyNMS import pnms +from models.decode import ctdet_decode,corner_decode,ctdet_4ps_decode,ctdet_st_decode +from models.utils import flip_tensor +from utils.image import get_affine_transform +from utils.post_process import ctdet_post_process,ctdet_4ps_post_process,ctdet_4ps_post_process_upper_left +from utils.post_process import ctdet_corner_post_process +from utils.debugger import Debugger + +from .base_detector import BaseDetector +from PIL import Image + +from matplotlib import cm + + +class CtdetDetector(BaseDetector): + def __init__(self, opt): + super(CtdetDetector, self).__init__(opt) + + def process_logi(self, logi): + logi_floor = logi.floor() + dev = logi - logi_floor + logi = torch.where(dev>0.5, logi_floor+1, logi_floor) + + logi0 = logi[:,:,0].unsqueeze(2) + logi2 = logi[:,:,2].unsqueeze(2) + + logi_st = torch.cat((logi0, logi0, logi2, logi2), dim=2) + logi = torch.where(logi 1 or self.opt.nms: + #soft_nms(results[j], Nt=0.5, method=2) + results[j] = pnms(results[j],self.opt.thresh_min,self.opt.thresh_conf) + scores = np.hstack( + [results[j][:, 8] for j in range(1, self.num_classes + 1)]) + if len(scores) > self.max_per_image: + kth = len(scores) - self.max_per_image + thresh = np.partition(scores, kth)[kth] + for j in range(1, self.num_classes + 1): + keep_inds = (results[j][:, 8] >= thresh) + results[j] = results[j][keep_inds] + return results + + def debug(self, debugger, images, dets, output, scale=1): + detection = dets.detach().cpu().numpy().copy() + detection[:, :, :8] *= self.opt.down_ratio + for i in range(1): + img = images[i].detach().cpu().numpy().transpose(1, 2, 0) + img = ((img * self.std + self.mean) * 255).astype(np.uint8) + pred = debugger.gen_colormap(output['hm'][i].detach().cpu().numpy()) + debugger.add_blend_img(img, pred, 'pred_hm_{:.1f}'.format(scale)) + debugger.add_img(img, img_id='out_pred_{:.1f}'.format(scale)) + for k in range(len(dets[i])): + if detection[i, k, 8] > self.opt.center_thresh: + debugger.add_4ps_coco_bbox(detection[i, k, :8], detection[i, k, -1], + detection[i, k, 8], + img_id='out_pred_{:.1f}'.format(scale)) + + def show_results(self, debugger, image, results, corner, image_name, logi=None): + debugger.add_img(image, img_id='ctdet') + m,n = corner.shape + + count = 0 + + fc = open(self.opt.output_dir + self.opt.demo_name +'/center/'+image_name+'.txt','w') #bounding boxes saved + fv = open(self.opt.output_dir + self.opt.demo_name +'/corner/'+image_name+'.txt','w') + fl = open(self.opt.output_dir + self.opt.demo_name +'/logi/'+image_name+'.txt','w') #logic axis saved + for j in range(1, self.num_classes + 1): + k = 0 + for m in range(len(results[j])): + bbox = results[j][m] + k = k + 1 + if bbox[8] > self.opt.vis_thresh: + + if len(logi.shape) == 1: + debugger.add_4ps_coco_bbox(bbox[:8], j-1, bbox[8], logi, show_txt=True, img_id='ctdet') + else: + debugger.add_4ps_coco_bbox(bbox[:8], j-1, bbox[8], logi[m,:], show_txt=True, img_id='ctdet') + for i in range(0,3): + position_holder = 1 + fc.write(str(bbox[2*i])+','+str(bbox[2*i+1])+';') + if not logi is None: + if len(logi.shape) == 1: + fl.write(str(int(logi[i]))+',') + else: + fl.write(str(int(logi[m,:][i]))+',') + fc.write(str(bbox[6])+','+str(bbox[7])+'\n') + + if not logi is None: + if len(logi.shape) == 1: + fl.write(str(int(logi[3]))+'\n') + else: + fl.write(str(int(logi[m,:][3]))+'\n') + + if self.opt.vis_corner==1: + for i in range(m): + if corner[i,10] > self.opt.vis_thresh_corner: + for w in range(0,4): + position_holder = 1 + fv.write(str(corner[i,2*w])+','+str(corner[i,2*w+1])+';') + fv.write(str(corner[i,8])+','+str(corner[i,9])+'\n') + count+=1 + + fc.close() + fv.close() + debugger.save_all_imgs(image_name, self.opt.demo_dir) + + \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/detector_factory.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/detector_factory.py new file mode 100644 index 00000000..e51aeef8 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/detectors/detector_factory.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from .ctdet import CtdetDetector + +detector_factory = { + 'ctdet': CtdetDetector, + 'ctdet_mid': CtdetDetector, + 'ctdet_small': CtdetDetector +} diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/Makefile b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/Makefile new file mode 100644 index 00000000..a4823985 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/Makefile @@ -0,0 +1,3 @@ +all: + python setup.py build_ext --inplace + rm -rf build diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/nms.pyx b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/nms.pyx new file mode 100644 index 00000000..64991023 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/nms.pyx @@ -0,0 +1,391 @@ +# -------------------------------------------------------- +# Fast R-CNN +# Copyright (c) 2015 Microsoft +# Licensed under The MIT License [see LICENSE for details] +# Written by Ross Girshick +# -------------------------------------------------------- + +# ---------------------------------------------------------- +# Soft-NMS: Improving Object Detection With One Line of Code +# Copyright (c) University of Maryland, College Park +# Licensed under The MIT License [see LICENSE for details] +# Written by Navaneeth Bodla and Bharat Singh +# ---------------------------------------------------------- + +import numpy as np +cimport numpy as np + +cdef inline np.float32_t max(np.float32_t a, np.float32_t b): + return a if a >= b else b + +cdef inline np.float32_t min(np.float32_t a, np.float32_t b): + return a if a <= b else b + +def nms(np.ndarray[np.float32_t, ndim=2] dets, np.float thresh): + cdef np.ndarray[np.float32_t, ndim=1] x1 = dets[:, 0] + cdef np.ndarray[np.float32_t, ndim=1] y1 = dets[:, 1] + cdef np.ndarray[np.float32_t, ndim=1] x2 = dets[:, 2] + cdef np.ndarray[np.float32_t, ndim=1] y2 = dets[:, 3] + cdef np.ndarray[np.float32_t, ndim=1] scores = dets[:, 4] + + cdef np.ndarray[np.float32_t, ndim=1] areas = (x2 - x1 + 1) * (y2 - y1 + 1) + cdef np.ndarray[np.int_t, ndim=1] order = scores.argsort()[::-1] + + cdef int ndets = dets.shape[0] + cdef np.ndarray[np.int_t, ndim=1] suppressed = \ + np.zeros((ndets), dtype=np.int) + + # nominal indices + cdef int _i, _j + # sorted indices + cdef int i, j + # temp variables for box i's (the box currently under consideration) + cdef np.float32_t ix1, iy1, ix2, iy2, iarea + # variables for computing overlap with box j (lower scoring box) + cdef np.float32_t xx1, yy1, xx2, yy2 + cdef np.float32_t w, h + cdef np.float32_t inter, ovr + + keep = [] + for _i in range(ndets): + i = order[_i] + if suppressed[i] == 1: + continue + keep.append(i) + ix1 = x1[i] + iy1 = y1[i] + ix2 = x2[i] + iy2 = y2[i] + iarea = areas[i] + for _j in range(_i + 1, ndets): + j = order[_j] + if suppressed[j] == 1: + continue + xx1 = max(ix1, x1[j]) + yy1 = max(iy1, y1[j]) + xx2 = min(ix2, x2[j]) + yy2 = min(iy2, y2[j]) + w = max(0.0, xx2 - xx1 + 1) + h = max(0.0, yy2 - yy1 + 1) + inter = w * h + ovr = inter / (iarea + areas[j] - inter) + if ovr >= thresh: + suppressed[j] = 1 + + return keep + +def soft_nms(np.ndarray[float, ndim=2] boxes, float sigma=0.5, float Nt=0.3, float threshold=0.001, unsigned int method=0): + cdef unsigned int N = boxes.shape[0] + cdef float iw, ih, box_area + cdef float ua + cdef int pos = 0 + cdef float maxscore = 0 + cdef int maxpos = 0 + cdef float x1,x2,y1,y2,tx1,tx2,ty1,ty2,ts,area,weight,ov + + for i in range(N): + maxscore = boxes[i, 4] + maxpos = i + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # get max box + while pos < N: + if maxscore < boxes[pos, 4]: + maxscore = boxes[pos, 4] + maxpos = pos + pos = pos + 1 + + # add max box as a detection + boxes[i,0] = boxes[maxpos,0] + boxes[i,1] = boxes[maxpos,1] + boxes[i,2] = boxes[maxpos,2] + boxes[i,3] = boxes[maxpos,3] + boxes[i,4] = boxes[maxpos,4] + + # swap ith box with position of max box + boxes[maxpos,0] = tx1 + boxes[maxpos,1] = ty1 + boxes[maxpos,2] = tx2 + boxes[maxpos,3] = ty2 + boxes[maxpos,4] = ts + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # NMS iterations, note that N changes if detection boxes fall below threshold + while pos < N: + x1 = boxes[pos, 0] + y1 = boxes[pos, 1] + x2 = boxes[pos, 2] + y2 = boxes[pos, 3] + s = boxes[pos, 4] + + area = (x2 - x1 + 1) * (y2 - y1 + 1) + iw = (min(tx2, x2) - max(tx1, x1) + 1) + if iw > 0: + ih = (min(ty2, y2) - max(ty1, y1) + 1) + if ih > 0: + ua = float((tx2 - tx1 + 1) * (ty2 - ty1 + 1) + area - iw * ih) + ov = iw * ih / ua #iou between max box and detection box + + if method == 1: # linear + if ov > Nt: + weight = 1 - ov + else: + weight = 1 + elif method == 2: # gaussian + weight = np.exp(-(ov * ov)/sigma) + else: # original NMS + if ov > Nt: + weight = 0 + else: + weight = 1 + + boxes[pos, 4] = weight*boxes[pos, 4] + + # if box score falls below threshold, discard the box by swapping with last box + # update N + if boxes[pos, 4] < threshold: + boxes[pos,0] = boxes[N-1, 0] + boxes[pos,1] = boxes[N-1, 1] + boxes[pos,2] = boxes[N-1, 2] + boxes[pos,3] = boxes[N-1, 3] + boxes[pos,4] = boxes[N-1, 4] + N = N - 1 + pos = pos - 1 + + pos = pos + 1 + + keep = [i for i in range(N)] + return keep + +def soft_nms_39(np.ndarray[float, ndim=2] boxes, float sigma=0.5, float Nt=0.3, float threshold=0.001, unsigned int method=0): + cdef unsigned int N = boxes.shape[0] + cdef float iw, ih, box_area + cdef float ua + cdef int pos = 0 + cdef float maxscore = 0 + cdef int maxpos = 0 + cdef float x1,x2,y1,y2,tx1,tx2,ty1,ty2,ts,area,weight,ov + cdef float tmp + + for i in range(N): + maxscore = boxes[i, 4] + maxpos = i + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # get max box + while pos < N: + if maxscore < boxes[pos, 4]: + maxscore = boxes[pos, 4] + maxpos = pos + pos = pos + 1 + + # add max box as a detection + boxes[i,0] = boxes[maxpos,0] + boxes[i,1] = boxes[maxpos,1] + boxes[i,2] = boxes[maxpos,2] + boxes[i,3] = boxes[maxpos,3] + boxes[i,4] = boxes[maxpos,4] + + # swap ith box with position of max box + boxes[maxpos,0] = tx1 + boxes[maxpos,1] = ty1 + boxes[maxpos,2] = tx2 + boxes[maxpos,3] = ty2 + boxes[maxpos,4] = ts + + for j in range(5, 39): + tmp = boxes[i, j] + boxes[i, j] = boxes[maxpos, j] + boxes[maxpos, j] = tmp + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # NMS iterations, note that N changes if detection boxes fall below threshold + while pos < N: + x1 = boxes[pos, 0] + y1 = boxes[pos, 1] + x2 = boxes[pos, 2] + y2 = boxes[pos, 3] + s = boxes[pos, 4] + + area = (x2 - x1 + 1) * (y2 - y1 + 1) + iw = (min(tx2, x2) - max(tx1, x1) + 1) + if iw > 0: + ih = (min(ty2, y2) - max(ty1, y1) + 1) + if ih > 0: + ua = float((tx2 - tx1 + 1) * (ty2 - ty1 + 1) + area - iw * ih) + ov = iw * ih / ua #iou between max box and detection box + + if method == 1: # linear + if ov > Nt: + weight = 1 - ov + else: + weight = 1 + elif method == 2: # gaussian + weight = np.exp(-(ov * ov)/sigma) + else: # original NMS + if ov > Nt: + weight = 0 + else: + weight = 1 + + boxes[pos, 4] = weight*boxes[pos, 4] + + # if box score falls below threshold, discard the box by swapping with last box + # update N + if boxes[pos, 4] < threshold: + boxes[pos,0] = boxes[N-1, 0] + boxes[pos,1] = boxes[N-1, 1] + boxes[pos,2] = boxes[N-1, 2] + boxes[pos,3] = boxes[N-1, 3] + boxes[pos,4] = boxes[N-1, 4] + for j in range(5, 39): + tmp = boxes[pos, j] + boxes[pos, j] = boxes[N - 1, j] + boxes[N - 1, j] = tmp + N = N - 1 + pos = pos - 1 + + pos = pos + 1 + + keep = [i for i in range(N)] + return keep + +def soft_nms_merge(np.ndarray[float, ndim=2] boxes, float sigma=0.5, float Nt=0.3, float threshold=0.001, unsigned int method=0, float weight_exp=6): + cdef unsigned int N = boxes.shape[0] + cdef float iw, ih, box_area + cdef float ua + cdef int pos = 0 + cdef float maxscore = 0 + cdef int maxpos = 0 + cdef float x1,x2,y1,y2,tx1,tx2,ty1,ty2,ts,area,weight,ov + cdef float mx1,mx2,my1,my2,mts,mbs,mw + + for i in range(N): + maxscore = boxes[i, 4] + maxpos = i + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # get max box + while pos < N: + if maxscore < boxes[pos, 4]: + maxscore = boxes[pos, 4] + maxpos = pos + pos = pos + 1 + + # add max box as a detection + boxes[i,0] = boxes[maxpos,0] + boxes[i,1] = boxes[maxpos,1] + boxes[i,2] = boxes[maxpos,2] + boxes[i,3] = boxes[maxpos,3] + boxes[i,4] = boxes[maxpos,4] + + mx1 = boxes[i, 0] * boxes[i, 5] + my1 = boxes[i, 1] * boxes[i, 5] + mx2 = boxes[i, 2] * boxes[i, 6] + my2 = boxes[i, 3] * boxes[i, 6] + mts = boxes[i, 5] + mbs = boxes[i, 6] + + # swap ith box with position of max box + boxes[maxpos,0] = tx1 + boxes[maxpos,1] = ty1 + boxes[maxpos,2] = tx2 + boxes[maxpos,3] = ty2 + boxes[maxpos,4] = ts + + tx1 = boxes[i,0] + ty1 = boxes[i,1] + tx2 = boxes[i,2] + ty2 = boxes[i,3] + ts = boxes[i,4] + + pos = i + 1 + # NMS iterations, note that N changes if detection boxes fall below threshold + while pos < N: + x1 = boxes[pos, 0] + y1 = boxes[pos, 1] + x2 = boxes[pos, 2] + y2 = boxes[pos, 3] + s = boxes[pos, 4] + + area = (x2 - x1 + 1) * (y2 - y1 + 1) + iw = (min(tx2, x2) - max(tx1, x1) + 1) + if iw > 0: + ih = (min(ty2, y2) - max(ty1, y1) + 1) + if ih > 0: + ua = float((tx2 - tx1 + 1) * (ty2 - ty1 + 1) + area - iw * ih) + ov = iw * ih / ua #iou between max box and detection box + + if method == 1: # linear + if ov > Nt: + weight = 1 - ov + else: + weight = 1 + elif method == 2: # gaussian + weight = np.exp(-(ov * ov)/sigma) + else: # original NMS + if ov > Nt: + weight = 0 + else: + weight = 1 + + mw = (1 - weight) ** weight_exp + mx1 = mx1 + boxes[pos, 0] * boxes[pos, 5] * mw + my1 = my1 + boxes[pos, 1] * boxes[pos, 5] * mw + mx2 = mx2 + boxes[pos, 2] * boxes[pos, 6] * mw + my2 = my2 + boxes[pos, 3] * boxes[pos, 6] * mw + mts = mts + boxes[pos, 5] * mw + mbs = mbs + boxes[pos, 6] * mw + + boxes[pos, 4] = weight*boxes[pos, 4] + + # if box score falls below threshold, discard the box by swapping with last box + # update N + if boxes[pos, 4] < threshold: + boxes[pos,0] = boxes[N-1, 0] + boxes[pos,1] = boxes[N-1, 1] + boxes[pos,2] = boxes[N-1, 2] + boxes[pos,3] = boxes[N-1, 3] + boxes[pos,4] = boxes[N-1, 4] + N = N - 1 + pos = pos - 1 + + pos = pos + 1 + + boxes[i, 0] = mx1 / mts + boxes[i, 1] = my1 / mts + boxes[i, 2] = mx2 / mbs + boxes[i, 3] = my2 / mbs + + keep = [i for i in range(N)] + return keep diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/setup.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/setup.py new file mode 100644 index 00000000..c4d25719 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/setup.py @@ -0,0 +1,18 @@ +import numpy +from distutils.core import setup +from distutils.extension import Extension +from Cython.Build import cythonize + +extensions = [ + Extension( + "nms", + ["nms.pyx"], + extra_compile_args=["-Wno-cpp", "-Wno-unused-function"] + ) +] + +setup( + name="coco", + ext_modules=cythonize(extensions), + include_dirs=[numpy.get_include()] +) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/shapelyNMS.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/shapelyNMS.py new file mode 100644 index 00000000..77c088c4 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/external/shapelyNMS.py @@ -0,0 +1,158 @@ +import numpy as np +from shapely.geometry import * + +def delet_min_first(dets,pts,areas,inter_areas,min_areas,scores,thresh_min,thresh_conf): + choose_dict = {} + for i in range(0,len(pts)): + areai = areas[i] + for j in range(0, len(pts)): + if i==j: + continue + areaj = areas[j] + ovr = inter_areas[i][j] / min_areas[i][j] + if ovr > thresh_min and areai != min_areas[i][j]: + if str(i) not in choose_dict.keys(): + choose_dict[str(i)] = [j] + else: + choose_dict[str(i)].append(j) + delet_list = [] + for i in choose_dict.keys(): + ovr_list = choose_dict[i] + if len(ovr_list) == 1: + j = choose_dict[i][0] + #ovr_max = inter_areas[int(i)][j] / max(areas[int(i)],areas[j]) + #ovr_min = inter_areas[int(i)][j] / min(areas[int(i)],areas[j]) + #if ovr_min > thresh_min: + # conf_i,conf_j = scores[int(i)],scores[j] + # #if abs(conf_i - conf_j) > thresh_conf: + # # index = int(i) if conf_i < conf_j else j + # # delet_list.append(index) + # #else: + delet_list.append(j) + elif len(ovr_list) == 2: + j,k = choose_dict[i][0],choose_dict[i][1] + area_sum = areas[j] + areas[k] - inter_areas[j][k] + ovr = area_sum / areas[int(i)] + if ovr > thresh_min and ovr < 1.1: + delet_list.append(j) + delet_list.append(k) + else: + for index in choose_dict[i]: + delet_list.append(index) + dets = list(dets) + keep = [] + for i in range(len(dets)): + if i not in delet_list: + keep.append(dets[i]) + return np.array(keep)#dets + +def delet_min(dets,pts,areas,inter_areas,min_areas,scores,thresh_min,thresh_conf): + choose_dict = {} + for i in range(0,len(pts)): + areai = areas[i] + for j in range(0, len(pts)): + if i==j: + continue + areaj = areas[j] + ovr = inter_areas[i][j] / (areas[i] + areas[j] - inter_areas[i][j]) + if ovr > thresh_min and areai != min_areas[i][j]: + if str(i) not in choose_dict.keys(): + choose_dict[str(i)] = [j] + else: + choose_dict[str(i)].append(j) + delet_list = [] + for i in choose_dict.keys(): + ovr_list = choose_dict[i] + if len(ovr_list) == 1: + j = choose_dict[i][0] + delet_list.append(j) + elif len(ovr_list) == 2: + j,k = choose_dict[i][0],choose_dict[i][1] + area_sum = areas[j] + areas[k] - inter_areas[j][k] + ovr = area_sum / areas[int(i)] + if ovr > thresh_min and ovr < 1.1: + delet_list.append(j) + delet_list.append(k) + ''' + else: + for index in choose_dict[i]: + delet_list.append(index) + ''' + dets = list(dets) + keep = [] + for i in range(len(dets)): + if i not in delet_list: + keep.append(dets[i]) + return np.array(keep)#dets + + +def cross_union(dets,pts,areas,inter_areas,min_areas,scores,thresh_min,thresh_conf): + choose_dict = {} + for i in range(0,len(pts)): + choose_dict[i] = 0 + + for i in range(0,len(pts)): + areai = areas[i] + for j in range(0, len(pts)): + if i==j or scores[i] < scores[j]: + continue + areaj = areas[j] + ovr_union = inter_areas[i][j] / (areai+areaj-inter_areas[i][j]) + ovr_min = inter_areas[i][j] / min(areai,areaj) + if ovr_union > thresh_min: + #if scores[i]-scores[j]>0.2: + # choose_dict[j]=1 + #elif scores[j]-scores[i]>0.2: + # choose_dict[i]=1 + if areai > areaj: + choose_dict[j]=1 + else: + choose_dict[i]=1 + dets = list(dets) + keep = [] + for i in range(len(dets)): + if choose_dict[i]==0: + keep.append(dets[i]) + return np.array(keep)#dets + + +def pnms(dets,thresh_min,thresh_conf): + scores = dets[:,-1] + + pts = [] + for i in range(dets.shape[0]): + pts.append([dets[i][0:2],dets[i][2:4],dets[i][4:6],dets[i][6:8]]) + + areas = np.zeros(scores.shape) + order = scores.argsort()[::-1] + inter_areas = np.zeros((scores.shape[0],scores.shape[0])) + min_areas = np.zeros((scores.shape[0],scores.shape[0])) + + for i in range(0,len(pts)): + polyi = Polygon(pts[i]) + areas[i] = polyi.area + + for j in range(i, len(pts)): + polyj = Polygon(pts[j]) + try: + inS = polyi.intersection(polyj) + except: + print(pts[i]) + print(pts[j]) + inter_areas[i][j] = inS.area + inter_areas[j][i] = inS.area + min_areas[i][j] = min(areas[i],polyj.area) + min_areas[j][i] = min_areas[i][j] + + keep = [] + ''' + while order.size > 0: + i = order[0] + keep.append(dets[i]) + #ovr = inter_areas[i][order[1:]] / min_areas[i][order[1:]] + ovr = inter_areas[i][order[1:]] / (areas[i] + areas[order[1:]] - inter_areas[i][order[1:]]) + inds = np.where(ovr <= thresh)[0] + order = order[inds + 1] + ''' + #return delet_min(dets,pts,areas,inter_areas,min_areas,scores,thresh_min,thresh_conf) + return cross_union(dets,pts,areas,inter_areas,min_areas,scores,thresh_min,thresh_conf) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/logger.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/logger.py new file mode 100644 index 00000000..eac9a146 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/logger.py @@ -0,0 +1,72 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +# Code referenced from https://gist.github.com/gyglim/1f8dfb1b5c82627ae3efcfbbadb9f514 +import os +import time +import sys +import torch +USE_TENSORBOARD = True +try: + import tensorboardX + print('Using tensorboardX') +except: + USE_TENSORBOARD = False + +class Logger(object): + def __init__(self, opt): + """Create a summary writer logging to log_dir.""" + if not os.path.exists(opt.save_dir): + os.makedirs(opt.save_dir) + if not os.path.exists(opt.debug_dir): + os.makedirs(opt.debug_dir) + + time_str = time.strftime('%Y-%m-%d-%H-%M') + + args = dict((name, getattr(opt, name)) for name in dir(opt) + if not name.startswith('_')) + file_name = os.path.join(opt.save_dir, 'opt.txt') + with open(file_name, 'wt') as opt_file: + opt_file.write('==> torch version: {}\n'.format(torch.__version__)) + opt_file.write('==> cudnn version: {}\n'.format( + torch.backends.cudnn.version())) + opt_file.write('==> Cmd:\n') + opt_file.write(str(sys.argv)) + opt_file.write('\n==> Opt:\n') + for k, v in sorted(args.items()): + opt_file.write(' %s: %s\n' % (str(k), str(v))) + + log_dir = opt.save_dir + '/logs_{}'.format(time_str) + if USE_TENSORBOARD: + self.writer = tensorboardX.SummaryWriter(log_dir=log_dir) + else: + if not os.path.exists(os.path.dirname(log_dir)): + os.mkdir(os.path.dirname(log_dir)) + if not os.path.exists(log_dir): + os.mkdir(log_dir) + self.log = open(log_dir + '/log.txt', 'w') + try: + os.system('cp {}/opt.txt {}/'.format(opt.save_dir, log_dir)) + except: + pass + self.start_line = True + + def write(self, txt): + if self.start_line: + time_str = time.strftime('%Y-%m-%d-%H-%M') + self.log.write('{}: {}'.format(time_str, txt)) + else: + self.log.write(txt) + self.start_line = False + if '\n' in txt: + self.start_line = True + self.log.flush() + + def close(self): + self.log.close() + + def scalar_summary(self, tag, value, step): + """Log a scalar variable.""" + if USE_TENSORBOARD: + self.writer.add_scalar(tag, value, step) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/opts.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/opts.py new file mode 100644 index 00000000..ee24136c --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/opts.py @@ -0,0 +1,469 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import argparse +import os +import sys + +class opts(object): + def __init__(self): + self.parser = argparse.ArgumentParser() + # basic experiment setting + self.parser.add_argument('task', default='ctdet', + help='ctdet | ddd | multi_pose | exdet') + self.parser.add_argument('--dataset', default='table', + help='coco | kitti | coco_hp | pascal') + self.parser.add_argument('--dataset_name', default='WTW', + help='WTW | TG24K | PTN | ICDAR | SciTSR') + self.parser.add_argument('--exp_id', default='default', + help='name of this experiment') + self.parser.add_argument('--test', action='store_true') + self.parser.add_argument('--hold_det', action='store_true') + self.parser.add_argument('--vis_corner', type=int, default=0, + help='vis corner or not' + '0: do not vis corner' + '1: vis corner') + self.parser.add_argument('--convert_onnx', type=int, default=0, + help='0: donot convert' + '1: convert pytorch model to onnx') + self.parser.add_argument('--debug', type=int, default=0, + help='level of visualization.' + '1: only show the final detection results' + '2: show the network output features' + '3: use matplot to display' # useful when lunching training with ipython notebook + '4: save all visualizations to disk') + self.parser.add_argument('--demo', default='./demo_wtw/', + help='path to image/ image folders/ video. ' + 'or "webcam"') + self.parser.add_argument('--demo_name', default='demo_results', + help='path to image/ image folders/ video. ' + 'or "webcam"') + self.parser.add_argument('--output_dir', default='../data/table/', + help='path to image/ image folders/ video. ' + 'or "webcam"') + self.parser.add_argument('--demo_dir', default='../demo/', + help='path to demo output. ' + 'or "webcam"') + self.parser.add_argument('--demo_output', default='', + help='path to image/ image folders/ video. ' + 'or "webcam"') + self.parser.add_argument('--image_dir', default='../data/WTW/full_images', + help='path to images of training set') + self.parser.add_argument('--load_model', default='', + help='path to pretrained model') + self.parser.add_argument('--load_processor', default='', + help='path to pretrained processor') + self.parser.add_argument('--resume', action='store_true', + help='resume an experiment. ' + 'Reloaded the optimizer parameter and ' + 'set load_model to model_last.pth ' + 'in the exp dir if load_model is empty.') + + # system + self.parser.add_argument('--gpus', default='0', + help='-1 for CPU, use comma for multiple gpus') + self.parser.add_argument('--num_workers', type=int, default=4, + help='dataloader threads. 0 for single-thread.') + self.parser.add_argument('--not_cuda_benchmark', action='store_true', + help='disable when the input size is not fixed.') + self.parser.add_argument('--seed', type=int, default=317, + help='random seed') # from CornerNet + + # log + self.parser.add_argument('--print_iter', type=int, default=0, + help='disable progress bar and print to screen.') + self.parser.add_argument('--hide_data_time', action='store_true', + help='not display time during training.') + self.parser.add_argument('--save_all', action='store_true', + help='save model to disk every 5 epochs.') + self.parser.add_argument('--metric', default='loss', + help='main metric to save best model') + self.parser.add_argument('--anno_path', default='', + help='path to annotations of coco data') + self.parser.add_argument('--vis_thresh', type=float, default=0.3, + help='visualization threshold.') + self.parser.add_argument('--vis_thresh_corner', type=float, default=0.1, + help='visualization threshold for corner.') + self.parser.add_argument('--debugger_theme', default='white', + choices=['white', 'black']) + + # model + self.parser.add_argument('--arch', default='dla_34', + help='model architecture. Currently tested' + 'res_18 | res_101 | resdcn_18 | resdcn_101 |' + 'dlav0_34 | dla_34 | hourglass') + self.parser.add_argument('--head_conv', type=int, default=-1, + help='conv layer channels for output head' + '0 for no conv layer' + '-1 for default setting: ' + '64 for resnets and 256 for dla.') + self.parser.add_argument('--down_ratio', type=int, default=4, + help='output stride. Currently only supports 4.') + self.parser.add_argument('--load_mode', type=str, default='single', + help='single or multiple') + self.parser.add_argument('--wiz_2dpe', action='store_true', default=False, + help='whether to use the 2-dimensional position embeddings. ') + self.parser.add_argument('--wiz_4ps', action='store_true', default=False, + help='whether to use the feature of the four corner points. ') + self.parser.add_argument('--wiz_stacking', action='store_true', default=False, + help='whether to use the cascading regressor or the vinilla regressor. ') + + # model logical prediction head + self.parser.add_argument('--input_size', type=int, default=256, + help='size of inputs of the logical location head') + self.parser.add_argument('--hidden_size', type=int, default=256, + help='size of hidden states of the logical location head') + self.parser.add_argument('--output_size', type=int, default=4, + help='size of output, i.e., the four logical indices') + self.parser.add_argument('--tsfm_layers', type=int, default=6, + help='layers of base transformers') + self.parser.add_argument('--stacking_layers', type=int, default=3, + help='single or multiple') + self.parser.add_argument('--num_heads', type=int, default=8, + help='number of attention heads') + self.parser.add_argument('--att_dropout', type=float, default=0.1, + help='dropout used in attention') + self.parser.add_argument('--max_fmp_size', type=float, default=256, + help='max size of feature map, which corresponding to image input of 1024*1024') + + # input + self.parser.add_argument('--input_res', type=int, default=-1, + help='input height and width. -1 for default from ' + 'dataset. Will be overriden by input_h | input_w') + self.parser.add_argument('--input_h', type=int, default=-1, + help='input height. -1 for default from dataset.') + self.parser.add_argument('--input_w', type=int, default=-1, + help='input width. -1 for default from dataset.') + + # train + self.parser.add_argument('--lr', type=float, default=1.25e-4, + help='learning rate for batch size 32.') + self.parser.add_argument('--lr_step', type=str, default='80', + help='drop learning rate by 10.') + self.parser.add_argument('--num_epochs', type=int, default=90, + help='total training epochs.') + self.parser.add_argument('--batch_size', type=int, default=32, + help='batch size') + self.parser.add_argument('--master_batch_size', type=int, default=-1, + help='batch size on the master gpu.') + self.parser.add_argument('--num_iters', type=int, default=-1, + help='default: #samples / batch_size.') + self.parser.add_argument('--val_intervals', type=int, default=5, + help='number of epochs to run validation.') + self.parser.add_argument('--trainval', action='store_true', + help='include validation in training and ' + 'test on test set') + self.parser.add_argument('--full_loss', default=False) + self.parser.add_argument('--upper_left', action='store_true', + help='changing the padding pattern for on-line cloud service. ') + self.parser.add_argument('--wiz_pairloss', action='store_true', default=False, + help='using pairloss for wired table only to apply the parsing-grouping process. ') + self.parser.add_argument('--wiz_dsloss', action='store_true', default=False, + help='using the inter-cell loss. ') + + # inference + self.parser.add_argument('--flip_test', action='store_true', + help='flip data augmentation.') + self.parser.add_argument('--save_path', default='../data/dingding_shiyu/', + help='path for save test res.') + self.parser.add_argument('--test_scales', type=str, default='1', + help='multi scale test augmentation.') + self.parser.add_argument('--nms', action='store_false', + help='run nms in testing.') + self.parser.add_argument('--K', type=int, default=100, + help='max number of output objects.') + self.parser.add_argument('--not_prefetch_test', action='store_true', + help='not use parallal data pre-processing.') + self.parser.add_argument('--thresh_min', type=float, default=0.5, + help='max number of output objects.') + self.parser.add_argument('--thresh_max', type=float, default=0.7, + help='max number of output objects.') + self.parser.add_argument('--thresh_conf', type=float, default=0.1, + help='max number of output objects.') + self.parser.add_argument('--fix_res', action='store_true', + help='fix testing resolution or keep ' + 'the original resolution') + self.parser.add_argument('--keep_res', action='store_true', + help='keep the original resolution' + ' during validation.') + self.parser.add_argument('--wiz_rev', action='store_true', + help='using the pasing-grouping mechanism for wired table only. ') + self.parser.add_argument('--wiz_detect', action='store_true', default=False, + help='using the ground-truth bounding boxes and only infering the logical locations. ') + + # dataset + self.parser.add_argument('--not_rand_crop', action='store_true', + help='not use the random crop data augmentation' + 'from CornerNet.') + self.parser.add_argument('--shift', type=float, default=0.1, + help='when not using random crop' + 'apply shift augmentation.') + self.parser.add_argument('--scale', type=float, default=0.4, + help='when not using random crop' + 'apply scale augmentation.') + self.parser.add_argument('--rotate', type=float, default=0, + help='when not using random crop' + 'apply rotation augmentation.') + self.parser.add_argument('--flip', type = float, default=0.5, + help='probability of applying flip augmentation.') + self.parser.add_argument('--no_color_aug', action='store_true', + help='not use the color augmenation ' + 'from CornerNet') + self.parser.add_argument('--MK', default=700, + help='max corner number') + # multi_pose + self.parser.add_argument('--aug_rot', type=float, default=0, + help='probability of applying ' + 'rotation augmentation.') + # ddd + self.parser.add_argument('--aug_ddd', type=float, default=0.5, + help='probability of applying crop augmentation.') + self.parser.add_argument('--rect_mask', action='store_true', + help='for ignored object, apply mask on the ' + 'rectangular region or just center point.') + self.parser.add_argument('--kitti_split', default='3dop', + help='different validation split for kitti: ' + '3dop | subcnn') + + # loss + self.parser.add_argument('--mse_loss', action='store_true', + help='use mse loss or focal loss to train ' + 'keypoint heatmaps.') + # ctdet + self.parser.add_argument('--reg_loss', default='l1', + help='regression loss: sl1 | l1 | l2') + self.parser.add_argument('--hm_weight', type=float, default=1, + help='loss weight for keypoint heatmaps.') + self.parser.add_argument('--mk_weight', type=float, default=1, + help='loss weight for corner keypoint heatmaps.') + self.parser.add_argument('--off_weight', type=float, default=1, + help='loss weight for keypoint local offsets.') + self.parser.add_argument('--wh_weight', type=float, default=1, + help='loss weight for bounding box size.') + self.parser.add_argument('--st_weight', type=float, default=1, + help='loss weight for cell coor reg.') + # multi_pose + self.parser.add_argument('--hp_weight', type=float, default=1, + help='loss weight for human pose offset.') + self.parser.add_argument('--hm_hp_weight', type=float, default=1, + help='loss weight for human keypoint heatmap.') + # ddd + self.parser.add_argument('--dep_weight', type=float, default=1, + help='loss weight for depth.') + self.parser.add_argument('--dim_weight', type=float, default=1, + help='loss weight for 3d bounding box size.') + self.parser.add_argument('--rot_weight', type=float, default=1, + help='loss weight for orientation.') + self.parser.add_argument('--peak_thresh', type=float, default=0.1) + + # task + # ctdet + self.parser.add_argument('--norm_wh', action='store_true', + help='L1(\hat(y) / y, 1) or L1(\hat(y), y)') + self.parser.add_argument('--dense_wh', action='store_true', + help='apply weighted regression near center or ' + 'just apply regression on center point.') + self.parser.add_argument('--cat_spec_wh', action='store_true', + help='category specific bounding box size.') + self.parser.add_argument('--not_reg_offset', action='store_true', + help='not regress local offset.') + # exdet + self.parser.add_argument('--agnostic_ex', action='store_true', + help='use category agnostic extreme points.') + self.parser.add_argument('--scores_thresh', type=float, default=0.1, + help='threshold for extreme point heatmap.') + self.parser.add_argument('--center_thresh', type=float, default=0.1, + help='threshold for centermap.') + self.parser.add_argument('--aggr_weight', type=float, default=0.0, + help='edge aggregation weight.') + # multi_pose + self.parser.add_argument('--dense_hp', action='store_true', + help='apply weighted pose regression near center ' + 'or just apply regression on center point.') + self.parser.add_argument('--not_hm_hp', action='store_true', + help='not estimate human joint heatmap, ' + 'directly use the joint offset from center.') + self.parser.add_argument('--not_reg_hp_offset', action='store_true', + help='not regress local offset for ' + 'human joint heatmaps.') + self.parser.add_argument('--not_reg_bbox', action='store_true', + help='not regression bounding box size.') + + # ground truth validation + self.parser.add_argument('--eval_oracle_hm', action='store_true', + help='use ground center heatmap.') + self.parser.add_argument('--eval_oracle_mk', action='store_true', + help='use ground corner heatmap.') + self.parser.add_argument('--eval_oracle_wh', action='store_true', + help='use ground truth bounding box size.') + self.parser.add_argument('--eval_oracle_offset', action='store_true', + help='use ground truth local heatmap offset.') + self.parser.add_argument('--eval_oracle_kps', action='store_true', + help='use ground truth human pose offset.') + self.parser.add_argument('--eval_oracle_hmhp', action='store_true', + help='use ground truth human joint heatmaps.') + self.parser.add_argument('--eval_oracle_hp_offset', action='store_true', + help='use ground truth human joint local offset.') + self.parser.add_argument('--eval_oracle_dep', action='store_true', + help='use ground truth depth.') + + def parse(self, args=''): + if args == '': + opt = self.parser.parse_args() + else: + opt = self.parser.parse_args(args) + + opt.gpus_str = opt.gpus + opt.gpus = [int(gpu) for gpu in opt.gpus.split(',')] + opt.gpus = [i for i in range(len(opt.gpus))] if opt.gpus[0] >=0 else [-1] + opt.lr_step = [int(i) for i in opt.lr_step.split(',')] + opt.test_scales = [float(i) for i in opt.test_scales.split(',')] + + opt.fix_res = not opt.keep_res + print('Fix size testing.' if opt.fix_res else 'Keep resolution testing.') + opt.reg_offset = not opt.not_reg_offset + opt.reg_bbox = not opt.not_reg_bbox + opt.hm_hp = not opt.not_hm_hp + opt.reg_hp_offset = (not opt.not_reg_hp_offset) and opt.hm_hp + + if opt.head_conv == -1: # init default head_conv + opt.head_conv = 256 if 'dla' in opt.arch else 64 + opt.pad = 127 if 'hourglass' in opt.arch else 31 + if 'resfpn' in opt.arch: + opt.pad = 0 + opt.num_stacks = 2 if opt.arch == 'hourglass' else 1 + + if opt.trainval: + opt.val_intervals = 100000000 + + if opt.debug > 0: + opt.num_workers = 0 + opt.batch_size = 1 + opt.gpus = [opt.gpus[0]] + opt.master_batch_size = -1 + + if opt.master_batch_size == -1: + opt.master_batch_size = opt.batch_size // len(opt.gpus) + rest_batch_size = (opt.batch_size - opt.master_batch_size) + opt.chunk_sizes = [opt.master_batch_size] + for i in range(len(opt.gpus) - 1): + slave_chunk_size = rest_batch_size // (len(opt.gpus) - 1) + if i < rest_batch_size % (len(opt.gpus) - 1): + slave_chunk_size += 1 + opt.chunk_sizes.append(slave_chunk_size) + print('training chunk_sizes:', opt.chunk_sizes) + + opt.root_dir = os.path.join(os.path.dirname(__file__), '..', '..') + opt.data_dir = os.path.join(opt.root_dir, 'data') + opt.exp_dir = os.path.join(opt.root_dir, 'exp', opt.task) + opt.save_dir = os.path.join(opt.exp_dir, opt.exp_id) + opt.debug_dir = os.path.join(opt.save_dir, 'debug') + print('The output will be saved to ', opt.save_dir) + + if opt.resume and opt.load_model == '': + model_path = opt.save_dir[:-4] if opt.save_dir.endswith('TEST') \ + else opt.save_dir + opt.load_model = os.path.join(model_path, 'model_last.pth') + return opt + + def update_dataset_info_and_set_heads(self, opt, dataset): + input_h, input_w = dataset.default_resolution + opt.mean, opt.std = dataset.mean, dataset.std + opt.num_classes = dataset.num_classes + + # input_h(w): opt.input_h overrides opt.input_res overrides dataset default + input_h = opt.input_res if opt.input_res > 0 else input_h + input_w = opt.input_res if opt.input_res > 0 else input_w + opt.input_h = opt.input_h if opt.input_h > 0 else input_h + opt.input_w = opt.input_w if opt.input_w > 0 else input_w + opt.output_h = opt.input_h // opt.down_ratio + opt.output_w = opt.input_w // opt.down_ratio + opt.input_res = max(opt.input_h, opt.input_w) + opt.output_res = max(opt.output_h, opt.output_w) + + if opt.task == 'exdet': + # assert opt.dataset in ['coco'] + num_hm = 1 if opt.agnostic_ex else opt.num_classes + opt.heads = {'hm_t': num_hm, 'hm_l': num_hm, + 'hm_b': num_hm, 'hm_r': num_hm, + 'hm_c': opt.num_classes} + if opt.reg_offset: + opt.heads.update({'reg_t': 2, 'reg_l': 2, 'reg_b': 2, 'reg_r': 2}) + elif opt.task == 'ddd': + # assert opt.dataset in ['gta', 'kitti', 'viper'] + opt.heads = {'hm': opt.num_classes, 'dep': 1, 'rot': 8, 'dim': 3} + if opt.reg_bbox: + opt.heads.update( + {'wh': 2}) + if opt.reg_offset: + opt.heads.update({'reg': 2}) + elif opt.task == 'ctdet': + # assert opt.dataset in ['pascal', 'coco'] + opt.heads = {'hm': opt.num_classes,'st':8, + 'wh': 8 if not opt.cat_spec_wh else 8 * opt.num_classes, + 'ax': 256, 'cr': 256} + if opt.reg_offset: + opt.heads.update({'reg': 2}) + elif opt.task == 'ctdet_mid': + # assert opt.dataset in ['pascal', 'coco'] + opt.heads = {'hm': opt.num_classes,'st':8, + 'wh': 8 if not opt.cat_spec_wh else 8 * opt.num_classes, + 'ax': 256, 'cr': 256} + if opt.reg_offset: + opt.heads.update({'reg': 2}) + elif opt.task == 'ctdet_small': + # assert opt.dataset in ['pascal', 'coco'] + opt.heads = {'hm': opt.num_classes,'st':8, + 'wh': 8 if not opt.cat_spec_wh else 8 * opt.num_classes, + 'ax': 256, 'cr': 256} + if opt.reg_offset: + opt.heads.update({'reg': 2}) + elif opt.task == 'multi_pose': + # assert opt.dataset in ['coco_hp'] + opt.flip_idx = dataset.flip_idx + opt.heads = {'hm': opt.num_classes, 'wh': 2, 'hps': 34} + if opt.reg_offset: + opt.heads.update({'reg': 2}) + if opt.hm_hp: + opt.heads.update({'hm_hp': 17}) + if opt.reg_hp_offset: + opt.heads.update({'hp_offset': 2}) + else: + assert 0, 'task not defined!' + print('heads', opt.heads) + return opt + + def init(self, args=''): + default_dataset_info = { + 'ctdet': {'default_resolution': [1024, 1024], 'num_classes': 2, + 'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278], + 'dataset': 'table'}, + 'ctdet_mid': {'default_resolution': [768, 768], 'num_classes': 2, + 'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278], + 'dataset': 'table'}, + 'ctdet_small': {'default_resolution': [512, 512], 'num_classes': 2, + 'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278], + 'dataset': 'table'}, + 'exdet': {'default_resolution': [512, 512], 'num_classes': 80, + 'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278], + 'dataset': 'coco'}, + 'multi_pose': { + 'default_resolution': [512, 512], 'num_classes': 1, + 'mean': [0.408, 0.447, 0.470], 'std': [0.289, 0.274, 0.278], + 'dataset': 'coco_hp', 'num_joints': 17, + 'flip_idx': [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], + [11, 12], [13, 14], [15, 16]]}, + 'ddd': {'default_resolution': [384, 1280], 'num_classes': 3, + 'mean': [0.485, 0.456, 0.406], 'std': [0.229, 0.224, 0.225], + 'dataset': 'kitti'}, + } + class Struct: + def __init__(self, entries): + for k, v in entries.items(): + self.__setattr__(k, v) + opt = self.parse(args) + dataset = Struct(default_dataset_info[opt.task]) + opt.dataset = dataset.dataset + opt = self.update_dataset_info_and_set_heads(opt, dataset) + return opt diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/base_trainer.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/base_trainer.py new file mode 100644 index 00000000..efb22fec --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/base_trainer.py @@ -0,0 +1,143 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import time +import torch +from progress.bar import Bar +from models.data_parallel import DataParallel +from utils.utils import AverageMeter +from models.classifier import Processor +from utils.adjacency import loss_mask + + +class ModleWithLoss(torch.nn.Module): + def __init__(self, opt, model, loss, processor=None): + super(ModleWithLoss, self).__init__() + self.opt = opt + + self.model = model + + if self.opt.hold_det: + for param in self.model.named_parameters(): + #if param[0] in need_frozen_list: + param[1].requires_grad = False + + self.processor = processor + self.loss = loss + + def forward(self, epoch, batch): + + outputs = self.model(batch['input']) + + if self.opt.wiz_stacking: + logic_axis, stacked_axis = self.processor(outputs, batch) + loss, loss_stats = self.loss(epoch, outputs, batch, logic_axis, stacked_axis) + else: + logic_axis = self.processor(outputs, batch) + loss, loss_stats = self.loss(epoch, outputs, batch, logic_axis) + + return outputs[-1], loss, loss_stats + +class BaseTrainer(object): + def __init__(self, opt, model, optimizer=None, processor=None): + self.opt = opt + self.optimizer = optimizer + self.loss_stats, self.loss = self._get_losses(opt) + self.model_with_loss = ModleWithLoss(self.opt, model, self.loss, processor) + + + def set_device(self, gpus, chunk_sizes, device): + if len(gpus) > 1: + self.model_with_loss = DataParallel( + self.model_with_loss, device_ids=gpus, + chunk_sizes=chunk_sizes).to(device) + else: + self.model_with_loss = self.model_with_loss.to(device) + + for state in self.optimizer.state.values(): + for k, v in state.items(): + if isinstance(v, torch.Tensor): + state[k] = v.to(device=device, non_blocking=True) + + def run_epoch(self, phase, epoch, data_loader): + model_with_loss = self.model_with_loss + + if phase == 'train': + model_with_loss.train() + else: + if len(self.opt.gpus) > 1: + model_with_loss = self.model_with_loss.module + model_with_loss.eval() + torch.cuda.empty_cache() + + opt = self.opt + results = {} + data_time, batch_time = AverageMeter(), AverageMeter() + avg_loss_stats = {l: AverageMeter() for l in self.loss_stats} + num_iters = len(data_loader) if opt.num_iters < 0 else opt.num_iters + bar = Bar('{}/{}'.format(opt.task, opt.exp_id), max=num_iters) + end = time.time() + + for iter_id, batch in enumerate(data_loader): + if iter_id >= num_iters: + break + data_time.update(time.time() - end) + + for k in batch: + if k != 'meta': + batch[k] = batch[k].to(device=opt.device, non_blocking=True) + + output, loss, loss_stats = model_with_loss(epoch, batch) + loss = loss.mean() + if phase == 'train': + self.optimizer.zero_grad() + loss.backward() + self.optimizer.step() + batch_time.update(time.time() - end) + end = time.time() + + Bar.suffix = '{phase}: [{0}][{1}/{2}]|Tot: {total:} |ETA: {eta:} '.format( + epoch, iter_id, num_iters, phase=phase, + total=bar.elapsed_td, eta=bar.eta_td) + for l in avg_loss_stats: + avg_loss_stats[l].update( + loss_stats[l].mean().item(), batch['input'].size(0)) + if l == 'loss_mj' or l == 'loss_mn' or l == 'smo_loss': + Bar.suffix = Bar.suffix + '|{} {:.2f} '.format(l, avg_loss_stats[l].avg) + else: + Bar.suffix = Bar.suffix + '|{} {:.4f} '.format(l, avg_loss_stats[l].avg) + + if opt.print_iter > 0: + if iter_id % opt.print_iter == 0: + print('{}/{}| {}'.format(opt.task, opt.exp_id, Bar.suffix)) + else: + bar.next() + + if opt.debug > 0: + self.debug(batch, output, iter_id) + + if opt.test: + self.save_result(output, batch, results) + del output, loss, loss_stats + + bar.finish() + ret = {k: v.avg for k, v in avg_loss_stats.items()} + ret['time'] = bar.elapsed_td.total_seconds() / 60. + + return ret, results + + def debug(self, batch, output, iter_id): + raise NotImplementedError + + def save_result(self, output, batch, results): + raise NotImplementedError + + def _get_losses(self, opt): + raise NotImplementedError + + def val(self, epoch, data_loader): + return self.run_epoch('val', epoch, data_loader) + + def train(self, epoch, data_loader): + return self.run_epoch('train', epoch, data_loader) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/ctdet.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/ctdet.py new file mode 100644 index 00000000..03bc05a3 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/ctdet.py @@ -0,0 +1,168 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import torch +import numpy as np + +from models.losses import FocalLoss +from models.losses import RegL1Loss, RegLoss, NormRegL1Loss, RegWeightedL1Loss, PairLoss, AxisLoss, _axis_eval +from models.decode import ctdet_decode +from models.decode import ctdet_decode +from models.utils import _sigmoid +from utils.debugger import Debugger +from utils.post_process import ctdet_post_process +from utils.oracle_utils import gen_oracle_map +from .base_trainer import BaseTrainer + +class CtdetLoss(torch.nn.Module): + def __init__(self, opt): + super(CtdetLoss, self).__init__() + self.crit = torch.nn.MSELoss() if opt.mse_loss else FocalLoss() + self.crit_mk = torch.nn.MSELoss() if opt.mse_loss else FocalLoss() + self.crit_reg = RegL1Loss() if opt.reg_loss == 'l1' else \ + RegLoss() if opt.reg_loss == 'sl1' else None + self.crit_wh = torch.nn.L1Loss(reduction='sum') if opt.dense_wh else \ + NormRegL1Loss() if opt.norm_wh else \ + RegWeightedL1Loss() if opt.cat_spec_wh else self.crit_reg + self.crit_st = self.crit_reg + self.crit_ax = AxisLoss() + self.pair_loss = PairLoss() + self.opt = opt + + def forward(self, epoch, outputs, batch, logi=None, slogi=None): + + opt = self.opt + """hm, re, off, wh losses are original losses of CenterNet detector, and the st loss is the loss for parsing-grouping in Cycle-CenterNet.""" + hm_loss, st_loss, re_loss, off_loss, wh_loss, lo_loss, ax_loss, sax_loss, sm_loss = 0, 0, 0, 0, 0, 0, 0, 0, 0 + + for s in range(opt.num_stacks): + output = outputs[s] + if not opt.mse_loss: + output['hm'] = _sigmoid(output['hm']) + + if opt.eval_oracle_hm: + output['hm'] = batch['hm'] + if opt.eval_oracle_wh: + output['wh'] = torch.from_numpy(gen_oracle_map( + batch['wh'].detach().cpu().numpy(), + batch['hm_ind'].detach().cpu().numpy(), + output['wh'].shape[3], output['wh'].shape[2])).to(opt.device) + if opt.eval_oracle_offset: + output['reg'] = torch.from_numpy(gen_oracle_map(batch['reg'].detach().cpu().numpy(), \ + batch['reg_ind'].detach().cpu().numpy(), output['reg'].shape[3], output['reg'].shape[2])).to(opt.device) + + """LOSS FOR DETECTION MODULE""" + + if self.opt.wiz_pairloss: + hm_loss += self.crit(output['hm'] , batch['hm'] ) / opt.num_stacks + + loss1, loss2 = \ + self.pair_loss(output['wh'],batch['hm_ind'],output['st'],batch['mk_ind'],batch['hm_mask'], \ + batch['mk_mask'],batch['ctr_cro_ind'],batch['wh'],batch['st'],batch['hm_ctxy']) + + wh_loss += loss1 / opt.num_stacks + st_loss += loss2 / opt.num_stacks + else: + hm_loss += self.crit(output['hm'][:,0,:,:], batch['hm'][:,0,:,:]) / opt.num_stacks # only supervision on centers + wh_loss += self.crit_wh(output['wh'], batch['hm_mask'], batch['hm_ind'], batch['wh']) + + if opt.reg_offset and opt.off_weight > 0: + off_loss += self.crit_reg(output['reg'], batch['reg_mask'], batch['reg_ind'], batch['reg']) / opt.num_stacks + + """LOSS FOR RECONSTRUCTION MODULE""" + + ax_loss = self.crit_ax(output['ax'], batch['hm_mask'], batch['hm_ind'], batch['logic'], logi) + + '''COMBINING LOSSES''' + + loss = opt.hm_weight * hm_loss + opt.wh_weight * wh_loss + \ + opt.off_weight * off_loss + 2 * ax_loss + + if self.opt.wiz_pairloss: + loss = loss + st_loss + + if self.opt.wiz_stacking: + sax_loss = self.crit_ax(output['ax'], batch['hm_mask'], batch['hm_ind'], batch['logic'], slogi) + loss = loss + 2 * sax_loss + sacc = _axis_eval(output['ax'], batch['hm_mask'], batch['hm_ind'], batch['logic'], slogi) + '''CONSTRUCTING LOSS STATUS''' + + #weather asking for grouping + if self.opt.wiz_pairloss : + loss_stats = {'loss': loss, 'hm_l': hm_loss, 'wh_l': wh_loss, "st_l": st_loss, "ax_l": ax_loss} + else: + loss_stats = {'loss': loss, 'hm_l': hm_loss, 'wh_l': wh_loss, "ax_l": ax_loss} + + #weather asking for stacking + if self.opt.wiz_stacking: + loss_stats['sax_l'] = sax_loss + + return loss, loss_stats + +class CtdetTrainer(BaseTrainer): + def __init__(self, opt, model, optimizer=None, processor=None): + super(CtdetTrainer, self).__init__(opt, model, optimizer, processor) + + def _get_losses(self, opt): + + if opt.wiz_pairloss: + loss_stats = ['loss', 'hm_l', 'wh_l', 'st_l', 'ax_l'] + else: + loss_stats = ['loss', 'hm_l', 'wh_l', 'ax_l'] + + if opt.wiz_stacking: + loss_stats.append('sax_l') + + loss = CtdetLoss(opt) + return loss_stats, loss + + def debug(self, batch, output, iter_id): + opt = self.opt + reg = output['reg'] if opt.reg_offset else None + mk_reg = output['mk_reg'] + dets = ctdet_decode( + output['hm'], output['wh'], reg=reg, + cat_spec_wh=opt.cat_spec_wh, K=opt.K) + dets = dets.detach().cpu().numpy().reshape(1, -1, dets.shape[2]) + dets[:, :, :8] *= opt.down_ratio + dets_gt = batch['meta']['gt_det'].numpy().reshape(1, -1, dets.shape[2]) + dets_gt[:, :, :8] *= opt.down_ratio + for i in range(1): + debugger = Debugger( + dataset=opt.dataset, ipynb=(opt.debug==3), theme=opt.debugger_theme) + img = batch['input'][i].detach().cpu().numpy().transpose(1, 2, 0) + img = np.clip((( + img * opt.std + opt.mean) * 255.), 0, 255).astype(np.uint8) + pred = debugger.gen_colormap(output['hm'][i].detach().cpu().numpy()) + gt = debugger.gen_colormap(batch['hm'][i].detach().cpu().numpy()) + debugger.add_blend_img(img, pred, 'pred_hm') + debugger.add_blend_img(img, gt, 'gt_hm') + debugger.add_img(img, img_id='out_pred') + for k in range(len(dets[i])): + if dets[i, k, 8] > opt.center_thresh: + debugger.add_coco_bbox(dets[i, k, :8], dets[i, k, -1], + dets[i, k, 8], img_id='out_pred') + + debugger.add_img(img, img_id='out_gt') + for k in range(len(dets_gt[i])): + if dets_gt[i, k, 8] > opt.center_thresh: + debugger.add_coco_bbox(dets_gt[i, k, :8], dets_gt[i, k, -1], + dets_gt[i, k, 8], img_id='out_gt') + + if opt.debug == 4: + debugger.save_all_imgs(opt.debug_dir, prefix='{}'.format(iter_id)) + else: + debugger.show_all_imgs(pause=True) + + def save_result(self, output, batch, results): + reg = output['reg'] if self.opt.reg_offset else None + dets = ctdet_decode( + output['hm'], output['wh'], reg=reg, + cat_spec_wh=self.opt.cat_spec_wh, K=self.opt.K) + dets = dets.detach().cpu().numpy().reshape(1, -1, dets.shape[2]) + dets_out = ctdet_post_process( + dets.copy(), batch['meta']['c'].cpu().numpy(), + batch['meta']['s'].cpu().numpy(), + output['hm'].shape[2], output['hm'].shape[3], output['hm'].shape[1]) + results[batch['meta']['img_id'].cpu().numpy()[0]] = dets_out[0] \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/train_factory.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/train_factory.py new file mode 100644 index 00000000..6da63d38 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/trains/train_factory.py @@ -0,0 +1,11 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +from .ctdet import CtdetTrainer + +train_factory = { + 'ctdet': CtdetTrainer, + 'ctdet_mid': CtdetTrainer, + 'ctdet_small': CtdetTrainer +} diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/adjacency.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/adjacency.py new file mode 100644 index 00000000..6c9e5b33 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/adjacency.py @@ -0,0 +1,130 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +def adjacency (box1, box2): + sr1 = box1[0] + er1 = box1[1] + sc1 = box1[2] + ec1 = box1[3] + + sr2 = box2[0] + er2 = box2[1] + sc2 = box2[2] + ec2 = box2[3] + + if sr2 - er1 == 1 or sr1 - er2 == 1: + #l-r adjacency + if (sc1<=sc2 and ec1>=ec2) or (sc1>=sc2 and ec1<=ec2): + return True + else: + return False + elif sc2 - ec1 == 1 or sc1 - ec2 == 1: + #u-d adjacency + if (sr1<=sr2 and er1>=er2) or (sr1>=sr2 and er1<=er2): + return True + else: + return False + else: + #no adjacency + return False + +def same_row(box1, box2): + sc1 = box1[0] + ec1 = box1[1] + sr1 = box1[2] + er1 = box1[3] + + sc2 = box2[0] + ec2 = box2[1] + sr2 = box2[2] + er2 = box2[3] + + #unit1.axis[2] sr1 + #unit1.axis[3] er1 + #unit2.axis[2] sr2 + #unit2.axis[3] er2 + + if sr1 <= sr2 <= er1: + return True + + elif sr2 <= sr1 <= er2: + return True + + else: + return False + +def same_col(box1, box2): + sc1 = box1[0] + ec1 = box1[1] + sr1 = box1[2] + er1 = box1[3] + + sc2 = box2[0] + ec2 = box2[1] + sr2 = box2[2] + er2 = box2[3] + + #unit1.axis[0] sc1 + #unit2.axis[0] sc2 + #unit1.axis[1] ec1 + #unit2.axis[1] ec2 + + if sc1 <= sc2 <= ec1: + return True + elif sc2 <= sc1 <= ec2: + return True + else: + return False + + +def loss_mask(num_obj): + + mask = torch.zeros(num_obj, num_obj) + for i in range(num_obj): + for j in range(i): + mask[i][j] = 1.0 + + return mask + +def v_adjacency (box1, box2): + sr1 = box1[0] + er1 = box1[1] + sc1 = box1[2] + ec1 = box1[3] + + sr2 = box2[0] + er2 = box2[1] + sc2 = box2[2] + ec2 = box2[3] + + if sc2 - ec1 == 1 or sc1 - ec2 == 1: + #u-d adjacency + if (sr1<=sr2 and er1>=er2) or (sr1>=sr2 and er1<=er2): + return True + else: + return False + else: + #no adjacency + return False + +def h_adjacency (box1, box2): + sr1 = box1[0] + er1 = box1[1] + sc1 = box1[2] + ec1 = box1[3] + + sr2 = box2[0] + er2 = box2[1] + sc2 = box2[2] + ec2 = box2[3] + + if sr2 - er1 == 1 or sr1 - er2 == 1: + #l-r adjacency + if (sc1<=sc2 and ec1>=ec2) or (sc1>=sc2 and ec1<=ec2): + return True + else: + return False + else: + #no adjacency + return False \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/debugger.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/debugger.py new file mode 100644 index 00000000..500c9d1e --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/debugger.py @@ -0,0 +1,488 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import cv2 + +class Debugger(object): + def __init__(self, ipynb=False, theme='black', + num_classes=-1, dataset=None, down_ratio=4): + self.ipynb = ipynb + if not self.ipynb: + import matplotlib.pyplot as plt + self.plt = plt + self.imgs = {} + self.theme = theme + colors = [(color_list[_]).astype(np.uint8) \ + for _ in range(len(color_list))] + self.colors = np.array(colors, dtype=np.uint8).reshape(len(colors), 1, 1, 3) + if self.theme == 'white': + self.colors = self.colors.reshape(-1)[::-1].reshape(len(colors), 1, 1, 3) + self.colors = np.clip(self.colors, 0., 0.6 * 255).astype(np.uint8) + self.dim_scale = 1 + if dataset == 'coco_hp': + self.names = ['p'] + self.num_class = 1 + self.num_joints = 17 + self.edges = [[0, 1], [0, 2], [1, 3], [2, 4], + [3, 5], [4, 6], [5, 6], + [5, 7], [7, 9], [6, 8], [8, 10], + [5, 11], [6, 12], [11, 12], + [11, 13], [13, 15], [12, 14], [14, 16]] + self.ec = [(255, 0, 0), (0, 0, 255), (255, 0, 0), (0, 0, 255), + (255, 0, 0), (0, 0, 255), (255, 0, 255), + (255, 0, 0), (255, 0, 0), (0, 0, 255), (0, 0, 255), + (255, 0, 0), (0, 0, 255), (255, 0, 255), + (255, 0, 0), (255, 0, 0), (0, 0, 255), (0, 0, 255)] + self.colors_hp = [(255, 0, 255), (255, 0, 0), (0, 0, 255), + (255, 0, 0), (0, 0, 255), (255, 0, 0), (0, 0, 255), + (255, 0, 0), (0, 0, 255), (255, 0, 0), (0, 0, 255), + (255, 0, 0), (0, 0, 255), (255, 0, 0), (0, 0, 255), + (255, 0, 0), (0, 0, 255)] + elif num_classes == 80 or dataset == 'coco': + self.names = coco_class_name + elif num_classes == 20 or dataset == 'pascal': + self.names = pascal_class_name + elif num_classes == 1 or dataset == 'table': + self.names = table_class_name + + num_classes = len(self.names) + self.down_ratio=down_ratio + # for bird view + self.world_size = 64 + self.out_size = 384 + + def add_img(self, img, img_id='default', revert_color=False): + if revert_color: + img = 255 - img + self.imgs[img_id] = img.copy() + + def add_mask(self, mask, bg, imgId = 'default', trans = 0.8): + self.imgs[imgId] = (mask.reshape( + mask.shape[0], mask.shape[1], 1) * 255 * trans + \ + bg * (1 - trans)).astype(np.uint8) + + def show_img(self, pause = False, imgId = 'default'): + cv2.imshow('{}'.format(imgId), self.imgs[imgId]) + if pause: + cv2.waitKey() + + def add_blend_img(self, back, fore, img_id='blend', trans=0.7): + if self.theme == 'white': + fore = 255 - fore + if fore.shape[0] != back.shape[0] or fore.shape[0] != back.shape[1]: + fore = cv2.resize(fore, (back.shape[1], back.shape[0])) + if len(fore.shape) == 2: + fore = fore.reshape(fore.shape[0], fore.shape[1], 1) + self.imgs[img_id] = (back * (1. - trans) + fore * trans) + self.imgs[img_id][self.imgs[img_id] > 255] = 255 + self.imgs[img_id][self.imgs[img_id] < 0] = 0 + self.imgs[img_id] = self.imgs[img_id].astype(np.uint8).copy() + + + def gen_colormap(self, img, output_res=None): + img = img.copy() + c, h, w = img.shape[0], img.shape[1], img.shape[2] + if output_res is None: + output_res = (h * self.down_ratio, w * self.down_ratio) + img = img.transpose(1, 2, 0).reshape(h, w, c, 1).astype(np.float32) + colors = np.array( + self.colors, dtype=np.float32).reshape(-1, 3)[:c].reshape(1, 1, c, 3) + if self.theme == 'white': + colors = 255 - colors + color_map = (img * colors).max(axis=2).astype(np.uint8) + color_map = cv2.resize(color_map, (output_res[0], output_res[1])) + return color_map + + def gen_colormap_hp(self, img, output_res=None): + c, h, w = img.shape[0], img.shape[1], img.shape[2] + if output_res is None: + output_res = (h * self.down_ratio, w * self.down_ratio) + img = img.transpose(1, 2, 0).reshape(h, w, c, 1).astype(np.float32) + colors = np.array( + self.colors_hp, dtype=np.float32).reshape(-1, 3)[:c].reshape(1, 1, c, 3) + if self.theme == 'white': + colors = 255 - colors + color_map = (img * colors).max(axis=2).astype(np.uint8) + color_map = cv2.resize(color_map, (output_res[0], output_res[1])) + return color_map + + + def add_rect(self, rect1, rect2, c, conf=1, img_id='default'): + cv2.rectangle( + self.imgs[img_id], (rect1[0], rect1[1]), (rect2[0], rect2[1]), c, 2) + if conf < 1: + cv2.circle(self.imgs[img_id], (rect1[0], rect1[1]), int(10 * conf), c, 1) + cv2.circle(self.imgs[img_id], (rect2[0], rect2[1]), int(10 * conf), c, 1) + cv2.circle(self.imgs[img_id], (rect1[0], rect2[1]), int(10 * conf), c, 1) + cv2.circle(self.imgs[img_id], (rect2[0], rect1[1]), int(10 * conf), c, 1) + + def add_coco_bbox(self, bbox, cat, conf=1, show_txt=False, img_id='default'): + bbox = np.array(bbox, dtype=np.int32) + # cat = (int(cat) + 1) % 80 + cat = int(cat) + # print('cat', cat, self.names[cat]) + c = self.colors[cat][0][0].tolist() + if self.theme == 'white': + c = (255 - np.array(c )).tolist() + txt = '{}{:.1f}'.format(self.names[cat], conf) + font = cv2.FONT_HERSHEY_SIMPLEX + cat_size = cv2.getTextSize(txt, font, 0.5, 2)[0] + cv2.rectangle( + self.imgs[img_id], (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0,0,255), 10) # -2 + if show_txt: + cv2.rectangle(self.imgs[img_id], + (bbox[0], bbox[1] - cat_size[1] - 2), + (bbox[0] + cat_size[0], bbox[1] - 2), c, -1) + #0.5-2 + cv2.putText(self.imgs[img_id], txt, (bbox[0], bbox[1] - 2), + font, 10, (0, 0, 0), thickness=1, lineType=cv2.LINE_AA) + + def add_4ps_coco_bbox(self, bbox, cat, conf, logi=None, show_txt=False, img_id='default'): + bbox = np.array(bbox, dtype=np.int32) + # cat = (int(cat) + 1) % 80 + cat = int(cat) + # print('cat', cat, self.names[cat]) + c = self.colors[cat][0][0].tolist() + if self.theme == 'white': + c = (255 - np.array(c )).tolist() + + if not logi is None: + txt = '{:.0f},{:.0f},{:.0f},{:.0f}'.format(logi[0], logi[1], logi[2], logi[3]) + font = cv2.FONT_HERSHEY_SIMPLEX + cat_size = cv2.getTextSize(txt, font, 0.3, 2)[0] + r = np.random.randint(0,255) + g = np.random.randint(0,255) + b = np.random.randint(0,255) + cv2.line(self.imgs[img_id],(bbox[0],bbox[1]),(bbox[2],bbox[3]),(0,0,255),2) + cv2.line(self.imgs[img_id],(bbox[2],bbox[3]),(bbox[4],bbox[5]),(0,0,255),2) + cv2.line(self.imgs[img_id],(bbox[4],bbox[5]),(bbox[6],bbox[7]),(0,0,255),2) + cv2.line(self.imgs[img_id],(bbox[6],bbox[7]),(bbox[0],bbox[1]),(0,0,255),2) # 1 - 5 + + if not logi is None: + cv2.rectangle(self.imgs[img_id], + (bbox[0], bbox[1] - cat_size[1] - 2), + (bbox[0] + cat_size[0], bbox[1] - 2), c, -1) + cv2.putText(self.imgs[img_id], txt, (bbox[0], bbox[1] - 2), + font, 0.30, (0, 0, 0), thickness=1, lineType=cv2.LINE_AA) #1 - 5 # 0.20 _ 0.60 + + + def add_coco_hp(self, points, img_id='default'): + points = np.array(points, dtype=np.int32).reshape(self.num_joints, 2) + for j in range(self.num_joints): + cv2.circle(self.imgs[img_id], + (points[j, 0], points[j, 1]), 3, self.colors_hp[j], -1) + for j, e in enumerate(self.edges): + if points[e].min() > 0: + cv2.line(self.imgs[img_id], (points[e[0], 0], points[e[0], 1]), + (points[e[1], 0], points[e[1], 1]), self.ec[j], 2, + lineType=cv2.LINE_AA) + + def add_points(self, points, img_id='default'): + num_classes = len(points) + # assert num_classes == len(self.colors) + for i in range(num_classes): + for j in range(len(points[i])): + c = self.colors[i, 0, 0] + cv2.circle(self.imgs[img_id], (points[i][j][0] * self.down_ratio, + points[i][j][1] * self.down_ratio), + 5, (255, 255, 255), -1) + cv2.circle(self.imgs[img_id], (points[i][j][0] * self.down_ratio, + points[i][j][1] * self.down_ratio), + 3, (int(c[0]), int(c[1]), int(c[2])), -1) + + def add_corner(self, corner, img_id='default'): + if abs(int(corner[2])+int(corner[3])) > 10: + cv2.arrowedLine(self.imgs[img_id], (int(corner[0]),int(corner[1])),(int(corner[2]),int(corner[3])),(0,0,255),thickness=1, line_type=cv2.LINE_4, shift=0, tipLength=0.02) + if abs(int(corner[4])+int(corner[5])) > 10: + cv2.arrowedLine(self.imgs[img_id], (int(corner[0]),int(corner[1])),(int(corner[4]),int(corner[5])),(0,255,0),thickness=1, line_type=cv2.LINE_4, shift=0, tipLength=0.02) + if abs(int(corner[6])+int(corner[7])) > 10: + cv2.arrowedLine(self.imgs[img_id], (int(corner[0]),int(corner[1])),(int(corner[6]),int(corner[7])),(255,0,0),thickness=1, line_type=cv2.LINE_4, shift=0, tipLength=0.02) + if abs(int(corner[8])+int(corner[9])) > 10: + cv2.arrowedLine(self.imgs[img_id], (int(corner[0]),int(corner[1])),(int(corner[8]),int(corner[9])),(0,0, 0),thickness=1, line_type=cv2.LINE_4, shift=0, tipLength=0.02) + cv2.circle(self.imgs[img_id], (int(corner[0]), int(corner[1])), 3, (255, 0, 0), -1) + + def show_all_imgs(self, pause=False, time=0): + if not self.ipynb: + for i, v in self.imgs.items(): + cv2.imshow('{}'.format(i), v) + if cv2.waitKey(0 if pause else 1) == 27: + import sys + sys.exit(0) + else: + self.ax = None + nImgs = len(self.imgs) + fig=self.plt.figure(figsize=(nImgs * 10,10)) + nCols = nImgs + nRows = nImgs // nCols + for i, (k, v) in enumerate(self.imgs.items()): + fig.add_subplot(1, nImgs, i + 1) + if len(v.shape) == 3: + self.plt.imshow(cv2.cvtColor(v, cv2.COLOR_BGR2RGB)) + else: + self.plt.imshow(v) + self.plt.show() + + def save_img(self, imgId='default', path='./cache/debug/'): + cv2.imwrite(path + '{}.png'.format(imgId), self.imgs[imgId]) + + def save_all_imgs(self, image_name, path='./cache/debug/', prefix='', genID=True): + if genID: + try: + idx = int(np.loadtxt(path + '/id.txt')) + except: + idx = 0 + prefix=idx + np.savetxt(path + '/id.txt', np.ones(1) * (idx + 1), fmt='%d') + for i, v in self.imgs.items(): + #cv2.imwrite(path + '/{}{}.png'.format(prefix,i), v) + cv2.imwrite(path + '/%s'%image_name, v) + #print(path+'/%s'%image_name) + + def remove_side(self, img_id, img): + if not (img_id in self.imgs): + return + ws = img.sum(axis=2).sum(axis=0) + l = 0 + while ws[l] == 0 and l < len(ws): + l+= 1 + r = ws.shape[0] - 1 + while ws[r] == 0 and r > 0: + r -= 1 + hs = img.sum(axis=2).sum(axis=1) + t = 0 + while hs[t] == 0 and t < len(hs): + t += 1 + b = hs.shape[0] - 1 + while hs[b] == 0 and b > 0: + b -= 1 + self.imgs[img_id] = self.imgs[img_id][t:b+1, l:r+1].copy() + + def project_3d_to_bird(self, pt): + pt[0] += self.world_size / 2 + pt[1] = self.world_size - pt[1] + pt = pt * self.out_size / self.world_size + return pt.astype(np.int32) + + def add_ct_detection( + self, img, dets, show_box=False, show_txt=True, + center_thresh=0.5, img_id='det'): + # dets: max_preds x 5 + self.imgs[img_id] = img.copy() + if type(dets) == type({}): + for cat in dets: + for i in range(len(dets[cat])): + if dets[cat][i, 2] > center_thresh: + cl = (self.colors[cat, 0, 0]).tolist() + ct = dets[cat][i, :2].astype(np.int32) + if show_box: + w, h = dets[cat][i, -2], dets[cat][i, -1] + x, y = dets[cat][i, 0], dets[cat][i, 1] + bbox = np.array([x - w / 2, y - h / 2, x + w / 2, y + h / 2], + dtype=np.float32) + self.add_coco_bbox( + bbox, cat - 1, dets[cat][i, 2], + show_txt=show_txt, img_id=img_id) + else: + for i in range(len(dets)): + if dets[i, 2] > center_thresh: + # print('dets', dets[i]) + cat = int(dets[i, -1]) + cl = (self.colors[cat, 0, 0] if self.theme == 'black' else \ + 255 - self.colors[cat, 0, 0]).tolist() + ct = dets[i, :2].astype(np.int32) * self.down_ratio + cv2.circle(self.imgs[img_id], (ct[0], ct[1]), 3, cl, -1) + if show_box: + w, h = dets[i, -3] * self.down_ratio, dets[i, -2] * self.down_ratio + x, y = dets[i, 0] * self.down_ratio, dets[i, 1] * self.down_ratio + bbox = np.array([x - w / 2, y - h / 2, x + w / 2, y + h / 2], + dtype=np.float32) + self.add_coco_bbox(bbox, dets[i, -1], dets[i, 2], img_id=img_id) + + def add_2d_detection( + self, img, dets, show_box=False, show_txt=True, + center_thresh=0.5, img_id='det'): + self.imgs[img_id] = img + for cat in dets: + for i in range(len(dets[cat])): + cl = (self.colors[cat - 1, 0, 0]).tolist() + if dets[cat][i, -1] > center_thresh: + bbox = dets[cat][i, 1:5] + self.add_coco_bbox( + bbox, cat - 1, dets[cat][i, -1], + show_txt=show_txt, img_id=img_id) + + def add_bird_view(self, dets, center_thresh=0.3, img_id='bird'): + bird_view = np.ones((self.out_size, self.out_size, 3), dtype=np.uint8) * 230 + for cat in dets: + cl = (self.colors[cat - 1, 0, 0]).tolist() + lc = (250, 152, 12) + for i in range(len(dets[cat])): + if dets[cat][i, -1] > center_thresh: + dim = dets[cat][i, 5:8] + loc = dets[cat][i, 8:11] + rot_y = dets[cat][i, 11] + rect = compute_box_3d(dim, loc, rot_y)[:4, [0, 2]] + for k in range(4): + rect[k] = self.project_3d_to_bird(rect[k]) + # cv2.circle(bird_view, (rect[k][0], rect[k][1]), 2, lc, -1) + cv2.polylines( + bird_view,[rect.reshape(-1, 1, 2).astype(np.int32)], + True,lc,2,lineType=cv2.LINE_AA) + for e in [[0, 1]]: + t = 4 if e == [0, 1] else 1 + cv2.line(bird_view, (rect[e[0]][0], rect[e[0]][1]), + (rect[e[1]][0], rect[e[1]][1]), lc, t, + lineType=cv2.LINE_AA) + self.imgs[img_id] = bird_view + + def add_bird_views(self, dets_dt, dets_gt, center_thresh=0.3, img_id='bird'): + alpha = 0.5 + bird_view = np.ones((self.out_size, self.out_size, 3), dtype=np.uint8) * 230 + for ii, (dets, lc, cc) in enumerate( + [(dets_gt, (12, 49, 250), (0, 0, 255)), + (dets_dt, (250, 152, 12), (255, 0, 0))]): + # cc = np.array(lc, dtype=np.uint8).reshape(1, 1, 3) + for cat in dets: + cl = (self.colors[cat - 1, 0, 0]).tolist() + for i in range(len(dets[cat])): + if dets[cat][i, -1] > center_thresh: + dim = dets[cat][i, 5:8] + loc = dets[cat][i, 8:11] + rot_y = dets[cat][i, 11] + rect = compute_box_3d(dim, loc, rot_y)[:4, [0, 2]] + for k in range(4): + rect[k] = self.project_3d_to_bird(rect[k]) + if ii == 0: + cv2.fillPoly( + bird_view,[rect.reshape(-1, 1, 2).astype(np.int32)], + lc,lineType=cv2.LINE_AA) + else: + cv2.polylines( + bird_view,[rect.reshape(-1, 1, 2).astype(np.int32)], + True,lc,2,lineType=cv2.LINE_AA) + # for e in [[0, 1], [1, 2], [2, 3], [3, 0]]: + for e in [[0, 1]]: + t = 4 if e == [0, 1] else 1 + cv2.line(bird_view, (rect[e[0]][0], rect[e[0]][1]), + (rect[e[1]][0], rect[e[1]][1]), lc, t, + lineType=cv2.LINE_AA) + self.imgs[img_id] = bird_view + + +kitti_class_name = [ + 'p', 'v', 'b' +] + +gta_class_name = [ + 'p', 'v' +] + +pascal_class_name = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", + "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", + "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"] + +coco_class_name = [ + 'person', 'bicycle', 'car', 'motorcycle', 'airplane', + 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', + 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', + 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', + 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', + 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', + 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', + 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', + 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', + 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', + 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', + 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', + 'scissors', 'teddy bear', 'hair drier', 'toothbrush' +] + +table_class_name = ["box"] + +color_list = np.array( + [ + 1.000, 1.000, 1.000, + 0.850, 0.325, 0.098, + 0.929, 0.694, 0.125, + 0.494, 0.184, 0.556, + 0.466, 0.674, 0.188, + 0.301, 0.745, 0.933, + 0.635, 0.078, 0.184, + 0.300, 0.300, 0.300, + 0.600, 0.600, 0.600, + 1.000, 0.000, 0.000, + 1.000, 0.500, 0.000, + 0.749, 0.749, 0.000, + 0.000, 1.000, 0.000, + 0.000, 0.000, 1.000, + 0.667, 0.000, 1.000, + 0.333, 0.333, 0.000, + 0.333, 0.667, 0.000, + 0.333, 1.000, 0.000, + 0.667, 0.333, 0.000, + 0.667, 0.667, 0.000, + 0.667, 1.000, 0.000, + 1.000, 0.333, 0.000, + 1.000, 0.667, 0.000, + 1.000, 1.000, 0.000, + 0.000, 0.333, 0.500, + 0.000, 0.667, 0.500, + 0.000, 1.000, 0.500, + 0.333, 0.000, 0.500, + 0.333, 0.333, 0.500, + 0.333, 0.667, 0.500, + 0.333, 1.000, 0.500, + 0.667, 0.000, 0.500, + 0.667, 0.333, 0.500, + 0.667, 0.667, 0.500, + 0.667, 1.000, 0.500, + 1.000, 0.000, 0.500, + 1.000, 0.333, 0.500, + 1.000, 0.667, 0.500, + 1.000, 1.000, 0.500, + 0.000, 0.333, 1.000, + 0.000, 0.667, 1.000, + 0.000, 1.000, 1.000, + 0.333, 0.000, 1.000, + 0.333, 0.333, 1.000, + 0.333, 0.667, 1.000, + 0.333, 1.000, 1.000, + 0.667, 0.000, 1.000, + 0.667, 0.333, 1.000, + 0.667, 0.667, 1.000, + 0.667, 1.000, 1.000, + 1.000, 0.000, 1.000, + 1.000, 0.333, 1.000, + 1.000, 0.667, 1.000, + 0.167, 0.000, 0.000, + 0.333, 0.000, 0.000, + 0.500, 0.000, 0.000, + 0.667, 0.000, 0.000, + 0.833, 0.000, 0.000, + 1.000, 0.000, 0.000, + 0.000, 0.167, 0.000, + 0.000, 0.333, 0.000, + 0.000, 0.500, 0.000, + 0.000, 0.667, 0.000, + 0.000, 0.833, 0.000, + 0.000, 1.000, 0.000, + 0.000, 0.000, 0.167, + 0.000, 0.000, 0.333, + 0.000, 0.000, 0.500, + 0.000, 0.000, 0.667, + 0.000, 0.000, 0.833, + 0.000, 0.000, 1.000, + 0.000, 0.000, 0.000, + 0.143, 0.143, 0.143, + 0.286, 0.286, 0.286, + 0.429, 0.429, 0.429, + 0.571, 0.571, 0.571, + 0.714, 0.714, 0.714, + 0.857, 0.857, 0.857, + 0.000, 0.447, 0.741, + 0.50, 0.5, 0 + ] + ).astype(np.float32) +color_list = color_list.reshape((-1, 3)) * 255 diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/eval_utils.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/eval_utils.py new file mode 100644 index 00000000..9c92b916 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/eval_utils.py @@ -0,0 +1,244 @@ +import re +import os +import numpy as np +import scipy.spatial +from tqdm import tqdm + +import pycocotools.coco as coco +from glob import glob + +def coco_into_labels(annot_path, label_path): + #annot_path = 'rev_scitsr_st_full/test_full.json' + coco_data = coco.COCO(annot_path) + images = coco_data.getImgIds() + + gt_center_dir = '{}/gt_center/'.format(label_path) + gt_logi_dir = '{}/gt_logi/'.format(label_path) + + if not os.path.exists(gt_center_dir): + os.mkdir(gt_center_dir) + else: return 0 + + if not os.path.exists(gt_logi_dir): + os.mkdir(gt_logi_dir) + + print('Changing COCO Labels into TXT Labels...') + for i in tqdm(range(len(images))): + img_id = images[i] + file_name = coco_data.loadImgs(ids=[img_id])[0]['file_name'] + #file_names.append(file_name) + + # using this for your dataset + center_file = '{}/gt_center/'.format(label_path) + file_name +'.txt' + logi_file = '{}/gt_logi/'.format(label_path) + file_name +'.txt' + + #TODO: revise the file names in the annotation of PubTabNet + # center_file = gt_center_dir + file_name.replace('.jpg', '.png') +'.txt' + # logi_file = gt_logi_dir + file_name.replace('.jpg', '.png') +'.txt' + + + ann_ids = coco_data.getAnnIds(imgIds=[img_id]) + anns = coco_data.loadAnns(ids=ann_ids) + + fc = open(center_file, 'w') + fl = open(logi_file, 'w') + for j in range(len(anns)): + ann = anns[j] + bbox = ann['segmentation'][0] + logi = ann['logic_axis'][0] + for i in range(0,3): + fc.write(str(bbox[2*i])+','+str(bbox[2*i+1])+';') + fl.write(str(int(logi[i]))+',') + + fc.write(str(bbox[6])+','+str(bbox[7])+'\n') + fl.write(str(int(logi[3]))+'\n') + + print('Finished: Changing COCO Labels into TXT Labels!') + +class pairTab(): + def __init__(self, pred_table, gt_table): + self.gt_list = gt_table.ulist + self.pred_list = pred_table.ulist + + self.match_list = [] + self.matching() + + def matching(self): + for tunit in self.gt_list: + if_find = 0 + for sunit in self.pred_list: + #TODO: Adding Parameters for IOU threshold + #Using IOU=0.5 as Default + if self.compute_IOU(tunit.bbox, sunit.bbox) >= 0.5: + self.match_list.append(sunit) + if_find = 1 + break + if if_find == 0: + self.match_list.append('empty') + + def evalBbox(self, eval_type): + tp = 0 + for u in self.match_list: + if u != 'empty': + tp = tp + 1.0 + + ap = len(self.pred_list) + at = len(self.gt_list) + if eval_type == 'recall': + if at == 0: + return 'null' + else: + return tp/at + elif eval_type == 'precision': + if ap == 0: + return 'null' + else: + return tp/ap + + def compute_IOU(self, bbox1,bbox2): + rec1 = (bbox1.point1[0][0], bbox1.point1[0][1], bbox1.point3[0][0], bbox1.point3[0][1]) + rec2 = (bbox2.point1[0][0], bbox2.point1[0][1], bbox2.point3[0][0], bbox2.point3[0][1]) + + left_column_max = max(rec1[0],rec2[0]) + right_column_min = min(rec1[2],rec2[2]) + up_row_max = max(rec1[1],rec2[1]) + down_row_min = min(rec1[3],rec2[3]) + + if left_column_max>=right_column_min or down_row_min<=up_row_max: + return 0 + else: + S1 = (rec1[2]-rec1[0])*(rec1[3]-rec1[1]) + S2 = (rec2[2]-rec2[0])*(rec2[3]-rec2[1]) + S_cross = (down_row_min-up_row_max)*(right_column_min-left_column_max) + + return S_cross/(S1+S2-S_cross) + + def evalAxis(self): + + tp = 0 + for u in self.match_list: + if u != 'empty': + tp = tp + 1.0 + + truep = 0 + for i in range(len(self.gt_list)): + sunit = self.match_list[i] + if sunit != 'empty': + tunit = self.gt_list[i] + + saxis = sunit.axis + taxis= tunit.axis + + flag = 1 + for j in range(4): + if saxis[j] != taxis[j]: + flag = 0 + break + + #all four axis are correctly predicted + if flag == 1: + truep = truep + 1.0 + + if len(self.gt_list) == 0: + #return 0 + return 'null' + else: + if tp == 0: + #return 0 + return 'null' + else: + return truep/tp + +class Table(): + def __init__(self, bbox_path, axis_path, file_name): + self.bbox_dir = os.path.join(bbox_path, file_name) + self.axis_dir = os.path.join(axis_path, file_name) + + self.ulist = [] + self.load_tabu(self.bbox_dir, self.axis_dir) + self.ulist = self.bubble_sort(self.ulist) + + def load_tabu(self, bbox_dir, axis_dir): + + f_b = open(self.bbox_dir) + f_a = open(self.axis_dir) + bboxs = f_b.readlines() + axiss = f_a.readlines() + + for bbox, axis in zip(bboxs, axiss): + bbox = list(map(float, re.split(';|,',bbox.strip()))) + axis = list(map(int, axis.strip().split(','))) + unit = TabUnit(bbox, axis) + + self.ulist.append(unit) + + def compute_IOU(self, bbox1, bbox2): + rec1 = (bbox1.point1[0][0], bbox1.point1[0][1], bbox1.point3[0][0], bbox1.point3[0][1]) + rec2 = (bbox2.point1[0][0], bbox2.point1[0][1], bbox2.point3[0][0], bbox2.point3[0][1]) + left_column_max = max(rec1[0],rec2[0]) + right_column_min = min(rec1[2],rec2[2]) + up_row_max = max(rec1[1],rec2[1]) + down_row_min = min(rec1[3],rec2[3]) + + if left_column_max>=right_column_min or down_row_min<=up_row_max: + return 0 + else: + S1 = (rec1[2]-rec1[0])*(rec1[3]-rec1[1]) + S2 = (rec2[2]-rec2[0])*(rec2[3]-rec2[1]) + S_cross = (down_row_min-up_row_max)*(right_column_min-left_column_max) + return S_cross/(S1+S2-S_cross) + + def bubble_sort(self, unit_list): + length = len(unit_list) + for index in range(length): + for j in range(1, length-index): + if self.is_priori(unit_list[j], unit_list[j-1]): + unit_list[j-1], unit_list[j] = unit_list[j], unit_list[j-1] + return unit_list + + def is_priori(self, unit_a, unit_b): + if unit_a.top_idx < unit_b.top_idx : + return True + elif unit_a.top_idx > unit_b.top_idx : + return False + if unit_a.left_idx < unit_b.left_idx : + return True + elif unit_a.left_idx > unit_b.left_idx : + return False + if unit_a.bottom_idx < unit_b.bottom_idx : + return True + elif unit_a.bottom_idx > unit_b.bottom_idx : + return False + if unit_a.right_idx < unit_b.right_idx : + return True + elif unit_a.right_idx > unit_b.right_idx : + return False + +class TabUnit(): + def __init__(self, bbox, axis): + + self.bbox = BBox(bbox) + self.axis = axis + self.top_idx = axis[2] + self.bottom_idx = axis[3] + self.left_idx = axis[0] + self.right_idx = axis[1] + +class BBox(): + def __init__(self, bbox): + self.point1 = np.array([[bbox[0], bbox[1]]]) + self.point2 = np.array([[bbox[2], bbox[3]]]) + self.point3 = np.array([[bbox[4], bbox[5]]]) + self.point4 = np.array([[bbox[6], bbox[7]]]) + + self.col_span = (self.computing_span(self.point1, self.point2) + self.computing_span(self.point3, self.point4))/2 + self.row_span = (self.computing_span(self.point1, self.point3) + self.computing_span(self.point2, self.point4))/2 + + def computing_span(self, pointa, pointb): + span = scipy.spatial.distance.cdist(pointa, pointb, metric = "euclidean") + return span + + + + + \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/image.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/image.py new file mode 100644 index 00000000..38c8e94d --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/image.py @@ -0,0 +1,290 @@ +# ------------------------------------------------------------------------------ +# Copyright (c) Microsoft +# Licensed under the MIT License. +# Written by Bin Xiao (Bin.Xiao@microsoft.com) +# Modified by Xingyi Zhou +# ------------------------------------------------------------------------------ + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import cv2 +import random + +def flip(img): + return img[:, :, ::-1].copy() + +def transform_preds(coords, center, scale, output_size, rot=0): + target_coords = np.zeros(coords.shape) + trans = get_affine_transform(center, scale, rot, output_size, inv=1) + for p in range(coords.shape[0]): + target_coords[p, 0:2] = affine_transform(coords[p, 0:2], trans) + return target_coords + +def transform_preds_upper_left(coords, center, scale, output_size, rot=0): + target_coords = np.zeros(coords.shape) + trans = get_affine_transform_upper_left(center, scale, rot, output_size, inv=1) + for p in range(coords.shape[0]): + target_coords[p, 0:2] = affine_transform(coords[p, 0:2], trans) + return target_coords + +def get_affine_transform_upper_left(center, + scale, + rot, + output_size, + shift=np.array([0, 0], dtype=np.float32), + inv=0): + if not isinstance(scale, np.ndarray) and not isinstance(scale, list): + scale = np.array([scale, scale], dtype=np.float32) + + src = np.zeros((3, 2), dtype=np.float32) + dst = np.zeros((3, 2), dtype=np.float32) + src[0, :] = center + dst[0, :] = [0,0] + if center[0] < center[1]: + src[1, :] = [scale[0], center[1]] + dst[1, :] = [output_size[0], 0] + else: + src[1, :] = [center[0], scale[0]] + dst[1, :] = [0, output_size[0]] + src[2:, :] = get_3rd_point(src[0, :], src[1, :]) + dst[2:, :] = get_3rd_point(dst[0, :], dst[1, :]) + + if inv: + trans = cv2.getAffineTransform(np.float32(dst), np.float32(src)) + else: + trans = cv2.getAffineTransform(np.float32(src), np.float32(dst)) + + return trans + +def get_affine_transform(center, + scale, + rot, + output_size, + shift=np.array([0, 0], dtype=np.float32), + inv=0): + if not isinstance(scale, np.ndarray) and not isinstance(scale, list): + scale = np.array([scale, scale], dtype=np.float32) + + scale_tmp = scale + src_w = scale_tmp[0] + dst_w = output_size[0] + dst_h = output_size[1] + + rot_rad = np.pi * rot / 180 + src_dir = get_dir([0, src_w * -0.5], rot_rad) + dst_dir = np.array([0, dst_w * -0.5], np.float32) + + src = np.zeros((3, 2), dtype=np.float32) + dst = np.zeros((3, 2), dtype=np.float32) + src[0, :] = center + scale_tmp * shift #[0,0]# + src[1, :] = center + src_dir + scale_tmp * shift #scale# + dst[0, :] = [dst_w * 0.5, dst_h * 0.5] #[0,0]# + + #if scale_tmp < dst_w: #added + #dst[1, :] = scale #added + #else: + dst[1, :] = np.array([dst_w * 0.5, dst_h * 0.5], np.float32) + dst_dir #output_size # + + src[2:, :] = get_3rd_point(src[0, :], src[1, :]) + dst[2:, :] = get_3rd_point(dst[0, :], dst[1, :]) + + if inv: + trans = cv2.getAffineTransform(np.float32(dst), np.float32(src)) + else: + trans = cv2.getAffineTransform(np.float32(src), np.float32(dst)) + + return trans + + +def affine_transform(pt, t): + new_pt = np.array([pt[0], pt[1], 1.], dtype=np.float32).T + new_pt = np.dot(t, new_pt) + return new_pt[:2] + + +def get_3rd_point(a, b): + direct = a - b + return b + np.array([-direct[1], direct[0]], dtype=np.float32) + + +def get_dir(src_point, rot_rad): + sn, cs = np.sin(rot_rad), np.cos(rot_rad) + + src_result = [0, 0] + src_result[0] = src_point[0] * cs - src_point[1] * sn + src_result[1] = src_point[0] * sn + src_point[1] * cs + + return src_result + + +def crop(img, center, scale, output_size, rot=0): + trans = get_affine_transform(center, scale, rot, output_size) + + dst_img = cv2.warpAffine(img, + trans, + (int(output_size[0]), int(output_size[1])), + flags=cv2.INTER_LINEAR) + + return dst_img + + +def gaussian_radius(det_size, min_overlap=0.7): + + height, width = det_size + + a1 = 1 + b1 = (height + width) + c1 = width * height * (1 - min_overlap) / (1 + min_overlap) + sq1 = np.sqrt(b1 ** 2 - 4 * a1 * c1) + r1 = (b1 + sq1) / 2 + + a2 = 4 + b2 = 2 * (height + width) + c2 = (1 - min_overlap) * width * height + sq2 = np.sqrt(b2 ** 2 - 4 * a2 * c2) + r2 = (b2 + sq2) / 2 + + a3 = 4 * min_overlap + b3 = -2 * min_overlap * (height + width) + c3 = (min_overlap - 1) * width * height + sq3 = np.sqrt(b3 ** 2 - 4 * a3 * c3) + r3 = (b3 + sq3) / 2 + return min(r1, r2, r3) + + +def gaussian2D(shape, sigma=1): + m, n = [(ss - 1.) / 2. for ss in shape] + y, x = np.ogrid[-m:m+1,-n:n+1] + + h = np.exp(-(x * x + y * y) / (2 * sigma * sigma)) + h[h < np.finfo(h.dtype).eps * h.max()] = 0 + return h + +def draw_umich_gaussian_wh(heatmap, center, r_w, r_h, k=1): + diameter_x = 2 * r_w + 1 + diameter_y = 2 * r_h + 1 + gaussian = gaussian2D((diameter_y, diameter_x), sigma=min(r_w,r_h) / 6) + + x, y = int(center[0]), int(center[1]) + + height, width = heatmap.shape[0:2] + + left, right = min(x, r_w), min(width - x, r_w + 1) + top, bottom = min(y, r_h), min(height - y, r_h + 1) + + masked_heatmap = heatmap[y - top:y + bottom, x - left:x + right] + masked_gaussian = gaussian[r_h - top:r_h + bottom, r_w - left:r_w + right] + if min(masked_gaussian.shape) > 0 and min(masked_heatmap.shape) > 0: # TODO debug + np.maximum(masked_heatmap, masked_gaussian * k, out=masked_heatmap) + return heatmap + + + +def draw_umich_gaussian(heatmap, center, radius, k=1): + diameter = 2 * radius + 1 + gaussian = gaussian2D((diameter, diameter), sigma=diameter / 6) + + x, y = int(center[0]), int(center[1]) + + height, width = heatmap.shape[0:2] + + left, right = min(x, radius), min(width - x, radius + 1) + top, bottom = min(y, radius), min(height - y, radius + 1) + + masked_heatmap = heatmap[y - top:y + bottom, x - left:x + right] + masked_gaussian = gaussian[radius - top:radius + bottom, radius - left:radius + right] + if min(masked_gaussian.shape) > 0 and min(masked_heatmap.shape) > 0: # TODO debug + np.maximum(masked_heatmap, masked_gaussian * k, out=masked_heatmap) + return heatmap + +def draw_dense_reg(regmap, heatmap, center, value, radius, is_offset=False): + diameter = 2 * radius + 1 + gaussian = gaussian2D((diameter, diameter), sigma=diameter / 6) + value = np.array(value, dtype=np.float32).reshape(-1, 1, 1) + dim = value.shape[0] + reg = np.ones((dim, diameter*2+1, diameter*2+1), dtype=np.float32) * value + if is_offset and dim == 2: + delta = np.arange(diameter*2+1) - radius + reg[0] = reg[0] - delta.reshape(1, -1) + reg[1] = reg[1] - delta.reshape(-1, 1) + + x, y = int(center[0]), int(center[1]) + + height, width = heatmap.shape[0:2] + + left, right = min(x, radius), min(width - x, radius + 1) + top, bottom = min(y, radius), min(height - y, radius + 1) + + masked_heatmap = heatmap[y - top:y + bottom, x - left:x + right] + masked_regmap = regmap[:, y - top:y + bottom, x - left:x + right] + masked_gaussian = gaussian[radius - top:radius + bottom, + radius - left:radius + right] + masked_reg = reg[:, radius - top:radius + bottom, + radius - left:radius + right] + if min(masked_gaussian.shape) > 0 and min(masked_heatmap.shape) > 0: # TODO debug + idx = (masked_gaussian >= masked_heatmap).reshape( + 1, masked_gaussian.shape[0], masked_gaussian.shape[1]) + masked_regmap = (1-idx) * masked_regmap + idx * masked_reg + regmap[:, y - top:y + bottom, x - left:x + right] = masked_regmap + return regmap + + +def draw_msra_gaussian(heatmap, center, sigma): + tmp_size = sigma * 3 + mu_x = int(center[0] + 0.5) + mu_y = int(center[1] + 0.5) + w, h = heatmap.shape[0], heatmap.shape[1] + ul = [int(mu_x - tmp_size), int(mu_y - tmp_size)] + br = [int(mu_x + tmp_size + 1), int(mu_y + tmp_size + 1)] + if ul[0] >= h or ul[1] >= w or br[0] < 0 or br[1] < 0: + return heatmap + size = 2 * tmp_size + 1 + x = np.arange(0, size, 1, np.float32) + y = x[:, np.newaxis] + x0 = y0 = size // 2 + g = np.exp(- ((x - x0) ** 2 + (y - y0) ** 2) / (2 * sigma ** 2)) + g_x = max(0, -ul[0]), min(br[0], h) - ul[0] + g_y = max(0, -ul[1]), min(br[1], w) - ul[1] + img_x = max(0, ul[0]), min(br[0], h) + img_y = max(0, ul[1]), min(br[1], w) + heatmap[img_y[0]:img_y[1], img_x[0]:img_x[1]] = np.maximum( + heatmap[img_y[0]:img_y[1], img_x[0]:img_x[1]], + g[g_y[0]:g_y[1], g_x[0]:g_x[1]]) + return heatmap + +def grayscale(image): + return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) + +def lighting_(data_rng, image, alphastd, eigval, eigvec): + alpha = data_rng.normal(scale=alphastd, size=(3, )) + image += np.dot(eigvec, eigval * alpha) + +def blend_(alpha, image1, image2): + image1 *= alpha + image2 *= (1 - alpha) + image1 += image2 + +def saturation_(data_rng, image, gs, gs_mean, var): + alpha = 1. + data_rng.uniform(low=-var, high=var) + blend_(alpha, image, gs[:, :, None]) + +def brightness_(data_rng, image, gs, gs_mean, var): + alpha = 1. + data_rng.uniform(low=-var, high=var) + image *= alpha + +def contrast_(data_rng, image, gs, gs_mean, var): + alpha = 1. + data_rng.uniform(low=-var, high=var) + blend_(alpha, image, gs_mean) + +def color_aug(data_rng, image, eig_val, eig_vec): + functions = [brightness_, contrast_, saturation_] + random.shuffle(functions) + + gs = grayscale(image) + gs_mean = gs.mean() + for f in functions: + f(data_rng, image, gs, gs_mean, 0.4) + lighting_(data_rng, image, 0.1, eig_val, eig_vec) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/oracle_utils.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/oracle_utils.py new file mode 100644 index 00000000..d54c35e8 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/oracle_utils.py @@ -0,0 +1,42 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import numba + +@numba.jit(nopython=True, nogil=True) +def gen_oracle_map(feat, ind, w, h): + # feat: B x maxN x featDim + # ind: B x maxN + batch_size = feat.shape[0] + max_objs = feat.shape[1] + feat_dim = feat.shape[2] + out = np.zeros((batch_size, feat_dim, h, w), dtype=np.float32) + vis = np.zeros((batch_size, h, w), dtype=np.uint8) + ds = [(0, 1), (0, -1), (1, 0), (-1, 0)] + for i in range(batch_size): + queue_ind = np.zeros((h*w*2, 2), dtype=np.int32) + queue_feat = np.zeros((h*w*2, feat_dim), dtype=np.float32) + head, tail = 0, 0 + for j in range(max_objs): + if ind[i][j] > 0: + x, y = ind[i][j] % w, ind[i][j] // w + out[i, :, y, x] = feat[i][j] + vis[i, y, x] = 1 + queue_ind[tail] = x, y + queue_feat[tail] = feat[i][j] + tail += 1 + while tail - head > 0: + x, y = queue_ind[head] + f = queue_feat[head] + head += 1 + for (dx, dy) in ds: + xx, yy = x + dx, y + dy + if xx >= 0 and yy >= 0 and xx < w and yy < h and vis[i, yy, xx] < 1: + out[i, :, yy, xx] = f + vis[i, yy, xx] = 1 + queue_ind[tail] = xx, yy + queue_feat[tail] = f + tail += 1 + return out \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/post_process.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/post_process.py new file mode 100644 index 00000000..8fcc12e9 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/post_process.py @@ -0,0 +1,115 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +from .image import transform_preds, transform_preds_upper_left + + +def get_pred_depth(depth): + return depth + +def get_alpha(rot): + # output: (B, 8) [bin1_cls[0], bin1_cls[1], bin1_sin, bin1_cos, + # bin2_cls[0], bin2_cls[1], bin2_sin, bin2_cos] + # return rot[:, 0] + idx = rot[:, 1] > rot[:, 5] + alpha1 = np.arctan(rot[:, 2] / rot[:, 3]) + (-0.5 * np.pi) + alpha2 = np.arctan(rot[:, 6] / rot[:, 7]) + ( 0.5 * np.pi) + return alpha1 * idx + alpha2 * (1 - idx) + + +def ddd_post_process_2d(dets, c, s, opt): + # dets: batch x max_dets x dim + # return 1-based class det list + ret = [] + include_wh = dets.shape[2] > 16 + for i in range(dets.shape[0]): + top_preds = {} + dets[i, :, :2] = transform_preds( + dets[i, :, 0:2], c[i], s[i], (opt.output_w, opt.output_h)) + classes = dets[i, :, -1] + for j in range(opt.num_classes): + inds = (classes == j) + top_preds[j + 1] = np.concatenate([ + dets[i, inds, :3].astype(np.float32), + get_alpha(dets[i, inds, 3:11])[:, np.newaxis].astype(np.float32), + get_pred_depth(dets[i, inds, 11:12]).astype(np.float32), + dets[i, inds, 12:15].astype(np.float32)], axis=1) + if include_wh: + top_preds[j + 1] = np.concatenate([ + top_preds[j + 1], + transform_preds( + dets[i, inds, 15:17], c[i], s[i], (opt.output_w, opt.output_h)) + .astype(np.float32)], axis=1) + ret.append(top_preds) + return ret + +def ctdet_4ps_post_process(dets, c, s, h, w, num_classes,rot=0): + # dets: batch x max_dets x dim + # return 1-based class det dict + ret = [] + + for i in range(dets.shape[0]): + top_preds = {} + dets[i, :, 0:2] = transform_preds(dets[i, :, 0:2], c[i], s[i], (w, h),rot) + dets[i, :, 2:4] = transform_preds(dets[i, :, 2:4], c[i], s[i], (w, h),rot) + dets[i, :, 4:6] = transform_preds(dets[i, :, 4:6], c[i], s[i], (w, h),rot) + dets[i, :, 6:8] = transform_preds(dets[i, :, 6:8], c[i], s[i], (w, h),rot) + classes = dets[i, :, -1] + for j in range(num_classes): + inds = (classes == j) + top_preds[j + 1] = np.concatenate([ + dets[i, inds, :8].astype(np.float32), + dets[i, inds, 8:9].astype(np.float32)], axis=1).tolist() + ret.append(top_preds) + return ret + +def ctdet_4ps_post_process_upper_left(dets, c, s, h, w, num_classes,rot=0): + # dets: batch x max_dets x dim + # return 1-based class det dict + ret = [] + + for i in range(dets.shape[0]): + top_preds = {} + dets[i, :, 0:2] = transform_preds_upper_left(dets[i, :, 0:2], c[i], s[i], (w, h),rot) + dets[i, :, 2:4] = transform_preds_upper_left(dets[i, :, 2:4], c[i], s[i], (w, h),rot) + dets[i, :, 4:6] = transform_preds_upper_left(dets[i, :, 4:6], c[i], s[i], (w, h),rot) + dets[i, :, 6:8] = transform_preds_upper_left(dets[i, :, 6:8], c[i], s[i], (w, h),rot) + classes = dets[i, :, -1] + for j in range(num_classes): + inds = (classes == j) + top_preds[j + 1] = np.concatenate([ + dets[i, inds, :8].astype(np.float32), + dets[i, inds, 8:9].astype(np.float32)], axis=1).tolist() + ret.append(top_preds) + return ret + +def ctdet_post_process(dets, c, s, h, w, num_classes): + # dets: batch x max_dets x dim + # return 1-based class det dict + ret = [] + for i in range(dets.shape[0]): + top_preds = {} + dets[i, :, :2] = transform_preds( + dets[i, :, 0:2], c[i], s[i], (w, h)) + dets[i, :, 2:4] = transform_preds( + dets[i, :, 2:4], c[i], s[i], (w, h)) + classes = dets[i, :, -1] + for j in range(num_classes): + inds = (classes == j) + top_preds[j + 1] = np.concatenate([ + dets[i, inds, :4].astype(np.float32), + dets[i, inds, 4:5].astype(np.float32)], axis=1).tolist() + ret.append(top_preds) + return ret + +def ctdet_corner_post_process(corner_st_reg, c, s, h, w, num_classes): + for i in range(corner_st_reg.shape[0]): + corner_st_reg[i, :, 0:2] = transform_preds(corner_st_reg[i, :, 0:2], c[i], s[i], (w, h)) + corner_st_reg[i, :, 2:4] = transform_preds(corner_st_reg[i, :, 2:4], c[i], s[i], (w, h)) + corner_st_reg[i, :, 4:6] = transform_preds(corner_st_reg[i, :, 4:6], c[i], s[i], (w, h)) + corner_st_reg[i, :, 6:8] = transform_preds(corner_st_reg[i, :, 6:8], c[i], s[i], (w, h)) + corner_st_reg[i, :, 8:10] = transform_preds(corner_st_reg[i, :, 8:10], c[i], s[i], (w, h)) + return corner_st_reg + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/utils.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/utils.py new file mode 100644 index 00000000..fa005740 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/lib/utils/utils.py @@ -0,0 +1,218 @@ +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import torch +from utils.image import flip, color_aug +from utils.image import get_affine_transform, affine_transform +from utils.image import gaussian_radius, draw_umich_gaussian, draw_umich_gaussian_wh, draw_msra_gaussian +from utils.image import draw_dense_reg +from utils.adjacency import adjacency + +class AverageMeter(object): + """Computes and stores the average and current value""" + def __init__(self): + self.reset() + + def reset(self): + self.val = 0 + self.avg = 0 + self.sum = 0 + self.count = 0 + + def update(self, val, n=1): + + self.val = val + self.sum += val * n + if self.val != 0: + self.count += n + if self.count > 0: + self.avg = self.sum / self.count + +def make_batch(opt, path, anns): + max_objs = 300 + max_cors = 1200 + num_objs = min(len(anns), max_objs) + num_classes = 2 + #print(anns[1]) + _valid_ids = [1,2] + cat_ids = {v: i for i, v in enumerate(_valid_ids)} + img_path = path + + mean = np.array([0.40789654, 0.44719302, 0.47026115], dtype=np.float32).reshape(1, 1, 3) + std = np.array([0.28863828, 0.27408164, 0.27809835], dtype=np.float32).reshape(1, 1, 3) + + img = cv2.imread(img_path) + img_size = img.shape + + height, width = img.shape[0], img.shape[1] + c = np.array([img.shape[1] / 2., img.shape[0] / 2.], dtype=np.float32) + if opt.keep_res: + input_h = (height | opt.pad)# + 1 + input_w = (width | opt.pad)# + 1 + s = np.array([input_w, input_h], dtype=np.float32) + else: + s = max(img.shape[0], img.shape[1]) * 1.0 + input_h, input_w = opt.input_h, opt.input_w + + flipped = False + + rot = 0 + if opt.rotate==1: + print('----rotate----') + rot = np.random.randint(-15,15) + trans_input = get_affine_transform( + c, s, rot, [input_w, input_h]) + + output_h = input_h // opt.down_ratio + output_w = input_w // opt.down_ratio + num_classes = num_classes + trans_output = get_affine_transform(c, s, rot, [output_w, output_h]) + trans_output_mk = get_affine_transform(c, s, rot, [output_w, output_h]) + + hm = np.zeros((num_classes, output_h, output_w), dtype=np.float32) + wh = np.zeros((max_objs, 8), dtype=np.float32) + reg = np.zeros((max_objs*5, 2), dtype=np.float32) + st = np.zeros((max_cors, 8), dtype=np.float32) + hm_ctxy = np.zeros((max_objs, 2), dtype=np.float32) + hm_xy = np.zeros((max_objs, 10), dtype=np.float32) + hm_ind = np.zeros((max_objs), dtype=np.int64) + hm_mask = np.zeros((max_objs), dtype=np.uint8) + mk_ind = np.zeros((max_cors), dtype=np.int64) + mk_mask = np.zeros((max_cors), dtype=np.uint8) + reg_ind = np.zeros((max_objs*5), dtype=np.int64) + reg_mask = np.zeros((max_objs*5), dtype=np.uint8) + ctr_cro_ind = np.zeros((max_objs*4), dtype=np.int64) + log_ax = np.zeros((max_objs, 4), dtype=np.int64) + box_ind = np.zeros((max_objs, 8), dtype=np.int64) + cc_match = np.zeros((max_objs, 4), dtype=np.int64) + adjacent = np.zeros((max_objs, max_objs), dtype=np.int64) + adj_mask = np.zeros((max_objs, max_objs), dtype=np.int64) + center = np.zeros((max_objs, 2), dtype=np.float32) + + draw_gaussian = draw_msra_gaussian if opt.mse_loss else \ + draw_umich_gaussian + gt_det = [] + corList = [] + point = [] + inp = cv2.warpAffine(img, trans_input, (input_w, input_h),flags=cv2.INTER_LINEAR) + + for k in range(num_objs): + ann = anns[k] + #bbox = self._coco_box_to_bbox(ann['bbox']) + seg_mask = ann['segmentation'][0] #[[351.0, 73.0, 172.0, 70.0, 174.0, 127.0, 351.0, 129.0, 351.0, 73.0]] + x1,y1 = seg_mask[0],seg_mask[1] + x2,y2 = seg_mask[2],seg_mask[3] + x3,y3 = seg_mask[4],seg_mask[5] + x4,y4 = seg_mask[6],seg_mask[7] + + CorNer = np.array([x1,y1,x2,y2,x3,y3,x4,y4]) + boxes = [[CorNer[0],CorNer[1]],[CorNer[2],CorNer[3]],\ + [CorNer[4],CorNer[5]],[CorNer[6],CorNer[7]]] + cls_id = int(cat_ids[ann['category_id']]) + if flipped: + #bbox[[0, 2]] = width - bbox[[2, 0]] - 1 + CorNer[[0,2,4,6]] = width - CorNer[[2,0,6,4]] - 1 + + CorNer[0:2] = affine_transform(CorNer[0:2], trans_output_mk) + CorNer[2:4] = affine_transform(CorNer[2:4], trans_output_mk) + CorNer[4:6] = affine_transform(CorNer[4:6], trans_output_mk) + CorNer[6:8] = affine_transform(CorNer[6:8], trans_output_mk) + CorNer[[0,2,4,6]] = np.clip(CorNer[[0,2,4,6]], 0, output_w - 1) + CorNer[[1,3,5,7]] = np.clip(CorNer[[1,3,5,7]], 0, output_h - 1) + if not _judge(CorNer): + continue + + maxx = max([CorNer[2*I] for I in range(0,4)]) + minx = min([CorNer[2*I] for I in range(0,4)]) + maxy = max([CorNer[2*I+1] for I in range(0,4)]) + miny = min([CorNer[2*I+1] for I in range(0,4)]) + h, w = maxy-miny,maxx-minx#bbox[3] - bbox[1], bbox[2] - bbox[0] + if h > 0 and w > 0: + + radius = gaussian_radius((math.ceil(h), math.ceil(w))) + radius = max(0, int(radius)) + radius = opt.hm_gauss if opt.mse_loss else radius + + ct = np.array([(maxx+minx)/2.0,(maxy+miny)/2.0], dtype=np.float32) + ct_int = ct.astype(np.int32) + draw_gaussian(hm[cls_id], ct_int, radius) + + for i in range(4): + Cor = np.array([CorNer[2*i],CorNer[2*i+1]], dtype=np.float32) + Cor_int = Cor.astype(np.int32) + Cor_key = str(Cor_int[0])+"_"+str(Cor_int[1]) + if Cor_key not in corList: + + corNum = len(corList) + + corList.append(Cor_key) + reg[max_objs+corNum] = np.array([abs(Cor[0]-Cor_int[0]),abs(Cor[1]-Cor_int[1])]) + mk_ind[corNum] = Cor_int[1]*output_w + Cor_int[0] + cc_match[k][i] = mk_ind[corNum] + box_ind[k][i*2:(i+1)*2] = np.array((corNum, corNum)) + reg_ind[max_objs+corNum] = Cor_int[1]*output_w + Cor_int[0] + mk_mask[corNum] = 1 + reg_mask[max_objs+corNum] = 1 + draw_gaussian(hm[num_classes-1], Cor_int, 2) + st[corNum][i*2:(i+1)*2] = np.array([Cor[0]-ct[0],Cor[1]-ct[1]]) + ctr_cro_ind[4*k+i] = corNum*4 + i + + else: + index_of_key = corList.index(Cor_key) + cc_match[k][i] = mk_ind[index_of_key] + box_ind[k][i*2:(i+1)*2] = np.array((index_of_key, index_of_key)) + st[index_of_key][i*2:(i+1)*2] = np.array([Cor[0]-ct[0],Cor[1]-ct[1]]) + ctr_cro_ind[4*k+i] = index_of_key*4 + i + + wh[k] = ct[0] - 1. * CorNer[0], ct[1] - 1. * CorNer[1], \ + ct[0] - 1. * CorNer[2], ct[1] - 1. * CorNer[3], \ + ct[0] - 1. * CorNer[4], ct[1] - 1. * CorNer[5], \ + ct[0] - 1. * CorNer[6], ct[1] - 1. * CorNer[7] + + hm_ind[k] = ct_int[1] * output_w + ct_int[0] + hm_mask[k] = 1 + reg_ind[k] = ct_int[1] * output_w + ct_int[0] + reg_mask[k] = 1 + reg[k] = ct - ct_int + hm_ctxy[k] = ct[0],ct[1] + hm_xy[k] = ct[0], ct[1], CorNer[0], CorNer[1], CorNer[2], CorNer[3], CorNer[4], CorNer[5], CorNer[6], CorNer[7] + center[k] = (x1 + x2 + x3 + x4)/4, (y1 + y2 + y3 + y4)/4 + log_ax[k] = ann['logic_axis'][0][0], ann['logic_axis'][0][1], ann['logic_axis'][0][2], ann['logic_axis'][0][3] + gt_det.append([ct[0] - 1. * CorNer[0], ct[1] - 1. * CorNer[1], + ct[0] - 1. * CorNer[2], ct[1] - 1. * CorNer[3], + ct[0] - 1. * CorNer[4], ct[1] - 1. * CorNer[5], + ct[0] - 1. * CorNer[6], ct[1] - 1. * CorNer[7], 1, cls_id]) + for j in range(k): + box1 = log_ax[k] + box2 = log_ax[j] + if adjacency(box1, box2): + adjacent[j][k] = adjacent[k][j] = 1 + + if j == k: + adjacent[j][k] = 1 + + hm_mask_v = hm_mask.reshape(1, hm_mask.shape[0]) + adj_mask = np.dot(np.transpose(hm_mask_v), hm_mask_v) + inp = (inp.astype(np.float32) / 255.) + + inp = (inp - mean) / std + inp = inp.transpose(2, 0, 1) + hm_xy = torch.FloatTensor(hm_xy) + ret = {'input': inp, 'hm': hm, 'hm_ind':hm_ind, 'hm_mask':hm_mask, 'mk_ind':mk_ind, 'mk_mask':mk_mask, 'reg':reg,'reg_ind':reg_ind,'reg_mask': reg_mask, 'wh': wh,'st':st, 'ctr_cro_ind':ctr_cro_ind,'hm_ctxy':hm_ctxy, 'logic': log_ax, 'adj': adjacent, 'cc_match': cc_match, 'box_ind': box_ind, 'adj_mask': adj_mask, 'hm_xy': hm_xy, 'center': center} + if opt.dense_wh: + hm_a = hm.max(axis=0, keepdims=True) + dense_wh_mask = np.concatenate([hm_a, hm_a], axis=0) + ret.update({'dense_wh': dense_wh, 'dense_wh_mask': dense_wh_mask}) + del ret['wh'] + elif opt.cat_spec_wh: + ret.update({'cat_spec_wh': cat_spec_wh, 'cat_spec_mask': cat_spec_mask}) + del ret['wh'] + if opt.reg_offset: + ret.update({'reg': reg}) + + gt_det = np.array(gt_det, dtype=np.float32) if len(gt_det) > 0 else \ + np.zeros((1, 10), dtype=np.float32) + meta = {'c': c, 's': s, 'rot':rot, 'gt_det': gt_det} + ret['meta'] = meta + return ret diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/pipeline.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/pipeline.py new file mode 100644 index 00000000..eae94cc3 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/pipeline.py @@ -0,0 +1,409 @@ +import onnxruntime as _ort +import numpy as np +import torch +import cv2 +from .lib.utils.image import get_affine_transform, get_affine_transform_upper_left +from .lib.models.decode import ctdet_decode, corner_decode, ctdet_4ps_decode +from .lib.utils.post_process import ctdet_4ps_post_process_upper_left, ctdet_4ps_post_process, ctdet_corner_post_process +import os +from .table_recover import TableRecover +from .utils_table_recover import match_ocr_cell, plot_html_table, plot_html_wireless_table +from .utils_table_recover import merge_adjacent_polys, sorted_boxes +from qanything_kernel.configs.model_config import PDF_MODEL_PATH +import markdownify +import urllib +import urllib.request +import urllib.parse +import json + + +def pre_process(image, inp_height, inp_width, upper_left=False): + height, width = image.shape[0:2] + + c = np.array([width / 2., height / 2.], dtype=np.float32) + s = max(height, width) * 1.0 + trans_input = get_affine_transform(c, s, 0, [inp_width, inp_height]) + if upper_left: + c = np.array([0, 0], dtype=np.float32) + s = max(height, width) * 1.0 + trans_input = get_affine_transform_upper_left(c, s, 0, [inp_width, inp_height]) + inp_image = cv2.warpAffine( + image, trans_input, (inp_width, inp_height), + flags=cv2.INTER_LINEAR) + + mean = np.array([0.40789654, 0.44719302, 0.47026115], + dtype=np.float32).reshape(1, 1, 3) + std = np.array([0.28863828, 0.27408164, 0.27809835], + dtype=np.float32).reshape(1, 1, 3) + + inp_image = ((inp_image / 255. - mean) / std).astype(np.float32) + + images = inp_image.transpose(2, 0, 1).reshape(1, 3, inp_height, inp_width) + + meta = {'c': c, 's': s, + 'input_height': inp_height, + 'input_width': inp_width, + 'out_height': inp_height // 4, + 'out_width': inp_width // 4} + # images = torch.from_numpy(images) + return images, meta + + +def post_process(dets, meta, corner_st, upper_left=False, scale=1): + device = dets.device + device_str = str(device) + # print('device: ',device) + if device_str.startswith('cuda'): + dets = dets.detach().cpu().numpy() + else: + dets = dets.detach().numpy() + dets = dets.reshape(1, -1, dets.shape[2]) + #return dets is list and what in dets is dict. key of dict is classes, value of dict is [bbox,score] + if upper_left: + dets = ctdet_4ps_post_process_upper_left( + dets.copy(), [meta['c']], [meta['s']], + meta['out_height'], meta['out_width'], 2) + else: + dets = ctdet_4ps_post_process( + dets.copy(), [meta['c']], [meta['s']], + meta['out_height'], meta['out_width'], 2) + corner_st = ctdet_corner_post_process( + corner_st.copy(), [meta['c']], [meta['s']], + meta['out_height'], meta['out_width'], 2) + for j in range(1, 3): + dets[0][j] = np.array(dets[0][j], dtype=np.float32).reshape(-1, 9) + dets[0][j][:, :8] /= scale + return dets[0], corner_st[0] + + +def merge_outputs(detections): + results = {} + for j in range(1, 3): + results[j] = np.concatenate( + [detection[j] for detection in detections], axis=0).astype(np.float32) + scores = np.hstack( + [results[j][:, 8] for j in range(1, 3)]) + if len(scores) > 3000: + kth = len(scores) - 3000 + thresh = np.partition(scores, kth)[kth] + for j in range(1, 3): + keep_inds = (results[j][:, 8] >= thresh) + results[j] = results[j][keep_inds] + return results + + +def filter(results, logi, ps, vis_thresh): + # this function select boxes + device = logi.device + batch_size, feat_dim = logi.shape[0], logi.shape[2] + num_valid = sum(results[1][:, 8] >= vis_thresh) + + #if num_valid <= 900 : #opt.max_objs + slct_logi = np.zeros((batch_size, num_valid, feat_dim), dtype=np.float32) + slct_dets = np.zeros((batch_size, num_valid, 8), dtype=np.int32) + for i in range(batch_size): + for j in range(num_valid): + slct_logi[i, j, :] = logi[i, j, :].cpu() + slct_dets[i, j, :] = ps[i, j, :].cpu() + return torch.Tensor(slct_logi).to(device), torch.Tensor(slct_dets).to(device) + + +def _normalized_ps(ps, vocab_size): + device = ps.device + ps = torch.round(ps).to(torch.int64) + ps = torch.where(ps < vocab_size, ps, (vocab_size - 1) * torch.ones(ps.shape).to(torch.int64).to(device)) + ps = torch.where(ps >= 0, ps, torch.zeros(ps.shape).to(torch.int64).to(device)) + return ps + + +def process_logi(logi): + logi_floor = logi.floor() + dev = logi - logi_floor + logi = torch.where(dev > 0.5, logi_floor + 1, logi_floor) + return logi + + +def add_4ps_coco_bbox(image, bbox, logi=None): + bbox = np.array(bbox, dtype=np.int32) + + if not logi is None: + txt = '{:.0f},{:.0f},{:.0f},{:.0f}'.format(logi[0], logi[1], logi[2], logi[3]) + font = cv2.FONT_HERSHEY_SIMPLEX + cat_size = cv2.getTextSize(txt, font, 0.3, 2)[0] + cv2.line(image, (bbox[0], bbox[1]), (bbox[2], bbox[3]), (0, 0, 255), 2) + cv2.line(image, (bbox[2], bbox[3]), (bbox[4], bbox[5]), (0, 0, 255), 2) + cv2.line(image, (bbox[4], bbox[5]), (bbox[6], bbox[7]), (0, 0, 255), 2) + cv2.line(image, (bbox[6], bbox[7]), (bbox[0], bbox[1]), (0, 0, 255), 2) # 1 - 5 + + if not logi is None: + cv2.rectangle(image, + (bbox[0], bbox[1] - cat_size[1] - 2), + (bbox[0] + cat_size[0], bbox[1] - 2), (255, 128, 128), -1) + cv2.putText(image, txt, (bbox[0], bbox[1] - 2), + font, 0.30, (0, 0, 0), thickness=1, lineType=cv2.LINE_AA) #1 - 5 # 0.20 _ 0.60 + + return image + + +def show_results(results, corner, logi=None): + m, n = corner.shape + polygons = [] + + k = 0 + for m in range(len(results[1])): + bbox = results[1][m] + k = k + 1 + if bbox[8] >= 0.4: + polygons.append([[bbox[0], bbox[1]], [bbox[6], bbox[7]], [bbox[4], bbox[5]], [bbox[2], bbox[3]]]) + # if len(logi.shape) == 1: + # add_4ps_coco_bbox(image, bbox[:8], logi) + # else: + # add_4ps_coco_bbox(image, bbox[:8], logi[m,:]) + return polygons + + +# def sort_logi_by_polygons( +# sorted_polygons: np.ndarray, polygons: np.ndarray, logi_points: np.ndarray +# ) -> np.ndarray: +# sorted_idx = [] +# for v in sorted_polygons: +# loc_idx = np.argwhere(v[0, 0] == polygons[:, 0, 0]).squeeze() +# sorted_idx.append(int(loc_idx)) +# logi_points = logi_points[sorted_idx] +# return logi_points + +def sort_logi_by_polygons( + sorted_polygons: np.ndarray, polygons: np.ndarray, logi_points: np.ndarray +) -> np.ndarray: + sorted_idx = [] + for v in sorted_polygons: + loc_idx = np.argwhere((v[0] == polygons[:, 0]).all(axis=1)).squeeze() + sorted_idx.append(int(loc_idx)) + logi_points = logi_points[sorted_idx] + return logi_points + + +def sort_logi( + sorted_polygons: np.ndarray, logi_points: np.ndarray +) -> np.ndarray: + sorted_idx = [] + sorted_logi_points = np.array(sorted(logi_points, key=lambda x: (x[0], x[2]))) + for v in sorted_logi_points: + loc_idx = np.argwhere((logi_points == v).all(axis=1)).squeeze() + if loc_idx.size > 1: + loc_idx = loc_idx[0] + sorted_idx.append(int(loc_idx)) + sorted_polygons = sorted_polygons[sorted_idx] + return sorted_logi_points, sorted_polygons + + +def wired_table_rec(image_path): + # onnx_model = '/ssd8/exec/huangjy/AdvancedLiterateMachinery/DocumentUnderstanding/LORE-TSR/src/wired_model.onnx' + # sess1 = _ort.InferenceSession(onnx_model, None, providers=['CUDAExecutionProvider']) + model = torch.jit.load( + '/ssd8/exec/huangjy/AdvancedLiterateMachinery/DocumentUnderstanding/LORE-TSR/src/wired_model.pt').to('cuda') + model.eval() + onnx_processor = '/ssd8/exec/huangjy/AdvancedLiterateMachinery/DocumentUnderstanding/LORE-TSR/src/wired_processor.onnx' + sess2 = _ort.InferenceSession(onnx_processor, None, providers=['CUDAExecutionProvider']) + table_recover = TableRecover() + image = cv2.imread(image_path) + input, meta = pre_process(image, 1024, 1024) + # hm, st, wh, ax, cr, reg = sess1.run(None, {'image': input}) + # hm = torch.from_numpy(hm).sigmoid_().cuda() + # st, wh, ax, cr, reg = torch.from_numpy(st).cuda(), torch.from_numpy(wh).cuda(), torch.from_numpy(ax).cuda(), torch.from_numpy(cr).cuda(), torch.from_numpy(reg).cuda() + hm, st, wh, ax, cr, reg = model(torch.from_numpy(input).cuda()) + hm = hm.sigmoid_().detach().cuda() + st, wh, ax, cr, reg = st.detach().cuda(), wh.detach().cuda(), ax.detach().cuda(), cr.detach().cuda(), reg.detach().cuda() + scores, inds, ys, xs, st_reg, corner_dict = corner_decode(hm[:, 1:2, :, :], st, reg, K=1000) + dets, keep, logi, cr = ctdet_4ps_decode(hm[:, 0:1, :, :], wh, ax, cr, corner_dict, reg=reg, K=3000, wiz_rev=True) + raw_dets = dets + corner_output = np.concatenate((np.transpose(xs.cpu().numpy()), np.transpose(ys.cpu().numpy()), + np.array(st_reg.cpu().numpy()), np.transpose(scores.cpu().numpy())), axis=2) + dets, corner_st_reg = post_process(dets, meta, corner_output) + results = merge_outputs([dets]) + logi = logi + cr + slct_logi, slct_dets = filter(results, logi, raw_dets[:, :, :8], 0.15) + slct_dets = _normalized_ps(slct_dets, 256) + _, slct_logi = sess2.run(None, {'vis_feat': slct_logi.cpu().numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).cuda()) + polygons = show_results(results, corner_st_reg, slct_logi.squeeze()) + polygons = np.array(polygons) + polygons = sorted_boxes(polygons) + try: + polygons = merge_adjacent_polys(polygons) + except: + polygons = polygons + table_res = table_recover(polygons) + + return polygons, table_res + + +def wireless_table_rec(image_path): + onnx_model = '/ssd8/exec/huangjy/AdvancedLiterateMachinery/DocumentUnderstanding/LORE-TSR/src/wireless_model.onnx' + sess1 = _ort.InferenceSession(onnx_model, None, providers=['CUDAExecutionProvider']) + onnx_processor = '/ssd8/exec/huangjy/AdvancedLiterateMachinery/DocumentUnderstanding/LORE-TSR/src/wireless_processor.onnx' + sess2 = _ort.InferenceSession(onnx_processor, None, providers=['CUDAExecutionProvider']) + image = cv2.imread(image_path) + input, meta = pre_process(image, 768, 768, upper_left=True) + hm, st, wh, ax, cr, reg = sess1.run(None, {'image': input}) + hm = torch.from_numpy(hm).sigmoid_().cuda() + st, wh, ax, cr, reg = torch.from_numpy(st).cuda(), torch.from_numpy(wh).cuda(), torch.from_numpy( + ax).cuda(), torch.from_numpy(cr).cuda(), torch.from_numpy(reg).cuda() + scores, inds, ys, xs, st_reg, corner_dict = corner_decode(hm[:, 1:2, :, :], st, reg, K=5000) + dets, keep, logi, cr = ctdet_4ps_decode(hm[:, 0:1, :, :], wh, ax, cr, corner_dict, reg=reg, K=3000, wiz_rev=False) + raw_dets = dets + corner_output = np.concatenate( + (np.transpose(xs.cpu()), np.transpose(ys.cpu()), np.array(st_reg.cpu()), np.transpose(scores.cpu())), axis=2) + print(dets.device) + dets, corner_st_reg = post_process(dets, meta, corner_output, upper_left=True) + results = merge_outputs([dets]) + logi = logi + cr + slct_logi, slct_dets = filter(results, logi, raw_dets[:, :, :8], 0.2) + slct_dets = _normalized_ps(slct_dets, 256) + # slct_dets = slct_dets.to(torch.float) + _, slct_logi = sess2.run(None, {'slct_logi_feat': slct_logi.cpu().numpy(), 'dets': slct_dets.cpu().numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).cuda()) + polygons = show_results(results, corner_st_reg, slct_logi.squeeze()) + polygons = np.array(polygons) + sorted_polygons = sorted_boxes(polygons) + + return polygons, sorted_polygons, slct_logi[0].cpu().numpy() + + +def request_service(input_dict, url): + data = urllib.parse.urlencode(input_dict).encode("utf-8") + f = urllib.request.urlopen(url=url, data=data) + res_dict = json.loads(json.loads(f.read())['Result']) + + return res_dict + + +class TableParser(object): + def __init__(self, device=torch.device("cpu")): + # self.wired_model_stage1 = torch.jit.load('layout/table_rec/checkpoint/wired_model.pt').to('cuda') + self.device = device + print(self.device) + self.device = device + if self.device == torch.device('cuda'): + onnx_backend = 'CUDAExecutionProvider' + else: + onnx_backend = 'CPUExecutionProvider' + + self.wired_model_stage1 = torch.jit.load(os.path.join(PDF_MODEL_PATH, 'checkpoints/table/wired_model.pt')).to(self.device) + onnx_processor = os.path.join(PDF_MODEL_PATH, 'checkpoints/table/wired_processor.onnx') + self.wired_model_stage2 = _ort.InferenceSession(onnx_processor, None, providers=[onnx_backend]) + wireless_onnx1 = os.path.join(PDF_MODEL_PATH, 'checkpoints/table/wireless_model.onnx') + self.wireless_model_stage1 = _ort.InferenceSession(wireless_onnx1, None, providers=[onnx_backend]) + wireless_onnx2 = os.path.join(PDF_MODEL_PATH, 'checkpoints/table/wireless_processor.onnx') + self.wireless_model_stage2 = _ort.InferenceSession(wireless_onnx2, None, providers=[onnx_backend]) + self.table_recover = TableRecover() + + def wired_rec(self, image): + input, meta = pre_process(image, 1024, 1024) + + hm, st, wh, ax, cr, reg = self.wired_model_stage1(torch.from_numpy(input).to(self.device)) + hm = hm.sigmoid_().detach().to(self.device) + st, wh, ax, cr, reg = st.detach().to(self.device), wh.detach().to(self.device), ax.detach().to( + self.device), cr.detach().to(self.device), reg.detach().to(self.device) + scores, inds, ys, xs, st_reg, corner_dict = corner_decode(hm[:, 1:2, :, :], st, reg, K=1000, device=self.device) + # print(hm.device) + dets, keep, logi, cr = ctdet_4ps_decode(hm[:, 0:1, :, :], wh, ax, cr, corner_dict, reg=reg, K=600, wiz_rev=True) + raw_dets = dets + if self.device == torch.device('cuda'): + corner_output = np.concatenate((np.transpose(xs.cpu().numpy()), np.transpose(ys.cpu().numpy()), + np.array(st_reg.cpu().numpy()), np.transpose(scores.cpu().numpy())), axis=2) + else: + corner_output = np.concatenate(( + np.transpose(xs.numpy()), np.transpose(ys.numpy()), np.array(st_reg.numpy()), + np.transpose(scores.numpy())), axis=2) + dets, corner_st_reg = post_process(dets, meta, corner_output) + results = merge_outputs([dets]) + logi = logi + cr + slct_logi, slct_dets = filter(results, logi, raw_dets[:, :, :8], 0.15) + if self.device == torch.device('cuda'): + _, slct_logi = self.wired_model_stage2.run(None, {'vis_feat': slct_logi.cpu().numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).to(self.device)) + else: + _, slct_logi = self.wired_model_stage2.run(None, {'vis_feat': slct_logi.numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).to(self.device)) + polygons = show_results(results, corner_st_reg, slct_logi.squeeze()) + polygons = np.array(polygons) + polygons = sorted_boxes(polygons) + try: + polygons = merge_adjacent_polys(polygons) + except: + polygons = polygons + table_res = self.table_recover(polygons) + return polygons, table_res + + def wireless_rec(self, image): + input, meta = pre_process(image, 768, 768, upper_left=True) + + hm, st, wh, ax, cr, reg = self.wireless_model_stage1.run(None, {'image': input}) + hm = torch.from_numpy(hm).sigmoid_().to(self.device) + st, wh, ax, cr, reg = torch.from_numpy(st).to(self.device), torch.from_numpy(wh).to( + self.device), torch.from_numpy(ax).to(self.device), torch.from_numpy(cr).to(self.device), torch.from_numpy( + reg).to(self.device) + scores, inds, ys, xs, st_reg, corner_dict = corner_decode(hm[:, 1:2, :, :], st, reg, K=1000, device=self.device) + dets, keep, logi, cr = ctdet_4ps_decode(hm[:, 0:1, :, :], wh, ax, cr, corner_dict, reg=reg, K=600, + wiz_rev=False) + raw_dets = dets + if self.device == torch.device('cuda'): + corner_output = np.concatenate( + (np.transpose(xs.cpu()), np.transpose(ys.cpu()), np.array(st_reg.cpu()), np.transpose(scores.cpu())), + axis=2) + else: + corner_output = np.concatenate((np.transpose(xs), np.transpose(ys), np.array(st_reg), np.transpose(scores)), + axis=2) + dets, corner_st_reg = post_process(dets, meta, corner_output, upper_left=True) + results = merge_outputs([dets]) + logi = logi + cr + slct_logi, slct_dets = filter(results, logi, raw_dets[:, :, :8], 0.2) + slct_dets = _normalized_ps(slct_dets, 256) + if self.device == torch.device('cuda'): + _, slct_logi = self.wireless_model_stage2.run(None, {'slct_logi_feat': slct_logi.cpu().numpy(), + 'dets': slct_dets.cpu().numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).to(self.device)) + else: + _, slct_logi = self.wireless_model_stage2.run(None, {'slct_logi_feat': slct_logi.numpy(), + 'dets': slct_dets.numpy()}) + slct_logi = process_logi(torch.from_numpy(slct_logi).to(self.device)) + polygons = show_results(results, corner_st_reg, slct_logi.squeeze()) + polygons = np.array(polygons) + sorted_polygons = sorted_boxes(polygons) + return polygons, sorted_polygons, slct_logi[0].cpu().numpy() + + def process(self, image, table_type, ocr_result, convert2markdown=True): + if table_type == 'wired': + polygons, table_res = self.wired_rec(image) + else: + polygons, sorted_polygons, slct_logi = self.wireless_rec(image) + if table_type == 'wireless': + slct_logi = sort_logi_by_polygons( + sorted_polygons, polygons, slct_logi + ) + sorted_logi_points, sorted_polygons = sort_logi(sorted_polygons, slct_logi) + cell_box_map, _, _ = match_ocr_cell(sorted_polygons, ocr_result) + table_str = plot_html_wireless_table(sorted_logi_points, cell_box_map) + if convert2markdown: + table_markdown = html2markdown(table_str) + return table_str, table_markdown + else: + cell_box_map, head_box_map, tail_box_map = match_ocr_cell(polygons, ocr_result) + table_str = plot_html_table(table_res, cell_box_map, head_box_map, tail_box_map) + if convert2markdown: + table_markdown = html2markdown(table_str) + return table_str, table_markdown + + +def html2markdown(html_text): + markdown_text = markdownify.markdownify(html_text) + return markdown_text + + +# if __name__ == '__main__': +# parser = TableParser() +# image = cv2.imread('test.jpg') +# table_str, table_markdown = parser.process(image, 'wireless') +# +# print(table_markdown) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.html b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.html new file mode 100644 index 00000000..a86d9aa2 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.html @@ -0,0 +1 @@ +
简介自我
姓名:笔名:绰号:性别:
民族:出生年月:毕业学校:家庭住址:
血型:QQ:E-mail :电话:
家庭成员:姓名:工作单位:联系方式:
父亲
母亲
点击自我描述自我(优美的散文笔调)
爱好:喜欢的食物:
性格:崇拜的偶像:
特长:喜欢阅读的书籍:
喜欢的颜色:喜欢怎样的老师:
\ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.jpg b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.jpg new file mode 100644 index 00000000..20411f1e Binary files /dev/null and b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wired.jpg differ diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.html b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.html new file mode 100644 index 00000000..ee967181 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.html @@ -0,0 +1,5 @@ +
Block functionHardware Specification level (HSL)
HSL-0HSL-1HSL-2HSL-3
LowTypicalUpLowTypicalUpLowTypicalUpLowTypicalUp
Actuators0.000.000.000.030.060.120.170.331.034.126.19
Casing0.000.000.000.040.270.630.882.133.143.064.265.93
Connectivity0.00 +0.000.000000.080.170.340530.821.261.211361.63
Memory0.000.000.000.050.180.740.821.913.631.883.737.27
Others0.060.110.140.140.220.310.280410.540.490.640.85
Others +PCB0.130.160.240.240.570.811.121.603.202.563.844.80
Power supply0.180.520.660.020.180.380.251.362.710.371.723.32
Processing0.080.170.290.661.051.601.581.942.313.133.98
Security0.000.000.000.010.020.03N/AN/AN/AN/AN/AN/A
Sensing0.000.000.000.010.020.040.000.030.040.190.771.47
Transport0.00 +0.000.000.000.18 +0.030.401.351.072.624.053.346.309.34
UI0.000.000.000.030.060.120.190.752.600.170.612.01
\ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.jpg b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.jpg new file mode 100644 index 00000000..837bc4bb Binary files /dev/null and b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/results/wireless.jpg differ diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/table_recover.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/table_recover.py new file mode 100644 index 00000000..61238703 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/table_recover.py @@ -0,0 +1,217 @@ +# -*- encoding: utf-8 -*- +# @Author: SWHL +# @Contact: liekkaskono@163.com +from typing import Dict, List, Tuple + +import numpy as np + + +class TableRecover: + def __init__( + self, + ): + pass + + def __call__(self, polygons: np.ndarray) -> Dict[int, Dict]: + rows = self.get_rows(polygons) + longest_col, each_col_widths, col_nums = self.get_benchmark_cols(rows, polygons) + each_row_heights, row_nums = self.get_benchmark_rows(rows, polygons) + table_res = self.get_merge_cells( + polygons, + rows, + row_nums, + col_nums, + longest_col, + each_col_widths, + each_row_heights, + ) + return table_res + + @staticmethod + def get_rows(polygons: np.array) -> Dict[int, List[int]]: + """对每个框进行行分类,框定哪个是一行的""" + y_axis = polygons[:, 0, 1] + if y_axis.size == 1: + return {0: [0]} + + concat_y = np.array(list(zip(y_axis, y_axis[1:]))) + minus_res = concat_y[:, 1] - concat_y[:, 0] + + result = {} + thresh = 5.0 + split_idxs = np.argwhere(minus_res > thresh).squeeze() + if split_idxs.ndim == 0: + split_idxs = split_idxs[None, ...] + + if max(split_idxs) != len(minus_res): + split_idxs = np.append(split_idxs, len(minus_res)) + + start_idx = 0 + for row_num, idx in enumerate(split_idxs): + if row_num != 0: + start_idx = split_idxs[row_num - 1] + 1 + result.setdefault(row_num, []).extend(range(start_idx, idx + 1)) + + # 计算每一行相邻cell的iou,如果大于0.2,则合并为同一个cell + return result + + def get_benchmark_cols( + self, rows: Dict[int, List], polygons: np.ndarray + ) -> Tuple[np.ndarray, List[float], int]: + longest_col = max(rows.values(), key=lambda x: len(x)) + longest_col_points = polygons[longest_col] + longest_x = longest_col_points[:, 0, 0] + + theta = 10 + for row_value in rows.values(): + cur_row = polygons[row_value][:, 0, 0] + + range_res = {} + for idx, cur_v in enumerate(cur_row): + start_idx, end_idx = None, None + for i, v in enumerate(longest_x): + if cur_v - theta <= v <= cur_v + theta: + break + + if cur_v > v: + start_idx = i + continue + + if cur_v < v: + end_idx = i + break + + range_res[idx] = [start_idx, end_idx] + + sorted_res = dict( + sorted(range_res.items(), key=lambda x: x[0], reverse=True) + ) + for k, v in sorted_res.items(): + if not all(v): + continue + + longest_x = np.insert(longest_x, v[1], cur_row[k]) + longest_col_points = np.insert( + longest_col_points, v[1], polygons[row_value[k]], axis=0 + ) + + # 求出最右侧所有cell的宽,其中最小的作为最后一列宽度 + rightmost_idxs = [v[-1] for v in rows.values()] + rightmost_boxes = polygons[rightmost_idxs] + min_width = min([self.compute_L2(v[3, :], v[0, :]) for v in rightmost_boxes]) + + each_col_widths = (longest_x[1:] - longest_x[:-1]).tolist() + each_col_widths.append(min_width) + + col_nums = longest_x.shape[0] + return longest_col_points, each_col_widths, col_nums + + def get_benchmark_rows( + self, rows: Dict[int, List], polygons: np.ndarray + ) -> Tuple[np.ndarray, List[float], int]: + leftmost_cell_idxs = [v[0] for v in rows.values()] + benchmark_x = polygons[leftmost_cell_idxs][:, 0, 1] + + theta = 10 + # 遍历其他所有的框,按照y轴进行区间划分 + range_res = {} + for cur_idx, cur_box in enumerate(polygons): + if cur_idx in benchmark_x: + continue + + cur_y = cur_box[0, 1] + + start_idx, end_idx = None, None + for i, v in enumerate(benchmark_x): + if cur_y - theta <= v <= cur_y + theta: + break + + if cur_y > v: + start_idx = i + continue + + if cur_y < v: + end_idx = i + break + + range_res[cur_idx] = [start_idx, end_idx] + + sorted_res = dict(sorted(range_res.items(), key=lambda x: x[0], reverse=True)) + for k, v in sorted_res.items(): + if not all(v): + continue + + benchmark_x = np.insert(benchmark_x, v[1], polygons[k][0, 1]) + + each_row_widths = (benchmark_x[1:] - benchmark_x[:-1]).tolist() + + # 求出最后一行cell中,最大的高度作为最后一行的高度 + bottommost_idxs = list(rows.values())[-1] + bottommost_boxes = polygons[bottommost_idxs] + max_height = max([self.compute_L2(v[3, :], v[0, :]) for v in bottommost_boxes]) + each_row_widths.append(max_height) + + row_nums = benchmark_x.shape[0] + return each_row_widths, row_nums + + @staticmethod + def compute_L2(a1: np.ndarray, a2: np.ndarray) -> float: + return np.linalg.norm(a2 - a1) + + def get_merge_cells( + self, + polygons: np.ndarray, + rows: Dict, + row_nums: int, + col_nums: int, + longest_col: np.ndarray, + each_col_widths: List[float], + each_row_heights: List[float], + ) -> Dict[int, Dict[int, int]]: + col_res_merge, row_res_merge = {}, {} + merge_thresh = 20 + for cur_row, col_list in rows.items(): + one_col_result, one_row_result = {}, {} + for one_col in col_list: + box = polygons[one_col] + box_width = self.compute_L2(box[3, :], box[0, :]) + + # 不一定是从0开始的,应该综合已有值和x坐标位置来确定起始位置 + loc_col_idx = np.argmin(np.abs(longest_col[:, 0, 0] - box[0, 0])) + merge_col_cell = max(sum(one_col_result.values()), loc_col_idx) + + # 计算合并多少个列方向单元格 + for i in range(merge_col_cell, col_nums): + col_cum_sum = sum(each_col_widths[merge_col_cell : i + 1]) + if i == merge_col_cell and col_cum_sum > box_width: + one_col_result[one_col] = 1 + break + elif abs(col_cum_sum - box_width) <= merge_thresh: + one_col_result[one_col] = i + 1 - merge_col_cell + break + else: + one_col_result[one_col] = i + 1 - merge_col_cell + 1 + + box_height = self.compute_L2(box[1, :], box[0, :]) + merge_row_cell = cur_row + for j in range(merge_row_cell, row_nums): + row_cum_sum = sum(each_row_heights[merge_row_cell : j + 1]) + # box_height 不确定是几行的高度,所以要逐个试验,找一个最近的几行的高 + # 如果第一次row_cum_sum就比box_height大,那么意味着?丢失了一行 + if j == merge_row_cell and row_cum_sum > box_height: + one_row_result[one_col] = 1 + break + + elif abs(box_height - row_cum_sum) <= merge_thresh: + one_row_result[one_col] = j + 1 - merge_row_cell + break + else: + one_row_result[one_col] = j + 1 - merge_row_cell + 1 + + col_res_merge[cur_row] = one_col_result + row_res_merge[cur_row] = one_row_result + + res = {} + for i, (c, r) in enumerate(zip(col_res_merge.values(), row_res_merge.values())): + res[i] = {k: [cc, r[k]] for k, cc in c.items()} + return res diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/utils_table_recover.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/utils_table_recover.py new file mode 100644 index 00000000..19b44652 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/utils_table_recover.py @@ -0,0 +1,315 @@ +# -*- encoding: utf-8 -*- +# @Author: SWHL +# @Contact: liekkaskono@163.com +import random +from typing import Dict, List, Union + +import cv2 +import numpy as np +import shapely +from shapely.geometry import MultiPoint, Polygon + + +def sorted_boxes(dt_boxes: np.ndarray) -> np.ndarray: + """ + Sort text boxes in order from top to bottom, left to right + args: + dt_boxes(array):detected text boxes with shape (N, 4, 2) + return: + sorted boxes(array) with shape (N, 4, 2) + """ + num_boxes = dt_boxes.shape[0] + dt_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0])) + _boxes = list(dt_boxes) + + # 解决相邻框,后边比前面y轴小,则会被排到前面去的问题 + for i in range(num_boxes - 1): + for j in range(i, -1, -1): + if ( + abs(_boxes[j + 1][0][1] - _boxes[j][0][1]) < 10 + and _boxes[j + 1][0][0] < _boxes[j][0][0] + ): + _boxes[j], _boxes[j + 1] = _boxes[j + 1], _boxes[j] + else: + break + return np.array(_boxes) + + +def compute_poly_iou(a: np.ndarray, b: np.ndarray) -> float: + """计算两个多边形的IOU + + Args: + poly1 (np.ndarray): (4, 2) + poly2 (np.ndarray): (4, 2) + + Returns: + float: iou + """ + poly1 = Polygon(a).convex_hull + poly2 = Polygon(b).convex_hull + + union_poly = np.concatenate((a, b)) + + if not poly1.intersects(poly2): + return 0.0 + + try: + inter_area = poly1.intersection(poly2).area + union_area = MultiPoint(union_poly).convex_hull.area + except shapely.geos.TopologicalError: + print("shapely.geos.TopologicalError occured, iou set to 0") + return 0.0 + + if union_area == 0: + return 0.0 + + return float(inter_area) / union_area + + +def merge_adjacent_polys(polygons: np.ndarray) -> np.ndarray: + """合并相邻iou大于阈值的框""" + combine_iou_thresh = 0.1 + pair_polygons = list(zip(polygons, polygons[1:, ...])) + pair_ious = np.array([compute_poly_iou(p1, p2) for p1, p2 in pair_polygons]) + idxs = np.argwhere(pair_ious >= combine_iou_thresh) + + if idxs.size <= 0: + return polygons + + polygons = combine_two_poly(polygons, idxs) + + # 注意:递归调用 + polygons = merge_adjacent_polys(polygons) + return polygons + + +def combine_two_poly(polygons: np.ndarray, idxs: np.ndarray) -> np.ndarray: + del_idxs, insert_boxes = [], [] + idxs = idxs.squeeze(0) + for idx in idxs: + # idx 和 idx + 1 是重合度过高的 + # 合并,取两者各个点的最大值 + new_poly = [] + pre_poly, pos_poly = polygons[idx], polygons[idx + 1] + + # 四个点,每个点逐一比较 + new_poly.append(np.minimum(pre_poly[0], pos_poly[0])) + + x_2 = min(pre_poly[1][0], pos_poly[1][0]) + y_2 = max(pre_poly[1][1], pos_poly[1][1]) + new_poly.append([x_2, y_2]) + + # 第3个点 + new_poly.append(np.maximum(pre_poly[2], pos_poly[2])) + + # 第4个点 + x_4 = max(pre_poly[3][0], pos_poly[3][0]) + y_4 = min(pre_poly[3][1], pos_poly[3][1]) + new_poly.append([x_4, y_4]) + + new_poly = np.array(new_poly) + + # 删除已经合并的两个框,插入新的框 + del_idxs.extend([idx, idx + 1]) + insert_boxes.append(new_poly) + + # 整合合并后的框 + polygons = np.delete(polygons, del_idxs, axis=0) + + insert_boxes = np.array(insert_boxes) + polygons = np.append(polygons, insert_boxes, axis=0) + polygons = sorted_boxes(polygons) + return polygons + + +def match_ocr_cell( + polygons: np.ndarray, ocr_res: List[Union[List[List[float]], str, str]] +) -> Dict[int, List]: + cell_box_map = {} + head_box_map = {} + tail_box_map = {} + dt_boxes, rec_res, _ = list(zip(*ocr_res)) + dt_boxes = np.array(dt_boxes) + iou_thresh = 0.05 + head_idx = 0 + tail_idx = 0 + for i, dt_box in enumerate(dt_boxes): + ious = [compute_poly_iou(dt_box, cell_box) for cell_box in polygons] + if sum(ious) == 0 and dt_box[-1][1] < polygons[-1][0][1]: + head_box_map.setdefault(head_idx, rec_res[i]) + head_idx += 1 + elif sum(ious) == 0 and dt_box[0][1] > polygons[0][2][1]: + tail_box_map.setdefault(tail_idx, rec_res[i]) + tail_idx += 1 + for i, cell_box in enumerate(polygons): + ious = [compute_poly_iou(dt_box, cell_box) for dt_box in dt_boxes] + + # 对有iou的值,计算是否存在包含关系。如存在→iou=1 + have_iou_idxs = np.argwhere(ious) + if have_iou_idxs.size > 0: + have_iou_idxs = have_iou_idxs.squeeze(1) + for idx in have_iou_idxs: + if is_inclusive_each_other(cell_box, dt_boxes[idx]): + ious[idx] = 1.0 + + if all(x <= iou_thresh for x in ious): + # 说明这个cell中没有文本 + cell_box_map.setdefault(i, []).append("") + continue + + same_cell_idxs = np.argwhere(np.array(ious) >= iou_thresh).squeeze(1) + one_cell_txts = "\n".join([rec_res[idx] for idx in same_cell_idxs]) + cell_box_map.setdefault(i, []).append(one_cell_txts) + return cell_box_map, head_box_map, tail_box_map + + +def is_inclusive_each_other(box1: np.ndarray, box2: np.ndarray): + """判断两个多边形框是否存在包含关系 + + Args: + box1 (np.ndarray): (4, 2) + box2 (np.ndarray): (4, 2) + + Returns: + bool: 是否存在包含关系 + """ + poly1 = Polygon(box1) + poly2 = Polygon(box2) + + poly1_area = poly1.convex_hull.area + poly2_area = poly2.convex_hull.area + + if poly1_area > poly2_area: + box_max = box1 + box_min = box2 + else: + box_max = box2 + box_min = box1 + + x0, y0 = np.min(box_min[:, 0]), np.min(box_min[:, 1]) + x1, y1 = np.max(box_min[:, 0]), np.max(box_min[:, 1]) + + edge_x0, edge_y0 = np.min(box_max[:, 0]), np.min(box_max[:, 1]) + edge_x1, edge_y1 = np.max(box_max[:, 0]), np.max(box_max[:, 1]) + + if x0 >= edge_x0 and y0 >= edge_y0 and x1 <= edge_x1 and y1 <= edge_y1: + return True + return False + + +def plot_html_table(table_res: Dict, cell_box_map: Dict, head_box_map: Dict, tail_box_map: Dict) -> str: + table_str = f"" + for key in head_box_map.keys(): + table_str += f'' + head_box_map[key] + f'
' + table_str = table_str + f"" + for v in table_res.values(): + table_str += "" + for cell_idx, span_info in v.items(): + cur_txt = "".join(cell_box_map.get(cell_idx, "")) + cur_txt = cur_txt.replace('\n', '
') + colspan, rowspan = span_info + if colspan != 1 and rowspan != 1: + table_str += ( + f'' + ) + elif colspan == 1 and rowspan != 1: + table_str += f'' + elif colspan != 1 and rowspan == 1: + table_str += f'' + else: + table_str += f"" + + table_str += "" + table_str += "
{cur_txt}{cur_txt}{cur_txt}{cur_txt}
" + for key in tail_box_map.keys(): + table_str += f'' + tail_box_map[key] + f'
' + table_str += "" + return table_str + + +# def plot_html_wireless_table(logi_points, cell_box_map): +# logi_points = logi_points.astype(np.int32) +# table_dict = {} +# for cell_idx, v in enumerate(logi_points): +# cur_row = v[0] +# cur_txt = "\n".join(cell_box_map.get(cell_idx)) +# sr, er, sc, ec = v.tolist() +# rowspan, colspan = er - sr + 1, ec - sc + 1 +# table_str = f'{cur_txt}' +# # table_str = f'
{cur_txt}
' +# table_dict.setdefault(cur_row, []).append(table_str) + +# new_table_dict = {} +# for k, v in table_dict.items(): +# new_table_dict[k] = [""] + v + [""] + +# html_start = """""" +# # html_start = """
""" +# html_end = "
" +# html_middle = "".join([vv for v in new_table_dict.values() for vv in v]) +# table_str = f"{html_start}{html_middle}{html_end}" +# return table_str + + +def plot_html_wireless_table(logi_points, cell_box_map): + logi_points = logi_points.astype(np.int32) + table_dict = {} + col_dict = {} + colspan_dict = {} + for cell_idx, v in enumerate(logi_points): + cur_row = v[0] + cur_col = v[2] + cur_txt = "\n".join(cell_box_map.get(cell_idx)) + sr, er, sc, ec = v.tolist() + rowspan, colspan = er - sr + 1, ec - sc + 1 + table_str = f'{cur_txt}' + # table_str = f'
{cur_txt}
' + table_dict.setdefault(cur_row, []).append(table_str) + if rowspan != 1 and colspan == 1: + for cur_row in range(v[0], v[1]+1): + col_dict.setdefault(cur_row, []).append(cur_col) + # colspan_dict.setdefault(cur_row, []).append(colspan) + elif rowspan == 1 and colspan != 1: + for cur_col in range(v[2], v[3]+1): + col_dict.setdefault(cur_row, []).append(cur_col) + # colspan_dict.setdefault(cur_row, []).append(colspan) + else: + col_dict.setdefault(cur_row, []).append(cur_col) + # colspan_dict.setdefault(cur_row, []).append(colspan) + + new_table_dict = {} + for k, v in table_dict.items(): + if len(col_dict[k]) < max(col_dict[k]): + for i in range(max(col_dict[k])+1): + if i not in col_dict[k]: + v.insert(i, '') + new_table_dict[k] = [""] + v + [""] + else: + new_table_dict[k] = [""] + v + [""] + + html_start = """""" + # html_start = """
""" + html_end = "
" + html_middle = "".join([vv for v in new_table_dict.values() for vv in v]) + table_str = f"{html_start}{html_middle}{html_end}" + return table_str + + +def vis_table(img: np.ndarray, polygons: np.ndarray) -> np.ndarray: + # mask = img.copy() + for i, poly in enumerate(polygons): + poly = np.round(poly).astype(np.int32).reshape(4, 2) + + random_color = ( + random.randint(0, 255), + random.randint(0, 255), + random.randint(0, 255), + ) + cv2.polylines(img, [poly], 3, random_color) + # cv2.fillPoly(mask, np.array([poly], dtype=np.int32), random_color) + + font = cv2.FONT_HERSHEY_SIMPLEX + cv2.putText(img, str(i), poly[0], font, 1, random_color, 1) + # img = img * 0.67 + mask * 0.33 + + return img diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/vis.jpg b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/vis.jpg new file mode 100644 index 00000000..5237930f Binary files /dev/null and b/qanything_kernel/utils/loader/pdf_to_markdown/core/layout/table_rec/vis.jpg differ diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/__init__.py new file mode 100644 index 00000000..6d52409d --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/__init__.py @@ -0,0 +1,363 @@ +import random +from collections import Counter + +from . import huqie +import re +import copy +import tiktoken + +encoder = tiktoken.encoding_for_model("gpt-3.5-turbo") + +def num_tokens_from_string(string: str) -> int: + """Returns the number of tokens in a text string.""" + num_tokens = len(encoder.encode(string)) + return num_tokens + + +BULLET_PATTERN = [[ + r"第[零一二三四五六七八九十百0-9]+(分?编|部分)", + r"第[零一二三四五六七八九十百0-9]+章", + r"第[零一二三四五六七八九十百0-9]+节", + r"第[零一二三四五六七八九十百0-9]+条", + r"[\((][零一二三四五六七八九十百]+[\))]", +], [ + r"第[0-9]+章", + r"第[0-9]+节", + r"[0-9]{,2}[\. 、]", + r"[0-9]{,2}\.[0-9]{,2}[^a-zA-Z/%~-]", + r"[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}", + r"[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}\.[0-9]{,2}", +], [ + r"第[零一二三四五六七八九十百0-9]+章", + r"第[零一二三四五六七八九十百0-9]+节", + r"[零一二三四五六七八九十百]+[ 、]", + r"[\((][零一二三四五六七八九十百]+[\))]", + r"[\((][0-9]{,2}[\))]", +], [ + r"PART (ONE|TWO|THREE|FOUR|FIVE|SIX|SEVEN|EIGHT|NINE|TEN)", + r"Chapter (I+V?|VI*|XI|IX|X)", + r"Section [0-9]+", + r"Article [0-9]+" +] +] + + +def random_choices(arr, k): + k = min(len(arr), k) + return random.choices(arr, k=k) + + +def not_bullet(line): + patt = [ + r"0", r"[0-9]+ +[0-9~个只-]", r"[0-9]+\.{2,}" + ] + return any([re.match(r, line) for r in patt]) + + +def bullets_category(sections): + global BULLET_PATTERN + hits = [0] * len(BULLET_PATTERN) + for i, pro in enumerate(BULLET_PATTERN): + for sec in sections: + for p in pro: + if re.match(p, sec) and not not_bullet(sec): + hits[i] += 1 + break + maxium = 0 + res = -1 + for i, h in enumerate(hits): + if h <= maxium: + continue + res = i + maxium = h + return res + + +def is_english(texts): + eng = 0 + if not texts: return False + for t in texts: + if re.match(r"[a-zA-Z]{2,}", t.strip()): + eng += 1 + if eng / len(texts) > 0.8: + return True + return False + + +def tokenize(d, t, eng): + d["content_with_weight"] = t + t = re.sub(r"]{0,12})?>", " ", t) + d["content_ltks"] = huqie.qie(t) + d["content_sm_ltks"] = huqie.qieqie(d["content_ltks"]) + + +def tokenize_chunks(chunks, doc, eng, pdf_parser): + res = [] + # wrap up as es documents + for ck in chunks: + if len(ck.strip()) == 0:continue + print("--", ck) + d = copy.deepcopy(doc) + if pdf_parser: + try: + d["image"], poss = pdf_parser.crop(ck, need_position=True) + add_positions(d, poss) + ck = pdf_parser.remove_tag(ck) + except NotImplementedError as e: + pass + tokenize(d, ck, eng) + res.append(d) + return res + + +def tokenize_table(tbls, doc, eng, batch_size=10): + res = [] + # add tables + for (img, rows), poss in tbls: + if not rows: + continue + if isinstance(rows, str): + d = copy.deepcopy(doc) + tokenize(d, rows, eng) + d["content_with_weight"] = rows + if img: d["image"] = img + if poss: add_positions(d, poss) + res.append(d) + continue + de = "; " if eng else "; " + for i in range(0, len(rows), batch_size): + d = copy.deepcopy(doc) + r = de.join(rows[i:i + batch_size]) + tokenize(d, r, eng) + d["image"] = img + add_positions(d, poss) + res.append(d) + return res + + +def add_positions(d, poss): + if not poss: + return + d["page_num_int"] = [] + d["position_int"] = [] + d["top_int"] = [] + for pn, left, right, top, bottom in poss: + d["page_num_int"].append(pn + 1) + d["top_int"].append(top) + d["position_int"].append((pn + 1, left, right, top, bottom)) + + +def remove_contents_table(sections, eng=False): + i = 0 + while i < len(sections): + def get(i): + nonlocal sections + return (sections[i] if isinstance(sections[i], + type("")) else sections[i][0]).strip() + + if not re.match(r"(contents|目录|目次|table of contents|致谢|acknowledge)$", + re.sub(r"( | |\u3000)+", "", get(i).split("@@")[0], re.IGNORECASE)): + i += 1 + continue + sections.pop(i) + if i >= len(sections): + break + prefix = get(i)[:3] if not eng else " ".join(get(i).split(" ")[:2]) + while not prefix: + sections.pop(i) + if i >= len(sections): + break + prefix = get(i)[:3] if not eng else " ".join(get(i).split(" ")[:2]) + sections.pop(i) + if i >= len(sections) or not prefix: + break + for j in range(i, min(i + 128, len(sections))): + if not re.match(prefix, get(j)): + continue + for _ in range(i, j): + sections.pop(i) + break + + +def make_colon_as_title(sections): + if not sections: + return [] + if isinstance(sections[0], type("")): + return sections + i = 0 + while i < len(sections): + txt, layout = sections[i] + i += 1 + txt = txt.split("@")[0].strip() + if not txt: + continue + if txt[-1] not in "::": + continue + txt = txt[::-1] + arr = re.split(r"([。?!!?;;]| .)", txt) + if len(arr) < 2 or len(arr[1]) < 32: + continue + sections.insert(i - 1, (arr[0][::-1], "title")) + i += 1 + + +def title_frequency(bull, sections): + bullets_size = len(BULLET_PATTERN[bull]) + levels = [bullets_size+1 for _ in range(len(sections))] + if not sections or bull < 0: + return bullets_size+1, levels + + for i, (txt, layout) in enumerate(sections): + for j, p in enumerate(BULLET_PATTERN[bull]): + if re.match(p, txt.strip()) and not not_bullet(txt): + levels[i] = j + break + else: + if re.search(r"(title|head)", layout) and not not_title(txt.split("@")[0]): + levels[i] = bullets_size + most_level = bullets_size+1 + for l, c in sorted(Counter(levels).items(), key=lambda x:x[1]*-1): + if l <= bullets_size: + most_level = l + break + return most_level, levels + + +def not_title(txt): + if re.match(r"第[零一二三四五六七八九十百0-9]+条", txt): + return False + if len(txt.split(" ")) > 12 or (txt.find(" ") < 0 and len(txt) >= 32): + return True + return re.search(r"[,;,。;!!]", txt) + + +def hierarchical_merge(bull, sections, depth): + if not sections or bull < 0: + return [] + if isinstance(sections[0], type("")): + sections = [(s, "") for s in sections] + sections = [(t, o) for t, o in sections if + t and len(t.split("@")[0].strip()) > 1 and not re.match(r"[0-9]+$", t.split("@")[0].strip())] + bullets_size = len(BULLET_PATTERN[bull]) + levels = [[] for _ in range(bullets_size + 2)] + + + for i, (txt, layout) in enumerate(sections): + for j, p in enumerate(BULLET_PATTERN[bull]): + if re.match(p, txt.strip()): + levels[j].append(i) + break + else: + if re.search(r"(title|head)", layout) and not not_title(txt): + levels[bullets_size].append(i) + else: + levels[bullets_size + 1].append(i) + sections = [t for t, _ in sections] + + # for s in sections: print("--", s) + + def binary_search(arr, target): + if not arr: + return -1 + if target > arr[-1]: + return len(arr) - 1 + if target < arr[0]: + return -1 + s, e = 0, len(arr) + while e - s > 1: + i = (e + s) // 2 + if target > arr[i]: + s = i + continue + elif target < arr[i]: + e = i + continue + else: + assert False + return s + + cks = [] + readed = [False] * len(sections) + levels = levels[::-1] + for i, arr in enumerate(levels[:depth]): + for j in arr: + if readed[j]: + continue + readed[j] = True + cks.append([j]) + if i + 1 == len(levels) - 1: + continue + for ii in range(i + 1, len(levels)): + jj = binary_search(levels[ii], j) + if jj < 0: + continue + if jj > cks[-1][-1]: + cks[-1].pop(-1) + cks[-1].append(levels[ii][jj]) + for ii in cks[-1]: + readed[ii] = True + + if not cks: + return cks + + for i in range(len(cks)): + cks[i] = [sections[j] for j in cks[i][::-1]] + print("--------------\n", "\n* ".join(cks[i])) + + res = [[]] + num = [0] + for ck in cks: + if len(ck) == 1: + n = num_tokens_from_string(re.sub(r"@@[0-9]+.*", "", ck[0])) + if n + num[-1] < 218: + res[-1].append(ck[0]) + num[-1] += n + continue + res.append(ck) + num.append(n) + continue + res.append(ck) + num.append(218) + + return res + + +def naive_merge(sections, chunk_token_num=128, delimiter="\n。;!?"): + if not sections: + return [] + if isinstance(sections[0], type("")): + sections = [(s, "") for s in sections] + cks = [""] + tk_nums = [0] + + def add_chunk(t, pos): + nonlocal cks, tk_nums, delimiter + tnum = num_tokens_from_string(t) + if tnum < 8: + pos = "" + if tk_nums[-1] > chunk_token_num: + if t.find(pos) < 0: + t += pos + cks.append(t) + tk_nums.append(tnum) + else: + if cks[-1].find(pos) < 0: + t += pos + cks[-1] += t + tk_nums[-1] += tnum + + for sec, pos in sections: + add_chunk(sec, pos) + continue + s, e = 0, 1 + while e < len(sec): + if sec[e] in delimiter: + add_chunk(sec[s: e + 1], pos) + s = e + 1 + e = s + 1 + else: + e += 1 + if s < e: + add_chunk(sec[s: e], pos) + + return cks diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/huqie.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/huqie.py new file mode 100644 index 00000000..159808c2 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/nlp/huqie.py @@ -0,0 +1,421 @@ +# -*- coding: utf-8 -*- + +import copy +import datrie +import math +import os +import re +import string +import sys +from hanziconv import HanziConv +from nltk import word_tokenize +from nltk.stem import PorterStemmer, WordNetLemmatizer +from qanything_kernel.configs.model_config import PDF_MODEL_PATH + +class Huqie: + def key_(self, line): + return str(line.lower().encode("utf-8"))[2:-1] + + def rkey_(self, line): + return str(("DD" + (line[::-1].lower())).encode("utf-8"))[2:-1] + + def loadDict_(self, fnm): + print("[HUQIE]:Build trie", fnm, file=sys.stderr) + try: + of = open(fnm, "r") + while True: + line = of.readline() + if not line: + break + line = re.sub(r"[\r\n]+", "", line) + line = re.split(r"[ \t]", line) + k = self.key_(line[0]) + F = int(math.log(float(line[1]) / self.DENOMINATOR) + .5) + if k not in self.trie_ or self.trie_[k][0] < F: + self.trie_[self.key_(line[0])] = (F, line[2]) + self.trie_[self.rkey_(line[0])] = 1 + self.trie_.save(fnm + ".trie") + of.close() + except Exception as e: + print("[HUQIE]:Faild to build trie, ", fnm, e, file=sys.stderr) + + def __init__(self, debug=False): + self.DEBUG = debug + self.DENOMINATOR = 1000000 + self.trie_ = datrie.Trie(string.printable) + self.DIR_ = os.path.join(PDF_MODEL_PATH, "checkpoints/nlp", "huqie") + + self.stemmer = PorterStemmer() + self.lemmatizer = WordNetLemmatizer() + + self.SPLIT_CHAR = r"([ ,\.<>/?;'\[\]\\`!@#$%^&*\(\)\{\}\|_+=《》,。?、;‘’:“”【】~!¥%……()——-]+|[a-z\.-]+|[0-9,\.-]+)" + try: + self.trie_ = datrie.Trie.load(self.DIR_ + ".txt.trie") + return + except Exception as e: + print("[HUQIE]:Build default trie", file=sys.stderr) + self.trie_ = datrie.Trie(string.printable) + + self.loadDict_(self.DIR_ + ".txt") + + def loadUserDict(self, fnm): + try: + self.trie_ = datrie.Trie.load(fnm + ".trie") + return + except Exception as e: + self.trie_ = datrie.Trie(string.printable) + self.loadDict_(fnm) + + def addUserDict(self, fnm): + self.loadDict_(fnm) + + def _strQ2B(self, ustring): + """把字符串全角转半角""" + rstring = "" + for uchar in ustring: + inside_code = ord(uchar) + if inside_code == 0x3000: + inside_code = 0x0020 + else: + inside_code -= 0xfee0 + if inside_code < 0x0020 or inside_code > 0x7e: # 转完之后不是半角字符返回原来的字符 + rstring += uchar + else: + rstring += chr(inside_code) + return rstring + + def _tradi2simp(self, line): + return HanziConv.toSimplified(line) + + def dfs_(self, chars, s, preTks, tkslist): + MAX_L = 10 + res = s + # if s > MAX_L or s>= len(chars): + if s >= len(chars): + tkslist.append(preTks) + return res + + # pruning + S = s + 1 + if s + 2 <= len(chars): + t1, t2 = "".join(chars[s:s + 1]), "".join(chars[s:s + 2]) + if self.trie_.has_keys_with_prefix(self.key_(t1)) and not self.trie_.has_keys_with_prefix( + self.key_(t2)): + S = s + 2 + if len(preTks) > 2 and len( + preTks[-1][0]) == 1 and len(preTks[-2][0]) == 1 and len(preTks[-3][0]) == 1: + t1 = preTks[-1][0] + "".join(chars[s:s + 1]) + if self.trie_.has_keys_with_prefix(self.key_(t1)): + S = s + 2 + + ################ + for e in range(S, len(chars) + 1): + t = "".join(chars[s:e]) + k = self.key_(t) + + if e > s + 1 and not self.trie_.has_keys_with_prefix(k): + break + + if k in self.trie_: + pretks = copy.deepcopy(preTks) + if k in self.trie_: + pretks.append((t, self.trie_[k])) + else: + pretks.append((t, (-12, ''))) + res = max(res, self.dfs_(chars, e, pretks, tkslist)) + + if res > s: + return res + + t = "".join(chars[s:s + 1]) + k = self.key_(t) + if k in self.trie_: + preTks.append((t, self.trie_[k])) + else: + preTks.append((t, (-12, ''))) + + return self.dfs_(chars, s + 1, preTks, tkslist) + + def freq(self, tk): + k = self.key_(tk) + if k not in self.trie_: + return 0 + return int(math.exp(self.trie_[k][0]) * self.DENOMINATOR + 0.5) + + def tag(self, tk): + k = self.key_(tk) + if k not in self.trie_: + return "" + return self.trie_[k][1] + + def score_(self, tfts): + B = 30 + F, L, tks = 0, 0, [] + for tk, (freq, tag) in tfts: + F += freq + L += 0 if len(tk) < 2 else 1 + tks.append(tk) + F /= len(tks) + L /= len(tks) + if self.DEBUG: + print("[SC]", tks, len(tks), L, F, B / len(tks) + L + F) + return tks, B / len(tks) + L + F + + def sortTks_(self, tkslist): + res = [] + for tfts in tkslist: + tks, s = self.score_(tfts) + res.append((tks, s)) + return sorted(res, key=lambda x: x[1], reverse=True) + + def merge_(self, tks): + patts = [ + (r"[ ]+", " "), + (r"([0-9\+\.,%\*=-]) ([0-9\+\.,%\*=-])", r"\1\2"), + ] + # for p,s in patts: tks = re.sub(p, s, tks) + + # if split chars is part of token + res = [] + tks = re.sub(r"[ ]+", " ", tks).split(" ") + s = 0 + while True: + if s >= len(tks): + break + E = s + 1 + for e in range(s + 2, min(len(tks) + 2, s + 6)): + tk = "".join(tks[s:e]) + if re.search(self.SPLIT_CHAR, tk) and self.freq(tk): + E = e + res.append("".join(tks[s:E])) + s = E + + return " ".join(res) + + def maxForward_(self, line): + res = [] + s = 0 + while s < len(line): + e = s + 1 + t = line[s:e] + while e < len(line) and self.trie_.has_keys_with_prefix( + self.key_(t)): + e += 1 + t = line[s:e] + + while e - 1 > s and self.key_(t) not in self.trie_: + e -= 1 + t = line[s:e] + + if self.key_(t) in self.trie_: + res.append((t, self.trie_[self.key_(t)])) + else: + res.append((t, (0, ''))) + + s = e + + return self.score_(res) + + def maxBackward_(self, line): + res = [] + s = len(line) - 1 + while s >= 0: + e = s + 1 + t = line[s:e] + while s > 0 and self.trie_.has_keys_with_prefix(self.rkey_(t)): + s -= 1 + t = line[s:e] + + while s + 1 < e and self.key_(t) not in self.trie_: + s += 1 + t = line[s:e] + + if self.key_(t) in self.trie_: + res.append((t, self.trie_[self.key_(t)])) + else: + res.append((t, (0, ''))) + + s -= 1 + + return self.score_(res[::-1]) + + def qie(self, line): + line = self._strQ2B(line).lower() + line = self._tradi2simp(line) + zh_num = len([1 for c in line if is_chinese(c)]) + if zh_num < len(line) * 0.2: + return " ".join([self.stemmer.stem(self.lemmatizer.lemmatize(t)) for t in word_tokenize(line)]) + + arr = re.split(self.SPLIT_CHAR, line) + res = [] + for L in arr: + if len(L) < 2 or re.match( + r"[a-z\.-]+$", L) or re.match(r"[0-9\.-]+$", L): + res.append(L) + continue + # print(L) + + # use maxforward for the first time + tks, s = self.maxForward_(L) + tks1, s1 = self.maxBackward_(L) + if self.DEBUG: + print("[FW]", tks, s) + print("[BW]", tks1, s1) + + diff = [0 for _ in range(max(len(tks1), len(tks)))] + for i in range(min(len(tks1), len(tks))): + if tks[i] != tks1[i]: + diff[i] = 1 + + if s1 > s: + tks = tks1 + + i = 0 + while i < len(tks): + s = i + while s < len(tks) and diff[s] == 0: + s += 1 + if s == len(tks): + res.append(" ".join(tks[i:])) + break + if s > i: + res.append(" ".join(tks[i:s])) + + e = s + while e < len(tks) and e - s < 5 and diff[e] == 1: + e += 1 + + tkslist = [] + self.dfs_("".join(tks[s:e + 1]), 0, [], tkslist) + res.append(" ".join(self.sortTks_(tkslist)[0][0])) + + i = e + 1 + + res = " ".join(res) + if self.DEBUG: + print("[TKS]", self.merge_(res)) + return self.merge_(res) + + def qieqie(self, tks): + tks = tks.split(" ") + zh_num = len([1 for c in tks if c and is_chinese(c[0])]) + if zh_num < len(tks) * 0.2: + res = [] + for tk in tks: + res.extend(tk.split("/")) + return " ".join(res) + + res = [] + for tk in tks: + if len(tk) < 3 or re.match(r"[0-9,\.-]+$", tk): + res.append(tk) + continue + tkslist = [] + if len(tk) > 10: + tkslist.append(tk) + else: + self.dfs_(tk, 0, [], tkslist) + if len(tkslist) < 2: + res.append(tk) + continue + stk = self.sortTks_(tkslist)[1][0] + if len(stk) == len(tk): + stk = tk + else: + if re.match(r"[a-z\.-]+$", tk): + for t in stk: + if len(t) < 3: + stk = tk + break + else: + stk = " ".join(stk) + else: + stk = " ".join(stk) + + res.append(stk) + + return " ".join(res) + + +def is_chinese(s): + if s >= u'\u4e00' and s <= u'\u9fa5': + return True + else: + return False + + +def is_number(s): + if s >= u'\u0030' and s <= u'\u0039': + return True + else: + return False + + +def is_alphabet(s): + if (s >= u'\u0041' and s <= u'\u005a') or ( + s >= u'\u0061' and s <= u'\u007a'): + return True + else: + return False + + +def naiveQie(txt): + tks = [] + for t in txt.split(" "): + if tks and re.match(r".*[a-zA-Z]$", tks[-1] + ) and re.match(r".*[a-zA-Z]$", t): + tks.append(" ") + tks.append(t) + return tks + + +hq = Huqie() +qie = hq.qie +qieqie = hq.qieqie +tag = hq.tag +freq = hq.freq +loadUserDict = hq.loadUserDict +addUserDict = hq.addUserDict +tradi2simp = hq._tradi2simp +strQ2B = hq._strQ2B + +if __name__ == '__main__': + huqie = Huqie(debug=True) + # huqie.addUserDict("/tmp/tmp.new.tks.dict") + tks = huqie.qie( + "哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈") + print(huqie.qieqie(tks)) + tks = huqie.qie( + "公开征求意见稿提出,境外投资者可使用自有人民币或外汇投资。使用外汇投资的,可通过债券持有人在香港人民币业务清算行及香港地区经批准可进入境内银行间外汇市场进行交易的境外人民币业务参加行(以下统称香港结算行)办理外汇资金兑换。香港结算行由此所产生的头寸可到境内银行间外汇市场平盘。使用外汇投资的,在其投资的债券到期或卖出后,原则上应兑换回外汇。") + print(huqie.qieqie(tks)) + tks = huqie.qie( + "多校划片就是一个小区对应多个小学初中,让买了学区房的家庭也不确定到底能上哪个学校。目的是通过这种方式为学区房降温,把就近入学落到实处。南京市长江大桥") + print(huqie.qieqie(tks)) + tks = huqie.qie( + "实际上当时他们已经将业务中心偏移到安全部门和针对政府企业的部门 Scripts are compiled and cached aaaaaaaaa") + print(huqie.qieqie(tks)) + tks = huqie.qie("虽然我不怎么玩") + print(huqie.qieqie(tks)) + tks = huqie.qie("蓝月亮如何在外资夹击中生存,那是全宇宙最有意思的") + print(huqie.qieqie(tks)) + tks = huqie.qie( + "涡轮增压发动机num最大功率,不像别的共享买车锁电子化的手段,我们接过来是否有意义,黄黄爱美食,不过,今天阿奇要讲到的这家农贸市场,说实话,还真蛮有特色的!不仅环境好,还打出了") + print(huqie.qieqie(tks)) + tks = huqie.qie("这周日你去吗?这周日你有空吗?") + print(huqie.qieqie(tks)) + tks = huqie.qie("Unity3D开发经验 测试开发工程师 c++双11双11 985 211 ") + print(huqie.qieqie(tks)) + tks = huqie.qie( + "数据分析项目经理|数据分析挖掘|数据分析方向|商品数据分析|搜索数据分析 sql python hive tableau Cocos2d-") + print(huqie.qieqie(tks)) + if len(sys.argv) < 2: + sys.exit() + huqie.DEBUG = False + huqie.loadUserDict(sys.argv[1]) + of = open(sys.argv[2], "r") + while True: + line = of.readline() + if not line: + break + print(huqie.qie(line)) + of.close() diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/__init__.py new file mode 100644 index 00000000..8c4abbbe --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/__init__.py @@ -0,0 +1,3 @@ + + +from .pdf_parser import HuParser as PdfParser, PlainParser diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/pdf_parser.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/pdf_parser.py new file mode 100644 index 00000000..3ae17333 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/pdf_parser.py @@ -0,0 +1,1139 @@ +# -*- coding: utf-8 -*- +import os +import random + +import fitz +import xgboost as xgb +from io import BytesIO +import torch +import re +import pdfplumber +import logging +from PIL import Image +import numpy as np + +from PyPDF2 import PdfReader as pdf2_read + +from qanything_kernel.utils.loader.pdf_to_markdown.core.vision import Recognizer, LayoutRecognizer, TableStructureRecognizer_LORE +from qanything_kernel.utils.loader.pdf_to_markdown.core.nlp import huqie +# from qanything_kernel.dependent_server.ocr_server.ocr import OCRQAnything +from qanything_kernel.configs.model_config import OCR_MODEL_PATH, PDF_MODEL_PATH +from qanything_kernel.utils.custom_log import debug_logger +from tqdm import tqdm +from copy import deepcopy + +logging.getLogger("pdfminer").setLevel(logging.WARNING) + + +class HuParser: + def __init__(self, device='cpu'): + # self.ocr = OCRQAnything(model_dir=OCR_MODEL_PATH, device=device) # 省显存 + if hasattr(self, "model_speciess"): + self.layouter = LayoutRecognizer("layout." + self.model_speciess) + else: + self.layouter = LayoutRecognizer("layout") + self.tbl_det = TableStructureRecognizer_LORE() + + self.updown_cnt_mdl = xgb.Booster() + if torch.cuda.is_available(): + self.updown_cnt_mdl.set_param({"device": "cuda"}) + + model_dir = os.path.join( + PDF_MODEL_PATH, + "checkpoints/updown") + self.updown_cnt_mdl.load_model(os.path.join( + model_dir, "updown_concat_xgb.model")) + self.page_from = 0 + + + def __char_width(self, c): + return (c["x1"] - c["x0"]) // len(c["text"]) + + def __height(self, c): + return c["bottom"] - c["top"] + + def _x_dis(self, a, b): + return min(abs(a["x1"] - b["x0"]), abs(a["x0"] - b["x1"]), + abs(a["x0"] + a["x1"] - b["x0"] - b["x1"]) / 2) + + def _y_dis( + self, a, b): + return ( + b["top"] + b["bottom"] - a["top"] - a["bottom"]) / 2 + + def _match_proj(self, b): + proj_patt = [ + r"第[零一二三四五六七八九十百]+章", + r"第[零一二三四五六七八九十百]+[条节]", + r"[零一二三四五六七八九十百]+[、是  ]", + r"[\((][零一二三四五六七八九十百]+[)\)]", + r"[\((][0-9]+[)\)]", + r"[0-9]+(、|\.[  ]|)|\.[^0-9./a-zA-Z_%><-]{4,})", + r"[0-9]+\.[0-9.]+(、|\.[  ])", + r"[⚫•➢①② ]", + ] + return any([re.match(p, b["text"]) for p in proj_patt]) + + def _updown_concat_features(self, up, down): + w = max(self.__char_width(up), self.__char_width(down)) + h = max(self.__height(up), self.__height(down)) + y_dis = self._y_dis(up, down) + LEN = 6 + tks_down = huqie.qie(down["text"][:LEN]).split(" ") + tks_up = huqie.qie(up["text"][-LEN:]).split(" ") + tks_all = up["text"][-LEN:].strip() \ + + (" " if re.match(r"[a-zA-Z0-9]+", + up["text"][-1] + down["text"][0]) else "") \ + + down["text"][:LEN].strip() + tks_all = huqie.qie(tks_all).split(" ") + fea = [ + up.get("R", -1) == down.get("R", -1), + y_dis / h, + down["page_number"] - up["page_number"], + up["layout_type"] == down["layout_type"], + up["layout_type"] == "text", + down["layout_type"] == "text", + up["layout_type"] == "table", + down["layout_type"] == "table", + True if re.search( + r"([。?!;!?;+))]|[a-z]\.)$", + up["text"]) else False, + True if re.search(r"[,:‘“、0-9(+-]$", up["text"]) else False, + True if re.search( + r"(^.?[/,?;:\],。;:’”?!》】)-])", + down["text"]) else False, + True if re.match(r"[\((][^\(\)()]+[)\)]$", up["text"]) else False, + True if re.search(r"[,,][^。.]+$", up["text"]) else False, + True if re.search(r"[,,][^。.]+$", up["text"]) else False, + True if re.search(r"[\((][^\))]+$", up["text"]) + and re.search(r"[\))]", down["text"]) else False, + self._match_proj(down), + True if re.match(r"[A-Z]", down["text"]) else False, + True if re.match(r"[A-Z]", up["text"][-1]) else False, + True if re.match(r"[a-z0-9]", up["text"][-1]) else False, + True if re.match(r"[0-9.%,-]+$", down["text"]) else False, + up["text"].strip()[-2:] == down["text"].strip()[-2:] if len(up["text"].strip() + ) > 1 and len( + down["text"].strip()) > 1 else False, + up["x0"] > down["x1"], + abs(self.__height(up) - self.__height(down)) / min(self.__height(up), + self.__height(down)), + self._x_dis(up, down) / max(w, 0.000001), + (len(up["text"]) - len(down["text"])) / + max(len(up["text"]), len(down["text"])), + len(tks_all) - len(tks_up) - len(tks_down), + len(tks_down) - len(tks_up), + tks_down[-1] == tks_up[-1], + max(down["in_row"], up["in_row"]), + abs(down["in_row"] - up["in_row"]), + len(tks_down) == 1 and huqie.tag(tks_down[0]).find("n") >= 0, + len(tks_up) == 1 and huqie.tag(tks_up[0]).find("n") >= 0 + ] + return fea + + @staticmethod + def sort_X_by_page(arr, threashold): + # sort using y1 first and then x1 + arr = sorted(arr, key=lambda r: (r["page_number"], r["x0"], r["top"])) + for i in range(len(arr) - 1): + for j in range(i, -1, -1): + # restore the order using th + if abs(arr[j + 1]["x0"] - arr[j]["x0"]) < threashold \ + and arr[j + 1]["top"] < arr[j]["top"] \ + and arr[j + 1]["page_number"] == arr[j]["page_number"]: + tmp = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = tmp + return arr + + def _has_color(self, o): + if o.get("ncs", "") == "DeviceGray": + if o["stroking_color"] and o["stroking_color"][0] == 1 and o["non_stroking_color"] and \ + o["non_stroking_color"][0] == 1: + if re.match(r"[a-zT_\[\]\(\)-]+", o.get("text", "")): + return False + return True + + def _table_transformer_job(self, ZM): + logging.info("Table processing...") + imgs, pos = [], [] + tbcnt = [0] + MARGIN = 10 + self.tb_cpns = [] + assert len(self.page_layout) == len(self.page_images) + for p, tbls in enumerate(self.page_layout): # for page + tbls = [f for f in tbls if f["type"] == "table"] + tbcnt.append(len(tbls)) + if not tbls: + continue + for tb in tbls: # for table + left, top, right, bott = tb["x0"] - MARGIN, tb["top"] - MARGIN, \ + tb["x1"] + MARGIN, tb["bottom"] + MARGIN + left *= ZM + top *= ZM + right *= ZM + bott *= ZM + pos.append((left, top)) + imgs.append(self.page_images[p].crop((left, top, right, bott))) + + assert len(self.page_images) == len(tbcnt) - 1 + if not imgs: + return + recos = self.tbl_det(imgs) + tbcnt = np.cumsum(tbcnt) + for i in range(len(tbcnt) - 1): # for page + pg = [] + for j, tb_items in enumerate( + recos[tbcnt[i]: tbcnt[i + 1]]): # for table + poss = pos[tbcnt[i]: tbcnt[i + 1]] + for it in tb_items: # for table components + it["x0"] = (it["x0"] + poss[j][0]) + it["x1"] = (it["x1"] + poss[j][0]) + it["top"] = (it["top"] + poss[j][1]) + it["bottom"] = (it["bottom"] + poss[j][1]) + for n in ["x0", "x1", "top", "bottom"]: + it[n] /= ZM + it["top"] += self.page_cum_height[i] + it["bottom"] += self.page_cum_height[i] + it["pn"] = i + it["layoutno"] = j + pg.append(it) + self.tb_cpns.extend(pg) + + def gather(kwd, fzy=10, ption=0.6): + eles = Recognizer.sort_Y_firstly( + [r for r in self.tb_cpns if re.match(kwd, r["label"])], fzy) + eles = Recognizer.layouts_cleanup(self.boxes, eles, 5, ption) + return Recognizer.sort_Y_firstly(eles, 0) + + # add R,H,C,SP tag to boxes within table layout + headers = gather(r".*header$") + rows = gather(r".* (row|header)") + spans = gather(r".*spanning") + clmns = sorted([r for r in self.tb_cpns if re.match( + r"table column$", r["label"])], key=lambda x: (x["pn"], x["layoutno"], x["x0"])) + clmns = Recognizer.layouts_cleanup(self.boxes, clmns, 5, 0.5) + for b in self.boxes: + if b.get("layout_type", "") != "table": + continue + ii = Recognizer.find_overlapped_with_threashold(b, rows, thr=0.3) + if ii is not None: + b["R"] = ii + b["R_top"] = rows[ii]["top"] + b["R_bott"] = rows[ii]["bottom"] + + ii = Recognizer.find_overlapped_with_threashold( + b, headers, thr=0.3) + if ii is not None: + b["H_top"] = headers[ii]["top"] + b["H_bott"] = headers[ii]["bottom"] + b["H_left"] = headers[ii]["x0"] + b["H_right"] = headers[ii]["x1"] + b["H"] = ii + + ii = Recognizer.find_horizontally_tightest_fit(b, clmns) + if ii is not None: + b["C"] = ii + b["C_left"] = clmns[ii]["x0"] + b["C_right"] = clmns[ii]["x1"] + + ii = Recognizer.find_overlapped_with_threashold(b, spans, thr=0.3) + if ii is not None: + b["H_top"] = spans[ii]["top"] + b["H_bott"] = spans[ii]["bottom"] + b["H_left"] = spans[ii]["x0"] + b["H_right"] = spans[ii]["x1"] + b["SP"] = ii + + def __ocr_pdf(self,pagenum,bxs_pymupdf,ZM=3): + """ + use pymupdf parse pdf to save time + """ + bxs = bxs_pymupdf + if not bxs: + self.boxes.append([]) + return + bxs = [(np.array(item[0]),'',item[1]) for item in bxs] + bxs = Recognizer.sort_Y_firstly( + [{"x0": b[0][0] / ZM, "x1": b[1][0] / ZM, + "top": b[0][1] / ZM, "text": rec_text, "txt": t, + "bottom": b[-1][1] / ZM, + "page_number": pagenum} for b, t, rec_text in bxs if b[0][0] <= b[1][0] and b[0][1] <= b[-1][1]], + self.mean_height[-1] / 3 + ) + for b in bxs: + del b["txt"] + bxs = [b for b in bxs if b["text"]] + if self.mean_height[-1] == 0: + self.mean_height[-1] = np.median([b["bottom"] - b["top"] + for b in bxs]) + self.boxes.append(bxs) + + + + def _layouts_rec(self, ZM, drop=True): + assert len(self.page_images) == len(self.boxes) + self.boxes, self.page_layout = self.layouter( + self.page_images, self.boxes, ZM, drop=drop) + # cumlative Y + for i in range(len(self.boxes)): + self.boxes[i]["top"] += \ + self.page_cum_height[self.boxes[i]["page_number"] - 1] + self.boxes[i]["bottom"] += \ + self.page_cum_height[self.boxes[i]["page_number"] - 1] + + def _text_merge(self): + # merge adjusted boxes + bxs = self.boxes + + def end_with(b, txt): + txt = txt.strip() + tt = b.get("text", "").strip() + return tt and tt.find(txt) == len(tt) - len(txt) + + def start_with(b, txts): + tt = b.get("text", "").strip() + return tt and any([tt.find(t.strip()) == 0 for t in txts]) + + # horizontally merge adjacent box with the same layout + i = 0 + while i < len(bxs) - 1: + b = bxs[i] + b_ = bxs[i + 1] + if b.get("layoutno", "0") != b_.get("layoutno", "1") or b.get("layout_type", "") in ["table", "figure", + "equation"]: + i += 1 + continue + if abs(self._y_dis(b, b_) + ) < self.mean_height[bxs[i]["page_number"] - 1] / 3: + # merge + if b_["x0"] > b["x0"]: + bxs[i]["x1"] = b_["x1"] + bxs[i]["top"] = (b["top"] + b_["top"]) / 2 + bxs[i]["bottom"] = (b["bottom"] + b_["bottom"]) / 2 + bxs[i]["text"] += b_["text"] + bxs.pop(i + 1) + else: + bxs[i + 1] = b + bxs[i] = b_ + b = bxs[i] + b_ = bxs[i + 1] + bxs[i]["x1"] = b_["x1"] + bxs[i]["top"] = (b["top"] + b_["top"]) / 2 + bxs[i]["bottom"] = (b["bottom"] + b_["bottom"]) / 2 + bxs[i]["text"] += b_["text"] + bxs.pop(i + 1) + continue + i += 1 + continue + + dis_thr = 1 + dis = b["x1"] - b_["x0"] + if b.get("layout_type", "") != "text" or b_.get( + "layout_type", "") != "text": + if end_with(b, ",") or start_with(b_, "(,"): + dis_thr = -8 + else: + i += 1 + continue + + if abs(self._y_dis(b, b_)) < self.mean_height[bxs[i]["page_number"] - 1] / 5 \ + and dis >= dis_thr and b["x1"] < b_["x1"]: + # merge + bxs[i]["x1"] = b_["x1"] + bxs[i]["top"] = (b["top"] + b_["top"]) / 2 + bxs[i]["bottom"] = (b["bottom"] + b_["bottom"]) / 2 + bxs[i]["text"] += b_["text"] + bxs.pop(i + 1) + continue + i += 1 + self.boxes = bxs + + def _naive_vertical_merge(self): + bxs = Recognizer.sort_Y_firstly( + self.boxes, np.median( + self.mean_height) / 3) + i = 0 + while i + 1 < len(bxs): + b = bxs[i] + b_ = bxs[i + 1] + # if b["page_number"] < b_["page_number"] and re.match( + # r"[0-9 •一—-]+$", b["text"]): + # bxs.pop(i) + # continue + if b["page_number"] < b_["page_number"]: + # bxs.pop(i) + i += 1 + continue + if not b["text"].strip(): + bxs.pop(i) + continue + concatting_feats = [ + b["text"].strip()[-1] in ",;:'\",、‘“;:-", + len(b["text"].strip()) > 1 and b["text"].strip( + )[-2] in ",;:'\",‘“、;:", + b["text"].strip()[0] in "。;?!?”)),,、:", + ] + # features for not concating + feats = [ + b.get("layoutno", 0) != b_.get("layoutno", 0), + b["text"].strip()[-1] in "。?!?", + self.is_english and b["text"].strip()[-1] in ".!?", + b["page_number"] == b_["page_number"] and b_["top"] - + b["bottom"] > self.mean_height[b["page_number"] - 1] * 1.5, + b["page_number"] < b_["page_number"] and abs( + b["x0"] - b_["x0"]) > self.mean_width[b["page_number"] - 1] * 4, + ] + # split features + detach_feats = [b["x1"] < b_["x0"], + b["x0"] > b_["x1"]] + if (any(feats) and not any(concatting_feats)) or any(detach_feats): + # print( + # b["text"], + # b_["text"], + # any(feats), + # any(concatting_feats), + # any(detach_feats)) + i += 1 + continue + # merge up and down + b["bottom"] = b_["bottom"] + b["text"] += b_["text"] + b["x0"] = min(b["x0"], b_["x0"]) + b["x1"] = max(b["x1"], b_["x1"]) + bxs.pop(i + 1) + self.boxes = bxs + + def _concat_downward(self, concat_between_pages=True): + blocks = {} + for sec in self.boxes: + pn = sec['page_number'] + if not sec.get('layoutno'): continue + sec_no = str(pn) + '-' + sec['layoutno'] + if sec_no not in blocks.keys(): + blocks[sec_no] = [sec] + else: + blocks[sec_no].append(sec) + boxes = [] + # for b in blocks: + for k, b in blocks.items(): + if len(b) == 1: + boxes.append(b[0]) + continue + t = b[0] + for c in b[1:]: + t["text"] = t["text"].strip() + c["text"] = c["text"].strip() + if not c["text"]: + continue + if t["text"] and re.match( + r"[0-9\.a-zA-Z]+$", t["text"][-1] + c["text"][-1]): + t["text"] += " " + if t["text"] and t['layout_type'] == 'content': + t["text"] += "\n" + t["text"] += c["text"] + t["x0"] = min(t["x0"], c["x0"]) + t["x1"] = max(t["x1"], c["x1"]) + t["page_number"] = min(t["page_number"], c["page_number"]) + t["bottom"] = c["bottom"] + if not t["layout_type"] \ + and c["layout_type"]: + t["layout_type"] = c["layout_type"] + boxes.append(t) + + self.boxes = Recognizer.sort_Y_firstly(boxes, 0) + # print(self.boxes, file=open('boxes3.txt', 'w')) + + def _filter_forpages(self): + if not self.boxes: + return + findit = False + i = 0 + while i < len(self.boxes): + if not re.match(r"(致谢|acknowledge)$", + re.sub(r"( | |\u3000)+", "", self.boxes[i]["text"].lower())): + i += 1 + continue + findit = True + eng = re.match( + r"[0-9a-zA-Z :'.-]{5,}", + self.boxes[i]["text"].strip()) + self.boxes.pop(i) + if i >= len(self.boxes): + break + prefix = self.boxes[i]["text"].strip()[:3] if not eng else " ".join( + self.boxes[i]["text"].strip().split(" ")[:2]) + while not prefix: + self.boxes.pop(i) + if i >= len(self.boxes): + break + prefix = self.boxes[i]["text"].strip()[:3] if not eng else " ".join( + self.boxes[i]["text"].strip().split(" ")[:2]) + self.boxes.pop(i) + if i >= len(self.boxes) or not prefix: + break + for j in range(i, min(i + 128, len(self.boxes))): + if not re.match(prefix, self.boxes[j]["text"]): + continue + for k in range(i, j): + self.boxes.pop(i) + break + if findit: + return + + page_dirty = [0] * len(self.page_images) + for b in self.boxes: + if re.search(r"(··|··|··)", b["text"]): + page_dirty[b["page_number"] - 1] += 1 + page_dirty = set([i + 1 for i, t in enumerate(page_dirty) if t > 3]) + if not page_dirty: + return + i = 0 + while i < len(self.boxes): + if self.boxes[i]["page_number"] in page_dirty: + self.boxes.pop(i) + continue + i += 1 + + def _merge_with_same_bullet(self): + i = 0 + while i + 1 < len(self.boxes): + b = self.boxes[i] + b_ = self.boxes[i + 1] + if not b["text"].strip(): + self.boxes.pop(i) + continue + if not b_["text"].strip(): + self.boxes.pop(i + 1) + continue + + if b["text"].strip()[0] != b_["text"].strip()[0] \ + or b["text"].strip()[0].lower() in set("qwertyuopasdfghjklzxcvbnm") \ + or huqie.is_chinese(b["text"].strip()[0]) \ + or b["top"] > b_["bottom"]: + i += 1 + continue + b_["text"] = b["text"] + "\n" + b_["text"] + b_["x0"] = min(b["x0"], b_["x0"]) + b_["x1"] = max(b["x1"], b_["x1"]) + b_["top"] = b["top"] + self.boxes.pop(i) + + def _extract_table_figure(self, need_image, ZM, + return_html, need_position,image_dir): + tables = {} + figures = {} + captions = {} + merged_captions = {} + # extract figure and table boxes + i = 0 + lst_lout_no = "" + nomerge_lout_no = [] + while i < len(self.boxes): + if "layoutno" not in self.boxes[i]: + i += 1 + continue + lout_no = str(self.boxes[i]["page_number"]) + \ + "-" + str(self.boxes[i]["layoutno"]) + if TableStructureRecognizer_LORE.is_caption(self.boxes[i]) or self.boxes[i]["layout_type"] == 'caption': + # print(self.boxes[i]['text']) + nomerge_lout_no.append(lst_lout_no) + if lout_no not in captions: + captions[lout_no] = [] + captions[lout_no].append(self.boxes[i]) + self.boxes.pop(i) + continue + if self.boxes[i]["layout_type"] == "table": + if re.match(r"(数据|资料|图表)*来源[:: ]", self.boxes[i]["text"]): + self.boxes.pop(i) + continue + if lout_no not in tables: + tables[lout_no] = [] + tables[lout_no].append(self.boxes[i]) + self.boxes.pop(i) + lst_lout_no = lout_no + continue + if need_image and self.boxes[i]["layout_type"] == "figure": + if re.match(r"(数据|资料|图表)*来源[:: ]", self.boxes[i]["text"]): + self.boxes.pop(i) + continue + if lout_no not in figures: + figures[lout_no] = [] + figures[lout_no].append(self.boxes[i]) + self.boxes.pop(i) + lst_lout_no = lout_no + continue + i += 1 + # merge table on different pages + nomerge_lout_no = set(nomerge_lout_no) + tbls = sorted([(k, bxs) for k, bxs in tables.items()], + key=lambda x: (x[1][0]["top"], x[1][0]["x0"])) + i = len(tbls) - 1 + while i - 1 >= 0: + k0, bxs0 = tbls[i - 1] + k, bxs = tbls[i] + i -= 1 + if k0 in nomerge_lout_no: + continue + if bxs[0]["page_number"] == bxs0[0]["page_number"]: + continue + if bxs[0]["page_number"] - bxs0[0]["page_number"] > 1: + continue + mh = self.mean_height[bxs[0]["page_number"] - 1] + if self._y_dis(bxs0[-1], bxs[0]) > mh * 23: + continue + tables[k0].extend(tables[k]) + del tables[k] + + def x_overlapped(a, b): + return not any([a["x1"] < b["x0"], a["x0"] > b["x1"]]) + for k, v in captions.items(): + txt = '' + x0 = min([b['x0'] for b in captions[k]]) + x1 = max([b['x1'] for b in captions[k]]) + top = min([b['top'] for b in captions[k]]) + bottom = max([b['bottom'] for b in captions[k]]) + v = sorted(v, key=lambda x: x['top']) + i = 0 + while i < len(v): + txt += v[i]['text'] + i += 1 + merged_captions[k] = {'x0': x0, 'x1': x1, 'top': top, 'text': txt, 'bottom': bottom, + 'page_number': int(k.split('-')[0]), 'layout_type': 'caption', + 'layoutno': '-'.join(k.split('-')[1:])} + + # find captions and pop out + for ck, cv in captions.items(): + caption = captions[ck] + # mh = self.mean_height[c["page_number"]-1] + # find the nearest layouts + def nearest(tbls): + minks, minvs = [], [] + nonlocal caption + mink = "" + minv = 1000000000 + for k, bxs in tbls.items(): + if k.find('equation') >=0: + continue + for b in bxs: + if b.get("layout_type", "").find("caption") >= 0: + continue + for c in caption: + if b['page_number'] != c['page_number']: + continue + y_dis = self._y_dis(c, b) + x_dis = self._x_dis( + c, b) if not x_overlapped( + c, b) else 0 + dis = y_dis * y_dis + x_dis * x_dis + if dis < minv: + minv = dis + mink = k + minvs.append(minv) + minks.append(mink) + if minvs: + mink = max(minks, key=minks.count) + minv = np.mean([minvs[i] for i in range(len(minvs)) if minks[i] == mink]) + mink2 = minks[minvs.index(min(minvs))] + minv2 = np.mean([minvs[i] for i in range(len(minvs)) if minks[i] == mink2]) + if mink != mink2 and minv > minv2: + mink = mink2 + minv = minv2 + return mink, minv + tk, tv = nearest(tables) + fk, fv = nearest(figures) + # if min(tv, fv) > 2000: + # i += 1 + # continue + if tv < fv and tk: + tables[tk].insert(0, merged_captions[ck]) + logging.debug( + "TABLE:" + + self.boxes[i]["text"] + + "; Cap: " + + tk) + elif fk: + figures[fk].insert(0, merged_captions[ck]) + logging.debug( + "FIGURE:" + + self.boxes[i]["text"] + + "; Cap: " + + tk) + # self.boxes.pop(i) + + res = [] + positions = [] + + def cropout(bxs, ltype, poss): + nonlocal ZM + pn = set([b["page_number"] - 1 for b in bxs]) + if len(pn) < 2: + pn = list(pn)[0] + ht = self.page_cum_height[pn] + b = { + "x0": np.min([b["x0"] for b in bxs if b['layout_type'] != 'caption']), + "top": np.min([b["top"] for b in bxs if b['layout_type'] != 'caption']) - ht, + "x1": np.max([b["x1"] for b in bxs if b['layout_type'] != 'caption']), + "bottom": np.max([b["bottom"] for b in bxs if b['layout_type'] != 'caption']) - ht + } + louts = [l for l in self.page_layout[pn] if l["type"] == ltype] + ii = Recognizer.find_overlapped(b, louts, naive=True) + if ii is not None: + b = louts[ii] + else: + logging.warn( + f"Missing layout match: {pn + 1},%s" % + (bxs[0].get( + "layoutno", ""))) + + left, top, right, bott = b["x0"], b["top"], b["x1"], b["bottom"] + poss.append((pn + self.page_from, left, right, top, bott)) + return self.page_images[pn] \ + .crop((left * ZM, top * ZM, + right * ZM, bott * ZM)) + pn = {} + for b in bxs: + p = b["page_number"] - 1 + if p not in pn: + pn[p] = [] + pn[p].append(b) + pn = sorted(pn.items(), key=lambda x: x[0]) + imgs = [cropout(arr, ltype, poss) for p, arr in pn] + pic = Image.new("RGB", + (int(np.max([i.size[0] for i in imgs])), + int(np.sum([m.size[1] for m in imgs]))), + (245, 245, 245)) + height = 0 + for img in imgs: + pic.paste(img, (0, int(height))) + height += img.size[1] + return pic + + # crop figure out and add caption + for k, bxs in figures.items(): + caption = ''.join([b["text"] for b in bxs if b['layout_type'] == 'caption']) + # txt = "\n".join([b["text"] for b in bxs]) + # if not txt: + # continue + + poss = [] + img = cropout( + bxs, + "figure", poss) + img.save('{}/{}.jpg'.format(image_dir,k)) + res.append( + ( + # img, + caption, + k)) + positions.append(poss) + for k, bxs in tables.items(): + if not bxs: + continue + bxs = Recognizer.sort_Y_firstly(bxs, np.mean( + [(b["bottom"] - b["top"]) / 2 for b in bxs])) + poss = [] + img = cropout(bxs, "table", poss) + pn = list(set([b["page_number"] - 1 for b in bxs]))[0] + res.append(( + # img, self.tbl_det.construct_table(bxs, img, html=return_html, is_english=self.is_english))) + self.tbl_det.construct_table(bxs, img, poss[0][1:], self.page_cum_height[pn], html=return_html, is_english=self.is_english), + k)) + # img.save('{}.jpg'.format(k)) + positions.append(poss) + + assert len(positions) == len(res) + + if need_position: + return list(zip(res, positions)) + return res + + + + def proj_match(self, line): + if len(line) <= 2: + return + if re.match(r"[0-9 ().,%%+/-]+$", line): + return False + for p, j in [ + (r"第[零一二三四五六七八九十百]+章", 1), + (r"第[零一二三四五六七八九十百]+[条节]", 2), + (r"[零一二三四五六七八九十百]+[、  ]", 3), + (r"[\((][零一二三四五六七八九十百]+[)\)]", 4), + (r"[0-9]+(、|\.[  ]|\.[^0-9])", 5), + (r"[0-9]+\.[0-9]+(、|[.  ]|[^0-9])", 6), + (r"[0-9]+\.[0-9]+\.[0-9]+(、|[  ]|[^0-9])", 7), + (r"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+(、|[  ]|[^0-9])", 8), + (r".{,48}[::??]$", 9), + (r"[0-9]+)", 10), + (r"[\((][0-9]+[)\)]", 11), + (r"[零一二三四五六七八九十百]+是", 12), + (r"[⚫•➢✓]", 12) + ]: + if re.match(p, line): + return j + return + + def _line_tag(self, bx, ZM): + pn = [bx["page_number"]] + top = bx["top"] - self.page_cum_height[pn[0] - 1] + bott = bx["bottom"] - self.page_cum_height[pn[0] - 1] + while bott * ZM > self.page_images[pn[-1] - 1].size[1]: + bott -= self.page_images[pn[-1] - 1].size[1] / ZM + pn.append(pn[-1] + 1) + + return "@@{}\t{:.1f}\t{:.1f}\t{:.1f}\t{:.1f}##" \ + .format("-".join([str(p) for p in pn]), + bx["x0"], bx["x1"], top, bott) + + def __filterout_scraps(self, boxes, ZM): + + def width(b): + return b["x1"] - b["x0"] + + def height(b): + return b["bottom"] - b["top"] + + def usefull(b): + if b.get("layout_type"): + return True + if width( + b) > self.page_images[b["page_number"] - 1].size[0] / ZM / 3: + return True + if b["bottom"] - b["top"] > self.mean_height[b["page_number"] - 1]: + return True + return False + + res = [] + while boxes: + lines = [] + widths = [] + pw = self.page_images[boxes[0]["page_number"] - 1].size[0] / ZM + mh = self.mean_height[boxes[0]["page_number"] - 1] + mj = self.proj_match( + boxes[0]["text"]) or boxes[0].get( + "layout_type", + "") == "title" + + def dfs(line, st): + nonlocal mh, pw, lines, widths + lines.append(line) + widths.append(width(line)) + width_mean = np.mean(widths) + mmj = self.proj_match( + line["text"]) or line.get( + "layout_type", + "") == "title" + for i in range(st + 1, min(st + 20, len(boxes))): + if (boxes[i]["page_number"] - line["page_number"]) > 0: + break + if not mmj and self._y_dis( + line, boxes[i]) >= 3 * mh and height(line) < 1.5 * mh: + break + + if not usefull(boxes[i]): + continue + if mmj or \ + (self._x_dis(boxes[i], line) < pw / 10): \ + # and abs(width(boxes[i])-width_mean)/max(width(boxes[i]),width_mean)<0.5): + # concat following + dfs(boxes[i], i) + boxes.pop(i) + break + + try: + if usefull(boxes[0]): + dfs(boxes[0], 0) + else: + logging.debug("WASTE: " + boxes[0]["text"]) + except Exception as e: + pass + boxes.pop(0) + mw = np.mean(widths) + if mj or mw / pw >= 0.35 or mw > 200: + res.append( + "\n".join([c["text"] + self._line_tag(c, ZM) for c in lines])) + else: + logging.debug("REMOVED: " + + "<<".join([c["text"] for c in lines])) + + return "\n\n".join(res) + + @staticmethod + def total_page_number(fnm, binary=None): + try: + pdf = pdfplumber.open( + fnm) if not binary else pdfplumber.open(BytesIO(binary)) + return len(pdf.pages) + except Exception as e: + pdf = fitz.open(fnm) if not binary else fitz.open( + stream=fnm, filetype="pdf") + return len(pdf) + + def page_ocr(self,page,zoomin): + blocks = page.get_text( + "dict", flags=0, + )["blocks"] + ocr_res = [] + for b in blocks: + for line in b["lines"]: + line_text = '' + line_bbox_lst = [[],[],[],[]] + for item in line['spans']: + line_text += item['text'] + line_bbox_lst[0].append(item['bbox'][0]*zoomin) + line_bbox_lst[1].append(item['bbox'][1]*zoomin) + line_bbox_lst[2].append(item['bbox'][2]*zoomin) + line_bbox_lst[3].append(item['bbox'][3]*zoomin) + line_bbox = [min(line_bbox_lst[0]),min(line_bbox_lst[1]),max(line_bbox_lst[2]),max(line_bbox_lst[3])] + four_point_bbox = [[line_bbox[0],line_bbox[1]],[line_bbox[2],line_bbox[1]], + [line_bbox[2],line_bbox[3]],[line_bbox[0],line_bbox[3]]] + ocr_res.append([four_point_bbox,line_text,1]) + return ocr_res + + + def __images__(self, fnm, zoomin=3, page_from=0, + page_to=299, callback=None): + self.lefted_chars = [] + self.mean_height = [] + self.mean_width = [] + self.boxes = [] + self.garbages = {} + self.page_cum_height = [0] + self.page_layout = [] + self.page_from = page_from + self.pdf = fitz.open(fnm) if isinstance( + fnm, str) else fitz.open( + stream=fnm, filetype="pdf") + self.page_images = [] + self.page_chars = [] + self.ocr_res = [] + mat = fitz.Matrix(zoomin, zoomin) + self.total_page = len(self.pdf) + for i, page in enumerate(self.pdf): + if i < page_from: + continue + if i >= page_to: + break + pix = page.get_pixmap(matrix=mat) + img = Image.frombytes("RGB", [pix.width, pix.height], + pix.samples) + self.page_images.append(img) + self.page_chars.append([]) + page_ocr_res = self.page_ocr(page,zoomin) + self.ocr_res.append(page_ocr_res) + + + self.outlines = [] + try: + self.pdf = pdf2_read(fnm if isinstance(fnm, str) else BytesIO(fnm)) + outlines = self.pdf.outline + + def dfs(arr, depth): + for a in arr: + if isinstance(a, dict): + self.outlines.append((a["/Title"], depth)) + continue + dfs(a, depth + 1) + dfs(outlines, 0) + except Exception as e: + logging.warning(f"Outlines exception: {e}") + if not self.outlines: + logging.warning(f"Miss outlines") + + logging.info("Images converted.") + self.is_english = [re.search(r"[a-zA-Z0-9,/¸;:'\[\]\(\)!@#$%^&*\"?<>._-]{30,}", "".join( + random.choices([c["text"] for c in self.page_chars[i]], k=min(100, len(self.page_chars[i]))))) for i in + range(len(self.page_chars))] + if sum([1 if e else 0 for e in self.is_english]) > len( + self.page_images) / 2: + self.is_english = True + else: + self.is_english = False + + debug_logger.info("Start OCR!") + for i, img in tqdm(enumerate(self.page_images)): + chars = self.page_chars[i] if not self.is_english else [] + self.mean_height.append( + np.median(sorted([c["height"] for c in chars])) if chars else 0 + ) + self.mean_width.append( + np.median(sorted([c["width"] for c in chars])) if chars else 8 + ) + self.page_cum_height.append(img.size[1] / zoomin) + j = 0 + while j + 1 < len(chars): + if chars[j]["text"] and chars[j + 1]["text"] \ + and re.match(r"[0-9a-zA-Z,.:;!%]+", chars[j]["text"] + chars[j + 1]["text"]) \ + and chars[j + 1]["x0"] - chars[j]["x1"] >= min(chars[j + 1]["width"], + chars[j]["width"]) / 2: + chars[j]["text"] += " " + j += 1 + # self.__ocr(i + 1, img, chars, zoomin) + self.__ocr_pdf(i+1, self.ocr_res[i], zoomin) + if callback: + callback(prog=(i + 1) * 0.6 / len(self.page_images), msg="") + + if not self.is_english and not any( + [c for c in self.page_chars]) and self.boxes: + bxes = [b for bxs in self.boxes for b in bxs] + self.is_english = re.search(r"[\na-zA-Z0-9,/¸;:'\[\]\(\)!@#$%^&*\"?<>._-]{30,}", + "".join([b["text"] for b in random.choices(bxes, k=min(30, len(bxes)))])) + + logging.info("Is it English:", self.is_english) + + self.page_cum_height = np.cumsum(self.page_cum_height) + assert len(self.page_cum_height) == len(self.page_images) + 1 + + def __call__(self, fnm, need_image=True, zoomin=3, return_html=False): + self.__images__(fnm, zoomin) + self._layouts_rec(zoomin) + self._table_transformer_job(zoomin) + self._text_merge() + self._concat_downward() + self._filter_forpages() + tbls = self._extract_table_figure( + need_image, zoomin, return_html, False) + return self.__filterout_scraps(deepcopy(self.boxes), zoomin), tbls + + def remove_tag(self, txt): + return re.sub(r"@@[\t0-9.-]+?##", "", txt) + + def crop(self, text, ZM=3, need_position=False): + imgs = [] + poss = [] + for tag in re.findall(r"@@[0-9-]+\t[0-9.\t]+##", text): + pn, left, right, top, bottom = tag.strip( + "#").strip("@").split("\t") + left, right, top, bottom = float(left), float( + right), float(top), float(bottom) + poss.append(([int(p) - 1 for p in pn.split("-")], + left, right, top, bottom)) + if not poss: + if need_position: + return None, None + return + + max_width = max( + np.max([right - left for (_, left, right, _, _) in poss]), 6) + GAP = 6 + pos = poss[0] + poss.insert(0, ([pos[0][0]], pos[1], pos[2], max( + 0, pos[3] - 120), max(pos[3] - GAP, 0))) + pos = poss[-1] + poss.append(([pos[0][-1]], pos[1], pos[2], min(self.page_images[pos[0][-1]].size[1] / ZM, pos[4] + GAP), + min(self.page_images[pos[0][-1]].size[1] / ZM, pos[4] + 120))) + + positions = [] + for ii, (pns, left, right, top, bottom) in enumerate(poss): + right = left + max_width + bottom *= ZM + for pn in pns[1:]: + bottom += self.page_images[pn - 1].size[1] + imgs.append( + self.page_images[pns[0]].crop((left * ZM, top * ZM, + right * + ZM, min( + bottom, self.page_images[pns[0]].size[1]) + )) + ) + if 0 < ii < len(poss) - 1: + positions.append((pns[0] + self.page_from, left, right, top, min( + bottom, self.page_images[pns[0]].size[1]) / ZM)) + bottom -= self.page_images[pns[0]].size[1] + for pn in pns[1:]: + imgs.append( + self.page_images[pn].crop((left * ZM, 0, + right * ZM, + min(bottom, + self.page_images[pn].size[1]) + )) + ) + if 0 < ii < len(poss) - 1: + positions.append((pn + self.page_from, left, right, 0, min( + bottom, self.page_images[pn].size[1]) / ZM)) + bottom -= self.page_images[pn].size[1] + + if not imgs: + if need_position: + return None, None + return + height = 0 + for img in imgs: + height += img.size[1] + GAP + height = int(height) + width = int(np.max([i.size[0] for i in imgs])) + pic = Image.new("RGB", + (width, height), + (245, 245, 245)) + height = 0 + for ii, img in enumerate(imgs): + if ii == 0 or ii + 1 == len(imgs): + img = img.convert('RGBA') + overlay = Image.new('RGBA', img.size, (0, 0, 0, 0)) + overlay.putalpha(128) + img = Image.alpha_composite(img, overlay).convert("RGB") + pic.paste(img, (0, int(height))) + height += img.size[1] + GAP + + if need_position: + return pic, positions + return pic + + def get_position(self, bx, ZM): + poss = [] + pn = bx["page_number"] + top = bx["top"] - self.page_cum_height[pn - 1] + bott = bx["bottom"] - self.page_cum_height[pn - 1] + poss.append((pn, bx["x0"], bx["x1"], top, min( + bott, self.page_images[pn - 1].size[1] / ZM))) + while bott * ZM > self.page_images[pn - 1].size[1]: + bott -= self.page_images[pn - 1].size[1] / ZM + top = 0 + pn += 1 + poss.append((pn, bx["x0"], bx["x1"], top, min( + bott, self.page_images[pn - 1].size[1] / ZM))) + return poss + + + + + +class PlainParser(object): + def __call__(self, filename, from_page=0, to_page=100000, **kwargs): + self.outlines = [] + lines = [] + try: + self.pdf = pdf2_read( + filename if isinstance( + filename, str) else BytesIO(filename)) + for page in self.pdf.pages[from_page:to_page]: + lines.extend([t for t in page.extract_text().split("\n")]) + + outlines = self.pdf.outline + + def dfs(arr, depth): + for a in arr: + if isinstance(a, dict): + self.outlines.append((a["/Title"], depth)) + continue + dfs(a, depth + 1) + + dfs(outlines, 0) + except Exception as e: + logging.warning(f"Outlines exception: {e}") + if not self.outlines: + logging.warning(f"Miss outlines") + + return [(l, "") for l in lines], [] + + def crop(self, ck, need_position): + raise NotImplementedError + + @staticmethod + def remove_tag(txt): + raise NotImplementedError + + +if __name__ == "__main__": + pass diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/__init__.py new file mode 100644 index 00000000..658268d0 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/__init__.py @@ -0,0 +1,52 @@ +import datetime + + +def refactor(cv): + for n in ["raw_txt", "parser_name", "inference", "ori_text", "use_time", "time_stat"]: + if n in cv and cv[n] is not None: del cv[n] + cv["is_deleted"] = 0 + if "basic" not in cv: cv["basic"] = {} + if cv["basic"].get("photo2"): del cv["basic"]["photo2"] + + for n in ["education", "work", "certificate", "project", "language", "skill", "training"]: + if n not in cv or cv[n] is None: continue + if type(cv[n]) == type({}): cv[n] = [v for _, v in cv[n].items()] + if type(cv[n]) != type([]): + del cv[n] + continue + vv = [] + for v in cv[n]: + if "external" in v and v["external"] is not None: del v["external"] + vv.append(v) + cv[n] = {str(i): vv[i] for i in range(len(vv))} + + basics = [ + ("basic_salary_month", "salary_month"), + ("expect_annual_salary_from", "expect_annual_salary"), + ] + for n, t in basics: + if cv["basic"].get(n): + cv["basic"][t] = cv["basic"][n] + del cv["basic"][n] + + work = sorted([v for _, v in cv.get("work", {}).items()], key=lambda x: x.get("start_time", "")) + edu = sorted([v for _, v in cv.get("education", {}).items()], key=lambda x: x.get("start_time", "")) + + if work: + cv["basic"]["work_start_time"] = work[0].get("start_time", "") + cv["basic"]["management_experience"] = 'Y' if any( + [w.get("management_experience", '') == 'Y' for w in work]) else 'N' + cv["basic"]["annual_salary"] = work[-1].get("annual_salary_from", "0") + + for n in ["annual_salary_from", "annual_salary_to", "industry_name", "position_name", "responsibilities", + "corporation_type", "scale", "corporation_name"]: + cv["basic"][n] = work[-1].get(n, "") + + if edu: + for n in ["school_name", "discipline_name"]: + if n in edu[-1]: cv["basic"][n] = edu[-1][n] + + cv["basic"]["updated_at"] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + if "contact" not in cv: cv["contact"] = {} + if not cv["contact"].get("name"): cv["contact"]["name"] = cv["basic"].get("name", "") + return cv \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/corporations.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/corporations.py new file mode 100644 index 00000000..6b7b38a5 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/corporations.py @@ -0,0 +1,80 @@ +import re,json,os +import pandas as pd +from rag.nlp import huqie +from . import regions +current_file_path = os.path.dirname(os.path.abspath(__file__)) +GOODS = pd.read_csv(os.path.join(current_file_path, "res/corp_baike_len.csv"), sep="\t", header=0).fillna(0) +GOODS["cid"] = GOODS["cid"].astype(str) +GOODS = GOODS.set_index(["cid"]) +CORP_TKS = json.load(open(os.path.join(current_file_path, "res/corp.tks.freq.json"), "r")) +GOOD_CORP = json.load(open(os.path.join(current_file_path, "res/good_corp.json"), "r")) +CORP_TAG = json.load(open(os.path.join(current_file_path, "res/corp_tag.json"), "r")) + +def baike(cid, default_v=0): + global GOODS + try: + return GOODS.loc[str(cid), "len"] + except Exception as e: + pass + return default_v + + +def corpNorm(nm, add_region=True): + global CORP_TKS + if not nm or type(nm)!=type(""):return "" + nm = huqie.tradi2simp(huqie.strQ2B(nm)).lower() + nm = re.sub(r"&", "&", nm) + nm = re.sub(r"[\(\)()\+'\"\t \*\\【】-]+", " ", nm) + nm = re.sub(r"([—-]+.*| +co\..*|corp\..*| +inc\..*| +ltd.*)", "", nm, 10000, re.IGNORECASE) + nm = re.sub(r"(计算机|技术|(技术|科技|网络)*有限公司|公司|有限|研发中心|中国|总部)$", "", nm, 10000, re.IGNORECASE) + if not nm or (len(nm)<5 and not regions.isName(nm[0:2])):return nm + + tks = huqie.qie(nm).split(" ") + reg = [t for i,t in enumerate(tks) if regions.isName(t) and (t != "中国" or i > 0)] + nm = "" + for t in tks: + if regions.isName(t) or t in CORP_TKS:continue + if re.match(r"[0-9a-zA-Z\\,.]+", t) and re.match(r".*[0-9a-zA-Z\,.]+$", nm):nm += " " + nm += t + + r = re.search(r"^([^a-z0-9 \(\)&]{2,})[a-z ]{4,}$", nm.strip()) + if r:nm = r.group(1) + r = re.search(r"^([a-z ]{3,})[^a-z0-9 \(\)&]{2,}$", nm.strip()) + if r:nm = r.group(1) + return nm.strip() + (("" if not reg else "(%s)"%reg[0]) if add_region else "") + + +def rmNoise(n): + n = re.sub(r"[\((][^()()]+[))]", "", n) + n = re.sub(r"[,. &()()]+", "", n) + return n + +GOOD_CORP = set([corpNorm(rmNoise(c), False) for c in GOOD_CORP]) +for c,v in CORP_TAG.items(): + cc = corpNorm(rmNoise(c), False) + if not cc: print (c) +CORP_TAG = {corpNorm(rmNoise(c), False):v for c,v in CORP_TAG.items()} + +def is_good(nm): + global GOOD_CORP + if nm.find("外派")>=0:return False + nm = rmNoise(nm) + nm = corpNorm(nm, False) + for n in GOOD_CORP: + if re.match(r"[0-9a-zA-Z]+$", n): + if n == nm: return True + elif nm.find(n)>=0:return True + return False + +def corp_tag(nm): + global CORP_TAG + nm = rmNoise(nm) + nm = corpNorm(nm, False) + for n in CORP_TAG.keys(): + if re.match(r"[0-9a-zA-Z., ]+$", n): + if n == nm: return CORP_TAG[n] + elif nm.find(n)>=0: + if len(n)<3 and len(nm)/len(n)>=2:continue + return CORP_TAG[n] + return [] + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/degrees.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/degrees.py new file mode 100644 index 00000000..b9b15ef4 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/degrees.py @@ -0,0 +1,24 @@ +TBL = {"94":"EMBA", +"6":"MBA", +"95":"MPA", +"92":"专升本", +"4":"专科", +"90":"中专", +"91":"中技", +"86":"初中", +"3":"博士", +"10":"博士后", +"1":"本科", +"2":"硕士", +"87":"职高", +"89":"高中" +} + +TBL_ = {v:k for k,v in TBL.items()} + +def get_name(id): + return TBL.get(str(id), "") + +def get_id(nm): + if not nm:return "" + return TBL_.get(nm.upper().strip(), "") diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/industries.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/industries.py new file mode 100644 index 00000000..f0fb19c0 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/industries.py @@ -0,0 +1,692 @@ + +TBL = {"1":{"name":"IT/通信/电子","parent":"0"}, +"2":{"name":"互联网","parent":"0"}, +"3":{"name":"电子商务","parent":"2"}, +"4":{"name":"互联网金融","parent":"2"}, +"5":{"name":"网络游戏","parent":"2"}, +"6":{"name":"社交网络平台","parent":"2"}, +"7":{"name":"视频音乐","parent":"2"}, +"9":{"name":"安全","parent":"2"}, +"10":{"name":"云计算","parent":"2"}, +"12":{"name":"工具类客户端应用","parent":"2"}, +"13":{"name":"互联网广告","parent":"2"}, +"14":{"name":"企业互联网服务","parent":"2"}, +"16":{"name":"在线教育","parent":"2"}, +"17":{"name":"在线医疗","parent":"2"}, +"19":{"name":"B2B","parent":"3"}, +"20":{"name":"B2C","parent":"3"}, +"21":{"name":"C2C","parent":"3"}, +"22":{"name":"生活信息本地化","parent":"3"}, +"23":{"name":"在线旅游","parent":"2"}, +"24":{"name":"第三方支付","parent":"4"}, +"26":{"name":"客户端游戏","parent":"5"}, +"27":{"name":"网页游戏","parent":"5"}, +"28":{"name":"手机游戏","parent":"5"}, +"29":{"name":"微博","parent":"6"}, +"30":{"name":"社交网站","parent":"6"}, +"31":{"name":"在线视频","parent":"7"}, +"32":{"name":"在线音乐","parent":"7"}, +"35":{"name":"企业安全","parent":"9"}, +"36":{"name":"个人安全","parent":"9"}, +"37":{"name":"企业级云服务","parent":"10"}, +"38":{"name":"个人级云服务","parent":"10"}, +"43":{"name":"输入法","parent":"12"}, +"44":{"name":"浏览器","parent":"12"}, +"45":{"name":"词典","parent":"12"}, +"46":{"name":"播放器","parent":"12"}, +"47":{"name":"下载器","parent":"12"}, +"48":{"name":"IM","parent":"12"}, +"49":{"name":"广告服务","parent":"13"}, +"50":{"name":"第三方广告网络平台","parent":"13"}, +"51":{"name":"媒体代理","parent":"13"}, +"52":{"name":"创意代理","parent":"13"}, +"53":{"name":"IT-综合","parent":"1"}, +"71":{"name":"团购","parent":"3"}, +"72":{"name":"地图","parent":"2"}, +"73":{"name":"数据存储","parent":"2"}, +"414":{"name":"计算机软件","parent":"1"}, +"415":{"name":"计算机硬件","parent":"1"}, +"416":{"name":"计算机服务(系统、数据服务、维修)","parent":"1"}, +"417":{"name":"通信/电信/网络设备","parent":"1"}, +"418":{"name":"通信/电信运营、增值服务","parent":"1"}, +"419":{"name":"电子技术/半导体/集成电路","parent":"1"}, +"472":{"name":"P2P网贷","parent":"4"}, +"473":{"name":"互联网理财","parent":"4"}, +"474":{"name":"婚恋","parent":"6"}, +"476":{"name":"虚拟化","parent":"10"}, +"477":{"name":"邮箱","parent":"12"}, +"478":{"name":"商业智能","parent":"14"}, +"479":{"name":"企业建站","parent":"14"}, +"480":{"name":"安防","parent":"14"}, +"481":{"name":"网络营销","parent":"2"}, +"487":{"name":"智能终端","parent":"2"}, +"488":{"name":"移动互联网","parent":"2"}, +"489":{"name":"数字城市","parent":"2"}, +"490":{"name":"大数据","parent":"2"}, +"491":{"name":"互联网人力资源","parent":"2"}, +"492":{"name":"舆情监控","parent":"2"}, +"493":{"name":"移动营销","parent":"481"}, +"494":{"name":"微博营销","parent":"481"}, +"495":{"name":"精准营销","parent":"481"}, +"496":{"name":"海外营销","parent":"481"}, +"497":{"name":"微信营销","parent":"481"}, +"498":{"name":"智能手机","parent":"487"}, +"499":{"name":"可穿戴设备","parent":"487"}, +"500":{"name":"智能电视","parent":"487"}, +"501":{"name":"WAP","parent":"488"}, +"502":{"name":"物联网","parent":"489"}, +"503":{"name":"O2O","parent":"489"}, +"504":{"name":"数字出版","parent":"489"}, +"505":{"name":"搜索","parent":"2"}, +"506":{"name":"垂直搜索","parent":"505"}, +"507":{"name":"无线搜索","parent":"505"}, +"508":{"name":"网页搜索","parent":"505"}, +"509":{"name":"网址导航","parent":"2"}, +"510":{"name":"门户","parent":"2"}, +"511":{"name":"网络文学","parent":"2"}, +"512":{"name":"自媒体","parent":"2"}, +"513":{"name":"金融","parent":"0"}, +"514":{"name":"建筑与房地产","parent":"0"}, +"515":{"name":"专业服务","parent":"0"}, +"516":{"name":"教育培训","parent":"0"}, +"517":{"name":"文化传媒","parent":"0"}, +"518":{"name":"消费品","parent":"0"}, +"519":{"name":"工业","parent":"0"}, +"520":{"name":"交通物流","parent":"0"}, +"521":{"name":"贸易","parent":"0"}, +"522":{"name":"医药","parent":"0"}, +"523":{"name":"医疗器械","parent":"522"}, +"524":{"name":"保健品","parent":"518"}, +"525":{"name":"服务业","parent":"0"}, +"526":{"name":"能源/矿产/环保","parent":"0"}, +"527":{"name":"化工","parent":"0"}, +"528":{"name":"政府","parent":"0"}, +"529":{"name":"公共事业","parent":"0"}, +"530":{"name":"非盈利机构","parent":"0"}, +"531":{"name":"农业","parent":"1131"}, +"532":{"name":"林业","parent":"1131"}, +"533":{"name":"畜牧业","parent":"1131"}, +"534":{"name":"渔业","parent":"1131"}, +"535":{"name":"学术科研","parent":"0"}, +"536":{"name":"零售","parent":"0"}, +"537":{"name":"银行","parent":"513"}, +"538":{"name":"保险","parent":"513"}, +"539":{"name":"证券","parent":"513"}, +"540":{"name":"基金","parent":"513"}, +"541":{"name":"信托","parent":"513"}, +"542":{"name":"担保","parent":"513"}, +"543":{"name":"典当","parent":"513"}, +"544":{"name":"拍卖","parent":"513"}, +"545":{"name":"投资/融资","parent":"513"}, +"546":{"name":"期货","parent":"513"}, +"547":{"name":"房地产开发","parent":"514"}, +"548":{"name":"工程施工","parent":"514"}, +"549":{"name":"建筑设计","parent":"514"}, +"550":{"name":"房地产代理","parent":"514"}, +"551":{"name":"物业管理","parent":"514"}, +"552":{"name":"室内设计","parent":"514"}, +"553":{"name":"装修装潢","parent":"514"}, +"554":{"name":"市政工程","parent":"514"}, +"555":{"name":"工程造价","parent":"514"}, +"556":{"name":"工程监理","parent":"514"}, +"557":{"name":"环境工程","parent":"514"}, +"558":{"name":"园林景观","parent":"514"}, +"559":{"name":"法律","parent":"515"}, +"560":{"name":"人力资源","parent":"515"}, +"561":{"name":"会计","parent":"1125"}, +"562":{"name":"审计","parent":"515"}, +"563":{"name":"检测认证","parent":"515"}, +"565":{"name":"翻译","parent":"515"}, +"566":{"name":"中介","parent":"515"}, +"567":{"name":"咨询","parent":"515"}, +"568":{"name":"外包服务","parent":"515"}, +"569":{"name":"家教","parent":"516"}, +"570":{"name":"早教","parent":"516"}, +"571":{"name":"职业技能培训","parent":"516"}, +"572":{"name":"外语培训","parent":"516"}, +"573":{"name":"设计培训","parent":"516"}, +"574":{"name":"IT培训","parent":"516"}, +"575":{"name":"文艺体育培训","parent":"516"}, +"576":{"name":"学历教育","parent":"516"}, +"577":{"name":"管理培训","parent":"516"}, +"578":{"name":"民办基础教育","parent":"516"}, +"579":{"name":"广告","parent":"517"}, +"580":{"name":"媒体","parent":"517"}, +"581":{"name":"会展","parent":"517"}, +"582":{"name":"公关","parent":"517"}, +"583":{"name":"影视","parent":"517"}, +"584":{"name":"艺术","parent":"517"}, +"585":{"name":"文化传播","parent":"517"}, +"586":{"name":"娱乐","parent":"517"}, +"587":{"name":"体育","parent":"517"}, +"588":{"name":"出版","parent":"517"}, +"589":{"name":"休闲","parent":"517"}, +"590":{"name":"动漫","parent":"517"}, +"591":{"name":"市场推广","parent":"517"}, +"592":{"name":"市场研究","parent":"517"}, +"593":{"name":"食品","parent":"1129"}, +"594":{"name":"饮料","parent":"1129"}, +"595":{"name":"烟草","parent":"1129"}, +"596":{"name":"酒品","parent":"518"}, +"597":{"name":"服饰","parent":"518"}, +"598":{"name":"纺织","parent":"518"}, +"599":{"name":"化妆品","parent":"1129"}, +"600":{"name":"日用品","parent":"1129"}, +"601":{"name":"家电","parent":"518"}, +"602":{"name":"家具","parent":"518"}, +"603":{"name":"办公用品","parent":"518"}, +"604":{"name":"奢侈品","parent":"518"}, +"605":{"name":"珠宝","parent":"518"}, +"606":{"name":"数码产品","parent":"518"}, +"607":{"name":"玩具","parent":"518"}, +"608":{"name":"图书","parent":"518"}, +"609":{"name":"音像","parent":"518"}, +"610":{"name":"钟表","parent":"518"}, +"611":{"name":"箱包","parent":"518"}, +"612":{"name":"母婴","parent":"518"}, +"613":{"name":"营养保健","parent":"518"}, +"614":{"name":"户外用品","parent":"518"}, +"615":{"name":"健身器材","parent":"518"}, +"616":{"name":"乐器","parent":"518"}, +"617":{"name":"汽车用品","parent":"518"}, +"619":{"name":"厨具","parent":"518"}, +"620":{"name":"机械制造","parent":"519"}, +"621":{"name":"流体控制","parent":"519"}, +"622":{"name":"自动化控制","parent":"519"}, +"623":{"name":"仪器仪表","parent":"519"}, +"624":{"name":"航空/航天","parent":"519"}, +"625":{"name":"交通设施","parent":"519"}, +"626":{"name":"工业电子","parent":"519"}, +"627":{"name":"建材","parent":"519"}, +"628":{"name":"五金材料","parent":"519"}, +"629":{"name":"汽车","parent":"519"}, +"630":{"name":"印刷","parent":"519"}, +"631":{"name":"造纸","parent":"519"}, +"632":{"name":"包装","parent":"519"}, +"633":{"name":"原材料及加工","parent":"519"}, +"634":{"name":"物流","parent":"520"}, +"635":{"name":"仓储","parent":"520"}, +"636":{"name":"客运","parent":"520"}, +"637":{"name":"快递","parent":"520"}, +"638":{"name":"化学药","parent":"522"}, +"639":{"name":"中药","parent":"522"}, +"640":{"name":"生物制药","parent":"522"}, +"641":{"name":"兽药","parent":"522"}, +"642":{"name":"农药","parent":"522"}, +"643":{"name":"CRO","parent":"522"}, +"644":{"name":"消毒","parent":"522"}, +"645":{"name":"医药商业","parent":"522"}, +"646":{"name":"医疗服务","parent":"522"}, +"647":{"name":"医疗器械","parent":"523"}, +"648":{"name":"制药设备","parent":"523"}, +"649":{"name":"医用耗材","parent":"523"}, +"650":{"name":"手术器械","parent":"523"}, +"651":{"name":"保健器材","parent":"524"}, +"652":{"name":"性保健品","parent":"524"}, +"653":{"name":"医药保养","parent":"524"}, +"654":{"name":"医用保健","parent":"524"}, +"655":{"name":"酒店","parent":"525"}, +"656":{"name":"餐饮","parent":"525"}, +"657":{"name":"旅游","parent":"525"}, +"658":{"name":"生活服务","parent":"525"}, +"659":{"name":"保健服务","parent":"525"}, +"660":{"name":"运动健身","parent":"525"}, +"661":{"name":"家政服务","parent":"525"}, +"662":{"name":"婚庆服务","parent":"525"}, +"663":{"name":"租赁服务","parent":"525"}, +"664":{"name":"维修服务","parent":"525"}, +"665":{"name":"石油天然气","parent":"526"}, +"666":{"name":"电力","parent":"526"}, +"667":{"name":"新能源","parent":"526"}, +"668":{"name":"水利","parent":"526"}, +"669":{"name":"矿产","parent":"526"}, +"670":{"name":"采掘业","parent":"526"}, +"671":{"name":"冶炼","parent":"526"}, +"672":{"name":"环保","parent":"526"}, +"673":{"name":"无机化工原料","parent":"527"}, +"674":{"name":"有机化工原料","parent":"527"}, +"675":{"name":"精细化学品","parent":"527"}, +"676":{"name":"化工设备","parent":"527"}, +"677":{"name":"化工工程","parent":"527"}, +"678":{"name":"资产管理","parent":"513"}, +"679":{"name":"金融租赁","parent":"513"}, +"680":{"name":"征信及信评机构","parent":"513"}, +"681":{"name":"资产评估机构","parent":"513"}, +"683":{"name":"金融监管机构","parent":"513"}, +"684":{"name":"国际贸易","parent":"521"}, +"685":{"name":"海关","parent":"521"}, +"686":{"name":"购物中心","parent":"536"}, +"687":{"name":"超市","parent":"536"}, +"688":{"name":"便利店","parent":"536"}, +"689":{"name":"专卖店","parent":"536"}, +"690":{"name":"专业店","parent":"536"}, +"691":{"name":"百货店","parent":"536"}, +"692":{"name":"杂货店","parent":"536"}, +"693":{"name":"个人银行","parent":"537"}, +"695":{"name":"私人银行","parent":"537"}, +"696":{"name":"公司银行","parent":"537"}, +"697":{"name":"投资银行","parent":"537"}, +"698":{"name":"政策性银行","parent":"537"}, +"699":{"name":"中央银行","parent":"537"}, +"700":{"name":"人寿险","parent":"538"}, +"701":{"name":"财产险","parent":"538"}, +"702":{"name":"再保险","parent":"538"}, +"703":{"name":"养老险","parent":"538"}, +"704":{"name":"保险代理公司","parent":"538"}, +"705":{"name":"公募基金","parent":"540"}, +"707":{"name":"私募基金","parent":"540"}, +"708":{"name":"第三方理财","parent":"679"}, +"709":{"name":"资产管理公司","parent":"679"}, +"711":{"name":"房产中介","parent":"566"}, +"712":{"name":"职业中介","parent":"566"}, +"713":{"name":"婚姻中介","parent":"566"}, +"714":{"name":"战略咨询","parent":"567"}, +"715":{"name":"投资咨询","parent":"567"}, +"716":{"name":"心理咨询","parent":"567"}, +"717":{"name":"留学移民咨询","parent":"567"}, +"718":{"name":"工商注册代理","parent":"568"}, +"719":{"name":"商标专利代理","parent":"568"}, +"720":{"name":"财务代理","parent":"568"}, +"721":{"name":"工程机械","parent":"620"}, +"722":{"name":"农业机械","parent":"620"}, +"723":{"name":"海工设备","parent":"620"}, +"724":{"name":"包装机械","parent":"620"}, +"725":{"name":"印刷机械","parent":"620"}, +"726":{"name":"数控机床","parent":"620"}, +"727":{"name":"矿山机械","parent":"620"}, +"728":{"name":"水泵","parent":"621"}, +"729":{"name":"管道","parent":"621"}, +"730":{"name":"阀门","parent":"621"}, +"732":{"name":"压缩机","parent":"621"}, +"733":{"name":"集散控制系统","parent":"622"}, +"734":{"name":"远程控制","parent":"622"}, +"735":{"name":"液压系统","parent":"622"}, +"736":{"name":"楼宇智能化","parent":"622"}, +"737":{"name":"飞机制造","parent":"624"}, +"738":{"name":"航空公司","parent":"624"}, +"739":{"name":"发动机","parent":"624"}, +"740":{"name":"复合材料","parent":"624"}, +"741":{"name":"高铁","parent":"625"}, +"742":{"name":"地铁","parent":"625"}, +"743":{"name":"信号传输","parent":"625"}, +"745":{"name":"结构材料","parent":"627"}, +"746":{"name":"装饰材料","parent":"627"}, +"747":{"name":"专用材料","parent":"627"}, +"749":{"name":"经销商集团","parent":"629"}, +"750":{"name":"整车制造","parent":"629"}, +"751":{"name":"汽车零配件","parent":"629"}, +"752":{"name":"外型设计","parent":"629"}, +"753":{"name":"平版印刷","parent":"630"}, +"754":{"name":"凸版印刷","parent":"630"}, +"755":{"name":"凹版印刷","parent":"630"}, +"756":{"name":"孔版印刷","parent":"630"}, +"757":{"name":"印刷用纸","parent":"631"}, +"758":{"name":"书写、制图及复制用纸","parent":"631"}, +"759":{"name":"包装用纸","parent":"631"}, +"760":{"name":"生活、卫生及装饰用纸","parent":"631"}, +"761":{"name":"技术用纸","parent":"631"}, +"762":{"name":"加工纸原纸","parent":"631"}, +"763":{"name":"食品包装","parent":"632"}, +"764":{"name":"医药包装","parent":"632"}, +"765":{"name":"日化包装","parent":"632"}, +"766":{"name":"物流包装","parent":"632"}, +"767":{"name":"礼品包装","parent":"632"}, +"768":{"name":"电子五金包装","parent":"632"}, +"769":{"name":"汽车服务","parent":"525"}, +"770":{"name":"汽车保养","parent":"769"}, +"771":{"name":"租车","parent":"769"}, +"773":{"name":"出租车","parent":"769"}, +"774":{"name":"代驾","parent":"769"}, +"775":{"name":"发电","parent":"666"}, +"777":{"name":"输配电","parent":"666"}, +"779":{"name":"风电","parent":"667"}, +"780":{"name":"光伏/太阳能","parent":"667"}, +"781":{"name":"生物质发电","parent":"667"}, +"782":{"name":"煤化工","parent":"667"}, +"783":{"name":"垃圾发电","parent":"667"}, +"784":{"name":"核电","parent":"667"}, +"785":{"name":"能源矿产","parent":"669"}, +"786":{"name":"金属矿产","parent":"669"}, +"787":{"name":"非金属矿产","parent":"669"}, +"788":{"name":"水气矿产","parent":"669"}, +"789":{"name":"锅炉","parent":"775"}, +"790":{"name":"发电机","parent":"775"}, +"791":{"name":"汽轮机","parent":"775"}, +"792":{"name":"燃机","parent":"775"}, +"793":{"name":"冷却","parent":"775"}, +"794":{"name":"电力设计院","parent":"775"}, +"795":{"name":"高压输配电","parent":"777"}, +"796":{"name":"中压输配电","parent":"777"}, +"797":{"name":"低压输配电","parent":"777"}, +"798":{"name":"继电保护","parent":"777"}, +"799":{"name":"智能电网","parent":"777"}, +"800":{"name":"小学","parent":"516"}, +"801":{"name":"电动车","parent":"519"}, +"802":{"name":"皮具箱包","parent":"518"}, +"803":{"name":"医药制造","parent":"522"}, +"804":{"name":"电器销售","parent":"536"}, +"805":{"name":"塑料制品","parent":"527"}, +"806":{"name":"公益基金会","parent":"530"}, +"807":{"name":"美发服务","parent":"525"}, +"808":{"name":"农业养殖","parent":"531"}, +"809":{"name":"金融服务","parent":"513"}, +"810":{"name":"商业地产综合体","parent":"514"}, +"811":{"name":"美容服务","parent":"525"}, +"812":{"name":"灯饰","parent":"518"}, +"813":{"name":"油墨颜料产品","parent":"527"}, +"814":{"name":"眼镜制造","parent":"518"}, +"815":{"name":"农业生物技术","parent":"531"}, +"816":{"name":"体育用品","parent":"518"}, +"817":{"name":"保健用品","parent":"524"}, +"818":{"name":"化学化工产品","parent":"527"}, +"819":{"name":"饲料","parent":"531"}, +"821":{"name":"保安服务","parent":"525"}, +"822":{"name":"干细胞技术","parent":"522"}, +"824":{"name":"农药化肥","parent":"527"}, +"825":{"name":"卫生洁具","parent":"518"}, +"826":{"name":"体育器材、场馆","parent":"518"}, +"827":{"name":"饲料加工","parent":"531"}, +"828":{"name":"测绘服务","parent":"529"}, +"830":{"name":"金属船舶制造","parent":"519"}, +"831":{"name":"基因工程","parent":"522"}, +"832":{"name":"花卉服务","parent":"536"}, +"833":{"name":"农业种植","parent":"531"}, +"834":{"name":"皮革制品","parent":"518"}, +"835":{"name":"地理信息加工服务","parent":"529"}, +"836":{"name":"机器人","parent":"519"}, +"837":{"name":"礼品","parent":"518"}, +"838":{"name":"理发及美容服务","parent":"525"}, +"839":{"name":"其他清洁服务","parent":"525"}, +"840":{"name":"硅胶材料","parent":"527"}, +"841":{"name":"茶叶销售","parent":"518"}, +"842":{"name":"彩票活动","parent":"529"}, +"843":{"name":"化妆培训","parent":"516"}, +"844":{"name":"鞋业","parent":"518"}, +"845":{"name":"酒店用品","parent":"518"}, +"846":{"name":"复合材料","parent":"527"}, +"847":{"name":"房地产工程建设","parent":"548"}, +"848":{"name":"知识产权服务","parent":"559"}, +"849":{"name":"新型建材","parent":"627"}, +"850":{"name":"企业投资咨询","parent":"567"}, +"851":{"name":"含乳饮料和植物蛋白饮料制造","parent":"594"}, +"852":{"name":"汽车检测设备","parent":"629"}, +"853":{"name":"手机通讯器材","parent":"417"}, +"854":{"name":"环保材料","parent":"672"}, +"855":{"name":"交通设施","parent":"554"}, +"856":{"name":"电子器件","parent":"419"}, +"857":{"name":"啤酒","parent":"594"}, +"858":{"name":"生态旅游","parent":"657"}, +"859":{"name":"自动化设备","parent":"626"}, +"860":{"name":"软件开发","parent":"414"}, +"861":{"name":"葡萄酒销售","parent":"594"}, +"862":{"name":"钢材","parent":"633"}, +"863":{"name":"餐饮培训","parent":"656"}, +"864":{"name":"速冻食品","parent":"593"}, +"865":{"name":"空气环保","parent":"672"}, +"866":{"name":"互联网房地产经纪服务","parent":"550"}, +"867":{"name":"食品添加剂","parent":"593"}, +"868":{"name":"演艺传播","parent":"585"}, +"869":{"name":"信用卡","parent":"537"}, +"870":{"name":"报纸期刊广告","parent":"579"}, +"871":{"name":"摄影","parent":"525"}, +"872":{"name":"手机软件","parent":"414"}, +"873":{"name":"地坪建材","parent":"627"}, +"874":{"name":"企业管理咨询","parent":"567"}, +"875":{"name":"幼儿教育","parent":"570"}, +"876":{"name":"系统集成","parent":"416"}, +"877":{"name":"皮革服饰","parent":"597"}, +"878":{"name":"保健食品","parent":"593"}, +"879":{"name":"叉车","parent":"620"}, +"880":{"name":"厨卫电器","parent":"601"}, +"882":{"name":"地暖设备","parent":"627"}, +"883":{"name":"钢结构制造","parent":"548"}, +"884":{"name":"投影机","parent":"606"}, +"885":{"name":"啤酒销售","parent":"594"}, +"886":{"name":"度假村旅游","parent":"657"}, +"887":{"name":"电力元件设备","parent":"626"}, +"888":{"name":"管理软件","parent":"414"}, +"889":{"name":"轴承","parent":"628"}, +"890":{"name":"餐饮设备","parent":"656"}, +"891":{"name":"肉制品及副产品加工","parent":"593"}, +"892":{"name":"艺术收藏品投资交易","parent":"584"}, +"893":{"name":"净水器","parent":"601"}, +"894":{"name":"进口食品","parent":"593"}, +"895":{"name":"娱乐文化传播","parent":"585"}, +"896":{"name":"文化传播","parent":"585"}, +"897":{"name":"商旅传媒","parent":"580"}, +"898":{"name":"广告设计制作","parent":"579"}, +"899":{"name":"金属丝绳及其制品制造","parent":"627"}, +"900":{"name":"建筑涂料","parent":"627"}, +"901":{"name":"抵押贷款","parent":"543"}, +"902":{"name":"早教","parent":"570"}, +"903":{"name":"电影放映","parent":"583"}, +"904":{"name":"内衣服饰","parent":"597"}, +"905":{"name":"无线网络通信","parent":"418"}, +"906":{"name":"记忆卡","parent":"415"}, +"907":{"name":"女装服饰","parent":"597"}, +"908":{"name":"建筑机械","parent":"620"}, +"909":{"name":"制冷电器","parent":"601"}, +"910":{"name":"通信设备","parent":"417"}, +"911":{"name":"空调设备","parent":"601"}, +"912":{"name":"建筑装饰","parent":"553"}, +"913":{"name":"办公设备","parent":"603"}, +"916":{"name":"数据处理软件","parent":"414"}, +"917":{"name":"葡萄酒贸易","parent":"594"}, +"918":{"name":"通讯器材","parent":"417"}, +"919":{"name":"铜业","parent":"633"}, +"920":{"name":"食堂","parent":"656"}, +"921":{"name":"糖果零食","parent":"593"}, +"922":{"name":"文化艺术传播","parent":"584"}, +"923":{"name":"太阳能电器","parent":"601"}, +"924":{"name":"药品零售","parent":"645"}, +"925":{"name":"果蔬食品","parent":"593"}, +"926":{"name":"文化活动策划","parent":"585"}, +"928":{"name":"汽车广告","parent":"657"}, +"929":{"name":"条码设备","parent":"630"}, +"930":{"name":"建筑石材","parent":"627"}, +"931":{"name":"贵金属","parent":"545"}, +"932":{"name":"体育","parent":"660"}, +"933":{"name":"金融信息服务","parent":"414"}, +"934":{"name":"玻璃建材","parent":"627"}, +"935":{"name":"家教","parent":"569"}, +"936":{"name":"歌舞厅娱乐活动","parent":"586"}, +"937":{"name":"计算机服务器","parent":"415"}, +"938":{"name":"管道","parent":"627"}, +"939":{"name":"婴幼儿服饰","parent":"597"}, +"940":{"name":"热水器","parent":"601"}, +"941":{"name":"计算机及零部件制造","parent":"415"}, +"942":{"name":"钢铁贸易","parent":"633"}, +"944":{"name":"包装材料","parent":"632"}, +"945":{"name":"计算机办公设备","parent":"603"}, +"946":{"name":"白酒","parent":"594"}, +"948":{"name":"发动机","parent":"620"}, +"949":{"name":"快餐服务","parent":"656"}, +"950":{"name":"酒类销售","parent":"594"}, +"951":{"name":"电子产品、机电设备","parent":"626"}, +"952":{"name":"激光设备","parent":"626"}, +"953":{"name":"餐饮策划","parent":"656"}, +"954":{"name":"饮料、食品","parent":"594"}, +"955":{"name":"文化娱乐经纪","parent":"585"}, +"956":{"name":"天然气","parent":"665"}, +"957":{"name":"农副食品","parent":"593"}, +"958":{"name":"艺术表演","parent":"585"}, +"959":{"name":"石膏、水泥制品及类似制品制造","parent":"627"}, +"960":{"name":"橱柜","parent":"602"}, +"961":{"name":"管理培训","parent":"577"}, +"962":{"name":"男装服饰","parent":"597"}, +"963":{"name":"化肥制造","parent":"675"}, +"964":{"name":"童装服饰","parent":"597"}, +"965":{"name":"电源电池","parent":"626"}, +"966":{"name":"家电维修","parent":"664"}, +"967":{"name":"光电子器件","parent":"419"}, +"968":{"name":"旅行社服务","parent":"657"}, +"969":{"name":"电线、电缆制造","parent":"626"}, +"970":{"name":"软件开发、信息系统集成","parent":"419"}, +"971":{"name":"白酒制造","parent":"594"}, +"973":{"name":"甜品服务","parent":"656"}, +"974":{"name":"糕点、面包制造","parent":"593"}, +"975":{"name":"木工机械","parent":"620"}, +"976":{"name":"酒吧服务","parent":"656"}, +"977":{"name":"火腿肠","parent":"593"}, +"978":{"name":"广告策划推广","parent":"579"}, +"979":{"name":"新能源产品和生产装备制造","parent":"667"}, +"980":{"name":"调味品","parent":"593"}, +"981":{"name":"礼仪表演","parent":"585"}, +"982":{"name":"劳务派遣","parent":"560"}, +"983":{"name":"建材零售","parent":"627"}, +"984":{"name":"商品交易中心","parent":"545"}, +"985":{"name":"体育推广","parent":"585"}, +"986":{"name":"茶饮料及其他饮料制造","parent":"594"}, +"987":{"name":"金属建材","parent":"627"}, +"988":{"name":"职业技能培训","parent":"571"}, +"989":{"name":"网吧活动","parent":"586"}, +"990":{"name":"洗衣服务","parent":"658"}, +"991":{"name":"管道工程","parent":"554"}, +"992":{"name":"通信工程","parent":"417"}, +"993":{"name":"电子元器件","parent":"626"}, +"994":{"name":"电子设备","parent":"419"}, +"995":{"name":"茶馆服务","parent":"656"}, +"996":{"name":"旅游开发","parent":"657"}, +"997":{"name":"视频通讯","parent":"417"}, +"998":{"name":"白酒销售","parent":"594"}, +"1000":{"name":"咖啡馆服务","parent":"656"}, +"1001":{"name":"食品零售","parent":"593"}, +"1002":{"name":"健康疗养旅游","parent":"655"}, +"1003":{"name":"粮油食品","parent":"593"}, +"1004":{"name":"儿童教育影视","parent":"583"}, +"1005":{"name":"新能源发电","parent":"667"}, +"1006":{"name":"旅游策划","parent":"657"}, +"1007":{"name":"绘画","parent":"575"}, +"1008":{"name":"方便面及其他方便食品","parent":"593"}, +"1009":{"name":"房地产经纪","parent":"550"}, +"1010":{"name":"母婴家政","parent":"661"}, +"1011":{"name":"居家养老健康服务","parent":"661"}, +"1012":{"name":"文化艺术投资","parent":"545"}, +"1013":{"name":"运动健身","parent":"660"}, +"1014":{"name":"瓶(罐)装饮用水制造","parent":"594"}, +"1015":{"name":"金属门窗","parent":"627"}, +"1016":{"name":"机动车检测","parent":"563"}, +"1017":{"name":"货物运输","parent":"634"}, +"1018":{"name":"服饰专卖","parent":"690"}, +"1019":{"name":"酒店服装","parent":"597"}, +"1020":{"name":"通讯软件","parent":"417"}, +"1021":{"name":"消防工程","parent":"554"}, +"1022":{"name":"嵌入式电子系统","parent":"419"}, +"1023":{"name":"航空票务","parent":"636"}, +"1024":{"name":"电气设备","parent":"626"}, +"1025":{"name":"酒业贸易","parent":"594"}, +"1027":{"name":"其他饮料及冷饮服务","parent":"656"}, +"1028":{"name":"乳制品","parent":"593"}, +"1029":{"name":"新闻期刊出版","parent":"588"}, +"1030":{"name":"水污染治理","parent":"672"}, +"1031":{"name":"谷物食品","parent":"593"}, +"1032":{"name":"数字动漫设计制造服务","parent":"590"}, +"1033":{"name":"医院","parent":"646"}, +"1034":{"name":"旅游广告","parent":"657"}, +"1035":{"name":"办公家具","parent":"602"}, +"1036":{"name":"房地产营销策划","parent":"550"}, +"1037":{"name":"保洁家政","parent":"661"}, +"1038":{"name":"水泥制造","parent":"627"}, +"1039":{"name":"市场研究咨询","parent":"567"}, +"1040":{"name":"驾校","parent":"571"}, +"1041":{"name":"正餐服务","parent":"656"}, +"1043":{"name":"机动车燃油","parent":"665"}, +"1044":{"name":"食品","parent":"593"}, +"1045":{"name":"新能源汽车","parent":"629"}, +"1046":{"name":"手机无线网络推广","parent":"417"}, +"1047":{"name":"环保设备","parent":"672"}, +"1048":{"name":"通讯工程","parent":"418"}, +"1049":{"name":"半导体集成电路","parent":"419"}, +"1050":{"name":"航空服务","parent":"636"}, +"1051":{"name":"电机设备","parent":"626"}, +"1052":{"name":"档案软件","parent":"414"}, +"1053":{"name":"冷链物流服务","parent":"634"}, +"1054":{"name":"小吃服务","parent":"656"}, +"1055":{"name":"水产品加工","parent":"593"}, +"1056":{"name":"图书出版","parent":"588"}, +"1057":{"name":"固体废物治理","parent":"672"}, +"1059":{"name":"坚果食品","parent":"593"}, +"1060":{"name":"广告传媒","parent":"579"}, +"1061":{"name":"电梯","parent":"622"}, +"1062":{"name":"社区医疗与卫生院","parent":"646"}, +"1063":{"name":"广告、印刷包装","parent":"630"}, +"1064":{"name":"婚纱礼服","parent":"662"}, +"1065":{"name":"地毯","parent":"602"}, +"1066":{"name":"互联网物业","parent":"551"}, +"1067":{"name":"跨境电商","parent":"3"}, +"1068":{"name":"信息安全、系统集成","parent":"9"}, +"1069":{"name":"专用汽车制造","parent":"750"}, +"1070":{"name":"商品贸易","parent":"3"}, +"1071":{"name":"墙壁装饰材料","parent":"746"}, +"1072":{"name":"窗帘装饰材料","parent":"746"}, +"1073":{"name":"电子商务、本地生活服务","parent":"3"}, +"1075":{"name":"白酒电子商务","parent":"3"}, +"1076":{"name":"商品贸易、电子商务","parent":"3"}, +"1077":{"name":"木质装饰材料","parent":"746"}, +"1078":{"name":"电子商务、汽车电商交易平台","parent":"3"}, +"1079":{"name":"汽车轮胎","parent":"751"}, +"1080":{"name":"气体压缩机械制造","parent":"732"}, +"1081":{"name":"家装家具电子商务","parent":"3"}, +"1082":{"name":"化妆品电子商务","parent":"3"}, +"1083":{"name":"汽车销售","parent":"749"}, +"1084":{"name":"新闻资讯网站","parent":"510"}, +"1085":{"name":"母婴电商","parent":"3"}, +"1086":{"name":"电商商务、收藏品交易","parent":"3"}, +"1088":{"name":"电子商务、数码产品","parent":"3"}, +"1089":{"name":"二手车交易","parent":"749"}, +"1090":{"name":"游戏制作服务","parent":"5"}, +"1091":{"name":"母婴服务","parent":"510"}, +"1092":{"name":"家具电子商务","parent":"3"}, +"1093":{"name":"汽车配件电子商务","parent":"3"}, +"1094":{"name":"输配电设备","parent":"777"}, +"1095":{"name":"矿山设备","parent":"727"}, +"1096":{"name":"机床机械","parent":"726"}, +"1097":{"name":"农产品电商","parent":"3"}, +"1098":{"name":"陶瓷装饰材料","parent":"746"}, +"1099":{"name":"车载联网设备","parent":"487"}, +"1100":{"name":"汽车销售电子商务","parent":"3"}, +"1101":{"name":"石油设备","parent":"730"}, +"1102":{"name":"智能家居","parent":"487"}, +"1103":{"name":"散热器","parent":"751"}, +"1104":{"name":"电力工程","parent":"775"}, +"1105":{"name":"生鲜电商","parent":"3"}, +"1106":{"name":"互联网数据服务","parent":"490"}, +"1107":{"name":"房车、商务车销售","parent":"749"}, +"1108":{"name":"茶叶电子商务","parent":"3"}, +"1109":{"name":"酒类电子商务","parent":"3"}, +"1110":{"name":"阀门","parent":"730"}, +"1111":{"name":"食品电商","parent":"3"}, +"1112":{"name":"儿童摄影","parent":"871"}, +"1113":{"name":"广告摄影","parent":"871"}, +"1114":{"name":"婚纱摄影","parent":"871"}, +"1115":{"name":"模具制造","parent":"620"}, +"1116":{"name":"汽车模具","parent":"629"}, +"1117":{"name":"认证咨询","parent":"567"}, +"1118":{"name":"数字视觉制作服务","parent":"590"}, +"1119":{"name":"牙科及医疗器械","parent":"646"}, +"1120":{"name":"猎头招聘","parent":"560"}, +"1121":{"name":"家居","parent":"518"}, +"1122":{"name":"收藏品","parent":"518"}, +"1123":{"name":"首饰","parent":"518"}, +"1124":{"name":"工艺品","parent":"518"}, +"1125":{"name":"财务","parent":"515"}, +"1126":{"name":"税务","parent":"515"}, +"1127":{"name":"分类信息","parent":"2"}, +"1128":{"name":"宠物","parent":"0"}, +"1129":{"name":"快消品","parent":"518"}, +"1130":{"name":"人工智能","parent":"2"}, +"1131":{"name":"农/林/牧/渔","parent":"0"} +} + +def get_names(id): + id = str(id) + nms = [] + d = TBL.get(id) + if not d:return [] + nms.append(d["name"]) + p = get_names(d["parent"]) + if p: nms.extend(p) + return nms + +if __name__ == "__main__": + print(get_names("1119")) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/regions.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/regions.py new file mode 100644 index 00000000..54b655e6 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/regions.py @@ -0,0 +1,762 @@ +TBL = { +"2":{"name":"北京","parent":"1"}, +"3":{"name":"天津","parent":"1"}, +"4":{"name":"河北","parent":"1"}, +"5":{"name":"山西","parent":"1"}, +"6":{"name":"内蒙古","parent":"1"}, +"7":{"name":"辽宁","parent":"1"}, +"8":{"name":"吉林","parent":"1"}, +"9":{"name":"黑龙江","parent":"1"}, +"10":{"name":"上海","parent":"1"}, +"11":{"name":"江苏","parent":"1"}, +"12":{"name":"浙江","parent":"1"}, +"13":{"name":"安徽","parent":"1"}, +"14":{"name":"福建","parent":"1"}, +"15":{"name":"江西","parent":"1"}, +"16":{"name":"山东","parent":"1"}, +"17":{"name":"河南","parent":"1"}, +"18":{"name":"湖北","parent":"1"}, +"19":{"name":"湖南","parent":"1"}, +"20":{"name":"广东","parent":"1"}, +"21":{"name":"广西","parent":"1"}, +"22":{"name":"海南","parent":"1"}, +"23":{"name":"重庆","parent":"1"}, +"24":{"name":"四川","parent":"1"}, +"25":{"name":"贵州","parent":"1"}, +"26":{"name":"云南","parent":"1"}, +"27":{"name":"西藏","parent":"1"}, +"28":{"name":"陕西","parent":"1"}, +"29":{"name":"甘肃","parent":"1"}, +"30":{"name":"青海","parent":"1"}, +"31":{"name":"宁夏","parent":"1"}, +"32":{"name":"新疆","parent":"1"}, +"33":{"name":"北京市","parent":"2"}, +"34":{"name":"天津市","parent":"3"}, +"35":{"name":"石家庄市","parent":"4"}, +"36":{"name":"唐山市","parent":"4"}, +"37":{"name":"秦皇岛市","parent":"4"}, +"38":{"name":"邯郸市","parent":"4"}, +"39":{"name":"邢台市","parent":"4"}, +"40":{"name":"保定市","parent":"4"}, +"41":{"name":"张家口市","parent":"4"}, +"42":{"name":"承德市","parent":"4"}, +"43":{"name":"沧州市","parent":"4"}, +"44":{"name":"廊坊市","parent":"4"}, +"45":{"name":"衡水市","parent":"4"}, +"46":{"name":"太原市","parent":"5"}, +"47":{"name":"大同市","parent":"5"}, +"48":{"name":"阳泉市","parent":"5"}, +"49":{"name":"长治市","parent":"5"}, +"50":{"name":"晋城市","parent":"5"}, +"51":{"name":"朔州市","parent":"5"}, +"52":{"name":"晋中市","parent":"5"}, +"53":{"name":"运城市","parent":"5"}, +"54":{"name":"忻州市","parent":"5"}, +"55":{"name":"临汾市","parent":"5"}, +"56":{"name":"吕梁市","parent":"5"}, +"57":{"name":"呼和浩特市","parent":"6"}, +"58":{"name":"包头市","parent":"6"}, +"59":{"name":"乌海市","parent":"6"}, +"60":{"name":"赤峰市","parent":"6"}, +"61":{"name":"通辽市","parent":"6"}, +"62":{"name":"鄂尔多斯市","parent":"6"}, +"63":{"name":"呼伦贝尔市","parent":"6"}, +"64":{"name":"巴彦淖尔市","parent":"6"}, +"65":{"name":"乌兰察布市","parent":"6"}, +"66":{"name":"兴安盟","parent":"6"}, +"67":{"name":"锡林郭勒盟","parent":"6"}, +"68":{"name":"阿拉善盟","parent":"6"}, +"69":{"name":"沈阳市","parent":"7"}, +"70":{"name":"大连市","parent":"7"}, +"71":{"name":"鞍山市","parent":"7"}, +"72":{"name":"抚顺市","parent":"7"}, +"73":{"name":"本溪市","parent":"7"}, +"74":{"name":"丹东市","parent":"7"}, +"75":{"name":"锦州市","parent":"7"}, +"76":{"name":"营口市","parent":"7"}, +"77":{"name":"阜新市","parent":"7"}, +"78":{"name":"辽阳市","parent":"7"}, +"79":{"name":"盘锦市","parent":"7"}, +"80":{"name":"铁岭市","parent":"7"}, +"81":{"name":"朝阳市","parent":"7"}, +"82":{"name":"葫芦岛市","parent":"7"}, +"83":{"name":"长春市","parent":"8"}, +"84":{"name":"吉林市","parent":"8"}, +"85":{"name":"四平市","parent":"8"}, +"86":{"name":"辽源市","parent":"8"}, +"87":{"name":"通化市","parent":"8"}, +"88":{"name":"白山市","parent":"8"}, +"89":{"name":"松原市","parent":"8"}, +"90":{"name":"白城市","parent":"8"}, +"91":{"name":"延边朝鲜族自治州","parent":"8"}, +"92":{"name":"哈尔滨市","parent":"9"}, +"93":{"name":"齐齐哈尔市","parent":"9"}, +"94":{"name":"鸡西市","parent":"9"}, +"95":{"name":"鹤岗市","parent":"9"}, +"96":{"name":"双鸭山市","parent":"9"}, +"97":{"name":"大庆市","parent":"9"}, +"98":{"name":"伊春市","parent":"9"}, +"99":{"name":"佳木斯市","parent":"9"}, +"100":{"name":"七台河市","parent":"9"}, +"101":{"name":"牡丹江市","parent":"9"}, +"102":{"name":"黑河市","parent":"9"}, +"103":{"name":"绥化市","parent":"9"}, +"104":{"name":"大兴安岭地区","parent":"9"}, +"105":{"name":"上海市","parent":"10"}, +"106":{"name":"南京市","parent":"11"}, +"107":{"name":"无锡市","parent":"11"}, +"108":{"name":"徐州市","parent":"11"}, +"109":{"name":"常州市","parent":"11"}, +"110":{"name":"苏州市","parent":"11"}, +"111":{"name":"南通市","parent":"11"}, +"112":{"name":"连云港市","parent":"11"}, +"113":{"name":"淮安市","parent":"11"}, +"114":{"name":"盐城市","parent":"11"}, +"115":{"name":"扬州市","parent":"11"}, +"116":{"name":"镇江市","parent":"11"}, +"117":{"name":"泰州市","parent":"11"}, +"118":{"name":"宿迁市","parent":"11"}, +"119":{"name":"杭州市","parent":"12"}, +"120":{"name":"宁波市","parent":"12"}, +"121":{"name":"温州市","parent":"12"}, +"122":{"name":"嘉兴市","parent":"12"}, +"123":{"name":"湖州市","parent":"12"}, +"124":{"name":"绍兴市","parent":"12"}, +"125":{"name":"金华市","parent":"12"}, +"126":{"name":"衢州市","parent":"12"}, +"127":{"name":"舟山市","parent":"12"}, +"128":{"name":"台州市","parent":"12"}, +"129":{"name":"丽水市","parent":"12"}, +"130":{"name":"合肥市","parent":"13"}, +"131":{"name":"芜湖市","parent":"13"}, +"132":{"name":"蚌埠市","parent":"13"}, +"133":{"name":"淮南市","parent":"13"}, +"134":{"name":"马鞍山市","parent":"13"}, +"135":{"name":"淮北市","parent":"13"}, +"136":{"name":"铜陵市","parent":"13"}, +"137":{"name":"安庆市","parent":"13"}, +"138":{"name":"黄山市","parent":"13"}, +"139":{"name":"滁州市","parent":"13"}, +"140":{"name":"阜阳市","parent":"13"}, +"141":{"name":"宿州市","parent":"13"}, +"143":{"name":"六安市","parent":"13"}, +"144":{"name":"亳州市","parent":"13"}, +"145":{"name":"池州市","parent":"13"}, +"146":{"name":"宣城市","parent":"13"}, +"147":{"name":"福州市","parent":"14"}, +"148":{"name":"厦门市","parent":"14"}, +"149":{"name":"莆田市","parent":"14"}, +"150":{"name":"三明市","parent":"14"}, +"151":{"name":"泉州市","parent":"14"}, +"152":{"name":"漳州市","parent":"14"}, +"153":{"name":"南平市","parent":"14"}, +"154":{"name":"龙岩市","parent":"14"}, +"155":{"name":"宁德市","parent":"14"}, +"156":{"name":"南昌市","parent":"15"}, +"157":{"name":"景德镇市","parent":"15"}, +"158":{"name":"萍乡市","parent":"15"}, +"159":{"name":"九江市","parent":"15"}, +"160":{"name":"新余市","parent":"15"}, +"161":{"name":"鹰潭市","parent":"15"}, +"162":{"name":"赣州市","parent":"15"}, +"163":{"name":"吉安市","parent":"15"}, +"164":{"name":"宜春市","parent":"15"}, +"165":{"name":"抚州市","parent":"15"}, +"166":{"name":"上饶市","parent":"15"}, +"167":{"name":"济南市","parent":"16"}, +"168":{"name":"青岛市","parent":"16"}, +"169":{"name":"淄博市","parent":"16"}, +"170":{"name":"枣庄市","parent":"16"}, +"171":{"name":"东营市","parent":"16"}, +"172":{"name":"烟台市","parent":"16"}, +"173":{"name":"潍坊市","parent":"16"}, +"174":{"name":"济宁市","parent":"16"}, +"175":{"name":"泰安市","parent":"16"}, +"176":{"name":"威海市","parent":"16"}, +"177":{"name":"日照市","parent":"16"}, +"179":{"name":"临沂市","parent":"16"}, +"180":{"name":"德州市","parent":"16"}, +"181":{"name":"聊城市","parent":"16"}, +"182":{"name":"滨州市","parent":"16"}, +"183":{"name":"菏泽市","parent":"16"}, +"184":{"name":"郑州市","parent":"17"}, +"185":{"name":"开封市","parent":"17"}, +"186":{"name":"洛阳市","parent":"17"}, +"187":{"name":"平顶山市","parent":"17"}, +"188":{"name":"安阳市","parent":"17"}, +"189":{"name":"鹤壁市","parent":"17"}, +"190":{"name":"新乡市","parent":"17"}, +"191":{"name":"焦作市","parent":"17"}, +"192":{"name":"濮阳市","parent":"17"}, +"193":{"name":"许昌市","parent":"17"}, +"194":{"name":"漯河市","parent":"17"}, +"195":{"name":"三门峡市","parent":"17"}, +"196":{"name":"南阳市","parent":"17"}, +"197":{"name":"商丘市","parent":"17"}, +"198":{"name":"信阳市","parent":"17"}, +"199":{"name":"周口市","parent":"17"}, +"200":{"name":"驻马店市","parent":"17"}, +"201":{"name":"武汉市","parent":"18"}, +"202":{"name":"黄石市","parent":"18"}, +"203":{"name":"十堰市","parent":"18"}, +"204":{"name":"宜昌市","parent":"18"}, +"205":{"name":"襄阳市","parent":"18"}, +"206":{"name":"鄂州市","parent":"18"}, +"207":{"name":"荆门市","parent":"18"}, +"208":{"name":"孝感市","parent":"18"}, +"209":{"name":"荆州市","parent":"18"}, +"210":{"name":"黄冈市","parent":"18"}, +"211":{"name":"咸宁市","parent":"18"}, +"212":{"name":"随州市","parent":"18"}, +"213":{"name":"恩施土家族苗族自治州","parent":"18"}, +"215":{"name":"长沙市","parent":"19"}, +"216":{"name":"株洲市","parent":"19"}, +"217":{"name":"湘潭市","parent":"19"}, +"218":{"name":"衡阳市","parent":"19"}, +"219":{"name":"邵阳市","parent":"19"}, +"220":{"name":"岳阳市","parent":"19"}, +"221":{"name":"常德市","parent":"19"}, +"222":{"name":"张家界市","parent":"19"}, +"223":{"name":"益阳市","parent":"19"}, +"224":{"name":"郴州市","parent":"19"}, +"225":{"name":"永州市","parent":"19"}, +"226":{"name":"怀化市","parent":"19"}, +"227":{"name":"娄底市","parent":"19"}, +"228":{"name":"湘西土家族苗族自治州","parent":"19"}, +"229":{"name":"广州市","parent":"20"}, +"230":{"name":"韶关市","parent":"20"}, +"231":{"name":"深圳市","parent":"20"}, +"232":{"name":"珠海市","parent":"20"}, +"233":{"name":"汕头市","parent":"20"}, +"234":{"name":"佛山市","parent":"20"}, +"235":{"name":"江门市","parent":"20"}, +"236":{"name":"湛江市","parent":"20"}, +"237":{"name":"茂名市","parent":"20"}, +"238":{"name":"肇庆市","parent":"20"}, +"239":{"name":"惠州市","parent":"20"}, +"240":{"name":"梅州市","parent":"20"}, +"241":{"name":"汕尾市","parent":"20"}, +"242":{"name":"河源市","parent":"20"}, +"243":{"name":"阳江市","parent":"20"}, +"244":{"name":"清远市","parent":"20"}, +"245":{"name":"东莞市","parent":"20"}, +"246":{"name":"中山市","parent":"20"}, +"247":{"name":"潮州市","parent":"20"}, +"248":{"name":"揭阳市","parent":"20"}, +"249":{"name":"云浮市","parent":"20"}, +"250":{"name":"南宁市","parent":"21"}, +"251":{"name":"柳州市","parent":"21"}, +"252":{"name":"桂林市","parent":"21"}, +"253":{"name":"梧州市","parent":"21"}, +"254":{"name":"北海市","parent":"21"}, +"255":{"name":"防城港市","parent":"21"}, +"256":{"name":"钦州市","parent":"21"}, +"257":{"name":"贵港市","parent":"21"}, +"258":{"name":"玉林市","parent":"21"}, +"259":{"name":"百色市","parent":"21"}, +"260":{"name":"贺州市","parent":"21"}, +"261":{"name":"河池市","parent":"21"}, +"262":{"name":"来宾市","parent":"21"}, +"263":{"name":"崇左市","parent":"21"}, +"264":{"name":"海口市","parent":"22"}, +"265":{"name":"三亚市","parent":"22"}, +"267":{"name":"重庆市","parent":"23"}, +"268":{"name":"成都市","parent":"24"}, +"269":{"name":"自贡市","parent":"24"}, +"270":{"name":"攀枝花市","parent":"24"}, +"271":{"name":"泸州市","parent":"24"}, +"272":{"name":"德阳市","parent":"24"}, +"273":{"name":"绵阳市","parent":"24"}, +"274":{"name":"广元市","parent":"24"}, +"275":{"name":"遂宁市","parent":"24"}, +"276":{"name":"内江市","parent":"24"}, +"277":{"name":"乐山市","parent":"24"}, +"278":{"name":"南充市","parent":"24"}, +"279":{"name":"眉山市","parent":"24"}, +"280":{"name":"宜宾市","parent":"24"}, +"281":{"name":"广安市","parent":"24"}, +"282":{"name":"达州市","parent":"24"}, +"283":{"name":"雅安市","parent":"24"}, +"284":{"name":"巴中市","parent":"24"}, +"285":{"name":"资阳市","parent":"24"}, +"286":{"name":"阿坝藏族羌族自治州","parent":"24"}, +"287":{"name":"甘孜藏族自治州","parent":"24"}, +"288":{"name":"凉山彝族自治州","parent":"24"}, +"289":{"name":"贵阳市","parent":"25"}, +"290":{"name":"六盘水市","parent":"25"}, +"291":{"name":"遵义市","parent":"25"}, +"292":{"name":"安顺市","parent":"25"}, +"293":{"name":"铜仁市","parent":"25"}, +"294":{"name":"黔西南布依族苗族自治州","parent":"25"}, +"295":{"name":"毕节市","parent":"25"}, +"296":{"name":"黔东南苗族侗族自治州","parent":"25"}, +"297":{"name":"黔南布依族苗族自治州","parent":"25"}, +"298":{"name":"昆明市","parent":"26"}, +"299":{"name":"曲靖市","parent":"26"}, +"300":{"name":"玉溪市","parent":"26"}, +"301":{"name":"保山市","parent":"26"}, +"302":{"name":"昭通市","parent":"26"}, +"303":{"name":"丽江市","parent":"26"}, +"304":{"name":"普洱市","parent":"26"}, +"305":{"name":"临沧市","parent":"26"}, +"306":{"name":"楚雄彝族自治州","parent":"26"}, +"307":{"name":"红河哈尼族彝族自治州","parent":"26"}, +"308":{"name":"文山壮族苗族自治州","parent":"26"}, +"309":{"name":"西双版纳傣族自治州","parent":"26"}, +"310":{"name":"大理白族自治州","parent":"26"}, +"311":{"name":"德宏傣族景颇族自治州","parent":"26"}, +"312":{"name":"怒江傈僳族自治州","parent":"26"}, +"313":{"name":"迪庆藏族自治州","parent":"26"}, +"314":{"name":"拉萨市","parent":"27"}, +"315":{"name":"昌都市","parent":"27"}, +"316":{"name":"山南市","parent":"27"}, +"317":{"name":"日喀则市","parent":"27"}, +"318":{"name":"那曲市","parent":"27"}, +"319":{"name":"阿里地区","parent":"27"}, +"320":{"name":"林芝市","parent":"27"}, +"321":{"name":"西安市","parent":"28"}, +"322":{"name":"铜川市","parent":"28"}, +"323":{"name":"宝鸡市","parent":"28"}, +"324":{"name":"咸阳市","parent":"28"}, +"325":{"name":"渭南市","parent":"28"}, +"326":{"name":"延安市","parent":"28"}, +"327":{"name":"汉中市","parent":"28"}, +"328":{"name":"榆林市","parent":"28"}, +"329":{"name":"安康市","parent":"28"}, +"330":{"name":"商洛市","parent":"28"}, +"331":{"name":"兰州市","parent":"29"}, +"332":{"name":"嘉峪关市","parent":"29"}, +"333":{"name":"金昌市","parent":"29"}, +"334":{"name":"白银市","parent":"29"}, +"335":{"name":"天水市","parent":"29"}, +"336":{"name":"武威市","parent":"29"}, +"337":{"name":"张掖市","parent":"29"}, +"338":{"name":"平凉市","parent":"29"}, +"339":{"name":"酒泉市","parent":"29"}, +"340":{"name":"庆阳市","parent":"29"}, +"341":{"name":"定西市","parent":"29"}, +"342":{"name":"陇南市","parent":"29"}, +"343":{"name":"临夏回族自治州","parent":"29"}, +"344":{"name":"甘南藏族自治州","parent":"29"}, +"345":{"name":"西宁市","parent":"30"}, +"346":{"name":"海东市","parent":"30"}, +"347":{"name":"海北藏族自治州","parent":"30"}, +"348":{"name":"黄南藏族自治州","parent":"30"}, +"349":{"name":"海南藏族自治州","parent":"30"}, +"350":{"name":"果洛藏族自治州","parent":"30"}, +"351":{"name":"玉树藏族自治州","parent":"30"}, +"352":{"name":"海西蒙古族藏族自治州","parent":"30"}, +"353":{"name":"银川市","parent":"31"}, +"354":{"name":"石嘴山市","parent":"31"}, +"355":{"name":"吴忠市","parent":"31"}, +"356":{"name":"固原市","parent":"31"}, +"357":{"name":"中卫市","parent":"31"}, +"358":{"name":"乌鲁木齐市","parent":"32"}, +"359":{"name":"克拉玛依市","parent":"32"}, +"360":{"name":"吐鲁番市","parent":"32"}, +"361":{"name":"哈密市","parent":"32"}, +"362":{"name":"昌吉回族自治州","parent":"32"}, +"363":{"name":"博尔塔拉蒙古自治州","parent":"32"}, +"364":{"name":"巴音郭楞蒙古自治州","parent":"32"}, +"365":{"name":"阿克苏地区","parent":"32"}, +"366":{"name":"克孜勒苏柯尔克孜自治州","parent":"32"}, +"367":{"name":"喀什地区","parent":"32"}, +"368":{"name":"和田地区","parent":"32"}, +"369":{"name":"伊犁哈萨克自治州","parent":"32"}, +"370":{"name":"塔城地区","parent":"32"}, +"371":{"name":"阿勒泰地区","parent":"32"}, +"372":{"name":"新疆省直辖行政单位","parent":"32"}, +"373":{"name":"可克达拉市","parent":"32"}, +"374":{"name":"昆玉市","parent":"32"}, +"375":{"name":"胡杨河市","parent":"32"}, +"376":{"name":"双河市","parent":"32"}, +"3560":{"name":"北票市","parent":"7"}, +"3615":{"name":"高州市","parent":"20"}, +"3651":{"name":"济源市","parent":"17"}, +"3662":{"name":"胶南市","parent":"16"}, +"3683":{"name":"老河口市","parent":"18"}, +"3758":{"name":"沙河市","parent":"4"}, +"3822":{"name":"宜城市","parent":"18"}, +"3842":{"name":"枣阳市","parent":"18"}, +"3850":{"name":"肇东市","parent":"9"}, +"3905":{"name":"澳门","parent":"1"}, +"3906":{"name":"澳门","parent":"3905"}, +"3907":{"name":"香港","parent":"1"}, +"3908":{"name":"香港","parent":"3907"}, +"3947":{"name":"仙桃市","parent":"18"}, +"3954":{"name":"台湾","parent":"1"}, +"3955":{"name":"台湾","parent":"3954"}, +"3956":{"name":"海外","parent":"1"}, +"3957":{"name":"海外","parent":"3956"}, +"3958":{"name":"美国","parent":"3956"}, +"3959":{"name":"加拿大","parent":"3956"}, +"3961":{"name":"日本","parent":"3956"}, +"3962":{"name":"韩国","parent":"3956"}, +"3963":{"name":"德国","parent":"3956"}, +"3964":{"name":"英国","parent":"3956"}, +"3965":{"name":"意大利","parent":"3956"}, +"3966":{"name":"西班牙","parent":"3956"}, +"3967":{"name":"法国","parent":"3956"}, +"3968":{"name":"澳大利亚","parent":"3956"}, +"3969":{"name":"东城区","parent":"2"}, +"3970":{"name":"西城区","parent":"2"}, +"3971":{"name":"崇文区","parent":"2"}, +"3972":{"name":"宣武区","parent":"2"}, +"3973":{"name":"朝阳区","parent":"2"}, +"3974":{"name":"海淀区","parent":"2"}, +"3975":{"name":"丰台区","parent":"2"}, +"3976":{"name":"石景山区","parent":"2"}, +"3977":{"name":"门头沟区","parent":"2"}, +"3978":{"name":"房山区","parent":"2"}, +"3979":{"name":"通州区","parent":"2"}, +"3980":{"name":"顺义区","parent":"2"}, +"3981":{"name":"昌平区","parent":"2"}, +"3982":{"name":"大兴区","parent":"2"}, +"3983":{"name":"平谷区","parent":"2"}, +"3984":{"name":"怀柔区","parent":"2"}, +"3985":{"name":"密云区","parent":"2"}, +"3986":{"name":"延庆区","parent":"2"}, +"3987":{"name":"黄浦区","parent":"10"}, +"3988":{"name":"徐汇区","parent":"10"}, +"3989":{"name":"长宁区","parent":"10"}, +"3990":{"name":"静安区","parent":"10"}, +"3991":{"name":"普陀区","parent":"10"}, +"3992":{"name":"闸北区","parent":"10"}, +"3993":{"name":"虹口区","parent":"10"}, +"3994":{"name":"杨浦区","parent":"10"}, +"3995":{"name":"宝山区","parent":"10"}, +"3996":{"name":"闵行区","parent":"10"}, +"3997":{"name":"嘉定区","parent":"10"}, +"3998":{"name":"浦东新区","parent":"10"}, +"3999":{"name":"松江区","parent":"10"}, +"4000":{"name":"金山区","parent":"10"}, +"4001":{"name":"青浦区","parent":"10"}, +"4002":{"name":"奉贤区","parent":"10"}, +"4003":{"name":"崇明区","parent":"10"}, +"4004":{"name":"和平区","parent":"3"}, +"4005":{"name":"河东区","parent":"3"}, +"4006":{"name":"河西区","parent":"3"}, +"4007":{"name":"南开区","parent":"3"}, +"4008":{"name":"红桥区","parent":"3"}, +"4009":{"name":"河北区","parent":"3"}, +"4010":{"name":"滨海新区","parent":"3"}, +"4011":{"name":"东丽区","parent":"3"}, +"4012":{"name":"西青区","parent":"3"}, +"4013":{"name":"北辰区","parent":"3"}, +"4014":{"name":"津南区","parent":"3"}, +"4015":{"name":"武清区","parent":"3"}, +"4016":{"name":"宝坻区","parent":"3"}, +"4017":{"name":"静海区","parent":"3"}, +"4018":{"name":"宁河区","parent":"3"}, +"4019":{"name":"蓟州区","parent":"3"}, +"4020":{"name":"渝中区","parent":"23"}, +"4021":{"name":"江北区","parent":"23"}, +"4022":{"name":"南岸区","parent":"23"}, +"4023":{"name":"沙坪坝区","parent":"23"}, +"4024":{"name":"九龙坡区","parent":"23"}, +"4025":{"name":"大渡口区","parent":"23"}, +"4026":{"name":"渝北区","parent":"23"}, +"4027":{"name":"巴南区","parent":"23"}, +"4028":{"name":"北碚区","parent":"23"}, +"4029":{"name":"万州区","parent":"23"}, +"4030":{"name":"黔江区","parent":"23"}, +"4031":{"name":"永川区","parent":"23"}, +"4032":{"name":"涪陵区","parent":"23"}, +"4033":{"name":"江津区","parent":"23"}, +"4034":{"name":"合川区","parent":"23"}, +"4035":{"name":"双桥区","parent":"23"}, +"4036":{"name":"万盛区","parent":"23"}, +"4037":{"name":"荣昌区","parent":"23"}, +"4038":{"name":"大足区","parent":"23"}, +"4039":{"name":"璧山区","parent":"23"}, +"4040":{"name":"铜梁区","parent":"23"}, +"4041":{"name":"潼南区","parent":"23"}, +"4042":{"name":"綦江区","parent":"23"}, +"4043":{"name":"忠县","parent":"23"}, +"4044":{"name":"开州区","parent":"23"}, +"4045":{"name":"云阳县","parent":"23"}, +"4046":{"name":"梁平区","parent":"23"}, +"4047":{"name":"垫江县","parent":"23"}, +"4048":{"name":"丰都县","parent":"23"}, +"4049":{"name":"奉节县","parent":"23"}, +"4050":{"name":"巫山县","parent":"23"}, +"4051":{"name":"巫溪县","parent":"23"}, +"4052":{"name":"城口县","parent":"23"}, +"4053":{"name":"武隆区","parent":"23"}, +"4054":{"name":"石柱土家族自治县","parent":"23"}, +"4055":{"name":"秀山土家族苗族自治县","parent":"23"}, +"4056":{"name":"酉阳土家族苗族自治县","parent":"23"}, +"4057":{"name":"彭水苗族土家族自治县","parent":"23"}, +"4058":{"name":"潜江市","parent":"18"}, +"4059":{"name":"三沙市","parent":"22"}, +"4060":{"name":"石河子市","parent":"32"}, +"4061":{"name":"阿拉尔市","parent":"32"}, +"4062":{"name":"图木舒克市","parent":"32"}, +"4063":{"name":"五家渠市","parent":"32"}, +"4064":{"name":"北屯市","parent":"32"}, +"4065":{"name":"铁门关市","parent":"32"}, +"4066":{"name":"儋州市","parent":"22"}, +"4067":{"name":"五指山市","parent":"22"}, +"4068":{"name":"文昌市","parent":"22"}, +"4069":{"name":"琼海市","parent":"22"}, +"4070":{"name":"万宁市","parent":"22"}, +"4072":{"name":"定安县","parent":"22"}, +"4073":{"name":"屯昌县","parent":"22"}, +"4074":{"name":"澄迈县","parent":"22"}, +"4075":{"name":"临高县","parent":"22"}, +"4076":{"name":"琼中黎族苗族自治县","parent":"22"}, +"4077":{"name":"保亭黎族苗族自治县","parent":"22"}, +"4078":{"name":"白沙黎族自治县","parent":"22"}, +"4079":{"name":"昌江黎族自治县","parent":"22"}, +"4080":{"name":"乐东黎族自治县","parent":"22"}, +"4081":{"name":"陵水黎族自治县","parent":"22"}, +"4082":{"name":"马来西亚","parent":"3956"}, +"6047":{"name":"长寿区","parent":"23"}, +"6857":{"name":"阿富汗","parent":"3956"}, +"6858":{"name":"阿尔巴尼亚","parent":"3956"}, +"6859":{"name":"阿尔及利亚","parent":"3956"}, +"6860":{"name":"美属萨摩亚","parent":"3956"}, +"6861":{"name":"安道尔","parent":"3956"}, +"6862":{"name":"安哥拉","parent":"3956"}, +"6863":{"name":"安圭拉","parent":"3956"}, +"6864":{"name":"南极洲","parent":"3956"}, +"6865":{"name":"安提瓜和巴布达","parent":"3956"}, +"6866":{"name":"阿根廷","parent":"3956"}, +"6867":{"name":"亚美尼亚","parent":"3956"}, +"6869":{"name":"奥地利","parent":"3956"}, +"6870":{"name":"阿塞拜疆","parent":"3956"}, +"6871":{"name":"巴哈马","parent":"3956"}, +"6872":{"name":"巴林","parent":"3956"}, +"6873":{"name":"孟加拉国","parent":"3956"}, +"6874":{"name":"巴巴多斯","parent":"3956"}, +"6875":{"name":"白俄罗斯","parent":"3956"}, +"6876":{"name":"比利时","parent":"3956"}, +"6877":{"name":"伯利兹","parent":"3956"}, +"6878":{"name":"贝宁","parent":"3956"}, +"6879":{"name":"百慕大","parent":"3956"}, +"6880":{"name":"不丹","parent":"3956"}, +"6881":{"name":"玻利维亚","parent":"3956"}, +"6882":{"name":"波黑","parent":"3956"}, +"6883":{"name":"博茨瓦纳","parent":"3956"}, +"6884":{"name":"布维岛","parent":"3956"}, +"6885":{"name":"巴西","parent":"3956"}, +"6886":{"name":"英属印度洋领土","parent":"3956"}, +"6887":{"name":"文莱","parent":"3956"}, +"6888":{"name":"保加利亚","parent":"3956"}, +"6889":{"name":"布基纳法索","parent":"3956"}, +"6890":{"name":"布隆迪","parent":"3956"}, +"6891":{"name":"柬埔寨","parent":"3956"}, +"6892":{"name":"喀麦隆","parent":"3956"}, +"6893":{"name":"佛得角","parent":"3956"}, +"6894":{"name":"开曼群岛","parent":"3956"}, +"6895":{"name":"中非","parent":"3956"}, +"6896":{"name":"乍得","parent":"3956"}, +"6897":{"name":"智利","parent":"3956"}, +"6898":{"name":"圣诞岛","parent":"3956"}, +"6899":{"name":"科科斯(基林)群岛","parent":"3956"}, +"6900":{"name":"哥伦比亚","parent":"3956"}, +"6901":{"name":"科摩罗","parent":"3956"}, +"6902":{"name":"刚果(布)","parent":"3956"}, +"6903":{"name":"刚果(金)","parent":"3956"}, +"6904":{"name":"库克群岛","parent":"3956"}, +"6905":{"name":"哥斯达黎加","parent":"3956"}, +"6906":{"name":"科特迪瓦","parent":"3956"}, +"6907":{"name":"克罗地亚","parent":"3956"}, +"6908":{"name":"古巴","parent":"3956"}, +"6909":{"name":"塞浦路斯","parent":"3956"}, +"6910":{"name":"捷克","parent":"3956"}, +"6911":{"name":"丹麦","parent":"3956"}, +"6912":{"name":"吉布提","parent":"3956"}, +"6913":{"name":"多米尼克","parent":"3956"}, +"6914":{"name":"多米尼加共和国","parent":"3956"}, +"6915":{"name":"东帝汶","parent":"3956"}, +"6916":{"name":"厄瓜多尔","parent":"3956"}, +"6917":{"name":"埃及","parent":"3956"}, +"6918":{"name":"萨尔瓦多","parent":"3956"}, +"6919":{"name":"赤道几内亚","parent":"3956"}, +"6920":{"name":"厄立特里亚","parent":"3956"}, +"6921":{"name":"爱沙尼亚","parent":"3956"}, +"6922":{"name":"埃塞俄比亚","parent":"3956"}, +"6923":{"name":"福克兰群岛(马尔维纳斯)","parent":"3956"}, +"6924":{"name":"法罗群岛","parent":"3956"}, +"6925":{"name":"斐济","parent":"3956"}, +"6926":{"name":"芬兰","parent":"3956"}, +"6927":{"name":"法属圭亚那","parent":"3956"}, +"6928":{"name":"法属波利尼西亚","parent":"3956"}, +"6929":{"name":"法属南部领土","parent":"3956"}, +"6930":{"name":"加蓬","parent":"3956"}, +"6931":{"name":"冈比亚","parent":"3956"}, +"6932":{"name":"格鲁吉亚","parent":"3956"}, +"6933":{"name":"加纳","parent":"3956"}, +"6934":{"name":"直布罗陀","parent":"3956"}, +"6935":{"name":"希腊","parent":"3956"}, +"6936":{"name":"格陵兰","parent":"3956"}, +"6937":{"name":"格林纳达","parent":"3956"}, +"6938":{"name":"瓜德罗普","parent":"3956"}, +"6939":{"name":"关岛","parent":"3956"}, +"6940":{"name":"危地马拉","parent":"3956"}, +"6941":{"name":"几内亚","parent":"3956"}, +"6942":{"name":"几内亚比绍","parent":"3956"}, +"6943":{"name":"圭亚那","parent":"3956"}, +"6944":{"name":"海地","parent":"3956"}, +"6945":{"name":"赫德岛和麦克唐纳岛","parent":"3956"}, +"6946":{"name":"洪都拉斯","parent":"3956"}, +"6947":{"name":"匈牙利","parent":"3956"}, +"6948":{"name":"冰岛","parent":"3956"}, +"6949":{"name":"印度","parent":"3956"}, +"6950":{"name":"印度尼西亚","parent":"3956"}, +"6951":{"name":"伊朗","parent":"3956"}, +"6952":{"name":"伊拉克","parent":"3956"}, +"6953":{"name":"爱尔兰","parent":"3956"}, +"6954":{"name":"以色列","parent":"3956"}, +"6955":{"name":"牙买加","parent":"3956"}, +"6956":{"name":"约旦","parent":"3956"}, +"6957":{"name":"哈萨克斯坦","parent":"3956"}, +"6958":{"name":"肯尼亚","parent":"3956"}, +"6959":{"name":"基里巴斯","parent":"3956"}, +"6960":{"name":"朝鲜","parent":"3956"}, +"6961":{"name":"科威特","parent":"3956"}, +"6962":{"name":"吉尔吉斯斯坦","parent":"3956"}, +"6963":{"name":"老挝","parent":"3956"}, +"6964":{"name":"拉脱维亚","parent":"3956"}, +"6965":{"name":"黎巴嫩","parent":"3956"}, +"6966":{"name":"莱索托","parent":"3956"}, +"6967":{"name":"利比里亚","parent":"3956"}, +"6968":{"name":"利比亚","parent":"3956"}, +"6969":{"name":"列支敦士登","parent":"3956"}, +"6970":{"name":"立陶宛","parent":"3956"}, +"6971":{"name":"卢森堡","parent":"3956"}, +"6972":{"name":"前南马其顿","parent":"3956"}, +"6973":{"name":"马达加斯加","parent":"3956"}, +"6974":{"name":"马拉维","parent":"3956"}, +"6975":{"name":"马尔代夫","parent":"3956"}, +"6976":{"name":"马里","parent":"3956"}, +"6977":{"name":"马耳他","parent":"3956"}, +"6978":{"name":"马绍尔群岛","parent":"3956"}, +"6979":{"name":"马提尼克","parent":"3956"}, +"6980":{"name":"毛里塔尼亚","parent":"3956"}, +"6981":{"name":"毛里求斯","parent":"3956"}, +"6982":{"name":"马约特","parent":"3956"}, +"6983":{"name":"墨西哥","parent":"3956"}, +"6984":{"name":"密克罗尼西亚联邦","parent":"3956"}, +"6985":{"name":"摩尔多瓦","parent":"3956"}, +"6986":{"name":"摩纳哥","parent":"3956"}, +"6987":{"name":"蒙古","parent":"3956"}, +"6988":{"name":"蒙特塞拉特","parent":"3956"}, +"6989":{"name":"摩洛哥","parent":"3956"}, +"6990":{"name":"莫桑比克","parent":"3956"}, +"6991":{"name":"缅甸","parent":"3956"}, +"6992":{"name":"纳米比亚","parent":"3956"}, +"6993":{"name":"瑙鲁","parent":"3956"}, +"6994":{"name":"尼泊尔","parent":"3956"}, +"6995":{"name":"荷兰","parent":"3956"}, +"6996":{"name":"荷属安的列斯","parent":"3956"}, +"6997":{"name":"新喀里多尼亚","parent":"3956"}, +"6998":{"name":"新西兰","parent":"3956"}, +"6999":{"name":"尼加拉瓜","parent":"3956"}, +"7000":{"name":"尼日尔","parent":"3956"}, +"7001":{"name":"尼日利亚","parent":"3956"}, +"7002":{"name":"纽埃","parent":"3956"}, +"7003":{"name":"诺福克岛","parent":"3956"}, +"7004":{"name":"北马里亚纳","parent":"3956"}, +"7005":{"name":"挪威","parent":"3956"}, +"7006":{"name":"阿曼","parent":"3956"}, +"7007":{"name":"巴基斯坦","parent":"3956"}, +"7008":{"name":"帕劳","parent":"3956"}, +"7009":{"name":"巴勒斯坦","parent":"3956"}, +"7010":{"name":"巴拿马","parent":"3956"}, +"7011":{"name":"巴布亚新几内亚","parent":"3956"}, +"7012":{"name":"巴拉圭","parent":"3956"}, +"7013":{"name":"秘鲁","parent":"3956"}, +"7014":{"name":"菲律宾","parent":"3956"}, +"7015":{"name":"皮特凯恩群岛","parent":"3956"}, +"7016":{"name":"波兰","parent":"3956"}, +"7017":{"name":"葡萄牙","parent":"3956"}, +"7018":{"name":"波多黎各","parent":"3956"}, +"7019":{"name":"卡塔尔","parent":"3956"}, +"7020":{"name":"留尼汪","parent":"3956"}, +"7021":{"name":"罗马尼亚","parent":"3956"}, +"7022":{"name":"俄罗斯联邦","parent":"3956"}, +"7023":{"name":"卢旺达","parent":"3956"}, +"7024":{"name":"圣赫勒拿","parent":"3956"}, +"7025":{"name":"圣基茨和尼维斯","parent":"3956"}, +"7026":{"name":"圣卢西亚","parent":"3956"}, +"7027":{"name":"圣皮埃尔和密克隆","parent":"3956"}, +"7028":{"name":"圣文森特和格林纳丁斯","parent":"3956"}, +"7029":{"name":"萨摩亚","parent":"3956"}, +"7030":{"name":"圣马力诺","parent":"3956"}, +"7031":{"name":"圣多美和普林西比","parent":"3956"}, +"7032":{"name":"沙特阿拉伯","parent":"3956"}, +"7033":{"name":"塞内加尔","parent":"3956"}, +"7034":{"name":"塞舌尔","parent":"3956"}, +"7035":{"name":"塞拉利昂","parent":"3956"}, +"7036":{"name":"新加坡","parent":"3956"}, +"7037":{"name":"斯洛伐克","parent":"3956"}, +"7038":{"name":"斯洛文尼亚","parent":"3956"}, +"7039":{"name":"所罗门群岛","parent":"3956"}, +"7040":{"name":"索马里","parent":"3956"}, +"7041":{"name":"南非","parent":"3956"}, +"7042":{"name":"南乔治亚岛和南桑德韦奇岛","parent":"3956"}, +"7043":{"name":"斯里兰卡","parent":"3956"}, +"7044":{"name":"苏丹","parent":"3956"}, +"7045":{"name":"苏里南","parent":"3956"}, +"7046":{"name":"斯瓦尔巴群岛","parent":"3956"}, +"7047":{"name":"斯威士兰","parent":"3956"}, +"7048":{"name":"瑞典","parent":"3956"}, +"7049":{"name":"瑞士","parent":"3956"}, +"7050":{"name":"叙利亚","parent":"3956"}, +"7051":{"name":"塔吉克斯坦","parent":"3956"}, +"7052":{"name":"坦桑尼亚","parent":"3956"}, +"7053":{"name":"泰国","parent":"3956"}, +"7054":{"name":"多哥","parent":"3956"}, +"7055":{"name":"托克劳","parent":"3956"}, +"7056":{"name":"汤加","parent":"3956"}, +"7057":{"name":"特立尼达和多巴哥","parent":"3956"}, +"7058":{"name":"突尼斯","parent":"3956"}, +"7059":{"name":"土耳其","parent":"3956"}, +"7060":{"name":"土库曼斯坦","parent":"3956"}, +"7061":{"name":"特克斯科斯群岛","parent":"3956"}, +"7062":{"name":"图瓦卢","parent":"3956"}, +"7063":{"name":"乌干达","parent":"3956"}, +"7064":{"name":"乌克兰","parent":"3956"}, +"7065":{"name":"阿联酋","parent":"3956"}, +"7066":{"name":"美国本土外小岛屿","parent":"3956"}, +"7067":{"name":"乌拉圭","parent":"3956"}, +"7068":{"name":"乌兹别克斯坦","parent":"3956"}, +"7069":{"name":"瓦努阿图","parent":"3956"}, +"7070":{"name":"梵蒂冈","parent":"3956"}, +"7071":{"name":"委内瑞拉","parent":"3956"}, +"7072":{"name":"越南","parent":"3956"}, +"7073":{"name":"英属维尔京群岛","parent":"3956"}, +"7074":{"name":"美属维尔京群岛","parent":"3956"}, +"7075":{"name":"瓦利斯和富图纳","parent":"3956"}, +"7076":{"name":"西撒哈拉","parent":"3956"}, +"7077":{"name":"也门","parent":"3956"}, +"7078":{"name":"南斯拉夫","parent":"3956"}, +"7079":{"name":"赞比亚","parent":"3956"}, +"7080":{"name":"津巴布韦","parent":"3956"}, +"7081":{"name":"塞尔维亚","parent":"3956"}, +"7082":{"name":"雄安新区","parent":"4"}, +"7084":{"name":"天门市","parent":"18"} +} + +NM_SET = set([v["name"] for _,v in TBL.items()]) + +def get_names(id): + if not id or str(id).lower() == "none":return [] + id = str(id) + if not re.match("[0-9]+$", id.strip()):return [id] + nms = [] + d = TBL.get(id) + if not d:return[] + nms.append(d["name"]) + p = get_names(d["parent"]) + if p: nms.extend(p) + return nms + +import re +def isName(nm): + if nm in NM_SET:return True + if nm + "市" in NM_SET:return True + if re.sub(r"(省|(回族|壮族|维吾尔)*自治区)$", "", nm) in NM_SET:return True + return False diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp.tks.freq.json b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp.tks.freq.json new file mode 100644 index 00000000..c75e2498 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp.tks.freq.json @@ -0,0 +1,65 @@ +[ + "科技", + "集团", + "网络科技", + "技术", + "信息", + "分公司", + "信息技术", + "发展", + "科技股份", + "网络", + "贸易", + "商贸", + "工程", + "企业", + "集团股份", + "商务", + "工业", + "控股集团", + "国际贸易", + "软件技术", + "数码科技", + "软件开发", + "有限", + "经营", + "科技开发", + "股份公司", + "电子技术", + "实业集团", + "责任", + "无限", + "工程技术", + "上市公司", + "技术开发", + "软件系统", + "总公司", + "网络服务", + "ltd.", + "technology", + "company", + "服务公司", + "计算机技术", + "计算机软件", + "电子信息", + "corporation", + "计算机服务", + "计算机系统", + "有限公司", + "事业部", + "公司", + "股份", + "有限责任", + "软件", + "控股", + "高科技", + "房地产", + "事业群", + "部门", + "电子商务", + "人力资源顾问", + "人力资源", + "株式会社", + "网络营销" +] + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_baike_len.csv b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_baike_len.csv new file mode 100644 index 00000000..32b996fb --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_baike_len.csv @@ -0,0 +1,31480 @@ +cid len +376 155 +1003 192 +1236 187 +1306 186 +1512 217 +1600 183 +1695 193 +1869 186 +1959 355 +2559 308 +2751 284 +2782 214 +2883 397 +3475 299 +3834 243 +3846 244 +3968 235 +3982 260 +4184 304 +4220 199 +4305 200 +4342 202 +4360 175 +4412 181 +5171 220 +5175 242 +5210 341 +5335 184 +5344 202 +5499 187 +5525 192 +5574 264 +5608 270 +5778 260 +5817 454 +6460 262 +6483 252 +6561 193 +6620 171 +6867 187 +6899 219 +6909 187 +7028 174 +7419 193 +7789 418 +8038 202 +8405 250 +8459 196 +8594 221 +8628 278 +8848 202 +8888 204 +9123 197 +9169 542 +9283 216 +9555 89 +10540 196 +10736 141 +11586 177 +11912 170 +11930 183 +12074 211 +13548 241 +13686 251 +13771 233 +13831 207 +14346 187 +14436 187 +14709 208 +15465 187 +16024 212 +16042 192 +16080 276 +16146 199 +16391 223 +16737 324 +17251 190 +17327 205 +17374 203 +17854 206 +17936 352 +17965 225 +17968 502 +18186 184 +18296 321 +18540 262 +19063 182 +19139 175 +19272 212 +19471 257 +19580 199 +20071 319 +20413 214 +20492 177 +20858 171 +21199 187 +21531 187 +21581 226 +21637 264 +21646 205 +21696 180 +21914 318 +21960 403 +22103 180 +22143 218 +22449 658 +22750 174 +22872 633 +22873 1721 +23020 217 +23121 308 +23720 210 +24063 245 +24738 193 +24940 217 +24950 559 +24964 189 +25157 184 +25281 199 +25294 200 +25325 168 +25519 190 +25631 202 +25740 1310 +25847 229 +25985 188 +25995 193 +26013 344 +26028 492 +26050 189 +26060 181 +26114 190 +26253 111 +26254 471 +26300 208 +26301 226 +26373 181 +26444 190 +26594 286 +26666 194 +26714 180 +26736 360 +26747 201 +26785 237 +26878 267 +26900 211 +26904 201 +26971 332 +26996 227 +27002 205 +27137 193 +27202 211 +27272 181 +27345 183 +27413 298 +27701 204 +27928 187 +28006 300 +28320 379 +28435 646 +28461 285 +28476 188 +28705 345 +28842 196 +28897 241 +28962 291 +29085 219 +29126 193 +29181 223 +29682 198 +29908 203 +29966 317 +30300 388 +30545 174 +31018 216 +31112 319 +31145 549 +31247 175 +31679 299 +32194 237 +32264 190 +32955 414 +33426 251 +33551 209 +33983 186 +34046 193 +34076 193 +34159 194 +34247 266 +34811 184 +34899 182 +35106 222 +35177 195 +35436 205 +35673 257 +35776 232 +35785 214 +35856 257 +36086 151 +36251 242 +36364 187 +36402 253 +36427 189 +36826 199 +36924 298 +36926 186 +36930 302 +37085 217 +37193 187 +37204 557 +37333 211 +37455 174 +37556 406 +38153 244 +38322 338 +38400 215 +38410 243 +38619 208 +38767 187 +38966 229 +39232 307 +39504 204 +39512 203 +40644 185 +40742 186 +41106 242 +41571 174 +42283 156 +43351 391 +44149 180 +44223 200 +44254 174 +44255 226 +44272 175 +44359 187 +44459 205 +44508 174 +44536 178 +44548 193 +44581 198 +44594 176 +44619 229 +44623 193 +44634 297 +44636 294 +44814 421 +44815 321 +44952 224 +45001 253 +45114 190 +45329 168 +45434 176 +45621 324 +46113 269 +46477 215 +46806 202 +46825 187 +46933 196 +47268 400 +47740 179 +49114 174 +49177 183 +49254 74 +49428 254 +49792 225 +49800 189 +50480 193 +50523 194 +51600 131 +53606 193 +53617 226 +54221 186 +54506 310 +54840 259 +54932 196 +55512 198 +55626 181 +55671 170 +55720 257 +55722 205 +55740 201 +56252 212 +57977 161 +58772 180 +58773 175 +58804 177 +60083 182 +60300 258 +60316 193 +60435 346 +60507 210 +60887 168 +60893 182 +61209 199 +61268 199 +61767 193 +63428 207 +63769 199 +64994 291 +65401 172 +65423 289 +65517 306 +65544 267 +66357 238 +66469 177 +66542 311 +66560 175 +67178 178 +67281 185 +70064 174 +71057 187 +71756 203 +72578 180 +74085 181 +74197 253 +74242 317 +74330 183 +74335 763 +74423 178 +74460 309 +74466 339 +74507 249 +74813 295 +74865 289 +76603 177 +76656 350 +76672 207 +77106 264 +77314 199 +77431 174 +78489 178 +78519 204 +78873 220 +79858 588 +80297 222 +80985 276 +81490 153 +81517 239 +82216 259 +84834 287 +85274 181 +85804 191 +87731 180 +89160 179 +90158 180 +90562 176 +90792 229 +90843 187 +90954 230 +91230 243 +91243 266 +91382 234 +91771 189 +92788 186 +92802 183 +92875 505 +92945 412 +93173 265 +93186 274 +94001 182 +94018 409 +94481 329 +94695 177 +94821 393 +94962 237 +95143 222 +95144 187 +95222 205 +95321 175 +95481 455 +95709 257 +95796 227 +95886 315 +96106 457 +96258 178 +97110 175 +98110 387 +98471 301 +98490 253 +98787 242 +98915 177 +99167 208 +99990 169 +100014 188 +100249 221 +101504 184 +101593 248 +101765 232 +101831 215 +103574 190 +103864 232 +103903 310 +105184 188 +105298 217 +105691 228 +106194 211 +106206 220 +106222 281 +106388 179 +106450 202 +107336 259 +108616 163 +108668 283 +108672 239 +108967 180 +109329 244 +109442 190 +109537 180 +109613 342 +110573 224 +110960 186 +111174 185 +111644 242 +112089 208 +112197 378 +112312 174 +112366 184 +112685 174 +113156 259 +113339 237 +113372 173 +114730 303 +114877 211 +114907 246 +114951 232 +115023 210 +115025 266 +115608 196 +115642 284 +115706 183 +116544 264 +117121 265 +117192 269 +117230 203 +117249 212 +117284 174 +117304 216 +117359 202 +117396 266 +117595 193 +117813 193 +118314 220 +118598 187 +118835 176 +119040 187 +119079 198 +119164 553 +119217 223 +119435 184 +119457 318 +119471 175 +119555 376 +119656 210 +120031 183 +121011 178 +121048 202 +121073 193 +121693 187 +121912 190 +122460 221 +122617 242 +122656 217 +122899 433 +123024 309 +124480 175 +124857 225 +124890 179 +124894 397 +124981 165 +125570 399 +125572 175 +125596 187 +125638 184 +125648 180 +125662 202 +125799 220 +125817 186 +126609 403 +126659 193 +127238 199 +127381 226 +127449 193 +127477 422 +127660 220 +127710 222 +127764 333 +128541 193 +128726 136 +128815 231 +129477 172 +130986 264 +131049 201 +131318 213 +131646 191 +131654 174 +131667 201 +132115 181 +132193 226 +133286 219 +133448 224 +133463 165 +133818 184 +134777 270 +134823 180 +134824 183 +134856 187 +135015 184 +135125 249 +135322 211 +135415 179 +135564 193 +136047 183 +136064 502 +136389 192 +137413 177 +137920 179 +139319 221 +139498 161 +139935 186 +140051 354 +140311 174 +140498 201 +140818 371 +141602 262 +141621 361 +141840 168 +142169 187 +142192 198 +142238 402 +142616 246 +142627 174 +142654 168 +142718 216 +142841 281 +143137 150 +143326 165 +143361 180 +143365 262 +143456 297 +143620 270 +143626 504 +144269 186 +144429 205 +144469 190 +144493 238 +145563 220 +145598 199 +145803 187 +145923 408 +145964 220 +146071 175 +146673 251 +146873 237 +147574 340 +147991 179 +148145 319 +148152 86 +148244 200 +148315 205 +148478 225 +148818 310 +149129 184 +149330 221 +149462 225 +149685 195 +149977 250 +150512 175 +152119 284 +152930 177 +153008 175 +153082 193 +153226 225 +153305 227 +153312 260 +153315 174 +153347 153 +153360 187 +153643 199 +153810 288 +155119 232 +155255 177 +155269 180 +155352 254 +155369 421 +155383 264 +155708 710 +155717 171 +155739 176 +155792 187 +155795 245 +155803 271 +155973 183 +155986 275 +156096 174 +156344 193 +156421 126 +156730 162 +156795 594 +157630 201 +157899 205 +158100 271 +158220 186 +158762 167 +158877 209 +158925 316 +158945 190 +159040 171 +159062 174 +159101 175 +159111 186 +159131 302 +159188 193 +159971 177 +159996 316 +160131 390 +160877 180 +166092 218 +166657 247 +166972 190 +167742 240 +168157 222 +168448 189 +168593 229 +168600 231 +168763 231 +168781 247 +169100 174 +169237 242 +169557 266 +170188 324 +170686 198 +171857 167 +172040 170 +172779 149 +173221 215 +176495 367 +176596 223 +176692 210 +177509 190 +178586 190 +178640 196 +179159 181 +180805 261 +180949 187 +180960 251 +181697 320 +181705 143 +183356 181 +183894 365 +185002 180 +186279 211 +186325 277 +186368 220 +186717 214 +186835 274 +188270 152 +188701 181 +189436 184 +189460 191 +189630 156 +189884 225 +189906 243 +190271 195 +190272 196 +190288 240 +190294 200 +190434 178 +190657 316 +193444 175 +195989 180 +198694 192 +198703 186 +198782 181 +198789 255 +199296 203 +199765 176 +199913 170 +203830 214 +203978 211 +203996 303 +204121 227 +204140 165 +204391 201 +204410 379 +204643 181 +204703 222 +204858 250 +205827 231 +206020 323 +206046 150 +206054 233 +206342 190 +206371 181 +206542 187 +206600 185 +206617 204 +207171 261 +207746 227 +208048 219 +209426 199 +210067 307 +210324 227 +210783 465 +212710 237 +213176 180 +213452 203 +215234 385 +215910 291 +218063 208 +218345 143 +218366 247 +218496 186 +218653 168 +218685 204 +219288 195 +219571 421 +220779 174 +221698 325 +221739 184 +222005 156 +222023 318 +222178 181 +223584 178 +224036 213 +224104 221 +224175 248 +225249 252 +225324 168 +225430 223 +225574 250 +226014 165 +226207 294 +226405 175 +227322 181 +227654 208 +227762 311 +228144 319 +228387 394 +228582 215 +228707 289 +228864 190 +228924 249 +228930 203 +228964 196 +229102 209 +229262 327 +229632 420 +229655 181 +229669 208 +229821 280 +229844 220 +230076 186 +230109 181 +230593 366 +230808 189 +231231 406 +231494 216 +231562 289 +231648 181 +231699 189 +231716 192 +231724 283 +231755 226 +231867 196 +232490 222 +233046 203 +233841 214 +234187 273 +234357 187 +234585 191 +234587 180 +234714 274 +234794 184 +234827 191 +235212 189 +235296 201 +236317 538 +237628 213 +237948 186 +237969 192 +238102 236 +238134 491 +238851 312 +239041 94 +239103 239 +239251 186 +239286 186 +240660 209 +240676 274 +240701 192 +240713 214 +241498 334 +241512 277 +241518 199 +241534 242 +241547 286 +241648 229 +241762 260 +241784 223 +241887 341 +241900 174 +242074 181 +242156 204 +242380 181 +242617 186 +242664 199 +244611 216 +245073 197 +245316 189 +245673 358 +245727 187 +245773 194 +245823 183 +245936 178 +246140 229 +246177 252 +246224 423 +246354 259 +246388 225 +246411 191 +246500 317 +246774 258 +246943 199 +248178 204 +248298 296 +248436 227 +249091 186 +249385 191 +249654 184 +250034 635 +250990 65 +252025 395 +252752 196 +253079 196 +253288 149 +253312 187 +253826 199 +254051 502 +254329 192 +254369 311 +255051 185 +255231 174 +255238 180 +255852 204 +256657 283 +256989 232 +257187 187 +257911 208 +259367 190 +259923 214 +260899 194 +265544 186 +266052 208 +266693 324 +266986 179 +268517 205 +268691 184 +270697 221 +271991 193 +272301 205 +272667 217 +272879 168 +272957 198 +273079 624 +274948 187 +275283 177 +275666 108 +275713 192 +275751 200 +275774 187 +276045 182 +276244 236 +276288 242 +276296 219 +276412 324 +276477 175 +276524 206 +276676 566 +276711 256 +277012 205 +277621 225 +278133 242 +278741 201 +278862 200 +279913 238 +279993 263 +280324 253 +281392 321 +282867 187 +283209 187 +283258 158 +283326 196 +283397 200 +283674 237 +283738 162 +283781 314 +283889 400 +283921 252 +284094 459 +284115 177 +284243 187 +284471 223 +284986 186 +284997 220 +285012 152 +285055 190 +285376 293 +285420 334 +286260 300 +288428 213 +291054 206 +291171 159 +291663 231 +292108 223 +293333 265 +293701 193 +293757 176 +296629 181 +296675 228 +296682 216 +296840 186 +297070 183 +297187 191 +297748 267 +299803 202 +299872 215 +300005 162 +300009 289 +300999 239 +301567 248 +301714 289 +302545 162 +303008 231 +303714 351 +305323 184 +306113 294 +306262 242 +306363 173 +306467 168 +306704 190 +308021 172 +308030 202 +308232 167 +308455 185 +308659 189 +310689 161 +311673 194 +311999 191 +312164 187 +312183 226 +312832 196 +312986 233 +313197 247 +313364 211 +313476 239 +313678 292 +313794 294 +313930 178 +314110 268 +314218 348 +318647 347 +318949 312 +319713 176 +319788 232 +319911 177 +320211 463 +321868 211 +322502 174 +323247 183 +323280 184 +327505 186 +327644 175 +327976 205 +328328 185 +328337 176 +329953 294 +330074 247 +330440 219 +330540 210 +330736 146 +330737 210 +330899 220 +330910 187 +331061 158 +331179 152 +331473 261 +331571 398 +331646 233 +331811 177 +331966 237 +331993 191 +332341 252 +332430 173 +333036 165 +333183 245 +333357 390 +334787 184 +334851 377 +335227 207 +335291 187 +337622 180 +338309 232 +339131 174 +339209 174 +339542 251 +340195 184 +340577 237 +340578 310 +341147 177 +341371 178 +341778 149 +342246 262 +343613 278 +343821 212 +343994 199 +344020 340 +344103 189 +344455 168 +345440 175 +346822 249 +346829 387 +346873 217 +347466 170 +347695 211 +347697 196 +348134 250 +348543 177 +348582 220 +348731 221 +348848 208 +349687 227 +351430 177 +352240 686 +352698 209 +352784 283 +352836 241 +353718 252 +356201 180 +357318 193 +357791 380 +357794 187 +358443 494 +358601 193 +359214 180 +359350 217 +359746 198 +359770 216 +360518 205 +360721 347 +361053 278 +361096 253 +361216 181 +361267 211 +361674 212 +362111 281 +362149 262 +362275 187 +362513 232 +362579 187 +363175 592 +365528 392 +365743 209 +366186 186 +366884 171 +367215 180 +367363 172 +367703 181 +368722 175 +370749 168 +372839 158 +375407 225 +378314 178 +379479 183 +379491 228 +379638 206 +379711 188 +379973 181 +380002 226 +380008 190 +380065 184 +380163 181 +380682 278 +381919 246 +382033 365 +382467 220 +382619 187 +382697 219 +383483 248 +384882 196 +384957 173 +385814 504 +389211 182 +389725 171 +390015 231 +391466 202 +391754 274 +391967 191 +392012 448 +392061 182 +392718 230 +392873 161 +392922 233 +393290 203 +393659 174 +393759 190 +393884 221 +393907 196 +394210 202 +395037 331 +395215 177 +395390 208 +395699 184 +395738 275 +395821 548 +398739 236 +398760 175 +398820 291 +398825 212 +398837 242 +398886 213 +398938 221 +399487 186 +399513 219 +399753 202 +400128 365 +400279 211 +400634 254 +401004 217 +402701 182 +402875 180 +403884 681 +403980 405 +404483 180 +404896 172 +407440 187 +408554 347 +409359 242 +409652 190 +409793 332 +410082 187 +410083 289 +410379 269 +410517 770 +411017 152 +411774 244 +412515 214 +412762 312 +413079 248 +413171 233 +413295 178 +413391 195 +413838 194 +414149 221 +414304 225 +414557 236 +414733 212 +414784 390 +415187 261 +415775 186 +415867 350 +415989 351 +416363 193 +416746 193 +416781 394 +416949 167 +417594 190 +417652 183 +417765 193 +417836 247 +418005 364 +418171 185 +418184 188 +418259 296 +418279 209 +418428 226 +418529 177 +419118 256 +419976 204 +420589 225 +421835 193 +422820 297 +422885 226 +423397 189 +424163 622 +424406 180 +424446 212 +424578 193 +424775 180 +424876 198 +425342 346 +426264 192 +426483 183 +426693 508 +426960 190 +427140 259 +427349 379 +427446 178 +427646 188 +427949 177 +428158 181 +428188 180 +428211 223 +428239 195 +428266 237 +428337 317 +428374 224 +428403 229 +428641 329 +428687 207 +428858 175 +428917 180 +429648 263 +429994 169 +430288 203 +430310 268 +430315 234 +430447 166 +430857 202 +430860 176 +430972 186 +431112 323 +431505 294 +431703 537 +432203 257 +432582 187 +432782 181 +432936 171 +433310 296 +434046 176 +434236 414 +434398 558 +434501 175 +434737 265 +435241 180 +435343 175 +435673 300 +435675 194 +436016 201 +436758 194 +438306 214 +439082 180 +439634 228 +439965 202 +440102 273 +440723 218 +440827 206 +441583 186 +441633 179 +441733 186 +441740 199 +441907 219 +442385 155 +443159 293 +443415 181 +443468 172 +444322 183 +444743 177 +447078 293 +447127 190 +447324 293 +449035 576 +449222 170 +449696 185 +449929 357 +450317 186 +450790 188 +451079 187 +451358 458 +451531 176 +452056 185 +452750 690 +453026 345 +453037 342 +453109 199 +453154 253 +453164 208 +453263 201 +453398 257 +453469 180 +453485 168 +453609 182 +453904 164 +453928 236 +453939 219 +454594 195 +454667 176 +454795 313 +454814 244 +454831 177 +454935 185 +456229 182 +458138 256 +459089 181 +459109 188 +459111 203 +459472 226 +459613 183 +459872 271 +459915 224 +459933 178 +460042 182 +460442 193 +460577 174 +460691 222 +460903 179 +461150 199 +461757 353 +462435 220 +462736 199 +462899 169 +463376 183 +463747 232 +463967 180 +464511 203 +464638 193 +464714 206 +464721 276 +464937 174 +465330 404 +465962 253 +466221 185 +466511 206 +466634 246 +466967 217 +467166 167 +467445 205 +467936 221 +468157 336 +468759 215 +468944 176 +468984 289 +469954 197 +470775 203 +471483 217 +471943 314 +472011 211 +472217 274 +473288 194 +473317 211 +473322 180 +473377 249 +473383 177 +473430 181 +473433 169 +473492 175 +473558 333 +473600 271 +473607 193 +473693 190 +473732 311 +473771 174 +473837 215 +473853 189 +473854 328 +473881 208 +473888 188 +473889 322 +473984 179 +474344 186 +474367 265 +474409 313 +474490 178 +474693 187 +474735 216 +474870 221 +475177 271 +475330 175 +475447 193 +475492 205 +475501 173 +475580 143 +475588 182 +475768 193 +476654 274 +476656 243 +476674 165 +476915 352 +477216 285 +477559 179 +477795 249 +477872 204 +478199 198 +478213 179 +478570 173 +478703 223 +478735 193 +478757 155 +478824 233 +478929 181 +479042 211 +479102 372 +479154 447 +479461 204 +479507 248 +479584 248 +479645 266 +479648 201 +479674 208 +479933 302 +480012 294 +480015 430 +480060 224 +480089 185 +480189 291 +480200 233 +480277 285 +480313 192 +480353 233 +480453 585 +480546 219 +480593 190 +480712 445 +480969 282 +481187 182 +481204 172 +481261 364 +481451 189 +481701 187 +481719 206 +481967 173 +482029 334 +482119 174 +482185 201 +482417 238 +482454 239 +482551 187 +482835 221 +482903 208 +483005 256 +483130 187 +483152 374 +483921 257 +483979 287 +484084 186 +484230 199 +484301 174 +484392 212 +484452 278 +484486 221 +484674 459 +485003 433 +485350 204 +485446 199 +485494 400 +485495 595 +485567 233 +485622 175 +485806 118 +485883 232 +485992 211 +486526 258 +486979 237 +487049 201 +487145 215 +487306 176 +487336 193 +487537 187 +487572 195 +487819 289 +488199 150 +488403 260 +488608 141 +488620 231 +488857 203 +488920 486 +488951 177 +489425 204 +489636 187 +489646 339 +489721 189 +489860 184 +489866 189 +490013 181 +490025 212 +490280 183 +490378 225 +490424 253 +490987 370 +491010 470 +491383 401 +491787 229 +491882 324 +492131 174 +492163 330 +492681 207 +492927 274 +492932 289 +492962 236 +493359 180 +493689 238 +493855 214 +493971 194 +494008 423 +494094 165 +494145 261 +494581 157 +494623 247 +495119 221 +495215 242 +495251 187 +496133 171 +498394 238 +498619 187 +498846 305 +498924 181 +499158 187 +499626 186 +499757 186 +499829 191 +500767 200 +501084 249 +501109 227 +501127 257 +501130 124 +501572 311 +501606 201 +502101 318 +502204 269 +502242 139 +502267 222 +502354 202 +502502 231 +502567 201 +502848 187 +502920 174 +502971 187 +503463 183 +503497 156 +503527 175 +503781 207 +503967 196 +503976 174 +504003 174 +504078 242 +504227 381 +505053 181 +505724 193 +505762 190 +506255 193 +506386 214 +506473 228 +506851 207 +506956 511 +507736 291 +508005 355 +508511 188 +508998 388 +509045 252 +509838 204 +509987 199 +510130 150 +510148 199 +510192 219 +510251 166 +510347 288 +510892 214 +511634 181 +511933 256 +512152 187 +512418 430 +514935 180 +515046 173 +515873 174 +516058 203 +516337 188 +517180 255 +517577 171 +517665 194 +518120 156 +518224 185 +518313 187 +519176 189 +519276 198 +519572 261 +519623 226 +519686 236 +519774 193 +519808 180 +519852 284 +520081 257 +520090 232 +520104 274 +520274 236 +520495 174 +520631 174 +520641 556 +520841 201 +520917 175 +520996 190 +521069 204 +521188 189 +521194 223 +521485 179 +521541 220 +521814 175 +522085 257 +522105 226 +522123 207 +522265 234 +522355 293 +523240 187 +524071 212 +524191 203 +524523 183 +524717 199 +524928 210 +525430 193 +525482 156 +525540 190 +525662 431 +525691 287 +526043 290 +526141 194 +526994 265 +527000 173 +527478 202 +527481 181 +527790 207 +527811 298 +527861 211 +527876 378 +528069 498 +528156 174 +528165 187 +528263 257 +528293 173 +528344 175 +528412 224 +528554 390 +528616 787 +528667 223 +528781 206 +528859 244 +529001 232 +529073 166 +529145 252 +529280 272 +529536 172 +529846 201 +529946 267 +530068 175 +530130 179 +530137 222 +530228 231 +530557 208 +530653 310 +530791 467 +531091 176 +531172 224 +531300 199 +531721 222 +531745 179 +531953 316 +532331 167 +532465 226 +532469 180 +532513 186 +532530 230 +532786 233 +532834 184 +533026 222 +533097 256 +533403 174 +533534 181 +533582 205 +534326 174 +534562 171 +534700 226 +534706 218 +534729 294 +534796 320 +534909 250 +535060 207 +535714 200 +535776 278 +535969 187 +536334 271 +537270 232 +537493 174 +537506 200 +537934 206 +538119 282 +538909 180 +538960 173 +539543 193 +539552 199 +539595 175 +540265 189 +540509 415 +540664 177 +540878 187 +541290 190 +541293 181 +541762 756 +542135 341 +542682 354 +542711 244 +543569 202 +543832 195 +544019 212 +544074 227 +544099 175 +544111 227 +544234 408 +544337 299 +544459 396 +544465 224 +545045 187 +545354 199 +545760 199 +546042 238 +546128 271 +546531 319 +546851 147 +547468 297 +548038 236 +548098 180 +548736 233 +548815 376 +549134 178 +549278 205 +549586 173 +549766 286 +549773 310 +549928 327 +550117 201 +550181 183 +550324 572 +550459 180 +550460 174 +550589 235 +550659 217 +550826 211 +550926 177 +550942 181 +550948 128 +551127 241 +551249 169 +551402 475 +551561 146 +551762 244 +552118 202 +552853 175 +553096 192 +553270 187 +553413 206 +553714 228 +553765 359 +554396 220 +554682 366 +554929 212 +555459 233 +555527 181 +555578 200 +555626 174 +555691 338 +555920 187 +556019 238 +556663 245 +556947 227 +557005 169 +557085 238 +557277 243 +557954 393 +558304 481 +558552 236 +558704 165 +559284 167 +559330 196 +559425 360 +559693 210 +559823 105 +559880 497 +559968 222 +559971 234 +559979 199 +560094 463 +560306 262 +560395 196 +560399 240 +560424 190 +560472 144 +560478 447 +560585 189 +560656 186 +561026 209 +561055 175 +561112 181 +561143 251 +561486 248 +561922 194 +561991 242 +562153 175 +562295 319 +562578 490 +562670 187 +562915 182 +563517 214 +564039 289 +564581 198 +564928 184 +565423 353 +565960 330 +566086 262 +566272 181 +566736 186 +567436 176 +567681 238 +567816 167 +568089 162 +568409 295 +568414 216 +568498 261 +568721 215 +568836 226 +569061 268 +569098 291 +569119 191 +569145 206 +569171 230 +569255 196 +569304 196 +569335 313 +569338 331 +569418 212 +569467 261 +569524 311 +569536 190 +569863 439 +570058 323 +570272 204 +570278 200 +570292 257 +570356 183 +570671 184 +570877 155 +570975 188 +571257 310 +571296 183 +571437 202 +572618 249 +572649 232 +572773 185 +572878 207 +573123 465 +573226 206 +573609 225 +573669 231 +573797 182 +574203 167 +574322 298 +574348 222 +574546 461 +574957 171 +575037 139 +575060 187 +575198 197 +575295 217 +575382 226 +575512 233 +575558 187 +575736 198 +577192 220 +577463 269 +577477 240 +578891 185 +579255 186 +579533 360 +581060 194 +584292 187 +584378 218 +584479 178 +584522 186 +584798 193 +584801 191 +584806 226 +585305 213 +585419 418 +585901 217 +586304 171 +588553 649 +588736 201 +588752 202 +589676 193 +590175 183 +590201 216 +590524 238 +590579 164 +591761 756 +591915 272 +592434 333 +592539 181 +593065 252 +593620 181 +593651 348 +593690 428 +593773 410 +593790 211 +593981 171 +594064 300 +594072 181 +594174 168 +594943 196 +594972 584 +595114 374 +595115 1028 +595260 190 +595451 205 +595971 434 +596080 183 +596186 530 +596227 190 +597923 319 +598508 222 +598852 287 +599072 257 +599625 443 +600066 175 +600337 174 +601923 205 +602613 214 +602617 169 +603261 252 +603918 193 +605036 173 +605070 196 +605398 212 +605431 187 +605779 399 +605833 765 +606078 184 +606180 180 +606192 319 +607002 248 +607405 180 +607490 284 +607539 208 +607541 466 +608083 181 +608575 187 +608640 360 +609350 210 +609382 244 +609453 347 +609942 243 +610067 196 +610278 218 +610328 176 +610724 303 +610833 175 +611178 195 +611203 195 +611315 173 +611375 437 +611595 235 +611731 191 +611786 225 +611898 283 +612790 223 +613494 415 +614101 180 +614258 186 +614717 415 +615260 183 +615957 288 +616202 161 +617208 191 +617217 178 +617238 218 +618985 193 +618995 252 +619072 188 +619946 184 +620541 233 +620607 167 +620748 288 +620792 188 +620881 175 +620904 334 +620979 224 +621423 193 +621449 205 +622346 174 +622449 334 +622657 190 +622712 341 +623052 174 +623156 243 +623263 251 +623325 496 +623448 244 +623790 474 +623873 184 +623930 180 +623971 187 +624205 167 +624219 256 +624338 222 +625109 234 +625138 233 +625770 334 +625948 235 +625955 175 +626017 253 +626369 186 +626380 186 +626454 190 +626458 263 +626603 190 +626641 182 +626643 197 +626644 198 +626730 172 +627228 298 +628422 277 +628484 435 +628507 244 +628562 184 +628686 222 +628734 264 +628951 217 +630421 241 +630460 193 +630656 174 +630829 174 +630967 236 +631094 232 +631249 202 +631271 325 +631333 433 +631370 287 +631394 181 +631578 170 +631737 174 +632111 244 +632336 290 +632391 225 +632575 214 +632742 187 +632858 184 +632888 290 +633610 332 +633651 205 +633806 240 +634852 211 +635111 187 +635664 244 +636537 218 +636678 204 +636689 243 +636691 172 +636730 224 +637102 228 +637183 360 +637204 196 +637327 274 +638142 175 +638318 278 +638432 198 +639033 244 +639247 228 +639606 214 +639817 345 +640281 248 +640297 190 +640375 197 +640742 228 +640880 182 +641201 236 +641204 271 +641276 95 +641719 177 +642610 244 +643340 241 +644038 177 +644334 196 +644966 187 +645646 239 +645805 205 +645858 238 +646041 207 +646761 215 +646889 141 +647050 181 +647679 364 +647911 188 +649809 280 +650411 208 +650917 235 +650923 335 +650938 174 +650987 258 +651056 166 +651348 200 +652077 317 +652081 321 +652847 172 +652963 192 +652967 233 +652976 174 +653014 187 +653580 231 +654363 196 +720900 199 +720904 591 +720934 322 +720937 191 +720939 245 +720941 180 +720961 204 +720962 231 +720973 776 +720981 390 +720982 209 +720990 316 +720995 182 +720996 187 +721005 413 +721008 165 +721011 287 +721012 323 +721067 375 +721074 239 +721107 196 +721112 183 +721200 202 +721204 412 +721209 781 +721229 738 +721233 323 +721237 196 +721249 789 +721251 183 +721276 462 +721277 817 +721315 359 +721323 209 +721325 361 +721344 194 +721347 141 +721442 286 +721443 186 +721623 329 +721673 241 +721738 352 +721749 397 +721881 165 +722017 258 +722028 220 +722081 638 +722444 234 +722534 746 +722561 220 +722594 1515 +722615 368 +722621 487 +722714 168 +722735 298 +722742 171 +722743 310 +722767 169 +722769 641 +722778 186 +722783 194 +722788 267 +722790 466 +722843 398 +722862 170 +722864 265 +722948 207 +722956 371 +723008 269 +723043 264 +723207 201 +723266 195 +723268 484 +723273 182 +723291 183 +723307 200 +723343 211 +723381 198 +723423 493 +723432 175 +723470 206 +723538 176 +723582 270 +723590 255 +723593 831 +723601 1638 +723631 210 +723636 468 +723643 221 +723860 194 +723887 226 +723906 186 +723947 281 +723964 222 +724060 199 +724065 121 +724106 251 +724164 179 +724167 307 +724184 233 +724197 419 +724305 466 +724334 259 +724398 263 +724412 531 +724448 187 +724465 40 +724497 265 +724501 225 +724556 288 +724557 217 +724568 275 +724623 257 +724624 250 +724636 322 +724644 582 +724710 216 +724717 179 +724742 186 +724876 315 +724896 1484 +724900 204 +724960 185 +724971 204 +725012 387 +725024 248 +725031 423 +725042 187 +725065 347 +725096 366 +725129 186 +725132 393 +725133 175 +725147 264 +725167 339 +725184 441 +725202 184 +725218 184 +725240 235 +725244 285 +725249 320 +725263 208 +725279 222 +725298 336 +725331 250 +725352 223 +725363 500 +725380 143 +725383 531 +725441 318 +725458 471 +725469 216 +725475 309 +725499 274 +725511 200 +725535 264 +725662 276 +725678 186 +725697 161 +725714 164 +725762 196 +725769 441 +725832 254 +725902 443 +725912 454 +725930 213 +725933 216 +725969 388 +725995 268 +726011 198 +726016 310 +726027 730 +726028 392 +726031 183 +726039 245 +726068 440 +726092 307 +726100 202 +726113 234 +726116 274 +726117 227 +726123 406 +726126 451 +726129 177 +726133 215 +726138 316 +726155 118 +726158 230 +726159 415 +726176 434 +726190 178 +726198 153 +726199 196 +726224 329 +726252 158 +726260 531 +726275 273 +726287 101 +726292 195 +726304 603 +726311 347 +726372 396 +726394 248 +726410 276 +726535 389 +726537 746 +726922 164 +726923 159 +727002 178 +727013 163 +727038 173 +727170 181 +727272 101 +727287 181 +727346 180 +727376 322 +727379 241 +727394 189 +727412 244 +727428 66 +727466 205 +727492 156 +727557 242 +727863 232 +727985 405 +728012 262 +728091 214 +728123 195 +728154 197 +728164 173 +728183 215 +728186 335 +728201 283 +728216 276 +728264 274 +728327 459 +728340 202 +728366 187 +728426 313 +728433 223 +728484 262 +728504 192 +729456 187 +729460 248 +729499 288 +729502 190 +729531 166 +729558 304 +729620 476 +729753 170 +730169 256 +730348 579 +730374 181 +730388 181 +730462 293 +730537 361 +730546 223 +730554 484 +730561 432 +730688 203 +730761 340 +730770 209 +730795 224 +730804 180 +730815 389 +730979 175 +730986 502 +730987 297 +730990 186 +731010 238 +731030 112 +731098 173 +731119 279 +731124 193 +731266 423 +731268 190 +731649 176 +731712 152 +731724 233 +731725 276 +731799 342 +731804 388 +731806 193 +731811 183 +731818 801 +731819 452 +731962 304 +732087 224 +732099 230 +732172 271 +732174 222 +732183 247 +732199 324 +732200 403 +732202 267 +732203 180 +732224 188 +732228 286 +732229 254 +732233 184 +732269 402 +732285 296 +732328 772 +732352 171 +732419 184 +732438 488 +732439 206 +732750 298 +732816 231 +732817 185 +732827 205 +732832 228 +732845 259 +732896 215 +732938 225 +732965 251 +732973 176 +733069 210 +733080 233 +733094 536 +733112 169 +733123 206 +733133 236 +733144 594 +733208 192 +733225 352 +733275 283 +733315 343 +733340 588 +733363 288 +733366 187 +733426 232 +733487 173 +733490 243 +733553 234 +733564 307 +733851 410 +733853 368 +734493 156 +734494 230 +734591 414 +734657 309 +734774 221 +734776 304 +734852 183 +734988 216 +734993 216 +735007 274 +735059 281 +735125 304 +735142 210 +735172 206 +735186 266 +735591 131 +735624 185 +735662 187 +735750 181 +735987 620 +736009 192 +736010 244 +736238 216 +736268 116 +736343 535 +736357 267 +736374 141 +736376 187 +736402 276 +736425 184 +736440 223 +736447 1292 +736480 184 +736488 233 +736523 192 +736548 328 +736583 229 +736626 530 +736660 194 +736670 508 +736731 339 +736902 392 +737265 194 +737435 205 +737450 174 +737685 206 +737982 211 +738187 275 +738292 194 +738304 398 +738353 177 +738396 443 +738417 412 +738466 183 +738467 173 +738472 226 +738538 484 +738547 155 +738584 767 +738607 241 +738652 230 +738656 311 +738702 149 +738722 498 +738737 202 +738741 355 +738754 329 +738758 447 +738789 188 +738815 199 +738829 199 +738957 168 +738964 174 +738965 197 +739031 319 +739052 249 +739112 269 +739137 252 +739171 246 +739198 229 +739220 159 +739238 181 +739239 270 +739274 298 +739281 635 +739282 210 +739302 164 +739339 312 +739351 226 +739371 186 +739392 169 +739396 241 +739407 573 +739409 132 +739435 140 +739451 1292 +739466 260 +739468 190 +739481 173 +739489 238 +739502 284 +739523 826 +739533 189 +739534 171 +739561 422 +739616 233 +739638 139 +739677 302 +739687 199 +739723 212 +739749 362 +739757 162 +739774 190 +739835 228 +739865 499 +740105 181 +740120 184 +740141 188 +740249 218 +740336 175 +740362 371 +740411 181 +740501 246 +740556 219 +740562 181 +740747 177 +740831 297 +740850 259 +740893 198 +740894 199 +740945 174 +740954 175 +740969 360 +740975 211 +740995 200 +741014 244 +741020 192 +741042 285 +741093 200 +741126 295 +741264 181 +741303 178 +741323 149 +741417 186 +741430 320 +741498 328 +741512 317 +741520 601 +741532 225 +741599 193 +741604 175 +741609 239 +741610 191 +741614 236 +741615 319 +741642 278 +741656 801 +741680 214 +741726 194 +741798 195 +741840 200 +741862 181 +741924 155 +741934 270 +741962 224 +742001 283 +742020 175 +742033 178 +742109 187 +742115 285 +742120 201 +742175 378 +742188 208 +742253 372 +742267 232 +742271 181 +742277 260 +742279 197 +742289 236 +742301 410 +742314 189 +742342 183 +742344 375 +742348 293 +742373 226 +742436 203 +742465 207 +742472 342 +742490 438 +742495 187 +742593 188 +742604 187 +742607 201 +742610 216 +742629 189 +742662 293 +742666 270 +742667 481 +742746 399 +742778 240 +742843 224 +742853 191 +742866 315 +742878 313 +742929 341 +743009 321 +743013 222 +743018 429 +743033 175 +743082 182 +743090 372 +743100 139 +743107 462 +743114 262 +743143 190 +743163 452 +743175 178 +743315 165 +743317 425 +743329 232 +743405 195 +743423 225 +743583 166 +743846 327 +743877 190 +743879 334 +743970 178 +743998 170 +744037 156 +744187 173 +744198 227 +744208 276 +744212 239 +744218 221 +744224 351 +744255 217 +744291 228 +744292 276 +744318 354 +744355 178 +744382 251 +744395 183 +744405 180 +744434 543 +744597 360 +744609 164 +744617 189 +744643 242 +744650 193 +744744 329 +744745 155 +744772 334 +744778 183 +744947 199 +744954 598 +745072 172 +745077 184 +745093 357 +745098 153 +745193 260 +745200 199 +745210 386 +745220 387 +745222 123 +745226 214 +745228 216 +745253 251 +745259 177 +745261 149 +745265 234 +745383 945 +745425 671 +745460 199 +745777 449 +746088 218 +746138 146 +746205 226 +746254 185 +746260 603 +746271 215 +746273 299 +746277 170 +746294 155 +746301 416 +746306 260 +746340 198 +746344 268 +746348 197 +746413 178 +746435 1152 +746451 220 +746466 183 +746499 186 +746537 213 +746551 229 +746711 291 +746800 167 +746859 172 +746920 164 +746945 263 +747069 275 +747090 350 +747115 293 +747145 262 +747229 197 +747310 174 +747338 217 +747348 254 +747357 262 +747430 185 +747483 152 +747588 209 +747597 400 +747668 217 +747714 199 +747846 286 +748146 171 +748168 259 +748170 193 +748233 186 +748284 182 +748293 196 +748298 281 +748308 224 +748328 180 +748405 209 +748425 206 +748432 273 +748475 714 +748478 188 +748485 164 +748522 300 +748537 150 +748539 279 +748573 204 +748575 216 +748580 244 +748586 195 +748603 224 +748648 182 +748657 385 +748758 211 +748804 208 +748808 167 +748821 168 +748827 270 +748838 175 +748920 178 +748938 225 +748975 286 +749004 200 +749026 374 +749042 186 +749057 225 +749094 305 +749124 191 +749125 187 +749128 387 +749206 241 +749226 422 +749295 348 +749332 181 +749351 187 +749360 230 +749399 280 +749451 186 +749470 326 +750190 203 +750287 216 +750380 238 +750382 197 +750423 205 +750500 188 +750522 177 +750529 739 +750572 353 +750600 199 +750604 370 +750620 225 +750621 808 +750624 464 +750649 234 +750681 114 +750692 568 +750701 274 +750798 182 +750802 160 +750854 183 +750889 352 +750939 443 +750956 429 +750985 201 +751013 263 +751019 462 +751116 217 +751165 219 +751197 222 +751206 226 +751301 180 +751312 273 +751343 157 +751362 373 +751507 290 +751582 158 +751606 176 +751629 238 +751641 242 +751744 143 +751779 146 +751782 232 +751803 181 +751921 263 +751997 219 +752035 182 +752046 160 +752078 212 +752088 192 +752095 367 +752111 219 +752113 162 +752137 181 +752229 273 +752241 233 +752388 273 +752420 180 +752659 226 +752671 188 +752691 203 +752693 157 +752699 374 +752789 251 +752794 383 +752876 215 +752954 167 +753018 285 +753025 221 +753026 387 +753087 181 +753100 189 +753133 180 +753234 187 +753249 307 +753362 306 +753367 193 +753397 364 +753429 200 +753441 190 +753450 186 +753470 240 +753630 288 +753645 197 +753671 507 +753673 183 +753678 235 +753679 193 +753688 195 +753780 351 +753859 181 +753866 181 +753895 192 +753941 194 +753969 187 +754046 192 +754085 255 +754107 228 +754182 322 +754312 243 +754417 371 +754457 208 +754485 350 +754580 296 +754607 406 +754643 235 +754707 197 +754711 239 +754723 198 +754759 231 +754892 187 +754906 173 +754941 189 +755085 357 +755162 160 +755206 145 +755261 840 +755432 205 +755475 270 +755515 178 +755578 396 +755615 315 +755650 203 +755652 181 +755889 269 +755898 233 +755927 178 +756015 187 +756019 192 +756185 199 +756186 484 +756220 630 +756306 350 +756363 343 +756366 134 +756459 212 +756461 704 +756528 297 +756729 607 +756778 185 +756789 184 +756813 391 +756842 614 +756876 261 +756951 255 +757001 333 +757040 207 +757057 188 +757058 252 +757082 149 +757100 498 +757112 229 +757149 245 +757150 197 +757204 308 +757208 193 +757209 150 +757252 252 +757473 396 +757487 243 +757601 279 +757614 780 +757664 455 +757697 197 +757731 170 +757747 176 +757761 298 +757834 228 +758018 257 +758032 202 +758067 280 +758073 245 +758170 173 +758216 187 +758221 211 +758222 186 +758235 229 +758294 449 +758327 232 +758436 550 +758439 212 +758450 199 +758510 105 +758572 355 +758580 215 +758643 206 +758766 206 +758775 504 +758810 440 +758822 199 +758829 287 +758831 124 +758832 262 +758848 181 +758849 156 +758863 388 +758866 216 +758967 67 +758976 257 +759026 235 +759183 178 +759216 465 +759221 586 +759242 325 +759272 349 +759295 259 +759344 443 +759375 296 +759385 151 +759400 276 +759403 193 +759408 410 +759468 186 +759524 186 +759561 296 +759732 394 +759762 174 +759780 363 +759862 168 +759878 189 +759881 328 +759915 309 +760018 189 +760144 176 +760198 74 +760257 211 +760276 228 +760281 156 +760300 219 +760367 312 +760400 152 +760421 407 +760514 263 +760556 304 +760564 177 +760591 251 +760647 178 +760675 235 +760693 251 +760773 187 +760851 1515 +760855 169 +760859 173 +760865 187 +760895 132 +760896 325 +760958 256 +761054 327 +761060 186 +761124 180 +761208 175 +761279 747 +761312 246 +761367 206 +761428 241 +761444 192 +761480 199 +761493 255 +761556 253 +761597 382 +761653 1290 +761668 314 +761679 484 +761681 319 +761826 435 +761846 210 +761892 292 +762060 502 +762171 643 +762185 237 +762187 273 +762239 208 +762269 216 +762331 193 +762351 177 +762393 209 +762418 286 +762472 108 +762893 193 +762900 181 +762901 155 +762981 222 +762988 328 +763045 343 +763078 194 +763094 317 +763160 174 +763165 199 +763222 168 +763275 177 +763286 309 +763316 190 +763342 346 +763366 1026 +763633 339 +763675 329 +763690 246 +763814 294 +764024 124 +764183 320 +764199 375 +764229 284 +764244 228 +764291 254 +764305 190 +764381 242 +764389 183 +764402 153 +764487 284 +764499 575 +764554 275 +764592 358 +764924 166 +765069 146 +765105 173 +765122 438 +765175 666 +765196 294 +765297 241 +765335 193 +765464 332 +765478 243 +765573 176 +765583 242 +765624 174 +765667 178 +765686 264 +765694 204 +765724 232 +765776 152 +765796 193 +765987 282 +766012 753 +766105 311 +766125 231 +766146 447 +766351 207 +766377 412 +766437 222 +766465 159 +766517 222 +766623 434 +766649 155 +766656 201 +766684 276 +766696 415 +766733 584 +767015 947 +767045 143 +767114 195 +767132 403 +767147 261 +767154 184 +767181 245 +767194 77 +767236 175 +767253 192 +767259 297 +767293 275 +767305 213 +767417 226 +767485 1276 +767509 152 +767543 123 +767547 394 +767628 217 +767657 190 +767695 265 +767705 181 +767756 346 +767762 198 +767807 193 +767828 305 +768007 239 +768027 293 +768059 256 +768088 183 +768125 308 +768126 156 +768223 383 +768322 218 +768342 242 +768344 206 +768404 187 +768421 143 +768445 320 +768448 238 +768498 205 +768512 202 +768567 187 +768661 766 +768747 187 +768960 180 +768996 249 +769002 379 +769017 181 +769061 259 +769101 326 +769133 255 +769306 391 +769440 393 +769477 225 +769635 910 +769652 198 +769686 233 +769742 284 +769745 181 +769768 319 +769778 198 +769807 181 +769948 207 +770119 181 +770226 21 +770247 217 +770260 206 +770284 277 +770315 253 +770430 208 +770461 217 +770490 247 +770547 528 +770670 193 +770786 192 +770792 307 +770798 214 +770845 260 +770847 196 +770995 199 +771072 132 +771108 178 +771120 149 +771123 190 +771128 332 +771181 210 +771258 181 +771302 174 +771323 235 +771360 877 +771404 177 +771478 197 +771603 208 +771651 900 +771680 279 +771807 187 +771929 129 +771992 387 +772034 217 +772132 190 +772226 293 +772265 320 +772275 299 +772299 265 +772321 235 +772435 237 +772443 173 +772449 190 +772471 178 +772533 164 +772560 294 +772564 578 +772719 178 +772739 249 +772743 353 +772746 175 +772936 168 +773013 193 +773047 193 +773136 259 +773137 193 +773152 174 +773302 170 +773315 386 +773356 193 +773419 171 +773450 245 +773470 189 +773503 598 +773680 168 +773720 576 +773869 192 +773887 174 +773934 199 +773984 176 +774057 257 +774097 677 +774171 247 +774223 284 +774276 155 +774277 445 +774391 196 +774425 243 +774436 278 +774563 601 +774651 230 +775028 220 +775045 190 +775101 273 +775141 469 +775200 186 +775347 253 +775350 267 +775386 166 +775392 186 +775426 298 +775486 211 +775593 134 +775624 362 +775827 143 +775890 277 +775972 382 +775987 163 +776003 196 +776027 444 +776085 172 +776099 278 +776208 236 +776370 149 +776396 214 +776454 177 +776481 381 +776503 575 +776735 302 +776736 275 +776795 209 +776797 182 +776825 273 +776844 192 +776865 204 +776887 231 +776943 187 +777058 199 +777064 230 +777152 205 +777186 172 +777237 195 +777561 250 +777573 337 +777612 141 +777649 208 +777718 1484 +777801 274 +777802 183 +777913 188 +778045 187 +778049 202 +778088 209 +778099 149 +778173 598 +778224 362 +778327 182 +778334 181 +778395 287 +778422 205 +778524 232 +778555 226 +778583 213 +778720 187 +778731 199 +778931 199 +778948 207 +778969 202 +778984 212 +779019 331 +779024 248 +779037 156 +779050 218 +779090 175 +779149 242 +779191 241 +779199 479 +779245 159 +779288 311 +779343 403 +779396 280 +779405 186 +779433 293 +779436 394 +779448 381 +779544 348 +779591 441 +779730 543 +779825 176 +779831 375 +779887 333 +779930 363 +780059 331 +780063 195 +780066 169 +780095 204 +780226 375 +780324 155 +780524 232 +780605 171 +780688 177 +780719 567 +780748 249 +780990 313 +781048 159 +781053 187 +781106 186 +781113 222 +781256 180 +781310 267 +781581 188 +781647 217 +781710 500 +781725 416 +781778 119 +781896 209 +781950 153 +782015 308 +782045 193 +782083 126 +782087 221 +782152 322 +782193 190 +782221 145 +782324 202 +782338 143 +782426 187 +782595 243 +782666 251 +782969 448 +782986 171 +783346 278 +783382 265 +783395 180 +783413 101 +783434 139 +783477 187 +783510 183 +783520 185 +783547 181 +783573 328 +783705 238 +783720 166 +783889 155 +783909 257 +783969 181 +784009 185 +784115 229 +784181 193 +784191 296 +784300 210 +784352 174 +784392 498 +784468 180 +784496 327 +784513 174 +784585 225 +784589 177 +784652 197 +784741 186 +784743 402 +784747 209 +784812 128 +784820 163 +784839 206 +784861 193 +784882 453 +785015 169 +785022 177 +785026 227 +785073 275 +785307 168 +785311 349 +785470 244 +785496 266 +785545 284 +785589 246 +785590 230 +785837 286 +785851 205 +785888 207 +785963 168 +785974 196 +785983 384 +785989 428 +786075 343 +786142 270 +786224 374 +786344 227 +786384 195 +786438 196 +786600 208 +786609 259 +786661 432 +786662 166 +786691 326 +786710 315 +786721 371 +786722 216 +786731 493 +786780 385 +786784 225 +786821 233 +786826 244 +786851 738 +786922 408 +786940 421 +786965 402 +786978 230 +787073 187 +787082 184 +787161 272 +787182 581 +787189 189 +787199 179 +787228 187 +787237 171 +787295 173 +787492 190 +787529 183 +787552 669 +787593 295 +787613 216 +787628 187 +787644 198 +787651 287 +787681 212 +787711 182 +787713 187 +787717 141 +787718 484 +787720 236 +787722 202 +787724 311 +787727 203 +787734 178 +787735 296 +787736 251 +787739 725 +787742 148 +787744 217 +787746 213 +787748 175 +787750 166 +787752 160 +787753 152 +787759 206 +787760 199 +787762 152 +787766 260 +787775 307 +787776 170 +787786 379 +787788 193 +787789 168 +787790 299 +787794 204 +787797 222 +787799 127 +787802 405 +787804 328 +787806 274 +787809 195 +787812 404 +787813 160 +787814 293 +787818 256 +787819 271 +787824 221 +787835 290 +787836 189 +787837 250 +787838 204 +787843 498 +787844 147 +787850 193 +787851 167 +787861 344 +787866 186 +787869 177 +787872 223 +787874 447 +787877 227 +787899 171 +787940 202 +787960 190 +787962 308 +788009 174 +788072 244 +788092 239 +788156 356 +788164 358 +788353 283 +788431 298 +788490 199 +788532 216 +788554 341 +788585 253 +788664 336 +788779 187 +788995 220 +788997 216 +789037 975 +789040 235 +789043 220 +789044 303 +789053 208 +789055 151 +789057 278 +789070 204 +789071 203 +789073 184 +789080 256 +789091 172 +789092 725 +789096 190 +789100 302 +789102 205 +789109 182 +789127 195 +789153 283 +789155 211 +789167 223 +789168 469 +789169 112 +789173 236 +789174 185 +789175 305 +789200 127 +789203 191 +789204 202 +789206 202 +789220 185 +789222 142 +789225 128 +789227 378 +789231 239 +789258 241 +789262 166 +789264 232 +789265 142 +789267 555 +789273 302 +789282 202 +789285 172 +789288 198 +789291 203 +789294 211 +789296 315 +789298 278 +789299 262 +789300 192 +789302 162 +789304 188 +789305 192 +789311 400 +789317 189 +789320 662 +789321 256 +789331 223 +789335 162 +789336 671 +789337 184 +789338 149 +789341 275 +789343 409 +789344 492 +789350 214 +789359 358 +789360 148 +789365 167 +789372 187 +789653 149 +789700 199 +789767 208 +789786 208 +789787 249 +789870 192 +789926 219 +790030 170 +790060 171 +790065 318 +790073 187 +790074 326 +790076 416 +790077 309 +790079 254 +790084 469 +790087 200 +790089 166 +790092 178 +790093 296 +790094 154 +790096 213 +790097 152 +790098 352 +790104 220 +790108 232 +790110 217 +790111 165 +790112 493 +790116 252 +790117 253 +790118 165 +790119 195 +790120 187 +790122 186 +790123 273 +790124 252 +790126 230 +790128 359 +790130 278 +790132 264 +790133 439 +790134 191 +790135 298 +790136 487 +790137 600 +790138 466 +790139 369 +790140 77 +790142 175 +790144 296 +790145 179 +790146 520 +790148 412 +790149 311 +790153 160 +790154 278 +790155 196 +790158 205 +790159 141 +790160 284 +790161 195 +790162 199 +790164 198 +790167 187 +790169 612 +790170 192 +790172 237 +790173 362 +790176 199 +790179 219 +790180 361 +790182 291 +790184 321 +790185 233 +790188 195 +790190 403 +790191 301 +790193 134 +790194 430 +790197 399 +790199 213 +790200 184 +790202 174 +790203 165 +790205 228 +790206 148 +790207 172 +790210 201 +790211 231 +790212 178 +790214 175 +790217 89 +790219 163 +790220 197 +790221 160 +790222 222 +790224 182 +790225 271 +790226 180 +790227 249 +790228 193 +790229 400 +790230 138 +790231 290 +790232 253 +790233 226 +790238 283 +790240 232 +790241 206 +790245 184 +790247 180 +790249 219 +790252 301 +790255 217 +790256 168 +790257 221 +790260 426 +790261 196 +790262 344 +790263 237 +790265 213 +790269 193 +790272 202 +790274 217 +790280 208 +790284 196 +790286 291 +790287 401 +790289 215 +790293 199 +790294 171 +790295 190 +790297 173 +790298 216 +790299 171 +790302 212 +790303 187 +790307 191 +790308 154 +790312 483 +790313 117 +790315 185 +790316 169 +790319 204 +790322 307 +790339 176 +790347 251 +790350 176 +790354 187 +790360 181 +790368 286 +790370 248 +790374 182 +790376 265 +790380 122 +790382 204 +790385 180 +790386 170 +790388 211 +790389 217 +790390 198 +790391 262 +790395 170 +790396 174 +790398 141 +790399 217 +790400 174 +790401 183 +790402 226 +790404 241 +790409 348 +790410 206 +790414 212 +790417 203 +790418 152 +790420 251 +790426 406 +790429 195 +790438 173 +790440 453 +790441 180 +790443 217 +790444 181 +790448 491 +790450 338 +790451 174 +790456 771 +790459 161 +790460 149 +790463 289 +790465 168 +790466 312 +790469 176 +790471 186 +790472 204 +790474 180 +790478 268 +790550 323 +790585 389 +790706 363 +790718 296 +790890 207 +790921 307 +790955 239 +790972 488 +790998 290 +791010 395 +791037 236 +791055 166 +791064 555 +791072 181 +791157 455 +791196 242 +791344 199 +791373 168 +791433 379 +791632 174 +791671 436 +791675 250 +791710 181 +791759 181 +791854 229 +791855 173 +791867 209 +791893 337 +791919 210 +791925 234 +791950 193 +792010 202 +792019 184 +792024 306 +792081 633 +792091 398 +792097 297 +792190 312 +792192 181 +792200 252 +792204 180 +792208 213 +792218 185 +792219 232 +792230 176 +792235 231 +792247 191 +792248 231 +792254 192 +792259 112 +792260 250 +792263 197 +792265 495 +792276 205 +792305 289 +792308 290 +792315 183 +792319 339 +792330 255 +792332 223 +792335 191 +792339 480 +792359 214 +792360 287 +792377 386 +792386 407 +792469 360 +792476 283 +792480 198 +792481 196 +792487 379 +792495 196 +792505 170 +792514 305 +792517 249 +792519 216 +792526 392 +792529 202 +792531 374 +792534 425 +792535 375 +792541 220 +792542 223 +792546 154 +792547 180 +792548 195 +792552 188 +792555 234 +792557 254 +792559 202 +792561 392 +792571 174 +792575 175 +792580 246 +792584 264 +792600 221 +792603 257 +792605 171 +792626 193 +792630 321 +792634 203 +792641 149 +792644 190 +792645 242 +792648 212 +792651 183 +792661 189 +792667 189 +792676 299 +792679 165 +792684 388 +792686 177 +792687 417 +792700 269 +792708 181 +792726 247 +792751 212 +792801 187 +792802 189 +792806 174 +792807 184 +792814 140 +792815 328 +792819 280 +792837 237 +792841 223 +792851 262 +792854 170 +792856 167 +792858 389 +792859 252 +792876 192 +792884 187 +792891 288 +792892 170 +792894 233 +792899 193 +792902 222 +792908 295 +792919 216 +792929 199 +792937 324 +792969 202 +793003 212 +793005 163 +793054 194 +793073 194 +793075 195 +793109 190 +793178 180 +793183 187 +793189 261 +793191 219 +793199 187 +793201 177 +793212 177 +793230 248 +793259 191 +793265 171 +793274 230 +793286 235 +793304 131 +793372 287 +793374 362 +793377 258 +793378 267 +793398 210 +793422 194 +793435 175 +793439 170 +793461 174 +793469 246 +793479 217 +793489 163 +793492 222 +793495 167 +793497 174 +793516 191 +793519 193 +793612 216 +793621 179 +793629 335 +793669 174 +793687 542 +793693 173 +793710 224 +793717 179 +793719 187 +793724 181 +793753 190 +793806 77 +793808 229 +793814 254 +793831 178 +793835 242 +793841 193 +793859 184 +793895 181 +793927 260 +794045 205 +794116 287 +794394 440 +794455 220 +794456 176 +794459 294 +794461 440 +794462 234 +794465 394 +794474 568 +794475 309 +794479 180 +794481 246 +794482 317 +794487 198 +794494 189 +794496 289 +794506 274 +794508 376 +794513 251 +794515 261 +794522 170 +794523 178 +794527 235 +794531 192 +794538 511 +794541 193 +794545 186 +794550 305 +794556 190 +794567 376 +794571 195 +794595 193 +794601 224 +794608 193 +794611 205 +794612 214 +794613 304 +794614 187 +794626 301 +794627 294 +794630 319 +794636 268 +794637 205 +794638 403 +794641 177 +794646 420 +794648 811 +794650 293 +794664 220 +794669 235 +794684 224 +794689 199 +794695 173 +794706 224 +794709 199 +794796 237 +794825 270 +794979 183 +795037 343 +795074 226 +795319 212 +795378 230 +795504 184 +795538 274 +795548 206 +795632 208 +795656 177 +795680 308 +795691 170 +795814 518 +795866 192 +795915 183 +795966 305 +795974 158 +796030 185 +796037 158 +796088 269 +796160 203 +796193 220 +796248 199 +796260 482 +796296 197 +796324 209 +796401 262 +796504 331 +796532 332 +796563 328 +796584 199 +796608 103 +796844 199 +796915 154 +796928 161 +796947 282 +796989 206 +797205 208 +797261 283 +797319 241 +797325 364 +797408 372 +797443 147 +797444 181 +797445 195 +797446 344 +797447 261 +797448 492 +797449 573 +797450 310 +797451 279 +797452 242 +797453 187 +797454 197 +797458 819 +797459 171 +797466 199 +797469 201 +797474 426 +797475 291 +797477 186 +797479 330 +797481 308 +797482 258 +797483 597 +797484 214 +797486 160 +797490 153 +797491 397 +797492 123 +797493 261 +797494 201 +797495 173 +797497 115 +797499 326 +797502 225 +797505 265 +797506 250 +797509 124 +797510 199 +797515 230 +797519 153 +797522 186 +797525 184 +797530 298 +797532 481 +797534 161 +797535 112 +797539 244 +797540 191 +797543 247 +797544 171 +797545 237 +797547 184 +797548 227 +797550 267 +797551 244 +797560 187 +797561 320 +797563 126 +797566 375 +797567 153 +797568 244 +797569 134 +797570 185 +797571 259 +797573 230 +797574 200 +797575 195 +797578 207 +797586 349 +797596 258 +797600 234 +797604 343 +797606 276 +797611 261 +797614 187 +797624 195 +797629 193 +797633 361 +797638 174 +797640 192 +797644 207 +797647 180 +797652 189 +797657 101 +797660 215 +797661 372 +797665 190 +797666 250 +797676 191 +797677 196 +797678 171 +797682 187 +797687 180 +797688 278 +797694 331 +797695 263 +797697 167 +797700 202 +797706 153 +797713 414 +797715 491 +797718 225 +797719 129 +797720 244 +797721 208 +797722 340 +797723 583 +797724 306 +797731 198 +797732 166 +797734 251 +797736 300 +797739 201 +797741 408 +797743 182 +797744 382 +797745 361 +797748 255 +797754 348 +797763 190 +797765 210 +797766 1792 +797776 152 +797777 261 +797780 231 +797782 167 +797785 149 +797792 309 +797795 507 +797801 216 +797802 174 +797807 249 +797809 142 +797810 132 +797811 196 +797825 289 +797834 1003 +797840 199 +797843 77 +797860 252 +797862 193 +797869 360 +797871 143 +797888 187 +798261 173 +798267 311 +798269 273 +798270 161 +798271 258 +798274 206 +798276 314 +798282 224 +798283 301 +798287 242 +798296 324 +798304 199 +798305 326 +798307 145 +798308 274 +798310 200 +798312 253 +798317 196 +798319 145 +798324 166 +798328 149 +798332 434 +798335 205 +798337 442 +798338 223 +798340 199 +798342 204 +798344 303 +798346 231 +798354 193 +798357 180 +798361 264 +798363 217 +798381 160 +798388 149 +798391 194 +798394 230 +798397 224 +798398 171 +798403 176 +798404 211 +798410 168 +798411 492 +798422 207 +798427 317 +798428 254 +798433 213 +798439 214 +798442 263 +798447 233 +798449 177 +798451 196 +798455 192 +798458 181 +798459 210 +798476 187 +798479 302 +798492 156 +798502 276 +798516 222 +798544 239 +798560 187 +798581 222 +798586 179 +798589 236 +798596 400 +798598 191 +798605 174 +798607 222 +798617 191 +798631 290 +798632 178 +798634 332 +798642 336 +798643 213 +798649 391 +798652 205 +798653 305 +798655 225 +798657 174 +798659 197 +798662 217 +798663 192 +798666 341 +798672 282 +798673 216 +798678 410 +798679 366 +798682 238 +798683 170 +798698 193 +798699 198 +798700 171 +798701 320 +798702 182 +798704 225 +798735 296 +798833 442 +799006 262 +799133 277 +799181 172 +799210 259 +799344 175 +1000000 128 +1000001 303 +1000003 279 +1000013 174 +1000015 288 +1000016 216 +1000017 353 +1000024 223 +1000025 222 +1000032 215 +1000037 275 +1000041 149 +1000048 187 +1000049 182 +1000052 202 +1000053 246 +1000066 282 +1000070 283 +1000078 70 +1000084 271 +1000090 229 +1000133 211 +1000134 314 +1000135 298 +1000137 219 +1000138 197 +1000144 583 +1000146 141 +1000147 262 +1000148 179 +1000149 181 +1000150 231 +1000156 282 +1000157 112 +1000159 185 +1000162 237 +1000167 186 +1000170 285 +1000172 344 +1000182 168 +1000184 190 +1000186 185 +1000188 167 +1000227 275 +1000242 175 +1000256 112 +1000259 149 +1000260 225 +1000264 297 +1000265 1424 +1000273 256 +1000276 190 +1000285 232 +1000300 187 +1000318 253 +1000360 219 +1000365 199 +1000373 199 +1000394 157 +1000417 210 +1000436 276 +1000441 371 +1000442 485 +1000454 193 +1000466 363 +1000471 418 +1000472 192 +1000486 139 +1000499 315 +1000501 157 +1000504 267 +1000510 183 +1000513 307 +1000515 215 +1000530 183 +1000537 214 +1000538 153 +1000542 258 +1000562 220 +1000570 225 +1000592 167 +1000616 206 +1000620 340 +1000648 298 +1000662 387 +1000690 191 +1000692 184 +1000698 193 +1000705 377 +1000707 193 +1000708 193 +1000720 225 +1000725 173 +1000736 220 +1000743 221 +1000759 233 +1000761 190 +1000785 459 +1000794 190 +1000801 376 +1000810 266 +1000814 217 +1000818 241 +1000825 187 +1000830 180 +1000831 467 +1000835 181 +1000840 187 +1000849 157 +1000853 220 +1000856 282 +1000861 188 +1000866 209 +1000873 340 +1000884 327 +1000890 217 +1000902 273 +1000904 172 +1000912 153 +1000924 195 +1000927 230 +1000929 175 +1000937 314 +1000939 210 +1000940 233 +1000945 131 +1000946 624 +1000949 196 +1000956 190 +1000983 211 +1000989 215 +1000995 139 +1001004 156 +1001005 205 +1001006 300 +1001020 174 +1001022 267 +1001032 232 +1001033 373 +1001039 275 +1001042 201 +1001056 177 +1001068 329 +1001096 208 +1001097 341 +1001101 174 +1001107 371 +1001108 175 +1001113 199 +1001125 197 +1001131 224 +1001133 184 +1001141 507 +1001143 185 +1001145 324 +1001153 232 +1001155 305 +1001157 261 +1001168 451 +1001173 181 +1001174 223 +1001179 125 +1001196 178 +1001202 211 +1001208 220 +1001224 224 +1001241 213 +1001250 269 +1001254 277 +1001264 325 +1001270 174 +1001302 450 +1001306 202 +1001307 224 +1001309 187 +1001310 229 +1001312 217 +1001314 202 +1001316 278 +1001330 221 +1001331 176 +1001332 214 +1001348 143 +1001361 788 +1001364 225 +1001372 199 +1001378 174 +1001388 174 +1001392 209 +1001407 719 +1001416 278 +1001418 536 +1001419 136 +1001421 215 +1001437 168 +1001438 250 +1001464 212 +1001479 234 +1001491 174 +1001494 187 +1001500 193 +1001507 245 +1001522 256 +1001552 300 +1001553 185 +1001559 168 +1001562 180 +1001563 187 +1001573 288 +1001574 160 +1001575 221 +1001578 288 +1001583 183 +1001595 148 +1001596 232 +1001598 178 +1001603 272 +1001606 156 +1001623 191 +1001627 233 +1001629 174 +1001630 200 +1001682 451 +1001692 231 +1001695 187 +1001711 214 +1001716 193 +1001730 202 +1001736 515 +1001773 177 +1001788 397 +1001796 220 +1001798 199 +1001805 237 +1001809 180 +1001816 275 +1001820 226 +1001822 173 +1001831 486 +1001832 330 +1001836 194 +1001844 180 +1001847 167 +1001856 1031 +1001869 332 +1001874 319 +1001881 386 +1001884 229 +1001902 225 +1001905 238 +1001916 262 +1001932 181 +1001937 215 +1001940 232 +1001941 209 +1001945 1512 +1001948 196 +1001955 385 +1001966 386 +1001975 205 +1001993 328 +1002018 194 +1002025 259 +1002026 257 +1002028 382 +1002030 197 +1002039 188 +1002040 180 +1002054 208 +1002057 342 +1002063 309 +1002078 232 +1002082 282 +1002098 243 +1002099 331 +1002105 205 +1002123 702 +1002134 173 +1002135 179 +1002141 178 +1002143 185 +1002150 478 +1002151 183 +1002156 172 +1002166 209 +1002183 194 +1002192 187 +1002195 453 +1002197 187 +1002211 169 +1002215 193 +1002217 216 +1002227 338 +1002230 306 +1002237 221 +1002256 276 +1002259 304 +1002263 261 +1002275 223 +1002318 193 +1002324 233 +1002341 190 +1002377 193 +1002385 522 +1002394 190 +1002407 159 +1002409 268 +1002412 187 +1002415 184 +1002417 223 +1002419 177 +1002425 316 +1002479 192 +1002500 284 +1002506 172 +1002508 221 +1002509 193 +1002511 410 +1002512 234 +1002514 178 +1002527 170 +1002546 273 +1002561 243 +1002564 233 +1002572 224 +1002579 180 +1002582 189 +1002585 218 +1002591 186 +1002609 263 +1002610 263 +1002618 181 +1002625 283 +1002633 177 +1002643 196 +1002644 327 +1002654 164 +1002661 180 +1002664 281 +1002673 270 +1002674 183 +1002695 150 +1002715 190 +1002719 232 +1002734 186 +1002752 181 +1002755 149 +1002757 214 +1002759 536 +1002761 262 +1002764 167 +1002790 316 +1002805 143 +1002807 780 +1002810 177 +1002818 243 +1002834 208 +1002835 214 +1002838 219 +1002872 204 +1002875 211 +1002884 493 +1002889 812 +1002890 203 +1002891 252 +1002919 189 +1002924 186 +1002930 174 +1002935 164 +1002938 175 +1002949 185 +1002958 241 +1002961 260 +1002965 240 +1002974 308 +1002976 201 +1002977 281 +1003003 185 +1003006 394 +1003009 213 +1003021 208 +1003026 177 +1003034 282 +1003036 194 +1003054 196 +1003090 184 +1003094 238 +1003099 345 +1003128 178 +1003134 196 +1003151 258 +1003154 152 +1003166 187 +1003169 198 +1003176 238 +1003178 255 +1003198 262 +1003207 190 +1003211 245 +1003212 181 +1003256 240 +1003260 191 +1003297 187 +1003299 252 +1003303 297 +1003316 203 +1003353 308 +1003356 201 +1003360 206 +1003364 205 +1003380 243 +1003391 180 +1003395 208 +1003410 232 +1003415 206 +1003421 213 +1003478 310 +1003483 174 +1003489 226 +1003509 193 +1003520 219 +1003522 184 +1003529 202 +1003534 250 +1003540 197 +1003560 149 +1003627 311 +1003628 405 +1003675 187 +1003726 488 +1003729 249 +1003759 334 +1003768 356 +1003770 568 +1003775 873 +1003786 303 +1003788 214 +1003790 181 +1003794 143 +1003796 271 +1003831 202 +1003844 328 +1003847 211 +1003865 146 +1003873 181 +1003895 205 +1003912 338 +1003927 486 +1003934 196 +1003948 202 +1003949 589 +1003959 374 +1003965 168 +1003980 196 +1003989 219 +1004008 186 +1004011 180 +1004015 214 +1004019 193 +1004026 244 +1004029 188 +1004038 266 +1004039 144 +1004059 199 +1004061 213 +1004070 178 +1004094 452 +1004096 186 +1004107 149 +1004136 169 +1004146 323 +1004147 301 +1004183 516 +1004197 233 +1004201 267 +1004221 161 +1004245 175 +1004249 260 +1004253 283 +1004255 181 +1004256 181 +1004257 247 +1004264 138 +1004279 345 +1004280 181 +1004290 172 +1004310 199 +1004323 196 +1004325 200 +1004344 181 +1004362 214 +1004368 255 +1004369 156 +1004374 448 +1004386 251 +1004391 228 +1004403 187 +1004404 183 +1004421 262 +1004431 659 +1004433 237 +1004441 323 +1004448 187 +1004452 193 +1004453 256 +1004464 631 +1004476 219 +1004480 187 +1004511 169 +1004521 193 +1004527 245 +1004562 201 +1004566 282 +1004571 170 +1004591 357 +1004593 193 +1004613 282 +1004624 199 +1004638 290 +1004641 188 +1004652 263 +1004658 180 +1004671 270 +1004675 218 +1004677 156 +1004680 212 +1004689 206 +1004695 202 +1004711 185 +1004712 157 +1004722 173 +1004728 192 +1004739 179 +1004746 312 +1004747 310 +1004748 507 +1004751 187 +1004756 234 +1004758 237 +1004760 181 +1004774 186 +1004781 465 +1004796 207 +1004807 385 +1004810 244 +1004815 224 +1004819 172 +1004823 193 +1004824 319 +1004842 283 +1004846 319 +1004853 256 +1004865 186 +1004878 165 +1004891 236 +1004892 200 +1004894 212 +1004920 265 +1004936 205 +1004940 217 +1004945 209 +1004969 607 +1004975 304 +1004990 169 +1004999 221 +1005000 375 +1005018 197 +1005027 258 +1005050 328 +1005052 194 +1005053 178 +1005057 233 +1005058 187 +1005076 323 +1005081 312 +1005084 267 +1005086 187 +1005089 187 +1005091 214 +1005096 418 +1005098 341 +1005111 187 +1005135 190 +1005143 182 +1005144 181 +1005147 198 +1005169 160 +1005175 188 +1005189 197 +1005194 180 +1005208 209 +1005217 203 +1005227 193 +1005248 202 +1005250 220 +1005254 219 +1005255 392 +1005268 209 +1005272 172 +1005276 213 +1005290 357 +1005317 198 +1005324 150 +1005327 196 +1005342 217 +1005372 143 +1005375 267 +1005377 176 +1005378 174 +1005380 168 +1005385 175 +1005399 180 +1005415 205 +1005417 410 +1005428 177 +1005437 191 +1005450 226 +1005470 187 +1005473 373 +1005486 233 +1005502 428 +1005505 210 +1005507 238 +1005521 821 +1005524 310 +1005531 166 +1005541 199 +1005568 202 +1005574 246 +1005595 180 +1005628 238 +1005630 244 +1005644 304 +1005654 306 +1005665 278 +1005671 174 +1005673 264 +1005688 187 +1005702 311 +1005708 312 +1005714 213 +1005716 186 +1005724 212 +1005728 281 +1005738 190 +1005746 205 +1005757 198 +1005771 227 +1005778 399 +1005790 196 +1005792 210 +1005793 232 +1005797 186 +1005806 190 +1005810 427 +1005826 174 +1005827 180 +1005833 189 +1005834 417 +1005838 218 +1005846 254 +1005847 415 +1005853 246 +1005858 436 +1005866 189 +1005870 300 +1005876 1003 +1005883 199 +1005888 211 +1005898 285 +1005904 202 +1005905 439 +1005919 269 +1005921 208 +1005932 200 +1005954 204 +1005960 239 +1005978 188 +1005979 185 +1005985 188 +1005990 156 +1005997 217 +1005999 167 +1006000 240 +1006010 219 +1006012 196 +1006014 179 +1006015 194 +1006017 179 +1006020 404 +1006028 174 +1006046 205 +1006049 195 +1006052 212 +1006061 183 +1006070 189 +1006078 311 +1006079 182 +1006082 184 +1006084 230 +1006088 293 +1006089 174 +1006091 285 +1006100 192 +1006108 213 +1006111 301 +1006112 252 +1006118 152 +1006119 275 +1006135 305 +1006136 180 +1006141 514 +1006147 220 +1006161 241 +1006164 187 +1006177 168 +1006183 185 +1006189 200 +1006190 173 +1006192 186 +1006211 233 +1006212 422 +1006213 181 +1006219 181 +1006221 459 +1006225 173 +1006228 170 +1006239 206 +1006246 174 +1006258 233 +1006267 192 +1006271 169 +1006293 196 +1006294 256 +1006307 220 +1006323 206 +1006325 323 +1006330 318 +1006339 177 +1006346 200 +1006358 313 +1006372 192 +1006373 157 +1006390 189 +1006391 461 +1006393 378 +1006399 208 +1006402 169 +1006404 588 +1006417 181 +1006419 438 +1006423 210 +1006430 215 +1006440 197 +1006450 186 +1006452 191 +1006453 247 +1006461 390 +1006464 212 +1006473 456 +1006489 271 +1006493 219 +1006495 194 +1006496 196 +1006497 199 +1006498 180 +1006500 212 +1006506 180 +1006508 236 +1006511 266 +1006512 354 +1006517 202 +1006521 506 +1006531 205 +1006534 181 +1006535 214 +1006536 307 +1006539 786 +1006542 262 +1006546 203 +1006549 190 +1006552 203 +1006556 232 +1006564 507 +1006567 193 +1006568 527 +1006569 227 +1006571 196 +1006574 183 +1006578 183 +1006587 178 +1006603 262 +1006606 215 +1006607 290 +1006612 165 +1006613 187 +1006616 183 +1006623 193 +1006625 312 +1006626 241 +1006631 431 +1006641 204 +1006651 215 +1006654 308 +1006655 335 +1006664 191 +1006665 245 +1006671 205 +1006681 193 +1006683 181 +1006703 599 +1006704 217 +1006709 209 +1006711 200 +1006722 281 +1006742 195 +1006750 328 +1006768 211 +1006770 241 +1006778 230 +1006781 416 +1006785 187 +1006789 180 +1006806 237 +1006811 233 +1006827 227 +1006829 361 +1006830 196 +1006835 228 +1006838 370 +1006839 274 +1006852 174 +1006856 349 +1006865 267 +1006890 290 +1006899 217 +1006907 265 +1006924 320 +1006930 219 +1006931 637 +1006933 334 +1006942 180 +1006949 201 +1006950 183 +1006952 180 +1006957 202 +1006972 181 +1006974 181 +1006977 173 +1006986 190 +1006988 500 +1006992 196 +1006994 322 +1007004 178 +1007022 180 +1007035 185 +1007036 250 +1007039 184 +1007041 218 +1007043 155 +1007063 204 +1007065 193 +1007067 177 +1007068 692 +1007071 199 +1007075 226 +1007081 232 +1007082 253 +1007093 551 +1007096 200 +1007107 199 +1007110 192 +1007112 159 +1007115 375 +1007117 186 +1007121 190 +1007125 410 +1007126 228 +1007146 658 +1007151 350 +1007157 190 +1007158 226 +1007159 393 +1007163 297 +1007172 204 +1007174 309 +1007175 222 +1007177 187 +1007180 348 +1007185 326 +1007190 187 +1007192 193 +1007196 208 +1007199 250 +1007210 234 +1007220 277 +1007221 277 +1007230 189 +1007233 1029 +1007239 196 +1007255 252 +1007263 182 +1007267 191 +1007268 251 +1007272 334 +1007289 250 +1007305 525 +1007306 371 +1007308 209 +1007313 293 +1007320 196 +1007341 293 +1007343 213 +1007359 476 +1007362 252 +1007365 221 +1007366 179 +1007367 217 +1007372 287 +1007390 234 +1007395 277 +1007403 198 +1007408 431 +1007413 219 +1007428 183 +1007430 187 +1007433 516 +1007442 195 +1007472 173 +1007473 196 +1007480 229 +1007482 183 +1007485 231 +1007489 174 +1007506 185 +1007520 291 +1007553 193 +1007565 332 +1007581 209 +1007609 218 +1007618 253 +1007624 190 +1007634 296 +1007637 213 +1007653 225 +1007654 409 +1007659 212 +1007662 259 +1007668 202 +1007672 193 +1007673 206 +1007677 301 +1007679 181 +1007683 196 +1007687 247 +1007705 236 +1007707 199 +1007709 303 +1007738 189 +1007741 248 +1007745 285 +1007749 237 +1007760 209 +1007761 200 +1007763 196 +1007772 294 +1007774 210 +1007792 178 +1007811 176 +1007818 285 +1007820 178 +1007835 282 +1007853 181 +1007856 345 +1007868 300 +1007895 284 +1007920 677 +1007925 401 +1007928 372 +1007949 269 +1007951 197 +1007988 186 +1008001 314 +1008006 347 +1008008 582 +1008033 184 +1008043 220 +1008049 217 +1008053 256 +1008071 199 +1008099 187 +1008106 468 +1008124 199 +1008127 173 +1008130 202 +1008131 265 +1008133 190 +1008146 214 +1008151 233 +1008168 188 +1008171 202 +1008176 317 +1008181 211 +1008188 183 +1008191 185 +1008193 226 +1008194 192 +1008196 192 +1008197 199 +1008200 228 +1008207 339 +1008217 209 +1008226 178 +1008229 223 +1008231 185 +1008234 600 +1008235 217 +1008237 193 +1008252 174 +1008254 368 +1008261 523 +1008276 204 +1008283 421 +1008290 206 +1008295 246 +1008300 281 +1008304 398 +1008328 193 +1008329 402 +1008333 220 +1008334 172 +1008336 251 +1008360 187 +1008369 731 +1008380 548 +1008393 177 +1008397 198 +1008398 249 +1008400 217 +1008405 300 +1008407 257 +1008409 174 +1008419 212 +1008421 202 +1008423 540 +1008444 230 +1008446 167 +1008450 327 +1008451 315 +1008458 196 +1008467 530 +1008469 304 +1008475 227 +1008477 269 +1008509 375 +1008513 242 +1008528 266 +1008544 180 +1008551 501 +1008559 207 +1008571 192 +1008579 177 +1008584 488 +1008614 176 +1008615 283 +1008617 176 +1008618 222 +1008628 255 +1008631 401 +1008633 164 +1008640 233 +1008650 245 +1008680 188 +1008684 199 +1008690 108 +1008691 187 +1008699 344 +1008706 189 +1008708 177 +1008723 215 +1008724 184 +1008733 751 +1008737 206 +1008738 201 +1008746 193 +1008747 187 +1008748 183 +1008754 186 +1008760 190 +1008772 266 +1008793 226 +1008796 180 +1008802 1217 +1008811 205 +1008818 209 +1008822 327 +1008829 291 +1008831 581 +1008837 215 +1008850 255 +1008861 186 +1008868 193 +1008870 190 +1008888 210 +1008898 217 +1008901 229 +1008921 194 +1008938 475 +1008942 202 +1008943 197 +1008960 305 +1008979 215 +1008989 174 +1008992 239 +1009006 186 +1009015 205 +1009021 167 +1009026 181 +1009030 186 +1009031 232 +1009047 204 +1009064 187 +1009070 257 +1009071 180 +1009076 188 +1009080 419 +1009082 192 +1009097 272 +1009098 318 +1009110 186 +1009116 187 +1009128 247 +1009143 257 +1009148 174 +1009152 206 +1009160 213 +1009161 168 +1009188 190 +1009194 187 +1009197 326 +1009198 261 +1009200 318 +1009203 183 +1009212 184 +1009218 265 +1009220 437 +1009232 159 +1009233 262 +1009237 235 +1009241 180 +1009242 586 +1009251 180 +1009259 223 +1009273 173 +1009276 254 +1009281 261 +1009295 183 +1009306 258 +1009307 184 +1009325 237 +1009340 259 +1009341 199 +1009345 196 +1009353 204 +1009364 259 +1009368 230 +1009399 231 +1009401 304 +1009403 223 +1009407 188 +1009408 155 +1009409 179 +1009426 230 +1009430 180 +1009443 238 +1009444 266 +1009446 202 +1009469 199 +1009470 155 +1009472 210 +1009475 232 +1009479 214 +1009485 180 +1009486 202 +1009494 181 +1009501 202 +1009509 549 +1009522 227 +1009535 229 +1009542 274 +1009544 220 +1009546 205 +1009547 234 +1009558 186 +1009561 186 +1009574 196 +1009589 196 +1009624 174 +1009627 352 +1009631 193 +1009636 245 +1009638 288 +1009640 162 +1009664 218 +1009675 177 +1009678 209 +1009681 311 +1009684 180 +1009688 326 +1009691 193 +1009695 444 +1009706 247 +1009708 383 +1009713 305 +1009715 249 +1009720 248 +1009725 217 +1009727 164 +1009735 324 +1009743 320 +1009763 179 +1009767 183 +1009783 539 +1009789 193 +1009790 190 +1009827 357 +1009836 283 +1009859 255 +1009860 242 +1009867 181 +1009870 161 +1009874 726 +1009883 544 +1009891 208 +1009903 204 +1009906 565 +1009909 203 +1009912 301 +1009913 254 +1009914 361 +1009923 283 +1009931 340 +1009935 197 +1009937 191 +1009939 291 +1009944 190 +1009947 231 +1009949 168 +1009954 178 +1009955 263 +1009956 260 +1009957 214 +1009971 244 +1009972 262 +1009973 187 +1009976 630 +1009985 191 +1009997 275 +1010002 189 +1010017 209 +1010019 198 +1010023 300 +1010031 355 +1010032 657 +1010033 186 +1010035 406 +1010043 190 +1010055 159 +1010068 210 +1010074 345 +1010075 186 +1010080 352 +1010081 206 +1010089 268 +1010096 179 +1010103 217 +1010108 259 +1010115 474 +1010138 219 +1010145 178 +1010148 127 +1010150 831 +1010161 201 +1010167 289 +1010181 191 +1010185 243 +1010196 276 +1010204 193 +1010211 255 +1010224 332 +1010235 187 +1010250 260 +1010266 314 +1010267 201 +1010274 174 +1010276 199 +1010291 197 +1010301 202 +1010307 161 +1010312 257 +1010317 247 +1010320 202 +1010326 258 +1010349 200 +1010351 220 +1010354 227 +1010367 206 +1010368 180 +1010369 212 +1010370 181 +1010378 102 +1010385 228 +1010390 180 +1010396 152 +1010417 205 +1010418 189 +1010434 181 +1010449 309 +1010451 211 +1010466 247 +1010473 197 +1010489 202 +1010490 221 +1010495 186 +1010504 614 +1010506 295 +1010508 212 +1010509 216 +1010512 180 +1010515 247 +1010518 190 +1010536 208 +1010545 188 +1010546 190 +1010547 211 +1010553 202 +1010559 181 +1010567 173 +1010574 295 +1010580 195 +1010591 288 +1010592 193 +1010597 177 +1010598 334 +1010622 648 +1010630 174 +1010638 187 +1010647 175 +1010655 275 +1010660 187 +1010662 227 +1010666 259 +1010668 198 +1010669 246 +1010685 238 +1010690 266 +1010705 218 +1010706 191 +1010709 168 +1010710 205 +1010714 239 +1010722 1070 +1010743 161 +1010754 217 +1010776 265 +1010806 196 +1010813 380 +1010834 585 +1010846 172 +1010853 345 +1010861 192 +1010873 194 +1010891 376 +1010905 352 +1010910 253 +1010914 408 +1010941 414 +1010952 181 +1010956 279 +1010960 175 +1010961 213 +1010967 332 +1010973 185 +1010974 47 +1010982 202 +1010983 200 +1010986 446 +1010987 313 +1010992 233 +1011007 180 +1011013 209 +1011017 690 +1011021 231 +1011022 190 +1011034 312 +1011041 360 +1011053 205 +1011059 192 +1011075 205 +1011078 264 +1011079 322 +1011088 249 +1011092 324 +1011097 167 +1011101 466 +1011105 193 +1011115 199 +1011116 252 +1011124 192 +1011128 461 +1011129 374 +1011135 243 +1011136 318 +1011139 190 +1011143 184 +1011145 371 +1011147 403 +1011157 276 +1011169 183 +1011171 400 +1011186 268 +1011189 186 +1011190 201 +1011192 373 +1011203 208 +1011208 186 +1011209 198 +1011211 219 +1011214 190 +1011224 209 +1011225 187 +1011229 331 +1011236 619 +1011240 370 +1011247 187 +1011257 253 +1011261 284 +1011268 203 +1011269 268 +1011272 330 +1011274 406 +1011280 181 +1011281 208 +1011282 285 +1011284 465 +1011289 350 +1011294 205 +1011304 182 +1011308 282 +1011317 330 +1011326 187 +1011336 584 +1011340 172 +1011343 201 +1011353 218 +1011361 236 +1011367 160 +1011370 184 +1011375 199 +1011381 363 +1011384 231 +1011387 271 +1011400 202 +1011402 530 +1011403 198 +1011419 181 +1011426 264 +1011429 285 +1011440 180 +1011449 423 +1011451 450 +1011482 205 +1011484 304 +1011490 231 +1011504 700 +1011505 303 +1011506 501 +1011518 178 +1011520 247 +1011532 314 +1011544 210 +1011548 247 +1011549 202 +1011559 208 +1011581 193 +1011583 435 +1011584 180 +1011591 190 +1011592 176 +1011593 407 +1011606 245 +1011609 208 +1011625 323 +1011634 197 +1011663 195 +1011670 221 +1011672 205 +1011679 156 +1011681 186 +1011684 215 +1011691 217 +1011692 192 +1011693 206 +1011713 178 +1011722 167 +1011745 300 +1011746 186 +1011751 207 +1011760 286 +1011771 196 +1011778 189 +1011781 178 +1011789 186 +1011790 235 +1011791 268 +1011803 152 +1011814 297 +1011818 178 +1011831 206 +1011840 163 +1011845 213 +1011854 161 +1011855 183 +1011857 183 +1011873 188 +1011886 234 +1011893 192 +1011899 171 +1011914 263 +1011931 293 +1011932 191 +1011961 223 +1011963 265 +1011967 214 +1011979 201 +1011993 419 +1011996 409 +1012000 253 +1012010 217 +1012011 345 +1012018 227 +1012021 190 +1012026 183 +1012027 187 +1012033 202 +1012044 197 +1012049 220 +1012050 170 +1012052 258 +1012055 222 +1012068 188 +1012072 187 +1012073 181 +1012076 265 +1012097 183 +1012098 357 +1012107 177 +1012119 157 +1012120 245 +1012122 253 +1012130 181 +1012156 224 +1012167 263 +1012170 185 +1012176 244 +1012178 311 +1012183 147 +1012184 184 +1012189 414 +1012194 257 +1012199 192 +1012201 274 +1012202 276 +1012211 190 +1012231 325 +1012238 249 +1012251 214 +1012256 273 +1012270 181 +1012282 199 +1012286 203 +1012290 196 +1012294 209 +1012299 169 +1012309 460 +1012322 271 +1012332 187 +1012334 275 +1012340 425 +1012359 180 +1012369 191 +1012389 190 +1012435 231 +1012445 377 +1012451 167 +1012453 257 +1012470 230 +1012498 190 +1012548 180 +1012552 419 +1012558 201 +1012561 196 +1012563 218 +1012564 232 +1012570 197 +1012573 199 +1012590 159 +1012604 375 +1012612 380 +1012614 197 +1012616 190 +1012622 180 +1012628 182 +1012639 193 +1012643 181 +1012649 524 +1012657 258 +1012659 205 +1012674 255 +1012681 294 +1012689 202 +1012690 182 +1012705 278 +1012707 187 +1012708 193 +1012714 177 +1012720 322 +1012722 168 +1012724 194 +1012730 288 +1012735 209 +1012741 199 +1012754 203 +1012757 197 +1012760 204 +1012769 278 +1012771 197 +1012791 232 +1012801 205 +1012809 366 +1012810 182 +1012822 179 +1012840 243 +1012844 482 +1012845 275 +1012846 261 +1012851 193 +1012852 200 +1012859 170 +1012868 356 +1012870 205 +1012880 232 +1012888 398 +1012889 270 +1012912 225 +1012925 278 +1012946 261 +1012954 244 +1012968 232 +1012970 191 +1012975 155 +1012978 271 +1012979 196 +1012990 188 +1012996 250 +1013002 180 +1013004 250 +1013011 263 +1013018 265 +1013020 202 +1013021 174 +1013029 159 +1013034 172 +1013036 171 +1013048 223 +1013051 313 +1013064 323 +1013067 330 +1013077 214 +1013078 277 +1013080 329 +1013086 240 +1013089 177 +1013091 248 +1013096 207 +1013106 200 +1013127 195 +1013130 193 +1013137 375 +1013150 170 +1013156 187 +1013158 259 +1013161 337 +1013169 178 +1013181 189 +1013183 193 +1013184 234 +1013197 543 +1013212 193 +1013226 159 +1013233 191 +1013237 198 +1013247 184 +1013283 323 +1013287 190 +1013291 219 +1013295 190 +1013297 191 +1013301 271 +1013310 179 +1013312 197 +1013321 201 +1013327 199 +1013335 302 +1013336 249 +1013337 168 +1013338 356 +1013345 373 +1013347 298 +1013360 167 +1013380 264 +1013382 196 +1013388 190 +1013389 171 +1013390 249 +1013394 340 +1013396 395 +1013399 200 +1013404 236 +1013405 279 +1013406 170 +1013411 199 +1013413 258 +1013414 171 +1013417 223 +1013433 214 +1013437 206 +1013442 301 +1013450 226 +1013462 181 +1013466 230 +1013471 164 +1013474 246 +1013478 350 +1013488 137 +1013508 196 +1013510 222 +1013523 312 +1013532 216 +1013534 193 +1013545 199 +1013547 187 +1013550 185 +1013555 184 +1013560 185 +1013567 369 +1013568 313 +1013569 260 +1013576 265 +1013596 188 +1013616 637 +1013630 217 +1013632 212 +1013643 160 +1013645 196 +1013650 442 +1013653 209 +1013658 187 +1013659 199 +1013667 462 +1013674 199 +1013693 195 +1013707 271 +1013709 203 +1013712 190 +1013715 182 +1013720 305 +1013721 202 +1013723 180 +1013728 190 +1013729 342 +1013760 160 +1013781 190 +1013788 266 +1013812 241 +1013819 189 +1013825 192 +1013830 337 +1013833 200 +1013841 163 +1013845 175 +1013852 470 +1013853 314 +1013867 181 +1013870 316 +1013872 255 +1013876 298 +1013877 670 +1013879 251 +1013890 268 +1013895 223 +1013912 188 +1013916 209 +1013917 193 +1013919 355 +1013920 218 +1013930 195 +1013934 350 +1013946 195 +1013952 264 +1013966 269 +1013968 202 +1013974 392 +1013975 320 +1013976 174 +1013984 182 +1013989 338 +1013993 180 +1013999 355 +1014000 168 +1014007 316 +1014011 174 +1014017 220 +1014023 275 +1014032 181 +1014033 243 +1014034 208 +1014037 214 +1014038 191 +1014040 420 +1014041 229 +1014043 193 +1014046 337 +1014048 245 +1014053 278 +1014058 343 +1014066 183 +1014069 276 +1014072 198 +1014079 186 +1014085 181 +1014113 236 +1014119 241 +1014120 871 +1014124 158 +1014138 186 +1014145 174 +1014149 190 +1014152 290 +1014161 314 +1014164 357 +1014165 189 +1014181 181 +1014190 258 +1014191 183 +1014192 366 +1014193 202 +1014201 364 +1014212 232 +1014213 529 +1014215 270 +1014222 178 +1014223 364 +1014225 200 +1014235 190 +1014239 197 +1014242 478 +1014243 153 +1014246 186 +1014252 202 +1014259 423 +1014264 200 +1014271 374 +1014277 219 +1014279 180 +1014281 204 +1014282 185 +1014287 237 +1014292 240 +1014296 226 +1014297 221 +1014298 193 +1014299 185 +1014305 218 +1014313 415 +1014316 178 +1014324 166 +1014328 221 +1014333 184 +1014341 192 +1014342 185 +1014345 187 +1014354 190 +1014369 215 +1014371 223 +1014375 162 +1014383 159 +1014386 239 +1014395 184 +1014400 196 +1014410 198 +1014413 236 +1014425 214 +1014436 191 +1014437 221 +1014450 200 +1014454 174 +1014468 214 +1014472 455 +1014473 616 +1014476 178 +1014478 190 +1014483 240 +1014490 224 +1014493 174 +1014498 391 +1014500 222 +1014508 187 +1014510 193 +1014517 470 +1014520 282 +1014525 181 +1014530 213 +1014550 170 +1014570 536 +1014573 327 +1014585 208 +1014596 156 +1014598 446 +1014600 192 +1014616 238 +1014618 180 +1014622 182 +1014627 260 +1014633 171 +1014639 187 +1014653 196 +1014663 252 +1014684 257 +1014707 161 +1014720 242 +1014723 193 +1014727 244 +1014748 156 +1014753 175 +1014773 196 +1014777 552 +1014778 221 +1014780 227 +1014784 193 +1014785 229 +1014788 561 +1014809 187 +1014814 228 +1014818 217 +1014839 211 +1014847 182 +1014853 354 +1014861 362 +1014864 244 +1014869 173 +1014873 209 +1014880 167 +1014902 166 +1014916 171 +1014929 187 +1014933 194 +1014936 213 +1014940 186 +1014941 302 +1014949 458 +1014953 224 +1014971 203 +1014983 187 +1015006 174 +1015016 295 +1015017 171 +1015019 362 +1015022 160 +1015028 187 +1015033 208 +1015035 174 +1015036 205 +1015040 295 +1015046 180 +1015049 310 +1015052 205 +1015053 192 +1015057 190 +1015063 266 +1015064 210 +1015069 201 +1015071 185 +1015078 184 +1015080 186 +1015090 255 +1015091 187 +1015102 250 +1015114 196 +1015117 193 +1015118 225 +1015128 281 +1015129 251 +1015136 189 +1015144 188 +1015146 200 +1015151 395 +1015153 394 +1015154 225 +1015166 182 +1015168 180 +1015179 237 +1015186 183 +1015188 182 +1015197 271 +1015198 178 +1015202 248 +1015205 187 +1015207 176 +1015215 310 +1015225 228 +1015232 504 +1015243 339 +1015250 231 +1015259 192 +1015262 248 +1015264 287 +1015269 187 +1015273 224 +1015284 181 +1015285 202 +1015289 191 +1015297 296 +1015305 430 +1015310 233 +1015316 234 +1015324 251 +1015334 202 +1015337 187 +1015341 254 +1015344 223 +1015345 191 +1015361 168 +1015362 253 +1015364 179 +1015371 211 +1015376 555 +1015378 185 +1015379 208 +1015386 187 +1015394 193 +1015395 267 +1015402 162 +1015406 211 +1015410 192 +1015423 386 +1015425 163 +1015427 199 +1015430 282 +1015433 443 +1015436 213 +1015438 205 +1015441 193 +1015445 255 +1015447 191 +1015452 198 +1015455 287 +1015461 205 +1015462 274 +1015463 183 +1015475 210 +1015483 194 +1015492 193 +1015493 204 +1015498 261 +1015507 174 +1015510 352 +1015516 252 +1015520 193 +1015525 254 +1015536 257 +1015541 192 +1015543 196 +1015546 558 +1015557 225 +1015564 186 +1015581 193 +1015583 281 +1015592 243 +1015596 457 +1015613 187 +1015620 187 +1015622 184 +1015624 285 +1015625 383 +1015626 504 +1015632 247 +1015633 181 +1015634 268 +1015636 223 +1015639 265 +1015641 416 +1015650 193 +1015673 664 +1015674 203 +1015695 188 +1015697 188 +1015704 177 +1015712 211 +1015721 333 +1015724 199 +1015727 181 +1015736 195 +1015739 205 +1015746 223 +1015766 185 +1015769 196 +1015770 180 +1015779 174 +1015792 184 +1015795 425 +1015799 228 +1015808 216 +1015814 231 +1015818 168 +1015854 220 +1015857 187 +1015877 271 +1015890 196 +1015904 208 +1015911 299 +1015915 482 +1015917 203 +1015928 199 +1015940 170 +1015949 293 +1015955 182 +1015965 178 +1015975 202 +1015977 193 +1015998 199 +1016007 226 +1016009 226 +1016019 202 +1016027 556 +1016042 409 +1016047 230 +1016050 197 +1016051 273 +1016055 238 +1016058 157 +1016065 369 +1016085 188 +1016090 242 +1016091 314 +1016097 186 +1016099 194 +1016101 412 +1016112 408 +1016124 174 +1016128 616 +1016145 140 +1016152 193 +1016154 249 +1016166 181 +1016177 183 +1016187 265 +1016192 194 +1016193 198 +1016196 253 +1016205 178 +1016206 597 +1016212 189 +1016213 235 +1016218 218 +1016219 592 +1016238 178 +1016242 214 +1016258 183 +1016267 204 +1016272 178 +1016289 171 +1016302 297 +1016320 205 +1016326 180 +1016331 220 +1016333 221 +1016340 181 +1016345 251 +1016354 217 +1016355 267 +1016360 186 +1016362 235 +1016363 174 +1016373 180 +1016391 218 +1016392 205 +1016410 129 +1016412 184 +1016416 130 +1016419 193 +1016423 202 +1016429 186 +1016430 394 +1016453 247 +1016466 187 +1016467 212 +1016472 290 +1016473 182 +1016485 216 +1016490 662 +1016496 177 +1016502 214 +1016506 178 +1016510 242 +1016516 263 +1016517 324 +1016526 201 +1016532 213 +1016536 247 +1016554 214 +1016562 185 +1016569 186 +1016571 196 +1016578 174 +1016591 236 +1016593 185 +1016599 219 +1016605 204 +1016628 405 +1016636 490 +1016638 219 +1016652 238 +1016655 337 +1016656 199 +1016657 241 +1016658 178 +1016673 332 +1016677 433 +1016683 189 +1016691 149 +1016692 318 +1016696 180 +1016700 263 +1016716 187 +1016721 183 +1016725 314 +1016739 158 +1016740 208 +1016741 209 +1016749 337 +1016755 200 +1016766 266 +1016775 198 +1016780 181 +1016784 213 +1016793 260 +1016805 180 +1016807 239 +1016835 197 +1016840 204 +1016850 177 +1016859 219 +1016861 218 +1016866 193 +1016881 252 +1016902 187 +1016933 181 +1016942 291 +1016963 238 +1016974 290 +1016976 206 +1016989 197 +1016990 180 +1016991 208 +1016996 185 +1017005 192 +1017006 434 +1017007 411 +1017027 444 +1017028 414 +1017037 172 +1017044 184 +1017051 188 +1017063 178 +1017064 224 +1017087 193 +1017095 353 +1017099 299 +1017105 638 +1017114 183 +1017115 208 +1017120 337 +1017126 199 +1017133 166 +1017135 319 +1017161 211 +1017165 269 +1017172 268 +1017183 166 +1017205 246 +1017216 205 +1017225 193 +1017232 210 +1017235 235 +1017266 216 +1017276 295 +1017279 253 +1017303 227 +1017319 192 +1017326 202 +1017331 210 +1017347 190 +1017359 249 +1017370 173 +1017387 165 +1017388 166 +1017394 222 +1017398 187 +1017400 187 +1017410 900 +1017414 193 +1017416 254 +1017434 284 +1017454 276 +1017455 271 +1017532 193 +1017534 331 +1017546 228 +1017549 174 +1017550 330 +1017570 510 +1017577 343 +1017581 253 +1017585 639 +1017589 346 +1017600 410 +1017608 193 +1017615 142 +1017630 230 +1017631 247 +1017634 202 +1017651 312 +1017653 152 +1017663 180 +1017713 231 +1017736 620 +1017742 193 +1017743 187 +1017751 281 +1017761 177 +1017781 254 +1017787 256 +1017797 209 +1017806 409 +1017808 217 +1017813 207 +1017822 179 +1017826 193 +1017828 144 +1017844 188 +1017900 176 +1017919 293 +1017926 179 +1017928 190 +1017937 247 +1017938 248 +1017944 217 +1017957 199 +1017978 209 +1017985 181 +1018036 186 +1018044 222 +1018045 199 +1018075 211 +1018078 245 +1018080 227 +1018092 236 +1018097 183 +1018112 205 +1018113 205 +1018116 244 +1018124 309 +1018129 165 +1018147 244 +1018154 185 +1018168 354 +1018170 255 +1018186 199 +1018190 378 +1018209 237 +1018224 184 +1018227 459 +1018230 220 +1018232 180 +1018237 205 +1018238 150 +1018252 337 +1018255 484 +1018262 413 +1018263 289 +1018290 180 +1018294 196 +1018296 196 +1018318 214 +1018327 276 +1018330 180 +1018332 218 +1018338 229 +1018345 256 +1018357 343 +1018361 196 +1018362 140 +1018366 137 +1018384 227 +1018386 233 +1018389 263 +1018401 199 +1018438 217 +1018451 220 +1018459 271 +1018479 254 +1018481 252 +1018507 459 +1018509 175 +1018519 265 +1018521 181 +1018526 207 +1018540 103 +1018544 189 +1018563 217 +1018564 149 +1018567 235 +1018568 179 +1018599 186 +1018614 437 +1018615 168 +1018622 178 +1018627 202 +1018642 181 +1018648 279 +1018649 215 +1018658 808 +1018664 193 +1018665 219 +1018685 190 +1018699 196 +1018706 143 +1018724 491 +1018729 229 +1018735 187 +1018736 219 +1018740 187 +1018748 191 +1018759 161 +1018765 294 +1018782 214 +1018785 313 +1018793 185 +1018795 236 +1018802 198 +1018803 184 +1018809 165 +1018813 174 +1018814 253 +1018818 317 +1018839 201 +1018846 281 +1018848 264 +1018861 239 +1018875 186 +1018877 212 +1018886 160 +1018887 190 +1018890 190 +1018905 208 +1018907 285 +1018909 245 +1018917 126 +1018926 147 +1018929 209 +1018938 210 +1018944 245 +1018951 196 +1018992 181 +1018993 268 +1019005 200 +1019012 326 +1019027 202 +1019035 366 +1019038 188 +1019039 183 +1019048 226 +1019049 211 +1019050 288 +1019052 247 +1019055 159 +1019074 233 +1019080 196 +1019085 166 +1019089 262 +1019090 180 +1019092 288 +1019098 184 +1019110 223 +1019115 186 +1019117 460 +1019123 202 +1019127 227 +1019131 217 +1019133 168 +1019140 190 +1019162 206 +1019163 224 +1019178 205 +1019204 186 +1019210 208 +1019230 184 +1019237 185 +1019239 193 +1019240 194 +1019265 222 +1019275 196 +1019278 307 +1019280 252 +1019281 194 +1019282 543 +1019284 222 +1019288 217 +1019298 289 +1019308 198 +1019331 175 +1019332 192 +1019346 201 +1019348 371 +1019354 531 +1019356 309 +1019372 198 +1019380 314 +1019383 218 +1019388 790 +1019389 204 +1019396 194 +1019399 616 +1019408 408 +1019413 190 +1019417 268 +1019431 269 +1019433 198 +1019442 256 +1019448 188 +1019458 186 +1019464 196 +1019468 193 +1019479 199 +1019483 192 +1019485 226 +1019488 139 +1019491 161 +1019498 248 +1019501 187 +1019508 183 +1019518 184 +1019519 251 +1019526 278 +1019536 190 +1019546 225 +1019550 296 +1019581 210 +1019603 282 +1019605 191 +1019625 213 +1019637 181 +1019638 177 +1019648 180 +1019660 229 +1019661 184 +1019662 1341 +1019667 328 +1019671 185 +1019708 200 +1019724 205 +1019737 183 +1019740 228 +1019743 234 +1019747 150 +1019750 217 +1019751 220 +1019755 193 +1019759 258 +1019763 255 +1019766 187 +1019791 205 +1019792 254 +1019802 257 +1019804 238 +1019805 160 +1019806 181 +1019809 173 +1019851 183 +1019862 185 +1019880 293 +1019887 162 +1019891 174 +1019914 182 +1019917 493 +1019919 303 +1019920 174 +1019935 323 +1019948 1144 +1019957 227 +1019967 193 +1019968 202 +1019978 298 +1019979 181 +1019983 350 +1020025 320 +1020027 301 +1020041 193 +1020045 268 +1020057 151 +1020059 273 +1020066 157 +1020070 331 +1020072 245 +1020085 191 +1020089 165 +1020100 174 +1020101 201 +1020105 390 +1020116 334 +1020126 183 +1020138 199 +1020154 339 +1020155 264 +1020157 202 +1020165 102 +1020171 176 +1020178 509 +1020187 192 +1020195 272 +1020205 229 +1020210 194 +1020211 199 +1020213 518 +1020224 186 +1020225 298 +1020227 193 +1020229 560 +1020236 190 +1020241 232 +1020266 192 +1020267 206 +1020273 180 +1020294 180 +1020305 181 +1020308 191 +1020344 252 +1020348 243 +1020350 196 +1020352 235 +1020360 333 +1020367 259 +1020387 190 +1020395 190 +1020402 210 +1020407 214 +1020416 284 +1020437 262 +1020464 206 +1020470 229 +1020475 175 +1020484 172 +1020485 182 +1020493 224 +1020496 198 +1020503 225 +1020511 190 +1020512 189 +1020522 198 +1020525 186 +1020529 200 +1020532 270 +1020534 231 +1020574 199 +1020600 191 +1020623 216 +1020635 213 +1020643 196 +1020691 217 +1020698 183 +1020702 217 +1020704 225 +1020705 225 +1020752 286 +1020753 268 +1020755 703 +1020766 167 +1020772 186 +1020783 176 +1020797 187 +1020823 216 +1020832 217 +1020837 193 +1020843 198 +1020848 199 +1020878 172 +1020923 302 +1020940 436 +1020942 241 +1020943 184 +1020956 233 +1020980 233 +1020993 205 +1021032 199 +1021041 173 +1021067 163 +1021090 265 +1021092 263 +1021106 330 +1021117 221 +1021119 204 +1021127 336 +1021131 180 +1021138 221 +1021161 179 +1021193 193 +1021195 309 +1021197 212 +1021205 234 +1021214 242 +1021235 225 +1021248 292 +1021292 272 +1021294 609 +1021295 515 +1021307 174 +1021346 165 +1021380 202 +1021394 202 +1021395 198 +1021419 232 +1021426 211 +1021463 239 +1021487 332 +1021501 300 +1021514 212 +1021521 177 +1021522 217 +1021560 177 +1021562 283 +1021574 174 +1021583 197 +1021588 233 +1021594 257 +1021603 240 +1021614 223 +1021631 205 +1021653 343 +1021684 233 +1021688 189 +1021709 163 +1021713 179 +1021729 381 +1021731 315 +1021734 359 +1021750 174 +1021751 170 +1021756 426 +1021770 229 +1021795 184 +1021800 158 +1021808 186 +1021823 159 +1021828 1202 +1021831 205 +1021838 199 +1021854 205 +1021856 202 +1021865 192 +1021869 192 +1021872 208 +1021886 181 +1021888 245 +1021908 253 +1021913 236 +1021936 182 +1021974 235 +1021982 217 +1021983 226 +1021986 175 +1022055 185 +1022060 212 +1022069 185 +1022080 245 +1022086 181 +1022090 181 +1022093 313 +1022103 174 +1022107 249 +1022169 208 +1022178 202 +1022192 291 +1022195 204 +1022221 198 +1022229 189 +1022232 222 +1022246 229 +1022248 370 +1022253 143 +1022260 197 +1022263 292 +1022270 228 +1022286 181 +1022288 163 +1022302 162 +1022312 228 +1022337 185 +1022339 421 +1022340 196 +1022341 506 +1022343 187 +1022346 208 +1022357 247 +1022360 188 +1022367 180 +1022380 198 +1022382 215 +1022388 201 +1022394 180 +1022398 233 +1022404 175 +1022416 595 +1022419 187 +1022424 183 +1022435 271 +1022436 289 +1022439 416 +1022468 178 +1022489 158 +1022491 197 +1022492 198 +1022499 341 +1022507 263 +1022516 229 +1022522 193 +1022538 199 +1022564 365 +1022570 279 +1022575 427 +1022577 571 +1022588 180 +1022592 229 +1022593 193 +1022598 186 +1022606 232 +1022610 224 +1022611 168 +1022630 244 +1022642 187 +1022654 215 +1022746 173 +1022751 169 +1022764 396 +1022769 196 +1022792 201 +1022794 275 +1022799 265 +1022820 201 +1022841 205 +1022843 162 +1022853 219 +1022882 213 +1022889 265 +1022914 233 +1022921 305 +1022923 329 +1022924 205 +1022928 265 +1022940 312 +1022945 246 +1022947 287 +1022951 449 +1022952 241 +1022961 156 +1022972 269 +1022982 211 +1022985 189 +1022994 185 +1022997 265 +1023001 192 +1023002 248 +1023013 257 +1023023 250 +1023035 223 +1023042 431 +1023044 184 +1023048 264 +1023053 186 +1023066 224 +1023079 241 +1023089 205 +1023097 233 +1023104 217 +1023107 67 +1023121 255 +1023126 195 +1023128 292 +1023131 392 +1023135 192 +1023144 167 +1023155 176 +1023168 190 +1023182 186 +1023187 203 +1023193 205 +1023202 387 +1023206 190 +1023221 311 +1023229 180 +1023239 302 +1023241 187 +1023258 727 +1023261 232 +1023264 616 +1023278 238 +1023321 664 +1023324 187 +1023330 261 +1023340 299 +1023341 187 +1023344 172 +1023361 328 +1023372 462 +1023383 174 +1023384 208 +1023385 150 +1023399 172 +1023407 202 +1023413 189 +1023418 178 +1023444 219 +1023453 200 +1023485 166 +1023490 190 +1023497 310 +1023500 263 +1023505 174 +1023514 187 +1023518 183 +1023521 245 +1023522 221 +1023524 232 +1023528 208 +1023531 267 +1023536 217 +1023539 278 +1023550 224 +1023555 271 +1023567 218 +1023581 206 +1023585 181 +1023602 218 +1023606 223 +1023608 250 +1023611 187 +1023624 195 +1023630 214 +1023645 266 +1023664 254 +1023666 362 +1023675 310 +1023679 217 +1023681 173 +1023685 210 +1023703 199 +1023716 173 +1023732 378 +1023733 336 +1023734 232 +1023735 317 +1023736 412 +1023768 199 +1023777 213 +1023791 219 +1023793 274 +1023811 205 +1023816 196 +1023828 299 +1023832 189 +1023839 205 +1023843 187 +1023851 197 +1023859 217 +1023883 174 +1023887 192 +1023888 193 +1023890 183 +1023894 189 +1023911 242 +1023916 312 +1023919 290 +1023921 167 +1023937 282 +1023938 180 +1023939 202 +1023944 353 +1023946 163 +1023949 179 +1023950 211 +1023966 285 +1023982 211 +1023998 384 +1024002 242 +1024026 171 +1024032 248 +1024035 199 +1024041 174 +1024042 197 +1024048 236 +1024056 194 +1024063 291 +1024064 496 +1024072 187 +1024085 329 +1024088 150 +1024093 341 +1024115 328 +1024120 157 +1024124 187 +1024128 379 +1024130 198 +1024137 608 +1024170 202 +1024171 243 +1024176 189 +1024194 363 +1024199 192 +1024204 205 +1024208 175 +1024216 207 +1024221 248 +1024229 220 +1024233 187 +1024235 229 +1024237 196 +1024250 194 +1024251 201 +1024254 187 +1024258 204 +1024295 202 +1024309 204 +1024311 240 +1024317 190 +1024319 289 +1024321 258 +1024324 311 +1024328 240 +1024331 239 +1024333 206 +1024335 171 +1024339 139 +1024349 180 +1024352 196 +1024353 236 +1024363 230 +1024372 187 +1024384 235 +1024398 248 +1024417 185 +1024434 211 +1024438 199 +1024446 218 +1024447 211 +1024451 209 +1024460 149 +1024462 168 +1024469 197 +1024478 297 +1024491 198 +1024502 233 +1024503 211 +1024510 576 +1024521 244 +1024533 296 +1024536 191 +1024551 188 +1024552 187 +1024565 220 +1024570 167 +1024571 168 +1024573 174 +1024580 251 +1024581 362 +1024592 211 +1024607 187 +1024614 212 +1024660 341 +1024678 245 +1024691 181 +1024698 193 +1024705 185 +1024706 173 +1024714 202 +1024731 209 +1024750 186 +1024752 182 +1024757 193 +1024759 188 +1024764 215 +1024800 493 +1024803 286 +1024805 208 +1024806 365 +1024814 257 +1024818 222 +1024827 187 +1024839 349 +1024841 168 +1024866 188 +1024871 272 +1024875 203 +1024876 205 +1024881 194 +1024882 250 +1024884 223 +1024886 1082 +1024894 263 +1024898 169 +1024901 197 +1024909 181 +1024919 401 +1024932 202 +1024933 319 +1024947 236 +1024950 184 +1024953 187 +1024970 225 +1024986 192 +1025005 193 +1025012 621 +1025014 468 +1025018 184 +1025020 244 +1025046 519 +1025056 229 +1025073 237 +1025078 232 +1025079 256 +1025083 186 +1025096 196 +1025099 269 +1025106 170 +1025108 214 +1025120 181 +1025128 208 +1025131 435 +1025147 181 +1025162 176 +1025164 184 +1025168 206 +1025187 196 +1025190 224 +1025201 228 +1025243 205 +1025244 286 +1025245 192 +1025266 277 +1025272 193 +1025278 212 +1025291 251 +1025292 271 +1025294 188 +1025296 187 +1025298 186 +1025332 168 +1025338 196 +1025346 164 +1025357 211 +1025370 187 +1025373 188 +1025377 189 +1025378 204 +1025386 251 +1025401 208 +1025411 232 +1025414 258 +1025420 370 +1025446 197 +1025448 215 +1025459 164 +1025472 309 +1025476 228 +1025485 431 +1025487 351 +1025489 246 +1025499 231 +1025502 225 +1025514 238 +1025525 155 +1025527 435 +1025529 237 +1025532 224 +1025540 449 +1025543 155 +1025551 419 +1025565 226 +1025566 241 +1025568 195 +1025569 218 +1025587 684 +1025602 229 +1025605 168 +1025606 593 +1025608 189 +1025615 192 +1025621 383 +1025625 189 +1025633 322 +1025638 250 +1025641 329 +1025664 193 +1025665 190 +1025687 187 +1025696 263 +1025708 212 +1025715 189 +1025721 180 +1025722 161 +1025728 195 +1025732 217 +1025740 295 +1025756 297 +1025762 252 +1025770 319 +1025773 300 +1025784 214 +1025794 187 +1025806 318 +1025808 260 +1025809 187 +1025810 212 +1025815 189 +1025816 299 +1025850 457 +1025851 328 +1025853 258 +1025865 350 +1025881 175 +1025884 183 +1025890 214 +1025906 181 +1025917 232 +1025919 174 +1025922 183 +1025925 190 +1025933 273 +1025953 213 +1025968 143 +1025978 323 +1025988 348 +1026006 512 +1026016 187 +1026017 215 +1026019 202 +1026028 169 +1026035 181 +1026038 343 +1026064 196 +1026074 183 +1026076 169 +1026079 414 +1026082 229 +1026086 202 +1026101 215 +1026102 269 +1026104 232 +1026106 192 +1026114 198 +1026118 180 +1026120 262 +1026129 223 +1026138 122 +1026160 199 +1026166 202 +1026168 183 +1026184 221 +1026189 658 +1026192 229 +1026208 186 +1026223 263 +1026225 174 +1026229 174 +1026230 178 +1026232 185 +1026247 224 +1026253 362 +1026254 181 +1026260 315 +1026271 195 +1026274 217 +1026284 197 +1026289 185 +1026309 182 +1026310 192 +1026311 198 +1026318 305 +1026323 243 +1026324 462 +1026330 432 +1026334 278 +1026336 244 +1026340 187 +1026357 77 +1026370 233 +1026374 235 +1026378 490 +1026383 259 +1026384 178 +1026407 169 +1026408 236 +1026414 482 +1026427 195 +1026428 187 +1026429 231 +1026431 263 +1026433 265 +1026435 180 +1026436 217 +1026438 238 +1026449 239 +1026461 174 +1026462 276 +1026479 237 +1026490 197 +1026493 174 +1026494 196 +1026499 576 +1026501 199 +1026509 201 +1026525 380 +1026533 283 +1026540 194 +1026547 175 +1026557 467 +1026579 222 +1026590 210 +1026603 272 +1026613 619 +1026633 235 +1026642 299 +1026661 308 +1026667 248 +1026689 193 +1026690 288 +1026703 147 +1026712 183 +1026713 228 +1026720 174 +1026735 271 +1026737 223 +1026740 203 +1026745 236 +1026758 187 +1026782 222 +1026796 280 +1026798 221 +1026802 181 +1026804 199 +1026826 174 +1026838 187 +1026851 210 +1026852 198 +1026863 264 +1026864 214 +1026865 232 +1026866 190 +1026879 214 +1026899 202 +1026903 250 +1026912 221 +1026923 201 +1026935 136 +1026938 175 +1026939 199 +1026944 177 +1026953 267 +1026956 384 +1026962 239 +1026964 187 +1026977 150 +1026980 219 +1026987 217 +1026992 193 +1027017 536 +1027019 492 +1027039 328 +1027051 281 +1027057 189 +1027067 198 +1027080 519 +1027093 180 +1027106 300 +1027108 343 +1027110 250 +1027122 301 +1027139 175 +1027143 193 +1027146 193 +1027151 202 +1027163 174 +1027167 213 +1027183 241 +1027198 183 +1027229 259 +1027250 205 +1027276 200 +1027277 197 +1027294 194 +1027299 281 +1027314 152 +1027319 216 +1027334 259 +1027337 176 +1027347 414 +1027372 456 +1027374 203 +1027380 171 +1027381 188 +1027382 226 +1027384 180 +1027385 202 +1027396 229 +1027400 186 +1027408 203 +1027427 186 +1027431 359 +1027434 260 +1027457 278 +1027469 205 +1027493 187 +1027500 184 +1027501 239 +1027513 219 +1027530 189 +1027556 284 +1027562 190 +1027565 174 +1027566 248 +1027575 187 +1027592 179 +1027607 275 +1027611 417 +1027613 149 +1027621 214 +1027628 345 +1027641 387 +1027645 223 +1027646 352 +1027654 276 +1027662 304 +1027673 187 +1027683 411 +1027684 182 +1027691 220 +1027696 356 +1027703 262 +1027714 198 +1027717 220 +1027718 429 +1027728 174 +1027729 180 +1027733 155 +1027746 167 +1027750 227 +1027759 232 +1027763 190 +1027768 221 +1027797 499 +1027808 176 +1027822 181 +1027832 355 +1027835 192 +1027845 180 +1027853 152 +1027859 193 +1027860 240 +1027904 152 +1027910 180 +1027923 159 +1027946 216 +1027947 190 +1027948 217 +1027949 213 +1027952 469 +1027957 216 +1027962 196 +1027967 181 +1027969 223 +1027980 229 +1027982 186 +1027985 307 +1027995 554 +1028007 177 +1028015 177 +1028017 186 +1028036 177 +1028042 189 +1028044 232 +1028047 175 +1028054 174 +1028059 307 +1028081 187 +1028093 344 +1028098 196 +1028100 205 +1028115 208 +1028157 186 +1028178 204 +1028189 196 +1028204 196 +1028217 236 +1028228 207 +1028245 183 +1028249 214 +1028254 194 +1028269 189 +1028272 196 +1028278 320 +1028295 215 +1028300 244 +1028308 260 +1028311 297 +1028317 195 +1028329 186 +1028342 239 +1028346 186 +1028350 182 +1028364 273 +1028369 180 +1028370 201 +1028380 188 +1028387 440 +1028392 356 +1028399 330 +1028405 202 +1028414 178 +1028419 154 +1028426 183 +1028427 175 +1028439 316 +1028441 247 +1028442 267 +1028448 211 +1028457 177 +1028459 184 +1028462 267 +1028470 174 +1028477 227 +1028530 181 +1028554 333 +1028565 289 +1028582 192 +1028586 181 +1028593 302 +1028605 267 +1028610 212 +1028613 161 +1028626 284 +1028627 172 +1028631 211 +1028633 185 +1028639 190 +1028664 204 +1028679 346 +1028683 213 +1028692 203 +1028704 348 +1028717 300 +1028727 294 +1028737 384 +1028743 207 +1028753 214 +1028782 272 +1028787 217 +1028792 298 +1028800 152 +1028806 180 +1028809 266 +1028818 180 +1028820 190 +1028821 176 +1028823 182 +1028837 180 +1028842 225 +1028854 249 +1028863 211 +1028869 261 +1028896 184 +1028898 217 +1028899 187 +1028902 189 +1028910 187 +1028914 487 +1028919 177 +1028921 155 +1028923 214 +1028945 274 +1028959 269 +1028962 165 +1028971 302 +1028975 189 +1028977 467 +1028997 265 +1029001 278 +1029004 388 +1029005 287 +1029012 247 +1029015 247 +1029021 220 +1029024 331 +1029039 199 +1029051 214 +1029056 188 +1029060 174 +1029065 172 +1029076 177 +1029078 180 +1029086 212 +1029093 224 +1029096 291 +1029099 674 +1029100 194 +1029101 185 +1029110 217 +1029116 281 +1029137 170 +1029140 240 +1029141 242 +1029147 343 +1029150 678 +1029161 344 +1029175 192 +1029183 274 +1029188 196 +1029212 197 +1029216 250 +1029217 234 +1029228 192 +1029239 184 +1029243 221 +1029246 168 +1029250 122 +1029253 295 +1029261 196 +1029262 322 +1029264 258 +1029276 211 +1029277 220 +1029284 182 +1029301 173 +1029304 206 +1029316 166 +1029321 285 +1029322 180 +1029331 161 +1029332 264 +1029334 333 +1029337 192 +1029355 168 +1029359 209 +1029364 206 +1029377 317 +1029387 259 +1029394 187 +1029406 168 +1029421 200 +1029428 193 +1029430 193 +1029433 193 +1029440 174 +1029446 178 +1029449 193 +1029457 187 +1029462 234 +1029465 183 +1029467 177 +1029477 180 +1029482 198 +1029486 180 +1029501 252 +1029513 176 +1029519 1064 +1029529 227 +1029531 209 +1029534 223 +1029538 288 +1029542 215 +1029545 190 +1029555 196 +1029556 207 +1029563 263 +1029568 214 +1029569 178 +1029583 320 +1029586 208 +1029588 226 +1029599 187 +1029605 223 +1029616 186 +1029624 216 +1029627 262 +1029629 228 +1029630 199 +1029645 177 +1029648 194 +1029663 327 +1029665 189 +1029684 217 +1029687 293 +1029690 208 +1029692 238 +1029704 136 +1029706 238 +1029712 200 +1029720 230 +1029721 216 +1029733 193 +1029750 172 +1029762 186 +1029768 178 +1029783 222 +1029804 214 +1029805 194 +1029817 178 +1029827 239 +1029836 171 +1029863 71 +1029877 440 +1029902 180 +1029908 286 +1029915 254 +1029926 223 +1029937 195 +1029946 316 +1029948 425 +1029961 172 +1029973 589 +1029974 183 +1029975 209 +1029980 241 +1029983 422 +1029984 248 +1029985 184 +1029987 202 +1029992 184 +1030018 388 +1030048 271 +1030054 235 +1030066 229 +1030074 189 +1030081 178 +1030085 192 +1030090 149 +1030100 203 +1030115 181 +1030132 247 +1030133 432 +1030137 413 +1030152 234 +1030164 224 +1030189 278 +1030191 217 +1030212 581 +1030222 250 +1030228 368 +1030230 195 +1030236 197 +1030242 233 +1030262 180 +1030273 278 +1030274 169 +1030277 259 +1030291 193 +1030298 227 +1030299 612 +1030306 293 +1030358 178 +1030360 188 +1030366 180 +1030367 277 +1030369 193 +1030385 248 +1030402 180 +1030407 211 +1030410 181 +1030415 288 +1030416 177 +1030429 272 +1030434 198 +1030435 364 +1030464 291 +1030467 230 +1030479 192 +1030488 199 +1030490 189 +1030499 211 +1030508 282 +1030527 187 +1030530 419 +1030538 240 +1030546 376 +1030547 196 +1030548 205 +1030562 181 +1030565 189 +1030575 266 +1030576 501 +1030585 174 +1030586 292 +1030590 270 +1030596 256 +1030597 263 +1030600 175 +1030603 186 +1030604 180 +1030626 267 +1030629 204 +1030634 220 +1030635 201 +1030636 346 +1030643 217 +1030649 673 +1030650 201 +1030653 232 +1030654 387 +1030655 179 +1030659 123 +1030671 280 +1030682 188 +1030683 147 +1030692 190 +1030696 204 +1030702 222 +1030708 193 +1030714 259 +1030731 187 +1030736 224 +1030739 175 +1030762 214 +1030765 181 +1030768 180 +1030779 195 +1030790 175 +1030798 218 +1030799 167 +1030804 187 +1030809 326 +1030812 877 +1030823 180 +1030840 229 +1030850 306 +1030869 1005 +1030874 180 +1030887 214 +1030904 224 +1030907 221 +1030911 220 +1030929 203 +1030936 223 +1030945 195 +1030946 219 +1030961 475 +1030968 180 +1030981 179 +1030989 190 +1030990 302 +1031007 200 +1031040 202 +1031072 200 +1031082 181 +1031091 149 +1031096 292 +1031101 242 +1031102 209 +1031103 196 +1031118 236 +1031122 382 +1031125 305 +1031141 313 +1031146 219 +1031148 210 +1031153 195 +1031172 184 +1031176 361 +1031178 181 +1031192 209 +1031197 329 +1031203 171 +1031230 250 +1031231 310 +1031232 191 +1031235 241 +1031238 222 +1031248 451 +1031251 454 +1031256 178 +1031263 181 +1031267 199 +1031268 264 +1031272 211 +1031277 190 +1031282 153 +1031287 202 +1031289 214 +1031290 260 +1031297 193 +1031311 180 +1031314 205 +1031325 272 +1031326 187 +1031330 161 +1031331 172 +1031346 385 +1031359 456 +1031367 186 +1031375 242 +1031379 360 +1031386 225 +1031412 260 +1031414 208 +1031427 524 +1031439 505 +1031444 181 +1031445 207 +1031456 396 +1031458 187 +1031462 174 +1031463 189 +1031464 304 +1031475 269 +1031501 181 +1031504 238 +1031506 249 +1031509 156 +1031511 339 +1031519 223 +1031525 210 +1031540 202 +1031558 193 +1031559 264 +1031568 154 +1031584 180 +1031596 193 +1031601 231 +1031604 267 +1031615 320 +1031618 235 +1031626 197 +1031634 233 +1031655 190 +1031659 253 +1031672 177 +1031674 264 +1031691 299 +1031695 187 +1031731 238 +1031733 259 +1031734 269 +1031738 183 +1031753 160 +1031754 192 +1031758 204 +1031760 261 +1031762 224 +1031764 322 +1031769 291 +1031774 193 +1031775 236 +1031786 418 +1031787 261 +1031792 174 +1031793 318 +1031822 249 +1031826 190 +1031832 196 +1031840 176 +1031859 188 +1031866 188 +1031875 174 +1031907 203 +1031922 309 +1031943 216 +1031951 225 +1031954 223 +1031977 441 +1031983 341 +1031985 203 +1031988 204 +1031999 184 +1032000 222 +1032004 202 +1032014 217 +1032021 180 +1032022 211 +1032025 292 +1032049 308 +1032050 411 +1032059 174 +1032063 223 +1032078 228 +1032081 620 +1032082 189 +1032103 423 +1032108 368 +1032112 353 +1032115 235 +1032141 204 +1032150 364 +1032163 181 +1032165 189 +1032174 184 +1032186 225 +1032208 478 +1032215 356 +1032243 204 +1032251 199 +1032254 170 +1032259 220 +1032260 344 +1032267 387 +1032268 285 +1032297 190 +1032301 269 +1032316 184 +1032319 193 +1032332 258 +1032335 187 +1032336 217 +1032337 220 +1032348 332 +1032353 184 +1032355 184 +1032357 229 +1032362 187 +1032368 199 +1032374 162 +1032375 233 +1032376 287 +1032380 193 +1032382 260 +1032384 339 +1032388 267 +1032402 193 +1032414 277 +1032415 196 +1032446 202 +1032459 193 +1032475 155 +1032506 287 +1032509 210 +1032510 266 +1032512 188 +1032524 183 +1032535 196 +1032539 187 +1032541 252 +1032542 180 +1032554 171 +1032558 183 +1032564 187 +1032582 180 +1032590 194 +1032593 184 +1032599 189 +1032600 247 +1032614 253 +1032630 211 +1032646 219 +1032649 259 +1032653 192 +1032659 233 +1032668 216 +1032675 218 +1032684 182 +1032706 84 +1032708 485 +1032710 178 +1032713 244 +1032717 178 +1032719 220 +1032734 154 +1032740 219 +1032746 232 +1032747 232 +1032750 185 +1032754 372 +1032772 325 +1032779 190 +1032780 177 +1032781 238 +1032782 208 +1032789 180 +1032797 213 +1032808 144 +1032809 185 +1032814 132 +1032821 214 +1032822 198 +1032843 524 +1032846 190 +1032856 272 +1032857 260 +1032858 164 +1032860 237 +1032863 174 +1032874 249 +1032882 297 +1032891 193 +1032900 173 +1032904 149 +1032911 194 +1032916 309 +1032917 183 +1032921 202 +1032925 217 +1032929 236 +1032935 233 +1032936 202 +1032938 193 +1032939 290 +1032941 238 +1032965 206 +1032989 238 +1033017 327 +1033027 161 +1033030 218 +1033031 174 +1033054 208 +1033072 202 +1033085 208 +1033088 245 +1033102 210 +1033103 202 +1033107 205 +1033137 512 +1033146 167 +1033153 252 +1033159 225 +1033164 206 +1033174 226 +1033185 226 +1033195 149 +1033198 760 +1033200 474 +1033201 433 +1033212 183 +1033245 199 +1033251 178 +1033270 192 +1033271 260 +1033276 228 +1033287 199 +1033295 237 +1033296 241 +1033298 180 +1033300 314 +1033311 174 +1033315 193 +1033345 391 +1033347 180 +1033348 214 +1033354 160 +1033356 268 +1033358 146 +1033368 228 +1033377 72 +1033384 333 +1033386 235 +1033391 263 +1033395 195 +1033396 374 +1033399 162 +1033400 296 +1033406 443 +1033433 236 +1033441 196 +1033443 212 +1033458 353 +1033462 272 +1033463 222 +1033473 334 +1033476 283 +1033503 192 +1033532 159 +1033535 238 +1033537 203 +1033560 183 +1033563 204 +1033576 217 +1033583 192 +1033603 180 +1033605 256 +1033612 182 +1033621 210 +1033623 180 +1033632 175 +1033642 275 +1033643 227 +1033647 279 +1033669 338 +1033671 268 +1033673 240 +1033674 180 +1033694 206 +1033702 187 +1033704 275 +1033708 213 +1033709 188 +1033711 244 +1033716 188 +1033718 165 +1033733 142 +1033740 323 +1033744 227 +1033746 206 +1033748 230 +1033752 222 +1033758 185 +1033767 310 +1033774 208 +1033775 195 +1033780 374 +1033800 197 +1033802 296 +1033825 187 +1033831 171 +1033839 218 +1033846 195 +1033854 220 +1033870 240 +1033879 202 +1033881 180 +1033900 226 +1033916 204 +1033947 175 +1033956 227 +1033977 184 +1033989 217 +1033992 380 +1033997 367 +1034006 356 +1034007 193 +1034019 212 +1034029 187 +1034036 337 +1034038 229 +1034045 273 +1034051 332 +1034058 306 +1034063 292 +1034064 99 +1034065 180 +1034067 165 +1034095 198 +1034096 451 +1034100 174 +1034105 218 +1034165 297 +1034175 186 +1034178 196 +1034189 223 +1034195 168 +1034215 180 +1034218 206 +1034226 204 +1034232 199 +1034233 188 +1034235 311 +1034239 190 +1034256 245 +1034259 194 +1034312 181 +1034317 304 +1034318 356 +1034327 130 +1034336 217 +1034343 258 +1034352 238 +1034357 211 +1034361 197 +1034371 250 +1034376 360 +1034378 356 +1034379 153 +1034391 219 +1034395 235 +1034408 266 +1034427 243 +1034441 216 +1034446 299 +1034451 215 +1034453 235 +1034461 184 +1034469 191 +1034477 175 +1034494 450 +1034516 307 +1034517 183 +1034522 173 +1034524 193 +1034541 337 +1034546 193 +1034568 242 +1034574 203 +1034577 205 +1034578 188 +1034579 319 +1034599 172 +1034608 223 +1034609 220 +1034620 229 +1034662 346 +1034664 232 +1034695 187 +1034702 311 +1034730 166 +1034744 180 +1034767 177 +1034774 283 +1034775 247 +1034776 232 +1034784 180 +1034826 422 +1034831 205 +1034832 154 +1034838 324 +1034843 213 +1034848 198 +1034852 226 +1034889 244 +1034904 192 +1034914 233 +1034959 106 +1034971 152 +1034989 196 +1035023 174 +1035027 291 +1035039 402 +1035050 187 +1035052 184 +1035056 229 +1035057 214 +1035059 193 +1035062 195 +1035069 552 +1035073 212 +1035086 195 +1035094 196 +1035100 186 +1035103 178 +1035106 211 +1035110 284 +1035118 187 +1035124 199 +1035127 208 +1035149 458 +1035155 211 +1035158 259 +1035176 155 +1035203 213 +1035218 199 +1035230 114 +1035232 211 +1035239 195 +1035242 226 +1035270 270 +1035276 248 +1035279 210 +1035286 253 +1035287 205 +1035309 449 +1035316 460 +1035322 362 +1035359 193 +1035370 223 +1035378 337 +1035383 247 +1035389 242 +1035394 205 +1035399 180 +1035415 281 +1035417 260 +1035433 198 +1035435 172 +1035440 281 +1035451 182 +1035453 175 +1035454 231 +1035477 177 +1035479 229 +1035480 197 +1035485 203 +1035488 180 +1035496 287 +1035513 211 +1035514 202 +1035535 209 +1035541 311 +1035544 187 +1035554 202 +1035555 233 +1035559 298 +1035563 322 +1035577 268 +1035612 189 +1035622 534 +1035640 180 +1035650 306 +1035661 228 +1035677 238 +1035678 600 +1035680 270 +1035689 317 +1035692 191 +1035695 187 +1035714 193 +1035729 276 +1035733 201 +1035739 227 +1035748 279 +1035754 462 +1035763 190 +1035776 257 +1035780 187 +1035781 832 +1035791 181 +1035793 208 +1035798 204 +1035809 174 +1035821 206 +1035824 215 +1035826 223 +1035834 260 +1035838 226 +1035839 192 +1035842 165 +1035847 440 +1035848 470 +1035850 182 +1035857 420 +1035877 234 +1035890 183 +1035896 388 +1035911 169 +1035917 146 +1035925 215 +1035926 253 +1035938 308 +1035945 232 +1035948 238 +1035967 118 +1035983 188 +1035985 229 +1035994 279 +1036001 212 +1036005 217 +1036016 241 +1036026 198 +1036030 319 +1036034 225 +1036035 229 +1036038 373 +1036065 211 +1036094 211 +1036101 524 +1036102 340 +1036103 177 +1036106 190 +1036115 200 +1036140 738 +1036148 202 +1036150 174 +1036171 201 +1036174 251 +1036180 204 +1036182 193 +1036190 221 +1036215 184 +1036228 199 +1036236 235 +1036241 255 +1036245 232 +1036246 273 +1036248 242 +1036256 166 +1036261 189 +1036266 222 +1036273 289 +1036283 184 +1036285 155 +1036294 162 +1036296 214 +1036299 182 +1036302 204 +1036352 158 +1036354 77 +1036379 376 +1036383 463 +1036387 552 +1036395 193 +1036399 553 +1036400 265 +1036405 184 +1036417 253 +1036422 417 +1036430 181 +1036433 487 +1036434 186 +1036435 195 +1036459 189 +1036460 193 +1036463 341 +1036467 301 +1036478 277 +1036500 203 +1036524 211 +1036533 272 +1036539 239 +1036541 230 +1036543 225 +1036544 193 +1036550 179 +1036551 209 +1036557 187 +1036559 161 +1036563 318 +1036569 208 +1036589 191 +1036590 199 +1036591 281 +1036597 274 +1036609 170 +1036610 525 +1036622 244 +1036626 267 +1036640 182 +1036651 309 +1036652 180 +1036654 178 +1036665 218 +1036668 169 +1036710 222 +1036723 147 +1036729 255 +1036733 208 +1036735 222 +1036739 162 +1036767 202 +1036772 209 +1036786 215 +1036796 240 +1036802 172 +1036807 346 +1036808 175 +1036809 557 +1036828 174 +1036836 350 +1036840 223 +1036850 190 +1036853 192 +1036865 211 +1036871 229 +1036872 198 +1036875 261 +1036880 277 +1036892 239 +1036894 190 +1036900 165 +1036928 195 +1036929 193 +1036936 339 +1036938 235 +1036940 214 +1036952 211 +1036970 217 +1036979 287 +1036989 353 +1036995 417 +1036996 998 +1037005 185 +1037014 235 +1037023 239 +1037030 186 +1037031 321 +1037032 187 +1037034 287 +1037047 168 +1037052 374 +1037060 205 +1037063 268 +1037086 253 +1037091 221 +1037092 146 +1037099 190 +1037133 334 +1037140 203 +1037152 201 +1037157 238 +1037164 227 +1037165 312 +1037168 194 +1037179 227 +1037180 205 +1037187 125 +1037189 170 +1037195 325 +1037196 242 +1037207 186 +1037210 176 +1037216 364 +1037217 186 +1037239 217 +1037273 180 +1037278 209 +1037280 190 +1037289 440 +1037291 208 +1037293 205 +1037311 248 +1037343 293 +1037345 215 +1037349 205 +1037351 268 +1037355 372 +1037358 200 +1037362 177 +1037363 174 +1037364 271 +1037372 320 +1037376 325 +1037389 499 +1037391 191 +1037404 179 +1037406 227 +1037421 225 +1037422 193 +1037434 281 +1037439 213 +1037456 192 +1037467 186 +1037470 181 +1037474 309 +1037475 284 +1037477 262 +1037488 205 +1037497 218 +1037514 195 +1037515 267 +1037517 395 +1037521 326 +1037537 287 +1037551 187 +1037552 252 +1037554 208 +1037555 267 +1037557 184 +1037559 356 +1037564 217 +1037567 196 +1037577 285 +1037579 288 +1037583 181 +1037585 172 +1037606 177 +1037618 184 +1037619 247 +1037625 254 +1037626 318 +1037633 178 +1037636 367 +1037641 198 +1037654 200 +1037659 236 +1037681 209 +1037690 282 +1037693 229 +1037694 202 +1037698 176 +1037709 211 +1037711 239 +1037716 264 +1037717 211 +1037722 290 +1037723 220 +1037724 174 +1037751 180 +1037756 210 +1037769 276 +1037770 230 +1037774 189 +1037793 203 +1037795 471 +1037812 198 +1037813 190 +1037814 181 +1037815 201 +1037834 220 +1037839 466 +1037851 367 +1037856 180 +1037865 545 +1037879 229 +1037880 249 +1037904 178 +1037910 182 +1037919 232 +1037923 218 +1037940 182 +1037941 174 +1037961 181 +1037962 187 +1037985 341 +1037990 167 +1037994 190 +1037996 221 +1038005 235 +1038014 241 +1038018 177 +1038021 189 +1038025 208 +1038026 191 +1038028 316 +1038031 219 +1038039 202 +1038044 201 +1038049 216 +1038054 289 +1038059 190 +1038067 259 +1038074 186 +1038077 193 +1038105 189 +1038117 424 +1038123 192 +1038135 194 +1038137 186 +1038141 197 +1038150 208 +1038155 298 +1038158 175 +1038162 199 +1038181 180 +1038182 174 +1038196 181 +1038204 202 +1038205 209 +1038222 199 +1038230 396 +1038232 174 +1038248 218 +1038271 173 +1038280 292 +1038311 228 +1038314 299 +1038332 174 +1038337 381 +1038351 329 +1038360 245 +1038375 267 +1038397 196 +1038413 193 +1038430 190 +1038462 228 +1038464 193 +1038487 228 +1038489 281 +1038493 238 +1038499 185 +1038504 180 +1038512 193 +1038538 219 +1038550 194 +1038556 211 +1038565 180 +1038576 202 +1038578 368 +1038584 249 +1038586 214 +1038587 170 +1038599 199 +1038611 178 +1038622 181 +1038628 210 +1038630 186 +1038634 184 +1038640 143 +1038650 185 +1038658 249 +1038668 221 +1038673 195 +1038682 371 +1038686 247 +1038699 250 +1038705 204 +1038713 218 +1038714 285 +1038716 254 +1038726 187 +1038729 236 +1038734 217 +1038767 236 +1038770 181 +1038792 191 +1038830 202 +1038851 362 +1038853 318 +1038860 205 +1038862 187 +1038864 511 +1038871 276 +1038875 199 +1038879 187 +1038903 184 +1038905 187 +1038912 322 +1038920 175 +1038924 177 +1038927 175 +1038929 220 +1038939 276 +1038943 427 +1038957 152 +1038960 216 +1038982 221 +1038988 228 +1038991 252 +1039019 163 +1039021 194 +1039024 189 +1039028 212 +1039029 273 +1039051 180 +1039058 174 +1039066 248 +1039071 187 +1039097 176 +1039112 180 +1039120 180 +1039132 287 +1039151 172 +1039162 186 +1039164 209 +1039169 504 +1039177 209 +1039192 176 +1039197 212 +1039207 187 +1039215 216 +1039228 184 +1039236 224 +1039237 193 +1039238 216 +1039270 151 +1039287 732 +1039289 174 +1039300 183 +1039321 217 +1039338 178 +1039342 209 +1039349 211 +1039354 181 +1039359 1067 +1039361 205 +1039378 205 +1039386 356 +1039393 455 +1039408 338 +1039411 261 +1039415 185 +1039426 245 +1039429 218 +1039438 461 +1039445 155 +1039452 185 +1039469 354 +1039479 222 +1039481 600 +1039483 235 +1039516 193 +1039518 419 +1039537 242 +1039567 193 +1039617 187 +1039621 223 +1039626 206 +1039638 207 +1039640 249 +1039658 524 +1039662 193 +1039677 195 +1039678 208 +1039684 213 +1039716 247 +1039722 205 +1039726 204 +1039729 227 +1039737 199 +1039756 189 +1039769 173 +1039771 184 +1039784 179 +1039802 310 +1039815 181 +1039822 241 +1039826 217 +1039830 194 +1039848 294 +1039858 187 +1039860 192 +1039870 179 +1039880 193 +1039907 393 +1039919 174 +1039923 396 +1039927 223 +1039932 163 +1039935 352 +1039945 498 +1039947 206 +1039972 174 +1039976 311 +1039977 202 +1039992 208 +1040003 197 +1040009 209 +1040010 280 +1040013 190 +1040014 185 +1040016 196 +1040018 238 +1040024 193 +1040029 327 +1040075 315 +1040078 190 +1040085 436 +1040087 380 +1040090 218 +1040100 442 +1040103 222 +1040109 232 +1040118 191 +1040123 221 +1040139 286 +1040147 520 +1040179 187 +1040186 205 +1040204 187 +1040231 214 +1040241 157 +1040251 193 +1040264 176 +1040280 168 +1040291 182 +1040313 168 +1040322 170 +1040339 193 +1040342 221 +1040343 285 +1040344 244 +1040353 196 +1040361 218 +1040377 261 +1040385 258 +1040390 249 +1040391 232 +1040402 346 +1040413 156 +1040414 204 +1040423 863 +1040426 193 +1040434 185 +1040439 183 +1040452 371 +1040454 210 +1040457 183 +1040465 303 +1040473 249 +1040479 197 +1040493 324 +1040496 189 +1040500 181 +1040503 196 +1040514 187 +1040525 196 +1040526 189 +1040529 193 +1040530 243 +1040537 232 +1040539 196 +1040556 199 +1040564 243 +1040567 285 +1040570 180 +1040579 379 +1040592 361 +1040603 196 +1040604 239 +1040609 179 +1040617 186 +1040644 212 +1040664 193 +1040672 554 +1040677 244 +1040682 334 +1040686 197 +1040688 278 +1040691 282 +1040713 199 +1040715 247 +1040716 193 +1040724 196 +1040734 214 +1040737 241 +1040743 161 +1040745 204 +1040747 372 +1040753 292 +1040757 167 +1040761 449 +1040778 257 +1040786 149 +1040792 188 +1040798 181 +1040807 208 +1040823 301 +1040845 207 +1040864 220 +1040866 278 +1040877 303 +1040878 209 +1040880 170 +1040892 179 +1040895 231 +1040896 237 +1040898 188 +1040899 219 +1040907 174 +1040916 162 +1040921 190 +1040929 239 +1040944 218 +1040953 201 +1040959 233 +1040962 221 +1040966 299 +1040968 216 +1040971 180 +1040984 181 +1040987 309 +1040989 361 +1040995 582 +1040996 180 +1041021 185 +1041027 180 +1041034 196 +1041035 187 +1041050 234 +1041057 266 +1041063 217 +1041079 218 +1041083 236 +1041084 189 +1041089 162 +1041102 174 +1041108 180 +1041109 204 +1041115 193 +1041128 214 +1041132 378 +1041133 232 +1041135 219 +1041145 203 +1041147 220 +1041160 230 +1041169 227 +1041171 174 +1041187 181 +1041202 301 +1041209 203 +1041210 191 +1041213 200 +1041214 186 +1041219 264 +1041230 248 +1041232 187 +1041234 214 +1041240 246 +1041242 208 +1041248 181 +1041249 184 +1041250 199 +1041262 208 +1041274 181 +1041338 245 +1041340 192 +1041345 271 +1041376 245 +1041381 196 +1041393 189 +1041397 180 +1041401 189 +1041402 213 +1041407 249 +1041409 201 +1041411 241 +1041412 287 +1041417 200 +1041419 431 +1041421 221 +1041426 190 +1041438 278 +1041450 173 +1041455 183 +1041460 259 +1041466 202 +1041467 211 +1041475 208 +1041490 212 +1041492 292 +1041498 190 +1041511 732 +1041516 296 +1041519 284 +1041543 187 +1041544 330 +1041554 181 +1041557 154 +1041564 202 +1041571 449 +1041573 187 +1041581 186 +1041582 193 +1041584 212 +1041612 227 +1041623 212 +1041627 196 +1041641 237 +1041644 159 +1041657 230 +1041663 153 +1041664 165 +1041674 197 +1041697 196 +1041707 307 +1041710 257 +1041714 199 +1041719 357 +1041727 246 +1041736 279 +1041745 279 +1041759 209 +1041770 299 +1041781 557 +1041784 277 +1041796 188 +1041798 255 +1041818 178 +1041821 173 +1041831 198 +1041835 173 +1041858 194 +1041871 193 +1041875 445 +1041876 274 +1041886 202 +1041894 179 +1041895 230 +1041906 205 +1041909 179 +1041911 232 +1041916 299 +1041917 258 +1041920 187 +1041935 182 +1041938 163 +1041966 161 +1041972 208 +1041979 174 +1041984 194 +1041987 304 +1041988 187 +1041994 193 +1041997 203 +1042013 228 +1042016 356 +1042025 310 +1042037 175 +1042039 406 +1042056 232 +1042057 189 +1042060 175 +1042071 220 +1042087 168 +1042094 287 +1042101 186 +1042110 637 +1042117 385 +1042120 212 +1042123 425 +1042124 193 +1042134 188 +1042135 239 +1042136 167 +1042138 168 +1042139 184 +1042140 202 +1042142 182 +1042154 192 +1042155 240 +1042158 686 +1042160 341 +1042161 198 +1042164 152 +1042178 184 +1042209 179 +1042210 405 +1042211 191 +1042221 181 +1042231 238 +1042236 262 +1042257 194 +1042262 328 +1042263 177 +1042275 185 +1042309 179 +1042325 181 +1042340 658 +1042346 165 +1042354 906 +1042368 598 +1042378 214 +1042388 190 +1042412 208 +1042421 491 +1042455 229 +1042460 183 +1042462 248 +1042480 191 +1042489 204 +1042491 399 +1042493 190 +1042497 223 +1042498 205 +1042499 497 +1042500 339 +1042517 187 +1042523 261 +1042524 194 +1042529 220 +1042531 180 +1042547 182 +1042562 230 +1042570 298 +1042580 211 +1042587 193 +1042598 174 +1042615 423 +1042616 174 +1042626 425 +1042633 857 +1042643 414 +1042647 260 +1042655 219 +1042659 199 +1042676 258 +1042677 205 +1042683 209 +1042702 193 +1042741 166 +1042747 233 +1042748 193 +1042752 215 +1042778 251 +1042780 367 +1042783 200 +1042796 187 +1042805 198 +1042807 189 +1042808 211 +1042810 180 +1042814 194 +1042817 275 +1042818 205 +1042831 145 +1042856 198 +1042862 199 +1042864 186 +1042867 286 +1042869 177 +1042885 191 +1042888 269 +1042915 190 +1042922 307 +1042930 355 +1042944 345 +1042952 478 +1042955 249 +1042960 153 +1042974 327 +1042999 178 +1043002 162 +1043003 183 +1043010 189 +1043017 260 +1043018 184 +1043029 340 +1043039 196 +1043058 198 +1043079 306 +1043085 240 +1043093 284 +1043094 262 +1043167 202 +1043173 432 +1043174 238 +1043191 305 +1043198 188 +1043202 258 +1043219 180 +1043223 245 +1043230 196 +1043240 173 +1043242 255 +1043250 330 +1043254 249 +1043269 268 +1043271 504 +1043275 214 +1043288 235 +1043291 398 +1043299 205 +1043305 235 +1043325 162 +1043326 200 +1043329 189 +1043334 226 +1043342 192 +1043354 156 +1043361 970 +1043364 317 +1043387 159 +1043396 226 +1043417 318 +1043429 297 +1043441 262 +1043443 263 +1043446 206 +1043463 398 +1043465 975 +1043467 227 +1043473 205 +1043479 491 +1043481 317 +1043485 197 +1043487 190 +1043510 178 +1043512 187 +1043517 211 +1043556 206 +1043557 195 +1043567 253 +1043570 171 +1043577 202 +1043579 187 +1043589 644 +1043597 196 +1043609 172 +1043635 185 +1043640 146 +1043658 206 +1043671 186 +1043678 187 +1043694 285 +1043700 193 +1043708 247 +1043712 225 +1043755 208 +1043759 437 +1043788 211 +1043795 341 +1043796 181 +1043799 189 +1043841 181 +1043844 189 +1043858 217 +1043859 205 +1043881 180 +1043908 188 +1043915 213 +1043925 217 +1043936 191 +1043949 313 +1043955 255 +1043975 178 +1043984 186 +1044002 186 +1044006 172 +1044011 188 +1044017 180 +1044019 189 +1044037 223 +1044045 190 +1044049 268 +1044063 310 +1044078 224 +1044092 190 +1044094 198 +1044095 518 +1044099 178 +1044102 181 +1044113 143 +1044121 190 +1044135 212 +1044147 317 +1044156 214 +1044157 209 +1044169 187 +1044171 217 +1044179 193 +1044189 187 +1044225 195 +1044227 188 +1044229 193 +1044241 274 +1044247 185 +1044259 486 +1044263 175 +1044273 168 +1044312 181 +1044315 189 +1044321 220 +1044330 298 +1044341 192 +1044343 173 +1044345 218 +1044356 187 +1044366 332 +1044375 176 +1044378 376 +1044381 416 +1044391 224 +1044399 196 +1044405 197 +1044433 323 +1044447 244 +1044461 418 +1044463 264 +1044519 179 +1044535 218 +1044550 435 +1044554 228 +1044578 185 +1044581 187 +1044593 232 +1044596 193 +1044602 164 +1044605 257 +1044627 233 +1044629 279 +1044637 193 +1044656 300 +1044667 161 +1044692 224 +1044696 209 +1044705 308 +1044719 226 +1044720 187 +1044726 199 +1044737 174 +1044747 184 +1044750 349 +1044751 199 +1044759 217 +1044765 208 +1044786 197 +1044801 198 +1044829 167 +1044830 352 +1044835 217 +1044841 211 +1044857 210 +1044871 293 +1044883 257 +1044887 240 +1044893 186 +1044907 143 +1044923 146 +1044930 221 +1044931 413 +1044932 191 +1044933 190 +1044941 238 +1044944 144 +1044946 145 +1044958 235 +1044959 193 +1044960 187 +1044983 153 +1044993 187 +1045005 179 +1045009 173 +1045018 229 +1045023 249 +1045034 181 +1045040 167 +1045042 254 +1045048 311 +1045068 254 +1045069 202 +1045077 251 +1045096 214 +1045103 169 +1045112 187 +1045118 262 +1045135 146 +1045136 189 +1045145 164 +1045147 190 +1045155 198 +1045162 189 +1045179 311 +1045186 325 +1045224 199 +1045248 199 +1045264 205 +1045283 180 +1045291 271 +1045297 369 +1045308 211 +1045327 200 +1045359 306 +1045362 257 +1045369 192 +1045384 171 +1045395 211 +1045414 183 +1045418 253 +1045462 364 +1045464 223 +1045504 181 +1045514 159 +1045516 210 +1045545 233 +1045550 229 +1045555 226 +1045568 239 +1045574 197 +1045612 357 +1045613 214 +1045623 168 +1045635 220 +1045640 181 +1045648 256 +1045651 300 +1045657 218 +1045661 240 +1045676 177 +1045680 249 +1045687 203 +1045695 243 +1045696 233 +1045716 188 +1045717 212 +1045720 180 +1045727 156 +1045729 180 +1045733 232 +1045737 194 +1045755 229 +1045757 163 +1045773 228 +1045776 178 +1045810 205 +1045815 190 +1045824 216 +1045829 205 +1045849 176 +1045874 188 +1045935 238 +1045947 184 +1045950 180 +1045967 243 +1045976 299 +1045979 280 +1045987 1413 +1045988 230 +1046022 213 +1046024 181 +1046039 184 +1046048 190 +1046049 387 +1046066 167 +1046114 187 +1046118 187 +1046122 187 +1046123 185 +1046125 237 +1046130 193 +1046133 199 +1046146 237 +1046159 229 +1046160 165 +1046163 173 +1046174 158 +1046184 221 +1046203 212 +1046209 169 +1046213 179 +1046229 238 +1046233 188 +1046241 243 +1046242 468 +1046244 269 +1046247 263 +1046248 362 +1046269 240 +1046272 185 +1046280 222 +1046284 215 +1046294 201 +1046301 247 +1046310 381 +1046313 192 +1046321 230 +1046331 216 +1046342 229 +1046345 179 +1046350 152 +1046354 201 +1046355 230 +1046395 366 +1046399 189 +1046401 349 +1046441 205 +1046467 201 +1046471 187 +1046503 285 +1046515 331 +1046527 365 +1046530 233 +1046545 227 +1046568 193 +1046571 236 +1046574 218 +1046594 232 +1046601 211 +1046626 152 +1046643 235 +1046647 222 +1046651 186 +1046675 257 +1046701 363 +1046702 198 +1046706 172 +1046717 215 +1046730 292 +1046731 233 +1046749 181 +1046761 183 +1046795 178 +1046796 222 +1046797 198 +1046821 485 +1046852 222 +1046876 316 +1046878 176 +1046895 188 +1046911 252 +1046912 191 +1046927 174 +1046930 218 +1046962 190 +1046964 169 +1046967 480 +1046980 226 +1046998 211 +1047026 399 +1047046 362 +1047055 144 +1047078 196 +1047079 213 +1047091 223 +1047093 205 +1047096 410 +1047103 541 +1047123 416 +1047128 190 +1047134 205 +1047139 360 +1047152 181 +1047153 180 +1047157 198 +1047158 194 +1047166 499 +1047203 211 +1047211 395 +1047219 204 +1047223 187 +1047234 196 +1047241 251 +1047263 167 +1047269 245 +1047274 190 +1047293 224 +1047303 214 +1047305 211 +1047325 190 +1047327 201 +1047338 180 +1047366 174 +1047385 207 +1047402 354 +1047420 260 +1047422 187 +1047423 223 +1047427 273 +1047429 206 +1047432 188 +1047436 187 +1047444 143 +1047451 651 +1047461 175 +1047473 216 +1047488 215 +1047510 275 +1047534 253 +1047536 212 +1047557 132 +1047570 199 +1047588 564 +1047601 186 +1047608 207 +1047617 220 +1047655 173 +1047663 227 +1047668 207 +1047692 182 +1047708 201 +1047728 222 +1047746 167 +1047752 179 +1047760 287 +1047761 209 +1047780 367 +1047781 311 +1047783 261 +1047788 274 +1047792 190 +1047826 176 +1047832 584 +1047836 205 +1047840 183 +1047850 186 +1047862 219 +1047881 173 +1047897 406 +1047900 199 +1047906 199 +1047916 263 +1047924 419 +1047939 278 +1047965 312 +1047979 204 +1047982 285 +1048002 235 +1048029 178 +1048036 169 +1048044 222 +1048046 299 +1048051 311 +1048067 187 +1048069 456 +1048073 183 +1048074 212 +1048076 207 +1048093 295 +1048101 239 +1048110 415 +1048124 294 +1048129 290 +1048146 439 +1048162 187 +1048163 236 +1048178 282 +1048198 568 +1048253 606 +1048269 343 +1048271 267 +1048274 274 +1048288 187 +1048304 149 +1048312 263 +1048319 185 +1048321 222 +1048349 186 +1048378 345 +1048382 228 +1048385 177 +1048393 178 +1048394 273 +1048398 309 +1048410 199 +1048411 189 +1048434 270 +1048441 238 +1048450 205 +1048456 187 +1048468 187 +1048473 211 +1048485 267 +1048486 223 +1048497 211 +1048529 203 +1048533 214 +1048537 190 +1048540 269 +1048575 453 +1048585 216 +1048591 174 +1048597 175 +1048606 584 +1048623 281 +1048659 241 +1048662 212 +1048666 195 +1048670 187 +1048678 222 +1048693 208 +1048710 331 +1048724 156 +1048726 397 +1048737 225 +1048743 399 +1048744 252 +1048745 197 +1048748 187 +1048763 194 +1048769 211 +1048781 210 +1048788 319 +1048791 129 +1048800 214 +1048808 646 +1048814 215 +1048816 179 +1048857 180 +1048889 244 +1048896 169 +1048898 152 +1048906 193 +1048922 311 +1048934 183 +1048944 334 +1048959 226 +1048966 197 +1048996 187 +1049003 246 +1049005 180 +1049009 112 +1049010 189 +1049016 181 +1049022 399 +1049027 175 +1049038 280 +1049065 186 +1049066 156 +1049069 175 +1049074 456 +1049079 196 +1049097 185 +1049099 533 +1049120 190 +1049131 187 +1049139 243 +1049144 182 +1049160 181 +1049163 144 +1049164 260 +1049167 386 +1049175 208 +1049227 187 +1049236 174 +1049242 257 +1049275 178 +1049285 176 +1049319 180 +1049341 230 +1049342 199 +1049357 184 +1049364 180 +1049368 193 +1049383 232 +1049384 236 +1049390 211 +1049406 115 +1049407 202 +1049425 192 +1049445 306 +1049453 192 +1049464 260 +1049466 252 +1049473 219 +1049532 725 +1049538 186 +1049563 238 +1049566 193 +1049577 300 +1049578 202 +1049584 286 +1049593 175 +1049619 170 +1049621 477 +1049633 226 +1049635 206 +1049638 281 +1049639 190 +1049670 170 +1049675 232 +1049699 177 +1049702 228 +1049712 217 +1049723 233 +1049724 196 +1049731 249 +1049733 223 +1049755 175 +1049756 177 +1049760 266 +1049790 187 +1049792 173 +1049805 169 +1049822 245 +1049827 179 +1049829 369 +1049831 291 +1049844 189 +1049861 181 +1049875 451 +1049879 205 +1049883 187 +1049923 317 +1049944 187 +1049955 272 +1049957 187 +1049988 186 +1049998 197 +1050011 211 +1050049 283 +1050079 187 +1050083 354 +1050084 210 +1050089 193 +1050094 208 +1050095 478 +1050100 400 +1050106 184 +1050115 156 +1050131 168 +1050138 171 +1050153 178 +1050188 464 +1050190 175 +1050199 197 +1050202 197 +1050204 188 +1050217 202 +1050222 193 +1050227 181 +1050234 175 +1050270 194 +1050322 198 +1050334 192 +1050336 201 +1050354 220 +1050361 240 +1050364 243 +1050370 181 +1050381 334 +1050385 292 +1050392 211 +1050398 204 +1050402 233 +1050408 182 +1050412 200 +1050419 152 +1050420 164 +1050427 177 +1050429 151 +1050433 199 +1050441 149 +1050447 179 +1050452 247 +1050462 289 +1050464 257 +1050470 217 +1050473 508 +1050506 183 +1050521 198 +1050527 192 +1050530 488 +1050532 205 +1050574 183 +1050581 330 +1050585 185 +1050591 209 +1050600 165 +1050614 187 +1050617 197 +1050625 187 +1050632 220 +1050633 197 +1050634 188 +1050639 189 +1050641 251 +1050644 175 +1050651 183 +1050660 208 +1050671 177 +1050678 338 +1050683 135 +1050700 243 +1050716 206 +1050736 238 +1050752 218 +1050757 316 +1050764 186 +1050778 180 +1050789 205 +1050791 175 +1050799 175 +1050802 296 +1050816 197 +1050819 187 +1050827 209 +1050840 163 +1050845 197 +1050856 217 +1050870 219 +1050878 86 +1050883 226 +1050889 273 +1050892 189 +1050895 244 +1050913 260 +1050943 300 +1050948 451 +1050949 443 +1050950 189 +1050965 190 +1050968 214 +1050975 229 +1051006 276 +1051013 186 +1051015 187 +1051016 177 +1051022 220 +1051025 187 +1051038 461 +1051059 180 +1051076 225 +1051116 177 +1051122 263 +1051126 347 +1051130 169 +1051141 186 +1051150 412 +1051161 357 +1051167 218 +1051179 159 +1051217 171 +1051221 254 +1051229 175 +1051231 162 +1051249 276 +1051263 193 +1051267 232 +1051278 286 +1051292 221 +1051299 215 +1051316 173 +1051357 220 +1051358 211 +1051367 217 +1051391 196 +1051396 349 +1051402 184 +1051404 188 +1051405 197 +1051406 241 +1051408 190 +1051409 445 +1051418 180 +1051420 215 +1051424 208 +1051425 341 +1051436 277 +1051453 172 +1051470 185 +1051490 190 +1051493 199 +1051496 187 +1051513 222 +1051514 315 +1051516 534 +1051519 603 +1051539 193 +1051549 193 +1051556 160 +1051558 321 +1051577 243 +1051582 222 +1051586 650 +1051596 191 +1051600 199 +1051602 154 +1051608 201 +1051616 311 +1051629 205 +1051638 208 +1051645 218 +1051653 163 +1051656 193 +1051690 195 +1051696 334 +1051698 207 +1051718 211 +1051723 263 +1051726 229 +1051732 193 +1051740 265 +1051748 269 +1051757 232 +1051766 187 +1051813 172 +1051814 187 +1051822 190 +1051829 176 +1051830 216 +1051835 189 +1051838 176 +1051852 198 +1051856 383 +1051869 219 +1051885 251 +1051892 257 +1051916 217 +1051917 267 +1051935 223 +1051939 232 +1051949 333 +1051962 180 +1051972 186 +1052018 332 +1052032 194 +1052050 199 +1052053 287 +1052060 180 +1052067 233 +1052073 493 +1052078 215 +1052083 317 +1052087 231 +1052104 288 +1052116 243 +1052137 186 +1052142 400 +1052144 184 +1052150 390 +1052175 462 +1052181 201 +1052228 206 +1052236 231 +1052242 304 +1052243 124 +1052248 201 +1052269 284 +1052280 212 +1052283 173 +1052287 248 +1052290 243 +1052299 174 +1052308 214 +1052310 216 +1052312 205 +1052316 160 +1052321 214 +1052331 190 +1052347 226 +1052362 183 +1052377 305 +1052385 250 +1052454 314 +1052463 306 +1052485 331 +1052494 187 +1052510 372 +1052518 191 +1052521 190 +1052571 186 +1052577 245 +1052585 269 +1052616 239 +1052622 169 +1052637 236 +1052666 380 +1052671 260 +1052676 275 +1052683 187 +1052733 213 +1052754 214 +1052772 267 +1052806 186 +1052849 192 +1052867 278 +1052873 251 +1052909 225 +1052927 276 +1052932 322 +1052969 177 +1052978 199 +1053006 231 +1053008 257 +1053019 163 +1053022 205 +1053026 197 +1053041 204 +1053047 180 +1053070 248 +1053082 348 +1053095 444 +1053106 178 +1053125 233 +1053129 236 +1053145 331 +1053154 177 +1053155 174 +1053159 338 +1053160 199 +1053184 190 +1053213 187 +1053221 220 +1053241 572 +1053251 217 +1053256 177 +1053257 156 +1053281 272 +1053293 234 +1053312 226 +1053314 174 +1053322 211 +1053326 143 +1053328 227 +1053332 191 +1053344 187 +1053347 180 +1053350 226 +1053381 893 +1053386 210 +1053388 200 +1053392 223 +1053394 308 +1053399 393 +1053400 170 +1053414 196 +1053416 208 +1053424 268 +1053455 314 +1053482 280 +1053491 190 +1053499 187 +1053500 274 +1053510 176 +1053550 176 +1053556 278 +1053561 334 +1053564 213 +1053570 229 +1053590 210 +1053598 268 +1053603 349 +1053604 343 +1053605 267 +1053608 140 +1053611 193 +1053616 230 +1053623 376 +1053646 187 +1053650 296 +1053651 192 +1053661 193 +1053665 243 +1053686 350 +1053689 205 +1053691 441 +1053694 257 +1053695 194 +1053702 177 +1053704 185 +1053710 152 +1053722 118 +1053729 217 +1053731 178 +1053748 200 +1053769 267 +1053778 223 +1053790 492 +1053796 141 +1053799 172 +1053810 156 +1053816 187 +1053823 226 +1053827 245 +1053836 196 +1053844 269 +1053855 283 +1053865 168 +1053869 291 +1053872 190 +1053873 193 +1053880 221 +1053882 311 +1053897 173 +1053910 168 +1053918 212 +1053923 301 +1053926 181 +1053931 186 +1053932 196 +1053944 186 +1053957 378 +1053959 180 +1053974 222 +1053977 167 +1053984 433 +1053985 180 +1053989 172 +1053994 228 +1053998 186 +1054006 179 +1054043 521 +1054047 330 +1054048 189 +1054054 233 +1054057 208 +1054059 296 +1054060 198 +1054078 206 +1054083 202 +1054086 177 +1054087 187 +1054092 279 +1054095 202 +1054111 175 +1054118 230 +1054132 192 +1054156 266 +1054168 194 +1054170 173 +1054189 216 +1054193 193 +1054208 241 +1054214 163 +1054224 174 +1054269 184 +1054272 420 +1054319 281 +1054323 386 +1054337 204 +1054350 193 +1054360 209 +1054362 376 +1054368 203 +1054385 251 +1054396 191 +1054397 274 +1054410 236 +1054414 290 +1054417 189 +1054438 211 +1054439 188 +1054451 230 +1054453 196 +1054454 184 +1054458 257 +1054468 187 +1054472 206 +1054482 220 +1054488 273 +1054499 197 +1054501 206 +1054505 211 +1054506 194 +1054511 203 +1054529 188 +1054532 339 +1054534 344 +1054548 280 +1054572 327 +1054586 205 +1054591 165 +1054597 231 +1054603 169 +1054606 172 +1054614 187 +1054620 254 +1054623 193 +1054650 202 +1054660 172 +1054666 542 +1054667 188 +1054674 242 +1054681 204 +1054683 196 +1054700 188 +1054707 330 +1054716 71 +1054721 175 +1054722 178 +1054732 187 +1054747 209 +1054757 206 +1054758 186 +1054763 187 +1054767 518 +1054769 205 +1054782 232 +1054786 253 +1054796 193 +1054800 187 +1054801 238 +1054807 206 +1054818 272 +1054838 191 +1054841 226 +1054847 244 +1054851 159 +1054857 280 +1054875 187 +1054885 180 +1054888 253 +1054907 242 +1054933 236 +1054939 221 +1054946 260 +1054983 209 +1054998 245 +1055054 192 +1055078 179 +1055093 190 +1055113 159 +1055139 222 +1055153 259 +1055163 182 +1055168 175 +1055172 245 +1055183 239 +1055185 157 +1055202 230 +1055217 248 +1055232 224 +1055252 169 +1055254 176 +1055257 219 +1055263 235 +1055269 293 +1055278 247 +1055292 305 +1055299 218 +1055307 187 +1055317 269 +1055321 352 +1055322 171 +1055330 274 +1055339 186 +1055352 172 +1055353 256 +1055359 194 +1055370 184 +1055383 238 +1055388 248 +1055392 173 +1055408 176 +1055414 289 +1055421 204 +1055426 184 +1055435 534 +1055452 211 +1055455 187 +1055456 159 +1055458 198 +1055463 462 +1055464 242 +1055472 193 +1055484 191 +1055490 183 +1055491 232 +1055503 226 +1055512 186 +1055517 206 +1055534 207 +1055557 424 +1055570 620 +1055573 458 +1055577 211 +1055579 310 +1055594 190 +1055598 188 +1055617 248 +1055618 193 +1055620 190 +1055627 184 +1055638 328 +1055646 440 +1055647 284 +1055677 187 +1055696 174 +1055697 211 +1055722 217 +1055724 371 +1055746 217 +1055759 244 +1055760 183 +1055771 395 +1055783 193 +1055841 239 +1055843 199 +1055855 144 +1055892 187 +1055923 193 +1055931 203 +1055975 230 +1055980 155 +1055996 190 +1055998 121 +1055999 348 +1056007 208 +1056009 156 +1056010 305 +1056021 379 +1056031 219 +1056032 211 +1056036 265 +1056049 194 +1056076 192 +1056078 207 +1056079 186 +1056086 206 +1056093 376 +1056119 196 +1056129 222 +1056147 175 +1056195 196 +1056225 181 +1056234 244 +1056243 190 +1056245 329 +1056261 196 +1056264 236 +1056282 483 +1056296 745 +1056302 301 +1056324 242 +1056330 181 +1056348 248 +1056374 248 +1056377 211 +1056404 189 +1056409 195 +1056420 312 +1056446 217 +1056474 167 +1056484 238 +1056487 407 +1056489 211 +1056499 158 +1056502 344 +1056508 355 +1056542 308 +1056569 149 +1056571 170 +1056597 243 +1056601 222 +1056603 243 +1056635 356 +1056644 405 +1056653 194 +1056675 328 +1056683 385 +1056698 327 +1056700 285 +1056706 198 +1056709 193 +1056711 361 +1056720 234 +1056721 184 +1056724 189 +1056728 181 +1056730 181 +1056737 197 +1056743 312 +1056746 174 +1056749 348 +1056771 260 +1056781 177 +1056789 187 +1056795 199 +1056804 213 +1056806 176 +1056808 222 +1056851 361 +1056852 248 +1056856 199 +1056858 453 +1056889 269 +1056901 265 +1056903 250 +1056905 187 +1056920 199 +1056921 196 +1056930 237 +1056942 259 +1056957 274 +1056987 187 +1056996 181 +1057007 198 +1057021 217 +1057032 175 +1057053 166 +1057063 211 +1057064 298 +1057074 181 +1057083 181 +1057092 199 +1057094 174 +1057095 187 +1057099 226 +1057105 351 +1057107 188 +1057116 181 +1057164 221 +1057166 173 +1057200 187 +1057201 205 +1057208 219 +1057209 217 +1057217 202 +1057224 187 +1057247 173 +1057260 182 +1057273 217 +1057282 292 +1057284 390 +1057288 164 +1057289 223 +1057316 205 +1057343 200 +1057355 194 +1057377 253 +1057379 204 +1057380 152 +1057382 340 +1057384 213 +1057399 184 +1057405 466 +1057424 196 +1057434 297 +1057465 253 +1057473 256 +1057478 173 +1057480 353 +1057483 198 +1057496 422 +1057498 441 +1057502 193 +1057509 259 +1057519 234 +1057531 199 +1057597 358 +1057603 193 +1057613 180 +1057617 272 +1057623 168 +1057626 214 +1057631 259 +1057633 397 +1057640 250 +1057663 388 +1057670 333 +1057679 224 +1057690 453 +1057724 193 +1057732 279 +1057733 230 +1057735 246 +1057740 153 +1057745 188 +1057748 201 +1057761 233 +1057765 213 +1057780 215 +1057783 253 +1057788 215 +1057793 228 +1057797 220 +1057807 333 +1057812 228 +1057814 282 +1057815 214 +1057816 168 +1057825 301 +1057845 164 +1057859 246 +1057870 373 +1057895 209 +1057899 197 +1057904 336 +1057905 282 +1057912 257 +1057919 202 +1057925 298 +1057932 243 +1057947 264 +1057952 165 +1057990 250 +1057994 249 +1057998 190 +1058006 199 +1058008 313 +1058009 202 +1058015 228 +1058024 222 +1058035 213 +1058054 245 +1058059 214 +1058063 371 +1058076 233 +1058080 907 +1058112 208 +1058122 180 +1058124 188 +1058133 177 +1058134 187 +1058141 402 +1058149 193 +1058159 241 +1058161 278 +1058167 222 +1058203 187 +1058207 180 +1058231 189 +1058239 163 +1058252 184 +1058258 218 +1058268 228 +1058287 418 +1058293 187 +1058315 207 +1058317 171 +1058331 243 +1058337 262 +1058344 349 +1058352 339 +1058359 723 +1058361 251 +1058369 181 +1058372 254 +1058379 185 +1058391 196 +1058393 183 +1058394 193 +1058408 324 +1058410 164 +1058418 209 +1058430 244 +1058432 232 +1058438 201 +1058454 164 +1058455 258 +1058457 202 +1058458 300 +1058469 185 +1058482 181 +1058488 193 +1058498 174 +1058540 208 +1058548 180 +1058554 341 +1058556 307 +1058560 656 +1058574 189 +1058577 215 +1058589 199 +1058591 516 +1058594 179 +1058600 331 +1058601 174 +1058602 184 +1058603 327 +1058615 174 +1058621 216 +1058629 193 +1058641 208 +1058684 890 +1058685 181 +1058698 204 +1058700 187 +1058715 169 +1058718 178 +1058720 187 +1058731 187 +1058734 199 +1058736 192 +1058741 203 +1058747 214 +1058751 286 +1058758 295 +1058761 309 +1058777 215 +1058778 205 +1058779 205 +1058783 227 +1058792 788 +1058794 351 +1058806 183 +1058810 292 +1058815 415 +1058821 233 +1058822 252 +1058823 211 +1058840 583 +1058849 199 +1058855 296 +1058871 362 +1058873 216 +1058888 194 +1058897 349 +1058898 193 +1058902 189 +1058927 225 +1058937 180 +1058941 180 +1058942 224 +1058947 293 +1058949 708 +1058955 269 +1058959 218 +1058966 206 +1058969 205 +1058975 184 +1058977 241 +1058980 202 +1058982 223 +1059011 190 +1059041 204 +1059046 189 +1059047 176 +1059058 193 +1059059 205 +1059069 187 +1059083 188 +1059085 183 +1059087 168 +1059096 196 +1059101 777 +1059106 220 +1059109 529 +1059124 192 +1059126 194 +1059135 201 +1059143 350 +1059151 168 +1059155 316 +1059156 195 +1059158 188 +1059175 223 +1059199 205 +1059203 182 +1059205 220 +1059226 230 +1059242 189 +1059245 208 +1059266 212 +1059276 182 +1059278 180 +1059281 292 +1059285 292 +1059290 303 +1059295 180 +1059312 205 +1059322 261 +1059324 175 +1059339 367 +1059346 289 +1059362 354 +1059365 181 +1059370 286 +1059376 175 +1059382 376 +1059399 191 +1059401 204 +1059407 181 +1059409 208 +1059415 232 +1059430 257 +1059433 199 +1059447 205 +1059452 775 +1059461 184 +1059468 200 +1059481 190 +1059482 173 +1059496 450 +1059502 220 +1059504 180 +1059509 226 +1059515 209 +1059518 205 +1059526 211 +1059528 224 +1059531 415 +1059538 244 +1059554 222 +1059556 182 +1059557 851 +1059573 282 +1059581 178 +1059590 174 +1059591 181 +1059615 213 +1059616 180 +1059625 301 +1059660 174 +1059663 211 +1059664 221 +1059665 214 +1059666 228 +1059667 246 +1059670 183 +1059671 228 +1059682 226 +1059689 334 +1059705 232 +1059721 186 +1059725 193 +1059733 282 +1059734 180 +1059739 235 +1059745 206 +1059759 187 +1059762 224 +1059763 173 +1059767 290 +1059787 202 +1059790 187 +1059808 258 +1059811 361 +1059814 337 +1059817 186 +1059820 298 +1059823 445 +1059831 196 +1059832 239 +1059842 172 +1059844 199 +1059860 262 +1059865 439 +1059872 174 +1059883 241 +1059891 193 +1059893 210 +1059904 242 +1059919 208 +1059927 235 +1059928 228 +1059930 187 +1059944 273 +1059951 289 +1059958 205 +1059968 187 +1059986 173 +1059994 195 +1059997 175 +1060000 215 +1060001 320 +1060011 192 +1060018 193 +1060045 168 +1060065 328 +1060092 200 +1060097 174 +1060099 231 +1060101 336 +1060109 208 +1060114 206 +1060121 226 +1060122 190 +1060132 174 +1060137 199 +1060166 185 +1060169 188 +1060170 213 +1060173 197 +1060185 156 +1060202 192 +1060208 158 +1060210 190 +1060219 175 +1060223 206 +1060224 219 +1060226 515 +1060247 187 +1060248 230 +1060267 173 +1060272 290 +1060284 197 +1060289 162 +1060298 199 +1060304 216 +1060315 226 +1060317 252 +1060320 247 +1060336 192 +1060337 310 +1060341 191 +1060357 195 +1060359 227 +1060361 254 +1060373 182 +1060384 326 +1060392 181 +1060400 198 +1060406 187 +1060446 317 +1060448 464 +1060455 334 +1060478 332 +1060480 187 +1060486 235 +1060510 180 +1060513 208 +1060515 224 +1060518 326 +1060519 194 +1060520 187 +1060529 240 +1060537 173 +1060551 190 +1060562 187 +1060564 351 +1060568 195 +1060571 189 +1060577 454 +1060586 224 +1060590 156 +1060592 230 +1060607 187 +1060615 232 +1060617 180 +1060618 198 +1060647 330 +1060651 243 +1060671 213 +1060672 555 +1060695 156 +1060700 183 +1060705 224 +1060714 219 +1060736 180 +1060745 224 +1060751 261 +1060757 229 +1060760 193 +1060762 188 +1060780 275 +1060789 216 +1060792 222 +1060804 156 +1060811 233 +1060813 494 +1060815 258 +1060822 258 +1060828 243 +1060834 411 +1060849 189 +1060851 152 +1060859 240 +1060865 176 +1060884 229 +1060907 191 +1060919 253 +1060926 229 +1060929 193 +1060931 149 +1060958 212 +1060974 199 +1060982 239 +1060984 185 +1060986 175 +1061005 201 +1061009 179 +1061017 185 +1061021 275 +1061031 235 +1061035 360 +1061043 301 +1061050 226 +1061052 201 +1061056 196 +1061057 181 +1061059 182 +1061060 152 +1061061 336 +1061063 306 +1061065 239 +1061070 179 +1061082 227 +1061095 189 +1061103 196 +1061108 188 +1061111 286 +1061113 379 +1061139 410 +1061149 153 +1061161 381 +1061174 323 +1061176 242 +1061178 187 +1061179 237 +1061181 223 +1061184 181 +1061186 143 +1061203 183 +1061217 371 +1061218 174 +1061237 181 +1061243 178 +1061245 175 +1061257 495 +1061261 244 +1061276 180 +1061284 268 +1061290 149 +1061298 313 +1061334 185 +1061340 174 +1061360 248 +1061374 185 +1061382 240 +1061383 182 +1061387 267 +1061388 185 +1061391 212 +1061397 318 +1061398 346 +1061399 225 +1061417 203 +1061427 192 +1061432 1482 +1061450 270 +1061453 462 +1061454 168 +1061456 180 +1061457 180 +1061477 180 +1061499 356 +1061501 214 +1061505 244 +1061509 187 +1061520 175 +1061535 211 +1061542 194 +1061549 187 +1061564 421 +1061567 200 +1061574 221 +1061575 196 +1061583 212 +1061584 304 +1061606 189 +1061622 234 +1061623 249 +1061638 173 +1061649 223 +1061656 262 +1061680 205 +1061688 196 +1061700 214 +1061705 178 +1061706 188 +1061715 178 +1061718 210 +1061723 225 +1061735 267 +1061737 174 +1061744 188 +1061746 175 +1061769 302 +1061772 191 +1061778 181 +1061779 297 +1061793 256 +1061800 190 +1061804 249 +1061811 707 +1061823 301 +1061830 213 +1061841 203 +1061850 180 +1061855 453 +1061859 208 +1061860 187 +1061872 196 +1061873 186 +1061874 571 +1061876 181 +1061879 187 +1061889 488 +1061908 257 +1061911 307 +1061926 278 +1061929 265 +1061932 183 +1061933 158 +1061945 178 +1061948 176 +1061956 169 +1061963 121 +1061966 181 +1061969 208 +1061979 175 +1061986 241 +1061994 1018 +1061995 211 +1061997 203 +1061999 218 +1062017 227 +1062031 193 +1062041 171 +1062049 182 +1062050 139 +1062067 404 +1062078 194 +1062086 869 +1062101 186 +1062103 222 +1062109 174 +1062112 169 +1062118 362 +1062124 180 +1062125 177 +1062128 199 +1062130 208 +1062138 467 +1062148 179 +1062150 762 +1062152 208 +1062183 174 +1062184 144 +1062192 200 +1062201 256 +1062206 187 +1062222 173 +1062227 195 +1062228 267 +1062248 240 +1062257 181 +1062261 167 +1062281 185 +1062293 187 +1062306 214 +1062309 180 +1062317 355 +1062339 241 +1062360 284 +1062361 239 +1062368 189 +1062369 299 +1062374 292 +1062411 223 +1062414 196 +1062416 186 +1062418 207 +1062422 336 +1062428 181 +1062435 213 +1062442 192 +1062444 244 +1062451 198 +1062452 162 +1062461 208 +1062467 185 +1062475 752 +1062478 220 +1062485 184 +1062493 187 +1062495 287 +1062503 232 +1062514 214 +1062516 173 +1062528 282 +1062538 193 +1062553 191 +1062555 284 +1062559 174 +1062572 275 +1062580 279 +1062586 273 +1062606 172 +1062608 191 +1062615 489 +1062616 180 +1062649 255 +1062654 232 +1062655 471 +1062660 386 +1062661 190 +1062675 200 +1062681 290 +1062687 241 +1062716 1409 +1062731 189 +1062773 177 +1062775 227 +1062788 376 +1062802 155 +1062829 174 +1062836 222 +1062842 234 +1062852 180 +1062867 245 +1062883 186 +1062887 226 +1062892 196 +1062895 191 +1062900 191 +1062915 284 +1062924 357 +1062926 224 +1062930 329 +1062940 390 +1062941 196 +1062961 414 +1062968 180 +1062980 382 +1062988 205 +1062993 221 +1062996 195 +1063015 204 +1063017 192 +1063030 388 +1063034 211 +1063047 180 +1063048 175 +1063050 199 +1063052 362 +1063069 229 +1063095 320 +1063099 235 +1063102 320 +1063103 276 +1063115 252 +1063122 233 +1063141 187 +1063142 180 +1063143 199 +1063148 299 +1063150 199 +1063154 641 +1063171 286 +1063172 296 +1063180 179 +1063181 174 +1063183 212 +1063192 216 +1063196 178 +1063198 180 +1063205 321 +1063215 181 +1063220 208 +1063230 220 +1063238 201 +1063239 174 +1063241 187 +1063262 206 +1063267 214 +1063270 186 +1063274 209 +1063276 181 +1063292 174 +1063303 170 +1063304 242 +1063311 189 +1063312 193 +1063322 181 +1063326 234 +1063337 156 +1063344 181 +1063347 193 +1063349 247 +1063354 181 +1063356 274 +1063359 284 +1063365 193 +1063366 190 +1063368 195 +1063377 208 +1063382 319 +1063389 180 +1063390 225 +1063402 193 +1063410 180 +1063411 197 +1063417 196 +1063423 180 +1063427 234 +1063433 174 +1063449 202 +1063457 190 +1063499 216 +1063503 180 +1063514 248 +1063520 193 +1063550 191 +1063556 181 +1063562 190 +1063563 346 +1063564 269 +1063573 236 +1063576 274 +1063582 208 +1063586 215 +1063601 157 +1063603 226 +1063604 466 +1063637 173 +1063641 315 +1063659 273 +1063660 198 +1063677 185 +1063699 202 +1063702 205 +1063712 198 +1063715 225 +1063723 185 +1063744 187 +1063757 306 +1063774 187 +1063775 229 +1063779 417 +1063783 248 +1063789 204 +1063798 266 +1063819 172 +1063838 160 +1063839 143 +1063851 285 +1063853 211 +1063864 193 +1063876 279 +1063883 205 +1063884 180 +1063897 199 +1063927 232 +1063961 211 +1063963 213 +1063971 496 +1063987 249 +1064008 236 +1064030 262 +1064043 212 +1064044 385 +1064066 156 +1064072 195 +1064092 356 +1064113 167 +1064128 246 +1064129 1490 +1064132 258 +1064136 236 +1064143 272 +1064147 197 +1064156 398 +1064164 195 +1064210 205 +1064211 211 +1064215 303 +1064228 198 +1064273 175 +1064276 180 +1064298 193 +1064320 393 +1064321 323 +1064324 208 +1064328 174 +1064335 179 +1064337 278 +1064345 221 +1064352 187 +1064374 229 +1064377 336 +1064388 155 +1064397 286 +1064399 231 +1064408 182 +1064415 174 +1064425 201 +1064432 179 +1064450 291 +1064466 179 +1064491 238 +1064511 270 +1064512 204 +1064514 217 +1064519 192 +1064524 181 +1064539 175 +1064541 179 +1064542 193 +1064561 321 +1064563 175 +1064575 187 +1064605 195 +1064607 233 +1064612 177 +1064619 197 +1064627 167 +1064647 227 +1064658 349 +1064659 196 +1064696 201 +1064697 224 +1064698 262 +1064710 376 +1064717 215 +1064730 221 +1064731 192 +1064733 265 +1064741 217 +1064746 237 +1064755 329 +1064757 174 +1064758 192 +1064772 205 +1064783 193 +1064801 223 +1064809 187 +1064816 180 +1064817 171 +1064835 217 +1064839 285 +1064850 179 +1064866 259 +1064881 196 +1064891 175 +1064901 181 +1064919 180 +1064922 193 +1064932 204 +1064933 268 +1064960 205 +1064965 272 +1064974 184 +1064983 174 +1064999 187 +1065010 184 +1065012 177 +1065013 335 +1065021 519 +1065038 187 +1065042 275 +1065047 345 +1065048 300 +1065054 187 +1065056 187 +1065094 197 +1065116 233 +1065125 138 +1065126 230 +1065135 264 +1065147 176 +1065150 190 +1065159 190 +1065173 206 +1065190 166 +1065197 165 +1065201 187 +1065210 227 +1065224 189 +1065234 240 +1065267 356 +1065271 187 +1065275 200 +1065278 232 +1065280 192 +1065295 287 +1065302 234 +1065317 221 +1065322 186 +1065326 223 +1065339 183 +1065343 321 +1065360 167 +1065361 212 +1065379 245 +1065382 217 +1065384 193 +1065387 192 +1065411 181 +1065421 567 +1065427 275 +1065446 488 +1065454 205 +1065457 223 +1065462 341 +1065507 249 +1065508 227 +1065518 213 +1065521 232 +1065522 196 +1065525 155 +1065538 299 +1065548 257 +1065551 250 +1065554 192 +1065574 176 +1065580 227 +1065583 213 +1065591 166 +1065592 297 +1065594 186 +1065607 174 +1065629 305 +1065634 231 +1065676 161 +1065677 260 +1065701 270 +1065718 169 +1065722 367 +1065725 174 +1065727 306 +1065743 332 +1065744 277 +1065751 183 +1065781 196 +1065800 199 +1065806 677 +1065813 207 +1065820 173 +1065828 192 +1065836 217 +1065837 264 +1065844 230 +1065849 199 +1065852 237 +1065858 228 +1065864 248 +1065866 190 +1065892 214 +1065902 213 +1065916 216 +1065918 223 +1065938 199 +1065943 234 +1065957 157 +1065973 245 +1066028 154 +1066058 176 +1066087 212 +1066093 291 +1066105 212 +1066125 239 +1066133 290 +1066139 283 +1066149 181 +1066173 236 +1066184 207 +1066187 469 +1066202 183 +1066222 187 +1066236 253 +1066239 194 +1066253 399 +1066263 600 +1066266 338 +1066290 180 +1066293 135 +1066296 233 +1066297 254 +1066304 256 +1066307 186 +1066349 661 +1066354 188 +1066356 189 +1066403 178 +1066412 243 +1066414 204 +1066423 175 +1066425 231 +1066428 378 +1066434 171 +1066446 163 +1066450 517 +1066466 224 +1066472 186 +1066477 333 +1066485 241 +1066499 246 +1066505 139 +1066509 512 +1066514 190 +1066537 196 +1066543 176 +1066550 184 +1066555 280 +1066563 266 +1066566 227 +1066568 208 +1066569 239 +1066571 175 +1066580 379 +1066582 193 +1066585 659 +1066596 296 +1066606 199 +1066615 212 +1066629 187 +1066649 186 +1066680 174 +1066698 306 +1066700 181 +1066703 186 +1066706 236 +1066730 193 +1066743 149 +1066744 180 +1066761 227 +1066770 294 +1066776 451 +1066785 195 +1066790 470 +1066800 178 +1066801 192 +1066818 202 +1066835 155 +1066852 174 +1066857 190 +1066862 198 +1066870 175 +1066919 195 +1066922 186 +1066923 193 +1066930 248 +1066935 150 +1066937 357 +1066942 260 +1066954 185 +1066963 192 +1066970 191 +1066975 207 +1066977 180 +1066995 272 +1066999 172 +1067007 189 +1067019 230 +1067021 157 +1067025 205 +1067038 272 +1067039 249 +1067081 226 +1067089 241 +1067097 207 +1067103 181 +1067117 181 +1067125 297 +1067134 162 +1067143 202 +1067154 377 +1067161 247 +1067169 190 +1067172 398 +1067173 404 +1067182 202 +1067189 178 +1067206 206 +1067209 223 +1067213 224 +1067220 211 +1067230 171 +1067262 376 +1067298 187 +1067307 249 +1067319 381 +1067325 181 +1067331 183 +1067350 179 +1067370 468 +1067371 233 +1067388 275 +1067389 296 +1067393 173 +1067402 212 +1067417 174 +1067419 388 +1067444 248 +1067466 196 +1067469 184 +1067474 186 +1067476 187 +1067481 203 +1067529 146 +1067536 174 +1067557 199 +1067563 219 +1067577 270 +1067584 268 +1067591 194 +1067600 363 +1067631 204 +1067633 121 +1067650 220 +1067677 251 +1067687 208 +1067732 178 +1067741 180 +1067748 202 +1067832 193 +1067839 180 +1067847 199 +1067853 143 +1067858 509 +1067919 186 +1067925 167 +1067928 176 +1067957 380 +1067967 226 +1067981 219 +1067984 172 +1068016 204 +1068023 188 +1068026 187 +1068065 207 +1068066 283 +1068078 185 +1068091 173 +1068092 211 +1068099 239 +1068118 209 +1068127 193 +1068138 195 +1068172 174 +1068198 174 +1068201 177 +1068222 212 +1068224 628 +1068254 189 +1068266 167 +1068281 163 +1068301 263 +1068342 393 +1068363 235 +1068364 173 +1068365 227 +1068369 242 +1068378 344 +1068389 166 +1068396 225 +1068419 364 +1068425 165 +1068454 305 +1068455 208 +1068471 361 +1068488 1132 +1068502 187 +1068516 180 +1068533 282 +1068546 235 +1068552 300 +1068576 186 +1068578 184 +1068583 188 +1068585 174 +1068595 203 +1068624 102 +1068629 684 +1068635 364 +1068638 232 +1068654 184 +1068661 180 +1068663 264 +1068664 182 +1068694 187 +1068701 222 +1068705 192 +1068721 192 +1068725 301 +1068730 298 +1068784 250 +1068790 195 +1068795 280 +1068838 160 +1068876 145 +1068878 289 +1068882 166 +1068888 186 +1068893 175 +1068918 289 +1068929 195 +1068931 209 +1068942 184 +1068947 200 +1068953 315 +1068961 245 +1068964 242 +1068978 415 +1068981 292 +1068985 181 +1068994 212 +1068997 344 +1069001 268 +1069003 175 +1069027 275 +1069042 188 +1069043 161 +1069052 184 +1069055 162 +1069078 182 +1069096 187 +1069101 194 +1069106 183 +1069120 260 +1069127 269 +1069129 354 +1069130 238 +1069133 207 +1069136 294 +1069148 263 +1069155 209 +1069190 181 +1069194 190 +1069199 373 +1069225 434 +1069227 832 +1069228 228 +1069238 214 +1069243 290 +1069246 241 +1069269 254 +1069273 180 +1069276 195 +1069286 175 +1069288 180 +1069294 186 +1069299 181 +1069300 171 +1069301 199 +1069310 199 +1069312 177 +1069316 171 +1069321 175 +1069331 186 +1069336 168 +1069343 192 +1069346 224 +1069351 175 +1069367 604 +1069368 184 +1069372 204 +1069380 185 +1069393 192 +1069425 272 +1069430 194 +1069432 206 +1069435 217 +1069442 184 +1069449 710 +1069450 244 +1069453 264 +1069462 214 +1069463 194 +1069474 271 +1069503 261 +1069519 180 +1069523 189 +1069525 191 +1069532 193 +1069542 278 +1069563 241 +1069566 240 +1069572 218 +1069578 143 +1069579 287 +1069581 181 +1069597 281 +1069599 188 +1069600 223 +1069605 210 +1069627 180 +1069666 201 +1069694 177 +1069699 200 +1069718 207 +1069731 177 +1069743 224 +1069755 212 +1069767 203 +1069788 235 +1069793 242 +1069805 233 +1069822 274 +1069831 204 +1069835 181 +1069880 185 +1069882 279 +1069884 216 +1069891 175 +1069898 178 +1069899 250 +1069909 246 +1069917 192 +1069923 436 +1069926 174 +1069938 226 +1069940 242 +1069952 261 +1069960 210 +1069969 184 +1069973 202 +1069980 178 +1070001 271 +1070002 211 +1070009 238 +1070017 257 +1070021 251 +1070023 183 +1070035 268 +1070059 186 +1070078 180 +1070085 181 +1070089 241 +1070094 298 +1070105 168 +1070107 304 +1070117 343 +1070127 188 +1070129 191 +1070173 400 +1070179 269 +1070211 205 +1070213 235 +1070219 172 +1070220 229 +1070238 199 +1070242 280 +1070249 220 +1070254 226 +1070271 149 +1070282 252 +1070302 212 +1070306 187 +1070321 271 +1070325 178 +1070366 186 +1070370 186 +1070375 189 +1070378 182 +1070422 443 +1070431 215 +1070471 194 +1070496 206 +1070509 226 +1070528 200 +1070605 427 +1070606 183 +1070622 347 +1070627 208 +1070641 234 +1070647 200 +1070649 184 +1070677 195 +1070697 272 +1070709 168 +1070713 180 +1070720 198 +1070737 243 +1070774 216 +1070787 192 +1070790 183 +1070798 242 +1070828 184 +1070834 160 +1070934 187 +1070941 211 +1070953 219 +1070956 231 +1070974 229 +1070978 190 +1070987 183 +1070995 217 +1071003 182 +1071008 177 +1071033 298 +1071046 216 +1071060 229 +1071083 175 +1071084 208 +1071106 198 +1071122 544 +1071135 210 +1071151 410 +1071165 199 +1071167 176 +1071198 172 +1071200 220 +1071205 219 +1071212 262 +1071214 190 +1071225 194 +1071256 184 +1071257 301 +1071264 312 +1071281 205 +1071291 233 +1071304 218 +1071314 207 +1071317 178 +1071318 218 +1071319 331 +1071322 172 +1071329 181 +1071331 187 +1071332 156 +1071333 246 +1071343 257 +1071357 159 +1071362 181 +1071363 152 +1071371 307 +1071380 212 +1071384 356 +1071401 196 +1071402 199 +1071410 180 +1071428 182 +1071431 173 +1071434 199 +1071451 175 +1071452 362 +1071453 194 +1071459 288 +1071460 167 +1071472 180 +1071475 193 +1071480 322 +1071482 196 +1071494 68 +1071495 280 +1071503 177 +1071508 179 +1071509 192 +1071521 205 +1071563 353 +1071566 332 +1071589 207 +1071628 266 +1071632 205 +1071664 798 +1071679 197 +1071682 227 +1071685 317 +1071686 209 +1071687 205 +1071701 193 +1071706 193 +1071710 498 +1071711 498 +1071723 947 +1071740 176 +1071744 1099 +1071746 149 +1071759 189 +1071764 228 +1071776 248 +1071786 192 +1071791 220 +1071793 199 +1071796 165 +1071800 189 +1071813 199 +1071822 217 +1071829 226 +1071832 223 +1071833 207 +1071861 204 +1071881 179 +1071888 217 +1071897 242 +1071898 238 +1071903 180 +1071915 178 +1071920 287 +1071923 193 +1071930 219 +1071935 243 +1071938 323 +1071940 230 +1071949 202 +1071950 206 +1071956 584 +1071963 438 +1071968 247 +1071970 219 +1071973 358 +1071991 573 +1072009 253 +1072068 428 +1072076 195 +1072089 194 +1072107 229 +1072110 200 +1072136 250 +1072141 211 +1072151 534 +1072152 292 +1072154 263 +1072163 217 +1072172 187 +1072185 186 +1072188 310 +1072190 181 +1072197 174 +1072200 198 +1072201 194 +1072203 155 +1072209 229 +1072212 186 +1072213 186 +1072218 150 +1072220 253 +1072221 155 +1072223 222 +1072227 419 +1072234 260 +1072263 187 +1072264 273 +1072269 193 +1072271 300 +1072276 194 +1072277 180 +1072279 216 +1072282 168 +1072283 187 +1072305 162 +1072309 198 +1072312 169 +1072314 241 +1072327 204 +1072331 214 +1072336 192 +1072337 173 +1072351 323 +1072370 253 +1072376 181 +1072390 181 +1072391 187 +1072413 221 +1072414 215 +1072444 224 +1072454 198 +1072455 207 +1072459 149 +1072474 187 +1072485 294 +1072490 287 +1072520 181 +1072526 307 +1072542 319 +1072552 500 +1072558 337 +1072578 165 +1072585 204 +1072589 238 +1072590 264 +1072593 221 +1072597 192 +1072598 438 +1072602 247 +1072603 152 +1072604 204 +1072610 234 +1072617 202 +1072621 159 +1072625 187 +1072629 186 +1072632 212 +1072638 187 +1072642 197 +1072649 177 +1072670 178 +1072675 181 +1072678 217 +1072690 270 +1072692 205 +1072706 270 +1072707 187 +1072716 187 +1072719 223 +1072734 199 +1072742 263 +1072749 360 +1072761 204 +1072762 312 +1072771 200 +1072777 287 +1072785 228 +1072790 204 +1072793 195 +1072808 177 +1072824 208 +1072835 178 +1072843 233 +1072876 251 +1072878 156 +1072887 183 +1072891 588 +1072898 212 +1072927 218 +1072955 160 +1072979 186 +1072981 175 +1072984 195 +1072986 189 +1072989 180 +1072995 138 +1073000 231 +1073017 238 +1073053 590 +1073061 242 +1073066 217 +1073115 194 +1073124 278 +1073125 289 +1073128 196 +1073142 262 +1073158 264 +1073170 172 +1073174 314 +1073179 199 +1073186 152 +1073192 159 +1073196 181 +1073204 314 +1073216 205 +1073227 173 +1073259 147 +1073261 289 +1073264 181 +1073275 239 +1073276 221 +1073280 369 +1073300 278 +1073313 226 +1073314 199 +1073317 191 +1073320 226 +1073326 174 +1073332 190 +1073365 200 +1073373 197 +1073374 172 +1073381 233 +1073386 181 +1073401 195 +1073405 773 +1073408 211 +1073420 218 +1073434 287 +1073438 167 +1073450 185 +1073463 250 +1073474 188 +1073476 263 +1073477 313 +1073501 180 +1073508 169 +1073513 199 +1073522 112 +1073526 170 +1073529 196 +1073535 192 +1073545 288 +1073548 247 +1073549 184 +1073570 174 +1073574 174 +1073575 179 +1073577 199 +1073584 187 +1073596 212 +1073603 187 +1073613 283 +1073617 290 +1073636 174 +1073637 322 +1073638 174 +1073639 704 +1073647 190 +1073650 246 +1073651 180 +1073661 227 +1073669 248 +1073672 238 +1073675 207 +1073680 181 +1073704 395 +1073708 180 +1073709 180 +1073717 458 +1073728 189 +1073745 305 +1073782 216 +1073792 156 +1073824 191 +1073830 573 +1073841 195 +1073842 167 +1073848 174 +1073872 182 +1073874 162 +1073893 237 +1073909 240 +1073936 174 +1073940 165 +1073972 268 +1073986 154 +1073991 364 +1073995 196 +1074010 290 +1074013 216 +1074029 204 +1074033 191 +1074035 232 +1074042 184 +1074061 315 +1074068 290 +1074075 164 +1074077 178 +1074101 215 +1074114 198 +1074123 328 +1074134 336 +1074152 191 +1074162 193 +1074166 527 +1074168 244 +1074184 230 +1074199 196 +1074200 186 +1074203 232 +1074217 525 +1074220 395 +1074221 239 +1074269 327 +1074270 704 +1074290 193 +1074293 186 +1074298 195 +1074335 171 +1074337 242 +1074352 273 +1074363 193 +1074364 303 +1074375 251 +1074376 248 +1074377 259 +1074387 238 +1074394 193 +1074401 305 +1074406 181 +1074413 190 +1074414 216 +1074416 161 +1074422 309 +1074427 220 +1074428 360 +1074472 379 +1074477 181 +1074482 279 +1074492 285 +1074494 300 +1074495 178 +1074496 223 +1074504 704 +1074505 228 +1074513 317 +1074514 338 +1074515 188 +1074518 193 +1074527 194 +1074540 316 +1074559 215 +1074564 254 +1074567 65 +1074572 218 +1074575 174 +1074579 275 +1074580 291 +1074581 275 +1074585 193 +1074605 266 +1074629 206 +1074631 181 +1074642 184 +1074643 294 +1074646 208 +1074648 189 +1074658 354 +1074675 232 +1074680 310 +1074683 206 +1074690 230 +1074691 233 +1074697 187 +1074720 187 +1074721 168 +1074728 385 +1074732 218 +1074739 281 +1074743 198 +1074752 247 +1074759 491 +1074774 354 +1074788 199 +1074795 195 +1074800 168 +1074813 307 +1074829 457 +1074866 186 +1074884 181 +1074924 236 +1074931 183 +1074933 228 +1074948 180 +1074949 186 +1074952 266 +1074964 177 +1074981 189 +1075000 230 +1075003 178 +1075004 201 +1075024 178 +1075030 375 +1075040 269 +1075052 629 +1075061 157 +1075068 200 +1075070 189 +1075078 254 +1075093 217 +1075094 189 +1075099 210 +1075101 228 +1075105 289 +1075108 217 +1075112 190 +1075121 279 +1075123 205 +1075130 214 +1075142 199 +1075144 293 +1075146 165 +1075149 186 +1075154 202 +1075155 209 +1075177 558 +1075183 205 +1075186 198 +1075189 329 +1075195 167 +1075198 203 +1075208 226 +1075216 187 +1075217 157 +1075221 217 +1075224 201 +1075229 338 +1075233 191 +1075252 236 +1075257 326 +1075266 276 +1075277 187 +1075284 225 +1075313 302 +1075316 209 +1075320 210 +1075324 274 +1075331 284 +1075337 171 +1075359 204 +1075360 191 +1075361 187 +1075363 111 +1075372 174 +1075374 157 +1075380 367 +1075384 185 +1075395 215 +1075397 264 +1075399 234 +1075404 217 +1075405 175 +1075423 347 +1075428 195 +1075433 187 +1075461 268 +1075464 193 +1075467 283 +1075473 343 +1075476 205 +1075478 226 +1075479 197 +1075483 187 +1075490 255 +1075491 244 +1075495 220 +1075498 343 +1075507 217 +1075515 192 +1075519 186 +1075520 181 +1075527 379 +1075553 189 +1075554 376 +1075560 224 +1075561 223 +1075576 315 +1075579 362 +1075597 231 +1075608 241 +1075610 306 +1075632 200 +1075642 165 +1075643 193 +1075659 186 +1075669 262 +1075685 240 +1075687 305 +1075690 215 +1075691 242 +1075694 251 +1075699 195 +1075701 223 +1075704 199 +1075713 302 +1075715 336 +1075716 187 +1075719 192 +1075725 200 +1075727 212 +1075729 186 +1075732 275 +1075755 191 +1075762 217 +1075764 177 +1075773 198 +1075784 235 +1075785 196 +1075787 363 +1075788 157 +1075789 324 +1075811 208 +1075816 169 +1075817 217 +1075823 210 +1075825 317 +1075831 296 +1075833 234 +1075834 234 +1075835 199 +1075836 217 +1075837 187 +1075852 450 +1075860 217 +1075863 99 +1075872 335 +1075874 518 +1075885 209 +1075886 199 +1075892 203 +1075914 303 +1075924 704 +1075932 212 +1075938 224 +1075940 202 +1075941 178 +1075958 234 +1075963 252 +1075970 243 +1075973 184 +1075975 196 +1075982 178 +1075987 300 +1075988 215 +1075992 211 +1075997 183 +1075998 663 +1075999 895 +1076002 258 +1076009 178 +1076012 193 +1076014 225 +1076015 319 +1076021 255 +1076027 226 +1076028 173 +1076029 263 +1076037 202 +1076040 1122 +1076059 216 +1076071 232 +1076077 187 +1076087 213 +1076097 216 +1076111 205 +1076126 1197 +1076127 140 +1076128 260 +1076131 459 +1076171 181 +1076178 329 +1076182 201 +1076190 812 +1076198 202 +1076215 232 +1076236 256 +1076245 192 +1076280 139 +1076284 252 +1076298 395 +1076301 660 +1076307 196 +1076313 152 +1076345 188 +1076390 287 +1076391 189 +1076399 221 +1076401 260 +1076403 186 +1076414 256 +1076433 180 +1076451 314 +1076457 301 +1076462 353 +1076485 184 +1076510 330 +1076516 264 +1076520 189 +1076542 252 +1076543 193 +1076553 253 +1076583 198 +1076593 188 +1076596 183 +1076598 186 +1076616 188 +1076635 508 +1076637 190 +1076640 199 +1076642 184 +1076665 149 +1076680 281 +1076685 168 +1076689 189 +1076692 221 +1076697 719 +1076702 197 +1076706 178 +1076725 236 +1076731 341 +1076743 504 +1076751 199 +1076756 189 +1076768 242 +1076771 468 +1076781 190 +1076784 223 +1076787 446 +1076790 316 +1076792 423 +1076793 174 +1076797 169 +1076799 190 +1076803 199 +1076805 183 +1076806 183 +1076811 256 +1076818 180 +1076823 318 +1076829 183 +1076831 215 +1076833 232 +1076834 198 +1076840 196 +1076843 289 +1076845 228 +1076846 193 +1076851 183 +1076868 174 +1076869 192 +1076880 342 +1076895 494 +1076903 232 +1076907 193 +1076913 209 +1076918 230 +1076919 187 +1076928 197 +1076935 239 +1076949 189 +1076960 371 +1076963 205 +1076982 192 +1077003 180 +1077007 178 +1077026 187 +1077029 196 +1077044 207 +1077054 215 +1077066 188 +1077082 174 +1077102 261 +1077113 208 +1077118 185 +1077122 178 +1077127 630 +1077139 193 +1077143 210 +1077152 400 +1077167 196 +1077181 168 +1077184 200 +1077187 182 +1077204 206 +1077218 311 +1077226 289 +1077244 321 +1077245 190 +1077257 245 +1077267 205 +1077285 318 +1077286 259 +1077291 187 +1077299 235 +1077300 232 +1077316 441 +1077321 193 +1077334 222 +1077343 227 +1077349 319 +1077353 240 +1077367 232 +1077371 203 +1077390 215 +1077391 488 +1077400 211 +1077433 608 +1077442 407 +1077443 152 +1077474 224 +1077490 353 +1077494 241 +1077502 223 +1077517 286 +1077519 204 +1077522 462 +1077525 149 +1077534 211 +1077543 288 +1077544 186 +1077552 193 +1077558 264 +1077570 294 +1077574 259 +1077576 142 +1077624 193 +1077626 168 +1077629 312 +1077636 253 +1077653 187 +1077687 215 +1077699 173 +1077701 188 +1077746 330 +1077760 185 +1077779 190 +1077785 243 +1077789 240 +1077799 218 +1077817 300 +1077827 181 +1077843 155 +1077871 200 +1077872 264 +1077886 191 +1077895 180 +1077898 313 +1077927 173 +1077928 262 +1077940 180 +1077943 300 +1077950 232 +1077951 196 +1077962 164 +1077965 192 +1077967 308 +1077969 235 +1077978 199 +1078000 175 +1078001 190 +1078004 205 +1078013 180 +1078016 274 +1078024 401 +1078028 227 +1078029 928 +1078038 217 +1078048 168 +1078062 316 +1078070 443 +1078079 212 +1078092 374 +1078101 228 +1078112 197 +1078135 187 +1078138 183 +1078147 144 +1078150 178 +1078154 216 +1078157 275 +1078164 229 +1078166 205 +1078172 180 +1078174 189 +1078200 177 +1078201 217 +1078204 431 +1078209 191 +1078215 175 +1078224 323 +1078234 180 +1078236 325 +1078242 232 +1078251 193 +1078257 243 +1078266 254 +1078267 202 +1078281 223 +1078284 383 +1078315 353 +1078316 297 +1078317 191 +1078319 201 +1078320 386 +1078324 661 +1078325 441 +1078326 316 +1078335 224 +1078342 195 +1078345 733 +1078348 180 +1078351 205 +1078353 239 +1078355 204 +1078362 212 +1078368 199 +1078387 182 +1078391 174 +1078392 180 +1078393 190 +1078395 194 +1078400 198 +1078410 366 +1078417 311 +1078418 179 +1078419 192 +1078441 206 +1078460 214 +1078475 297 +1078498 224 +1078512 225 +1078519 180 +1078537 260 +1078541 352 +1078557 236 +1078560 371 +1078564 235 +1078572 229 +1078604 184 +1078620 230 +1078621 196 +1078630 214 +1078643 359 +1078652 165 +1078655 228 +1078664 209 +1078677 193 +1078691 175 +1078698 297 +1078716 195 +1078725 278 +1078727 184 +1078742 212 +1078765 235 +1078770 187 +1078787 199 +1078796 193 +1078799 188 +1078832 314 +1078890 178 +1078898 212 +1078907 384 +1078934 247 +1078943 184 +1078966 242 +1078967 198 +1078970 230 +1078978 184 +1078988 190 +1078999 294 +1079015 163 +1079037 195 +1079039 334 +1079041 199 +1079057 255 +1079058 369 +1079062 223 +1079068 271 +1079073 233 +1079082 288 +1079083 180 +1079084 214 +1079088 210 +1079116 196 +1079126 688 +1079127 240 +1079180 293 +1079201 214 +1079206 357 +1079208 499 +1079214 181 +1079224 187 +1079238 180 +1079253 215 +1079259 193 +1079263 173 +1079280 197 +1079281 249 +1079282 352 +1079284 188 +1079289 208 +1079295 174 +1079305 189 +1079307 279 +1079309 301 +1079314 305 +1079316 253 +1079342 293 +1079344 187 +1079353 531 +1079373 263 +1079374 356 +1079403 287 +1079412 183 +1079419 199 +1079421 199 +1079427 241 +1079435 195 +1079443 160 +1079445 193 +1079457 199 +1079462 153 +1079466 277 +1079469 172 +1079488 765 +1079490 227 +1079495 258 +1079496 267 +1079507 193 +1079519 318 +1079522 177 +1079541 186 +1079552 194 +1079573 194 +1079582 205 +1079590 150 +1079591 225 +1079599 306 +1079600 201 +1079602 196 +1079611 193 +1079612 162 +1079624 162 +1079638 222 +1079647 223 +1079648 443 +1079649 202 +1079653 177 +1079669 311 +1079675 205 +1079678 329 +1079679 194 +1079691 187 +1079696 180 +1079707 231 +1079731 259 +1079741 245 +1079759 192 +1079767 266 +1079768 264 +1079771 184 +1079785 243 +1079814 264 +1079830 236 +1079851 236 +1079855 190 +1079863 233 +1079873 190 +1079881 311 +1079882 184 +1079897 199 +1079907 248 +1079908 817 +1079924 179 +1079927 222 +1079928 193 +1079956 362 +1079966 227 +1079968 190 +1079974 168 +1079981 205 +1080006 193 +1080028 201 +1080059 183 +1080071 339 +1080186 184 +1080240 334 +1080269 488 +1080274 215 +1080276 187 +1080305 216 +1080313 228 +1080317 167 +1080331 198 +1080371 228 +1080373 238 +1080380 209 +1080382 396 +1080391 198 +1080398 209 +1080402 197 +1080413 280 +1080418 214 +1080422 240 +1080426 187 +1080434 196 +1080437 225 +1080442 205 +1080454 184 +1080468 199 +1080481 213 +1080495 212 +1080509 202 +1080515 270 +1080524 172 +1080527 186 +1080530 237 +1080536 193 +1080553 243 +1080554 201 +1080563 182 +1080564 192 +1080584 211 +1080587 290 +1080598 212 +1080603 187 +1080605 465 +1080621 205 +1080623 198 +1080626 199 +1080633 279 +1080637 193 +1080640 204 +1080641 224 +1080658 178 +1080668 331 +1080669 226 +1080699 196 +1080705 174 +1080714 259 +1080723 168 +1080741 187 +1080742 198 +1080743 343 +1080779 156 +1080802 189 +1080808 192 +1080809 205 +1080811 324 +1080814 195 +1080818 187 +1080824 184 +1080829 244 +1080834 296 +1080839 187 +1080842 229 +1080843 199 +1080846 220 +1080870 312 +1080871 187 +1080902 223 +1080914 199 +1080932 234 +1080943 171 +1080944 179 +1080956 256 +1080967 488 +1080971 219 +1080992 226 +1081010 208 +1081023 248 +1081035 947 +1081039 202 +1081046 187 +1081055 444 +1081062 215 +1081066 230 +1081067 180 +1081079 289 +1081081 231 +1081105 160 +1081127 443 +1081138 202 +1081139 248 +1081170 220 +1081183 263 +1081189 173 +1081199 190 +1081206 299 +1081209 180 +1081214 221 +1081219 158 +1081222 192 +1081227 212 +1081229 199 +1081235 340 +1081272 227 +1081278 412 +1081297 200 +1081301 294 +1081306 396 +1081334 195 +1081341 294 +1081363 213 +1081368 179 +1081379 261 +1081410 195 +1081421 242 +1081423 177 +1081433 372 +1081437 227 +1081438 179 +1081488 221 +1081490 210 +1081501 205 +1081551 184 +1081559 482 +1081575 143 +1081580 211 +1081581 533 +1081583 448 +1081587 491 +1081593 189 +1081598 198 +1081603 275 +1081608 266 +1081628 149 +1081635 227 +1081656 181 +1081663 193 +1081673 186 +1081704 191 +1081717 181 +1081735 198 +1081748 242 +1081770 160 +1081785 211 +1081786 337 +1081790 197 +1081795 175 +1081798 308 +1081820 186 +1081842 260 +1081850 208 +1081853 205 +1081855 209 +1081869 399 +1081872 212 +1081876 199 +1081900 193 +1081901 193 +1081902 187 +1081930 588 +1081937 222 +1081940 217 +1081948 223 +1081959 260 +1081974 216 +1081980 252 +1081985 175 +1082011 180 +1082023 171 +1082027 181 +1082073 174 +1082087 206 +1082094 277 +1082103 202 +1082104 425 +1082113 196 +1082117 213 +1082118 178 +1082125 181 +1082126 251 +1082131 233 +1082134 238 +1082135 256 +1082150 187 +1082152 208 +1082156 187 +1082165 183 +1082178 202 +1082181 167 +1082185 263 +1082186 253 +1082192 182 +1082194 220 +1082199 196 +1082208 190 +1082214 288 +1082217 193 +1082255 308 +1082263 212 +1082270 190 +1082272 338 +1082276 198 +1082278 183 +1082282 147 +1082283 187 +1082288 193 +1082294 200 +1082295 198 +1082325 268 +1082337 204 +1082345 226 +1082391 325 +1082392 181 +1082398 174 +1082400 181 +1082431 206 +1082462 216 +1082477 205 +1082481 338 +1082489 149 +1082493 180 +1082516 222 +1082529 179 +1082530 217 +1082539 160 +1082540 226 +1082542 243 +1082543 176 +1082554 181 +1082557 197 +1082561 379 +1082591 188 +1082610 206 +1082622 178 +1082632 196 +1082641 244 +1082654 159 +1082676 193 +1082702 180 +1082758 187 +1082763 335 +1082775 177 +1082785 250 +1082792 215 +1082809 174 +1082811 351 +1082814 183 +1082821 193 +1082823 191 +1082842 251 +1082853 187 +1082854 167 +1082858 224 +1082863 187 +1082868 195 +1082879 180 +1082890 214 +1082899 184 +1082907 220 +1082935 186 +1082938 312 +1082945 299 +1082947 185 +1082967 237 +1082976 136 +1082982 180 +1082999 180 +1083017 252 +1083031 268 +1083038 204 +1083057 223 +1083062 195 +1083065 156 +1083067 261 +1083078 306 +1083087 235 +1083092 209 +1083095 549 +1083100 188 +1083114 284 +1083126 189 +1083150 218 +1083160 490 +1083164 198 +1083170 247 +1083183 223 +1083184 252 +1083187 316 +1083203 219 +1083208 519 +1083210 185 +1083219 174 +1083255 184 +1083260 447 +1083286 158 +1083287 343 +1083289 308 +1083291 159 +1083323 268 +1083347 200 +1083351 232 +1083353 203 +1083356 374 +1083389 216 +1083408 288 +1083438 202 +1083450 433 +1083462 303 +1083463 168 +1083497 227 +1083520 205 +1083548 228 +1083549 265 +1083551 201 +1083556 219 +1083564 233 +1083572 235 +1083617 186 +1083622 193 +1083625 191 +1083627 244 +1083631 138 +1083633 256 +1083639 182 +1083640 321 +1083651 170 +1083679 208 +1083680 193 +1083708 345 +1083714 300 +1083716 187 +1083720 299 +1083732 198 +1083747 259 +1083748 230 +1083766 187 +1083772 180 +1083781 295 +1083833 156 +1083838 177 +1083844 171 +1083856 265 +1083858 187 +1083863 387 +1083880 260 +1083881 173 +1083899 143 +1083922 196 +1083932 187 +1083937 196 +1083953 186 +1083966 174 +1083978 189 +1084006 359 +1084007 241 +1084026 208 +1084031 236 +1084038 199 +1084051 174 +1084056 271 +1084059 431 +1084061 217 +1084062 187 +1084065 226 +1084071 194 +1084074 177 +1084081 143 +1084098 335 +1084102 199 +1084107 233 +1084121 197 +1084133 190 +1084137 199 +1084187 227 +1084200 208 +1084214 181 +1084219 254 +1084221 323 +1084226 133 +1084235 224 +1084246 248 +1084249 198 +1084255 258 +1084266 208 +1084300 454 +1084302 205 +1084314 168 +1084322 196 +1084326 186 +1084352 174 +1084376 230 +1084381 168 +1084405 220 +1084407 284 +1084414 187 +1084427 313 +1084451 414 +1084465 142 +1084473 175 +1084477 713 +1084479 192 +1084480 236 +1084482 193 +1084491 309 +1084499 252 +1084502 190 +1084507 349 +1084511 214 +1084528 346 +1084545 152 +1084587 283 +1084590 218 +1084602 263 +1084605 288 +1084613 263 +1084629 266 +1084632 181 +1084634 198 +1084660 220 +1084661 191 +1084685 277 +1084691 196 +1084710 215 +1084724 244 +1084762 201 +1084798 187 +1084808 220 +1084809 211 +1084826 194 +1084831 187 +1084850 196 +1084854 218 +1084856 207 +1084857 195 +1084859 173 +1084884 187 +1084895 222 +1084897 181 +1084900 251 +1084909 242 +1084914 182 +1084935 202 +1084940 193 +1084967 247 +1084974 388 +1084982 181 +1084983 193 +1085000 181 +1085002 167 +1085008 523 +1085012 272 +1085015 426 +1085029 193 +1085037 158 +1085040 164 +1085057 187 +1085073 205 +1085078 219 +1085087 190 +1085088 190 +1085101 309 +1085104 214 +1085105 199 +1085147 247 +1085148 172 +1085153 257 +1085156 208 +1085157 195 +1085166 187 +1085181 305 +1085189 348 +1085193 174 +1085201 244 +1085203 187 +1085204 202 +1085212 117 +1085220 174 +1085273 380 +1085279 268 +1085288 189 +1085297 156 +1085300 179 +1085351 174 +1085360 399 +1085381 175 +1085463 167 +1085465 380 +1085487 230 +1085505 246 +1085518 195 +1085524 596 +1085535 762 +1085559 175 +1085560 197 +1085578 195 +1085591 198 +1085611 313 +1085621 218 +1085638 192 +1085646 305 +1085671 176 +1085688 159 +1085715 328 +1085736 257 +1085755 250 +1085783 260 +1085820 181 +1085833 241 +1085847 246 +1085852 254 +1085869 177 +1085875 148 +1085884 152 +1085897 190 +1085899 148 +1085902 218 +1085946 222 +1085969 175 +1085971 216 +1085996 187 +1086000 183 +1086010 204 +1086065 273 +1086067 164 +1086101 186 +1086118 173 +1086136 167 +1086146 447 +1086162 161 +1086164 202 +1086189 316 +1086193 266 +1086206 215 +1086211 354 +1086223 626 +1086226 212 +1086258 211 +1086265 223 +1086280 187 +1086285 193 +1086287 163 +1086292 305 +1086297 246 +1086299 156 +1086307 194 +1086309 163 +1086344 168 +1086351 204 +1086366 372 +1086376 176 +1086383 209 +1086392 174 +1086399 314 +1086400 195 +1086403 1371 +1086405 235 +1086410 198 +1086425 233 +1086426 212 +1086428 231 +1086433 214 +1086436 181 +1086447 215 +1086448 291 +1086462 246 +1086465 174 +1086467 247 +1086469 181 +1086472 211 +1086473 306 +1086474 203 +1086476 183 +1086480 193 +1086481 488 +1086490 204 +1086492 159 +1086493 251 +1086498 174 +1086508 220 +1086515 179 +1086516 199 +1086517 335 +1086523 180 +1086536 219 +1086545 232 +1086553 211 +1086561 205 +1086562 213 +1086563 168 +1086574 234 +1086575 293 +1086591 213 +1086601 180 +1086611 250 +1086616 208 +1086620 184 +1086628 258 +1086634 197 +1086638 278 +1086646 174 +1086649 180 +1086653 208 +1086654 177 +1086658 205 +1086660 191 +1086667 201 +1086668 337 +1086675 263 +1086676 230 +1086680 182 +1086686 190 +1086688 223 +1086690 198 +1086697 308 +1086701 217 +1086707 264 +1086712 181 +1086721 174 +1086728 211 +1086735 206 +1086737 211 +1086745 496 +1086753 166 +1086760 264 +1086765 181 +1086766 224 +1086768 323 +1086774 267 +1086776 275 +1086778 192 +1086779 258 +1086794 312 +1086795 178 +1086796 189 +1086803 211 +1086826 191 +1086830 186 +1086833 240 +1086836 199 +1086839 190 +1086854 183 +1086864 217 +1086865 235 +1086873 266 +1086889 179 +1086890 242 +1086891 264 +1086898 323 +1086904 173 +1086914 497 +1086923 418 +1086924 393 +1086928 316 +1086930 220 +1086932 225 +1086936 238 +1086937 193 +1086960 196 +1086961 185 +1086977 335 +1086978 307 +1086983 203 +1086998 233 +1087006 256 +1087009 232 +1087015 182 +1087027 335 +1087036 195 +1087037 185 +1087044 202 +1087052 168 +1087057 245 +1087063 183 +1087076 205 +1087102 193 +1087108 193 +1087128 193 +1087130 194 +1087135 184 +1087156 236 +1087157 191 +1087163 186 +1087167 173 +1087168 258 +1087182 316 +1087190 520 +1087198 211 +1087201 221 +1087212 241 +1087224 232 +1087225 198 +1087231 234 +1087232 180 +1087234 186 +1087236 663 +1087237 947 +1087260 188 +1087261 223 +1087272 203 +1087281 461 +1087285 235 +1087302 238 +1087304 228 +1087337 198 +1087338 217 +1087340 309 +1087345 179 +1087355 268 +1087374 179 +1087394 425 +1087402 221 +1087418 225 +1087427 183 +1087439 248 +1087453 179 +1087458 174 +1087475 240 +1087513 223 +1087528 193 +1087553 199 +1087567 300 +1087584 218 +1087594 283 +1087596 219 +1087653 180 +1087659 246 +1087668 193 +1087699 196 +1087739 423 +1087774 266 +1087792 220 +1087799 184 +1087807 202 +1087827 286 +1087833 180 +1087835 407 +1087871 199 +1087888 186 +1087895 199 +1087897 480 +1087898 265 +1087907 201 +1087927 336 +1087947 198 +1087949 262 +1087951 226 +1087966 217 +1087985 722 +1087993 192 +1088037 535 +1088060 385 +1088063 229 +1088093 326 +1088112 189 +1088120 177 +1088126 255 +1088128 214 +1088129 336 +1088134 211 +1088137 197 +1088139 168 +1088175 308 +1088180 441 +1088184 323 +1088198 173 +1088202 178 +1088203 383 +1088206 193 +1088211 326 +1088227 340 +1088241 303 +1088251 352 +1088254 323 +1088262 187 +1088273 275 +1088278 180 +1088284 197 +1088289 216 +1088310 185 +1088324 184 +1088326 344 +1088329 193 +1088343 186 +1088348 292 +1088352 280 +1088355 193 +1088372 246 +1088383 190 +1088387 184 +1088392 199 +1088402 230 +1088407 205 +1088409 186 +1088422 194 +1088428 190 +1088429 440 +1088431 184 +1088433 547 +1088437 218 +1088454 215 +1088457 190 +1088461 149 +1088494 206 +1088507 179 +1088517 97 +1088518 224 +1088532 186 +1088538 524 +1088559 216 +1088566 194 +1088583 261 +1088594 180 +1088599 193 +1088605 158 +1088619 143 +1088621 184 +1088622 245 +1088624 299 +1088634 371 +1088636 208 +1088641 568 +1088655 174 +1088666 265 +1088668 366 +1088680 229 +1088687 258 +1088698 462 +1088699 172 +1088706 255 +1088709 288 +1088714 196 +1088727 268 +1088755 488 +1088756 206 +1088764 737 +1088765 246 +1088768 190 +1088774 294 +1088777 193 +1088797 290 +1088798 280 +1088799 209 +1088809 296 +1088836 365 +1088842 262 +1088868 218 +1088870 237 +1088874 172 +1088875 171 +1088879 188 +1088892 215 +1088893 217 +1088895 272 +1088897 180 +1088904 270 +1088905 213 +1088910 184 +1088924 339 +1088926 227 +1088930 195 +1088934 167 +1088939 193 +1088944 238 +1088987 183 +1088996 417 +1089002 315 +1089007 224 +1089011 247 +1089020 187 +1089021 198 +1089032 202 +1089037 340 +1089042 169 +1089050 410 +1089062 513 +1089064 247 +1089068 154 +1089087 415 +1089120 189 +1089122 269 +1089147 196 +1089157 192 +1089170 199 +1089206 225 +1089211 202 +1089214 263 +1089218 232 +1089226 188 +1089233 192 +1089248 171 +1089271 162 +1089279 185 +1089281 184 +1089299 198 +1089302 340 +1089308 163 +1089313 242 +1089323 298 +1089349 355 +1089357 209 +1089440 169 +1089446 95 +1089476 275 +1089485 228 +1089492 217 +1089498 186 +1089500 223 +1089504 210 +1089505 180 +1089521 531 +1089534 204 +1089541 219 +1089545 183 +1089546 180 +1089557 341 +1089567 421 +1089605 190 +1089609 211 +1089612 180 +1089625 217 +1089626 329 +1089630 200 +1089633 201 +1089646 197 +1089653 305 +1089677 196 +1089684 153 +1089685 175 +1089728 197 +1089729 226 +1089733 162 +1089745 217 +1089747 276 +1089762 463 +1089764 429 +1089777 193 +1089798 193 +1089831 227 +1089837 288 +1089845 182 +1089855 196 +1089868 241 +1089884 213 +1089897 242 +1089908 246 +1089923 205 +1089932 181 +1089960 309 +1089986 243 +1090002 192 +1090015 354 +1090016 300 +1090017 175 +1090019 208 +1090026 201 +1090030 517 +1090034 183 +1090045 526 +1090063 165 +1090066 198 +1090077 273 +1090078 258 +1090088 290 +1090100 215 +1090102 199 +1090104 187 +1090126 199 +1090166 297 +1090173 182 +1090174 261 +1090182 218 +1090227 132 +1090231 175 +1090258 242 +1090263 218 +1090264 359 +1090265 349 +1090290 193 +1090304 199 +1090311 249 +1090321 165 +1090331 322 +1090363 167 +1090367 489 +1090369 191 +1090376 193 +1090383 183 +1090386 405 +1090387 364 +1090391 459 +1090396 191 +1090402 256 +1090409 177 +1090433 222 +1090444 191 +1090461 209 +1090469 299 +1090480 255 +1090502 234 +1090539 456 +1090546 206 +1090549 193 +1090559 193 +1090565 189 +1090570 194 +1090587 346 +1090599 281 +1090606 163 +1090610 219 +1090619 267 +1090623 209 +1090649 202 +1090655 257 +1090658 175 +1090659 334 +1090665 226 +1090669 188 +1090679 180 +1090697 235 +1090708 327 +1090754 214 +1090765 163 +1090769 233 +1090785 255 +1090794 113 +1090796 205 +1090797 272 +1090804 238 +1090828 205 +1090829 373 +1090830 220 +1090840 562 +1090842 200 +1090871 191 +1090876 190 +1090902 213 +1090904 323 +1090921 215 +1090922 154 +1090928 334 +1090944 246 +1090952 181 +1090956 206 +1090965 255 +1090967 210 +1090976 356 +1090985 290 +1090997 1161 +1090998 283 +1091005 193 +1091014 293 +1091017 187 +1091027 190 +1091035 176 +1091036 286 +1091046 232 +1091056 171 +1091058 199 +1091077 168 +1091081 167 +1091088 195 +1091098 237 +1091103 196 +1091125 206 +1091128 227 +1091129 186 +1091137 200 +1091140 183 +1091153 363 +1091162 196 +1091170 337 +1091173 362 +1091180 230 +1091186 163 +1091190 437 +1091198 187 +1091201 251 +1091202 286 +1091203 353 +1091224 256 +1091227 214 +1091239 198 +1091242 246 +1091248 181 +1091300 246 +1091315 146 +1091317 202 +1091328 189 +1091350 286 +1091354 224 +1091357 232 +1091382 179 +1091389 203 +1091391 222 +1091416 253 +1091425 189 +1091446 194 +1091450 231 +1091455 350 +1091486 253 +1091494 155 +1091505 173 +1091508 183 +1091512 277 +1091514 181 +1091529 232 +1091536 369 +1091546 170 +1091547 204 +1091548 215 +1091557 278 +1091558 311 +1091559 228 +1091573 178 +1091577 199 +1091583 226 +1091591 187 +1091607 179 +1091630 198 +1091631 219 +1091648 201 +1091651 216 +1091655 202 +1091665 348 +1091667 186 +1091679 189 +1091695 190 +1091712 174 +1091715 154 +1091716 210 +1091729 193 +1091731 205 +1091733 352 +1091737 397 +1091747 199 +1091750 206 +1091753 296 +1091760 187 +1091764 198 +1091775 199 +1091835 234 +1091858 342 +1091859 193 +1091868 421 +1091886 173 +1091899 271 +1091950 269 +1091962 193 +1091964 163 +1091966 204 +1091979 223 +1091981 187 +1092000 213 +1092005 195 +1092025 231 +1092044 190 +1092045 193 +1092067 168 +1092098 193 +1092100 193 +1092103 226 +1092110 240 +1092126 337 +1092129 181 +1092135 175 +1092145 180 +1092160 194 +1092168 407 +1092173 162 +1092182 241 +1092192 198 +1092194 187 +1092202 344 +1092203 194 +1092206 508 +1092211 204 +1092219 212 +1092238 170 +1092256 193 +1092264 233 +1092292 275 +1092296 218 +1092304 232 +1092317 190 +1092334 190 +1092338 202 +1092339 186 +1092344 242 +1092354 251 +1092355 168 +1092361 205 +1092364 301 +1092375 180 +1092380 195 +1092383 192 +1092394 236 +1092397 192 +1092403 245 +1092410 212 +1092417 185 +1092431 169 +1092444 209 +1092457 213 +1092470 214 +1092471 215 +1092477 224 +1092490 250 +1092497 258 +1092505 228 +1092525 215 +1092531 264 +1092533 250 +1092536 184 +1092537 189 +1092544 218 +1092546 199 +1092553 337 +1092565 179 +1092584 209 +1092589 187 +1092612 224 +1092621 192 +1092622 213 +1092647 284 +1092664 202 +1092673 347 +1092684 466 +1092693 287 +1092695 194 +1092696 231 +1092697 416 +1092734 164 +1092757 205 +1092764 157 +1092773 163 +1092776 241 +1092777 173 +1092792 183 +1092820 230 +1092821 220 +1092851 287 +1092855 204 +1092857 939 +1092859 387 +1092887 187 +1092893 189 +1092897 285 +1092899 192 +1092907 304 +1092920 238 +1092925 260 +1092926 187 +1092929 183 +1092937 197 +1092939 270 +1092945 227 +1092993 214 +1093006 193 +1093009 234 +1093020 206 +1093024 203 +1093035 159 +1093036 186 +1093037 174 +1093044 193 +1093056 199 +1093057 2783 +1093075 193 +1093081 182 +1093096 519 +1093104 273 +1093106 198 +1093116 202 +1093121 193 +1093122 299 +1093134 367 +1093141 170 +1093166 155 +1093189 215 +1093195 187 +1093201 186 +1093205 208 +1093208 215 +1093211 220 +1093219 187 +1093237 215 +1093240 218 +1093245 201 +1093256 169 +1093258 316 +1093260 203 +1093271 263 +1093276 175 +1093279 218 +1093313 366 +1093317 215 +1093325 146 +1093344 756 +1093347 197 +1093368 226 +1093374 199 +1093375 345 +1093390 304 +1093394 168 +1093413 185 +1093437 179 +1093442 269 +1093453 214 +1093456 180 +1093463 187 +1093474 197 +1093480 171 +1093489 395 +1093496 271 +1093515 197 +1093524 242 +1093536 362 +1093541 199 +1093550 274 +1093552 196 +1093562 272 +1093595 141 +1093650 328 +1093652 211 +1093664 173 +1093699 264 +1093715 187 +1093721 180 +1093729 239 +1093743 278 +1093745 225 +1093754 191 +1093760 303 +1093765 172 +1093782 193 +1093788 170 +1093795 212 +1093825 262 +1093832 264 +1093842 375 +1093849 167 +1093870 252 +1093901 183 +1093906 235 +1093915 189 +1093955 284 +1093958 204 +1093964 216 +1093975 245 +1093978 187 +1093979 384 +1093980 217 +1093981 215 +1093982 181 +1093994 200 +1094024 165 +1094025 162 +1094033 223 +1094049 186 +1094055 262 +1094067 192 +1094093 189 +1094109 265 +1094132 37 +1094135 347 +1094136 380 +1094142 336 +1094148 386 +1094160 177 +1094167 389 +1094186 161 +1094192 187 +1094194 192 +1094203 241 +1094226 368 +1094241 187 +1094242 174 +1094249 183 +1094256 211 +1094287 297 +1094290 204 +1094292 193 +1094298 187 +1094306 174 +1094321 214 +1094323 180 +1094337 407 +1094343 600 +1094360 228 +1094362 190 +1094365 187 +1094368 233 +1094381 195 +1094383 493 +1094385 198 +1094398 180 +1094399 198 +1094401 205 +1094407 193 +1094419 190 +1094421 328 +1094424 226 +1094426 184 +1094428 173 +1094434 303 +1094454 267 +1094458 187 +1094462 171 +1094468 213 +1094501 187 +1094512 181 +1094516 469 +1094521 263 +1094550 190 +1094581 224 +1094582 184 +1094586 287 +1094588 185 +1094630 219 +1094631 212 +1094647 250 +1094667 223 +1094680 190 +1094681 160 +1094703 206 +1094713 343 +1094716 196 +1094727 237 +1094749 229 +1094775 181 +1094783 196 +1094796 186 +1094798 212 +1094822 177 +1094832 281 +1094842 187 +1094844 561 +1094851 192 +1094853 262 +1094873 185 +1094889 198 +1094896 200 +1094899 246 +1094905 174 +1094907 413 +1094919 174 +1094922 254 +1094933 435 +1094938 177 +1094950 347 +1094977 249 +1095005 207 +1095015 238 +1095030 215 +1095046 212 +1095048 272 +1095050 219 +1095065 150 +1095104 199 +1095117 239 +1095120 169 +1095131 193 +1095156 153 +1095181 346 +1095184 200 +1095193 176 +1095213 331 +1095221 208 +1095224 242 +1095255 198 +1095256 231 +1095263 229 +1095266 301 +1095287 312 +1095303 303 +1095317 237 +1095318 250 +1095371 217 +1095379 216 +1095389 149 +1095394 298 +1095406 189 +1095417 352 +1095431 214 +1095432 156 +1095433 177 +1095447 215 +1095461 229 +1095474 198 +1095477 175 +1095478 256 +1095486 190 +1095495 254 +1095509 175 +1095510 197 +1095514 291 +1095522 184 +1095527 187 +1095533 317 +1095542 181 +1095543 202 +1095558 433 +1095559 192 +1095568 199 +1095575 174 +1095583 143 +1095616 281 +1095628 232 +1095633 208 +1095644 487 +1095654 200 +1095656 181 +1095663 201 +1095682 179 +1095697 220 +1095723 187 +1095724 663 +1095732 200 +1095743 276 +1095746 184 +1095751 179 +1095755 311 +1095768 206 +1095794 253 +1095807 248 +1095872 291 +1095887 460 +1095895 165 +1095917 273 +1095931 174 +1095946 241 +1095954 182 +1095960 159 +1095981 181 +1095991 198 +1096006 190 +1096010 178 +1096015 205 +1096021 314 +1096028 264 +1096037 235 +1096038 213 +1096088 180 +1096091 254 +1096101 300 +1096104 388 +1096107 183 +1096114 220 +1096133 318 +1096136 327 +1096138 237 +1096147 219 +1096154 237 +1096157 213 +1096165 173 +1096182 209 +1096192 250 +1096208 224 +1096211 765 +1096222 187 +1096227 265 +1096272 233 +1096276 208 +1096293 216 +1096295 290 +1096301 388 +1096312 186 +1096337 201 +1096349 208 +1096362 223 +1096363 180 +1096365 199 +1096370 386 +1096384 157 +1096400 196 +1096412 240 +1096437 187 +1096438 251 +1096441 179 +1096450 274 +1096521 275 +1096530 204 +1096531 186 +1096566 219 +1096569 266 +1096581 186 +1096623 159 +1096625 195 +1096629 203 +1096632 259 +1096672 336 +1096690 426 +1096700 187 +1096708 197 +1096721 187 +1096724 186 +1096737 197 +1096742 182 +1096746 214 +1096771 275 +1096790 208 +1096794 212 +1096812 374 +1096817 193 +1096825 183 +1096826 209 +1096849 237 +1096853 356 +1096868 380 +1096881 174 +1096914 180 +1096917 188 +1096921 205 +1096923 373 +1096929 247 +1096931 496 +1096933 190 +1096939 331 +1096947 463 +1096949 260 +1096963 409 +1096973 172 +1096989 190 +1096995 245 +1097000 191 +1097016 193 +1097030 242 +1097032 205 +1097042 223 +1097045 237 +1097056 401 +1097060 187 +1097062 219 +1097072 186 +1097076 205 +1097084 226 +1097088 391 +1097096 177 +1097098 202 +1097114 180 +1097117 321 +1097119 187 +1097126 208 +1097129 253 +1097142 186 +1097147 193 +1097157 179 +1097164 343 +1097177 236 +1097184 184 +1097192 198 +1097200 179 +1097219 220 +1097220 179 +1097224 181 +1097237 183 +1097239 309 +1097255 216 +1097262 223 +1097269 185 +1097287 296 +1097292 177 +1097300 254 +1097306 220 +1097319 215 +1097330 178 +1097348 180 +1097360 191 +1097365 296 +1097370 175 +1097374 187 +1097379 174 +1097382 202 +1097388 410 +1097406 200 +1097408 215 +1097416 180 +1097435 258 +1097437 420 +1097447 188 +1097461 209 +1097463 180 +1097486 177 +1097495 194 +1097502 277 +1097511 183 +1097522 222 +1097527 177 +1097552 276 +1097555 441 +1097575 319 +1097579 366 +1097586 208 +1097589 176 +1097614 230 +1097617 187 +1097624 128 +1097632 187 +1097646 214 +1097647 314 +1097652 316 +1097654 297 +1097676 174 +1097681 246 +1097705 221 +1097708 244 +1097710 294 +1097716 294 +1097722 180 +1097723 238 +1097727 268 +1097744 190 +1097755 394 +1097759 193 +1097761 406 +1097762 376 +1097768 174 +1097769 227 +1097776 188 +1097831 345 +1097840 277 +1097846 389 +1097870 193 +1097883 197 +1097928 193 +1097957 205 +1097964 189 +1097965 178 +1097975 220 +1097979 194 +1098002 201 +1098013 167 +1098032 183 +1098033 219 +1098037 197 +1098054 174 +1098060 302 +1098066 199 +1098070 188 +1098079 164 +1098087 176 +1098089 183 +1098101 195 +1098117 303 +1098128 208 +1098132 181 +1098153 231 +1098155 147 +1098158 149 +1098159 229 +1098160 182 +1098167 178 +1098209 366 +1098216 209 +1098235 234 +1098244 312 +1098251 222 +1098252 232 +1098258 420 +1098277 182 +1098289 305 +1098292 233 +1098294 758 +1098295 214 +1098313 165 +1098325 221 +1098328 198 +1098331 180 +1098339 199 +1098349 233 +1098353 216 +1098355 167 +1098358 180 +1098376 309 +1098378 175 +1098382 192 +1098398 167 +1098400 186 +1098409 195 +1098417 196 +1098418 201 +1098419 282 +1098421 192 +1098432 204 +1098460 493 +1098461 193 +1098470 264 +1098471 188 +1098489 207 +1098520 304 +1098531 186 +1098552 168 +1098563 186 +1098614 184 +1098624 315 +1098639 387 +1098640 197 +1098647 186 +1098648 846 +1098660 209 +1098671 201 +1098673 174 +1098675 237 +1098682 213 +1098683 174 +1098689 203 +1098703 187 +1098714 536 +1098723 193 +1098729 187 +1098731 146 +1098745 184 +1098747 357 +1098757 187 +1098759 104 +1098761 232 +1098786 193 +1098793 238 +1098797 269 +1098800 199 +1098801 147 +1098804 175 +1098838 205 +1098875 184 +1098884 282 +1098894 363 +1098898 187 +1098910 208 +1098922 146 +1098924 177 +1098939 252 +1098941 317 +1098943 971 +1098945 193 +1098949 152 +1098962 207 +1098963 175 +1098981 168 +1098982 205 +1098983 315 +1098984 196 +1098985 304 +1099008 363 +1099012 228 +1099020 193 +1099023 216 +1099032 171 +1099033 478 +1099038 247 +1099061 231 +1099075 191 +1099088 196 +1099094 178 +1099096 202 +1099099 209 +1099126 188 +1099129 205 +1099135 199 +1099136 529 +1099140 311 +1099142 183 +1099155 165 +1099166 233 +1099181 190 +1099182 199 +1099197 234 +1099206 309 +1099208 174 +1099213 196 +1099214 180 +1099224 153 +1099231 174 +1099235 188 +1099246 207 +1099269 215 +1099283 205 +1099288 346 +1099290 334 +1099298 199 +1099303 199 +1099318 565 +1099320 219 +1099325 372 +1099337 181 +1099345 211 +1099346 526 +1099350 189 +1099375 306 +1099383 261 +1099391 217 +1099405 262 +1099433 189 +1099436 205 +1099437 237 +1099449 224 +1099458 170 +1099478 179 +1099504 565 +1099516 196 +1099524 205 +1099525 208 +1099530 203 +1099538 183 +1099564 539 +1099575 293 +1099581 151 +1099592 159 +1099630 180 +1099633 233 +1099636 189 +1099660 169 +1099676 233 +1099684 447 +1099708 308 +1099762 361 +1099767 183 +1099772 279 +1099787 235 +1099794 202 +1099795 256 +1099801 239 +1099802 472 +1099822 233 +1099823 187 +1099830 197 +1099842 197 +1099857 244 +1099882 228 +1099902 184 +1099909 187 +1099914 260 +1099923 195 +1099931 264 +1099936 210 +1099941 241 +1099943 274 +1099962 353 +1099969 192 +1099973 289 +1099974 164 +1100018 235 +1100045 232 +1100050 243 +1100057 194 +1100082 300 +1100128 188 +1100130 180 +1100135 392 +1100138 313 +1100159 314 +1100168 222 +1100169 230 +1100178 234 +1100183 523 +1100195 168 +1100202 189 +1100208 228 +1100225 337 +1100236 151 +1100239 203 +1100241 199 +1100249 176 +1100274 112 +1100280 347 +1100286 166 +1100292 199 +1100309 206 +1100334 181 +1100337 199 +1100344 216 +1100349 186 +1100369 189 +1100382 178 +1100387 249 +1100406 244 +1100416 187 +1100429 255 +1100441 198 +1100491 210 +1100518 153 +1100534 486 +1100565 174 +1100574 207 +1100581 241 +1100586 177 +1100653 182 +1100704 221 +1100718 217 +1100719 188 +1100730 184 +1100769 172 +1100775 240 +1100782 205 +1100784 201 +1100786 218 +1100787 131 +1100827 249 +1100835 187 +1100844 180 +1100849 186 +1100851 258 +1100872 310 +1100875 224 +1100894 194 +1100919 196 +1100930 181 +1100964 222 +1100978 204 +1101011 257 +1101014 175 +1101028 170 +1101040 202 +1101046 306 +1101052 184 +1101056 224 +1101071 324 +1101075 292 +1101082 209 +1101098 259 +1101102 269 +1101107 214 +1101130 289 +1101143 190 +1101157 237 +1101179 222 +1101188 238 +1101198 177 +1101202 208 +1101215 205 +1101237 163 +1101265 171 +1101296 190 +1101309 252 +1101312 187 +1101336 180 +1101337 193 +1101340 245 +1101345 232 +1101349 318 +1101357 190 +1101364 186 +1101404 592 +1101415 183 +1101418 89 +1101422 273 +1101424 208 +1101428 178 +1101441 202 +1101445 184 +1101461 175 +1101464 285 +1101465 207 +1101483 168 +1101511 227 +1101515 218 +1101534 240 +1101554 270 +1101594 260 +1101601 189 +1101620 198 +1101622 326 +1101642 213 +1101651 320 +1101678 275 +1101692 211 +1101693 191 +1101701 158 +1101708 205 +1101740 442 +1101760 243 +1101769 221 +1101789 181 +1101799 315 +1101813 197 +1101820 103 +1101823 332 +1101826 178 +1101834 185 +1101835 175 +1101842 196 +1101861 185 +1101869 183 +1101877 319 +1101878 193 +1101896 156 +1101900 237 +1101918 230 +1101923 297 +1101943 241 +1101959 174 +1101962 232 +1101969 166 +1101994 181 +1101995 206 +1102005 199 +1102016 192 +1102020 175 +1102037 205 +1102045 209 +1102051 223 +1102054 181 +1102067 77 +1102069 168 +1102086 225 +1102088 295 +1102104 312 +1102106 193 +1102115 206 +1102123 196 +1102140 215 +1102141 308 +1102144 322 +1102147 190 +1102148 201 +1102165 207 +1102178 251 +1102188 210 +1102203 233 +1102205 180 +1102218 205 +1102219 220 +1102238 80 +1102244 192 +1102282 177 +1102290 248 +1102296 202 +1102299 208 +1102324 157 +1102328 112 +1102342 197 +1102368 321 +1102372 194 +1102397 189 +1102413 202 +1102415 537 +1102417 251 +1102430 226 +1102431 205 +1102432 175 +1102450 173 +1102455 196 +1102468 248 +1102489 186 +1102490 208 +1102496 332 +1102501 153 +1102507 209 +1102529 187 +1102537 181 +1102540 199 +1102549 189 +1102551 236 +1102559 163 +1102560 179 +1102562 229 +1102563 482 +1102581 212 +1102590 197 +1102609 276 +1102613 190 +1102617 254 +1102619 175 +1102626 211 +1102627 191 +1102629 199 +1102632 216 +1102633 187 +1102640 204 +1102657 199 +1102660 184 +1102663 165 +1102664 222 +1102670 160 +1102677 182 +1102687 298 +1102691 172 +1102692 176 +1102698 244 +1102706 236 +1102727 143 +1102729 184 +1102754 259 +1102758 278 +1102764 183 +1102788 223 +1102796 490 +1102808 228 +1102812 216 +1102819 455 +1102829 247 +1102833 186 +1102834 209 +1102856 283 +1102859 229 +1102862 298 +1102870 224 +1102885 162 +1102893 272 +1102904 182 +1102922 508 +1102927 412 +1102931 250 +1102934 182 +1102950 359 +1102957 233 +1102970 190 +1102980 181 +1103006 368 +1103036 178 +1103057 202 +1103080 218 +1103081 227 +1103101 523 +1103104 173 +1103105 186 +1103109 258 +1103120 186 +1103124 205 +1103153 239 +1103167 231 +1103168 177 +1103169 248 +1103185 187 +1103190 206 +1103199 411 +1103210 146 +1103218 221 +1103229 230 +1103233 192 +1103234 179 +1103249 176 +1103264 209 +1103272 167 +1103275 324 +1103278 334 +1103282 183 +1103288 194 +1103313 187 +1103325 191 +1103340 411 +1103341 178 +1103344 223 +1103357 180 +1103359 377 +1103361 189 +1103379 969 +1103386 216 +1103400 184 +1103405 445 +1103406 167 +1103410 122 +1103418 273 +1103421 208 +1103433 261 +1103438 177 +1103442 362 +1103443 175 +1103444 319 +1103456 241 +1103460 350 +1103467 332 +1103473 315 +1103476 178 +1103489 322 +1103490 222 +1103494 246 +1103501 169 +1103502 320 +1103513 179 +1103515 238 +1103521 236 +1103532 156 +1103542 360 +1103549 218 +1103552 183 +1103574 176 +1103576 193 +1103612 185 +1103616 355 +1103623 201 +1103631 318 +1103643 174 +1103647 236 +1103654 197 +1103663 187 +1103672 193 +1103673 271 +1103677 285 +1103688 175 +1103689 218 +1103690 223 +1103691 179 +1103702 198 +1103717 249 +1103720 193 +1103721 232 +1103728 182 +1103735 183 +1103736 137 +1103740 199 +1103745 190 +1103749 167 +1103753 412 +1103762 233 +1103765 187 +1103771 160 +1103781 180 +1103804 178 +1103808 275 +1103813 199 +1103832 244 +1103841 181 +1103842 174 +1103845 278 +1103867 197 +1103876 187 +1103885 217 +1103887 194 +1103892 186 +1103907 146 +1103938 172 +1103952 190 +1103953 164 +1103958 212 +1103962 288 +1103967 255 +1103990 326 +1104001 106 +1104064 181 +1104076 180 +1104086 340 +1104095 224 +1104103 168 +1104109 199 +1104124 197 +1104125 174 +1104141 199 +1104143 218 +1104147 274 +1104153 239 +1104161 195 +1104188 184 +1104214 189 +1104225 245 +1104265 159 +1104285 226 +1104286 177 +1104296 161 +1104302 196 +1104310 192 +1104328 175 +1104331 181 +1104337 199 +1104355 195 +1104363 538 +1104373 153 +1104378 182 +1104404 186 +1104409 178 +1104421 207 +1104435 269 +1104439 193 +1104449 210 +1104453 199 +1104471 193 +1104477 171 +1104496 187 +1104497 174 +1104508 175 +1104519 233 +1104528 176 +1104533 228 +1104535 159 +1104539 202 +1104544 187 +1104549 226 +1104557 184 +1104572 178 +1104577 281 +1104588 187 +1104595 190 +1104596 224 +1104601 199 +1104605 222 +1104606 200 +1104612 394 +1104618 325 +1104629 212 +1104632 241 +1104633 189 +1104656 195 +1104661 354 +1104662 250 +1104669 240 +1104684 214 +1104686 145 +1104687 183 +1104689 190 +1104698 190 +1104715 218 +1104718 168 +1104731 177 +1104732 195 +1104741 214 +1104745 193 +1104753 193 +1104764 198 +1104767 204 +1104770 189 +1104771 199 +1104780 262 +1104792 694 +1104798 173 +1104802 480 +1104805 388 +1104815 275 +1104821 223 +1104836 227 +1104856 188 +1104869 288 +1104879 182 +1104898 189 +1104906 219 +1104913 193 +1104915 239 +1104929 187 +1104937 307 +1104938 179 +1104956 172 +1104959 183 +1104961 330 +1104965 268 +1104972 217 +1104974 272 +1104976 332 +1104977 246 +1105000 194 +1105006 221 +1105007 181 +1105013 221 +1105036 330 +1105037 413 +1105040 187 +1105044 190 +1105047 174 +1105051 210 +1105055 209 +1105056 184 +1105061 209 +1105062 193 +1105063 199 +1105080 232 +1105081 217 +1105082 208 +1105089 190 +1105101 195 +1105103 187 +1105106 262 +1105108 248 +1105109 178 +1105135 196 +1105136 202 +1105138 235 +1105141 257 +1105142 190 +1105150 472 +1105159 330 +1105176 268 +1105178 214 +1105182 281 +1105183 270 +1105193 202 +1105197 178 +1105202 183 +1105214 224 +1105217 241 +1105218 166 +1105220 212 +1105222 223 +1105224 196 +1105226 245 +1105232 308 +1105235 200 +1105241 214 +1105243 171 +1105245 194 +1105246 187 +1105255 190 +1105269 222 +1105274 196 +1105279 208 +1105295 184 +1105302 194 +1105319 167 +1105327 212 +1105346 184 +1105348 171 +1105349 224 +1105350 175 +1105361 198 +1105384 229 +1105393 265 +1105416 327 +1105433 244 +1105435 184 +1105442 225 +1105474 187 +1105478 291 +1105481 265 +1105491 183 +1105494 592 +1105496 202 +1105497 197 +1105503 216 +1105541 242 +1105552 207 +1105565 249 +1105574 173 +1105576 190 +1105579 296 +1105590 280 +1105591 194 +1105597 234 +1105623 204 +1105628 194 +1105635 251 +1105638 113 +1105652 178 +1105654 212 +1105656 218 +1105693 229 +1105695 484 +1105698 272 +1105734 311 +1105745 187 +1105747 240 +1105766 170 +1105776 238 +1105779 194 +1105789 180 +1105794 307 +1105796 221 +1105817 256 +1105821 154 +1105823 184 +1105840 239 +1105843 181 +1105852 181 +1105857 175 +1105878 205 +1105890 185 +1105898 173 +1105906 189 +1105923 261 +1105957 288 +1105969 231 +1105973 275 +1105976 181 +1105977 218 +1105987 163 +1105992 210 +1105995 187 +1106015 378 +1106020 302 +1106028 481 +1106052 183 +1106084 183 +1106088 249 +1106094 187 +1106095 259 +1106096 187 +1106100 263 +1106109 167 +1106127 187 +1106135 217 +1106142 205 +1106145 181 +1106146 226 +1106147 224 +1106150 148 +1106151 425 +1106163 212 +1106168 230 +1106178 193 +1106216 178 +1106246 214 +1106247 267 +1106253 273 +1106285 168 +1106288 232 +1106316 217 +1106322 190 +1106331 295 +1106348 173 +1106363 282 +1106368 228 +1106379 228 +1106385 195 +1106397 179 +1106401 153 +1106409 209 +1106424 244 +1106428 188 +1106451 227 +1106456 361 +1106459 211 +1106476 201 +1106485 176 +1106491 168 +1106493 522 +1106509 170 +1106514 275 +1106518 225 +1106525 265 +1106543 193 +1106549 156 +1106563 330 +1106567 234 +1106569 192 +1106570 355 +1106571 224 +1106572 205 +1106582 301 +1106585 192 +1106586 250 +1106606 174 +1106609 208 +1106612 174 +1106623 182 +1106633 262 +1106635 115 +1106654 271 +1106655 378 +1106659 218 +1106662 408 +1106671 234 +1106683 168 +1106686 224 +1106694 235 +1106713 249 +1106718 281 +1106719 186 +1106725 175 +1106741 175 +1106746 271 +1106757 187 +1106759 210 +1106768 279 +1106774 187 +1106779 219 +1106783 216 +1106789 216 +1106793 205 +1106797 137 +1106806 199 +1106808 140 +1106810 214 +1106813 177 +1106821 181 +1106824 175 +1106830 190 +1106834 220 +1106847 174 +1106877 258 +1106878 190 +1106881 167 +1106886 229 +1106893 255 +1106897 173 +1106898 195 +1106900 270 +1106905 260 +1106918 203 +1106920 223 +1106925 181 +1106940 277 +1106946 217 +1106955 192 +1106961 177 +1106977 220 +1106992 217 +1106996 336 +1107006 251 +1107041 357 +1107042 327 +1107117 260 +1107122 218 +1107123 533 +1107162 273 +1107165 238 +1107171 186 +1107176 203 +1107212 183 +1107245 205 +1107270 188 +1107277 414 +1107289 264 +1107301 180 +1107370 249 +1107387 263 +1107393 365 +1107399 244 +1107446 246 +1107481 274 +1107487 175 +1107490 199 +1107508 672 +1107521 294 +1107538 240 +1107544 686 +1107545 380 +1107546 268 +1107549 171 +1107550 193 +1107552 201 +1107555 226 +1107556 181 +1107573 216 +1107575 281 +1107576 199 +1107596 184 +1107597 183 +1107609 1525 +1107617 200 +1107644 174 +1107654 192 +1107666 251 +1107673 176 +1107693 240 +1107704 218 +1107731 153 +1107734 248 +1107791 343 +1107801 173 +1107829 224 +1107831 190 +1107865 558 +1107901 162 +1107904 198 +1107921 181 +1107941 206 +1107953 187 +1107973 300 +1107974 216 +1107979 223 +1107998 199 +1108040 178 +1108101 205 +1108115 232 +1108117 198 +1108140 282 +1108148 192 +1108151 196 +1108203 242 +1108208 185 +1108239 274 +1108243 228 +1108246 177 +1108247 333 +1108250 196 +1108251 199 +1108265 235 +1108268 233 +1108273 199 +1108275 229 +1108282 761 +1108291 825 +1108292 201 +1108296 202 +1108301 274 +1108304 981 +1108321 399 +1108334 228 +1108342 305 +1108347 234 +1108348 249 +1108358 223 +1108360 193 +1108365 195 +1108371 224 +1108373 175 +1108384 241 +1108415 137 +1108421 170 +1108458 193 +1108463 205 +1108477 271 +1108504 168 +1108525 164 +1108530 196 +1108536 183 +1108558 206 +1108598 212 +1108616 321 +1108638 251 +1108639 211 +1108642 172 +1108643 181 +1108650 294 +1108659 274 +1108668 788 +1108670 166 +1108697 199 +1108698 296 +1108705 187 +1108709 291 +1108711 193 +1108713 241 +1108727 193 +1108730 166 +1108736 228 +1108761 195 +1108766 192 +1108771 290 +1108801 180 +1108820 202 +1108822 290 +1108824 192 +1108827 189 +1108828 296 +1108846 215 +1108847 261 +1108853 218 +1108864 257 +1108879 559 +1108897 200 +1108899 213 +1108909 218 +1108923 231 +1108936 193 +1108942 187 +1108945 261 +1108953 319 +1108960 199 +1108971 203 +1108973 240 +1108976 187 +1108977 190 +1108979 182 +1108989 307 +1108991 244 +1108998 258 +1109001 207 +1109002 182 +1109023 180 +1109024 195 +1109031 182 +1109033 287 +1109036 330 +1109039 190 +1109041 77 +1109044 208 +1109052 183 +1109057 190 +1109062 218 +1109080 198 +1109082 213 +1109085 223 +1109088 209 +1109094 319 +1109113 162 +1109114 279 +1109115 190 +1109117 228 +1109123 173 +1109125 174 +1109139 181 +1109140 343 +1109141 347 +1109144 237 +1109149 202 +1109159 202 +1109162 239 +1109169 216 +1109172 185 +1109177 236 +1109183 227 +1109228 249 +1109238 174 +1109239 186 +1109250 262 +1109265 232 +1109272 256 +1109278 235 +1109279 384 +1109280 250 +1109284 175 +1109294 184 +1109298 401 +1109310 207 +1109333 134 +1109344 170 +1109362 337 +1109379 187 +1109391 227 +1109420 236 +1109423 205 +1109426 198 +1109428 404 +1109432 242 +1109451 219 +1109453 271 +1109461 174 +1109492 282 +1109548 193 +1109554 190 +1109565 477 +1109588 211 +1109614 253 +1109616 327 +1109629 189 +1109651 244 +1109664 250 +1109682 199 +1109697 156 +1109711 252 +1109713 222 +1109718 210 +1109721 227 +1109724 180 +1109767 263 +1109774 209 +1109775 202 +1109816 271 +1109828 349 +1109831 284 +1109833 349 +1109846 168 +1109851 238 +1109868 186 +1109887 374 +1109891 271 +1109899 253 +1109903 211 +1109907 190 +1109914 301 +1109921 228 +1109924 188 +1109933 187 +1109940 180 +1109941 173 +1109949 155 +1109966 178 +1109975 291 +1109981 187 +1109983 199 +1109992 240 +1110027 210 +1110028 199 +1110043 181 +1110050 213 +1110056 183 +1110062 194 +1110074 194 +1110105 303 +1110106 207 +1110111 180 +1110132 211 +1110139 259 +1110143 475 +1110159 180 +1110166 196 +1110170 199 +1110171 179 +1110172 194 +1110173 417 +1110185 183 +1110187 251 +1110204 227 +1110230 186 +1110234 221 +1110240 190 +1110271 184 +1110292 381 +1110338 321 +1110342 345 +1110344 193 +1110355 187 +1110359 424 +1110361 180 +1110374 190 +1110392 1240 +1110400 230 +1110419 564 +1110427 205 +1110436 302 +1110445 197 +1110460 266 +1110466 182 +1110467 241 +1110470 184 +1110477 238 +1110485 210 +1110500 178 +1110502 217 +1110525 196 +1110532 334 +1110545 498 +1110549 203 +1110550 187 +1110566 189 +1110567 230 +1110592 267 +1110605 217 +1110608 199 +1110610 257 +1110617 156 +1110625 196 +1110630 188 +1110634 285 +1110635 193 +1110641 249 +1110669 385 +1110682 192 +1110704 283 +1110713 171 +1110714 152 +1110726 250 +1110735 191 +1110736 178 +1110737 190 +1110740 220 +1110742 244 +1110751 233 +1110756 251 +1110759 230 +1110764 187 +1110765 302 +1110797 182 +1110843 181 +1110854 210 +1110857 268 +1110873 323 +1110885 210 +1110894 160 +1110935 181 +1110944 153 +1110957 156 +1110963 253 +1110996 321 +1110999 235 +1111028 192 +1111041 217 +1111054 329 +1111076 278 +1111088 199 +1111096 209 +1111106 193 +1111107 344 +1111109 220 +1111113 202 +1111132 358 +1111138 247 +1111141 193 +1111143 187 +1111150 186 +1111156 176 +1111157 193 +1111166 174 +1111172 190 +1111212 174 +1111223 304 +1111230 447 +1111246 227 +1111262 168 +1111265 185 +1111268 358 +1111347 183 +1111350 196 +1111352 210 +1111363 195 +1111371 193 +1111374 328 +1111375 385 +1111381 531 +1111385 201 +1111390 240 +1111423 180 +1111438 180 +1111443 241 +1111453 201 +1111463 193 +1111465 219 +1111476 193 +1111491 179 +1111494 190 +1111519 205 +1111521 204 +1111526 176 +1111533 202 +1111541 230 +1111556 337 +1111558 188 +1111562 190 +1111613 177 +1111617 376 +1111655 295 +1111660 191 +1111662 547 +1111669 573 +1111679 198 +1111686 290 +1111695 183 +1111696 193 +1111698 363 +1111699 187 +1111725 375 +1111727 259 +1111730 187 +1111737 407 +1111738 227 +1111747 234 +1111748 194 +1111752 219 +1111753 177 +1111755 226 +1111761 202 +1111763 186 +1111776 204 +1111778 278 +1111788 223 +1111808 206 +1111813 247 +1111817 145 +1111820 188 +1111828 216 +1111835 178 +1111838 187 +1111891 297 +1111900 186 +1111923 239 +1111938 200 +1111942 207 +1111943 217 +1111962 215 +1111966 187 +1111969 193 +1111979 395 +1111992 190 +1111993 264 +1112005 255 +1112011 228 +1112020 257 +1112041 230 +1112042 190 +1112043 307 +1112061 1003 +1112063 234 +1112077 187 +1112078 190 +1112086 232 +1112100 185 +1112105 220 +1112106 364 +1112109 212 +1112113 279 +1112127 324 +1112134 336 +1112135 184 +1112137 206 +1112143 256 +1112145 332 +1112165 202 +1112183 241 +1112198 253 +1112203 225 +1112220 236 +1112247 178 +1112254 180 +1112258 230 +1112269 187 +1112270 261 +1112271 187 +1112286 226 +1112291 388 +1112300 158 +1112314 230 +1112315 166 +1112317 185 +1112327 200 +1112351 196 +1112408 177 +1112426 154 +1112430 190 +1112435 280 +1112436 219 +1112441 241 +1112454 150 +1112462 314 +1112466 224 +1112501 248 +1112509 208 +1112516 220 +1112517 210 +1112520 348 +1112522 214 +1112527 282 +1112547 300 +1112555 210 +1112577 192 +1112581 178 +1112592 210 +1112593 298 +1112604 219 +1112606 191 +1112612 227 +1112619 180 +1112632 557 +1112646 263 +1112652 196 +1112674 166 +1112684 205 +1112686 290 +1112690 183 +1112695 200 +1112708 223 +1112720 228 +1112734 175 +1112736 264 +1112752 207 +1112756 186 +1112759 220 +1112762 283 +1112764 244 +1112768 200 +1112781 286 +1112789 278 +1112794 148 +1112796 361 +1112799 226 +1112809 217 +1112816 189 +1112823 146 +1112846 223 +1112859 171 +1112874 180 +1112882 378 +1112900 176 +1112912 193 +1112940 318 +1112952 1131 +1112954 375 +1112966 244 +1112978 174 +1113002 168 +1113040 211 +1113041 184 +1113043 179 +1113055 156 +1113057 186 +1113063 245 +1113100 380 +1113132 198 +1113134 312 +1113146 238 +1113154 181 +1113163 268 +1113164 179 +1113165 176 +1113205 198 +1113210 318 +1113222 179 +1113236 213 +1113249 169 +1113253 202 +1113262 214 +1113269 296 +1113275 181 +1113282 191 +1113286 289 +1113288 225 +1113295 181 +1113309 176 +1113311 369 +1113314 246 +1113319 187 +1113329 212 +1113330 297 +1113336 223 +1113375 181 +1113384 225 +1113386 160 +1113387 190 +1113392 190 +1113406 196 +1113418 191 +1113424 297 +1113430 173 +1113438 334 +1113441 172 +1113444 195 +1113470 241 +1113474 181 +1113477 213 +1113485 278 +1113488 262 +1113492 251 +1113500 171 +1113501 667 +1113507 192 +1113509 238 +1113518 237 +1113527 233 +1113533 187 +1113536 319 +1113566 187 +1113570 307 +1113572 174 +1113579 202 +1113580 211 +1113587 230 +1113591 176 +1113593 180 +1113594 168 +1113650 367 +1113660 236 +1113699 163 +1113716 180 +1113738 168 +1113751 267 +1113752 284 +1113813 196 +1113867 208 +1113871 215 +1113883 186 +1113885 221 +1113904 233 +1113905 177 +1113914 211 +1113915 363 +1113919 206 +1113924 260 +1113926 219 +1113935 170 +1113937 188 +1113941 233 +1113955 339 +1113958 173 +1113966 228 +1113975 193 +1113981 196 +1113986 190 +1113997 187 +1114065 322 +1114066 178 +1114071 294 +1114085 189 +1114086 252 +1114090 215 +1114097 210 +1114100 180 +1114107 181 +1114110 180 +1114118 224 +1114153 250 +1114164 250 +1114181 250 +1114186 143 +1114194 173 +1114200 187 +1114206 211 +1114342 227 +1114344 425 +1114443 176 +1114459 163 +1114480 249 +1114495 516 +1114503 196 +1114518 209 +1114570 583 +1114573 213 +1114598 324 +1114600 212 +1114610 197 +1114614 232 +1114624 231 +1114634 183 +1114636 211 +1114645 196 +1114647 309 +1114652 220 +1114666 216 +1114667 174 +1114670 306 +1114672 205 +1114680 186 +1114682 232 +1114689 190 +1114706 191 +1114722 171 +1114726 211 +1114746 186 +1114753 208 +1114754 197 +1114756 316 +1114761 277 +1114765 485 +1114767 407 +1114779 170 +1114790 152 +1114805 235 +1114808 206 +1114821 420 +1114829 239 +1114831 241 +1114835 210 +1114840 238 +1114882 192 +1114925 156 +1114940 196 +1114941 239 +1114945 192 +1114958 269 +1114971 191 +1114974 274 +1114982 257 +1114983 217 +1114985 187 +1114995 201 +1114998 302 +1115002 212 +1115019 187 +1115037 247 +1115040 247 +1115060 519 +1115083 264 +1115125 294 +1115138 232 +1115145 193 +1115156 213 +1115193 224 +1115206 314 +1115210 193 +1115219 205 +1115226 192 +1115237 424 +1115239 214 +1115247 210 +1115252 195 +1115253 209 +1115261 223 +1115265 177 +1115273 264 +1115278 240 +1115279 187 +1115304 194 +1115311 311 +1115313 186 +1115318 195 +1115326 277 +1115339 237 +1115344 174 +1115345 205 +1115352 197 +1115377 250 +1115380 222 +1115382 285 +1115385 327 +1115397 181 +1115404 184 +1115425 318 +1115431 216 +1115471 179 +1115492 206 +1115493 235 +1115497 187 +1115504 295 +1115507 196 +1115522 227 +1115542 199 +1115556 253 +1115596 546 +1115625 180 +1115627 181 +1115650 234 +1115665 503 +1115666 294 +1115681 236 +1115690 253 +1115693 220 +1115696 239 +1115699 206 +1115704 282 +1115711 244 +1115727 211 +1115735 192 +1115736 290 +1115750 120 +1115754 257 +1115771 179 +1115804 252 +1115819 359 +1115823 204 +1115826 161 +1115841 216 +1115843 307 +1115845 347 +1115854 258 +1115861 437 +1115867 173 +1115870 162 +1115883 383 +1115892 226 +1115910 239 +1115946 193 +1115962 224 +1115976 209 +1115997 205 +1116009 269 +1116015 183 +1116020 236 +1116026 211 +1116029 239 +1116039 365 +1116051 317 +1116076 231 +1116081 190 +1116085 187 +1116101 444 +1116106 319 +1116170 171 +1116173 412 +1116178 226 +1116245 176 +1116250 190 +1116251 198 +1116257 213 +1116267 366 +1116276 181 +1116292 234 +1116296 173 +1116310 180 +1116343 346 +1116358 181 +1116361 180 +1116389 203 +1116392 227 +1116397 204 +1116401 286 +1116409 217 +1116416 371 +1116418 193 +1116423 214 +1116445 199 +1116470 175 +1116489 180 +1116491 346 +1116493 210 +1116495 262 +1116498 330 +1116501 174 +1116527 167 +1116542 191 +1116552 222 +1116563 181 +1116582 237 +1116598 222 +1116606 233 +1116613 179 +1116626 250 +1116652 576 +1116658 433 +1116726 197 +1116737 258 +1116746 187 +1116784 1106 +1116791 171 +1116825 236 +1116829 143 +1116835 227 +1116847 183 +1116860 186 +1116862 233 +1116864 186 +1116870 171 +1116875 178 +1116891 181 +1116893 213 +1116925 203 +1116954 175 +1116956 244 +1116966 187 +1116974 211 +1116983 184 +1116988 156 +1117005 528 +1117014 255 +1117026 240 +1117035 193 +1117043 323 +1117056 288 +1117073 208 +1117091 211 +1117102 437 +1117108 174 +1117115 150 +1117125 226 +1117128 178 +1117129 207 +1117170 212 +1117188 384 +1117190 529 +1117194 215 +1117206 175 +1117228 187 +1117242 306 +1117247 194 +1117266 266 +1117319 213 +1117329 264 +1117336 309 +1117347 327 +1117348 263 +1117351 298 +1117357 226 +1117360 208 +1117363 219 +1117373 200 +1117379 174 +1117391 193 +1117394 214 +1117401 385 +1117403 236 +1117404 266 +1117407 216 +1117408 180 +1117409 299 +1117410 339 +1117415 274 +1117423 200 +1117432 284 +1117433 199 +1117442 230 +1117452 205 +1117455 253 +1117466 218 +1117474 181 +1117475 223 +1117478 182 +1117480 376 +1117489 257 +1117498 204 +1117500 161 +1117505 179 +1117509 279 +1117510 253 +1117512 176 +1117517 208 +1117521 186 +1117529 202 +1117540 199 +1117541 199 +1117549 264 +1117552 232 +1117563 195 +1117564 357 +1117569 198 +1117583 530 +1117584 322 +1117593 194 +1117602 235 +1117606 201 +1117607 185 +1117608 199 +1117643 258 +1117645 188 +1117654 341 +1117656 219 +1117666 320 +1117667 227 +1117672 175 +1117673 200 +1117676 405 +1117699 180 +1117726 367 +1117730 199 +1117731 191 +1117759 214 +1117762 163 +1117763 217 +1117764 191 +1117773 376 +1117776 243 +1117792 224 +1117803 445 +1117805 188 +1117809 188 +1117838 187 +1117859 252 +1117863 205 +1117870 216 +1117894 253 +1117900 370 +1117913 331 +1117926 316 +1117936 213 +1117946 199 +1117956 193 +1117964 213 +1117983 180 +1118010 199 +1118014 174 +1118035 190 +1118044 175 +1118047 291 +1118058 235 +1118065 175 +1118075 175 +1118081 240 +1118084 254 +1118086 308 +1118117 253 +1118149 275 +1118171 257 +1118176 219 +1118196 234 +1118197 209 +1118323 257 +1118357 168 +1118369 282 +1118408 257 +1118463 140 +1118476 374 +1118492 305 +1118507 286 +1118511 314 +1118522 187 +1118541 265 +1118554 240 +1118588 269 +1118636 188 +1118637 248 +1118650 183 +1118666 206 +1118698 230 +1118715 235 +1118716 202 +1118720 186 +1118729 229 +1118730 210 +1118736 191 +1118750 271 +1118763 389 +1118778 531 +1118784 220 +1118810 161 +1118850 177 +1118876 266 +1118900 352 +1118910 177 +1118912 255 +1118926 213 +1118935 155 +1118997 405 +1119022 184 +1119034 168 +1119078 603 +1119085 316 +1119086 156 +1119090 190 +1119106 258 +1119108 214 +1119193 206 +1119194 162 +1119197 246 +1119204 214 +1119251 289 +1119260 181 +1119269 389 +1119281 183 +1119286 193 +1119327 190 +1119331 204 +1119362 202 +1119387 363 +1119514 193 +1119519 324 +1119532 325 +1119536 203 +1119540 595 +1119549 189 +1119560 172 +1119572 193 +1119575 218 +1119609 203 +1119647 188 +1119656 205 +1119664 195 +1119668 244 +1119669 214 +1119677 363 +1119700 168 +1119732 179 +1119760 209 +1119777 214 +1119780 156 +1119791 301 +1119803 203 +1119824 264 +1119831 284 +1119840 174 +1119844 217 +1119847 177 +1119864 200 +1119911 291 +1119945 187 +1119951 321 +1119953 225 +1119968 436 +1119975 183 +1120008 187 +1120017 187 +1120029 228 +1120047 457 +1120052 281 +1120068 246 +1120074 268 +1120081 211 +1120089 221 +1120116 180 +1120118 234 +1120121 156 +1120134 251 +1120185 209 +1120191 187 +1120195 193 +1120197 194 +1120198 415 +1120200 186 +1120206 199 +1120212 341 +1120214 132 +1120219 224 +1120224 366 +1120244 187 +1120256 597 +1120257 299 +1120277 183 +1120292 311 +1120303 187 +1120308 255 +1120320 266 +1120347 353 +1120353 192 +1120372 278 +1120399 193 +1120407 174 +1120414 414 +1120446 198 +1120448 202 +1120469 160 +1120483 186 +1120501 184 +1120513 175 +1120565 196 +1120578 233 +1120587 304 +1120591 212 +1120594 157 +1120596 204 +1120597 174 +1120604 256 +1120607 271 +1120612 204 +1120621 174 +1120630 301 +1120637 208 +1120646 193 +1120651 249 +1120654 259 +1120685 174 +1120695 313 +1120747 193 +1120751 172 +1120764 246 +1120767 181 +1120784 187 +1120820 266 +1120824 216 +1120825 195 +1120845 254 +1120872 142 +1120894 187 +1120902 348 +1120914 186 +1120950 204 +1120956 224 +1120957 415 +1120976 212 +1120990 177 +1121013 190 +1121019 204 +1121020 203 +1121023 395 +1121049 222 +1121056 211 +1121077 279 +1121092 196 +1121102 293 +1121113 215 +1121129 241 +1121155 257 +1121194 203 +1121208 174 +1121243 213 +1121253 206 +1121260 150 +1121266 499 +1121280 404 +1121287 263 +1121295 214 +1121301 216 +1121303 402 +1121312 187 +1121315 218 +1121331 227 +1121334 172 +1121338 228 +1121387 245 +1121388 238 +1121394 382 +1121395 168 +1121412 647 +1121415 245 +1121448 334 +1121450 193 +1121454 229 +1121457 504 +1121460 232 +1121467 251 +1121469 204 +1121470 215 +1121472 176 +1121481 394 +1121483 248 +1121485 208 +1121487 393 +1121488 298 +1121489 240 +1121490 477 +1121492 137 +1121494 223 +1121496 217 +1121498 210 +1121499 340 +1121501 182 +1121504 274 +1121510 221 +1121517 181 +1121528 169 +1121532 321 +1121535 187 +1121541 242 +1121550 277 +1121553 310 +1121556 164 +1121559 197 +1121560 191 +1121564 283 +1121572 125 +1121574 255 +1121576 414 +1121578 222 +1121581 194 +1121584 235 +1121585 187 +1121586 316 +1121591 239 +1121592 296 +1121593 290 +1121595 388 +1121602 344 +1121606 168 +1121613 148 +1121616 230 +1121617 237 +1121618 146 +1121619 278 +1121621 205 +1121624 252 +1121626 195 +1121628 283 +1121631 280 +1121633 444 +1121643 244 +1121649 259 +1121650 219 +1121651 318 +1121653 781 +1121654 251 +1121655 307 +1121656 250 +1121657 245 +1121658 297 +1121659 434 +1121660 781 +1121661 507 +1121663 293 +1121668 206 +1121671 195 +1121677 169 +1121678 169 +1121679 186 +1121681 410 +1121682 246 +1121683 347 +1121684 301 +1121686 357 +1121688 170 +1121690 288 +1121692 252 +1121693 383 +1121694 141 +1121696 151 +1121697 153 +1121698 172 +1121699 242 +1121704 157 +1121715 174 +1121716 144 +1121719 217 +1121721 195 +1121730 205 +1121731 145 +1121735 374 +1121737 147 +1121740 256 +1121741 342 +1121745 147 +1121749 181 +1121750 185 +1121753 217 +1121761 416 +1121763 203 +1121767 339 +1121769 203 +1121775 189 +1121779 193 +1121780 266 +1121781 146 +1121788 187 +1121789 405 +1121792 187 +1121801 450 +1121802 450 +1121809 154 +1121810 196 +1121812 238 +1121815 304 +1121817 231 +1121820 244 +1121824 316 +1121825 141 +1121840 171 +1121844 149 +1121846 317 +1121848 193 +1121849 277 +1121850 324 +1121857 352 +1121859 231 +1121862 154 +1121866 340 +1121867 333 +1121868 176 +1121869 250 +1121871 245 +1121874 188 +1121879 340 +1121881 193 +1121884 381 +1121888 175 +1121894 282 +1121897 225 +1121898 193 +1121899 226 +1121904 368 +1121905 128 +1121907 202 +1121913 258 +1121917 183 +1121920 177 +1121923 205 +1121926 241 +1121927 161 +1121928 183 +1121930 273 +1121933 213 +1121936 212 +1121942 232 +1121952 192 +1121953 196 +1121955 212 +1121958 244 +1121959 179 +1121960 149 +1121964 217 +1121965 169 +1121970 211 +1121976 310 +1121980 206 +1121981 313 +1121984 223 +1121995 167 +1122000 186 +1122001 187 +1122005 489 +1122006 165 +1122007 129 +1122009 184 +1122012 173 +1122018 241 +1122025 163 +1122026 237 +1122027 184 +1122028 416 +1122029 188 +1122030 187 +1122031 214 +1122034 214 +1122038 219 +1122039 263 +1122041 215 +1122044 217 +1122053 279 +1122059 324 +1122063 289 +1122065 399 +1122067 187 +1122068 212 +1122071 220 +1122074 170 +1122079 211 +1122085 185 +1122086 391 +1122089 149 +1122094 224 +1122098 202 +1122103 184 +1122112 357 +1122117 184 +1122120 191 +1122122 202 +1122127 196 +1122129 272 +1122130 256 +1122132 228 +1122134 228 +1122135 325 +1122138 162 +1122140 269 +1122141 195 +1122143 172 +1122146 229 +1122147 314 +1122150 104 +1122151 212 +1122155 166 +1122158 236 +1122163 194 +1122165 116 +1122170 187 +1122171 330 +1122172 276 +1122178 206 +1122179 219 +1122181 287 +1122182 175 +1122184 312 +1122194 158 +1122196 158 +1122197 193 +1122198 160 +1122203 189 +1122205 177 +1122206 225 +1122211 215 +1122212 219 +1122214 143 +1122215 272 +1122216 245 +1122217 154 +1122221 238 +1122223 222 +1122231 251 +1122234 189 +1122235 278 +1122237 252 +1122243 165 +1122245 232 +1122247 188 +1122252 219 +1122258 248 +1122262 460 +1122266 187 +1122269 156 +1122271 177 +1122272 306 +1122273 306 +1122274 173 +1122275 271 +1122280 174 +1122281 186 +1122291 198 +1122293 205 +1122297 174 +1122298 239 +1122303 192 +1122306 208 +1122308 137 +1122317 182 +1122319 181 +1122326 155 +1122327 187 +1122328 379 +1122333 263 +1122337 132 +1122346 183 +1122349 249 +1122355 271 +1122358 827 +1122359 222 +1122360 168 +1122364 356 +1122370 256 +1122372 246 +1122374 220 +1122381 193 +1122385 127 +1122389 202 +1122401 202 +1122402 160 +1122408 147 +1122412 243 +1122415 253 +1122417 420 +1122422 288 +1122423 179 +1122432 156 +1122441 187 +1122442 301 +1122453 247 +1122461 180 +1122465 193 +1122477 339 +1122488 327 +1122491 219 +1122495 235 +1122500 226 +1122505 168 +1122508 181 +1122514 149 +1122524 363 +1122533 118 +1122535 227 +1122540 203 +1122554 174 +1122560 191 +1122566 193 +1122567 208 +1122569 303 +1122571 227 +1122573 291 +1122586 190 +1122600 149 +1122617 200 +1122621 193 +1122631 216 +1122647 220 +1122648 422 +1122659 220 +1122666 246 +1122675 172 +1122691 343 +1122694 232 +1122699 227 +1122703 190 +1122711 211 +1122717 188 +1122735 188 +1122746 238 +1122752 253 +1122753 197 +1122760 155 +1122769 197 +1122782 180 +1122785 205 +1122787 157 +1122792 208 +1122808 254 +1122809 194 +1122819 188 +1122823 162 +1122840 412 +1122853 461 +1122854 193 +1122857 235 +1122868 181 +1122872 210 +1122873 165 +1122874 164 +1122877 180 +1122878 195 +1122879 206 +1122880 245 +1122890 226 +1122905 1180 +1122911 424 +1122916 245 +1122924 183 +1122929 202 +1122930 238 +1122931 253 +1122938 192 +1122939 291 +1122946 213 +1122958 184 +1122959 201 +1122976 189 +1122980 233 +1123011 229 +1123026 190 +1123027 191 +1123028 201 +1123034 174 +1123039 234 +1123048 248 +1123057 293 +1123069 223 +1123083 193 +1123090 154 +1123111 158 +1123120 208 +1123121 266 +1123122 433 +1123127 208 +1123130 179 +1123135 217 +1123143 205 +1123145 301 +1123149 391 +1123152 194 +1123164 349 +1123174 225 +1123182 250 +1123185 239 +1123205 205 +1123212 236 +1123217 433 +1123225 252 +1123233 615 +1123237 143 +1123239 190 +1123252 287 +1123255 468 +1123256 295 +1123257 346 +1123261 195 +1123267 292 +1123274 239 +1123284 194 +1123286 226 +1123316 191 +1123333 1537 +1123341 232 +1123355 313 +1123362 358 +1123367 187 +1123384 342 +1123387 299 +1123419 180 +1123422 279 +1123442 172 +1123447 691 +1123451 297 +1123473 506 +1123475 805 +1123492 186 +1123517 241 +1123535 265 +1123541 218 +1123546 180 +1123562 211 +1123583 211 +1123595 186 +1123651 185 +1123665 195 +1123667 221 +1123676 192 +1123686 433 +1123702 231 +1123703 186 +1123732 163 +1123738 193 +1123747 177 +1123769 202 +1123800 673 +1123804 181 +1123814 159 +1123854 210 +1123888 174 +1123900 238 +1123924 303 +1123928 202 +1123935 285 +1123941 248 +1123944 571 +1123955 187 +1123966 257 +1123969 263 +1123971 178 +1123986 197 +1124000 188 +1124004 592 +1124025 397 +1124028 194 +1124031 191 +1124055 258 +1124057 264 +1124068 334 +1124101 231 +1124115 185 +1124135 180 +1124145 203 +1124177 371 +1124214 186 +1124238 223 +1124257 283 +1124275 152 +1124277 210 +1124338 1936 +1124345 184 +1124389 195 +1124401 711 +1124465 427 +1124470 175 +1124478 285 +1124489 268 +1124514 295 +1124521 189 +1124529 190 +1124538 245 +1124555 167 +1124556 242 +1124581 251 +1124628 196 +1124646 258 +1124649 226 +1124668 174 +1124670 179 +1124720 197 +1124735 178 +1124755 217 +1124786 175 +1124787 232 +1124803 150 +1124806 175 +1124824 212 +1124831 196 +1124832 387 +1124850 177 +1124861 171 +1124888 220 +1124890 182 +1124925 224 +1124929 322 +1124938 199 +1124948 178 +1124970 223 +1124978 196 +1125015 167 +1125024 168 +1125048 186 +1125054 197 +1125092 217 +1125094 257 +1125097 452 +1125109 290 +1125118 175 +1125131 333 +1125150 873 +1125158 193 +1125176 197 +1125177 192 +1125178 205 +1125188 180 +1125198 187 +1125199 192 +1125235 273 +1125240 234 +1125303 341 +1125306 170 +1125314 181 +1125355 173 +1125363 232 +1125390 356 +1125424 187 +1125427 189 +1125434 190 +1125455 206 +1125459 237 +1125463 267 +1125479 338 +1125490 549 +1125519 211 +1125525 162 +1125542 354 +1125544 259 +1125547 289 +1125569 300 +1125574 195 +1125576 184 +1125603 181 +1125607 180 +1125608 277 +1125612 217 +1125618 208 +1125619 253 +1125634 102 +1125643 272 +1125654 409 +1125655 321 +1125656 203 +1125672 186 +1125701 183 +1125708 181 +1125719 179 +1125722 190 +1125729 281 +1125743 166 +1125747 364 +1125749 252 +1125751 230 +1125757 226 +1125774 435 +1125780 206 +1125816 227 +1125817 213 +1125822 181 +1125829 202 +1125835 195 +1125846 652 +1125850 174 +1125858 190 +1125871 283 +1125904 232 +1125951 184 +1125969 292 +1125973 266 +1125974 280 +1125984 174 +1126019 193 +1126020 193 +1126045 208 +1126062 224 +1126063 177 +1126066 175 +1126077 122 +1126083 315 +1126084 245 +1126105 194 +1126111 223 +1126116 221 +1126126 300 +1126127 170 +1126135 217 +1126147 347 +1126156 188 +1126162 190 +1126171 232 +1126173 210 +1126176 239 +1126180 179 +1126188 293 +1126196 187 +1126211 212 +1126223 529 +1126248 272 +1126249 455 +1126254 230 +1126264 172 +1126279 333 +1126282 194 +1126288 260 +1126310 170 +1126312 184 +1126320 149 +1126330 215 +1126340 204 +1126346 174 +1126358 192 +1126370 184 +1126371 214 +1126396 146 +1126442 202 +1126455 299 +1126458 291 +1126475 240 +1126521 277 +1126548 202 +1126554 172 +1126575 252 +1126585 202 +1126590 212 +1126614 183 +1126634 186 +1126661 366 +1126675 195 +1126679 353 +1126688 292 +1126691 243 +1126692 188 +1126693 174 +1126699 234 +1126733 205 +1126740 152 +1126741 189 +1126750 186 +1126751 236 +1126767 223 +1126794 373 +1126809 173 +1126825 208 +1126827 313 +1126832 216 +1126840 210 +1126842 372 +1126844 208 +1126846 319 +1126851 209 +1126864 180 +1126870 315 +1126872 210 +1126874 155 +1126885 213 +1126887 180 +1126898 216 +1126903 277 +1126910 271 +1126913 187 +1126914 180 +1126928 187 +1126939 296 +1126998 171 +1127001 179 +1127054 292 +1127055 227 +1127065 254 +1127067 133 +1127199 302 +1127208 240 +1127214 227 +1127251 187 +1127255 186 +1127269 280 +1127277 228 +1127307 183 +1127317 252 +1127318 155 +1127347 254 +1127374 190 +1127381 243 +1127383 181 +1127398 487 +1127403 217 +1127433 244 +1127460 260 +1127462 176 +1127481 211 +1127512 187 +1127524 592 +1127534 208 +1127535 222 +1127536 187 +1127566 220 +1127570 112 +1127571 216 +1127577 160 +1127578 196 +1127579 183 +1127611 274 +1127614 212 +1127677 184 +1127690 192 +1127691 208 +1127694 179 +1127723 357 +1127742 240 +1127747 190 +1127754 268 +1127761 187 +1127767 202 +1127772 181 +1127797 320 +1127803 193 +1127811 183 +1127820 205 +1127829 245 +1127832 449 +1127845 231 +1127854 192 +1127859 338 +1127868 187 +1127878 208 +1127895 226 +1127901 176 +1127903 190 +1127919 168 +1127921 552 +1127927 172 +1127941 187 +1127966 158 +1127976 206 +1127979 233 +1127980 292 +1127983 315 +1127991 214 +1128016 246 +1128023 180 +1128028 226 +1128031 442 +1128032 174 +1128078 180 +1128091 156 +1128095 156 +1128102 198 +1128114 268 +1128125 187 +1128135 215 +1128140 205 +1128146 360 +1128150 196 +1128151 184 +1128154 167 +1128157 297 +1128184 268 +1128185 233 +1128202 197 +1128231 194 +1128249 226 +1128251 218 +1128272 199 +1128295 180 +1128303 159 +1128326 187 +1128356 207 +1128360 261 +1128377 357 +1128379 174 +1128389 187 +1128403 200 +1128409 177 +1128435 183 +1128443 214 +1128449 257 +1128478 202 +1128495 187 +1128497 193 +1128501 261 +1128510 281 +1128526 198 +1128583 181 +1128604 247 +1128646 188 +1128648 190 +1128663 202 +1128669 208 +1128683 185 +1128696 173 +1128702 186 +1128738 151 +1128758 181 +1128768 253 +1128783 187 +1128791 280 +1128805 253 +1128815 214 +1128886 211 +1128920 214 +1128921 193 +1128922 193 +1128929 206 +1128942 199 +1128950 181 +1128965 183 +1128990 410 +1128996 272 +1129004 250 +1129012 178 +1129043 183 +1129045 186 +1129053 181 +1129055 208 +1129058 395 +1129072 217 +1129102 348 +1129154 260 +1129174 243 +1129187 262 +1129192 196 +1129220 287 +1129231 273 +1129235 182 +1129239 194 +1129259 186 +1129262 189 +1129271 199 +1129277 177 +1129299 302 +1129314 187 +1129319 243 +1129331 319 +1129346 173 +1129351 189 +1129354 172 +1129368 526 +1129380 282 +1129385 184 +1129386 181 +1129392 196 +1129395 214 +1129409 174 +1129426 192 +1129432 354 +1129435 490 +1129436 359 +1129449 167 +1129470 511 +1129482 211 +1129515 189 +1129522 198 +1129533 197 +1129539 195 +1129543 205 +1129566 275 +1129576 190 +1129602 317 +1129603 173 +1129607 222 +1129627 319 +1129672 181 +1129680 645 +1129684 199 +1129687 229 +1129701 184 +1129706 238 +1129710 184 +1129723 174 +1129739 205 +1129743 187 +1129747 193 +1129754 174 +1129762 162 +1129778 187 +1129784 301 +1129786 524 +1129787 392 +1129815 231 +1129822 251 +1129825 293 +1129841 174 +1129850 187 +1129857 399 +1129895 237 +1129907 202 +1129927 187 +1129929 169 +1129937 193 +1129940 199 +1129942 180 +1129947 173 +1129970 168 +1130001 210 +1130004 156 +1130048 397 +1130052 199 +1130054 193 +1130056 181 +1130066 211 +1130086 233 +1130109 235 +1130140 185 +1130153 350 +1130170 193 +1130175 193 +1130201 225 +1130229 210 +1130238 215 +1130262 375 +1130277 211 +1130279 187 +1130288 206 +1130292 231 +1130304 234 +1130322 302 +1130323 175 +1130340 196 +1130350 208 +1130359 188 +1130366 366 +1130382 135 +1130392 190 +1130395 284 +1130397 547 +1130440 241 +1130445 206 +1130466 215 +1130468 221 +1130475 371 +1130486 218 +1130500 223 +1130502 463 +1130507 258 +1130516 208 +1130542 184 +1130555 198 +1130559 168 +1130596 187 +1130598 808 +1130601 220 +1130606 193 +1130609 228 +1130610 184 +1130618 216 +1130661 181 +1130677 227 +1130678 176 +1130687 223 +1130693 183 +1130697 174 +1130705 214 +1130707 180 +1130726 187 +1130729 279 +1130743 192 +1130749 204 +1130750 293 +1130765 246 +1130772 180 +1130785 193 +1130786 187 +1130790 187 +1130792 220 +1130793 198 +1130808 187 +1130816 208 +1130862 184 +1130880 77 +1130893 203 +1130895 183 +1130897 249 +1130911 189 +1130919 269 +1130932 199 +1130941 380 +1130950 237 +1130970 229 +1130972 291 +1130973 236 +1130979 233 +1130981 187 +1130988 193 +1130989 221 +1130993 187 +1131000 201 +1131015 196 +1131019 235 +1131033 187 +1131036 192 +1131045 588 +1131072 311 +1131077 210 +1131085 174 +1131100 228 +1131103 244 +1131106 231 +1131146 233 +1131157 190 +1131168 334 +1131169 193 +1131179 256 +1131203 245 +1131205 227 +1131225 201 +1131236 187 +1131251 212 +1131264 404 +1131266 195 +1131268 313 +1131280 360 +1131298 219 +1131302 105 +1131313 147 +1131339 174 +1131342 199 +1131375 156 +1131376 199 +1131390 179 +1131395 193 +1131402 316 +1131411 149 +1131441 216 +1131445 183 +1131452 168 +1131462 358 +1131464 178 +1131482 199 +1131497 211 +1131511 273 +1131513 174 +1131529 197 +1131563 187 +1131571 525 +1131576 187 +1131581 181 +1131599 260 +1131602 176 +1131617 191 +1131628 169 +1131647 203 +1131654 264 +1131670 413 +1131678 156 +1131688 193 +1131692 210 +1131711 263 +1131727 391 +1131733 187 +1131753 193 +1131762 193 +1131764 255 +1131780 217 +1131793 213 +1131796 229 +1131798 315 +1131799 260 +1131823 193 +1131825 187 +1131827 244 +1131828 225 +1131874 204 +1131908 412 +1131938 226 +1131950 234 +1131970 151 +1131979 226 +1131986 301 +1131987 241 +1131989 269 +1131990 156 +1131992 391 +1131996 233 +1131997 181 +1131998 285 +1132002 211 +1132003 239 +1132007 205 +1132011 187 +1132016 238 +1132022 374 +1132028 178 +1132039 220 +1132052 219 +1132060 210 +1132089 138 +1132111 197 +1132126 213 +1132128 233 +1132137 272 +1132145 230 +1132149 285 +1132154 344 +1132156 199 +1132157 182 +1132172 128 +1132194 419 +1132227 208 +1132248 190 +1132250 249 +1132271 318 +1132281 210 +1132295 168 +1132301 236 +1132309 240 +1132311 259 +1132317 220 +1132320 235 +1132337 193 +1132340 381 +1132355 191 +1132371 298 +1132379 171 +1132382 207 +1132387 528 +1132388 316 +1132413 289 +1132418 162 +1132425 325 +1132429 221 +1132440 241 +1132442 261 +1132444 187 +1132445 211 +1132450 284 +1132454 260 +1132456 180 +1132457 386 +1132461 181 +1132466 273 +1132470 240 +1132474 143 +1132475 298 +1132479 195 +1132484 282 +1132506 186 +1132510 603 +1132523 247 +1132525 195 +1132527 338 +1132531 321 +1132534 312 +1132552 427 +1132553 187 +1132559 287 +1132562 200 +1132585 531 +1132591 174 +1132601 190 +1132614 253 +1132625 180 +1132632 215 +1132635 199 +1132636 341 +1132638 259 +1132641 204 +1132645 192 +1132646 343 +1132675 187 +1132682 173 +1132685 191 +1132690 176 +1132692 170 +1132693 187 +1132726 213 +1132728 200 +1132746 190 +1132750 191 +1132767 213 +1132775 208 +1132782 395 +1132791 165 +1132792 178 +1132796 193 +1132811 266 +1132814 190 +1132866 348 +1132933 215 +1132948 319 +1132961 194 +1132968 250 +1132970 183 +1132972 193 +1132983 187 +1132988 199 +1132992 230 +1133006 208 +1133018 473 +1133028 215 +1133040 162 +1133065 208 +1133076 371 +1133084 168 +1133098 188 +1133099 196 +1133101 204 +1133102 190 +1133121 177 +1133135 209 +1133136 187 +1133138 448 +1133155 224 +1133163 154 +1133178 239 +1133189 183 +1133199 287 +1133204 248 +1133207 189 +1133227 189 +1133230 182 +1133248 279 +1133254 495 +1133256 184 +1133257 196 +1133263 189 +1133305 265 +1133321 404 +1133328 193 +1133329 174 +1133343 231 +1133362 223 +1133365 240 +1133366 175 +1133379 173 +1133381 330 +1133400 364 +1133412 259 +1133417 492 +1133423 321 +1133428 329 +1133432 290 +1133442 163 +1133473 272 +1133486 199 +1133487 202 +1133499 187 +1133501 366 +1133505 187 +1133532 289 +1133543 179 +1133552 178 +1133572 166 +1133576 186 +1133583 305 +1133601 468 +1133632 280 +1133633 185 +1133639 217 +1133643 182 +1133648 207 +1133652 177 +1133688 223 +1133703 203 +1133716 189 +1133723 188 +1133724 249 +1133738 182 +1133751 187 +1133762 363 +1133767 193 +1133772 181 +1133773 291 +1133774 834 +1133778 184 +1133781 283 +1133789 191 +1133801 151 +1133812 185 +1133813 186 +1133820 186 +1133835 310 +1133839 189 +1133847 187 +1133859 204 +1133862 199 +1133864 212 +1133874 299 +1133881 468 +1133895 406 +1133906 296 +1133929 205 +1133931 192 +1133936 353 +1133938 206 +1133941 546 +1133942 193 +1133946 191 +1133953 178 +1133955 250 +1133960 211 +1133962 147 +1133978 214 +1133979 215 +1133982 275 +1133983 170 +1133990 213 +1133991 207 +1133992 333 +1133993 417 +1134004 147 +1134007 199 +1134009 218 +1134012 281 +1134022 299 +1134025 192 +1134048 193 +1134074 183 +1134081 256 +1134104 208 +1134106 243 +1134118 175 +1134135 158 +1134144 229 +1134156 222 +1134157 193 +1134167 185 +1134180 201 +1134185 183 +1134199 149 +1134208 202 +1134221 216 +1134227 228 +1134228 180 +1134235 180 +1134236 180 +1134240 237 +1134258 211 +1134264 195 +1134269 190 +1134270 268 +1134271 254 +1134287 205 +1134305 190 +1134322 199 +1134326 214 +1134339 460 +1134340 196 +1134344 287 +1134370 212 +1134375 186 +1134381 448 +1134388 225 +1134391 230 +1134392 187 +1134394 177 +1134400 211 +1134415 188 +1134416 183 +1134426 363 +1134435 272 +1134438 197 +1134439 213 +1134457 183 +1134483 216 +1134505 244 +1134514 197 +1134521 202 +1134530 178 +1134532 204 +1134534 363 +1134535 177 +1134536 316 +1134540 200 +1134541 205 +1134543 242 +1134546 203 +1134547 702 +1134568 513 +1134570 269 +1134604 195 +1134612 111 +1134624 171 +1134631 184 +1134639 388 +1134658 321 +1134661 181 +1134671 186 +1134691 397 +1134692 195 +1134696 189 +1134708 208 +1134718 196 +1134720 190 +1134723 196 +1134729 207 +1134733 450 +1134737 190 +1134762 186 +1134773 237 +1134775 496 +1134794 196 +1134801 180 +1134816 263 +1134821 435 +1134825 231 +1134841 177 +1134846 357 +1134850 287 +1134852 192 +1134865 173 +1134892 239 +1134901 169 +1134904 177 +1134921 236 +1134930 207 +1134937 241 +1134942 196 +1134945 181 +1134954 184 +1134955 210 +1134963 193 +1134975 899 +1134976 190 +1134978 217 +1134987 175 +1135028 199 +1135032 194 +1135041 203 +1135055 282 +1135078 149 +1135081 187 +1135089 201 +1135094 312 +1135101 212 +1135115 236 +1135126 176 +1135135 185 +1135138 193 +1135140 246 +1135143 237 +1135150 219 +1135168 286 +1135172 290 +1135195 218 +1135208 195 +1135229 191 +1135242 190 +1135250 166 +1135266 68 +1135283 250 +1135287 313 +1135294 217 +1135296 260 +1135305 214 +1135326 167 +1135364 196 +1135386 348 +1135394 181 +1135396 204 +1135407 223 +1135425 241 +1135441 206 +1135445 193 +1135452 192 +1135454 180 +1135492 180 +1135507 303 +1135522 251 +1135532 202 +1135547 224 +1135551 193 +1135571 196 +1135597 275 +1135618 196 +1135633 189 +1135638 190 +1135641 322 +1135648 183 +1135650 206 +1135660 307 +1135662 183 +1135669 267 +1135678 177 +1135680 208 +1135695 146 +1135696 159 +1135700 186 +1135703 180 +1135715 202 +1135723 178 +1135751 600 +1135765 243 +1135777 201 +1135789 384 +1135793 415 +1135827 199 +1135830 193 +1135843 204 +1135879 250 +1135889 168 +1135918 196 +1135926 211 +1135935 260 +1135952 196 +1135955 222 +1135966 201 +1135967 266 +1135977 266 +1135982 186 +1136002 193 +1136006 149 +1136008 344 +1136010 228 +1136011 234 +1136015 185 +1136020 218 +1136029 187 +1136034 330 +1136044 207 +1136083 174 +1136089 267 +1136091 186 +1136111 206 +1136129 186 +1136154 195 +1136165 218 +1136167 244 +1136168 192 +1136172 180 +1136183 303 +1136207 375 +1136223 199 +1136228 217 +1136262 199 +1136288 261 +1136308 159 +1136309 191 +1136337 348 +1136342 189 +1136365 266 +1136373 257 +1136375 159 +1136397 208 +1136400 592 +1136402 337 +1136410 187 +1136411 169 +1136438 184 +1136443 243 +1136446 225 +1136468 186 +1136475 191 +1136476 178 +1136479 196 +1136490 193 +1136494 233 +1136496 187 +1136502 470 +1136503 374 +1136521 173 +1136542 164 +1136568 173 +1136570 206 +1136574 184 +1136589 270 +1136592 242 +1136596 238 +1136607 193 +1136608 197 +1136613 546 +1136621 187 +1136631 173 +1136644 183 +1136670 187 +1136674 184 +1136684 307 +1136691 220 +1136702 254 +1136720 199 +1136725 319 +1136729 206 +1136737 185 +1136742 239 +1136758 187 +1136764 196 +1136786 197 +1136788 633 +1136799 259 +1136801 204 +1136806 213 +1136812 186 +1136814 184 +1136825 192 +1136833 441 +1136834 357 +1136841 236 +1136864 304 +1136866 178 +1136869 293 +1136882 368 +1136889 439 +1136894 198 +1136899 429 +1136903 274 +1136913 360 +1136917 229 +1136918 204 +1136919 171 +1136928 242 +1136934 341 +1136941 211 +1136952 207 +1136959 490 +1136961 182 +1136963 263 +1136966 199 +1136997 238 +1137000 211 +1137016 395 +1137017 180 +1137021 211 +1137022 199 +1137023 166 +1137032 213 +1137034 278 +1137040 290 +1137046 190 +1137051 303 +1137058 297 +1137069 187 +1137075 284 +1137079 205 +1137083 208 +1137096 173 +1137100 208 +1137129 193 +1137137 239 +1137139 297 +1137141 199 +1137142 203 +1137143 224 +1137147 150 +1137154 289 +1137160 202 +1137164 236 +1137168 214 +1137169 178 +1137174 487 +1137179 196 +1137188 195 +1137194 169 +1137197 193 +1137230 212 +1137233 202 +1137243 180 +1137259 191 +1137265 187 +1137271 181 +1137273 205 +1137276 199 +1137279 196 +1137298 348 +1137300 283 +1137312 193 +1137314 268 +1137323 238 +1137336 191 +1137339 185 +1137343 315 +1137351 192 +1137353 228 +1137359 299 +1137367 195 +1137373 242 +1137379 272 +1137383 228 +1137385 277 +1137389 247 +1137391 208 +1137394 295 +1137400 196 +1137407 232 +1137412 187 +1137416 199 +1137417 250 +1137422 238 +1137425 236 +1137440 202 +1137441 196 +1137458 179 +1137466 177 +1137469 196 +1137478 181 +1137487 426 +1137493 245 +1137499 252 +1137509 205 +1137526 155 +1137547 412 +1137581 167 +1137590 245 +1137623 230 +1137632 216 +1137640 386 +1137655 193 +1137658 154 +1137660 248 +1137664 164 +1137668 351 +1137675 295 +1137676 444 +1137685 179 +1137686 304 +1137688 109 +1137689 478 +1137691 206 +1137692 307 +1137697 186 +1137698 366 +1137700 299 +1137729 197 +1137744 344 +1137747 245 +1137749 319 +1137768 179 +1137779 274 +1137780 307 +1137782 184 +1137790 200 +1137793 442 +1137799 396 +1137804 232 +1137807 211 +1137809 214 +1137810 506 +1137815 205 +1137817 202 +1137819 267 +1137822 313 +1137823 192 +1137824 347 +1137825 218 +1137828 509 +1137855 178 +1137861 209 +1137862 198 +1137865 275 +1137870 199 +1137877 172 +1137887 201 +1137896 475 +1137899 241 +1137900 180 +1137901 418 +1137904 458 +1137907 328 +1137921 224 +1137923 299 +1137928 188 +1137929 238 +1137939 196 +1137940 362 +1137941 262 +1137947 192 +1137951 178 +1137955 400 +1137957 173 +1137970 187 +1137986 556 +1137991 184 +1137997 202 +1138000 196 +1138011 237 +1138013 265 +1138025 193 +1138041 212 +1138083 199 +1138113 242 +1138123 386 +1138132 247 +1138133 312 +1138138 205 +1138150 196 +1138151 194 +1138166 213 +1138169 201 +1138180 301 +1138182 508 +1138185 250 +1138192 182 +1138215 195 +1138216 180 +1138217 153 +1138224 111 +1138243 273 +1138245 183 +1138248 218 +1138257 250 +1138259 603 +1138263 402 +1138266 257 +1138273 259 +1138274 202 +1138275 186 +1138279 232 +1138284 242 +1138289 174 +1138304 159 +1138313 194 +1138333 219 +1138337 206 +1138344 182 +1138347 798 +1138353 217 +1138356 251 +1138365 226 +1138397 215 +1138398 187 +1138399 190 +1138405 201 +1138418 223 +1138423 289 +1138425 321 +1138426 183 +1138429 250 +1138442 225 +1138444 204 +1138448 163 +1138473 196 +1138476 193 +1138481 204 +1138482 376 +1138502 179 +1138511 325 +1138514 252 +1138515 253 +1138520 196 +1138540 396 +1138550 301 +1138554 268 +1138562 277 +1138573 218 +1138574 190 +1138587 257 +1138596 234 +1138604 175 +1138616 174 +1138622 183 +1138629 175 +1138631 173 +1138639 200 +1138652 241 +1138665 211 +1138673 315 +1138676 220 +1138677 199 +1138690 227 +1138718 194 +1138722 359 +1138724 285 +1138727 300 +1138729 211 +1138737 239 +1138747 284 +1138754 211 +1138765 186 +1138767 199 +1138768 187 +1138772 218 +1138775 227 +1138784 516 +1138788 150 +1138790 282 +1138797 183 +1138800 271 +1138802 273 +1138806 209 +1138817 184 +1138819 183 +1138825 614 +1138836 225 +1138839 169 +1138846 263 +1138850 312 +1138851 208 +1138854 228 +1138862 168 +1138876 206 +1138878 195 +1138880 186 +1138887 227 +1138891 257 +1138895 187 +1138897 245 +1138898 178 +1138901 289 +1138902 184 +1138910 187 +1138914 254 +1138915 217 +1138916 205 +1138922 184 +1138931 283 +1138934 182 +1138936 190 +1138944 164 +1138949 211 +1138952 311 +1138957 74 +1138969 231 +1138972 597 +1138977 249 +1138978 177 +1138983 236 +1138985 190 +1138990 297 +1138996 181 +1138997 192 +1138998 315 +1139003 186 +1139013 242 +1139022 329 +1139026 222 +1139035 242 +1139041 249 +1139048 238 +1139050 184 +1139052 196 +1139053 242 +1139056 198 +1139065 351 +1139070 217 +1139075 174 +1139076 183 +1139097 173 +1139102 236 +1139105 534 +1139118 206 +1139121 306 +1139123 198 +1139125 180 +1139128 300 +1139132 187 +1139143 174 +1139153 208 +1139155 258 +1139157 232 +1139169 203 +1139172 217 +1139179 235 +1139184 738 +1139185 225 +1139188 174 +1139203 190 +1139205 402 +1139210 213 +1139212 189 +1139215 182 +1139216 254 +1139217 183 +1139222 223 +1139249 337 +1139252 229 +1139275 248 +1139283 201 +1139288 218 +1139295 200 +1139298 352 +1139316 182 +1139319 192 +1139322 204 +1139331 191 +1139347 303 +1139356 233 +1139358 226 +1139373 205 +1139374 181 +1139380 174 +1139381 155 +1139388 217 +1139395 323 +1139407 186 +1139443 415 +1139474 185 +1139477 476 +1139484 431 +1139486 248 +1139487 295 +1139491 181 +1139500 412 +1139502 187 +1139514 252 +1139517 165 +1139523 208 +1139528 448 +1139530 178 +1139531 208 +1139533 177 +1139536 232 +1139544 344 +1139558 215 +1139566 235 +1139569 205 +1139570 196 +1139571 186 +1139576 326 +1139580 256 +1139592 316 +1139597 262 +1139599 285 +1139608 203 +1139611 192 +1139639 445 +1139644 268 +1139651 176 +1139652 256 +1139668 180 +1139669 196 +1139675 253 +1139688 175 +1139691 275 +1139701 212 +1139711 211 +1139728 240 +1139730 210 +1139738 244 +1139745 340 +1139756 223 +1139758 301 +1139782 193 +1139785 182 +1139795 204 +1139812 183 +1139814 182 +1139824 191 +1139828 176 +1139829 219 +1139830 242 +1139837 174 +1139846 211 +1139854 187 +1139855 203 +1139862 319 +1139870 202 +1139872 136 +1139875 205 +1139883 162 +1139892 172 +1139896 292 +1139903 269 +1139913 412 +1139925 354 +1139929 193 +1139941 350 +1139944 202 +1139945 178 +1139952 450 +1139979 209 +1139980 191 +1139981 186 +1139984 266 +1139990 173 +1139992 245 +1140003 281 +1140006 260 +1140007 186 +1140014 345 +1140045 175 +1140048 190 +1140071 174 +1140084 269 +1140092 184 +1140102 207 +1140114 199 +1140118 230 +1140125 199 +1140132 187 +1140149 239 +1140158 187 +1140165 207 +1140166 246 +1140169 191 +1140177 335 +1140195 185 +1140197 193 +1140199 513 +1140201 370 +1140208 806 +1140210 275 +1140211 186 +1140213 197 +1140215 185 +1140222 270 +1140247 193 +1140249 207 +1140255 238 +1140256 250 +1140267 201 +1140270 253 +1140278 212 +1140280 380 +1140283 193 +1140306 208 +1140307 353 +1140312 213 +1140316 201 +1140325 199 +1140328 254 +1140343 224 +1140346 262 +1140350 236 +1140361 225 +1140366 288 +1140385 471 +1140399 205 +1140401 279 +1140402 196 +1140406 195 +1140416 220 +1140421 214 +1140423 374 +1140434 226 +1140436 445 +1140445 284 +1140460 182 +1140470 198 +1140475 208 +1140487 190 +1140491 324 +1140497 196 +1140498 239 +1140503 190 +1140517 335 +1140518 294 +1140546 169 +1140551 282 +1140566 150 +1140571 456 +1140572 259 +1140584 187 +1140590 302 +1140594 196 +1140609 228 +1140618 199 +1140619 283 +1140625 159 +1140630 171 +1140632 239 +1140643 252 +1140659 268 +1140663 217 +1140669 164 +1140670 205 +1140672 178 +1140676 198 +1140679 264 +1140696 186 +1140708 333 +1140731 338 +1140747 189 +1140748 268 +1140765 195 +1140768 223 +1140800 244 +1140805 199 +1140807 204 +1140812 209 +1140825 186 +1140826 262 +1140836 268 +1140854 163 +1140862 180 +1140864 205 +1140868 200 +1140889 190 +1140890 416 +1140911 259 +1140919 198 +1140923 204 +1140930 219 +1140944 217 +1140959 201 +1140961 205 +1140965 187 +1140970 316 +1140971 277 +1140984 353 +1140996 215 +1141002 190 +1141031 199 +1141035 230 +1141037 205 +1141038 383 +1141047 203 +1141061 244 +1141070 149 +1141082 399 +1141099 199 +1141103 199 +1141109 187 +1141113 184 +1141122 405 +1141137 202 +1141140 230 +1141154 260 +1141155 398 +1141164 199 +1141168 192 +1141174 227 +1141185 288 +1141187 184 +1141188 280 +1141191 168 +1141200 429 +1141206 301 +1141211 333 +1141216 176 +1141219 288 +1141232 259 +1141233 199 +1141238 203 +1141254 212 +1141257 284 +1141266 192 +1141303 224 +1141304 180 +1141306 160 +1141311 203 +1141314 207 +1141315 222 +1141327 235 +1141329 254 +1141336 398 +1141340 193 +1141343 202 +1141347 229 +1141353 227 +1141358 338 +1141380 199 +1141387 222 +1141388 233 +1141404 677 +1141407 341 +1141408 216 +1141435 189 +1141444 186 +1141449 273 +1141450 195 +1141452 277 +1141454 666 +1141458 200 +1141459 201 +1141460 247 +1141467 208 +1141468 200 +1141471 390 +1141472 270 +1141479 223 +1141482 276 +1141492 211 +1141493 190 +1141498 159 +1141503 236 +1141521 371 +1141522 191 +1141523 227 +1141528 199 +1141532 282 +1141538 193 +1141541 230 +1141551 196 +1141561 202 +1141567 368 +1141572 292 +1141590 196 +1141592 175 +1141607 188 +1141623 223 +1141647 244 +1141653 246 +1141658 199 +1141663 272 +1141672 185 +1141675 186 +1141676 236 +1141677 187 +1141681 236 +1141685 521 +1141703 489 +1141732 213 +1141735 309 +1141736 281 +1141737 229 +1141748 186 +1141763 425 +1141769 547 +1141782 186 +1141789 184 +1141794 314 +1141802 180 +1141815 244 +1141820 292 +1141823 217 +1141827 247 +1141831 251 +1141872 430 +1141876 246 +1141884 315 +1141885 200 +1141890 215 +1141900 160 +1141909 669 +1141910 390 +1141911 141 +1141912 192 +1141946 190 +1141955 372 +1141962 448 +1141963 233 +1141972 505 +1141983 351 +1141987 236 +1141988 259 +1142000 188 +1142013 192 +1142019 178 +1142024 198 +1142025 219 +1142031 181 +1142034 314 +1142035 164 +1142042 188 +1142047 168 +1142057 231 +1142060 212 +1142061 298 +1142067 190 +1142112 172 +1142114 521 +1142121 179 +1142145 237 +1142160 187 +1142181 185 +1142187 218 +1142205 193 +1142213 215 +1142216 152 +1142235 180 +1142238 385 +1142242 473 +1142245 169 +1142246 206 +1142256 301 +1142264 203 +1142268 193 +1142287 220 +1142289 205 +1142290 178 +1142292 368 +1142319 181 +1142320 453 +1142328 193 +1142333 194 +1142334 209 +1142335 193 +1142339 193 +1142341 245 +1142348 214 +1142350 186 +1142358 238 +1142400 186 +1142402 217 +1142421 225 +1142431 242 +1142432 186 +1142434 285 +1142442 189 +1142444 226 +1142448 147 +1142450 166 +1142467 378 +1142470 164 +1142475 302 +1142487 181 +1142488 149 +1142492 183 +1142502 162 +1142504 284 +1142515 310 +1142517 226 +1142523 193 +1142529 200 +1142538 168 +1142541 157 +1142545 205 +1142559 259 +1142562 146 +1142568 187 +1142570 211 +1142581 189 +1142582 263 +1142583 275 +1142584 257 +1142595 217 +1142604 216 +1142608 174 +1142610 196 +1142614 180 +1142619 193 +1142635 206 +1142656 245 +1142670 234 +1142681 235 +1142687 258 +1142692 607 +1142706 208 +1142709 187 +1142719 153 +1142722 230 +1142732 200 +1142736 181 +1142759 183 +1142761 186 +1142767 256 +1142771 256 +1142828 187 +1142849 177 +1142857 275 +1142870 252 +1142885 180 +1142888 194 +1142890 196 +1142899 287 +1142908 213 +1142922 175 +1142927 243 +1142932 270 +1142956 193 +1142989 253 +1143014 205 +1143038 184 +1143040 195 +1143044 193 +1143071 212 +1143081 208 +1143114 199 +1143124 208 +1143129 186 +1143133 312 +1143148 235 +1143149 305 +1143155 258 +1143165 243 +1143168 224 +1143184 250 +1143188 643 +1143227 180 +1143235 219 +1143237 227 +1143245 220 +1143254 234 +1143257 180 +1143269 199 +1143273 202 +1143278 213 +1143283 279 +1143291 160 +1143293 180 +1143294 171 +1143297 184 +1143319 374 +1143320 187 +1143327 226 +1143332 212 +1143344 247 +1143350 198 +1143352 353 +1143369 186 +1143371 190 +1143377 260 +1143397 187 +1143398 211 +1143418 242 +1143423 257 +1143434 185 +1143458 180 +1143462 272 +1143487 187 +1143494 196 +1143497 181 +1143520 180 +1143558 220 +1143560 210 +1143565 193 +1143589 272 +1143598 179 +1143612 549 +1143630 193 +1143631 220 +1143638 159 +1143646 210 +1143676 163 +1143678 204 +1143705 175 +1143719 417 +1143726 185 +1143728 217 +1143733 253 +1143736 230 +1143739 181 +1143742 180 +1143754 114 +1143759 154 +1143764 186 +1143772 191 +1143777 196 +1143790 368 +1143802 259 +1143807 207 +1143820 228 +1143828 197 +1143856 250 +1143857 289 +1143866 213 +1143869 223 +1143870 250 +1143874 404 +1143877 341 +1143879 195 +1143884 219 +1143893 284 +1143899 296 +1143906 199 +1143907 232 +1143917 250 +1143924 331 +1143935 259 +1143937 187 +1143941 187 +1143944 415 +1143951 250 +1143973 434 +1144001 218 +1144020 230 +1144027 238 +1144044 224 +1144054 237 +1144077 232 +1144089 232 +1144092 302 +1144097 109 +1144102 220 +1144107 176 +1144110 211 +1144122 270 +1144127 359 +1144128 196 +1144129 263 +1144131 213 +1144158 465 +1144165 199 +1144167 232 +1144168 287 +1144192 178 +1144197 304 +1144203 292 +1144210 190 +1144214 278 +1144228 416 +1144235 218 +1144239 423 +1144242 220 +1144244 357 +1144270 213 +1144272 196 +1144273 285 +1144275 903 +1144281 266 +1144284 301 +1144297 208 +1144312 191 +1144318 329 +1144320 208 +1144326 346 +1144329 153 +1144336 196 +1144337 186 +1144338 240 +1144343 240 +1144353 198 +1144365 326 +1144384 196 +1144391 171 +1144395 217 +1144414 384 +1144418 220 +1144420 202 +1144421 268 +1144430 176 +1144431 191 +1144432 203 +1144439 241 +1144443 236 +1144446 447 +1144460 190 +1144468 198 +1144471 393 +1144484 159 +1144497 174 +1144500 228 +1144511 174 +1144533 306 +1144540 180 +1144547 137 +1144550 194 +1144557 199 +1144563 205 +1144567 187 +1144572 209 +1144581 293 +1144588 180 +1144589 181 +1144590 187 +1144609 236 +1144614 220 +1144619 190 +1144627 173 +1144638 198 +1144640 181 +1144642 192 +1144650 303 +1144654 391 +1144657 178 +1144660 264 +1144661 338 +1144667 195 +1144670 205 +1144671 161 +1144698 203 +1144704 213 +1144710 225 +1144721 204 +1144725 380 +1144732 322 +1144741 371 +1144743 269 +1144747 190 +1144750 226 +1144752 247 +1144764 190 +1144777 295 +1144779 343 +1144781 233 +1144797 235 +1144799 186 +1144803 190 +1144812 184 +1144815 197 +1144816 185 +1144817 183 +1144823 208 +1144826 179 +1144828 213 +1144833 505 +1144880 288 +1144896 332 +1144897 267 +1144906 202 +1144908 248 +1144912 204 +1144915 187 +1144917 193 +1144922 313 +1144931 178 +1144941 335 +1144943 190 +1144957 189 +1144959 245 +1144964 187 +1144973 251 +1144986 169 +1144990 247 +1145004 355 +1145008 223 +1145012 195 +1145016 227 +1145021 238 +1145029 212 +1145038 194 +1145040 229 +1145050 236 +1145061 187 +1145063 180 +1145067 171 +1145078 190 +1145082 200 +1145094 372 +1145100 281 +1145101 199 +1145104 189 +1145112 316 +1145119 182 +1145127 538 +1145135 493 +1145145 194 +1145146 193 +1145152 221 +1145153 199 +1145155 204 +1145165 229 +1145169 326 +1145171 247 +1145181 425 +1145203 253 +1145208 246 +1145210 196 +1145222 243 +1145225 280 +1145227 208 +1145231 214 +1145237 197 +1145244 205 +1145262 241 +1145286 204 +1145290 226 +1145292 179 +1145312 383 +1145320 247 +1145330 222 +1145334 210 +1145335 180 +1145343 269 +1145345 189 +1145365 265 +1145367 188 +1145388 277 +1145391 208 +1145403 199 +1145414 244 +1145425 205 +1145432 202 +1145440 168 +1145446 198 +1145447 219 +1145450 211 +1145473 232 +1145478 179 +1145483 203 +1145490 229 +1145491 266 +1145494 265 +1145508 204 +1145512 183 +1145530 178 +1145531 241 +1145538 168 +1145539 344 +1145548 225 +1145564 277 +1145577 218 +1145587 159 +1145588 185 +1145591 225 +1145592 165 +1145594 257 +1145598 164 +1145651 199 +1145657 192 +1145679 377 +1145694 295 +1145702 237 +1145714 183 +1145726 199 +1145754 252 +1145770 168 +1145783 180 +1145791 189 +1145795 246 +1145799 236 +1145800 179 +1145804 198 +1145810 239 +1145828 193 +1145832 237 +1145834 143 +1145837 211 +1145848 225 +1145857 229 +1145869 161 +1145872 296 +1145882 187 +1145888 180 +1145902 219 +1145908 193 +1145913 315 +1145916 203 +1145922 201 +1145925 200 +1145935 175 +1145940 264 +1145956 277 +1145963 198 +1145977 180 +1145995 191 +1145996 180 +1146007 177 +1146009 193 +1146014 204 +1146019 185 +1146022 225 +1146028 194 +1146034 367 +1146035 190 +1146080 193 +1146081 180 +1146082 317 +1146087 106 +1146121 217 +1146138 284 +1146139 174 +1146142 280 +1146147 183 +1146153 237 +1146159 220 +1146160 180 +1146177 221 +1146181 174 +1146191 187 +1146205 200 +1146213 187 +1146224 463 +1146228 192 +1146235 290 +1146238 226 +1146264 192 +1146265 212 +1146269 172 +1146272 248 +1146275 193 +1146279 180 +1146280 184 +1146281 300 +1146287 271 +1146290 196 +1146316 193 +1146328 106 +1146333 180 +1146334 193 +1146344 176 +1146349 490 +1146358 180 +1146359 186 +1146378 205 +1146385 226 +1146388 179 +1146397 275 +1146401 210 +1146402 479 +1146403 187 +1146411 318 +1146417 532 +1146421 278 +1146422 202 +1146424 214 +1146463 172 +1146466 217 +1146470 210 +1146479 187 +1146495 203 +1146497 199 +1146511 171 +1146521 181 +1146528 335 +1146532 192 +1146558 246 +1146574 193 +1146590 457 +1146601 213 +1146607 193 +1146623 237 +1146625 258 +1146627 229 +1146632 283 +1146638 233 +1146642 174 +1146643 184 +1146647 294 +1146649 283 +1146652 473 +1146657 279 +1146659 188 +1146661 269 +1146674 284 +1146676 410 +1146679 198 +1146680 213 +1146688 339 +1146703 211 +1146706 264 +1146722 189 +1146726 179 +1146736 182 +1146742 221 +1146746 193 +1146747 200 +1146751 292 +1146762 275 +1146796 258 +1146806 187 +1146809 395 +1146812 244 +1146836 528 +1146838 184 +1146839 153 +1146841 214 +1146846 227 +1146851 192 +1146858 176 +1146886 194 +1146891 187 +1146903 226 +1146906 205 +1146917 173 +1146919 462 +1146920 245 +1146934 241 +1146936 288 +1146956 186 +1146960 252 +1146967 181 +1146973 187 +1146976 189 +1146988 205 +1146995 291 +1147015 228 +1147021 226 +1147022 538 +1147027 259 +1147035 224 +1147039 217 +1147044 357 +1147046 213 +1147071 230 +1147075 341 +1147081 196 +1147100 207 +1147103 287 +1147110 185 +1147128 201 +1147131 434 +1147144 289 +1147147 192 +1147150 241 +1147155 230 +1147163 398 +1147175 173 +1147186 222 +1147189 194 +1147192 185 +1147195 336 +1147203 246 +1147204 192 +1147209 198 +1147218 260 +1147223 191 +1147231 317 +1147241 207 +1147247 542 +1147255 187 +1147256 180 +1147284 193 +1147290 149 +1147326 217 +1147348 171 +1147355 315 +1147361 267 +1147368 180 +1147377 183 +1147382 306 +1147388 190 +1147393 224 +1147397 187 +1147428 223 +1147435 178 +1147438 312 +1147449 184 +1147454 143 +1147455 188 +1147477 262 +1147480 168 +1147484 338 +1147486 175 +1147503 250 +1147514 208 +1147526 216 +1147530 334 +1147533 193 +1147537 199 +1147542 175 +1147559 199 +1147569 200 +1147579 184 +1147588 266 +1147622 205 +1147630 219 +1147632 200 +1147642 266 +1147648 196 +1147652 398 +1147663 207 +1147688 262 +1147709 198 +1147730 231 +1147731 196 +1147742 223 +1147757 298 +1147760 183 +1147772 471 +1147773 165 +1147784 194 +1147792 174 +1147794 181 +1147805 247 +1147820 229 +1147821 181 +1147822 252 +1147823 253 +1147828 179 +1147856 245 +1147867 199 +1147875 295 +1147877 185 +1147881 342 +1147902 321 +1147909 223 +1147911 204 +1147918 188 +1147924 187 +1147930 233 +1147947 181 +1147949 180 +1147974 326 +1147982 285 +1147984 265 +1148003 199 +1148004 242 +1148007 1245 +1148013 256 +1148022 199 +1148026 339 +1148034 167 +1148039 306 +1148044 266 +1148052 214 +1148072 174 +1148081 300 +1148088 187 +1148099 204 +1148104 395 +1148106 254 +1148116 209 +1148117 196 +1148148 280 +1148149 187 +1148189 162 +1148198 186 +1148201 334 +1148204 217 +1148207 187 +1148209 268 +1148215 168 +1148221 193 +1148222 205 +1148226 170 +1148265 205 +1148279 262 +1148289 192 +1148292 167 +1148319 182 +1148332 170 +1148370 227 +1148396 205 +1148407 192 +1148415 173 +1148430 192 +1148441 196 +1148448 289 +1148451 174 +1148452 182 +1148453 172 +1148462 186 +1148468 180 +1148482 240 +1148485 290 +1148494 233 +1148543 244 +1148560 258 +1148572 212 +1148593 437 +1148600 389 +1148617 221 +1148627 192 +1148643 297 +1148661 180 +1148663 687 +1148675 181 +1148678 359 +1148683 220 +1148684 211 +1148690 283 +1148691 257 +1148699 224 +1148702 371 +1148753 241 +1148775 220 +1148778 187 +1148790 285 +1148823 203 +1148841 181 +1148850 201 +1148853 187 +1148870 184 +1148885 195 +1148904 232 +1148912 183 +1148922 193 +1148924 546 +1148928 319 +1148931 199 +1148952 239 +1148958 147 +1148961 341 +1148962 202 +1148967 180 +1148977 190 +1148996 170 +1149001 185 +1149007 159 +1149030 187 +1149034 185 +1149039 261 +1149050 427 +1149073 171 +1149080 202 +1149101 383 +1149159 188 +1149167 190 +1149170 422 +1149172 197 +1149196 251 +1149212 174 +1149223 313 +1149238 196 +1149239 187 +1149246 236 +1149253 314 +1149265 176 +1149296 287 +1149305 252 +1149333 424 +1149348 251 +1149365 155 +1149380 175 +1149408 206 +1149427 292 +1149439 491 +1149450 414 +1149457 391 +1149468 395 +1149476 227 +1149478 199 +1149517 211 +1149519 187 +1149549 315 +1149554 211 +1149598 280 +1149612 191 +1149613 278 +1149624 186 +1149632 344 +1149633 176 +1149660 187 +1149677 226 +1149709 196 +1149719 180 +1149724 193 +1149752 185 +1149757 311 +1149773 143 +1149774 186 +1149779 211 +1149789 1076 +1149825 190 +1149834 213 +1149835 177 +1149860 331 +1149879 192 +1149885 185 +1149963 180 +1149968 212 +1149970 232 +1149981 190 +1150000 163 +1150003 220 +1150009 134 +1150014 156 +1150016 192 +1150022 295 +1150026 201 +1150032 231 +1150062 279 +1150065 180 +1150094 184 +1150109 263 +1150113 193 +1150119 194 +1150139 187 +1150154 220 +1150155 193 +1150166 205 +1150179 339 +1150203 168 +1150208 148 +1150217 212 +1150234 218 +1150251 173 +1150286 150 +1150287 382 +1150309 199 +1150317 218 +1150335 186 +1150383 184 +1150388 165 +1150408 172 +1150411 193 +1150429 211 +1150486 377 +1150495 217 +1150502 192 +1150504 245 +1150535 327 +1150542 325 +1150554 299 +1150575 193 +1150584 187 +1150588 175 +1150595 179 +1150606 187 +1150621 259 +1150625 243 +1150630 174 +1150665 259 +1150667 199 +1150692 292 +1150716 187 +1150739 350 +1150740 300 +1150769 203 +1150776 144 +1150785 192 +1150788 178 +1150803 196 +1150816 247 +1150818 317 +1150826 649 +1150835 278 +1150853 420 +1150883 325 +1150894 199 +1150895 189 +1150916 196 +1150927 186 +1150950 275 +1150961 186 +1150962 198 +1150990 213 +1151028 208 +1151029 704 +1151048 300 +1151071 183 +1151083 194 +1151088 199 +1151098 183 +1151105 280 +1151118 268 +1151130 198 +1151142 198 +1151160 174 +1151163 363 +1151266 193 +1151292 174 +1151317 181 +1151331 190 +1151351 191 +1151371 205 +1151373 181 +1151380 206 +1151405 174 +1151412 201 +1151432 209 +1151442 314 +1151469 397 +1151474 177 +1151481 256 +1151483 171 +1151490 236 +1151565 215 +1151575 231 +1151581 174 +1151589 218 +1151601 193 +1151617 348 +1151642 216 +1151721 167 +1151738 203 +1151750 186 +1151766 221 +1151769 180 +1151770 239 +1151776 219 +1151778 197 +1151792 186 +1151806 200 +1151818 153 +1151823 189 +1151832 180 +1151853 265 +1151858 143 +1151872 305 +1151894 195 +1151909 314 +1151924 212 +1151927 298 +1151932 181 +1151942 166 +1151949 190 +1151977 320 +1151980 186 +1152092 284 +1152118 759 +1152156 334 +1152165 149 +1152167 444 +1152171 232 +1152194 372 +1152201 318 +1152202 375 +1152227 301 +1152253 278 +1152255 186 +1152261 182 +1152267 203 +1152268 301 +1152276 215 +1152278 191 +1152323 263 +1152364 202 +1152386 253 +1152392 201 +1152405 253 +1152424 213 +1152426 189 +1152429 198 +1152430 260 +1152431 199 +1152444 326 +1152448 186 +1152453 447 +1152458 146 +1152464 256 +1152470 256 +1152473 156 +1152478 203 +1152486 277 +1152495 514 +1152529 195 +1152568 411 +1152601 186 +1152654 198 +1152672 324 +1152677 193 +1152699 172 +1152707 214 +1152708 184 +1152715 196 +1152719 224 +1152721 214 +1152722 184 +1152723 269 +1152737 186 +1152754 342 +1152764 247 +1152771 181 +1152773 256 +1152784 210 +1152802 182 +1152815 277 +1152820 204 +1152829 177 +1152833 165 +1152843 179 +1152853 270 +1152867 270 +1152868 249 +1152882 245 +1152903 171 +1152909 190 +1152922 235 +1152937 175 +1152970 185 +1152988 373 +1152991 226 +1153000 254 +1153003 227 +1153029 189 +1153047 210 +1153063 221 +1153072 224 +1153103 261 +1153110 392 +1153146 266 +1153159 184 +1153163 252 +1153194 193 +1153211 168 +1153234 196 +1153237 205 +1153245 187 +1153248 216 +1153263 204 +1153275 160 +1153289 210 +1153296 181 +1153311 199 +1153318 196 +1153337 192 +1153343 208 +1153354 287 +1153380 233 +1153382 187 +1153402 193 +1153435 175 +1153452 243 +1153463 115 +1153484 206 +1153513 196 +1153578 187 +1153588 226 +1153596 181 +1153602 247 +1153606 308 +1153619 167 +1153622 227 +1153668 244 +1153676 282 +1153677 233 +1153688 244 +1153693 192 +1153718 193 +1153722 363 +1153755 313 +1153766 230 +1153792 202 +1153815 174 +1153822 239 +1153823 229 +1153853 302 +1153859 202 +1153877 241 +1153891 187 +1153907 213 +1153914 197 +1153922 174 +1153988 174 +1154001 226 +1154022 178 +1154066 283 +1154067 491 +1154083 356 +1154114 219 +1154116 196 +1154185 166 +1154191 267 +1154193 221 +1154277 186 +1154283 211 +1154288 256 +1154313 229 +1154333 186 +1154334 199 +1154341 251 +1154350 508 +1154370 190 +1154381 284 +1154396 199 +1154397 177 +1154438 296 +1154466 210 +1154487 185 +1154529 190 +1154543 230 +1154553 205 +1154562 242 +1154564 265 +1154572 188 +1154583 157 +1154607 196 +1154614 176 +1154654 186 +1154673 155 +1154696 171 +1154699 181 +1154719 199 +1154720 201 +1154742 247 +1154775 184 +1154787 190 +1154802 296 +1154809 206 +1154830 175 +1154843 191 +1154888 444 +1154912 211 +1154913 202 +1154930 174 +1154933 168 +1154950 199 +1154958 187 +1154970 255 +1154981 202 +1154985 256 +1154999 176 +1155003 190 +1155012 227 +1155013 218 +1155020 219 +1155027 211 +1155041 150 +1155059 205 +1155062 238 +1155071 312 +1155083 220 +1155088 184 +1155126 194 +1155127 227 +1155136 244 +1155152 189 +1155178 190 +1155208 193 +1155210 234 +1155236 236 +1155246 197 +1155266 201 +1155276 190 +1155286 198 +1155287 169 +1155296 536 +1155310 297 +1155315 241 +1155356 193 +1155391 219 +1155395 241 +1155432 198 +1155449 199 +1155455 162 +1155464 168 +1155469 169 +1155479 265 +1155500 235 +1155520 204 +1155524 181 +1155536 175 +1155548 174 +1155561 229 +1155564 295 +1155571 193 +1155607 443 +1155634 222 +1155660 358 +1155667 190 +1155673 224 +1155678 261 +1155686 199 +1155708 199 +1155713 220 +1155736 361 +1155749 382 +1155766 179 +1155773 182 +1155776 224 +1155788 174 +1155798 149 +1155819 307 +1155845 231 +1155847 218 +1155862 255 +1155868 200 +1155880 183 +1155900 206 +1155913 195 +1155924 205 +1155933 227 +1155963 206 +1156028 249 +1156029 287 +1156030 223 +1156032 174 +1156033 181 +1156035 167 +1156047 173 +1156053 374 +1156087 163 +1156100 205 +1156105 220 +1156117 230 +1156126 191 +1156143 194 +1156199 189 +1156210 396 +1156230 181 +1156245 443 +1156252 245 +1156257 230 +1156260 187 +1156264 263 +1156267 192 +1156277 214 +1156280 184 +1156308 190 +1156312 174 +1156317 224 +1156321 159 +1156336 242 +1156337 192 +1156349 183 +1156359 308 +1156369 291 +1156374 263 +1156382 189 +1156386 223 +1156390 170 +1156391 299 +1156396 554 +1156414 287 +1156453 202 +1156489 198 +1156503 227 +1156509 193 +1156515 205 +1156547 183 +1156551 192 +1156559 250 +1156560 601 +1156586 174 +1156588 279 +1156596 170 +1156621 321 +1156650 214 +1156670 173 +1156683 229 +1156687 190 +1156700 246 +1156758 152 +1156761 193 +1156781 189 +1156796 250 +1156800 239 +1156815 199 +1156835 204 +1156843 573 +1156846 190 +1156914 211 +1156936 233 +1156937 283 +1156963 189 +1156971 170 +1156972 207 +1157009 190 +1157016 204 +1157040 190 +1157063 217 +1157064 143 +1157084 192 +1157101 320 +1157115 250 +1157135 244 +1157144 222 +1157165 182 +1157187 331 +1157192 265 +1157194 208 +1157203 173 +1157226 202 +1157231 284 +1157234 346 +1157254 294 +1157264 168 +1157276 407 +1157282 219 +1157313 326 +1157328 187 +1157363 236 +1157381 182 +1157398 227 +1157399 183 +1157406 411 +1157407 183 +1157418 205 +1157424 156 +1157429 183 +1157445 514 +1157456 494 +1157481 284 +1157487 197 +1157489 175 +1157507 442 +1157510 194 +1157512 257 +1157517 253 +1157532 270 +1157542 234 +1157562 174 +1157565 194 +1157566 348 +1157570 236 +1157576 175 +1157578 197 +1157580 214 +1157587 293 +1157590 171 +1157607 184 +1157616 187 +1157620 174 +1157627 216 +1157634 233 +1157635 283 +1157639 193 +1157668 236 +1157677 174 +1157687 255 +1157691 213 +1157701 180 +1157728 175 +1157734 278 +1157748 254 +1157753 251 +1157755 184 +1157757 269 +1157783 153 +1157793 195 +1157809 251 +1157811 287 +1157813 210 +1157818 72 +1157821 177 +1157823 318 +1157828 193 +1157835 333 +1157839 482 +1157844 225 +1157850 180 +1157852 249 +1157858 186 +1157865 196 +1157874 215 +1157880 177 +1157904 244 +1157907 266 +1157915 166 +1157924 199 +1157936 205 +1157949 180 +1157961 357 +1157970 231 +1157978 315 +1157987 518 +1157991 215 +1158000 194 +1158011 534 +1158047 249 +1158054 217 +1158063 284 +1158065 180 +1158068 180 +1158071 239 +1158073 313 +1158086 180 +1158102 193 +1158103 201 +1158117 295 +1158133 293 +1158135 235 +1158143 229 +1158146 206 +1158158 210 +1158170 365 +1158183 217 +1158187 204 +1158190 232 +1158198 362 +1158200 200 +1158202 378 +1158210 228 +1158229 181 +1158241 211 +1158302 187 +1158316 211 +1158319 253 +1158323 236 +1158340 203 +1158349 187 +1158387 226 +1158393 240 +1158394 190 +1158400 271 +1158416 187 +1158419 202 +1158432 186 +1158449 391 +1158467 184 +1158470 319 +1158489 180 +1158491 279 +1158498 194 +1158510 357 +1158512 211 +1158514 167 +1158521 336 +1158524 270 +1158539 193 +1158545 570 +1158546 191 +1158559 219 +1158563 192 +1158569 199 +1158574 210 +1158591 249 +1158592 180 +1158595 319 +1158596 207 +1158601 187 +1158603 252 +1158605 168 +1158606 190 +1158609 521 +1158635 221 +1158638 199 +1158664 190 +1158665 215 +1158668 196 +1158670 248 +1158672 324 +1158676 214 +1158679 156 +1158696 209 +1158722 223 +1158723 221 +1158738 178 +1158756 199 +1158772 238 +1158800 365 +1158810 221 +1158815 182 +1158838 234 +1158839 178 +1158844 211 +1158851 182 +1158878 664 +1158889 171 +1158900 226 +1158914 187 +1158917 222 +1158922 180 +1158925 180 +1158951 306 +1158955 197 +1158960 192 +1158982 175 +1158994 498 +1158999 223 +1159025 177 +1159032 220 +1159035 190 +1159050 181 +1159056 197 +1159086 192 +1159090 149 +1159092 277 +1159100 206 +1159101 275 +1159104 325 +1159111 171 +1159112 192 +1159115 223 +1159121 221 +1159122 517 +1159128 275 +1159130 193 +1159131 222 +1159135 174 +1159136 192 +1159147 208 +1159151 198 +1159163 183 +1159169 297 +1159205 200 +1159224 217 +1159230 339 +1159236 266 +1159237 409 +1159241 180 +1159246 187 +1159248 200 +1159249 453 +1159254 475 +1159255 231 +1159296 350 +1159305 186 +1159308 195 +1159312 223 +1159328 169 +1159331 164 +1159349 264 +1159357 190 +1159358 223 +1159372 226 +1159379 222 +1159408 154 +1159421 430 +1159422 141 +1159433 211 +1159439 226 +1159444 168 +1159447 289 +1159451 416 +1159477 192 +1159480 288 +1159483 287 +1159484 180 +1159493 272 +1159501 265 +1159502 388 +1159507 192 +1159521 248 +1159533 264 +1159571 238 +1159576 206 +1159578 224 +1159579 187 +1159582 201 +1159588 186 +1159595 143 +1159607 243 +1159613 188 +1159621 246 +1159630 185 +1159633 175 +1159634 161 +1159646 187 +1159668 381 +1159684 296 +1159688 165 +1159689 177 +1159695 202 +1159702 187 +1159705 187 +1159707 184 +1159712 435 +1159715 154 +1159725 264 +1159731 296 +1159739 193 +1159755 193 +1159756 313 +1159763 100 +1159769 146 +1159792 211 +1159828 174 +1159832 205 +1159850 199 +1159864 233 +1159885 212 +1159889 201 +1159899 169 +1159900 179 +1159905 322 +1159906 235 +1159916 187 +1159917 192 +1159921 208 +1159927 331 +1159943 174 +1159962 206 +1159984 193 +1159991 198 +1159992 290 +1159999 184 +1160005 182 +1160011 187 +1160017 335 +1160018 254 +1160027 71 +1160037 184 +1160039 149 +1160064 181 +1160066 373 +1160072 186 +1160083 133 +1160094 210 +1160104 308 +1160115 399 +1160127 256 +1160129 196 +1160131 214 +1160136 181 +1160137 310 +1160154 306 +1160195 213 +1160197 218 +1160199 212 +1160247 293 +1160263 223 +1160280 214 +1160289 190 +1160297 187 +1160324 184 +1160340 181 +1160370 165 +1160379 272 +1160393 189 +1160396 163 +1160419 181 +1160433 288 +1160441 371 +1160445 229 +1160455 184 +1160456 187 +1160486 154 +1160503 207 +1160515 224 +1160528 194 +1160547 187 +1160565 199 +1160575 242 +1160577 235 +1160595 187 +1160630 190 +1160639 170 +1160676 181 +1160678 245 +1160679 332 +1160711 251 +1160718 158 +1160719 186 +1160729 224 +1160754 177 +1160775 166 +1160776 422 +1160781 180 +1160796 231 +1160805 218 +1160826 283 +1160832 184 +1160873 168 +1160875 187 +1160891 199 +1160921 208 +1160935 273 +1160936 213 +1160937 174 +1160943 252 +1160947 196 +1160954 174 +1160957 274 +1160968 236 +1160982 186 +1160989 615 +1161008 174 +1161014 297 +1161049 184 +1161064 208 +1161106 361 +1161109 254 +1161153 186 +1161159 179 +1161199 283 +1161219 183 +1161246 182 +1161248 252 +1161263 190 +1161268 342 +1161272 186 +1161321 190 +1161323 245 +1161326 268 +1161327 187 +1161336 166 +1161337 420 +1161384 323 +1161386 202 +1161389 187 +1161397 243 +1161403 200 +1161414 205 +1161416 154 +1161417 211 +1161428 209 +1161444 180 +1161460 322 +1161492 182 +1161506 222 +1161510 192 +1161511 316 +1161512 196 +1161513 277 +1161515 208 +1161517 177 +1161520 422 +1161522 321 +1161540 207 +1161544 251 +1161565 238 +1161586 190 +1161588 202 +1161594 282 +1161595 281 +1161605 177 +1161607 180 +1161690 169 +1161704 211 +1161706 196 +1161735 180 +1161815 425 +1161819 187 +1161821 181 +1161825 143 +1161826 168 +1161839 181 +1161843 196 +1161846 257 +1161854 309 +1161888 214 +1161892 235 +1161903 195 +1161927 222 +1161928 184 +1161933 252 +1162020 201 +1162032 187 +1162034 200 +1162047 187 +1162064 284 +1162071 80 +1162079 183 +1162106 263 +1162126 208 +1162136 265 +1162157 255 +1162162 220 +1162172 186 +1162176 217 +1162202 187 +1162206 189 +1162225 234 +1162227 302 +1162235 224 +1162247 186 +1162250 262 +1162271 265 +1162282 167 +1162283 232 +1162293 190 +1162296 222 +1162307 277 +1162313 202 +1162318 200 +1162324 199 +1162330 383 +1162332 166 +1162338 198 +1162371 208 +1162377 232 +1162385 199 +1162403 285 +1162413 360 +1162414 192 +1162420 206 +1162433 391 +1162451 186 +1162462 201 +1162486 173 +1162487 284 +1162496 333 +1162515 230 +1162533 223 +1162536 294 +1162544 297 +1162552 183 +1162568 342 +1162582 188 +1162593 152 +1162599 313 +1162616 178 +1162620 269 +1162648 216 +1162654 171 +1162664 220 +1162676 189 +1162678 213 +1162693 418 +1162702 193 +1162720 222 +1162725 178 +1162737 187 +1162747 357 +1162762 206 +1162774 178 +1162790 184 +1162795 413 +1162797 193 +1162806 207 +1162807 184 +1162810 308 +1162820 233 +1162829 502 +1162839 208 +1162855 187 +1162870 180 +1162878 202 +1162888 168 +1162900 155 +1162909 138 +1162911 206 +1162921 190 +1162930 186 +1162932 423 +1162947 329 +1162950 419 +1162958 201 +1162964 186 +1162973 186 +1162980 171 +1163001 174 +1163003 168 +1163012 200 +1163018 199 +1163037 253 +1163040 546 +1163042 312 +1163053 170 +1163068 201 +1163069 325 +1163073 564 +1163079 205 +1163087 281 +1163091 188 +1163104 345 +1163111 199 +1163121 251 +1163126 202 +1163128 219 +1163138 186 +1163143 223 +1163149 207 +1163175 171 +1163182 261 +1163193 216 +1163196 222 +1163259 215 +1163263 280 +1163265 186 +1163281 174 +1163283 239 +1163289 149 +1163294 156 +1163303 180 +1163353 147 +1163360 226 +1163363 336 +1163397 181 +1163407 497 +1163409 258 +1163443 199 +1163470 196 +1163471 238 +1163482 209 +1163541 180 +1163546 200 +1163547 231 +1163585 202 +1163600 256 +1163619 182 +1163630 793 +1163644 205 +1163666 187 +1163669 256 +1163706 193 +1163725 246 +1163745 207 +1163749 164 +1163759 246 +1163769 201 +1163778 168 +1163779 173 +1163796 204 +1163798 201 +1163800 405 +1163805 225 +1163869 221 +1163879 178 +1163887 184 +1163891 222 +1163897 185 +1163907 196 +1163909 302 +1163914 286 +1163915 321 +1163921 199 +1163925 192 +1163928 199 +1163937 401 +1163940 187 +1163952 181 +1163962 198 +1163969 200 +1163994 330 +1164000 268 +1164009 188 +1164033 206 +1164062 334 +1164067 196 +1164100 656 +1164124 256 +1164127 251 +1164132 244 +1164148 181 +1164158 205 +1164159 187 +1164168 193 +1164170 180 +1164171 198 +1164192 156 +1164200 405 +1164202 950 +1164205 192 +1164210 112 +1164222 184 +1164223 213 +1164228 223 +1164230 227 +1164234 241 +1164251 194 +1164252 151 +1164262 209 +1164263 213 +1164290 782 +1164297 166 +1164300 303 +1164318 187 +1164322 345 +1164323 181 +1164325 240 +1164355 169 +1164375 188 +1164412 242 +1164422 177 +1164428 257 +1164443 232 +1164445 197 +1164455 267 +1164471 181 +1164473 356 +1164496 174 +1164527 203 +1164536 171 +1164552 157 +1164565 342 +1164568 167 +1164569 187 +1164570 205 +1164597 191 +1164622 180 +1164626 193 +1164634 254 +1164646 208 +1164649 238 +1164677 224 +1164697 303 +1164708 278 +1164724 344 +1164727 227 +1164740 215 +1164748 174 +1164752 431 +1164754 184 +1164779 199 +1164803 193 +1164816 187 +1164824 256 +1164836 244 +1164837 181 +1164853 177 +1164885 181 +1164907 268 +1164921 403 +1164926 369 +1164927 184 +1164931 252 +1164940 220 +1164956 240 +1164972 211 +1164982 180 +1164987 201 +1164998 156 +1165004 292 +1165021 167 +1165063 235 +1165076 253 +1165093 233 +1165117 171 +1165146 193 +1165171 189 +1165184 241 +1165233 244 +1165236 568 +1165272 179 +1165280 202 +1165297 192 +1165302 178 +1165326 192 +1165329 178 +1165330 637 +1165337 288 +1165356 165 +1165375 178 +1165388 180 +1165397 211 +1165401 249 +1165420 155 +1165431 174 +1165437 217 +1165450 196 +1165453 260 +1165465 232 +1165469 193 +1165471 208 +1165476 255 +1165479 187 +1165481 230 +1165508 243 +1165509 174 +1165512 212 +1165523 254 +1165529 250 +1165532 177 +1165541 201 +1165545 218 +1165570 177 +1165577 502 +1165597 584 +1165607 337 +1165630 166 +1165652 187 +1165661 200 +1165672 192 +1165688 189 +1165697 180 +1165735 466 +1165743 199 +1165754 231 +1165757 199 +1165793 202 +1165809 187 +1165815 173 +1165816 187 +1165825 438 +1165840 232 +1165851 181 +1165859 190 +1165860 167 +1165874 203 +1165886 187 +1165891 184 +1165904 212 +1165921 199 +1165942 254 +1165956 472 +1165978 287 +1165999 255 +1166012 228 +1166018 182 +1166025 219 +1166034 281 +1166049 333 +1166073 357 +1166106 221 +1166135 603 +1166150 194 +1166157 189 +1166161 182 +1166172 186 +1166173 260 +1166180 192 +1166204 423 +1166205 193 +1166227 205 +1166237 187 +1166250 190 +1166258 258 +1166282 216 +1166314 116 +1166317 220 +1166325 185 +1166356 518 +1166360 200 +1166373 263 +1166381 244 +1166387 261 +1166389 204 +1166391 291 +1166421 187 +1166423 177 +1166443 527 +1166451 237 +1166456 207 +1166460 190 +1166483 275 +1166535 168 +1166538 402 +1166566 179 +1166568 211 +1166573 194 +1166575 447 +1166580 143 +1166585 195 +1166587 328 +1166608 239 +1166612 191 +1166625 181 +1166652 146 +1166654 371 +1166701 188 +1166720 271 +1166721 186 +1166730 199 +1166740 220 +1166757 215 +1166771 356 +1166791 176 +1166792 164 +1166840 187 +1166843 186 +1166850 579 +1166855 232 +1166889 204 +1166893 353 +1166894 364 +1166897 191 +1166913 202 +1166929 239 +1166944 190 +1166950 204 +1166957 176 +1166958 288 +1166978 198 +1166980 206 +1166984 179 +1166987 187 +1166996 187 +1167001 187 +1167008 294 +1167014 204 +1167022 150 +1167035 109 +1167053 203 +1167054 269 +1167057 218 +1167070 302 +1167076 203 +1167089 214 +1167104 213 +1167115 187 +1167127 187 +1167128 236 +1167143 581 +1167154 228 +1167158 156 +1167161 336 +1167162 519 +1167184 183 +1167187 543 +1167206 193 +1167215 434 +1167222 125 +1167237 187 +1167239 187 +1167241 211 +1167262 374 +1167272 219 +1167274 410 +1167286 195 +1167300 199 +1167303 167 +1167307 173 +1167320 268 +1167349 183 +1167355 193 +1167356 242 +1167369 232 +1167380 187 +1167401 207 +1167402 230 +1167420 264 +1167422 153 +1167426 176 +1167427 247 +1167437 239 +1167448 184 +1167459 433 +1167461 181 +1167462 199 +1167463 181 +1167471 199 +1167477 185 +1167485 174 +1167490 239 +1167492 322 +1167495 167 +1167499 225 +1167506 254 +1167511 190 +1167518 174 +1167528 194 +1167535 193 +1167539 187 +1167540 208 +1167554 200 +1167579 166 +1167583 232 +1167605 174 +1167615 234 +1167616 174 +1167618 168 +1167628 183 +1167635 206 +1167642 172 +1167651 219 +1167656 276 +1167658 425 +1167686 235 +1167694 202 +1167724 205 +1167734 299 +1167738 235 +1167741 373 +1167751 180 +1167762 193 +1167769 682 +1167777 217 +1167791 226 +1167797 192 +1167804 162 +1167814 194 +1167829 180 +1167830 193 +1167831 211 +1167837 368 +1167845 201 +1167857 265 +1167864 192 +1167873 283 +1167876 196 +1167895 175 +1167916 195 +1167921 219 +1167929 150 +1167930 357 +1167942 235 +1167954 202 +1167962 181 +1167965 248 +1167968 238 +1167988 220 +1167993 258 +1167996 185 +1168028 218 +1168030 270 +1168050 330 +1168064 175 +1168080 298 +1168092 172 +1168106 191 +1168111 215 +1168118 240 +1168123 227 +1168139 207 +1168148 611 +1168152 187 +1168179 216 +1168185 193 +1168187 196 +1168193 212 +1168198 197 +1168241 170 +1168250 518 +1168267 217 +1168273 309 +1168274 805 +1168278 184 +1168283 250 +1168292 180 +1168315 233 +1168322 330 +1168332 240 +1168344 296 +1168353 211 +1168363 273 +1168385 186 +1168391 206 +1168401 174 +1168410 231 +1168412 195 +1168425 193 +1168438 198 +1168442 193 +1168449 168 +1168511 288 +1168525 181 +1168530 287 +1168544 174 +1168547 262 +1168560 480 +1168570 150 +1168604 496 +1168616 586 +1168639 253 +1168644 187 +1168653 1024 +1168654 268 +1168683 187 +1168704 264 +1168707 180 +1168713 187 +1168714 219 +1168740 459 +1168761 284 +1168781 318 +1168813 180 +1168834 197 +1168838 243 +1168862 250 +1168867 183 +1168869 411 +1168870 244 +1168874 203 +1168876 313 +1168887 183 +1168889 247 +1168901 187 +1168906 246 +1168917 243 +1168924 215 +1168928 371 +1168940 180 +1168959 286 +1168970 159 +1168997 193 +1168998 335 +1169024 208 +1169043 186 +1169047 194 +1169065 217 +1169069 690 +1169076 325 +1169082 238 +1169084 174 +1169101 174 +1169104 181 +1169114 233 +1169124 213 +1169148 218 +1169154 220 +1169167 210 +1169173 186 +1169204 176 +1169205 192 +1169208 180 +1169213 225 +1169227 193 +1169246 221 +1169253 536 +1169256 666 +1169264 267 +1169267 207 +1169310 228 +1169312 281 +1169316 193 +1169325 265 +1169356 214 +1169382 254 +1169389 239 +1169391 435 +1169427 263 +1169429 246 +1169440 184 +1169454 187 +1169463 195 +1169475 177 +1169494 323 +1169507 298 +1169509 198 +1169512 246 +1169523 281 +1169525 223 +1169543 303 +1169578 295 +1169608 187 +1169624 184 +1169628 196 +1169637 180 +1169641 263 +1169646 299 +1169651 299 +1169655 392 +1169660 225 +1169693 177 +1169716 95 +1169719 159 +1169740 192 +1169744 180 +1169754 204 +1169758 241 +1169768 184 +1169769 187 +1169774 239 +1169796 256 +1169808 418 +1169810 332 +1169812 327 +1169821 320 +1169877 164 +1169881 257 +1169905 233 +1169915 178 +1169922 250 +1169923 195 +1169939 159 +1169944 179 +1169963 187 +1169992 334 +1170020 236 +1170042 254 +1170063 195 +1170064 228 +1170071 187 +1170080 217 +1170105 175 +1170129 258 +1170160 173 +1170161 211 +1170211 289 +1170212 149 +1170230 168 +1170235 202 +1170258 283 +1170268 250 +1170269 187 +1170278 228 +1170289 180 +1170299 166 +1170378 212 +1170409 309 +1170413 201 +1170417 190 +1170423 259 +1170425 202 +1170483 345 +1170493 229 +1170502 377 +1170507 221 +1170510 310 +1170517 224 +1170535 224 +1170539 169 +1170547 215 +1170551 236 +1170552 699 +1170567 322 +1170572 243 +1170573 233 +1170580 203 +1170581 561 +1170631 346 +1170633 193 +1170653 299 +1170659 175 +1170675 369 +1170689 196 +1170708 272 +1170713 193 +1170716 187 +1170730 193 +1170731 234 +1170740 200 +1170745 242 +1170752 249 +1170766 180 +1170776 174 +1170796 212 +1170835 181 +1170846 203 +1170852 238 +1170856 193 +1170910 192 +1170916 338 +1170917 191 +1170919 196 +1170921 262 +1170932 226 +1170937 186 +1170940 222 +1170942 279 +1170946 236 +1170947 179 +1171009 290 +1171028 199 +1171035 221 +1171043 175 +1171048 327 +1171061 177 +1171072 225 +1171073 288 +1171079 229 +1171114 268 +1171124 211 +1171142 97 +1171144 192 +1171145 150 +1171154 202 +1171177 491 +1171185 223 +1171190 208 +1171195 180 +1171198 193 +1171206 184 +1171217 205 +1171219 205 +1171226 384 +1171227 175 +1171228 181 +1171235 267 +1171249 181 +1171261 77 +1171273 175 +1171274 179 +1171282 188 +1171290 182 +1171303 206 +1171311 193 +1171315 243 +1171326 187 +1171334 299 +1171336 188 +1171339 186 +1171348 180 +1171350 180 +1171351 175 +1171358 181 +1171360 262 +1171379 419 +1171392 226 +1171400 295 +1171401 194 +1171402 178 +1171407 190 +1171422 139 +1171424 174 +1171439 260 +1171442 227 +1171443 189 +1171450 311 +1171452 253 +1171453 219 +1171464 143 +1171502 156 +1171511 192 +1171520 384 +1171530 320 +1171531 160 +1171534 183 +1171545 301 +1171552 199 +1171579 174 +1171586 256 +1171592 379 +1171596 187 +1171613 180 +1171615 369 +1171629 233 +1171642 199 +1171658 176 +1171672 178 +1171684 184 +1171690 196 +1171696 247 +1171699 201 +1171717 491 +1171720 299 +1171722 168 +1171732 187 +1171739 193 +1171750 208 +1171763 221 +1171767 198 +1171771 216 +1171780 183 +1171787 195 +1171793 281 +1171798 286 +1171806 215 +1171821 186 +1171827 174 +1171866 220 +1171882 173 +1171892 215 +1171909 252 +1171919 173 +1171936 363 +1171940 174 +1171950 312 +1171953 255 +1171991 236 +1171992 229 +1172012 193 +1172015 300 +1172017 204 +1172028 214 +1172029 181 +1172033 217 +1172041 230 +1172045 259 +1172046 189 +1172054 194 +1172055 266 +1172059 232 +1172071 216 +1172078 202 +1172080 210 +1172134 428 +1172136 274 +1172142 215 +1172150 340 +1172155 419 +1172156 238 +1172157 297 +1172181 303 +1172185 193 +1172204 452 +1172207 235 +1172220 181 +1172221 211 +1172249 206 +1172255 311 +1172258 188 +1172269 508 +1172271 211 +1172298 417 +1172311 202 +1172314 402 +1172329 274 +1172348 270 +1172351 310 +1172366 232 +1172377 193 +1172393 167 +1172401 211 +1172403 171 +1172405 221 +1172414 256 +1172425 220 +1172430 146 +1172431 301 +1172437 205 +1172439 209 +1172442 207 +1172444 503 +1172448 191 +1172451 249 +1172478 211 +1172479 262 +1172481 182 +1172495 196 +1172513 296 +1172517 181 +1172540 227 +1172560 187 +1172568 254 +1172570 212 +1172578 237 +1172590 285 +1172592 178 +1172605 168 +1172611 332 +1172617 220 +1172620 179 +1172636 191 +1172641 161 +1172646 169 +1172674 193 +1172708 197 +1172713 199 +1172722 265 +1172723 211 +1172724 193 +1172730 215 +1172758 316 +1172768 226 +1172769 171 +1172770 186 +1172801 362 +1172854 184 +1172886 214 +1172890 202 +1172898 183 +1172919 177 +1172923 211 +1172946 200 +1172948 174 +1172962 242 +1172968 255 +1172993 241 +1172996 208 +1172999 186 +1173008 278 +1173032 150 +1173039 199 +1173046 203 +1173056 217 +1173089 182 +1173091 211 +1173102 244 +1173135 225 +1173137 214 +1173155 187 +1173197 180 +1173206 184 +1173209 301 +1173213 400 +1173228 223 +1173234 156 +1173235 212 +1173261 177 +1173270 195 +1173282 217 +1173286 202 +1173288 244 +1173295 206 +1173319 398 +1173338 323 +1173348 202 +1173359 177 +1173360 186 +1173368 237 +1173375 251 +1173390 218 +1173397 216 +1173409 405 +1173419 382 +1173422 229 +1173424 193 +1173428 230 +1173433 232 +1173447 586 +1173458 169 +1173472 227 +1173493 143 +1173498 235 +1173502 135 +1173506 184 +1173518 223 +1173526 187 +1173547 175 +1173548 220 +1173559 251 +1173567 343 +1173575 521 +1173587 230 +1173619 180 +1173628 279 +1173635 206 +1173638 421 +1173654 292 +1173660 231 +1173666 254 +1173689 205 +1173702 176 +1173706 181 +1173709 159 +1173717 234 +1173722 190 +1173724 337 +1173731 212 +1173733 212 +1173740 334 +1173742 252 +1173744 211 +1173750 294 +1173774 174 +1173776 184 +1173789 375 +1173809 171 +1173810 203 +1173813 207 +1173827 186 +1173849 230 +1173858 177 +1173865 174 +1173866 204 +1173904 180 +1173923 219 +1173962 583 +1173976 180 +1173977 244 +1173994 183 +1174010 174 +1174011 187 +1174019 625 +1174020 226 +1174021 437 +1174057 220 +1174059 227 +1174061 78 +1174063 241 +1174070 187 +1174098 199 +1174101 450 +1174104 238 +1174111 209 +1174116 186 +1174122 323 +1174137 196 +1174149 228 +1174182 190 +1174186 175 +1174195 193 +1174198 312 +1174209 219 +1174213 228 +1174234 353 +1174250 264 +1174267 394 +1174268 232 +1174285 176 +1174287 349 +1174289 196 +1174293 128 +1174308 246 +1174312 298 +1174320 227 +1174322 175 +1174327 226 +1174329 197 +1174330 223 +1174332 230 +1174348 180 +1174356 165 +1174358 246 +1174359 195 +1174365 220 +1174366 252 +1174368 187 +1174369 511 +1174370 191 +1174392 181 +1174404 272 +1174423 220 +1174425 238 +1174427 170 +1174457 316 +1174460 229 +1174468 431 +1174469 180 +1174475 236 +1174477 225 +1174478 141 +1174482 171 +1174483 202 +1174485 195 +1174504 178 +1174509 180 +1174510 209 +1174524 233 +1174531 196 +1174538 186 +1174548 159 +1174555 165 +1174569 199 +1174570 479 +1174581 195 +1174605 198 +1174619 146 +1174628 291 +1174677 464 +1174696 208 +1174710 210 +1174717 180 +1174725 193 +1174751 179 +1174765 425 +1174769 164 +1174794 226 +1174814 206 +1174821 177 +1174837 236 +1174860 208 +1174878 505 +1174918 184 +1174929 532 +1174937 321 +1174945 380 +1174958 241 +1174977 240 +1174987 381 +1174993 248 +1174994 352 +1174997 515 +1175008 187 +1175027 186 +1175029 174 +1175043 190 +1175048 184 +1175053 208 +1175056 186 +1175078 235 +1175082 181 +1175089 184 +1175096 177 +1175118 262 +1175119 472 +1175132 258 +1175138 173 +1175140 251 +1175156 232 +1175161 227 +1175163 211 +1175172 529 +1175181 335 +1175182 244 +1175185 198 +1175191 199 +1175193 178 +1175197 336 +1175206 264 +1175213 397 +1175233 121 +1175248 722 +1175255 166 +1175256 217 +1175262 174 +1175263 246 +1175265 184 +1175268 170 +1175276 193 +1175293 444 +1175294 190 +1175311 323 +1175313 352 +1175316 313 +1175324 192 +1175358 196 +1175361 546 +1175373 267 +1175382 274 +1175396 155 +1175403 198 +1175408 195 +1175413 241 +1175417 240 +1175425 264 +1175436 210 +1175442 313 +1175450 276 +1175460 136 +1175466 180 +1175473 238 +1175498 255 +1175510 391 +1175525 181 +1175526 266 +1175531 182 +1175535 220 +1175549 193 +1175553 199 +1175557 224 +1175578 305 +1175583 248 +1175584 193 +1175588 336 +1175594 349 +1175599 208 +1175607 193 +1175610 212 +1175612 185 +1175624 205 +1175626 208 +1175632 447 +1175633 243 +1175636 196 +1175642 201 +1175643 187 +1175652 277 +1175676 193 +1175698 220 +1175703 191 +1175707 680 +1175722 211 +1175757 266 +1175759 400 +1175762 438 +1175767 187 +1175785 181 +1175790 195 +1175792 192 +1175800 178 +1175802 232 +1175803 212 +1175807 173 +1175809 331 +1175814 196 +1175816 363 +1175818 187 +1175822 200 +1175829 143 +1175831 234 +1175833 441 +1175835 315 +1175844 230 +1175845 187 +1175858 172 +1175860 196 +1175864 111 +1175871 221 +1175874 228 +1175875 211 +1175885 207 +1175887 221 +1175899 257 +1175918 199 +1175933 181 +1175937 260 +1175953 387 +1175966 311 +1175998 186 +1176001 215 +1176008 301 +1176010 279 +1176014 325 +1176022 194 +1176030 190 +1176040 205 +1176050 174 +1176053 187 +1176054 297 +1176057 193 +1176058 279 +1176074 223 +1176088 180 +1176095 306 +1176097 181 +1176100 195 +1176114 258 +1176120 196 +1176149 211 +1176154 273 +1176163 202 +1176183 181 +1176191 193 +1176212 280 +1176219 192 +1176224 232 +1176232 247 +1176243 281 +1176250 254 +1176251 210 +1176254 166 +1176260 196 +1176291 202 +1176296 187 +1176311 228 +1176313 274 +1176316 384 +1176331 294 +1176342 344 +1176359 296 +1176360 238 +1176368 331 +1176376 226 +1176382 184 +1176386 241 +1176390 187 +1176395 80 +1176396 187 +1176404 233 +1176408 239 +1176410 190 +1176414 225 +1176418 239 +1176423 177 +1176426 289 +1176430 187 +1176432 193 +1176438 190 +1176443 540 +1176463 224 +1176467 187 +1176474 202 +1176477 168 +1176482 186 +1176489 231 +1176495 291 +1176508 186 +1176519 224 +1176523 219 +1176548 211 +1176551 365 +1176570 205 +1176575 265 +1176582 186 +1176584 218 +1176590 169 +1176598 301 +1176606 203 +1176610 188 +1176611 259 +1176641 498 +1176642 227 +1176647 207 +1176655 235 +1176672 229 +1176677 293 +1176679 200 +1176681 253 +1176682 180 +1176683 236 +1176685 291 +1176686 274 +1176689 283 +1176694 179 +1176696 342 +1176700 421 +1176703 377 +1176713 201 +1176729 195 +1176738 204 +1176745 228 +1176746 190 +1176749 279 +1176758 205 +1176763 235 +1176783 297 +1176790 171 +1176794 317 +1176795 183 +1176804 212 +1176806 283 +1176807 165 +1176809 186 +1176813 163 +1176816 269 +1176825 168 +1176832 244 +1176846 187 +1176860 192 +1176885 247 +1176889 179 +1176901 194 +1176916 233 +1176929 210 +1176936 269 +1176938 203 +1176939 255 +1176954 199 +1176958 254 +1176960 212 +1176974 198 +1176976 239 +1176988 187 +1176989 186 +1177023 323 +1177028 202 +1177044 226 +1177047 193 +1177050 252 +1177056 245 +1177057 512 +1177071 278 +1177076 211 +1177092 195 +1177099 472 +1177100 213 +1177103 160 +1177104 231 +1177114 187 +1177129 174 +1177137 187 +1177145 187 +1177150 219 +1177151 195 +1177160 180 +1177174 199 +1177175 265 +1177191 181 +1177198 143 +1177199 235 +1177200 318 +1177203 226 +1177215 252 +1177216 272 +1177222 219 +1177228 210 +1177232 187 +1177234 210 +1177243 199 +1177248 239 +1177257 196 +1177262 166 +1177269 206 +1177273 257 +1177274 225 +1177275 247 +1177280 208 +1177283 187 +1177288 430 +1177289 180 +1177295 199 +1177304 161 +1177307 159 +1177315 474 +1177316 441 +1177320 205 +1177329 160 +1177330 388 +1177339 246 +1177350 137 +1177377 401 +1177381 221 +1177388 232 +1177389 189 +1177398 244 +1177409 256 +1177413 220 +1177414 233 +1177422 159 +1177425 222 +1177435 320 +1177454 227 +1177495 181 +1177505 263 +1177508 258 +1177533 170 +1177535 234 +1177544 202 +1177545 193 +1177551 367 +1177568 161 +1177573 233 +1177576 187 +1177592 406 +1177595 248 +1177596 190 +1177624 285 +1177625 214 +1177626 202 +1177650 199 +1177665 186 +1177668 437 +1177672 238 +1177673 192 +1177693 215 +1177695 180 +1177707 218 +1177710 194 +1177717 272 +1177719 276 +1177729 360 +1177734 389 +1177751 182 +1177752 432 +1177753 266 +1177764 284 +1177775 199 +1177776 183 +1177781 228 +1177785 227 +1177792 501 +1177830 251 +1177833 213 +1177834 184 +1177863 195 +1177886 318 +1177890 214 +1177893 647 +1177919 199 +1177930 295 +1177948 199 +1177978 480 +1177994 403 +1177997 181 +1178014 276 +1178017 226 +1178019 115 +1178028 392 +1178032 193 +1178063 187 +1178070 237 +1178095 177 +1178105 191 +1178107 242 +1178109 233 +1178143 171 +1178152 234 +1178154 208 +1178158 162 +1178161 220 +1178167 238 +1178170 255 +1178177 173 +1178179 155 +1178217 269 +1178229 296 +1178230 219 +1178236 145 +1178255 193 +1178265 195 +1178276 218 +1178283 184 +1178320 173 +1178339 170 +1178344 213 +1178356 180 +1178384 162 +1178392 190 +1178393 180 +1178407 209 +1178438 184 +1178443 199 +1178449 352 +1178471 187 +1178474 629 +1178493 161 +1178500 205 +1178509 228 +1178519 194 +1178528 218 +1178555 227 +1178586 149 +1178606 186 +1178609 259 +1178615 207 +1178625 229 +1178626 210 +1178628 185 +1178641 184 +1178654 199 +1178672 170 +1178756 469 +1178767 245 +1178810 265 +1178811 164 +1178833 188 +1178860 213 +1178890 180 +1178901 199 +1178916 237 +1178920 213 +1178937 186 +1178946 137 +1178966 423 +1178979 179 +1178989 241 +1178996 239 +1179015 225 +1179072 394 +1179093 187 +1179100 244 +1179110 327 +1179138 181 +1179145 207 +1179146 147 +1179152 187 +1179167 220 +1179170 205 +1179171 174 +1179184 193 +1179185 198 +1179186 179 +1179187 183 +1179190 180 +1179192 183 +1179202 612 +1179205 180 +1179223 295 +1179229 200 +1179251 220 +1179252 231 +1179269 192 +1179296 221 +1179297 147 +1179311 211 +1179314 302 +1179324 199 +1179341 182 +1179355 198 +1179380 243 +1179423 281 +1179430 199 +1179442 198 +1179453 187 +1179455 258 +1179476 260 +1179482 255 +1179486 186 +1179489 187 +1179504 202 +1179506 193 +1179509 313 +1179510 171 +1179513 226 +1179520 207 +1179523 192 +1179541 209 +1179551 182 +1179568 154 +1179577 71 +1179580 177 +1179603 205 +1179607 311 +1179621 228 +1179623 193 +1179625 190 +1179632 217 +1179634 193 +1179639 174 +1179641 224 +1179645 187 +1179647 174 +1179651 621 +1179664 271 +1179672 208 +1179682 190 +1179687 367 +1179691 183 +1179693 201 +1179696 321 +1179697 188 +1179700 262 +1179711 228 +1179726 194 +1179735 175 +1179738 211 +1179741 223 +1179746 196 +1179749 144 +1179756 273 +1179759 208 +1179764 181 +1179770 215 +1179771 192 +1179772 196 +1179787 208 +1179798 184 +1179801 202 +1179806 193 +1179809 205 +1179813 294 +1179818 116 +1179833 201 +1179846 234 +1179855 220 +1179879 202 +1179888 338 +1179900 202 +1179913 180 +1179923 155 +1179932 201 +1179956 300 +1179957 193 +1179967 196 +1179987 227 +1179988 190 +1179995 143 +1180008 174 +1180041 241 +1180052 203 +1180061 252 +1180062 327 +1180076 193 +1180081 244 +1180123 213 +1180142 268 +1180158 191 +1180159 256 +1180192 175 +1180211 184 +1180224 163 +1180227 221 +1180276 235 +1180292 191 +1180310 336 +1180312 291 +1180335 210 +1180375 174 +1180379 199 +1180391 311 +1180431 199 +1180465 348 +1180475 181 +1180481 210 +1180499 181 +1180523 183 +1180539 258 +1180552 167 +1180568 196 +1180576 172 +1180585 242 +1180602 190 +1180604 187 +1180611 196 +1180621 213 +1180625 168 +1180631 168 +1180644 143 +1180649 199 +1180662 158 +1180663 320 +1180686 513 +1180696 196 +1180705 203 +1180722 211 +1180725 322 +1180734 193 +1180737 216 +1180739 168 +1180789 364 +1180804 210 +1180811 428 +1180814 277 +1180822 204 +1180853 212 +1180861 377 +1180862 218 +1180882 194 +1180890 320 +1180915 97 +1180955 210 +1180959 187 +1180961 169 +1180966 187 +1180986 205 +1180990 198 +1181011 229 +1181015 203 +1181020 145 +1181024 156 +1181031 315 +1181042 229 +1181043 194 +1181046 190 +1181049 270 +1181050 228 +1181067 223 +1181073 421 +1181074 343 +1181089 176 +1181091 434 +1181094 361 +1181095 199 +1181102 187 +1181134 584 +1181143 298 +1181146 230 +1181165 193 +1181167 231 +1181168 202 +1181179 189 +1181181 181 +1181187 191 +1181189 337 +1181192 215 +1181201 478 +1181206 221 +1181211 420 +1181224 201 +1181232 291 +1181237 329 +1181251 199 +1181255 180 +1181262 206 +1181270 180 +1181291 220 +1181304 221 +1181315 215 +1181319 303 +1181328 300 +1181348 178 +1181371 224 +1181388 226 +1181418 258 +1181419 156 +1181436 198 +1181444 177 +1181445 171 +1181454 246 +1181468 236 +1181480 186 +1181512 472 +1181554 156 +1181557 217 +1181580 174 +1181604 180 +1181627 213 +1181641 184 +1181648 231 +1181663 439 +1181664 180 +1181694 184 +1181696 181 +1181699 174 +1181702 296 +1181709 192 +1181724 231 +1181744 289 +1181768 241 +1181772 223 +1181773 250 +1181777 199 +1181796 181 +1181812 196 +1181822 216 +1181830 206 +1181867 185 +1181880 214 +1181912 281 +1181916 493 +1181924 205 +1181927 196 +1181928 181 +1181964 177 +1181991 334 +1181992 180 +1182006 217 +1182019 186 +1182022 228 +1182033 208 +1182035 214 +1182038 239 +1182094 228 +1182098 218 +1182100 214 +1182122 187 +1182125 362 +1182143 286 +1182145 486 +1182158 192 +1182162 193 +1182190 236 +1182198 187 +1182259 221 +1182269 175 +1182270 206 +1182273 179 +1182279 187 +1182295 178 +1182304 211 +1182311 289 +1182315 293 +1182343 192 +1182367 208 +1182368 193 +1182394 190 +1182401 211 +1182406 180 +1182413 224 +1182430 244 +1182438 183 +1182441 303 +1182449 167 +1182454 338 +1182468 299 +1182485 193 +1182487 264 +1182507 243 +1182514 240 +1182519 170 +1182522 210 +1182560 211 +1182567 180 +1182571 193 +1182583 199 +1182584 190 +1182590 311 +1182623 194 +1182636 263 +1182640 190 +1182659 186 +1182676 188 +1182683 174 +1182694 147 +1182695 180 +1182697 197 +1182704 195 +1182705 241 +1182715 180 +1182728 224 +1182733 175 +1182741 188 +1182746 197 +1182748 208 +1182760 407 +1182772 186 +1182784 189 +1182785 387 +1182792 187 +1182793 177 +1182808 481 +1182813 199 +1182842 239 +1182847 288 +1182848 190 +1182850 171 +1182857 199 +1182891 202 +1182895 209 +1182902 167 +1182915 215 +1182918 180 +1182920 202 +1182921 181 +1182928 233 +1182933 187 +1182944 199 +1182953 193 +1182983 187 +1182988 182 +1182992 174 +1182997 221 +1183004 147 +1183009 348 +1183013 172 +1183041 244 +1183053 234 +1183055 270 +1183065 287 +1183078 203 +1183080 204 +1183081 174 +1183091 195 +1183100 187 +1183117 258 +1183135 184 +1183149 433 +1183150 227 +1183162 232 +1183169 205 +1183170 173 +1183172 204 +1183175 273 +1183186 176 +1183189 143 +1183198 184 +1183201 208 +1183208 220 +1183223 160 +1183228 332 +1183236 199 +1183238 183 +1183242 248 +1183244 196 +1183250 288 +1183267 246 +1183283 203 +1183295 406 +1183300 199 +1183303 197 +1183309 187 +1183322 232 +1183333 187 +1183337 190 +1183338 276 +1183339 224 +1183373 535 +1183377 187 +1183382 201 +1183384 161 +1183401 434 +1183416 312 +1183422 323 +1183425 174 +1183444 257 +1183450 197 +1183458 317 +1183471 196 +1183473 205 +1183476 190 +1183484 181 +1183485 199 +1183486 305 +1183494 290 +1183496 432 +1183500 199 +1183511 229 +1183514 193 +1183516 220 +1183531 198 +1183532 214 +1183540 311 +1183547 330 +1183552 214 +1183553 201 +1183563 283 +1183570 332 +1183575 198 +1183578 193 +1183581 463 +1183584 178 +1183596 410 +1183606 251 +1183613 177 +1183622 227 +1183625 199 +1183635 210 +1183645 372 +1183689 238 +1183706 152 +1183712 202 +1183725 227 +1183730 344 +1183734 214 +1183745 253 +1183764 200 +1183782 172 +1183787 240 +1183794 178 +1183819 169 +1183831 581 +1183832 200 +1183857 372 +1183863 177 +1183874 206 +1183883 187 +1183890 181 +1183893 195 +1183895 254 +1183898 256 +1183912 186 +1183944 564 +1183946 175 +1183955 174 +1183958 235 +1183971 180 +1183972 316 +1183984 170 +1184011 181 +1184021 248 +1184023 281 +1184038 526 +1184044 233 +1184047 164 +1184082 304 +1184085 199 +1184088 220 +1184096 355 +1184098 172 +1184106 223 +1184114 483 +1184115 217 +1184116 202 +1184124 288 +1184146 187 +1184152 228 +1184160 200 +1184171 360 +1184173 308 +1184180 409 +1184197 195 +1184202 180 +1184217 233 +1184227 183 +1184267 201 +1184291 276 +1184293 359 +1184296 170 +1184317 214 +1184319 168 +1184335 157 +1184375 177 +1184378 272 +1184395 187 +1184407 246 +1184416 186 +1184419 266 +1184434 186 +1184436 231 +1184474 227 +1184487 189 +1184497 329 +1184503 190 +1184560 226 +1184589 201 +1184597 190 +1184600 278 +1184608 311 +1184609 181 +1184614 224 +1184634 254 +1184653 304 +1184658 184 +1184693 187 +1184701 220 +1184704 472 +1184787 200 +1184802 336 +1184806 187 +1184821 196 +1184823 181 +1184838 257 +1184848 184 +1184875 291 +1184880 433 +1184885 223 +1184888 323 +1184891 216 +1184896 184 +1184899 539 +1184907 196 +1184912 199 +1184942 207 +1184945 210 +1184954 197 +1184958 222 +1184964 167 +1184966 272 +1184997 208 +1185011 186 +1185029 168 +1185041 259 +1185042 188 +1185065 213 +1185070 268 +1185086 274 +1185087 190 +1185091 222 +1185094 174 +1185096 144 +1185111 207 +1185131 151 +1185165 190 +1185169 202 +1185188 352 +1185199 172 +1185200 149 +1185202 198 +1185207 186 +1185210 208 +1185217 581 +1185223 345 +1185227 162 +1185259 180 +1185261 355 +1185266 195 +1185280 196 +1185281 270 +1185286 167 +1185289 189 +1185293 207 +1185303 314 +1185324 322 +1185327 267 +1185329 182 +1185348 219 +1185368 180 +1185374 248 +1185375 363 +1185379 259 +1185380 377 +1185381 180 +1185390 330 +1185404 215 +1185413 44 +1185418 212 +1185446 167 +1185456 174 +1185470 263 +1185485 200 +1185501 180 +1185517 258 +1185524 193 +1185527 226 +1185529 269 +1185532 431 +1185561 177 +1185566 185 +1185585 217 +1185587 246 +1185602 311 +1185623 168 +1185628 228 +1185644 222 +1185664 260 +1185680 254 +1185681 259 +1185691 194 +1185713 199 +1185715 205 +1185718 176 +1185734 196 +1185763 177 +1185766 294 +1185771 249 +1185809 203 +1185812 289 +1185819 197 +1185862 311 +1185880 458 +1185899 193 +1185918 180 +1185940 186 +1185950 147 +1185956 181 +1185965 223 +1185983 159 +1185992 325 +1186013 196 +1186015 385 +1186017 210 +1186040 287 +1186043 202 +1186044 322 +1186058 252 +1186064 198 +1186071 293 +1186072 170 +1186095 219 +1186103 187 +1186106 261 +1186130 205 +1186136 214 +1186142 261 +1186161 181 +1186165 212 +1186180 234 +1186182 336 +1186187 170 +1186188 193 +1186195 497 +1186210 174 +1186213 215 +1186217 146 +1186230 243 +1186255 184 +1186261 242 +1186263 231 +1186265 239 +1186268 202 +1186274 161 +1186296 376 +1186298 199 +1186305 189 +1186306 296 +1186309 179 +1186312 198 +1186313 600 +1186315 200 +1186316 255 +1186323 375 +1186325 190 +1186328 200 +1186331 220 +1186351 183 +1186352 184 +1186355 374 +1186361 182 +1186367 209 +1186406 222 +1186418 196 +1186421 223 +1186432 217 +1186439 185 +1186448 187 +1186461 205 +1186464 181 +1186465 183 +1186483 199 +1186486 195 +1186488 191 +1186501 238 +1186511 174 +1186519 193 +1186521 374 +1186527 482 +1186541 169 +1186565 229 +1186571 322 +1186590 236 +1186593 184 +1186598 226 +1186601 182 +1186609 175 +1186611 193 +1186630 142 +1186642 187 +1186644 153 +1186649 203 +1186657 183 +1186663 252 +1186666 355 +1186687 358 +1186704 90 +1186705 181 +1186710 177 +1186716 180 +1186749 259 +1186759 210 +1186760 218 +1186772 236 +1186774 507 +1186799 227 +1186811 249 +1186814 215 +1186818 322 +1186838 179 +1186839 171 +1186845 187 +1186859 323 +1186860 188 +1186863 287 +1186866 230 +1186873 235 +1186874 177 +1186875 189 +1186876 434 +1186899 318 +1186901 478 +1186948 181 +1186950 310 +1186953 382 +1186975 269 +1186980 221 +1186997 187 +1187002 217 +1187009 174 +1187033 266 +1187039 177 +1187040 298 +1187042 191 +1187056 237 +1187062 393 +1187063 194 +1187071 235 +1187074 196 +1187093 157 +1187095 173 +1187099 187 +1187110 181 +1187115 214 +1187126 181 +1187131 542 +1187141 184 +1187145 192 +1187164 199 +1187187 183 +1187191 183 +1187195 193 +1187198 231 +1187199 230 +1187200 239 +1187208 236 +1187212 173 +1187241 213 +1187242 227 +1187252 254 +1187253 188 +1187263 161 +1187288 228 +1187291 230 +1187309 232 +1187310 418 +1187312 259 +1187322 233 +1187325 243 +1187328 222 +1187337 193 +1187344 158 +1187345 242 +1187348 213 +1187359 196 +1187370 252 +1187374 193 +1187376 192 +1187386 263 +1187392 169 +1187394 292 +1187399 182 +1187409 282 +1187429 315 +1187451 219 +1187456 222 +1187470 195 +1187473 256 +1187476 413 +1187498 245 +1187507 188 +1187510 176 +1187513 262 +1187516 181 +1187517 407 +1187524 180 +1187529 220 +1187531 213 +1187538 263 +1187540 206 +1187565 174 +1187574 256 +1187594 185 +1187596 335 +1187599 232 +1187604 204 +1187605 180 +1187614 179 +1187616 300 +1187621 208 +1187623 246 +1187627 199 +1187638 342 +1187651 233 +1187663 268 +1187664 193 +1187665 190 +1187678 181 +1187712 227 +1187718 180 +1187719 517 +1187725 181 +1187743 192 +1187752 271 +1187771 220 +1187777 187 +1187793 100 +1187797 219 +1187802 226 +1187805 207 +1187809 189 +1187825 186 +1187826 226 +1187839 453 +1187842 247 +1187847 174 +1187851 194 +1187862 196 +1187887 178 +1187900 179 +1187913 230 +1187931 166 +1187933 227 +1187953 205 +1187954 235 +1187968 261 +1187979 186 +1187982 263 +1187992 196 +1187993 192 +1187994 298 +1187998 174 +1188004 186 +1188010 385 +1188015 199 +1188047 306 +1188051 281 +1188069 211 +1188073 279 +1188101 218 +1188116 250 +1188117 187 +1188123 183 +1188127 235 +1188136 248 +1188140 218 +1188143 221 +1188145 226 +1188150 201 +1188153 230 +1188167 195 +1188185 243 +1188186 550 +1188198 364 +1188201 283 +1188202 209 +1188215 269 +1188220 187 +1188224 174 +1188230 252 +1188255 206 +1188266 223 +1188273 293 +1188286 193 +1188288 338 +1188290 217 +1188297 317 +1188298 205 +1188304 236 +1188306 140 +1188308 187 +1188348 176 +1188350 208 +1188351 212 +1188365 280 +1188375 211 +1188391 192 +1188407 543 +1188413 232 +1188423 197 +1188433 213 +1188437 174 +1188440 210 +1188455 196 +1188456 204 +1188461 212 +1188472 189 +1188475 178 +1188479 224 +1188489 187 +1188515 258 +1188516 232 +1188528 179 +1188551 187 +1188557 189 +1188571 317 +1188595 274 +1188625 118 +1188638 362 +1188655 191 +1188658 242 +1188696 254 +1188709 220 +1188712 187 +1188716 271 +1188734 199 +1188746 147 +1188750 421 +1188751 184 +1188767 187 +1188775 234 +1188776 224 +1188791 524 +1188793 189 +1188801 204 +1188811 253 +1188812 193 +1188814 187 +1188838 182 +1188842 267 +1188852 180 +1188855 163 +1188871 242 +1188889 328 +1188901 208 +1188918 218 +1188922 187 +1188927 194 +1188937 186 +1188938 161 +1188948 260 +1188949 174 +1188962 319 +1188966 213 +1188971 193 +1188973 190 +1188977 333 +1188990 172 +1188992 249 +1189007 236 +1189017 308 +1189021 185 +1189039 196 +1189046 297 +1189094 191 +1189099 215 +1189130 243 +1189199 175 +1189201 199 +1189208 222 +1189228 263 +1189234 205 +1189240 205 +1189243 192 +1189247 186 +1189249 180 +1189252 219 +1189269 334 +1189288 235 +1189294 568 +1189310 229 +1189315 210 +1189322 175 +1189340 177 +1189365 256 +1189383 253 +1189396 270 +1189404 208 +1189413 421 +1189443 217 +1189448 244 +1189471 193 +1189473 204 +1189476 192 +1189479 211 +1189483 268 +1189484 241 +1189488 190 +1189491 189 +1189503 218 +1189516 187 +1189557 193 +1189575 376 +1189593 192 +1189595 185 +1189613 213 +1189617 196 +1189625 265 +1189639 319 +1189646 211 +1189660 263 +1189663 194 +1189670 420 +1189678 219 +1189683 174 +1189687 186 +1189695 182 +1189700 214 +1189734 177 +1189740 306 +1189772 213 +1189793 192 +1189804 180 +1189840 226 +1189853 335 +1189873 187 +1189875 217 +1189891 313 +1189896 167 +1189900 187 +1189918 204 +1189928 348 +1189946 345 +1189952 196 +1189960 191 +1189975 478 +1190028 193 +1190036 258 +1190048 203 +1190070 230 +1190096 186 +1190106 256 +1190113 179 +1190139 244 +1190154 198 +1190170 214 +1190179 215 +1190180 212 +1190213 209 +1190235 301 +1190269 180 +1190274 197 +1190278 187 +1190326 187 +1190341 233 +1190353 180 +1190397 195 +1190398 218 +1190460 215 +1190515 213 +1190525 199 +1190558 198 +1190671 156 +1190709 170 +1190729 218 +1190792 288 +1190801 677 +1190846 212 +1190872 196 +1190893 186 +1190897 190 +1190935 174 +1190936 204 +1190946 210 +1190966 242 +1190974 252 +1191044 417 +1191087 185 +1191123 198 +1191144 185 +1191147 910 +1191248 353 +1191265 228 +1191339 156 +1191351 362 +1191359 259 +1191365 410 +1191367 343 +1191372 174 +1191379 192 +1191381 177 +1191391 217 +1191394 181 +1191406 217 +1191425 197 +1191430 200 +1191438 395 +1191442 190 +1191456 239 +1191459 211 +1191465 190 +1191478 181 +1191490 382 +1191492 186 +1191499 498 +1191500 183 +1191505 180 +1191510 173 +1191512 177 +1191521 277 +1191550 171 +1191594 220 +1191636 199 +1191644 190 +1191645 502 +1191673 201 +1191677 174 +1191678 384 +1191688 211 +1191696 213 +1191698 319 +1191716 229 +1191740 178 +1191743 309 +1191746 356 +1191747 338 +1191748 193 +1191757 339 +1191777 332 +1191787 259 +1191792 224 +1191816 174 +1191820 299 +1191823 243 +1191824 182 +1191826 205 +1191842 149 +1191844 209 +1191859 213 +1191874 183 +1191889 193 +1191895 393 +1191910 305 +1191916 205 +1191924 287 +1191925 199 +1191929 202 +1191945 213 +1191948 191 +1191950 285 +1191957 177 +1191961 264 +1191964 190 +1191967 189 +1191975 180 +1191995 229 +1191997 223 +1192006 212 +1192036 273 +1192038 330 +1192041 222 +1192045 189 +1192059 419 +1192064 288 +1192067 199 +1192076 203 +1192079 221 +1192088 192 +1192098 217 +1192099 229 +1192121 256 +1192143 230 +1192147 239 +1192149 156 +1192151 216 +1192152 237 +1192179 187 +1192193 278 +1192194 241 +1192205 356 +1192214 339 +1192242 186 +1192257 183 +1192266 190 +1192272 220 +1192276 187 +1192280 211 +1192281 214 +1192290 174 +1192296 378 +1192308 181 +1192325 403 +1192340 232 +1192361 231 +1192364 193 +1192385 199 +1192388 338 +1192400 259 +1192405 183 +1192415 265 +1192442 310 +1192461 186 +1192511 429 +1192517 251 +1192519 150 +1192529 216 +1192537 229 +1192556 180 +1192559 240 +1192566 187 +1192579 291 +1192581 214 +1192607 359 +1192610 187 +1192637 216 +1192641 222 +1192689 219 +1192698 246 +1192705 232 +1192706 392 +1192740 209 +1192742 287 +1192747 214 +1192749 335 +1192751 284 +1192771 190 +1192787 346 +1192799 217 +1192821 231 +1192831 187 +1192833 196 +1192834 265 +1192855 247 +1192871 307 +1192906 160 +1192922 178 +1192927 409 +1192932 300 +1192948 429 +1192974 225 +1192980 231 +1193001 199 +1193016 450 +1193037 266 +1193061 233 +1193076 181 +1193087 187 +1193155 290 +1193184 119 +1193189 200 +1193198 201 +1193228 192 +1193230 209 +1193231 178 +1193242 195 +1193256 202 +1193264 168 +1193269 183 +1193272 296 +1193285 304 +1193294 569 +1193315 192 +1193328 173 +1193330 208 +1193352 172 +1193353 266 +1193366 223 +1193370 189 +1193379 193 +1193386 138 +1193399 204 +1193400 430 +1193405 312 +1193417 251 +1193424 199 +1193450 222 +1193463 266 +1193477 187 +1193478 249 +1193486 217 +1193503 303 +1193512 332 +1193525 222 +1193540 447 +1193556 113 +1193565 264 +1193568 199 +1193575 213 +1193585 173 +1193589 390 +1193596 237 +1193601 184 +1193602 296 +1193617 356 +1193628 196 +1193630 193 +1193636 232 +1193645 300 +1193649 198 +1193652 193 +1193665 214 +1193676 187 +1193691 193 +1193715 371 +1193717 181 +1193729 178 +1193733 334 +1193741 192 +1193742 74 +1193743 234 +1193761 177 +1193762 248 +1193769 196 +1193799 212 +1193801 206 +1193816 219 +1193818 224 +1193826 217 +1193834 344 +1193835 223 +1193860 296 +1193864 487 +1193871 207 +1193874 187 +1193921 515 +1193923 375 +1193934 193 +1193937 273 +1193938 205 +1193942 269 +1193971 210 +1193974 219 +1193978 183 +1193979 181 +1193997 287 +1194031 306 +1194047 220 +1194048 210 +1194049 162 +1194052 149 +1194058 185 +1194059 223 +1194064 139 +1194072 244 +1194080 1916 +1194084 280 +1194093 187 +1194111 288 +1194119 169 +1194124 180 +1194136 358 +1194137 235 +1194138 216 +1194152 149 +1194155 178 +1194157 173 +1194164 155 +1194181 190 +1194208 433 +1194209 210 +1194219 215 +1194222 178 +1194228 184 +1194229 236 +1194234 246 +1194244 223 +1194252 190 +1194269 317 +1194271 168 +1194275 234 +1194278 198 +1194285 284 +1194306 238 +1194320 203 +1194326 177 +1194335 186 +1194344 192 +1194350 202 +1194351 179 +1194358 174 +1194360 197 +1194369 214 +1194370 209 +1194378 199 +1194382 419 +1194387 226 +1194405 246 +1194410 195 +1194422 300 +1194433 178 +1194442 226 +1194463 165 +1194476 178 +1194478 193 +1194489 187 +1194499 191 +1194528 323 +1194530 189 +1194534 196 +1194537 272 +1194545 251 +1194546 246 +1194569 205 +1194605 170 +1194609 465 +1194625 174 +1194630 251 +1194636 251 +1194643 190 +1194644 313 +1194646 257 +1194654 177 +1194656 208 +1194657 212 +1194668 140 +1194678 201 +1194686 146 +1194687 244 +1194707 215 +1194719 201 +1194728 250 +1194731 185 +1194733 420 +1194741 228 +1194743 394 +1194754 205 +1194785 124 +1194786 244 +1194798 311 +1194806 170 +1194810 216 +1194815 187 +1194820 221 +1194831 170 +1194833 196 +1194840 262 +1194850 214 +1194866 171 +1194869 195 +1194893 208 +1194898 210 +1194912 174 +1194928 278 +1194936 208 +1194940 189 +1194977 180 +1194979 340 +1194987 196 +1194998 300 +1195003 191 +1195005 204 +1195020 206 +1195058 205 +1195063 212 +1195068 186 +1195069 290 +1195082 264 +1195157 250 +1195164 199 +1195185 237 +1195200 174 +1195210 199 +1195211 246 +1195223 466 +1195229 222 +1195231 193 +1195246 241 +1195252 502 +1195258 211 +1195261 224 +1195273 192 +1195276 244 +1195284 238 +1195296 187 +1195297 150 +1195319 371 +1195331 237 +1195338 748 +1195339 301 +1195346 212 +1195348 222 +1195378 393 +1195380 181 +1195384 248 +1195397 219 +1195404 191 +1195405 236 +1195411 160 +1195413 180 +1195426 251 +1195437 288 +1195443 449 +1195447 289 +1195450 217 +1195476 174 +1195488 342 +1195522 208 +1195532 208 +1195573 260 +1195592 193 +1195593 193 +1195603 363 +1195614 181 +1195625 197 +1195632 177 +1195640 186 +1195651 235 +1195669 222 +1195672 183 +1195676 462 +1195680 193 +1195692 187 +1195699 611 +1195701 232 +1195724 300 +1195727 212 +1195736 180 +1195757 249 +1195762 173 +1195768 182 +1195769 178 +1195774 400 +1195797 208 +1195809 280 +1195810 189 +1195841 212 +1195865 203 +1195879 256 +1195902 375 +1195903 223 +1195909 229 +1195916 293 +1195922 186 +1195941 197 +1196011 240 +1196012 220 +1196016 418 +1196020 234 +1196029 275 +1196040 293 +1196071 238 +1196072 253 +1196096 180 +1196106 150 +1196112 199 +1196114 177 +1196116 293 +1196134 187 +1196141 173 +1196144 199 +1196149 162 +1196163 258 +1196187 180 +1196191 255 +1196219 173 +1196271 174 +1196307 192 +1196328 238 +1196338 232 +1196366 361 +1196371 187 +1196378 218 +1196388 276 +1196394 157 +1196398 196 +1196408 221 +1196413 184 +1196425 245 +1196428 187 +1196482 180 +1196497 255 +1196512 221 +1196553 420 +1196573 176 +1196578 187 +1196615 380 +1196635 301 +1196640 224 +1196643 223 +1196654 246 +1196679 307 +1196734 375 +1196739 251 +1196744 609 +1196748 187 +1196761 226 +1196770 214 +1196782 436 +1196787 189 +1196799 285 +1196802 205 +1196811 194 +1196825 199 +1196840 322 +1196845 227 +1196865 197 +1196887 180 +1196893 264 +1196914 186 +1196920 199 +1196924 259 +1196928 262 +1196942 151 +1196963 173 +1196964 197 +1196969 193 +1196973 267 +1196987 178 +1197000 290 +1197010 231 +1197044 357 +1197051 435 +1197052 248 +1197063 199 +1197096 187 +1197118 208 +1197131 193 +1197149 237 +1197152 174 +1197167 349 +1197174 217 +1197188 255 +1197199 184 +1197223 224 +1197233 226 +1197236 383 +1197243 224 +1197247 108 +1197261 350 +1197269 290 +1197281 277 +1197303 190 +1197339 211 +1197379 256 +1197435 1064 +1197448 181 +1197457 197 +1197463 174 +1197477 348 +1197478 181 +1197487 348 +1197496 266 +1197499 174 +1197522 237 +1197526 189 +1197534 158 +1197560 189 +1197575 204 +1197592 185 +1197628 178 +1197637 228 +1197641 277 +1197648 208 +1197656 192 +1197657 219 +1197675 251 +1197677 202 +1197711 436 +1197712 268 +1197720 540 +1197730 221 +1197739 217 +1197748 243 +1197752 180 +1197756 329 +1197799 195 +1197806 192 +1197820 1048 +1197830 205 +1197835 183 +1197842 372 +1197850 737 +1197856 606 +1197857 322 +1197858 188 +1197906 389 +1197915 246 +1197923 187 +1197928 232 +1197934 235 +1197980 306 +1197989 320 +1198002 251 +1198007 228 +1198010 149 +1198011 202 +1198014 180 +1198030 343 +1198038 187 +1198041 218 +1198046 160 +1198054 186 +1198062 314 +1198069 235 +1198071 189 +1198074 394 +1198125 226 +1198139 235 +1198145 240 +1198170 245 +1198192 187 +1198216 184 +1198232 144 +1198238 206 +1198251 155 +1198264 156 +1198283 221 +1198284 218 +1198293 189 +1198312 241 +1198315 193 +1198321 220 +1198322 167 +1198367 212 +1198383 174 +1198404 198 +1198425 372 +1198436 394 +1198437 211 +1198458 190 +1198472 196 +1198492 170 +1198525 175 +1198532 248 +1198541 288 +1198566 192 +1198569 187 +1198571 180 +1198572 211 +1198638 209 +1198647 297 +1198665 439 +1198692 242 +1198708 165 +1198735 183 +1198745 207 +1198765 208 +1198773 202 +1198791 200 +1198815 183 +1198817 193 +1198859 248 +1198863 259 +1198881 256 +1198893 204 +1198914 224 +1198928 210 +1198938 213 +1198956 187 +1198966 250 +1198973 249 +1198977 202 +1198990 238 +1199009 420 +1199029 208 +1199062 188 +1199068 193 +1199069 225 +1199082 188 +1199084 189 +1199089 225 +1199121 196 +1199157 275 +1199172 201 +1199193 196 +1199208 238 +1199235 155 +1199238 155 +1199240 196 +1199264 326 +1199297 1324 +1199340 192 +1199350 269 +1199351 402 +1199357 183 +1199372 205 +1199375 168 +1199381 192 +1199422 183 +1199457 223 +1199524 189 +1199538 258 +1199553 267 +1199574 227 +1199578 217 +1199591 222 +1199618 175 +1199624 196 +1199647 467 +1199655 188 +1199670 218 +1199723 187 +1199728 231 +1199729 298 +1199735 191 +1199736 176 +1199754 163 +1199764 173 +1199776 211 +1199780 188 +1199788 276 +1199794 198 +1199807 207 +1199820 649 +1199827 227 +1199828 184 +1199835 164 +1199843 205 +1199903 245 +1199926 304 +1199956 205 +1199967 204 +1199976 257 +1199981 380 +1200026 916 +1200056 258 +1200074 173 +1200081 455 +1200100 169 +1200106 189 +1200108 188 +1200158 177 +1200161 252 +1200163 190 +1200165 193 +1200182 320 +1200200 202 +1200206 230 +1200223 191 +1200231 213 +1200237 199 +1200249 184 +1200264 174 +1200274 204 +1200294 263 +1200299 194 +1200318 245 +1200320 162 +1200337 194 +1200344 416 +1200352 178 +1200362 234 +1200381 581 +1200383 171 +1200384 300 +1200397 223 +1200407 220 +1200410 174 +1200420 190 +1200435 237 +1200442 248 +1200463 194 +1200491 236 +1200494 175 +1200516 273 +1200558 217 +1200566 233 +1200570 184 +1200576 184 +1200578 236 +1200582 211 +1200586 241 +1200610 202 +1200637 193 +1200643 226 +1200678 297 +1200684 241 +1200687 293 +1200706 221 +1200727 232 +1200742 185 +1200751 229 +1200753 248 +1200756 255 +1200788 165 +1200805 199 +1200823 228 +1200824 439 +1200842 200 +1200845 354 +1200846 180 +1200851 187 +1200865 220 +1200870 233 +1200875 201 +1200949 221 +1200993 363 +1200996 478 +1201038 276 +1201061 294 +1201081 234 +1201099 329 +1201103 190 +1201129 238 +1201153 252 +1201177 342 +1201179 249 +1201187 246 +1201211 325 +1201240 239 +1201248 316 +1201256 183 +1201267 196 +1201268 239 +1201273 243 +1201276 181 +1201281 240 +1201283 203 +1201322 199 +1201334 289 +1201352 242 +1201353 215 +1201378 187 +1201390 227 +1201395 305 +1201398 202 +1201402 326 +1201412 214 +1201414 196 +1201428 307 +1201441 193 +1201453 440 +1201458 807 +1201460 193 +1201463 223 +1201474 233 +1201475 453 +1201489 183 +1201494 445 +1201505 249 +1201507 210 +1201510 168 +1201512 204 +1201520 245 +1201521 187 +1201523 288 +1201535 517 +1201538 195 +1201539 179 +1201540 172 +1201551 214 +1201564 200 +1201572 452 +1201581 354 +1201582 228 +1201583 209 +1201595 187 +1201599 198 +1201601 203 +1201605 203 +1201607 177 +1201611 196 +1201614 186 +1201629 199 +1201638 332 +1201650 224 +1201655 231 +1201677 191 +1201678 201 +1201690 337 +1201692 193 +1201704 245 +1201718 233 +1201720 192 +1201725 173 +1201733 201 +1201757 232 +1201770 427 +1201776 340 +1201778 217 +1201789 199 +1201800 217 +1201801 186 +1201811 175 +1201824 184 +1201827 180 +1201828 187 +1201831 198 +1201832 281 +1201835 266 +1201844 214 +1201852 240 +1201860 177 +1201866 245 +1201873 294 +1201886 219 +1201888 529 +1201901 316 +1201910 268 +1201920 212 +1201928 263 +1201934 235 +1201935 320 +1201937 415 +1201943 149 +1201973 180 +1201999 431 +1202001 290 +1202002 471 +1202008 214 +1202020 173 +1202028 184 +1202032 202 +1202081 250 +1202101 173 +1202117 553 +1202127 226 +1202133 184 +1202145 245 +1202177 193 +1202181 212 +1202183 435 +1202186 179 +1202188 294 +1202189 226 +1202192 393 +1202205 192 +1202207 206 +1202222 313 +1202229 258 +1202239 207 +1202250 190 +1202263 190 +1202267 247 +1202268 199 +1202292 174 +1202295 210 +1202301 205 +1202311 497 +1202319 223 +1202335 439 +1202341 319 +1202352 203 +1202353 181 +1202373 218 +1202382 336 +1202397 172 +1202424 229 +1202446 187 +1202448 194 +1202452 268 +1202453 256 +1202464 248 +1202479 253 +1202486 181 +1202517 255 +1202554 179 +1202592 164 +1202594 202 +1202606 232 +1202629 200 +1202633 147 +1202636 189 +1202644 180 +1202645 199 +1202648 284 +1202652 190 +1202654 321 +1202661 178 +1202692 426 +1202716 187 +1202729 226 +1202734 208 +1202752 252 +1202756 187 +1202783 187 +1202793 211 +1202798 181 +1202818 233 +1202819 305 +1202822 163 +1202836 196 +1202843 207 +1202873 199 +1202924 181 +1202935 234 +1202953 284 +1202969 224 +1202978 196 +1203090 397 +1203094 194 +1203113 174 +1203118 263 +1203123 442 +1203136 196 +1203146 401 +1203175 228 +1203178 316 +1203187 198 +1203188 349 +1203190 338 +1203200 243 +1203208 223 +1203218 199 +1203228 209 +1203266 188 +1203271 263 +1203284 174 +1203289 182 +1203320 193 +1203326 223 +1203332 263 +1203350 211 +1203355 174 +1203362 185 +1203371 508 +1203376 236 +1203389 171 +1203427 187 +1203430 207 +1203459 239 +1203465 173 +1203468 174 +1203469 191 +1203477 267 +1203547 206 +1203551 191 +1203561 184 +1203565 187 +1203569 176 +1203585 234 +1203601 211 +1203618 297 +1203622 248 +1203630 187 +1203631 179 +1203635 268 +1203637 174 +1203638 221 +1203680 395 +1203682 442 +1203696 215 +1203749 219 +1203757 254 +1203775 167 +1203788 212 +1203797 298 +1203823 229 +1203827 415 +1203870 352 +1203881 159 +1203920 174 +1203933 201 +1203946 188 +1203951 194 +1203961 218 +1203985 257 +1204001 451 +1204009 167 +1204020 231 +1204031 1025 +1204042 294 +1204052 175 +1204072 211 +1204093 198 +1204099 240 +1204111 206 +1204118 143 +1204122 167 +1204146 192 +1204149 199 +1204188 243 +1204209 233 +1204227 193 +1204234 193 +1204314 174 +1204323 173 +1204331 183 +1204348 190 +1204382 166 +1204397 193 +1204408 190 +1204415 186 +1204416 213 +1204421 265 +1204497 285 +1204505 175 +1204526 177 +1204527 187 +1204541 285 +1204545 292 +1204615 185 +1204619 296 +1204626 181 +1204651 198 +1204663 233 +1204669 187 +1204678 180 +1204684 259 +1204708 160 +1204715 229 +1204719 197 +1204749 212 +1204758 180 +1204811 245 +1204813 223 +1204854 239 +1204857 204 +1204902 734 +1204905 211 +1204923 174 +1204938 156 +1204953 180 +1204955 198 +1204969 154 +1205004 192 +1205062 174 +1205075 388 +1205116 179 +1205124 307 +1205126 199 +1205129 193 +1205174 241 +1205178 186 +1205195 199 +1205197 193 +1205200 221 +1205239 187 +1205245 224 +1205255 212 +1205259 325 +1205261 184 +1205262 184 +1205288 333 +1205304 334 +1205308 257 +1205343 302 +1205360 321 +1205362 161 +1205371 305 +1205382 271 +1205388 178 +1205391 288 +1205419 193 +1205426 273 +1205435 342 +1205470 298 +1205474 241 +1205476 196 +1205477 187 +1205494 409 +1205505 187 +1205506 253 +1205508 208 +1205512 223 +1205518 236 +1205527 288 +1205532 172 +1205559 604 +1205563 251 +1205571 183 +1205577 194 +1205581 1395 +1205591 181 +1205595 208 +1205622 171 +1205624 190 +1205627 186 +1205633 214 +1205640 162 +1205646 250 +1205657 567 +1205668 260 +1205676 180 +1205683 241 +1205691 174 +1205693 174 +1205708 219 +1205712 227 +1205733 178 +1205738 220 +1205747 230 +1205798 181 +1205813 200 +1205827 248 +1205832 276 +1205858 224 +1205865 193 +1205866 370 +1205867 350 +1205875 183 +1205878 274 +1205883 240 +1205891 302 +1205900 271 +1205902 227 +1205906 193 +1205923 226 +1205946 192 +1205948 233 +1205952 214 +1205967 193 +1205969 196 +1205979 201 +1206019 180 +1206020 198 +1206041 177 +1206055 236 +1206058 324 +1206059 223 +1206098 207 +1206110 181 +1206114 187 +1206137 183 +1206142 187 +1206144 183 +1206155 220 +1206159 307 +1206162 215 +1206171 288 +1206218 381 +1206221 236 +1206255 193 +1206272 268 +1206278 222 +1206302 227 +1206318 313 +1206325 165 +1206335 248 +1206348 247 +1206353 256 +1206356 322 +1206358 285 +1206364 258 +1206373 214 +1206412 375 +1206432 232 +1206437 204 +1206439 421 +1206452 550 +1206456 224 +1206458 143 +1206477 193 +1206478 312 +1206505 246 +1206507 413 +1206509 287 +1206510 230 +1206522 486 +1206523 325 +1206529 192 +1206541 247 +1206588 181 +1206590 150 +1206597 208 +1206603 181 +1206605 182 +1206608 460 +1206623 451 +1206632 181 +1206635 174 +1206649 359 +1206671 313 +1206681 277 +1206692 195 +1206695 178 +1206707 168 +1206718 276 +1206738 201 +1206742 189 +1206748 183 +1206750 224 +1206758 182 +1206765 247 +1206774 194 +1206783 283 +1206789 242 +1206793 157 +1206803 375 +1206814 253 +1206817 283 +1206821 305 +1206824 317 +1206828 185 +1206832 174 +1206845 205 +1206867 251 +1206877 324 +1206881 179 +1206894 221 +1206901 193 +1206906 273 +1206914 172 +1206936 170 +1206940 195 +1206948 201 +1206954 222 +1206956 272 +1206958 251 +1206987 180 +1206991 208 +1207004 181 +1207032 281 +1207059 187 +1207063 199 +1207073 320 +1207081 214 +1207091 174 +1207106 187 +1207125 212 +1207143 220 +1207147 323 +1207151 208 +1207184 463 +1207191 200 +1207196 196 +1207212 206 +1207217 345 +1207218 446 +1207221 180 +1207230 206 +1207235 345 +1207255 198 +1207264 253 +1207269 193 +1207270 183 +1207310 263 +1207341 196 +1207346 225 +1207349 201 +1207359 166 +1207386 220 +1207406 226 +1207421 397 +1207465 196 +1207475 196 +1207479 201 +1207480 227 +1207483 226 +1207496 208 +1207497 205 +1207505 212 +1207511 171 +1207513 229 +1207514 187 +1207524 316 +1207553 181 +1207559 157 +1207568 177 +1207591 205 +1207593 189 +1207601 181 +1207602 186 +1207610 232 +1207615 213 +1207624 303 +1207634 181 +1207640 358 +1207664 199 +1207667 187 +1207685 238 +1207693 197 +1207701 188 +1207744 187 +1207765 177 +1207775 199 +1207778 200 +1207781 174 +1207782 229 +1207817 176 +1207825 212 +1207831 191 +1207842 355 +1207846 224 +1207850 199 +1207901 200 +1207916 241 +1207944 253 +1207954 244 +1207970 306 +1207975 205 +1207994 164 +1207996 348 +1207998 212 +1207999 200 +1208015 216 +1208040 198 +1208042 196 +1208083 286 +1208108 247 +1208113 305 +1208118 204 +1208146 138 +1208150 211 +1208163 221 +1208203 214 +1208210 264 +1208212 207 +1208221 244 +1208235 397 +1208240 179 +1208262 368 +1208267 196 +1208276 325 +1208284 186 +1208294 196 +1208302 184 +1208303 192 +1208313 152 +1208320 81 +1208341 174 +1208370 162 +1208374 199 +1208376 186 +1208378 222 +1208387 187 +1208389 225 +1208395 186 +1208399 202 +1208401 193 +1208405 186 +1208406 170 +1208412 248 +1208413 191 +1208422 204 +1208431 359 +1208433 199 +1208438 180 +1208443 187 +1208447 187 +1208476 237 +1208481 168 +1208489 536 +1208500 239 +1208528 267 +1208531 180 +1208533 312 +1208534 352 +1208542 198 +1208546 222 +1208555 246 +1208573 187 +1208588 342 +1208590 394 +1208595 207 +1208596 190 +1208608 176 +1208646 218 +1208656 187 +1208657 251 +1208676 218 +1208698 309 +1208733 178 +1208746 203 +1208753 199 +1208762 232 +1208774 195 +1208778 406 +1208779 401 +1208780 193 +1208809 272 +1208813 417 +1208856 209 +1208871 229 +1208890 220 +1208893 210 +1208895 213 +1208906 264 +1208910 225 +1208917 312 +1208920 287 +1208928 173 +1208940 205 +1208947 200 +1208963 362 +1208968 184 +1208970 287 +1208971 196 +1208992 118 +1208994 187 +1209000 221 +1209001 224 +1209024 193 +1209045 248 +1209069 217 +1209093 186 +1209094 181 +1209101 193 +1209118 238 +1209145 204 +1209146 175 +1209171 213 +1209176 284 +1209184 443 +1209225 288 +1209262 276 +1209264 254 +1209268 368 +1209280 198 +1209284 388 +1209287 281 +1209304 286 +1209312 350 +1209314 223 +1209323 349 +1209335 183 +1209357 174 +1209358 206 +1209373 197 +1209382 198 +1209391 237 +1209392 187 +1209394 247 +1209398 187 +1209399 184 +1209402 175 +1209406 192 +1209456 272 +1209465 322 +1209519 250 +1209521 175 +1209528 266 +1209534 301 +1209538 248 +1209561 209 +1209569 168 +1209573 201 +1209585 180 +1209602 279 +1209633 186 +1209664 204 +1209686 269 +1209722 271 +1209772 194 +1209782 209 +1209801 210 +1209821 250 +1209823 557 +1209832 528 +1209849 203 +1209854 207 +1209863 234 +1209876 208 +1209882 322 +1209885 189 +1209901 193 +1209920 143 +1209925 205 +1209941 189 +1209947 323 +1209962 420 +1209966 181 +1209967 226 +1209969 232 +1209975 238 +1209976 177 +1209989 225 +1209999 218 +1210001 184 +1210009 186 +1210014 230 +1210016 252 +1210019 374 +1210021 184 +1210082 188 +1210093 247 +1210137 208 +1210158 293 +1210160 150 +1210179 234 +1210182 191 +1210196 146 +1210227 274 +1210232 247 +1210249 357 +1210267 193 +1210268 184 +1210280 112 +1210283 211 +1210291 225 +1210311 209 +1210328 168 +1210361 218 +1210381 183 +1210388 231 +1210408 140 +1210426 251 +1210444 227 +1210449 232 +1210492 193 +1210513 195 +1210559 193 +1210567 217 +1210586 210 +1210605 322 +1210632 558 +1210642 254 +1210646 188 +1210673 301 +1210678 193 +1210706 206 +1210713 224 +1210718 270 +1210719 435 +1210732 307 +1210735 217 +1210739 241 +1210741 182 +1210742 185 +1210754 556 +1210757 153 +1210779 205 +1210783 318 +1210793 185 +1210794 215 +1210809 183 +1210837 312 +1210838 205 +1210887 219 +1210895 229 +1210903 195 +1210907 234 +1210912 176 +1210925 187 +1210929 249 +1210947 205 +1210949 187 +1210966 188 +1210973 187 +1210976 187 +1210989 209 +1210990 239 +1210998 171 +1211005 199 +1211029 187 +1211030 328 +1211036 209 +1211070 187 +1211074 189 +1211084 187 +1211086 193 +1211114 274 +1211126 346 +1211151 181 +1211155 56 +1211165 190 +1211166 225 +1211182 168 +1211183 178 +1211201 232 +1211210 203 +1211228 470 +1211233 184 +1211306 253 +1211311 218 +1211315 201 +1211347 180 +1211375 181 +1211377 168 +1211382 202 +1211384 202 +1211390 195 +1211392 208 +1211394 183 +1211404 177 +1211405 196 +1211410 203 +1211412 484 +1211414 227 +1211417 186 +1211421 229 +1211432 181 +1211444 208 +1211448 187 +1211458 456 +1211460 181 +1211468 182 +1211491 216 +1211492 383 +1211507 195 +1211526 182 +1211532 186 +1211558 298 +1211561 170 +1211594 185 +1211599 193 +1211622 188 +1211637 175 +1211640 529 +1211665 193 +1211677 179 +1211679 196 +1211683 247 +1211685 202 +1211693 257 +1211750 196 +1211751 192 +1211771 162 +1211774 182 +1211776 183 +1211805 330 +1211840 256 +1211862 187 +1211865 191 +1211866 187 +1211867 218 +1211874 217 +1211878 361 +1211895 199 +1211897 187 +1211910 215 +1211923 315 +1211925 174 +1211934 190 +1211941 500 +1211942 311 +1211980 287 +1211986 183 +1211996 251 +1211998 193 +1212038 180 +1212050 199 +1212052 212 +1212056 65 +1212057 326 +1212065 278 +1212066 216 +1212070 234 +1212074 231 +1212102 231 +1212116 288 +1212152 190 +1212165 202 +1212177 720 +1212184 174 +1212185 222 +1212186 186 +1212193 193 +1212198 184 +1212205 183 +1212225 615 +1212244 475 +1212245 184 +1212269 198 +1212276 193 +1212286 187 +1212306 153 +1212350 189 +1212360 202 +1212398 203 +1212399 196 +1212415 175 +1212424 355 +1212441 190 +1212444 237 +1212448 220 +1212449 464 +1212453 307 +1212458 254 +1212461 190 +1212462 200 +1212468 227 +1212481 330 +1212482 187 +1212491 173 +1212492 248 +1212502 214 +1212554 264 +1212566 410 +1212568 193 +1212589 188 +1212602 313 +1212604 241 +1212608 268 +1212610 294 +1212612 180 +1212619 374 +1212625 188 +1212633 270 +1212648 289 +1212684 189 +1212695 454 +1212701 218 +1212708 198 +1212720 214 +1212743 189 +1212749 234 +1212758 199 +1212770 187 +1212771 190 +1212780 187 +1212798 175 +1212825 216 +1212849 156 +1212857 174 +1212887 255 +1212893 174 +1212898 235 +1212900 188 +1212934 208 +1212941 200 +1212955 202 +1212974 181 +1212982 181 +1212990 306 +1213003 326 +1213004 196 +1213010 208 +1213012 306 +1213019 215 +1213020 394 +1213024 204 +1213039 272 +1213071 205 +1213083 177 +1213090 337 +1213100 289 +1213102 199 +1213108 275 +1213111 187 +1213114 202 +1213134 196 +1213154 194 +1213156 190 +1213157 152 +1213174 202 +1213186 254 +1213204 257 +1213209 149 +1213210 286 +1213212 188 +1213214 197 +1213219 176 +1213229 190 +1213232 193 +1213233 244 +1213236 399 +1213238 232 +1213258 193 +1213270 215 +1213284 149 +1213287 208 +1213300 284 +1213315 175 +1213317 225 +1213339 520 +1213340 254 +1213345 213 +1213347 186 +1213349 171 +1213350 191 +1213359 198 +1213377 162 +1213381 186 +1213390 266 +1213394 193 +1213400 295 +1213409 316 +1213413 170 +1213428 201 +1213429 216 +1213434 168 +1213439 187 +1213451 932 +1213459 234 +1213479 204 +1213490 181 +1213496 301 +1213501 186 +1213510 187 +1213515 198 +1213531 298 +1213544 308 +1213562 350 +1213563 230 +1213569 214 +1213580 534 +1213581 208 +1213593 239 +1213595 180 +1213621 187 +1213627 288 +1213630 187 +1213631 232 +1213632 227 +1213665 167 +1213684 265 +1213733 202 +1213762 186 +1213772 226 +1213774 184 +1213782 246 +1213805 208 +1213823 489 +1213832 181 +1213834 212 +1213843 176 +1213870 227 +1213890 283 +1213905 222 +1213908 181 +1213909 202 +1213910 334 +1213912 187 +1213941 326 +1213956 196 +1213965 191 +1214009 274 +1214016 187 +1214021 224 +1214056 182 +1214065 219 +1214082 347 +1214114 202 +1214124 199 +1214145 324 +1214158 235 +1214161 276 +1214262 181 +1214296 180 +1214304 187 +1214308 205 +1214370 205 +1214396 230 +1214402 181 +1214421 256 +1214431 197 +1214435 132 +1214459 262 +1214469 184 +1214470 162 +1214484 403 +1214492 328 +1214506 197 +1214513 208 +1214535 178 +1214537 353 +1214545 178 +1214559 214 +1214567 247 +1214571 158 +1214601 77 +1214610 181 +1214618 414 +1214632 223 +1214645 208 +1214678 184 +1214717 183 +1214719 243 +1214722 213 +1214737 219 +1214759 207 +1214760 234 +1214767 198 +1214770 234 +1214773 297 +1214779 219 +1214794 212 +1214807 237 +1214835 205 +1214837 203 +1214843 246 +1214869 196 +1214872 209 +1214877 182 +1214889 251 +1214898 237 +1214908 179 +1214923 194 +1214936 199 +1214967 314 +1214970 174 +1214974 186 +1214978 186 +1215017 411 +1215020 286 +1215038 251 +1215048 214 +1215051 208 +1215052 193 +1215072 231 +1215077 209 +1215085 173 +1215086 248 +1215094 249 +1215102 298 +1215122 195 +1215133 197 +1215150 206 +1215165 283 +1215170 172 +1215221 224 +1215236 244 +1215243 734 +1215267 237 +1215287 240 +1215313 359 +1215332 168 +1215339 496 +1215398 261 +1215404 202 +1215405 208 +1215425 193 +1215429 181 +1215434 791 +1215441 192 +1215456 187 +1215457 231 +1215476 296 +1215477 215 +1215510 180 +1215516 268 +1215519 348 +1215540 241 +1215541 475 +1215544 254 +1215583 197 +1215584 224 +1215597 187 +1215604 260 +1215628 267 +1215670 247 +1215674 208 +1215675 210 +1215676 538 +1215684 193 +1215689 220 +1215719 200 +1215725 180 +1215736 231 +1215738 168 +1215743 217 +1215748 535 +1215774 165 +1215779 196 +1215800 211 +1215806 179 +1215819 152 +1215831 186 +1215843 196 +1215855 241 +1215863 177 +1215867 190 +1215886 368 +1215904 832 +1215905 177 +1215910 143 +1215921 175 +1215932 193 +1215947 163 +1215973 197 +1215988 180 +1215998 223 +1216001 217 +1216040 210 +1216043 292 +1216048 209 +1216105 193 +1216114 163 +1216132 391 +1216192 196 +1216209 187 +1216218 205 +1216219 541 +1216234 178 +1216235 181 +1216239 171 +1216267 181 +1216286 271 +1216293 216 +1216295 362 +1216310 180 +1216313 171 +1216322 181 +1216346 187 +1216354 378 +1216360 180 +1216362 193 +1216387 355 +1216388 164 +1216391 179 +1216400 390 +1216410 249 +1216432 224 +1216458 205 +1216472 196 +1216485 329 +1216494 219 +1216498 241 +1216501 187 +1216514 193 +1216523 219 +1216533 142 +1216543 220 +1216555 189 +1216582 281 +1216591 337 +1216604 350 +1216624 167 +1216638 284 +1216645 225 +1216657 193 +1216683 213 +1216687 190 +1216728 226 +1216730 214 +1216747 206 +1216769 317 +1216775 250 +1216779 366 +1216783 205 +1216788 271 +1216801 192 +1216803 223 +1216813 225 +1216815 187 +1216823 251 +1216829 186 +1216836 168 +1216839 195 +1216848 200 +1216882 289 +1216900 163 +1216911 232 +1216959 202 +1216968 223 +1216979 187 +1217020 198 +1217045 252 +1217049 313 +1217069 187 +1217082 389 +1217091 292 +1217092 228 +1217108 256 +1217124 183 +1217126 345 +1217134 306 +1217146 181 +1217150 187 +1217154 231 +1217170 131 +1217171 229 +1217176 174 +1217181 185 +1217184 249 +1217187 250 +1217202 179 +1217207 186 +1217222 235 +1217223 59 +1217225 246 +1217241 294 +1217243 326 +1217246 524 +1217252 192 +1217253 405 +1217254 232 +1217256 312 +1217257 150 +1217263 199 +1217272 180 +1217279 226 +1217287 239 +1217298 205 +1217301 236 +1217305 175 +1217310 202 +1217317 230 +1217322 253 +1217323 202 +1217332 214 +1217333 241 +1217335 231 +1217337 529 +1217344 199 +1217353 210 +1217371 516 +1217375 206 +1217378 206 +1217379 243 +1217382 185 +1217391 280 +1217402 169 +1217418 312 +1217432 237 +1217435 166 +1217448 228 +1217470 181 +1217474 205 +1217489 218 +1217491 186 +1217498 228 +1217515 187 +1217516 186 +1217518 310 +1217520 274 +1217541 200 +1217544 357 +1217551 159 +1217566 233 +1217575 183 +1217580 313 +1217583 247 +1217585 439 +1217594 179 +1217598 228 +1217604 227 +1217607 253 +1217623 257 +1217628 374 +1217646 238 +1217673 232 +1217676 186 +1217681 217 +1217683 211 +1217687 187 +1217729 183 +1217730 182 +1217742 199 +1217745 193 +1217763 207 +1217768 256 +1217769 178 +1217774 206 +1217783 167 +1217802 188 +1217804 192 +1217810 220 +1217823 287 +1217829 347 +1217839 230 +1217842 183 +1217844 323 +1217855 198 +1217858 286 +1217872 229 +1217881 224 +1217885 231 +1217889 201 +1217892 77 +1217896 172 +1217898 187 +1217904 185 +1217905 194 +1217913 190 +1217925 225 +1217936 359 +1217952 193 +1217968 216 +1217971 199 +1217972 205 +1217996 180 +1218004 392 +1218039 92 +1218050 236 +1218061 421 +1218066 187 +1218077 180 +1218078 152 +1218086 478 +1218092 244 +1218102 214 +1218114 181 +1218132 212 +1218144 199 +1218147 236 +1218153 186 +1218154 413 +1218199 175 +1218207 253 +1218216 254 +1218217 180 +1218237 193 +1218247 208 +1218259 199 +1218265 215 +1218268 272 +1218271 234 +1218275 195 +1218283 205 +1218291 197 +1218314 217 +1218326 409 +1218350 372 +1218393 230 +1218402 200 +1218414 346 +1218420 156 +1218431 183 +1218438 323 +1218449 193 +1218457 155 +1218460 180 +1218471 351 +1218488 251 +1218513 306 +1218518 259 +1218533 187 +1218534 152 +1218549 195 +1218560 184 +1218564 184 +1218565 227 +1218574 509 +1218579 446 +1218586 309 +1218589 266 +1218613 416 +1218649 155 +1218675 186 +1218677 393 +1218703 437 +1218721 202 +1218726 243 +1218737 185 +1218739 179 +1218742 282 +1218744 504 +1218746 186 +1218751 221 +1218753 181 +1218755 225 +1218761 184 +1218795 184 +1218816 339 +1218819 205 +1218831 179 +1218836 251 +1218837 245 +1218867 192 +1218874 395 +1218877 174 +1218880 187 +1218885 297 +1218895 614 +1218898 199 +1218899 189 +1218915 199 +1218921 236 +1218923 192 +1218928 206 +1218932 162 +1218936 187 +1218941 245 +1218947 225 +1218953 311 +1218964 552 +1218968 229 +1218972 226 +1218976 171 +1218977 531 +1218978 322 +1218985 176 +1218995 287 +1219006 220 +1219009 202 +1219013 187 +1219014 231 +1219018 195 +1219036 357 +1219047 155 +1219091 349 +1219093 177 +1219102 208 +1219120 200 +1219129 184 +1219132 173 +1219152 410 +1219154 168 +1219181 239 +1219187 208 +1219189 177 +1219191 170 +1219194 212 +1219222 179 +1219223 212 +1219227 234 +1219236 205 +1219248 360 +1219256 167 +1219308 311 +1219356 190 +1219376 175 +1219399 279 +1219411 218 +1219414 180 +1219466 254 +1219509 240 +1219514 267 +1219519 180 +1219528 224 +1219554 195 +1219592 220 +1219593 451 +1219602 190 +1219603 314 +1219608 241 +1219612 915 +1219670 159 +1219671 193 +1219674 187 +1219686 365 +1219689 176 +1219725 182 +1219731 177 +1219739 184 +1219751 197 +1219769 205 +1219796 226 +1219797 202 +1219798 208 +1219803 227 +1219817 184 +1219819 150 +1219822 183 +1219838 176 +1219844 186 +1219848 224 +1219861 244 +1219865 228 +1219882 174 +1219888 187 +1219904 246 +1219924 186 +1219936 187 +1219948 680 +1219958 187 +1219970 182 +1219979 414 +1219982 216 +1219991 236 +1219996 211 +1220034 215 +1220040 199 +1220066 218 +1220068 207 +1220069 174 +1220081 183 +1220090 295 +1220091 229 +1220094 381 +1220098 463 +1220101 187 +1220104 258 +1220116 178 +1220118 247 +1220125 261 +1220160 357 +1220168 271 +1220202 327 +1220243 177 +1220261 213 +1220275 210 +1220289 199 +1220307 204 +1220330 384 +1220349 248 +1220350 194 +1220358 196 +1220359 381 +1220365 180 +1220367 186 +1220388 192 +1220392 180 +1220407 180 +1220408 168 +1220412 193 +1220415 263 +1220418 192 +1220422 424 +1220423 200 +1220426 262 +1220442 236 +1220443 543 +1220445 190 +1220454 193 +1220478 335 +1220480 200 +1220489 257 +1220534 193 +1220538 268 +1220545 206 +1220546 245 +1220549 154 +1220552 235 +1220560 203 +1220571 182 +1220574 174 +1220584 229 +1220600 187 +1220605 189 +1220654 246 +1220667 884 +1220700 233 +1220727 480 +1220737 190 +1220740 173 +1220772 193 +1220779 277 +1220791 302 +1220792 199 +1220815 244 +1220829 193 +1220842 181 +1220863 199 +1220869 189 +1220879 358 +1220888 174 +1220896 217 +1220910 211 +1220911 325 +1220916 181 +1220919 192 +1220921 179 +1220928 288 +1220939 220 +1220951 207 +1220954 187 +1220960 194 +1220964 225 +1220967 412 +1220975 131 +1220988 268 +1221016 390 +1221032 218 +1221034 199 +1221035 177 +1221036 197 +1221046 132 +1221049 189 +1221053 198 +1221073 187 +1221087 190 +1221100 159 +1221140 187 +1221162 249 +1221163 278 +1221164 196 +1221171 207 +1221182 196 +1221184 213 +1221190 648 +1221191 167 +1221195 199 +1221196 402 +1221200 184 +1221233 336 +1221237 220 +1221260 490 +1221262 241 +1221263 283 +1221280 224 +1221282 273 +1221307 197 +1221323 184 +1221336 171 +1221341 187 +1221363 231 +1221385 230 +1221393 164 +1221405 190 +1221411 178 +1221430 259 +1221446 187 +1221454 312 +1221462 480 +1221466 193 +1221495 203 +1221497 224 +1221504 199 +1221506 307 +1221511 204 +1221520 233 +1221525 280 +1221532 199 +1221548 178 +1221568 170 +1221573 323 +1221582 196 +1221585 187 +1221592 259 +1221595 188 +1221606 248 +1221608 235 +1221609 308 +1221619 230 +1221625 144 +1221626 1006 +1221640 184 +1221656 196 +1221658 220 +1221672 359 +1221676 200 +1221697 224 +1221700 235 +1221709 149 +1221711 181 +1221714 211 +1221736 458 +1221738 229 +1221744 193 +1221746 173 +1221753 167 +1221754 729 +1221764 525 +1221765 443 +1221788 223 +1221790 233 +1221805 283 +1221817 233 +1221835 229 +1221837 277 +1221846 197 +1221847 203 +1221866 241 +1221875 229 +1221877 266 +1221895 180 +1221917 356 +1221926 179 +1221939 233 +1221974 174 +1222008 199 +1222011 177 +1222026 174 +1222031 180 +1222067 185 +1222073 279 +1222096 187 +1222102 193 +1222117 226 +1222121 220 +1222163 221 +1222166 197 +1222196 204 +1222203 217 +1222208 168 +1222228 219 +1222236 347 +1222278 281 +1222297 218 +1222303 200 +1222316 217 +1222320 151 +1222321 208 +1222323 226 +1222348 191 +1222371 152 +1222382 396 +1222408 192 +1222409 199 +1222414 181 +1222422 177 +1222451 247 +1222452 193 +1222466 175 +1222472 187 +1222473 225 +1222480 149 +1222481 174 +1222483 215 +1222509 239 +1222516 190 +1222546 205 +1222562 245 +1222589 333 +1222598 207 +1222658 187 +1222673 204 +1222675 187 +1222690 184 +1222691 193 +1222725 462 +1222733 368 +1222750 162 +1222792 268 +1222804 187 +1222805 222 +1222811 162 +1222812 273 +1222826 286 +1222830 603 +1222834 195 +1222859 502 +1222875 199 +1222878 244 +1222880 235 +1222892 200 +1222897 239 +1222902 181 +1222930 217 +1222936 232 +1222946 190 +1222950 299 +1222953 355 +1222958 207 +1222962 259 +1222971 193 +1222976 198 +1222978 229 +1223003 187 +1223012 211 +1223018 252 +1223025 298 +1223030 233 +1223060 209 +1223072 224 +1223082 272 +1223083 490 +1223092 180 +1223110 187 +1223113 233 +1223130 187 +1223132 190 +1223148 193 +1223157 199 +1223171 183 +1223172 199 +1223180 293 +1223181 279 +1223204 168 +1223205 231 +1223220 284 +1223227 161 +1223230 148 +1223267 199 +1223268 225 +1223276 186 +1223282 192 +1223290 329 +1223317 187 +1223320 183 +1223350 207 +1223357 181 +1223367 193 +1223375 152 +1223402 180 +1223406 168 +1223408 248 +1223412 263 +1223416 261 +1223417 172 +1223422 214 +1223427 232 +1223438 245 +1223501 288 +1223505 174 +1223524 168 +1223541 193 +1223550 194 +1223576 300 +1223597 168 +1223611 188 +1223624 183 +1223655 255 +1223656 366 +1223665 198 +1223667 166 +1223671 208 +1223673 192 +1223678 240 +1223679 253 +1223683 195 +1223685 175 +1223686 239 +1223687 187 +1223698 328 +1223703 204 +1223709 168 +1223733 236 +1223736 229 +1223747 222 +1223751 263 +1223763 183 +1223771 199 +1223794 272 +1223828 253 +1223840 344 +1223841 215 +1223877 223 +1223912 168 +1223913 383 +1223918 187 +1223936 279 +1223938 217 +1223952 187 +1223955 246 +1223958 199 +1223967 187 +1223968 174 +1223972 186 +1223973 257 +1223975 152 +1223989 193 +1223996 224 +1224020 293 +1224037 207 +1224040 226 +1224044 194 +1224060 326 +1224062 187 +1224070 253 +1224076 208 +1224092 287 +1224095 229 +1224100 203 +1224122 214 +1224123 269 +1224141 245 +1224145 220 +1224177 279 +1224196 190 +1224224 275 +1224226 194 +1224233 244 +1224238 180 +1224243 245 +1224263 199 +1224276 160 +1224280 226 +1224286 159 +1224289 259 +1224294 223 +1224305 200 +1224311 227 +1224315 211 +1224323 228 +1224329 216 +1224331 472 +1224337 259 +1224344 137 +1224349 223 +1224351 277 +1224354 180 +1224360 226 +1224372 199 +1224405 213 +1224426 282 +1224427 1334 +1224430 208 +1224445 378 +1224446 181 +1224462 187 +1224465 271 +1224485 502 +1224495 187 +1224509 252 +1224555 181 +1224562 177 +1224571 185 +1224572 200 +1224583 179 +1224603 218 +1224626 177 +1224639 383 +1224642 191 +1224652 210 +1224653 228 +1224660 197 +1224666 246 +1224707 206 +1224721 221 +1224750 174 +1224753 273 +1224799 198 +1224804 290 +1224832 180 +1224839 351 +1224842 281 +1224846 190 +1224850 311 +1224855 496 +1224861 199 +1224862 313 +1224873 187 +1224887 246 +1224897 44 +1224906 315 +1224915 197 +1224927 177 +1224937 167 +1224939 155 +1224944 172 +1224946 200 +1224947 347 +1224961 191 +1224962 479 +1224998 217 +1225034 242 +1225035 205 +1225037 182 +1225057 203 +1225094 236 +1225127 172 +1225135 326 +1225142 220 +1225145 338 +1225153 277 +1225176 220 +1225208 168 +1225210 209 +1225228 485 +1225263 312 +1225291 177 +1225303 197 +1225325 282 +1225351 396 +1225357 419 +1225359 178 +1225381 213 +1225394 203 +1225401 190 +1225410 242 +1225412 164 +1225425 261 +1225440 174 +1225441 227 +1225459 174 +1225465 189 +1225472 187 +1225473 68 +1225479 211 +1225485 375 +1225495 181 +1225498 243 +1225520 201 +1225527 187 +1225532 296 +1225534 299 +1225569 224 +1225601 223 +1225619 187 +1225646 461 +1225647 282 +1225649 193 +1225654 427 +1225657 215 +1225664 226 +1225667 180 +1225751 183 +1225765 323 +1225778 183 +1225779 199 +1225787 214 +1225812 190 +1225816 206 +1225825 196 +1225839 186 +1225841 200 +1225866 206 +1225870 177 +1225877 186 +1225884 623 +1225897 218 +1225910 176 +1225929 199 +1225943 193 +1225948 269 +1225956 217 +1225957 235 +1225974 176 +1225987 227 +1226010 174 +1226046 160 +1226056 196 +1226061 239 +1226067 170 +1226120 236 +1226145 178 +1226148 193 +1226158 193 +1226171 212 +1226174 635 +1226178 226 +1226182 193 +1226183 217 +1226219 647 +1226225 199 +1226256 190 +1226260 160 +1226289 190 +1226306 163 +1226311 182 +1226322 209 +1226357 509 +1226365 193 +1226390 174 +1226391 230 +1226393 217 +1226409 246 +1226443 171 +1226474 232 +1226483 320 +1226498 334 +1226508 252 +1226513 193 +1226552 224 +1226611 180 +1226627 178 +1226636 196 +1226638 195 +1226641 196 +1226646 193 +1226649 203 +1226653 192 +1226708 264 +1226709 239 +1226715 193 +1226719 340 +1226721 193 +1226727 184 +1226750 208 +1226761 211 +1226763 278 +1226773 196 +1226777 324 +1226783 162 +1226784 177 +1226796 187 +1226809 205 +1226868 435 +1226883 187 +1226885 221 +1226919 193 +1226938 207 +1226941 208 +1226952 415 +1227004 381 +1227009 201 +1227023 258 +1227042 178 +1227101 168 +1227134 377 +1227143 187 +1227179 197 +1227239 188 +1227251 205 +1227255 1120 +1227264 146 +1227267 270 +1227291 262 +1227323 192 +1227351 223 +1227355 186 +1227359 239 +1227368 305 +1227380 231 +1227384 181 +1227398 181 +1227448 224 +1227485 240 +1227487 193 +1227508 290 +1227517 213 +1227527 276 +1227551 199 +1227556 186 +1227588 188 +1227593 301 +1227645 193 +1227649 156 +1227681 229 +1227687 343 +1227691 336 +1227709 306 +1227713 187 +1227723 257 +1227733 307 +1227735 266 +1227744 282 +1227752 285 +1227763 548 +1227775 422 +1227789 495 +1227801 206 +1227818 271 +1227830 209 +1227831 251 +1227854 186 +1227881 227 +1227882 158 +1227884 376 +1227885 1186 +1227886 121 +1227887 212 +1227890 217 +1227891 194 +1227893 366 +1227896 812 +1227897 502 +1227898 138 +1227899 323 +1227901 1226 +1227904 508 +1227905 242 +1227908 304 +1227909 296 +1227910 1278 +1227911 278 +1227914 147 +1227915 1055 +1227916 321 +1227917 155 +1227918 174 +1227920 193 +1227921 169 +1227923 185 +1227926 176 +1227927 215 +1227928 315 +1227929 281 +1227931 604 +1227932 207 +1227933 140 +1227934 128 +1227935 175 +1227937 245 +1227940 228 +1227941 290 +1227944 198 +1227945 265 +1227946 211 +1227948 296 +1227952 170 +1227954 222 +1227957 260 +1227958 264 +1227959 276 +1227961 231 +1227962 262 +1227963 192 +1227966 312 +1227967 235 +1227968 229 +1227970 243 +1227975 161 +1227977 188 +1227979 183 +1227987 310 +1227988 220 +1227991 175 +1227992 272 +1227995 187 +1227996 290 +1227999 347 +1228001 143 +1228004 366 +1228009 208 +1228013 614 +1228014 168 +1228015 238 +1228019 266 +1228020 369 +1228021 187 +1228022 158 +1228023 242 +1228024 210 +1228027 282 +1228030 191 +1228031 190 +1228037 259 +1228039 248 +1228041 191 +1228045 255 +1228049 170 +1228051 340 +1228054 327 +1228057 218 +1228059 214 +1228060 267 +1228064 200 +1228066 163 +1228069 180 +1228071 181 +1228074 223 +1228077 179 +1228079 226 +1228080 216 +1228081 201 +1228084 211 +1228092 172 +1228098 172 +1228100 165 +1228101 173 +1228105 635 +1228106 251 +1228109 252 +1228114 284 +1228121 315 +1228122 240 +1228127 198 +1228129 275 +1228132 198 +1228139 192 +1228149 247 +1228152 363 +1228155 336 +1228160 186 +1228161 183 +1228162 317 +1228164 230 +1228178 375 +1228179 707 +1228180 1021 +1228184 196 +1228185 190 +1228186 273 +1228187 399 +1228190 176 +1228191 167 +1228193 181 +1228195 201 +1228197 259 +1228199 191 +1228209 189 +1228233 204 +1228234 223 +1228235 332 +1228237 111 +1228240 309 +1228242 182 +1228243 175 +1228247 180 +1228249 343 +1228253 248 +1228254 204 +1228255 242 +1228256 162 +1228259 217 +1228261 174 +1228262 453 +1228264 342 +1228265 279 +1228266 164 +1228268 181 +1228269 163 +1228271 797 +1228273 342 +1228274 289 +1228275 186 +1228278 177 +1228280 118 +1228281 551 +1228283 224 +1228285 365 +1228286 464 +1228287 218 +1228290 681 +1228292 228 +1228293 187 +1228295 148 +1228297 181 +1228299 170 +1228300 283 +1228301 304 +1228304 184 +1228305 477 +1228307 199 +1228308 278 +1228309 183 +1228317 260 +1228327 202 +1228333 248 +1228337 256 +1228342 167 +1228343 817 +1228348 227 +1228349 470 +1228355 397 +1228356 176 +1228357 156 +1228358 196 +1228359 151 +1228361 194 +1228362 138 +1228364 216 +1228366 219 +1228367 275 +1228368 312 +1228369 274 +1228370 625 +1228371 437 +1228372 939 +1228374 203 +1228375 574 +1228376 225 +1228377 283 +1228379 292 +1228381 214 +1228382 395 +1228384 211 +1228385 196 +1228386 359 +1228387 213 +1228389 165 +1228392 601 +1228393 887 +1228395 535 +1228396 702 +1228397 282 +1228399 224 +1228400 227 +1228402 583 +1228403 324 +1228404 345 +1228406 324 +1228407 279 +1228409 249 +1228412 396 +1228414 274 +1228415 220 +1228416 253 +1228417 265 +1228418 494 +1228421 439 +1228426 275 +1228428 259 +1228429 591 +1228431 923 +1228439 234 +1228443 430 +1228444 1292 +1228450 202 +1228453 297 +1228454 218 +1228460 280 +1228464 429 +1228465 159 +1228472 164 +1228477 184 +1228478 337 +1228479 181 +1228480 316 +1228483 210 +1228493 348 +1228494 196 +1228502 157 +1228506 370 +1228507 204 +1228508 190 +1228509 277 +1228512 215 +1228517 195 +1228520 286 +1228521 106 +1228522 427 +1228523 68 +1228524 193 +1228526 340 +1228527 303 +1228528 179 +1228532 156 +1228533 415 +1228534 250 +1228536 693 +1228537 283 +1228539 77 +1228541 199 +1228545 193 +1228547 318 +1228548 257 +1228549 153 +1228550 260 +1228552 240 +1228553 255 +1228554 244 +1228555 468 +1228558 233 +1228560 342 +1228561 175 +1228562 215 +1228563 248 +1228564 479 +1228565 99 +1228566 233 +1228568 141 +1228569 158 +1228570 187 +1228573 258 +1228574 193 +1228575 180 +1228577 150 +1228582 256 +1228583 273 +1228584 251 +1228585 285 +1228586 187 +1228589 420 +1228591 182 +1228592 137 +1228594 313 +1228595 227 +1228596 178 +1228599 171 +1228603 245 +1228605 181 +1228606 202 +1228608 229 +1228609 349 +1228613 168 +1228615 464 +1228616 241 +1228617 346 +1228618 151 +1228623 186 +1228624 253 +1228625 159 +1228626 244 +1228630 225 +1228631 219 +1228633 193 +1228638 174 +1228642 209 +1228645 300 +1228647 169 +1228648 149 +1228650 195 +1228652 161 +1228653 253 +1228654 190 +1228658 228 +1228660 181 +1228668 353 +1228669 206 +1228677 190 +1228678 186 +1228695 288 +1228699 276 +1228701 185 +1228705 149 +1228709 273 +1228711 210 +1228714 219 +1228715 215 +1228717 233 +1228718 161 +1228720 188 +1228723 223 +1228727 248 +1228728 199 +1228730 211 +1228742 186 +1228743 215 +1228749 185 +1228750 179 +1228755 677 +1228756 144 +1228757 139 +1228758 227 +1228762 260 +1228765 218 +1228769 183 +1228771 196 +1228773 461 +1228775 214 +1228777 309 +1228778 153 +1228780 155 +1228781 158 +1228783 254 +1228786 186 +1228794 120 +1228795 311 +1228799 176 +1228804 306 +1228805 183 +1228810 317 +1228811 283 +1228814 230 +1228816 177 +1228817 323 +1228819 217 +1228820 476 +1228824 223 +1228826 126 +1228830 126 +1228833 251 +1228836 223 +1228837 154 +1228839 461 +1228843 179 +1228844 197 +1228851 145 +1228852 217 +1228857 147 +1228858 244 +1228860 274 +1228861 282 +1228864 216 +1228865 221 +1228867 209 +1228869 126 +1228872 181 +1228874 170 +1228877 114 +1228878 165 +1228879 180 +1228880 286 +1228882 180 +1228884 205 +1228886 174 +1228888 205 +1228892 181 +1228894 161 +1228895 294 +1228896 298 +1228901 187 +1228903 217 +1228910 187 +1228911 181 +1228912 130 +1228914 227 +1228915 196 +1228916 173 +1228924 159 +1228925 175 +1228927 133 +1228928 207 +1228929 293 +1228931 192 +1228935 662 +1228936 930 +1228939 521 +1228942 227 +1228950 185 +1228951 285 +1228954 162 +1228956 679 +1228959 175 +1228960 214 +1228962 1902 +1228963 181 +1228973 207 +1228976 211 +1228987 406 +1228993 159 +1228998 201 +1228999 564 +1229003 139 +1229004 212 +1229008 178 +1229010 137 +1229013 129 +1229015 361 +1229028 149 +1229032 202 +1229033 109 +1229035 790 +1229037 165 +1229038 222 +1229039 214 +1229042 565 +1229050 112 +1229051 195 +1229056 303 +1229059 437 +1229063 790 +1229066 236 +1229071 149 +1229074 213 +1229075 172 +1229076 148 +1229077 157 +1229083 172 +1229084 171 +1229086 662 +1229090 184 +1229096 135 +1229100 232 +1229108 219 +1229110 217 +1229114 262 +1229115 260 +1229126 187 +1229128 192 +1229130 187 +1229132 131 +1229136 240 +1229138 157 +1229143 191 +1229150 226 +1229152 344 +1229160 187 +1229164 216 +1229166 148 +1229170 218 +1229171 142 +1229175 407 +1229176 112 +1229183 149 +1229185 144 +1229190 165 +1229191 142 +1229193 147 +1229195 202 +1229202 171 +1229203 167 +1229205 237 +1229206 189 +1229207 131 +1229210 480 +1229211 190 +1229213 199 +1229216 250 +1229217 152 +1229218 159 +1229219 184 +1229221 182 +1229223 241 +1229227 177 +1229230 182 +1229232 160 +1229233 194 +1229234 108 +1229235 272 +1229238 235 +1229242 352 +1229246 247 +1229248 800 +1229249 161 +1229250 113 +1229252 191 +1229257 246 +1229259 174 +1229260 224 +1229261 162 +1229262 193 +1229263 178 +1229264 188 +1229267 173 +1229269 261 +1229271 310 +1229272 193 +1229274 184 +1229276 181 +1229278 170 +1229281 218 +1229284 162 +1229285 246 +1229286 270 +1229290 190 +1229292 193 +1229293 241 +1229295 428 +1229296 214 +1229297 476 +1229299 159 +1229303 269 +1229306 202 +1229307 551 +1229308 248 +1229309 209 +1229311 390 +1229313 149 +1229315 236 +1229316 153 +1229321 260 +1229322 240 +1229323 180 +1229329 238 +1229330 175 +1229334 282 +1229339 289 +1229346 194 +1229348 278 +1229349 238 +1229351 144 +1229353 152 +1229355 192 +1229359 152 +1229360 200 +1229361 150 +1229364 223 +1229368 131 +1229370 167 +1229371 226 +1229372 252 +1229374 259 +1229375 198 +1229376 160 +1229379 235 +1229381 261 +1229382 371 +1229384 182 +1229385 324 +1229387 309 +1229388 162 +1229389 149 +1229391 330 +1229396 287 +1229397 260 +1229401 228 +1229402 175 +1229404 148 +1229405 181 +1229406 205 +1229409 262 +1229410 176 +1229413 176 +1229419 168 +1229420 210 +1229422 194 +1229425 187 +1229426 196 +1229427 221 +1229431 157 +1229433 126 +1229435 150 +1229437 267 +1229438 242 +1229439 245 +1229440 155 +1229441 224 +1229444 220 +1229446 178 +1229447 339 +1229448 161 +1229449 405 +1229450 394 +1229451 915 +1229453 443 +1229460 53 +1229464 142 +1229465 117 +1229466 486 +1229467 171 +1229468 219 +1229473 149 +1229479 220 +1229482 360 +1229484 191 +1229485 1294 +1229486 197 +1229487 100 +1229490 152 +1229491 226 +1229493 167 +1229494 169 +1229495 130 +1229497 100 +1229498 148 +1229499 173 +1229501 168 +1229504 136 +1229507 169 +1229508 223 +1229509 293 +1229513 367 +1229522 332 +1229528 199 +1229530 164 +1229532 191 +1229533 252 +1229535 123 +1229537 199 +1229538 168 +1229539 164 +1229541 159 +1229543 260 +1229544 149 +1229545 206 +1229546 173 +1229547 193 +1229549 144 +1229551 121 +1229552 194 +1229553 245 +1229558 182 +1229560 328 +1229561 383 +1229562 597 +1229563 381 +1229564 178 +1229565 205 +1229568 220 +1229569 147 +1229571 256 +1229574 254 +1229575 208 +1229577 169 +1229579 144 +1229585 145 +1229589 113 +1229590 220 +1229591 214 +1229593 147 +1229594 193 +1229597 182 +1229598 181 +1229607 180 +1229608 254 +1229609 219 +1229610 121 +1229617 147 +1229618 208 +1229620 198 +1229621 152 +1229622 197 +1229624 169 +1229626 168 +1229630 396 +1229631 166 +1229633 181 +1229634 187 +1229635 276 +1229639 229 +1229641 206 +1229642 259 +1229643 234 +1229648 185 +1229649 265 +1229650 151 +1229651 145 +1229652 295 +1229653 274 +1229654 198 +1229655 162 +1229658 380 +1229662 205 +1229663 184 +1229667 158 +1229669 704 +1229670 106 +1229672 225 +1229673 178 +1229677 214 +1229678 188 +1229679 224 +1229680 144 +1229681 144 +1229682 144 +1229683 184 +1229686 97 +1229687 270 +1229688 342 +1229689 201 +1229691 126 +1229693 192 +1229696 154 +1229699 313 +1229702 156 +1229703 187 +1229704 153 +1229708 162 +1229709 180 +1229710 262 +1229715 209 +1229726 193 +1229732 167 +1229733 189 +1229739 239 +1229742 208 +1229748 266 +1229753 287 +1229755 259 +1229756 968 +1229757 151 +1229759 241 +1229760 187 +1229764 197 +1229765 165 +1229766 343 +1229767 173 +1229770 197 +1229784 331 +1229785 248 +1229787 193 +1229789 240 +1229791 346 +1229797 266 +1229798 260 +1229800 363 +1229801 241 +1229802 612 +1229803 202 +1229806 144 +1229807 181 +1229816 132 +1229818 274 +1229820 1120 +1229829 260 +1229830 143 +1229839 190 +1229848 1681 +1229850 220 +1229861 235 +1229863 181 +1229865 183 +1229867 264 +1229878 231 +1229886 210 +1229887 182 +1229888 236 +1229892 189 +1229895 133 +1229904 193 +1229914 227 +1229915 313 +1229918 214 +1229926 578 +1229932 231 +1229934 192 +1229939 176 +1229959 257 +1229960 291 +1229965 481 +1229968 179 +1229971 196 +1229975 316 +1229977 145 +1229980 134 +1229981 199 +1229983 204 +1229987 285 +1229995 505 +1230002 413 +1230008 314 +1230016 183 +1230020 167 +1230026 190 +1230028 140 +1230040 323 +1230042 159 +1230046 134 +1230048 332 +1230049 790 +1230050 171 +1230052 181 +1230064 468 +1230067 154 +1230074 217 +1230078 415 +1230079 190 +1230089 203 +1230090 187 +1230092 214 +1230095 187 +1230096 152 +1230106 201 +1230108 151 +1230109 211 +1230113 204 +1230118 145 +1230120 147 +1230123 172 +1230136 279 +1230141 186 +1230143 197 +1230146 186 +1230151 172 +1230159 217 +1230170 193 +1230173 170 +1230175 731 +1230179 147 +1230180 220 +1230190 232 +1230191 1748 +1230197 179 +1230198 176 +1230200 167 +1230201 177 +1230203 143 +1230205 660 +1230210 225 +1230216 167 +1230219 243 +1230226 319 +1230230 266 +1230233 190 +1230238 242 +1230239 258 +1230244 415 +1230249 155 +1230250 149 +1230251 173 +1230258 269 +1230260 110 +1230263 258 +1230264 153 +1230282 312 +1230284 224 +1230286 205 +1230289 193 +1230295 440 +1230299 174 +1230304 234 +1230305 214 +1230307 72 +1230308 277 +1230315 202 +1230319 441 +1230320 112 +1230323 181 +1230329 159 +1230330 322 +1230331 801 +1230334 143 +1230336 175 +1230339 199 +1230341 189 +1230343 214 +1230344 197 +1230345 154 +1230346 164 +1230347 248 +1230348 187 +1230349 218 +1230353 156 +1230360 373 +1230361 369 +1230362 395 +1230364 181 +1230366 158 +1230367 329 +1230368 230 +1230369 233 +1230372 199 +1230377 268 +1230379 152 +1230380 349 +1230383 203 +1230384 197 +1230387 144 +1230390 335 +1230391 174 +1230392 157 +1230393 149 +1230394 368 +1230396 193 +1230397 791 +1230399 285 +1230404 197 +1230407 429 +1230409 175 +1230410 170 +1230411 190 +1230414 152 +1230417 201 +1230418 180 +1230419 153 +1230420 219 +1230424 237 +1230430 182 +1230432 207 +1230436 370 +1230439 240 +1230440 185 +1230442 521 +1230445 172 +1230447 351 +1230449 190 +1230451 173 +1230452 213 +1230453 175 +1230454 160 +1230457 168 +1230458 311 +1230460 188 +1230462 284 +1230463 166 +1230466 165 +1230467 243 +1230470 324 +1230471 267 +1230475 209 +1230478 189 +1230480 113 +1230485 159 +1230486 236 +1230488 153 +1230489 135 +1230490 197 +1230492 348 +1230494 151 +1230495 880 +1230496 324 +1230498 190 +1230499 203 +1230501 198 +1230502 147 +1230503 194 +1230506 306 +1230507 224 +1230510 309 +1230512 245 +1230513 254 +1230514 142 +1230517 130 +1230518 424 +1230519 235 +1230521 371 +1230522 203 +1230525 279 +1230527 252 +1230529 142 +1230530 298 +1230532 223 +1230534 161 +1230535 286 +1230539 182 +1230541 191 +1230542 216 +1230543 236 +1230551 184 +1230553 196 +1230556 158 +1230558 486 +1230559 183 +1230564 121 +1230569 183 +1230570 141 +1230573 148 +1230574 219 +1230576 177 +1230578 335 +1230582 212 +1230584 240 +1230585 790 +1230586 168 +1230588 268 +1230592 263 +1230593 202 +1230596 200 +1230597 301 +1230601 317 +1230602 74 +1230604 206 +1230605 324 +1230606 184 +1230607 151 +1230609 208 +1230610 155 +1230612 234 +1230613 182 +1230618 870 +1230619 207 +1230620 868 +1230625 634 +1230626 388 +1230629 162 +1230634 1280 +1230636 260 +1230638 141 +1230639 190 +1230640 199 +1230642 209 +1230647 181 +1230648 170 +1230655 103 +1230656 170 +1230658 153 +1230662 252 +1230663 279 +1230664 160 +1230669 240 +1230674 182 +1230675 192 +1230676 175 +1230677 114 +1230678 145 +1230682 152 +1230688 167 +1230689 172 +1230691 145 +1230693 304 +1230695 162 +1230700 308 +1230702 251 +1230703 238 +1230704 879 +1230705 218 +1230706 175 +1230707 274 +1230708 170 +1230709 229 +1230710 193 +1230714 261 +1230716 390 +1230722 266 +1230724 134 +1230725 187 +1230726 141 +1230734 153 +1230735 339 +1230737 184 +1230739 140 +1230740 200 +1230741 157 +1230742 40 +1230746 175 +1230750 196 +1230751 180 +1230756 468 +1230757 163 +1230759 209 +1230761 157 +1230763 164 +1230766 137 +1230767 118 +1230769 187 +1230772 291 +1230778 187 +1230779 230 +1230789 281 +1230791 119 +1230792 173 +1230795 199 +1230800 186 +1230801 254 +1230807 39 +1230810 190 +1230812 39 +1230813 493 +1230820 250 +1230822 183 +1230823 162 +1230824 367 +1230826 156 +1230827 138 +1230831 272 +1230833 245 +1230835 138 +1230836 178 +1230838 158 +1230840 241 +1230841 187 +1230844 178 +1230846 144 +1230848 185 +1230850 182 +1230854 181 +1230857 137 +1230859 213 +1230862 421 +1230865 199 +1230866 161 +1230868 167 +1230872 150 +1230878 190 +1230879 279 +1230885 305 +1230888 419 +1230892 307 +1230893 238 +1230894 154 +1230897 391 +1230899 285 +1230900 131 +1230901 302 +1230903 308 +1230907 210 +1230908 234 +1230909 169 +1230910 154 +1230917 175 +1230919 193 +1230920 188 +1230923 183 +1230925 143 +1230926 226 +1230927 352 +1230930 171 +1230931 205 +1230934 186 +1230935 240 +1230936 226 +1230938 864 +1230939 174 +1230942 126 +1230943 214 +1230947 145 +1230950 142 +1230951 140 +1230954 180 +1230956 180 +1230958 257 +1230959 401 +1230960 136 +1230961 178 +1230964 222 +1230965 194 +1230966 162 +1230969 118 +1230984 391 +1230985 133 +1230986 176 +1230987 234 +1230989 142 +1230990 202 +1230991 392 +1230993 305 +1230995 284 +1231000 289 +1231001 218 +1231002 161 +1231007 143 +1231011 201 +1231012 225 +1231013 339 +1231014 180 +1231016 203 +1231017 373 +1231018 184 +1231019 242 +1231020 714 +1231021 162 +1231023 224 +1231029 282 +1231030 380 +1231033 178 +1231035 180 +1231038 161 +1231047 163 +1231049 508 +1231051 209 +1231053 317 +1231056 256 +1231058 168 +1231060 190 +1231061 165 +1231065 189 +1231067 327 +1231071 179 +1231073 181 +1231074 279 +1231075 329 +1231078 171 +1231079 445 +1231080 166 +1231083 200 +1231084 322 +1231086 156 +1231087 304 +1231088 368 +1231091 121 +1231092 207 +1231095 233 +1231097 134 +1231099 153 +1231103 254 +1231104 153 +1231107 227 +1231110 199 +1231114 485 +1231117 73 +1231118 213 +1231120 135 +1231121 162 +1231124 239 +1231126 160 +1231127 413 +1231131 121 +1231135 174 +1231139 161 +1231143 185 +1231146 405 +1231152 174 +1231153 313 +1231155 401 +1231156 145 +1231157 167 +1231159 239 +1231170 190 +1231173 183 +1231174 200 +1231176 299 +1231178 157 +1231180 380 +1231181 157 +1231182 156 +1231183 169 +1231184 327 +1231186 178 +1231189 141 +1231190 370 +1231192 455 +1231194 205 +1231198 314 +1231199 142 +1231202 144 +1231206 201 +1231207 180 +1231209 146 +1231211 180 +1231216 190 +1231220 218 +1231221 160 +1231222 192 +1231224 227 +1231225 208 +1231227 156 +1231228 175 +1231229 191 +1231231 146 +1231232 251 +1231233 189 +1231235 253 +1231239 246 +1231245 154 +1231246 170 +1231247 259 +1231248 222 +1231249 241 +1231251 184 +1231253 240 +1231256 283 +1231257 208 +1231258 282 +1231266 194 +1231267 626 +1231270 159 +1231271 469 +1231272 288 +1231277 193 +1231278 184 +1231280 259 +1231291 247 +1231292 196 +1231293 209 +1231296 180 +1231299 221 +1231300 234 +1231303 141 +1231305 242 +1231307 147 +1231310 195 +1231313 192 +1231314 232 +1231316 189 +1231318 180 +1231320 174 +1231322 363 +1231323 367 +1231324 44 +1231327 215 +1231330 155 +1231331 127 +1231333 235 +1231334 193 +1231335 401 +1231336 294 +1231337 180 +1231338 248 +1231341 146 +1231343 270 +1231344 174 +1231346 193 +1231349 425 +1231355 405 +1231361 165 +1231362 244 +1231365 336 +1231366 169 +1231367 199 +1231368 156 +1231375 365 +1231377 114 +1231381 311 +1231383 166 +1231384 226 +1231387 148 +1231391 535 +1231392 180 +1231393 148 +1231394 369 +1231395 207 +1231397 202 +1231399 165 +1231400 159 +1231401 605 +1231402 292 +1231406 279 +1231410 182 +1231411 232 +1231413 119 +1231414 441 +1231418 156 +1231419 325 +1231420 211 +1231423 164 +1231425 231 +1231426 178 +1231427 193 +1231432 324 +1231434 172 +1231437 199 +1231438 162 +1231439 215 +1231440 193 +1231441 108 +1231443 152 +1231446 180 +1231448 207 +1231449 171 +1231451 134 +1231458 220 +1231462 145 +1231465 165 +1231466 411 +1231467 146 +1231469 198 +1231474 171 +1231477 235 +1231479 226 +1231480 681 +1231481 179 +1231482 208 +1231485 230 +1231490 202 +1231495 196 +1231498 161 +1231500 248 +1231501 126 +1231503 223 +1231504 192 +1231508 139 +1231509 250 +1231510 136 +1231511 223 +1231512 122 +1231515 150 +1231517 357 +1231518 407 +1231519 183 +1231522 121 +1231525 245 +1231527 329 +1231532 190 +1231534 514 +1231536 222 +1231537 104 +1231538 237 +1231539 212 +1231541 352 +1231545 207 +1231546 169 +1231551 357 +1231553 242 +1231555 145 +1231558 249 +1231561 180 +1231567 255 +1231571 187 +1231572 298 +1231576 600 +1231577 221 +1231578 219 +1231579 304 +1231587 431 +1231591 165 +1231592 201 +1231594 211 +1231597 327 +1231598 175 +1231606 1832 +1231607 264 +1231617 981 +1231618 334 +1231621 200 +1231632 180 +1231634 186 +1231642 185 +1231644 652 +1231645 471 +1231646 198 +1231647 396 +1231654 246 +1231655 222 +1231656 304 +1231657 189 +1231659 622 +1231660 197 +1231662 320 +1231663 142 +1231664 168 +1231671 383 +1231676 192 +1231680 150 +1231689 156 +1231692 201 +1231694 332 +1231695 142 +1231696 180 +1231704 275 +1231709 349 +1231712 282 +1231713 195 +1231716 196 +1231717 182 +1231720 300 +1231721 730 +1231730 278 +1231738 335 +1231743 212 +1231747 180 +1231755 184 +1231758 171 +1231760 195 +1231773 248 +1231776 293 +1231781 183 +1231784 193 +1231788 443 +1231789 223 +1231792 471 +1231800 212 +1231802 756 +1231806 251 +1231811 231 +1231812 284 +1231817 180 +1231819 346 +1231824 368 +1231826 587 +1231829 310 +1231843 224 +1231854 155 +1231856 256 +1231860 179 +1231863 461 +1231867 199 +1231878 223 +1231879 196 +1231885 260 +1231890 336 +1231894 249 +1231921 440 +1231937 241 +1231943 332 +1231947 187 +1231954 221 +1231957 208 +1231969 190 +1231971 260 +1231974 299 +1231975 216 +1231978 212 +1231992 203 +1232004 272 +1232015 193 +1232032 193 +1232040 227 +1232051 190 +1232058 215 +1232062 306 +1232065 237 +1232130 193 +1232143 337 +1232147 219 +1232151 653 +1232167 363 +1232172 255 +1232174 183 +1232185 243 +1232222 313 +1232235 366 +1232280 301 +1232344 220 +1232348 187 +1232349 240 +1232371 441 +1232379 204 +1232380 764 +1232391 218 +1232409 190 +1232430 186 +1232441 198 +1232448 193 +1232458 209 +1232475 332 +1232477 141 +1232478 224 +1232486 174 +1232505 201 +1232516 401 +1232532 266 +1232545 191 +1232564 271 +1232570 404 +1232577 252 +1232588 328 +1232611 211 +1232629 196 +1232638 155 +1232640 196 +1232645 234 +1232646 193 +1232656 226 +1232657 193 +1232663 305 +1232664 287 +1232682 404 +1232684 229 +1232699 415 +1232708 187 +1232747 361 +1232748 173 +1232757 419 +1232767 330 +1232768 201 +1232778 175 +1232786 347 +1232790 218 +1232796 146 +1232803 255 +1232810 199 +1232811 213 +1232812 183 +1232825 181 +1232831 198 +1232837 369 +1232839 255 +1232851 357 +1232858 183 +1232863 187 +1232868 209 +1232881 174 +1232883 327 +1232897 208 +1232898 194 +1232912 190 +1232924 325 +1232933 190 +1232942 229 +1232944 270 +1232945 457 +1232947 128 +1232969 485 +1233001 311 +1233006 195 +1233010 272 +1233039 180 +1233059 215 +1233067 167 +1233072 190 +1233076 203 +1233085 467 +1233095 530 +1233102 290 +1233143 336 +1233145 190 +1233148 245 +1233150 177 +1233152 215 +1233166 256 +1233184 200 +1233193 115 +1233204 181 +1233209 295 +1233211 560 +1233218 254 +1233221 207 +1233225 196 +1233232 181 +1233237 217 +1233239 208 +1233240 223 +1233248 243 +1233288 214 +1233291 424 +1233292 400 +1233294 246 +1233308 222 +1233313 255 +1233322 217 +1233330 186 +1233332 275 +1233350 199 +1233355 213 +1233364 181 +1233397 181 +1233402 288 +1233408 358 +1233429 242 +1233435 300 +1233437 281 +1233441 259 +1233457 193 +1233459 403 +1233463 177 +1233468 170 +1233485 242 +1233489 200 +1233511 155 +1233538 230 +1233544 216 +1233558 187 +1233566 217 +1233577 250 +1233581 187 +1233584 199 +1233594 214 +1233597 211 +1233611 194 +1233636 245 +1233637 223 +1233654 197 +1233657 180 +1233661 213 +1233672 225 +1233692 143 +1233698 239 +1233699 224 +1233700 304 +1233702 238 +1233704 263 +1233728 219 +1233731 208 +1233734 201 +1233738 254 +1233757 177 +1233760 212 +1233774 192 +1233776 425 +1233781 211 +1233786 287 +1233797 197 +1233799 98 +1233802 216 +1233843 193 +1233863 569 +1233883 218 +1233896 238 +1233902 219 +1233913 371 +1233915 200 +1233918 210 +1233932 286 +1233935 241 +1233939 224 +1233941 357 +1233947 123 +1233967 209 +1233994 190 +1233996 415 +1234001 228 +1234003 203 +1234019 195 +1234043 196 +1234051 267 +1234068 201 +1234076 253 +1234079 187 +1234088 205 +1234094 243 +1234104 184 +1234106 249 +1234111 187 +1234114 326 +1234121 344 +1234175 159 +1234177 334 +1234179 259 +1234190 229 +1234208 227 +1234213 199 +1234217 251 +1234225 193 +1234243 416 +1234246 218 +1234280 159 +1234294 226 +1234297 239 +1234305 165 +1234309 181 +1234312 306 +1234328 217 +1234350 250 +1234363 187 +1234372 325 +1234373 220 +1234375 234 +1234395 177 +1234400 182 +1234408 217 +1234409 248 +1234429 187 +1234433 287 +1234434 324 +1234441 363 +1234450 430 +1234459 181 +1234466 177 +1234474 343 +1234477 285 +1234481 199 +1234486 189 +1234494 205 +1234508 599 +1234524 433 +1234525 318 +1234529 221 +1234540 192 +1234545 195 +1234554 441 +1234559 190 +1234566 183 +1234569 205 +1234576 465 +1234577 181 +1234586 262 +1234592 350 +1234593 244 +1234596 187 +1234597 167 +1234609 338 +1234613 259 +1234615 185 +1234620 175 +1234634 215 +1234645 263 +1234652 186 +1234653 224 +1234654 295 +1234661 532 +1234685 193 +1234686 179 +1234699 235 +1234703 251 +1234716 174 +1234720 224 +1234729 239 +1234738 187 +1234751 220 +1234755 226 +1234762 392 +1234781 199 +1234782 235 +1234785 178 +1234789 226 +1234790 180 +1234794 361 +1234796 108 +1234797 190 +1234798 223 +1234806 366 +1234815 413 +1234832 300 +1234836 183 +1234842 179 +1234856 248 +1234858 213 +1234861 196 +1234863 180 +1234865 178 +1234881 308 +1234894 381 +1234896 203 +1234913 346 +1234916 181 +1234933 399 +1234958 169 +1235001 396 +1235011 216 +1235018 217 +1235033 244 +1235035 346 +1235046 387 +1235047 195 +1235048 208 +1235052 489 +1235056 172 +1235063 183 +1235067 412 +1235070 324 +1235088 330 +1235109 179 +1235117 238 +1235119 401 +1235136 196 +1235143 187 +1235146 242 +1235154 209 +1235156 250 +1235167 173 +1235170 336 +1235173 308 +1235185 210 +1235186 192 +1235187 176 +1235194 193 +1235195 265 +1235198 207 +1235202 196 +1235212 407 +1235254 239 +1235256 328 +1235257 180 +1235260 194 +1235261 180 +1235279 224 +1235284 178 +1235303 214 +1235306 229 +1235307 211 +1235308 170 +1235325 326 +1235330 202 +1235333 362 +1235341 194 +1235342 170 +1235352 174 +1235378 179 +1235381 205 +1235429 233 +1235430 206 +1235441 189 +1235442 173 +1235443 302 +1235450 264 +1235460 197 +1235475 278 +1235479 181 +1235494 282 +1235497 270 +1235509 192 +1235515 205 +1235516 235 +1235518 284 +1235519 265 +1235522 136 +1235530 205 +1235537 171 +1235577 249 +1235579 253 +1235613 193 +1235617 196 +1235623 157 +1235624 190 +1235626 174 +1235645 196 +1235665 216 +1235683 187 +1235687 453 +1235690 174 +1235695 290 +1235702 359 +1235703 203 +1235704 238 +1235710 181 +1235714 193 +1235737 269 +1235738 192 +1235757 181 +1235799 328 +1235803 453 +1235807 415 +1235821 197 +1235822 205 +1235830 235 +1235832 274 +1235852 181 +1235861 284 +1235868 257 +1235874 174 +1235878 181 +1235890 276 +1235902 187 +1235905 209 +1235913 196 +1235919 205 +1235922 176 +1235938 201 +1235945 226 +1235948 77 +1235956 243 +1235957 214 +1235973 162 +1235985 212 +1235998 271 +1236018 161 +1236043 155 +1236058 186 +1236061 248 +1236071 245 +1236079 218 +1236080 230 +1236092 232 +1236093 192 +1236095 214 +1236101 208 +1236106 189 +1236107 351 +1236111 187 +1236113 327 +1236114 193 +1236117 413 +1236125 363 +1236126 378 +1236133 219 +1236138 205 +1236158 179 +1236171 273 +1236177 167 +1236186 165 +1236188 210 +1236210 187 +1236211 306 +1236228 234 +1236231 220 +1236253 233 +1236254 406 +1236263 150 +1236268 222 +1236277 274 +1236282 183 +1236290 213 +1236295 195 +1236299 220 +1236303 200 +1236317 233 +1236327 244 +1236329 239 +1236334 360 +1236360 220 +1236366 215 +1236396 184 +1236403 173 +1236412 146 +1236429 223 +1236430 309 +1236434 202 +1236450 352 +1236460 202 +1236462 242 +1236463 224 +1236491 168 +1236506 145 +1236511 473 +1236519 294 +1236524 430 +1236534 187 +1236535 205 +1236549 334 +1236554 187 +1236557 239 +1236571 189 +1236591 194 +1236600 358 +1236601 183 +1236602 278 +1236607 319 +1236612 321 +1236617 257 +1236632 199 +1236637 244 +1236650 190 +1236671 198 +1236714 206 +1236728 281 +1236736 193 +1236744 203 +1236745 257 +1236758 101 +1236760 448 +1236769 182 +1236779 181 +1236780 440 +1236783 282 +1236784 261 +1236805 245 +1236813 195 +1236815 200 +1236818 191 +1236819 208 +1236824 251 +1236825 163 +1236829 214 +1236839 234 +1236843 396 +1236845 227 +1236848 232 +1236849 176 +1236871 401 +1236877 195 +1236903 186 +1236906 196 +1236908 190 +1236912 246 +1236913 290 +1236944 180 +1236961 180 +1236994 226 +1237006 178 +1237007 354 +1237022 250 +1237028 255 +1237051 247 +1237111 253 +1237115 196 +1237139 219 +1237144 530 +1237156 208 +1237159 193 +1237213 325 +1237214 293 +1237230 202 +1237244 254 +1237252 195 +1237269 208 +1237270 180 +1237271 254 +1237273 211 +1237293 222 +1237299 221 +1237301 333 +1237306 185 +1237310 160 +1237320 213 +1237329 187 +1237331 244 +1237334 280 +1237343 186 +1237345 249 +1237350 310 +1237351 219 +1237363 271 +1237369 321 +1237370 161 +1237373 187 +1237374 225 +1237444 214 +1237445 227 +1237455 181 +1237456 214 +1237457 218 +1237465 301 +1237470 183 +1237473 193 +1237475 171 +1237480 214 +1237489 185 +1237493 488 +1237504 378 +1237549 230 +1237572 200 +1237574 199 +1237577 186 +1237604 420 +1237635 174 +1237639 180 +1237645 260 +1237647 242 +1237660 211 +1237678 247 +1237681 244 +1237700 187 +1237701 187 +1237713 165 +1237728 366 +1237729 196 +1237789 235 +1237792 118 +1237813 190 +1237820 202 +1237832 318 +1237833 168 +1237855 184 +1237860 188 +1237869 206 +1237871 205 +1237872 275 +1237899 214 +1237928 199 +1237929 241 +1237948 140 +1237950 197 +1237963 190 +1237972 447 +1237983 441 +1237984 193 +1237992 167 +1237996 195 +1238002 194 +1238007 394 +1238008 253 +1238010 272 +1238013 249 +1238014 317 +1238053 238 +1238067 199 +1238071 210 +1238072 226 +1238074 270 +1238076 241 +1238081 231 +1238082 187 +1238093 208 +1238097 209 +1238101 196 +1238132 193 +1238142 220 +1238165 178 +1238169 347 +1238181 253 +1238184 187 +1238190 186 +1238207 347 +1238217 196 +1238225 207 +1238232 231 +1238233 293 +1238252 217 +1238253 180 +1238268 335 +1238278 196 +1238306 183 +1238308 171 +1238312 233 +1238329 402 +1238330 99 +1238336 421 +1238353 237 +1238365 187 +1238389 319 +1238396 266 +1238406 392 +1238419 209 +1238425 178 +1238436 323 +1238438 225 +1238449 300 +1238461 247 +1238470 197 +1238474 244 +1238491 196 +1238494 176 +1238521 248 +1238541 377 +1238543 205 +1238545 206 +1238552 564 +1238641 201 +1238644 193 +1238651 180 +1238664 200 +1238673 256 +1238676 220 +1238677 304 +1238713 187 +1238733 233 +1238735 249 +1238738 193 +1238742 224 +1238748 230 +1238752 246 +1238754 452 +1238769 255 +1238781 246 +1238789 143 +1238790 211 +1238814 224 +1238820 210 +1238846 187 +1238851 209 +1238859 264 +1238871 168 +1238874 246 +1238898 205 +1238913 321 +1238917 474 +1238928 237 +1238930 221 +1238933 567 +1238940 201 +1238953 520 +1238958 214 +1238984 156 +1238986 242 +1239005 174 +1239016 293 +1239018 190 +1239029 404 +1239039 380 +1239043 343 +1239054 532 +1239056 338 +1239081 221 +1239083 259 +1239086 235 +1239090 199 +1239091 161 +1239099 187 +1239103 342 +1239109 182 +1239119 190 +1239134 296 +1239142 180 +1239144 192 +1239146 700 +1239151 317 +1239163 229 +1239166 190 +1239171 187 +1239179 603 +1239197 176 +1239200 283 +1239215 328 +1239220 189 +1239223 241 +1239224 270 +1239228 272 +1239242 174 +1239259 217 +1239292 175 +1239298 222 +1239311 202 +1239330 255 +1239335 184 +1239340 181 +1239348 208 +1239360 331 +1239361 172 +1239370 221 +1239374 213 +1239376 187 +1239378 191 +1239383 250 +1239415 219 +1239431 140 +1239447 200 +1239480 187 +1239483 210 +1239485 206 +1239492 255 +1239503 223 +1239514 219 +1239518 156 +1239561 194 +1239569 281 +1239577 190 +1239588 178 +1239683 357 +1239686 200 +1239715 199 +1239716 235 +1239718 357 +1239722 188 +1239728 187 +1239745 180 +1239754 174 +1239759 243 +1239791 193 +1239792 201 +1239810 223 +1239812 430 +1239819 170 +1239821 215 +1239822 205 +1239826 354 +1239827 202 +1239860 231 +1239867 223 +1239868 232 +1239870 182 +1239888 183 +1239894 177 +1239912 186 +1239927 276 +1239930 439 +1239945 181 +1239946 186 +1239958 463 +1239962 439 +1239963 433 +1239968 240 +1239970 187 +1239977 187 +1239983 418 +1239985 209 +1239998 256 +1240003 211 +1240028 183 +1240051 172 +1240089 286 +1240114 199 +1240115 186 +1240120 302 +1240143 199 +1240146 205 +1240155 221 +1240167 243 +1240177 439 +1240201 199 +1240204 235 +1240206 364 +1240214 177 +1240215 172 +1240224 228 +1240233 251 +1240242 190 +1240243 193 +1240249 194 +1240251 156 +1240271 187 +1240279 124 +1240280 190 +1240310 266 +1240319 440 +1240320 209 +1240339 162 +1240343 326 +1240345 196 +1240354 241 +1240358 238 +1240373 189 +1240376 472 +1240379 187 +1240394 190 +1240395 219 +1240422 342 +1240434 266 +1240455 282 +1240464 325 +1240469 183 +1240477 205 +1240490 137 +1240494 184 +1240521 465 +1240544 180 +1240551 199 +1240559 309 +1240571 240 +1240574 203 +1240576 243 +1240589 202 +1240599 190 +1240608 196 +1240622 355 +1240628 168 +1240631 187 +1240649 225 +1240650 173 +1240657 261 +1240669 186 +1240724 210 +1240735 215 +1240736 230 +1240738 226 +1240762 239 +1240765 190 +1240773 199 +1240776 204 +1240790 191 +1240793 467 +1240809 189 +1240813 290 +1240846 254 +1240855 236 +1240862 188 +1240893 186 +1240903 504 +1240910 261 +1240923 335 +1240938 226 +1240942 219 +1240946 186 +1240960 178 +1240983 269 +1241017 600 +1241018 207 +1241022 552 +1241027 178 +1241052 178 +1241067 238 +1241070 339 +1241076 251 +1241080 193 +1241102 402 +1241113 190 +1241130 191 +1241152 210 +1241177 193 +1241178 196 +1241180 298 +1241198 180 +1241204 212 +1241210 230 +1241211 584 +1241212 283 +1241217 168 +1241225 215 +1241230 193 +1241244 193 +1241251 189 +1241255 216 +1241257 258 +1241277 190 +1241310 208 +1241322 198 +1241331 292 +1241335 220 +1241336 289 +1241337 200 +1241338 133 +1241340 159 +1241342 490 +1241346 185 +1241358 248 +1241364 148 +1241365 282 +1241371 201 +1241389 187 +1241393 168 +1241395 222 +1241396 166 +1241398 284 +1241402 257 +1241408 212 +1241409 167 +1241417 186 +1241426 220 +1241430 250 +1241431 178 +1241432 202 +1241444 341 +1241452 177 +1241454 362 +1241456 193 +1241459 196 +1241461 212 +1241470 216 +1241472 351 +1241475 187 +1241481 227 +1241484 335 +1241485 179 +1241494 199 +1241496 229 +1241507 190 +1241529 208 +1241545 260 +1241548 340 +1241552 410 +1241556 347 +1241557 282 +1241560 365 +1241562 220 +1241564 193 +1241566 211 +1241574 301 +1241576 291 +1241577 195 +1241578 230 +1241581 226 +1241583 419 +1241584 230 +1241586 353 +1241590 604 +1241594 429 +1241595 189 +1241596 271 +1241599 346 +1241603 187 +1241609 240 +1241612 224 +1241614 358 +1241618 190 +1241625 494 +1241631 473 +1241636 234 +1241637 249 +1241639 247 +1241641 198 +1241643 315 +1241645 198 +1241646 204 +1241647 395 +1241652 186 +1241653 247 +1241655 168 +1241662 173 +1241666 367 +1241668 151 +1241670 156 +1241671 192 +1241673 261 +1241676 321 +1241680 279 +1241682 144 +1241683 219 +1241685 195 +1241686 224 +1241687 191 +1241690 181 +1241693 249 +1241694 288 +1241695 262 +1241696 254 +1241698 365 +1241716 80 +1241721 147 +1241723 225 +1241725 285 +1241728 152 +1241730 131 +1241734 242 +1241737 180 +1241738 170 +1241747 337 +1241767 186 +1241769 262 +1241771 172 +1241789 233 +1241802 187 +1241811 246 +1241816 213 +1241822 193 +1241832 301 +1241833 214 +1241835 226 +1241842 250 +1241850 186 +1241855 174 +1241862 198 +1241863 205 +1241870 183 +1241874 297 +1241876 193 +1241885 228 +1241894 180 +1241898 168 +1241900 173 +1241903 199 +1241906 241 +1241910 570 +1241916 236 +1241918 202 +1241920 114 +1241923 310 +1241924 189 +1241936 266 +1241945 255 +1241947 226 +1241949 209 +1241952 231 +1241956 202 +1241958 191 +1241961 183 +1241964 247 +1241968 184 +1241973 196 +1241983 347 +1241992 324 +1241998 306 +1242002 115 +1242006 200 +1242010 281 +1242013 217 +1242017 318 +1242020 1607 +1242026 332 +1242029 161 +1242030 141 +1242033 105 +1242041 304 +1242042 152 +1242045 196 +1242049 118 +1242053 236 +1242059 195 +1242061 273 +1242064 211 +1242066 499 +1242073 345 +1242082 298 +1242086 169 +1242087 295 +1242091 171 +1242098 190 +1242099 234 +1242102 202 +1242111 180 +1242120 272 +1242123 266 +1242125 388 +1242129 187 +1242131 142 +1242138 187 +1242139 182 +1242144 149 +1242148 150 +1242149 224 +1242153 207 +1242168 178 +1242173 133 +1242181 195 +1242191 202 +1242193 162 +1242194 230 +1242195 177 +1242212 327 +1242215 273 +1242222 190 +1242225 150 +1242226 212 +1242231 662 +1242232 270 +1242240 133 +1242241 157 +1242243 150 +1242245 195 +1242247 359 +1242248 74 +1242252 145 +1242255 186 +1242256 235 +1242263 222 +1242270 158 +1242272 319 +1242274 167 +1242275 176 +1242276 182 +1242277 187 +1242279 219 +1242283 232 +1242286 112 +1242290 158 +1242292 182 +1242294 242 +1242296 235 +1242304 194 +1242305 67 +1242312 175 +1242313 171 +1242316 143 +1242319 256 +1242320 165 +1242321 145 +1242323 380 +1242335 350 +1242336 235 +1242342 340 +1242354 225 +1242356 186 +1242358 294 +1242385 320 +1242395 217 +1242438 143 +1242442 169 +1242460 149 +1242466 173 +1242482 800 +1242495 210 +1242504 224 +1242519 206 +1242524 375 +1242525 187 +1242530 184 +1242557 190 +1242600 341 +1242611 439 +1242622 477 +1242628 326 +1242630 205 +1242651 281 +1242668 237 +1242673 183 +1242675 249 +1242682 288 +1242692 180 +1242693 275 +1242704 521 +1242706 588 +1242713 264 +1242716 277 +1242730 174 +1242733 238 +1242755 211 +1242761 196 +1242764 635 +1242770 273 +1242771 239 +1242776 240 +1242786 223 +1242788 400 +1242798 240 +1242821 211 +1242825 317 +1242826 166 +1242839 181 +1242860 407 +1242871 174 +1242876 149 +1242882 260 +1242887 194 +1242888 174 +1242889 181 +1242897 174 +1242907 250 +1242911 200 +1242927 191 +1242948 412 +1242960 284 +1242965 181 +1242967 295 +1242986 152 +1242989 183 +1242990 302 +1242994 184 +1243014 161 +1243015 147 +1243017 187 +1243024 145 +1243025 360 +1243060 174 +1243088 180 +1243092 188 +1243093 148 +1243103 168 +1243105 184 +1243110 195 +1243113 406 +1243114 263 +1243120 447 +1243144 163 +1243149 221 +1243153 143 +1243154 163 +1243156 300 +1243162 250 +1243185 195 +1243186 280 +1243191 293 +1243197 227 +1243203 163 +1243206 466 +1243207 199 +1243208 301 +1243210 181 +1243212 199 +1243213 238 +1243221 248 +1243223 186 +1243227 173 +1243250 219 +1243251 191 +1243258 193 +1243260 424 +1243262 131 +1243275 264 +1243299 478 +1243312 199 +1243322 140 +1243324 221 +1243328 199 +1243329 227 +1243332 294 +1243340 274 +1243346 338 +1243347 211 +1243353 219 +1243354 531 +1243361 193 +1243369 218 +1243375 217 +1243393 268 +1243394 169 +1243396 738 +1243402 295 +1243432 295 +1243440 355 +1243441 223 +1243446 234 +1243450 300 +1243454 187 +1243462 523 +1243466 229 +1243471 183 +1243474 213 +1243490 284 +1243502 129 +1243509 223 +1243519 206 +1243524 382 +1243535 144 +1243540 336 +1243541 204 +1243546 406 +1243553 177 +1243554 187 +1243555 222 +1243560 181 +1243565 176 +1243571 531 +1243576 183 +1243577 192 +1243580 362 +1243584 243 +1243586 236 +1243595 722 +1243611 325 +1243624 199 +1243625 175 +1243640 207 +1243655 464 +1243659 136 +1243663 224 +1243665 230 +1243667 205 +1243669 181 +1243678 167 +1243692 274 +1243712 202 +1243720 193 +1243724 217 +1243727 738 +1243734 170 +1243741 492 +1243742 250 +1243748 190 +1243754 258 +1243774 345 +1243775 216 +1243778 387 +1243791 211 +1243818 258 +1243821 181 +1243852 257 +1243853 311 +1243865 197 +1243877 883 +1243879 159 +1243880 576 +1243889 165 +1243890 182 +1243898 199 +1243902 187 +1243904 303 +1243922 217 +1243941 196 +1243947 195 +1243950 271 +1243959 197 +1243960 146 +1243961 149 +1243963 286 +1243965 279 +1243970 205 +1243972 233 +1243973 287 +1243980 325 +1243994 483 +1244004 243 +1244018 156 +1244022 335 +1244041 226 +1244047 254 +1244048 197 +1244052 285 +1244081 187 +1244083 216 +1244085 165 +1244092 212 +1244101 618 +1244104 250 +1244106 193 +1244110 648 +1244122 73 +1244124 192 +1244130 258 +1244140 218 +1244148 221 +1244170 112 +1244184 208 +1244189 250 +1244193 191 +1244194 350 +1244202 469 +1244207 225 +1244208 213 +1244217 191 +1244218 155 +1244224 169 +1244262 192 +1244285 187 +1244286 196 +1244290 187 +1244308 316 +1244320 312 +1244345 185 +1244350 419 +1244355 110 +1244358 191 +1244378 249 +1244395 161 +1244398 211 +1244414 214 +1244422 380 +1244428 221 +1244442 181 +1244452 314 +1244455 166 +1244458 305 +1244464 256 +1244469 264 +1244471 155 +1244475 482 +1244476 199 +1244501 341 +1244508 186 +1244523 198 +1244543 196 +1244547 216 +1244550 199 +1244585 201 +1244586 382 +1244599 825 +1244605 327 +1244644 272 +1244661 310 +1244669 160 +1244670 193 +1244683 512 +1244685 189 +1244689 253 +1244694 257 +1244706 253 +1244738 187 +1244764 208 +1244767 247 +1244772 329 +1244789 183 +1244807 155 +1244812 193 +1244834 208 +1244835 690 +1244836 193 +1244842 205 +1244856 193 +1244867 301 +1244872 280 +1244873 322 +1244885 361 +1244900 230 +1244903 584 +1244905 151 +1244909 193 +1244923 284 +1244927 258 +1244929 284 +1244938 190 +1244956 187 +1244966 193 +1244969 161 +1244993 364 +1244998 340 +1245002 297 +1245005 159 +1245006 190 +1245032 187 +1245052 132 +1245074 270 +1245076 299 +1245082 181 +1245083 209 +1245097 345 +1245100 190 +1245101 256 +1245106 264 +1245107 398 +1245129 211 +1245145 225 +1245151 220 +1245177 263 +1245178 345 +1245231 152 +1245236 220 +1245246 202 +1245251 183 +1245254 235 +1245257 257 +1245274 259 +1245300 186 +1245312 80 +1245317 337 +1245322 198 +1245332 201 +1245333 207 +1245353 205 +1245366 295 +1245370 149 +1245385 310 +1245400 302 +1245411 187 +1245416 220 +1245426 128 +1245428 229 +1245448 173 +1245457 169 +1245481 328 +1245485 256 +1245486 187 +1245497 189 +1245503 257 +1245514 336 +1245522 240 +1245523 214 +1245525 253 +1245528 192 +1245530 311 +1245545 268 +1245556 257 +1245570 181 +1245574 284 +1245577 180 +1245591 250 +1245605 207 +1245616 117 +1245618 230 +1245621 320 +1245624 439 +1245635 475 +1245663 194 +1245667 336 +1245671 215 +1245711 207 +1245714 294 +1245725 200 +1245747 193 +1245754 198 +1245756 227 +1245762 177 +1245767 370 +1245805 589 +1245849 202 +1245852 304 +1245879 341 +1245882 311 +1245886 240 +1245892 473 +1245896 574 +1245904 386 +1245931 298 +1245956 207 +1245982 347 +1245993 173 +1245999 195 +1246018 472 +1246021 239 +1246028 295 +1246049 317 +1246050 269 +1246065 202 +1246082 364 +1246086 291 +1246100 276 +1246126 183 +1246151 151 +1246164 440 +1246177 302 +1246188 227 +1246190 243 +1246201 333 +1246202 194 +1246214 323 +1246223 156 +1246243 190 +1246246 181 +1246272 302 +1246276 204 +1246292 192 +1246294 202 +1246295 181 +1246298 174 +1246305 313 +1246311 201 +1246332 229 +1246341 287 +1246343 411 +1246347 251 +1246356 515 +1246358 426 +1246369 831 +1246388 203 +1246394 207 +1246397 278 +1246410 101 +1246431 208 +1246434 152 +1246441 242 +1246455 190 +1246490 446 +1246516 196 +1246518 211 +1246537 280 +1246543 262 +1246576 365 +1246600 272 +1246604 294 +1246606 199 +1246623 205 +1246625 206 +1246649 193 +1246672 207 +1246685 201 +1246688 272 +1246713 208 +1246719 255 +1246721 192 +1246734 180 +1246751 442 +1246752 257 +1246762 346 +1246767 187 +1246786 290 +1246795 252 +1246797 265 +1246808 191 +1246809 181 +1246839 198 +1246844 183 +1246858 315 +1246869 190 +1246877 303 +1246886 323 +1246889 251 +1246908 150 +1246931 202 +1246962 284 +1246967 422 +1246974 205 +1246983 232 +1247007 258 +1247018 641 +1247028 201 +1247061 180 +1247067 252 +1247077 189 +1247097 166 +1247104 213 +1247106 208 +1247107 196 +1247115 266 +1247156 181 +1247190 174 +1247192 254 +1247218 194 +1247223 173 +1247234 214 +1247283 174 +1247287 312 +1247307 354 +1247308 222 +1247310 206 +1247316 169 +1247337 346 +1247367 255 +1247383 265 +1247390 317 +1247409 173 +1247426 226 +1247446 213 +1247451 306 +1247471 184 +1247472 237 +1247486 181 +1247493 333 +1247522 216 +1247525 364 +1247544 461 +1247563 208 +1247567 425 +1247578 226 +1247604 203 +1247605 255 +1247611 207 +1247612 223 +1247616 186 +1247629 256 +1247634 197 +1247645 289 +1247660 190 +1247662 256 +1247696 204 +1247697 213 +1247705 536 +1247717 236 +1247721 202 +1247733 205 +1247746 156 +1247760 219 +1247769 208 +1247800 169 +1247807 203 +1247813 224 +1247848 226 +1247881 284 +1247884 188 +1247895 182 +1247908 217 +1247928 220 +1247942 180 +1247948 79 +1247952 193 +1248018 177 +1248028 207 +1248043 193 +1248045 226 +1248057 209 +1248060 670 +1248075 298 +1248095 263 +1248104 176 +1248121 463 +1248126 187 +1248161 193 +1248162 229 +1248170 544 +1248191 249 +1248237 196 +1248257 267 +1248270 208 +1248272 250 +1248277 250 +1248285 187 +1248288 193 +1248292 208 +1248299 183 +1248302 287 +1248320 321 +1248361 208 +1248383 184 +1248392 235 +1248425 525 +1248474 246 +1248475 187 +1248483 187 +1248488 280 +1248491 433 +1248495 196 +1248511 195 +1248522 175 +1248534 187 +1248550 225 +1248578 296 +1248605 188 +1248619 213 +1248621 210 +1248624 138 +1248634 195 +1248635 235 +1248654 182 +1248686 221 +1248694 205 +1248725 193 +1248729 187 +1248730 180 +1248731 180 +1248732 183 +1248733 247 +1248743 176 +1248754 259 +1248793 185 +1248797 369 +1248823 187 +1248829 254 +1248833 178 +1248836 189 +1248849 189 +1248862 205 +1248868 193 +1248879 187 +1248897 191 +1248935 197 +1248974 364 +1248988 189 +1249028 179 +1249041 353 +1249060 215 +1249072 519 +1249079 214 +1249122 244 +1249129 234 +1249135 212 +1249143 233 +1249150 208 +1249154 388 +1249168 310 +1249178 183 +1249191 243 +1249192 262 +1249203 471 +1249209 171 +1249217 180 +1249241 188 +1249255 196 +1249265 186 +1249275 187 +1249286 149 +1249289 195 +1249312 270 +1249324 190 +1249344 189 +1249355 181 +1249365 465 +1249366 193 +1249380 193 +1249389 208 +1249408 243 +1249418 192 +1249432 247 +1249439 336 +1249444 223 +1249483 193 +1249487 198 +1249491 208 +1249522 227 +1249529 223 +1249546 494 +1249556 257 +1249588 212 +1249599 257 +1249617 217 +1249619 344 +1249637 171 +1249649 182 +1249654 230 +1249657 205 +1249659 168 +1249661 227 +1249662 247 +1249666 202 +1249669 387 +1249722 198 +1249732 184 +1249740 394 +1249762 238 +1249766 299 +1249774 241 +1249781 179 +1249800 255 +1249808 334 +1249813 287 +1249840 212 +1249873 187 +1249877 181 +1249880 189 +1249914 193 +1249922 192 +1249928 190 +1249938 165 +1249943 194 +1249996 210 +1250004 224 +1250008 207 +1250043 140 +1250044 203 +1250054 190 +1250062 176 +1250066 186 +1250079 181 +1250081 263 +1250088 192 +1250093 500 +1250097 228 +1250101 408 +1250102 249 +1250104 291 +1250107 260 +1250110 192 +1250112 379 +1250117 327 +1250118 229 +1250119 257 +1250120 270 +1250122 564 +1250123 218 +1250126 333 +1250128 183 +1250135 192 +1250136 190 +1250138 164 +1250140 214 +1250141 328 +1250142 88 +1250143 277 +1250144 278 +1250151 207 +1250152 498 +1250153 317 +1250163 454 +1250166 322 +1250167 209 +1250175 154 +1250176 441 +1250177 425 +1250178 232 +1250184 444 +1250185 196 +1250187 939 +1250191 263 +1250193 227 +1250196 302 +1250198 191 +1250200 296 +1250201 541 +1250202 156 +1250203 291 +1250205 369 +1250206 819 +1250209 379 +1250211 787 +1250213 177 +1250222 227 +1250227 493 +1250230 262 +1250231 175 +1250234 353 +1250235 302 +1250238 671 +1250239 241 +1250242 180 +1250243 344 +1250244 222 +1250245 198 +1250252 322 +1250253 192 +1250261 172 +1250263 279 +1250265 111 +1250266 1981 +1250268 190 +1250269 287 +1250270 263 +1250271 478 +1250272 194 +1250273 175 +1250275 360 +1250280 187 +1250281 205 +1250282 353 +1250285 224 +1250292 204 +1250293 1515 +1250300 166 +1250301 531 +1250305 215 +1250310 207 +1250312 233 +1250323 304 +1250330 223 +1250333 189 +1250339 365 +1250342 588 +1250343 188 +1250345 168 +1250346 203 +1250347 981 +1250349 357 +1250350 384 +1250352 342 +1250354 422 +1250355 255 +1250356 179 +1250357 499 +1250362 217 +1250364 220 +1250365 162 +1250366 186 +1250372 826 +1250373 184 +1250385 268 +1250387 275 +1250397 260 +1250400 166 +1250404 285 +1250405 366 +1250408 922 +1250410 232 +1250412 507 +1250420 587 +1250421 663 +1250422 234 +1250427 158 +1250430 981 +1250433 366 +1250440 207 +1250442 186 +1250449 441 +1250451 200 +1250463 196 +1250468 214 +1250490 355 +1250496 211 +1250497 218 +1250500 756 +1250502 193 +1250507 218 +1250508 326 +1250518 240 +1250520 422 +1250522 137 +1250523 202 +1250527 707 +1250530 215 +1250531 220 +1250537 199 +1250546 337 +1250559 242 +1250561 302 +1250563 186 +1250564 237 +1250566 520 +1250572 377 +1250582 252 +1250586 688 +1250587 237 +1250589 198 +1250590 187 +1250592 248 +1250593 169 +1250604 183 +1250612 1098 +1250616 439 +1250636 578 +1250637 181 +1250641 451 +1250642 337 +1250645 227 +1250652 211 +1250657 1098 +1250659 174 +1250660 196 +1250661 707 +1250662 715 +1250663 353 +1250666 707 +1250667 253 +1250668 304 +1250671 754 +1250675 160 +1250686 301 +1250688 175 +1250690 396 +1250694 172 +1250696 175 +1250702 174 +1250703 718 +1250705 318 +1250706 707 +1250709 260 +1250717 419 +1250718 273 +1250721 181 +1250728 181 +1250729 196 +1250731 180 +1250737 315 +1250739 381 +1250740 192 +1250741 221 +1250748 328 +1250749 183 +1250751 289 +1250759 247 +1250770 271 +1250771 242 +1250776 420 +1250778 108 +1250789 487 +1250792 206 +1250794 315 +1250797 234 +1250805 358 +1250807 949 +1250809 215 +1250816 257 +1250817 229 +1250818 503 +1250819 249 +1250827 290 +1250830 284 +1250834 342 +1250835 229 +1250836 171 +1250839 186 +1250847 179 +1250848 292 +1250849 306 +1250854 338 +1250856 199 +1250857 169 +1250858 264 +1250862 310 +1250863 282 +1250865 232 +1250873 204 +1250875 222 +1250877 737 +1250878 212 +1250890 164 +1250902 242 +1250904 250 +1250916 135 +1250929 108 +1250935 180 +1250940 173 +1250944 215 +1250945 173 +1250946 135 +1250949 1028 +1250959 194 +1250965 285 +1250970 217 +1250972 393 +1250983 169 +1250984 280 +1250986 491 +1250993 307 +1250994 167 +1251002 357 +1251005 178 +1251010 194 +1251013 228 +1251017 273 +1251027 183 +1251028 826 +1251031 245 +1251033 205 +1251039 268 +1251047 170 +1251051 221 +1251054 216 +1251066 300 +1251067 350 +1251077 314 +1251078 564 +1251079 437 +1251083 195 +1251088 707 +1251090 304 +1251091 412 +1251097 265 +1251109 160 +1251114 301 +1251121 199 +1251123 707 +1251125 281 +1251127 211 +1251128 208 +1251130 337 +1251132 247 +1251136 238 +1251139 823 +1251140 425 +1251144 701 +1251147 714 +1251149 193 +1251155 353 +1251164 184 +1251169 171 +1251181 144 +1251188 180 +1251189 177 +1251192 184 +1251194 257 +1251196 196 +1251197 351 +1251198 193 +1251199 155 +1251200 589 +1251202 379 +1251206 471 +1251207 196 +1251209 592 +1251216 418 +1251227 411 +1251235 216 +1251238 245 +1251241 144 +1251246 93 +1251250 198 +1251259 152 +1251265 319 +1251276 271 +1251278 212 +1251280 170 +1251282 160 +1251295 170 +1251301 210 +1251304 826 +1251305 195 +1251308 246 +1251311 254 +1251313 349 +1251315 219 +1251317 77 +1251319 312 +1251324 578 +1251325 646 +1251326 737 +1251335 303 +1251337 250 +1251378 44 +1251398 187 +1251412 546 +1251452 185 +1251463 230 +1251477 220 +1251484 252 +1251496 185 +1251537 173 +1251544 238 +1251549 197 +1251552 231 +1251566 260 +1251583 193 +1251611 184 +1251617 273 +1251620 193 +1251623 183 +1251642 217 +1251656 292 +1251677 200 +1251696 300 +1251699 325 +1251700 235 +1251701 229 +1251710 181 +1251720 261 +1251737 199 +1251740 435 +1251751 180 +1251765 167 +1251795 187 +1251820 230 +1251822 225 +1251855 213 +1251863 174 +1251881 271 +1251906 187 +1251924 260 +1251959 189 +1251986 383 +1251996 199 +1251998 199 +1252011 168 +1252015 202 +1252030 193 +1252038 247 +1252046 200 +1252063 305 +1252073 439 +1252092 180 +1252104 236 +1252108 220 +1252109 181 +1252147 179 +1252163 186 +1252197 257 +1252205 167 +1252206 174 +1252243 284 +1252250 197 +1252253 270 +1252283 184 +1252284 193 +1252295 245 +1252304 399 +1252305 200 +1252311 203 +1252321 193 +1252340 193 +1252346 625 +1252355 327 +1252358 181 +1252363 317 +1252408 211 +1252409 192 +1252410 299 +1252414 464 +1252422 206 +1252440 271 +1252459 201 +1252475 172 +1252482 252 +1252483 187 +1252512 285 +1252514 149 +1252515 241 +1252516 202 +1252533 186 +1252536 222 +1252541 190 +1252546 193 +1252548 266 +1252549 714 +1252580 259 +1252592 228 +1252601 167 +1252610 245 +1252611 186 +1252617 505 +1252620 328 +1252636 361 +1252637 476 +1252646 384 +1252661 193 +1252671 209 +1252672 186 +1252701 177 +1252704 262 +1252712 271 +1252716 214 +1252740 180 +1252744 203 +1252748 187 +1252753 217 +1252764 313 +1252799 244 +1252803 265 +1252807 149 +1252835 202 +1252842 224 +1252847 202 +1252858 271 +1252872 282 diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_tag.json b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_tag.json new file mode 100644 index 00000000..35bf35ef --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/corp_tag.json @@ -0,0 +1,14939 @@ +{ + "108km tech limited": [ + "好游戏", + "行业好公司" + ], + "176游戏网": [ + "好游戏", + "行业好公司" + ], + "2366网页游戏": [ + "好游戏", + "行业好公司" + ], + "2k(vc)": [ + "好游戏", + "行业好公司" + ], + "仟游软件": [ + "好游戏", + "行业好公司" + ], + "2k games": [ + "好游戏", + "行业好公司" + ], + "31st union": [ + "好游戏", + "行业好公司" + ], + "360游戏": [ + "好游戏", + "行业好公司" + ], + "37.com": [ + "好游戏", + "行业好公司" + ], + "37wan": [ + "好游戏", + "行业好公司" + ], + "37互娱": [ + "好游戏", + "行业好公司" + ], + "37游戏": [ + "好游戏", + "行业好公司" + ], + "37玩": [ + "好游戏", + "行业好公司" + ], + "37网游": [ + "好游戏", + "行业好公司" + ], + "4399游戏网": [ + "好游戏", + "行业好公司" + ], + "4ggamer": [ + "好游戏", + "行业好公司" + ], + "51pocket": [ + "好游戏", + "行业好公司" + ], + "6711网页游戏": [ + "好游戏", + "行业好公司" + ], + "91act": [ + "好游戏", + "行业好公司" + ], + "9377": [ + "好游戏", + "行业好公司" + ], + "95k": [ + "好游戏", + "行业好公司" + ], + "9秒社团": [ + "好游戏", + "行业好公司" + ], + "activision": [ + "好游戏", + "行业好公司" + ], + "activision blizzard": [ + "好游戏", + "行业好公司" + ], + "amplitude studios": [ + "好游戏", + "行业好公司" + ], + "apehills": [ + "好游戏", + "行业好公司" + ], + "arkane": [ + "行业头部", + "好游戏" + ], + "aruba studio": [ + "好游戏", + "行业好公司" + ], + "astepgame": [ + "好游戏", + "行业好公司" + ], + "atlus": [ + "好游戏", + "行业好公司" + ], + "aviagames欢岳网络": [ + "好游戏", + "行业好公司" + ], + "babeltime": [ + "好游戏", + "行业好公司" + ], + "bad pandaman": [ + "好游戏", + "行业好公司" + ], + "battlecry studios": [ + "行业头部", + "好游戏" + ], + "battleofballs": [ + "好游戏", + "行业好公司" + ], + "beijing baidu mobile communication technology": [ + "好游戏", + "行业好公司" + ], + "beijing beta technology": [ + "好游戏", + "行业好公司" + ], + "beijing chuang zhi you pin technology": [ + "好游戏", + "行业好公司" + ], + "beijing chukong technology": [ + "好游戏", + "行业好公司" + ], + "beijing community interaction network": [ + "好游戏", + "行业好公司" + ], + "beijing hortor jiake software": [ + "好游戏", + "行业好公司" + ], + "beijing jg game technology": [ + "好游戏", + "行业好公司" + ], + "beijing manyougu lnformation technology": [ + "好游戏", + "行业好公司" + ], + "beijing object online technology": [ + "好游戏", + "行业好公司" + ], + "beijing tianshen hudong technology": [ + "好游戏", + "行业好公司" + ], + "beijing yodo1 network culture": [ + "好游戏", + "行业好公司" + ], + "beijing yonghang technology": [ + "好游戏", + "行业好公司" + ], + "bellcat": [ + "好游戏", + "行业好公司" + ], + "bethesda": [ + "行业头部", + "好游戏" + ], + "bigworld": [ + "行业头部", + "好游戏" + ], + "bilibili": [ + "行业头部多元化", + "好游戏", + "阅文偏好" + ], + "bioware": [ + "行业头部", + "好游戏" + ], + "black shamrock": [ + "好游戏", + "行业好公司" + ], + "blacksailsgames": [ + "好游戏", + "行业好公司" + ], + "blue byte software": [ + "行业头部", + "好游戏" + ], + "buginventors": [ + "好游戏", + "行业好公司" + ], + "c1wan": [ + "好游戏", + "行业好公司" + ], + "calf mutual entertainment technology": [ + "好游戏", + "行业好公司" + ], + "camelgames": [ + "好游戏", + "行业好公司" + ], + "cat daddy games": [ + "好游戏", + "行业好公司" + ], + "ccp": [ + "好游戏", + "行业好公司" + ], + "century games": [ + "行业头部", + "好游戏" + ], + "chair entertainment": [ + "行业头部", + "好游戏" + ], + "changyou": [ + "好游戏", + "行业好公司" + ], + "cheetah": [ + "行业头部多元化", + "好游戏" + ], + "cheetah mobile inc.": [ + "好游戏", + "行业好公司" + ], + "chengdu arubag": [ + "好游戏", + "行业好公司" + ], + "chengdu dreambrother technologies company": [ + "好游戏", + "行业好公司" + ], + "chukong": [ + "好游戏", + "行业好公司" + ], + "cmge中手游": [ + "好游戏", + "行业好公司" + ], + "coconut": [ + "好游戏", + "行业好公司" + ], + "codemasters": [ + "行业头部", + "好游戏" + ], + "creative assembly": [ + "好游戏", + "行业好公司" + ], + "criterion games": [ + "行业头部", + "好游戏" + ], + "crowd control productions": [ + "好游戏", + "行业好公司" + ], + "dartslive": [ + "好游戏", + "行业好公司" + ], + "dazzle interactive network technology": [ + "好游戏", + "行业好公司" + ], + "dena": [ + "好游戏", + "行业好公司" + ], + "diandianinc": [ + "好游戏", + "行业好公司" + ], + "dianhun": [ + "好游戏", + "行业好公司" + ], + "diggerlab滴博网络": [ + "好游戏", + "行业好公司" + ], + "dino island": [ + "好游戏", + "行业好公司" + ], + "doodle mobile": [ + "好游戏", + "行业好公司" + ], + "dovo technology": [ + "好游戏", + "行业好公司" + ], + "dovogame": [ + "好游戏", + "行业好公司" + ], + "dragonest": [ + "好游戏", + "行业好公司" + ], + "dreamsky": [ + "好游戏", + "行业好公司" + ], + "dreamsky technology": [ + "好游戏", + "行业好公司" + ], + "droidhengame": [ + "好游戏", + "行业好公司" + ], + "duoyi": [ + "好游戏", + "行业好公司" + ], + "ea": [ + "行业头部", + "好游戏" + ], + "ejoy": [ + "好游戏", + "行业好公司" + ], + "electronic arts": [ + "行业头部", + "好游戏" + ], + "electronic soul": [ + "好游戏", + "行业好公司" + ], + "elex": [ + "好游戏", + "行业好公司" + ], + "eleximg": [ + "好游戏", + "行业好公司" + ], + "epic": [ + "行业头部", + "好游戏" + ], + "escalation studios": [ + "行业头部", + "好游戏" + ], + "european integration studio": [ + "行业头部", + "好游戏" + ], + "fast racing 3d": [ + "好游戏", + "行业好公司" + ], + "feiyin": [ + "好游戏", + "行业好公司" + ], + "feiyu technology international compan": [ + "好游戏", + "行业好公司" + ], + "firaxis games": [ + "好游戏", + "行业好公司" + ], + "firstdream最初梦想": [ + "好游戏", + "行业好公司" + ], + "focusmedia": [ + "好游戏", + "行业好公司" + ], + "frog city software": [ + "好游戏", + "行业好公司" + ], + "fruitsgame": [ + "好游戏", + "行业好公司" + ], + "fujian netdragon websoft": [ + "好游戏", + "行业好公司" + ], + "funplus": [ + "行业头部", + "好游戏", + "猎" + ], + "f工作室": [ + "好游戏", + "综合大厂" + ], + "g-bits": [ + "好游戏", + "行业好公司" + ], + "game science interactive technology": [ + "好游戏", + "行业好公司" + ], + "gameloft": [ + "好游戏", + "行业好公司" + ], + "games.wanmei": [ + "好游戏", + "行业好公司" + ], + "gamescience": [ + "好游戏", + "行业好公司" + ], + "garena": [ + "好游戏", + "猎", + "行业好公司" + ], + "garena online private limited": [ + "好游戏", + "行业好公司" + ], + "garena technology private limited": [ + "好游戏", + "行业好公司" + ], + "ghost games": [ + "行业头部", + "好游戏" + ], + "gif快手": [ + "行业头部多元化", + "好游戏" + ], + "guangdong xinghui teamtop interactive entertainment": [ + "好游戏", + "行业好公司" + ], + "guangzhou baitian information technology": [ + "好游戏", + "行业好公司" + ], + "guangzhou caidan information technology ": [ + "好游戏", + "行业好公司" + ], + "guangzhou feiyin information technology": [ + "好游戏", + "行业好公司" + ], + "guangzhou jodo information and technology": [ + "好游戏", + "行业好公司" + ], + "guangzhou qingtianzhu network technology": [ + "好游戏", + "行业好公司" + ], + "guangzhou youai network technology": [ + "好游戏", + "行业好公司" + ], + "guerrilla games": [ + "行业头部", + "好游戏" + ], + "g工作室": [ + "好游戏", + "综合大厂" + ], + "hangar 13": [ + "好游戏", + "行业好公司" + ], + "hangzhou bianfeng networking technology": [ + "好游戏", + "行业好公司" + ], + "hangzhou jedi technology": [ + "好游戏", + "行业好公司" + ], + "happyelements": [ + "好游戏", + "行业好公司" + ], + "hardlight": [ + "好游戏", + "行业好公司" + ], + "haymaker game": [ + "好游戏", + "行业好公司" + ], + "hero entertainment": [ + "好游戏", + "行业好公司" + ], + "hortor": [ + "好游戏", + "行业好公司" + ], + "hortor games": [ + "好游戏", + "行业好公司" + ], + "housemarque": [ + "行业头部", + "好游戏" + ], + "huolieniao network (guangzhou)": [ + "好游戏", + "行业好公司" + ], + "hybride technologies": [ + "行业头部", + "好游戏" + ], + "hypergryph": [ + "好游戏", + "行业好公司" + ], + "i got games": [ + "好游戏", + "行业好公司" + ], + "i love chichi": [ + "好游戏", + "行业好公司" + ], + "id software": [ + "行业头部", + "好游戏" + ], + "id软件": [ + "行业头部", + "好游戏" + ], + "igg": [ + "好游戏", + "行业好公司" + ], + "im30": [ + "好游戏", + "行业好公司" + ], + "inception工作室": [ + "好游戏", + "综合大厂" + ], + "indie built": [ + "好游戏", + "行业好公司" + ], + "insomniac games": [ + "行业头部", + "好游戏" + ], + "instinct工作室": [ + "好游戏", + "综合大厂" + ], + "ique": [ + "好游戏", + "行业好公司" + ], + "ique(china)ltd": [ + "好游戏", + "行业好公司" + ], + "iriam inc.": [ + "好游戏", + "行业好公司" + ], + "irrational games": [ + "好游戏", + "行业好公司" + ], + "jjworld (beijing) network technology": [ + "好游戏", + "行业好公司" + ], + "kesmai": [ + "行业头部", + "好游戏" + ], + "king": [ + "好游戏", + "行业好公司" + ], + "koyosoft": [ + "好游戏", + "行业好公司" + ], + "kunlun tech": [ + "好游戏", + "行业好公司" + ], + "langang online(beijing)technology": [ + "好游戏", + "行业好公司" + ], + "ledao": [ + "好游戏", + "行业好公司" + ], + "legou": [ + "好游戏", + "行业好公司" + ], + "leiting games": [ + "好游戏", + "行业好公司" + ], + "lilith": [ + "行业头部", + "好游戏" + ], + "lingxigames": [ + "行业头部多元化", + "好游戏" + ], + "locojoy": [ + "好游戏", + "行业好公司" + ], + "long tech": [ + "好游戏", + "行业好公司" + ], + "longg entertainment": [ + "好游戏", + "行业好公司" + ], + "luna online": [ + "好游戏", + "行业好公司" + ], + "machine": [ + "行业头部", + "好游戏" + ], + "machinegames": [ + "行业头部", + "好游戏" + ], + "magic tavern": [ + "好游戏", + "行业好公司" + ], + "magnetjoy": [ + "好游戏", + "行业好公司" + ], + "magnetjoy磁聚乐科技": [ + "好游戏", + "行业好公司" + ], + "major league gaming": [ + "好游戏", + "行业好公司" + ], + "manjuu": [ + "好游戏", + "行业好公司" + ], + "media molecule": [ + "行业头部", + "好游戏" + ], + "mihoyo": [ + "行业头部", + "好游戏" + ], + "monster smash": [ + "好游戏", + "行业好公司" + ], + "moonton": [ + "好游戏", + "综合大厂" + ], + "mu77": [ + "好游戏", + "行业好公司" + ], + "mythic entertainment": [ + "行业头部", + "好游戏" + ], + "nadeo": [ + "行业头部", + "好游戏" + ], + "naughty dog": [ + "行业头部", + "好游戏" + ], + "nba street online": [ + "好游戏", + "行业好公司" + ], + "nebulajoy": [ + "好游戏", + "行业好公司" + ], + "nenly": [ + "好游戏", + "行业好公司" + ], + "netease games": [ + "好游戏", + "综合大厂" + ], + "network technology shenzhen downtown and brothers": [ + "好游戏", + "行业好公司" + ], + "newstyle media group": [ + "好游戏", + "行业好公司" + ], + "nintendo": [ + "好游戏", + "行业好公司" + ], + "nufx": [ + "行业头部", + "好游戏" + ], + "oasis绿洲vr": [ + "好游戏", + "行业好公司" + ], + "ohayoo": [ + "好游戏", + "综合大厂" + ], + "online tuyoo (beijing) technology": [ + "好游戏", + "行业好公司" + ], + "pandada studio": [ + "好游戏", + "行业好公司" + ], + "pandemic studios": [ + "行业头部", + "好游戏" + ], + "people can fly": [ + "行业头部", + "好游戏" + ], + "perfect world games": [ + "好游戏", + "行业好公司" + ], + "peroli": [ + "好游戏", + "行业好公司" + ], + "pixelopus": [ + "行业头部", + "好游戏" + ], + "pixmain": [ + "好游戏", + "综合大厂" + ], + "poptop software": [ + "好游戏", + "行业好公司" + ], + "quazal": [ + "行业头部", + "好游戏" + ], + "r2": [ + "好游戏", + "行业好公司" + ], + "r2 game": [ + "好游戏", + "行业好公司" + ], + "r2game": [ + "好游戏", + "行业好公司" + ], + "redlynx": [ + "行业头部", + "好游戏" + ], + "restaurant live": [ + "好游戏", + "行业好公司" + ], + "riot": [ + "行业头部", + "好游戏" + ], + "riot games": [ + "行业头部", + "好游戏" + ], + "roblox": [ + "行业头部", + "好游戏" + ], + "r社": [ + "行业头部", + "好游戏" + ], + "sagi games": [ + "好游戏", + "行业好公司" + ], + "sea ltd": [ + "好游戏", + "行业好公司" + ], + "seasun games": [ + "行业头部多元化", + "好游戏" + ], + "sega": [ + "好游戏", + "行业好公司" + ], + "sega amusements taiwan ltd.": [ + "好游戏", + "行业好公司" + ], + "shanda": [ + "好游戏", + "行业好公司" + ], + "shanghai 37wan network technology": [ + "好游戏", + "行业好公司" + ], + "shanghai bihan internet technology": [ + "好游戏", + "行业好公司" + ], + "shanghai funtoy network technology": [ + "好游戏", + "行业好公司" + ], + "shanghai leshu information technology": [ + "好游戏", + "行业好公司" + ], + "shanghai limao game": [ + "好游戏", + "行业好公司" + ], + "shanghai lonfun network technology": [ + "好游戏", + "行业好公司" + ], + "shanghai shengku network technology": [ + "好游戏", + "行业好公司" + ], + "shanghai the9 information technology": [ + "好游戏", + "行业好公司" + ], + "shanghai u9 gameg": [ + "好游戏", + "行业好公司" + ], + "shanghai wapu network technology": [ + "好游戏", + "行业好公司" + ], + "shanghai xiaocong network ltd.,": [ + "好游戏", + "行业好公司" + ], + "shanghai zongyou network technology": [ + "好游戏", + "行业好公司" + ], + "shenzhen 7road technology": [ + "好游戏", + "行业好公司" + ], + "shenzhen bingchuan network": [ + "好游戏", + "行业好公司" + ], + "shenzhen bshark technology limited": [ + "好游戏", + "行业好公司" + ], + "shenzhen galaxy interactive technology": [ + "好游戏", + "行业好公司" + ], + "shenzhen zen-game technology": [ + "好游戏", + "行业好公司" + ], + "shenzhen zqgame": [ + "好游戏", + "行业好公司" + ], + "sie": [ + "行业头部", + "好游戏" + ], + "sinister games": [ + "行业头部", + "好游戏" + ], + "snail games": [ + "好游戏", + "行业好公司" + ], + "snda": [ + "好游戏", + "行业好公司" + ], + "sony": [ + "行业头部", + "好游戏" + ], + "sony interactive entertainment llc": [ + "行业头部", + "好游戏" + ], + "sourcetech": [ + "好游戏", + "行业好公司" + ], + "sparx*": [ + "好游戏", + "行业好公司" + ], + "sports interactive": [ + "好游戏", + "行业好公司" + ], + "studiogm": [ + "好游戏", + "行业好公司" + ], + "sucker punch productions": [ + "行业头部", + "好游戏" + ], + "supercell": [ + "行业头部", + "好游戏" + ], + "suzhou gamefriend network technology": [ + "好游戏", + "行业好公司" + ], + "suzhou juhe network technology": [ + "好游戏", + "行业好公司" + ], + "suzhou yunzhi interactive technology": [ + "好游戏", + "行业好公司" + ], + "taiyouxi": [ + "好游戏", + "行业好公司" + ], + "tango": [ + "行业头部", + "好游戏" + ], + "taomee": [ + "好游戏", + "行业好公司" + ], + "taomee inc.": [ + "好游戏", + "行业好公司" + ], + "tap4fun": [ + "好游戏", + "行业好公司" + ], + "tencent games": [ + "好游戏", + "综合大厂" + ], + "the sims studio": [ + "行业头部", + "好游戏" + ], + "thenextstone": [ + "好游戏", + "行业好公司" + ], + "tianshen": [ + "好游戏", + "行业好公司" + ], + "tms娱乐": [ + "好游戏", + "行业好公司" + ], + "tt语音": [ + "行业好公司", + "好游戏", + "猎" + ], + "tuyoo": [ + "好游戏", + "行业好公司" + ], + "tvx": [ + "好游戏", + "行业好公司" + ], + "ubi soft entertainment software": [ + "行业头部", + "好游戏" + ], + "ubisoft": [ + "行业头部", + "好游戏" + ], + "uglystar游戏工作室": [ + "好游戏", + "行业好公司" + ], + "uqee": [ + "好游戏", + "行业好公司" + ], + "uuu9": [ + "好游戏", + "行业好公司" + ], + "uzwan": [ + "好游戏", + "行业好公司" + ], + "venom games": [ + "好游戏", + "行业好公司" + ], + "virtuos": [ + "好游戏", + "行业好公司" + ], + "virtuos games": [ + "好游戏", + "行业好公司" + ], + "visual concepts": [ + "好游戏", + "行业好公司" + ], + "vivagames": [ + "行业头部", + "好游戏" + ], + "wanmei": [ + "好游戏", + "行业好公司" + ], + "wargameing": [ + "行业头部", + "好游戏" + ], + "wargaming chicago-baltimore": [ + "好游戏", + "行业好公司" + ], + "wargaming seattle": [ + "行业头部", + "好游戏" + ], + "wonder fun": [ + "好游戏", + "行业好公司" + ], + "xiimoon": [ + "好游戏", + "行业好公司" + ], + "xinyou tech inc.": [ + "好游戏", + "行业好公司" + ], + "xishanju": [ + "行业头部多元化", + "好游戏" + ], + "xnhd": [ + "好游戏", + "行业好公司" + ], + "xuebaogames": [ + "好游戏", + "行业好公司" + ], + "xy游戏": [ + "好游戏", + "行业好公司" + ], + "y2game": [ + "好游戏", + "行业好公司" + ], + "yaowan": [ + "好游戏", + "行业好公司" + ], + "yoozoo": [ + "好游戏", + "行业好公司" + ], + "yopjoy": [ + "好游戏", + "行业好公司" + ], + "yotta games": [ + "好游戏", + "行业好公司" + ], + "youzu": [ + "好游戏", + "行业好公司" + ], + "zengame禅意网络": [ + "好游戏", + "行业好公司" + ], + "zenimax": [ + "行业头部", + "好游戏" + ], + "zenimax media inc.": [ + "好游戏", + "行业好公司" + ], + "zenimax online studios": [ + "行业头部", + "好游戏" + ], + "zenjoy": [ + "好游戏", + "行业好公司" + ], + "zhejiang ledao network technology": [ + "好游戏", + "行业好公司" + ], + "zlongame": [ + "好游戏", + "行业好公司" + ], + "ztgame": [ + "好游戏", + "行业好公司" + ], + "zulong": [ + "好游戏", + "行业好公司" + ], + "一起新游": [ + "好游戏", + "行业好公司" + ], + "一起游戏": [ + "好游戏", + "行业好公司" + ], + "一起玩游戏网": [ + "好游戏", + "行业好公司" + ], + "一零八科技108km": [ + "好游戏", + "行业好公司" + ], + "七酷": [ + "好游戏", + "行业好公司" + ], + "万岁游戏": [ + "行业头部", + "好游戏" + ], + "三七互娱": [ + "行业好公司", + "好游戏", + "猎" + ], + "三七互娱(上海)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "三七游戏": [ + "好游戏", + "行业好公司" + ], + "三七玩": [ + "好游戏", + "行业好公司" + ], + "三分天下": [ + "好游戏", + "行业好公司" + ], + "三国之刃": [ + "好游戏", + "行业好公司" + ], + "上海乐加网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海乐虫网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海乐蜀网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "上海亲婴网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海仟指信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海优哉游哉网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海冠航网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海凌素网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海刃意科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海刃游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海创思": [ + "好游戏", + "行业好公司" + ], + "上海动艺网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海华样人生体育文化有限公司": [ + "好游戏", + "行业好公司" + ], + "上海卓属信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海友塔网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海可那信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海周目信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海品树信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海唯二网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海善极计算机科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海域起网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海墨鵾数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海天游": [ + "好游戏", + "行业好公司" + ], + "上海奥飞游戏有限公司": [ + "好游戏", + "行业好公司" + ], + "上海小葱网络": [ + "好游戏", + "行业好公司" + ], + "上海小葱网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海小葱网络科技有限公司(深圳)分公司": [ + "好游戏", + "行业好公司" + ], + "上海巨人网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海广敞网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海心动企业发展有限公司": [ + "好游戏", + "行业好公司" + ], + "上海悠星网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海擎月软件科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海敖爵数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海方寸": [ + "好游戏", + "行业好公司" + ], + "上海木七七网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海果盒网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海梦求网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海梦逐网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海森游网络": [ + "好游戏", + "行业好公司" + ], + "上海森游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海欢岳网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海欣圣信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海沐瞳科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海派酷网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海淘米网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海游久游戏股份有限公司": [ + "好游戏", + "行业好公司" + ], + "上海游奇网络有限公司": [ + "好游戏", + "行业好公司" + ], + "上海游宗网络": [ + "好游戏", + "行业好公司" + ], + "上海游宗网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海游苑网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海源庄数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海源稼数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海灵擎网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海炽宇网络": [ + "好游戏", + "行业好公司" + ], + "上海炽宇网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海烛龙": [ + "好游戏", + "行业好公司" + ], + "上海热泛信息": [ + "好游戏", + "行业好公司" + ], + "上海热泛信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海爱使股份有限公司": [ + "好游戏", + "行业好公司" + ], + "上海犀牛互动网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海狸猫网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海番糖网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海盛大网络发展有限公司": [ + "好游戏", + "行业好公司" + ], + "上海盛酷": [ + "好游戏", + "行业好公司" + ], + "上海盛酷网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海硬通网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海碧汉网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海禅游科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海第九城市信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海简造网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海米哈游网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "上海米稷数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海紫翊网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海纵游网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海绿岸网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "上海育碧电脑软件有限公司": [ + "好游戏", + "行业好公司" + ], + "上海腾云摘星科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海腾翀网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海莉莉丝网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海萌果信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海萌果网络": [ + "好游戏", + "行业好公司" + ], + "上海蛙扑网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海蛮啾网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海豪嘉信息科技发展有限公司": [ + "好游戏", + "行业好公司" + ], + "上海贪玩传奇信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "上海趣抓网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海达龙": [ + "好游戏", + "行业好公司" + ], + "上海达龙信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海追趣网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海那朵花文化传播有限公司": [ + "好游戏", + "行业好公司" + ], + "上海郡阳网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海金蚕网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海银月网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海锐战网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海锦游": [ + "好游戏", + "行业好公司" + ], + "上海阿佩吉网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海雪宝信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海霜狼信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海顽梦数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海鲲鹏数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海鹰角网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上海龙魂": [ + "好游戏", + "行业好公司" + ], + "上海龙魂网络": [ + "好游戏", + "行业好公司" + ], + "上海龙魂网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "上禾网络科技(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "上饶市广丰区贪玩网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "与你游戏": [ + "好游戏", + "行业好公司" + ], + "世嘉": [ + "好游戏", + "行业好公司" + ], + "世嘉株式会社": [ + "好游戏", + "行业好公司" + ], + "世纪华通": [ + "好游戏", + "行业好公司" + ], + "世雅育乐股份有限公司": [ + "好游戏", + "行业好公司" + ], + "东银河系漫游指南(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "丝路互娱": [ + "好游戏", + "行业好公司" + ], + "中手游": [ + "好游戏", + "行业好公司" + ], + "中清龙图": [ + "好游戏", + "行业好公司" + ], + "中青宝": [ + "好游戏", + "行业好公司" + ], + "久久互娱": [ + "好游戏", + "行业好公司" + ], + "久游": [ + "好游戏", + "行业好公司" + ], + "久览科技": [ + "好游戏", + "行业好公司" + ], + "乌柯塔界限": [ + "好游戏", + "行业好公司" + ], + "乐乐陶陶": [ + "好游戏", + "行业好公司" + ], + "乐元素": [ + "好游戏", + "行业好公司" + ], + "乐元素科技(北京)股份有限公司": [ + "好游戏", + "行业好公司" + ], + "乐加网络": [ + "好游戏", + "行业好公司" + ], + "乐动卓越": [ + "好游戏", + "行业好公司" + ], + "乐动软件": [ + "好游戏", + "行业好公司" + ], + "乐响网络": [ + "好游戏", + "行业好公司" + ], + "乐客帝国": [ + "好游戏", + "行业好公司" + ], + "乐府互娱": [ + "好游戏", + "行业好公司" + ], + "乐府互娱(上海)网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "乐港游": [ + "好游戏", + "行业好公司" + ], + "乐港科技": [ + "好游戏", + "行业好公司" + ], + "乐游科技控股": [ + "好游戏", + "行业好公司" + ], + "乐游科技控股有限公司": [ + "好游戏", + "行业好公司" + ], + "乐爱豆科技": [ + "好游戏", + "行业好公司" + ], + "乐狗科技": [ + "好游戏", + "行业好公司" + ], + "乐知止源": [ + "好游戏", + "行业好公司" + ], + "乐虫网络": [ + "好游戏", + "行业好公司" + ], + "乐蜀网络": [ + "好游戏", + "行业好公司" + ], + "乐逗游戏": [ + "好游戏", + "行业好公司" + ], + "乐道": [ + "好游戏", + "行业好公司" + ], + "乐风创想": [ + "好游戏", + "行业好公司" + ], + "九九象棋": [ + "好游戏", + "行业好公司" + ], + "九城": [ + "好游戏", + "行业好公司" + ], + "九游": [ + "好游戏", + "行业好公司" + ], + "二柄app周目科技": [ + "好游戏", + "行业好公司" + ], + "云畅": [ + "好游戏", + "行业好公司" + ], + "互联星梦": [ + "好游戏", + "行业好公司" + ], + "仟指信息": [ + "好游戏", + "行业好公司" + ], + "任天堂": [ + "好游戏", + "行业好公司" + ], + "企鹅互娱": [ + "好游戏", + "行业好公司" + ], + "企鹅互娱科技(深圳)有限公司": [ + "好游戏", + "行业好公司" + ], + "优玩游戏": [ + "好游戏", + "行业好公司" + ], + "伦敦未来游戏": [ + "行业头部", + "好游戏" + ], + "伽马新媒": [ + "好游戏", + "行业好公司" + ], + "你画我猜": [ + "好游戏", + "行业好公司" + ], + "侠义江湖": [ + "好游戏", + "行业好公司" + ], + "侠客列传": [ + "好游戏", + "行业好公司" + ], + "保卫萝卜": [ + "好游戏", + "行业好公司" + ], + "倚天工作室": [ + "好游戏", + "综合大厂" + ], + "傲世堂": [ + "好游戏", + "行业好公司" + ], + "傲娇工作室": [ + "好游戏", + "行业好公司" + ], + "像素": [ + "好游戏", + "行业好公司" + ], + "光子工作室": [ + "好游戏", + "综合大厂" + ], + "光耀世界": [ + "好游戏", + "行业好公司" + ], + "免费达人": [ + "好游戏", + "行业好公司" + ], + "冒险与挖矿": [ + "好游戏", + "行业好公司" + ], + "冠游时代": [ + "好游戏", + "行业好公司" + ], + "冰川": [ + "好游戏", + "行业好公司" + ], + "决战沙城": [ + "好游戏", + "行业好公司" + ], + "凯奇谷": [ + "好游戏", + "行业好公司" + ], + "刀塔帝国": [ + "好游戏", + "行业好公司" + ], + "刃意科技": [ + "好游戏", + "行业好公司" + ], + "刃游网络": [ + "好游戏", + "行业好公司" + ], + "分众传媒": [ + "好游戏", + "行业好公司" + ], + "分众传媒信息技术股份有限公司": [ + "好游戏", + "行业好公司" + ], + "创智优品": [ + "行业好公司", + "好游戏", + "猎" + ], + "创梦天地": [ + "好游戏", + "行业好公司" + ], + "创游世纪": [ + "好游戏", + "行业好公司" + ], + "利为网络": [ + "好游戏", + "行业好公司" + ], + "利舟网络": [ + "好游戏", + "行业好公司" + ], + "动网先锋": [ + "好游戏", + "行业好公司" + ], + "动艺游戏": [ + "好游戏", + "行业好公司" + ], + "动视": [ + "好游戏", + "行业好公司" + ], + "动视信息技术(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "北京一起新游信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京一零八科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京与你科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京中清龙图网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京乐动卓越科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京九凤": [ + "好游戏", + "行业好公司" + ], + "北京九天创世科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京云游互动网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京云畅游戏科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京互联星梦科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京伽马新媒文化传播有限公司": [ + "好游戏", + "行业好公司" + ], + "北京光耀世界网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京凯奇谷信息技术股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京分播时代网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京创智优品科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京刺猬互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京友壹加电子商务有限公司": [ + "好游戏", + "行业好公司" + ], + "北京叮当猫科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京品致幻享科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京哈视奇科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京在线方舟游戏科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京基因互动技术开发有限公司": [ + "好游戏", + "行业好公司" + ], + "北京壳木软件有限责任公司": [ + "好游戏", + "行业好公司" + ], + "北京多游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京大道必成国际文化传媒有限公司": [ + "好游戏", + "行业好公司" + ], + "北京天凡科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京天神互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京天空乐远科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京天际互动数码信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京奇点星空科技有限责任公司": [ + "好游戏", + "行业好公司" + ], + "北京奇虎科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京宇族世纪软件有限公司": [ + "好游戏", + "行业好公司" + ], + "北京巴别时代科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京市标派教育科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京开元龙马科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京征和建元科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京心跳时空科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京快手科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京念力科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京战歌世纪科技发展有限公司": [ + "好游戏", + "行业好公司" + ], + "北京所思信息科技有限责任公司": [ + "好游戏", + "行业好公司" + ], + "北京拱顶石科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京挖金客信息科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京掌趣科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京攸乐科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京新游无限科技": [ + "好游戏", + "行业好公司" + ], + "北京新游无限科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京昆仑在线网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京星河时代信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京星空佳游科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京智明星通科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京智明星通科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京朝夕光年信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京果仁互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京柒悦鼎图科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京柠檬微趣科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京梦之谷科技有限责任公司": [ + "好游戏", + "行业好公司" + ], + "北京比特互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京比特漫步科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京水果堂网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京水滴互娱科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京永航科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京涂鸦多得科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京游逸科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京游道易网络文化有限公司": [ + "好游戏", + "行业好公司" + ], + "北京游龙腾信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京漫游谷信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京点点": [ + "好游戏", + "行业好公司" + ], + "北京猎豹移动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京畅游天下网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京百度移讯科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京益游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京目标在线科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京磊友信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京祖龙游科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京神奇时代网络有限公司": [ + "好游戏", + "行业好公司" + ], + "北京空中信使信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京空空科技": [ + "好游戏", + "行业好公司" + ], + "北京空空科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京网元": [ + "好游戏", + "行业好公司" + ], + "北京网元圣唐娱乐科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京翔跃": [ + "好游戏", + "行业好公司" + ], + "北京联众互动网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京葡萄藤信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京触控科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京豪腾嘉科科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京贝塔科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京迅升网络": [ + "好游戏", + "行业好公司" + ], + "北京进步思创数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京远明山水网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京逗游网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京金刚游戏科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "北京金蛋投资中心(有限合伙)": [ + "好游戏", + "行业好公司" + ], + "北京钛核互动信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "北京闲徕互娱网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京骏梦天空科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北京龙创悦动网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "北极光工作室": [ + "好游戏", + "综合大厂" + ], + "北海星河": [ + "好游戏", + "行业好公司" + ], + "北海星河网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "华为技术有限公司": [ + "微众偏好", + "好游戏", + "综合大厂" + ], + "华为游戏": [ + "好游戏", + "综合大厂" + ], + "华美时空": [ + "好游戏", + "行业好公司" + ], + "卓动科技": [ + "好游戏", + "行业好公司" + ], + "卓属信息科技": [ + "好游戏", + "行业好公司" + ], + "卓杭科技": [ + "好游戏", + "行业好公司" + ], + "卓越互娱": [ + "好游戏", + "行业好公司" + ], + "单职业迷失": [ + "好游戏", + "行业好公司" + ], + "厦门光环信息科技": [ + "好游戏", + "行业好公司" + ], + "厦门吉比特网络技术股份有限公司": [ + "好游戏", + "行业好公司" + ], + "厦门游动网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "厦门西岐网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "厦门雷霆互动网络有限公司": [ + "好游戏", + "行业好公司" + ], + "友塔": [ + "好游戏", + "行业好公司" + ], + "友塔网络": [ + "好游戏", + "行业好公司" + ], + "友爱互动": [ + "好游戏", + "行业好公司" + ], + "友谊时光": [ + "好游戏", + "行业好公司" + ], + "友谊时光科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "友谊时光(成都)网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "双点工作室": [ + "好游戏", + "行业好公司" + ], + "叠纸": [ + "行业头部", + "好游戏" + ], + "古剑奇谭": [ + "好游戏", + "行业好公司" + ], + "叮当猫科技": [ + "好游戏", + "行业好公司" + ], + "吉林风雷网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "吉比特": [ + "好游戏", + "行业好公司" + ], + "吉比特网络": [ + "好游戏", + "行业好公司" + ], + "向日葵娱乐互动软件": [ + "好游戏", + "行业好公司" + ], + "启乐": [ + "好游戏", + "行业好公司" + ], + "和冠科技": [ + "好游戏", + "行业好公司" + ], + "和冠科技(北京)有限公司": [ + "好游戏", + "行业好公司" + ], + "咪咕互娱": [ + "好游戏", + "行业好公司" + ], + "咪咕动漫": [ + "好游戏", + "行业好公司" + ], + "咪咕善跑": [ + "好游戏", + "行业好公司" + ], + "咪咕数字": [ + "好游戏", + "行业好公司" + ], + "咪咕文化": [ + "好游戏", + "行业好公司" + ], + "咪咕文化科技有限公司": [ + "好游戏", + "行业好公司" + ], + "咪咕游戏": [ + "好游戏", + "行业好公司" + ], + "咪咕视讯": [ + "好游戏", + "行业好公司" + ], + "咪咕阅读": [ + "好游戏", + "行业好公司" + ], + "咪咕音乐": [ + "好游戏", + "行业好公司" + ], + "咸鱼游戏": [ + "好游戏", + "行业好公司" + ], + "品致幻享": [ + "好游戏", + "行业好公司" + ], + "哈视奇": [ + "好游戏", + "行业好公司" + ], + "哔哩哔哩": [ + "行业头部多元化", + "猎", + "阅文偏好", + "好游戏" + ], + "商业大亨": [ + "好游戏", + "行业好公司" + ], + "嘉浩网络科技": [ + "好游戏", + "行业好公司" + ], + "四三九九": [ + "好游戏", + "行业好公司" + ], + "四三九九网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "四川梦幻互联网服务有限公司": [ + "好游戏", + "行业好公司" + ], + "四川梦网网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "图龙科技(北京)有限公司": [ + "好游戏", + "行业好公司" + ], + "在线途游(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "域起": [ + "好游戏", + "行业好公司" + ], + "基因互动": [ + "好游戏", + "行业好公司" + ], + "境界": [ + "好游戏", + "行业好公司" + ], + "境界游戏": [ + "好游戏", + "行业好公司" + ], + "境界游戏股份": [ + "好游戏", + "行业好公司" + ], + "境界游戏股份有限公司": [ + "好游戏", + "行业好公司" + ], + "墨橙科技": [ + "好游戏", + "行业好公司" + ], + "墨白": [ + "好游戏", + "行业好公司" + ], + "墨白游戏": [ + "好游戏", + "行业好公司" + ], + "墨白(北京)数字技术有限责任公司": [ + "好游戏", + "行业好公司" + ], + "壳木软件": [ + "好游戏", + "行业好公司" + ], + "壹柒互动科技": [ + "好游戏", + "行业好公司" + ], + "多游网络": [ + "好游戏", + "行业好公司" + ], + "多益": [ + "好游戏", + "行业好公司" + ], + "大蓝网络": [ + "好游戏", + "行业好公司" + ], + "大话工作室": [ + "好游戏", + "综合大厂" + ], + "大话神仙": [ + "好游戏", + "行业好公司" + ], + "大酋长": [ + "好游戏", + "行业好公司" + ], + "天之梦": [ + "好游戏", + "行业好公司" + ], + "天之禁": [ + "好游戏", + "行业好公司" + ], + "天书九卷": [ + "好游戏", + "行业好公司" + ], + "天凡科技": [ + "好游戏", + "行业好公司" + ], + "天天过马路": [ + "好游戏", + "行业好公司" + ], + "天拓游戏": [ + "好游戏", + "行业好公司" + ], + "天梯互娱": [ + "好游戏", + "行业好公司" + ], + "天津火鹤网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "天津紫龙奇点互动娱乐有限公司": [ + "好游戏", + "行业好公司" + ], + "天游": [ + "好游戏", + "行业好公司" + ], + "天游集团": [ + "好游戏", + "行业好公司" + ], + "天玩科技": [ + "好游戏", + "行业好公司" + ], + "天盟数码": [ + "好游戏", + "行业好公司" + ], + "天神互动": [ + "好游戏", + "行业好公司" + ], + "天空乐远科技": [ + "好游戏", + "行业好公司" + ], + "天美工作室": [ + "好游戏", + "综合大厂" + ], + "天跃网络": [ + "好游戏", + "行业好公司" + ], + "天际互动": [ + "好游戏", + "行业好公司" + ], + "头脑王者": [ + "好游戏", + "行业好公司" + ], + "奇天乐地科技(北京)有限公司": [ + "好游戏", + "行业好公司" + ], + "奇点星空": [ + "好游戏", + "行业好公司" + ], + "奥飞游戏": [ + "好游戏", + "行业好公司" + ], + "好玩友": [ + "好游戏", + "行业好公司" + ], + "威望迪": [ + "好游戏", + "行业好公司" + ], + "字节": [ + "微众偏好", + "好游戏", + "综合大厂" + ], + "字节游戏": [ + "好游戏", + "综合大厂" + ], + "字节跳动": [ + "微众偏好", + "综合大厂", + "好游戏" + ], + "安徽尚趣玩网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "完美世界": [ + "好游戏", + "猎", + "行业好公司" + ], + "完美世界游戏": [ + "好游戏", + "行业好公司" + ], + "完美世界股份有限公司": [ + "好游戏", + "行业好公司" + ], + "完美时空": [ + "好游戏", + "行业好公司" + ], + "宸康科技(北京)有限公司": [ + "好游戏", + "行业好公司" + ], + "富人国": [ + "好游戏", + "行业好公司" + ], + "寶開遊戲": [ + "好游戏", + "行业好公司" + ], + "寻侠": [ + "好游戏", + "行业好公司" + ], + "小小帝国": [ + "好游戏", + "行业好公司" + ], + "小志传奇": [ + "好游戏", + "行业好公司" + ], + "小牛互娱": [ + "好游戏", + "行业好公司" + ], + "小牛互娱科技(深圳)有限公司": [ + "好游戏", + "行业好公司" + ], + "小白工作室": [ + "好游戏", + "行业好公司" + ], + "小白(炎魂)": [ + "好游戏", + "行业好公司" + ], + "小米游戏": [ + "好游戏", + "行业好公司" + ], + "小葱游戏": [ + "好游戏", + "行业好公司" + ], + "少年魔兽团": [ + "好游戏", + "行业好公司" + ], + "尚游网络": [ + "好游戏", + "行业好公司" + ], + "尚点互动": [ + "好游戏", + "行业好公司" + ], + "屌丝伞兵": [ + "好游戏", + "行业好公司" + ], + "岂凡网络": [ + "好游戏", + "行业好公司" + ], + "岚悦科技": [ + "好游戏", + "行业好公司" + ], + "巨人移动": [ + "好游戏", + "行业好公司" + ], + "巨人网络": [ + "好游戏", + "行业好公司" + ], + "巨量引擎": [ + "微众偏好", + "好游戏", + "综合大厂" + ], + "巴别时代": [ + "好游戏", + "行业好公司" + ], + "幻电科技": [ + "行业头部多元化", + "好游戏" + ], + "广东星辉天拓互动娱乐有限公司": [ + "好游戏", + "行业好公司" + ], + "广州三七网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州三乐信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州众赞信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州创思信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州卓动": [ + "好游戏", + "行业好公司" + ], + "广州卓动信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州可域信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州多益网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "广州大蓝网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州天之梦网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州天梯网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州宸梦信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州寰宇观邑信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州市擎天柱网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州库洛科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州彩蛋信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州捷游": [ + "好游戏", + "行业好公司" + ], + "广州捷游信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州星众信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州暴雨网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州游爱网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州灵犀互动娱乐有限公司": [ + "好游戏", + "行业好公司" + ], + "广州爱九游信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州百田信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州简悦信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州简悦科技": [ + "好游戏", + "行业好公司" + ], + "广州菲音信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州葫芦信息网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州要玩娱乐网络有限公司": [ + "好游戏", + "行业好公司" + ], + "广州贪玩信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "广州趣丸网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州跃盈科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州途游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州鑫拓信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "广州银汉网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "库洛": [ + "好游戏", + "行业好公司" + ], + "库洛游戏": [ + "好游戏", + "行业好公司" + ], + "库洛科技": [ + "好游戏", + "行业好公司" + ], + "廊坊瞬秒网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "当乐网": [ + "好游戏", + "行业好公司" + ], + "当歌网络": [ + "好游戏", + "行业好公司" + ], + "彩云游戏浏览器": [ + "好游戏", + "行业好公司" + ], + "彩瞳网络": [ + "行业头部多元化", + "好游戏" + ], + "彩蛋": [ + "好游戏", + "行业好公司" + ], + "征和建元": [ + "好游戏", + "行业好公司" + ], + "征聚信息": [ + "好游戏", + "行业好公司" + ], + "征途网络": [ + "好游戏", + "行业好公司" + ], + "征铎信息": [ + "好游戏", + "行业好公司" + ], + "微传": [ + "好游戏", + "行业好公司" + ], + "微语音": [ + "好游戏", + "行业好公司" + ], + "心动": [ + "行业头部", + "好游戏" + ], + "心动娱乐": [ + "行业头部", + "好游戏" + ], + "心动小狗": [ + "好游戏", + "行业好公司" + ], + "心动游戏": [ + "行业头部", + "好游戏" + ], + "心动网络": [ + "行业头部", + "好游戏" + ], + "心动网络有限公司": [ + "好游戏", + "行业好公司" + ], + "心动网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "心跳时空": [ + "好游戏", + "行业好公司" + ], + "必果文创": [ + "好游戏", + "行业好公司" + ], + "必果文创(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "快乐熊猫": [ + "好游戏", + "行业好公司" + ], + "快乐熊猫科技(常州)有限公司": [ + "好游戏", + "行业好公司" + ], + "快手": [ + "行业头部多元化", + "好游戏" + ], + "念力科技": [ + "好游戏", + "行业好公司" + ], + "恺英": [ + "好游戏", + "行业好公司" + ], + "恺英网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "悠星": [ + "好游戏", + "行业好公司" + ], + "悦动网络": [ + "好游戏", + "行业好公司" + ], + "想要轻游戏社区": [ + "好游戏", + "行业好公司" + ], + "成都乐狗科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都余香": [ + "好游戏", + "行业好公司" + ], + "成都余香科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "成都卓杭网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "成都博耐尔科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都壹柒互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都尼毕鲁科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "成都市梦想兄弟网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "成都市玉米树科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都市龙游天下科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都极仕科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都格斗科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都梦想兄弟网络": [ + "好游戏", + "行业好公司" + ], + "成都网成科技": [ + "好游戏", + "行业好公司" + ], + "成都网成科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都贝塔网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都超级梦网络技术股份有限公司": [ + "好游戏", + "行业好公司" + ], + "成都阿鲁巴科技": [ + "好游戏", + "行业好公司" + ], + "成都阿鲁巴科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都首游互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "成都龙渊网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "我叫mt": [ + "好游戏", + "行业好公司" + ], + "我爱琪琪": [ + "好游戏", + "行业好公司" + ], + "我的勇者": [ + "好游戏", + "行业好公司" + ], + "战歌": [ + "好游戏", + "行业好公司" + ], + "战游网": [ + "行业头部", + "好游戏" + ], + "战魂工作室": [ + "好游戏", + "综合大厂" + ], + "所思": [ + "好游戏", + "行业好公司" + ], + "所思科技": [ + "好游戏", + "行业好公司" + ], + "手游玩家": [ + "好游戏", + "行业好公司" + ], + "抱一科技": [ + "好游戏", + "行业好公司" + ], + "抱一网络": [ + "好游戏", + "行业好公司" + ], + "拱顶石游戏": [ + "好游戏", + "行业好公司" + ], + "拳头游戏": [ + "行业头部", + "好游戏" + ], + "拾梦文化": [ + "好游戏", + "行业好公司" + ], + "拾梦文化发展(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "拾梦网络科技(海南)有限公司": [ + "好游戏", + "行业好公司" + ], + "拾萌文化发展(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "捕妖达人": [ + "好游戏", + "行业好公司" + ], + "捕鱼达人": [ + "好游戏", + "行业好公司" + ], + "捷游信息": [ + "好游戏", + "行业好公司" + ], + "掌派科技": [ + "好游戏", + "行业好公司" + ], + "掌趣": [ + "好游戏", + "行业好公司" + ], + "掌趣科技": [ + "好游戏", + "行业好公司" + ], + "摘星": [ + "好游戏", + "行业好公司" + ], + "摩羯": [ + "好游戏", + "行业好公司" + ], + "摩羯科技": [ + "好游戏", + "行业好公司" + ], + "摩羯科技(深圳)有限公司": [ + "好游戏", + "行业好公司" + ], + "擎天柱": [ + "好游戏", + "行业好公司" + ], + "擎月软件": [ + "好游戏", + "行业好公司" + ], + "攸乐": [ + "好游戏", + "行业好公司" + ], + "斑马网": [ + "好游戏", + "行业好公司" + ], + "新加坡商竞舞电竞有限公司": [ + "好游戏", + "行业好公司" + ], + "新斗罗大陆": [ + "好游戏", + "行业好公司" + ], + "新游互联ngds": [ + "好游戏", + "行业好公司" + ], + "新游互联(福州)信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "新游无限": [ + "好游戏", + "行业好公司" + ], + "新游智推": [ + "好游戏", + "行业好公司" + ], + "新湃传媒": [ + "好游戏", + "猎", + "行业好公司" + ], + "新湃传媒集团有限公司": [ + "好游戏", + "行业好公司" + ], + "新蜀门": [ + "好游戏", + "行业好公司" + ], + "新银河": [ + "好游戏", + "行业好公司" + ], + "无端科技": [ + "好游戏", + "行业好公司" + ], + "昆仑万": [ + "好游戏", + "行业好公司" + ], + "昆仑万维": [ + "好游戏", + "行业好公司" + ], + "昆仑万维科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "明星脸": [ + "好游戏", + "行业好公司" + ], + "易手游": [ + "好游戏", + "行业好公司" + ], + "易手游科技": [ + "好游戏", + "行业好公司" + ], + "易玩": [ + "行业头部", + "好游戏", + "阅文偏好" + ], + "星创互联": [ + "好游戏", + "行业好公司" + ], + "星创互联(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "星河": [ + "好游戏", + "行业好公司" + ], + "星河游戏": [ + "好游戏", + "行业好公司" + ], + "星空佳游": [ + "好游戏", + "行业好公司" + ], + "星辉互动": [ + "好游戏", + "行业好公司" + ], + "星辉天拓": [ + "好游戏", + "行业好公司" + ], + "智乐": [ + "好游戏", + "行业好公司" + ], + "智乐软件(北京)有限公司": [ + "好游戏", + "行业好公司" + ], + "智明互动": [ + "好游戏", + "行业好公司" + ], + "智明星通": [ + "好游戏", + "行业好公司" + ], + "智游达": [ + "好游戏", + "行业好公司" + ], + "暖暖游戏": [ + "行业头部", + "好游戏" + ], + "暴雪": [ + "好游戏", + "行业好公司" + ], + "最初梦想(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "有塔游戏": [ + "好游戏", + "行业好公司" + ], + "朝夕光年": [ + "好游戏", + "综合大厂" + ], + "木七七": [ + "好游戏", + "行业好公司" + ], + "木叶信息": [ + "好游戏", + "行业好公司" + ], + "机器砖块": [ + "行业头部", + "好游戏" + ], + "杭州乐港科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州墨橙科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州幻电": [ + "行业头部多元化", + "好游戏" + ], + "杭州幻电科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州当歌网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州掌派科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州浮云网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州电魂网络科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州绝地科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "杭州边锋网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "杭泽网络": [ + "好游戏", + "综合大厂" + ], + "极无双": [ + "好游戏", + "行业好公司" + ], + "极游网": [ + "好游戏", + "行业好公司" + ], + "果盒网络": [ + "好游戏", + "行业好公司" + ], + "柚子玩": [ + "好游戏", + "行业好公司" + ], + "柠檬微趣": [ + "好游戏", + "行业好公司" + ], + "标派科技": [ + "好游戏", + "行业好公司" + ], + "桃花互娱": [ + "好游戏", + "行业好公司" + ], + "桃花互娱(深圳)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "桃花源记": [ + "好游戏", + "行业好公司" + ], + "梦之谷游戏": [ + "好游戏", + "行业好公司" + ], + "梦启科技": [ + "好游戏", + "行业好公司" + ], + "梦启(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "梦宝谷": [ + "好游戏", + "行业好公司" + ], + "梦幻工作室": [ + "好游戏", + "综合大厂" + ], + "梦想兄弟": [ + "好游戏", + "行业好公司" + ], + "梦求": [ + "好游戏", + "行业好公司" + ], + "梦求游戏": [ + "好游戏", + "行业好公司" + ], + "椰岛游戏": [ + "好游戏", + "行业好公司" + ], + "次元跳跃": [ + "好游戏", + "行业好公司" + ], + "欢乐互娱": [ + "好游戏", + "行业好公司" + ], + "欢乐互娱(上海)科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "武汉乐星互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "武汉乐蜀网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "武汉微派网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "武汉心驰神往科技有限公司": [ + "好游戏", + "行业好公司" + ], + "武道破天": [ + "好游戏", + "行业好公司" + ], + "水果堂": [ + "好游戏", + "行业好公司" + ], + "水果忍者": [ + "好游戏", + "行业好公司" + ], + "水滴农场": [ + "好游戏", + "行业好公司" + ], + "永航科技": [ + "好游戏", + "行业好公司" + ], + "汉末霸业": [ + "好游戏", + "行业好公司" + ], + "江西贪玩信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "沁游": [ + "好游戏", + "行业好公司" + ], + "沐央网络": [ + "好游戏", + "综合大厂" + ], + "沐瞳": [ + "微众偏好", + "综合大厂", + "好游戏" + ], + "沐瞳游戏": [ + "好游戏", + "综合大厂" + ], + "沐瞳科技": [ + "好游戏", + "综合大厂" + ], + "沐联网络": [ + "好游戏", + "综合大厂" + ], + "油瓶网": [ + "好游戏", + "行业好公司" + ], + "波克城市": [ + "好游戏", + "行业好公司" + ], + "波克科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "浙江世纪华通集团股份有限公司": [ + "好游戏", + "行业好公司" + ], + "浙江乐道网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "浙江无端科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "浚源工作室": [ + "好游戏", + "综合大厂" + ], + "浮云网络": [ + "好游戏", + "行业好公司" + ], + "海南尚轩网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "海南游道易网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "海南贪玩信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "海南超量信息科技有限公司": [ + "好游戏", + "行业好公司" + ], + "海口动网先锋网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "海岛大亨": [ + "好游戏", + "行业好公司" + ], + "涂鸦移动": [ + "好游戏", + "行业好公司" + ], + "消消乐": [ + "好游戏", + "行业好公司" + ], + "淘乐网络": [ + "好游戏", + "行业好公司" + ], + "淘乐网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "淘米": [ + "好游戏", + "行业好公司" + ], + "深圳七道贰次元投资合伙企业(有限合伙)": [ + "好游戏", + "行业好公司" + ], + "深圳中青宝互动网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳冰川网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳启乐智能机器人有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳岂凡网络有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市中手游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市乐其科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市乐多互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市创梦天地科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市千奇网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市嘉浩网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市尚游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市抱一网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市新银河技术有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市星河互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市来玩科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市游科互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市游视秀科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市烁动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市玩玩去网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市禅游科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市萌布玩数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳市首游时空科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳智梦星科技": [ + "好游戏", + "行业好公司" + ], + "深圳智梦星科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳灿和兄弟网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳第七大道科技有限公司": [ + "好游戏", + "行业好公司" + ], + "深圳黑鲨科技有限公司": [ + "好游戏", + "行业好公司" + ], + "游久": [ + "好游戏", + "行业好公司" + ], + "游久时代(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "游久游戏": [ + "好游戏", + "行业好公司" + ], + "游动网络": [ + "好游戏", + "行业好公司" + ], + "游奇": [ + "好游戏", + "行业好公司" + ], + "游娱网": [ + "好游戏", + "行业好公司" + ], + "游戏科学": [ + "好游戏", + "行业好公司" + ], + "游戏谷": [ + "好游戏", + "行业好公司" + ], + "游族": [ + "好游戏", + "行业好公司" + ], + "游族网络股份有限公司": [ + "好游戏", + "行业好公司" + ], + "游易道": [ + "好游戏", + "行业好公司" + ], + "游梅信息": [ + "好游戏", + "行业好公司" + ], + "游爱": [ + "好游戏", + "行业好公司" + ], + "游爱游戏": [ + "好游戏", + "行业好公司" + ], + "游科互动": [ + "好游戏", + "行业好公司" + ], + "游视秀": [ + "好游戏", + "行业好公司" + ], + "游讯在线(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "滴博网络科技(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "漫游谷": [ + "好游戏", + "行业好公司" + ], + "瀛弘世纪": [ + "好游戏", + "行业好公司" + ], + "灏承信息": [ + "好游戏", + "行业好公司" + ], + "灏杭信息": [ + "好游戏", + "行业好公司" + ], + "火烈鸟": [ + "好游戏", + "行业好公司" + ], + "火烈鸟网络": [ + "好游戏", + "行业好公司" + ], + "火烈鸟网络(广州)股份有限公司": [ + "好游戏", + "行业好公司" + ], + "火猫网络": [ + "好游戏", + "行业好公司" + ], + "火猴工作室": [ + "行业头部", + "好游戏" + ], + "火石软件": [ + "好游戏", + "行业好公司" + ], + "灭神": [ + "好游戏", + "行业好公司" + ], + "灵犀互动娱乐": [ + "行业头部多元化", + "好游戏" + ], + "灵犀互娱": [ + "行业头部多元化", + "好游戏" + ], + "灵犀娱乐": [ + "行业头部多元化", + "好游戏" + ], + "灿和兄弟": [ + "好游戏", + "行业好公司" + ], + "炎魂网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "炫宗": [ + "好游戏", + "行业好公司" + ], + "炫彩互动": [ + "好游戏", + "行业好公司" + ], + "炫彩互动网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "点滴乐趣": [ + "好游戏", + "行业好公司" + ], + "点点互动": [ + "行业头部", + "好游戏" + ], + "点点互动(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "点点互动科技": [ + "好游戏", + "行业好公司" + ], + "点点互动(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "点点科技": [ + "好游戏", + "行业好公司" + ], + "点趣互动": [ + "好游戏", + "行业好公司" + ], + "烈焰": [ + "好游戏", + "行业好公司" + ], + "热血三国": [ + "好游戏", + "行业好公司" + ], + "热血之刃": [ + "好游戏", + "行业好公司" + ], + "热酷rekoo": [ + "好游戏", + "行业好公司" + ], + "爱使股份": [ + "好游戏", + "行业好公司" + ], + "爱奇艺游戏": [ + "好游戏", + "行业好公司" + ], + "爱游戏": [ + "好游戏", + "行业好公司" + ], + "牛蛙制作": [ + "行业头部", + "好游戏" + ], + "犀牛互动": [ + "好游戏", + "行业好公司" + ], + "狸猫游戏": [ + "好游戏", + "行业好公司" + ], + "狼群工作室": [ + "行业头部", + "好游戏" + ], + "猎豹移动": [ + "行业头部多元化", + "好游戏", + "阅文偏好", + "微众偏好" + ], + "猿山科技": [ + "好游戏", + "行业好公司" + ], + "玉米树": [ + "好游戏", + "行业好公司" + ], + "玩友": [ + "好游戏", + "行业好公司" + ], + "玩灏信息": [ + "好游戏", + "行业好公司" + ], + "玩玩去": [ + "好游戏", + "行业好公司" + ], + "珠海市西山居软件有限公司": [ + "好游戏", + "行业好公司" + ], + "琼奇互动娱乐": [ + "好游戏", + "行业好公司" + ], + "电子艺界": [ + "行业头部", + "好游戏" + ], + "电魂": [ + "好游戏", + "行业好公司" + ], + "画画猜": [ + "好游戏", + "行业好公司" + ], + "畅互软件": [ + "好游戏", + "行业好公司" + ], + "畅游": [ + "行业头部", + "好游戏", + "阅文偏好" + ], + "番糖": [ + "好游戏", + "行业好公司" + ], + "番糖游戏": [ + "好游戏", + "行业好公司" + ], + "疯狂动物园": [ + "好游戏", + "行业好公司" + ], + "疯狂娃娃机": [ + "好游戏", + "行业好公司" + ], + "疯狂猜图": [ + "好游戏", + "行业好公司" + ], + "登山工作室": [ + "好游戏", + "综合大厂" + ], + "白城麻将": [ + "好游戏", + "行业好公司" + ], + "百奥家庭": [ + "好游戏", + "行业好公司" + ], + "百度游戏": [ + "行业头部多元化", + "好游戏", + "微众偏好" + ], + "百田信息": [ + "好游戏", + "行业好公司" + ], + "百田动漫": [ + "好游戏", + "行业好公司" + ], + "百田游戏": [ + "好游戏", + "行业好公司" + ], + "益游网络": [ + "好游戏", + "行业好公司" + ], + "盘古工作室": [ + "好游戏", + "综合大厂" + ], + "盛大游戏": [ + "好游戏", + "行业好公司" + ], + "盛大网络": [ + "好游戏", + "行业好公司" + ], + "盛趣": [ + "好游戏", + "行业好公司" + ], + "盛大认知": [ + "好游戏", + "行业好公司" + ], + "盛数商务": [ + "好游戏", + "行业好公司" + ], + "盛英网络": [ + "好游戏", + "行业好公司" + ], + "盛趣游戏": [ + "好游戏", + "行业好公司" + ], + "盛酷网络": [ + "好游戏", + "行业好公司" + ], + "目标在线": [ + "好游戏", + "行业好公司" + ], + "瞬秒科技": [ + "好游戏", + "行业好公司" + ], + "知嘛": [ + "好游戏", + "行业好公司" + ], + "硬通网络": [ + "好游戏", + "行业好公司" + ], + "碧汉网络": [ + "行业头部", + "好游戏" + ], + "碧洛网络": [ + "行业头部", + "好游戏" + ], + "磁聚乐科技": [ + "好游戏", + "行业好公司" + ], + "磊友": [ + "好游戏", + "行业好公司" + ], + "祖龙": [ + "好游戏", + "行业好公司" + ], + "祖龙娱乐": [ + "好游戏", + "行业好公司" + ], + "祖龙工作室": [ + "好游戏", + "行业好公司" + ], + "祖龙游": [ + "好游戏", + "行业好公司" + ], + "祖龙游戏": [ + "好游戏", + "行业好公司" + ], + "祖龙科技": [ + "好游戏", + "行业好公司" + ], + "神仙道": [ + "好游戏", + "行业好公司" + ], + "神兽养成记": [ + "好游戏", + "行业好公司" + ], + "神奇时代": [ + "好游戏", + "行业好公司" + ], + "神庙逃亡": [ + "好游戏", + "行业好公司" + ], + "神戒": [ + "好游戏", + "行业好公司" + ], + "神游科技": [ + "好游戏", + "行业好公司" + ], + "神游科技(中国)有限公司": [ + "好游戏", + "行业好公司" + ], + "神舞幻想": [ + "好游戏", + "行业好公司" + ], + "福州天盟数码有限公司": [ + "好游戏", + "行业好公司" + ], + "福州开发区狼途网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "福州龙腾中东网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "福州龙腾简合网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "福建网龙计算机网络信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "福建耀星文化发展有限公司": [ + "好游戏", + "行业好公司" + ], + "福建龙岩指悦科技有限公司": [ + "好游戏", + "行业好公司" + ], + "积木堂": [ + "好游戏", + "行业好公司" + ], + "空中网": [ + "好游戏", + "行业好公司" + ], + "穿越君": [ + "好游戏", + "行业好公司" + ], + "立刻玩": [ + "好游戏", + "行业好公司" + ], + "竞技世界": [ + "好游戏", + "猎", + "行业好公司" + ], + "竞技世界(北京)网络技术有限公司": [ + "好游戏", + "行业好公司" + ], + "竞时通": [ + "好游戏", + "行业好公司" + ], + "竞舞": [ + "好游戏", + "行业好公司" + ], + "第七大道": [ + "好游戏", + "行业好公司" + ], + "第九城市": [ + "好游戏", + "行业好公司" + ], + "简造游戏": [ + "好游戏", + "行业好公司" + ], + "米哈游": [ + "行业头部", + "好游戏", + "猎" + ], + "索尼互动娱乐有限公司": [ + "好游戏", + "行业好公司" + ], + "索尼电脑娱乐株式会社": [ + "行业头部", + "好游戏" + ], + "紫龙": [ + "好游戏", + "行业好公司" + ], + "紫龙互娱": [ + "好游戏", + "行业好公司" + ], + "紫龙奇点": [ + "好游戏", + "行业好公司" + ], + "紫龙游戏": [ + "好游戏", + "行业好公司" + ], + "維瑟羅遊戲": [ + "好游戏", + "行业好公司" + ], + "红色风暴娱乐": [ + "行业头部", + "好游戏" + ], + "纪念碑谷": [ + "好游戏", + "行业好公司" + ], + "纵游网络": [ + "好游戏", + "行业好公司" + ], + "绝地科技": [ + "好游戏", + "行业好公司" + ], + "维塔士": [ + "好游戏", + "行业好公司" + ], + "绿岸": [ + "好游戏", + "行业好公司" + ], + "网元": [ + "好游戏", + "行业好公司" + ], + "网元圣唐": [ + "好游戏", + "行业好公司" + ], + "网易": [ + "微众偏好", + "好游戏", + "猎", + "综合大厂" + ], + "网易游戏": [ + "好游戏", + "综合大厂" + ], + "网龙": [ + "好游戏", + "行业好公司" + ], + "网龙网络": [ + "行业好公司", + "好游戏", + "猎" + ], + "罗布乐思": [ + "行业头部", + "好游戏", + "猎" + ], + "美国艺电公司": [ + "好游戏", + "行业好公司" + ], + "美女德州扑克": [ + "好游戏", + "行业好公司" + ], + "美食大战老鼠": [ + "好游戏", + "行业好公司" + ], + "耀星互娱": [ + "好游戏", + "行业好公司" + ], + "联众": [ + "好游戏", + "行业好公司" + ], + "联众互动": [ + "好游戏", + "行业好公司" + ], + "聚会玩": [ + "好游戏", + "行业好公司" + ], + "聚合网络传奇": [ + "好游戏", + "行业好公司" + ], + "聚和网络": [ + "好游戏", + "行业好公司" + ], + "育碧": [ + "行业头部", + "好游戏" + ], + "育碧娱乐公司": [ + "好游戏", + "行业好公司" + ], + "胜利游戏": [ + "行业头部", + "好游戏" + ], + "腾讯": [ + "好游戏", + "阅文偏好", + "猎", + "微众偏好", + "综合大厂" + ], + "腾讯游戏": [ + "好游戏", + "综合大厂" + ], + "艺忛网络": [ + "好游戏", + "行业好公司" + ], + "艺电": [ + "行业头部", + "好游戏" + ], + "芜湖叠纸网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州亿歌网络科技": [ + "好游戏", + "行业好公司" + ], + "苏州叠纸网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州好玩友网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州沁游网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州神渠数码有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州聚和网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州蜗牛": [ + "好游戏", + "行业好公司" + ], + "苏州蜗牛数字科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州运智互动科技有限公司": [ + "好游戏", + "行业好公司" + ], + "苏州齐英社": [ + "好游戏", + "行业好公司" + ], + "苏州齐英社网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "英佩": [ + "行业头部", + "好游戏" + ], + "英佩数码科技(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "英雄互娱": [ + "好游戏", + "行业好公司" + ], + "英雄互娱科技股份有限公司": [ + "好游戏", + "行业好公司" + ], + "英雄神殿": [ + "好游戏", + "行业好公司" + ], + "莉莉丝": [ + "行业头部", + "好游戏" + ], + "菲音": [ + "好游戏", + "行业好公司" + ], + "萌布玩数码科技": [ + "好游戏", + "行业好公司" + ], + "葡萄藤杀人游戏网": [ + "好游戏", + "行业好公司" + ], + "蓝港": [ + "好游戏", + "行业好公司" + ], + "蓝港在线(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "蓝点游戏": [ + "行业头部", + "好游戏" + ], + "蛋卷游戏": [ + "好游戏", + "综合大厂" + ], + "蛙扑": [ + "好游戏", + "行业好公司" + ], + "蛮啾": [ + "好游戏", + "行业好公司" + ], + "蜀门": [ + "好游戏", + "行业好公司" + ], + "蜗牛": [ + "好游戏", + "行业好公司" + ], + "蜗牛数字": [ + "好游戏", + "行业好公司" + ], + "蜗牛游戏": [ + "好游戏", + "行业好公司" + ], + "蜗牛电子": [ + "好游戏", + "行业好公司" + ], + "蜗牛科技": [ + "好游戏", + "行业好公司" + ], + "蜗牛移动": [ + "好游戏", + "行业好公司" + ], + "蜗牛网络技术": [ + "好游戏", + "行业好公司" + ], + "蝴蝶互动": [ + "好游戏", + "行业好公司" + ], + "蝴蝶互动(上海)信息技术有限公司": [ + "好游戏", + "行业好公司" + ], + "融创无限": [ + "好游戏", + "行业好公司" + ], + "街头篮球": [ + "好游戏", + "行业好公司" + ], + "街机三国": [ + "好游戏", + "行业好公司" + ], + "西山居": [ + "行业头部多元化", + "微众偏好", + "好游戏" + ], + "西山居游戏": [ + "行业头部多元化", + "好游戏" + ], + "西山居软件": [ + "好游戏", + "行业好公司" + ], + "西岐互动": [ + "好游戏", + "行业好公司" + ], + "西木工作室": [ + "行业头部", + "好游戏" + ], + "要玩娱乐": [ + "好游戏", + "行业好公司" + ], + "观海策": [ + "好游戏", + "行业好公司" + ], + "触控": [ + "好游戏", + "行业好公司" + ], + "让时间多点意思": [ + "好游戏", + "行业好公司" + ], + "诺亚传说": [ + "好游戏", + "行业好公司" + ], + "谁是卧底": [ + "好游戏", + "行业好公司" + ], + "豌豆黄科技": [ + "好游戏", + "行业好公司" + ], + "豪腾嘉科hortor": [ + "好游戏", + "行业好公司" + ], + "贝塔游戏": [ + "好游戏", + "行业好公司" + ], + "贝塞斯达软件": [ + "好游戏", + "行业好公司" + ], + "贝壳网际(北京)安全技术有限公司": [ + "好游戏", + "行业好公司" + ], + "贪玩传奇": [ + "好游戏", + "行业好公司" + ], + "贪玩游戏": [ + "好游戏", + "行业好公司" + ], + "贪玩蓝月": [ + "好游戏", + "行业好公司" + ], + "赤月传说": [ + "好游戏", + "行业好公司" + ], + "超级幻影猫系列": [ + "好游戏", + "行业好公司" + ], + "超级梦": [ + "好游戏", + "行业好公司" + ], + "超级细胞": [ + "行业头部", + "好游戏" + ], + "趣丸网络": [ + "好游戏", + "行业好公司" + ], + "趣加": [ + "行业头部", + "好游戏" + ], + "趣赢互动": [ + "好游戏", + "行业好公司" + ], + "跃游信息": [ + "好游戏", + "行业好公司" + ], + "软星科技": [ + "好游戏", + "行业好公司" + ], + "边锋": [ + "好游戏", + "猎", + "行业好公司" + ], + "边锋游戏": [ + "好游戏", + "行业好公司" + ], + "达龙": [ + "好游戏", + "行业好公司" + ], + "运智互动": [ + "好游戏", + "行业好公司" + ], + "进步思创": [ + "好游戏", + "行业好公司" + ], + "远明山水": [ + "好游戏", + "行业好公司" + ], + "追趣游戏": [ + "好游戏", + "行业好公司" + ], + "途游": [ + "好游戏", + "行业好公司" + ], + "途游世界(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "逗游网": [ + "好游戏", + "行业好公司" + ], + "遗迹娱乐": [ + "好游戏", + "行业好公司" + ], + "那朵花": [ + "好游戏", + "行业好公司" + ], + "部落自走棋": [ + "好游戏", + "行业好公司" + ], + "鄱阳县贪玩网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "醉逍遥": [ + "好游戏", + "行业好公司" + ], + "野蛮人游戏": [ + "好游戏", + "行业好公司" + ], + "金刚游戏": [ + "好游戏", + "行业好公司" + ], + "钛核互动": [ + "好游戏", + "行业好公司" + ], + "银月网络": [ + "好游戏", + "行业好公司" + ], + "银汉": [ + "好游戏", + "行业好公司" + ], + "银河工作室": [ + "好游戏", + "综合大厂" + ], + "锐玩游戏": [ + "行业头部", + "好游戏" + ], + "锦绣江山": [ + "好游戏", + "行业好公司" + ], + "问战": [ + "好游戏", + "行业好公司" + ], + "闲徕互娱闲来麻将": [ + "好游戏", + "行业好公司" + ], + "阅文游戏": [ + "好游戏", + "行业好公司" + ], + "阿佩吉": [ + "好游戏", + "行业好公司" + ], + "阿瓦隆": [ + "好游戏", + "行业好公司" + ], + "阿里互娱": [ + "行业头部多元化", + "好游戏" + ], + "阿里游戏": [ + "猎", + "好游戏", + "微众偏好", + "综合大厂" + ], + "雪宝游戏": [ + "好游戏", + "行业好公司" + ], + "雷火工作室": [ + "好游戏", + "综合大厂" + ], + "雷霆互动": [ + "好游戏", + "行业好公司" + ], + "雷霆游戏": [ + "好游戏", + "行业好公司" + ], + "霍尔果斯星辉": [ + "好游戏", + "行业好公司" + ], + "霍尔果斯源稼数码科技有限公司": [ + "好游戏", + "行业好公司" + ], + "霍尔果斯第七大道网络科技有限公司": [ + "好游戏", + "行业好公司" + ], + "霜狼": [ + "好游戏", + "行业好公司" + ], + "霜狼游戏": [ + "好游戏", + "行业好公司" + ], + "青龙工作室": [ + "好游戏", + "综合大厂" + ], + "顽梦数码": [ + "好游戏", + "行业好公司" + ], + "顽皮狗": [ + "行业头部", + "好游戏" + ], + "风雷网络": [ + "好游戏", + "行业好公司" + ], + "飞天大摩托": [ + "好游戏", + "行业好公司" + ], + "飞羽工作室": [ + "好游戏", + "综合大厂" + ], + "飞飞工作室": [ + "好游戏", + "综合大厂" + ], + "飞鱼科技": [ + "好游戏", + "行业好公司" + ], + "飞鱼科技国际有限公司": [ + "好游戏", + "行业好公司" + ], + "首游互动": [ + "好游戏", + "行业好公司" + ], + "首游时空": [ + "好游戏", + "行业好公司" + ], + "香格里拉工作室": [ + "好游戏", + "综合大厂" + ], + "骏梦": [ + "好游戏", + "行业好公司" + ], + "魂器学院": [ + "好游戏", + "行业好公司" + ], + "魅影传说": [ + "好游戏", + "行业好公司" + ], + "魔力宝贝": [ + "好游戏", + "行业好公司" + ], + "魔方工作室": [ + "好游戏", + "综合大厂" + ], + "魔的兽": [ + "好游戏", + "行业好公司" + ], + "鸡你太美": [ + "好游戏", + "行业好公司" + ], + "鸣动网络": [ + "行业头部", + "好游戏" + ], + "鹰角": [ + "好游戏", + "行业好公司" + ], + "鹰角夕墨": [ + "好游戏", + "行业好公司" + ], + "鹰角网络": [ + "好游戏", + "行业好公司" + ], + "鹿米互动": [ + "好游戏", + "行业好公司" + ], + "鹿米互动(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "麦吉太文": [ + "好游戏", + "行业好公司" + ], + "麦吉太文(北京)科技有限公司": [ + "好游戏", + "行业好公司" + ], + "黑帆游戏": [ + "好游戏", + "行业好公司" + ], + "黑帆网络科技(上海)有限公司": [ + "好游戏", + "行业好公司" + ], + "黑鲨科技": [ + "好游戏", + "行业好公司" + ], + "龙之怒吼": [ + "好游戏", + "行业好公司" + ], + "龙之谷": [ + "好游戏", + "行业好公司" + ], + "龙创互娱": [ + "好游戏", + "行业好公司" + ], + "龙创悦动": [ + "好游戏", + "行业好公司" + ], + "龙图游戏": [ + "行业好公司", + "好游戏", + "猎" + ], + "龙渊": [ + "好游戏", + "行业好公司" + ], + "龙游天下": [ + "好游戏", + "行业好公司" + ], + "龙皇传说": [ + "好游戏", + "行业好公司" + ], + "龙耀科技": [ + "好游戏", + "行业好公司" + ], + "龙腾简合": [ + "好游戏", + "行业好公司" + ], + "龙马游戏": [ + "好游戏", + "行业好公司" + ], + "列土封疆": [ + "好游戏", + "行业好公司" + ], + "软通动力": [ + "软外" + ], + "百钧成": [ + "软外" + ], + "文思海辉": [ + "微众偏好", + "软外" + ], + "新致": [ + "软外" + ], + "中智": [ + "软外" + ], + "外服": [ + "软外" + ], + "中企人力": [ + "软外" + ], + "易才": [ + "软外" + ], + "华盛恒辉": [ + "软外" + ], + "五木恒润": [ + "软外" + ], + "中软国际": [ + "软外" + ], + "柯莱特": [ + "软外" + ], + "中科软": [ + "软外" + ], + "博彦科技": [ + "软外" + ], + "浪潮": [ + "行业头部", + "软外" + ], + "亚信科技": [ + "软外" + ], + "新致软件": [ + "软外" + ], + "宇信科技": [ + "软外" + ], + "法本": [ + "软外" + ], + "德科": [ + "软外" + ], + "东软集团": [ + "软外" + ], + "海隆软件": [ + "软外" + ], + "汉德": [ + "软外" + ], + "科蓝": [ + "软外" + ], + "微创": [ + "软外" + ], + "亿迪": [ + "软外" + ], + "海博拓天": [ + "软外" + ], + "神马": [ + "软外" + ], + "博朗": [ + "软外" + ], + "中和软件": [ + "软外" + ], + "凌志软件": [ + "软外" + ], + "信必优": [ + "软外" + ], + "浙大网新": [ + "软外" + ], + "亿达": [ + "软外" + ], + "润和": [ + "软外" + ], + "fordeal": [ + "猎", + "行业好公司" + ], + "芬香科技": [ + "猎", + "行业好公司" + ], + "嘉葆药银": [ + "猎", + "行业好公司" + ], + "平安消金": [ + "猎" + ], + "时创能源": [ + "猎" + ], + "魔音云智能科技": [ + "猎" + ], + "睦星科技": [ + "猎", + "行业好公司" + ], + "晨山资本": [ + "猎", + "行业好公司" + ], + "中科唯实矿山": [ + "猎", + "行业好公司" + ], + "和利资本": [ + "猎", + "行业好公司" + ], + "铼钠克数控": [ + "猎", + "行业好公司" + ], + "新同方投资管理": [ + "猎", + "行业好公司" + ], + "nreal": [ + "猎", + "行业好公司" + ], + "启客科技": [ + "猎", + "行业好公司" + ], + "大唐财富大区": [ + "猎", + "行业好公司" + ], + "百老汇": [ + "猎", + "行业好公司" + ], + "宝丰": [ + "猎", + "行业好公司" + ], + "平安银行分行": [ + "猎", + "猎", + "猎", + "猎", + "猎", + "猎" + ], + "乐麦": [ + "猎", + "行业好公司" + ], + "来语飞智能": [ + "猎", + "行业好公司" + ], + "东证期货": [ + "猎", + "行业好公司" + ], + "心医国际": [ + "猎", + "行业好公司" + ], + "蔚领科技": [ + "猎", + "行业好公司" + ], + "品高软件": [ + "猎", + "行业好公司" + ], + "上上签": [ + "猎", + "行业好公司" + ], + "麦克韦尔": [ + "猎", + "行业好公司" + ], + "最右": [ + "猎", + "行业好公司" + ], + "新蛋中国": [ + "猎", + "行业好公司" + ], + "有为技术": [ + "猎", + "行业好公司" + ], + "虎扑": [ + "猎", + "行业好公司" + ], + "饿了么": [ + "猎", + "微众偏好", + "综合大厂" + ], + "得物": [ + "行业头部", + "猎" + ], + "美团点评": [ + "猎" + ], + "58同城": [ + "行业头部多元化", + "猎", + "阅文偏好" + ], + "腾讯云计算子公司": [ + "猎" + ], + "小红书": [ + "行业头部", + "猎" + ], + "shopee": [ + "行业头部", + "微众偏好", + "猎" + ], + "高德地图": [ + "行业头部", + "猎" + ], + "拼多多": [ + "行业头部多元化", + "猎" + ], + "soul": [ + "行业头部", + "猎" + ], + "腾讯音乐": [ + "微众偏好", + "猎", + "综合大厂" + ], + "众安保险": [ + "行业头部", + "猎" + ], + "哈啰出行": [ + "行业头部多元化", + "猎", + "阅文偏好" + ], + "lazada": [ + "猎", + "微众偏好", + "综合大厂" + ], + "达达京东到家": [ + "猎", + "行业好公司" + ], + "滴滴出行": [ + "行业头部多元化", + "微众偏好", + "猎" + ], + "小米": [ + "行业头部多元化", + "微众偏好", + "阅文偏好", + "猎" + ], + "news break": [ + "猎", + "行业好公司" + ], + "联仁健康": [ + "猎", + "行业好公司" + ], + "优酷土豆": [ + "行业头部", + "猎", + "阅文偏好" + ], + "uc": [ + "猎", + "行业好公司" + ], + "特斯拉": [ + "猎" + ], + "微盟": [ + "行业头部", + "猎" + ], + "华钦科技": [ + "猎", + "行业好公司" + ], + "xtransfer": [ + "猎", + "行业好公司" + ], + "zeku": [ + "猎", + "行业好公司" + ], + "牛客网": [ + "猎", + "行业好公司" + ], + "shein": [ + "行业头部", + "猎" + ], + "天眼查": [ + "猎", + "行业好公司" + ], + "谊品生鲜": [ + "猎", + "行业好公司" + ], + "端点网络": [ + "猎", + "行业好公司" + ], + "泛微网络": [ + "猎", + "行业好公司" + ], + "招行信用卡": [ + "猎" + ], + "平安寿险": [ + "行业头部", + "猎" + ], + "宏利信息": [ + "猎", + "行业好公司" + ], + "鼎桥通信": [ + "猎", + "行业好公司" + ], + "赢时胜": [ + "猎", + "行业好公司" + ], + "罗辑思维": [ + "猎", + "行业好公司" + ], + "bigo": [ + "行业头部", + "猎" + ], + "橙鹰数据": [ + "猎", + "行业好公司" + ], + "知乎": [ + "行业头部", + "猎" + ], + "patpat": [ + "猎", + "行业好公司" + ], + "上海飞未": [ + "猎" + ], + "朴朴": [ + "猎", + "行业好公司" + ], + "奇点singularity data": [ + "猎", + "行业好公司" + ], + "优幕": [ + "猎", + "行业好公司" + ], + "去哪儿": [ + "行业头部", + "猎" + ], + "网易有道": [ + "微众偏好", + "猎", + "综合大厂" + ], + "极光": [ + "猎", + "行业好公司" + ], + "微民保险": [ + "猎", + "行业好公司" + ], + "新氧": [ + "猎", + "行业好公司" + ], + "熙牛医疗": [ + "猎", + "行业好公司" + ], + "尚游游戏": [ + "猎" + ], + "来也科技": [ + "微众偏好", + "猎", + "行业好公司" + ], + "网鱼": [ + "猎", + "行业好公司" + ], + "海康威视": [ + "行业头部多元化", + "猎" + ], + "便利蜂": [ + "猎", + "行业好公司" + ], + "星环科技": [ + "猎", + "行业好公司" + ], + "契约锁": [ + "猎", + "行业好公司" + ], + "蔚来汽车": [ + "行业头部", + "猎" + ], + "矩阵起源": [ + "猎", + "行业好公司" + ], + "阿拉丁": [ + "猎", + "行业好公司" + ], + "寺信": [ + "猎", + "行业好公司" + ], + "易宝": [ + "猎", + "行业好公司" + ], + "数数科技": [ + "猎", + "行业好公司" + ], + "众薪速达": [ + "猎", + "行业好公司" + ], + "一智科技": [ + "猎", + "行业好公司" + ], + "唯品会": [ + "行业头部", + "微众偏好", + "阅文偏好", + "猎" + ], + "映客直播": [ + "猎", + "行业好公司" + ], + "顺丰科技": [ + "行业头部多元化", + "微众偏好", + "猎" + ], + "oppo": [ + "行业头部多元化", + "微众偏好", + "猎" + ], + "国泰产险": [ + "猎" + ], + "识货": [ + "行业头部", + "猎" + ], + "什么值得买": [ + "猎", + "行业好公司" + ], + "雅乐科技": [ + "猎", + "行业好公司" + ], + "石头科技": [ + "猎", + "行业好公司" + ], + "zilliz": [ + "猎", + "行业好公司" + ], + "鲸灵网络": [ + "猎", + "行业好公司" + ], + "猎网": [ + "猎" + ], + "荣耀终端": [ + "猎", + "行业好公司" + ], + "caper": [ + "猎", + "行业好公司" + ], + "aviagames": [ + "猎" + ], + "洛凯": [ + "猎", + "行业好公司" + ], + "四维纵横数据": [ + "猎", + "行业好公司" + ], + "酷派": [ + "猎", + "行业好公司" + ], + "蘑菇车联": [ + "猎", + "行业好公司" + ], + "斑马智行": [ + "猎", + "微众偏好", + "综合大厂" + ], + "普渡科技": [ + "猎", + "行业好公司" + ], + "品览数据": [ + "猎", + "行业好公司" + ], + "福寿康": [ + "猎", + "行业好公司" + ], + "信化": [ + "猎", + "行业好公司" + ], + "flat incubator": [ + "猎", + "行业好公司" + ], + "江融信科技": [ + "猎", + "行业好公司" + ], + "领创智信": [ + "猎", + "行业好公司" + ], + "云犀": [ + "猎", + "行业好公司" + ], + "嘀嗒出行": [ + "猎", + "行业好公司" + ], + "马上消费": [ + "行业头部", + "微众偏好", + "猎" + ], + "销氪": [ + "猎", + "行业好公司" + ], + "领星erp": [ + "猎", + "行业好公司" + ], + "远东宏信普惠融资租赁": [ + "猎" + ], + "黑湖科技": [ + "猎", + "行业好公司" + ], + "美年健康": [ + "猎", + "行业好公司" + ], + "函子科技": [ + "猎", + "行业好公司" + ], + "掌上先机": [ + "猎", + "行业好公司" + ], + "招商蛇口数字城市": [ + "猎" + ], + "汇量科技": [ + "猎", + "行业好公司" + ], + "赛特斯": [ + "猎", + "行业好公司" + ], + "声智": [ + "猎", + "行业好公司" + ], + "云迹": [ + "猎", + "行业好公司" + ], + "梦门科技": [ + "猎", + "行业好公司" + ], + "云学堂": [ + "猎", + "行业好公司" + ], + "网易灵犀": [ + "猎", + "行业好公司" + ], + "羚驾科技": [ + "猎", + "行业好公司" + ], + "萝卜": [ + "猎", + "行业好公司" + ], + "某集团公司": [ + "猎" + ], + "携程": [ + "行业头部多元化", + "猎", + "阅文偏好" + ], + "奇虎360": [ + "行业头部多元化", + "猎" + ], + "平安科技": [ + "微众偏好", + "猎" + ], + "触控科技": [ + "猎", + "行业好公司" + ], + "虎彩印艺": [ + "猎", + "行业好公司" + ], + "微店/口袋": [ + "猎" + ], + "丰巢科技": [ + "猎", + "行业好公司" + ], + "平安租赁": [ + "行业头部", + "猎" + ], + "人人视频": [ + "猎", + "行业好公司" + ], + "壹账通": [ + "猎", + "行业好公司" + ], + "商米": [ + "猎", + "行业好公司" + ], + "中兴": [ + "猎", + "行业好公司" + ], + "银泰商业": [ + "猎", + "行业好公司" + ], + "face": [ + "行业头部", + "微众偏好", + "猎" + ], + "维恩咨询": [ + "猎", + "行业好公司" + ], + "平安智慧城": [ + "猎" + ], + "帆软软件": [ + "猎", + "行业好公司" + ], + "传音控股": [ + "行业头部", + "猎" + ], + "睿科伦": [ + "猎", + "行业好公司" + ], + "metaapp": [ + "猎", + "行业好公司" + ], + "敦煌网": [ + "猎", + "行业好公司" + ], + "小影科技": [ + "猎", + "行业好公司" + ], + "威尔视觉": [ + "猎", + "行业好公司" + ], + "递四方速递": [ + "猎", + "行业好公司" + ], + "大启科技": [ + "猎", + "行业好公司" + ], + "百观科技": [ + "猎", + "行业好公司" + ], + "钛动科技": [ + "猎", + "行业好公司" + ], + "平安好医": [ + "猎" + ], + "聚时科技": [ + "猎", + "行业好公司" + ], + "银雁科技": [ + "猎", + "行业好公司" + ], + "蘑菇物联": [ + "猎", + "行业好公司" + ], + "诸云科技": [ + "猎", + "行业好公司" + ], + "商汤科技": [ + "行业头部", + "微众偏好", + "猎" + ], + "银承库": [ + "猎", + "行业好公司" + ], + "邦奇智能": [ + "猎", + "行业好公司" + ], + "ctrlbox": [ + "猎", + "行业好公司" + ], + "灵感科技": [ + "猎", + "行业好公司" + ], + "乐檬软件": [ + "猎", + "行业好公司" + ], + "evercraft": [ + "猎", + "行业好公司" + ], + "电魂网络": [ + "猎", + "行业好公司" + ], + "对对": [ + "猎", + "行业好公司" + ], + "正瀛资产管理": [ + "猎", + "行业好公司" + ], + "sphereex": [ + "猎", + "行业好公司" + ], + "法本信息": [ + "猎" + ], + "ones": [ + "猎", + "行业好公司" + ], + "优胜科技": [ + "猎", + "行业好公司" + ], + "嘉银金科": [ + "猎", + "行业好公司" + ], + "墨奇科技": [ + "猎", + "行业好公司" + ], + "telenav": [ + "猎", + "行业好公司" + ], + "深视科技": [ + "猎", + "行业好公司" + ], + "知量数据": [ + "猎", + "行业好公司" + ], + "silot": [ + "猎", + "行业好公司" + ], + "菱歌科技": [ + "猎", + "行业好公司" + ], + "云融科技": [ + "猎", + "行业好公司" + ], + "掌奇网络": [ + "猎", + "行业好公司" + ], + "以见科技": [ + "猎", + "行业好公司" + ], + "维智科技": [ + "猎", + "行业好公司" + ], + "药明康德": [ + "猎" + ], + "呦尔哈": [ + "猎", + "行业好公司" + ], + "国汽智控": [ + "猎", + "行业好公司" + ], + "小库科技": [ + "猎", + "行业好公司" + ], + "鑫澳康科技": [ + "猎", + "行业好公司" + ], + "茶颜悦色": [ + "猎", + "行业好公司" + ], + "云链科技": [ + "猎", + "行业好公司" + ], + "多保鱼": [ + "猎", + "行业好公司" + ], + "肯斯爪特": [ + "猎", + "行业好公司" + ], + "国民健康": [ + "猎", + "行业好公司" + ], + "久雅科技": [ + "猎", + "行业好公司" + ], + "达观数据": [ + "猎", + "行业好公司" + ], + "广联达": [ + "猎", + "行业好公司" + ], + "码力": [ + "猎", + "行业好公司" + ], + "爱数": [ + "猎", + "行业好公司" + ], + "三医互联": [ + "猎", + "行业好公司" + ], + "墨迹天气": [ + "猎", + "行业好公司" + ], + "上海印闪": [ + "猎", + "行业好公司" + ], + "正岸科技": [ + "猎", + "行业好公司" + ], + "明略科技": [ + "猎", + "行业好公司" + ], + "中兴网信": [ + "猎", + "行业好公司" + ], + "云览科技": [ + "猎", + "行业好公司" + ], + "灵伴科技": [ + "猎", + "行业好公司" + ], + "微智全景": [ + "猎", + "行业好公司" + ], + "薪宝信息": [ + "猎", + "行业好公司" + ], + "科维智娱": [ + "猎", + "行业好公司" + ], + "金证优智": [ + "猎", + "行业好公司" + ], + "飞盒跨境": [ + "猎", + "行业好公司" + ], + "ihandy": [ + "猎", + "行业好公司" + ], + "洋钱罐": [ + "猎", + "行业好公司" + ], + "神策数据": [ + "猎", + "行业好公司" + ], + "中原消费金融": [ + "猎" + ], + "中科寒武纪": [ + "行业头部", + "猎" + ], + "主线科技": [ + "猎", + "行业好公司" + ], + "燧原科技": [ + "猎", + "行业好公司" + ], + "新石器无人车": [ + "猎", + "行业好公司" + ], + "亿嘉和": [ + "猎", + "行业好公司" + ], + "云天励飞": [ + "行业好公司", + "微众偏好", + "猎" + ], + "百融金服": [ + "猎", + "行业好公司" + ], + "趋动科技": [ + "猎", + "行业好公司" + ], + "映驰科技": [ + "猎", + "行业好公司" + ], + "千象资产管理": [ + "猎" + ], + "维宏": [ + "猎", + "行业好公司" + ], + "木蚁机器人": [ + "猎", + "行业好公司" + ], + "扩博智能": [ + "猎", + "行业好公司" + ], + "极智嘉": [ + "猎", + "行业好公司" + ], + "支付宝合作服务商": [ + "猎" + ], + "文远知行": [ + "行业头部", + "猎" + ], + "不鸣科技": [ + "猎", + "行业好公司" + ], + "智慧芽": [ + "猎", + "行业好公司" + ], + "宽凳智云": [ + "行业头部", + "猎" + ], + "鲲云科技": [ + "猎", + "行业好公司" + ], + "深兰科技": [ + "猎", + "行业好公司" + ], + "速石科技": [ + "猎", + "行业好公司" + ], + "科大讯飞": [ + "行业头部多元化", + "微众偏好", + "猎" + ], + "三星半导体中国研究开发": [ + "行业头部", + "猎" + ], + "autox": [ + "猎", + "行业好公司" + ], + "易控智驾": [ + "猎", + "行业好公司" + ], + "珍爱网": [ + "行业头部", + "猎" + ], + "平安证券": [ + "行业头部", + "猎" + ], + "大陆汽车": [ + "猎" + ], + "平安信托": [ + "猎" + ], + "华为": [ + "微众偏好", + "猎", + "综合大厂" + ], + "天泽智云": [ + "猎", + "行业好公司" + ], + "speakin": [ + "猎", + "行业好公司" + ], + "akulaku": [ + "猎", + "行业好公司" + ], + "美篇": [ + "猎", + "行业好公司" + ], + "满帮集团": [ + "行业头部", + "猎" + ], + "音娱时光": [ + "猎", + "行业好公司" + ], + "中科保泰": [ + "猎", + "行业好公司" + ], + "闪马智能": [ + "猎", + "行业好公司" + ], + "贝塔科技": [ + "猎", + "行业好公司" + ], + "博恩登特": [ + "猎", + "行业好公司" + ], + "autobrain": [ + "猎", + "行业好公司" + ], + "中商网络": [ + "猎", + "行业好公司" + ], + "哈崎机器人": [ + "猎", + "行业好公司" + ], + "yy直播": [ + "行业头部", + "猎" + ], + "凌迪科技": [ + "猎", + "行业好公司" + ], + "大牛儿": [ + "猎", + "行业好公司" + ], + "华来科技": [ + "猎", + "行业好公司" + ], + "禾多科技": [ + "猎", + "行业好公司" + ], + "华夏芯": [ + "猎", + "行业好公司" + ], + "和鲸科技": [ + "猎", + "行业好公司" + ], + "魅杰光电": [ + "猎", + "行业好公司" + ], + "灵动科技": [ + "猎", + "行业好公司" + ], + "爱芯元智": [ + "猎", + "行业好公司" + ], + "汉普阳光": [ + "猎", + "行业好公司" + ], + "有个机器人": [ + "猎", + "行业好公司" + ], + "微财": [ + "猎", + "行业好公司" + ], + "貔坤量化": [ + "猎", + "行业好公司" + ], + "富元犇富星球": [ + "猎", + "行业好公司" + ], + "长亭科技": [ + "猎", + "行业好公司" + ], + "经纬创投": [ + "猎" + ], + "天茹": [ + "猎", + "行业好公司" + ], + "freewheel": [ + "猎", + "行业好公司" + ], + "食亨服务": [ + "猎", + "行业好公司" + ], + "小步网络": [ + "猎", + "行业好公司" + ], + "企兰": [ + "猎", + "行业好公司" + ], + "肯德基": [ + "猎" + ], + "汇信科技": [ + "猎", + "行业好公司" + ], + "丁香园": [ + "猎", + "行业好公司" + ], + "婚礼纪": [ + "猎", + "行业好公司" + ], + "傲途socialepoch": [ + "猎", + "行业好公司" + ], + "魔点": [ + "猎", + "行业好公司" + ], + "兑吧": [ + "猎", + "行业好公司" + ], + "考拉海购": [ + "猎", + "微众偏好", + "综合大厂" + ], + "兴耀地产": [ + "猎" + ], + "金地商置区域": [ + "猎" + ], + "隔壁刘奶奶": [ + "猎" + ], + "鼎捷软件": [ + "猎", + "行业好公司" + ], + "平安银行": [ + "微众偏好", + "猎" + ], + "珍岛集团": [ + "猎", + "行业好公司" + ], + "佰钧成": [ + "猎", + "行业好公司" + ], + "闪殿popup union": [ + "猎" + ], + "遥望": [ + "猎", + "行业好公司" + ], + "沃尔玛": [ + "猎", + "行业好公司" + ], + "金扁担": [ + "猎", + "行业好公司" + ], + "老爸评测": [ + "猎" + ], + "科启奥": [ + "猎", + "行业好公司" + ], + "汉福德家居": [ + "猎", + "行业好公司" + ], + "小望科技": [ + "猎", + "行业好公司" + ], + "吉里": [ + "猎", + "行业好公司" + ], + "碧橙数字": [ + "猎", + "行业好公司" + ], + "网易味央": [ + "猎", + "行业好公司" + ], + "凯泰资本": [ + "猎", + "行业好公司" + ], + "日志易": [ + "猎", + "行业好公司" + ], + "极兔物流": [ + "猎", + "行业好公司" + ], + "商科集团": [ + "猎", + "行业好公司" + ], + "则一物流": [ + "猎", + "行业好公司" + ], + "某地产": [ + "猎" + ], + "京东数科": [ + "行业头部多元化", + "微众偏好", + "阅文偏好", + "猎" + ], + "和铂医药": [ + "猎", + "行业好公司" + ], + "众言科技": [ + "猎", + "行业好公司" + ], + "朗煜投资管理": [ + "猎", + "行业好公司" + ], + "祥生": [ + "猎", + "行业好公司" + ], + "力新仪器": [ + "猎", + "行业好公司" + ], + "剑桥": [ + "猎", + "行业好公司" + ], + "乐动机器人": [ + "猎", + "行业好公司" + ], + "趣头条": [ + "猎", + "阅文偏好", + "行业好公司" + ], + "隆基绿能": [ + "猎", + "行业好公司" + ], + "疆亘资本": [ + "猎", + "行业好公司" + ], + "易快报": [ + "猎", + "行业好公司" + ], + "迈百瑞生物医药": [ + "猎", + "行业好公司" + ], + "同沃汽车": [ + "猎", + "行业好公司" + ], + "维琅电气": [ + "猎", + "行业好公司" + ], + "傅利叶智能": [ + "猎", + "行业好公司" + ], + "锐明技术": [ + "猎", + "行业好公司" + ], + "爱德邦智能": [ + "猎", + "行业好公司" + ], + "菲鹏生物": [ + "猎", + "行业好公司" + ], + "星云智联": [ + "猎", + "行业好公司" + ], + "3k游戏": [ + "猎" + ], + "龙湖": [ + "猎", + "猎" + ], + "安芯网盾": [ + "猎", + "行业好公司" + ], + "松果出行": [ + "猎", + "行业好公司" + ], + "驯鹿医疗": [ + "猎", + "行业好公司" + ], + "悸动烧仙草": [ + "猎" + ], + "深睿医疗": [ + "猎", + "行业好公司" + ], + "中国新高教": [ + "猎", + "行业好公司" + ], + "猫哆哩": [ + "猎", + "行业好公司" + ], + "doteck多铁克": [ + "猎", + "行业好公司" + ], + "平安点创国际融资租赁": [ + "猎" + ], + "再惠": [ + "猎", + "行业好公司" + ], + "米可世界": [ + "猎", + "行业好公司" + ], + "怒喵科技": [ + "猎", + "行业好公司" + ], + "比心": [ + "猎", + "行业好公司" + ], + "南威软件": [ + "猎", + "行业好公司" + ], + "擎朗智能": [ + "猎", + "行业好公司" + ], + "吉盛澳玛生物医药": [ + "猎", + "行业好公司" + ], + "趣虹": [ + "猎", + "行业好公司" + ], + "银星智能": [ + "猎", + "行业好公司" + ], + "腾讯云启创新生态": [ + "猎" + ], + "赛轮集团": [ + "猎", + "行业好公司" + ], + "诺亚财富": [ + "猎" + ], + "荔枝fm": [ + "猎", + "行业好公司" + ], + "大梦龙途": [ + "猎", + "行业好公司" + ], + "兴泉医药": [ + "猎" + ], + "鼎材": [ + "猎", + "行业好公司" + ], + "优必选": [ + "猎", + "行业好公司" + ], + "扬铭科技": [ + "猎", + "行业好公司" + ], + "麦岩智能": [ + "猎", + "行业好公司" + ], + "元气森林": [ + "行业头部", + "猎" + ], + "稀蜴真品": [ + "猎", + "行业好公司" + ], + "安畅": [ + "猎", + "行业好公司" + ], + "日馨生物": [ + "猎", + "行业好公司" + ], + "平潭韵利": [ + "猎", + "行业好公司" + ], + "识季": [ + "猎", + "行业好公司" + ], + "木鸟民宿": [ + "猎" + ], + "美迪西": [ + "猎", + "行业好公司" + ], + "京东方": [ + "行业头部", + "猎" + ], + "华彩置业": [ + "猎" + ], + "光之树科技": [ + "猎", + "行业好公司" + ], + "酷开": [ + "猎", + "行业好公司" + ], + "携光": [ + "猎", + "行业好公司" + ], + "谷东科技": [ + "猎", + "行业好公司" + ], + "捷牛智能": [ + "猎", + "行业好公司" + ], + "华控清交": [ + "猎", + "行业好公司" + ], + "陆金所": [ + "行业头部", + "微众偏好", + "猎" + ], + "京东零售": [ + "猎" + ], + "本来生活网": [ + "猎" + ], + "陌陌": [ + "行业头部", + "猎" + ], + "元原科贸": [ + "猎" + ], + "微梦传媒": [ + "猎", + "行业好公司" + ], + "瑞柯恩": [ + "猎", + "行业好公司" + ], + "上嘉物流": [ + "猎", + "行业好公司" + ], + "云智途": [ + "猎", + "行业好公司" + ], + "包道": [ + "猎", + "行业好公司" + ], + "正中集团": [ + "猎", + "行业好公司" + ], + "上海创景": [ + "猎" + ], + "轻舟智航": [ + "猎", + "行业好公司" + ], + "goatgames": [ + "猎", + "行业好公司" + ], + "设序科技": [ + "猎", + "行业好公司" + ], + "光合起源": [ + "猎", + "行业好公司" + ], + "嘉菲汽车零部件": [ + "猎" + ], + "俊思集团": [ + "猎", + "行业好公司" + ], + "佳帮手": [ + "猎", + "行业好公司" + ], + "普强信息": [ + "猎", + "行业好公司" + ], + "汇森速运": [ + "猎", + "行业好公司" + ], + "黑芝麻智能": [ + "猎", + "行业好公司" + ], + "拉克沙laksa": [ + "猎", + "行业好公司" + ], + "中建东孚": [ + "猎" + ], + "八戒财云": [ + "猎", + "行业好公司" + ], + "海信集团": [ + "猎", + "行业好公司" + ], + "武汉万科": [ + "猎" + ], + "思科源": [ + "猎", + "行业好公司" + ], + "申通快递": [ + "猎", + "行业好公司" + ], + "阳光城": [ + "猎", + "行业好公司" + ], + "阳光金服": [ + "猎" + ], + "华阳国际": [ + "猎" + ], + "联想教育": [ + "猎", + "行业好公司" + ], + "乐漾电子商务": [ + "猎", + "行业好公司" + ], + "万科": [ + "猎", + "行业好公司" + ], + "斗象科技": [ + "猎", + "行业好公司" + ], + "融创数科": [ + "猎", + "行业好公司" + ], + "南潮物联": [ + "猎", + "行业好公司" + ], + "小象优品": [ + "猎", + "行业好公司" + ], + "聚水潭": [ + "猎", + "行业好公司" + ], + "爱化身": [ + "猎", + "行业好公司" + ], + "融资网": [ + "猎" + ], + "复星": [ + "行业头部", + "猎" + ], + "上海蚁众": [ + "猎" + ], + "飞鱼": [ + "猎", + "行业好公司" + ], + "全筑": [ + "猎", + "行业好公司" + ], + "镁佳科技": [ + "猎", + "行业好公司" + ], + "安维尔": [ + "猎", + "行业好公司" + ], + "石榴资管": [ + "猎", + "行业好公司" + ], + "睿服科技": [ + "猎", + "行业好公司" + ], + "诺瓦科技": [ + "猎", + "行业好公司" + ], + "有住智慧家居": [ + "猎", + "行业好公司" + ], + "江阴市霞客彩纤": [ + "猎", + "行业好公司" + ], + "乙辰": [ + "猎", + "行业好公司" + ], + "中商锦华": [ + "猎" + ], + "极视角": [ + "猎", + "行业好公司" + ], + "易华录": [ + "猎", + "行业好公司" + ], + "视源电子科技": [ + "猎", + "行业好公司" + ], + "通联数据": [ + "微众偏好", + "猎", + "行业好公司" + ], + "兆尹科技": [ + "猎", + "行业好公司" + ], + "数桑科技": [ + "猎", + "行业好公司" + ], + "未来一手": [ + "猎", + "行业好公司" + ], + "深安未来": [ + "猎", + "行业好公司" + ], + "泰康之家": [ + "猎", + "行业好公司" + ], + "道格医疗管理": [ + "猎", + "行业好公司" + ], + "要得": [ + "猎", + "行业好公司" + ], + "和利时": [ + "猎" + ], + "易数": [ + "猎", + "行业好公司" + ], + "壹钱包": [ + "猎", + "行业好公司" + ], + "华孚时尚": [ + "猎", + "行业好公司" + ], + "网心科技": [ + "猎", + "行业好公司" + ], + "智行者": [ + "猎" + ], + "黑格科技": [ + "猎", + "行业好公司" + ], + "爱健康": [ + "猎" + ], + "和鲜食品": [ + "猎" + ], + "超碳石墨烯产业": [ + "猎", + "行业好公司" + ], + "平安金服": [ + "行业头部", + "猎" + ], + "中国平安": [ + "行业头部", + "猎" + ], + "正业": [ + "猎" + ], + "东部塑胶路桥玩具": [ + "猎" + ], + "莫比运动": [ + "猎", + "行业好公司" + ], + "易初明通": [ + "猎", + "行业好公司" + ], + "久速科技": [ + "猎" + ], + "金鹰商贸": [ + "猎" + ], + "平安好学": [ + "猎" + ], + "沃森": [ + "猎", + "行业好公司" + ], + "力合科创": [ + "猎", + "行业好公司" + ], + "德世朗": [ + "猎", + "行业好公司" + ], + "龙猫数据": [ + "猎", + "行业好公司" + ], + "水滴公司": [ + "猎", + "行业好公司" + ], + "迷你世界": [ + "猎" + ], + "每平每屋设计家": [ + "猎" + ], + "梦卡莱": [ + "猎" + ], + "世睿达商业管理": [ + "猎" + ], + "药联健康": [ + "猎", + "行业好公司" + ], + "金山软件": [ + "行业头部多元化", + "微众偏好", + "猎" + ], + "江云智能": [ + "猎", + "行业好公司" + ], + "知电": [ + "猎", + "行业好公司" + ], + "中科瑞泰": [ + "猎", + "行业好公司" + ], + "农村商业银行": [ + "猎", + "行业好公司" + ], + "中展智奥": [ + "猎", + "行业好公司" + ], + "嘉松电子科技": [ + "猎", + "行业好公司" + ], + "华亚智能": [ + "猎", + "行业好公司" + ], + "澳华集团": [ + "猎", + "行业好公司" + ], + "云上会展": [ + "猎", + "行业好公司" + ], + "清枫资本": [ + "猎", + "行业好公司" + ], + "暖哇科技": [ + "猎", + "行业好公司" + ], + "术康": [ + "猎", + "行业好公司" + ], + "博锐尚格": [ + "猎", + "行业好公司" + ], + "天地伟业": [ + "猎", + "行业好公司" + ], + "羿鹏轨道交通开发": [ + "猎", + "行业好公司" + ], + "思林杰": [ + "猎", + "行业好公司" + ], + "海尔消费金融": [ + "猎", + "行业好公司" + ], + "千乘探索": [ + "猎", + "行业好公司" + ], + "七十迈数字": [ + "猎", + "行业好公司" + ], + "博雷顿": [ + "猎", + "行业好公司" + ], + "创维": [ + "猎", + "行业好公司" + ], + "天安人寿": [ + "猎" + ], + "昇辉科技": [ + "猎", + "行业好公司" + ], + "青之柚": [ + "猎" + ], + "佳信拓投": [ + "猎", + "行业好公司" + ], + "云舶科技": [ + "猎", + "行业好公司" + ], + "众合": [ + "猎", + "行业好公司" + ], + "瑞得霖科": [ + "猎", + "行业好公司" + ], + "金地地产": [ + "猎" + ], + "银壳科技": [ + "猎", + "行业好公司" + ], + "龙湖地产": [ + "猎" + ], + "中国平安人寿保险": [ + "猎" + ], + "骏伯": [ + "猎", + "行业好公司" + ], + "新核云": [ + "猎", + "行业好公司" + ], + "数说故事": [ + "猎", + "行业好公司" + ], + "众源股份": [ + "猎" + ], + "正荣地产": [ + "猎" + ], + "机智数联": [ + "猎", + "行业好公司" + ], + "百仕瑞": [ + "猎", + "行业好公司" + ], + "盛航置业": [ + "猎" + ], + "蓝城地产": [ + "猎" + ], + "孕橙": [ + "猎", + "行业好公司" + ], + "硕丰控股": [ + "猎", + "行业好公司" + ], + "天际互娱": [ + "猎", + "行业好公司" + ], + "bud": [ + "猎", + "行业好公司" + ], + "优剪": [ + "猎", + "行业好公司" + ], + "金地济南": [ + "猎" + ], + "绿洲游戏": [ + "猎", + "行业好公司" + ], + "爱泊车": [ + "猎", + "行业好公司" + ], + "美尚服饰": [ + "猎" + ], + "光年电子商务": [ + "猎" + ], + "弘恒": [ + "猎", + "行业好公司" + ], + "新世相": [ + "猎", + "行业好公司" + ], + "创成微电子": [ + "猎", + "行业好公司" + ], + "图灵深视": [ + "猎", + "行业好公司" + ], + "广州塔酷": [ + "猎" + ], + "外勤365": [ + "猎" + ], + "根网科技": [ + "猎", + "行业好公司" + ], + "智扬互娱": [ + "猎", + "行业好公司" + ], + "厨芯科技": [ + "猎", + "行业好公司" + ], + "樱隆广告": [ + "猎", + "行业好公司" + ], + "鼎云科技": [ + "猎", + "行业好公司" + ], + "先胜业财": [ + "猎", + "行业好公司" + ], + "若古": [ + "猎", + "行业好公司" + ], + "易仓": [ + "猎", + "行业好公司" + ], + "快仓智能": [ + "猎", + "行业好公司" + ], + "融慧金科": [ + "猎", + "行业好公司" + ], + "金藤留学服务": [ + "猎", + "行业好公司" + ], + "信锐网科": [ + "猎", + "行业好公司" + ], + "获得场景视频": [ + "猎", + "行业好公司" + ], + "全优车": [ + "猎", + "行业好公司" + ], + "北京兆信": [ + "猎" + ], + "减字科技": [ + "猎", + "行业好公司" + ], + "鹍远生物": [ + "猎", + "行业好公司" + ], + "十方融海": [ + "猎", + "行业好公司" + ], + "阿里巴巴": [ + "猎", + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "蚂蚁金服": [ + "猎", + "微众偏好", + "综合大厂" + ], + "阿里体育": [ + "猎", + "微众偏好", + "综合大厂" + ], + "平安产险": [ + "行业头部", + "猎" + ], + "京东物流": [ + "行业头部多元化", + "微众偏好", + "阅文偏好", + "猎" + ], + "齐柏林": [ + "猎", + "行业好公司" + ], + "上海电信恒联网络": [ + "猎", + "行业好公司" + ], + "臻盛网络耀天游戏": [ + "猎" + ], + "百保君": [ + "猎", + "行业好公司" + ], + "茄子科技": [ + "猎", + "行业好公司" + ], + "智臾科技": [ + "猎", + "行业好公司" + ], + "外服云": [ + "猎", + "行业好公司" + ], + "大搜车汽车服务": [ + "猎", + "行业好公司" + ], + "地平线": [ + "行业头部", + "猎" + ], + "黑鲨手机": [ + "猎", + "行业好公司" + ], + "数美科技": [ + "猎", + "行业好公司" + ], + "讯联云": [ + "猎", + "行业好公司" + ], + "萌时科技": [ + "猎", + "行业好公司" + ], + "魔门塔": [ + "猎" + ], + "脉脉": [ + "行业头部", + "猎" + ], + "华捷艾米": [ + "猎", + "行业好公司" + ], + "金卓科技": [ + "猎", + "行业好公司" + ], + "雅客云": [ + "猎", + "行业好公司" + ], + "必有回响智能": [ + "猎", + "行业好公司" + ], + "逸群海豚": [ + "猎", + "行业好公司" + ], + "趣链科技": [ + "微众偏好", + "猎", + "行业好公司" + ], + "thai oppo": [ + "猎", + "行业好公司" + ], + "鲁班软件": [ + "猎", + "行业好公司" + ], + "追觅科技": [ + "猎", + "行业好公司" + ], + "松下电气": [ + "猎" + ], + "聚华印刷显示": [ + "猎" + ], + "建信融通": [ + "猎", + "行业好公司" + ], + "劢微机器人": [ + "猎", + "行业好公司" + ], + "乐奇鲸科技": [ + "猎", + "行业好公司" + ], + "中建国际": [ + "猎" + ], + "金赛药业": [ + "猎" + ], + "创思": [ + "猎", + "行业好公司" + ], + "万兴科技": [ + "猎", + "行业好公司" + ], + "思效咨询": [ + "猎" + ], + "聚铭网络": [ + "猎", + "行业好公司" + ], + "transperfect": [ + "猎", + "行业好公司" + ], + "京东健康": [ + "行业头部多元化", + "微众偏好", + "阅文偏好", + "猎" + ], + "一鸣食品": [ + "猎" + ], + "深科技": [ + "猎", + "行业好公司" + ], + "十倍好": [ + "猎", + "行业好公司" + ], + "信泰阀门": [ + "猎" + ], + "亿戈": [ + "猎", + "行业好公司" + ], + "奥飞娱乐": [ + "阅文偏好" + ], + "alpha": [ + "阅文偏好" + ], + "奥飞动漫": [ + "阅文偏好" + ], + "华谊兄弟传媒": [ + "阅文偏好" + ], + "华谊兄弟": [ + "阅文偏好" + ], + "huayi brothers media": [ + "阅文偏好" + ], + "光线影业": [ + "阅文偏好" + ], + "enlight pictures": [ + "阅文偏好" + ], + "阅文集团": [ + "微众偏好", + "阅文偏好", + "综合大厂" + ], + "china literature limited": [ + "阅文偏好", + "综合大厂" + ], + "都爱漫": [ + "阅文偏好" + ], + "万代南梦宫文化中心": [ + "阅文偏好" + ], + "bandai namco shanghai base": [ + "阅文偏好" + ], + "浅水湾文化艺术中心": [ + "阅文偏好" + ], + "株式会社东京电视": [ + "阅文偏好" + ], + "tv tokyo": [ + "阅文偏好" + ], + "东京电视台": [ + "阅文偏好" + ], + "东视": [ + "阅文偏好" + ], + "阿里鱼": [ + "阅文偏好" + ], + "alifish": [ + "阅文偏好" + ], + "鹅漫u品": [ + "阅文偏好" + ], + "周大福": [ + "阅文偏好" + ], + "chow tai fook": [ + "阅文偏好" + ], + "名创优品": [ + "阅文偏好" + ], + "miniso": [ + "阅文偏好" + ], + "星巴克": [ + "阅文偏好" + ], + "starbucks": [ + "阅文偏好" + ], + "史塔巴克斯": [ + "阅文偏好" + ], + "益海嘉里金龙鱼粮油食品": [ + "阅文偏好" + ], + "金龙鱼": [ + "阅文偏好" + ], + "益海嘉里": [ + "阅文偏好" + ], + "yihai kerry arawana holdings co ,": [ + "阅文偏好" + ], + "迅销公司": [ + "阅文偏好" + ], + "优衣库": [ + "阅文偏好" + ], + "uniqlo": [ + "阅文偏好" + ], + "gu": [ + "阅文偏好" + ], + "comptoir des cotonniers": [ + "阅文偏好" + ], + "princesse tam.tam": [ + "阅文偏好" + ], + "plst": [ + "阅文偏好" + ], + "匡威": [ + "阅文偏好" + ], + "converse": [ + "阅文偏好" + ], + "chuck taylor all star": [ + "阅文偏好" + ], + "jack purcell": [ + "阅文偏好" + ], + "cons": [ + "阅文偏好" + ], + "华彩光影传媒文化": [ + "阅文偏好" + ], + "末那工作": [ + "阅文偏好" + ], + "manas": [ + "阅文偏好" + ], + "萌奇文化": [ + "阅文偏好" + ], + "萌奇meki": [ + "阅文偏好" + ], + "艾漫动漫设计": [ + "阅文偏好" + ], + "艾漫aimon": [ + "阅文偏好" + ], + "aimon shanghai animation design": [ + "阅文偏好" + ], + "娱猫传媒": [ + "阅文偏好" + ], + "娱猫": [ + "阅文偏好" + ], + "网易聚玩": [ + "阅文偏好" + ], + "hobby": [ + "阅文偏好" + ], + "善禧文化": [ + "阅文偏好" + ], + "善禧": [ + "阅文偏好" + ], + "亿福莱": [ + "阅文偏好" + ], + "actoys": [ + "阅文偏好" + ], + "ac模玩网": [ + "阅文偏好" + ], + "actoys模玩网": [ + "阅文偏好" + ], + "凡米粒文化": [ + "阅文偏好" + ], + "凡米粒": [ + "阅文偏好" + ], + "凡米粒familyout": [ + "阅文偏好" + ], + "familyout": [ + "阅文偏好" + ], + "乐自天成文化": [ + "阅文偏好" + ], + "52 toys": [ + "阅文偏好" + ], + "乐自天成": [ + "阅文偏好" + ], + "海脉文化传播": [ + "阅文偏好" + ], + "hobbymax": [ + "阅文偏好" + ], + "泡泡玛特文化创意": [ + "阅文偏好" + ], + "pop mart": [ + "阅文偏好" + ], + "泡泡玛特": [ + "阅文偏好" + ], + "御座文化": [ + "阅文偏好" + ], + "邦策": [ + "阅文偏好" + ], + "漫踪": [ + "阅文偏好" + ], + "monzon": [ + "阅文偏好" + ], + "nanjing bangce trading": [ + "阅文偏好" + ], + "天猫": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "聚划算": [ + "行业头部", + "阅文偏好" + ], + "tmall": [ + "行业头部", + "阅文偏好" + ], + "zhejiang tmall": [ + "行业头部", + "阅文偏好" + ], + "淘宝": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "taobao": [ + "行业头部多元化", + "阅文偏好" + ], + "淘宝网": [ + "行业头部多元化", + "阅文偏好" + ], + "zhejiang taobao network": [ + "行业头部多元化", + "阅文偏好" + ], + "京东叁佰陆拾度电子商务": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "京东": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "beijng jingdong century commerce": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "1号店": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "京东云": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "零机科技": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "京东股票": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "京东科技": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "猫眼文化传媒": [ + "阅文偏好" + ], + "猫眼电影": [ + "阅文偏好", + "微众偏好" + ], + "maoyan": [ + "阅文偏好" + ], + "猫眼娱乐": [ + "阅文偏好", + "微众偏好" + ], + "beijing maoyan culture media": [ + "阅文偏好" + ], + "指点": [ + "阅文偏好" + ], + "抠电影": [ + "阅文偏好" + ], + "guide infinity beijing": [ + "阅文偏好" + ], + "动艺时光": [ + "阅文偏好" + ], + "时光网": [ + "阅文偏好" + ], + "mtime": [ + "阅文偏好" + ], + "beijing dongyi shiguang network": [ + "阅文偏好" + ], + "熵变": [ + "阅文偏好" + ], + "萌趣": [ + "阅文偏好" + ], + "shanghai entropy network": [ + "阅文偏好" + ], + "海拓天行": [ + "阅文偏好" + ], + "漫骆驼": [ + "阅文偏好" + ], + "beijing manluotuo": [ + "阅文偏好" + ], + "shanghai bili bili": [ + "行业头部多元化", + "阅文偏好" + ], + "b站": [ + "行业头部多元化", + "阅文偏好" + ], + "爱奇艺": [ + "行业头部多元化", + "阅文偏好" + ], + "iqiyi": [ + "行业头部多元化", + "阅文偏好" + ], + "times square": [ + "行业头部多元化", + "阅文偏好" + ], + "beijing iqiyi science&": [ + "行业头部多元化", + "阅文偏好" + ], + "巨亿星城": [ + "阅文偏好" + ], + "脑动": [ + "阅文偏好" + ], + "次元仓": [ + "阅文偏好" + ], + "guangzhou naodong network": [ + "阅文偏好" + ], + "葩趣": [ + "阅文偏好" + ], + "beijing paqu": [ + "阅文偏好" + ], + "腾讯视频": [ + "微众偏好", + "阅文偏好", + "综合大厂" + ], + "快乐阳光互动娱乐传媒": [ + "行业头部", + "阅文偏好" + ], + "芒果tv": [ + "行业头部", + "阅文偏好" + ], + "阿里巴巴文化娱乐": [ + "行业头部", + "阅文偏好" + ], + "优酷": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "youku": [ + "行业头部", + "阅文偏好" + ], + "阿里巴巴数字娱乐": [ + "阅文偏好" + ], + "娱乐宝": [ + "阅文偏好" + ], + "闲鱼": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "代拍网": [ + "阅文偏好" + ], + "喵斯拉": [ + "阅文偏好" + ], + "猫耳fm": [ + "阅文偏好" + ], + "missevan": [ + "阅文偏好" + ], + "m站": [ + "阅文偏好" + ], + "网易lofter": [ + "阅文偏好" + ], + "lofter": [ + "阅文偏好" + ], + "老福特": [ + "阅文偏好" + ], + "netease": [ + "阅文偏好", + "综合大厂" + ], + "淘宝众筹": [ + "阅文偏好" + ], + "京东众筹": [ + "阅文偏好" + ], + "摩点会想": [ + "阅文偏好" + ], + "摩点": [ + "阅文偏好" + ], + "万达电影": [ + "阅文偏好" + ], + "万达影城": [ + "阅文偏好" + ], + "wanda cinemas": [ + "阅文偏好" + ], + "横店影视制作": [ + "阅文偏好" + ], + "横店影视": [ + "阅文偏好" + ], + "光逸电影院": [ + "阅文偏好" + ], + "金逸影城": [ + "阅文偏好" + ], + "popmart": [ + "阅文偏好" + ], + "潮漫艾文化传播": [ + "阅文偏好" + ], + "潮玩星球": [ + "阅文偏好" + ], + "ipstar": [ + "阅文偏好" + ], + "国塑唐商社": [ + "阅文偏好" + ], + "塑唐": [ + "阅文偏好" + ], + "筑梦文化": [ + "阅文偏好" + ], + "人潮互娱文化": [ + "阅文偏好" + ], + "人潮互娱": [ + "阅文偏好" + ], + "辉联文化创意": [ + "阅文偏好" + ], + "辉联文化": [ + "阅文偏好" + ], + "万娱引力文化传媒": [ + "阅文偏好" + ], + "万娱引力": [ + "阅文偏好" + ], + "移联创": [ + "阅文偏好" + ], + "wondershow": [ + "阅文偏好" + ], + "快看世界": [ + "阅文偏好" + ], + "快看": [ + "阅文偏好" + ], + "快看漫画": [ + "阅文偏好" + ], + "腾讯动漫": [ + "阅文偏好" + ], + "炫果壳": [ + "阅文偏好" + ], + "微博动漫": [ + "阅文偏好" + ], + "呵呵呵文化传播": [ + "阅文偏好" + ], + "哔哩哔哩漫画": [ + "阅文偏好" + ], + "懒人在线": [ + "阅文偏好" + ], + "懒人听书": [ + "阅文偏好" + ], + "麦克风文化传媒": [ + "阅文偏好" + ], + "蜻蜓fm": [ + "阅文偏好" + ], + "阿里巴巴文学": [ + "阅文偏好" + ], + "书旗小说": [ + "阅文偏好" + ], + "书旗小说网": [ + "阅文偏好" + ], + "喜马拉雅": [ + "阅文偏好" + ], + "himalaya": [ + "阅文偏好" + ], + "天盈九州": [ + "阅文偏好" + ], + "凤凰网": [ + "阅文偏好" + ], + "凤凰新媒体": [ + "阅文偏好" + ], + "凤凰卫视": [ + "阅文偏好" + ], + "tencent": [ + "微众偏好", + "阅文偏好", + "综合大厂" + ], + "鹅厂": [ + "微众偏好", + "阅文偏好", + "综合大厂" + ], + "掌阅科技": [ + "阅文偏好" + ], + "掌阅": [ + "阅文偏好" + ], + "掌阅书城": [ + "阅文偏好" + ], + "掌阅文学": [ + "阅文偏好" + ], + "掌阅精选": [ + "阅文偏好" + ], + "掌阅校园": [ + "阅文偏好" + ], + "掌阅国际": [ + "阅文偏好" + ], + "ireader": [ + "阅文偏好" + ], + "vipshop": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "vips": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "唯你搭": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "花海仓": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "唯品支付": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "唯品仓": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "唯品金融": [ + "行业头部", + "微众偏好", + "阅文偏好" + ], + "美图": [ + "阅文偏好" + ], + "meitu": [ + "阅文偏好" + ], + "美图秀秀": [ + "阅文偏好" + ], + "alibaba": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "ali": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "alibaba group holding limited": [ + "阅文偏好", + "微众偏好", + "综合大厂" + ], + "基分文化传播": [ + "阅文偏好", + "行业好公司" + ], + "qutoutiao": [ + "阅文偏好", + "行业好公司" + ], + "网易传媒": [ + "阅文偏好" + ], + "netease media group": [ + "阅文偏好" + ], + "media. 163. com": [ + "阅文偏好" + ], + "复阅": [ + "阅文偏好" + ], + "妙计": [ + "阅文偏好" + ], + "beijing xiaomi": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "xiaomi": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "小米科技": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "米家": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "小米有品": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "小米集团": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "mi": [ + "行业头部多元化", + "阅文偏好" + ], + "优酷网": [ + "行业头部", + "阅文偏好" + ], + "youku information beijing": [ + "行业头部", + "阅文偏好" + ], + "趣阅数字": [ + "阅文偏好", + "行业好公司" + ], + "shanghai quyue digital": [ + "阅文偏好", + "行业好公司" + ], + "趣阅": [ + "阅文偏好", + "行业好公司" + ], + "麟动": [ + "阅文偏好", + "行业好公司" + ], + "cheetah mobile": [ + "行业头部多元化", + "阅文偏好" + ], + "猎豹": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "cht": [ + "行业头部多元化", + "阅文偏好" + ], + "清理大师": [ + "行业头部多元化", + "阅文偏好" + ], + "nyse": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "cmcm": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "taptap": [ + "行业头部", + "阅文偏好" + ], + "三快": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "大众点评": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团云": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团民宿": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团打车": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团小贷": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "摩拜单车": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "馒头直播": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团优选": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团买菜": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "美团单车": [ + "行业头部多元化", + "微众偏好", + "阅文偏好" + ], + "合合": [ + "微众偏好", + "阅文偏好", + "行业好公司" + ], + "合合信息": [ + "微众偏好", + "阅文偏好", + "行业好公司" + ], + "intsig": [ + "阅文偏好", + "行业好公司" + ], + "沪江教育": [ + "行业头部", + "阅文偏好" + ], + "hujiang education&shanghai limited": [ + "行业头部", + "阅文偏好" + ], + "沪江": [ + "行业头部", + "阅文偏好" + ], + "互加文化": [ + "行业头部", + "阅文偏好" + ], + "钧正": [ + "行业头部多元化", + "阅文偏好" + ], + "哈罗单车": [ + "行业头部多元化", + "阅文偏好" + ], + "hellobike": [ + "行业头部多元化", + "阅文偏好" + ], + "携程旅游": [ + "行业头部多元化", + "阅文偏好" + ], + "ctrip travel network shanghai": [ + "行业头部多元化", + "阅文偏好" + ], + "ctrip": [ + "行业头部多元化", + "阅文偏好" + ], + "携程旅行网": [ + "行业头部多元化", + "阅文偏好" + ], + "晁图网络": [ + "阅文偏好", + "行业好公司" + ], + "shanghai chaotu network": [ + "阅文偏好", + "行业好公司" + ], + "晁图": [ + "阅文偏好", + "行业好公司" + ], + "shxgroup": [ + "阅文偏好", + "行业好公司" + ], + "cross 2": [ + "阅文偏好", + "行业好公司" + ], + "搜狐新媒体": [ + "行业头部", + "阅文偏好" + ], + "beijing sohu new media information": [ + "行业头部", + "阅文偏好" + ], + "搜狐": [ + "行业头部", + "阅文偏好" + ], + "sohu": [ + "行业头部", + "阅文偏好" + ], + "沙发视频": [ + "行业头部", + "阅文偏好" + ], + "搜狐新闻": [ + "行业头部", + "阅文偏好" + ], + "搜狐体育": [ + "行业头部", + "阅文偏好" + ], + "搜狐时尚": [ + "行业头部", + "阅文偏好" + ], + "搜狐焦点": [ + "行业头部", + "阅文偏好" + ], + "我爱cba": [ + "行业头部", + "阅文偏好" + ], + "狐友": [ + "行业头部", + "阅文偏好" + ], + "斗鱼网络科技": [ + "阅文偏好", + "行业好公司" + ], + "wuhan douyu network": [ + "阅文偏好", + "行业好公司" + ], + "斗鱼": [ + "阅文偏好", + "行业好公司" + ], + "douyu": [ + "阅文偏好", + "行业好公司" + ], + "鲨鱼网络": [ + "阅文偏好", + "行业好公司" + ], + "五八": [ + "行业头部多元化", + "阅文偏好" + ], + "beijing 58 information ttechnology": [ + "行业头部多元化", + "阅文偏好" + ], + "五八同城": [ + "行业头部多元化", + "阅文偏好" + ], + "beijing 58 information": [ + "行业头部多元化", + "阅文偏好" + ], + "新浪互联服务": [ + "行业头部", + "阅文偏好" + ], + "sina": [ + "行业头部", + "阅文偏好" + ], + "新浪": [ + "行业头部", + "阅文偏好" + ], + "新浪微博": [ + "行业头部", + "阅文偏好" + ], + "新浪新闻": [ + "行业头部", + "阅文偏好" + ], + "绿洲": [ + "行业头部", + "阅文偏好" + ], + "新浪乐居": [ + "行业头部", + "阅文偏好" + ], + "新浪阅读": [ + "行业头部", + "阅文偏好" + ], + "微跳蚤": [ + "行业头部", + "阅文偏好" + ], + "鲜城": [ + "行业头部", + "阅文偏好" + ], + "云从科技": [ + "行业头部", + "微众偏好" + ], + "cloudwalk": [ + "行业头部", + "微众偏好" + ], + "云从": [ + "行业头部", + "微众偏好" + ], + "cloudwalk group": [ + "行业头部", + "微众偏好" + ], + "同盾科技": [ + "微众偏好" + ], + "同盾": [ + "微众偏好" + ], + "海致星图": [ + "微众偏好" + ], + "品钛科技控股公司": [ + "微众偏好" + ], + "品钛": [ + "微众偏好" + ], + "pintec": [ + "微众偏好" + ], + "钒钛智能": [ + "微众偏好" + ], + "慧安金科": [ + "微众偏好" + ], + "冰鉴": [ + "微众偏好" + ], + "ice kredit": [ + "微众偏好" + ], + "冰鉴科技": [ + "微众偏好" + ], + "第四范式": [ + "行业头部", + "微众偏好" + ], + "4 paradigm": [ + "行业头部", + "微众偏好" + ], + "众安服务": [ + "行业头部", + "微众偏好" + ], + "众安科技": [ + "行业头部", + "微众偏好" + ], + "众安": [ + "行业头部", + "微众偏好" + ], + "水滴保险经纪": [ + "微众偏好" + ], + "水滴保险": [ + "微众偏好" + ], + "鲸鹳": [ + "微众偏好" + ], + "保险极客": [ + "微众偏好" + ], + "平安": [ + "行业头部", + "微众偏好" + ], + "pingan": [ + "微众偏好" + ], + "爱保科技": [ + "微众偏好" + ], + "泰康在线财产保险": [ + "微众偏好" + ], + "泰康在线": [ + "微众偏好" + ], + "tk.cn insurance": [ + "微众偏好" + ], + "中国人民保险": [ + "微众偏好" + ], + "中国人保": [ + "微众偏好" + ], + "the people s insurance group of china": [ + "微众偏好" + ], + "栈略数据": [ + "微众偏好" + ], + "leapstack": [ + "微众偏好" + ], + "况客": [ + "微众偏好" + ], + "弘量智能": [ + "微众偏好" + ], + "弘量科技": [ + "微众偏好" + ], + "magnum research limited.": [ + "微众偏好" + ], + "国金涌富资产管理": [ + "微众偏好" + ], + "国金涌富": [ + "微众偏好" + ], + "熵简科技": [ + "微众偏好" + ], + "铂诺计算": [ + "微众偏好" + ], + "标贝": [ + "微众偏好" + ], + "标贝科技": [ + "微众偏好" + ], + "硅基智能": [ + "微众偏好" + ], + "silicon intelligence": [ + "微众偏好" + ], + "智齿博创": [ + "微众偏好" + ], + "智齿科技": [ + "微众偏好" + ], + "容联易通": [ + "微众偏好" + ], + "容联云通讯": [ + "微众偏好" + ], + "iflytek": [ + "行业头部多元化", + "微众偏好" + ], + "沃丰时代数据": [ + "微众偏好" + ], + "udesk": [ + "微众偏好" + ], + "口袋财富": [ + "微众偏好" + ], + "理财魔方": [ + "微众偏好" + ], + "蘑菇人工智能": [ + "微众偏好" + ], + "蘑菇智能": [ + "微众偏好" + ], + "灵犀智投": [ + "微众偏好" + ], + "数行": [ + "微众偏好" + ], + "数行科技": [ + "微众偏好" + ], + "北京知因智慧科技": [ + "微众偏好" + ], + "知因智慧": [ + "微众偏好" + ], + "颖投": [ + "微众偏好" + ], + "妙盈科技": [ + "微众偏好" + ], + "miotech": [ + "微众偏好" + ], + "旷视科技": [ + "行业头部", + "微众偏好" + ], + "megvii": [ + "行业头部", + "微众偏好" + ], + "旷视金智": [ + "行业头部", + "微众偏好" + ], + "旷云金智": [ + "行业头部", + "微众偏好" + ], + "旷镜博煊": [ + "行业头部", + "微众偏好" + ], + "商汤": [ + "行业头部", + "微众偏好" + ], + "beijing sensetime": [ + "行业头部", + "微众偏好" + ], + "sensetime": [ + "行业头部", + "微众偏好" + ], + "拉卡拉支付": [ + "微众偏好" + ], + "拉卡拉": [ + "微众偏好" + ], + "中国银联": [ + "行业头部多元化", + "微众偏好" + ], + "云闪付": [ + "微众偏好" + ], + "依图": [ + "微众偏好" + ], + "yitu": [ + "微众偏好" + ], + "百融云创": [ + "微众偏好" + ], + "交叉": [ + "微众偏好" + ], + "交叉科技": [ + "微众偏好" + ], + "鸟瞰智能": [ + "微众偏好" + ], + "追一": [ + "微众偏好" + ], + "追一科技": [ + "微众偏好" + ], + "zhuiyi": [ + "微众偏好" + ], + "jd digits": [ + "行业头部多元化", + "微众偏好" + ], + "壹账通金融": [ + "微众偏好" + ], + "金融壹账通": [ + "行业头部", + "微众偏好" + ], + "oneconnect": [ + "微众偏好" + ], + "蚂蚁": [ + "行业头部多元化", + "微众偏好" + ], + "蚂蚁集团": [ + "行业头部多元化", + "微众偏好" + ], + "ant": [ + "行业头部多元化", + "微众偏好" + ], + "ant group": [ + "行业头部多元化", + "微众偏好" + ], + "ant financial services group": [ + "行业头部多元化", + "微众偏好" + ], + "支付宝": [ + "微众偏好", + "综合大厂" + ], + "余额宝": [ + "行业头部多元化", + "微众偏好" + ], + "花呗": [ + "行业头部多元化", + "微众偏好" + ], + "相互宝": [ + "行业头部多元化", + "微众偏好" + ], + "网商银行": [ + "行业头部多元化", + "微众偏好" + ], + "芝麻信用": [ + "行业头部多元化", + "微众偏好" + ], + "蚂蚁财富": [ + "行业头部多元化", + "微众偏好" + ], + "罗汉堂": [ + "行业头部多元化", + "微众偏好" + ], + "度小满": [ + "微众偏好" + ], + "度小满金融": [ + "微众偏好" + ], + "du xiaoman financial": [ + "微众偏好" + ], + "百度金融": [ + "微众偏好" + ], + "腾讯金融": [ + "微众偏好" + ], + "tencent financial": [ + "微众偏好" + ], + "fit": [ + "微众偏好" + ], + "财付通": [ + "微众偏好" + ], + "苏宁金融服务": [ + "微众偏好" + ], + "苏宁金融": [ + "微众偏好" + ], + "financesn": [ + "微众偏好" + ], + "陆家嘴国际金融资产交易市场": [ + "行业头部", + "微众偏好" + ], + "lufax": [ + "行业头部", + "微众偏好" + ], + "中移动金融": [ + "微众偏好" + ], + "移动金融": [ + "微众偏好" + ], + "中移金科": [ + "微众偏好" + ], + "china mobile financial": [ + "微众偏好" + ], + "信也": [ + "微众偏好" + ], + "拍拍贷": [ + "微众偏好" + ], + "finvolution group": [ + "微众偏好" + ], + "招商云创": [ + "微众偏好" + ], + "云知声智能": [ + "微众偏好", + "行业好公司" + ], + "云知声": [ + "微众偏好", + "行业好公司" + ], + "unisound ai": [ + "微众偏好" + ], + "the 4 th paradigm": [ + "微众偏好" + ], + "百度网讯": [ + "微众偏好" + ], + "飞桨": [ + "微众偏好" + ], + "paddlepaddle": [ + "微众偏好" + ], + "beijing baidu netcom science and": [ + "微众偏好" + ], + "百度在线网络": [ + "行业头部多元化", + "微众偏好" + ], + "百度": [ + "行业头部多元化", + "微众偏好" + ], + "baidu": [ + "行业头部多元化", + "微众偏好" + ], + "百度文学": [ + "行业头部多元化", + "微众偏好" + ], + "百度地图": [ + "行业头部多元化", + "微众偏好" + ], + "百度视频": [ + "行业头部多元化", + "微众偏好" + ], + "百度钱包": [ + "行业头部多元化", + "微众偏好" + ], + "百度秀": [ + "行业头部多元化", + "微众偏好" + ], + "百度云": [ + "行业头部多元化", + "微众偏好" + ], + "百度网盘": [ + "行业头部多元化", + "微众偏好" + ], + "百度智能云": [ + "行业头部多元化", + "微众偏好" + ], + "百度糯米网": [ + "行业头部多元化", + "微众偏好" + ], + "百度手机": [ + "行业头部多元化", + "微众偏好" + ], + "百度开放平台": [ + "行业头部多元化", + "微众偏好" + ], + "百度apollo": [ + "行业头部多元化", + "微众偏好" + ], + "百度百科": [ + "行业头部多元化", + "微众偏好" + ], + "百度贴吧": [ + "行业头部多元化", + "微众偏好" + ], + "虎博": [ + "微众偏好" + ], + "tigerobo": [ + "微众偏好" + ], + "shanghai yerui information": [ + "微众偏好" + ], + "pactera": [ + "微众偏好" + ], + "甲骨文中国": [ + "微众偏好", + "综合大厂" + ], + "甲骨文": [ + "微众偏好", + "综合大厂" + ], + "oracle": [ + "微众偏好", + "综合大厂" + ], + "oracle china software system": [ + "微众偏好" + ], + "思爱普中国": [ + "微众偏好" + ], + "思爱普": [ + "微众偏好" + ], + "sap": [ + "微众偏好" + ], + "sap china": [ + "微众偏好" + ], + "salesforce.com ,": [ + "微众偏好" + ], + "赛富时": [ + "微众偏好" + ], + "salesforce": [ + "微众偏好", + "综合大厂" + ], + "前海微众银行": [ + "微众偏好", + "综合大厂" + ], + "微众银行": [ + "微众偏好", + "综合大厂" + ], + "webank": [ + "微众偏好", + "综合大厂" + ], + "新网银行": [ + "微众偏好" + ], + "xwbank": [ + "微众偏好" + ], + "sichuan xwbank": [ + "微众偏好" + ], + "中信百信银行": [ + "微众偏好" + ], + "百信银行": [ + "微众偏好" + ], + "citic aibank limited": [ + "微众偏好" + ], + "奇步天下": [ + "微众偏好" + ], + "360数科": [ + "微众偏好" + ], + "beijing odd step the world": [ + "微众偏好" + ], + "马上消费金融": [ + "行业头部", + "微众偏好" + ], + "马上金融": [ + "微众偏好" + ], + "mashang consumer finance": [ + "行业头部", + "微众偏好" + ], + "微众信用": [ + "微众偏好" + ], + "微众信科": [ + "微众偏好" + ], + "中企云链金融信息服务": [ + "微众偏好" + ], + "中企云链": [ + "微众偏好" + ], + "招联消费金融": [ + "行业头部", + "微众偏好" + ], + "mucfc": [ + "微众偏好" + ], + "merchants union consumer finance": [ + "行业头部", + "微众偏好" + ], + "汇立金融": [ + "微众偏好" + ], + "welab": [ + "微众偏好" + ], + "乐信控股": [ + "微众偏好", + "行业好公司" + ], + "乐信": [ + "微众偏好", + "行业好公司" + ], + "lexin": [ + "微众偏好" + ], + "shenzhen lexin holding": [ + "微众偏好", + "行业好公司" + ], + "快钱支付清算": [ + "微众偏好" + ], + "快钱": [ + "微众偏好" + ], + "kuaiqian": [ + "微众偏好" + ], + "kuaiqian payment and settlement service": [ + "微众偏好" + ], + "连连银通电子支付": [ + "微众偏好" + ], + "连连支付": [ + "微众偏好" + ], + "lianlian yintong electronic payment": [ + "微众偏好" + ], + "随行付": [ + "微众偏好" + ], + "呯嘭智能": [ + "微众偏好", + "行业好公司" + ], + "pingpong": [ + "微众偏好", + "行业好公司" + ], + "老虎证券": [ + "微众偏好" + ], + "中证信用增进": [ + "微众偏好" + ], + "中证信用": [ + "微众偏好" + ], + "china securities credit investment": [ + "微众偏好" + ], + "data yes": [ + "微众偏好" + ], + "bitxmesh": [ + "微众偏好" + ], + "bitxhub": [ + "微众偏好" + ], + "布比": [ + "微众偏好" + ], + "布比bubi": [ + "微众偏好" + ], + "万向区块链": [ + "微众偏好" + ], + "wanxiang blockchain": [ + "微众偏好" + ], + "阿里云计算": [ + "行业头部", + "微众偏好" + ], + "阿里云": [ + "微众偏好", + "综合大厂" + ], + "alibaba cloud": [ + "行业头部", + "微众偏好" + ], + "alibaba cloud computing": [ + "行业头部", + "微众偏好" + ], + "腾讯云": [ + "微众偏好", + "综合大厂" + ], + "tencent cloud": [ + "微众偏好" + ], + "来也": [ + "微众偏好" + ], + "金智维": [ + "微众偏好" + ], + "kingsware": [ + "微众偏好" + ], + "艺赛旗": [ + "微众偏好" + ], + "i search": [ + "微众偏好" + ], + "is rpa": [ + "微众偏好" + ], + "is rpm": [ + "微众偏好" + ], + "is cda": [ + "微众偏好" + ], + "奥特曼": [ + "微众偏好" + ], + "automation anywhere": [ + "微众偏好" + ], + "基调": [ + "微众偏好" + ], + "听云": [ + "微众偏好" + ], + "中国工商银行": [ + "微众偏好" + ], + "industrial and commercial bank of china": [ + "微众偏好" + ], + "icbc": [ + "微众偏好" + ], + "工行": [ + "微众偏好" + ], + "中国农业银行": [ + "微众偏好" + ], + "agricultural bank of china": [ + "微众偏好" + ], + "abc": [ + "微众偏好" + ], + "农行": [ + "微众偏好" + ], + "中国银行": [ + "行业头部", + "微众偏好" + ], + "bank of china": [ + "行业头部", + "微众偏好" + ], + "中国建设银行": [ + "微众偏好" + ], + "china construction bank": [ + "微众偏好" + ], + "ccb": [ + "微众偏好" + ], + "建行": [ + "微众偏好" + ], + "建设银行": [ + "微众偏好" + ], + "交通银行": [ + "微众偏好" + ], + "bank of communications": [ + "微众偏好" + ], + "bcm": [ + "微众偏好" + ], + "交行": [ + "微众偏好" + ], + "国家开发银行": [ + "微众偏好" + ], + "china development bank": [ + "微众偏好" + ], + "中国进出口银行": [ + "微众偏好" + ], + "the export import bank of china": [ + "微众偏好" + ], + "中国农业发展银行": [ + "微众偏好" + ], + "agricultural development bank of china": [ + "微众偏好" + ], + "中国中信": [ + "微众偏好" + ], + "中信银行": [ + "微众偏好" + ], + "china citic bank": [ + "微众偏好" + ], + "中国光大银行": [ + "微众偏好" + ], + "光大银行": [ + "微众偏好" + ], + "china everbright bank": [ + "微众偏好" + ], + "华夏银行": [ + "微众偏好" + ], + "广发银行": [ + "微众偏好" + ], + "招商银行": [ + "行业头部", + "微众偏好" + ], + "上海浦东发展银行": [ + "微众偏好" + ], + "浦发银行": [ + "微众偏好" + ], + "兴业银行": [ + "微众偏好" + ], + "中国民生银行": [ + "微众偏好" + ], + "民生银行": [ + "微众偏好" + ], + "恒丰银行": [ + "微众偏好" + ], + "浙商银行": [ + "微众偏好" + ], + "渤海银行": [ + "微众偏好" + ], + "摩根大通银行中国": [ + "微众偏好" + ], + "摩根大通": [ + "微众偏好" + ], + "汇丰银行中国": [ + "微众偏好" + ], + "汇丰银行": [ + "微众偏好" + ], + "花旗银行中国": [ + "微众偏好" + ], + "花旗银行": [ + "微众偏好" + ], + "富国银行集团公司": [ + "微众偏好" + ], + "富国银行": [ + "微众偏好" + ], + "日联金融": [ + "微众偏好" + ], + "三菱日联金融": [ + "微众偏好" + ], + "美国银行": [ + "微众偏好" + ], + "高盛集团": [ + "微众偏好" + ], + "高盛": [ + "微众偏好" + ], + "美林": [ + "微众偏好" + ], + "巴黎国民银行": [ + "微众偏好" + ], + "德累斯顿国际": [ + "微众偏好" + ], + "德累斯顿银行": [ + "微众偏好" + ], + "瑞士联合银行": [ + "微众偏好" + ], + "德意志银行": [ + "微众偏好" + ], + "信贷银行": [ + "微众偏好" + ], + "credit suisse": [ + "微众偏好" + ], + "华云中盛科技": [ + "微众偏好" + ], + "华云中盛": [ + "微众偏好" + ], + "德勤管理咨询": [ + "微众偏好" + ], + "富邦华一银行": [ + "微众偏好", + "行业好公司" + ], + "fubon": [ + "微众偏好", + "行业好公司" + ], + "富邦金控": [ + "微众偏好", + "行业好公司" + ], + "富邦华一": [ + "微众偏好", + "行业好公司" + ], + "富邦银行": [ + "微众偏好", + "行业好公司" + ], + "富邦产险": [ + "微众偏好", + "行业好公司" + ], + "富邦证券": [ + "微众偏好", + "行业好公司" + ], + "富邦投信": [ + "微众偏好", + "行业好公司" + ], + "探迹科技": [ + "微众偏好", + "行业好公司" + ], + "探迹": [ + "微众偏好", + "行业好公司" + ], + "tungee": [ + "微众偏好", + "行业好公司" + ], + "易联支付": [ + "微众偏好", + "行业好公司" + ], + "payeco": [ + "微众偏好", + "行业好公司" + ], + "网联清算": [ + "微众偏好", + "行业好公司" + ], + "nyse:cmcm": [ + "行业头部多元化", + "微众偏好" + ], + "金山网络": [ + "行业头部多元化", + "微众偏好" + ], + "猎户星空": [ + "行业头部多元化", + "微众偏好" + ], + "猎豹浏览器": [ + "行业头部多元化", + "微众偏好" + ], + "猎豹清理大师": [ + "行业头部多元化", + "微众偏好" + ], + "猎豹安全大师": [ + "行业头部多元化", + "微众偏好" + ], + "豹来电": [ + "行业头部多元化", + "微众偏好" + ], + "趣输入": [ + "行业头部多元化", + "微众偏好" + ], + "钢琴块2": [ + "行业头部多元化", + "微众偏好" + ], + "滚动的天空": [ + "行业头部多元化", + "微众偏好" + ], + "跳舞的线": [ + "行业头部多元化", + "微众偏好" + ], + "砖块消消消": [ + "行业头部多元化", + "微众偏好" + ], + "live.me": [ + "行业头部多元化", + "微众偏好" + ], + "豹小秘": [ + "行业头部多元化", + "微众偏好" + ], + "豹咖啡": [ + "行业头部多元化", + "微众偏好" + ], + "豹小贩": [ + "行业头部多元化", + "微众偏好" + ], + "小豹ai翻译棒": [ + "行业头部多元化", + "微众偏好" + ], + "迅雷": [ + "行业头部", + "微众偏好" + ], + "xunlei networking technologies": [ + "行业头部", + "微众偏好" + ], + "xunlei": [ + "行业头部", + "微众偏好" + ], + "迅雷集团": [ + "行业头部", + "微众偏好" + ], + "迅雷网络": [ + "行业头部", + "微众偏好" + ], + "迅雷看看": [ + "行业头部", + "微众偏好" + ], + "妙镜vr": [ + "行业头部", + "微众偏好" + ], + "图记": [ + "行业头部", + "微众偏好" + ], + "网心": [ + "行业头部", + "微众偏好" + ], + "迅雷网文化": [ + "行业头部", + "微众偏好" + ], + "卓联软件": [ + "行业头部", + "微众偏好" + ], + "北京网心科技": [ + "行业头部", + "微众偏好" + ], + "迅雷区块链": [ + "行业头部", + "微众偏好" + ], + "迅雷之锤": [ + "行业头部", + "微众偏好" + ], + "阿里健康": [ + "微众偏好", + "综合大厂" + ], + "阿里影业": [ + "微众偏好", + "综合大厂" + ], + "安居客": [ + "微众偏好", + "综合大厂" + ], + "菜鸟网络": [ + "微众偏好", + "综合大厂" + ], + "高德": [ + "微众偏好", + "综合大厂" + ], + "考拉": [ + "微众偏好", + "综合大厂" + ], + "口碑": [ + "微众偏好", + "综合大厂" + ], + "盒马": [ + "微众偏好", + "综合大厂" + ], + "1688. com": [ + "微众偏好", + "综合大厂" + ], + "零售通": [ + "微众偏好", + "综合大厂" + ], + "全球速卖通": [ + "微众偏好", + "综合大厂" + ], + "阿里巴巴国际站": [ + "微众偏好", + "综合大厂" + ], + "飞猪": [ + "微众偏好", + "综合大厂" + ], + "大麦": [ + "微众偏好", + "综合大厂" + ], + "钉钉": [ + "微众偏好", + "综合大厂" + ], + "阿里通信": [ + "微众偏好", + "综合大厂" + ], + "优视": [ + "微众偏好", + "综合大厂" + ], + "友盟": [ + "微众偏好", + "综合大厂" + ], + "虾米": [ + "微众偏好", + "综合大厂" + ], + "阿里星球": [ + "微众偏好", + "综合大厂" + ], + "天猫精灵": [ + "微众偏好", + "综合大厂" + ], + "来往": [ + "微众偏好", + "综合大厂" + ], + "天天动听": [ + "微众偏好", + "综合大厂" + ], + "诚信通": [ + "微众偏好", + "综合大厂" + ], + "华为投资控股": [ + "微众偏好", + "综合大厂" + ], + "海思": [ + "微众偏好", + "综合大厂" + ], + "华为云": [ + "微众偏好", + "综合大厂" + ], + "鸿蒙": [ + "微众偏好", + "综合大厂" + ], + "华为通信": [ + "微众偏好", + "综合大厂" + ], + "讯联智付": [ + "微众偏好", + "综合大厂" + ], + "安捷信": [ + "微众偏好", + "综合大厂" + ], + "超聚变数字": [ + "微众偏好", + "综合大厂" + ], + "海思光电子": [ + "微众偏好", + "综合大厂" + ], + "华为朗新": [ + "微众偏好", + "综合大厂" + ], + "华为电动": [ + "微众偏好", + "综合大厂" + ], + "华为数字能源": [ + "微众偏好", + "综合大厂" + ], + "哈勃科技": [ + "微众偏好", + "综合大厂" + ], + "opengauss": [ + "微众偏好", + "综合大厂" + ], + "华为培训中心": [ + "微众偏好", + "综合大厂" + ], + "海思半导体": [ + "微众偏好", + "综合大厂" + ], + "华为云计算技术": [ + "微众偏好", + "综合大厂" + ], + "华为数字": [ + "微众偏好", + "综合大厂" + ], + "华为安捷信电气": [ + "微众偏好", + "综合大厂" + ], + "华为技术服务": [ + "微众偏好", + "综合大厂" + ], + "华为朗新科技": [ + "微众偏好", + "综合大厂" + ], + "华为数字能源技术": [ + "微众偏好", + "综合大厂" + ], + "华为机器": [ + "微众偏好", + "综合大厂" + ], + "哈勃投资": [ + "微众偏好", + "综合大厂" + ], + "微信": [ + "微众偏好", + "综合大厂" + ], + "理财通": [ + "微众偏好", + "综合大厂" + ], + "企鹅辅导": [ + "微众偏好", + "综合大厂" + ], + "腾讯觅影": [ + "微众偏好", + "综合大厂" + ], + "音兔": [ + "微众偏好", + "综合大厂" + ], + "火锅视频": [ + "微众偏好", + "综合大厂" + ], + "天天快报": [ + "微众偏好", + "综合大厂" + ], + "腾讯课堂": [ + "微众偏好", + "综合大厂" + ], + "腾讯ai实验室": [ + "微众偏好", + "综合大厂" + ], + "花样直播": [ + "微众偏好", + "综合大厂" + ], + "企鹅电竞": [ + "微众偏好", + "综合大厂" + ], + "青藤大学": [ + "微众偏好", + "综合大厂" + ], + "腾讯体育": [ + "微众偏好", + "综合大厂" + ], + "旅行小账本": [ + "微众偏好", + "综合大厂" + ], + "腾讯征信": [ + "微众偏好", + "综合大厂" + ], + "微保": [ + "微众偏好", + "综合大厂" + ], + "腾讯优图": [ + "微众偏好", + "综合大厂" + ], + "王者荣耀": [ + "微众偏好", + "综合大厂" + ], + "京东金融": [ + "微众偏好" + ], + "jr.jd": [ + "微众偏好" + ], + "品诺保险": [ + "行业头部", + "微众偏好" + ], + "netease hangzhou network": [ + "微众偏好", + "综合大厂" + ], + "网易公司": [ + "微众偏好", + "综合大厂" + ], + "网易严选": [ + "微众偏好", + "综合大厂" + ], + "网易影业文化": [ + "微众偏好", + "综合大厂" + ], + "网易印象": [ + "微众偏好", + "综合大厂" + ], + "银联": [ + "行业头部多元化", + "微众偏好" + ], + "unionpay": [ + "行业头部多元化", + "微众偏好" + ], + "花旗金融信息服务中国": [ + "微众偏好", + "行业好公司" + ], + "citigroup software and services china limited": [ + "微众偏好", + "行业好公司" + ], + "花旗金融": [ + "微众偏好", + "行业好公司" + ], + "citi": [ + "微众偏好", + "行业好公司" + ], + "花旗软件": [ + "微众偏好", + "行业好公司" + ], + "深信服": [ + "微众偏好", + "行业好公司" + ], + "sangfor": [ + "微众偏好", + "行业好公司" + ], + "穆迪咨询": [ + "行业头部", + "微众偏好" + ], + "穆迪信息": [ + "行业头部", + "微众偏好" + ], + "moody s": [ + "行业头部", + "微众偏好" + ], + "moodys": [ + "行业头部", + "微众偏好" + ], + "简米": [ + "微众偏好", + "行业好公司" + ], + "简米网络": [ + "微众偏好", + "行业好公司" + ], + "ping": [ + "微众偏好", + "行业好公司" + ], + "fenxiangzhushou": [ + "微众偏好", + "行业好公司" + ], + "pingxx": [ + "微众偏好", + "行业好公司" + ], + "子瓜手虫电子商务": [ + "微众偏好", + "行业好公司" + ], + "乐信集团": [ + "微众偏好", + "行业好公司" + ], + "lexinfintech": [ + "微众偏好", + "行业好公司" + ], + "分期乐": [ + "微众偏好", + "行业好公司" + ], + "阿斯麦光刻设备": [ + "微众偏好", + "行业好公司" + ], + "阿斯麦": [ + "微众偏好", + "行业好公司" + ], + "asml": [ + "微众偏好", + "行业好公司" + ], + "asml软件研发中心": [ + "微众偏好", + "行业好公司" + ], + "聚爱聊": [ + "微众偏好" + ], + "金星创业投资": [ + "微众偏好" + ], + "瀚星创业投资": [ + "微众偏好" + ], + "深圳证券交易所": [ + "行业头部", + "微众偏好" + ], + "证券交易中心": [ + "行业头部", + "微众偏好" + ], + "深交所": [ + "行业头部", + "微众偏好" + ], + "顺丰控股": [ + "行业头部多元化", + "微众偏好" + ], + "顺丰": [ + "行业头部多元化", + "微众偏好" + ], + "顺丰速运": [ + "行业头部多元化", + "微众偏好" + ], + "sf express": [ + "行业头部多元化", + "微众偏好" + ], + "华多网络": [ + "行业头部", + "微众偏好" + ], + "yy": [ + "行业头部", + "微众偏好" + ], + "津虹网络": [ + "行业头部", + "微众偏好" + ], + "yy语音": [ + "行业头部", + "微众偏好" + ], + "欢聚时代": [ + "行业头部", + "微众偏好" + ], + "万惠投资管理": [ + "微众偏好", + "行业好公司" + ], + "万惠投资": [ + "微众偏好", + "行业好公司" + ], + "ppmoney": [ + "微众偏好", + "行业好公司" + ], + "及时雨电子商务": [ + "微众偏好", + "行业好公司" + ], + "万惠信息": [ + "微众偏好", + "行业好公司" + ], + "东亚银行中国": [ + "微众偏好" + ], + "东亚银行": [ + "微众偏好" + ], + "the bank of east asia": [ + "微众偏好" + ], + "小桔": [ + "行业头部多元化", + "微众偏好" + ], + "滴滴": [ + "行业头部多元化", + "微众偏好" + ], + "滴滴打车": [ + "行业头部多元化", + "微众偏好" + ], + "恒生电子": [ + "微众偏好", + "行业好公司" + ], + "hundsun technologies": [ + "微众偏好", + "行业好公司" + ], + "银科投资控股/银科": [ + "微众偏好" + ], + "银科控股": [ + "微众偏好" + ], + "yintech investment holdings limited": [ + "微众偏好" + ], + "安田": [ + "微众偏好" + ], + "安田银行": [ + "微众偏好" + ], + "maoyan movie": [ + "微众偏好" + ], + "美团猫眼电影": [ + "微众偏好" + ], + "美团电影": [ + "微众偏好" + ], + "金山数字娱乐": [ + "行业头部多元化", + "微众偏好" + ], + "金山": [ + "行业头部多元化", + "微众偏好" + ], + "wps": [ + "行业头部多元化", + "微众偏好" + ], + "金山在线": [ + "行业头部多元化", + "微众偏好" + ], + "金山办公": [ + "行业头部多元化", + "微众偏好" + ], + "金山云": [ + "行业头部多元化", + "微众偏好" + ], + "kingsoft": [ + "行业头部多元化", + "微众偏好" + ], + "金山奇剑": [ + "行业头部多元化", + "微众偏好" + ], + "金山世游": [ + "行业头部多元化", + "微众偏好" + ], + "金山快快": [ + "行业头部多元化", + "微众偏好" + ], + "多益网络": [ + "微众偏好", + "行业好公司" + ], + "招商局金融": [ + "微众偏好" + ], + "中国通商银行": [ + "微众偏好" + ], + "招商证券": [ + "微众偏好" + ], + "海达保险": [ + "微众偏好" + ], + "海达远东保险": [ + "微众偏好" + ], + "招商保险": [ + "微众偏好" + ], + "招商局中国投资管理": [ + "微众偏好" + ], + "招商局中国基金": [ + "微众偏好" + ], + "招融控股": [ + "微众偏好" + ], + "驴妈妈兴旅国际旅行社": [ + "行业头部", + "微众偏好" + ], + "驴妈妈": [ + "行业头部", + "微众偏好" + ], + "驴妈妈旅游网": [ + "行业头部", + "微众偏好" + ], + "lvmama": [ + "行业头部", + "微众偏好" + ], + "景域文化": [ + "行业头部", + "微众偏好" + ], + "随手": [ + "微众偏好" + ], + "随手科技": [ + "微众偏好" + ], + "随手记": [ + "微众偏好" + ], + "中兴通讯": [ + "微众偏好" + ], + "zte": [ + "微众偏好", + "行业好公司" + ], + "zhongxing telecom equipment": [ + "微众偏好" + ], + "晨星": [ + "微众偏好" + ], + "morningstar": [ + "微众偏好" + ], + "morn": [ + "微众偏好" + ], + "依时货拉拉": [ + "微众偏好" + ], + "货拉拉": [ + "微众偏好" + ], + "贝莱德": [ + "微众偏好" + ], + "黑岩集团": [ + "微众偏好" + ], + "blackrock": [ + "微众偏好" + ], + "blk": [ + "微众偏好" + ], + "今日头条": [ + "微众偏好", + "综合大厂" + ], + "西瓜视频": [ + "微众偏好", + "综合大厂" + ], + "抖音": [ + "微众偏好", + "综合大厂" + ], + "皮皮虾": [ + "微众偏好", + "综合大厂" + ], + "懂车帝": [ + "微众偏好", + "综合大厂" + ], + "悟空问答": [ + "微众偏好", + "综合大厂" + ], + "tiktok": [ + "微众偏好", + "综合大厂" + ], + "轻颜相机": [ + "微众偏好", + "综合大厂" + ], + "faceu激萌": [ + "微众偏好", + "综合大厂" + ], + "番茄小说": [ + "微众偏好", + "综合大厂" + ], + "飞书": [ + "微众偏好", + "综合大厂" + ], + "金蝶软件": [ + "微众偏好" + ], + "金蝶": [ + "微众偏好" + ], + "金蝶云": [ + "微众偏好" + ], + "kingdee": [ + "微众偏好" + ], + "金蝶国际": [ + "微众偏好" + ], + "亿磐系统": [ + "微众偏好" + ], + "招商信诺人寿保险": [ + "微众偏好" + ], + "招商信诺": [ + "微众偏好" + ], + "cigna&cmb": [ + "微众偏好" + ], + "思为科技": [ + "微众偏好" + ], + "oppo移动通信": [ + "行业头部多元化", + "微众偏好" + ], + "guangdong oppo mobile telecommunications": [ + "微众偏好" + ], + "uc优视科技": [ + "微众偏好" + ], + "uc优视": [ + "微众偏好", + "行业好公司" + ], + "uc浏览器": [ + "微众偏好" + ], + "虾皮": [ + "行业头部", + "微众偏好" + ], + "蚂蚁物流(广西)": [ + "行业头部多元化" + ], + "蚂蚁物流": [ + "行业头部多元化" + ], + "支付宝中国": [ + "行业头部多元化" + ], + "alipay china network": [ + "行业头部多元化" + ], + "alipay": [ + "行业头部多元化" + ], + "阿里巴巴通信": [ + "行业好公司" + ], + "zhejiang alibaba communication": [ + "行业好公司" + ], + "广州优视": [ + "行业好公司" + ], + "uc mobile": [ + "行业好公司" + ], + "优视科技": [ + "行业好公司" + ], + "uc优视uc浏览器": [ + "行业好公司" + ], + "锐讯灵通": [ + "行业好公司" + ], + "umeng": [ + "行业好公司" + ], + "beijing ruixun lingtong": [ + "行业好公司" + ], + "阿里巴巴音乐": [ + "行业好公司" + ], + "hangzhou alibaba music": [ + "行业好公司" + ], + "虾米音乐": [ + "行业好公司" + ], + "alihealth": [ + "行业头部" + ], + "阿里健康中国": [ + "行业头部" + ], + "阿里": [ + "行业头部" + ], + "alisports shanghai": [ + "行业头部" + ], + "alibaba sport": [ + "行业头部" + ], + "chinavision media group limited": [ + "行业头部" + ], + "alibaba pictures": [ + "行业头部" + ], + "alibaba pictures group limited": [ + "行业头部" + ], + "阿里巴巴影业": [ + "行业头部" + ], + "aliyun": [ + "行业头部" + ], + "阿里城市光明投资": [ + "行业头部" + ], + "cainiao network": [ + "行业头部" + ], + "菜鸟在线教育": [ + "行业头部" + ], + "菜鸟在线教育(北京)": [ + "行业头部" + ], + "菜鸟物流": [ + "行业头部" + ], + "菜鸟": [ + "行业头部" + ], + "拉扎斯": [ + "行业头部" + ], + "ele": [ + "行业头部" + ], + "ele.com": [ + "行业头部" + ], + "autonavi": [ + "行业头部" + ], + "amap": [ + "行业头部" + ], + "高德软件": [ + "行业头部" + ], + "高德机械设备": [ + "行业头部" + ], + "高德机械设备(郑州)": [ + "行业头部" + ], + "hqg , limited": [ + "行业头部" + ], + "口碑地产": [ + "行业头部" + ], + "本地生活": [ + "行业头部" + ], + "koubei shanghai information": [ + "行业头部" + ], + "kaola": [ + "行业头部" + ], + "etao": [ + "行业头部" + ], + "一淘网": [ + "行业头部" + ], + "一淘": [ + "行业头部" + ], + "盒马网络": [ + "行业头部" + ], + "盒马鲜生": [ + "行业头部" + ], + "盒马(上海)": [ + "行业头部" + ], + "shanghai hema network": [ + "行业头部" + ], + "fresh hema": [ + "行业头部" + ], + "1688": [ + "行业头部" + ], + "阿里巴巴广告": [ + "行业头部" + ], + "hangzhou ali baba advertising": [ + "行业头部" + ], + "阿里广告": [ + "行业头部" + ], + "alibaba china network": [ + "综合大厂" + ], + "lingshoutong": [ + "综合大厂" + ], + "阿里零售通": [ + "综合大厂" + ], + "阿里巴巴中国": [ + "综合大厂" + ], + "trustpass": [ + "行业头部" + ], + "阿里全球速卖通": [ + "行业头部" + ], + "aliexpress": [ + "行业头部" + ], + "盈店通": [ + "行业头部" + ], + "lazglobal": [ + "行业头部" + ], + "来赞达": [ + "行业头部" + ], + "lazmall": [ + "行业头部" + ], + "fliggy": [ + "行业头部" + ], + "阿里旅行": [ + "行业头部" + ], + "飞猪旅行": [ + "行业头部" + ], + "飞猪(上海)": [ + "行业头部" + ], + "合一大数据(广州)": [ + "行业头部" + ], + "合一大数据": [ + "行业头部" + ], + "红马传媒文化": [ + "行业头部" + ], + "大麦(海南)": [ + "行业头部" + ], + "大麦网": [ + "行业头部" + ], + "damai cn": [ + "行业头部" + ], + "dingtalk china information": [ + "行业头部" + ], + "dingtalk": [ + "行业头部" + ], + "钉钉中国": [ + "行业头部" + ], + "斑马品牌营销策划": [ + "行业头部" + ], + "yunos": [ + "行业头部" + ], + "alios": [ + "行业头部" + ], + "斑马品牌营销策划(陕西)": [ + "行业头部" + ], + "banma information": [ + "行业头部" + ], + "斑马": [ + "行业头部" + ], + "阿里妈妈": [ + "行业头部" + ], + "alimama china holding limited": [ + "行业头部" + ], + "alimama": [ + "行业头部" + ], + "广州简悦": [ + "行业头部多元化" + ], + "alibabagames": [ + "行业头部多元化" + ], + "lingxihudong": [ + "行业头部多元化" + ], + "犀互动": [ + "行业头部多元化" + ], + "ejoy广州简悦": [ + "行业头部多元化" + ], + "贝宝": [ + "综合大厂" + ], + "国付宝": [ + "综合大厂" + ], + "paypal": [ + "综合大厂" + ], + "贝宝电子商务": [ + "综合大厂" + ], + "贝宝电子商务(苏州)": [ + "综合大厂" + ], + "中信消费金融": [ + "行业好公司" + ], + "中信消金": [ + "行业好公司" + ], + "eciticcfc": [ + "行业好公司" + ], + "citic consumer finance": [ + "行业好公司" + ], + "捷成世纪": [ + "行业好公司" + ], + "beijing jetsen": [ + "行业好公司" + ], + "捷成股份": [ + "行业好公司" + ], + "魔珐": [ + "行业好公司" + ], + "mofa shanghai information": [ + "行业好公司" + ], + "xmov": [ + "行业好公司" + ], + "魔珐科技": [ + "行业好公司" + ], + "iqiyi.com": [ + "行业头部多元化" + ], + "奇艺": [ + "行业头部多元化" + ], + "红袖添香": [ + "综合大厂" + ], + "阅文": [ + "综合大厂" + ], + "起点中文网": [ + "综合大厂" + ], + "潇湘书院": [ + "综合大厂" + ], + "qq阅读": [ + "综合大厂" + ], + "chinaliterature": [ + "综合大厂" + ], + "今日跳动": [ + "综合大厂" + ], + "源稼数码": [ + "综合大厂" + ], + "源庄": [ + "综合大厂" + ], + "鲲鹏": [ + "综合大厂" + ], + "指悦": [ + "综合大厂" + ], + "米稷": [ + "综合大厂" + ], + "霍尔果斯源稼数码": [ + "综合大厂" + ], + "游逸": [ + "综合大厂" + ], + "比特漫步": [ + "综合大厂" + ], + "比特互动": [ + "综合大厂" + ], + "敖爵": [ + "综合大厂" + ], + "墨鵾": [ + "综合大厂" + ], + "上禾": [ + "综合大厂" + ], + "字节(杭州)": [ + "综合大厂" + ], + "头条": [ + "综合大厂" + ], + "巨量引擎代理": [ + "综合大厂" + ], + "巨量引擎代理(云南)": [ + "综合大厂" + ], + "飞书广告(上海)": [ + "综合大厂" + ], + "飞书广告": [ + "综合大厂" + ], + "小屋": [ + "行业头部多元化" + ], + "贝壳": [ + "行业头部多元化" + ], + "房江湖经纪": [ + "行业头部多元化" + ], + "链家经纪": [ + "行业头部多元化" + ], + "如视智数": [ + "行业头部多元化" + ], + "贝壳网": [ + "行业头部多元化" + ], + "屋客": [ + "行业头部多元化" + ], + "贝壳找房(深圳)": [ + "行业头部多元化" + ], + "贝壳集团": [ + "行业头部多元化" + ], + "贝壳找房网": [ + "行业头部多元化" + ], + "贝塔通科技": [ + "行业头部多元化" + ], + "贝壳找房": [ + "行业头部多元化" + ], + "岳阳贝壳": [ + "行业头部多元化" + ], + "一九付": [ + "行业头部多元化" + ], + "小桔车服": [ + "行业头部多元化" + ], + "滴滴云计算": [ + "行业头部多元化" + ], + "滴滴智慧交通": [ + "行业头部多元化" + ], + "滴滴金科服务": [ + "行业头部多元化" + ], + "滴滴货运": [ + "行业头部多元化" + ], + "橙心优选": [ + "行业头部多元化" + ], + "粒粒橙传媒": [ + "行业头部多元化" + ], + "滴滴自动驾驶": [ + "行业头部多元化" + ], + "滴滴承信科技咨询服务": [ + "行业头部多元化" + ], + "街兔电单车": [ + "行业头部多元化" + ], + "青橙之旅": [ + "行业头部多元化" + ], + "青桔单车": [ + "行业头部多元化" + ], + "19 pay": [ + "行业头部多元化" + ], + "滴滴支付": [ + "行业头部多元化" + ], + "快的打车": [ + "行业头部多元化" + ], + "花小猪": [ + "行业头部多元化" + ], + "高阳捷迅": [ + "行业头部多元化" + ], + "高阳捷迅(北京)": [ + "行业头部多元化" + ], + "19pay": [ + "行业头部多元化" + ], + "hellobike哈罗单车": [ + "行业头部多元化" + ], + "哈啰单车": [ + "行业头部多元化" + ], + "小哈换电": [ + "行业头部多元化" + ], + "哈啰助力车": [ + "行业头部多元化" + ], + "哈啰共享汽车": [ + "行业头部多元化" + ], + "学而思教育": [ + "行业头部多元化" + ], + "tal": [ + "行业头部多元化" + ], + "学而思网校": [ + "行业头部多元化" + ], + "励步传媒": [ + "行业头部多元化" + ], + "励步传媒(镇江)": [ + "行业头部多元化" + ], + "学而思": [ + "行业头部多元化" + ], + "好未来": [ + "行业头部多元化" + ], + "学而思培训中心": [ + "行业头部多元化" + ], + "学而思培训中心(深圳市)": [ + "行业头部多元化" + ], + "智康1对1": [ + "行业头部多元化" + ], + "励步": [ + "行业头部多元化" + ], + "学而思培优": [ + "行业头部多元化" + ], + "家长帮": [ + "行业头部多元化" + ], + "摩比思维馆": [ + "行业头部多元化" + ], + "好未来教育咨询": [ + "行业头部多元化" + ], + "好未来教育咨询(宜昌)": [ + "行业头部多元化" + ], + "乐外教": [ + "行业头部多元化" + ], + "考研网": [ + "行业头部多元化" + ], + "学而思理科": [ + "行业头部多元化" + ], + "乐加乐": [ + "行业头部多元化" + ], + "东学堂": [ + "行业头部多元化" + ], + "rsi": [ + "综合大厂" + ], + "甲骨文服务": [ + "综合大厂" + ], + "甲骨文服务(咸阳)": [ + "综合大厂" + ], + "平安集团": [ + "行业头部" + ], + "平安好医生": [ + "行业头部" + ], + "平安健康": [ + "行业头部" + ], + "平安医保": [ + "行业头部" + ], + "平安养老险": [ + "行业头部" + ], + " ping an insurance group of china": [ + "行业头部" + ], + "平安财险": [ + "行业头部" + ], + "平安普惠": [ + "行业头部" + ], + "平安健康保险": [ + "行业头部" + ], + "平安普惠服务南京路(天津)": [ + "行业头部" + ], + "平安普惠服务南京路": [ + "行业头部" + ], + "lu": [ + "行业头部" + ], + "陆家嘴国际金融资产交易市场(上海)": [ + "行业头部" + ], + "lu.com": [ + "行业头部" + ], + "平安陆金所": [ + "行业头部" + ], + "property.pingan.com": [ + "行业头部" + ], + "china ping an property insurance": [ + "行业头部" + ], + "平安健康医疗": [ + "行业头部" + ], + "pagd.net": [ + "行业头部" + ], + "ping an good doctor": [ + "行业头部" + ], + "平安健康(河北)": [ + "行业头部" + ], + "health.pingan.com": [ + "行业头部" + ], + "平安健康险": [ + "行业头部" + ], + "平安综合金融服务": [ + "行业头部" + ], + "平安好贷": [ + "行业头部" + ], + "finserve.pingan.com": [ + "行业头部" + ], + "平安普惠服务淮海东路": [ + "行业头部" + ], + "ph.com.cn": [ + "行业头部" + ], + "平安普惠服务淮海东路(淮安)": [ + "行业头部" + ], + "ping an puhui enterprise management": [ + "行业头部" + ], + "life.pinan.com": [ + "行业头部" + ], + "yl.pingan.com": [ + "行业头部" + ], + "平安医疗健康管理": [ + "行业头部" + ], + "paybkj.com": [ + "行业头部" + ], + "ping an healthkonnect": [ + "行业头部" + ], + "stock.pingan.com": [ + "行业头部" + ], + "pazl.pingan.cn": [ + "行业头部" + ], + "平安国际融资租赁": [ + "行业头部" + ], + "wechat": [ + "综合大厂" + ], + "qq": [ + "综合大厂" + ], + "腾讯网": [ + "综合大厂" + ], + "酷我音乐": [ + "综合大厂" + ], + "qq音乐": [ + "综合大厂" + ], + "酷狗音乐": [ + "综合大厂" + ], + "全民k歌": [ + "综合大厂" + ], + "腾讯音乐娱乐": [ + "综合大厂" + ], + "腾讯云计算": [ + "综合大厂" + ], + "康盛创想": [ + "综合大厂" + ], + "微众": [ + "综合大厂" + ], + "微粒贷": [ + "综合大厂" + ], + "微保(北京)": [ + "综合大厂" + ], + "奇虎": [ + "行业头部多元化" + ], + "360": [ + "行业头部多元化" + ], + "亿之唐": [ + "行业头部多元化" + ], + "360手机": [ + "行业头部多元化" + ], + "奇酷网": [ + "行业头部多元化" + ], + "360健康": [ + "行业头部多元化" + ], + "360你财富": [ + "行业头部多元化" + ], + "360搜索": [ + "行业头部多元化" + ], + "360安全云盘": [ + "行业头部多元化" + ], + "三六零(南京)": [ + "行业头部多元化" + ], + "蜂联科技": [ + "行业头部多元化" + ], + "360好药": [ + "行业头部多元化" + ], + "360智能家居": [ + "行业头部多元化" + ], + "三六零": [ + "行业头部多元化" + ], + "奇虎(北京)": [ + "行业头部多元化" + ], + "蜂联": [ + "行业头部多元化" + ], + "美团网": [ + "行业头部多元化" + ], + "北京三快": [ + "行业头部多元化" + ], + "三快在线": [ + "行业头部多元化" + ], + "大众": [ + "行业头部多元化" + ], + "百度在线": [ + "行业头部多元化" + ], + "百度移讯": [ + "行业头部多元化" + ], + "beijing baidu mobile communication": [ + "行业头部多元化" + ], + "大疆创新": [ + "行业头部多元化" + ], + "大疆环保(山西)": [ + "行业头部多元化" + ], + "sz dji": [ + "行业头部多元化" + ], + "大疆环保": [ + "行业头部多元化" + ], + "大疆": [ + "行业头部多元化" + ], + "当当网": [ + "行业头部" + ], + "递瑞供应链管理": [ + "行业头部" + ], + "绘声绘色": [ + "行业头部" + ], + "当当网电子商务": [ + "行业头部" + ], + "当当": [ + "行业头部" + ], + "当当科文": [ + "行业头部" + ], + "博览群书": [ + "行业头部" + ], + "当当文创手工艺品电子商务": [ + "行业头部" + ], + "当当比特物流": [ + "行业头部" + ], + "dangdang": [ + "行业头部" + ], + "google": [ + "综合大厂" + ], + "谷歌资本": [ + "综合大厂" + ], + "google cloud": [ + "综合大厂" + ], + "gmail": [ + "综合大厂" + ], + "谷歌": [ + "综合大厂" + ], + "谷歌中国": [ + "综合大厂" + ], + "google ventures": [ + "综合大厂" + ], + "gradient ventures": [ + "综合大厂" + ], + "capitalg": [ + "综合大厂" + ], + "youtube": [ + "综合大厂" + ], + "google assistant investments": [ + "综合大厂" + ], + "alphabet": [ + "综合大厂" + ], + "hikvision": [ + "行业头部多元化" + ], + "海康威视数字": [ + "行业头部多元化" + ], + "海康实业": [ + "行业头部多元化" + ], + "海康实业(深圳市)": [ + "行业头部多元化" + ], + "海康智能": [ + "行业头部多元化" + ], + "萤石": [ + "行业头部多元化" + ], + "节创": [ + "行业头部多元化" + ], + "节点迅捷": [ + "行业头部多元化" + ], + "海康机器人": [ + "行业头部多元化" + ], + "威视汽车": [ + "行业头部多元化" + ], + "海康汽车": [ + "行业头部多元化" + ], + "海康消防": [ + "行业头部多元化" + ], + "微影智能": [ + "行业头部多元化" + ], + "汉军智能系统": [ + "行业头部多元化" + ], + "高德威智能交通系统": [ + "行业头部多元化" + ], + "海康智慧产业股权投资基金合伙合伙": [ + "行业头部多元化" + ], + "海康存储": [ + "行业头部多元化" + ], + "微影": [ + "行业头部多元化" + ], + "海康慧影": [ + "行业头部多元化" + ], + "海康": [ + "行业头部多元化" + ], + "海康威视(广州)": [ + "行业头部多元化" + ], + "海康威视数字(杭州)": [ + "行业头部多元化" + ], + "华为通信(浙江)": [ + "综合大厂" + ], + "鸿蒙(广州)": [ + "综合大厂" + ], + "huawei": [ + "综合大厂" + ], + "金山办公(北京)": [ + "行业头部多元化" + ], + "西山居世游": [ + "行业头部多元化" + ], + "西山居世游(成都)": [ + "行业头部多元化" + ], + "kuaipan": [ + "行业头部多元化" + ], + "ksyun": [ + "行业头部多元化" + ], + "金山(青岛)": [ + "行业头部多元化" + ], + "讯飞": [ + "行业头部多元化" + ], + "科大讯飞(新疆)": [ + "行业头部多元化" + ], + "讯飞(河北)": [ + "行业头部多元化" + ], + "快手(北京)": [ + "行业头部多元化" + ], + "beijing express hand": [ + "行业头部多元化" + ], + "acfun": [ + "行业头部多元化" + ], + "a站": [ + "行业头部多元化" + ], + "猎豹图书文化": [ + "行业头部多元化" + ], + "猎豹图书文化(湖北)": [ + "行业头部多元化" + ], + "猎豹移动(北京)": [ + "行业头部多元化" + ], + "贝壳网际安全": [ + "行业头部多元化" + ], + "京东(江苏)": [ + "行业头部多元化" + ], + "一号店": [ + "行业头部多元化" + ], + "益实多": [ + "行业头部多元化" + ], + "京东世纪": [ + "行业头部多元化" + ], + "beijing jingdong century information": [ + "行业头部多元化" + ], + "beijing jingbangda trade": [ + "行业头部多元化" + ], + "京邦达": [ + "行业头部多元化" + ], + "京东尚科": [ + "行业头部多元化" + ], + "beijing jingdong shangke information": [ + "行业头部多元化" + ], + "酷狗计算机": [ + "行业头部多元化" + ], + "kugou": [ + "行业头部多元化" + ], + "guangzhou kugou": [ + "行业头部多元化" + ], + "酷狗游戏": [ + "行业头部多元化" + ], + "酷狗": [ + "行业头部多元化" + ], + "酷狗计算机(广州)": [ + "行业头部多元化" + ], + "链家房地产经纪蜀西环街(四川)": [ + "行业头部多元化" + ], + "苑店": [ + "行业头部多元化" + ], + "链家房地产经纪蜀西环街": [ + "行业头部多元化" + ], + "beijing home link real estate broker": [ + "行业头部多元化" + ], + "链家": [ + "行业头部多元化" + ], + "linkedln": [ + "行业头部" + ], + "领英": [ + "行业头部" + ], + "淘友天下": [ + "行业头部" + ], + "觅觅": [ + "行业头部" + ], + "淘友网": [ + "行业头部" + ], + "芒果": [ + "行业头部" + ], + "芒果文化传媒": [ + "行业头部" + ], + "芒果文化传媒(北京)": [ + "行业头部" + ], + "芒果网": [ + "行业头部" + ], + "mangogame": [ + "行业头部" + ], + "快乐购": [ + "行业头部" + ], + "芒果游戏": [ + "行业头部" + ], + "芒果物联网(常州)": [ + "行业头部" + ], + "芒果物联网": [ + "行业头部" + ], + "寻梦": [ + "行业头部多元化" + ], + "pdd": [ + "行业头部多元化" + ], + "上海寻梦": [ + "行业头部多元化" + ], + "顺丰食品(安徽)": [ + "行业头部多元化" + ], + "顺丰食品": [ + "行业头部多元化" + ], + "顺丰速运(苏州)": [ + "行业头部多元化" + ], + "苏宁易购(甘肃)": [ + "行业头部多元化" + ], + "suning.com": [ + "行业头部多元化" + ], + "孙宁金融": [ + "行业头部多元化" + ], + "苏宁": [ + "行业头部多元化" + ], + "suning": [ + "行业头部多元化" + ], + "苏宁易购": [ + "行业头部多元化" + ], + "苏宁银行筹备工作组(江苏)": [ + "行业头部多元化" + ], + "苏宁银行筹备工作组": [ + "行业头部多元化" + ], + "苏宁易购电子商务(江苏)": [ + "行业头部多元化" + ], + "苏宁云商": [ + "行业头部多元化" + ], + "苏宁易购电子商务": [ + "行业头部多元化" + ], + "苏宁金服": [ + "行业头部多元化" + ], + "途牛": [ + "行业头部" + ], + "途牛旅游网": [ + "行业头部" + ], + "tuniu": [ + "行业头部" + ], + "nanjing tuniu": [ + "行业头部" + ], + "途牛国际旅行社(北京)": [ + "行业头部" + ], + "途牛国际旅行社": [ + "行业头部" + ], + "五八到家": [ + "行业头部多元化" + ], + "58": [ + "行业头部多元化" + ], + "58到家": [ + "行业头部多元化" + ], + "五八新服": [ + "行业头部多元化" + ], + "五八教育": [ + "行业头部多元化" + ], + "天鹅到家": [ + "行业头部多元化" + ], + "网邻通": [ + "行业头部多元化" + ], + "五八邦": [ + "行业头部多元化" + ], + "五八人力资源": [ + "行业头部多元化" + ], + "云企互联投资": [ + "行业头部多元化" + ], + "上海瑞家": [ + "行业头部多元化" + ], + "魔方网聘": [ + "行业头部多元化" + ], + "五八同城(哈尔滨)": [ + "行业头部多元化" + ], + "电子湾": [ + "综合大厂" + ], + "上海亿贝": [ + "综合大厂" + ], + "亿贝": [ + "综合大厂" + ], + "易贝": [ + "综合大厂" + ], + "ebay": [ + "综合大厂" + ], + "ebay marketplaces gmbh": [ + "综合大厂" + ], + "ebay&paypal": [ + "综合大厂" + ], + "瑞庭(上海)": [ + "行业头部" + ], + "瑞庭": [ + "行业头部" + ], + "vivo": [ + "行业头部多元化" + ], + "维沃": [ + "行业头部多元化" + ], + "维沃移动通信": [ + "行业头部多元化" + ], + "vivo(福建)": [ + "行业头部多元化" + ], + "微梦创科": [ + "行业头部" + ], + "weibo": [ + "行业头部" + ], + "微博": [ + "行业头部" + ], + "新浪数字": [ + "行业头部" + ], + "新浪支付": [ + "行业头部" + ], + "新浪仓石基金销售": [ + "行业头部" + ], + "新浪服务": [ + "行业头部" + ], + "新浪传媒": [ + "行业头部" + ], + "新浪新媒体咨询": [ + "行业头部" + ], + "江苏新浪": [ + "行业头部" + ], + "唯品会零售船营(广州)": [ + "行业头部" + ], + "唯品会零售船营": [ + "行业头部" + ], + "唯品会(中国)": [ + "行业头部" + ], + "小米展览展示(杭州)": [ + "行业头部多元化" + ], + "小米展览展示": [ + "行业头部多元化" + ], + "上海米家": [ + "行业头部多元化" + ], + "迅雷水晶": [ + "行业头部" + ], + "怕怕": [ + "行业头部" + ], + "德絮投资管理中心合伙": [ + "行业头部" + ], + "众安健康": [ + "行业头部" + ], + "zhongan online p&c insurance": [ + "行业头部" + ], + "众安在线保险经纪": [ + "行业头部" + ], + "众安在线": [ + "行业头部" + ], + "健谈哥": [ + "行业头部" + ], + "zhongan": [ + "行业头部" + ], + "众安运动": [ + "行业头部" + ], + "众安在线财产保险": [ + "行业头部" + ], + "众安电子科技(河北)": [ + "行业头部" + ], + "众安电子科技": [ + "行业头部" + ], + "驴妈妈旅行网": [ + "行业头部" + ], + "景域旅游运营": [ + "行业头部" + ], + "满运软件": [ + "行业头部" + ], + "运满满": [ + "行业头部" + ], + "细微咨询": [ + "行业头部" + ], + "货车帮": [ + "行业头部" + ], + "满帮": [ + "行业头部" + ], + "细微咨询(上海)": [ + "行业头部" + ], + "货车帮(贵阳)": [ + "行业头部" + ], + "每日优鲜电子商务": [ + "行业头部" + ], + "每日优鲜": [ + "行业头部" + ], + "每日优鲜电子商务(北京)": [ + "行业头部" + ], + "missfresh": [ + "行业头部" + ], + "趣拿": [ + "行业头部" + ], + "去哪儿网": [ + "行业头部" + ], + "qunar com": [ + "行业头部" + ], + "趣拿网": [ + "行业头部" + ], + "qunar": [ + "行业头部" + ], + "搜狗服务": [ + "行业头部" + ], + "搜狗": [ + "行业头部" + ], + "sogou": [ + "行业头部" + ], + "搜狗智慧互联网医院": [ + "行业头部" + ], + "搜狗智慧远程医疗中心": [ + "行业头部" + ], + "吉易付科技": [ + "行业头部" + ], + "世纪思速科技": [ + "行业头部" + ], + "世纪光速": [ + "行业头部" + ], + "beijing sogou information service": [ + "行业头部" + ], + "搜狗运营中心(沈阳)": [ + "行业头部" + ], + "搜狗运营中心": [ + "行业头部" + ], + "同城艺龙": [ + "行业头部" + ], + "tongcheng network": [ + "行业头部" + ], + "程会玩国际旅行社": [ + "行业头部" + ], + "艺龙": [ + "行业头部" + ], + "同程旅行": [ + "行业头部" + ], + "同程网": [ + "行业头部" + ], + "同程旅游": [ + "行业头部" + ], + "大连同程营销策划": [ + "行业头部" + ], + "同程": [ + "行业头部" + ], + "同程旅游金融业务": [ + "行业头部" + ], + "艺龙美术培训学校": [ + "行业头部" + ], + "艺龙美术培训学校(太原)": [ + "行业头部" + ], + "网易互动娱乐": [ + "综合大厂" + ], + "舶乐蜜电子商务": [ + "行业头部多元化" + ], + "偶藻": [ + "行业头部多元化" + ], + "哔哩哔哩弹幕网": [ + "行业头部多元化" + ], + "幻电": [ + "行业头部多元化" + ], + "东银河系漫游指南": [ + "行业头部多元化" + ], + "舶乐蜜电子商务(上海)": [ + "行业头部多元化" + ], + "菠萝蜜": [ + "行业头部多元化" + ], + "波罗蜜": [ + "行业头部多元化" + ], + "international business machines": [ + "综合大厂" + ], + "ibm": [ + "综合大厂" + ], + "国际商业机器公司": [ + "综合大厂" + ], + "国际商业机器": [ + "综合大厂" + ], + "国际商业机器(北京)": [ + "综合大厂" + ], + "欧珀": [ + "行业头部多元化" + ], + "oppo(广州)": [ + "行业头部多元化" + ], + "欧普照明电器(中山)": [ + "行业头部多元化" + ], + "欧普照明电器": [ + "行业头部多元化" + ], + "欧普": [ + "行业头部多元化" + ], + "tcl电器销售": [ + "行业头部多元化" + ], + "tcl电器销售(新疆)": [ + "行业头部多元化" + ], + "tcl": [ + "行业头部多元化" + ], + "多玩yy": [ + "行业头部" + ], + "microsoft": [ + "综合大厂" + ], + "微软": [ + "综合大厂" + ], + "微软中国": [ + "综合大厂" + ], + "微软移动联新互联网服务": [ + "综合大厂" + ], + "行吟": [ + "行业头部" + ], + "行吟(上海)": [ + "行业头部" + ], + "箐程": [ + "行业头部多元化" + ], + "快途": [ + "行业头部多元化" + ], + "携程国际旅行社": [ + "行业头部多元化" + ], + "amazon china holding limited": [ + "综合大厂" + ], + "amazon": [ + "综合大厂" + ], + "亚马逊云科技": [ + "综合大厂" + ], + "亚马逊": [ + "综合大厂" + ], + "kindle": [ + "综合大厂" + ], + "amazon亚马逊": [ + "综合大厂" + ], + "亚马逊服务": [ + "综合大厂" + ], + "世纪卓越快递服务": [ + "综合大厂" + ], + "亚马逊中国投资": [ + "综合大厂" + ], + "亚马逊(扬州)": [ + "综合大厂" + ], + "卓越": [ + "综合大厂" + ], + "亚马逊(中国)": [ + "综合大厂" + ], + "搜狐新时代": [ + "行业头部" + ], + "狐狸互联网小额贷款": [ + "行业头部" + ], + "新狐投资管理": [ + "行业头部" + ], + "我乐": [ + "行业头部" + ], + "狐狸金服": [ + "行业头部" + ], + "搜狐支付": [ + "行业头部" + ], + "乔戈里管理咨询": [ + "行业头部" + ], + "搜易居": [ + "行业头部" + ], + "云狐天下征信": [ + "行业头部" + ], + "搜狐焦点站": [ + "行业头部" + ], + "搜狐焦点站(贵阳)": [ + "行业头部" + ], + "搜狐公司": [ + "行业头部" + ], + "搜狐网": [ + "行业头部" + ], + "畅游服务(洛阳)": [ + "行业好公司" + ], + "畅游服务": [ + "行业好公司" + ], + "畅游天下": [ + "行业好公司" + ], + "56": [ + "行业头部" + ], + "我乐装饰": [ + "行业头部" + ], + "我乐装饰(江苏)": [ + "行业头部" + ], + "浪潮世科": [ + "行业头部" + ], + "inspur group": [ + "行业头部" + ], + "浪潮云": [ + "行业头部" + ], + "inspur": [ + "行业头部" + ], + "浪潮软件": [ + "行业头部" + ], + "新潮传媒": [ + "行业头部" + ], + "浪潮信息": [ + "行业头部" + ], + "浪潮集团": [ + "行业头部" + ], + "浪潮(河南)": [ + "行业头部" + ], + "浪潮世科(山东)": [ + "行业头部" + ], + "新潮传媒(无锡)": [ + "行业头部" + ], + "新潮": [ + "行业头部" + ], + "微医云": [ + "行业头部" + ], + "康健公司": [ + "行业头部" + ], + "挂号网": [ + "行业头部" + ], + "wedoc": [ + "行业头部" + ], + "微医": [ + "行业头部" + ], + "wedoc cloud hangzhou holdings": [ + "行业头部" + ], + "微医集团": [ + "行业头部" + ], + "挂号": [ + "行业头部" + ], + "恒睿人工智能研究院": [ + "行业头部" + ], + "艾丁": [ + "行业一般公司" + ], + "艾丁软件": [ + "行业一般公司" + ], + "艾丁金融": [ + "行业一般公司" + ], + "adyen": [ + "行业一般公司" + ], + "adyen hong kong limited": [ + "行业一般公司" + ], + "木瓜移动": [ + "行业好公司" + ], + "papaya": [ + "行业好公司" + ], + "木瓜": [ + "行业好公司" + ], + "papayamobile": [ + "行业好公司" + ], + "shopify": [ + "综合大厂" + ], + "shopify payments usa": [ + "行业好公司" + ], + "shopify international limited": [ + "行业好公司" + ], + "薇仕": [ + "行业好公司" + ], + "薇仕网络": [ + "行业好公司" + ], + "wish": [ + "行业好公司" + ], + "wishpost": [ + "行业好公司" + ], + "shanghai weishi network": [ + "行业好公司" + ], + "支点商贸": [ + "行业好公司" + ], + "识装": [ + "行业头部" + ], + "时装(湖南)": [ + "行业头部" + ], + "东方时装": [ + "行业头部" + ], + "时装": [ + "行业头部" + ], + "时装信息": [ + "行业头部" + ], + "时装科技": [ + "行业头部" + ], + "毒": [ + "行业头部" + ], + "dewu": [ + "行业头部" + ], + "mdt": [ + "行业头部" + ], + "theduapp": [ + "行业头部" + ], + "shanghai mdt infotech": [ + "行业头部" + ], + "店匠科技": [ + "行业好公司" + ], + "店匠": [ + "行业好公司" + ], + "shoplazza": [ + "行业好公司" + ], + "shopping cart": [ + "行业好公司" + ], + "shenzhen dianjiang science and": [ + "行业好公司" + ], + "中国财富": [ + "行业头部" + ], + "财富证券": [ + "行业头部" + ], + "财富证券(东方)": [ + "行业头部" + ], + "东方财富": [ + "行业头部" + ], + "东财": [ + "行业头部" + ], + "eastmoney": [ + "行业头部" + ], + "恒生": [ + "行业好公司" + ], + "恒生股份": [ + "行业好公司" + ], + "hundsun": [ + "行业好公司" + ], + "恒生集团": [ + "行业好公司" + ], + "恒生利融": [ + "行业好公司" + ], + "平安金融科技咨询": [ + "行业头部" + ], + "平安金融": [ + "行业头部" + ], + "平安财富通": [ + "行业头部" + ], + "ping an financial consulting": [ + "行业头部" + ], + "马上": [ + "行业头部" + ], + "mscf": [ + "行业头部" + ], + "穆迪": [ + "行业头部" + ], + "赛盒科技": [ + "行业好公司" + ], + "irobotbox": [ + "行业好公司" + ], + "赛盒(深圳)": [ + "行业好公司" + ], + "赛盒": [ + "行业好公司" + ], + "核新同花顺(浙江)": [ + "行业头部" + ], + "同花顺": [ + "行业头部" + ], + "www 10jqka com cn": [ + "行业头部" + ], + "核新同花顺": [ + "行业头部" + ], + "同花顺云(浙江)": [ + "行业头部" + ], + "同花顺云": [ + "行业头部" + ], + "同花顺管理": [ + "行业头部" + ], + "同花顺管理(山东)": [ + "行业头部" + ], + "hithink flush": [ + "行业头部" + ], + "兴业": [ + "行业好公司" + ], + "兴业消费金融": [ + "行业好公司" + ], + "industrial consumer finance": [ + "行业好公司" + ], + "兴业消金": [ + "行业好公司" + ], + "招联": [ + "行业头部" + ], + "招联金融": [ + "行业头部" + ], + "银联(北京)": [ + "行业头部多元化" + ], + "北京银联": [ + "行业头部多元化" + ], + "银联商务": [ + "行业头部多元化" + ], + "银联(浙江)": [ + "行业头部多元化" + ], + "中银": [ + "行业头部" + ], + "中银消费金融": [ + "行业好公司" + ], + "boccfc": [ + "行业好公司" + ], + "中银消金": [ + "行业好公司" + ], + "招商银行分行(杭州)": [ + "行业头部" + ], + "招商银行分行": [ + "行业头部" + ], + "china merchants bank": [ + "行业头部" + ], + "cmbchina": [ + "行业头部" + ], + "趣阅(杭州)": [ + "行业好公司" + ], + "麟动(成都)": [ + "行业好公司" + ], + "商汤(深圳市)": [ + "行业头部" + ], + "云杉": [ + "行业头部" + ], + "美菜": [ + "行业头部" + ], + "美菜网": [ + "行业头部" + ], + "beijing yunshan information": [ + "行业头部" + ], + "连尚": [ + "行业头部" + ], + "连尚慧眼": [ + "行业头部" + ], + "wifi万能钥匙": [ + "行业头部" + ], + "连亚": [ + "行业头部" + ], + "掌宜": [ + "行业头部" + ], + "连尚网络": [ + "行业头部" + ], + "冬云": [ + "行业头部" + ], + "尚网": [ + "行业头部" + ], + "shanghai lianshang network": [ + "行业头部" + ], + "领星": [ + "行业好公司" + ], + "领星网络": [ + "行业好公司" + ], + "悟空跨境": [ + "行业好公司" + ], + "asinking": [ + "行业好公司" + ], + "领星生物科技(上海)": [ + "行业好公司" + ], + "领星生物科技": [ + "行业好公司" + ], + "lingxing": [ + "行业好公司" + ], + "齐力电子商务": [ + "行业头部" + ], + "kilimall": [ + "行业头部" + ], + "乞力电子商务": [ + "行业头部" + ], + "齐力电商": [ + "行业头部" + ], + "乞力电商": [ + "行业头部" + ], + "乒乓智能": [ + "行业好公司" + ], + "pingpong金融": [ + "行业好公司" + ], + "pingpongx": [ + "行业好公司" + ], + "pingpeng": [ + "行业好公司" + ], + "hangzhou pingpeng intelligent": [ + "行业好公司" + ], + "伊千网络": [ + "行业好公司" + ], + "爱商": [ + "行业好公司" + ], + "爱商在线": [ + "行业好公司" + ], + "爱商在线(深圳市)": [ + "行业好公司" + ], + "tongtool": [ + "行业好公司" + ], + "通途(安徽省)": [ + "行业好公司" + ], + "通途": [ + "行业好公司" + ], + "tobosoft": [ + "行业好公司" + ], + "云卖分销": [ + "行业好公司" + ], + "isunor": [ + "行业好公司" + ], + "众鸣世纪": [ + "行业头部" + ], + "宝宝树": [ + "行业头部" + ], + "babytree": [ + "行业头部" + ], + "众鸣世科": [ + "行业头部" + ], + "众鸣科技": [ + "行业头部" + ], + "babytree inc": [ + "行业头部" + ], + "beijing zhongming century science and": [ + "行业头部" + ], + "第四范式智能": [ + "行业头部" + ], + "shenzhen qianhai fourth paradigm data": [ + "行业头部" + ], + "壹佰米": [ + "行业头部" + ], + "叮咚买菜": [ + "行业头部" + ], + "100. me": [ + "行业头部" + ], + "shanghai yibaimi network": [ + "行业头部" + ], + "证券资产管理": [ + "行业头部" + ], + "中国证券": [ + "行业头部" + ], + "证券资产管理(东方)": [ + "行业头部" + ], + "东方证券": [ + "行业头部" + ], + "东方赢家": [ + "行业头部" + ], + "orientsec": [ + "行业头部" + ], + "orient": [ + "行业头部" + ], + "orient securities limited": [ + "行业头部" + ], + "捷信信驰咨询": [ + "行业头部" + ], + "home credit": [ + "行业头部" + ], + "捷信消费金融": [ + "行业头部" + ], + "捷信信驰": [ + "行业头部" + ], + "homecredit": [ + "行业头部" + ], + "捷信时空电子商务": [ + "行业头部" + ], + "乐信(深圳)": [ + "行业好公司" + ], + "美丽联合": [ + "行业好公司" + ], + "卷瓜": [ + "行业好公司" + ], + "蘑菇街": [ + "行业好公司" + ], + "美丽说": [ + "行业好公司" + ], + "mogu": [ + "行业好公司" + ], + "快乐时代": [ + "行业好公司" + ], + "趣店": [ + "行业好公司" + ], + "趣店集团": [ + "行业好公司" + ], + "qd": [ + "行业好公司" + ], + "探探": [ + "行业头部" + ], + "陌陌(北京)": [ + "行业头部" + ], + "陌陌上海": [ + "行业头部" + ], + "momo": [ + "行业头部" + ], + "hello group inc": [ + "行业头部" + ], + "口袋时尚科技": [ + "行业头部" + ], + "口袋": [ + "行业头部" + ], + "无线生活": [ + "行业头部" + ], + "微店": [ + "行业头部" + ], + "weidian": [ + "行业头部" + ], + "阳光消费金融": [ + "行业好公司" + ], + "sunshine consumer finance": [ + "行业好公司" + ], + "智者天下": [ + "行业头部" + ], + "zhihu": [ + "行业头部" + ], + "中国银行分行(深圳)": [ + "行业头部" + ], + "中国银行分行": [ + "行业头部" + ], + "中银保险": [ + "行业头部" + ], + "中信": [ + "行业好公司" + ], + "中信证券(深圳)": [ + "行业好公司" + ], + "中信证券": [ + "行业好公司" + ], + "citic securities limited": [ + "行业好公司" + ], + "citic securities": [ + "行业好公司" + ], + "中邮": [ + "行业好公司" + ], + "中邮消费金融": [ + "行业好公司" + ], + "youcash": [ + "行业好公司" + ], + "中邮消金": [ + "行业好公司" + ], + "珍爱": [ + "行业头部" + ], + "珍爱网(深圳市)": [ + "行业头部" + ], + "中友信息": [ + "行业头部" + ], + "shenzhen zhenai network information": [ + "行业头部" + ], + "易玩(上海)": [ + "行业头部" + ], + "富邦华": [ + "行业好公司" + ], + "全能王名片": [ + "行业好公司" + ], + "名片全能王": [ + "行业好公司" + ], + "斗鱼(广州)": [ + "行业好公司" + ], + "探迹(广州)": [ + "行业好公司" + ], + "小马智行": [ + "行业好公司" + ], + "小马智行(广州)": [ + "行业好公司" + ], + "蔚来": [ + "行业头部" + ], + "蔚来汽车(上海)": [ + "行业头部" + ], + "智车优行": [ + "行业好公司" + ], + "奇点汽车": [ + "行业好公司" + ], + "合众": [ + "行业好公司" + ], + "合众新能源汽车(浙江)": [ + "行业好公司" + ], + "合众新能源汽车": [ + "行业好公司" + ], + "哪咤汽车": [ + "行业好公司" + ], + "初速度": [ + "行业头部" + ], + "momenta": [ + "行业头部" + ], + "速腾聚创": [ + "行业好公司" + ], + "robosense": [ + "行业好公司" + ], + "地平线机器人研发": [ + "行业头部" + ], + "地平线机器人研发(北京)": [ + "行业头部" + ], + "horizon robotics": [ + "行业头部" + ], + "芯驰半导体": [ + "行业好公司" + ], + "芯驰科技": [ + "行业好公司" + ], + "石头世纪": [ + "行业好公司" + ], + "大艾机器人": [ + "行业好公司" + ], + "达闼": [ + "行业好公司" + ], + "达闼科技": [ + "行业好公司" + ], + "cloudminds": [ + "行业好公司" + ], + "翼菲": [ + "行业好公司" + ], + "翼菲自动化": [ + "行业好公司" + ], + "翼菲自动化(济南)": [ + "行业好公司" + ], + "翼菲机器人": [ + "行业好公司" + ], + "天智航医疗": [ + "行业好公司" + ], + "天智航": [ + "行业好公司" + ], + "tinavi medical technologies": [ + "行业好公司" + ], + "天智航医疗(北京)": [ + "行业好公司" + ], + "tinavi": [ + "行业好公司" + ], + "beijing geekplus": [ + "行业好公司" + ], + "geek": [ + "行业好公司" + ], + "金石机器人": [ + "行业好公司" + ], + "ston robotics changzhou": [ + "行业好公司" + ], + "shanghai qinglang intelligent": [ + "行业好公司" + ], + "新时达智能": [ + "行业好公司" + ], + "华中数控": [ + "行业好公司" + ], + "华中数控(武汉)": [ + "行业好公司" + ], + "advanced micro devices ,": [ + "行业头部多元化" + ], + "超威半导体产品中国": [ + "行业头部多元化" + ], + "超微电子科技": [ + "行业头部多元化" + ], + "超微电子科技(海南)": [ + "行业头部多元化" + ], + "amd": [ + "行业头部多元化" + ], + ",京君正集成电路": [ + "行业好公司" + ], + "ingenic semicondu": [ + "行业好公司" + ], + "北京君正": [ + "行业好公司" + ], + "思必驰(苏州)": [ + "行业好公司" + ], + "思必驰": [ + "行业好公司" + ], + "ai speech": [ + "行业好公司" + ], + "云知声(深圳)": [ + "行业好公司" + ], + "深鉴科技": [ + "行业好公司" + ], + "耐能人工智能": [ + "行业好公司" + ], + "耐能": [ + "行业好公司" + ], + "kneron": [ + "行业好公司" + ], + "中科创达(成都)": [ + "行业好公司" + ], + "中科创达": [ + "行业好公司" + ], + "thunder software": [ + "行业好公司" + ], + "数字冰雹": [ + "行业好公司" + ], + "beijing digital hail": [ + "行业好公司" + ], + "数字冰雹网站": [ + "行业好公司" + ], + "冰雹数字": [ + "行业好公司" + ], + "玳数": [ + "行业好公司" + ], + "易知微": [ + "行业好公司" + ], + "袋鼠云": [ + "行业好公司" + ], + "九章云极": [ + "行业好公司" + ], + "datacanvas": [ + "行业好公司" + ], + "相芯科技": [ + "行业好公司" + ], + "相芯": [ + "行业好公司" + ], + "易联": [ + "行业好公司" + ], + "网联": [ + "行业好公司" + ], + "万惠金融服务": [ + "行业好公司" + ], + "万惠金融服务(深圳)": [ + "行业好公司" + ], + "光刻": [ + "行业好公司" + ], + "阿斯麦光刻设备(上海)": [ + "行业好公司" + ], + "小鹏汽车": [ + "行业头部" + ], + "小鹏": [ + "行业头部" + ], + "小鹏汽车(广州)": [ + "行业头部" + ], + "车和家": [ + "行业好公司" + ], + "理想装饰": [ + "行业好公司" + ], + "理想装饰(黑龙江)": [ + "行业好公司" + ], + "理想": [ + "行业好公司" + ], + "智道网联": [ + "行业好公司" + ], + "禾赛科技": [ + "行业好公司" + ], + "黑芝麻": [ + "行业好公司" + ], + "黑芝麻智能(上海)": [ + "行业好公司" + ], + "寒武纪(上海)": [ + "行业头部" + ], + "寒武纪": [ + "行业头部" + ], + "科沃斯": [ + "行业头部" + ], + "科沃斯机器人": [ + "行业头部" + ], + "九号机器人": [ + "行业好公司" + ], + "九号公司": [ + "行业好公司" + ], + "ninebot limited": [ + "行业好公司" + ], + "蓝胖子机器智能": [ + "行业好公司" + ], + "shenzhen dorabot": [ + "行业好公司" + ], + "蓝胖子": [ + "行业好公司" + ], + "蓝胖子机器人": [ + "行业好公司" + ], + "dorabot": [ + "行业好公司" + ], + "深之蓝海洋": [ + "行业好公司" + ], + "deepinfar ocean": [ + "行业好公司" + ], + "深之蓝(深圳市)": [ + "行业好公司" + ], + "深之蓝": [ + "行业好公司" + ], + "深之蓝水下机器人": [ + "行业好公司" + ], + "柏惠维康": [ + "行业好公司" + ], + "beijing bai hui wellcome": [ + "行业好公司" + ], + "remebot": [ + "行业好公司" + ], + "优爱宝智能机器人": [ + "行业好公司" + ], + "shanghai united intelligence robotics": [ + "行业好公司" + ], + "优爱宝机器人": [ + "行业好公司" + ], + "优爱智能": [ + "行业好公司" + ], + "云鲸智能": [ + "行业好公司" + ], + "节卡机器人": [ + "行业好公司" + ], + "节卡": [ + "行业好公司" + ], + "shanghai jaka robotics": [ + "行业好公司" + ], + "节卡机器人(上海)": [ + "行业好公司" + ], + "埃斯顿": [ + "行业好公司" + ], + "埃斯顿自动化": [ + "行业好公司" + ], + "estun automation": [ + "行业好公司" + ], + "埃斯顿自动化(南京)": [ + "行业好公司" + ], + "estun": [ + "行业好公司" + ], + "nvidia服务": [ + "行业头部多元化" + ], + "英伟达": [ + "行业头部多元化" + ], + "nvidia": [ + "行业头部多元化" + ], + "英特尔中国": [ + "综合大厂" + ], + "英特尔": [ + "综合大厂" + ], + "英特尔(中国)": [ + "综合大厂" + ], + "intel": [ + "综合大厂" + ], + "英特尔半导体": [ + "综合大厂" + ], + "英特尔半导体(大连)": [ + "综合大厂" + ], + "比特大陆": [ + "行业好公司" + ], + "bitmain technologies": [ + "行业好公司" + ], + "比特大陆(北京)": [ + "行业好公司" + ], + "西井": [ + "行业好公司" + ], + "shanghai westwell information and": [ + "行业好公司" + ], + "westwelllab": [ + "行业好公司" + ], + "西井科技": [ + "行业好公司" + ], + "启英泰伦": [ + "行业好公司" + ], + "chipintelli techology": [ + "行业好公司" + ], + "启英泰伦(成都)": [ + "行业好公司" + ], + "全志科技": [ + "行业好公司" + ], + "allwinner": [ + "行业好公司" + ], + "五一视界数字孪生": [ + "行业好公司" + ], + "51 world": [ + "行业好公司" + ], + "飞渡": [ + "行业好公司" + ], + "飞渡科技": [ + "行业好公司" + ], + "蓝色光标数据": [ + "行业好公司" + ], + "bluefocus intelligent communications group": [ + "行业好公司" + ], + "蓝色光标电子商务(上海)": [ + "行业好公司" + ], + "蓝色光标电子商务": [ + "行业好公司" + ], + "蓝色光标": [ + "行业好公司" + ], + "中科深智": [ + "行业好公司" + ], + "beijing zhongke shenzhi": [ + "行业好公司" + ], + "拟仁智能": [ + "行业好公司" + ], + "百老汇置业(常州)": [ + "行业好公司" + ], + "百老汇置业": [ + "行业好公司" + ], + "游奇网络": [ + "行业好公司" + ], + "游奇(上海)": [ + "行业好公司" + ], + "shenzhen galaxy interactive": [ + "行业好公司" + ], + "星河互动": [ + "行业好公司" + ], + "逸冰": [ + "行业好公司" + ], + "逸冰(上海)": [ + "行业好公司" + ], + "诺瓦": [ + "行业好公司" + ], + "牛客": [ + "行业好公司" + ], + "东北易华录": [ + "行业好公司" + ], + "简造": [ + "行业好公司" + ], + "分众": [ + "行业好公司" + ], + "longtugame": [ + "行业好公司" + ], + "americana": [ + "综合大厂" + ], + "游爱(天津)": [ + "行业好公司" + ], + "guangzhou youai network": [ + "行业好公司" + ], + "宸梦信息": [ + "行业好公司" + ], + "可域": [ + "行业好公司" + ], + "寰宇观邑": [ + "行业好公司" + ], + "鑫拓": [ + "行业好公司" + ], + "跃盈科技": [ + "行业好公司" + ], + "超量": [ + "行业好公司" + ], + "卓动": [ + "行业好公司" + ], + "品树": [ + "行业好公司" + ], + "众赞": [ + "行业好公司" + ], + "guangzhou jodo information and": [ + "行业好公司" + ], + "guangzhou feiyin information": [ + "行业好公司" + ], + "广州菲音": [ + "行业好公司" + ], + "forgame": [ + "行业好公司" + ], + "kalends": [ + "行业好公司" + ], + "昆仑在线": [ + "行业好公司" + ], + "昆仑": [ + "行业好公司" + ], + "在线方舟游戏": [ + "行业好公司" + ], + "闲徕互娱": [ + "行业好公司" + ], + "西米": [ + "行业好公司" + ], + "godaddy": [ + "综合大厂" + ], + "虎扑体育": [ + "行业好公司" + ], + "梦幻互联网服务": [ + "行业好公司" + ], + "huolieniao network guangzhou": [ + "行业好公司" + ], + "火鹤": [ + "行业好公司" + ], + "火烈鸟(合肥)": [ + "行业好公司" + ], + "开发区狼途": [ + "行业好公司" + ], + "game science interactive": [ + "行业好公司" + ], + "绿岸网络": [ + "行业好公司" + ], + "绿岸网": [ + "行业好公司" + ], + "贝塔": [ + "行业好公司" + ], + "果仁互动": [ + "行业好公司" + ], + "beijing beta": [ + "行业好公司" + ], + "蜗牛传媒(大连)": [ + "行业好公司" + ], + "蜗牛传媒": [ + "行业好公司" + ], + "声田spotify": [ + "综合大厂" + ], + "龙腾中东": [ + "行业好公司" + ], + "云游互动": [ + "行业好公司" + ], + "途游网络": [ + "行业好公司" + ], + "online tuyoo beijing": [ + "行业好公司" + ], + "途游世界": [ + "行业好公司" + ], + "在线途游": [ + "行业好公司" + ], + "4399": [ + "行业好公司" + ], + "动视activision": [ + "行业头部" + ], + "悠星网络": [ + "行业好公司" + ], + "悠星(上海)": [ + "行业好公司" + ], + "上海第九城市": [ + "行业好公司" + ], + "第九城市上海": [ + "行业好公司" + ], + "shanghai the 9 information": [ + "行业好公司" + ], + "新氧科技": [ + "行业好公司" + ], + "宝丰时装苏州工业园区": [ + "行业好公司" + ], + "beijing chukong": [ + "行业好公司" + ], + "墨白计算机": [ + "行业好公司" + ], + "墨白计算机(上海)": [ + "行业好公司" + ], + "墨白数字": [ + "行业好公司" + ], + "天梯": [ + "行业好公司" + ], + "guangzhou baitian information": [ + "行业好公司" + ], + "百田": [ + "行业好公司" + ], + "有个机器人(上海)": [ + "行业好公司" + ], + "有个": [ + "行业好公司" + ], + "东证": [ + "行业好公司" + ], + "锐战": [ + "行业好公司" + ], + "紫龙奇点互动娱乐": [ + "行业好公司" + ], + "garena private limited": [ + "行业好公司" + ], + "sea": [ + "行业好公司" + ], + "商竞舞电竞": [ + "行业好公司" + ], + "beijing yonghang": [ + "行业好公司" + ], + "horizon3d": [ + "行业好公司" + ], + "炎魂": [ + "行业好公司" + ], + "小白炎魂": [ + "行业好公司" + ], + "赢时胜(深圳市)": [ + "行业好公司" + ], + "乐动": [ + "行业好公司" + ], + "乐动机器人(深圳)": [ + "行业好公司" + ], + "中国农村": [ + "行业好公司" + ], + "深圳农村": [ + "行业好公司" + ], + "掌趣(北京)": [ + "行业好公司" + ], + "华娱聚友兴业": [ + "行业好公司" + ], + "ourpalm": [ + "行业好公司" + ], + "广丰区贪玩": [ + "行业好公司" + ], + "鄱阳县贪玩": [ + "行业好公司" + ], + "贪玩": [ + "行业好公司" + ], + "金蛋投资中心合伙": [ + "行业好公司" + ], + "beijing object online": [ + "行业好公司" + ], + "match group": [ + "综合大厂" + ], + "祖龙(天津)": [ + "行业好公司" + ], + "莉莉丝(上海)": [ + "行业头部" + ], + "涂鸦多得": [ + "行业好公司" + ], + "猫途鹰tripadvisor": [ + "综合大厂" + ], + "蚁众": [ + "行业好公司" + ], + "趣丸": [ + "行业好公司" + ], + "可那": [ + "行业好公司" + ], + "网龙计算机网络": [ + "行业好公司" + ], + "shanghai wapu network": [ + "行业好公司" + ], + "海牛": [ + "行业好公司" + ], + "申通": [ + "行业好公司" + ], + "g bits": [ + "行业好公司" + ], + "bits": [ + "行业好公司" + ], + "沃森电气(湖南)": [ + "行业好公司" + ], + "沃森电气": [ + "行业好公司" + ], + "德世朗厨具": [ + "行业好公司" + ], + "德世朗厨具(上海)": [ + "行业好公司" + ], + "beijing tianshen hudong": [ + "行业好公司" + ], + "zeus interactinve": [ + "行业好公司" + ], + "声智(北京)": [ + "行业好公司" + ], + "unity": [ + "行业头部" + ], + "shanghai funtoy network ": [ + "行业好公司" + ], + "减字": [ + "行业好公司" + ], + "华亚智能(珠海市)": [ + "行业好公司" + ], + "华亚": [ + "行业好公司" + ], + "像素(北京)": [ + "行业好公司" + ], + "中兴网信(深圳)": [ + "行业好公司" + ], + "zalando se": [ + "综合大厂" + ], + "波克": [ + "行业好公司" + ], + "shanghai bihan internet": [ + "行业头部" + ], + "递四方": [ + "行业好公司" + ], + "递四方速递(深圳市)": [ + "行业好公司" + ], + "上海鹰角": [ + "行业好公司" + ], + "传音": [ + "行业头部" + ], + "聚水潭(上海)": [ + "行业好公司" + ], + "慕和": [ + "行业好公司" + ], + "慕和网络": [ + "行业好公司" + ], + "缤客booking": [ + "综合大厂" + ], + "小牛互娱智能": [ + "行业好公司" + ], + "calf mutual entertainment shenzhen": [ + "行业好公司" + ], + "小牛互娱智能(上海)": [ + "行业好公司" + ], + "游龙腾": [ + "行业好公司" + ], + "境界广告传媒": [ + "行业好公司" + ], + "境界广告传媒(云南)": [ + "行业好公司" + ], + "servicenow": [ + "综合大厂" + ], + "七道贰次元投资合伙合伙": [ + "行业好公司" + ], + "7road": [ + "行业好公司" + ], + "凌素": [ + "行业好公司" + ], + "千奇网络": [ + "行业好公司" + ], + "霍尔果斯第七大道": [ + "行业好公司" + ], + "shenzhen 7 road": [ + "行业好公司" + ], + "大道": [ + "行业好公司" + ], + "广联达(广州)": [ + "行业好公司" + ], + "2k vc": [ + "行业好公司" + ], + "亚马逊amazon": [ + "综合大厂" + ], + "博锐尚格节能(北京)": [ + "行业好公司" + ], + "博锐尚格节能": [ + "行业好公司" + ], + "色拉布snap inl.": [ + "综合大厂" + ], + "视拳文化传播": [ + "行业头部" + ], + "扩博": [ + "行业好公司" + ], + "扩博智能(上海)": [ + "行业好公司" + ], + "阿拉丁生化": [ + "行业好公司" + ], + "阿拉丁生化(上海)": [ + "行业好公司" + ], + "极光文化传播(河南)": [ + "行业好公司" + ], + "极光文化传播": [ + "行业好公司" + ], + "优必选教育": [ + "行业好公司" + ], + "优必选教育(深圳)": [ + "行业好公司" + ], + "巨人": [ + "行业好公司" + ], + "蛮啾网络": [ + "行业好公司" + ], + "chewy": [ + "综合大厂" + ], + "shanghai u 9 game": [ + "行业好公司" + ], + "游久时代": [ + "行业好公司" + ], + "上海爱使": [ + "行业好公司" + ], + "久游网": [ + "行业好公司" + ], + "百仕瑞管理顾问(北京)": [ + "行业好公司" + ], + "百仕瑞管理顾问": [ + "行业好公司" + ], + "锐战网络": [ + "行业好公司" + ], + "拾萌文化": [ + "行业好公司" + ], + "拾梦文化(上海)": [ + "行业好公司" + ], + "拾梦": [ + "行业好公司" + ], + "尼毕鲁科技": [ + "行业好公司" + ], + "tap 4 fun": [ + "行业好公司" + ], + "广州塔酷": [ + "行业好公司" + ], + "臻盛网络": [ + "行业好公司" + ], + "耀天游戏": [ + "行业好公司" + ], + "腾云摘星": [ + "行业好公司" + ], + "水果堂(北京)": [ + "行业好公司" + ], + "巴别时代(北京)": [ + "行业好公司" + ], + "扬讯科技": [ + "行业好公司" + ], + "扬讯": [ + "行业好公司" + ], + "和冠": [ + "行业好公司" + ], + "沃尔玛投资": [ + "行业好公司" + ], + "沃尔玛投资(中国)": [ + "行业好公司" + ], + "风雷": [ + "行业好公司" + ], + "酷派(重庆)": [ + "行业好公司" + ], + "英佩(上海)": [ + "行业头部" + ], + "epic games": [ + "行业头部" + ], + "bet 365": [ + "综合大厂" + ], + "炫彩互动(合肥)": [ + "行业好公司" + ], + "dazzle interactive network": [ + "行业好公司" + ], + "瓴岳(北京)": [ + "行业好公司" + ], + "瓴岳": [ + "行业好公司" + ], + "dhgate": [ + "行业好公司" + ], + "敦煌": [ + "行业好公司" + ], + "naver": [ + "综合大厂" + ], + "领创智信(北京)": [ + "行业好公司" + ], + "北京华捷艾米": [ + "行业好公司" + ], + "乐港": [ + "行业好公司" + ], + "hangzhou bianfeng networking": [ + "行业好公司" + ], + "飞未": [ + "行业好公司" + ], + "特斯拉tesla": [ + "综合大厂" + ], + "安吉斯里斯特angi.us": [ + "综合大厂" + ], + "网元实业(河南)": [ + "行业好公司" + ], + "网元实业": [ + "行业好公司" + ], + "网元圣唐娱乐": [ + "行业好公司" + ], + "copart": [ + "综合大厂" + ], + "包道餐饮管理服务(广州市)": [ + "行业好公司" + ], + "包道餐饮管理服务": [ + "行业好公司" + ], + "网鱼(上海)": [ + "行业好公司" + ], + "星环": [ + "行业好公司" + ], + "维恩": [ + "行业好公司" + ], + "心医国际(西安)": [ + "行业好公司" + ], + "心医": [ + "行业好公司" + ], + "钛核互动(北京)": [ + "行业好公司" + ], + "网飞netflix": [ + "综合大厂" + ], + "来福车lyft , inc": [ + "综合大厂" + ], + "观澜-丁香园": [ + "行业好公司" + ], + "dxy": [ + "行业好公司" + ], + "观澜-丁香园(杭州)": [ + "行业好公司" + ], + "易宝广告器材": [ + "行业好公司" + ], + "易宝广告器材(广州市)": [ + "行业好公司" + ], + "youxigu": [ + "行业好公司" + ], + "beijing manyougu lnformation": [ + "行业好公司" + ], + "霜狼(上海)": [ + "行业好公司" + ], + "世纪华通汽车部件": [ + "行业好公司" + ], + "世纪华通汽车部件(武汉)": [ + "行业好公司" + ], + "beijing jg game": [ + "行业好公司" + ], + "雪糕": [ + "行业好公司" + ], + "易趣ebay": [ + "综合大厂" + ], + "大搜车": [ + "行业好公司" + ], + "beijing chuang zhi you pin": [ + "行业好公司" + ], + "易初明通工程机械维修服务": [ + "行业好公司" + ], + "易初明通工程机械维修服务(四川)": [ + "行业好公司" + ], + "zillow": [ + "综合大厂" + ], + "域起网络": [ + "行业好公司" + ], + "上海域起": [ + "行业好公司" + ], + "再惠(上海)": [ + "行业好公司" + ], + "京东方专用显示": [ + "行业头部" + ], + "龙创悦动网络科技": [ + "行业好公司" + ], + "商米(上海)": [ + "行业好公司" + ], + "乐道互动(天津)": [ + "行业好公司" + ], + "zhejiang ledao network": [ + "行业好公司" + ], + "乐道互动": [ + "行业好公司" + ], + "zqgame": [ + "行业好公司" + ], + "中青宝互动(深圳)": [ + "行业好公司" + ], + "宝德": [ + "行业好公司" + ], + "中青宝互动": [ + "行业好公司" + ], + "维塔士电脑软件": [ + "行业好公司" + ], + "sparx": [ + "行业好公司" + ], + "维塔士电脑软件(成都)": [ + "行业好公司" + ], + "乙辰科技": [ + "行业好公司" + ], + "guangzhou caidan information": [ + "行业好公司" + ], + "shanghai zongyou network": [ + "行业好公司" + ], + "DeNA": [ + "行业好公司" + ], + "iriam": [ + "行业好公司" + ], + "天马时空": [ + "行业好公司" + ], + "心动文化传媒(江苏)": [ + "行业头部" + ], + "心动文化传媒": [ + "行业头部" + ], + "the stars group": [ + "综合大厂" + ], + "完美世界(成都)": [ + "行业好公司" + ], + "大蓝": [ + "行业好公司" + ], + "维宏电子": [ + "行业好公司" + ], + "冰川(郑州)": [ + "行业好公司" + ], + "北京银汉": [ + "行业好公司" + ], + "神渠数码": [ + "行业好公司" + ], + "ique china": [ + "行业好公司" + ], + "神游中国": [ + "行业好公司" + ], + "兆信": [ + "行业好公司" + ], + "mail.ru": [ + "综合大厂" + ], + "脸书": [ + "综合大厂" + ], + "facebook": [ + "综合大厂" + ], + "乐元互动": [ + "行业好公司" + ], + "创思信息": [ + "行业好公司" + ], + "星辉天拓互动娱乐": [ + "行业好公司" + ], + "星辉天拓互动娱乐(广东)": [ + "行业好公司" + ], + "趣加游戏": [ + "行业头部" + ], + "华夏芯通用处理器(北京)": [ + "行业好公司" + ], + "华夏芯通用处理器": [ + "行业好公司" + ], + "通用处理器": [ + "行业好公司" + ], + "overstock": [ + "综合大厂" + ], + "数龙信息": [ + "行业好公司" + ], + "创景": [ + "行业好公司" + ], + "arm": [ + "行业头部多元化" + ], + "推特twitter": [ + "综合大厂" + ], + "天梯网络": [ + "行业好公司" + ], + "基分文化传播(上海)": [ + "行业好公司" + ], + "绝地": [ + "行业好公司" + ], + "hangzhou jedi": [ + "行业好公司" + ], + "爱数软件": [ + "行业好公司" + ], + "wg": [ + "行业头部" + ], + "wargaming chicago baltimore": [ + "行业头部" + ], + "战争公司": [ + "行业头部" + ], + "云畅游戏": [ + "行业好公司" + ], + "云畅(济南)": [ + "行业好公司" + ], + "工作日workday": [ + "综合大厂" + ], + "中兴电子科技": [ + "行业好公司" + ], + "中兴电子科技(福建)": [ + "行业好公司" + ], + "视源": [ + "行业好公司" + ], + "那朵花文化传播": [ + "行业好公司" + ], + "邹城市祥生房地产开发": [ + "行业好公司" + ], + "骏梦科技": [ + "行业好公司" + ], + "骏梦天空": [ + "行业好公司" + ], + "蓝港在线": [ + "行业好公司" + ], + "langang online beijing": [ + "行业好公司" + ], + "千橡": [ + "行业好公司" + ], + "人人网": [ + "行业好公司" + ], + "值得买": [ + "行业好公司" + ], + "苏州叠纸": [ + "行业头部" + ], + "龙渊网络": [ + "行业好公司" + ], + "龙渊网": [ + "行业好公司" + ], + "龙渊(成都)": [ + "行业好公司" + ], + "普强": [ + "行业好公司" + ], + "雪宝": [ + "行业好公司" + ], + "idreamsky": [ + "行业好公司" + ], + "泰康之家投资": [ + "行业好公司" + ], + "泰康之家投资(北京)": [ + "行业好公司" + ], + "阳光城物业服务": [ + "行业好公司" + ], + "阳光城物业服务(福建)": [ + "行业好公司" + ], + "创维rgb电子": [ + "行业好公司" + ], + "创维rgb电子(深圳)": [ + "行业好公司" + ], + "邦奇": [ + "行业好公司" + ], + "天凡": [ + "行业好公司" + ], + "奥多比系统adobe": [ + "综合大厂" + ], + "无端": [ + "行业好公司" + ], + "sabre": [ + "综合大厂" + ], + "恺英网络": [ + "行业好公司" + ], + "迅升": [ + "行业好公司" + ], + "朴朴电商": [ + "行业好公司" + ], + "快仓": [ + "行业好公司" + ], + "快仓智能(上海)": [ + "行业好公司" + ], + "通联": [ + "行业好公司" + ], + "索尼互动娱乐": [ + "行业头部" + ], + "索尼公司": [ + "行业头部" + ], + "光环": [ + "行业好公司" + ], + "飞鱼国际": [ + "行业好公司" + ], + "feiyu international compan": [ + "行业好公司" + ], + "联众互动(北京)": [ + "行业好公司" + ], + "联众大厅": [ + "行业好公司" + ], + "ourgame": [ + "行业好公司" + ], + "游讯在线": [ + "行业好公司" + ], + "华样人生体育文化": [ + "行业好公司" + ], + "联众世界": [ + "行业好公司" + ], + "乐天lotte": [ + "综合大厂" + ], + "groupon": [ + "综合大厂" + ], + "世嘉sega": [ + "行业头部" + ], + "灿和兄弟(深圳)": [ + "行业好公司" + ], + "淘米(上海)": [ + "行业好公司" + ], + "欣圣": [ + "行业好公司" + ], + "淘米网": [ + "行业好公司" + ], + "中手游(深圳市)": [ + "行业好公司" + ], + "创成": [ + "行业好公司" + ], + "郡阳": [ + "行业好公司" + ], + "梦逐": [ + "行业好公司" + ], + "广敞": [ + "行业好公司" + ], + "华孚": [ + "行业好公司" + ], + "紫翊": [ + "行业好公司" + ], + "亿歌": [ + "行业好公司" + ], + "suzhou gamefriend network": [ + "行业好公司" + ], + "suzhou juhe network": [ + "行业好公司" + ], + "聚合传奇": [ + "行业好公司" + ], + "聚和": [ + "行业好公司" + ], + "幻塔网络": [ + "行业好公司" + ], + "游道易网络文化": [ + "行业好公司" + ], + "beijing yodo 1 network culture": [ + "行业好公司" + ], + "游道易网络": [ + "行业好公司" + ], + "力新": [ + "行业好公司" + ], + "微护照weipass": [ + "行业好公司" + ], + "wayfair": [ + "综合大厂" + ], + "pubg": [ + "行业头部" + ], + "派酷": [ + "行业好公司" + ], + "shanghai shengku network": [ + "行业好公司" + ], + "伽马新媒文化传播": [ + "行业好公司" + ], + "菲鹏": [ + "行业好公司" + ], + "yandex": [ + "综合大厂" + ], + "多益(广州)": [ + "行业好公司" + ], + "黑帆": [ + "行业好公司" + ], + "狸猫": [ + "行业好公司" + ], + "安维尔(上海)": [ + "行业好公司" + ], + "竞技世界(成都)": [ + "行业好公司" + ], + "jjworld beijing network": [ + "行业好公司" + ], + "jjworld": [ + "行业好公司" + ], + "zenimax media": [ + "行业头部" + ], + "贝塞斯达": [ + "行业头部" + ], + "友塔游戏": [ + "行业好公司" + ], + "guangzhou qingtianzhu network": [ + "行业好公司" + ], + "擎天柱(广州市)": [ + "行业好公司" + ], + "星河时代": [ + "行业好公司" + ], + "数说故事(广州)": [ + "行业好公司" + ], + "shanghai leshu information": [ + "行业好公司" + ], + "游苑": [ + "行业好公司" + ], + "灵擎": [ + "行业好公司" + ], + "逗游": [ + "行业好公司" + ], + "亲婴": [ + "行业好公司" + ], + "趣抓": [ + "行业好公司" + ], + "337平台": [ + "行业好公司" + ], + "行云": [ + "行业好公司" + ], + "cn elex": [ + "行业好公司" + ], + "elex wireless": [ + "行业好公司" + ], + "浮云": [ + "行业好公司" + ], + "shenzhen bshark limited": [ + "行业好公司" + ], + "创思教育(东莞市)": [ + "行业好公司" + ], + "创思教育": [ + "行业好公司" + ], + "骏伯网络": [ + "行业好公司" + ], + "游卡": [ + "行业好公司" + ], + "游族网络": [ + "行业好公司" + ], + "游族(南京)": [ + "行业好公司" + ], + "广州要玩娱乐": [ + "行业好公司" + ], + "要玩娱乐(广州)": [ + "行业好公司" + ], + "东方融资网": [ + "行业好公司" + ], + "点点互动(北京)": [ + "行业好公司" + ], + "funplusgame": [ + "行业好公司" + ], + "grubhub": [ + "综合大厂" + ], + "闪殿": [ + "行业好公司" + ], + "popup union": [ + "行业好公司" + ], + "抱一": [ + "行业好公司" + ], + "stitch fix": [ + "综合大厂" + ], + "宝开游戏": [ + "行业头部" + ], + "维瑟罗游戏": [ + "行业头部" + ], + "锦游": [ + "行业好公司" + ], + "佰钧成(苏州)": [ + "行业好公司" + ], + "shanghai 37 wan network": [ + "行业好公司" + ], + "37. com": [ + "行业好公司" + ], + "星众": [ + "行业好公司" + ], + "shanghai hard communication network": [ + "行业好公司" + ], + "37 wan": [ + "行业好公司" + ], + "硬通": [ + "行业好公司" + ], + "冠航": [ + "行业好公司" + ], + "尚轩": [ + "行业好公司" + ], + "三七": [ + "行业好公司" + ], + "尚趣玩": [ + "行业好公司" + ], + "黑湖": [ + "行业好公司" + ], + "星河产业投资运营": [ + "行业好公司" + ], + "星河产业投资运营(深圳市)": [ + "行业好公司" + ], + "asos": [ + "综合大厂" + ], + "微盟新媒体": [ + "行业头部" + ], + "td": [ + "行业好公司" + ], + "育碧电脑软件": [ + "行业头部" + ], + "向日葵娱乐互动": [ + "行业头部" + ], + "育碧娱乐": [ + "行业头部" + ], + "育碧电脑": [ + "行业头部" + ], + "安畅网络": [ + "行业好公司" + ], + "银星": [ + "行业好公司" + ], + "cndw": [ + "行业好公司" + ], + "dovo technology.inc": [ + "行业好公司" + ], + "天象": [ + "行业好公司" + ], + "天象互动": [ + "行业好公司" + ], + "乐牛软件": [ + "行业好公司" + ], + "亿客行咨询服务": [ + "综合大厂" + ], + "亿客行咨询服务(北京)": [ + "综合大厂" + ], + "亿客行": [ + "综合大厂" + ], + "expedia": [ + "综合大厂" + ] +} \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_corp.json b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_corp.json new file mode 100644 index 00000000..e2a89a46 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_corp.json @@ -0,0 +1,911 @@ +[ + "google assistant investments", + "amazon", + "dingtalk china information", + "zhejiang alibaba communication", + "yunos", + "腾讯云", + "新浪新闻", + "网邻通", + "蚂蚁集团", + "大疆", + "恒生股份", + "sf express", + "智者天下", + "shanghai hema network", + "papayamobile", + "lexinfintech", + "industrial consumer finance", + "360搜索", + "世纪光速", + "迅雷区块链", + "赛盒科技", + "齐力电子商务", + "平安养老险", + "平安证券", + "平安好贷", + "五八新服", + "呯嘭智能", + "阿里妈妈", + "mdt", + "tencent", + "weibo", + "浪潮软件", + "阿里巴巴广告", + "mashang consumer finance", + "维沃", + "hqg , limited", + "moodys", + "搜狐支付", + "百度秀", + "新浪服务", + "零售通", + "同城艺龙", + "虾米音乐", + "贝壳集团", + "小米有品", + "滴滴自动驾驶", + "图记", + "阿里影业", + "卓联软件", + "zhejiang tmall", + "谷歌中国", + "hithink flush", + "时装科技", + "程会玩国际旅行社", + "amazon china holding limited", + "中信消金", + "当当比特物流", + "新浪新媒体咨询", + "tongcheng network", + "金山在线", + "shopping cart", + "犀互动", + "五八", + "bilibili", + "阿里星球", + "滴滴金科服务", + "美团", + "哈啰出行", + "face", + "平安健康", + "招商银行", + "连亚", + "盒马网络", + "b站", + "华为机器", + "shanghai mdt infotech", + "ping an healthkonnect", + "beijing home link real estate broker", + "花海仓", + "beijing jingdong shangke information", + "微影智能", + "酷狗游戏", + "health.pingan.com", + "众安", + "陌陌", + "海康威视数字", + "同程网", + "艾丁金融", + "知乎", + " lu", + "国际商业机器公司", + "捷信消费金融", + "恒生利融", + "china merchants bank", + "企鹅电竞", + "捷信信驰", + "360智能家居", + "小桔车服", + "homecredit", + "皮皮虾", + "畅游", + "聚爱聊", + "suning.com", + "途牛旅游网", + "花呗", + "盈店通", + "sina", + "阿里巴巴音乐", + "华为技术有限公司", + "国付宝", + "shanghai lianshang network", + "oppo", + "华为投资控股", + "beijing sohu new media information", + "times square", + "菜鸟物流", + "lingxing", + "jd digits", + "同程旅游", + "分期乐", + "火锅视频", + "天天快报", + "猎豹移动", + "五八人力资源", + "宝宝树", + "顺丰科技", + "上海西翠", + "诗程文化传播", + "dewu", + "领星网络", + "aliexpress", + "贝塔通科技", + "链家", + "花小猪", + "趣输入", + "搜狐新媒体", + "一淘", + "56", + "qq阅读", + "青桔单车", + "iflytek", + "每日优鲜电子商务", + "腾讯觅影", + "微医", + "松果网", + "paypal", + "递瑞供应链管理", + "领星", + "qunar", + "三快", + "lu.com", + "携程旅行网", + "新潮传媒", + "链家经纪", + "景域文化", + "阿里健康", + "pingpeng", + "聚划算", + "零机科技", + "街兔电单车", + "快乐购", + "华为数字能源", + "搜狐", + "陆家嘴国际金融资产交易市场", + "nanjing tuniu", + "亚马逊", + "苏宁易购", + "携程旅游", + "苏宁金服", + "babytree", + "悟空问答", + "同花顺", + "eastmoney", + "浪潮信息", + "滴滴智慧交通", + "beijing ruixun lingtong", + "平安综合金融服务", + "爱奇艺", + "小米集团", + "华为云", + "微店", + "恒生集团", + "网易有道", + "boccfc", + "世纪思速科技", + "海康消防", + "beijing xiaomi", + "众安科技", + "五八同城", + "霆程汽车租赁", + "云卖分销", + "乐信集团", + "蚂蚁", + "舶乐蜜电子商务", + "支付宝中国", + "砖块消消消", + "vivo", + "阿里互娱", + "中国平安", + "lingxihudong", + "百度网盘", + "1号店", + "字节跳动", + "京东科技", + "驴妈妈兴旅国际旅行社", + "hangzhou alibaba music", + "xunlei", + "灵犀互动娱乐", + "快手", + "youtube", + "连尚慧眼", + "腾讯体育", + "爱商在线", + "酷我音乐", + "金融壹账通", + "搜狗服务", + "banma information", + "a站", + "罗汉堂", + "薇仕网络", + "搜狐新闻", + "贝宝", + "薇仕", + "口袋时尚科技", + "穆迪咨询", + "新狐投资管理", + "hikvision", + "alimama china holding limited", + "超聚变数字", + "腾讯视频", + "恒生电子", + "百度游戏", + "绿洲", + "木瓜移动", + "红袖添香", + "店匠科技", + "易贝", + "一淘网", + "博览群书", + "唯品会", + "lazglobal", + "amap", + "芒果网", + "口碑", + "海康慧影", + "腾讯音乐娱乐", + "网易严选", + "微信", + "shenzhen lexin holding", + "hangzhou pingpeng intelligent", + "连尚网络", + "海思", + "isunor", + "蝉翼", + "阿里游戏", + "广州优视", + "优视", + "腾讯征信", + "识装", + "finserve.pingan.com", + "papaya", + "阅文", + "平安健康保险", + "考拉海购", + "网易印象", + "wifi万能钥匙", + "新浪互联服务", + "亚马逊云科技", + "迅雷看看", + "华为朗新科技", + "adyen hong kong limited", + "谷歌", + "得物", + "网心", + "cainiao network", + "沐瞳", + "linkedln", + "hundsun", + "阿里旅行", + "珍爱网", + "阿里巴巴通信", + "金山奇剑", + "tongtool", + "华为安捷信电气", + "快乐时代", + "平安寿险", + "微博", + "微跳蚤", + "oppo移动通信", + "毒", + "alimama", + "shoplazza", + "shenzhen dianjiang science and", + "众鸣世科", + "平安金融", + "狐友", + "维沃移动通信", + "tobosoft", + "齐力电商", + "ali", + "诚信通", + "行吟", + "跳舞的线", + "橙心优选", + "众安健康", + "亚马逊中国投资", + "德絮投资管理中心合伙", + "招联消费金融", + "百度文学", + "芝麻信用", + "阿里零售通", + "时装", + "花样直播", + "sogou", + "uc", + "海思半导体", + "zhongan online p&c insurance", + "新浪数字", + "驴妈妈旅游网", + "华为数字能源技术", + "京东数科", + "oracle", + "xiaomi", + "nyse", + "阳光消费金融", + "天天动听", + "大众点评", + "上海瑞家", + "trustpass", + "hundsun technologies", + "美团小贷", + "ebay", + "通途", + "tcl", + "鸿蒙", + "酷狗计算机", + "品诺保险", + "capitalg", + "康盛创想", + "58同城", + "闲鱼", + "微软", + "吉易付科技", + "理财通", + "ctrip", + "yy", + "华为数字", + "kingsoft", + "孙宁金融", + "房江湖经纪", + "youku", + "ant financial services group", + "盒马", + "sensetime", + "伊千网络", + "小豹ai翻译棒", + "shopify", + "前海微众银行", + "qd", + "gmail", + "pingpong", + "alibaba group holding limited", + "捷信时空电子商务", + "orientsec", + "乔戈里管理咨询", + "ant", + "锐讯灵通", + "兴业消费金融", + "京东叁佰陆拾度电子商务", + "新浪", + "优酷土豆", + "海康机器人", + "美团单车", + "海康存储", + "领英", + "阿里全球速卖通", + "美菜网", + "京邦达", + "安居客", + "阿里体育", + "相互宝", + "cloudwalk", + "百度智能云", + "贝壳", + "酷狗", + "sunshine consumer finance", + "掌宜", + "奇酷网", + "核新同花顺", + "阿里巴巴影业", + "节创", + "学而思网校", + "速途", + "途牛", + "阿里云计算", + "beijing sensetime", + "alibaba cloud", + "西瓜视频", + "美团优选", + "orient securities limited", + "华为朗新", + "店匠", + "shanghai weishi network", + "友盟", + "飞猪旅行", + "滴滴出行", + "alipay", + "mogu", + "dangdang", + "大麦网", + "汉军智能系统", + "百度地图", + "货车帮", + "狐狸金服", + "众安在线保险经纪", + "华为通信", + "新浪支付", + "zhihu", + "alibaba cloud computing", + "沙发视频", + "金山软件", + "ping an good doctor", + "携程", + "脉脉", + "youku information beijing", + "zhongan", + "艾丁软件", + "乒乓智能", + "蘑菇街", + "taobao", + "华为技术服务", + "仕承文化传播", + "安捷信", + "狐狸互联网小额贷款", + "节点迅捷", + "中国银行", + "搜镇", + "众安在线", + "dingtalk", + "云从科技", + "beijing jingbangda trade", + "moody s", + "滚动的天空", + "yl.pingan.com", + "奇虎", + "alihealth", + "芒果tv", + "lufax", + "美团打车", + "小桔", + "贝壳找房网", + "小米科技", + "vips", + "kindle", + "亚马逊服务", + "citic consumer finance", + "微众", + "搜狗智慧互联网医院", + "盒马鲜生", + "life.pinan.com", + "ph.com.cn", + "银联", + "cmbchina", + "平安金融科技咨询", + "微保", + "甲骨文中国", + "飞书", + "koubei shanghai information", + "企鹅辅导", + "斑马", + "平安租赁", + "云从", + "马上消费", + "hangzhou ali baba advertising", + "金山", + "赛盒", + "科大讯飞", + "金星创业投资", + "平安国际融资租赁", + "360你财富", + "西山居", + "shenzhen qianhai fourth paradigm data", + "海思光电子", + "猎户星空", + "网易公司", + "浪潮", + "粒粒橙传媒", + "招联金融", + "100. me", + "捷信信驰咨询", + "唯品仓", + "orient", + "趣拿", + "摩拜单车", + "天猫精灵", + "菜鸟", + "豹小贩", + "去哪儿", + "米家", + "哈啰单车", + "搜狐体育", + "shopify payments usa", + "高德软件", + "讯联智付", + "乐信", + "唯你搭", + "第四范式", + "菜鸟网络", + "同程", + "yy语音", + "浪潮云", + "东财", + "淘宝", + "寻梦", + "citic securities limited", + "青橙之旅", + "阿里巴巴", + "番茄小说", + "上海亿贝", + "inspur", + "babytree inc", + "海康智慧产业股权投资基金合伙合伙", + "adyen", + "艺龙", + "蚂蚁金服", + "平安金服", + "百度百科", + "unionpay", + "当当", + "阅文集团", + "东方财富", + "东方证券", + "哈罗单车", + "优酷", + "海康", + "alipay china network", + "网商银行", + "钧正", + "property.pingan.com", + "豹咖啡", + "网易", + "我爱cba", + "theduapp", + "360", + "金山数字娱乐", + "新浪阅读", + "alibabagames", + "顺丰", + "支点商贸", + "同程旅行", + "citic securities", + "ele.com", + "tal", + "fresh hema", + "运满满", + "贝壳网", + "酷狗音乐", + "鲜城", + "360健康", + "浪潮世科", + "迅雷网络", + "哔哩哔哩", + "华为电动", + "淘友天下", + "华多网络", + "xunlei networking technologies", + "云杉", + "当当网电子商务", + "津虹网络", + "wedoc cloud hangzhou holdings", + "alisports shanghai", + "旷视金智", + "钉钉中国", + "微影", + "金山快快", + "亿贝", + "wedoc", + "autonavi", + "哈啰助力车", + "google cloud", + "新浪乐居", + "京东股票", + "搜狗智慧远程医疗中心", + "中银消金", + "merchants union consumer finance", + "王者荣耀", + "百度手机", + "美团民宿", + "kaola", + "小屋", + "金山网络", + "来往", + "顺丰速运", + "腾讯课堂", + "百度在线网络", + "美团买菜", + "威视汽车", + "uc mobile", + "来赞达", + "平安健康医疗", + "豹小秘", + "尚网", + "哈勃投资", + " ping an insurance group of china ,", + "小米", + "360好药", + "qq音乐", + "lingxigames", + "faceu激萌", + "搜狗", + "sohu", + "满帮", + "vipshop", + "wishpost", + "金山世游", + "shanghai yibaimi network", + "1688", + "海康汽车", + "顺丰控股", + "华为", + "妙镜vr", + "paybkj.com", + "hellobike", + "豹来电", + "京东", + "驴妈妈", + "momo", + "平安健康险", + "哈勃科技", + "美菜", + "众安在线财产保险", + "海康威视", + "east money information", + "阿里云", + "蝉游记", + "余额宝", + "屋客", + "滴滴", + "shopify international limited", + "百度", + "阿里健康中国", + "阿里通信", + "微梦创科", + "微医云", + "轻颜相机", + "搜易居", + "趣店集团", + "美团云", + "ant group", + "金山云", + "beijing express hand", + "觅觅", + "支付宝", + "滴滴承信科技咨询服务", + "拼多多", + "众安运动", + "乞力电商", + "youcash", + "唯品金融", + "陆金所", + "本地生活", + "sz dji", + "海康智能", + "魔方网聘", + "青藤大学", + "international business machines", + "学而思", + "beijing zhongming century science and", + "猎豹清理大师", + "asinking", + "高德", + "苏宁", + "优酷网", + "艾丁", + "中银消费金融", + "京东健康", + "五八教育", + "pingpongx", + "搜狐时尚", + "阿里广告", + "平安财险", + "中邮消金", + "etao", + "怕怕", + "nyse:cmcm", + "华为培训中心", + "高德地图", + "云狐天下征信", + "大疆创新", + "连尚", + "壹佰米", + "康健公司", + "iqiyi.com", + "360安全云盘", + "馒头直播", + "淘友网", + "东方赢家", + "bank of china", + "微众银行", + "阿里巴巴国际站", + "虾米", + "去哪儿网", + "ctrip travel network shanghai", + "潇湘书院", + "腾讯", + "快乐阳光互动娱乐传媒", + "迅雷", + "weidian", + "滴滴货运", + "ping an puhui enterprise management", + "新浪仓石基金销售", + "搜狐焦点", + "alibaba pictures", + "wps", + "平安", + "lazmall", + "百度开放平台", + "兴业消金", + " 珍爱网", + "京东云", + "小红书", + "1688. com", + "如视智数", + "missfresh", + "pazl.pingan.cn", + "平安集团", + "kugou", + "懂车帝", + "斑马智行", + "浪潮集团", + "netease hangzhou network", + "pagd.net", + "探探", + "chinaliterature", + "amazon亚马逊", + "alphabet", + "当当文创手工艺品电子商务", + "五八邦", + "shenzhen zhenai network information", + "lingshoutong", + "字节", + "lvmama", + "金山办公", + "众安保险", + "时装信息", + "优视科技", + "guangzhou kugou", + "ibm", + "滴滴打车", + "beijing sogou information service", + "megvii", + "健谈哥", + "cloudwalk group", + "蜂联科技", + "冬云", + "京东尚科", + "钢琴块2", + "京东世纪", + "商汤", + "众鸣世纪", + "腾讯音乐", + "迅雷网文化", + "华为云计算技术", + "live.me", + "全球速卖通", + "快的打车", + "hello group inc", + "美丽说", + "suning", + "opengauss", + "lazada", + "tmall", + "acfun", + "当当网", + "中银", + "旷视科技", + "百度钱包", + "淘宝网", + "新浪微博", + "迅雷集团", + "中信消费金融", + "学而思教育", + "平安普惠", + "悟空跨境", + "irobotbox", + "平安产险", + "inspur group", + "世纪卓越快递服务", + "奇虎360", + "webank", + "偶藻", + "唯品支付", + "腾讯云计算", + "众安服务", + "亿之唐", + "beijing 58 information ttechnology", + "平安好医生", + "迅雷之锤", + "旅行小账本", + "芒果游戏", + "新浪传媒", + "旷镜博煊", + "全民k歌", + "滴滴支付", + "北京网心科技", + "挂号网", + "萤石", + "chinavision media group limited", + "猎豹安全大师", + "cmcm", + "趣店", + "蚂蚁财富", + "商汤科技", + "甲骨文", + "百度云", + "百度apollo", + "19 pay", + "stock.pingan.com", + "tiktok", + "alibaba pictures group limited", + "ele", + "考拉", + "天猫", + "腾讯优图", + "起点中文网", + "百度视频", + "shanghai bili bili", + "京东物流", + "ebay marketplaces gmbh", + "alibaba sport", + "wish", + "阿里巴巴中国", + "中国银联", + "alibaba china network", + "china ping an property insurance", + "百度糯米网", + "微软中国", + "一九付", + "4 paradigm", + "叮咚买菜", + "umeng", + "众鸣科技", + "平安财富通", + "google", + "巨量引擎", + "百度贴吧", + "beijing jingdong century information", + "讯飞", + "beijing yunshan information", + "满运软件", + "中邮消费金融", + "饿了么", + "alios", + "腾讯ai实验室", + "第四范式智能", + "瀚星创业投资", + "gradient ventures", + "microsoft", + "哈啰共享汽车", + "乞力电子商务", + "mscf", + "网易影业文化", + "铁友旅游咨询", + "kilimall", + "云企互联投资", + "ping an financial consulting", + "beijng jingdong century commerce", + "高德威智能交通系统", + "中友信息", + "平安医疗健康管理", + "eciticcfc", + "中信证券", + "fliggy", + "电子湾", + "旷云金智", + "微粒贷", + "rsi", + "滴滴云计算", + "google ventures", + "箐程", + "每日优鲜", + "音兔", + "拉扎斯", + "今日头条", + "乐信控股", + "猎豹浏览器", + "细微咨询", + "好未来", + "我乐", + "绘声绘色", + "抖音", + "搜狐新时代", + "飞猪", + "鹅厂", + "贝壳找房", + "tuniu", + "红马传媒文化", + "钉钉", + "马上消费金融", + "360手机", + "平安医保", + "快途", + "alibaba", + "小哈换电", + "大麦", + "恒睿人工智能研究院", + "谷歌资本", + "猎豹", + "穆迪信息" +] diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_sch.json b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_sch.json new file mode 100644 index 00000000..14b8ecfe --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/good_sch.json @@ -0,0 +1,595 @@ +[ +"中国科技大学", +"国防科学技术大学", +"清华大学", +"清华", +"tsinghua university", +"thu", +"北京大学", +"北大", +"beijing university", +"pku", +"中国科学技术大学", +"中国科大", +"中科大", +"china science & technology university", +"ustc", +"复旦大学", +"复旦", +"fudan university", +"fdu", +"中国人民大学", +"人大", +"人民大学", +"renmin university of china", +"ruc", +"上海交通大学", +"上海交大", +"shanghai jiao tong university", +"sjtu", +"南京大学", +"南大", +"nanjing university", +"nju", +"同济大学", +"同济", +"tongji university", +"tongji", +"浙江大学", +"浙大", +"zhejiang university", +"zju", +"南开大学", +"南开", +"nankai university", +"nku", +"北京航空航天大学", +"北航", +"beihang university", +"buaa", +"北京师范大学", +"北师", +"北师大", +"beijing normal university", +"bnu", +"武汉大学", +"武大", +"wuhan university", +"whu", +"西安交通大学", +"西安交大", +"xi’an jiaotong university", +"xjtu", +"天津大学", +"天大", +"university of tianjin", +"tju", +"华中科技大学", +"华中大", +"central china university science and technology", +"hust", +"北京理工大学", +"北理", +"beijing institute of technology", +"bit", +"东南大学", +"东大", +"southeast china university", +"seu", +"中山大学", +"中大", +"zhongshan university", +"sysu", +"华东师范大学", +"华师大", +"east china normal university", +"ecnu", +"哈尔滨工业大学", +"哈工大", +"harbin institute of technology", +"hit", +"厦门大学", +"厦大", +"xiamen university", +"xmu", +"西北工业大学", +"西工大", +"西北工大", +"northwestern polytechnical university", +"npu", +"中南大学", +"中南", +"middle and southern university", +"csu", +"大连理工大学", +"大工", +"institute of technology of dalian", +"dut", +"四川大学", +"川大", +"sichuan university", +"scu", +"电子科技大学", +"电子科大", +"university of electronic science and technology of china", +"uestc", +"华南理工大学", +"华南理工", +"institutes of technology of south china", +"scut", +"吉林大学", +"吉大", +"jilin university", +"jlu", +"湖南大学", +"湖大", +"hunan university", +"hnu", +"重庆大学", +"重大", +"university of chongqing", +"cqu", +"山东大学", +"山大", +"shandong university", +"sdu", +"中国农业大学", +"中国农大", +"china agricultural university", +"cau", +"中国海洋大学", +"中国海大", +"chinese marine university", +"ouc", +"中央民族大学", +"中央民大", +"central university for nationalities", +"muc", +"东北大学", +"东北工学院", +"northeastern university", +"neu 或 nu", +"兰州大学", +"兰大", +"lanzhou university", +"lzu", +"西北农林科技大学", +"西农","西北农大", +"northwest a&f university", +"nwafu", +"中国人民解放军国防科技大学", +"国防科技大学","国防科大", +"national university of defense technology", +"nudt", +"郑州大学", +"郑大", +"zhengzhou university", +"zzu", +"云南大学", +"云大", +"yunnan university", +"ynu", +"新疆大学", +"新大", +"xinjiang university", +"xju", +"北京交通大学", +"北京交大", +"beijing jiaotong university", +"bjtu", +"北京工业大学", +"北工大", +"beijing university of technology", +"bjut", +"北京科技大学", +"北科大","北京科大", +"university of science and technology beijing", +"ustb", +"北京化工大学", +"北化", +"beijing university of chemical technology", +"buct", +"北京邮电大学", +"北邮", +"beijing university of posts and telecommunications", +"beijing university of post and telecommunications", +"beijing university of post and telecommunication", +"beijing university of posts and telecommunication", +"bupt", +"北京林业大学", +"北林", +"beijing forestry university", +"bfu", +"北京协和医学院", +"协和医学院", +"peking union medical college", +"pumc", +"北京中医药大学", +"北中医", +"beijing university of chinese medicine", +"bucm", +"首都师范大学", +"首师大", +"capital normal university", +"cnu", +"北京外国语大学", +"北外", +"beijing foreign studies university", +"bfsu", +"中国传媒大学", +"中媒", +"中传", +"北京广播学院", +"communication university of china", +"cuc", +"中央财经大学", +"中央财大", +"中财大", +"the central university of finance and economics", +"cufe", +"对外经济贸易大学", +"对外经贸大学", +"贸大", +"university of international business and economics", +"uibe", +"外交学院", +"外院", +"china foreign affairs university", +"cfau", +"中国人民公安大学", +"公安大学", +"people's public security university of china", +"ppsuc", +"北京体育大学", +"北体大", +"beijing sport university", +"bsu", +"中央音乐学院", +"央音", +"中央院", +"central conservatory of music", +"ccom", +"中国音乐学院", +"国音", +"中国院", +"china conservatory of music", +"ccmusic", +"中央美术学院", +"央美", +"central academy of fine art", +"cafa", +"中央戏剧学院", +"中戏", +"the central academy of drama", +"tcad", +"中国政法大学", +"法大", +"china university of political science and law", +"zuc", +"cupl", +"中国科学院大学", +"国科大", +"科院大", +"university of chinese academy of sciences", +"ucas", +"福州大学", +"福大", +"university of fuzhou", +"fzu", +"暨南大学", +"暨大", +"ji'nan university", +"jnu", +"广州中医药大学", +"广中医", +"traditional chinese medicine university of guangzhou", +"gucm", +"华南师范大学", +"华南师大", +"south china normal university", +"scnu", +"广西大学", +"西大", +"guangxi university", +"gxu", +"贵州大学", +"贵大", +"guizhou university", +"gzu", +"海南大学", +"海大", +"university of hainan", +"hainu", +"河南大学", +"河大", +"he'nan university", +"henu", +"哈尔滨工程大学", +"哈工程", +"harbin engineering university", +"heu", +"东北农业大学", +"东北农大", +"northeast agricultural university", +"neau", +"东北林业大学", +"东北林大", +"northeast forestry university", +"nefu", +"中国地质大学", +"地大", +"china university of geosciences", +"cug", +"武汉理工大学", +"武汉理工", +"wuhan university of technology", +"wut", +"华中农业大学", +"华中农大", +"华农", +"central china agricultural university", +"hzau", +"华中师范大学", +"华中师大", +"华大", +"central china normal university", +"ccnu", +"中南财经政法大学", +"中南大", +"zhongnan university of economics & law", +"zuel", +"湖南师范大学", +"湖南师大", +"hunan normal university", +"hunnu", +"延边大学", +"延大", +"yanbian university", +"ybu", +"东北师范大学", +"东北师大", +"northeast normal university", +"nenu", +"苏州大学", +"苏大", +"soochow university", +"suda", +"南京航空航天大学", +"南航", +"nanjing aero-space university", +"nuaa", +"南京理工大学", +"南理工", +"institutes of technology of nanjing", +"njust", +"中国矿业大学", +"中国矿大", +"china mining university", +"cumt", +"南京邮电大学", +"南邮", +"nanjing university of posts and telecommunications", +"njupt", +"河海大学", +"河海", +"river sea university", +"hhu", +"江南大学", +"江南大", +"jiangnan university", +"jiangnan", +"南京林业大学", +"南林", +"nanjing forestry university", +"njfu", +"南京信息工程大学", +"南信大", +"nanjing university of information science and technology", +"nuist", +"南京农业大学", +"南农", +"南农大", +"南京农大", +"agricultural university of nanjing", +"njau", +"nau", +"南京中医药大学", +"南中医", +"nanjing university of chinese medicine", +"njucm", +"中国药科大学", +"中国药大", +"china medicine university", +"cpu", +"南京师范大学", +"南京师大", +"南师大", +"南师", +"nanjing normal university", +"nnu", +"南昌大学", +"昌大", +"university of nanchang","nanchang university", +"ncu", +"辽宁大学", +"辽大", +"liaoning university", +"lnu", +"大连海事大学", +"大连海大", +"海大", +"maritime affairs university of dalian", +"dmu", +"内蒙古大学", +"内大", +"university of the inner mongol","inner mongolia university", +"imu", +"宁夏大学", +"宁大", +"ningxia university", +"nxu", +"青海大学", +"清大", +"qinghai university", +"qhu", +"中国石油大学", +"中石大", +"china university of petroleum beijing", +"upc", +"太原理工大学", +"太原理工", +"institutes of technology of taiyuan","taiyuan university of technology", +"tyut", +"西北大学", +"西大", +"northwest university", +"nwu", +"西安电子科技大学", +"西电", +"xidian university", +"xdu", +"长安大学", +"长大", +"chang`an university", +"chu", +"陕西师范大学", +"陕西师大", +"陕师大", +"shaanxi normal university", +"snnu", +"第四军医大学", +"空军军医大学","四医大", +"air force medical university", +"fmmu", +"华东理工大学", +"华理", +"east china university of science", +"ecust", +"东华大学", +"东华", +"donghua university", +"dhu", +"上海海洋大学", +"上海海大", +"shanghai ocean university", +"shou", +"上海中医药大学", +"上中医", +"shanghai university of traditional chinese medicine", +"shutcm", +"上海外国语大学", +"上外", +"shanghai international studies university", +"sisu", +"上海财经大学", +"上海财大", +"上财", +"shanghai university of finance", +"sufe", +"上海体育学院", +"shanghai university of sport", +"上海音乐学院", +"上音", +"shanghai conservatory of music", +"shcm", +"上海大学", +"上大", +"shanghai university", +"第二军医大学", +"海军军医大学", +"naval medical university", +"西南交通大学", +"西南交大", +"southwest jiaotong university", +"swjtu", +"西南石油大学", +"西南石大", +"southwest petroleum university", +"swpu", +"成都理工大学", +"成都理工", +"chengdu university of technology", +"cdut ", +"四川农业大学", +"川农", +"川农大", +"sichuan agricultural university", +"sicau", +"成都中医药大学", +"成中医", +"chengdu university of tcm", +"cdutcm", +"西南财经大学", +"西南财大", +"西财", +"southwestern university of finance and economics", +"swufe", +"天津工业大学", +"天工大", +"tianjin university of technology", +"tgu", +"天津医科大学", +"天津医大", +"medical university of tianjin", +"tmu", +"天津中医药大学", +"天中", +"tianjin university of traditional chinese medicine", +"tutcm", +"华北电力大学", +"华电", +"north china electric power university", +"ncepu", +"河北工业大学", +"河工大", +"hebei university of technology", +"hebut", +"西藏大学", +"藏大", +"tibet university", +"tu", +"石河子大学", +"石大", +"shihezi university", +"中国美术学院", +"中国美院", +"国美", +"china academy of art", +"caa", +"宁波大学", +"宁大", +"ningbo university", +"nbu", +"西南大学", +"西大", +"southwest university", +"swu", +"安徽大学", +"安大", +"university of anhui", +"ahu", +"合肥工业大学", +"合肥工大", +"合工大", +"hefei university of technology", +"hfut", +"中国地质大学", +"地大", +"china university of geosciences", +"cug", +"中国地质大学", +"地大", +"北京地大", +"cugb", +"中国矿业大学", +"中国矿大", +"china university of mining & technology", +"cumtb", +"中国石油大学", +"中石大", +"石大", +"china university of petroleum", +"cup", +"中国石油大学", +"中石大", +"cup"] diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/school.rank.csv b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/school.rank.csv new file mode 100644 index 00000000..4dab9cb9 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/school.rank.csv @@ -0,0 +1,1627 @@ +清华大学,2,985,清华 +清华大学,2,985,Tsinghua University +清华大学,2,985,THU +北京大学,1,985,北大 +北京大学,1,985,Beijing University +北京大学,1,985,PKU +中国科学技术大学,14,985,中国科大 +中国科学技术大学,14,985,中科大 +中国科学技术大学,14,985,China Science & Technology University +中国科学技术大学,14,985,USTC +复旦大学,5,985,复旦 +复旦大学,5,985,Fudan University +复旦大学,5,985,FDU +中国人民大学,15,985,人大 +中国人民大学,15,985,人民大学 +中国人民大学,15,985,Renmin University Of China +中国人民大学,15,985,RUC +上海交通大学,4,985,上海交大 +上海交通大学,4,985,Shanghai Jiao Tong University +上海交通大学,4,985,SJTU +南京大学,11,985,南大 +南京大学,11,985,Nanjing University +南京大学,11,985,NJU +同济大学,17,985,同济 +同济大学,17,985,Tongji University +同济大学,17,985,Tongji +浙江大学,3,985,浙大 +浙江大学,3,985,Zhejiang University +浙江大学,3,985,ZJU +南开大学,27,985,南开 +南开大学,27,985,Nankai University +南开大学,27,985,NKU +北京航空航天大学,21,985,北航 +北京航空航天大学,21,985,Beihang University +北京航空航天大学,21,985,BUAA +北京师范大学,23,985,北师 +北京师范大学,23,985,北师大 +北京师范大学,23,985,Beijing Normal University +北京师范大学,23,985,BNU +武汉大学,6,985,武大 +武汉大学,6,985,Wuhan University +武汉大学,6,985,WHU +西安交通大学,13,985,西安交大 +西安交通大学,13,985,Xi’an Jiaotong University +西安交通大学,13,985,XJTU +天津大学,22,985,天大 +天津大学,22,985,University Of Tianjin +天津大学,22,985,TJU +华中科技大学,8,985,华中大 +华中科技大学,8,985,Central China University Science and Technology +华中科技大学,8,985,HUST +北京理工大学,24,985,北理 +北京理工大学,24,985,Beijing Institute of Technology +北京理工大学,24,985,BIT +东南大学,20,985,东大 +东南大学,20,985,Southeast China University +东南大学,20,985,SEU +中山大学,9,985,中大 +中山大学,9,985,Zhongshan University +中山大学,9,985,SYSU +华东师范大学,30,985,华师大 +华东师范大学,30,985,East China Normal University +华东师范大学,30,985,ECNU +哈尔滨工业大学,10,985,哈工大 +哈尔滨工业大学,10,985,Harbin Institute Of Technology +哈尔滨工业大学,10,985,HIT +厦门大学,28,985,厦大 +厦门大学,28,985,Xiamen University +厦门大学,28,985,XMU +西北工业大学,31,985,西工大 +西北工业大学,31,985,西北工大 +西北工业大学,31,985,Northwestern Polytechnical University +西北工业大学,31,985,NPU +中南大学,19,985,中南 +中南大学,19,985,Middle and Southern University +中南大学,19,985,CSU +大连理工大学,26,985,大工 +大连理工大学,26,985,Institute Of Technology Of Dalian +大连理工大学,26,985,DUT +四川大学,7,985,川大 +四川大学,7,985,Sichuan University +四川大学,7,985,SCU +电子科技大学,32,985,电子科大 +电子科技大学,32,985,University of Electronic Science and Technology of China +电子科技大学,32,985,UESTC +华南理工大学,25,985,华南理工 +华南理工大学,25,985,Institutes Of Technology Of South China +华南理工大学,25,985,SCUT +吉林大学,12,985,吉大 +吉林大学,12,985,Jilin University +吉林大学,12,985,JLU +湖南大学,38,985,湖大 +湖南大学,38,985,Hunan University +湖南大学,38,985,HNU +重庆大学,29,985,重大 +重庆大学,29,985,University Of Chongqing +重庆大学,29,985,CQU +山东大学,16,985,山大 +山东大学,16,985,Shandong University +山东大学,16,985,SDU +中国农业大学,37,985,中国农大 +中国农业大学,37,985,China Agricultural University +中国农业大学,37,985,CAU +中国海洋大学,60,985,中国海大 +中国海洋大学,60,985,Chinese Marine University +中国海洋大学,60,985,OUC +中央民族大学,106,985,中央民大 +中央民族大学,106,985,Central University For Nationalities +中央民族大学,106,985,MUC +东北大学,41,985,东北工学院 +东北大学,41,985,Northeastern University +东北大学,41,985,NEU +东北大学,41,985,NU +兰州大学,39,985,兰大 +兰州大学,39,985,Lanzhou University +兰州大学,39,985,LZU +西北农林科技大学,78,985,西农、西北农大 +西北农林科技大学,78,985,Northwest A&F University +西北农林科技大学,78,985,NWAFU +中国人民解放军国防科技大学,89,985,国防科技大学、国防科大、国防科学技术大学 +中国人民解放军国防科技大学,89,985,National University of Defense Technology +中国人民解放军国防科技大学,89,985,NUDT +郑州大学,34,211,郑大 +郑州大学,34,211,Zhengzhou University +郑州大学,34,211,ZZU +云南大学,75,211,云大 +云南大学,75,211,Yunnan University +云南大学,75,211,YNU +新疆大学,114,211,新大 +新疆大学,114,211,Xinjiang University +新疆大学,114,211,XJU +北京交通大学,49,211,北京交大 +北京交通大学,49,211,Beijing Jiaotong University +北京交通大学,49,211,BJTU +北京工业大学,63,211,北工大 +北京工业大学,63,211,Beijing University Of Technology +北京工业大学,63,211,BJUT +北京科技大学,48,211,北科大、北京科大 +北京科技大学,48,211,University Of Science and Technology Beijing +北京科技大学,48,211,USTB +北京化工大学,82,211,北化 +北京化工大学,82,211,Beijing University of Chemical Technology +北京化工大学,82,211,BUCT +北京邮电大学,76,211,北邮 +北京邮电大学,76,211,Beijing University Of Posts and Telecommunications +北京邮电大学,76,211,BUPT +北京林业大学,88,211,北林 +北京林业大学,88,211,Beijing Forestry University +北京林业大学,88,211,BFU +北京协和医学院,,双一流,协和医学院 +北京协和医学院,,双一流,Peking Union Medical College +北京协和医学院,,双一流,PUMC +北京中医药大学,121,211,北中医 +北京中医药大学,121,211,Beijing University Of Chinese Medicine +北京中医药大学,121,211,BUCM +首都师范大学,,双一流,首师大 +首都师范大学,,双一流,Capital Normal University +首都师范大学,,双一流,CNU +北京外国语大学,124,211,北外 +北京外国语大学,124,211,Beijing Foreign Studies University +北京外国语大学,124,211,BFSU +中国传媒大学,96,211,中媒 +中国传媒大学,96,211,中传 +中国传媒大学,96,211,北京广播学院 +中国传媒大学,96,211,Communication University Of China +中国传媒大学,96,211,CUC +中央财经大学,79,211,中央财大 +中央财经大学,79,211,中财大 +中央财经大学,79,211,The Central University Of Finance and Economics +中央财经大学,79,211,CUFE +对外经济贸易大学,99,211,对外经贸大学 +对外经济贸易大学,99,211,贸大 +对外经济贸易大学,99,211,University Of International Business and Economics +对外经济贸易大学,99,211,UIBE +外交学院,,双一流,外院 +外交学院,,双一流,China Foreign Affairs University +外交学院,,双一流,CFAU +中国人民公安大学,,双一流,公安大学 +中国人民公安大学,,双一流,People's Public Security University of China +中国人民公安大学,,双一流,PPSUC +北京体育大学,122,211,北体大 +北京体育大学,122,211,Beijing Sport University +北京体育大学,122,211,BSU +中央音乐学院,103,211,央音 +中央音乐学院,103,211,中央院 +中央音乐学院,103,211,Central Conservatory Of Music +中央音乐学院,103,211,CCOM +中国音乐学院,,双一流,国音 +中国音乐学院,,双一流,中国院 +中国音乐学院,,双一流,China Conservatory of Music +中国音乐学院,,双一流,CCMUSIC +中央美术学院,104,双一流,央美 +中央美术学院,104,双一流,Central Academy of Fine Art +中央美术学院,104,双一流,CAFA +中央戏剧学院,133,双一流,中戏 +中央戏剧学院,133,双一流,The Central Academy Of Drama +中央戏剧学院,133,双一流,TCAD +中国政法大学,90,211,法大 +中国政法大学,90,211,China University Of Political Science and Law +中国政法大学,90,211,ZUC +中国政法大学,90,211,CUPL +中国科学院大学,18,双一流,国科大 +中国科学院大学,18,双一流,科院大 +中国科学院大学,18,双一流,University of Chinese Academy of Sciences +中国科学院大学,18,双一流,UCAS +福州大学,72,211,福大 +福州大学,72,211,University Of Fuzhou +福州大学,72,211,FZU +暨南大学,44,211,暨大 +暨南大学,44,211,Ji'nan University +暨南大学,44,211,JNU +广州中医药大学,,双一流,广中医 +广州中医药大学,,双一流,Traditional Chinese Medicine University Of Guangzhou +广州中医药大学,,双一流,GUCM +华南师范大学,55,211,华南师大 +华南师范大学,55,211,South China Normal University +华南师范大学,55,211,SCNU +广西大学,71,211,广西大 +广西大学,71,211,Guangxi University +广西大学,71,211,GXU +贵州大学,94,211,贵大 +贵州大学,94,211,Guizhou University +贵州大学,94,211,GZU +海南大学,101,211,海大 +海南大学,101,211,University Of Hainan +海南大学,101,211,HAINU +河南大学,85,双一流,河大 +河南大学,85,双一流,He'nan University +河南大学,85,双一流,HENU +哈尔滨工程大学,65,211,哈工程 +哈尔滨工程大学,65,211,Harbin Engineering University +哈尔滨工程大学,65,211,HEU +东北农业大学,98,211,东北农大 +东北农业大学,98,211,Northeast Agricultural University +东北农业大学,98,211,NEAU +东北林业大学,93,211,东北林大 +东北林业大学,93,211,Northeast Forestry University +东北林业大学,93,211,NEFU +中国地质大学,80,211,地大 +中国地质大学,80,211,China University Of Geosciences +中国地质大学,80,211,CUG +武汉理工大学,40,211,武汉理工 +武汉理工大学,40,211,Wuhan University of Technology +武汉理工大学,40,211,WUT +华中农业大学,52,211,华中农大 +华中农业大学,52,211,华农 +华中农业大学,52,211,Central China Agricultural University +华中农业大学,52,211,HZAU +华中师范大学,58,211,华中师大 +华中师范大学,58,211,华大 +华中师范大学,58,211,Central China Normal University +华中师范大学,58,211,CCNU +中南财经政法大学,105,211,中南大 +中南财经政法大学,105,211,Zhongnan University Of Economics & Law +中南财经政法大学,105,211,ZUEL +湖南师范大学,68,211,湖南师大 +湖南师范大学,68,211,Hunan Normal University +湖南师范大学,68,211,HUNNU +延边大学,130,211,延大 +延边大学,130,211,Yanbian University +延边大学,130,211,YBU +东北师范大学,69,211,东北师大 +东北师范大学,69,211,Northeast Normal University +东北师范大学,69,211,NENU +苏州大学,35,211,苏大 +苏州大学,35,211,Soochow University +苏州大学,35,211,SUDA +南京航空航天大学,33,211,南航 +南京航空航天大学,33,211,Nanjing Aero-Space University +南京航空航天大学,33,211,NUAA +南京理工大学,42,211,南理工 +南京理工大学,42,211,Institutes Of Technology Of Nanjing +南京理工大学,42,211,NJUST +中国矿业大学,61,211,中国矿大 +中国矿业大学,61,211,China Mining University +中国矿业大学,61,211,CUMT +南京邮电大学,,双一流,南邮 +南京邮电大学,,双一流,Nanjing University of Posts and Telecommunications +南京邮电大学,,双一流,NJUPT +河海大学,54,211,河海 +河海大学,54,211,River Sea University +河海大学,54,211,HHU +江南大学,57,211,江南大 +江南大学,57,211,Jiangnan University +江南大学,57,211,Jiangnan +南京林业大学,,双一流,南林 +南京林业大学,,双一流,Nanjing Forestry University +南京林业大学,,双一流,NJFU +南京信息工程大学,91,双一流,南信大 +南京信息工程大学,91,双一流,Nanjing University of Information Science and Technology +南京信息工程大学,91,双一流,NUIST +南京农业大学,53,211,南农 +南京农业大学,53,211,南农大 +南京农业大学,53,211,南京农大 +南京农业大学,53,211,Agricultural University Of Nanjing +南京农业大学,53,211,NJAU +南京农业大学,53,211,NAU +南京中医药大学,,双一流,南中医 +南京中医药大学,,双一流,Nanjing University Of Chinese Medicine +南京中医药大学,,双一流,NJUCM +中国药科大学,119,211,中国药大 +中国药科大学,119,211,China Medicine University +中国药科大学,119,211,CPU +南京师范大学,56,211,南京师大 +南京师范大学,56,211,南师大 +南京师范大学,56,211,南师 +南京师范大学,56,211,Nanjing Normal University +南京师范大学,56,211,NNU +南昌大学,47,211,昌大 +南昌大学,47,211,University Of Nanchang、Nanchang University +南昌大学,47,211,NCU +辽宁大学,118,211,辽大 +辽宁大学,118,211,Liaoning University +辽宁大学,118,211,LNU +大连海事大学,111,211,大连海大 +大连海事大学,111,211,Maritime Affairs University Of Dalian +大连海事大学,111,211,DMU +内蒙古大学,116,211,内大 +内蒙古大学,116,211,University Of The Inner Mongol、Inner Mongolia University +内蒙古大学,116,211,IMU +宁夏大学,125,211,Ningxia University +宁夏大学,125,211,NXU +青海大学,129,211,清大 +青海大学,129,211,Qinghai University +青海大学,129,211,QHU +中国石油大学,77,双一流,中石大 +中国石油大学,77,双一流,China University Of Petroleum Beijing +中国石油大学,77,双一流,UPC +太原理工大学,84,211,太原理工 +太原理工大学,84,211,Institutes Of Technology Of Taiyuan、Taiyuan University of Technology +太原理工大学,84,211,TYUT +西北大学,59,211,西北大 +西北大学,59,211,Northwest University +西北大学,59,211,NWU +西安电子科技大学,50,211,西电 +西安电子科技大学,50,211,Xidian University +西安电子科技大学,50,211,XDU +长安大学,83,211,长大 +长安大学,83,211,Chang`an University +长安大学,83,211,CHU +陕西师范大学,67,211,陕西师大 +陕西师范大学,67,211,陕师大 +陕西师范大学,67,211,Shaanxi Normal University +陕西师范大学,67,211,SNNU +第四军医大学,,211,空军军医大学、四医大 +第四军医大学,,211,Air Force Medical University +第四军医大学,,211,FMMU +华东理工大学,45,211,华理 +华东理工大学,45,211,East China University Of Science +华东理工大学,45,211,ECUST +东华大学,74,211,东华 +东华大学,74,211,Donghua University +东华大学,74,211,DHU +上海海洋大学,,双一流,上海海大 +上海海洋大学,,双一流,Shanghai Ocean University +上海海洋大学,,双一流,SHOU +上海中医药大学,,211,上中医 +上海中医药大学,,211,Shanghai University of Traditional Chinese Medicine +上海中医药大学,,211,SHUTCM +上海外国语大学,123,211,上外 +上海外国语大学,123,211,Shanghai International Studies University +上海外国语大学,123,211,SISU +上海财经大学,95,211,上海财大 +上海财经大学,95,211,上财 +上海财经大学,95,211,Shanghai University Of Finance +上海财经大学,95,211,SUFE +上海体育学院,,双一流,Shanghai University Of Sport +上海音乐学院,,双一流,上音 +上海音乐学院,,双一流,Shanghai Conservatory Of Music +上海音乐学院,,双一流,SHCM +上海大学,43,211,上大 +上海大学,43,211,Shanghai University +第二军医大学,,211,海军军医大学 +第二军医大学,,211,Naval Medical University +西南交通大学,36,211,西南交大 +西南交通大学,36,211,Southwest Jiaotong University +西南交通大学,36,211,SWJTU +西南石油大学,,双一流,西南石大 +西南石油大学,,双一流,Southwest Petroleum University +西南石油大学,,双一流,SWPU +成都理工大学,,双一流,成都理工 +成都理工大学,,双一流,Chengdu University Of Technology +成都理工大学,,双一流,CDUT +四川农业大学,113,211,川农 +四川农业大学,113,211,川农大 +四川农业大学,113,211,Sichuan Agricultural University +四川农业大学,113,211,SICAU +成都中医药大学,,双一流,成中医 +成都中医药大学,,双一流,Chengdu University of TCM +成都中医药大学,,双一流,CDUTCM +西南财经大学,97,211,西南财大 +西南财经大学,97,211,西财 +西南财经大学,97,211,Southwestern University Of Finance And Economics +西南财经大学,97,211,SWUFE +天津工业大学,,双一流,天工大 +天津工业大学,,双一流,Tianjin University of Technology +天津工业大学,,双一流,TGU +天津医科大学,107,211,天津医大 +天津医科大学,107,211,Medical University Of Tianjin +天津医科大学,107,211,TMU +天津中医药大学,,双一流,天中 +天津中医药大学,,双一流,Tianjin University of Traditional Chinese Medicine +天津中医药大学,,双一流,TUTCM +华北电力大学,73,211,华电 +华北电力大学,73,211,North China Electric Power University +华北电力大学,73,211,NCEPU +河北工业大学,92,211,河工大 +河北工业大学,92,211,Hebei University of Technology +河北工业大学,92,211,HEBUT +西藏大学,135,211,藏大 +西藏大学,135,211,Tibet University +西藏大学,135,211,TU +石河子大学,117,211,石大 +石河子大学,117,211,Shihezi University +中国美术学院,,双一流,中国美院 +中国美术学院,,双一流,国美 +中国美术学院,,双一流,China Academy of Art +中国美术学院,,双一流,CAA +宁波大学,70,双一流,Ningbo University +宁波大学,70,双一流,NBU +西南大学,46,985,西南大 +西南大学,46,985,Southwest University +西南大学,46,985,SWU +安徽大学,81,211,安大 +安徽大学,81,211,University Of Anhui +安徽大学,81,211,AHU +合肥工业大学,51,211,合肥工大 +合肥工业大学,51,211,合工大 +合肥工业大学,51,211,HeFei University of Technology +合肥工业大学,51,211,HFUT +麻省理工学院,1,海外名校,Massachusetts Institute of Technology +麻省理工学院,1,海外名校,MIT +麻省理工学院,1,海外名校,麻省 +麻省理工学院,1,海外名校,马萨诸塞理工学院 +牛津大学,2,海外名校,University of Oxford +牛津大学,2,海外名校,Oxford +牛津大学,2,海外名校,Oxon +牛津大学,2,海外名校,牛津 +斯坦福大学,3,海外名校,Stanford University +斯坦福大学,3,海外名校,Leland Stanford Junior University +斯坦福大学,3,海外名校,斯坦福 +斯坦福大学,3,海外名校,Stanford +剑桥大学,3,海外名校,University of Cambridge +剑桥大学,3,海外名校,剑桥 +哈佛大学,5,海外名校,Harvard University +哈佛大学,5,海外名校,哈佛 +加州理工学院,6,海外名校,California Institute of Technology +加州理工学院,6,海外名校,Caltech +加州理工学院,6,海外名校,加州理工 +帝国理工学院,,海外名校,Imperial College London +帝国理工学院,,海外名校,帝国理工医学院 +帝国理工学院,,海外名校,Imperial College of Science +帝国理工学院,,海外名校,Technology and Medicine +帝国理工学院,,海外名校,帝国学院 +帝国理工学院,,海外名校,帝国理工 +帝国理工学院,,海外名校,Imperial +帝国理工学院,,海外名校,IC +苏黎世联邦理工学院,8,海外名校,苏黎世理工 +苏黎世联邦理工学院,8,海外名校,ETH +苏黎世联邦理工学院,8,海外名校,Swiss Federal Institute of Technology in Zurich +伦敦大学学院,8,海外名校,UCL +伦敦大学学院,8,海外名校,University College London +芝加哥大学,10,海外名校,University of Chicago +芝加哥大学,10,海外名校,芝大 +芝加哥大学,10,海外名校,UChicago +新加坡国立大学,11,海外名校,National University of Singapore +新加坡国立大学,11,海外名校,NUS +南洋理工大学,12,海外名校,Nanyang Technological University +南洋理工大学,12,海外名校,Singapore +南洋理工大学,12,海外名校,NTU +宾夕法尼亚大学,13,海外名校,University of Pennsylvania +宾夕法尼亚大学,13,海外名校,UPenn +宾夕法尼亚大学,13,海外名校,宾大 +洛桑联邦理工学院,14,海外名校,EPFL +洛桑联邦理工学院,14,海外名校,Swiss federal Institute of Technology in Lausanne +耶鲁大学,14,海外名校,Yale University +耶鲁大学,14,海外名校,耶鲁 +耶鲁大学,14,海外名校,Yale +爱丁堡大学,16,海外名校,The University of Edinburgh +爱丁堡大学,16,海外名校,Edin +爱丁堡大学,16,海外名校,爱大 +哥伦比亚大学,19,海外名校,Columbia University +哥伦比亚大学,19,海外名校,哥大 +哥伦比亚大学,19,海外名校,Columbia University in the City of New York +普林斯顿大学,20,海外名校,Princeton University +普林斯顿大学,20,海外名校,普林斯顿 +康奈尔大学,21,海外名校,Cornell University +康奈尔大学,21,海外名校,Cornell +康奈尔大学,21,海外名校,康奈尔 +香港大学,22,海外名校,The University of Hong Kong +香港大学,22,海外名校,HKU +香港大学,22,海外名校,港大 +东京大学,23,海外名校,The University of Tokyo +东京大学,23,海外名校,東京大学 +东京大学,23,海外名校,UTokyo +密歇根大学安娜堡分校,,海外名校,University of Michigan-Ann Arbor +密歇根大学安娜堡分校,,海外名校,UMich +约翰霍普金斯大学,25,海外名校,Johns Hopkins University +约翰霍普金斯大学,25,海外名校,JHU +约翰霍普金斯大学,25,海外名校,Hopkins +约翰霍普金斯大学,25,海外名校,霍普金斯大学 +多伦多大学,26,海外名校,University of Toronto +多伦多大学,26,海外名校,UofT +多伦多大学,26,海外名校,UToronto +麦吉尔大学,27,海外名校,McGill University +麦吉尔大学,27,海外名校,McGill +澳洲国立大学,,海外名校,The Australian National University +澳洲国立大学,,海外名校,ANU +曼彻斯特大学,27,海外名校,The University of Manchester +曼彻斯特大学,27,海外名校,UoM +京都大学,33,海外名校,Kyoto University +香港科技大学,34,海外名校,The Hong Kong University of Science and Technology +香港科技大学,34,海外名校,HKUST +伦敦大学国王学院,,海外名校,King's College London +伦敦大学国王学院,,海外名校,King's +伦敦大学国王学院,,海外名校,KCL +首尔国立大学,36,海外名校,Seoul National University +首尔国立大学,36,海外名校,SNU +墨尔本大学,37,海外名校,The University of Melbourne +墨尔本大学,37,海外名校,UniMelb +墨尔本大学,37,海外名校,Melb Uni +悉尼大学,38,海外名校,The University of Sydney +悉尼大学,38,海外名校,USYD +悉尼大学,38,海外名校,Sydney U +香港中文大学,39,海外名校,The Chinese University of Hong Kong +香港中文大学,39,海外名校,CUHK +韩国高等科技学院,,海外名校,Korea Advanced Institute of Science And Technology +韩国高等科技学院,,海外名校,KAIST +纽约大学,42,海外名校,New York University +纽约大学,42,海外名校,NYU +新南威尔士大学,43,海外名校,The University of New South Wales +新南威尔士大学,43,海外名校,UNSW +巴黎第九大学,,海外名校,University Paris Dauphine +英属哥伦比亚大学,,海外名校,University of British Columbia +英属哥伦比亚大学,,海外名校,UBC +昆士兰大学,47,海外名校,The University of Queensland +昆士兰大学,47,海外名校,UQ +巴黎理工学院,49,海外名校,Institut Polytechnique de Paris +巴黎理工学院,49,海外名校,IP-Paris +伦敦政治经济学院,49,海外名校,The London School of Economics and Political Science +伦敦政治经济学院,49,海外名校,LSE +伦敦政治经济学院,49,海外名校,London School of Economics +慕尼黑工业大学,,海外名校,Technical University of Munich +杜克大学,52,海外名校,Duke University +卡耐基梅隆大学,,海外名校,Carnegie Mellon University +卡耐基梅隆大学,,海外名校,TU München +卡耐基梅隆大学,,海外名校,TUM +香港城市大学,53,海外名校,City University of Hong Kong +香港城市大学,53,海外名校,CityU +阿姆斯特丹大学,55,海外名校,University of Amsterdam +阿姆斯特丹大学,55,海外名校,UvA +东京工业大学,56,海外名校,Tokyo Institute of Technology +东京工业大学,56,海外名校,Tokyo Tech +代尔夫特理工大学,57,海外名校,Delft University of Technology +莫纳什大学,,海外名校,Monash University +莫纳什大学,,海外名校,Monash +莫纳什大学,,海外名校,蒙纳士 +莫纳什大学,,海外名校,莫纳什 +莫纳什大学,,海外名校,莫大 +布朗大学,60,海外名校,Brown University +布朗大学,60,海外名校,Brown +布朗大学,60,海外名校,布朗 +华威大学,61,海外名校,The University of Warwick +华威大学,61,海外名校,华威 +华威大学,61,海外名校,Warwick +华威大学,61,海外名校,UoW +布里斯托大学,62,海外名校,University of Bristol +布里斯托大学,62,海外名校,布大 +海德堡大学,63,海外名校,Heidelberg University +海德堡大学,63,海外名校,海德堡大学 +慕尼黑大学,64,海外名校,LMU +慕尼黑大学,64,海外名校,University of Munich +马来亚大学,65,海外名校,University of Malaya +马来亚大学,65,海外名校,马大 +香港理工大学,66,海外名校,The Hong Kong Polytechnic University +香港理工大学,66,海外名校,PolyU +香港理工大学,66,海外名校,理大 +香港理工大学,66,海外名校,港理工 +德克萨斯大学奥斯汀分校,,海外名校,University of Texas at Austin +德克萨斯大学奥斯汀分校,,海外名校,得州大学 +德克萨斯大学奥斯汀分校,,海外名校,UT-Austin +国立台湾大学,68,海外名校,National Taiwan University +国立台湾大学,68,海外名校,台大 +布宜诺斯艾利斯大学,69,海外名校,Universidad de Buenos Aires +布宜诺斯艾利斯大学,69,海外名校,UBA +鲁汶大学(荷语),,海外名校,University of Leuven +鲁汶大学(荷语),,海外名校,KU Leuven +苏黎世大学,70,海外名校,University of Zurich +苏黎世大学,70,海外名校,UZH +索邦大学,72,海外名校,Sorbonne University +索邦大学,72,海外名校,索邦 +索邦大学,72,海外名校,Sorbonne +格拉斯哥大学,73,海外名校,University of Glasgow +格拉斯哥大学,73,海外名校,格大 +高丽大学,,海外名校,Korea University +高丽大学,,海外名校,高丽大 +大阪大学,75,海外名校,Osaka University +大阪大学,75,海外名校,阪大 +威斯康辛大学麦迪逊分校,,海外名校,University of Wisconsin-Madison +威斯康辛大学麦迪逊分校,,海外名校,UW-Madison +南安普敦大学,,海外名校,University of Southampton +南安普敦大学,,海外名校,Soton +莫斯科国立大学,,海外名校,Lomonosov Moscow State University +莫斯科国立大学,,海外名校,莫斯科大学 +哥本哈根大学,79,海外名校,University of Copenhagen +哥本哈根大学,79,海外名校,UCPH +延世大学,79,海外名校,Yonsei University +延世大学,79,海外名校,연세대학교 +浦项科技大学,81,海外名校,Pohang University of Science And Technology +浦项科技大学,81,海外名校,POSTECH +杜伦大学,,海外名校,Durham University +杜伦大学,,海外名校,Durham +伊利诺伊大学厄巴纳-香槟分校,,海外名校,University of Illinois at Urbana-Champaign +伊利诺伊大学厄巴纳-香槟分校,,海外名校,UIUC +奥克兰大学,85,海外名校,The University of Auckland +奥克兰大学,85,海外名校,UoA +华盛顿大学,85,海外名校,University of Washington +华盛顿大学,85,海外名校,UWashington +华盛顿大学,85,海外名校,UW +巴黎萨克雷大学,86,海外名校,Université Paris-Saclay +巴黎萨克雷大学,86,海外名校,UPSaclay +巴黎萨克雷大学,86,海外名校,UPS +隆德大学,87,海外名校,Lund University +佐治亚理工学院,88,海外名校,Georgia Institute of Technology +佐治亚理工学院,88,海外名校,Georgia Tech +佐治亚理工学院,88,海外名校,Gatech +佐治亚理工学院,88,海外名校,GT +瑞典皇家理工学院,89,海外名校,KTH Royal Institute of Technology +瑞典皇家理工学院,89,海外名校,皇家理工学院 +瑞典皇家理工学院,89,海外名校,KTH +伯明翰大学,90,海外名校,University of Birmingham +伯明翰大学,90,海外名校,伯大 +伯明翰大学,90,海外名校,UoB +圣安德鲁斯大学,91,海外名校,University of St Andrews +圣安德鲁斯大学,91,海外名校,St Andrews +圣安德鲁斯大学,91,海外名校,St And +圣安德鲁斯大学,91,海外名校,圣安 +利兹大学,92,海外名校,University of Leeds +西澳大学,93,海外名校,The University of Western Australia +西澳大学,93,海外名校,UWA +莱斯大学,94,海外名校,Rice University +莱斯大学,94,海外名校,Rice +谢菲尔德大学,95,海外名校,The University of Sheffield +谢菲尔德大学,95,海外名校,谢菲 +谢菲尔德大学,95,海外名校,谢大 +谢菲尔德大学,95,海外名校,TUoS +宾州州立大学公园分校,,海外名校,Pennsylvania State University +宾州州立大学公园分校,,海外名校,University Park +成均馆大学,97,海外名校,Sungkyunkwan University(SKKU) +成均馆大学,97,海外名校,成均馆大 +成均馆大学,97,海外名校,SKKU +丹麦技术大学,99,海外名校,Technical University of Denmark +丹麦技术大学,99,海外名校,DTU +北卡罗来纳大学教堂山分校,100,海外名校,University of North Carolina at Chapel Hill +北卡罗来纳大学教堂山分校,100,海外名校,UNC +都柏林三一学院,,海外名校,Trinity College Dublin +都柏林三一学院,,海外名校,The University of Dublin +都柏林三一学院,,海外名校,TCD +奥斯陆大学,102,海外名校,University of Oslo +奥斯陆大学,102,海外名校,UiO +奥斯陆大学,102,海外名校,奥大 +诺丁汉大学,103,海外名校,University of Nottingham +诺丁汉大学,103,海外名校,UoN +诺丁汉大学,103,海外名校,诺大 +赫尔辛基大学,104,海外名校,University of Helsinki +赫尔辛基大学,104,海外名校,UH +墨西哥国立自治大学,105,海外名校,Universidad Nacional Autónoma de México +墨西哥国立自治大学,105,海外名校,墨国大 +墨西哥国立自治大学,105,海外名校,UNAM +日内瓦大学,105,海外名校,University of Geneva +日内瓦大学,105,海外名校,UNIGE +圣路易斯华盛顿大学,107,海外名校,Washington University in St. Louis +圣路易斯华盛顿大学,107,海外名校,WashU +圣路易斯华盛顿大学,107,海外名校,WUSTL +阿德雷德大学,,海外名校,The University of Adelaide +阿德雷德大学,,海外名校,阿大 +阿卜杜勒阿齐兹国王大学,109,海外名校,King Abdulaziz University (KAU) +乌得勒支大学,,海外名校,Utrecht University +乌得勒支大学,,海外名校,UU +蒙特利尔大学,111,海外名校,Université de Montréal +蒙特利尔大学,111,海外名校,UdeM +蒙特利尔大学,111,海外名校,蒙大 +阿尔托大学,112,海外名校,Aalto University +阿尔托大学,112,海外名校,Aalto +波士顿大学,112,海外名校,Boston University +波士顿大学,112,海外名校,BU +莱顿大学,112,海外名校,Leiden University +南加州大学,11,海外名校,University of Southern California +南加州大学,11,海外名校,南加州大学 +南加州大学,11,海外名校,南加大 +南加州大学,11,海外名校,USC +普渡大学西拉法叶分校,116,海外名校,Purdue University +普渡大学西拉法叶分校,116,海外名校,普渡大学 +伦敦大学玛丽女王学院,,海外名校,Queen Mary University of London +伦敦大学玛丽女王学院,,海外名校,QMUL +伦敦大学玛丽女王学院,,海外名校,Queen Mary +名古屋大学,118,海外名校,Nagoya University +名古屋大学,118,海外名校,名大 +伯尔尼大学,119,海外名校,University of Bern +伯尔尼大学,119,海外名校,UniBe +俄亥俄州立大学,120,海外名校,The Ohio State University +俄亥俄州立大学,120,海外名校,Ohio State +俄亥俄州立大学,120,海外名校,OSU +查尔姆斯理工大学,121,海外名校,Chalmers University of Technology +查尔姆斯理工大学,121,海外名校,Chalmers +圣保罗大学,121,海外名校,Universidade de São Paulo +圣保罗大学,121,海外名校,USP +圣保罗大学,121,海外名校,圣大 +瓦格宁根大学,,海外名校,Wageningen University & Research +瓦格宁根大学,,海外名校,Wageningen UR +乌普萨拉大学,124,海外名校,Uppsala University +乌普萨拉大学,124,海外名校,乌大 +埃因霍温理工大学,,海外名校,Eindhoven University of Technology +埃因霍温理工大学,,海外名校,TU/e +埃因霍温理工大学,,海外名校,TU Eindhoven +柏林自由大学,127,海外名校,Freie Universitaet Berlin +柏林自由大学,127,海外名校,FU Berlin +柏林洪堡大学,128,海外名校,Humboldt-Universität zu Berlin +柏林洪堡大学,128,海外名校,洪堡大学 +柏林洪堡大学,128,海外名校,柏林大学 +格罗宁根大学,128,海外名校,University of Groningen +格罗宁根大学,128,海外名校,RuG +里昂高等师范学院,,海外名校,École Normale Supérieure de Lyon +里昂高等师范学院,,海外名校,ENS Lyon +兰卡斯特大学,,海外名校,Lancaster University +兰卡斯特大学,,海外名校,兰卡 +悉尼科技大学,133,海外名校,University of Technology Sydney +悉尼科技大学,133,海外名校,UTS +悉尼科技大学,133,海外名校,悉尼科大 +纽卡斯尔大学,134,海外名校,Newcastle University +纽卡斯尔大学,134,海外名校,NCL +纽卡斯尔大学,134,海外名校,纽大 +智利天主大学,,海外名校,Pontificia Universidad Católica de Chile (UC) +卡尔斯鲁厄理工学院,136,海外名校,KIT +卡尔斯鲁厄理工学院,136,海外名校,Karlsruhe Institute of Technology +九州大学,137,海外名校,Kyushu University +九州大学,137,海外名校,九大 +巴塞尔大学,138,海外名校,University of Basel +巴塞尔大学,138,海外名校,Unibasel +麦克马斯特大学,140,海外名校,McMaster University +麦克马斯特大学,140,海外名校,麦马 +根特大学,141,海外名校,Ghent University +根特大学,141,海外名校,UGent +米兰理工大学,142,海外名校,Politecnico di Milano +米兰理工大学,142,海外名校,POLIMI +米兰理工大学,142,海外名校,米理 +米兰理工大学,142,海外名校,米兰理工 +马来西亚博特拉大学,143,海外名校,Universiti Putra Malaysia (UPM) +马来西亚博特拉大学,143,海外名校,UPM +马来西亚国民大学,144,海外名校,Universiti Kebangsaan Malaysia (UKM) +马来西亚国民大学,144,海外名校,UKM +北海道大学,145,海外名校,Hokkaido University +北海道大学,145,海外名校,北大(ほくだい) +马来西亚理科大学,147,海外名校,Universiti Sains Malaysia (USM) +马来西亚理科大学,147,海外名校,USM +马来西亚理科大学,147,海外名校,槟城理大 +斯德哥尔摩大学,148,海外名校,Stockholm University +斯德哥尔摩大学,148,海外名校,SU +埃克塞特大学,149,海外名校,The University of Exeter +埃克塞特大学,149,海外名校,Exon +滑铁卢大学,149,海外名校,University of Waterloo +滑铁卢大学,149,海外名校,Waterloo(UW) +卡迪夫大学,151,海外名校,Cardiff University +卡迪夫大学,151,海外名校,卡大 +维也纳大学,151,海外名校,University of Vienna +维也纳大学,151,海外名校,univie +约克大学(英国),,海外名校,University of York +约克大学(英国),,海外名校,York +罗切斯特大学,,海外名校,University of Rochester +罗切斯特大学,,海外名校,U of R +奥胡斯大学,155,海外名校,Aarhus University +奥胡斯大学,155,海外名校,AU +汉阳大学,156,海外名校,Hanyang University +汉阳大学,156,海外名校,汉阳大 +密歇根州立大学,157,海外名校,Michigan State University +密歇根州立大学,157,海外名校,MSU +马里兰大学学院公园分校,,海外名校,University of Maryland +马里兰大学学院公园分校,,海外名校,College Park +马里兰大学学院公园分校,,海外名校,UMD +马里兰大学学院公园分校,,海外名校,UMCP +柏林工业大学,159,海外名校,Technische Universität Berlin (TU Berlin) +柏林工业大学,159,海外名校,TUB +柏林工业大学,159,海外名校,TU Berlin +埃默里大学,160,海外名校,Emory University +埃默里大学,160,海外名校,Emory +凯斯西储大学,161,海外名校,Case Western Reserve University +凯斯西储大学,161,海外名校,CWRU +凯斯西储大学,161,海外名校,CASE +蒙特雷理工学院,,海外名校,Tecnológico de Monterrey +法赫德国王石油与矿产大学,,海外名校,King Fahd University of Petroleum & Minerals +法赫德国王石油与矿产大学,,海外名校,KFUPM +匹兹堡大学,163,海外名校,University of Pittsburgh +匹兹堡大学,163,海外名校,PITT +匹兹堡大学,163,海外名校,匹大 +亚琛工业大学,165,海外名校,RWTH Aachen University +亚琛工业大学,165,海外名校,RWTH Aachen +亚琛工业大学,165,海外名校,RWTH +博洛尼亚大学,166,海外名校,Alma Mater Studiorum - University of Bologna +博洛尼亚大学,166,海外名校,Unibo +博洛尼亚大学,166,海外名校,博大 +巴斯大学,166,海外名校,University of Bath +德州农工大学,168,海外名校,Texas A&M University +德州农工大学,168,海外名校,TAMU +巴塞罗那大学,168,海外名校,Universitat de Barcelona +西安大略大学,,海外名校,Western University +西安大略大学,,海外名校,韦仕敦大学 +西安大略大学,,海外名校,UWO +罗马第一大学,,海外名校,Sapienza University of Rome +罗马第一大学,,海外名校,罗马一大 +弗莱堡大学,,海外名校,Albert-Ludwigs-Universitaet Freiburg +都柏林大学学院,,海外名校,University College Dublin +都柏林大学学院,,海外名校,UCD +都柏林大学学院,,海外名校,UC Dublin +佛罗里达大学,173,海外名校,University of Florida +佛罗里达大学,173,海外名校,UF +佛罗里达大学,173,海外名校,UFL +国立哈萨克大学,,海外名校,Al-Farabi Kazakh National University +洛桑大学,176,海外名校,University of Lausanne +蒂宾根大学,177,海外名校,Eberhard Karls Universität Tübingen +印度理工学院孟买分校,,海外名校,Indian Institute of Technology Bombay +印度理工学院孟买分校,,海外名校,IITB +伊拉斯姆斯大学,,海外名校,Erasmus University Rotterdam +国立清华大学,180,海外名校,National Tsing Hua University +维也纳技术大学,,海外名校,Technische Universität Wien +哥德堡大学,180,海外名校,University of Gothenburg +哈里发大学,,海外名校,Khalifa University +智利大学,183,海外名校,Universidad de Chile +印度理工学院德里分校,,海外名校,Indian Institute of Technology Delhi +印度理工学院德里分校,,海外名校,IITD +印度科学学院,,海外名校,Indian Institute of Science +明尼苏达大学双城分校,186,海外名校,University of Minnesota Twin Cities +鲁汶大学(法语),,海外名校,Université catholique de Louvain +鲁汶大学(法语),,海外名校,UCLouvain +利物浦大学,189,海外名校,University of Liverpool +特文特大学,,海外名校,University of Twente +达特茅斯学院,191,海外名校,Dartmouth College +马来西亚理工大学,,海外名校,Universiti Teknologi Malaysia +卧龙岗大学,193,海外名校,University of Wollongong +科廷大学,194,海外名校,Curtin University +德累斯顿工业大学,194,海外名校,Technische Universität Dresden +奥塔戈大学,,海外名校,University of Otago +纽卡斯尔大学(澳洲),,海外名校,The University of Newcastle +纽卡斯尔大学(澳洲),,海外名校,Australia +纽卡斯尔大学(澳洲),,海外名校,UON +耶路撒冷希伯来大学,198,海外名校,The Hebrew University of Jerusalem +卑尔根大学,199,海外名校,University of Bergen +麦考瑞大学,200,海外名校,Macquarie University +加州大学伯克利分校,32,海外名校,"University of California, Berkeley" +加州大学伯克利分校,32,海外名校,UC Berkeley +加州大学伯克利分校,32,海外名校,Cal +加州大学圣地亚哥分校,48,海外名校,"University of California, San Diego" +加州大学圣地亚哥分校,48,海外名校,UCSD +加州大学圣地亚哥分校,48,海外名校,UC San Diego +加州大学戴维斯分校,138,海外名校,"University of California, Davis" +加州大学戴维斯分校,138,海外名校,UC Davis +加州大学圣塔芭芭拉分校,146,海外名校,"University of California, Santa Barbara" +加州大学圣塔芭芭拉分校,146,海外名校,UCSB +加州大学圣塔芭芭拉分校,146,海外名校,UC Santa Barbara +上海体育学院,,双一流,SUS +密歇根大学-安娜堡,23,海外名校,University of Michigan - Ann Arbor +伦敦国王学院,35,海外名校,King’s College London +加州大学洛杉矶分校,40,海外名校,"University of California, Los Angeles" +韩国科学技术院,41,海外名校,KAIST - Korea Advanced Institute of Science & Technology +巴黎文理研究大学,44,海外名校,PSL University +德克萨斯州大学奥斯汀分校,67,海外名校,The University of Texas at Austin +威斯康星大学-麦迪逊,75,海外名校,University of Wisconsin - Madison +宾夕法尼亚州立大学,96,海外名校,Penn State (Main campus) +里昂高等师范学校,130,海外名校,Ecole Normale Superieure - Lyon +智利天主教大学,135,海外名校,Pontifical Catholic University of Chile +约克大学,494,海外名校,York University +马里兰大学帕克分校,158,海外名校,"University of Maryland, College Park" +蒙特雷技术学院,161,海外名校,Tecnologico de Monterrey +天主教鲁汶大学(法语区),188,海外名校,Université Catholique de Louvain +澳大利亚纽卡斯尔大学,197,海外名校,"The University of Newcastle, Australia" +庆应义塾大学,201,海外名校,Keio University +雷丁大学,202,海外名校,University of Reading +早稻田大学,203,海外名校,Waseda University +哥廷根大学,204,海外名校,University of Göttingen +阿伯丁大学,205,海外名校,University of Aberdeen +墨尔本皇家理工大学,206,海外名校,RMIT University +马德里自治大学,207,海外名校,Autonomous University of Madrid +布鲁塞尔自由大学,207,海外名校,Universite libre de Bruxelles +阿姆斯特丹自由大学,209,海外名校,Vrije Universiteit Amsterdam +巴塞罗那自治大学,209,海外名校,Autonomous University of Barcelona +蔚山国立科学技术研究所,212,海外名校,Ulsan National Institute of Science & Technology +昆士兰科技大学,213,海外名校,Queensland University of Technology +汉堡大学,214,海外名校,Universität Hamburg +朱拉隆功大学,215,海外名校,Chulalongkorn University +亚利桑那州立大学,216,海外名校,Arizona State University +贝尔法斯特女王大学,216,海外名校,Queen’s University Belfast +范德堡大学,218,海外名校,Vanderbilt University +坎皮纳斯州立大学,219,海外名校,State University of Campinas +拉德堡德大学,220,海外名校,Radboud University +布鲁塞尔大学,221,海外名校,Vrije Universiteit Brussel +圣母大学,701,海外名校,Notre Dame University-Louaize NDU +马德里康普顿斯大学,223,海外名校,Complutense University of Madrid +卡塔尔大学,224,海外名校,Qatar University +波恩大学,226,海外名校,Rheinische Friedrich-Wilhelms-Universität Bonn +开普敦大学,226,海外名校,University of Cape Town +萨塞克斯大学,226,海外名校,University of Sussex +弗吉尼亚大学,226,海外名校,University of Virginia +渥太华大学,230,海外名校,University of Ottawa +拉夫堡大学,231,海外名校,Loughborough University +加州大学欧文分校,232,海外名校,"University of California, Irvine" +安特卫普大学,233,海外名校,University of Antwerp +马斯特里赫特大学,233,海外名校,Maastricht University +卡尔加里大学,235,海外名校,University of Calgary +安德斯大学,236,海外名校,Universidad de los Andes +莱斯特大学,236,海外名校,University of Leicester +维多利亚大学,601,海外名校,Victoria University +金斯敦女王大学,240,海外名校,Queen's University at Kingston +瑞士提契诺大学,240,海外名校,USI - Università della Svizzera italiana +贝鲁特美国大学,242,海外名校,American University of Beirut +帕多瓦大学,242,海外名校,Università di Padova +圣彼得堡国立大学,242,海外名校,Saint Petersburg State University +巴黎高科桥梁学院,245,海外名校,Ecole des Ponts ParisTech +新西伯利亚州立大学,246,海外名校,Novosibirsk State University +马萨诸塞大学安姆斯特分校,246,海外名校,University of Massachusetts +乔治敦大学,248,海外名校,Georgetown University +庞培法布拉大学,248,海外名校,Pompeu Fabra University +文莱达鲁萨兰国大学,250,海外名校,Universiti Brunei Darussalam (UBD) +科罗拉多大学-玻尔得,251,海外名校,University of Colorado at Boulder +国立成功大学,252,海外名校,National Cheng Kung University +叶史瓦大学,252,海外名校,Yeshiva University +加查马达大学,254,海外名校,Gadjah Mada University +印度马德拉斯技术学院,255,海外名校,Indian Institute of Technology Madras +玛希隆大学,255,海外名校,Mahidol University +特拉维夫大学,255,海外名校,Tel Aviv University +哥伦比亚国立大学,258,海外名校,National University of Colombia +爱尔兰国立大学戈尔韦分校,258,海外名校,National University of Ireland Galway +坎特伯雷大学,258,海外名校,University of Canterbury +科学宝,261,海外名校,Sciences Po +巴黎大学,261,海外名校,Université de Paris +庆熙大学,264,海外名校,Kyung Hee University +罗格斯大学,264,海外名校,Rutgers University–New Brunswick +纳瓦拉大学,266,海外名校,University of Navarra +布拉格查理大学,266,海外名校,Charles University +国立阳明大学,268,海外名校,National Yang Ming Chiao Tung University +亚利桑那大学,268,海外名校,The University of Arizona +达姆施塔特工业大学,269,海外名校,Technical University Darmstadt +赫瑞瓦特大学,270,海外名校,Heriot Watt University +达尔豪斯大学,272,海外名校,Dalhousie University +托木斯克州立大学,272,海外名校,Tomsk State University +萨里大学,272,海外名校,University of Surrey +南方科技大学,275,海外名校,Southern University of Science & Technology +塔夫茨大学,275,海外名校,Tufts University +格拉茨科技大学,277,海外名校,Graz University of Technology +印度理工学院坎普尔,277,海外名校,Indian Institute of Technology Kanpur +沙特国王大学,277,海外名校,King Saud University +印度理工学院卡拉格普尔分校,280,海外名校,Indian Institute of Technology Kharagpur +鲍曼莫斯科国立技术大学,281,海外名校,Bauman Moscow State Technical University +因斯布鲁克大学,281,海外名校,University of Innsbruck +迪肯大学,283,海外名校,Deakin University +梅西大学,284,海外名校,Massey University +伊利诺伊大学芝加哥分校,285,海外名校,University of Illinois at Chicago +筑波大学,285,海外名校,University of Tsukuba +香港浸会大学,287,海外名校,Hong Kong Baptist University +阿联酋大学,288,海外名校,United Arab Emirates University +印度尼西亚大学,290,海外名校,University of Indonesia +格里菲斯大学,290,海外名校,Griffith University +莫斯科物理科学与技术学院,290,海外名校,Moscow Institute of Physics and Technology +巴黎第一大学,290,海外名校,Panthéon-Sorbonne University – Paris 1 +白俄罗斯国立大学,295,海外名校,Belarusian State University +波尔图大学,295,海外名校,University of Porto +图尔库大学,295,海外名校,University of Turku +科克大学,298,海外名校,University College Cork +西蒙弗雷泽大学,298,海外名校,Simon Fraser University +北卡罗来纳州立大学,300,海外名校,North Carolina State University +塔尔图大学,300,海外名校,University of Tartu +斯特拉斯克莱德大学,302,海外名校,University of Strathclyde +塔斯马尼亚大学,303,海外名校,University of Tasmania +万隆理工学院(ITB),303,海外名校,Bandung Institute of Technology (ITB) +光州科学技术学院,305,海外名校,Gwangju Institute of Science and Technology +俄罗斯国立高等经济大学,305,海外名校,HSE University +东英吉利大学,307,海外名校,University of East Anglia +华沙大学,308,海外名校,University of Warsaw +南丹麦大学,309,海外名校,University of Southern Denmark +雅盖隆大学,309,海外名校,Jagiellonian University +印第安纳大学伯明顿分校,311,海外名校,Indiana University +科隆大学,311,海外名校,University of Cologne +迈阿密大学,311,海外名校,University of Miami +格勒诺布尔阿尔卑斯大学,314,海外名校,Grenoble Alpes University +国立台湾科技大学,314,海外名校,National Taiwan University of Science and Technology +米兰大学,316,海外名校,University of Milan +俄罗斯人民友谊大学,317,海外名校,RUDN University +IE大学,317,海外名校,IE University +国立核研究大学-莫斯科工程物理学院,319,海外名校,National Research Nuclear University MEPhI +加泰罗尼亚理工大学,319,海外名校,Polytechnic University of Catalonia +斯威本科技大学,321,海外名校,Swinburne University of Technology +阿根廷天主教大学,322,海外名校,Pontificia Universidad Católica Argentina +邓迪大学,322,海外名校,University of Dundee +澳门大学,322,海外名校,University of Macau +埃尔朗根-纽伦堡大学,322,海外名校,Friedrich-Alexander-Universität Erlangen-Nürnberg +奥尔堡大学,326,海外名校,Aalborg University +南澳大利亚大学,326,海外名校,University of South Australia +国立欧亚大学,328,海外名校,L.N. Gumilyov Eurasian National University +林雪平大学,329,海外名校,Linkoping University +以色列理工学院,330,海外名校,Technion - Israel Institute of Technology +伦敦大学城市学院,330,海外名校,City University London +伦敦大学伯贝克学院,332,海外名校,Birkbeck University London +圣光机大学,365,海外名校,ITMO University +国立台湾师范大学,334,海外名校,National Taiwan Normal University +都灵理工大学,334,海外名校,Politecnico di Torino +伦敦大学皇家霍洛威学院,334,海外名校,Royal Holloway University of London +法兰克福大学,340,海外名校,Goethe University Frankfurt +夏威夷大学马诺阿分校,340,海外名校,University of Hawai’i at Mānoa +广岛大学,343,海外名校,Hiroshima University +耶拿大学,344,海外名校,Universität Jena +文莱大学,344,海外名校,Universiti Teknologi Brunei +弗吉尼亚理工,346,海外名校,Virginia Polytechnic Institute and State University +斯图加特大学,347,海外名校,Universität Stuttgart +加州大学圣克鲁兹分校,347,海外名校,"University of California, Santa Cruz" +喀山联邦大学,347,海外名校,Kazan Federal University +斯特雅大学,347,海外名校,UCSI University +马德里卡洛斯三世大学,351,海外名校,Universidad Carlos III de Madrid +乌拉尔联邦大学,351,海外名校,Ural Federal University +伦敦布鲁内尔大学,351,海外名校,Brunel University London +约翰内斯开普勒大学林茨,354,海外名校,Johannes Kepler University Linz +乔治华盛顿大学,355,海外名校,George Washington University +里斯本大学,356,海外名校,University of Lisbon +蒂尔堡大学,356,海外名校,Tilburg University +国立科技大学-巴基斯坦,358,海外名校,National University of Sciences & Technology - Pakistan +于韦斯屈莱大学,358,海外名校,University of Jyvaskyla +犹他大学,358,海外名校,University of Utah +拉筹伯大学,362,海外名校,La Trobe University +莫斯科国立国际关系学院,362,海外名校,MGIMO University +梨花女子大学,362,海外名校,Ewha Womans University +乌尔姆大学,365,海外名校,Ulm University +于默奥大学,365,海外名校,Umea University +苏丹卡布斯大学,368,海外名校,Sultan Qaboos University +挪威科技大学,369,海外名校,Norwegian University of Science and Technology +里约热内卢联邦大学,369,海外名校,Federal University of Rio de Janeiro +瓦伦西亚理工大学,371,海外名校,Polytechnic University of Valencia +林肯大学,801,海外名校,University of Lincoln +布拉格化工大学,373,海外名校,"University of Chemistry & Technology, Prague" +康涅狄格大学,373,海外名校,University of Connecticut +怀卡托大学,373,海外名校,University of Waikato +奥卢大学,377,海外名校,University of Oulu +维尔茨堡大学,378,海外名校,Julius-Maximilians-Universität Würzburg +真纳大学,378,海外名校,Quaid I Azam University +纽约州立大学石溪分校,378,海外名校,Stony Brook University +谢里夫科技大学,381,海外名校,Sharif University of Technology +东京医科齿科大学,381,海外名校,Tokyo Medical and Dental University +美国沙迦大学,383,海外名校,American University of Sharjah +肯特大学,383,海外名校,University of Kent +神户大学,386,海外名校,Kobe University +堪萨斯大学,387,海外名校,University of Kansas +纽约州立大学布法罗分校,388,海外名校,University at Buffalo +比萨大学,388,海外名校,University of Pisa +圣拉斐尔生命健康大学,390,海外名校,Università Vita-Salute San Raffaele +伦敦大学亚非学院,391,海外名校,SOAS University of London +巴勒莫大学,801,海外名校,University of Palermo +彼得大帝圣彼得堡理工大学,393,海外名校,Peter the Great St Petersburg Polytechnic University +波鸿大学,393,海外名校,University of Bochum +国立研究托木斯克理工大学,395,海外名校,National Research Tomsk Polytechnic University +秘鲁天主教大学,395,海外名校,Pontifical Catholic University of Peru +印度理工学院古瓦哈提,395,海外名校,Indian Institute of Technology Guwahati +巴基斯坦工程与应用科学研究所,398,海外名校,Pakistan Institute of Engineering and Applied Sciences (PIEAS) +菲律宾大学,399,海外名校,University of the Philippines +南方大学,400,海外名校,Universidad Austral +印度理工学院鲁尔基校区,400,海外名校,Indian Institute of Technology Roorkee +维尔纽斯大学,400,海外名校,Vilnius University +加州大学河滨分校,403,海外名校,"University of California, Riverside" +布拉格捷克技术大学,403,海外名校,Czech Technical University in Prague +弗林德斯大学,407,海外名校,Flinders University +台北医科大学,407,海外名校,Taipei Medical University +明斯特大学,411,海外名校,University of Muenster +国立中山大学,412,海外名校,National Sun Yat-Sen University +哈韦里亚纳大学,412,海外名校,Pontificia Universidad Javeriana +拉彭兰塔理工大学,414,海外名校,Lappeenranta University of Technology +拉瓦尔大学,414,海外名校,Université Laval +国油大学,414,海外名校,Universiti Teknologi Petronas +科罗拉多大学-丹佛,414,海外名校,University of Colorado at Denver +坦佩雷大学,414,海外名校,University of Tampere +中央大学,414,海外名校,Chung-Ang University +斯特拉斯堡大学,421,海外名校,Université de Strasbourg +雅典国立技术大学,421,海外名校,National Technical University of Athens +曼海姆大学,423,海外名校,Universität Mannheim +那不勒斯菲里德里克第二大学,424,海外名校,University of Naples - Federico II +威特沃特斯兰德大学,424,海外名校,University of the Witwatersrand +詹姆斯库克大学,424,海外名校,James Cook University +约翰内斯古腾堡美因茨大学,427,海外名校,Johannes Gutenberg University of Mainz +华盛顿州立大学,427,海外名校,Washington State University +维克森林大学,429,海外名校,Wake Forest University +牛津布鲁克斯大学,429,海外名校,Oxford Brookes University +新里斯本大学,431,海外名校,NOVA University Lisbon +伦斯勒理工学院,431,海外名校,Rensselaer Polytechnic Institute +科罗拉多州立大学,431,海外名校,Colorado State University +圣保罗联邦大学,434,海外名校,Federal University of Sao Paulo +约翰内斯堡大学,434,海外名校,University of Johannesburg +堪培拉大学,436,海外名校,University of Canberra +杜兰大学,436,海外名校,Tulane University +埃塞克斯大学,439,海外名校,University of Essex +塞浦路斯大学,440,海外名校,University of Cyprus +特伦托大学,440,海外名校,University of Trento +特罗姆瑟大学挪威北极大学,440,海外名校,University of Tromsø The Arctic University of Norway +斯旺西大学,440,海外名校,Swansea University +伊利诺伊理工学院,444,海外名校,Illinois Institute of Technology +韩国外国语大学,445,海外名校,HUFS - Hankuk (Korea) University of Foreign Studies +开罗美国大学,445,海外名校,The American University in Cairo +萨尔大学,447,海外名校,Saarland University +乌姆古拉大学,447,海外名校,Umm Al-Qura University +莱比锡大学,447,海外名校,Universität Leipzig +米兰 - 比可卡大学,450,海外名校,University of Milan-Bicocca +佛罗伦萨大学,451,海外名校,University of Florence +奥克兰理工大学,451,海外名校,Auckland University of Technology +邦德大学,451,海外名校,Bond University +科英布拉大学,455,海外名校,University of Coimbra +爱荷华大学,455,海外名校,University of Iowa +布兰迪斯大学,455,海外名校,Brandeis University +萨斯喀彻温大学,458,海外名校,University of Saskatchewan +马德里理工大学,459,海外名校,Universidad Politécnica de Madrid +圣加仑大学,459,海外名校,University of St Gallen +马丁·路德·哈勒-威登堡大学,461,海外名校,Martin Luther University of Halle-Wittenberg +科罗拉多矿业大学,461,海外名校,Colorado School of Mines +远东联邦大学,461,海外名校,Far Eastern Federal University +伦敦大学金史密斯学院,461,海外名校,Goldsmiths University London +爱兰加大学,465,海外名校,Airlangga University +阿米尔卡比尔理工大学,465,海外名校,Amirkabir University of Technology +贝尔格拉诺大学,465,海外名校,Universidad de Belgrano +国立台北科技大学,469,海外名校,National Taipei University of Technology +乌拉圭蒙得维的亚大学,469,海外名校,Universidad de Montevideo (UM) +乌拉圭大学,471,海外名校,Universidad ORT Uruguay +斯特灵大学,471,海外名校,University of Stirling +内盖夫本古里安大学,471,海外名校,Ben-Gurion University of the Negev +哈瑟尔特大学,471,海外名校,Hasselt University +佛罗里达州立大学,475,海外名校,Florida State University +密苏里大学,476,海外名校,Mizzou - University of Missouri +德克萨斯大学-达拉斯,477,海外名校,The University of Texas at Dallas +巴伊兰大学,477,海外名校,Bar-Ilan University +千叶大学,477,海外名校,Chiba University +长庚大学,480,海外名校,Chang Gung University +列日大学,480,海外名校,University of Liege +南哈萨克斯坦大学,482,海外名校,Auezov South Kazakhstan University (SKU) +斯泰伦博斯大学,482,海外名校,Stellenbosch University +韩国天主教大学,482,海外名校,The Catholic University of Korea +都灵大学,485,海外名校,University of Turin +阿斯顿大学,485,海外名校,Aston University +俄罗斯国立科技大学,487,海外名校,The National University of Science and Technology MISIS +横滨市立大学,487,海外名校,Yokohama City University +智利圣地亚哥大学,487,海外名校,Universidad de Santiago de Chile +都柏林城市大学,490,海外名校,Dublin City University +贾森·利比希大学,490,海外名校,Justus Liebig University Giessen +圣保罗州立大学,492,海外名校,UNESP +格拉纳达大学,492,海外名校,University of Granada +罗马第二大学,494,海外名校,University of Roma - Tor Vergata +西悉尼大学,494,海外名校,University of Western Sydney +波士顿学院,494,海外名校,Boston College +基尔大学,751,海外名校,Keele University +东国大学,494,海外名校,Dongguk University +爱荷华州立大学,494,海外名校,Iowa State University +西江大学,494,海外名校,Sogang University +华沙工业大学,501,海外名校,Warsaw University of Technology +艾克斯 - 马赛大学,501,海外名校,Aix-Marseille University +哈瓦那大学,501,海外名校,Universidad de La Habana +康斯坦茨大学,501,海外名校,Universität Konstanz +波尔多大学,501,海外名校,Universite de Bordeaux +德里大学,501,海外名校,University of Delhi +克拉根福大学,501,海外名校,University of Klagenfurt +利默里克大学,501,海外名校,University of Limerick +萨特巴耶夫大学,501,海外名校,Satbayev University +密苏里科技大学,511,海外名校,Missouri University of Science & Technology +新加坡管理大学,511,海外名校,Singapore Management University +茂物农业大学,511,海外名校,IPB University +科奇大学,511,海外名校,Koç University +哈尔科夫大学,511,海外名校,V. N. Karazin Kharkiv National University +韦恩州立大学,511,海外名校,Wayne State University +阿尔卡拉大学,511,海外名校,Universidad de Alcala +马来西亚北方大学,511,海外名校,Universiti Utara Malaysia +巴拉曼德大学,511,海外名校,University of Balamand +中央大学“阿伯勒玛塔”德拉斯别墅,521,海外名校,"Universidad Central ""Marta Abreu"" de Las Villas" +拜罗伊特大学,521,海外名校,University of Bayreuth +东芬兰大学,521,海外名校,University of Eastern Finland +德黑兰大学,521,海外名校,University of Tehran +康考迪亚大学,521,海外名校,Concordia University +阿卜杜勒拉曼费萨尔大学,521,海外名校,Imam Abdulrahman Bin Faisal University +蒙彼利埃大学,521,海外名校,Montpellier University +国立中央大学,521,海外名校,National Central University +理海大学,531,海外名校,Lehigh University +长崎大学,531,海外名校,Nagasaki University +国家研究萨拉托夫州立大学,531,海外名校,National Research Saratov State University +俄勒冈州立大学,531,海外名校,Oregon State University +贝鲁特圣约瑟夫大学,531,海外名校,Saint Joseph University of Beirut (USJ) +南方联邦大学,531,海外名校,Southern Federal University +韩国亚洲大学,531,海外名校,Ajou University +一桥大学,531,海外名校,Hitotsubashi University +里昂国家科学研究院,531,海外名校,Institut National des Sciences Appliquées de Lyon (INSA) +哥斯达黎加大学,531,海外名校,Universidad de Costa Rica +萨拉戈萨大学,531,海外名校,Universidad de Zaragoza +特拉华大学,531,海外名校,University of Delaware +蔚山大学,541,海外名校,University of Ulsan +阿伯里斯特威斯大学,541,海外名校,Aberystwyth University +伊朗科技大学,541,海外名校,Iran University of Science & Technology +庆北国立大学,541,海外名校,Kyungpook National University +新泻大学,541,海外名校,Niigata University +萨班哲大学,541,海外名校,Sabanci University +佐治亚大学,541,海外名校,The University of Georgia +田纳西大学,541,海外名校,"The University of Tennessee, Knoxville" +马萨里克大学,551,海外名校,Masaryk University +中东技术大学,551,海外名校,Middle East Technical University +图卢兹第三大学,551,海外名校,Paul Sabatier University (Toulouse 3) +阿拜哈萨克斯坦国立师范大学,551,海外名校,Abai Kazakh National Pedagogical University +塞萨洛尼基亚里士多德大学,551,海外名校,Aristotle University of Thessaloniki +哈萨克国立农业大学,551,海外名校,Kazakh National Agrarian University KazNAU +塞维利亚大学,551,海外名校,Universidad de Sevilla +泛美大学,551,海外名校,Universidad Panamericana (UP) +米兰圣心天主教大学,551,海外名校,Università Cattolica del Sacro Cuore +塞格德大学,551,海外名校,University of Szeged +帕维亚大学研究学院,561,海外名校,Università degli Studi di Pavia +弗里堡大学,561,海外名校,Université de Fribourg +阿尔泰州立大学,561,海外名校,Altai State University +哈林大学,561,海外名校,Hallym University +仁荷大学,561,海外名校,Inha University +贾瓦哈拉尔尼赫鲁大学,561,海外名校,Jawaharlal Nehru University +布伦瑞克工业大学,561,海外名校,Technical University of Braunschweig +新学院大学,561,海外名校,The New School +大阪市立大学,571,海外名校,Osaka City University +开罗大学,571,海外名校,Cairo University +卡斯里克圣灵大学,571,海外名校,Holy Spirit University of Kaslik +伊万第比利斯国立大学,571,海外名校,Ivane Javakhishvili Tbilisi State University +全北国立大学,571,海外名校,Jeonbuk National University +不来梅大学,571,海外名校,Universität Bremen +瓦伦西亚大学,571,海外名校,Universitat de Valencia +米尼奥大学,571,海外名校,University of Minho +内布拉斯加大学-林肯,571,海外名校,University of Nebraska - Lincoln +拉普拉塔国立大学,581,海外名校,Universidad Nacional de La Plata (UNLP) +圭尔夫大学,581,海外名校,University of Guelph +南佛罗里达大学,581,海外名校,University of South Florida +黎巴嫩美国大学,581,海外名校,Lebanese American University +香港岭南大学,581,海外名校,"Lingnan University, Hong Kong" +默多克大学,581,海外名校,Murdoch University +冈山大学,581,海外名校,Okayama University +萨马拉国立研究大学(Samara University),581,海外名校,Samara National Research University (Samara University) +国立政治大学,591,海外名校,National Chengchi University +Savitribai普鲁大学,591,海外名校,Savitribai Phule Pune University +索非亚大学,591,海外名校,Sofia University +哥伦比亚外事大学,591,海外名校,Universidad Externado de Colombia +雷根斯堡大学,591,海外名校,Universität Regensburg +魁北克大学,591,海外名校,Université du Québec +德布勒森大学,591,海外名校,University of Debrecen +卢布尔雅那大学,591,海外名校,University of Ljubljana +巴林应用科学大学,591,海外名校,Applied Science University - Bahrain +比尔肯特大学,591,海外名校,Bilkent University +印度理工学院海德拉巴,591,海外名校,Indian Institute of Technology Hyderabad +熊本大学,591,海外名校,Kumamoto University +阿博大学,601,海外名校,Abo Akademi University +迪拜美国大学,601,海外名校,American University in Dubai +马尼拉雅典大学,601,海外名校,Ateneo de Manila University +班戈大学,601,海外名校,Bangor University +迪拜加拿大大学,601,海外名校,Canadian University Dubai +卡尔顿大学,601,海外名校,Carleton University +中央昆士兰大学,601,海外名校,Central Queensland University +清迈大学,601,海外名校,Chiang Mai University +克拉克大学,601,海外名校,Clark University +科米利亚斯宗座大学,601,海外名校,Comillas Pontifical University +考文垂大学,601,海外名校,Coventry University +岐阜大学,601,海外名校,Gifu University +金泽大学,601,海外名校,Kanazawa University +金斯顿大学,601,海外名校,Kingston University +建国大学,601,海外名校,Konkuk University +墨西哥阿那瓦克大学,601,海外名校,Universidad Anáhuac México +康塞普西翁大学,601,海外名校,Universidad de Concepción +布宜诺斯艾利斯省中央大学 (UNICEN,601,海外名校,Universidad Nacional del Centro de la Provincia de Buenos Aires (UNICEN) +拉蒙鲁尔大学,601,海外名校,Universitat Ramon Llull +霍恩海姆大学,601,海外名校,University Hohenheim +阿威罗大学,601,海外名校,University of Aveiro +辛辛那提大学,601,海外名校,University of Cincinnati +热那亚大学,601,海外名校,University of Genoa +曼尼托巴大学,601,海外名校,University of Manitoba +普利茅斯大学,601,海外名校,University of Plymouth +比勒陀利亚大学,601,海外名校,University of Pretoria +沙迦大学,601,海外名校,University of Sharjah +锡耶纳大学,601,海外名校,University of Siena +南卡罗来纳大学,601,海外名校,University of South Carolina +汉诺威莱布尼兹大学,601,海外名校,Leibniz University Hannover +管理科学大学,601,海外名校,Management and Science University +南京科技大学,601,海外名校,Nanjing University of Science & Technology +帕拉茨基大学,601,海外名校,Palacky University Olomouc +Pavol JozefŠafárikUniversity位于科希策,601,海外名校,Pavol Jozef Šafárik University in Košice +釜山国立大学,601,海外名校,Pusan National University +S.D.阿斯芬迪亚罗夫哈萨克国立医科大学,601,海外名校,S.D. Asfendiyarov Kazakh National Medical University +世宗大学,601,海外名校,Sejong University +深圳大学,601,海外名校,Shenzhen University +史密斯学院,601,海外名校,Smith College +基辅国立大学,601,海外名校,Taras Shevchenko National University Kiev +法政大学,601,海外名校,Thammasat University +约旦大学,601,海外名校,The University of Jordan +东京农工大学,601,海外名校,Tokyo University of Agriculture and Technology +巴黎第二大学,601,海外名校,University Paris 2 Panthéon-Assas +扎耶德大学,651,海外名校,Zayed University +安蒂奥基亚大学,651,海外名校,Universidad de Antioquia +ICESI大学,651,海外名校,Universidad ICESI +秘鲁秘鲁卡耶塔诺大学,651,海外名校,Universidad Peruana Cayetano Heredia +玻利瓦尔纳天主教大学,651,海外名校,Universidad Pontificia Bolivariana +罗斯托克大学,651,海外名校,Universität Rostock +克劳德·伯纳德·里昂大学,651,海外名校,Université Claude Bernard Lyon 1 +玛拉工艺大学,651,海外名校,Universiti Teknologi MARA - UiTM +克里特岛大学,651,海外名校,University of Crete +赫尔大学,651,海外名校,University of Hull +海德拉巴大学,651,海外名校,University of Hyderabad +肯塔基大学,651,海外名校,University of Kentucky +马萨诸塞大学波士顿分校,651,海外名校,University of Massachusetts Boston +蒙斯大学,651,海外名校,University of Mons +新不伦瑞克大学,651,海外名校,University of New Brunswick +俄克拉荷马大学,651,海外名校,University of Oklahoma +俄勒冈大学,651,海外名校,University of Oregon +佩奇大学,651,海外名校,University of Pecs +朴茨茅斯大学,651,海外名校,University of Portsmouth +萨拉曼卡大学,651,海外名校,University of Salamanca +的里雅斯特大学,651,海外名校,University of Trieste +佛蒙特大学,651,海外名校,University of Vermont +美利坚大学,651,海外名校,American University +威廉与玛丽学院,651,海外名校,College of William and Mary +布拉迪斯拉发的夸美纽斯大学,651,海外名校,Comenius University in Bratislava +德雷塞尔大学,651,海外名校,Drexel University +伊迪丝科文大学,651,海外名校,Edith Cowan University +罗兰大学,651,海外名校,Eotvos Lorand University +米纳斯吉拉斯州联邦大学,651,海外名校,Universidade Federal de Minas Gerais +博尔扎诺自由大学,651,海外名校,Free University of Bozen-Bolzano +霍华德大学,651,海外名校,Howard University +伊曼纽尔·康德波罗的海联邦大学,651,海外名校,Immanuel Kant Baltic Federal University +马来西亚国际伊斯兰大学,651,海外名校,International Islamic University Malaysia +迦达浦大学,651,海外名校,Jadavpur University +鹿儿岛大学,651,海外名校,Kagoshima University +卡尔·弗朗岑斯大学格拉茨大学,651,海外名校,Karl-Franzens-Universitaet Graz +哈立德国王大学,651,海外名校,King Khalid University +拉合尔管理科学大学,651,海外名校,Lahore University of Management Sciences +洛巴切夫斯基大学,651,海外名校,Lobachevsky University +澳门科技大学,651,海外名校,Macau University of Science & Technology +密歇根理工大学,651,海外名校,Michigan Technological University +雅典大学,651,海外名校,National and Kapodistrian University of Athens +国立中兴大学,651,海外名校,National Chung Hsing University +国立哈尔科夫工业大学,651,海外名校,"National Technical University ""Kharkiv Polytechnic Institute""" +里约热内卢天主教大学,651,海外名校,Pontifícia Universidade Católica do Rio de Janeiro +谢切诺夫大学,651,海外名校,Sechenov University +双威大学,651,海外名校,Sunway University +雪城大学,651,海外名校,Syracuse University +新墨西哥大学-阿尔伯克基,651,海外名校,The University of New Mexico - Albuquerque +德岛大学,651,海外名校,Tokushima University +阿尔斯特大学,651,海外名校,Ulster University +黎巴嫩大学,701,海外名校,Lebanese University +米德尔塞克斯大学,701,海外名校,Middlesex University +乌克兰国立技术大学 – 伊戈尔·西科斯基基辅理工学院,701,海外名校,National Technical University of Ukraine – Igor Sikorsky Kyiv Poly +新泽西理工大学,701,海外名校,New Jersey Institute of Technology +诺桑比亚大学,701,海外名校,Northumbria University +印度金德而全球大学,701,海外名校,O.P. Jindal Global University +大阪府大学,701,海外名校,Osaka Prefecture University +马尔堡菲尔兹大学,701,海外名校,Philipps University of Marburg +普列汉诺夫俄罗斯经济大学,701,海外名校,Plekhanov Russian University of Economics +巴里理工大学,701,海外名校,Politecnico di Bari +穆罕默德·本·法赫德王子大学,701,海外名校,Prince Mohammad Bin Fahd university +罗维拉-威尔吉利大学,701,海外名校,Rovira i Virgili University +圣彼得堡国立电子科技大学,701,海外名校,Saint Petersburg Electrotechnical University ETU-LETI +史蒂文斯理工学院,701,海外名校,Stevens Institute of Technology +苏美州立大学,701,海外名校,Sumy State University +东京都立大学,701,海外名校,Tokyo Metropolitan University +乌法国立航空技术大学,701,海外名校,Ufa State Aviation Technical University +委内瑞拉中央大学,701,海外名校,Universidad Central de Venezuela +萨瓦纳大学,701,海外名校,Universidad de La Sabana +圣安德烈斯大学,701,海外名校,Universidad de San Andrés - UdeSA +伊比利亚美洲大学,701,海外名校,Universidad Iberoamericana IBERO +圣地亚哥德孔波斯特拉大学,701,海外名校,Universidade de Santiago de Compostela +波茨坦大学,701,海外名校,Universität Potsdam +蔚蓝海岸大学,701,海外名校,Université Côte d'Azur +苏塞大学,701,海外名校,Université de Sousse +布拉德福德大学,701,海外名校,University of Bradford +海法大学,701,海外名校,University of Haifa +休斯敦大学,701,海外名校,University of Houston +哈德斯菲尔德大学,701,海外名校,University of Huddersfield +摩德纳大学和雷焦艾米利亚,701,海外名校,University of Modena and Reggio Emilia +南昆士兰大学,701,海外名校,University of Southern Queensland +巴斯克大学,701,海外名校,University of the Basque Country +威斯敏斯特大学,701,海外名校,University of Westminster +温莎大学,701,海外名校,University of Windsor +弗吉尼亚联邦大学,701,海外名校,Virginia Commonwealth University +阿布扎比大学,701,海外名校,Abu Dhabi University +阿治曼大学,701,海外名校,Ajman University +艾因大学,701,海外名校,Al Ain University +海峡大学,701,海外名校,Bogaziçi Üniversitesi +布尔诺工业大学,701,海外名校,Brno University of Technology +查尔斯达尔文大学,701,海外名校,Charles Darwin University +纽约城市大学,701,海外名校,City University of New York +群马大学,701,海外名校,Gunma University +印度理工学院布巴内斯瓦尔,701,海外名校,Indian Institute of Technology Bhubaneswar +布宜诺斯艾利斯技术大学,701,海外名校,Instituto Tecnológico de Buenos Aires (ITBA) +伊斯坦布尔理工大学,701,海外名校,Istanbul Technical University +约夫大学,701,海外名校,Jouf University +阿道夫·伊巴涅斯大学,751,海外名校,Adolfo Ibáñez University +中东美国大学,751,海外名校,American University of the Middle East +白俄罗斯国立技术大学(BNTU),751,海外名校,Belarusian National Technical University (BNTU) +布雷西亚大学,751,海外名校,Brescia University +全南国立大学,751,海外名校,Chonnam National University +忠南国立大学,751,海外名校,Chungnam National University +克拉克森大学,751,海外名校,Clarkson University +檀国大学,751,海外名校,Dankook University +南里奥格兰德联邦大学,751,海外名校,Federal University of Rio Grande do Sul +佐治亚州立大学,751,海外名校,Georgia State University +杜塞尔多夫大学,751,海外名校,Heinrich Heine University Duesseldorf +印尼泗水理工大学,751,海外名校,Institut Teknologi Sepuluh Nopember +国立理工学院 (IPN),751,海外名校,Instituto Politécnico Nacional (IPN) +墨西哥自治技术学院,751,海外名校,Instituto Tecnológico Autónomo de México (ITAM) +印度新德里国立伊斯兰大学,751,海外名校,Jamia Millia Islamia +卡拉干达国立技术大学,751,海外名校,Karaganda State Technical University +República大学(乌德拉尔),751,海外名校,Universidad de la República (Udelar) +罗萨里奥大学,751,海外名校,Universidad del Rosario +基多圣弗朗西斯科大学,751,海外名校,Universidad San Francisco de Quito +托拉卡托迪泰拉大学,751,海外名校,Universidad Torcuato Di Tella +佩鲁贾研究大学,751,海外名校,Università degli Studi di Perugia +舍布鲁克大学,751,海外名校,Université de Sherbrooke +国能大学,751,海外名校,Universiti Tenaga Nasional (UNITEN) +中佛罗里达大学,751,海外名校,University of Central Florida +丹佛大学,751,海外名校,University of Denver +格林威治大学,751,海外名校,University of Greenwich +马里兰大学巴尔的摩,751,海外名校,"University of Maryland, Baltimore County" +萨格勒布大学,751,海外名校,University of Zagreb +曼尼珀尔高等教育学院,751,海外名校,Manipal Academy of Higher Education +梅努斯大学,751,海外名校,Maynooth University +纽芬兰纪念大学,751,海外名校,Memorial University of Newfoundland +瓦尔帕莱索天主教大学,751,海外名校,Pontificia Universidad Catolica de Valparaiso +努拉·本·公主阿卜杜勒拉曼大学,751,海外名校,Princess Nourah bint Abdulrahman University +里加技术大学,751,海外名校,Riga Technical University +立命馆大学,751,海外名校,Ritsumeikan University +设拉子大学,751,海外名校,Shiraz University +南十字大学,751,海外名校,Southern Cross University +纽约州立大学奥尔巴尼分校,751,海外名校,State University of New York Albany +塔林科技大学,751,海外名校,Tallinn University of Technology +天普大学,751,海外名校,Temple University +维尔纽斯Gediminas技术大学,751,海外名校,Vilnius Gediminas Technical University +伍斯特理工学院,751,海外名校,Worcester Polytechnic Institute +越南国立大学胡志明市,801,海外名校,Viet Nam National University Ho Chi Minh City (VNU-HCM) +越南河内国立大学,801,海外名校,Vietnam National University Hanoi +维陶塔斯·马格努斯大学,801,海外名校,Vytautas Magnus University +西弗吉尼亚大学,801,海外名校,West Virginia University +弗罗茨瓦夫科技大学,801,海外名校,Wroclaw University of Science and Technology +西交利物浦大学,801,海外名校,Xi‘an Jiaotong-Liverpool University +山口大学,801,海外名校,Yamaguchi University +埃里温州立大学,801,海外名校,Yerevan State University +岭南大学,801,海外名校,Yeungnam University +横滨国立大学,801,海外名校,Yokohama National University +查平戈自治大学,801,海外名校,Universidad Autónoma de Chapingo +伊达尔戈自治大学,801,海外名校,Universidad Autónoma del Estado de Hidalgo +墨西哥自治大学,801,海外名校,Universidad Autonoma del Estado de Mexico +大都会大学(UAM),801,海外名校,Universidad Autónoma Metropolitana (UAM) +卡塔利卡大学安德烈斯·贝洛大学,801,海外名校,Universidad Católica Andres Bello +乌拉圭卡托利卡大学(UCU),801,海外名校,Universidad Católica del Uruguay (UCU) +瓜达拉哈拉大学,801,海外名校,Universidad de Guadalajara +美洲普埃布拉大学(UDLAP),801,海外名校,Universidad de las Américas Puebla (UDLAP) +洛斯安第斯大学-(ULA)梅里达,801,海外名校,Universidad de Los Andes - (ULA) Mérida +洛斯安第斯大学-智利,801,海外名校,Universidad de los Andes - Chile +奥维耶多大学,801,海外名校,Universidad de Oviedo +瓦莱大学,801,海外名校,Universidad del Valle +圣地亚哥大学门户网站,801,海外名校,University Diego Portales +EAFIT大学,801,海外名校,Universidad EAFIT +国立圣路易斯大学,801,海外名校,Universidad Nacional de San Luis +圣马科斯国立大学市长,801,海外名校,Universidad Nacional Mayor de San Marcos +西蒙玻利瓦尔大学(USB),801,海外名校,Universidad Simón Bolívar (USB) +巴拿马巴拿马技术大学(UTP),801,海外名校,Universidad Tecnológica de Panamá (UTP) +全国技术大学(UTN),801,海外名校,Universidad Tecnológica Nacional (UTN) +卡图里卡葡萄牙大学-UCP,801,海外名校,Universidade Católica Portuguesa - UCP +拉科鲁尼亚大学,801,海外名校,Universidade da Coruna +巴西利亚大学,801,海外名校,Universidade de Brasília +费拉拉大学,801,海外名校,Universita' degli Studi di Ferrara +乌迪内大学研究,801,海外名校,Università degli Studi di Udine +意大利马尔凯理工大学,801,海外名校,Universita' Politecnica delle Marche +帕贾扎兰大学,801,海外名校,Universitas Padjadjaran +杜伊斯堡 - 埃森大学,801,海外名校,University of Duisburg-Essen +里尔大学,801,海外名校,Université de Lille +洛林大学,801,海外名校,Universite de Lorraine +南特大学,801,海外名校,Université de Nantes +雷恩第一大学,801,海外名校,Université de Rennes 1 +图卢兹大学1 Capitole,801,海外名校,Université Toulouse 1 Capitole +吉隆坡大学,801,海外名校,Universiti Kuala Lumpur +马来西亚彭亨大学,801,海外名校,Universiti Malaysia Pahang +马来西亚玻璃市大学,801,海外名校,Universiti Malaysia Perlis +拉曼大学,801,海外名校,Universiti Tunku Abdul Rahman (UTAR) +阿利坎特大学,801,海外名校,University of Alicante +巴格达大学,801,海外名校,University of Baghdad +巴林大学,801,海外名校,University of Bahrain +巴里大学,801,海外名校,University of Bari +布莱顿大学,801,海外名校,University of Brighton +加尔各答大学,801,海外名校,University of Calcutta +中央兰开夏大学,801,海外名校,University of Central Lancashire +达卡大学,801,海外名校,University of Dhaka +东伦敦大学,801,海外名校,University of East London +拉合尔工程技术大学(UET),801,海外名校,University of Engineering & Technology (UET) Lahore +格但斯克大学,801,海外名校,University of Gdansk +哈特福德大学,801,海外名校,University of Hartford +赫特福德大学,801,海外名校,University of Hertfordshire +赫拉德茨克拉洛夫大学,801,海外名校,University of Hradec Kralove +夸祖鲁纳塔尔大学,801,海外名校,University of KwaZulu Natal +罗兹大学,801,海外名校,University of Lodz +马耳他大学,801,海外名校,University of Malta +马里博尔大学,801,海外名校,University of Maribor +墨西拿大学,801,海外名校,University of Messina +密西西比大学,801,海外名校,University of Mississippi +密苏里大学堪萨斯城分校,801,海外名校,"University of Missouri, Kansas City" +穆尔西亚大学,801,海外名校,University of Murcia +新英格兰大学,801,海外名校,University of New England +新罕布什尔大学,801,海外名校,University of New Hampshire +帕尔马大学,801,海外名校,University of Parma +帕特雷大学,801,海外名校,University of Patras +萨勒诺大学,801,海外名校,University of Salerno +索尔福德大学,801,海外名校,University of Salford +首尔大学,801,海外名校,University of Seoul +旁遮普大学,801,海外名校,University of the Punjab +英格兰西部大学,801,海外名校,University of the West of England +塔尔萨大学,801,海外名校,University of Tulsa +秋明大学,801,海外名校,University of Tyumen +维罗纳大学,801,海外名校,University of Verona +威斯康星大学-密尔沃基,801,海外名校,University of Wisconsin - Milwaukee +弗罗茨瓦夫大学,801,海外名校,University of Wroclaw +怀俄明大学,801,海外名校,University of Wyoming +齐里纳大学,801,海外名校,University of Žilina +Y.A.院士布克托夫卡拉干达大学,801,海外名校,Academician Y.A. Buketov Karaganda University +亚当·米基维奇大学,801,海外名校,Adam Mickiewicz University +AGH科技大学,801,海外名校,AGH University of Science & Technology +艾恩夏姆斯大学,801,海外名校,Ain Shams University +安卡拉大学,801,海外名校,Ankara Üniversitesi +安娜大学,801,海外名校,Anna University +奥本大学,801,海外名校,Auburn University +澳洲天主教大学,801,海外名校,Australian Catholic University +孟加拉国工程技术大学,801,海外名校,Bangladesh University of Engineering and Technology +贝鲁特阿拉伯大学,801,海外名校,Beirut Arab University +比勒费尔德大学,801,海外名校,Bielefeld University +纽约州立大学宾汉姆顿大学,801,海外名校,Binghamton University +布达佩斯科技经济大学,801,海外名校,Budapest University of Technology & Economics +威尼斯福斯卡里宫大学,801,海外名校,Ca’ Foscari University of Venice +卡塔尼亚大学,801,海外名校,Catania University +查尔斯斯特大学,801,海外名校,Charles Sturt University +克莱姆森大学,801,海外名校,Clemson University +布达佩斯科维努斯大学,801,海外名校,Corvinus University of Budapest +克拉科夫工业大学,801,海外名校,Cracow University of Technology +CY塞尔吉巴黎大学,801,海外名校,CY Cergy Paris Université +布拉格捷克生命科学大学,801,海外名校,Czech University of Life Sciences in Prague +德拉萨大学,801,海外名校,De La Salle University +德蒙福特大学,801,海外名校,De Montfort University +多特蒙德工业大学,801,海外名校,Technical University of Dortmund +爱丁堡纳皮尔大学,801,海外名校,Edinburgh Napier University +巴拉那联邦大学,801,海外名校,Federal University of Parana +伯南布哥联邦大学,801,海外名校,Federal University of Pernambuco +圣卡塔琳娜联邦大学,801,海外名校,Federal University of Santa Catarina +圣卡洛斯联邦大学,801,海外名校,Federal University of Sao Carlos +费德里科圣玛丽亚技术大学,801,海外名校,Federico Santa María Technical University +俄罗斯联邦政府金融大学,801,海外名校,Financial University under the Government of the Russian Federation +佛罗里达国际大学,801,海外名校,Florida International University +福特汉姆大学,801,海外名校,Fordham University +格但斯克工业大学,801,海外名校,Gdansk University of Technology +乔治梅森大学,801,海外名校,George Mason University +德国约旦大学,801,海外名校,German Jordanian University +海湾科技大学,801,海外名校,Gulf University for Science and Technology +哈斯特帕大学,801,海外名校,Hacettepe University +印第安纳大学-印第安纳波利斯,801,海外名校,Indiana University-Purdue University at Indianapolis +国际基督教大学,801,海外名校,International Christian University +麦地那伊斯兰大学,801,海外名校,Islamic University of Madinah +伊斯坦布尔大学,801,海外名校,Istanbul University +约旦科技大学,801,海外名校,Jordan University of Science & Technology +堪萨斯州立大学,801,海外名校,Kansas State University +卡塞萨特大学,801,海外名校,Kasetsart University +考纳斯工业大学,801,海外名校,Kaunas University of Technology +哈萨克阿布赖汗国际关系与世界语言大学,801,海外名校,Kazakh Ablai Khan University of International Relations and World Languages +哈萨克斯坦-英国技术大学,801,海外名校,Kazakh-British Technical University +喀山国立研究技术大学,801,海外名校,Kazan National Research Technical University +孔敬大学,801,海外名校,Khon Kaen University +费萨尔国王大学,801,海外名校,King Faisal University +泰国国王科技大学,801,海外名校,King Mongkut’s University of Technology Thonburi +京都工业大学,801,海外名校,Kyoto Institute of Technology +九州工业大学,801,海外名校,Kyushu Institute of Technology +利物浦约翰摩尔斯大学,801,海外名校,Liverpool John Moores University +罗兹工业大学,801,海外名校,Lodz University of Technology +伦敦都会大学,801,海外名校,London Metropolitan University +伦敦南岸大学,801,海外名校,London South Bank University +路易斯安那州立大学,801,海外名校,Louisiana State University +芝加哥洛约拉大学,801,海外名校,Loyola University Chicago +利沃夫理工大学,801,海外名校,Lviv Polytechnic National University +曼彻斯特城市大学,801,海外名校,Manchester Metropolitan University +布尔诺的孟德尔大学,801,海外名校,Mendel University Brno +门捷列夫化工大学,801,海外名校,Mendeleev University of Chemical Technology +国立中正大学,801,海外名校,National Chung Cheng University +科尔多瓦国立大学,801,海外名校,National University of Cordoba +罗萨里奥国立大学,801,海外名校,National University of Rosario +尼古拉·哥白尼大学,801,海外名校,Nicolaus Copernicus University +NJSC KIMEP大学,801,海外名校,NJSC KIMEP University +诺丁汉特伦特大学,801,海外名校,Nottingham Trent University +新西伯利亚国立技术大学,801,海外名校,Novosibirsk State Technical University +俄克拉荷马州立大学,801,海外名校,Oklahoma State University +萨尔茨堡巴黎罗德隆大学,801,海外名校,Paris Lodron University of Salzburg +那不勒斯帕斯诺普大学,801,海外名校,Parthenope University Naples +彼尔姆国立研究大学,801,海外名校,Perm State National Research University +本地治里大学,801,海外名校,Pondicherry University +圣保罗天主教大学,801,海外名校,Pontifícia Universidade Católica de São Paulo +波兹南理工大学,801,海外名校,Poznan University of Technology +宋卡王子大学,801,海外名校,Prince of Songkla University +苏美亚公主科技大学,801,海外名校,Princess Sumaya University for Technology +卡西姆大学,801,海外名校,Qassim University +英国爱丁堡玛格丽特女王大学,801,海外名校,"Queen Margaret University , Edinburgh" +罗得大学,801,海外名校,Rhodes University +里加斯特拉丁斯大学,801,海外名校,Riga Stradins University +罗伯特·戈登大学,801,海外名校,Robert Gordon University +罗马特雷大学,801,海外名校,Roma Tre University +俄罗斯总统国民经济与公共行政学院,801,海外名校,Russian Presidential Academy of National Economy and Public Admini +罗格斯大学纽瓦克分校,801,海外名校,Rutgers University - Newark +瑞尔森大学,801,海外名校,Ryerson University +西雅图大学,801,海外名校,Seattle University +信州大学,801,海外名校,Shinshu University +Siksha'O'Anusandhan,801,海外名校,Siksha ‘O’ Anusandhan +西里西亚工业大学,801,海外名校,Silesian University of Technology +斯洛伐克工业大学布拉迪斯拉发,801,海外名校,Slovak University of Technology Bratislava +上智大学,801,海外名校,Sophia University +南乌拉尔州立大学,801,海外名校,South Ural State University +南卫理公会大学,801,海外名校,Southern Methodist University +塞切尼伊斯特万大学,801,海外名校,Széchenyi István University +圣伊斯特万大学,801,海外名校,Szent Istvan University +科希策技术大学,801,海外名校,Technical University of Kosice +利贝雷茨技术大学,801,海外名校,Technical University of Liberec +都柏林科技大学,801,海外名校,Technological University Dublin +哥斯达黎加技术中心(TECN),801,海外名校,Tecnológico de Costa Rica -TEC +德克萨斯理工大学,801,海外名校,Texas Tech University +阿拉巴马大学,801,海外名校,The University of Alabama +阿尔伯塔大学,126,海外名校, +加州艺术学院,1,海外名校,California Institute of the Arts +萨凡纳艺术学院,2,海外名校,Savannah College of Art and Design +瑞格林艺术设计学院,3,海外名校,Ringling College of Art and Design +纽约视觉艺术学院,4,海外名校,School of Visual Art +谢尔丹学院,6,海外名校,Sheridan College +伯恩茅斯大学,7,海外名校,Bournemouth University +提赛德大学,8,海外名校,Teesside University +高布兰学院,9,海外名校,Gobelins diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/schools.csv b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/schools.csv new file mode 100644 index 00000000..7ed0c84a --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/res/schools.csv @@ -0,0 +1,5713 @@ +id type parent_id name_cn name_en alias is_abroad is_world_known school_type is_double_first education_type province city is_985 +102982 0 0 ABC联邦大学 Federal University of ABC (UFABC) 1 0 NULL 0 NULL NULL NULL 0 +105232 0 0 LEC东京法律思维大学 1 0 NULL 0 NULL NULL NULL 0 +104244 0 0 LEC东京职业发展大学 1 0 NULL 0 NULL NULL NULL 0 +105334 0 0 Pontifícia里约热内卢天主教大学 Pontifical Catholic University of Rio de Janeiro 1 0 NULL 0 NULL NULL NULL 0 +104995 0 0 PSG理工学院 PSG College of Technology 1 0 NULL 0 NULL NULL NULL 0 +105336 0 0 Universite libre de Bruxelles Free University of Brussels 1 0 NULL 0 NULL NULL NULL 0 +104629 0 0 一桥大学 Hitotsubashi University 1 0 NULL 0 NULL NULL NULL 0 +100722 0 0 七台河职业学院 0 0 高职类 0 专科 黑龙江 七台河市 0 +105002 0 0 万隆理工学院 Bandung Institute of Technology (ITB) 1 0 NULL 0 NULL NULL NULL 0 +103586 0 0 三一学院 Trinity College 1 0 NULL 0 NULL NULL NULL 0 +105583 0 0 三亚中瑞酒店管理职业学院 0 0 高职类 0 民办(专科) 海南 三亚市 0 +102247 0 0 三亚城市职业学院 0 0 高职类 0 民办(专科) 海南 三亚市 0 +102245 0 0 三亚学院 0 0 综合类 0 民办(本科) 海南 三亚市 0 +102256 0 0 三亚理工职业学院 0 0 高职类 0 民办(专科) 海南 三亚市 0 +102254 0 0 三亚航空旅游职业学院 0 0 高职类 0 民办(专科) 海南 三亚市 0 +101763 0 0 三峡大学 0 0 综合类 0 本科 湖北 宜昌市 0 +101852 0 0 三峡大学科技学院 0 0 理工类 0 独立学院 湖北 宜昌市 0 +101829 0 0 三峡旅游职业技术学院 0 0 高职类 0 专科 湖北 宜昌市 0 +101825 0 0 三峡电力职业学院 0 0 高职类 0 专科 湖北 宜昌市 0 +101307 0 0 三明医学科技职业学院 三明职业技术学院 0 0 高职类 0 专科 福建 三明市 0 +101262 0 0 三明学院 0 0 综合类 0 本科 福建 三明市 0 +100877 0 0 三江学院 0 0 综合类 0 民办(本科) 江苏 南京市 0 +104285 0 0 三重中京大学 1 0 NULL 0 NULL NULL NULL 0 +104540 0 0 三重县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104675 0 0 三重大学 Mie University 1 0 NULL 0 NULL NULL NULL 0 +105612 0 0 三门峡社会管理职业学院 0 0 高职类 0 专科 河南 三门峡市 0 +101639 0 0 三门峡职业技术学院 0 0 高职类 0 专科 河南 三门峡市 0 +104643 0 0 上智大学 Sophia University 1 0 NULL 0 NULL NULL NULL 0 +104099 0 0 上武大学 1 0 NULL 0 NULL NULL NULL 0 +100797 0 0 上海东海职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100816 0 0 上海中侨职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100769 0 0 上海中医药大学 0 0 医科类 1 本科 上海 上海市 0 +100819 0 0 上海中华职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100761 2 0 上海交通大学 0 1 综合类 1 本科 上海 上海市 1 +100802 0 0 上海交通职业技术学院 0 0 高职类 0 专科 上海 上海市 0 +100777 0 0 上海体育学院 0 0 体育类 1 本科 上海 上海市 0 +100822 0 0 上海体育职业学院 0 0 高职类 0 专科 上海 上海市 0 +100794 0 0 上海健康医学院 上海医疗器械高等专科学校::上海医药高等专科学校::上海健康职业技术学院 0 0 高职类 0 示范(高职) 上海 上海市 0 +100796 0 0 上海公安学院 上海公安高等专科学校 0 0 政法类 0 本科 上海 上海市 0 +100790 0 0 上海兴伟学院 0 0 综合类 0 民办(本科) 上海 上海市 0 +100814 0 0 上海农林职业技术学院 0 0 高职类 0 专科 上海 上海市 0 +100799 0 0 上海出版印刷高等专科学校 0 0 高职类 0 骨干(高职) 上海 上海市 0 +100834 0 0 上海医药职工大学 0 0 医药类 0 专科(高职) 上海 上海市 0 +100788 0 0 上海商学院 0 0 财经类 0 本科 上海 上海市 0 +100801 0 0 上海城建职业学院 上海城市管理职业技术学院::上海建峰职业技术学院 0 0 高职类 0 专科 上海 上海市 0 +100772 1 0 上海外国语大学 0 0 外语类 1 本科 上海 上海市 0 +100840 0 0 上海外国语大学贤达经济人文学院 0 0 财经类 0 独立学院 上海 上海市 0 +100780 1 0 上海大学 0 0 综合类 1 本科 上海 上海市 0 +100774 0 0 上海对外经贸大学 0 0 财经类 0 本科 上海 上海市 0 +100820 0 0 上海工会管理职业学院 0 0 高职类 0 专科 上海 上海市 0 +100812 0 0 上海工商外国语职业学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100798 0 0 上海工商职业技术学院 上海新侨职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100781 0 0 上海工程技术大学 0 0 理工类 0 本科 上海 上海市 0 +100810 0 0 上海工艺美术职业学院 0 0 高职类 0 示范(高职) 上海 上海市 0 +14938 0 0 上海市化学工业职工大学 0 0 综合类 0 专科(高职) 上海 上海市 0 +100839 0 0 上海市宝山区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100827 0 0 上海市徐汇区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100830 0 0 上海市普陀区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100832 0 0 上海市杨浦区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100837 0 0 上海市经济管理干部学院 0 0 政法类 0 专科(高职) 上海 上海市 0 +100831 0 0 上海市虹口区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100828 0 0 上海市长宁区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100829 0 0 上海市静安区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100826 0 0 上海市黄浦区业余大学 0 0 综合类 0 其他 上海 上海市 0 +100771 0 0 上海师范大学 0 0 师范类 0 本科 上海 上海市 0 +100841 0 0 上海师范大学天华学院 0 0 综合类 0 独立学院 上海 上海市 0 +100767 0 0 上海应用技术大学 上海应用技术学院 0 0 理工类 0 本科 上海 上海市 0 +100789 0 0 上海建桥学院 0 0 综合类 0 民办(本科) 上海 上海市 0 +100835 0 0 上海开放大学 0 0 综合类 0 专科(高职) 上海 上海市 0 +100808 0 0 上海思博职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100779 0 0 上海戏剧学院 0 0 艺术类 0 本科 上海 上海市 0 +100786 0 0 上海政法学院 0 0 政法类 0 本科 上海 上海市 0 +100795 0 0 上海旅游高等专科学校 0 0 高职类 0 示范(高职) 上海 上海市 0 +100785 0 0 上海杉达学院 0 0 财经类 0 民办(本科) 上海 上海市 0 +100807 0 0 上海欧华职业技术学院/上海欧华学院 上海欧华职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100824 0 0 上海民航职业技术学院 0 0 高职类 0 专科 上海 上海市 0 +100806 0 0 上海民远职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100811 0 0 上海济光职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100764 0 0 上海海事大学 0 0 理工类 0 本科 上海 上海市 0 +100803 0 0 上海海事职业技术学院 0 0 高职类 0 专科 上海 上海市 0 +100775 0 0 上海海关学院 0 0 综合类 0 本科 上海 上海市 0 +100768 0 0 上海海洋大学 0 0 农林类 1 本科 上海 上海市 0 +100763 0 0 上海理工大学 0 0 理工类 0 本科 上海 上海市 0 +105394 0 0 上海理工大学中英国际学院 0 0 理工类 0 中外合作办学 上海 上海市 0 +100766 0 0 上海电力大学 上海电力学院 0 0 理工类 0 本科 上海 上海市 0 +100804 0 0 上海电子信息职业技术学院 0 0 高职类 0 骨干(高职) 上海 上海市 0 +100818 0 0 上海电影艺术职业学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100783 0 0 上海电机学院 0 0 理工类 0 本科 上海 上海市 0 +100813 0 0 上海科学技术职业学院 0 0 高职类 0 专科 上海 上海市 0 +100792 0 0 上海科技大学 0 0 理工类 0 本科 上海 上海市 0 +100825 0 0 上海科技管理干部学院 0 0 政法类 0 专科(高职) 上海 上海市 0 +100782 0 0 上海立信会计金融学院 上海立信会计学院::上海金融学院 0 0 财经类 0 本科 上海 上海市 0 +100809 0 0 上海立达学院 上海立达职业技术学院 0 0 综合类 0 民办(本科) 上海 上海市 0 +100787 0 0 上海第二工业大学 0 0 理工类 0 本科 上海 上海市 0 +2673 0 0 上海第二轻工业学校 上海第二轻工业职工大学 0 0 综合类 0 专科(高职) 上海 上海市 0 +100833 0 0 上海纺织工业职工大学 0 0 其他 0 专科(高职) 上海 上海市 0 +100793 0 0 上海纽约大学 0 0 综合类 0 本科 上海 上海市 0 +100800 0 0 上海行健职业学院 0 0 高职类 0 专科 上海 上海市 0 +100791 0 0 上海视觉艺术学院 0 0 艺术类 0 民办(本科) 上海 上海市 0 +100773 1 0 上海财经大学 0 0 财经类 1 本科 上海 上海市 0 +101122 0 0 上海财经大学浙江学院 0 0 财经类 0 独立学院 浙江 金华市 0 +100815 0 0 上海邦德职业技术学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100805 0 0 上海震旦职业学院 0 0 高职类 0 民办(专科) 上海 上海市 0 +100838 0 0 上海青年管理干部学院 0 0 政法类 0 其他 上海 上海市 0 +100778 0 0 上海音乐学院 0 0 艺术类 1 本科 上海 上海市 0 +104599 0 0 上越教育大学 1 0 NULL 0 NULL NULL NULL 0 +104159 0 0 上野学园大学 1 0 NULL 0 NULL NULL NULL 0 +101348 0 0 上饶师范学院 0 0 师范类 0 本科 江西 上饶市 0 +105624 0 0 上饶幼儿师范高等专科学校 0 0 高职类 0 专科 江西 上饶市 0 +101401 0 0 上饶职业技术学院 0 0 高职类 0 专科 江西 上饶市 0 +104566 0 0 下关市立大学 1 0 NULL 0 NULL NULL NULL 0 +103999 0 0 下加利福尼亚自治大学 Autonomous University of Baja California 1 0 NULL 0 NULL NULL NULL 0 +103036 0 0 不伦瑞克工业大学 Technische Universität Braunschweig 1 0 NULL 0 NULL NULL NULL 0 +103444 0 0 不列颠海角大学 Cape Breton 1 0 NULL 0 NULL NULL NULL 0 +103107 0 0 不来梅大学 Universität Bremen 1 0 NULL 0 NULL NULL NULL 0 +103037 0 0 不来梅雅格布大学 Jacobs University Bremen 1 0 NULL 0 NULL NULL NULL 0 +104177 0 0 专修大学 1 0 NULL 0 NULL NULL NULL 0 +103361 0 0 世宗大学 Sejong University 1 0 NULL 0 NULL NULL NULL 0 +103282 0 0 东义大学 1 0 NULL 0 NULL NULL NULL 0 +104637 0 0 东京农工大学 Tokyo University of Agriculture and Technology 1 0 NULL 0 NULL NULL NULL 0 +104628 0 0 东京医科齿科大学 Tokyo Medical and Dental University (TMDU) 1 0 NULL 0 NULL NULL NULL 0 +104118 0 0 东京国际大学 1 0 NULL 0 NULL NULL NULL 0 +104147 0 0 东京基督教大学 1 0 NULL 0 NULL NULL NULL 0 +104595 0 0 东京外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104615 0 0 东京大学 The University of Tokyo 1 1 NULL 0 NULL NULL NULL 0 +104237 0 0 东京女子医科大学 1 0 NULL 0 NULL NULL NULL 0 +104596 0 0 东京学艺大学 1 0 NULL 0 NULL NULL NULL 0 +104617 0 0 东京工业大学 Tokyo Institute of Technology 1 1 NULL 0 NULL NULL NULL 0 +104192 0 0 东京工艺大学 1 0 NULL 0 NULL NULL NULL 0 +104149 0 0 东京情报大学 1 0 NULL 0 NULL NULL NULL 0 +104151 0 0 东京成德大学 1 0 NULL 0 NULL NULL NULL 0 +104156 0 0 东京成德短期大学 1 0 NULL 0 NULL NULL NULL 0 +104686 0 0 东京海洋大学 Tokyo University of Marine Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +104644 0 0 东京理科大学 Tokyo University of Science 1 0 NULL 0 NULL NULL NULL 0 +104704 0 0 东京电机大学 Tokyo Denki University 1 0 NULL 0 NULL NULL NULL 0 +104150 0 0 东京神学大学 1 0 NULL 0 NULL NULL NULL 0 +104103 0 0 东京福祉大学|东京福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104169 0 0 东京纯心女子大学 1 0 NULL 0 NULL NULL NULL 0 +104597 0 0 东京艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104703 0 0 东京都市大学 Tokyo City University 1 0 NULL 0 NULL NULL NULL 0 +104146 0 0 东京音乐大学 1 0 NULL 0 NULL NULL NULL 0 +104148 0 0 东京齿科大学 1 0 NULL 0 NULL NULL NULL 0 +105152 0 0 东伦敦大学 University of East London 1 0 NULL 0 NULL NULL NULL 0 +104076 0 0 东北公益文科大学 1 0 NULL 0 NULL NULL NULL 0 +100665 1 0 东北农业大学 0 0 农林类 1 本科 黑龙江 哈尔滨市 0 +100454 2 0 东北大学 0 1 理工类 1 本科 辽宁 沈阳市 1 +105370 2 0 东北大学秦皇岛分校 0 0 综合类 1 普通本科 河北 秦皇岛市 1 +104055 0 0 东北女子大学 1 0 NULL 0 NULL NULL NULL 0 +104066 0 0 东北学院大学 1 0 NULL 0 NULL NULL NULL 0 +104067 0 0 东北工业大学 1 0 NULL 0 NULL NULL NULL 0 +100594 1 0 东北师范大学 0 0 师范类 1 本科 吉林 长春市 0 +100654 0 0 东北师范大学人文学院 0 0 综合类 0 独立学院 吉林 长春市 0 +104070 0 0 东北文化学园大学 1 0 NULL 0 NULL NULL NULL 0 +100666 1 0 东北林业大学 0 0 农林类 1 本科 黑龙江 哈尔滨市 0 +104068 0 0 东北生活文化大学 1 0 NULL 0 NULL NULL NULL 0 +100588 0 0 东北电力大学 0 0 理工类 0 本科 吉林 吉林市 0 +100662 0 0 东北石油大学 0 0 理工类 0 本科 黑龙江 大庆市 0 +104069 0 0 东北福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104075 0 0 东北艺术工科大学 1 0 NULL 0 NULL NULL NULL 0 +104071 0 0 东北药科大学 1 0 NULL 0 NULL NULL NULL 0 +100477 0 0 东北财经大学 0 0 财经类 0 本科 辽宁 大连市 0 +100765 1 0 东华大学 0 0 理工类 1 本科 上海 上海市 0 +101340 0 0 东华理工大学 0 0 理工类 0 本科 江西 抚州市 0 +101433 0 0 东华理工大学长江学院 0 0 理工类 0 独立学院 江西 抚州市 0 +103758 0 0 东华盛顿大学 Eastern Washington University 1 0 NULL 0 NULL NULL NULL 0 +100844 2 0 东南大学 0 0 综合类 1 本科 江苏 南京市 1 +100985 0 0 东南大学成贤学院 0 0 综合类 0 独立学院 江苏 南京市 0 +103712 0 0 东卡罗来纳大学 East Carolina University 1 0 NULL 0 NULL NULL NULL 0 +104468 0 0 东和大学 1 0 NULL 0 NULL NULL NULL 0 +103357 0 0 东国大学 Dongguk University 1 0 NULL 0 NULL NULL NULL 0 +102999 0 0 东地中海大学 Eastern Mediterranean University 1 0 NULL 0 NULL NULL NULL 0 +104369 0 0 东大坂大学 1 0 NULL 0 NULL NULL NULL 0 +103489 0 0 东姑阿都拉曼大学 Universiti Tunku Abdul Rahman (UTAR) 1 0 NULL 0 NULL NULL NULL 0 +105115 0 0 东安格利亚大学 University of East Anglia (UEA) 1 0 NULL 0 NULL NULL NULL 0 +103684 0 0 东密歇根大学 Eastern Michigan University 1 0 NULL 0 NULL NULL NULL 0 +103588 0 0 东康涅狄格州立大学 Eastern Connecticut State University 1 0 NULL 0 NULL NULL NULL 0 +103333 0 0 东新大学 1 0 NULL 0 NULL NULL NULL 0 +105531 0 0 东方文化艺术学院 0 0 艺术类 0 其他 北京 北京市 0 +104080 0 0 东日本国际大学 1 0 NULL 0 NULL NULL NULL 0 +103284 0 0 东明情报大学 1 0 NULL 0 NULL NULL NULL 0 +104706 0 0 东洋大学 Toyo University 1 0 NULL 0 NULL NULL NULL 0 +104152 0 0 东洋学园大学 1 0 NULL 0 NULL NULL NULL 0 +104206 0 0 东洋英和女学院大学 1 0 NULL 0 NULL NULL NULL 0 +31269 0 0 东海大学 0 0 综合类 0 普通本科 台湾 台中市 0 +104295 0 0 东海女子大学 1 0 NULL 0 NULL NULL NULL 0 +104264 0 0 东海学园大学 1 0 NULL 0 NULL NULL NULL 0 +103641 0 0 东肯塔基大学 Eastern Kentucky University 1 0 NULL 0 NULL NULL NULL 0 +103229 0 0 东芬兰大学 University of Eastern Finland 1 0 NULL 0 NULL NULL NULL 0 +105250 0 0 东英吉利亚大学 University of East Anglia 1 0 NULL 0 NULL NULL NULL 0 +105023 0 0 东英格里亚大学 University of East Anglia, Norwich 1 0 NULL 0 NULL NULL NULL 0 +102039 0 0 东莞理工学院 0 0 理工类 0 本科 广东 东莞市 0 +102154 0 0 东莞理工学院城市学院 0 0 理工类 0 独立学院 广东 东莞市 0 +102119 0 0 东莞职业技术学院 0 0 高职类 0 专科 广东 东莞市 0 +101520 0 0 东营科技职业学院 0 0 高职类 0 民办(专科) 山东 东营市 0 +101509 0 0 东营职业学院 0 0 高职类 0 骨干(高职) 山东 东营市 0 +103280 0 0 东西大学 1 0 NULL 0 NULL NULL NULL 0 +104119 0 0 东邦大学 1 0 NULL 0 NULL NULL NULL 0 +104120 0 0 东邦音乐大学 1 0 NULL 0 NULL NULL NULL 0 +104768 0 0 中东理工大学 Middle East Technical University 1 0 NULL 0 NULL NULL NULL 0 +104261 0 0 中京大学 1 0 NULL 0 NULL NULL NULL 0 +104262 0 0 中京女子大学 1 0 NULL 0 NULL NULL NULL 0 +104293 0 0 中京学院大学 1 0 NULL 0 NULL NULL NULL 0 +103883 0 0 中佛罗里达大学 University of Central Florida 1 0 NULL 0 NULL NULL NULL 0 +105021 0 0 中兰开夏大学 University of Central Lancashire 1 0 NULL 0 NULL NULL NULL 0 +100308 0 0 中北大学 0 0 理工类 0 本科 山西 太原市 0 +100393 0 0 中北大学信息商务学院 0 0 理工类 0 独立学院 山西 太原市 0 +100048 0 0 中华女子学院 0 0 语言类 0 本科 北京 北京市 0 +101873 2 0 中南大学 0 0 综合类 1 本科 湖南 长沙市 1 +101879 0 0 中南林业科技大学 0 0 农林类 0 本科 湖南 长沙市 0 +101995 0 0 中南林业科技大学涉外学院 0 0 综合类 0 独立学院 湖南 长沙市 0 +105517 0 0 中南林业科技大学班戈学院 0 0 综合类 0 中外合作办学 湖南 长沙市 0 +101756 0 0 中南民族大学 0 0 民族类 0 本科 湖北 武汉市 0 +101753 1 0 中南财经政法大学 0 0 财经类 0 本科 湖北 武汉市 0 +101599 0 0 中原工学院 0 0 理工类 0 本科 河南 郑州市 0 +101729 0 0 中原工学院信息商务学院 0 0 财经类 0 独立学院 河南 郑州市 0 +102430 0 0 中国五冶职工大学 第五冶金建设公司职工大学 0 0 理工类 0 专科(高职) 四川 成都市 0 +100035 0 0 中国人民公安大学 公安部管理干部学院 0 0 政法类 1 本科 北京 北京市 0 +100001 2 0 中国人民大学 0 0 综合类 1 本科 北京 北京市 1 +105415 0 0 中国人民大学(苏州校区) 0 0 综合类 0 中外合作办学 江苏 苏州市 0 +105556 0 0 中国人民武装警察部队学院成人教育培训部 0 0 NULL 0 其他 河北 廊坊市 0 +105380 1 0 中国人民解放军南京政治学院 0 0 军事类 0 本科 江苏 南京市 0 +105486 1 0 中国人民解放军后勤学院 0 0 军事类 0 本科 北京 - 0 +1439 2 0 中国人民解放军国防科技大学 National University of Defense Technology 国防科技大学::NUDT::国防科学技术大学 0 0 军事类 1 本科 湖南 长沙市 1 +105373 1 0 中国人民解放军战略支援部队信息工程大学 0 0 军事类 0 本科 河南 郑州市 0 +105403 0 0 中国人民解放军战略支援部队航天工程大学 0 0 军事类 0 普通本科 北京 北京市 0 +105404 1 0 中国人民解放军海军工程大学 0 0 军事类 0 本科 湖北 武汉市 0 +105458 0 0 中国人民解放军海军潜艇学院 0 0 军事类 0 本科 山东 青岛市 0 +105391 1 0 中国人民解放军空军工程大学 0 0 军事类 0 本科 陕西 西安市 0 +105412 1 0 中国人民解放军空军航空大学 0 0 军事类 0 本科 吉林 长春市 0 +105385 0 0 中国人民解放军空军预警学院 0 0 军事类 0 本科 湖北 武汉市 0 +105414 0 0 中国人民解放军西安通信学院 0 0 军事类 0 本科 陕西 西安市 0 +105393 0 0 中国人民解放军陆军军事交通学院 0 0 军事类 0 普通本科 天津 天津市 0 +105379 1 0 中国人民解放军陆军军医大学 0 0 军事类 0 本科 重庆 重庆市 0 +105398 1 0 中国人民解放军陆军勤务学院 0 0 军事类 0 本科 重庆 重庆市 0 +105378 1 0 中国人民解放军陆军工程大学 0 0 军事类 0 本科 江苏 南京市 0 +105459 0 0 中国人民解放军陆军炮兵防空兵学院 0 0 军事类 0 本科 河南 合肥市 0 +105388 0 0 中国人民解放军陆军装甲兵学院 0 0 军事类 0 本科 吉林 北京市 0 +105474 0 0 中国人民解放军陆军边海防学院 0 0 军事类 0 本科 陕西 西安市 0 +105409 0 0 中国人民解放军陆军防化学院 0 0 军事类 0 本科 北京 北京市 0 +100208 0 0 中国人民警察大学 中国人民武装警察部队学院 0 0 政法类 0 本科 河北 廊坊市 0 +100029 1 0 中国传媒大学 0 0 语言类 1 本科 北京 北京市 0 +100990 0 0 中国传媒大学南广学院 0 0 艺术类 0 独立学院 江苏 南京市 0 +105386 0 0 中国信息大学 0 0 综合类 0 普通本科 北京 北京市 0 +100017 2 0 中国农业大学 0 0 农林类 1 本科 北京 北京市 1 +100478 0 0 中国刑事警察学院 0 0 政法类 0 本科 辽宁 沈阳市 0 +100055 0 0 中国劳动关系学院 0 0 财经类 0 本科 北京 北京市 0 +100466 0 0 中国医科大学 0 0 医科类 0 本科 辽宁 沈阳市 0 +100577 0 0 中国医科大学临床医药学院 0 0 NULL 0 NULL NULL NULL 0 +100303 0 0 中国地质大学长城学院 0 0 其他 0 独立学院 河北 保定市 0 +101740 1 0 中国地质大学(北京) 中国地质大学 0 0 理工类 1 本科 北京 北京市 0 +105365 1 0 中国地质大学(武汉) 0 0 理工类 1 本科 湖北 武汉市 0 +104422 0 0 中国学园大学 1 0 NULL 0 NULL NULL NULL 0 +102424 0 0 中国工程物理研究院职工工学院 0 0 理工类 0 专科(高职) 四川 绵阳市 0 +100042 0 0 中国戏曲学院 0 0 艺术类 0 本科 北京 北京市 0 +100046 1 0 中国政法大学 0 0 政法类 1 本科 北京 北京市 0 +105509 0 0 中国政法大学司法考试学院 0 0 政法类 0 普通本科 安徽 合肥市 0 +105490 0 0 中国政法大学继续教育学院 0 0 综合类 0 普通本科 北京 北京市 0 +105510 0 0 中国政法大学职业能力教育中心 0 0 政法类 0 其他 北京 北京市 0 +102335 0 0 中国民用航空飞行学院 0 0 理工类 0 本科 四川 德阳市 0 +100117 0 0 中国民航大学 0 0 理工类 0 本科 天津 天津市 0 +100099 0 0 中国民航管理干部学院 民航管理干部学院 0 0 航空类 0 普通本科 北京 北京市 0 +100836 0 0 中国海关管理干部学院 海关管理干部学院 0 0 政法类 0 其他 上海 上海市 0 +101442 2 0 中国海洋大学 0 0 综合类 1 本科 山东 青岛市 1 +101582 0 0 中国石油大学胜利学院 0 0 理工类 0 独立学院 山东 东营市 0 +100050 1 0 中国石油大学(北京) 中国石油大学 0 0 理工类 1 本科 北京 北京市 0 +105543 0 0 中国石油大学(北京)克拉玛依校区 0 0 理工类 0 普通本科 新疆 克拉玛依市 0 +19290 1 0 中国石油大学(华东) 0 0 NULL 0 NULL 山东省 青岛市 0 +100231 0 0 中国石油管道学院 河北石油职业技术学院 0 0 高职类 0 专科 河北 廊坊市 0 +100848 1 0 中国矿业大学 0 0 理工类 1 本科 江苏 徐州市 0 +100986 0 0 中国矿业大学徐海学院 0 0 理工类 0 独立学院 江苏 徐州市 0 +102773 0 0 中国矿业大学银川学院 0 0 综合类 0 独立学院 宁夏 银川市 0 +105376 1 0 中国矿业大学(北京) 0 0 理工类 1 本科 北京 北京市 0 +105444 0 0 中国社会科学院大学 0 0 其他 0 普通本科 北京 北京市 0 +101124 2 0 中国科学技术大学 0 1 理工类 1 本科 安徽 合肥市 1 +100058 0 0 中国科学院大学 0 0 综合类 1 本科 北京 北京市 0 +102433 0 0 中国科学院成都分院职工大学 0 0 其他 0 其他 四川 成都市 0 +105457 0 0 中国管理软件学院 0 0 理工类 0 普通本科 北京 北京市 0 +101027 0 0 中国美术学院 0 0 艺术类 1 本科 浙江 杭州市 0 +100863 1 0 中国药科大学 0 0 医科类 1 本科 江苏 南京市 0 +101028 0 0 中国计量大学 中国计量学院 0 0 理工类 0 本科 浙江 杭州市 0 +101117 0 0 中国计量大学现代科技学院 中国计量学院现代科技学院 0 0 理工类 0 独立学院 浙江 杭州市 0 +100094 0 0 中国记协职工新闻学院 0 0 综合类 0 专科(高职) 北京 北京市 0 +101714 0 0 中国长城铝业公司职业技术学院 长城铝业公司职工工学院 0 0 综合类 0 专科(高职) 河南 郑州市 0 +8846 0 0 中国防卫科技学院 0 0 NULL 0 NULL NULL NULL 0 +100053 0 0 中国青年政治学院 0 0 综合类 0 本科 北京 北京市 0 +100039 0 0 中国音乐学院 0 0 艺术类 1 本科 北京 北京市 0 +100093 0 0 中央党校继续教育学院 0 0 NULL 0 NULL NULL NULL 0 +105151 0 0 中央兰开夏大学 University of Central Lancashire 1 0 NULL 0 NULL NULL NULL 0 +103756 0 0 中央华盛顿大学 Central Washington University 1 0 NULL 0 NULL NULL NULL 0 +100214 0 0 中央司法警官学院 0 0 政法类 0 本科 河北 保定市 0 +105011 0 0 中央圣马丁艺术与设计学院 1 0 NULL 0 NULL NULL NULL 0 +103654 0 0 中央学院 Centre College 1 0 NULL 0 NULL NULL NULL 0 +104144 0 0 中央学院大学 1 0 NULL 0 NULL NULL NULL 0 +100041 0 0 中央戏剧学院 0 0 艺术类 1 本科 北京 北京市 0 +102934 0 0 中央昆士兰大学 Central Queensland University 1 0 NULL 0 NULL NULL NULL 0 +100045 2 0 中央民族大学 0 0 民族类 1 本科 北京 北京市 1 +100040 0 0 中央美术学院 0 0 艺术类 1 本科 北京 北京市 0 +100030 1 0 中央财经大学 0 0 财经类 1 本科 北京 北京市 0 +100038 1 0 中央音乐学院 0 0 艺术类 1 本科 北京 北京市 0 +103685 0 0 中密歇根大学 Central Michigan University 1 0 NULL 0 NULL NULL NULL 0 +102008 2 0 中山大学 0 0 综合类 1 本科 广东 广州市 1 +102159 0 0 中山大学南方学院 0 0 综合类 0 独立学院 广东 广州市 0 +105493 0 0 中山大学国际翻译学院 0 0 语言类 0 中外合作办学 广东 广州市 0 +102155 0 0 中山大学新华学院 0 0 综合类 0 独立学院 广东 广州市 0 +102095 0 0 中山火炬职业技术学院 0 0 高职类 0 骨干(高职) 广东 中山市 0 +102114 0 0 中山职业技术学院 0 0 综合类 0 专科(高职) 广东 中山市 0 +103583 0 0 中康涅狄格州立大学 Central Connecticut State University 1 0 NULL 0 NULL NULL NULL 0 +104469 0 0 中村学园大学 1 0 NULL 0 NULL NULL NULL 0 +105020 0 0 中英格兰大学 University of Central England, Birmingham 1 0 NULL 0 NULL NULL NULL 0 +104294 0 0 中部学院大学 1 0 NULL 0 NULL NULL NULL 0 +101984 0 0 中钢集团衡阳重机职业技术学院 中钢集团衡阳重机职工大学 0 0 理工类 0 专科(高职) 湖南 衡阳市 0 +104267 0 0 丰桥创造大学 1 0 NULL 0 NULL NULL NULL 0 +104688 0 0 丰桥技术科学大学 Toyohashi University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104266 0 0 丰田工业大学 1 0 NULL 0 NULL NULL NULL 0 +105597 0 0 临夏现代职业学院 0 0 高职类 0 专科 甘肃 临夏回族自治州 0 +100345 0 0 临汾职业技术学院 0 0 高职类 0 专科 山西 临汾市 0 +101463 0 0 临沂大学 0 0 师范类 0 本科 山东 临沂市 0 +101557 0 0 临沂职业学院 0 0 高职类 0 专科 山东 临沂市 0 +103884 0 0 丹佛大学 University of Denver 1 0 NULL 0 NULL NULL NULL 0 +101838 0 0 丹江口工程管理局职工大学 0 0 理工类 0 专科(高职) 湖北 丹江口市 0 +105359 0 0 丹麦技术大学 Technical University of Denmark 1 1 NULL 0 NULL NULL NULL 0 +103025 0 0 丹麦理工大学 Technical University of Denmark 1 0 NULL 0 NULL NULL NULL 0 +101024 0 0 丽水学院 0 0 师范类 0 本科 浙江 丽水市 0 +101072 0 0 丽水职业技术学院 0 0 高职类 0 专科 浙江 丽水市 0 +102554 0 0 丽江师范高等专科学校 0 0 高职类 0 专科 云南 丽江市 0 +104154 0 0 丽泽大学 1 0 NULL 0 NULL NULL NULL 0 +104460 0 0 久留米大学 1 0 NULL 0 NULL NULL NULL 0 +104461 0 0 久留米工业大学 1 0 NULL 0 NULL NULL NULL 0 +101074 0 0 义乌工商职业技术学院 0 0 高职类 0 专科 浙江 金华市 0 +104857 0 0 义安理工学院 Ngee Ann Polytechnic 1 0 NULL 0 NULL NULL NULL 0 +104803 0 0 乌克兰国立技术大学 National Technical University of Ukraine – Kyiv Polytechnic Institute 1 0 NULL 0 NULL NULL NULL 0 +100434 0 0 乌兰察布医学高等专科学校 0 0 高职类 0 专科 内蒙 乌兰察布市 0 +100423 0 0 乌兰察布职业学院 0 0 高职类 0 专科 内蒙 乌兰察布市 0 +103099 0 0 乌尔姆大学 University Ulm 1 0 NULL 0 NULL NULL NULL 0 +104945 0 0 乌尔比诺大学 University of Urbino Carlo Bo 1 0 NULL 0 NULL NULL NULL 0 +103386 0 0 乌得勒支大学 Utrecht University 1 1 NULL 0 NULL NULL NULL 0 +105234 0 0 乌拉圭共和国大学 University of the Republic 1 0 NULL 0 NULL NULL NULL 0 +104805 0 0 乌拉圭共和大学 Universidad de la República (UdelaR) 1 0 NULL 0 NULL NULL NULL 0 +103144 0 0 乌拉尔联邦大学 Ural Federal University 1 0 NULL 0 NULL NULL NULL 0 +104712 0 0 乌普萨拉大学 Uppsala University 1 1 NULL 0 NULL NULL NULL 0 +100428 0 0 乌海职业技术学院 0 0 高职类 0 专科 内蒙 乌海市 0 +104950 0 0 乌迪内大学 University of Udine 1 0 NULL 0 NULL NULL NULL 0 +102789 0 0 乌鲁木齐职业大学 0 0 高职类 0 骨干(高职) 新疆 乌鲁木齐市 0 +102901 0 0 乐卓博大学 La Trobe University 1 0 NULL 0 NULL NULL NULL 0 +102347 0 0 乐山师范学院 0 0 师范类 0 本科 四川 乐山市 0 +102392 0 0 乐山职业技术学院 0 0 高职类 0 专科 四川 乐山市 0 +103613 0 0 乔治亚大学 University of Georgia 1 0 NULL 0 NULL NULL NULL 0 +103614 0 0 乔治亚理工学院 Georgia Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +103823 0 0 乔治华盛顿大学 George Washington University 1 0 NULL 0 NULL NULL NULL 0 +103755 0 0 乔治城大学 Georgetown University 1 0 NULL 0 NULL NULL NULL 0 +103655 0 0 乔治城学院 Georgetown College 1 0 NULL 0 NULL NULL NULL 0 +103812 0 0 乔治敦大学 Georgetown University 1 0 NULL 0 NULL NULL NULL 0 +103897 0 0 乔治梅森大学 George Mason University 1 0 NULL 0 NULL NULL NULL 0 +103311 0 0 乙支大学 1 0 NULL 0 NULL NULL NULL 0 +104486 0 0 九州东海大学 1 0 NULL 0 NULL NULL NULL 0 +104497 0 0 九州保健福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104455 0 0 九州共立大学 1 0 NULL 0 NULL NULL NULL 0 +104456 0 0 九州国际大学 1 0 NULL 0 NULL NULL NULL 0 +104622 0 0 九州大学 Kyushu University 1 1 NULL 0 NULL NULL NULL 0 +104459 0 0 九州女子大学 1 0 NULL 0 NULL NULL NULL 0 +104651 0 0 九州工业大学 Kyushu Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104458 0 0 九州情报大学 1 0 NULL 0 NULL NULL NULL 0 +104572 0 0 九州牙科大学 1 0 NULL 0 NULL NULL NULL 0 +104457 0 0 九州産业大学 1 0 NULL 0 NULL NULL NULL 0 +104485 0 0 九州看护福祉大学 1 0 NULL 0 NULL NULL NULL 0 +100908 0 0 九州职业技术学院 0 0 高职类 0 民办(专科) 江苏 徐州市 0 +104454 0 0 九州营养福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104487 0 0 九州路德学院大学 1 0 NULL 0 NULL NULL NULL 0 +101360 0 0 九江学院 0 0 综合类 0 本科 江西 九江市 0 +90 0 0 九江广播电视大学 九江电大 0 0 综合类 0 专科(高职) 江西 九江市 0 +101369 0 0 九江职业大学 0 0 高职类 0 专科 江西 九江市 0 +101370 0 0 九江职业技术学院 0 0 高职类 0 示范(高职) 江西 九江市 0 +104182 0 0 二松学舍大学 1 0 NULL 0 NULL NULL NULL 0 +103226 0 0 于韦斯屈莱大学 University of Jyväskylä 1 0 NULL 0 NULL NULL NULL 0 +104717 0 0 于默奥大学 Umea University 1 0 NULL 0 NULL NULL NULL 0 +102560 0 0 云南三鑫职业技术学院 0 0 高职类 0 民办(专科) 云南 文山壮族苗族自治州 0 +102515 0 0 云南中医药大学 云南中医学院 0 0 医科类 0 本科 云南 昆明市 0 +102534 0 0 云南交通职业技术学院 0 0 高职类 0 示范(高职) 云南 昆明市 0 +105619 0 0 云南交通运输职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102539 0 0 云南体育运动职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +102511 0 0 云南农业大学 0 0 农林类 0 本科 云南 昆明市 0 +102545 0 0 云南农业大学热带作物学院 云南热带作物职业学院 0 0 高职类 0 专科 云南 普洱市 0 +102536 0 0 云南农业职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +105638 0 0 云南医药健康职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102537 0 0 云南司法警官职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102562 0 0 云南商务职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102533 0 0 云南国土资源职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102546 0 0 云南国防工业职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +102549 0 0 云南城市建设职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102567 0 0 云南外事外语职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102509 1 0 云南大学 0 0 综合类 1 本科 云南 昆明市 0 +102573 0 0 云南大学旅游文化学院 0 0 综合类 0 独立学院 云南 丽江市 0 +102571 0 0 云南大学滇池学院 0 0 综合类 0 独立学院 云南 昆明市 0 +102531 0 0 云南工商学院 0 0 财经类 0 民办(本科) 云南 昆明市 0 +102550 0 0 云南工程职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +105613 0 0 云南工贸职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +102516 0 0 云南师范大学 0 0 师范类 0 本科 云南 昆明市 0 +102572 0 0 云南师范大学商学院 0 0 综合类 0 独立学院 云南 昆明市 0 +102576 0 0 云南师范大学文理学院 0 0 师范类 0 独立学院 云南 昆明市 0 +102569 0 0 云南开放大学 0 0 综合类 0 专科(高职) 云南 昆明市 0 +102538 0 0 云南文化艺术职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102556 0 0 云南新兴职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102565 0 0 云南旅游职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102547 0 0 云南机电职业技术学院 0 0 高职类 0 骨干(高职) 云南 昆明市 0 +102548 0 0 云南林业职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +102524 0 0 云南民族大学 0 0 民族类 0 本科 云南 昆明市 0 +105616 0 0 云南水利水电职业学院 0 0 高职类 0 专科 云南 昆明市 0 +105648 0 0 云南特殊教育职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102564 0 0 云南现代职业技术学院 0 0 理工类 0 专科(高职) 云南 楚雄彝族自治州 0 +102540 0 0 云南科技信息职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102530 0 0 云南经济管理学院 0 0 财经类 0 民办(本科) 云南 昆明市 0 +102559 0 0 云南经贸外事职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102544 0 0 云南能源职业技术学院 0 0 高职类 0 专科 云南 曲靖市 0 +102523 0 0 云南艺术学院 0 0 艺术类 0 本科 云南 昆明市 0 +102575 0 0 云南艺术学院文华学院 0 0 艺术类 0 独立学院 云南 昆明市 0 +102527 0 0 云南警官学院 0 0 政法类 0 本科 云南 昆明市 0 +102522 0 0 云南财经大学 0 0 财经类 0 本科 云南 昆明市 0 +105581 0 0 云南财经职业学院 0 0 高职类 0 专科 云南 昆明市 0 +105637 0 0 云南轻纺职业学院 0 0 高职类 0 专科 云南 昆明市 0 +102558 0 0 云南锡业职业技术学院 0 0 高职类 0 专科 云南 红河哈尼族彝族自治州 0 +102036 0 0 五邑大学 0 0 综合类 0 本科 广东 江门市 0 +101351 0 0 井冈山大学 0 0 综合类 0 本科 江西 吉安市 0 +105078 0 0 亚伯泰大学 University of Abertay,Dundee 1 0 NULL 0 NULL NULL NULL 0 +104897 0 0 亚兹德大学 Yazd University 1 0 NULL 0 NULL NULL NULL 0 +103514 0 0 亚利桑那大学 University of Arizona 1 0 NULL 0 NULL NULL NULL 0 +103808 0 0 亚利桑那州立大学 Arizona State University 1 0 NULL 0 NULL NULL NULL 0 +102856 0 0 亚历山大大学 Alexandria University 1 0 NULL 0 NULL NULL NULL 0 +103568 0 0 亚当斯州立学院 Adams State College 1 0 NULL 0 NULL NULL NULL 0 +103491 0 0 亚拉巴马大学 University of Alabama 1 0 NULL 0 NULL NULL NULL 0 +103494 0 0 亚拉巴马大学亨斯维尔校区 1 0 NULL 0 NULL NULL NULL 0 +103493 0 0 亚拉巴马大学伯明翰校区 1 0 NULL 0 NULL NULL NULL 0 +103492 0 0 亚拉巴马大学土斯卡鲁萨主校区 University of Alabama at Tuscaloosa - main campus 1 0 NULL 0 NULL NULL NULL 0 +103578 0 0 亚柏特麦格纳斯学院 Albert Magnus College 1 0 NULL 0 NULL NULL NULL 0 +103365 0 0 亚洲大学 Ajou University 1 0 NULL 0 NULL NULL NULL 0 +103085 0 0 亚琛工业大学 RWTH Aachen University 1 1 NULL 0 NULL NULL NULL 0 +104158 0 0 亚细亚大学 1 0 NULL 0 NULL NULL NULL 0 +104843 0 0 亚里士多德大学 Aristotle University of Thessaloniki 1 0 NULL 0 NULL NULL NULL 0 +104533 0 0 产业技术大学院大学 1 0 NULL 0 NULL NULL NULL 0 +103291 0 0 京仁教育大学 1 0 NULL 0 NULL NULL NULL 0 +103306 0 0 京畿大学 1 0 NULL 0 NULL NULL NULL 0 +104314 0 0 京都光华女子大学 1 0 NULL 0 NULL NULL NULL 0 +104319 0 0 京都创成大学 1 0 NULL 0 NULL NULL NULL 0 +104322 0 0 京都圣母院女子大学 1 0 NULL 0 NULL NULL NULL 0 +104312 0 0 京都外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104616 0 0 京都大学 Kyoto University 1 1 NULL 0 NULL NULL NULL 0 +104317 0 0 京都女子大学 1 0 NULL 0 NULL NULL NULL 0 +104313 0 0 京都学园大学 1 0 NULL 0 NULL NULL NULL 0 +104315 0 0 京都嵯峨艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104674 0 0 京都工艺纤维大学 Kyoto Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104550 0 0 京都市立艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104552 0 0 京都府立医科大学 1 0 NULL 0 NULL NULL NULL 0 +104551 0 0 京都府立大学 1 0 NULL 0 NULL NULL NULL 0 +104604 0 0 京都教育大学 1 0 NULL 0 NULL NULL NULL 0 +104323 0 0 京都文教大学 1 0 NULL 0 NULL NULL NULL 0 +104321 0 0 京都橘大学 1 0 NULL 0 NULL NULL NULL 0 +104316 0 0 京都産业大学 1 0 NULL 0 NULL NULL NULL 0 +104318 0 0 京都精华大学 1 0 NULL 0 NULL NULL NULL 0 +104324 0 0 京都药科大学 1 0 NULL 0 NULL NULL NULL 0 +104320 0 0 京都造形艺术大学 1 0 NULL 0 NULL NULL NULL 0 +101178 0 0 亳州学院 亳州师范高等专科学校 0 0 综合类 0 本科 安徽 亳州市 0 +101192 0 0 亳州职业技术学院 0 0 高职类 0 专科 安徽 亳州市 0 +104124 0 0 人间总合科学大学 1 0 NULL 0 NULL NULL NULL 0 +104282 0 0 人间环境大学 1 0 NULL 0 NULL NULL NULL 0 +103290 0 0 仁川大学 1 0 NULL 0 NULL NULL NULL 0 +103381 0 0 仁济大学 Inje university 1 0 NULL 0 NULL NULL NULL 0 +104305 0 0 仁爱大学 1 0 NULL 0 NULL NULL NULL 0 +103364 0 0 仁荷大学 Inha University 1 0 NULL 0 NULL NULL NULL 0 +104419 0 0 仓敷作阳大学 1 0 NULL 0 NULL NULL NULL 0 +104418 0 0 仓敷艺术科学大学 1 0 NULL 0 NULL NULL NULL 0 +104064 0 0 仙台大学 1 0 NULL 0 NULL NULL NULL 0 +104065 0 0 仙台白百合女子大学 1 0 NULL 0 NULL NULL NULL 0 +101793 0 0 仙桃职业学院 0 0 高职类 0 专科 湖北 省直辖县级行政区划 0 +103382 0 0 代尔夫特理工大学 Delft University of Technology 1 1 NULL 0 NULL NULL NULL 0 +104903 0 0 以色列理工学院 Technion - Israel Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +101266 0 0 仰恩大学 0 0 综合类 0 民办(本科) 福建 泉州市 0 +102035 0 0 仲恺农业工程学院 0 0 农林类 0 本科 广东 广州市 0 +103713 0 0 伊丽莎白城市州立大学 Elizabeth City State University 1 0 NULL 0 NULL NULL NULL 0 +104425 0 0 伊丽莎白音乐大学 1 0 NULL 0 NULL NULL NULL 0 +104780 0 0 伊兹密尔理工学院 Izmir Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +103624 0 0 伊利诺伊大学 University of Illinois 1 0 NULL 0 NULL NULL NULL 0 +103785 0 0 伊利诺伊大学厄本那-香槟分校 University of Illinois at Urbana-Champaign 1 1 NULL 0 NULL NULL NULL 0 +103807 0 0 伊利诺伊大学芝加哥分校 University of Illinois, Chicago (UIC) 1 0 NULL 0 NULL NULL NULL 0 +103830 0 0 伊利诺伊理工学院 Illinois Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +102983 0 0 伊塔茹巴联邦大学 Federal University of Itajubá 1 0 NULL 0 NULL NULL NULL 0 +103056 0 0 伊尔默瑙工业大学 Technische Universität Ilmenau 1 0 NULL 0 NULL NULL NULL 0 +104012 0 0 伊巴丹大学 University of Ibadan 1 0 NULL 0 NULL NULL NULL 0 +103389 0 0 伊拉斯姆斯大学 Erasmus University Rotterdam 1 1 NULL 0 NULL NULL NULL 0 +102944 0 0 伊斯兰堡国立科技大学 National University of Sciences And Technology (NUST) Islamabad 1 0 NULL 0 NULL NULL NULL 0 +104775 0 0 伊斯坦布尔大学 Istanbul University 1 0 NULL 0 NULL NULL NULL 0 +104770 0 0 伊斯坦布尔理工大学 Istanbul Technical University 1 0 NULL 0 NULL NULL NULL 0 +104892 0 0 伊斯法罕大学 University of Isfahan 1 0 NULL 0 NULL NULL NULL 0 +104886 0 0 伊斯法罕理工大学 Isfahan University of Technology 1 0 NULL 0 NULL NULL NULL 0 +100694 0 0 伊春职业学院 0 0 高职类 0 专科 黑龙江 伊春市 0 +104885 0 0 伊朗科技大学 Iran University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103988 0 0 伊比利亚美洲大学 Universidad Iberoamericana (UIA) 1 0 NULL 0 NULL NULL NULL 0 +102781 0 0 伊犁师范大学 伊犁师范学院 0 0 师范类 0 本科 新疆 伊犁哈萨克自治州 0 +102796 0 0 伊犁职业技术学院 0 0 高职类 0 专科 新疆 伊犁哈萨克自治州 0 +104000 0 0 伊达尔戈州立大学 Autonomous University of Hidalgo State (UAEH) 1 0 NULL 0 NULL NULL NULL 0 +102904 0 0 伊迪斯科文大学 Edith Cowan University 1 0 NULL 0 NULL NULL NULL 0 +102894 0 0 伍伦贡大学 University of Wollongong 1 0 NULL 0 NULL NULL NULL 0 +105197 0 0 伍斯特大学 University of Worcester 1 0 NULL 0 NULL NULL NULL 0 +103878 0 0 伍斯特理工学院 Worcester Polytechnic Institute 1 0 NULL 0 NULL NULL NULL 0 +103078 0 0 伍珀塔尔大学 Bergische Universität Wuppertal 1 0 NULL 0 NULL NULL NULL 0 +103162 0 0 伏尔加格勒州立技术大学 Volgograd State Technical University 1 0 NULL 0 NULL NULL NULL 0 +103865 0 0 休斯敦大学 University of Houston 1 0 NULL 0 NULL NULL NULL 0 +104659 0 0 会津大学 University of Aizu 1 0 NULL 0 NULL NULL NULL 0 +105013 0 0 伦敦传播学院 1 0 NULL 0 NULL NULL NULL 0 +105147 0 0 伦敦南岸大学 London South Bank University 1 0 NULL 0 NULL NULL NULL 0 +105173 0 0 伦敦商学院 London Business School 1 0 NULL 0 NULL NULL NULL 0 +105348 0 0 伦敦国王学院 King's College London 1 1 NULL 0 NULL NULL NULL 0 +105119 0 0 伦敦城市大学 City, University of London 1 0 NULL 0 NULL NULL NULL 0 +105032 0 0 伦敦大学 University of London 1 0 NULL 0 NULL NULL NULL 0 +105047 0 0 伦敦大学亚非学院 School of Oriental and African Studies 1 0 NULL 0 NULL NULL NULL 0 +105038 0 0 伦敦大学伦敦商学院 London Business School 1 0 NULL 0 NULL NULL NULL 0 +105039 0 0 伦敦大学伦敦政治经济学院 London School of Economics and Political Science 1 0 NULL 0 NULL NULL NULL 0 +105117 0 0 伦敦大学伯克贝克学院 Birkbeck, University of London 1 0 NULL 0 NULL NULL NULL 0 +105033 0 0 伦敦大学伯贝克学院 Birkbeck, University Of London  1 0 NULL 0 NULL NULL NULL 0 +105040 0 0 伦敦大学卫生及热带医学学院 London School of Hygiene and Tropical Medicine 1 0 NULL 0 NULL NULL NULL 0 +105036 0 0 伦敦大学哲学及神学专科学院 Heythrop College 1 0 NULL 0 NULL NULL NULL 0 +105090 0 0 伦敦大学国王学院 King's College London 1 0 NULL 0 NULL NULL NULL 0 +105045 0 0 伦敦大学圣乔治医学院 St George's, University of London  1 0 NULL 0 NULL NULL NULL 0 +105154 0 0 伦敦大学圣乔治学院 St George’s, University of London 1 0 NULL 0 NULL NULL NULL 0 +105044 0 0 伦敦大学城市学院 City, University of London 1 0 NULL 0 NULL NULL NULL 0 +105048 0 0 伦敦大学学院 University College London  1 1 NULL 0 NULL NULL NULL 0 +105037 0 0 伦敦大学教育学院 Institute of Education  1 0 NULL 0 NULL NULL NULL 0 +105171 0 0 伦敦大学热带医学院 London School of Hygiene & Tropical Medicine 1 0 NULL 0 NULL NULL NULL 0 +105100 0 0 伦敦大学玛丽女王学院 Queen Mary University of London 1 0 NULL 0 NULL NULL NULL 0 +105043 0 0 伦敦大学皇家霍洛威学院 Royal Holloway  1 0 NULL 0 NULL NULL NULL 0 +105034 0 0 伦敦大学科陶德美术学院 Courtauld Institute of Art 1 0 NULL 0 NULL NULL NULL 0 +105125 0 0 伦敦大学金史密斯学院 Goldsmiths, University of London 1 0 NULL 0 NULL NULL NULL 0 +105035 0 0 伦敦大学金斯密斯学院 Goldsmiths College 1 0 NULL 0 NULL NULL NULL 0 +105027 0 0 伦敦帝国学院 Imperial College London 1 1 NULL 0 NULL NULL NULL 0 +105093 0 0 伦敦政治经济学院 London School of Economics and Political Science (LSE) 1 1 NULL 0 NULL NULL NULL 0 +105014 0 0 伦敦时装学院 1 0 NULL 0 NULL NULL NULL 0 +105248 0 0 伦敦玛丽女王大学 Queen Mary, University of London 1 0 NULL 0 NULL NULL NULL 0 +105041 0 0 伦敦玛丽王后大学 Queen Mary University of London  1 0 NULL 0 NULL NULL NULL 0 +105361 0 0 伦敦玛丽皇后大学 Queen Mary University of London 1 1 NULL 0 NULL NULL NULL 0 +105063 0 0 伦敦皇家内科医学院 Royal College of Physicians 1 0 NULL 0 NULL NULL NULL 0 +105195 0 0 伦敦艺术大学 University of the Arts London 1 0 NULL 0 NULL NULL NULL 0 +105138 0 0 伦敦都会大学 London Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +105050 0 0 伦敦都市大学 London Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +103824 0 0 伦斯勒理工学院 Rensselaer Polytechnic Institute 1 0 NULL 0 NULL NULL NULL 0 +102980 0 0 伯南布哥联邦大学 Universidade Federal de Pernambuco (UFPE) 1 0 NULL 0 NULL NULL NULL 0 +104728 0 0 伯尔尼大学 University of Bern 1 0 NULL 0 NULL NULL NULL 0 +105186 0 0 伯恩茅斯艺术学院 Arts University Bournemouth 1 0 NULL 0 NULL NULL NULL 0 +105201 0 0 伯明翰城市大学 Birmingham City University 1 0 NULL 0 NULL NULL NULL 0 +105017 0 0 伯明翰大学 University of Birmingham,Birmingham University 1 1 NULL 0 NULL NULL NULL 0 +103690 0 0 伯米吉州立大学 Bemidji State University 1 0 NULL 0 NULL NULL NULL 0 +103507 0 0 伯罕南方学院 Birmingham-Southern College 1 0 NULL 0 NULL NULL NULL 0 +103653 0 0 伯里亚学院 Berea College 1 0 NULL 0 NULL NULL NULL 0 +103834 0 0 佐治亚大学 The University of Georgia 1 0 NULL 0 NULL NULL NULL 0 +103888 0 0 佐治亚州立大学 Georgia State University 1 0 NULL 0 NULL NULL NULL 0 +103786 0 0 佐治亚理工学院 Georgia Institute of Technology 1 1 NULL 0 NULL NULL NULL 0 +104679 0 0 佐贺大学 Saga University 1 0 NULL 0 NULL NULL NULL 0 +107 0 0 佛山广播电视大学 FOSHAN RADIO & TV UNIVERSITY 佛山电大 0 0 综合类 0 专科(高职) 广东 佛山市 0 +102042 0 0 佛山科学技术学院 0 0 综合类 0 本科 广东 佛山市 0 +102067 0 0 佛山职业技术学院 0 0 高职类 0 专科 广东 佛山市 0 +104328 0 0 佛教大学 1 0 NULL 0 NULL NULL NULL 0 +102931 0 0 佛林德斯大学 Flinders University 1 0 NULL 0 NULL NULL NULL 0 +104919 0 0 佛罗伦萨大学 University of Florence 1 0 NULL 0 NULL NULL NULL 0 +103602 0 0 佛罗利达亚特兰大大学 Florida Atlantic University 1 0 NULL 0 NULL NULL NULL 0 +103601 0 0 佛罗利达农工大学 Florida Agricultural and Mechanical University 1 0 NULL 0 NULL NULL NULL 0 +103606 0 0 佛罗利达南方大学 Florida Southern College 1 0 NULL 0 NULL NULL NULL 0 +103603 0 0 佛罗利达国际大学 Florida International University 1 0 NULL 0 NULL NULL NULL 0 +103597 0 0 佛罗利达大学 University of Florida 1 0 NULL 0 NULL NULL NULL 0 +103598 0 0 佛罗利达州立大学 Florida State University 1 0 NULL 0 NULL NULL NULL 0 +103605 0 0 佛罗利达理工学院 Florida Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +103887 0 0 佛罗里达国际大学 Florida International University 1 0 NULL 0 NULL NULL NULL 0 +103803 0 0 佛罗里达大学 University of Florida 1 0 NULL 0 NULL NULL NULL 0 +103930 0 0 佛罗里达大西洋大学 Florida Atlantic University 1 0 NULL 0 NULL NULL NULL 0 +103839 0 0 佛罗里达州立大学 Florida State University 1 0 NULL 0 NULL NULL NULL 0 +103931 0 0 佛罗里达理工学院 Florida Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +103862 0 0 佛蒙特大学 University of Vermont 1 0 NULL 0 NULL NULL NULL 0 +104091 0 0 作新学院大学 1 0 NULL 0 NULL NULL NULL 0 +102985 0 0 佩勒塔斯联邦大学 Federal University of Pelotas 1 0 NULL 0 NULL NULL NULL 0 +104875 0 0 佩奇大学 University of Pécs 1 0 NULL 0 NULL NULL NULL 0 +105082 0 0 佩斯利大学 University of Paisley 1 0 NULL 0 NULL NULL NULL 0 +103548 0 0 佩珀代因大学 Pepperdine University 1 0 NULL 0 NULL NULL NULL 0 +104931 0 0 佩鲁贾大学 Università degli Studi di Perugia 1 0 NULL 0 NULL NULL NULL 0 +100663 0 0 佳木斯大学 0 0 综合类 0 本科 黑龙江 佳木斯市 0 +100750 0 0 佳木斯市教育学院 0 0 师范类 0 专科(高职) 黑龙江 佳木斯市 0 +100730 0 0 佳木斯职业学院 0 0 高职类 0 专科 黑龙江 佳木斯市 0 +103902 0 0 俄亥俄大学 Ohio University 1 0 NULL 0 NULL NULL NULL 0 +103788 0 0 俄亥俄州立大学 The Ohio State University 1 1 NULL 0 NULL NULL NULL 0 +103855 0 0 俄克拉荷马大学 University of Oklahoma 1 0 NULL 0 NULL NULL NULL 0 +103903 0 0 俄克拉荷马州立大学 Oklahoma State University 1 0 NULL 0 NULL NULL NULL 0 +103914 0 0 俄勒冈健康科学大学 Oregon Health and Science University 1 0 NULL 0 NULL NULL NULL 0 +103861 0 0 俄勒冈大学 University of Oregon 1 0 NULL 0 NULL NULL NULL 0 +103840 0 0 俄勒冈州立大学 Oregon State University 1 0 NULL 0 NULL NULL NULL 0 +103454 0 0 俄斯特拉法大学 University of Ostrava 1 0 NULL 0 NULL NULL NULL 0 +103457 0 0 俄斯特拉法工业大学 VŠB - Technical University of Ostrava 1 0 NULL 0 NULL NULL NULL 0 +103146 0 0 俄罗斯友谊大学 RUDN University 1 0 NULL 0 NULL NULL NULL 0 +103158 0 0 俄罗斯国立电子技术大学 National Research University of Electronic Technology (MIET) 1 0 NULL 0 NULL NULL NULL 0 +103145 0 0 俄罗斯国立科技大学 The National University of Science and Technology MISIS 1 0 NULL 0 NULL NULL NULL 0 +103153 0 0 俄罗斯经济大学 Plekhanov Russian University of Economics 1 0 NULL 0 NULL NULL NULL 0 +103156 0 0 俄罗斯高等经济学院 Higher School of Economics 1 0 NULL 0 NULL NULL NULL 0 +100194 0 0 保定学院 0 0 师范类 0 本科 河北 保定市 0 +100280 0 0 保定幼儿师范高等专科学校 0 0 高职类 0 专科 河北 保定市 0 +100252 0 0 保定电力职业技术学院 0 0 高职类 0 专科 河北 保定市 0 +100237 0 0 保定职业技术学院 0 0 高职类 0 专科 河北 保定市 0 +102553 0 0 保山中医药高等专科学校 0 0 高职类 0 专科 云南 保山市 0 +102520 0 0 保山学院 0 0 综合类 0 本科 云南 保山市 0 +101924 0 0 保险职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +104656 0 0 信州大学 Shinshu University 1 0 NULL 0 NULL NULL NULL 0 +101620 0 0 信阳农林学院 0 0 农林类 0 本科 河南 信阳市 0 +101734 0 0 信阳学院 信阳师范学院华锐学院 0 0 综合类 0 民办(本科) 河南 信阳市 0 +101607 0 0 信阳师范学院 0 0 师范类 0 本科 河南 信阳市 0 +101699 0 0 信阳涉外职业技术学院 0 0 高职类 0 民办(专科) 河南 信阳市 0 +101668 0 0 信阳职业技术学院 0 0 高职类 0 专科 河南 信阳市 0 +105649 0 0 信阳航空职业学院 0 0 高职类 0 民办(专科) 河南 信阳市 0 +104210 0 0 健康科学大学 1 0 NULL 0 NULL NULL NULL 0 +103265 0 0 光云大学 1 0 NULL 0 NULL NULL NULL 0 +103297 0 0 光州教育大学 1 0 NULL 0 NULL NULL NULL 0 +105260 0 0 光州科学技术研究所 Gwangju Institute of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103354 0 0 光州科技学院 Gwangju Institute of Science and Technology (GIST) 1 0 NULL 0 NULL NULL NULL 0 +104242 0 0 光産业创成大学院大学 1 0 NULL 0 NULL NULL NULL 0 +103039 0 0 克劳斯塔尔工业大学 Technische Universität Clausthal 1 0 NULL 0 NULL NULL NULL 0 +103849 0 0 克拉克大学 Clark University 1 0 NULL 0 NULL NULL NULL 0 +103869 0 0 克拉克森大学 Clarkson University 1 0 NULL 0 NULL NULL NULL 0 +102881 0 0 克拉根福大学 Alpen-Adria-Universitaet Klagenfurt 1 0 NULL 0 NULL NULL NULL 0 +102791 0 0 克拉玛依职业技术学院 0 0 高职类 0 示范(高职) 新疆 克拉玛依市 0 +105022 0 0 克莱菲尔德大学 Cranfield University 1 0 NULL 0 NULL NULL NULL 0 +103549 0 0 克莱蒙学院 Claremont Colleges 1 0 NULL 0 NULL NULL NULL 0 +103879 0 0 克莱蒙森大学 Clemson University 1 0 NULL 0 NULL NULL NULL 0 +103553 0 0 克莱蒙特麦肯纳学院 Claremont McKenna College, CMC 1 0 NULL 0 NULL NULL NULL 0 +103550 0 0 克莱蒙研究大学 Claremont Graduate University, CGU 1 0 NULL 0 NULL NULL NULL 0 +104845 0 0 克里特大学 University of Crete 1 0 NULL 0 NULL NULL NULL 0 +103923 0 0 克雷顿大学 Creighton University 1 0 NULL 0 NULL NULL NULL 0 +101579 0 0 兖州矿区职工大学 0 0 其他 0 专科(高职) 山东 邹城市 0 +103359 0 0 全北国立大学 Chonbuk National University 1 0 NULL 0 NULL NULL NULL 0 +103363 0 0 全南国立大学 Chonnam National University 1 0 NULL 0 NULL NULL NULL 0 +103296 0 0 全南大学 1 0 NULL 0 NULL NULL NULL 0 +103328 0 0 全州大学 1 0 NULL 0 NULL NULL NULL 0 +104056 0 0 八户大学 1 0 NULL 0 NULL NULL NULL 0 +104057 0 0 八户工业大学 1 0 NULL 0 NULL NULL NULL 0 +104208 0 0 八洲学园大学 1 0 NULL 0 NULL NULL NULL 0 +103725 0 0 公园分校 Pennsylvania State University, University Park 1 0 NULL 0 NULL NULL NULL 0 +101029 0 0 公安海警学院 0 0 政法类 0 本科 浙江 宁波市 0 +105634 0 0 公安消防部队高等专科学校 0 0 NULL 0 其他 云南 昆明市 0 +105640 0 0 公安边防部队高等专科学校 0 0 政法类 0 其他 广东 广州市 0 +103322 0 0 公州大学 1 0 NULL 0 NULL NULL NULL 0 +103323 0 0 公州教育大学 1 0 NULL 0 NULL NULL NULL 0 +104511 0 0 公立函馆未来大学 1 0 NULL 0 NULL NULL NULL 0 +104560 0 0 公立鸟取环境大学 1 0 NULL 0 NULL NULL NULL 0 +101171 0 0 六安职业技术学院 0 0 高职类 0 专科 安徽 六安市 0 +102465 0 0 六盘水师范学院 0 0 师范类 0 本科 贵州 六盘水市 0 +105599 0 0 六盘水幼儿师范高等专科学校 0 0 高职类 0 专科 贵州 六盘水市 0 +102481 0 0 六盘水职业技术学院 0 0 高职类 0 专科 贵州 六盘水市 0 +105101 0 0 兰卡斯特大学 Lancaster University 1 0 NULL 0 NULL NULL NULL 0 +102695 0 0 兰州交通大学 0 0 理工类 0 本科 甘肃 兰州市 0 +102738 0 0 兰州交通大学博文学院 0 0 综合类 0 独立学院 甘肃 兰州市 0 +102699 0 0 兰州城市学院 0 0 综合类 0 本科 甘肃 兰州市 0 +102714 0 0 兰州外语职业学院 0 0 高职类 0 民办(专科) 甘肃 兰州市 0 +102692 2 0 兰州大学 0 0 综合类 1 本科 甘肃 兰州市 1 +102707 0 0 兰州工业学院 0 0 理工类 0 本科 甘肃 兰州市 0 +102706 0 0 兰州文理学院 0 0 综合类 0 本科 甘肃 兰州市 0 +102735 0 0 兰州服装职工大学 0 0 其他 0 专科(高职) 甘肃 兰州市 0 +105565 0 0 兰州现代职业学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102694 0 0 兰州理工大学 0 0 理工类 0 本科 甘肃 兰州市 0 +102740 0 0 兰州理工大学技术工程学院 0 0 理工类 0 独立学院 甘肃 兰州市 0 +102708 0 0 兰州石化职业技术学院 0 0 高职类 0 示范(高职) 甘肃 兰州市 0 +102729 0 0 兰州科技职业学院 0 0 高职类 0 民办(专科) 甘肃 兰州市 0 +102715 0 0 兰州职业技术学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102730 0 0 兰州航空工业职工大学 0 0 综合类 0 专科(高职) 甘肃 兰州市 0 +102703 0 0 兰州财经大学 兰州商学院 0 0 财经类 0 本科 甘肃 兰州市 0 +102739 0 0 兰州财经大学长青学院 兰州商学院长青学院 0 0 财经类 0 独立学院 甘肃 兰州市 0 +102737 0 0 兰州财经大学陇桥学院 兰州商学院陇桥学院 0 0 综合类 0 独立学院 甘肃 兰州市 0 +102721 0 0 兰州资源环境职业技术学院 0 0 理工类 0 专科(高职) 甘肃 兰州市 0 +102731 0 0 兰州铁路工程职工大学 0 0 其他 0 专科(高职) 甘肃 兰州市 0 +105363 0 0 兰开斯特大学 Lancaster University 1 1 NULL 0 NULL NULL NULL 0 +104860 0 0 共和理工学院 Republic Polytechnic 1 0 NULL 0 NULL NULL NULL 0 +104097 0 0 共爱学园前桥国际大学 1 0 NULL 0 NULL NULL NULL 0 +104165 0 0 共立女子大学 1 0 NULL 0 NULL NULL NULL 0 +104166 0 0 共立药科大学 1 0 NULL 0 NULL NULL NULL 0 +104109 0 0 共荣大学 1 0 NULL 0 NULL NULL NULL 0 +101414 0 0 共青科技职业学院 0 0 高职类 0 民办(专科) 江西 九江市 0 +104096 0 0 关东学园大学 1 0 NULL 0 NULL NULL NULL 0 +104193 0 0 关东学院大学 1 0 NULL 0 NULL NULL NULL 0 +104356 0 0 关西医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104671 0 0 关西医科大学 Kansai Medical University 1 0 NULL 0 NULL NULL NULL 0 +104378 0 0 关西国际大学 1 0 NULL 0 NULL NULL NULL 0 +104355 0 0 关西外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104697 0 0 关西大学 Kansai University 1 0 NULL 0 NULL NULL NULL 0 +104699 0 0 关西学院大学 Kwansei Gakuin University 1 0 NULL 0 NULL NULL NULL 0 +104377 0 0 关西福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104357 0 0 关西福祉科学大学 1 0 NULL 0 NULL NULL NULL 0 +102457 0 0 兴义民族师范学院 0 0 师范类 0 本科 贵州 黔西南布依族苗族自治州 0 +100413 0 0 兴安职业技术学院 0 0 高职类 0 专科 内蒙 兴安盟 0 +104402 0 0 兵库医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104401 0 0 兵库医科大学 1 0 NULL 0 NULL NULL NULL 0 +104557 0 0 兵库县立大学 1 0 NULL 0 NULL NULL NULL 0 +104694 0 0 兵库大学 University of Hyogo 1 0 NULL 0 NULL NULL NULL 0 +104607 0 0 兵库教育大学 1 0 NULL 0 NULL NULL NULL 0 +103456 0 0 兹林大学 Tomas Bata University in Zlín 1 0 NULL 0 NULL NULL NULL 0 +100267 0 0 冀中职业学院 0 0 高职类 0 专科 河北 保定市 0 +103974 0 0 内华达大学拉斯维加斯分校 University of Nevada-Las Vegas 1 0 NULL 0 NULL NULL NULL 0 +103973 0 0 内华达大学雷诺分校 University of Nevada - Reno 1 0 NULL 0 NULL NULL NULL 0 +103918 0 0 内布拉斯加大学医学中心 University of Nebraska Medical Center 1 0 NULL 0 NULL NULL NULL 0 +103854 0 0 内布拉斯加大学林肯分校 University of Nebraska-Lincoln 1 0 NULL 0 NULL NULL NULL 0 +102344 0 0 内江师范学院 0 0 师范类 0 本科 四川 内江市 0 +1494 0 0 内江广播电视大学 NEIJIANG RADIO&TV UNIVERSITY 内江电大 0 0 综合类 0 专科(高职) 四川 内江市 0 +102374 0 0 内江职业技术学院 0 0 高职类 0 专科 四川 内江市 0 +105288 0 0 内盖夫本-古里安大学 Ben-Gurion University of the Negev 1 0 NULL 0 NULL NULL NULL 0 +103464 0 0 内罗毕大学 University of Nairobi 1 0 NULL 0 NULL NULL NULL 0 +100411 0 0 内蒙古丰州职业学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100426 0 0 内蒙古交通职业技术学院 0 0 高职类 0 专科 内蒙 赤峰市 0 +100422 0 0 内蒙古体育职业学院 0 0 高职类 0 专科 内蒙 呼和浩特市 0 +100400 0 0 内蒙古农业大学 0 0 农林类 0 本科 内蒙 呼和浩特市 0 +100418 0 0 内蒙古化工职业学院 0 0 高职类 0 骨干(高职) 内蒙 呼和浩特市 0 +100430 0 0 内蒙古北方职业技术学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100401 0 0 内蒙古医科大学 0 0 医科类 0 本科 内蒙 呼和浩特市 0 +100419 0 0 内蒙古商贸职业学院 0 0 高职类 0 专科 内蒙 呼和浩特市 0 +100397 1 0 内蒙古大学 0 0 综合类 1 本科 内蒙 呼和浩特市 0 +100447 0 0 内蒙古大学创业学院 0 0 综合类 0 独立学院 内蒙古 呼和浩特市 0 +100399 0 0 内蒙古工业大学 0 0 理工类 0 本科 内蒙 呼和浩特市 0 +100436 0 0 内蒙古工业职业学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100402 0 0 内蒙古师范大学 0 0 师范类 0 本科 内蒙 呼和浩特市 0 +100448 0 0 内蒙古师范大学鸿德学院 0 0 师范类 0 独立学院 内蒙古 呼和浩特市 0 +139 0 0 内蒙古广播电视大学 INNER MONGOLIA RADIO & TV UNIVERSITY 内蒙古电大 0 0 综合类 0 专科(高职) 内蒙古 呼和浩特市 0 +100410 0 0 内蒙古建筑职业技术学院 0 0 高职类 0 示范(高职) 内蒙 呼和浩特市 0 +100417 0 0 内蒙古机电职业技术学院 0 0 高职类 0 骨干(高职) 内蒙 呼和浩特市 0 +100403 0 0 内蒙古民族大学 0 0 民族类 0 本科 内蒙 通辽市 0 +100443 0 0 内蒙古民族幼儿师范高等专科学校 0 0 高职类 0 专科 内蒙 鄂尔多斯市 0 +100416 0 0 内蒙古电子信息职业技术学院 0 0 高职类 0 专科 内蒙 呼和浩特市 0 +100398 0 0 内蒙古科技大学 0 0 综合类 0 本科 内蒙 包头市 0 +105383 0 0 内蒙古科技大学包头医学院 0 0 医药类 0 普通本科 内蒙古 包头市 0 +105389 0 0 内蒙古科技大学包头师范学院 0 0 师范类 0 独立学院 内蒙 包头市 0 +100429 0 0 内蒙古科技职业学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100432 0 0 内蒙古经贸外语职业学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100442 0 0 内蒙古美术职业学院 0 0 高职类 0 民办(专科) 内蒙 巴彦淖尔市 0 +100439 0 0 内蒙古能源职业学院 0 0 高职类 0 民办(专科) 内蒙 呼和浩特市 0 +100446 0 0 内蒙古自治区广播电视大学 0 0 综合类 0 专科(高职) 内蒙古 呼和浩特市 0 +105536 0 0 内蒙古艺术学院 0 0 艺术类 0 本科 内蒙 呼和浩特市 0 +100421 0 0 内蒙古警察职业学院 0 0 高职类 0 专科 内蒙 呼和浩特市 0 +100405 0 0 内蒙古财经大学 0 0 财经类 0 本科 内蒙 呼和浩特市 0 +104562 0 0 冈山县立大学 1 0 NULL 0 NULL NULL NULL 0 +104412 0 0 冈山商科大学 1 0 NULL 0 NULL NULL NULL 0 +104631 0 0 冈山大学 Okayama University 1 0 NULL 0 NULL NULL NULL 0 +104411 0 0 冈山学院大学 1 0 NULL 0 NULL NULL NULL 0 +104413 0 0 冈山理科大学 1 0 NULL 0 NULL NULL NULL 0 +103007 0 0 冰岛大学 University of Iceland 1 0 NULL 0 NULL NULL NULL 0 +104507 0 0 冲縄国际大学 1 0 NULL 0 NULL NULL NULL 0 +104506 0 0 冲縄基督教学院大学 1 0 NULL 0 NULL NULL NULL 0 +104505 0 0 冲縄大学 1 0 NULL 0 NULL NULL NULL 0 +104581 0 0 冲绳县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104582 0 0 冲绳县立艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104508 0 0 冲绳科学技术大学院大学 1 0 NULL 0 NULL NULL NULL 0 +103207 0 0 凡尔赛大学 Université de Versailles Saint-Quentin-en-Yvelines 1 0 NULL 0 NULL NULL NULL 0 +103551 0 0 凯克应用生命科学研究院 Keck Graduate Institute of Applied Life Sciences 1 0 NULL 0 NULL NULL NULL 0 +103682 0 0 凯尔文学院 Calvin College 1 0 NULL 0 NULL NULL NULL 0 +103058 0 0 凯撒斯劳滕工业大学 Technische Universität Kaiserslautern 1 0 NULL 0 NULL NULL NULL 0 +103810 0 0 凯斯西储大学 Case Western Reserve University 1 0 NULL 0 NULL NULL NULL 0 +103125 0 0 凯泽斯劳滕工业大学 University of Kaiserslautern 1 0 NULL 0 NULL NULL NULL 0 +102460 0 0 凯里学院 0 0 师范类 0 本科 贵州 黔东南苗族侗族自治州 0 +104039 0 0 函馆大学 1 0 NULL 0 NULL NULL NULL 0 +105012 0 0 切尔西艺术与设计学院 1 0 NULL 0 NULL NULL NULL 0 +104773 0 0 切库罗瓦大学 Cukurova University 1 0 NULL 0 NULL NULL NULL 0 +105188 0 0 切斯特大学 University of Chester 1 0 NULL 0 NULL NULL NULL 0 +103004 0 0 列日大学 Université de Liège 1 0 NULL 0 NULL NULL NULL 0 +104167 0 0 创价大学 1 0 NULL 0 NULL NULL NULL 0 +105180 0 0 创意艺术大学 University for the Creative Arts 1 0 NULL 0 NULL NULL NULL 0 +104100 0 0 创造学园大学 1 0 NULL 0 NULL NULL NULL 0 +105191 0 0 利兹三一大学 Leeds Trinity University 1 0 NULL 0 NULL NULL NULL 0 +105098 0 0 利兹大学 University of Leeds 1 1 NULL 0 NULL NULL NULL 0 +105164 0 0 利兹贝克特大学 Leeds Beckett University 1 0 NULL 0 NULL NULL NULL 0 +105030 0 0 利兹都市大学 Leeds Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +105029 0 0 利兹音乐学院 Leeds College of Music 1 0 NULL 0 NULL NULL NULL 0 +104801 0 0 利沃夫国立大学 Ivan Franko National University of Lviv 1 0 NULL 0 NULL NULL NULL 0 +104802 0 0 利沃夫国立理工大学 Lviv Polytechnic National University 1 0 NULL 0 NULL NULL NULL 0 +105107 0 0 利物浦大学 University of Liverpool 1 0 NULL 0 NULL NULL NULL 0 +105185 0 0 利物浦希望大学 Liverpool Hope University 1 0 NULL 0 NULL NULL NULL 0 +105031 0 0 利物浦约翰.摩尔大学 Liverpool John Moores University 1 0 NULL 0 NULL NULL NULL 0 +105159 0 0 利物浦约翰摩尔斯大学 Liverpool John Moores University 1 0 NULL 0 NULL NULL NULL 0 +103459 0 0 利贝雷茨工业大学 Technical University of Liberec 1 0 NULL 0 NULL NULL NULL 0 +102868 0 0 利默里克大学 University of Limerick 1 0 NULL 0 NULL NULL NULL 0 +104494 0 0 别府大学 1 0 NULL 0 NULL NULL NULL 0 +104495 0 0 别府大学短期大学部 1 0 NULL 0 NULL NULL NULL 0 +104527 0 0 前桥工科大学 1 0 NULL 0 NULL NULL NULL 0 +105087 0 0 剑桥大学 University of Cambridge 1 1 NULL 0 NULL NULL NULL 0 +105239 0 0 加利福尼亚大学伯克利分校 University of California, Berkeley 1 0 NULL 0 NULL NULL NULL 0 +105241 0 0 加利福尼亚大学圣迭戈分校 University of California, San Diego 1 0 NULL 0 NULL NULL NULL 0 +105240 0 0 加利福尼亚大学洛杉矶分校 University of California, Los Angeles 1 0 NULL 0 NULL NULL NULL 0 +103910 0 0 加利福尼亚太平洋大学 University of the Pacific 1 0 NULL 0 NULL NULL NULL 0 +104967 0 0 加尔各答大学 University of Calcutta 1 0 NULL 0 NULL NULL NULL 0 +103305 0 0 加尔文大学 1 0 NULL 0 NULL NULL NULL 0 +103776 0 0 加州大学伯克利分校 University of California, Berkeley (UCB) 1 1 NULL 0 NULL NULL NULL 0 +103817 0 0 加州大学圣克鲁兹分校 University of California, Santa Cruz 1 0 NULL 0 NULL NULL NULL 0 +103778 0 0 加州大学圣地亚哥分校 University of California, San Diego (UCSD) 1 1 NULL 0 NULL NULL NULL 0 +103795 0 0 加州大学圣塔芭芭拉分校 University of California, Santa Barbara (UCSB) 1 1 NULL 0 NULL NULL NULL 0 +103800 0 0 加州大学尔湾分校 University of California, Irvine 1 0 NULL 0 NULL NULL NULL 0 +103793 0 0 加州大学戴维斯分校 University of California, Davis 1 1 NULL 0 NULL NULL NULL 0 +103942 0 0 加州大学旧金山分校 University of California, San Francisco 1 0 NULL 0 NULL NULL NULL 0 +103820 0 0 加州大学河滨分校 University of California, Riverside 1 0 NULL 0 NULL NULL NULL 0 +103777 0 0 加州大学洛杉矶分校 University of California, Los Angeles (UCLA) 1 1 NULL 0 NULL NULL NULL 0 +103971 0 0 加州大学默塞德分校 University of California-Merced 1 0 NULL 0 NULL NULL NULL 0 +103518 0 0 加州州立大学 California State University 1 0 NULL 0 NULL NULL NULL 0 +103527 0 0 加州州立大学东湾 California State University, East Bay 1 0 NULL 0 NULL NULL NULL 0 +103533 0 0 加州州立大学北岭分校 California State University, Northridge 1 0 NULL 0 NULL NULL NULL 0 +103537 0 0 加州州立大学史坦尼斯劳斯 California State University, Stanislaus 1 0 NULL 0 NULL NULL NULL 0 +103535 0 0 加州州立大学圣贝纳迪诺 California State University, San Bernardino 1 0 NULL 0 NULL NULL NULL 0 +103536 0 0 加州州立大学圣马可斯 California State University, San Marcos 1 0 NULL 0 NULL NULL NULL 0 +103526 0 0 加州州立大学多明格斯山分校 California State University, Dominguez Hills 1 0 NULL 0 NULL NULL NULL 0 +103525 0 0 加州州立大学奇科分校 California State University, Chico 1 0 NULL 0 NULL NULL NULL 0 +103529 0 0 加州州立大学富勒顿分校 California State University, Fullerton 1 0 NULL 0 NULL NULL NULL 0 +103528 0 0 加州州立大学弗雷斯诺分校 California State University, Fresno 1 0 NULL 0 NULL NULL NULL 0 +103531 0 0 加州州立大学洛杉矶 California State University, Los Angeles 1 0 NULL 0 NULL NULL NULL 0 +103524 0 0 加州州立大学海峡群岛分校 California State University, Channel Islands 1 0 NULL 0 NULL NULL NULL 0 +103534 0 0 加州州立大学萨克拉门托 California State University, Sacramento 1 0 NULL 0 NULL NULL NULL 0 +103532 0 0 加州州立大学蒙特利湾分校 California State University, Monterey Bay 1 0 NULL 0 NULL NULL NULL 0 +103523 0 0 加州州立大学贝克斯菲尔德分校 California State University, Bakersfield 1 0 NULL 0 NULL NULL NULL 0 +103530 0 0 加州州立大学长滩分校 California State University, Long Beach 1 0 NULL 0 NULL NULL NULL 0 +103938 0 0 加州州立理工大学 California Polytechnic State University-San Luis Obispo 1 0 NULL 0 NULL NULL NULL 0 +103522 0 0 加州州立理工大学波莫那 California State Polytechnic University, Pomona 1 0 NULL 0 NULL NULL NULL 0 +103520 0 0 加州海事学校 California Maritime Academy 1 0 NULL 0 NULL NULL NULL 0 +103543 0 0 加州理工学院 California Institute of Technology, Caltech 1 1 NULL 0 NULL NULL NULL 0 +103521 0 0 加州理工州立大学 California Polytechnic State University 1 0 NULL 0 NULL NULL NULL 0 +102998 0 0 加州索非亚大学 Sofia University 1 0 NULL 0 NULL NULL NULL 0 +103436 0 0 加拿大主教大学 Bishop's 1 0 NULL 0 NULL NULL NULL 0 +103427 0 0 加拿大协和大学 Concordia 1 0 NULL 0 NULL NULL NULL 0 +103434 0 0 加拿大圣玛丽大学 Saint Mary's 1 0 NULL 0 NULL NULL NULL 0 +103411 0 0 加拿大约克大学 York University 1 0 NULL 0 NULL NULL NULL 0 +103408 0 0 加拿大维多利亚大学 University of Victoria 1 0 NULL 0 NULL NULL NULL 0 +105003 0 0 加札马达大学 Gadjah Mada University 1 0 NULL 0 NULL NULL NULL 0 +104811 0 0 加泰罗尼亚理工大学 Universitat Politècnica de Catalunya 1 0 NULL 0 NULL NULL NULL 0 +103446 0 0 加纳大学 University of Ghana 1 0 NULL 0 NULL NULL NULL 0 +105252 0 0 加齐大学 Gazi University 1 0 NULL 0 NULL NULL NULL 0 +103437 0 0 劳伦森大学 Laurentian 1 0 NULL 0 NULL NULL NULL 0 +103426 0 0 劳里埃大学 Wilfrid Laurier 1 0 NULL 0 NULL NULL NULL 0 +103210 0 0 勃艮第大学 Université Bourgogne Franche-Comté (UBFC) 1 0 NULL 0 NULL NULL NULL 0 +100445 0 0 包头市职工大学 0 0 综合类 0 专科(高职) 内蒙古 包头市 0 +100412 0 0 包头职业技术学院 0 0 高职类 0 示范(高职) 内蒙 包头市 0 +100415 0 0 包头轻工职业技术学院 0 0 高职类 0 专科 内蒙 包头市 0 +100427 0 0 包头钢铁职业技术学院 0 0 高职类 0 专科 内蒙 包头市 0 +100433 0 0 包头铁道职业技术学院 0 0 高职类 0 专科 内蒙 包头市 0 +104872 0 0 匈牙利罗兰大学 Eötvös Lorànd University 1 0 NULL 0 NULL NULL NULL 0 +104571 0 0 北九州市立大学 1 0 NULL 0 NULL NULL NULL 0 +103919 0 0 北亚利桑那大学 Northern Arizona University 1 0 NULL 0 NULL NULL NULL 0 +103502 0 0 北亚拉巴马大学 1 0 NULL 0 NULL NULL NULL 0 +104073 0 0 北亚细亚大学 1 0 NULL 0 NULL NULL NULL 0 +105422 0 0 北京东方大学 0 0 综合类 0 普通本科 北京 北京市 0 +105546 0 0 北京东方研修学院 0 0 NULL 0 其他 北京 北京市 0 +100022 1 0 北京中医药大学 0 0 医科类 1 本科 北京 北京市 0 +100304 0 0 北京中医药大学东方学院 0 0 医科类 0 独立学院 河北 廊坊市 0 +100095 0 0 北京中南海业余大学 中南海业余大学 0 0 政法类 0 专科(高职) 北京 北京市 0 +105533 0 0 北京中新企业管理学院 0 0 NULL 0 其他 北京 北京市 0 +100003 1 0 北京交通大学 0 0 理工类 1 本科 北京 北京市 0 +100305 0 0 北京交通大学海滨学院 0 0 理工类 0 独立学院 河北 沧州市 0 +100063 0 0 北京交通职业技术学院 0 0 高职类 0 专科 北京 北京市 0 +100082 0 0 北京交通运输职业学院 0 0 高职类 0 专科 北京 北京市 0 +100062 0 0 北京京北职业技术学院 0 0 高职类 0 专科 北京 北京市 0 +105545 0 0 北京京海研修学院 0 0 NULL 0 其他 北京 北京市 0 +154 0 0 北京人文大学 Beijing Humanities University 0 0 综合类 0 普通本科 北京 北京市 0 +100037 1 0 北京体育大学 0 0 体育类 1 本科 北京 北京市 0 +100081 0 0 北京体育职业学院 0 0 高职类 0 专科 北京 北京市 0 +100049 0 0 北京信息科技大学 0 0 理工类 0 本科 北京 北京市 0 +100060 0 0 北京信息职业技术学院 0 0 高职类 0 骨干(高职) 北京 北京市 0 +105503 0 0 北京兴华大学 0 0 综合类 0 其他 北京 北京市 0 +100065 0 0 北京农业职业学院 0 0 高职类 0 示范(高职) 北京 北京市 0 +100018 0 0 北京农学院 0 0 农林类 0 本科 北京 北京市 0 +100078 0 0 北京劳动保障职业学院 0 0 高职类 0 骨干(高职) 北京 北京市 0 +100009 1 0 北京化工大学 0 0 理工类 1 本科 北京 北京市 0 +100068 0 0 北京北大方正软件职业技术学院 0 0 理工类 0 专科(高职) 北京 北京市 0 +105505 0 0 北京北大资源研修学院 0 0 NULL 0 中外合作办学 北京 北京市 0 +100090 0 0 北京医药集团职工大学 0 0 医药类 0 其他 北京 北京市 0 +105455 0 0 北京华夏管理学院 0 0 财经类 0 其他 北京 北京市 0 +100020 0 0 北京协和医学院 0 0 医科类 1 本科 北京 北京市 0 +105542 0 0 北京卓达经济管理研修学院 0 0 NULL 0 其他 北京 北京市 0 +100083 0 0 北京卫生职业学院 0 0 高职类 0 专科 北京 北京市 0 +100013 0 0 北京印刷学院 0 0 理工类 0 本科 北京 北京市 0 +100056 0 0 北京吉利学院 0 0 综合类 0 民办(本科) 北京 北京市 0 +166 0 0 北京国际商务学院 0 0 综合类 0 民办非学历高等教育机构 北京 北京市 0 +100052 0 0 北京城市学院 0 0 综合类 0 民办(本科) 北京 北京市 0 +100076 0 0 北京培黎职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +100026 1 0 北京外国语大学 0 0 外语类 1 本科 北京 北京市 0 +105496 0 0 北京外国语大学国际教育学院 0 0 NULL 0 普通本科 北京 北京市 0 +100000 2 0 北京大学 0 1 综合类 1 本科 北京 北京市 1 +105374 2 0 北京大学医学部 0 0 医药类 1 普通本科 北京 北京市 1 +100087 0 0 北京宣武红旗业余大学 0 0 综合类 0 其他 北京 北京市 0 +100004 1 0 北京工业大学 0 0 理工类 1 本科 北京 北京市 0 +100111 0 0 北京工业大学耿丹学院 0 0 综合类 0 独立学院 北京 北京市 0 +100059 0 0 北京工业职业技术学院 0 0 高职类 0 示范(高职) 北京 北京市 0 +100010 0 0 北京工商大学 0 0 财经类 0 本科 北京 北京市 0 +100109 0 0 北京工商大学嘉华学院 0 0 财经类 0 独立学院 北京 北京市 0 +3240 0 0 北京工商管理专修学院 0 0 综合类 0 其他 北京 北京市 0 +100085 0 0 北京市东城区职工业余大学 0 0 综合类 0 其他 北京 北京市 0 +100100 0 0 北京市丰台区职工大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100102 0 0 北京市农工商联合总公司职工大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100086 0 0 北京市崇文区职工大学 0 0 综合类 0 其他 北京 北京市 0 +100091 0 0 北京市建设职工大学 0 0 综合类 0 其他 北京 北京市 0 +100092 0 0 北京市总工会职工大学 0 0 综合类 0 其他 北京 北京市 0 +100089 0 0 北京市朝阳区职工大学 0 0 综合类 0 其他 北京 北京市 0 +100084 0 0 北京市海淀区职工大学 0 0 综合类 0 其他 北京 北京市 0 +100088 0 0 北京市石景山区业余大学 0 0 综合类 0 其他 北京 北京市 0 +100101 0 0 北京市西城经济科学大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100023 2 0 北京师范大学 0 0 师范类 1 本科 北京 北京市 1 +102148 0 0 北京师范大学珠海分校 0 0 综合类 0 独立学院 广东 珠海市 0 +102052 0 0 北京师范大学香港浸会大学联合国际学院 北京师范大学-香港浸会大学联合国际学院 0 0 综合类 0 中外合作办学 广东 珠海市 0 +1393 0 0 北京广播电视大学 BEIJING OPEN UNIVERSITY 北京电大 0 0 综合类 0 专科(高职) 北京 北京市 0 +105513 0 0 北京应用技术大学 0 0 综合类 0 其他 北京 北京市 0 +100014 0 0 北京建筑大学 0 0 理工类 0 本科 北京 北京市 0 +105447 0 0 北京建设大学 0 0 NULL 0 普通本科 北京 北京市 0 +100097 0 0 北京开放大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100071 0 0 北京戏曲艺术职业学院 0 0 高职类 0 专科 北京 北京市 0 +100066 0 0 北京政法职业学院 0 0 高职类 0 专科 北京 北京市 0 +100096 0 0 北京教育学院 0 0 综合类 0 普通本科 北京 北京市 0 +105508 0 0 北京文理研修学院 0 0 NULL 0 其他 北京 北京市 0 +105494 0 0 北京旅游专修学院 0 0 NULL 0 其他 北京 北京市 0 +100011 0 0 北京服装学院 0 0 理工类 0 本科 北京 北京市 0 +105530 0 0 北京服装学院国际学院 0 0 艺术类 0 其他 北京 北京市 0 +100019 1 0 北京林业大学 0 0 农林类 1 本科 北京 北京市 0 +105397 0 0 北京民族大学 0 0 综合类 0 普通本科 北京 北京市 0 +100072 0 0 北京汇佳职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +105540 0 0 北京涉外经济专修学院 0 0 NULL 0 其他 北京 北京市 0 +105552 0 0 北京瀚林职业研修学院 0 0 综合类 0 其他 北京 北京市 0 +100032 0 0 北京物资学院 0 0 财经类 0 本科 北京 北京市 0 +105526 0 0 北京物资学院继续教育学院 0 0 财经类 0 普通本科 北京 北京市 0 +100073 0 0 北京现代职业技术学院 0 0 高职类 0 专科 北京 北京市 0 +190 0 0 北京现代音乐研修学院 Beijing Contemporary Music Academy 北音::CMA::BJCMA 0 0 艺术类 0 其他 北京 北京市 0 +105534 0 0 北京珠宝首饰研修学院 0 0 NULL 0 其他 北京 北京市 0 +100006 2 0 北京理工大学 0 0 理工类 1 本科 北京 北京市 1 +105524 0 0 北京理工大学SQA-HND项目 0 0 NULL 0 其他 北京 北京市 0 +105463 0 0 北京理工大学国际教育学院 0 0 理工类 0 中外合作办学 北京 北京市 0 +105485 0 0 北京理工大学房山分校培训中心 0 0 综合类 0 专科(高职) 北京 北京市 0 +102152 0 0 北京理工大学珠海学院 0 0 综合类 0 独立学院 广东 珠海市 0 +105456 0 0 北京理工大学远程教育学院 0 0 理工类 0 其他 北京 北京市 0 +100016 0 0 北京电子科技学院 0 0 理工类 0 本科 北京 北京市 0 +100061 0 0 北京电子科技职业学院 0 0 高职类 0 示范(高职) 北京 北京市 0 +100043 0 0 北京电影学院 0 0 艺术类 0 本科 北京 北京市 0 +101592 0 0 北京电影学院现代创意媒体学院 0 0 艺术类 0 独立学院 山东 青岛市 0 +105492 0 0 北京电影学院继续教育学院 0 0 艺术类 0 普通本科 北京 北京市 0 +100015 0 0 北京石油化工学院 0 0 理工类 0 本科 北京 北京市 0 +100079 0 0 北京社会管理职业学院 0 0 高职类 0 专科 北京 北京市 0 +100007 1 0 北京科技大学 0 0 理工类 1 本科 北京 北京市 0 +105460 0 0 北京科技大学国际学院 0 0 综合类 0 中外合作办学 北京 北京市 0 +100177 0 0 北京科技大学天津学院 0 0 综合类 0 独立学院 天津 天津市 0 +105498 0 0 北京科技大学延庆分校 0 0 理工类 0 专科(高职) 北京 北京市 0 +105520 0 0 北京科技大学继续教育学院 0 0 理工类 0 普通本科 北京 北京市 0 +100074 0 0 北京科技经营管理学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +100075 0 0 北京科技职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +100027 0 0 北京第二外国语学院 0 0 外语类 0 本科 北京 北京市 0 +105396 0 0 北京第二外国语学院HND项目 0 0 NULL 0 普通本科 北京 北京市 0 +100112 0 0 北京第二外国语学院中瑞酒店管理学院 0 0 语言类 0 独立学院 北京 北京市 0 +8902 0 0 北京经济技术研修学院 0 0 综合类 0 专科(高职) 北京 北京市 0 +100070 0 0 北京经济技术职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +105501 0 0 北京经济研修学院 0 0 财经类 0 其他 北京 北京市 0 +100077 0 0 北京经济管理职业学院 0 0 高职类 0 专科 北京 北京市 0 +100069 0 0 北京经贸职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +105553 0 0 北京网络职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +105440 0 0 北京美国英语语言学院 0 0 语言类 0 专科(高职) 北京 北京市 0 +100051 0 0 北京联合大学 0 0 综合类 0 本科 北京 北京市 0 +105558 0 0 北京联合大学信息学院 0 0 综合类 0 普通本科 北京 北京市 0 +105436 0 0 北京联合大学商务学院 0 0 财经类 0 普通本科 北京 北京市 0 +105439 0 0 北京联合大学师范学院 0 0 师范类 0 普通本科 北京 北京市 0 +105454 0 0 北京联合大学广告学院 0 0 综合类 0 普通本科 北京 北京市 0 +105461 0 0 北京联合大学应用文理学院 0 0 综合类 0 普通本科 北京 北京市 0 +105529 0 0 北京联合大学应用科技学院 0 0 综合类 0 普通本科 北京 北京市 0 +105537 0 0 北京联合大学旅游学院 0 0 综合类 0 普通本科 北京 北京市 0 +105559 0 0 北京联合大学机电学院 0 0 综合类 0 普通本科 北京 北京市 0 +105521 0 0 北京联合大学特殊教育学院 0 0 综合类 0 普通本科 北京 北京市 0 +105550 0 0 北京联合大学生物化学工程学院 0 0 综合类 0 普通本科 北京 北京市 0 +105535 0 0 北京联合大学管理学院 0 0 综合类 0 普通本科 北京 北京市 0 +105547 0 0 北京联合大学自动化学院 0 0 综合类 0 普通本科 北京 北京市 0 +105511 0 0 北京自修大学 0 0 综合类 0 其他 北京 北京市 0 +100044 0 0 北京舞蹈学院 0 0 艺术类 0 本科 北京 北京市 0 +105449 0 0 北京舞蹈学院继续教育学院 0 0 艺术类 0 其他 北京 北京市 0 +100005 2 0 北京航空航天大学 0 0 理工类 1 本科 北京 北京市 1 +102239 0 0 北京航空航天大学北海学院 0 0 综合类 0 普通本科 广西 北海市 0 +105462 0 0 北京航空航天大学软件学院 0 0 理工类 0 普通本科 北京 北京市 0 +100080 0 0 北京艺术传媒职业学院 0 0 高职类 0 民办(专科) 北京 北京市 0 +100057 0 0 北京警察学院 0 0 政法类 0 本科 北京 北京市 0 +105507 0 0 北京计算机专修学院 0 0 NULL 0 其他 北京 北京市 0 +100028 0 0 北京语言大学 0 0 语言类 0 本科 北京 北京市 0 +105480 0 0 北京财经专修学院 0 0 综合类 0 其他 北京 北京市 0 +100067 0 0 北京财贸职业学院 0 0 高职类 0 示范(高职) 北京 北京市 0 +100012 1 0 北京邮电大学 0 0 理工类 1 本科 北京 北京市 0 +100110 0 0 北京邮电大学世纪学院 0 0 综合类 0 独立学院 北京 北京市 0 +105527 0 0 北京邮电大学继续教育学院职业教育 0 0 综合类 0 其他 北京 北京市 0 +105482 0 0 北京金融学院 0 0 NULL 0 普通本科 北京 北京市 0 +100064 0 0 北京青年政治学院 0 0 政法类 0 专科 北京 北京市 0 +105518 0 0 北京高等秘书研修学院 0 0 NULL 0 其他 北京 北京市 0 +105448 0 0 北京黄埔大学 0 0 综合类 0 其他 北京 北京市 0 +103599 0 0 北佛罗利达大学 University of North Florida 1 0 NULL 0 NULL NULL NULL 0 +100595 0 0 北华大学 0 0 综合类 0 本科 吉林 吉林市 0 +100211 0 0 北华航天工业学院 0 0 理工类 0 本科 河北 廊坊市 0 +103715 0 0 北卡罗来纳农业与技术州立大学 North Carolina Agricultural and Technical State University 1 0 NULL 0 NULL NULL NULL 0 +103703 0 0 北卡罗来纳大学 University of North Carolina 1 0 NULL 0 NULL NULL NULL 0 +103707 0 0 北卡罗来纳大学夏洛特分校 University of North Carolina at Charlotte 1 0 NULL 0 NULL NULL NULL 0 +103710 0 0 北卡罗来纳大学威明顿分校 University of North Carolina at Wilmington 1 0 NULL 0 NULL NULL NULL 0 +103709 0 0 北卡罗来纳大学彭布鲁克分校 University of North Carolina at Pembroke 1 0 NULL 0 NULL NULL NULL 0 +103706 0 0 北卡罗来纳大学教堂山分校 University of North Carolina at Chapel Hill 1 1 NULL 0 NULL NULL NULL 0 +103708 0 0 北卡罗来纳大学格林保罗分校 University of North Carolina at Greensboro 1 0 NULL 0 NULL NULL NULL 0 +103718 0 0 北卡罗来纳大学艺术学院 University of North Carolina School of the Arts 1 0 NULL 0 NULL NULL NULL 0 +103705 0 0 北卡罗来纳大学艾塞维利亚分校 University of North Carolina at Asheville 1 0 NULL 0 NULL NULL NULL 0 +103716 0 0 北卡罗来纳州中央大学 North Carolina Central University 1 0 NULL 0 NULL NULL NULL 0 +103717 0 0 北卡罗来纳州科学与数学学院 North Carolina School of Science and Mathematics 1 0 NULL 0 NULL NULL NULL 0 +103704 0 0 北卡罗来纳州立大学 North Carolina State University at Raleigh 1 0 NULL 0 NULL NULL NULL 0 +105229 0 0 北天主教大学 Catholic University of the North 1 0 NULL 0 NULL NULL NULL 0 +105187 0 0 北安普敦大学 University of Northampton 1 0 NULL 0 NULL NULL NULL 0 +105055 0 0 北安普顿大学 University of Northampton 1 0 NULL 0 NULL NULL NULL 0 +103754 0 0 北弗吉尼亚大学 University of Northern Virginia 1 0 NULL 0 NULL NULL NULL 0 +103734 0 0 北得州大学系统 University of North Texas 1 0 NULL 0 NULL NULL NULL 0 +103955 0 0 北德克萨斯大学 University of North Texas 1 0 NULL 0 NULL NULL NULL 0 +100008 0 0 北方工业大学 0 0 理工类 0 本科 北京 北京市 0 +102755 0 0 北方民族大学 0 0 民族类 0 本科 宁夏 银川市 0 +105479 0 0 北方经贸学院 0 0 综合类 0 其他 北京 北京市 0 +104042 0 0 北星学园大学 1 0 NULL 0 NULL NULL NULL 0 +104762 0 0 北曼谷国王大学 King Mongkut's University of Technology North Bangkok 1 0 NULL 0 NULL NULL NULL 0 +104044 0 0 北海商科大学 1 0 NULL 0 NULL NULL NULL 0 +104043 0 0 北海学园大学 1 0 NULL 0 NULL NULL NULL 0 +102206 0 0 北海职业学院 0 0 高职类 0 专科 广西 北海市 0 +102186 0 0 北海艺术设计学院 0 0 艺术类 0 民办(本科) 广西 北海市 0 +104509 0 0 北海道 1 0 NULL 0 NULL NULL NULL 0 +104048 0 0 北海道东海大学 1 0 NULL 0 NULL NULL NULL 0 +104047 0 0 北海道信息大学 1 0 NULL 0 NULL NULL NULL 0 +104045 0 0 北海道医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104621 0 0 北海道大学 Hokkaido University 1 1 NULL 0 NULL NULL NULL 0 +104046 0 0 北海道工业大学 1 0 NULL 0 NULL NULL NULL 0 +104588 0 0 北海道教育大学 1 0 NULL 0 NULL NULL NULL 0 +104049 0 0 北海道文教大学 1 0 NULL 0 NULL NULL NULL 0 +104050 0 0 北海道药科大学 1 0 NULL 0 NULL NULL NULL 0 +103620 0 0 北爱达荷学院 North Idaho College 1 0 NULL 0 NULL NULL NULL 0 +103567 0 0 北科罗拉多大学 University of Northern Colorado 1 0 NULL 0 NULL NULL NULL 0 +104041 0 0 北翔大学 1 0 NULL 0 NULL NULL NULL 0 +103640 0 0 北肯塔基大学 Northern Kentucky University 1 0 NULL 0 NULL NULL NULL 0 +103637 0 0 北艾奥瓦大学 University of Northern Iowa 1 0 NULL 0 NULL NULL NULL 0 +103421 0 0 北英属哥伦比亚大学 University of Northern British Columbia (UNBC) 1 0 NULL 0 NULL NULL NULL 0 +104587 0 0 北见工业大学 1 0 NULL 0 NULL NULL NULL 0 +102183 0 0 北部湾大学 钦州学院 0 0 综合类 0 本科 广西 钦州市 0 +104673 0 0 北里大学 Kitasato University 1 0 NULL 0 NULL NULL NULL 0 +102986 0 0 北里约热内卢联邦大学 Federal University of Rio Grande do Norte (UFRN) 1 0 NULL 0 NULL NULL NULL 0 +104602 0 0 北陆先端科学技术大学院大学 1 0 NULL 0 NULL NULL NULL 0 +104304 0 0 北陆大学 1 0 NULL 0 NULL NULL NULL 0 +103796 0 0 匹兹堡大学 University of Pittsburgh 1 1 NULL 0 NULL NULL NULL 0 +103646 0 0 匹兹堡州立大学 Pittsburg State University 1 0 NULL 0 NULL NULL NULL 0 +103556 0 0 匹兹学院 Pitzer College 1 0 NULL 0 NULL NULL NULL 0 +101841 0 0 十堰教育学院 0 0 综合类 0 专科(高职) 湖北 十堰市 0 +104111 0 0 十文字学园女子大学 1 0 NULL 0 NULL NULL NULL 0 +104529 0 0 千叶县立保健医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104143 0 0 千叶商科大学 1 0 NULL 0 NULL NULL NULL 0 +104630 0 0 千叶大学 Chiba University 1 0 NULL 0 NULL NULL NULL 0 +104692 0 0 千叶工业大学 Chiba Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104141 0 0 千叶科学大学 1 0 NULL 0 NULL NULL NULL 0 +104142 0 0 千叶经济大学 1 0 NULL 0 NULL NULL NULL 0 +104034 0 0 千岁科学技术大学 1 0 NULL 0 NULL NULL NULL 0 +104361 0 0 千里金兰大学 1 0 NULL 0 NULL NULL NULL 0 +101339 0 0 华东交通大学 0 0 理工类 0 本科 江西 南昌市 0 +101431 0 0 华东交通大学理工学院 0 0 理工类 0 普通本科 江西 南昌市 0 +100770 2 0 华东师范大学 0 0 师范类 0 本科 上海 上海市 1 +100776 0 0 华东政法大学 0 0 政法类 0 本科 上海 上海市 0 +100762 1 0 华东理工大学 0 0 理工类 1 本科 上海 上海市 0 +101745 1 0 华中农业大学 0 0 农林类 1 本科 湖北 武汉市 0 +101747 1 0 华中师范大学 0 0 师范类 1 本科 湖北 武汉市 0 +101847 0 0 华中电业联合职工大学 0 0 NULL 0 NULL NULL NULL 0 +101736 2 0 华中科技大学 0 0 理工类 1 本科 湖北 武汉市 1 +101248 0 0 华侨大学 0 0 综合类 0 本科 福建 泉州市 0 +101593 0 0 华北水利水电大学 0 0 理工类 0 本科 河南 郑州市 0 +100186 0 0 华北理工大学 河北联合大学 0 0 综合类 0 本科 河北 唐山市 0 +105399 0 0 华北理工大学冀唐学院 0 0 综合类 0 独立学院 河北 唐山市 0 +105395 0 0 华北理工大学轻工学院 0 0 理工类 0 独立学院 河北 唐山市 0 +100105 0 0 华北电业联合职工大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100047 1 0 华北电力大学 0 0 理工类 1 本科 北京 北京市 0 +105368 1 0 华北电力大学保定校区 0 0 理工类 1 普通本科 河北 保定市 0 +100291 0 0 华北电力大学科技学院 0 0 理工类 0 独立学院 河北 保定市 0 +100207 0 0 华北科技学院 0 0 理工类 0 本科 河北 廊坊市 0 +102012 0 0 华南农业大学 0 0 农林类 0 本科 广东 广州市 0 +102156 0 0 华南农业大学珠江学院 0 0 综合类 0 独立学院 广东 广州市 0 +102018 1 0 华南师范大学 0 0 师范类 1 本科 广东 广州市 0 +102009 2 0 华南理工大学 0 0 理工类 1 本科 广东 广州市 1 +102160 0 0 华南理工大学广州学院 0 0 综合类 0 独立学院 广东 广州市 0 +105095 0 0 华威大学 The University of Warwick 1 1 NULL 0 NULL NULL NULL 0 +103010 0 0 华沙大学 University of Warsaw 1 0 NULL 0 NULL NULL NULL 0 +103012 0 0 华沙工业大学 Warsaw University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103783 0 0 华盛顿大学 University of Washington 1 1 NULL 0 NULL NULL NULL 0 +103831 0 0 华盛顿州立大学 Washington State University 1 0 NULL 0 NULL NULL NULL 0 +103312 0 0 协成大学 1 0 NULL 0 NULL NULL NULL 0 +104014 0 0 卑尔根大学 University of Bergen 1 0 NULL 0 NULL NULL NULL 0 +103028 0 0 南丹麦大学 University of Southern Denmark 1 0 NULL 0 NULL NULL NULL 0 +104498 0 0 南九州大学 1 0 NULL 0 NULL NULL NULL 0 +103503 0 0 南亚拉巴马大学 1 0 NULL 0 NULL NULL NULL 0 +100862 0 0 南京中医药大学 0 0 医科类 1 本科 江苏 南京市 0 +100996 0 0 南京中医药大学翰林学院 0 0 医药类 0 独立学院 江苏 泰州市 0 +100925 0 0 南京交通职业技术学院 0 0 高职类 0 专科 江苏 南京市 0 +105416 0 0 南京人口管理干部学院 0 0 综合类 0 普通本科 江苏 南京市 0 +100870 0 0 南京体育学院 0 0 体育类 0 本科 江苏 南京市 0 +100856 0 0 南京信息工程大学 0 0 理工类 0 本科 江苏 南京市 0 +100997 0 0 南京信息工程大学滨江学院 0 0 综合类 0 独立学院 江苏 南京市 0 +100948 0 0 南京信息职业技术学院 0 0 高职类 0 骨干(高职) 江苏 南京市 0 +100859 1 0 南京农业大学 0 0 农林类 1 本科 江苏 南京市 0 +100860 0 0 南京医科大学 0 0 医科类 0 本科 江苏 南京市 0 +100995 0 0 南京医科大学康达学院 0 0 综合类 0 独立学院 江苏 连云港市 0 +100963 0 0 南京城市职业学院 0 0 高职类 0 专科 江苏 南京市 0 +100842 2 0 南京大学 0 1 综合类 1 本科 江苏 南京市 1 +100987 0 0 南京大学金陵学院 0 0 综合类 0 独立学院 江苏 南京市 0 +100879 0 0 南京审计大学 南京审计学院 0 0 财经类 0 本科 江苏 南京市 0 +105598 0 0 南京审计大学金审学院 0 0 综合类 0 独立学院 江苏 南京市 0 +101009 0 0 南京审计学院金审学院 0 0 综合类 0 独立学院 江苏 南京市 0 +100849 0 0 南京工业大学 0 0 理工类 0 本科 江苏 南京市 0 +100993 0 0 南京工业大学浦江学院 0 0 综合类 0 独立学院 江苏 南京市 0 +100896 0 0 南京工业职业技术学院 0 0 高职类 0 示范(高职) 江苏 南京市 0 +100878 0 0 南京工程学院 0 0 综合类 0 本科 江苏 南京市 0 +239 0 0 南京工程学院康尼学院 Nanjing Kangni College 康尼学院 0 0 理工类 0 普通本科 江苏 江宁 0 +100976 0 0 南京市职工大学 0 0 其他 0 其他 江苏 南京市 0 +100864 1 0 南京师范大学 0 0 师范类 1 本科 江苏 南京市 0 +100994 0 0 南京师范大学中北学院 0 0 综合类 0 独立学院 江苏 南京市 0 +100992 0 0 南京师范大学泰州学院 0 0 师范类 0 独立学院 江苏 泰州市 0 +100983 0 0 南京广播电视大学 南京市广播电视大学 0 0 综合类 0 专科(高职) 江苏 南京市 0 +100966 0 0 南京旅游职业学院 0 0 高职类 0 专科 江苏 南京市 0 +100880 0 0 南京晓庄学院 0 0 师范类 0 本科 江苏 南京市 0 +100964 0 0 南京机电职业技术学院 0 0 高职类 0 专科 江苏 南京市 0 +100854 0 0 南京林业大学 0 0 农林类 1 本科 江苏 南京市 0 +100885 0 0 南京森林警察学院 0 0 政法类 0 本科 江苏 南京市 0 +100907 0 0 南京特殊教育师范学院 南京特殊教育职业技术学院 0 0 师范类 0 本科 江苏 南京市 0 +100846 1 0 南京理工大学 0 0 理工类 1 本科 江苏 南京市 0 +100991 0 0 南京理工大学泰州科技学院 0 0 理工类 0 独立学院 江苏 泰州市 0 +100988 0 0 南京理工大学紫金学院 0 0 理工类 0 独立学院 江苏 南京市 0 +100933 0 0 南京科技职业学院 南京化工职业技术学院 0 0 高职类 0 骨干(高职) 江苏 南京市 0 +100845 1 0 南京航空航天大学 0 0 理工类 1 本科 江苏 南京市 0 +100989 0 0 南京航空航天大学金城学院 0 0 理工类 0 独立学院 江苏 南京市 0 +100871 0 0 南京艺术学院 0 0 艺术类 0 本科 江苏 南京市 0 +100961 0 0 南京视觉艺术职业学院 0 0 高职类 0 民办(专科) 江苏 南京市 0 +100868 0 0 南京财经大学 0 0 财经类 0 本科 江苏 南京市 0 +101005 0 0 南京财经大学红山学院 0 0 综合类 0 独立学院 江苏 镇江市 0 +100851 0 0 南京邮电大学 0 0 理工类 1 本科 江苏 南京市 0 +101004 0 0 南京邮电大学通达学院 0 0 综合类 0 独立学院 江苏 扬州市 0 +100944 0 0 南京铁道职业技术学院 0 0 高职类 0 专科 江苏 南京市 0 +103856 0 0 南佛罗里达大学 University of South Florida 1 0 NULL 0 NULL NULL NULL 0 +103722 0 0 南俄勒冈大学 Southern Oregon University 1 0 NULL 0 NULL NULL NULL 0 +102435 0 0 南充市职工大学 0 0 其他 0 专科(高职) 四川 南充市 0 +102373 0 0 南充职业技术学院 0 0 高职类 0 专科 四川 南充市 0 +105246 0 0 南加利福尼亚大学 University of Southern California 1 0 NULL 0 NULL NULL NULL 0 +103545 0 0 南加州大学 University of Southern California, USC 1 1 NULL 0 NULL NULL NULL 0 +102940 0 0 南十字星大学 Southern Cross University 1 0 NULL 0 NULL NULL NULL 0 +101891 0 0 南华大学 0 0 综合类 0 本科 湖南 衡阳市 0 +102001 0 0 南华大学船山学院 0 0 理工类 0 独立学院 湖南 衡阳市 0 +103950 0 0 南卡罗来纳医科大学 Medical University of South Carolina 1 0 NULL 0 NULL NULL NULL 0 +103868 0 0 南卡罗来纳大学 University of South Carolina 1 0 NULL 0 NULL NULL NULL 0 +103881 0 0 南卫理公会大学 Southern Methodist University 1 0 NULL 0 NULL NULL NULL 0 +103253 0 0 南哈萨克斯坦州立大学 Auezov South Kazakhstan State University (SKSU) 1 0 NULL 0 NULL NULL NULL 0 +105335 0 0 南大河州联邦大学 Federal University of Rio Grande do Sul 1 0 NULL 0 NULL NULL NULL 0 +105166 0 0 南威尔士大学 University of South Wales 1 0 NULL 0 NULL NULL NULL 0 +102230 0 0 南宁地区教育学院 0 0 师范类 0 专科(高职) 广西 南宁市 0 +102182 0 0 南宁学院 0 0 综合类 0 民办(本科) 广西 南宁市 0 +105371 0 0 南宁师范大学 0 0 师范类 0 本科 广西 南宁市 0 +105411 0 0 南宁师范大学师园学院 0 0 综合类 0 独立学院 广西 南宁市 0 +102190 0 0 南宁职业技术学院 0 0 高职类 0 示范(高职) 广西 南宁市 0 +105099 0 0 南安普敦大学 University of Southampton 1 0 NULL 0 NULL NULL NULL 0 +105206 0 0 南安普敦索伦特大学 Southampton Solent University 1 0 NULL 0 NULL NULL NULL 0 +105358 0 0 南安普顿大学 University of Southampton 1 1 NULL 0 NULL NULL NULL 0 +103940 0 0 南密西西比大学 University of Southern Mississippi 1 0 NULL 0 NULL NULL NULL 0 +104279 0 0 南山大学 1 0 NULL 0 NULL NULL NULL 0 +103579 0 0 南康涅狄格州立大学 Southern Connecticut State University 1 0 NULL 0 NULL NULL NULL 0 +100113 2 0 南开大学 0 0 综合类 1 本科 天津 天津市 1 +100172 0 0 南开大学滨海学院 0 0 综合类 0 独立学院 天津 天津市 0 +103695 0 0 南新罕布什尔大学 Southern New Hampshire University 1 0 NULL 0 NULL NULL NULL 0 +102044 0 0 南方医科大学 0 0 医科类 0 本科 广东 广州市 0 +102570 0 0 南方电力职工大学 0 0 NULL 0 NULL NULL NULL 0 +102051 0 0 南方科技大学 0 0 理工类 0 本科 广东 深圳市 0 +103148 0 0 南方联邦大学 Southern Federal University 1 0 NULL 0 NULL NULL NULL 0 +102937 0 0 南昆士兰大学 University of Southern Queensland 1 0 NULL 0 NULL NULL NULL 0 +101338 1 0 南昌大学 0 0 综合类 1 本科 江西 南昌市 0 +101440 0 0 南昌大学共青学院 0 0 综合类 0 独立学院 江西 九江市 0 +101428 0 0 南昌大学科学技术学院 0 0 综合类 0 独立学院 江西 南昌市 0 +101365 0 0 南昌工学院 0 0 理工类 0 民办(本科) 江西 南昌市 0 +101357 0 0 南昌工程学院 0 0 理工类 0 本科 江西 南昌市 0 +101423 0 0 南昌市业余大学 0 0 综合类 0 专科(高职) 江西 南昌市 0 +101424 0 0 南昌市职工科技大学 0 0 综合类 0 专科(高职) 江西 南昌市 0 +101366 0 0 南昌师范学院 0 0 师范类 0 本科 江西 南昌市 0 +105577 0 0 南昌影视传播职业学院 0 0 高职类 0 民办(专科) 江西 南昌市 0 +101426 0 0 南昌教育学院 0 0 师范类 0 专科(高职) 江西 南昌市 0 +101362 0 0 南昌理工学院 0 0 理工类 0 民办(本科) 江西 南昌市 0 +101386 0 0 南昌职业学院 0 0 综合类 0 专科(高职) 江西 南昌市 0 +101341 0 0 南昌航空大学 0 0 理工类 0 本科 江西 南昌市 0 +101434 0 0 南昌航空大学科技学院 0 0 综合类 0 独立学院 江西 南昌市 0 +101422 0 0 南昌钢铁有限责任公司职工大学 0 0 综合类 0 专科(高职) 江西 南昌市 0 +104851 0 0 南洋理工大学 Nanyang Technological University 1 0 NULL 0 NULL NULL NULL 0 +104859 0 0 南洋理工学院 Nanyang Polytechnic 1 0 NULL 0 NULL NULL NULL 0 +104862 0 0 南洋艺术学院 Nanyang Academy of Fine Arts 1 0 NULL 0 NULL NULL NULL 0 +267 0 0 南海开放大学(南海成人学院) 南海电大::南海广播电视大学 0 0 综合类 0 专科(高职) 广东 佛山市 0 +102134 0 0 南海成人学院 0 0 综合类 0 专科(高职) 广东 佛山市 0 +102922 0 0 南澳大学 University of South Australia 1 0 NULL 0 NULL NULL NULL 0 +103618 0 0 南爱达荷学院 College of Southern Idaho 1 0 NULL 0 NULL NULL NULL 0 +103619 0 0 南爱达荷技术学院 Eastern Technical College 1 0 NULL 0 NULL NULL NULL 0 +103192 0 0 南特大学 Université de Nantes 1 0 NULL 0 NULL NULL NULL 0 +103570 0 0 南科罗拉多大学 University of Southern Colorado 1 0 NULL 0 NULL NULL NULL 0 +103669 0 0 南缅因州大学 University of Southern Maine 1 0 NULL 0 NULL NULL NULL 0 +103747 0 0 南美以美大学 Southern Methodist University  1 0 NULL 0 NULL NULL NULL 0 +102861 0 0 南谷大学 South Valley University 1 0 NULL 0 NULL NULL NULL 0 +103925 0 0 南达科他大学 University of South Dakota 1 0 NULL 0 NULL NULL NULL 0 +100857 0 0 南通大学 0 0 综合类 0 本科 江苏 南通市 0 +101008 0 0 南通大学杏林学院 0 0 综合类 0 独立学院 江苏 南通市 0 +100979 0 0 南通市工人业余大学 0 0 综合类 0 专科(高职) 江苏 南京市 0 +100974 0 0 南通师范高等专科学校 0 0 高职类 0 专科 江苏 南通市 0 +100884 0 0 南通理工学院 0 0 理工类 0 民办(本科) 江苏 南通市 0 +100918 0 0 南通科技职业学院 南通农业职业技术学院 0 0 高职类 0 专科 江苏 南通市 0 +100901 0 0 南通职业大学 0 0 高职类 0 专科 江苏 南通市 0 +100924 0 0 南通航运职业技术学院 0 0 高职类 0 骨干(高职) 江苏 南通市 0 +102972 0 0 南里奥格兰德天主大学 Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS) 1 0 NULL 0 NULL NULL NULL 0 +102967 0 0 南里奥格兰德联邦大学 Universidade Federal do Rio Grande Do Sul 1 0 NULL 0 NULL NULL NULL 0 +101710 0 0 南阳农业职业学院 0 0 高职类 0 专科 河南 南阳市 0 +101665 0 0 南阳医学高等专科学校 0 0 高职类 0 专科 河南 南阳市 0 +101611 0 0 南阳师范学院 0 0 师范类 0 本科 河南 南阳市 0 +101623 0 0 南阳理工学院 0 0 理工类 0 本科 河南 南阳市 0 +101701 0 0 南阳职业学院 0 0 高职类 0 民办(专科) 河南 南阳市 0 +104011 0 0 南非大学 University of South Africa 1 0 NULL 0 NULL NULL NULL 0 +104009 0 0 南非西北大学 North-West University 1 0 NULL 0 NULL NULL NULL 0 +105600 0 0 博尔塔拉职业技术学院 0 0 高职类 0 专科 新疆 博尔塔拉蒙古自治州 0 +104939 0 0 博尔扎诺自由大学 Free University of Bozen-Bolzano 1 0 NULL 0 NULL NULL NULL 0 +105018 0 0 博尔顿大学 University of Bolton 1 0 NULL 0 NULL NULL NULL 0 +104910 0 0 博洛尼亚大学 Alma Mater Studiorum - University of Bologna 1 0 NULL 0 NULL NULL NULL 0 +103727 0 0 卡内基美隆大学 Carnegie Mellon University 1 0 NULL 0 NULL NULL NULL 0 +104948 0 0 卡利亚里大学 University of Cagliari 1 0 NULL 0 NULL NULL NULL 0 +105296 0 0 卡哈拉格普尔理工学院 Indian Institute of Technology Kharagpur 1 0 NULL 0 NULL NULL NULL 0 +103460 0 0 卡塔尔大学 Qatar University 1 0 NULL 0 NULL NULL NULL 0 +104934 0 0 卡塔尼亚大学 Catania University 1 0 NULL 0 NULL NULL NULL 0 +103059 0 0 卡塞尔大学 Universität Kassel 1 0 NULL 0 NULL NULL NULL 0 +103403 0 0 卡尔加里大学 University of Calgary 1 0 NULL 0 NULL NULL NULL 0 +103082 0 0 卡尔斯鲁厄理工学院 KIT, Karlsruhe Institute of Technology 1 1 NULL 0 NULL NULL NULL 0 +103417 0 0 卡尔顿大学 Carleton University 1 0 NULL 0 NULL NULL NULL 0 +103691 0 0 卡尔顿学院 Carleton College 1 0 NULL 0 NULL NULL NULL 0 +103178 0 0 卡尚高等师范学院 Ecole Normale Supérieure de Cachan 1 0 NULL 0 NULL NULL NULL 0 +102948 0 0 卡拉奇大学 University of Karachi 1 0 NULL 0 NULL NULL NULL 0 +104942 0 0 卡拉布里亚大学 University of Calabria 1 0 NULL 0 NULL NULL NULL 0 +103254 0 0 卡拉干达州立大学 Karaganda State University named after academician E.A.Buketov 1 0 NULL 0 NULL NULL NULL 0 +105257 0 0 卡斯蒂利亚-拉曼恰大学 Castilla-La Mancha university 1 0 NULL 0 NULL NULL NULL 0 +104824 0 0 卡斯蒂利亚拉曼恰大学 Universidad de Castilla-La Mancha 1 0 NULL 0 NULL NULL NULL 0 +103196 0 0 卡昂大学 Université de Caen Basse-Normandie 1 0 NULL 0 NULL NULL NULL 0 +105255 0 0 卡洛斯三世马德里大学 Universidad Carlos III de Madrid 1 0 NULL 0 NULL NULL NULL 0 +104827 0 0 卡洛斯国王大学 Universidad Rey Juan Carlos 1 0 NULL 0 NULL NULL NULL 0 +104718 0 0 卡罗琳学院 Karolinska Institute 1 0 NULL 0 NULL NULL NULL 0 +103779 0 0 卡耐基梅隆大学 Carnegie Mellon University 1 1 NULL 0 NULL NULL NULL 0 +103980 0 0 卡耶塔诺埃雷迪亚大学 Universidad Peruana Cayetano Heredia (UPCH) 1 0 NULL 0 NULL NULL NULL 0 +105103 0 0 卡迪夫大学 Cardiff University 1 1 NULL 0 NULL NULL NULL 0 +105199 0 0 卡迪夫都会大学 Cardiff Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +103982 0 0 卡迪阿雅德大学 University of Marrakech Cadi Ayyad 1 0 NULL 0 NULL NULL NULL 0 +104732 0 0 卢加诺大学 University of Italian speaking Switzerland 1 0 NULL 0 NULL NULL NULL 0 +105317 0 0 卢密耶-里昂第二大学 University Lumière Lyon 2 1 0 NULL 0 NULL NULL NULL 0 +104750 0 0 卢布尔雅那大学 University of Ljubljana 1 0 NULL 0 NULL NULL NULL 0 +103474 0 0 卢森堡大学 University of Luxembourg 1 0 NULL 0 NULL NULL NULL 0 +102917 0 0 卧龙岗大学 University of Wollongong 1 0 NULL 0 NULL NULL NULL 0 +103666 0 0 卫斯布鲁克学院 Westbrook College 1 0 NULL 0 NULL NULL NULL 0 +103577 0 0 卫斯连大学 Wesleyan University 1 0 NULL 0 NULL NULL NULL 0 +105001 0 0 印度尼西亚大学 Universitas Indonesia 1 0 NULL 0 NULL NULL NULL 0 +105294 0 0 印度德里技术研究所 Indian Institute of Technology Delhi 1 0 NULL 0 NULL NULL NULL 0 +104971 0 0 印度旁遮普大学 Panjab University 1 0 NULL 0 NULL NULL NULL 0 +105292 0 0 印度理工学院 Indian Institute of Technology Roorkee 1 0 NULL 0 NULL NULL NULL 0 +104959 0 0 印度理工学院克勒格布尔分校 Indian Institute of Technology Kharagpur (IIT-KGP) 1 0 NULL 0 NULL NULL NULL 0 +104962 0 0 印度理工学院古瓦哈提分校 Indian Institute of Technology Guwahati (IITG) 1 0 NULL 0 NULL NULL NULL 0 +105293 0 0 印度理工学院古瓦哈蒂 Indian Institute of Technology Guwahati 1 0 NULL 0 NULL NULL NULL 0 +105295 0 0 印度理工学院坎普尔 Indian Institute of Technology Kanpur 1 0 NULL 0 NULL NULL NULL 0 +104958 0 0 印度理工学院坎普尔分校 Indian Institute of Technology Kanpur (IITK) 1 0 NULL 0 NULL NULL NULL 0 +104955 0 0 印度理工学院孟买分校 Indian Institute of Technology Bombay (IITB) 1 0 NULL 0 NULL NULL NULL 0 +104954 0 0 印度理工学院德里分校 Indian Institute of Technology Delhi (IITD) 1 0 NULL 0 NULL NULL NULL 0 +104957 0 0 印度理工学院马德拉斯分校 Indian Institute of Technology Madras (IITM) 1 0 NULL 0 NULL NULL NULL 0 +104960 0 0 印度理工学院鲁尔基分校 Indian Institute of Technology Roorkee (IITR) 1 0 NULL 0 NULL NULL NULL 0 +104974 0 0 印度矿业学院 Indian School of Mines 1 0 NULL 0 NULL NULL NULL 0 +104956 0 0 印度科学学院 Indian Institute of Science (IISc) Bangalore 1 0 NULL 0 NULL NULL NULL 0 +105291 0 0 印度科学研究所 Indian Institute of Science 1 0 NULL 0 NULL NULL NULL 0 +105297 0 0 印度马德拉斯技术学院 Indian Institute of Technology Madras 1 0 NULL 0 NULL NULL NULL 0 +105235 0 0 印第安纳大学-普渡大学印第安纳波利斯分校 Indiana University–Purdue University at Indianapolis 1 0 NULL 0 NULL NULL NULL 0 +103632 0 0 印第安纳大学与普渡大学印第安纳波里斯联合分校 IUPUI 1 0 NULL 0 NULL NULL NULL 0 +103818 0 0 印第安纳大学伯明顿分校 Indiana University Bloomington 1 0 NULL 0 NULL NULL NULL 0 +103953 0 0 印第安纳大学印第安纳波利斯分校 Indiana University-Purdue University at Indianapolis 1 0 NULL 0 NULL NULL NULL 0 +103863 0 0 印第安纳普渡大学 Indiana University-Purdue University Indianapolis 1 1 NULL 0 NULL NULL NULL 0 +103630 0 0 印第安那大学 Indiana University 1 0 NULL 0 NULL NULL NULL 0 +103631 0 0 印第安那州立大学 Indiana State University 1 0 NULL 0 NULL NULL NULL 0 +104720 0 0 厄勒布鲁大学 Örebro University 1 0 NULL 0 NULL NULL NULL 0 +103164 0 0 厄瓜多尔天主大学 Pontificia Universidad Católica del Ecuador (PUCE) 1 0 NULL 0 NULL NULL NULL 0 +101315 0 0 厦门东海职业技术学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101310 0 0 厦门兴才职业技术学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101284 0 0 厦门医学院 厦门医学高等专科学校 0 0 医科类 0 本科 福建 厦门市 0 +101288 0 0 厦门华厦学院 厦门华厦职业学院 0 0 综合类 0 民办(本科) 福建 厦门市 0 +101296 0 0 厦门华天涉外职业技术学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101314 0 0 厦门南洋职业学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101305 0 0 厦门城市职业学院 0 0 高职类 0 专科 福建 厦门市 0 +101247 2 0 厦门大学 0 0 综合类 1 本科 福建 厦门市 1 +101329 0 0 厦门大学嘉庚学院 0 0 综合类 0 独立学院 福建 漳州市 0 +105476 0 0 厦门大学国际学院 0 0 综合类 0 中外合作办学 福建 厦门市 0 +101322 0 0 厦门安防科技职业学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101334 0 0 厦门工学院 华侨大学厦门工学院 0 0 理工类 0 民办(本科) 福建 厦门市 0 +101328 0 0 厦门市广播电视大学 0 0 综合类 0 其他 福建 厦门市 0 +101282 0 0 厦门海洋职业技术学院 0 0 高职类 0 专科 福建 厦门市 0 +101295 0 0 厦门演艺职业学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +101261 0 0 厦门理工学院 0 0 理工类 0 本科 福建 厦门市 0 +101311 0 0 厦门软件职业技术学院 0 0 高职类 0 民办(专科) 福建 厦门市 0 +104564 0 0 县立广岛大学 1 0 NULL 0 NULL NULL NULL 0 +104576 0 0 县立长崎斯博路德大学 1 0 NULL 0 NULL NULL NULL 0 +101022 0 0 台州学院 0 0 综合类 0 本科 浙江 台州市 0 +101084 0 0 台州科技职业学院 0 0 高职类 0 专科 浙江 台州市 0 +101053 0 0 台州职业技术学院 0 0 高职类 0 专科 浙江 台州市 0 +53 0 0 台湾中原大学 Chung Yuan Christian University CYCU::中原大学 0 0 理工类 0 普通本科 台湾 桃园市 0 +105354 0 0 台湾大学 National Taiwan University (NTU) 0 1 NULL 0 NULL NULL NULL 0 +1525 0 0 台湾师范大学 National Taiwan Normal University 台师大 0 0 综合类 0 普通本科 台湾 台北市 0 +30833 0 0 台湾淡江大学 淡江大學 0 0 综合类 0 普通本科 台湾 新北市 0 +30990 0 0 台湾辅仁大学 0 0 综合类 0 普通本科 台湾 新北市 0 +103544 0 0 史丹佛大学 Stanford University 1 0 NULL 0 NULL NULL NULL 0 +103610 0 0 史丹森大学 Stetson University 1 0 NULL 0 NULL NULL NULL 0 +103880 0 0 史密斯学院 Smith College 1 0 NULL 0 NULL NULL NULL 0 +103873 0 0 史蒂文斯理工学院 Stevens Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +102169 0 0 右江民族医学院 0 0 医科类 0 本科 广西 百色市 0 +103702 0 0 叶史瓦大学 Yeshiva University 1 0 NULL 0 NULL NULL NULL 0 +104787 0 0 叶迪特佩大学 Yeditepe University 1 0 NULL 0 NULL NULL NULL 0 +101216 0 0 合肥信息技术职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101209 0 0 合肥共达职业技术学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101149 0 0 合肥学院 0 0 理工类 0 本科 安徽 合肥市 0 +101123 1 0 合肥工业大学 0 0 理工类 1 本科 安徽 合肥市 0 +105467 0 0 合肥工业大学宣城校区 0 0 NULL 0 其他 安徽 宣城市 0 +101232 0 0 合肥市职工大学 0 0 综合类 0 专科(高职) 安徽 合肥市 0 +101155 0 0 合肥师范学院 0 0 师范类 0 本科 安徽 合肥市 0 +101222 0 0 合肥幼儿师范高等专科学校 0 0 高职类 0 专科 安徽 合肥市 0 +101228 0 0 合肥科技职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101179 0 0 合肥职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101231 0 0 合肥职工科技大学 0 0 综合类 0 专科(高职) 安徽 合肥市 0 +101168 0 0 合肥通用职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +104417 0 0 吉备国际大学 1 0 NULL 0 NULL NULL NULL 0 +101418 0 0 吉安职业技术学院 0 0 高职类 0 专科 江西 吉安市 0 +100621 0 0 吉林交通职业技术学院 0 0 高职类 0 骨干(高职) 吉林 长春市 0 +100602 0 0 吉林体育学院 0 0 体育类 0 本科 吉林 长春市 0 +100592 0 0 吉林农业大学 0 0 农林类 0 本科 吉林 长春市 0 +100607 0 0 吉林农业科技学院 0 0 农林类 0 本科 吉林 吉林市 0 +100614 0 0 吉林动画学院 0 0 艺术类 0 民办(本科) 吉林 长春市 0 +100641 0 0 吉林化学工业公司职工大学 0 0 理工类 0 普通本科 吉林 吉林市 0 +100591 0 0 吉林化工学院 0 0 理工类 0 本科 吉林 吉林市 0 +100615 0 0 吉林医药学院 0 0 医科类 0 本科 吉林 吉林市 0 +100623 0 0 吉林司法警官职业学院 0 0 高职类 0 专科 吉林 长春市 0 +100636 0 0 吉林城市职业技术学院 0 0 高职类 0 民办(专科) 吉林 长春市 0 +100604 0 0 吉林外国语大学 吉林华桥外国语学院 0 0 外语类 0 民办(本科) 吉林 长春市 0 +100585 2 0 吉林大学 0 0 综合类 1 本科 吉林 长春市 1 +105410 0 0 吉林大学—莱姆顿学院 0 0 综合类 0 中外合作办学 吉林 长春市 0 +102153 0 0 吉林大学珠海学院 0 0 综合类 0 独立学院 广东 珠海市 0 +100625 0 0 吉林工业职业技术学院 0 0 高职类 0 示范(高职) 吉林 吉林市 0 +100605 0 0 吉林工商学院 0 0 财经类 0 本科 吉林 长春市 0 +100598 0 0 吉林工程技术师范学院 0 0 师范类 0 本科 吉林 长春市 0 +100626 0 0 吉林工程职业学院 0 0 高职类 0 专科 吉林 四平市 0 +100640 0 0 吉林市职工大学 0 0 NULL 0 NULL NULL NULL 0 +100597 0 0 吉林师范大学 0 0 师范类 0 本科 吉林 四平市 0 +100655 0 0 吉林师范大学博达学院 0 0 师范类 0 独立学院 吉林 四平市 0 +100647 0 0 吉林广播电视大学/吉林电大 吉林广播电视大学 0 0 综合类 0 专科(高职) 吉林 长春市 0 +100590 0 0 吉林建筑大学 0 0 理工类 0 本科 吉林 长春市 0 +100651 0 0 吉林建筑科技学院 吉林建筑大学城建学院 0 0 综合类 0 民办(本科) 吉林 长春市 0 +105607 0 0 吉林水利电力职业学院 0 0 高职类 0 专科 吉林 长春市 0 +100624 0 0 吉林电子信息职业技术学院 0 0 高职类 0 专科 吉林 吉林市 0 +100645 0 0 吉林省教育学院 0 0 师范类 0 其他 吉林 长春市 0 +100648 0 0 吉林省经济管理干部学院 吉林省行政管理干部学院 0 0 财经类 0 其他 吉林 长春市 0 +100634 0 0 吉林科技职业技术学院 0 0 高职类 0 民办(专科) 吉林 长春市 0 +105636 0 0 吉林职业技术学院 0 0 高职类 0 民办(专科) 吉林 延边朝鲜族自治州 0 +100649 0 0 吉林职工医科大学 0 0 医药类 0 专科(高职) 吉林 吉林市 0 +100603 0 0 吉林艺术学院 0 0 艺术类 0 本科 吉林 长春市 0 +100608 0 0 吉林警察学院 0 0 政法类 0 本科 吉林 长春市 0 +100601 0 0 吉林财经大学 0 0 财经类 0 本科 吉林 长春市 0 +100631 0 0 吉林铁道职业技术学院 0 0 高职类 0 专科 吉林 吉林市 0 +103113 0 0 吉森大学 Justus-Liebig-University Giessen 1 0 NULL 0 NULL NULL NULL 0 +104990 0 0 吉田大学 GITAM University 1 0 NULL 0 NULL NULL NULL 0 +105284 0 0 吉米廖夫欧亚国立大学 L.N. Gumilyov Eurasian National University 1 0 NULL 0 NULL NULL NULL 0 +101875 0 0 吉首大学 0 0 综合类 0 本科 湖南 湘西土家族苗族自治州 0 +102004 0 0 吉首大学张家界学院 0 0 综合类 0 独立学院 湖南 张家界市 0 +103272 0 0 同德女子大学 1 0 NULL 0 NULL NULL NULL 0 +104650 0 0 同志社大学 Doshisha University 1 0 NULL 0 NULL NULL NULL 0 +104326 0 0 同志社女子大学 1 0 NULL 0 NULL NULL NULL 0 +104265 0 0 同朋大学 1 0 NULL 0 NULL NULL NULL 0 +100760 2 0 同济大学 0 0 综合类 1 本科 上海 上海市 1 +101121 0 0 同济大学浙江学院 0 0 综合类 0 独立学院 浙江 嘉兴市 0 +104275 0 0 名古屋商科大学 1 0 NULL 0 NULL NULL NULL 0 +104269 0 0 名古屋外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104620 0 0 名古屋大学 Nagoya University 1 1 NULL 0 NULL NULL NULL 0 +104276 0 0 名古屋女子大学 1 0 NULL 0 NULL NULL NULL 0 +104271 0 0 名古屋学艺大学 1 0 NULL 0 NULL NULL NULL 0 +104270 0 0 名古屋学院大学 1 0 NULL 0 NULL NULL NULL 0 +104646 0 0 名古屋工业大学 Nagoya Institute of Technology (NIT) 1 0 NULL 0 NULL NULL NULL 0 +104663 0 0 名古屋市立大学 Nagoya City University 1 0 NULL 0 NULL NULL NULL 0 +104278 0 0 名古屋文理大学 1 0 NULL 0 NULL NULL NULL 0 +104274 0 0 名古屋産业大学 1 0 NULL 0 NULL NULL NULL 0 +104272 0 0 名古屋经济大学 1 0 NULL 0 NULL NULL NULL 0 +104273 0 0 名古屋艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104277 0 0 名古屋造形艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104268 0 0 名古屋音乐大学 1 0 NULL 0 NULL NULL NULL 0 +104700 0 0 名城大学 Meijo University 1 0 NULL 0 NULL NULL NULL 0 +104514 0 0 名寄市立大学 1 0 NULL 0 NULL NULL NULL 0 +104583 0 0 名樱大学 1 0 NULL 0 NULL NULL NULL 0 +105608 0 0 吐鲁番职业技术学院 0 0 高职类 0 专科 新疆 吐鲁番市 0 +100322 0 0 吕梁学院 山西省吕梁市教育学院 0 0 综合类 0 本科 山西 吕梁市 0 +105596 0 0 吕梁学院汾阳师范分校 0 0 师范类 0 专科(高职) 山西 吕梁市 0 +100376 0 0 吕梁职业技术学院 0 0 高职类 0 专科 山西 吕梁市 0 +103067 0 0 吕讷堡大学 Leuphana Universität Lüneburg 1 0 NULL 0 NULL NULL NULL 0 +103066 0 0 吕贝克大学 Universität zu Lübeck 1 0 NULL 0 NULL NULL NULL 0 +103065 0 0 吕贝克音乐学院 Musikhochschule Lübeck 1 0 NULL 0 NULL NULL NULL 0 +104758 0 0 吞武里大学 King Mongkut's University of Technology Thonburi 1 0 NULL 0 NULL NULL NULL 0 +103286 0 0 启明大学 1 0 NULL 0 NULL NULL NULL 0 +104426 0 0 吴大学 1 0 NULL 0 NULL NULL NULL 0 +101608 0 0 周口师范学院 0 0 师范类 0 本科 河南 周口市 0 +101681 0 0 周口科技职业学院 0 0 高职类 0 民办(本科) 河南 周口市 0 +101654 0 0 周口职业技术学院 0 0 高职类 0 专科 河南 周口市 0 +100406 0 0 呼伦贝尔学院 0 0 综合类 0 本科 内蒙 呼伦贝尔市 0 +100437 0 0 呼伦贝尔职业技术学院 0 0 高职类 0 专科 内蒙 呼伦贝尔市 0 +100409 0 0 呼和浩特民族学院 0 0 民族类 0 本科 内蒙 呼和浩特市 0 +100414 0 0 呼和浩特职业学院 0 0 高职类 0 专科 内蒙 呼和浩特市 0 +104559 0 0 和歌山县立医科大学 1 0 NULL 0 NULL NULL NULL 0 +104608 0 0 和歌山大学 1 0 NULL 0 NULL NULL NULL 0 +104155 0 0 和洋女子大学 1 0 NULL 0 NULL NULL NULL 0 +102818 0 0 和田地区教育学院 0 0 师范类 0 专科(高职) 新疆 和田市 0 +102787 0 0 和田师范专科学校 0 0 高职类 0 专科 新疆 和田地区 0 +104774 0 0 咖兹大学 Gazi Üniversitesi 1 0 NULL 0 NULL NULL NULL 0 +101815 0 0 咸宁职业技术学院 0 0 高职类 0 专科 湖北 咸宁市 0 +102602 0 0 咸阳师范学院 0 0 师范类 0 本科 陕西 咸阳市 0 +102649 0 0 咸阳职业技术学院 0 0 高职类 0 专科 陕西 咸阳市 0 +103766 0 0 哈佛大学 Harvard University 1 1 NULL 0 NULL NULL NULL 0 +103049 0 0 哈勒-维腾贝格大学 Martin-Luther-Universität Halle-Wittenberg 1 0 NULL 0 NULL NULL NULL 0 +103050 0 0 哈勒艺术大学 Burg Giebichenstein Kunsthochschule Halle 1 0 NULL 0 NULL NULL NULL 0 +102811 0 0 哈密职业技术学院 0 0 高职类 0 专科 新疆 哈密市 0 +100711 0 0 哈尔滨传媒职业学院 0 0 高职类 0 民办(专科) 黑龙江 哈尔滨市 0 +100677 0 0 哈尔滨体育学院 0 0 体育类 0 本科 黑龙江 哈尔滨市 0 +100682 0 0 哈尔滨信息工程学院 0 0 理工类 0 民办(本科) 黑龙江 哈尔滨市 0 +100689 0 0 哈尔滨剑桥学院 0 0 综合类 0 民办(本科) 黑龙江 哈尔滨市 0 +105665 0 0 哈尔滨北方航空职业技术学院 0 0 高职类 0 民办(专科) 黑龙江 哈尔滨市 0 +100667 0 0 哈尔滨医科大学 0 0 医科类 0 本科 黑龙江 哈尔滨市 0 +100691 0 0 哈尔滨华德学院 0 0 理工类 0 民办(本科) 黑龙江 哈尔滨市 0 +100676 0 0 哈尔滨商业大学 0 0 财经类 0 本科 黑龙江 哈尔滨市 0 +100716 0 0 哈尔滨城市职业学院 哈尔滨江南职业技术学院 0 0 高职类 0 民办(专科) 黑龙江 哈尔滨市 0 +100673 0 0 哈尔滨学院 0 0 综合类 0 本科 黑龙江 哈尔滨市 0 +100658 2 0 哈尔滨工业大学 0 0 理工类 1 本科 黑龙江 哈尔滨市 1 +105372 2 0 哈尔滨工业大学(威海) 0 0 理工类 1 普通本科 山东 威海市 1 +105427 2 0 哈尔滨工业大学(深圳) 0 0 理工类 1 普通本科 广东 深圳市 1 +100660 1 0 哈尔滨工程大学 0 0 理工类 0 本科 黑龙江 哈尔滨市 0 +100732 0 0 哈尔滨工程技术职业学院 0 0 高职类 0 民办(专科) 黑龙江 NULL 0 +100754 0 0 哈尔滨市职工医学院 0 0 医药类 0 普通本科 黑龙江 哈尔滨市 0 +100738 0 0 哈尔滨市职工大学 0 0 其他 0 专科(高职) 黑龙江 哈尔滨市 0 +100670 0 0 哈尔滨师范大学 0 0 师范类 0 本科 黑龙江 哈尔滨市 0 +100734 0 0 哈尔滨幼儿师范高等专科学校 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100690 0 0 哈尔滨广厦学院 0 0 财经类 0 民办(本科) 黑龙江 哈尔滨市 0 +100756 0 0 哈尔滨广播电视大学 哈尔滨市广播电视大学 0 0 综合类 0 专科(高职) 黑龙江 哈尔滨市 0 +100726 0 0 哈尔滨应用职业技术学院 0 0 高职类 0 民办(专科) 黑龙江 哈尔滨市 0 +100659 0 0 哈尔滨理工大学 0 0 理工类 0 本科 黑龙江 哈尔滨市 0 +105548 0 0 哈尔滨理工大学荣成校区 0 0 NULL 0 其他 山东 威海市 0 +100706 0 0 哈尔滨电力职业技术学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100687 0 0 哈尔滨石油学院 0 0 理工类 0 民办(本科) 黑龙江 哈尔滨市 0 +100728 0 0 哈尔滨科学技术职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100710 0 0 哈尔滨职业技术学院 0 0 高职类 0 骨干(高职) 黑龙江 哈尔滨市 0 +100736 0 0 哈尔滨航空职工大学 0 0 其他 0 专科(高职) 黑龙江 哈尔滨市 0 +100737 0 0 哈尔滨轻型车厂职工大学 0 0 其他 0 专科(高职) 黑龙江 哈尔滨市 0 +100688 0 0 哈尔滨远东理工学院 0 0 理工类 0 民办(本科) 黑龙江 哈尔滨市 0 +100678 0 0 哈尔滨金融学院 0 0 财经类 0 本科 黑龙江 哈尔滨市 0 +100707 0 0 哈尔滨铁道职业技术学院 0 0 高职类 0 骨干(高职) 黑龙江 哈尔滨市 0 +105574 0 0 哈尔滨音乐学院 0 0 艺术类 0 本科 黑龙江 哈尔滨市 0 +104795 0 0 哈尔科夫国立大学 V. N. Karazin Kharkiv National University 1 0 NULL 0 NULL NULL NULL 0 +105251 0 0 哈尔科夫国立技术大学理工学院 National Technical University Kharkiv Polytechnic Institute 1 0 NULL 0 NULL NULL NULL 0 +104798 0 0 哈尔科夫国立理工大学 National Technical University  National Technical University "Kharkiv Polytechnic Institute" 1 0 NULL 0 NULL NULL NULL 0 +105215 0 0 哈希姆大学 Hashemite University 1 0 NULL 0 NULL NULL NULL 0 +105144 0 0 哈德斯菲尔德大学 University of Huddersfield 1 0 NULL 0 NULL NULL NULL 0 +104830 0 0 哈恩大学 University of Jaén 1 0 NULL 0 NULL NULL NULL 0 +102851 0 0 哈扎尔大学 Khazar University 1 0 NULL 0 NULL NULL NULL 0 +104771 0 0 哈斯特帕大学 Hacettepe University 1 0 NULL 0 NULL NULL NULL 0 +103048 0 0 哈根远程大学 Fernuniversität in Hagen 1 0 NULL 0 NULL NULL NULL 0 +103662 0 0 哈森学院 Husson College 1 0 NULL 0 NULL NULL NULL 0 +103590 0 0 哈特福德大学 University of Hartford 1 0 NULL 0 NULL NULL NULL 0 +103585 0 0 哈特福德研究中心 Hartford Graduate Center 1 0 NULL 0 NULL NULL NULL 0 +105175 0 0 哈珀亚当斯大学 Harper Adams University 1 0 NULL 0 NULL NULL NULL 0 +103006 0 0 哈瑟尔特大学 Hasselt University 1 0 NULL 0 NULL NULL NULL 0 +103248 0 0 哈瓦那大学 Universidad de la Habana 1 0 NULL 0 NULL NULL NULL 0 +104739 0 0 哈立德国王大学 King Khalid University 1 0 NULL 0 NULL NULL NULL 0 +103554 0 0 哈维穆德学院 Harvey Mudd College 1 0 NULL 0 NULL NULL NULL 0 +103255 0 0 哈英理工大学 Kazakh-British Technical University 1 0 NULL 0 NULL NULL NULL 0 +103252 0 0 哈萨克国立师范大学 Kazakh National Pedagogical University named after Abay 1 0 NULL 0 NULL NULL NULL 0 +105285 0 0 哈萨克斯坦国立研究技术大学KISatpayev之后 Kazakh National Research Technical University after K.I.Satpayev 1 0 NULL 0 NULL NULL NULL 0 +105283 0 0 哈萨克族哈萨克民族教育大学 Abai Kazakh National Pedagogical University 1 0 NULL 0 NULL NULL NULL 0 +103256 0 0 哈萨克阿伯莱可汗大学 Kazakh Ablai Khan University of International Relations and World Languages 1 0 NULL 0 NULL NULL NULL 0 +102846 0 0 哈里发大学 Khalifa University 1 0 NULL 0 NULL NULL NULL 0 +103236 0 0 哈韦里安纳主教大学 Pontificia Universidad Javeriana 1 0 NULL 0 NULL NULL NULL 0 +105324 0 0 哥伦比亚北方大学 northern University 1 0 NULL 0 NULL NULL NULL 0 +103233 0 0 哥伦比亚国立大学 Universidad Nacional de Colombia 1 0 NULL 0 NULL NULL NULL 0 +103235 0 0 哥伦比亚外事大学 Universidad Externado de Colombia 1 0 NULL 0 NULL NULL NULL 0 +103772 0 0 哥伦比亚大学 Columbia University 1 1 NULL 0 NULL NULL NULL 0 +105323 0 0 哥伦比亚大学外部 university extership of Colombia 1 0 NULL 0 NULL NULL NULL 0 +103089 0 0 哥廷根大学 University of Göttingen 1 0 NULL 0 NULL NULL NULL 0 +104715 0 0 哥德堡大学 University of Gothenburg 1 0 NULL 0 NULL NULL NULL 0 +103246 0 0 哥斯达黎加国立大学 Universidad Nacional Costa Rica 1 0 NULL 0 NULL NULL NULL 0 +103245 0 0 哥斯达黎加大学 Universidad de Costa Rica 1 0 NULL 0 NULL NULL NULL 0 +103029 0 0 哥本哈根商学院 Copenhagen Business School 1 0 NULL 0 NULL NULL NULL 0 +103024 0 0 哥本哈根大学 University of Copenhagen 1 1 NULL 0 NULL NULL NULL 0 +103016 0 0 哥白尼大学 Nicolaus Copernicus University 1 0 NULL 0 NULL NULL NULL 0 +100206 0 0 唐山学院 0 0 理工类 0 本科 河北 唐山市 0 +100243 0 0 唐山工业职业技术学院 0 0 高职类 0 骨干(高职) 河北 唐山市 0 +100196 0 0 唐山师范学院 0 0 师范类 0 本科 河北 唐山市 0 +105609 0 0 唐山幼儿师范高等专科学校 0 0 师范类 0 专科 河北 唐山市 0 +100256 0 0 唐山科技职业技术学院 0 0 高职类 0 专科 河北 唐山市 0 +100241 0 0 唐山职业技术学院 0 0 高职类 0 专科 河北 唐山市 0 +101666 0 0 商丘医学高等专科学校 0 0 高职类 0 专科 河南 商丘市 0 +101634 0 0 商丘学院 0 0 综合类 0 民办(本科) 河南 商丘市 0 +101633 0 0 商丘工学院 0 0 理工类 0 民办(本科) 河南 商丘市 0 +101613 0 0 商丘师范学院 0 0 师范类 0 本科 河南 商丘市 0 +101652 0 0 商丘职业技术学院 0 0 高职类 0 示范(高职) 河南 商丘市 0 +102611 0 0 商洛学院 0 0 综合类 0 本科 陕西 商洛市 0 +102651 0 0 商洛职业技术学院 0 0 高职类 0 专科 陕西 商洛市 0 +102780 0 0 喀什大学 喀什师范学院 0 0 师范类 0 本科 新疆 喀什市 0 +102816 0 0 喀什教育学院 0 0 师范类 0 专科(高职) 新疆 喀什市 0 +103143 0 0 喀山联邦大学 Kazan (Volga region) Federal University 1 0 NULL 0 NULL NULL NULL 0 +104982 0 0 喀拉拉大学 University of Kerala 1 0 NULL 0 NULL NULL NULL 0 +101079 0 0 嘉兴南洋职业技术学院 0 0 高职类 0 民办(专科) 浙江 嘉兴市 0 +101026 0 0 嘉兴学院 0 0 财经类 0 本科 浙江 嘉兴市 0 +101119 0 0 嘉兴学院南湖学院 0 0 综合类 0 独立学院 浙江 嘉兴市 0 +342 0 0 嘉兴广播电视大学 JIAXING RADIO&TV UNIVERSITY 嘉兴电大 0 0 综合类 0 专科(高职) 江苏 嘉兴市 0 +101099 0 0 嘉兴教育学院 浙江嘉兴教育学院 0 0 师范类 0 专科(高职) 浙江 嘉兴市 0 +101068 0 0 嘉兴职业技术学院 0 0 高职类 0 专科 浙江 嘉兴市 0 +102024 0 0 嘉应学院 0 0 综合类 0 本科 广东 梅州市 0 +104162 0 0 嘉悦大学 1 0 NULL 0 NULL NULL NULL 0 +104446 0 0 四国大学 1 0 NULL 0 NULL NULL NULL 0 +104451 0 0 四国学院大学 1 0 NULL 0 NULL NULL NULL 0 +104359 0 0 四天王寺国际佛教大学 1 0 NULL 0 NULL NULL NULL 0 +102410 0 0 四川三河职业学院 0 0 高职类 0 民办(专科) 四川 泸州市 0 +102402 0 0 四川中医药高等专科学校 0 0 高职类 0 专科 四川 绵阳市 0 +102379 0 0 四川交通职业技术学院 0 0 高职类 0 示范(高职) 四川 成都市 0 +102358 0 0 四川传媒学院 0 0 艺术类 0 民办(本科) 四川 成都市 0 +102437 0 0 四川体育职业学院 四川省职工运动技术学院 0 0 高职类 0 专科 四川 成都市 0 +102397 0 0 四川信息职业技术学院 0 0 高职类 0 专科 四川 广元市 0 +102336 1 0 四川农业大学 0 0 农林类 1 本科 四川 雅安市 0 +102371 0 0 四川化工职业技术学院 0 0 高职类 0 专科 四川 泸州市 0 +102399 0 0 四川华新现代职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102412 0 0 四川卫生康复职业学院 0 0 高职类 0 专科 四川 自贡市 0 +102395 0 0 四川司法警官职业学院 0 0 高职类 0 专科 四川 德阳市 0 +102394 0 0 四川商务职业学院 0 0 高职类 0 专科 四川 成都市 0 +102385 0 0 四川国际标榜职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102406 0 0 四川城市职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102267 0 0 四川外国语大学 0 0 外语类 0 本科 重庆 重庆市 0 +102443 0 0 四川外国语大学成都学院 0 0 语言类 0 独立学院 四川 成都市 0 +102319 0 0 四川外国语大学重庆南方翻译学院 0 0 语言类 0 普通本科 重庆 重庆市 0 +102325 2 0 四川大学 0 0 综合类 1 本科 四川 成都市 1 +102445 0 0 四川大学锦城学院 0 0 综合类 0 独立学院 四川 成都市 0 +102447 0 0 四川大学锦江学院 0 0 综合类 0 独立学院 四川 眉山市 0 +102361 0 0 四川工业科技学院 0 0 理工类 0 民办(本科) 四川 德阳市 0 +102442 0 0 四川工商学院 四川师范大学成都学院 0 0 财经类 0 民办(本科) 四川 成都市 0 +102380 0 0 四川工商职业技术学院 0 0 高职类 0 专科 四川 成都市 0 +102381 0 0 四川工程职业技术学院 0 0 高职类 0 示范(高职) 四川 德阳市 0 +102341 0 0 四川师范大学 0 0 师范类 0 本科 四川 成都市 0 +102415 0 0 四川希望汽车职业学院 0 0 高职类 0 民办(专科) 四川 资阳市 0 +102408 0 0 四川幼儿师范高等专科学校 0 0 高职类 0 专科 四川 绵阳市 0 +102436 0 0 四川广播电视大学 0 0 综合类 0 专科(高职) 四川 成都市 0 +105623 0 0 四川应用技术职业学院 0 0 高职类 0 民办(专科) 四川 凉山彝族自治州 0 +102382 0 0 四川建筑职业技术学院 0 0 高职类 0 示范(高职) 四川 德阳市 0 +102384 0 0 四川托普信息技术职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102419 0 0 四川护理职业学院 0 0 高职类 0 专科 四川 德阳市 0 +102404 0 0 四川文化产业职业学院 0 0 高职类 0 专科 四川 成都市 0 +102398 0 0 四川文化传媒职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102362 0 0 四川文化艺术学院 0 0 艺术类 0 民办(本科) 四川 绵阳市 0 +102346 0 0 四川文理学院 0 0 综合类 0 本科 四川 达州市 0 +102417 0 0 四川文轩职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102354 0 0 四川旅游学院 0 0 财经类 0 本科 四川 成都市 0 +102377 0 0 四川机电职业技术学院 0 0 高职类 0 骨干(高职) 四川 攀枝花市 0 +102355 0 0 四川民族学院 0 0 民族类 0 本科 四川 甘孜藏族自治州 0 +102372 0 0 四川水利职业技术学院 0 0 高职类 0 专科 四川 成都市 0 +102413 0 0 四川汽车职业技术学院 0 0 高职类 0 民办(专科) 四川 绵阳市 0 +102407 0 0 四川现代职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102369 0 0 四川电力职业技术学院 0 0 高职类 0 示范(高职) 四川 成都市 0 +102416 0 0 四川电子机械职业技术学院 0 0 高职类 0 民办(专科) 四川 绵阳市 0 +102364 0 0 四川电影电视学院 0 0 艺术类 0 民办(本科) 四川 成都市 0 +102423 0 0 四川省东方动力职工大学 0 0 其他 0 专科(高职) 四川 成都市 0 +102432 0 0 四川省化工职工大学 0 0 理工类 0 专科(高职) 四川 成都市 0 +102403 0 0 四川科技职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102422 0 0 四川科技职工大学 0 0 理工类 0 专科(高职) 四川 成都市 0 +102400 0 0 四川管理职业学院 0 0 财经类 0 专科(高职) 四川 成都市 0 +102269 0 0 四川美术学院 0 0 艺术类 0 本科 重庆 重庆市 0 +102391 0 0 四川职业技术学院 0 0 高职类 0 专科 四川 遂宁市 0 +102375 0 0 四川航天职业技术学院 0 0 高职类 0 专科 四川 成都市 0 +102401 0 0 四川艺术职业学院 0 0 高职类 0 专科 四川 成都市 0 +102421 0 0 四川西南航空职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102356 0 0 四川警察学院 0 0 政法类 0 本科 四川 泸州市 0 +102405 0 0 四川财经职业学院 0 0 高职类 0 专科 四川 成都市 0 +102333 0 0 四川轻化工大学 四川理工学院 0 0 理工类 0 本科 四川 自贡市 0 +102376 0 0 四川邮电职业技术学院 0 0 高职类 0 骨干(高职) 四川 成都市 0 +102409 0 0 四川长江职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +102349 0 0 四川音乐学院 0 0 艺术类 0 本科 四川 成都市 0 +100617 0 0 四平职业大学 0 0 高职类 0 专科 吉林 四平市 0 +104286 0 0 四日市大学 1 0 NULL 0 NULL NULL NULL 0 +104358 0 0 四条畷学园大学 1 0 NULL 0 NULL NULL NULL 0 +102885 0 0 因斯布鲁克医科大学 Medical University of Innsbruck 1 0 NULL 0 NULL NULL NULL 0 +102877 0 0 因斯布鲁克大学 Universität Innsbruck 1 0 NULL 0 NULL NULL NULL 0 +104398 0 0 园田学园女子大学 1 0 NULL 0 NULL NULL NULL 0 +104175 0 0 国士舘大学 1 0 NULL 0 NULL NULL NULL 0 +104173 0 0 国学院大学 1 0 NULL 0 NULL NULL NULL 0 +100098 0 0 国家开放大学 国家开放大学(中央广播电视大学) 0 0 综合类 0 专科(高职) 北京 北京市 0 +100107 0 0 国家检察官学院 0 0 NULL 0 其他 北京 北京市 0 +100104 0 0 国家法官学院 0 0 政法类 0 普通本科 北京 北京市 0 +103263 0 0 国民大学 1 0 NULL 0 NULL NULL NULL 0 +105280 0 0 国油科技大学 Universiti Teknologi Petronas 1 0 NULL 0 NULL NULL NULL 0 +30830 0 0 国立中山大学 0 0 综合类 0 普通本科 台湾 台北市 0 +104981 0 0 国立伊斯兰大学 Jamia Millia Islamia 1 0 NULL 0 NULL NULL NULL 0 +102842 0 0 国立南方大学 Universidad Nacional del Sur 1 0 NULL 0 NULL NULL NULL 0 +30832 0 0 国立台北大学 0 0 综合类 0 普通本科 台湾 台北市 0 +30826 0 0 国立台湾大学 0 0 综合类 0 普通本科 台湾 台北市 0 +1524 0 0 国立台湾科技大学 台湾科大::台科大::台科::台湾科技大学 0 0 综合类 0 普通本科 台湾 台北市 0 +103249 0 0 国立哈萨克大学 Al-Farabi Kazakh National University 1 0 NULL 0 NULL NULL NULL 0 +103251 0 0 国立哈萨克理工大学 Kazakh National Technical University named after K.I.Satpaev 1 0 NULL 0 NULL NULL NULL 0 +103979 0 0 国立圣马科斯大学 Universidad Nacional Mayor de San Marcos 1 0 NULL 0 NULL NULL NULL 0 +102852 0 0 国立巴库大学 Baku State University 1 0 NULL 0 NULL NULL NULL 0 +102838 0 0 国立库约大学 Universidad Nacional de Cuyo 1 0 NULL 0 NULL NULL NULL 0 +30834 0 0 国立成功大学 0 0 综合类 0 普通本科 台湾 台南市 0 +102834 0 0 国立拉普拉塔大学 Universidad Nacional de La Plata (UNLP) 1 0 NULL 0 NULL NULL NULL 0 +30831 0 0 国立政治大学 0 0 综合类 0 普通本科 台湾 台北市 0 +105266 0 0 国立核能研究大学-莫斯科工程物理学院 National Research Nuclear University 1 0 NULL 0 NULL NULL NULL 0 +103250 0 0 国立欧亚大学 L.N. Gumilyov Eurasian National University (ENU) 1 0 NULL 0 NULL NULL NULL 0 +104975 0 0 国立理工学院洛尔克拉分校 National Institute of Technology Rourkela 1 0 NULL 0 NULL NULL NULL 0 +105264 0 0 国立研究型大学高等经济学院 National Research University Higher School of Economics 1 0 NULL 0 NULL NULL NULL 0 +102837 0 0 国立科尔多瓦大学 Universidad Nacional de Córdoba - UNC 1 0 NULL 0 NULL NULL NULL 0 +102840 0 0 国立罗萨里奥大学 Universidad Nacional de Rosario (UNR) 1 0 NULL 0 NULL NULL NULL 0 +103326 0 0 国立群山大学 1 0 NULL 0 NULL NULL NULL 0 +103304 0 0 国立韩京大学 1 0 NULL 0 NULL NULL NULL 0 +104172 0 0 国立音乐大学 1 0 NULL 0 NULL NULL NULL 0 +103376 0 0 国立首尔科学技术大学 Seoul National University of Science and Technology (SeoulTech) 1 0 NULL 0 NULL NULL NULL 0 +102839 0 0 国立马德普拉塔大学 Universidad Nacional de Mar del Plata 1 0 NULL 0 NULL NULL NULL 0 +103140 0 0 国立高等经济学院 National Research University Higher School of Economics (HSE, Moscow) 1 0 NULL 0 NULL NULL NULL 0 +102427 0 0 国营涪江机器厂职工大学 0 0 理工类 0 专科(高职) 四川 绵阳市 0 +105366 2 0 国防科技大学 0 0 军事类 1 普通本科 湖南 长沙市 1 +103517 0 0 国防语言学院,蒙特瑞 Defense Language Institute, Monterey 1 0 NULL 0 NULL NULL NULL 0 +100036 0 0 国际关系学院 0 0 政法类 0 本科 北京 北京市 0 +104090 0 0 国际医疗福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104174 0 0 国际基督教大学 1 0 NULL 0 NULL NULL NULL 0 +104520 0 0 国际教养大学 1 0 NULL 0 NULL NULL NULL 0 +104135 0 0 国际武道大学 1 0 NULL 0 NULL NULL NULL 0 +105315 0 0 图卢兹社会科学第一大学 The University of Toulouse 1, Capitole 1 0 NULL 0 NULL NULL NULL 0 +103194 0 0 图卢兹第一大学 Université Toulouse 1 Capitole 1 0 NULL 0 NULL NULL NULL 0 +103186 0 0 图卢兹第三大学 Université Paul Sabatier Toulouse III 1 0 NULL 0 NULL NULL NULL 0 +103203 0 0 图卢兹第二大学 Université de Toulouse II-Le Mirail 1 0 NULL 0 NULL NULL NULL 0 +103206 0 0 图卢兹联邦大学 Federal University of Toulouse Midi-Pyrénées 1 0 NULL 0 NULL NULL NULL 0 +105300 0 0 图宾根大学 Eberhard Karls University Tübingen 1 0 NULL 0 NULL NULL NULL 0 +103225 0 0 图库大学 University of Turku 1 0 NULL 0 NULL NULL NULL 0 +102841 0 0 图库曼国立大学 Universidad Nacional de Tucumà¡n 1 0 NULL 0 NULL NULL NULL 0 +104782 0 0 图拨经济技术大学 TOBB University of Economics and Technology 1 0 NULL 0 NULL NULL NULL 0 +104887 0 0 图西理工大学 K.N. Toosi University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103327 0 0 圆光大学 1 0 NULL 0 NULL NULL NULL 0 +105172 0 0 圣乔治医学院 St George's Hospital Medical School 1 0 NULL 0 NULL NULL NULL 0 +102960 0 0 圣保罗大学 Universidade de São Paulo 1 1 NULL 0 NULL NULL NULL 0 +102964 0 0 圣保罗天主大学 Pontifícia Universidade Católica de São Paulo 1 0 NULL 0 NULL NULL NULL 0 +105330 0 0 圣保罗天主教大学 Pontifical Catholic University of São Paulo 1 0 NULL 0 NULL NULL NULL 0 +102963 0 0 圣保罗州立大学 UNESP 1 0 NULL 0 NULL NULL NULL 0 +102966 0 0 圣保罗联邦大学 Universidade Federal de São Paulo 1 0 NULL 0 NULL NULL NULL 0 +104729 0 0 圣加仑大学 University of St.Gallen (HSG) 1 0 NULL 0 NULL NULL NULL 0 +102971 0 0 圣卡塔琳娜联邦大学 Universidade Federal de Santa Catarina 1 0 NULL 0 NULL NULL NULL 0 +102970 0 0 圣卡洛斯联邦大学 Universidade Federal de São Carlos (UFSCAR) 1 0 NULL 0 NULL NULL NULL 0 +104448 0 0 圣卡特琳娜大学 1 0 NULL 0 NULL NULL NULL 0 +104397 0 0 圣和大学 1 0 NULL 0 NULL NULL NULL 0 +103908 0 0 圣地亚哥大学 University of San Diego 1 0 NULL 0 NULL NULL NULL 0 +103904 0 0 圣地亚哥州立大学 San Diego State University 1 0 NULL 0 NULL NULL NULL 0 +105259 0 0 圣地亚哥波斯特拉大学 University of Santiago de Compostela 1 0 NULL 0 NULL NULL NULL 0 +104837 0 0 圣地亚哥联合大学 University of Santiago Compostela 1 0 NULL 0 NULL NULL NULL 0 +104116 0 0 圣学院大学 1 0 NULL 0 NULL NULL NULL 0 +103745 0 0 圣安东尼奥分校 University of Texas at San Antonio 1 0 NULL 0 NULL NULL NULL 0 +102835 0 0 圣安德烈斯大学 Universidad de San Andrés - UdeSA 1 0 NULL 0 NULL NULL NULL 0 +105097 0 0 圣安德鲁斯大学 University of St Andrews 1 1 NULL 0 NULL NULL NULL 0 +103433 0 0 圣弗朗西斯泽维尔大学 St. Francis Xavier 1 0 NULL 0 NULL NULL NULL 0 +103163 0 0 圣弗朗西斯科基多大学 Universidad San Francisco de Quito (USFQ) 1 0 NULL 0 NULL NULL NULL 0 +103150 0 0 圣彼得堡国立信息技术大学 ITMO University 1 0 NULL 0 NULL NULL NULL 0 +103133 0 0 圣彼得堡国立大学 Saint Petersburg State University 1 0 NULL 0 NULL NULL NULL 0 +103142 0 0 圣彼得堡理工大学 Peter the Great Saint-Petersburg Polytechnic University 1 0 NULL 0 NULL NULL NULL 0 +104139 0 0 圣德大学 1 0 NULL 0 NULL NULL NULL 0 +103582 0 0 圣心大学 Sacred Heart University 1 0 NULL 0 NULL NULL NULL 0 +104921 0 0 圣心天主大学 Università Cattolica del Sacro Cuore 1 0 NULL 0 NULL NULL NULL 0 +104171 0 0 圣心女子大学 1 0 NULL 0 NULL NULL NULL 0 +103441 0 0 圣托马斯大学 St. Thomas 1 0 NULL 0 NULL NULL NULL 0 +104938 0 0 圣拉斐尔大学 Vita-Salute San Raffaele University 1 0 NULL 0 NULL NULL NULL 0 +103811 0 0 圣母大学 University of Notre Dame 1 0 NULL 0 NULL NULL NULL 0 +104423 0 0 圣母清心女子大学 1 0 NULL 0 NULL NULL NULL 0 +104375 0 0 圣汤马斯大学 1 0 NULL 0 NULL NULL NULL 0 +104308 0 0 圣泉大学 1 0 NULL 0 NULL NULL NULL 0 +102976 0 0 圣玛丽亚联邦大学 Universidade Federal de Santa Maria 1 0 NULL 0 NULL NULL NULL 0 +105226 0 0 圣玛丽亚联邦理工大学 Universidad Técnica Federico Santa María (USM) 1 0 NULL 0 NULL NULL NULL 0 +104201 0 0 圣玛丽安娜医科大学 1 0 NULL 0 NULL NULL NULL 0 +103591 0 0 圣约瑟夫学院 St. Joseph College 1 0 NULL 0 NULL NULL NULL 0 +105282 0 0 圣约瑟夫贝鲁特大学 Saint Joseph University of Beirut 1 0 NULL 0 NULL NULL NULL 0 +103663 0 0 圣约色夫学院 St. Joseph's College 1 0 NULL 0 NULL NULL NULL 0 +103595 0 0 圣艾尔奉萨斯学院 St. Alphonsus College 1 0 NULL 0 NULL NULL NULL 0 +103541 0 0 圣荷西州立大学 San José State University 1 0 NULL 0 NULL NULL NULL 0 +103791 0 0 圣路易斯华盛顿大学 Washington University in St. Louis 1 1 NULL 0 NULL NULL NULL 0 +103920 0 0 圣路易斯大学 Saint Louis University 1 0 NULL 0 NULL NULL NULL 0 +103519 0 0 圣路易斯欧比斯普分校 California State Polytechnic University, San Luis Obispo 1 0 NULL 0 NULL NULL NULL 0 +103557 0 0 圣迭戈大学 University of San Diego, USD 1 0 NULL 0 NULL NULL NULL 0 +103539 0 0 圣迭戈州立大学 San Diego State University 1 0 NULL 0 NULL NULL NULL 0 +104236 0 0 圣隷克里斯多福大学 1 0 NULL 0 NULL NULL NULL 0 +105211 0 0 圣马克与圣约翰大学 University of St Mark & St John, Plymouth 1 0 NULL 0 NULL NULL NULL 0 +104891 0 0 圭兰大学 University of Guilan 1 0 NULL 0 NULL NULL NULL 0 +104367 0 0 坂南大学 1 0 NULL 0 NULL NULL NULL 0 +105207 0 0 坎布里亚大学 University of Cumbria 1 0 NULL 0 NULL NULL NULL 0 +105019 0 0 坎特伯雷基督教会大学 Canterbury Christ Church University 1 0 NULL 0 NULL NULL NULL 0 +102961 0 0 坎皮纳斯大学 Universidade Estadual de Campinas (Unicamp) 1 0 NULL 0 NULL NULL NULL 0 +105010 0 0 坎贝威尔艺术学院 1 0 NULL 0 NULL NULL NULL 0 +103649 0 0 坎贝斯维尔大学 Campbellsville University 1 0 NULL 0 NULL NULL NULL 0 +103232 0 0 坦佩雷大学 University of Tampere 1 0 NULL 0 NULL NULL NULL 0 +103227 0 0 坦佩雷理工大学 Tampere University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103611 0 0 坦帕大学 University of Tampa 1 0 NULL 0 NULL NULL NULL 0 +105104 0 0 埃克塞特大学 The University of Exeter 1 0 NULL 0 NULL NULL NULL 0 +103231 0 0 埃博学术大学 Abo Akademi University 1 0 NULL 0 NULL NULL NULL 0 +103384 0 0 埃因霍温理工大学 Eindhoven University of Technology 1 1 NULL 0 NULL NULL NULL 0 +105121 0 0 埃塞克斯大学 University of Essex 1 0 NULL 0 NULL NULL NULL 0 +104840 0 0 埃尔南德斯大学 Miguel Hernandez University of Elche 1 0 NULL 0 NULL NULL NULL 0 +104779 0 0 埃尔吉耶斯大学 Erciyes University 1 0 NULL 0 NULL NULL NULL 0 +103096 0 0 埃尔朗根-纽伦堡大学 Friedrich-Alexander-Universität Erlangen-Nürnberg 1 0 NULL 0 NULL NULL NULL 0 +103042 0 0 埃尔福特大学 Universität Erfurt 1 0 NULL 0 NULL NULL NULL 0 +102936 0 0 埃迪斯科文大学 Edith Cowan University 1 0 NULL 0 NULL NULL NULL 0 +105364 0 0 埃默里大学 Emory University 1 1 NULL 0 NULL NULL NULL 0 +103239 0 0 城北大学 Universidad del Norte 1 0 NULL 0 NULL NULL NULL 0 +104138 0 0 城西国际大学 1 0 NULL 0 NULL NULL NULL 0 +104112 0 0 城西大学 1 0 NULL 0 NULL NULL NULL 0 +103294 0 0 培材大学 1 0 NULL 0 NULL NULL NULL 0 +105321 0 0 基多大学旧金山分校 San Francisco University of Quito 1 0 NULL 0 NULL NULL NULL 0 +105308 0 0 基尔大学 Kiel University 1 0 NULL 0 NULL NULL NULL 0 +104796 0 0 基辅国立大学 Taras Shevchenko National University of Kyiv 1 0 NULL 0 NULL NULL NULL 0 +104797 0 0 基辅国立理工大学 National Technical University of Ukraine "Igor Sikorsky Kyiv Polytechnic Institute" 1 0 NULL 0 NULL NULL NULL 0 +104680 0 0 埼玉医科大学 Saitama Medical University 1 0 NULL 0 NULL NULL NULL 0 +104528 0 0 埼玉县立大学 1 0 NULL 0 NULL NULL NULL 0 +104655 0 0 埼玉大学 Saitama University 1 0 NULL 0 NULL NULL NULL 0 +104110 0 0 埼玉学园大学 1 0 NULL 0 NULL NULL NULL 0 +102932 0 0 堪培拉大学 University of Canberra 1 0 NULL 0 NULL NULL NULL 0 +103827 0 0 堪萨斯大学 University of Kansas 1 0 NULL 0 NULL NULL NULL 0 +103889 0 0 堪萨斯州立大学 Kansas State University 1 0 NULL 0 NULL NULL NULL 0 +103813 0 0 塔夫斯大学 Tufts University 1 0 NULL 0 NULL NULL NULL 0 +103676 0 0 塔夫茨大学 Tufts University 1 0 NULL 0 NULL NULL NULL 0 +105224 0 0 塔尔卡大学 Universidad de Talca 1 0 NULL 0 NULL NULL NULL 0 +102873 0 0 塔尔图大学 University of Tartu 1 0 NULL 0 NULL NULL NULL 0 +103892 0 0 塔尔萨大学 University of Tulsa 1 0 NULL 0 NULL NULL NULL 0 +104986 0 0 塔帕尔大学 Thapar University 1 0 NULL 0 NULL NULL NULL 0 +103509 0 0 塔斯卡极大学 1 0 NULL 0 NULL NULL NULL 0 +102924 0 0 塔斯马尼亚大学 University of Tasmania 1 0 NULL 0 NULL NULL NULL 0 +102874 0 0 塔林理工大学 Tallinn University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104899 0 0 塔比特默德尔斯大学 Tarbiat Modares University 1 0 NULL 0 NULL NULL NULL 0 +102775 0 0 塔里木大学 0 0 综合类 0 本科 新疆 自治区直辖县级行政区划 0 +102984 0 0 塞亚尔联邦大学 Federal University of Ceará (UFC) 1 0 NULL 0 NULL NULL NULL 0 +103197 0 0 塞吉-蓬图瓦兹大学 Université de Cergy-Pontoise 1 0 NULL 0 NULL NULL NULL 0 +104871 0 0 塞格德大学 University of Szeged 1 0 NULL 0 NULL NULL NULL 0 +104877 0 0 塞梅尔魏斯大学 Semmelweis University 1 0 NULL 0 NULL NULL NULL 0 +104735 0 0 塞浦路斯大学 University of Cyprus 1 0 NULL 0 NULL NULL NULL 0 +104734 0 0 塞浦路斯理工大学 Cyprus University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104997 0 0 塞瑟巴玛大学 Sathyabama University 1 0 NULL 0 NULL NULL NULL 0 +104821 0 0 塞维利亚大学 Universidad de Sevilla 1 0 NULL 0 NULL NULL NULL 0 +103160 0 0 塞维诺诺夫大学 Sechenov University 1 0 NULL 0 NULL NULL NULL 0 +102978 0 0 塞阿拉联邦大学 Universidade Federal do Ceará (UFC) 1 0 NULL 0 NULL NULL NULL 0 +102909 0 0 墨尔本大学 The University of Melbourne 1 1 NULL 0 NULL NULL NULL 0 +102899 0 0 墨尔本皇家理工大学 RMIT University 1 0 NULL 0 NULL NULL NULL 0 +103989 0 0 墨西哥国立理工大学 Instituto Politécnico Nacional (IPN) 1 0 NULL 0 NULL NULL NULL 0 +105276 0 0 墨西哥国立理工学院 National Polytechnical Institute 1 0 NULL 0 NULL NULL NULL 0 +103985 0 0 墨西哥国立自治大学 Universidad Nacional Autónoma de México (UNAM) 1 1 NULL 0 NULL NULL NULL 0 +103994 0 0 墨西哥州立自治大学 Universidad Autónoma del Estado de México (UAEMex) 1 0 NULL 0 NULL NULL NULL 0 +105279 0 0 墨西哥普埃布拉美洲大学 University of the Americas Puebla 1 0 NULL 0 NULL NULL NULL 0 +105277 0 0 墨西哥自治技术学院 Instituto Tecnológico Autónomo de México 1 0 NULL 0 NULL NULL NULL 0 +103990 0 0 墨西哥自治理工大学 Instituto Tecnológico Autónomo de México (ITAM) 1 0 NULL 0 NULL NULL NULL 0 +103991 0 0 墨西哥自治都会大学 Universidad Autónoma Metropolitana (UAM) 1 0 NULL 0 NULL NULL NULL 0 +104953 0 0 墨西拿大学 University of Messina 1 0 NULL 0 NULL NULL NULL 0 +100759 2 0 复旦大学 0 1 综合类 1 本科 上海 上海市 1 +103822 0 0 夏威夷大学马诺阿分校 University of Hawai'i at Mañoa 1 0 NULL 0 NULL NULL NULL 0 +100034 0 0 外交学院 0 0 语言类 1 本科 北京 北京市 0 +103395 0 0 多伦多大学 University of Toronto 1 1 NULL 0 NULL NULL NULL 0 +104216 0 0 多摩美术大学 1 0 NULL 0 NULL NULL NULL 0 +103116 0 0 多特蒙德工业大学 TU Dortmund University 1 0 NULL 0 NULL NULL NULL 0 +104888 0 0 大不里士大学 University of Tabriz 1 0 NULL 0 NULL NULL NULL 0 +104178 0 0 大东文化大学 1 0 NULL 0 NULL NULL NULL 0 +103331 0 0 大佛大学 1 0 NULL 0 NULL NULL NULL 0 +100708 0 0 大兴安岭职业学院 0 0 高职类 0 专科 黑龙江 大兴安岭地区 0 +101843 0 0 大冶钢厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +104578 0 0 大分县立看护科学大学 1 0 NULL 0 NULL NULL NULL 0 +104701 0 0 大分大学 Oita University 1 0 NULL 0 NULL NULL NULL 0 +104260 0 0 大同工业大学 1 0 NULL 0 NULL NULL NULL 0 +100338 0 0 大同煤炭职业技术学院 0 0 高职类 0 专科 山西 大同市 0 +104353 0 0 大坂人间科学大学 1 0 NULL 0 NULL NULL NULL 0 +104351 0 0 大坂体育大学 1 0 NULL 0 NULL NULL NULL 0 +104334 0 0 大坂医科大学 1 0 NULL 0 NULL NULL NULL 0 +104347 0 0 大坂商业大学 1 0 NULL 0 NULL NULL NULL 0 +104343 0 0 大坂国际大学 1 0 NULL 0 NULL NULL NULL 0 +104605 0 0 大坂大学 1 0 NULL 0 NULL NULL NULL 0 +104348 0 0 大坂女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104337 0 0 大坂学院大学 1 0 NULL 0 NULL NULL NULL 0 +104342 0 0 大坂工业大学 1 0 NULL 0 NULL NULL NULL 0 +104553 0 0 大坂市立大学 1 0 NULL 0 NULL NULL NULL 0 +104554 0 0 大坂府立大学 1 0 NULL 0 NULL NULL NULL 0 +104350 0 0 大坂总合保育大学 1 0 NULL 0 NULL NULL NULL 0 +104349 0 0 大坂成蹊大学 1 0 NULL 0 NULL NULL NULL 0 +104606 0 0 大坂教育大学 1 0 NULL 0 NULL NULL NULL 0 +104346 0 0 大坂樟荫女子大学 1 0 NULL 0 NULL NULL NULL 0 +104338 0 0 大坂河崎复健治疗大学 1 0 NULL 0 NULL NULL NULL 0 +104344 0 0 大坂産业大学 1 0 NULL 0 NULL NULL NULL 0 +104352 0 0 大坂电气通信大学 1 0 NULL 0 NULL NULL NULL 0 +104339 0 0 大坂经济大学 1 0 NULL 0 NULL NULL NULL 0 +104340 0 0 大坂经济法科大学 1 0 NULL 0 NULL NULL NULL 0 +104341 0 0 大坂艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104354 0 0 大坂药科大学 1 0 NULL 0 NULL NULL NULL 0 +104336 0 0 大坂观光大学 1 0 NULL 0 NULL NULL NULL 0 +104333 0 0 大坂青山大学 1 0 NULL 0 NULL NULL NULL 0 +104335 0 0 大坂音乐大学 1 0 NULL 0 NULL NULL NULL 0 +104345 0 0 大坂齿科大学 1 0 NULL 0 NULL NULL NULL 0 +104161 0 0 大妻女子大学 1 0 NULL 0 NULL NULL NULL 0 +104108 0 0 大宫法科大学院大学 1 0 NULL 0 NULL NULL NULL 0 +103512 0 0 大峡谷大学 Grand Canyon University 1 0 NULL 0 NULL NULL NULL 0 +100724 0 0 大庆医学高等专科学校 0 0 高职类 0 专科 黑龙江 大庆市 0 +100674 0 0 大庆师范学院 0 0 师范类 0 本科 黑龙江 大庆市 0 +100743 0 0 大庆石油化工总厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +100699 0 0 大庆职业学院 0 0 高职类 0 示范(高职) 黑龙江 大庆市 0 +104376 0 0 大手前大学 1 0 NULL 0 NULL NULL NULL 0 +102568 0 0 大理农林职业技术学院 0 0 高职类 0 专科 云南 大理白族自治州 0 +102514 0 0 大理大学 大理学院 0 0 综合类 0 本科 云南 大理白族自治州 0 +105617 0 0 大理护理职业学院 0 0 高职类 0 专科 云南 大理白族自治州 0 +103293 0 0 大田国立大学 1 0 NULL 0 NULL NULL NULL 0 +103310 0 0 大真大学 1 0 NULL 0 NULL NULL NULL 0 +103661 0 0 大西洋学院 College of the Atlantic 1 0 NULL 0 NULL NULL NULL 0 +104311 0 0 大谷大学 1 0 NULL 0 NULL NULL NULL 0 +100498 0 0 大连东软信息学院 0 0 理工类 0 民办(本科) 辽宁 大连市 0 +100459 0 0 大连交通大学 0 0 理工类 0 本科 辽宁 大连市 0 +100468 0 0 大连医科大学 0 0 医科类 0 本科 辽宁 大连市 0 +100582 0 0 大连医科大学中山学院 0 0 医药类 0 独立学院 辽宁 大连市 0 +100521 0 0 大连商务职业学院/大连商务学院 大连商务职业学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100476 0 0 大连外国语大学 0 0 语言类 0 本科 辽宁 大连市 0 +100484 0 0 大连大学 0 0 综合类 0 本科 辽宁 大连市 0 +100461 0 0 大连工业大学 0 0 综合类 0 本科 辽宁 大连市 0 +100575 0 0 大连工业大学艺术与信息工程学院 0 0 综合类 0 独立学院 辽宁 大连市 0 +100555 0 0 大连工人大学 0 0 综合类 0 专科(高职) 辽宁 大连市 0 +100563 0 0 大连市教育学院 0 0 师范类 0 专科(高职) 辽宁 大连市 0 +100572 0 0 大连广播电视大学 大连市广播电视大学 0 0 综合类 0 专科(高职) 辽宁 大连市 0 +100532 0 0 大连枫叶职业技术学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100489 0 0 大连民族大学 大连民族学院 0 0 民族类 0 本科 辽宁 大连市 0 +100540 0 0 大连汽车职业技术学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100460 1 0 大连海事大学 0 0 理工类 1 本科 辽宁 大连市 0 +100465 0 0 大连海洋大学 0 0 农林类 0 本科 辽宁 大连市 0 +100449 2 0 大连理工大学 0 0 理工类 1 本科 辽宁 大连市 1 +100573 0 0 大连理工大学城市学院 0 0 理工类 0 独立学院 辽宁 大连市 0 +105423 0 0 大连理工大学盘锦校区 0 0 理工类 0 普通本科 辽宁 盘锦市 0 +100491 0 0 大连科技学院 0 0 理工类 0 民办(本科) 辽宁 大连市 0 +100530 0 0 大连翻译职业学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100507 0 0 大连职业技术学院 0 0 高职类 0 示范(高职) 辽宁 大连市 0 +100558 0 0 大连职工大学 0 0 综合类 0 专科(高职) 辽宁 大连市 0 +100538 0 0 大连航运职业技术学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100496 0 0 大连艺术学院 0 0 艺术类 0 民办(本科) 辽宁 大连市 0 +100539 0 0 大连装备制造职业技术学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +100494 0 0 大连财经学院 0 0 财经类 0 民办(本科) 辽宁 大连市 0 +100529 0 0 大连软件职业学院 0 0 高职类 0 民办(专科) 辽宁 大连市 0 +103287 0 0 大邱大学 1 0 NULL 0 NULL NULL NULL 0 +103289 0 0 大邱天主教大学 1 0 NULL 0 NULL NULL NULL 0 +103288 0 0 大邱教育大学 1 0 NULL 0 NULL NULL NULL 0 +103573 0 0 大都会州立学院 Metropolitan State College 1 0 NULL 0 NULL NULL NULL 0 +104618 0 0 大阪大学 Osaka University 1 1 NULL 0 NULL NULL NULL 0 +104636 0 0 大阪市立大学 Osaka City University 1 0 NULL 0 NULL NULL NULL 0 +104642 0 0 大阪府立大学 Osaka Prefecture University 1 0 NULL 0 NULL NULL NULL 0 +103342 0 0 大韩民国海军官校 1 0 NULL 0 NULL NULL NULL 0 +103316 0 0 大韩民国空军官校 1 0 NULL 0 NULL NULL NULL 0 +103275 0 0 大韩民国陆军官校 1 0 NULL 0 NULL NULL NULL 0 +105273 0 0 天主教大学天主教大教堂 Pontifical Catholic University of Peru 1 0 NULL 0 NULL NULL NULL 0 +105327 0 0 天主教大学天主教瓦尔帕莱索 Pontifical Catholic University of Valparaíso 1 0 NULL 0 NULL NULL NULL 0 +105342 0 0 天主教大学天主教阿根廷 Pontificia Universidad Católica Argentina 1 0 NULL 0 NULL NULL NULL 0 +104035 0 0 天使大学 1 0 NULL 0 NULL NULL NULL 0 +105643 0 0 天府新区信息职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +105650 0 0 天府新区航空旅游职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +105615 0 0 天府新区通用航空职业学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +103874 0 0 天普大学 Temple University 1 0 NULL 0 NULL NULL NULL 0 +102701 0 0 天水师范学院 0 0 师范类 0 本科 甘肃 天水市 0 +100121 0 0 天津中医药大学 0 0 医科类 1 本科 天津 天津市 0 +100133 0 0 天津中德应用技术大学 天津中德职业技术学院 0 0 综合类 0 本科 天津 天津市 0 +100148 0 0 天津交通职业学院 0 0 高职类 0 骨干(高职) 天津 天津市 0 +100127 0 0 天津体育学院 0 0 体育类 0 本科 天津 天津市 0 +100174 0 0 天津体育学院运动与文化艺术学院 0 0 体育类 0 独立学院 天津 天津市 0 +105630 0 0 天津体育职业学院 0 0 高职类 0 专科 天津 天津市 0 +100141 0 0 天津公安警官职业学院 0 0 高职类 0 专科 天津 天津市 0 +100119 0 0 天津农学院 0 0 农林类 0 本科 天津 天津市 0 +100149 0 0 天津冶金职业技术学院 0 0 理工类 0 专科(高职) 天津 天津市 0 +100145 0 0 天津医学高等专科学校 0 0 高职类 0 示范(高职) 天津 天津市 0 +100120 1 0 天津医科大学 0 0 医科类 1 本科 天津 天津市 0 +100176 0 0 天津医科大学临床医学院 0 0 医药类 0 独立学院 天津 天津市 0 +100125 0 0 天津商业大学 0 0 财经类 0 本科 天津 天津市 0 +100175 0 0 天津商业大学宝德学院 0 0 财经类 0 独立学院 天津 天津市 0 +100143 0 0 天津商务职业学院 0 0 高职类 0 专科 天津 天津市 0 +100144 0 0 天津国土资源和房屋职业学院 0 0 高职类 0 专科 天津 天津市 0 +100154 0 0 天津城市建设管理职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100151 0 0 天津城市职业学院 0 0 高职类 0 专科 天津 天津市 0 +100130 0 0 天津城建大学 0 0 理工类 0 本科 天津 天津市 0 +100124 0 0 天津外国语大学 0 0 外语类 0 本科 天津 天津市 0 +100173 0 0 天津外国语大学滨海外事学院 0 0 语言类 0 独立学院 天津 天津市 0 +100114 2 0 天津大学 0 0 理工类 1 本科 天津 天津市 1 +100180 0 0 天津大学仁爱学院 0 0 综合类 0 独立学院 天津 天津市 0 +100131 0 0 天津天狮学院 0 0 综合类 0 民办(本科) 天津 天津市 0 +100116 0 0 天津工业大学 0 0 理工类 1 本科 天津 天津市 0 +105441 0 0 天津工业职业学院 0 0 高职类 0 专科 天津 天津市 0 +100135 0 0 天津工程职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100153 0 0 天津工艺美术职业学院 0 0 高职类 0 专科 天津 天津市 0 +100162 0 0 天津市南开区职工大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100158 0 0 天津市和平区新华职工大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100170 0 0 天津市工会管理干部学院 0 0 政法类 0 专科(高职) 天津 天津市 0 +100167 0 0 天津市广播电视大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100163 0 0 天津市建筑工程职工大学 0 0 理工类 0 专科(高职) 天津 天津市 0 +100171 0 0 天津市房地产管理局职工大学 天津市房地产局职工大学 0 0 其他 0 专科(高职) 天津 天津市 0 +100169 0 0 天津市政法管理干部学院 0 0 政法类 0 专科(高职) 天津 天津市 0 +100160 0 0 天津市河东区职工大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100159 0 0 天津市河西区职工大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100165 0 0 天津市渤海化工职工学院 0 0 理工类 0 专科(高职) 天津 天津市 0 +100166 0 0 天津市管理干部学院 0 0 政法类 0 专科(高职) 天津 天津市 0 +100161 0 0 天津市红桥区职工大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100132 0 0 天津市职业大学 0 0 高职类 0 专科 天津 天津市 0 +100164 0 0 天津市职工经济技术大学 0 0 综合类 0 专科(高职) 天津 天津市 0 +100122 0 0 天津师范大学 0 0 师范类 0 本科 天津 天津市 0 +100178 0 0 天津师范大学津沽学院 0 0 综合类 0 独立学院 天津 天津市 0 +100157 0 0 天津广播影视职业学院 0 0 高职类 0 专科 天津 天津市 0 +416 0 0 天津广播电视大学 Tianjin Open University 天津电大 0 0 综合类 0 专科(高职) 天津 天津市 0 +100146 0 0 天津开发区职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100139 0 0 天津机电职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100156 0 0 天津海运职业学院 0 0 高职类 0 专科 天津 天津市 0 +100137 0 0 天津渤海职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +105632 0 0 天津滨海汽车工程职业学院 0 0 高职类 0 民办(专科) 天津 天津市 0 +100134 0 0 天津滨海职业学院 0 0 高职类 0 专科 天津 天津市 0 +100168 0 0 天津物资管理干部学院 0 0 政法类 0 专科(高职) 天津 天津市 0 +100140 0 0 天津现代职业技术学院 0 0 高职类 0 骨干(高职) 天津 天津市 0 +100118 0 0 天津理工大学 0 0 理工类 0 本科 天津 天津市 0 +100179 0 0 天津理工大学中环信息学院 0 0 综合类 0 独立学院 天津 天津市 0 +100155 0 0 天津生物工程职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100138 0 0 天津电子信息职业技术学院 0 0 高职类 0 示范(高职) 天津 天津市 0 +100150 0 0 天津石油职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100115 0 0 天津科技大学 0 0 理工类 0 本科 天津 天津市 0 +100129 0 0 天津美术学院 0 0 艺术类 0 本科 天津 天津市 0 +423 0 0 天津职业大学 天津青年职业学院 0 0 高职类 0 专科 天津 天津市 0 +100123 0 0 天津职业技术师范大学 0 0 师范类 0 本科 天津 天津市 0 +100147 0 0 天津艺术职业学院 0 0 高职类 0 专科 天津 天津市 0 +100126 0 0 天津财经大学 0 0 财经类 0 本科 天津 天津市 0 +100181 0 0 天津财经大学珠江学院 0 0 综合类 0 独立学院 天津 天津市 0 +100142 0 0 天津轻工职业技术学院 0 0 高职类 0 骨干(高职) 天津 天津市 0 +100152 0 0 天津铁道职业技术学院 0 0 高职类 0 专科 天津 天津市 0 +100128 0 0 天津音乐学院 0 0 艺术类 0 本科 天津 天津市 0 +104407 0 0 天理大学 1 0 NULL 0 NULL NULL NULL 0 +101830 0 0 天门职业学院 0 0 高职类 0 专科 湖北 省直辖县级行政区划 0 +100377 0 0 太原化学工业集团有限公司职工大学 0 0 综合类 0 专科(高职) 山西 太原市 0 +100349 0 0 太原城市职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100323 0 0 太原学院 0 0 综合类 0 本科 山西 太原市 0 +100326 0 0 太原工业学院 0 0 理工类 0 本科 山西 太原市 0 +100314 0 0 太原师范学院 0 0 师范类 0 本科 山西 太原市 0 +105601 0 0 太原幼儿师范高等专科学校 0 0 高职类 0 专科 山西 太原市 0 +100355 0 0 太原旅游职业学院 0 0 高职类 0 专科 山西 太原市 0 +100309 1 0 太原理工大学 0 0 理工类 1 本科 山西 太原市 0 +100390 0 0 太原理工大学现代科技学院 0 0 理工类 0 独立学院 山西 太原市 0 +100307 0 0 太原科技大学 0 0 理工类 0 本科 山西 太原市 0 +100394 0 0 太原科技大学华科学院 0 0 理工类 0 独立学院 山西 太原市 0 +100379 0 0 太原钢铁(集团)有限公司职工钢铁学院 0 0 综合类 0 专科(高职) 山西 太原市 0 +103562 0 0 太平洋联合学院 Pacific Union College 1 0 NULL 0 NULL NULL NULL 0 +104363 0 0 太成学院大学 1 0 NULL 0 NULL NULL NULL 0 +100931 0 0 太湖创意职业技术学院 0 0 高职类 0 民办(专科) 江苏 无锡市 0 +104008 0 0 夸祖鲁-纳塔尔大学 University of Kwazulu-Natal 1 0 NULL 0 NULL NULL NULL 0 +104747 0 0 夸美纽斯大学 Comenius University in Bratislava 1 0 NULL 0 NULL NULL NULL 0 +105183 0 0 奇切斯特大学 University of Chichester 1 0 NULL 0 NULL NULL NULL 0 +103392 0 0 奈梅亨大学 Radboud University 1 0 NULL 0 NULL NULL NULL 0 +105081 0 0 奈比尔大学 Napier University 1 0 NULL 0 NULL NULL NULL 0 +104708 0 0 奈良先端科学技术大学院大学 Nara Institute of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +104678 0 0 奈良县立医科大学 Nara Medical University 1 0 NULL 0 NULL NULL NULL 0 +104558 0 0 奈良县立大学 1 0 NULL 0 NULL NULL NULL 0 +104408 0 0 奈良大学 1 0 NULL 0 NULL NULL NULL 0 +104610 0 0 奈良女子大学 1 0 NULL 0 NULL NULL NULL 0 +104609 0 0 奈良教育大学 1 0 NULL 0 NULL NULL NULL 0 +104409 0 0 奈良産业大学 1 0 NULL 0 NULL NULL NULL 0 +102945 0 0 奎德阿萨姆大学 Quaid-i-Azam University 1 0 NULL 0 NULL NULL NULL 0 +105320 0 0 奥伯学术大学 Abo Academy University 1 0 NULL 0 NULL NULL NULL 0 +104863 0 0 奥克兰大学 The University of Auckland 1 1 NULL 0 NULL NULL NULL 0 +104870 0 0 奥克兰理工大学 Auckland University of Technology (AUT) 1 0 NULL 0 NULL NULL NULL 0 +103228 0 0 奥卢大学 University of Oulu 1 0 NULL 0 NULL NULL NULL 0 +104864 0 0 奥塔戈大学 University of Otago 1 0 NULL 0 NULL NULL NULL 0 +103027 0 0 奥尔堡大学 Aalborg University 1 0 NULL 0 NULL NULL NULL 0 +103129 0 0 奥尔登堡大学 University of Oldenburg 1 0 NULL 0 NULL NULL NULL 0 +103044 0 0 奥德河畔法兰克福欧洲大学 Europa-Universität Viadrina 1 0 NULL 0 NULL NULL NULL 0 +103131 0 0 奥托贝森管理学院 WHU – Otto Beisheim School of Management 1 0 NULL 0 NULL NULL NULL 0 +104983 0 0 奥斯曼尼亚大学 Osmania University 1 0 NULL 0 NULL NULL NULL 0 +103738 0 0 奥斯汀分校 University of Texas at Austin 1 0 NULL 0 NULL NULL NULL 0 +103072 0 0 奥斯纳布吕克大学 Universität Osnabrück 1 0 NULL 0 NULL NULL NULL 0 +104013 0 0 奥斯陆大学 University of Oslo 1 1 NULL 0 NULL NULL NULL 0 +103893 0 0 奥本大学 Auburn University 1 0 NULL 0 NULL NULL NULL 0 +103032 0 0 奥格斯堡大学 Universität Augsburg 1 0 NULL 0 NULL NULL NULL 0 +103031 0 0 奥格斯堡应用技术大学 Hochschule für angewandte Wissenschaften Augsburg 1 0 NULL 0 NULL NULL NULL 0 +103071 0 0 奥登堡大学 Carl von Ossietzky Universität Oldenburg 1 0 NULL 0 NULL NULL NULL 0 +104826 0 0 奥维多大学 Universidad de Oviedo 1 0 NULL 0 NULL NULL NULL 0 +105256 0 0 奥维耶多大学 Oviedo University 1 0 NULL 0 NULL NULL NULL 0 +104078 0 0 奥羽大学 1 0 NULL 0 NULL NULL NULL 0 +103026 0 0 奥胡斯大学 Aarhus University 1 1 NULL 0 NULL NULL NULL 0 +104200 0 0 女子美术大学 1 0 NULL 0 NULL NULL NULL 0 +104114 0 0 女子荣养大学 1 0 NULL 0 NULL NULL NULL 0 +104789 0 0 委内瑞拉中央大学 Universidad Central de Venezuela 1 0 NULL 0 NULL NULL NULL 0 +104791 0 0 委内瑞拉都会大学 Universidad Metropolitana 1 0 NULL 0 NULL NULL NULL 0 +104400 0 0 姫路独协大学 1 0 NULL 0 NULL NULL NULL 0 +103721 0 0 威克森林大学 Wake Forest University 1 0 NULL 0 NULL NULL NULL 0 +104926 0 0 威尼斯大学 Ca' Foscari University of Venice 1 0 NULL 0 NULL NULL NULL 0 +103749 0 0 威廉及玛丽学院 College of William and Mary 1 0 NULL 0 NULL NULL NULL 0 +103680 0 0 威廉姆斯学院 Williams College 1 0 NULL 0 NULL NULL NULL 0 +103857 0 0 威廉玛丽学院 College of William & Mary 1 0 NULL 0 NULL NULL NULL 0 +105352 0 0 威斯康星大学麦迪逊分校 University of Wisconsin-Madison 1 1 NULL 0 NULL NULL NULL 0 +103760 0 0 威斯康星州立大学 University of Wisconsin 1 0 NULL 0 NULL NULL NULL 0 +103963 0 0 威斯康辛医学院 Medical College of Wisconsin 1 0 NULL 0 NULL NULL NULL 0 +103922 0 0 威斯康辛大学密尔沃基分校 University of Wisconsin-Milwaukee 1 0 NULL 0 NULL NULL NULL 0 +103782 0 0 威斯康辛大学麦迪逊分校 University of Wisconsin-Madison 1 0 NULL 0 NULL NULL NULL 0 +105132 0 0 威斯敏斯特大学 University of Westminster 1 0 NULL 0 NULL NULL NULL 0 +101570 0 0 威海海洋职业学院 0 0 高职类 0 专科 山东 威海市 0 +101502 0 0 威海职业学院 0 0 高职类 0 示范(高职) 山东 威海市 0 +105262 0 0 威特沃特斯兰大学 University of Witwatersrand 1 0 NULL 0 NULL NULL NULL 0 +101934 0 0 娄底职业技术学院 0 0 高职类 0 骨干(高职) 湖南 娄底市 0 +104757 0 0 孔敬大学 Khon Kaen University 1 0 NULL 0 NULL NULL NULL 0 +104822 0 0 孔波斯特拉大学 Universidade de Santiago de Compostela 1 0 NULL 0 NULL NULL NULL 0 +104972 0 0 孟买大学 University of Mumbai 1 0 NULL 0 NULL NULL NULL 0 +104163 0 0 学习院大学 1 0 NULL 0 NULL NULL NULL 0 +104164 0 0 学习院女子大学 1 0 NULL 0 NULL NULL NULL 0 +105591 0 0 宁夏体育职业学院 0 0 高职类 0 专科 宁夏 银川市 0 +102757 0 0 宁夏医科大学 0 0 医科类 0 本科 宁夏 银川市 0 +102756 1 0 宁夏大学 0 0 综合类 1 本科 宁夏 银川市 0 +102772 0 0 宁夏大学新华学院 0 0 综合类 0 独立学院 宁夏 银川市 0 +102762 0 0 宁夏工业职业学院 0 0 高职类 0 专科 宁夏 银川市 0 +102764 0 0 宁夏工商职业技术学院 0 0 高职类 0 骨干(高职) 宁夏 银川市 0 +102758 0 0 宁夏师范学院 0 0 师范类 0 本科 宁夏 固原市 0 +102769 0 0 宁夏幼儿师范高等专科学校 0 0 高职类 0 专科 宁夏 银川市 0 +102771 0 0 宁夏广播电视大学 宁夏回族自治区广播电视大学 0 0 综合类 0 专科(高职) 宁夏 银川市 0 +102767 0 0 宁夏建设职业技术学院 0 0 高职类 0 专科 宁夏 银川市 0 +102761 0 0 宁夏民族职业技术学院 0 0 高职类 0 专科 宁夏 吴忠市 0 +102759 0 0 宁夏理工学院 0 0 理工类 0 民办(本科) 宁夏 石嘴山市 0 +102763 0 0 宁夏职业技术学院 0 0 高职类 0 示范(高职) 宁夏 银川市 0 +102770 0 0 宁夏艺术职业学院 0 0 高职类 0 专科 宁夏 银川市 0 +102768 0 0 宁夏葡萄酒与防沙治沙职业技术学院 宁夏防沙治沙职业技术学院 0 0 高职类 0 专科 宁夏 银川市 0 +102766 0 0 宁夏警官职业学院 宁夏司法警官职业学院 0 0 高职类 0 专科 宁夏 银川市 0 +102765 0 0 宁夏财经职业技术学院 0 0 高职类 0 示范(高职) 宁夏 银川市 0 +101258 0 0 宁德师范学院 0 0 师范类 0 本科 福建 宁德市 0 +101308 0 0 宁德职业技术学院 0 0 高职类 0 专科 福建 宁德市 0 +101083 0 0 宁波卫生职业技术学院 0 0 高职类 0 专科 浙江 宁波市 0 +101049 0 0 宁波城市职业技术学院 0 0 高职类 0 专科 浙江 宁波市 0 +101037 0 0 宁波大学 0 0 综合类 1 本科 浙江 宁波市 0 +101105 0 0 宁波大学科学技术学院 0 0 综合类 0 独立学院 浙江 宁波市 0 +101032 0 0 宁波工程学院 0 0 理工类 0 本科 浙江 宁波市 0 +101100 0 0 宁波广播电视大学 宁波市广播电视大学 0 0 师范类 0 专科(高职) 浙江 宁波市 0 +101095 0 0 宁波教育学院 0 0 师范类 0 专科(高职) 浙江 宁波市 0 +101045 0 0 宁波职业技术学院 0 0 高职类 0 示范(高职) 浙江 宁波市 0 +101043 0 0 宁波诺丁汉大学 0 0 综合类 0 中外合作 浙江 宁波市 0 +101041 0 0 宁波财经学院 宁波大红鹰学院 0 0 综合类 0 民办(本科) 浙江 宁波市 0 +104439 0 0 宇部边境大学 1 0 NULL 0 NULL NULL NULL 0 +104089 0 0 宇都宫共和大学 1 0 NULL 0 NULL NULL NULL 0 +104707 0 0 宇都宫大学 Utsunomiya University 1 0 NULL 0 NULL NULL NULL 0 +103338 0 0 安东大学 1 0 NULL 0 NULL NULL NULL 0 +103303 0 0 安养大学 1 0 NULL 0 NULL NULL NULL 0 +104772 0 0 安卡拉大学 Ankara Üniversitesi 1 0 NULL 0 NULL NULL NULL 0 +103424 0 0 安大略理工大学 University of Ontario Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104965 0 0 安娜大学 Anna University 1 0 NULL 0 NULL NULL NULL 0 +101206 0 0 安庆医药高等专科学校 0 0 高职类 0 专科 安徽 安庆市 0 +101136 0 0 安庆师范大学 安庆师范学院 0 0 师范类 0 本科 安徽 安庆市 0 +101194 0 0 安庆职业技术学院 0 0 高职类 0 专科 安徽 安庆市 0 +102612 0 0 安康学院 0 0 综合类 0 本科 陕西 安康市 0 +102655 0 0 安康职业技术学院 0 0 高职类 0 专科 陕西 安康市 0 +104978 0 0 安得拉大学 Andhra University 1 0 NULL 0 NULL NULL NULL 0 +105233 0 0 安德烈斯·贝略天主教大学 Andres Bello Catholic University 1 0 NULL 0 NULL NULL NULL 0 +105228 0 0 安德烈斯贝洛大学 Andrés Bello University (UNAB) 1 0 NULL 0 NULL NULL NULL 0 +103687 0 0 安德鲁斯大学 Andrews University 1 0 NULL 0 NULL NULL NULL 0 +104788 0 0 安德鲁贝罗天主大学 Universidad Católica Andres Bello 1 0 NULL 0 NULL NULL NULL 0 +101148 0 0 安徽三联学院 0 0 理工类 0 民办(本科) 安徽 合肥市 0 +101133 0 0 安徽中医药大学 0 0 医科类 0 本科 安徽 合肥市 0 +101176 0 0 安徽中医药高等专科学校 0 0 高职类 0 专科 安徽 芜湖市 0 +101190 0 0 安徽中澳科技职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101174 0 0 安徽交通职业技术学院 0 0 高职类 0 骨干(高职) 安徽 合肥市 0 +101175 0 0 安徽体育运动职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +105406 0 0 安徽信息工程学院 0 0 理工类 0 民办(本科) 安徽 芜湖市 0 +101199 0 0 安徽公安职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101129 0 0 安徽农业大学 0 0 农林类 0 本科 安徽 合肥市 0 +101238 0 0 安徽农业大学经济技术学院 0 0 综合类 0 独立学院 安徽 合肥市 0 +101186 0 0 安徽冶金科技职业学院 0 0 高职类 0 专科 安徽 马鞍山市 0 +101177 0 0 安徽医学高等专科学校 0 0 高职类 0 专科 安徽 合肥市 0 +101130 0 0 安徽医科大学 0 0 医科类 0 本科 安徽 合肥市 0 +101239 0 0 安徽医科大学临床医学院 0 0 医药类 0 独立学院 安徽 合肥市 0 +101227 0 0 安徽卫生健康职业学院 安徽人口职业学院 0 0 高职类 0 专科 安徽 亳州市 0 +101160 0 0 安徽商贸职业技术学院 0 0 高职类 0 骨干(高职) 安徽 芜湖市 0 +101193 0 0 安徽国防科技职业学院 0 0 高职类 0 专科 安徽 六安市 0 +101198 0 0 安徽国际商务职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101187 0 0 安徽城市管理职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101154 0 0 安徽外国语学院 0 0 外语类 0 民办(本科) 安徽 合肥市 0 +101125 1 0 安徽大学 0 0 综合类 1 本科 安徽 合肥市 0 +101236 0 0 安徽大学江淮学院 0 0 综合类 0 独立学院 安徽 合肥市 0 +101201 0 0 安徽审计职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101126 0 0 安徽工业大学 0 0 理工类 0 本科 安徽 马鞍山市 0 +101240 0 0 安徽工业大学工商学院 0 0 理工类 0 独立学院 安徽 马鞍山市 0 +101167 0 0 安徽工业经济职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101204 0 0 安徽工业职业技术学院 0 0 高职类 0 专科 安徽 铜陵市 0 +101189 0 0 安徽工商职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101128 0 0 安徽工程大学 0 0 理工类 0 本科 安徽 芜湖市 0 +101244 0 0 安徽工程大学机电学院 0 0 理工类 0 独立学院 安徽 芜湖市 0 +101169 0 0 安徽工贸职业技术学院 0 0 高职类 0 专科 安徽 淮南市 0 +101134 0 0 安徽师范大学 0 0 师范类 0 本科 安徽 芜湖市 0 +101237 0 0 安徽师范大学皖江学院 0 0 师范类 0 独立学院 安徽 芜湖市 0 +101183 0 0 安徽广播影视职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101235 0 0 安徽广播电视大学 0 0 综合类 0 专科(高职) 安徽 合肥市 0 +101146 0 0 安徽建筑大学 0 0 理工类 0 本科 安徽 合肥市 0 +101243 0 0 安徽建筑大学城市建设学院 0 0 理工类 0 独立学院 安徽 合肥市 0 +101224 0 0 安徽扬子职业技术学院 0 0 高职类 0 民办(专科) 安徽 芜湖市 0 +101153 0 0 安徽文达信息工程学院 0 0 理工类 0 民办(本科) 安徽 合肥市 0 +101152 0 0 安徽新华学院 0 0 理工类 0 民办(本科) 安徽 合肥市 0 +101202 0 0 安徽新闻出版职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101188 0 0 安徽机电职业技术学院 0 0 高职类 0 骨干(高职) 安徽 芜湖市 0 +101200 0 0 安徽林业职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101161 0 0 安徽水利水电职业技术学院 0 0 高职类 0 示范(高职) 安徽 合肥市 0 +101220 0 0 安徽汽车职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101207 0 0 安徽涉外经济职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101214 0 0 安徽现代信息工程职业学院 0 0 高职类 0 民办(专科) 安徽 六安市 0 +101127 0 0 安徽理工大学 0 0 理工类 0 本科 安徽 淮南市 0 +101172 0 0 安徽电子信息职业技术学院 0 0 高职类 0 专科 安徽 蚌埠市 0 +101185 0 0 安徽电气工程职业技术学院 0 0 高职类 0 骨干(高职) 安徽 合肥市 0 +101215 0 0 安徽矿业职业技术学院 0 0 高职类 0 民办(专科) 安徽 淮北市 0 +101147 0 0 安徽科技学院 0 0 理工类 0 本科 安徽 滁州市 0 +101226 0 0 安徽粮食工程职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101233 0 0 安徽经济管理干部学院 0 0 财经类 0 专科(高职) 安徽 合肥市 0 +101208 0 0 安徽绿海商务职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101156 0 0 安徽职业技术学院 0 0 高职类 0 示范(高职) 安徽 合肥市 0 +101195 0 0 安徽艺术职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101165 0 0 安徽警官职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101141 0 0 安徽财经大学 0 0 财经类 0 本科 安徽 蚌埠市 0 +101241 0 0 安徽财经大学商学院 0 0 财经类 0 独立学院 安徽 蚌埠市 0 +101197 0 0 安徽财贸职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +101203 0 0 安徽邮电职业技术学院 0 0 高职类 0 专科 安徽 合肥市 0 +101223 0 0 安徽长江职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101225 0 0 安徽黄梅戏艺术职业学院 0 0 高职类 0 专科 安徽 安庆市 0 +103604 0 0 安柏瑞德航空大学 Embry-Riddle Aeronautical University 1 0 NULL 0 NULL NULL NULL 0 +103929 0 0 安柏瑞德航空航天大学 Embry-Riddle Aeronautical University 1 0 NULL 0 NULL NULL NULL 0 +105155 0 0 安格利亚鲁斯金大学 Anglia Ruskin University 1 0 NULL 0 NULL NULL NULL 0 +103003 0 0 安特卫普大学 University of Antwerp 1 0 NULL 0 NULL NULL NULL 0 +104438 0 0 安田女子大学 1 0 NULL 0 NULL NULL NULL 0 +103244 0 0 安第斯大学 University of the Andes 1 0 NULL 0 NULL NULL NULL 0 +103237 0 0 安蒂奥基亚大学 Universidad de Antioquia 1 0 NULL 0 NULL NULL NULL 0 +104979 0 0 安那马来大学 Annamalai University 1 0 NULL 0 NULL NULL NULL 0 +101730 0 0 安阳学院 安阳师范学院人文管理学院 0 0 综合类 0 民办(本科) 河南 安阳市 0 +101621 0 0 安阳工学院 0 0 理工类 0 本科 河南 安阳市 0 +101609 0 0 安阳师范学院 0 0 师范类 0 本科 河南 安阳市 0 +101706 0 0 安阳幼儿师范高等专科学校 0 0 高职类 0 专科 河南 安阳市 0 +101685 0 0 安阳职业技术学院 0 0 高职类 0 专科 河南 安阳市 0 +102458 0 0 安顺学院 0 0 师范类 0 本科 贵州 安顺市 0 +1389 0 0 安顺市广播电视大学 安顺电大 0 0 综合类 0 专科(高职) 贵州 安顺市 0 +102474 0 0 安顺职业技术学院 0 0 高职类 0 专科 贵州 安顺市 0 +103671 0 0 安默斯特学院 Amherst College 1 0 NULL 0 NULL NULL NULL 0 +104759 0 0 宋卡王子大学 Prince of Songkla University 1 0 NULL 0 NULL NULL NULL 0 +102711 0 0 定西师范高等专科学校 0 0 高职类 0 专科 甘肃 定西市 0 +102345 0 0 宜宾学院 0 0 综合类 0 本科 四川 宜宾市 0 +102387 0 0 宜宾职业技术学院 0 0 高职类 0 骨干(高职) 四川 宜宾市 0 +479 0 0 宜昌市广播电视大学 宜春电大 0 0 综合类 0 专科(高职) 湖北 宜昌市 0 +101349 0 0 宜春学院 0 0 综合类 0 本科 江西 宜春市 0 +101417 0 0 宜春幼儿师范高等专科学校 0 0 高职类 0 专科 江西 宜春市 0 +101389 0 0 宜春职业技术学院 0 0 高职类 0 专科 江西 宜春市 0 +104399 0 0 宝塚造形艺术大学 1 0 NULL 0 NULL NULL NULL 0 +105009 0 0 宝拉维加亚大学 University of Brawijaya 1 0 NULL 0 NULL NULL NULL 0 +102674 0 0 宝鸡市职工大学 0 0 其他 0 专科(高职) 陕西 宝鸡市 0 +102601 0 0 宝鸡文理学院 0 0 师范类 0 本科 陕西 宝鸡市 0 +102639 0 0 宝鸡职业技术学院 0 0 高职类 0 专科 陕西 宝鸡市 0 +100274 0 0 宣化科技职业学院 0 0 高职类 0 专科 河北 张家口市 0 +101182 0 0 宣城职业技术学院 0 0 高职类 0 专科 安徽 宣城市 0 +104589 0 0 室兰工业大学 1 0 NULL 0 NULL NULL NULL 0 +104518 0 0 宫城大学 1 0 NULL 0 NULL NULL NULL 0 +104072 0 0 宫城学院女子大学 1 0 NULL 0 NULL NULL NULL 0 +104591 0 0 宫城教育大学 1 0 NULL 0 NULL NULL NULL 0 +104580 0 0 宫崎公立大学 1 0 NULL 0 NULL NULL NULL 0 +104579 0 0 宫崎县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104499 0 0 宫崎国际大学 1 0 NULL 0 NULL NULL NULL 0 +104676 0 0 宫崎大学 University of Miyazaki 1 0 NULL 0 NULL NULL NULL 0 +104500 0 0 宫崎産业经营大学 1 0 NULL 0 NULL NULL NULL 0 +103773 0 0 宾夕法尼亚大学 University of Pennsylvania 1 1 NULL 0 NULL NULL NULL 0 +105236 0 0 宾夕法尼亚州立大学 The Pennsylvania State University 1 0 NULL 0 NULL NULL NULL 0 +103726 0 0 宾州印第安那大学 Indiana University of Pennsylvania 1 0 NULL 0 NULL NULL NULL 0 +103724 0 0 宾州州立大学 Pennsylvania State University 1 1 NULL 0 NULL NULL NULL 0 +103790 0 0 宾州州立大学公园分校 Pennsylvania State University 1 0 NULL 0 NULL NULL NULL 0 +101142 0 0 宿州学院 0 0 综合类 0 本科 安徽 宿州市 0 +101234 0 0 宿州教育学院 0 0 综合类 0 专科(高职) 安徽 宿州市 0 +101170 0 0 宿州职业技术学院 0 0 高职类 0 专科 安徽 宿州市 0 +100889 0 0 宿迁学院 0 0 综合类 0 民办(本科) 江苏 宿迁市 0 +100969 0 0 宿迁泽达职业技术学院 0 0 高职类 0 民办(专科) 江苏 宿迁市 0 +100947 0 0 宿迁职业技术学院 0 0 高职类 0 民办(专科) 江苏 宿迁市 0 +103693 0 0 密尔塞普斯学院 Millsaps College 1 0 NULL 0 NULL NULL NULL 0 +103762 0 0 密尔瓦基分校 University of Wisconsin, Milwaukee 1 0 NULL 0 NULL NULL NULL 0 +105054 0 0 密德塞克斯大学 Middlesex University, West London 1 0 NULL 0 NULL NULL NULL 0 +103683 0 0 密歇根大学 University of Michigan, Ann Arbor 1 1 NULL 0 NULL NULL NULL 0 +103775 0 0 密歇根大学安娜堡分校 University of Michigan 1 0 NULL 0 NULL NULL NULL 0 +103798 0 0 密歇根州立大学 Michigan State University 1 0 NULL 0 NULL NULL NULL 0 +103859 0 0 密歇根理工大学 Michigan Technological University 1 0 NULL 0 NULL NULL NULL 0 +103867 0 0 密苏里大学 University of Missouri, Columbia 1 0 NULL 0 NULL NULL NULL 0 +105243 0 0 密苏里大学哥伦比亚分校 University of Missouri Columbia 1 0 NULL 0 NULL NULL NULL 0 +103871 0 0 密苏里科技大学 Missouri University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103906 0 0 密西西比大学 University of Mississippi 1 0 NULL 0 NULL NULL NULL 0 +103692 0 0 密西西比学院 Mississippi College 1 0 NULL 0 NULL NULL NULL 0 +103932 0 0 密西西比州立大学 Mississippi State University 1 0 NULL 0 NULL NULL NULL 0 +103660 0 0 寇比学院 Colby College 1 0 NULL 0 NULL NULL NULL 0 +104060 0 0 富士大学 1 0 NULL 0 NULL NULL NULL 0 +104243 0 0 富士常叶大学 1 0 NULL 0 NULL NULL NULL 0 +103046 0 0 富尔达应用科学大学 Hochschule Fulda 1 0 NULL 0 NULL NULL NULL 0 +104543 0 0 富山县立大学 1 0 NULL 0 NULL NULL NULL 0 +104298 0 0 富山国际大学 1 0 NULL 0 NULL NULL NULL 0 +104687 0 0 富山大学 University of Toyama 1 0 NULL 0 NULL NULL NULL 0 +103047 0 0 富特旺根应用科学大学 Hochschule Furtwangen 1 0 NULL 0 NULL NULL NULL 0 +100031 1 0 对外经济贸易大学 0 0 财经类 1 本科 北京 北京市 0 +105502 0 0 对外经济贸易大学远程教育学院 0 0 财经类 0 其他 北京 北京市 0 +104585 0 0 小樽商科大学 1 0 NULL 0 NULL NULL NULL 0 +103341 0 0 尚州大学 1 0 NULL 0 NULL NULL NULL 0 +103314 0 0 尚志大学 1 0 NULL 0 NULL NULL NULL 0 +104490 0 0 尚絅大学 1 0 NULL 0 NULL NULL NULL 0 +104063 0 0 尚絅学院大学 1 0 NULL 0 NULL NULL NULL 0 +104113 0 0 尚美学园大学 1 0 NULL 0 NULL NULL NULL 0 +104001 0 0 尤卡坦自治大学 Autonomous University of Yucatán 1 0 NULL 0 NULL NULL NULL 0 +104421 0 0 就实大学 1 0 NULL 0 NULL NULL NULL 0 +103189 0 0 尼斯大学 Université Nice Sophia Antipolis 1 0 NULL 0 NULL NULL NULL 0 +105314 0 0 尼斯大学索菲亚安提波利斯大学 Nice Sophia Antipolis University 1 0 NULL 0 NULL NULL NULL 0 +103445 0 0 尼普森大学 Nipissing 1 0 NULL 0 NULL NULL NULL 0 +105000 0 0 尼赫鲁大学 Jawaharlal Nehru University 1 0 NULL 0 NULL NULL NULL 0 +104991 0 0 尼赫鲁技术大学 Jawaharlal Nehru Technological University Anantapur (JNTUA) 1 0 NULL 0 NULL NULL NULL 0 +104563 0 0 尾道市立大学 1 0 NULL 0 NULL NULL NULL 0 +101455 0 0 山东中医药大学 0 0 医科类 0 本科 山东 济南市 0 +101541 0 0 山东中医药高等专科学校 0 0 高职类 0 专科 山东 烟台市 0 +101478 0 0 山东交通学院 0 0 理工类 0 本科 山东 济南市 0 +101521 0 0 山东交通职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +101556 0 0 山东传媒职业学院 0 0 高职类 0 专科 山东 济南市 0 +101468 0 0 山东体育学院 0 0 体育类 0 本科 山东 济南市 0 +101525 0 0 山东信息职业技术学院 0 0 高职类 0 专科 山东 潍坊市 0 +101572 0 0 山东兵器工业职工大学 0 0 NULL 0 NULL NULL NULL 0 +101450 0 0 山东农业大学 0 0 农林类 0 本科 山东 泰安市 0 +101494 0 0 山东农业工程学院 0 0 农林类 0 本科 山东 济南市 0 +101574 0 0 山东冶金管理干部学院 济南市职工大学 0 0 综合类 0 专科(高职) 山东 济南市 0 +101535 0 0 山东凯文科技职业学院 0 0 理工类 0 专科(高职) 山东 济南市 0 +101515 0 0 山东力明科技职业学院 0 0 高职类 0 民办(专科) 山东 泰安市 0 +101504 0 0 山东劳动职业技术学院 0 0 高职类 0 专科 山东 济南市 0 +101530 0 0 山东化工职业学院 0 0 高职类 0 专科 山东 淄博市 0 +101495 0 0 山东医学高等专科学校 0 0 高职类 0 专科 山东 临沂市 0 +105445 0 0 山东医药技师学院 0 0 医药类 0 其他 山东 泰安市 0 +101487 0 0 山东华宇工学院 0 0 理工类 0 民办(本科) 山东 德州市 0 +101486 0 0 山东协和学院 0 0 医科类 0 民办(本科) 山东 济南市 0 +101554 0 0 山东司法警官职业学院 0 0 高职类 0 专科 山东 济南市 0 +101497 0 0 山东商业职业技术学院 0 0 高职类 0 示范(高职) 山东 济南市 0 +101550 0 0 山东商务职业学院 0 0 高职类 0 专科 山东 烟台市 0 +101516 0 0 山东圣翰财贸职业学院 0 0 高职类 0 民办(专科) 山东 济南市 0 +101552 0 0 山东城市建设职业学院 0 0 高职类 0 专科 山东 济南市 0 +101548 0 0 山东外事翻译职业学院 0 0 综合类 0 专科(高职) 山东 威海市 0 +101536 0 0 山东外国语职业学院 0 0 语言类 0 专科(高职) 山东 日照市 0 +101523 0 0 山东外贸职业学院 0 0 高职类 0 专科 山东 青岛市 0 +101441 2 0 山东大学 0 0 综合类 1 本科 山东 济南市 1 +105367 2 0 山东大学(威海) 0 0 综合类 1 普通本科 山东 威海市 1 +101480 0 0 山东女子学院 0 0 语言类 0 本科 山东 济南市 0 +101529 0 0 山东工业职业学院 0 0 高职类 0 专科 山东 淄博市 0 +101479 0 0 山东工商学院 0 0 财经类 0 本科 山东 烟台市 0 +101473 0 0 山东工艺美术学院 0 0 艺术类 0 本科 山东 济南市 0 +101457 0 0 山东师范大学 0 0 师范类 0 本科 山东 济南市 0 +101589 0 0 山东师范大学历山学院 0 0 综合类 0 独立学院 山东 济南市 0 +101578 0 0 山东广播电视大学 山东省广播电视大学 0 0 综合类 0 普通本科 山东 济南市 0 +101447 0 0 山东建筑大学 0 0 理工类 0 本科 山东 济南市 0 +105481 0 0 山东技师学院 0 0 NULL 0 其他 山东 济南市 0 +101490 0 0 山东政法学院 0 0 政法类 0 本科 山东 济南市 0 +101560 0 0 山东文化产业职业学院 0 0 高职类 0 民办(专科) 山东 青岛市 0 +101544 0 0 山东旅游职业学院 0 0 高职类 0 专科 山东 济南市 0 +101513 0 0 山东服装职业学院 0 0 高职类 0 专科 山东 泰安市 0 +101546 0 0 山东杏林科技职业学院 0 0 高职类 0 民办(专科) 山东 济南市 0 +101517 0 0 山东水利职业学院 0 0 高职类 0 专科 山东 日照市 0 +101565 0 0 山东海事职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +105656 0 0 山东特殊教育职业学院 0 0 高职类 0 专科 山东 济南市 0 +101532 0 0 山东现代学院 山东现代职业学院 0 0 综合类 0 民办(本科) 山东 济南市 0 +101449 0 0 山东理工大学 0 0 理工类 0 本科 山东 淄博市 0 +101559 0 0 山东理工职业学院 0 0 高职类 0 专科 山东 济宁市 0 +101498 0 0 山东电力高等专科学校 0 0 高职类 0 专科 山东 济南市 0 +101543 0 0 山东电子职业技术学院 0 0 高职类 0 专科 山东 济南市 0 +101518 0 0 山东畜牧兽医职业学院 0 0 高职类 0 骨干(高职) 山东 潍坊市 0 +101571 0 0 山东省水利职工大学 0 0 综合类 0 专科(高职) 山东 淄博市 0 +101443 0 0 山东科技大学 0 0 理工类 0 本科 山东 青岛市 0 +101585 0 0 山东科技大学泰山科技学院 0 0 综合类 0 独立学院 山东 泰安市 0 +101512 0 0 山东科技职业学院 0 0 高职类 0 示范(高职) 山东 潍坊市 0 +101453 0 0 山东第一医科大学 泰山医学院 0 0 综合类 0 本科 山东 泰安市 0 +101493 0 0 山东管理学院 0 0 财经类 0 本科 山东 济南市 0 +101528 0 0 山东经贸职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +101503 0 0 山东职业学院 0 0 高职类 0 骨干(高职) 山东 济南市 0 +105434 0 0 山东职业学院西校区 0 0 综合类 0 专科(高职) 山东 济南市 0 +101527 0 0 山东胜利职业学院 0 0 高职类 0 专科 山东 东营市 0 +101469 0 0 山东艺术学院 0 0 艺术类 0 本科 山东 济南市 0 +101569 0 0 山东艺术设计职业学院 0 0 高职类 0 民办(专科) 山东 济南市 0 +101483 0 0 山东英才学院 0 0 综合类 0 民办(本科) 山东 济南市 0 +101549 0 0 山东药品食品职业学院 0 0 高职类 0 专科 山东 威海市 0 +101575 0 0 山东行政学院/山东省经济管理干部学院 山东省经济管理干部学院 0 0 其他 0 专科(高职) 山东 济南市 0 +101477 0 0 山东警察学院 0 0 政法类 0 本科 山东 济南市 0 +101580 0 0 山东财政职工大学 0 0 综合类 0 专科(高职) 山东 济南市 0 +101467 0 0 山东财经大学 0 0 财经类 0 本科 山东 济南市 0 +101588 0 0 山东财经大学东方学院 0 0 综合类 0 独立学院 山东 泰安市 0 +101586 0 0 山东财经大学燕山学院 0 0 财经类 0 独立学院 山东 济南市 0 +101551 0 0 山东轻工职业学院 0 0 高职类 0 专科 山东 淄博市 0 +101545 0 0 山东铝业职业学院 0 0 高职类 0 专科 山东 淄博市 0 +101492 0 0 山东青年政治学院 0 0 语言类 0 本科 山东 济南市 0 +103506 0 0 山佛大学 Samford University 1 0 NULL 0 NULL NULL NULL 0 +104443 0 0 山口东京理科大学 1 0 NULL 0 NULL NULL NULL 0 +104567 0 0 山口县立大学 1 0 NULL 0 NULL NULL NULL 0 +104647 0 0 山口大学 Yamaguchi University 1 0 NULL 0 NULL NULL NULL 0 +104445 0 0 山口学艺大学 1 0 NULL 0 NULL NULL NULL 0 +104444 0 0 山口福祉文化大学 1 0 NULL 0 NULL NULL NULL 0 +104521 0 0 山形县立保健医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104689 0 0 山形大学 Yamagata University 1 0 NULL 0 NULL NULL NULL 0 +104532 0 0 山梨县立大学 1 0 NULL 0 NULL NULL NULL 0 +104690 0 0 山梨大学 University of Yamanashi 1 0 NULL 0 NULL NULL NULL 0 +104214 0 0 山梨学院大学 1 0 NULL 0 NULL NULL NULL 0 +104213 0 0 山梨英和大学 1 0 NULL 0 NULL NULL NULL 0 +100321 0 0 山西中医药大学 山西中医学院 0 0 医科类 0 本科 山西 太原市 0 +100337 0 0 山西交通职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100327 0 0 山西传媒学院 0 0 艺术类 0 本科 山西 太原市 0 +100351 0 0 山西体育职业学院 0 0 高职类 0 专科 山西 太原市 0 +100350 0 0 山西信息职业技术学院 0 0 高职类 0 民办(专科) 山西 临汾市 0 +100382 0 0 山西兵器工业职工大学 0 0 理工类 0 专科(高职) 山西 太原市 0 +100310 0 0 山西农业大学 0 0 农林类 0 本科 山西 晋中市 0 +100391 0 0 山西农业大学信息学院 0 0 农林类 0 独立学院 山西 晋中市 0 +100311 0 0 山西医科大学 0 0 医科类 0 本科 山西 太原市 0 +100395 0 0 山西医科大学晋祠学院 0 0 医药类 0 独立学院 山西 太原市 0 +105377 0 0 山西医科大学汾阳学院 0 0 医药类 0 普通本科 山西 吕梁市 0 +100362 0 0 山西华澳商贸职业学院 0 0 高职类 0 民办(专科) 山西 晋中市 0 +100360 0 0 山西同文职业技术学院 0 0 高职类 0 民办(专科) 山西 晋中市 0 +100353 0 0 山西国际商务职业学院 0 0 高职类 0 专科 山西 太原市 0 +100315 0 0 山西大同大学 0 0 综合类 0 本科 山西 大同市 0 +100306 0 0 山西大学 0 0 综合类 0 本科 山西 太原市 0 +100389 0 0 山西大学商务学院 0 0 财经类 0 独立学院 山西 太原市 0 +100325 0 0 山西工商学院 0 0 财经类 0 民办(本科) 山西 太原市 0 +100328 0 0 山西工程技术学院 0 0 理工类 0 本科 山西 阳泉市 0 +100336 0 0 山西工程职业技术学院 0 0 理工类 0 专科(高职) 山西 太原市 0 +100313 0 0 山西师范大学 0 0 师范类 0 本科 山西 临汾市 0 +100392 0 0 山西师范大学现代文理学院 0 0 师范类 0 独立学院 山西 临汾市 0 +100324 0 0 山西应用科技学院 0 0 综合类 0 民办(本科) 山西 太原市 0 +100334 0 0 山西建筑职业技术学院 0 0 高职类 0 骨干(高职) 山西 太原市 0 +100340 0 0 山西戏剧职业学院 0 0 高职类 0 专科 山西 太原市 0 +100356 0 0 山西旅游职业学院 0 0 高职类 0 专科 山西 太原市 0 +100339 0 0 山西机电职业技术学院 0 0 高职类 0 专科 山西 长治市 0 +100378 0 0 山西机电职工学院 0 0 综合类 0 专科(高职) 山西 太原市 0 +100342 0 0 山西林业职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100343 0 0 山西水利职业技术学院 0 0 高职类 0 专科 山西 运城市 0 +100347 0 0 山西煤炭职业技术学院 0 0 理工类 0 专科(高职) 山西 太原市 0 +100381 0 0 山西煤炭职工联合大学 0 0 理工类 0 专科(高职) 山西 阳泉市 0 +100358 0 0 山西电力职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100385 0 0 山西省广播电视大学 0 0 综合类 0 专科(高职) 山西 吕梁市 0 +100387 0 0 山西省政法管理干部学院 0 0 综合类 0 专科(高职) 山西 太原市 0 +100383 0 0 山西省职工工艺美术学院 0 0 艺术类 0 专科(高职) 山西 太原市 0 +100329 0 0 山西省财政税务专科学校 0 0 高职类 0 示范(高职) 山西 太原市 0 +100357 0 0 山西管理职业学院 0 0 高职类 0 专科 山西 临汾市 0 +100366 0 0 山西经贸职业学院 0 0 高职类 0 专科 山西 太原市 0 +100365 0 0 山西老区职业技术学院 0 0 高职类 0 民办(专科) 山西 太原市 0 +100346 0 0 山西职业技术学院 0 0 高职类 0 骨干(高职) 山西 太原市 0 +100380 0 0 山西职工医学院 0 0 医药类 0 专科(高职) 山西 晋中市 0 +100386 0 0 山西能源学院 山西煤炭管理干部学院 0 0 理工类 0 本科 山西 晋中市 0 +100332 0 0 山西艺术职业学院 0 0 高职类 0 专科 山西 太原市 0 +100335 0 0 山西药科职业学院 0 0 高职类 0 专科 山西 太原市 0 +100352 0 0 山西警官职业学院 0 0 高职类 0 专科 山西 太原市 0 +100330 0 0 山西警察学院 山西警官高等专科学校 0 0 政法类 0 本科 山西 太原市 0 +100320 0 0 山西财经大学 0 0 财经类 0 本科 山西 太原市 0 +100396 0 0 山西财经大学华商学院 0 0 财经类 0 独立学院 山西 太原市 0 +100341 0 0 山西财贸职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100369 0 0 山西轻工职业技术学院 0 0 高职类 0 专科 山西 太原市 0 +100363 0 0 山西运城农业职业技术学院 0 0 高职类 0 专科 山西 运城市 0 +100348 0 0 山西金融职业学院 0 0 高职类 0 专科 山西 太原市 0 +100372 0 0 山西青年职业学院 0 0 高职类 0 专科 山西 太原市 0 +103241 0 0 山谷大学 Universidad del Valle 1 0 NULL 0 NULL NULL NULL 0 +104420 0 0 山阳学园大学 1 0 NULL 0 NULL NULL NULL 0 +104289 0 0 岐阜医疗科学大学 1 0 NULL 0 NULL NULL NULL 0 +104541 0 0 岐阜县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104291 0 0 岐阜圣德学园大学 1 0 NULL 0 NULL NULL NULL 0 +104638 0 0 岐阜大学 Gifu University 1 0 NULL 0 NULL NULL NULL 0 +104292 0 0 岐阜女子大学 1 0 NULL 0 NULL NULL NULL 0 +104290 0 0 岐阜经济大学 1 0 NULL 0 NULL NULL NULL 0 +104542 0 0 岐阜药科大学 1 0 NULL 0 NULL NULL NULL 0 +104561 0 0 岛根县立大学 1 0 NULL 0 NULL NULL NULL 0 +104682 0 0 岛根大学 Shimane University 1 0 NULL 0 NULL NULL NULL 0 +104059 0 0 岩手医科大学 1 0 NULL 0 NULL NULL NULL 0 +104517 0 0 岩手县立大学 1 0 NULL 0 NULL NULL NULL 0 +104669 0 0 岩手大学 Iwate University 1 0 NULL 0 NULL NULL NULL 0 +103336 0 0 岭南大学 1 0 NULL 0 NULL NULL NULL 0 +102022 0 0 岭南师范学院 0 0 师范类 0 本科 广东 湛江市 0 +1556 0 0 岳阳广播电视大学 YUEYANG RADIO&TV UNIVERSITY 岳阳电大 0 0 综合类 0 专科(高职) 湖南 岳阳市 0 +101941 0 0 岳阳职业技术学院 0 0 高职类 0 专科 湖南 岳阳市 0 +104491 0 0 崇城大学 1 0 NULL 0 NULL NULL NULL 0 +103262 0 0 崇实大学 1 0 NULL 0 NULL NULL NULL 0 +101669 0 0 嵩山少林武术职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +102340 0 0 川北医学院 0 0 医科类 0 本科 四川 南充市 0 +102411 0 0 川北幼儿师范高等专科学校 0 0 高职类 0 专科 四川 广元市 0 +102418 0 0 川南幼儿师范高等专科学校 0 0 高职类 0 专科 四川 成都市 0 +104415 0 0 川崎医疗福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104414 0 0 川崎医科大学 1 0 NULL 0 NULL NULL NULL 0 +104132 0 0 川村学园女子大学 1 0 NULL 0 NULL NULL NULL 0 +103431 0 0 川特大学 Trent 1 0 NULL 0 NULL NULL NULL 0 +101143 0 0 巢湖学院 0 0 综合类 0 本科 安徽 合肥市 0 +104698 0 0 工学院大学 Kogakuin University 1 0 NULL 0 NULL NULL NULL 0 +102414 0 0 巴中职业技术学院 0 0 高职类 0 民办(专科) 四川 巴中市 0 +102975 0 0 巴伊亚联邦大学 Universidade Federal da Bahia 1 0 NULL 0 NULL NULL NULL 0 +104905 0 0 巴伊兰大学 Bar-Ilan University 1 0 NULL 0 NULL NULL NULL 0 +104883 0 0 巴伯勒理工大学 Babol Noshirvani University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104839 0 0 巴利阿里大学 University of the Balearic Islands 1 0 NULL 0 NULL NULL NULL 0 +105287 0 0 巴勒摩大学 University of Palermo 1 0 NULL 0 NULL NULL NULL 0 +102832 0 0 巴勒莫大学 Universidad de Palermo (UP) 1 0 NULL 0 NULL NULL NULL 0 +103656 0 0 巴吞鲁日大学 Louisiana State University at Baton Rouge 1 0 NULL 0 NULL NULL NULL 0 +102952 0 0 巴哈丁拉齐大学 Bahauddin Zakariya University 1 0 NULL 0 NULL NULL NULL 0 +102950 0 0 巴基斯坦信息技术学院 COMSATS Institute of Information Technology 1 0 NULL 0 NULL NULL NULL 0 +104727 0 0 巴塞尔大学 University of Basel 1 0 NULL 0 NULL NULL NULL 0 +104806 0 0 巴塞罗那大学 Universitat de Barcelona 1 0 NULL 0 NULL NULL NULL 0 +104808 0 0 巴塞罗那自治大学 Universitat Autònoma de Barcelona 1 0 NULL 0 NULL NULL NULL 0 +102987 0 0 巴拉那天主大学 Pontifical Catholic University of Paraná 1 0 NULL 0 NULL NULL NULL 0 +102979 0 0 巴拉那联邦大学 Universidade Federal do Paraná - UFPR 1 0 NULL 0 NULL NULL NULL 0 +104823 0 0 巴斯克大学 Universidad del Pais Vasco 1 0 NULL 0 NULL NULL NULL 0 +105105 0 0 巴斯大学 University of Bath 1 0 NULL 0 NULL NULL NULL 0 +105016 0 0 巴斯思巴大学 Bath Spa University 1 0 NULL 0 NULL NULL NULL 0 +105178 0 0 巴斯泉大学 Bath Spa University 1 0 NULL 0 NULL NULL NULL 0 +102959 0 0 巴林大学 University of Bahrain 1 0 NULL 0 NULL NULL NULL 0 +104879 0 0 巴格达大学 University of Baghdad 1 0 NULL 0 NULL NULL NULL 0 +102969 0 0 巴西利亚大学 Universidade de Brasília 1 0 NULL 0 NULL NULL NULL 0 +105332 0 0 巴西金边大学 State University of Campinas 1 0 NULL 0 NULL NULL NULL 0 +104936 0 0 巴里大学 University of Bari 1 0 NULL 0 NULL NULL NULL 0 +102798 0 0 巴音郭楞职业技术学院 0 0 高职类 0 专科 新疆 巴音郭楞蒙古自治州 0 +103211 0 0 巴黎中央理工学院 École Centrale de Lyon 1 0 NULL 0 NULL NULL NULL 0 +103217 0 0 巴黎中央高等电力学院 CENTRALESUPELEC 1 0 NULL 0 NULL NULL NULL 0 +103204 0 0 巴黎人文与科学学院 Paris Sciences et Lettres – PSL Research University Paris 1 0 NULL 0 NULL NULL NULL 0 +103213 0 0 巴黎南特雷大学 Paris Nanterre University 1 0 NULL 0 NULL NULL NULL 0 +105309 0 0 巴黎多芬大学,PSL研究大学 Paris-Dauphine University PSL Research University 1 0 NULL 0 NULL NULL NULL 0 +105313 0 0 巴黎政治大学 Paris Institute of Political Studies 1 0 NULL 0 NULL NULL NULL 0 +103170 0 0 巴黎政治学院 Sciences Po 1 0 NULL 0 NULL NULL NULL 0 +105312 0 0 巴黎狄德罗大学 Paris Diderot University 1 0 NULL 0 NULL NULL NULL 0 +103173 0 0 巴黎第一大学 Université Paris 1 Panthéon-Sorbonne 1 0 NULL 0 NULL NULL NULL 0 +103177 0 0 巴黎第七大学 Université Paris Diderot - Paris 7 1 0 NULL 0 NULL NULL NULL 0 +103179 0 0 巴黎第九大学 Université Paris Dauphine 1 0 NULL 0 NULL NULL NULL 0 +103188 0 0 巴黎第二大学 Université Panthéon-Assas (Paris 2) 1 0 NULL 0 NULL NULL NULL 0 +103182 0 0 巴黎第五大学 Université Paris Descartes 1 0 NULL 0 NULL NULL NULL 0 +103167 0 0 巴黎第六大学 Université Pierre et Marie Curie (UPMC) 1 0 NULL 0 NULL NULL NULL 0 +103172 0 0 巴黎第十一大学 Université Paris-Sud 1 0 NULL 0 NULL NULL NULL 0 +103201 0 0 巴黎第十大学 Université Paris Ouest Nanterre La Défense 1 0 NULL 0 NULL NULL NULL 0 +103175 0 0 巴黎第四大学 Université Paris-Sorbonne (Paris IV) 1 0 NULL 0 NULL NULL NULL 0 +105311 0 0 巴黎索邦大学 Paris-Sorbonne University 1 0 NULL 0 NULL NULL NULL 0 +105353 0 0 巴黎综合理工大学 école Polytechnique 1 1 NULL 0 NULL NULL NULL 0 +103165 0 0 巴黎高等师范学院 Ecole normale supérieure, Paris 1 1 NULL 0 NULL NULL NULL 0 +103214 0 0 巴黎高等物化工业学院 ESPCI ParisTech 1 0 NULL 0 NULL NULL NULL 0 +103166 0 0 巴黎高等理工学院 Ecole Polytechnique 1 0 NULL 0 NULL NULL NULL 0 +103215 0 0 巴黎高等矿业学院 MINES ParisTech 1 0 NULL 0 NULL NULL NULL 0 +103174 0 0 巴黎高等路桥学院 Ecole des Ponts ParisTech 1 0 NULL 0 NULL NULL NULL 0 +103108 0 0 布伦瑞克工业大学 Technische Universität Braunschweig 1 0 NULL 0 NULL NULL NULL 0 +103673 0 0 布兰戴斯大学 Brandeis University 1 0 NULL 0 NULL NULL NULL 0 +103443 0 0 布兰登大学 Brandon 1 0 NULL 0 NULL NULL NULL 0 +103832 0 0 布兰迪斯大学 Brandeis University 1 0 NULL 0 NULL NULL NULL 0 +103475 0 0 布加勒斯特大学 University of Bucharest 1 0 NULL 0 NULL NULL NULL 0 +102828 0 0 布宜诺斯艾利斯大学 Universidad de Buenos Aires (UBA) 1 1 NULL 0 NULL NULL NULL 0 +105341 0 0 布宜诺斯艾利斯技术学院 Instituto Tecnológico de Buenos Aires 1 0 NULL 0 NULL NULL NULL 0 +102833 0 0 布宜诺斯艾利斯理工学院 Instituto Tecnológico de Buenos Aires (ITBA) 1 0 NULL 0 NULL NULL NULL 0 +103450 0 0 布尔诺工业大学 Brno University of Technology 1 0 NULL 0 NULL NULL NULL 0 +105134 0 0 布拉德福德大学 University of Bradford 1 0 NULL 0 NULL NULL NULL 0 +103452 0 0 布拉格化工大学 University of Chemistry and Technology, Prague 1 0 NULL 0 NULL NULL NULL 0 +103448 0 0 布拉格工业大学 Czech Technical University in Prague 1 0 NULL 0 NULL NULL NULL 0 +103447 0 0 布拉格查尔斯大学 Charles University 1 0 NULL 0 NULL NULL NULL 0 +103781 0 0 布朗大学 Brown University 1 1 NULL 0 NULL NULL NULL 0 +103739 0 0 布朗斯维分校 University of Texas at Brownsville 1 0 NULL 0 NULL NULL NULL 0 +105156 0 0 布莱顿与萨塞克斯医学院 Brighton and Sussex Medical School 1 0 NULL 0 NULL NULL NULL 0 +105140 0 0 布莱顿大学 University of Brighton 1 0 NULL 0 NULL NULL NULL 0 +104876 0 0 布达佩斯大学 Corvinus University of Budapest 1 0 NULL 0 NULL NULL NULL 0 +104874 0 0 布达佩斯经济技术大学 Budapest University of Technology and Economics 1 0 NULL 0 NULL NULL NULL 0 +103580 0 0 布里奇波特大学 University of Bridgeport 1 0 NULL 0 NULL NULL NULL 0 +103581 0 0 布里奇波特电机学院 Bridgeport Engineering Institute 1 0 NULL 0 NULL NULL NULL 0 +105094 0 0 布里斯托大学 University of Bristol 1 1 NULL 0 NULL NULL NULL 0 +104933 0 0 布雷西亚大学 University of Brescia 1 0 NULL 0 NULL NULL NULL 0 +103428 0 0 布鲁克大学 Brock 1 0 NULL 0 NULL NULL NULL 0 +105120 0 0 布鲁内尔大学 Brunel University London 1 0 NULL 0 NULL NULL NULL 0 +105289 0 0 希伯来大学 Hebrew University of Jerusalem 1 0 NULL 0 NULL NULL NULL 0 +103055 0 0 希尔德斯海姆大学 Universität Hildesheim 1 0 NULL 0 NULL NULL NULL 0 +104914 0 0 帕多瓦大学 Università di Padova 1 0 NULL 0 NULL NULL NULL 0 +103455 0 0 帕尔杜比采大学 University of Pardubice 1 0 NULL 0 NULL NULL NULL 0 +104944 0 0 帕尔马大学 University of Parma 1 0 NULL 0 NULL NULL NULL 0 +103130 0 0 帕德博恩大学 University of Paderborn 1 0 NULL 0 NULL NULL NULL 0 +103451 0 0 帕拉茨基大学 Palacký University in Olomouc 1 0 NULL 0 NULL NULL NULL 0 +104846 0 0 帕特雷大学 University of Patras 1 0 NULL 0 NULL NULL NULL 0 +103122 0 0 帕绍大学 University of Passau 1 0 NULL 0 NULL NULL NULL 0 +104923 0 0 帕维亚大学 Università degli Studi di Pavia 1 0 NULL 0 NULL NULL NULL 0 +104181 0 0 帝京大学 1 0 NULL 0 NULL NULL NULL 0 +104145 0 0 帝京平成大学 1 0 NULL 0 NULL NULL NULL 0 +104211 0 0 帝京科学大学 1 0 NULL 0 NULL NULL NULL 0 +103627 0 0 帝博大学 DePaul University 1 0 NULL 0 NULL NULL NULL 0 +105089 0 0 帝国理工学院 Imperial College London 1 0 NULL 0 NULL NULL NULL 0 +104406 0 0 帝塚山大学 1 0 NULL 0 NULL NULL NULL 0 +104364 0 0 帝塚山学院大学 1 0 NULL 0 NULL NULL NULL 0 +104586 0 0 带广畜产大学 1 0 NULL 0 NULL NULL NULL 0 +104238 0 0 常叶学园大学 1 0 NULL 0 NULL NULL NULL 0 +100911 0 0 常州信息职业技术学院 0 0 高职类 0 示范(高职) 江苏 常州市 0 +100850 0 0 常州大学 0 0 理工类 0 本科 江苏 常州市 0 +101007 0 0 常州大学怀德学院 0 0 理工类 0 独立学院 江苏 泰州市 0 +100875 0 0 常州工学院 0 0 理工类 0 本科 江苏 常州市 0 +100940 0 0 常州工程职业技术学院 0 0 高职类 0 专科 江苏 常州市 0 +100950 0 0 常州机电职业技术学院 0 0 高职类 0 骨干(高职) 江苏 常州市 0 +100928 0 0 常州纺织服装职业技术学院 0 0 高职类 0 专科 江苏 常州市 0 +100939 0 0 常州轻工职业技术学院 0 0 理工类 0 专科(高职) 江苏 常州市 0 +1399 0 0 常德广播电视大学 CHANGDE RADIO&TV UNIVERSITY 常德电大 0 0 综合类 0 专科(高职) 湖南 常德市 0 +101942 0 0 常德职业技术学院 0 0 高职类 0 专科 湖南 常德市 0 +100873 0 0 常熟理工学院 0 0 理工类 0 本科 江苏 苏州市 0 +104085 0 0 常盘大学 1 0 NULL 0 NULL NULL NULL 0 +104086 0 0 常盘短期大学 1 0 NULL 0 NULL NULL NULL 0 +104365 0 0 常磐会学园大学 1 0 NULL 0 NULL NULL NULL 0 +105575 0 0 平凉职业技术学院 0 0 高职类 0 专科 甘肃 平凉市 0 +104371 0 0 平安女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104126 0 0 平成国际大学 1 0 NULL 0 NULL NULL NULL 0 +104492 0 0 平成音乐大学 1 0 NULL 0 NULL NULL NULL 0 +101617 0 0 平顶山学院 0 0 综合类 0 本科 河南 平顶山市 0 +101653 0 0 平顶山工业职业技术学院 0 0 高职类 0 示范(高职) 河南 平顶山市 0 +101713 0 0 平顶山文化艺术职业学院 0 0 艺术类 0 其他 河南 平顶山市 0 +101722 0 0 平顶山职业技术学院 平顶山教育学院 0 0 高职类 0 专科 河南 平顶山市 0 +102045 0 0 广东东软学院 0 0 综合类 0 民办(本科) 广东 佛山市 0 +102090 0 0 广东亚视演艺职业学院 0 0 高职类 0 民办(专科) 广东 东莞市 0 +102056 0 0 广东交通职业技术学院 0 0 高职类 0 骨干(高职) 广东 广州市 0 +105464 0 0 广东以色列理工学院 0 0 理工类 0 中外合作办学 广东 汕头市 0 +102073 0 0 广东体育职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102129 0 0 广东信息工程职业学院 0 0 高职类 0 民办(专科) 广东 肇庆市 0 +102065 0 0 广东农工商职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102126 0 0 广东创新科技职业学院 0 0 高职类 0 民办(专科) 广东 东莞市 0 +102015 0 0 广东医科大学 广东医学院 0 0 医科类 0 本科 广东 湛江市 0 +102060 0 0 广东南华工商职业学院 民办南华工商学院 0 0 高职类 0 专科 广东 广州市 0 +102120 0 0 广东南方职业学院 0 0 高职类 0 民办(专科) 广东 江门市 0 +102089 0 0 广东司法警官职业学院 0 0 政法类 0 专科(高职) 广东 广州市 0 +102043 0 0 广东培正学院 0 0 综合类 0 民办(本科) 广东 广州市 0 +102041 0 0 广东外语外贸大学 0 0 语言类 0 本科 广东 广州市 0 +102163 0 0 广东外语外贸大学南国商学院 0 0 财经类 0 独立学院 广东 广州市 0 +102076 0 0 广东女子职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102078 0 0 广东岭南职业技术学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102040 0 0 广东工业大学 0 0 理工类 0 本科 广东 广州市 0 +102150 0 0 广东工业大学华立学院 0 0 理工类 0 独立学院 广东 广州市 0 +102103 0 0 广东工商职业学院 0 0 理工类 0 普通本科 广东 肇庆市 0 +102110 0 0 广东工程职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102088 0 0 广东工贸职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102075 0 0 广东建设职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102142 0 0 广东开放大学 0 0 综合类 0 专科(高职) 广东 广州市 0 +102028 0 0 广东技术师范大学 广东技术师范学院 0 0 师范类 0 本科 广东 广州市 0 +102158 0 0 广东技术师范大学天河学院 广东技术师范学院天河学院 0 0 综合类 0 普通本科 广东 广州市 0 +102117 0 0 广东文理职业学院 0 0 高职类 0 民办(专科) 广东 湛江市 0 +102092 0 0 广东文艺职业学院 0 0 高职类 0 专科 广东 广州市 0 +102143 0 0 广东新华教育学院 0 0 师范类 0 专科(高职) 广东 广州市 0 +102066 0 0 广东新安职业技术学院 0 0 高职类 0 民办(专科) 广东 深圳市 0 +102077 0 0 广东机电职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102064 0 0 广东松山职业技术学院 0 0 高职类 0 专科 广东 韶关市 0 +102057 0 0 广东水利电力职业技术学院 0 0 高职类 0 骨干(高职) 广东 广州市 0 +105573 0 0 广东江门中医药职业学院 0 0 高职类 0 专科 广东 江门市 0 +102013 0 0 广东海洋大学 0 0 农林类 0 本科 广东 湛江市 0 +102162 0 0 广东海洋大学寸金学院 0 0 综合类 0 独立学院 广东 湛江市 0 +102123 0 0 广东环境保护工程职业学院 0 0 理工类 0 专科(高职) 广东 佛山市 0 +102049 0 0 广东理工学院 0 0 理工类 0 民办(本科) 广东 肇庆市 0 +102106 0 0 广东理工职业学院 0 0 理工类 0 专科(高职) 广东 广州市 0 +102130 0 0 广东生态工程职业学院 0 0 高职类 0 专科 广东 广州市 0 +102031 0 0 广东白云学院 0 0 综合类 0 民办(本科) 广东 广州市 0 +102136 0 0 广东省国防工业职工大学 0 0 军事类 0 专科(高职) 广东 广州市 0 +102091 0 0 广东省外语艺术职业学院 0 0 综合类 0 专科(高职) 广东 广州市 0 +102144 0 0 广东省职工体育运动技术学院 0 0 NULL 0 NULL NULL NULL 0 +102038 0 0 广东石油化工学院 0 0 理工类 0 本科 广东 茂名市 0 +102132 0 0 广东碧桂园职业学院 0 0 高职类 0 民办(专科) 广东 清远市 0 +102145 0 0 广东社会科学大学 0 0 综合类 0 专科(高职) 广东 广州市 0 +102068 0 0 广东科学技术职业学院 0 0 高职类 0 骨干(高职) 广东 广州市 0 +102048 0 0 广东科技学院 0 0 理工类 0 民办(本科) 广东 东莞市 0 +102112 0 0 广东科贸职业学院 0 0 高职类 0 专科 广东 广州市 0 +102050 0 0 广东第二师范学院 0 0 师范类 0 本科 广东 广州市 0 +102074 0 0 广东职业技术学院 0 0 高职类 0 专科 广东 佛山市 0 +102127 0 0 广东舞蹈戏剧职业学院 0 0 高职类 0 专科 广东 广州市 0 +105554 0 0 广东茂名健康职业学院 0 0 综合类 0 专科(高职) 广东 茂名市 0 +105525 0 0 广东茂名幼儿师范专科学校 0 0 师范类 0 专科 广东 茂名市 0 +102017 0 0 广东药科大学 广东药学院 0 0 医科类 0 本科 广东 广州市 0 +102072 0 0 广东行政职业学院 0 0 高职类 0 专科 广东 广州市 0 +102034 0 0 广东警官学院 广东省公安司法管理干部学院 0 0 政法类 0 本科 广东 广州市 0 +102030 0 0 广东财经大学 0 0 财经类 0 本科 广东 广州市 0 +102161 0 0 广东财经大学华商学院 0 0 财经类 0 独立学院 广东 广州市 0 +102055 0 0 广东轻工职业技术学院 0 0 高职类 0 示范(高职) 广东 广州市 0 +102083 0 0 广东邮电职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +105523 0 0 广东酒店管理职业技术学院 0 0 高职类 0 民办(专科) 广东 东莞市 0 +102037 0 0 广东金融学院 0 0 财经类 0 本科 广东 广州市 0 +105572 0 0 广东金融学院AIA国际本硕 0 0 NULL 0 其他 广东 广州市 0 +102124 0 0 广东青年职业学院 0 0 高职类 0 专科 广东 广州市 0 +102069 0 0 广东食品药品职业学院 0 0 高职类 0 专科 广东 广州市 0 +102425 0 0 广元核工业职业技术学院 四川核工业职工大学 0 0 其他 0 专科(高职) 四川 广元市 0 +102434 0 0 广元职工医学院 0 0 医药类 0 专科(高职) 四川 广元市 0 +102396 0 0 广安职业技术学院 0 0 高职类 0 专科 四川 广安市 0 +104433 0 0 广岛修道大学 1 0 NULL 0 NULL NULL NULL 0 +104431 0 0 广岛国际大学 1 0 NULL 0 NULL NULL NULL 0 +104432 0 0 广岛国际学院大学 1 0 NULL 0 NULL NULL NULL 0 +104626 0 0 广岛大学 Hiroshima University 1 0 NULL 0 NULL NULL NULL 0 +104434 0 0 广岛女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104430 0 0 广岛工业大学 1 0 NULL 0 NULL NULL NULL 0 +104565 0 0 广岛市立大学 1 0 NULL 0 NULL NULL NULL 0 +104435 0 0 广岛文教女子大学 1 0 NULL 0 NULL NULL NULL 0 +104429 0 0 广岛经济大学 1 0 NULL 0 NULL NULL NULL 0 +102125 0 0 广州东华职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102016 0 0 广州中医药大学 0 0 医科类 1 本科 广东 广州市 0 +102025 0 0 广州体育学院 0 0 体育类 0 本科 广东 广州市 0 +102093 0 0 广州体育职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102014 0 0 广州医科大学 0 0 医科类 0 本科 广东 广州市 0 +102107 0 0 广州华南商贸职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102121 0 0 广州华商职业学院 0 0 财经类 0 专科(高职) 广东 广州市 0 +102122 0 0 广州华夏职业学院 0 0 综合类 0 专科(高职) 广东 广州市 0 +102108 0 0 广州华立科技职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102100 0 0 广州南洋理工职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +105469 0 0 广州卫生职业技术学院 0 0 高职类 0 专科 广东 广州市 0 +102046 0 0 广州商学院 0 0 综合类 0 民办(本科) 广东 广州市 0 +102109 0 0 广州城市职业学院 0 0 高职类 0 专科 广东 广州市 0 +102118 0 0 广州城建职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102032 0 0 广州大学 0 0 综合类 0 本科 广东 广州市 0 +102157 0 0 广州大学华软软件学院 0 0 综合类 0 独立学院 广东 广州市 0 +105451 0 0 广州大学市政技术学院 0 0 综合类 0 专科(高职) 广东 广州市 0 +102151 0 0 广州大学松田学院 0 0 综合类 0 独立学院 广东 广州市 0 +102047 0 0 广州工商学院 0 0 财经类 0 民办(本科) 广东 广州市 0 +102094 0 0 广州工程技术职业学院 0 0 高职类 0 专科 广东 广州市 0 +102140 0 0 广州市公安管理干部学院 0 0 政法类 0 专科(高职) 广东 广州市 0 +102146 0 0 广州市广播电视大学 0 0 综合类 0 专科(高职) 广东 广州市 0 +102070 0 0 广州康大职业技术学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102116 0 0 广州松田职业学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102062 0 0 广州民航职业技术学院 0 0 高职类 0 示范(高职) 广东 广州市 0 +102099 0 0 广州涉外经济职业技术学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102105 0 0 广州现代信息工程职业技术学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102115 0 0 广州珠江职业技术学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +102063 0 0 广州番禺职业技术学院 0 0 高职类 0 示范(高职) 广东 广州市 0 +102101 0 0 广州科技职业技术学院 0 0 综合类 0 专科(高职) 广东 广州市 0 +102113 0 0 广州科技贸易职业学院 0 0 高职类 0 专科 广东 广州市 0 +102026 0 0 广州美术学院 0 0 艺术类 0 本科 广东 广州市 0 +102033 0 0 广州航海学院 0 0 理工类 0 本科 广东 广州市 0 +102133 0 0 广州金桥管理干部学院 0 0 政法类 0 专科(高职) 广东 广州市 0 +102111 0 0 广州铁路职业技术学院 0 0 高职类 0 骨干(高职) 广东 广州市 0 +102170 0 0 广西中医药大学 0 0 医科类 0 本科 广西 南宁市 0 +102238 0 0 广西中医药大学赛恩斯新医药学院 0 0 医药类 0 独立学院 广西 南宁市 0 +105639 0 0 广西中远职业学院 0 0 高职类 0 民办(专科) 广西 崇左市 0 +102198 0 0 广西交通职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102189 0 0 广西体育高等专科学校 0 0 高职类 0 专科 广西 南宁市 0 +102201 0 0 广西农业职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102168 0 0 广西医科大学 0 0 医科类 0 本科 广西 南宁市 0 +102222 0 0 广西卫生职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102200 0 0 广西国际商务职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102212 0 0 广西城市职业学院 0 0 高职类 0 民办(本科) 广西 崇左市 0 +102223 0 0 广西培贤国际职业学院 0 0 高职类 0 民办(专科) 广西 百色市 0 +102187 0 0 广西外国语学院 0 0 外语类 0 民办(本科) 广西 南宁市 0 +102164 1 0 广西大学 0 0 综合类 1 本科 广西 南宁市 0 +102237 0 0 广西大学行健文理学院 0 0 综合类 0 独立学院 广西 南宁市 0 +105602 0 0 广西安全工程职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102199 0 0 广西工业职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102209 0 0 广西工商职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102216 0 0 广西工程职业学院 0 0 高职类 0 民办(专科) 广西 百色市 0 +102172 0 0 广西师范大学 广西师范学院 0 0 师范类 0 本科 广西 桂林市 0 +102231 0 0 广西师范大学漓江学院 0 0 综合类 0 独立学院 广西 桂林市 0 +102235 0 0 广西师范学院师园学院 0 0 综合类 0 普通本科 广西 南宁市 0 +102220 0 0 广西幼儿师范高等专科学校 0 0 高职类 0 专科 广西 南宁市 0 +623 0 0 广西广播电视大学 GUANGXI RADIO&TV UNIVERSITY 广西电大::广西壮族自治区广播电视大学 0 0 综合类 0 专科(高职) 广西 南宁市 0 +102203 0 0 广西建设职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102229 0 0 广西政法管理干部学院 0 0 政法类 0 专科(高职) 广西 南宁市 0 +102227 0 0 广西教育学院 0 0 师范类 0 专科(高职) 广西 南宁市 0 +102188 0 0 广西机电职业技术学院 0 0 高职类 0 骨干(高职) 广西 南宁市 0 +102178 0 0 广西民族大学 0 0 民族类 0 本科 广西 南宁市 0 +102236 0 0 广西民族大学相思湖学院 0 0 民族类 0 独立学院 广西 南宁市 0 +102174 0 0 广西民族师范学院 0 0 师范类 0 本科 广西 崇左市 0 +102192 0 0 广西水利电力职业技术学院 0 0 高职类 0 骨干(高职) 广西 南宁市 0 +102210 0 0 广西演艺职业学院 0 0 高职类 0 民办(专科) 广西 南宁市 0 +102205 0 0 广西现代职业技术学院 0 0 高职类 0 专科 广西 河池市 0 +102217 0 0 广西理工职业技术学院 0 0 高职类 0 民办(专科) 广西 崇左市 0 +102197 0 0 广西生态工程职业技术学院 0 0 高职类 0 专科 广西 柳州市 0 +102211 0 0 广西电力职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102165 0 0 广西科技大学 0 0 理工类 0 本科 广西 柳州市 0 +102234 0 0 广西科技大学鹿山学院 0 0 理工类 0 独立学院 广西 柳州市 0 +102191 0 0 广西科技师范学院 柳州师范高等专科学校 0 0 师范类 0 本科 广西 来宾市 0 +102221 0 0 广西科技职业学院 0 0 高职类 0 民办(专科) 广西 崇左市 0 +102226 0 0 广西经济管理干部学院 广西壮族自治区经济管理干部学院 0 0 政法类 0 其他 广西 南宁市 0 +102219 0 0 广西经济职业学院 0 0 高职类 0 民办(专科) 广西 南宁市 0 +102208 0 0 广西经贸职业技术学院 0 0 高职类 0 专科 广西 南宁市 0 +102194 0 0 广西职业技术学院 0 0 高职类 0 骨干(高职) 广西 南宁市 0 +102177 0 0 广西艺术学院 0 0 艺术类 0 本科 广西 南宁市 0 +102213 0 0 广西英华国际职业学院 0 0 高职类 0 民办(专科) 广西 钦州市 0 +105644 0 0 广西蓝天航空职业学院 0 0 高职类 0 民办(专科) 广西 来宾市 0 +102204 0 0 广西警察学院 广西警官高等专科学校 0 0 政法类 0 本科 广西 南宁市 0 +102181 0 0 广西财经学院 0 0 财经类 0 本科 广西 南宁市 0 +102224 0 0 广西金融职业技术学院 0 0 高职类 0 民办(专科) 广西 南宁市 0 +103340 0 0 庆一大学 1 0 NULL 0 NULL NULL NULL 0 +103370 0 0 庆北国立大学 Kyungpook National University 1 0 NULL 0 NULL NULL NULL 0 +103343 0 0 庆南大学 1 0 NULL 0 NULL NULL NULL 0 +103377 0 0 庆尚国立大学 Gyeongsang National University 1 0 NULL 0 NULL NULL NULL 0 +103339 0 0 庆州大学 1 0 NULL 0 NULL NULL NULL 0 +104623 0 0 庆应义塾大学 Keio University 1 0 NULL 0 NULL NULL NULL 0 +103281 0 0 庆星大学 1 0 NULL 0 NULL NULL NULL 0 +103352 0 0 庆熙大学 Kyung Hee University 1 0 NULL 0 NULL NULL NULL 0 +105569 0 0 庆阳职业技术学院 0 0 高职类 0 专科 甘肃 庆阳市 0 +103476 0 0 库扎大学 Alexandru Ioan Cuza University 1 0 NULL 0 NULL NULL NULL 0 +104880 0 0 库法大学 University of Kufa 1 0 NULL 0 NULL NULL NULL 0 +100914 0 0 应天职业技术学院 0 0 高职类 0 民办(专科) 江苏 南京市 0 +104813 0 0 庞培法布拉大学 Universitat Pompeu Fabra 1 0 NULL 0 NULL NULL NULL 0 +102988 0 0 庞塔州立大学 State University of Ponta Grossa 1 0 NULL 0 NULL NULL NULL 0 +103700 0 0 康乃尔大学 Cornell University 1 0 NULL 0 NULL NULL NULL 0 +105220 0 0 康塞普西翁大学 Universidad de Concepción 1 0 NULL 0 NULL NULL NULL 0 +103769 0 0 康奈尔大学 Cornell University 1 1 NULL 0 NULL NULL NULL 0 +103100 0 0 康斯坦茨大学 Universität Konstanz 1 0 NULL 0 NULL NULL NULL 0 +103835 0 0 康涅狄格大学 University of Connecticut 1 0 NULL 0 NULL NULL NULL 0 +103587 0 0 康涅狄格学院 Connecticut College 1 0 NULL 0 NULL NULL NULL 0 +103410 0 0 康考迪亚大学 Concordia University 1 0 NULL 0 NULL NULL NULL 0 +100272 0 0 廊坊东方职业技术学院 0 0 综合类 0 普通本科 河北 廊坊市 0 +100278 0 0 廊坊卫生职业学院 0 0 高职类 0 专科 河北 廊坊市 0 +100197 0 0 廊坊师范学院 0 0 师范类 0 本科 河北 廊坊市 0 +100275 0 0 廊坊燕京职业技术学院 0 0 高职类 0 专科 河北 廊坊市 0 +100255 0 0 廊坊职业技术学院 0 0 高职类 0 专科 河北 廊坊市 0 +103349 0 0 延世大学 Yonsei University 1 1 NULL 0 NULL NULL NULL 0 +102599 0 0 延安大学 0 0 综合类 0 本科 陕西 延安市 0 +102686 0 0 延安大学西安创新学院 0 0 综合类 0 独立学院 陕西 西安市 0 +102653 0 0 延安职业技术学院 0 0 高职类 0 专科 陕西 延安市 0 +100586 1 0 延边大学 0 0 综合类 1 本科 吉林 延边朝鲜族自治州 0 +100635 0 0 延边职业技术学院 0 0 高职类 0 专科 吉林 延边朝鲜族自治州 0 +100943 0 0 建东职业技术学院 0 0 高职类 0 民办(专科) 江苏 常州市 0 +103367 0 0 建国大学 Konkuk University 1 0 NULL 0 NULL NULL NULL 0 +103325 0 0 建阳大学 1 0 NULL 0 NULL NULL NULL 0 +103038 0 0 开姆尼茨工业大学 Technische Universität Chemnitz 1 0 NULL 0 NULL NULL NULL 0 +101642 0 0 开封大学 0 0 高职类 0 专科 河南 开封市 0 +101721 0 0 开封教育学院 0 0 师范类 0 专科(高职) 河南 开封市 0 +101693 0 0 开封文化艺术职业学院 0 0 高职类 0 专科 河南 开封市 0 +101719 0 0 开封空分设备厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +105158 0 0 开放大学 The Open University 1 0 NULL 0 NULL NULL NULL 0 +104002 0 0 开普敦大学 University of Cape Town 1 0 NULL 0 NULL NULL NULL 0 +102854 0 0 开罗大学 Cairo University 1 0 NULL 0 NULL NULL NULL 0 +102853 0 0 开罗美国大学 The American University in Cairo 1 0 NULL 0 NULL NULL NULL 0 +103043 0 0 弗伦斯堡大学 Universität Flensburg 1 0 NULL 0 NULL NULL NULL 0 +103802 0 0 弗吉尼亚大学 University of Virginia 1 0 NULL 0 NULL NULL NULL 0 +103752 0 0 弗吉尼亚理工大学 Virginia Polytechnic Institute and State University 1 0 NULL 0 NULL NULL NULL 0 +103825 0 0 弗吉尼亚理工学院 Virginia Polytechnic Institute and State University 1 0 NULL 0 NULL NULL NULL 0 +103877 0 0 弗吉尼亚联邦大学 Virginia Commonwealth University 1 0 NULL 0 NULL NULL NULL 0 +103017 0 0 弗罗茨瓦夫大学 University of Wroclaw 1 0 NULL 0 NULL NULL NULL 0 +103018 0 0 弗罗茨瓦夫工业大学 Wroclaw University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103088 0 0 弗莱堡大学 Albert-Ludwigs-Universitaet Freiburg 1 0 NULL 0 NULL NULL NULL 0 +103045 0 0 弗莱贝格工业大学 Technische Universität Bergakademie Freiberg 1 0 NULL 0 NULL NULL NULL 0 +104730 0 0 弗里堡大学 Université de Fribourg 1 0 NULL 0 NULL NULL NULL 0 +102981 0 0 弗鲁米嫩塞联邦大学 Universidade Federal Fluminense 1 0 NULL 0 NULL NULL NULL 0 +104590 0 0 弘前大学 1 0 NULL 0 NULL NULL NULL 0 +104058 0 0 弘前学院大学 1 0 NULL 0 NULL NULL NULL 0 +103258 0 0 弘益大学 1 0 NULL 0 NULL NULL NULL 0 +100222 0 0 张家口学院 0 0 师范类 0 本科 河北 张家口市 0 +100227 0 0 张家口职业技术学院 0 0 高职类 0 专科 河北 张家口市 0 +101935 0 0 张家界航空工业职业技术学院 0 0 高职类 0 专科 湖南 张家界市 0 +103159 0 0 彼尔姆州立大学 Perm State University 1 0 NULL 0 NULL NULL NULL 0 +100861 0 0 徐州医科大学 徐州医学院 0 0 医科类 0 本科 江苏 徐州市 0 +100945 0 0 徐州工业职业技术学院 0 0 高职类 0 专科 江苏 徐州市 0 +100883 0 0 徐州工程学院 0 0 理工类 0 本科 江苏 徐州市 0 +100971 0 0 徐州幼儿师范高等专科学校 0 0 高职类 0 专科 江苏 徐州市 0 +100972 0 0 徐州生物工程职业技术学院 0 0 高职类 0 专科 江苏 徐州市 0 +104653 0 0 御茶水女子大学 Ochanomizu University 1 0 NULL 0 NULL NULL NULL 0 +103733 0 0 德克萨斯A&M大学 Texas A&M University 1 0 NULL 0 NULL NULL NULL 0 +103736 0 0 德克萨斯大学 University of Texas 1 0 NULL 0 NULL NULL NULL 0 +103954 0 0 德克萨斯大学健康科学中心休斯敦分校 The University of Texas Health Science Center at Houston 1 0 NULL 0 NULL NULL NULL 0 +103951 0 0 德克萨斯大学健康科学中心圣安东尼奥分校 The University of Texas Health Science Center at San Antonio 1 0 NULL 0 NULL NULL NULL 0 +103956 0 0 德克萨斯大学医学分部 The University of Texas Medical Branch at Galveston 1 0 NULL 0 NULL NULL NULL 0 +103937 0 0 德克萨斯大学埃尔帕索分校 University of Texas at El Paso 1 0 NULL 0 NULL NULL NULL 0 +103784 0 0 德克萨斯大学奥斯汀分校 University of Texas at Austin 1 1 NULL 0 NULL NULL NULL 0 +103921 0 0 德克萨斯大学安东尼奥分校 University of Texas at San Antonio 1 0 NULL 0 NULL NULL NULL 0 +103948 0 0 德克萨斯大学安德森癌症研究中心 The University of Texas M. D. Anderson Cancer Center 1 0 NULL 0 NULL NULL NULL 0 +103944 0 0 德克萨斯大学西南医学中心 The University of Texas Southwestern Medical Center at Dallas 1 0 NULL 0 NULL NULL NULL 0 +103838 0 0 德克萨斯大学达拉斯分校 University of Texas Dallas 1 0 NULL 0 NULL NULL NULL 0 +103926 0 0 德克萨斯大学阿灵顿分校 University of Texas at Arlington 1 0 NULL 0 NULL NULL NULL 0 +103941 0 0 德克萨斯州立大学 Texas State University 1 0 NULL 0 NULL NULL NULL 0 +103735 0 0 德克萨斯理工大学 Texas Tech University 1 0 NULL 0 NULL NULL NULL 0 +103104 0 0 德国基尔大学 Christian-Albrechts-University zu Kiel 1 0 NULL 0 NULL NULL NULL 0 +103513 0 0 德外尔理工学院 DeVry Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +102555 0 0 德宏师范高等专科学校 0 0 高职类 0 专科 云南 德宏傣族景颇族自治州 0 +102561 0 0 德宏职业学院 0 0 高职类 0 专科 云南 德宏傣族景颇族自治州 0 +104441 0 0 德山大学 1 0 NULL 0 NULL NULL NULL 0 +104685 0 0 德岛大学 Tokushima University 1 0 NULL 0 NULL NULL NULL 0 +104447 0 0 德岛文理大学 1 0 NULL 0 NULL NULL NULL 0 +103806 0 0 德州农工大学 Texas A&M University 1 0 NULL 0 NULL NULL NULL 0 +101460 0 0 德州学院 0 0 综合类 0 本科 山东 德州市 0 +103882 0 0 德州理工大学 Texas Tech University 1 0 NULL 0 NULL NULL NULL 0 +101514 0 0 德州科技职业学院 0 0 高职类 0 民办(专科) 山东 德州市 0 +101538 0 0 德州职业技术学院 0 0 高职类 0 专科 山东 德州市 0 +104873 0 0 德布勒森大学 University of Debrecen 1 0 NULL 0 NULL NULL NULL 0 +103270 0 0 德成女子大学 1 0 NULL 0 NULL NULL NULL 0 +103221 0 0 德拉萨大学 De La Salle University 1 0 NULL 0 NULL NULL NULL 0 +105272 0 0 德拉萨尔大学 From La Salle University 1 0 NULL 0 NULL NULL NULL 0 +105169 0 0 德比大学 University of Derby 1 0 NULL 0 NULL NULL NULL 0 +103728 0 0 德瑞索大学 Drexel University 1 0 NULL 0 NULL NULL NULL 0 +103090 0 0 德累斯顿工业大学 Technische Universität Dresden 1 0 NULL 0 NULL NULL NULL 0 +105162 0 0 德蒙福特大学 De Montfort University 1 0 NULL 0 NULL NULL NULL 0 +104961 0 0 德里大学 University of Delhi 1 0 NULL 0 NULL NULL NULL 0 +105646 0 0 德阳城市轨道交通职业学院 0 0 高职类 0 民办(专科) 四川 德阳市 0 +105659 0 0 德阳科贸职业学院 0 0 高职类 0 民办(专科) 四川 德阳市 0 +103850 0 0 德雷塞尔大学 Drexel University 1 0 NULL 0 NULL NULL NULL 0 +104889 0 0 德黑兰医科大学 Tehran University of Medical Sciences 1 0 NULL 0 NULL NULL NULL 0 +104882 0 0 德黑兰大学 University of Tehran 1 0 NULL 0 NULL NULL NULL 0 +101212 0 0 徽商职业学院 0 0 高职类 0 专科 安徽 合肥市 0 +104503 0 0 志学馆大学 1 0 NULL 0 NULL NULL NULL 0 +103378 0 0 忠北国立大学 Chungbuk National University 1 0 NULL 0 NULL NULL NULL 0 +103372 0 0 忠南国立大学 Chungnam National University 1 0 NULL 0 NULL NULL NULL 0 +100319 0 0 忻州师范学院 0 0 师范类 0 本科 山西 忻州市 0 +100359 0 0 忻州职业技术学院 0 0 高职类 0 专科 山西 忻州市 0 +103885 0 0 怀俄明大学 University of Wyoming 1 0 NULL 0 NULL NULL NULL 0 +101886 0 0 怀化学院 0 0 综合类 0 本科 湖南 怀化市 0 +1462 0 0 怀化广播电视大学 HUAIHUA RADIO&TV UNIVERSITY 怀化电大 0 0 综合类 0 专科(高职) 湖南 怀化市 0 +101940 0 0 怀化职业技术学院 0 0 高职类 0 专科 湖南 怀化市 0 +104867 0 0 怀卡托大学 University of Waikato 1 0 NULL 0 NULL NULL NULL 0 +104594 0 0 总合研究大学院大学 1 0 NULL 0 NULL NULL NULL 0 +105584 0 0 恒生管理学院 0 0 综合类 0 本科 香港 新界 0 +101788 0 0 恩施职业技术学院 0 0 高职类 0 专科 湖北 恩施土家族苗族自治州 0 +103584 0 0 恰特欧克学院 Charter Oak College 1 0 NULL 0 NULL NULL NULL 0 +102912 0 0 悉尼大学 The University of Sydney 1 1 NULL 0 NULL NULL NULL 0 +102915 0 0 悉尼科技大学 University of Technology Sydney 1 0 NULL 0 NULL NULL NULL 0 +104198 0 0 情报安全大学院大学 1 0 NULL 0 NULL NULL NULL 0 +104548 0 0 情报科学艺术大学院大学 1 0 NULL 0 NULL NULL NULL 0 +102128 0 0 惠州卫生职业技术学院 0 0 高职类 0 专科 广东 惠州市 0 +102131 0 0 惠州城市职业学院 0 0 高职类 0 专科 广东 惠州市 0 +102020 0 0 惠州学院 0 0 综合类 0 本科 广东 惠州市 0 +105587 0 0 惠州工程职业学院 0 0 高职类 0 专科 广东 惠州市 0 +102102 0 0 惠州经济职业技术学院 0 0 高职类 0 民办(专科) 广东 惠州市 0 +104866 0 0 惠灵顿维多利亚大学 Victoria University of Wellington 1 0 NULL 0 NULL NULL NULL 0 +105301 0 0 慕尼黑-路德维希-马克西米利安大学 Ludwig-Maximilians-University Munich 1 1 NULL 0 NULL NULL NULL 0 +103080 0 0 慕尼黑大学 Ludwig-Maximilians-Universität München 1 0 NULL 0 NULL NULL NULL 0 +103079 0 0 慕尼黑工业大学 Technical University of Munich 1 1 NULL 0 NULL NULL NULL 0 +103068 0 0 慕尼黑影视学院 Hochschule für Fernsehen und Film München 1 0 NULL 0 NULL NULL NULL 0 +103069 0 0 慕尼黑联邦国防军大学 Universität der Bundeswehr München 1 0 NULL 0 NULL NULL NULL 0 +103350 0 0 成均馆大学 Sungkyunkwan University (SKKU) 1 1 NULL 0 NULL NULL NULL 0 +104307 0 0 成安造形大学 1 0 NULL 0 NULL NULL NULL 0 +102357 0 0 成都东软学院 0 0 理工类 0 民办(本科) 四川 成都市 0 +102339 0 0 成都中医药大学 0 0 医科类 1 本科 四川 成都市 0 +102348 0 0 成都体育学院 0 0 体育类 0 本科 四川 成都市 0 +102332 0 0 成都信息工程大学 成都信息工程学院 0 0 理工类 0 本科 四川 成都市 0 +102441 0 0 成都信息工程大学银杏酒店管理学院 成都信息工程学院银杏酒店管理学院 0 0 财经类 0 独立学院 四川 成都市 0 +102386 0 0 成都农业科技职业学院 0 0 高职类 0 专科 四川 成都市 0 +102429 0 0 成都冶金职工大学 0 0 理工类 0 专科(高职) 四川 成都市 0 +102360 0 0 成都医学院 0 0 医科类 0 本科 四川 成都市 0 +102351 0 0 成都大学 成都学院 0 0 综合类 0 本科 四川 成都市 0 +102352 0 0 成都工业学院 0 0 理工类 0 本科 四川 成都市 0 +102420 0 0 成都工业职业技术学院 0 0 高职类 0 专科 四川 成都市 0 +102431 0 0 成都工业职工大学 0 0 理工类 0 专科(高职) 四川 成都市 0 +105421 0 0 成都工贸职业技术学院 0 0 高职类 0 专科 四川 成都市 0 +102438 0 0 成都市职工大学 0 0 其他 0 专科(高职) 四川 成都市 0 +102363 0 0 成都师范学院 0 0 师范类 0 本科 四川 成都市 0 +102439 0 0 成都广播电视大学 0 0 综合类 0 专科(高职) 四川 成都市 0 +102359 0 0 成都文理学院 0 0 综合类 0 民办(本科) 四川 成都市 0 +102330 0 0 成都理工大学 0 0 理工类 1 本科 四川 成都市 0 +102440 0 0 成都理工大学工程技术学院 0 0 理工类 0 独立学院 四川 乐山市 0 +102428 0 0 成都电子职工大学 0 0 其他 0 专科(高职) 四川 成都市 0 +102366 0 0 成都纺织高等专科学校 0 0 高职类 0 骨干(高职) 四川 成都市 0 +102370 0 0 成都职业技术学院 0 0 高职类 0 骨干(高职) 四川 成都市 0 +102368 0 0 成都航空职业技术学院 0 0 高职类 0 示范(高职) 四川 成都市 0 +102390 0 0 成都艺术职业学院 0 0 艺术类 0 专科(高职) 四川 成都市 0 +102426 0 0 成都飞机工业公司职工工学院 0 0 航空类 0 其他 四川 成都市 0 +103406 0 0 戴尔豪斯大学 Dalhousie University 1 0 NULL 0 NULL NULL NULL 0 +103928 0 0 戴顿大学 University of Dayton 1 0 NULL 0 NULL NULL NULL 0 +105561 0 0 扎兰屯职业学院 0 0 高职类 0 专科 内蒙 呼伦贝尔市 0 +105270 0 0 托伦哥白尼大学 Nicolaus Copernicus University in Torun 1 0 NULL 0 NULL NULL NULL 0 +102836 0 0 托尔夸托迪特利亚大学 Universidad Torcuato Di Tella 1 0 NULL 0 NULL NULL NULL 0 +103136 0 0 托木斯克国立大学 Tomsk State University 1 0 NULL 0 NULL NULL NULL 0 +103141 0 0 托木斯克理工大学 National Research Tomsk Polytechnic University 1 0 NULL 0 NULL NULL NULL 0 +103927 0 0 托莱多大学 University of Toledo 1 0 NULL 0 NULL NULL NULL 0 +103957 0 0 托马斯杰斐逊大学 Thomas Jefferson University 1 0 NULL 0 NULL NULL NULL 0 +100975 0 0 扬州中瑞酒店职业学院 0 0 高职类 0 民办(专科) 江苏 扬州市 0 +100876 0 0 扬州大学 0 0 综合类 0 本科 江苏 扬州市 0 +101002 0 0 扬州大学广陵学院 0 0 综合类 0 独立学院 江苏 扬州市 0 +100958 0 0 扬州工业职业技术学院 0 0 高职类 0 专科 江苏 扬州市 0 +100904 0 0 扬州市职业大学 0 0 高职类 0 专科 江苏 扬州市 0 +100917 0 0 扬州环境资源职业技术学院 0 0 高职类 0 专科 江苏 扬州市 0 +100980 0 0 扬州科技学院 扬州教育学院 0 0 师范类 0 普通本科 江苏 南京市 0 +100192 0 0 承德医学院 0 0 医科类 0 本科 河北 承德市 0 +105664 0 0 承德应用技术职业学院 0 0 高职类 0 专科 河北 承德市 0 +100276 0 0 承德护理职业学院 0 0 高职类 0 专科 河北 承德市 0 +100228 0 0 承德石油高等专科学校 0 0 高职类 0 示范(高职) 河北 承德市 0 +105635 0 0 抚州幼儿师范高等专科学校 0 0 高职类 0 专科 江西 抚州市 0 +101393 0 0 抚州职业技术学院 0 0 高职类 0 专科 江西 抚州市 0 +100503 0 0 抚顺师范高等专科学校 0 0 高职类 0 专科 辽宁 抚顺市 0 +100559 0 0 抚顺矿务局职工工学院 0 0 理工类 0 专科(高职) 辽宁 抚顺市 0 +100509 0 0 抚顺职业技术学院 0 0 高职类 0 专科 辽宁 抚顺市 0 +103916 0 0 拉什大学 Rush University 1 0 NULL 0 NULL NULL NULL 0 +104761 0 0 拉卡邦先皇技术学院 King Mongkut’s Institute of Technology Ladkrabang 1 0 NULL 0 NULL NULL NULL 0 +104832 0 0 拉古纳大学 University of La Laguna 1 0 NULL 0 NULL NULL NULL 0 +102956 0 0 拉合尔兽医与动物科学大学 University of Veterinary and Animal Sciences, Lahore 1 0 NULL 0 NULL NULL NULL 0 +102949 0 0 拉合尔大学 The University of Lahore 1 0 NULL 0 NULL NULL NULL 0 +102947 0 0 拉合尔工程技术大学 University of Engineering & Technology (UET) Lahore 1 0 NULL 0 NULL NULL NULL 0 +102953 0 0 拉合尔政府大学 Government College University Lahore 1 0 NULL 0 NULL NULL NULL 0 +102946 0 0 拉合尔管理大学 Lahore University of Management Sciences (LUMS) 1 0 NULL 0 NULL NULL NULL 0 +105111 0 0 拉夫堡大学 Loughborough University 1 0 NULL 0 NULL NULL NULL 0 +102990 0 0 拉夫拉斯联邦大学 Federal University of Lavras 1 0 NULL 0 NULL NULL NULL 0 +104951 0 0 拉奎拉大学 University of L'Aquila 1 0 NULL 0 NULL NULL NULL 0 +105230 0 0 拉弗龙特拉大学 University of La Frontera 1 0 NULL 0 NULL NULL NULL 0 +103230 0 0 拉彭兰塔理工大学 Lappeenranta University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103547 0 0 拉文大学 University of La Verne, ULV 1 0 NULL 0 NULL NULL NULL 0 +105344 0 0 拉普拉塔国立大学 National University of La Plata 1 0 NULL 0 NULL NULL NULL 0 +104836 0 0 拉曼查大学 University of Castilla-La Mancha 1 0 NULL 0 NULL NULL NULL 0 +102955 0 0 拉瓦尔品第农业大学 PMAS Arid Agriculture University Rawalpindi 1 0 NULL 0 NULL NULL NULL 0 +103409 0 0 拉瓦尔大学 Laval University 1 0 NULL 0 NULL NULL NULL 0 +104828 0 0 拉科鲁尼亚大学 Universidade da Coruña 1 0 NULL 0 NULL NULL NULL 0 +102926 0 0 拉筹伯大学 La Trobe University 1 0 NULL 0 NULL NULL NULL 0 +103466 0 0 拉脱维亚大学 University of Latvia 1 0 NULL 0 NULL NULL NULL 0 +104861 0 0 拉萨尔艺术学院 LASALLE College of the Arts 1 0 NULL 0 NULL NULL NULL 0 +102582 0 0 拉萨师范高等专科学校 0 0 高职类 0 专科 西藏 拉萨市 0 +103238 0 0 拉萨瓦纳大学 Universidad de La Sabana 1 0 NULL 0 NULL NULL NULL 0 +103561 0 0 拉西瑞亚大学 La Sierra University 1 0 NULL 0 NULL NULL NULL 0 +103983 0 0 拉马特大学 Mohammed V University of Rabat 1 0 NULL 0 NULL NULL NULL 0 +104179 0 0 拓殖大学 1 0 NULL 0 NULL NULL NULL 0 +103115 0 0 拜罗伊特大学 University of Bayreuth 1 0 NULL 0 NULL NULL NULL 0 +104017 0 0 挪威生命科学大学 Norwegian University of Life Sciences 1 0 NULL 0 NULL NULL NULL 0 +104018 0 0 挪威科学技术大学 Norwegian University of Science and Technology - NTNU 1 0 NULL 0 NULL NULL NULL 0 +104015 0 0 挪威科技大学 Norwegian University of Science And Technology 1 0 NULL 0 NULL NULL NULL 0 +103453 0 0 捷克布拉格生命科学大学 Czech University of Life Sciences Prague (CULS) 1 0 NULL 0 NULL NULL NULL 0 +104976 0 0 提斯浦尔大学 Tezpur University 1 0 NULL 0 NULL NULL NULL 0 +102085 0 0 揭阳职业技术学院 0 0 高职类 0 专科 广东 揭阳市 0 +104360 0 0 摄南大学 1 0 NULL 0 NULL NULL NULL 0 +102353 0 0 攀枝花学院 0 0 综合类 0 本科 四川 攀枝花市 0 +104598 0 0 政策研究大学院大学 1 0 NULL 0 NULL NULL NULL 0 +104134 0 0 敬爱大学 1 0 NULL 0 NULL NULL NULL 0 +101775 0 0 文华学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +102529 0 0 文山学院 0 0 综合类 0 本科 云南 文山壮族苗族自治州 0 +104125 0 0 文教大学 1 0 NULL 0 NULL NULL NULL 0 +104095 0 0 文星艺术大学 1 0 NULL 0 NULL NULL NULL 0 +105329 0 0 文莱达鲁萨兰国大学 Universiti Brunei Darussalam 1 0 NULL 0 NULL NULL NULL 0 +104793 0 0 文莱达鲁萨兰大学 Universiti Brunei Darussalam (UBD) 1 0 NULL 0 NULL NULL NULL 0 +103651 0 0 斯伯丁大学 Spalding University 1 0 NULL 0 NULL NULL NULL 0 +103555 0 0 斯克利普斯学院 Scripps College 1 0 NULL 0 NULL NULL NULL 0 +105116 0 0 斯凯莱德大学 University of Strathclyde 1 0 NULL 0 NULL NULL NULL 0 +103094 0 0 斯图加特大学 Universität Stuttgart 1 0 NULL 0 NULL NULL NULL 0 +103074 0 0 斯图加特媒体学院 Hochschule der Medien 1 0 NULL 0 NULL NULL NULL 0 +103765 0 0 斯坦福大学 Stanford University 1 1 NULL 0 NULL NULL NULL 0 +105192 0 0 斯塔福德大学 Staffordshire University 1 0 NULL 0 NULL NULL NULL 0 +102900 0 0 斯威本理工大学 Swinburne University of Technology 1 0 NULL 0 NULL NULL NULL 0 +102928 0 0 斯威本科技大学 Swinburne University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104714 0 0 斯德哥尔摩大学 Stockholm University 1 0 NULL 0 NULL NULL NULL 0 +104721 0 0 斯德哥尔摩经济学院 Stockholm School of Economics 1 0 NULL 0 NULL NULL NULL 0 +105126 0 0 斯旺西大学 Swansea University 1 0 NULL 0 NULL NULL NULL 0 +103463 0 0 斯普利特大学 University of Split 1 0 NULL 0 NULL NULL NULL 0 +103965 0 0 斯沃斯莫尔学院 Swarthmore College 1 0 NULL 0 NULL NULL NULL 0 +104003 0 0 斯泰伦博斯大学 Stellenbosch University 1 0 NULL 0 NULL NULL NULL 0 +104748 0 0 斯洛伐克工业大学 Slovak University of Technology in Bratislava 1 0 NULL 0 NULL NULL NULL 0 +105086 0 0 斯特拉斯克莱德大学 University of Strathclyde, Glasgow 1 0 NULL 0 NULL NULL NULL 0 +103176 0 0 斯特拉斯堡大学 Université de Strasbourg 1 0 NULL 0 NULL NULL NULL 0 +105128 0 0 斯特林大学 University of Stirling 1 0 NULL 0 NULL NULL NULL 0 +105085 0 0 斯特灵大学 University of Stirling 1 0 NULL 0 NULL NULL NULL 0 +104998 0 0 斯里纳玛斯旺纪念大学 SRM University 1 0 NULL 0 NULL NULL NULL 0 +101604 0 0 新乡医学院 0 0 医科类 0 本科 河南 新乡市 0 +101732 0 0 新乡医学院三全学院 0 0 医药类 0 独立学院 河南 新乡市 0 +101619 0 0 新乡学院 0 0 综合类 0 本科 河南 新乡市 0 +101686 0 0 新乡职业技术学院 0 0 高职类 0 专科 河南 新乡市 0 +101359 0 0 新余学院 0 0 综合类 0 本科 江西 新余市 0 +105345 0 0 新加坡南洋理工大学 Nanyang Technological University Singapore (NTU) 1 1 NULL 0 NULL NULL NULL 0 +104850 0 0 新加坡国立大学 National University of Singapore 1 1 NULL 0 NULL NULL NULL 0 +104854 0 0 新加坡理工大学 Singapore Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104856 0 0 新加坡理工学院 Singapore Polytechnic 1 0 NULL 0 NULL NULL NULL 0 +104853 0 0 新加坡科技设计大学 Singapore University of Technology and Design 1 0 NULL 0 NULL NULL NULL 0 +104852 0 0 新加坡管理大学 Singapore Management University 1 0 NULL 0 NULL NULL NULL 0 +102910 0 0 新南威尔士大学 The University of New South Wales (UNSW Sydney) 1 1 NULL 0 NULL NULL NULL 0 +103842 0 0 新墨西哥大学 University of New Mexico 1 0 NULL 0 NULL NULL NULL 0 +103933 0 0 新墨西哥州立大学 New Mexico State University 1 0 NULL 0 NULL NULL NULL 0 +103975 0 0 新奥尔良大学 University of New Orleans 1 0 NULL 0 NULL NULL NULL 0 +103864 0 0 新学校大学 The New School 1 0 NULL 0 NULL NULL NULL 0 +103425 0 0 新布伦瑞克大学 New Brunswick 1 0 NULL 0 NULL NULL NULL 0 +101573 0 0 新汶矿业职工大学 新汶矿务局职工大学 0 0 理工类 0 专科(高职) 山东 莱芜市 0 +103901 0 0 新泽西理工学院 New Jersey Institute of Technology (NJIT) 1 0 NULL 0 NULL NULL NULL 0 +104219 0 0 新潟医疗福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104534 0 0 新潟县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104222 0 0 新潟国际情报大学 1 0 NULL 0 NULL NULL NULL 0 +104641 0 0 新潟大学 Niigata University 1 0 NULL 0 NULL NULL NULL 0 +104221 0 0 新潟工科大学 1 0 NULL 0 NULL NULL NULL 0 +104223 0 0 新潟産业大学 1 0 NULL 0 NULL NULL NULL 0 +104220 0 0 新潟经营大学 1 0 NULL 0 NULL NULL NULL 0 +104225 0 0 新潟药科大学 1 0 NULL 0 NULL NULL NULL 0 +104224 0 0 新潟青陵大学 1 0 NULL 0 NULL NULL NULL 0 +102803 0 0 新疆交通职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102806 0 0 新疆体育职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102814 0 0 新疆兵团广播电视大学 新疆生产建设兵团广播电视大学 0 0 综合类 0 专科(高职) 新疆 乌鲁木齐市 0 +102800 0 0 新疆兵团警官高等专科学校 0 0 高职类 0 专科 新疆 自治区直辖县级行政区划 0 +102776 0 0 新疆农业大学 0 0 农林类 0 本科 新疆 乌鲁木齐市 0 +102821 0 0 新疆农业大学科学技术学院 0 0 农林类 0 独立学院 新疆 乌鲁木齐市 0 +102788 0 0 新疆农业职业技术学院 0 0 高职类 0 示范(高职) 新疆 昌吉回族自治州 0 +102778 0 0 新疆医科大学 0 0 医科类 0 本科 新疆 乌鲁木齐市 0 +102823 0 0 新疆医科大学厚博学院 0 0 医药类 0 独立学院 新疆 乌鲁木齐市 0 +102774 1 0 新疆大学 0 0 综合类 1 本科 新疆 乌鲁木齐市 0 +102820 0 0 新疆大学科学技术学院 0 0 综合类 0 独立学院 新疆 乌鲁木齐市 0 +105564 0 0 新疆大学软件学院 0 0 理工类 0 普通本科 新疆 乌鲁木齐市 0 +102802 0 0 新疆天山职业技术学院 0 0 高职类 0 民办(专科) 新疆 乌鲁木齐市 0 +102813 0 0 新疆工业职业技术学院 新疆维吾尔自治区钢铁公司职工大学 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102784 0 0 新疆工程学院 0 0 理工类 0 本科 新疆 乌鲁木齐市 0 +102779 0 0 新疆师范大学 0 0 师范类 0 本科 新疆 乌鲁木齐市 0 +102808 0 0 新疆师范高等专科学校 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +1542 0 0 新疆广播电视大学 XINJIANG RADIO&TELEVISION UNIVERSITY 新疆电大::新疆维吾尔自治区广播电视大学 0 0 综合类 0 专科(高职) 新疆 乌鲁木齐市 0 +102807 0 0 新疆应用职业技术学院 0 0 高职类 0 专科 新疆 伊犁哈萨克自治州 0 +102799 0 0 新疆建设职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102792 0 0 新疆机电职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102801 0 0 新疆现代职业技术学院 0 0 高职类 0 民办(专科) 新疆 乌鲁木齐市 0 +102810 0 0 新疆生产建设兵团兴新职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102817 0 0 新疆生产建设兵团教育学院 0 0 师范类 0 专科(高职) 新疆 石河子市 0 +102804 0 0 新疆石河子职业技术学院 0 0 高职类 0 示范(高职) 新疆 自治区直辖县级行政区划 0 +102812 0 0 新疆科技职业技术学院 0 0 高职类 0 民办(专科) 新疆 乌鲁木齐市 0 +102790 0 0 新疆维吾尔医学专科学校 0 0 高职类 0 专科 新疆 和田地区 0 +102805 0 0 新疆职业大学 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +102794 0 0 新疆能源职业技术学院 0 0 高职类 0 民办(专科) 新疆 乌鲁木齐市 0 +102783 0 0 新疆艺术学院 0 0 艺术类 0 本科 新疆 乌鲁木齐市 0 +102786 0 0 新疆警察学院 0 0 政法类 0 本科 新疆 乌鲁木齐市 0 +102782 0 0 新疆财经大学 0 0 财经类 0 本科 新疆 乌鲁木齐市 0 +102822 0 0 新疆财经大学商务学院 0 0 财经类 0 独立学院 新疆 乌鲁木齐市 0 +102793 0 0 新疆轻工职业技术学院 0 0 高职类 0 骨干(高职) 新疆 乌鲁木齐市 0 +102809 0 0 新疆铁道职业技术学院 0 0 高职类 0 专科 新疆 乌鲁木齐市 0 +105203 0 0 新白金汉大学 Buckinghamshire New University 1 0 NULL 0 NULL NULL NULL 0 +103891 0 0 新罕布什尔大学 University of New Hampshire 1 0 NULL 0 NULL NULL NULL 0 +103694 0 0 新罕布什尔州立大学 University of New Hampshire 1 0 NULL 0 NULL NULL NULL 0 +103283 0 0 新罗大学 1 0 NULL 0 NULL NULL NULL 0 +103993 0 0 新莱昂自治大学 Universidad Autónoma de Nuevo León 1 0 NULL 0 NULL NULL NULL 0 +104021 0 0 新葡京大学 Universidade Nova de Lisboa 1 0 NULL 0 NULL NULL NULL 0 +103134 0 0 新西伯利亚国立大学 Novosibirsk State University 1 0 NULL 0 NULL NULL NULL 0 +103152 0 0 新西伯利亚国立科技大学 Novosibirsk State Technical University 1 0 NULL 0 NULL NULL NULL 0 +104865 0 0 新西兰坎特伯雷大学 University of Canterbury 1 0 NULL 0 NULL NULL NULL 0 +104869 0 0 新西兰林肯大学 Lincoln University 1 0 NULL 0 NULL NULL NULL 0 +104855 0 0 新跃社科大学 Singapore University of Social Sciences 1 0 NULL 0 NULL NULL NULL 0 +100936 0 0 无锡南洋职业技术学院 0 0 高职类 0 民办(专科) 江苏 无锡市 0 +100923 0 0 无锡商业职业技术学院 0 0 高职类 0 专科 江苏 无锡市 0 +100952 0 0 无锡城市职业技术学院 0 0 高职类 0 专科 江苏 无锡市 0 +100887 0 0 无锡太湖学院 0 0 综合类 0 民办(本科) 江苏 无锡市 0 +100953 0 0 无锡工艺职业技术学院 0 0 高职类 0 专科 江苏 无锡市 0 +100915 0 0 无锡科技职业学院 0 0 高职类 0 专科 江苏 无锡市 0 +100894 0 0 无锡职业技术学院 0 0 高职类 0 示范(高职) 江苏 无锡市 0 +104725 0 0 日内瓦大学 University of Geneva 1 1 NULL 0 NULL NULL NULL 0 +104440 0 0 日本东亚大学 1 0 NULL 0 NULL NULL NULL 0 +104619 0 0 日本东北大学 Tohoku University 1 0 NULL 0 NULL NULL NULL 0 +104657 0 0 日本东海大学 Tokai University 1 0 NULL 0 NULL NULL NULL 0 +104664 0 0 日本中央大学 Chuo University 1 0 NULL 0 NULL NULL NULL 0 +104263 0 0 日本中部大学 1 0 NULL 0 NULL NULL NULL 0 +104239 0 0 日本大学 1 0 NULL 0 NULL NULL NULL 0 +104122 0 0 日本工业大学 1 0 NULL 0 NULL NULL NULL 0 +104493 0 0 日本文理大学 1 0 NULL 0 NULL NULL NULL 0 +104153 0 0 日本桥学馆大学 1 0 NULL 0 NULL NULL NULL 0 +104281 0 0 日本福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104471 0 0 日本红十字九州国际看护大学 1 0 NULL 0 NULL NULL NULL 0 +104427 0 0 日本红十字广岛看护大学 1 0 NULL 0 NULL NULL NULL 0 +104280 0 0 日本红十字豊田看护大学 1 0 NULL 0 NULL NULL NULL 0 +104123 0 0 日本药科大学 1 0 NULL 0 NULL NULL NULL 0 +104038 0 0 日本赤十字北海道看护大学 1 0 NULL 0 NULL NULL NULL 0 +101499 0 0 日照职业技术学院 0 0 高职类 0 示范(高职) 山东 日照市 0 +105647 0 0 日照航海工程职业学院 0 0 高职类 0 民办(专科) 山东 日照市 0 +103909 0 0 旧金山大学 University of San Francisco 1 0 NULL 0 NULL NULL NULL 0 +103540 0 0 旧金山州立大学 San Francisco State University 1 0 NULL 0 NULL NULL NULL 0 +104624 0 0 早稻田大学 Waseda University 1 0 NULL 0 NULL NULL NULL 0 +104584 0 0 旭川医科大学 1 0 NULL 0 NULL NULL NULL 0 +104029 0 0 旭川大学 1 0 NULL 0 NULL NULL NULL 0 +104786 0 0 昂达库兹美伊斯大学 Ondokuz Mayis University 1 0 NULL 0 NULL NULL NULL 0 +102911 0 0 昆士兰大学 The University of Queensland 1 1 NULL 0 NULL NULL NULL 0 +102919 0 0 昆士兰科技大学 Queensland University of Technology (QUT) 1 0 NULL 0 NULL NULL NULL 0 +103594 0 0 昆尼皮雅克学院 Quinnipiac College 1 0 NULL 0 NULL NULL NULL 0 +100892 0 0 昆山杜克大学 0 0 综合类 0 中外合作 江苏 苏州市 0 +100960 0 0 昆山登云科技职业学院 0 0 高职类 0 民办(专科) 江苏 苏州市 0 +103628 0 0 昆希大学 Quincy University 1 0 NULL 0 NULL NULL NULL 0 +102532 0 0 昆明冶金高等专科学校 0 0 高职类 0 示范(高职) 云南 昆明市 0 +102513 0 0 昆明医科大学 0 0 医科类 0 本科 云南 昆明市 0 +102574 0 0 昆明医科大学海源学院 0 0 医药类 0 独立学院 云南 昆明市 0 +102563 0 0 昆明卫生职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +102528 0 0 昆明学院 0 0 综合类 0 本科 云南 昆明市 0 +102535 0 0 昆明工业职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +102510 0 0 昆明理工大学 0 0 理工类 0 本科 云南 昆明市 0 +102577 0 0 昆明理工大学津桥学院 0 0 理工类 0 独立学院 云南 昆明市 0 +102542 0 0 昆明艺术职业学院 0 0 高职类 0 民办(专科) 云南 昆明市 0 +105611 0 0 昆明铁道职业技术学院 0 0 高职类 0 专科 云南 昆明市 0 +103344 0 0 昌原大学校 1 0 NULL 0 NULL NULL NULL 0 +102785 0 0 昌吉学院 0 0 师范类 0 本科 新疆 昌吉回族自治州 0 +102795 0 0 昌吉职业技术学院 0 0 高职类 0 专科 新疆 昌吉回族自治州 0 +101421 0 0 昌河职工工学院 0 0 NULL 0 NULL NULL NULL 0 +103688 0 0 明尼苏达大学 University of Minnesota 1 0 NULL 0 NULL NULL NULL 0 +103799 0 0 明尼苏达大学双城分校 University of Minnesota 1 0 NULL 0 NULL NULL NULL 0 +103097 0 0 明斯特大学 Westfälische Wilhelms-Universität Münster 1 0 NULL 0 NULL NULL NULL 0 +103070 0 0 明斯特应用技术大学 Fachhochschule Münster 1 0 NULL 0 NULL NULL NULL 0 +104185 0 0 明星大学 1 0 NULL 0 NULL NULL NULL 0 +104329 0 0 明治国际医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104652 0 0 明治大学 Meiji University 1 0 NULL 0 NULL NULL NULL 0 +104157 0 0 明治学院大学 1 0 NULL 0 NULL NULL NULL 0 +104128 0 0 明海大学 1 0 NULL 0 NULL NULL NULL 0 +103264 0 0 明知大学 1 0 NULL 0 NULL NULL NULL 0 +104259 0 0 星城大学 1 0 NULL 0 NULL NULL NULL 0 +104033 0 0 星差大学 1 0 NULL 0 NULL NULL NULL 0 +102027 0 0 星海音乐学院 0 0 艺术类 0 本科 广东 广州市 0 +103677 0 0 春田学院 Springfield College 1 0 NULL 0 NULL NULL NULL 0 +104684 0 0 昭和大学 Showa University 1 0 NULL 0 NULL NULL NULL 0 +104199 0 0 昭和音乐大学 1 0 NULL 0 NULL NULL NULL 0 +105622 0 0 昭通卫生职业学院 0 0 高职类 0 专科 云南 昭通市 0 +102517 0 0 昭通学院 0 0 师范类 0 本科 云南 昭通市 0 +100316 0 0 晋中学院 0 0 师范类 0 本科 山西 晋中市 0 +100370 0 0 晋中师范高等专科学校 0 0 高职类 0 专科 山西 晋中市 0 +100361 0 0 晋中职业技术学院 0 0 高职类 0 专科 山西 晋中市 0 +100333 0 0 晋城职业技术学院 0 0 高职类 0 专科 山西 晋城市 0 +105060 0 0 普兹茅斯大学 The University of Portsmouth 1 0 NULL 0 NULL NULL NULL 0 +105141 0 0 普利茅斯大学 Plymouth University 1 0 NULL 0 NULL NULL NULL 0 +105278 0 0 普埃布拉博尼梅瑞塔自治大学 Benemérita Autonomous University of Puebla 1 0 NULL 0 NULL NULL NULL 0 +103996 0 0 普埃布拉拉美大学 Universidad de las Américas Puebla (UDLAP) 1 0 NULL 0 NULL NULL NULL 0 +103992 0 0 普埃布拉自治大学 Benemérita Universidad Autónoma de Puebla 1 0 NULL 0 NULL NULL NULL 0 +104370 0 0 普尔学院大学 1 0 NULL 0 NULL NULL NULL 0 +103629 0 0 普度大学 Purdue University 1 0 NULL 0 NULL NULL NULL 0 +103768 0 0 普林斯顿大学 Princeton University 1 1 NULL 0 NULL NULL NULL 0 +102519 0 0 普洱学院 0 0 综合类 0 本科 云南 普洱市 0 +103792 0 0 普渡大学西拉法叶分校 Purdue University 1 0 NULL 0 NULL NULL NULL 0 +103198 0 0 普瓦捷大学 Université de Poitiers 1 0 NULL 0 NULL NULL NULL 0 +101354 0 0 景德镇学院 0 0 综合类 0 本科 江西 景德镇市 0 +101343 0 0 景德镇陶瓷大学 景德镇陶瓷学院 0 0 理工类 0 本科 江西 景德镇市 0 +101438 0 0 景德镇陶瓷大学科技艺术学院 景德镇陶瓷学院科技艺术学院 0 0 理工类 0 独立学院 江西 景德镇市 0 +101413 0 0 景德镇陶瓷职业技术学院 0 0 高职类 0 民办(专科) 江西 景德镇市 0 +105218 0 0 智利圣地亚哥大学 Universidad de Santiago de Chile (USACH) 1 0 NULL 0 NULL NULL NULL 0 +105217 0 0 智利大学 Universidad de Chile 1 0 NULL 0 NULL NULL NULL 0 +105216 0 0 智利天主大学 Pontificia Universidad Católica de Chile (UC) 1 0 NULL 0 NULL NULL NULL 0 +105325 0 0 智利天主教大学 Pontificia Universidad Católica de Chile 1 1 NULL 0 NULL NULL NULL 0 +105223 0 0 智利奥斯特拉尔大学 Universidad Austral de Chile 1 0 NULL 0 NULL NULL NULL 0 +105326 0 0 智利康塞普西翁大学 University of Concepción 1 0 NULL 0 NULL NULL NULL 0 +102010 1 0 暨南大学 0 0 综合类 1 本科 广东 广州市 0 +103308 0 0 暻园大学 1 0 NULL 0 NULL NULL NULL 0 +101458 0 0 曲阜师范大学 0 0 师范类 0 本科 山东 济宁市 0 +101500 0 0 曲阜远东职业技术学院 0 0 高职类 0 民办(专科) 山东 济宁市 0 +102551 0 0 曲靖医学高等专科学校 0 0 高职类 0 专科 云南 曲靖市 0 +102518 0 0 曲靖师范学院 0 0 师范类 0 本科 云南 曲靖市 0 +105555 0 0 曹妃甸职业技术学院 0 0 高职类 0 民办(专科) 河北 唐山市 0 +103415 0 0 曼尼托巴大学 University of Manitoba 1 0 NULL 0 NULL NULL NULL 0 +105053 0 0 曼彻斯特商学院 Manchester Business School 1 0 NULL 0 NULL NULL NULL 0 +105092 0 0 曼彻斯特大学 The University of Manchester 1 1 NULL 0 NULL NULL NULL 0 +105148 0 0 曼彻斯特都会大学 Manchester Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +105052 0 0 曼彻斯特都市大学 Manchester Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +103101 0 0 曼海姆大学 Universität Mannheim 1 0 NULL 0 NULL NULL NULL 0 +102860 0 0 曼苏拉大学 Mansoura University 1 0 NULL 0 NULL NULL NULL 0 +100375 0 0 朔州师范高等专科学校 0 0 高职类 0 专科 山西 朔州市 0 +100367 0 0 朔州职业技术学院 0 0 高职类 0 专科 山西 朔州市 0 +104288 0 0 朝日大学 1 0 NULL 0 NULL NULL NULL 0 +100502 0 0 朝阳师范高等专科学校 0 0 高职类 0 专科 辽宁 朝阳市 0 +100562 0 0 朝阳职工工学院 0 0 其他 0 专科(高职) 辽宁 朝阳市 0 +103298 0 0 朝鲜大学 1 0 NULL 0 NULL NULL NULL 0 +103330 0 0 木浦国立大学 1 0 NULL 0 NULL NULL NULL 0 +103329 0 0 木浦海洋大学 1 0 NULL 0 NULL NULL NULL 0 +104904 0 0 本古里安大学 Ben Gurion University of The Negev 1 0 NULL 0 NULL NULL NULL 0 +104984 0 0 本地治里大学 Pondicherry University 1 0 NULL 0 NULL NULL NULL 0 +104513 0 0 札幌医科大学 1 0 NULL 0 NULL NULL NULL 0 +104032 0 0 札幌国际大学 1 0 NULL 0 NULL NULL NULL 0 +104030 0 0 札幌大学 1 0 NULL 0 NULL NULL NULL 0 +104031 0 0 札幌学院大学 1 0 NULL 0 NULL NULL NULL 0 +104512 0 0 札幌市立大学 1 0 NULL 0 NULL NULL NULL 0 +104752 0 0 朱拉隆功大学 Chulalongkorn University 1 0 NULL 0 NULL NULL NULL 0 +105136 0 0 朴茨茅斯大学 University of Portsmouth 1 0 NULL 0 NULL NULL NULL 0 +104258 0 0 杉山女学园大学 1 0 NULL 0 NULL NULL NULL 0 +104168 0 0 杏林大学 1 0 NULL 0 NULL NULL NULL 0 +103117 0 0 杜伊斯堡-埃森大学 Universität Duisburg-Essen 1 0 NULL 0 NULL NULL NULL 0 +105298 0 0 杜伊斯堡埃森大学 university of Duisburg-Essen 1 0 NULL 0 NULL NULL NULL 0 +105096 0 0 杜伦大学 Durham University 1 0 NULL 0 NULL NULL NULL 0 +103774 0 0 杜克大学 Duke University 1 1 NULL 0 NULL NULL NULL 0 +103841 0 0 杜兰大学 Tulane University 1 0 NULL 0 NULL NULL NULL 0 +103119 0 0 杜塞尔多夫大学 University Duesseldorf 1 0 NULL 0 NULL NULL NULL 0 +104785 0 0 杜库兹伊鲁尔大学 Dokuz Eylül University 1 0 NULL 0 NULL NULL NULL 0 +102628 0 0 杨凌职业技术学院 0 0 高职类 0 示范(高职) 陕西 咸阳市 0 +103886 0 0 杨百翰大学 Brigham Young University 1 0 NULL 0 NULL NULL NULL 0 +103763 0 0 杨百翰大学夏威夷分校 Brigham Young University Hawaii 1 0 NULL 0 NULL NULL NULL 0 +101081 0 0 杭州万向职业技术学院 0 0 高职类 0 民办(专科) 浙江 杭州市 0 +101075 0 0 杭州医学院 浙江医学高等专科学校 0 0 医科类 0 本科 浙江 杭州市 0 +101093 0 0 杭州市工人业余大学 0 0 综合类 0 专科(高职) 浙江 杭州市 0 +101019 0 0 杭州师范大学 0 0 师范类 0 本科 浙江 杭州市 0 +101112 0 0 杭州师范大学钱江学院 0 0 师范类 0 独立学院 浙江 杭州市 0 +101011 0 0 杭州电子科技大学 0 0 理工类 0 本科 浙江 杭州市 0 +101106 0 0 杭州电子科技大学信息工程学院 0 0 理工类 0 独立学院 浙江 杭州市 0 +101077 0 0 杭州科技职业技术学院 0 0 高职类 0 专科 浙江 杭州市 0 +101067 0 0 杭州职业技术学院 0 0 高职类 0 骨干(高职) 浙江 杭州市 0 +103612 0 0 杰克森维尔大学 Jacksonville University 1 0 NULL 0 NULL NULL NULL 0 +103504 0 0 杰克森维尔州立大学 1 0 NULL 0 NULL NULL NULL 0 +103243 0 0 杰斐逊大学 Pontifical Javeriana University 1 0 NULL 0 NULL NULL NULL 0 +104670 0 0 東京慈恵会医科大学 Jikei University School of Medicine 1 0 NULL 0 NULL NULL NULL 0 +100630 0 0 松原职业技术学院 0 0 高职类 0 专科 吉林 松原市 0 +104450 0 0 松山东云女子大学 1 0 NULL 0 NULL NULL NULL 0 +104449 0 0 松山大学 1 0 NULL 0 NULL NULL NULL 0 +104229 0 0 松本大学 1 0 NULL 0 NULL NULL NULL 0 +104230 0 0 松本齿科大学 1 0 NULL 0 NULL NULL NULL 0 +104196 0 0 松荫大学 1 0 NULL 0 NULL NULL NULL 0 +102878 0 0 林茨大学 Johannes Kepler University Linz 1 0 NULL 0 NULL NULL NULL 0 +104716 0 0 林雪平大学 Linköping University 1 0 NULL 0 NULL NULL NULL 0 +101472 0 0 枣庄学院 0 0 综合类 0 本科 山东 枣庄市 0 +101539 0 0 枣庄科技职业学院 0 0 高职类 0 专科 山东 枣庄市 0 +101558 0 0 枣庄职业学院 0 0 高职类 0 专科 山东 枣庄市 0 +102942 0 0 柏拉瑞特大学 1 0 NULL 0 NULL NULL NULL 0 +103086 0 0 柏林工业大学 Technische Universität Berlin (TU Berlin) 1 1 NULL 0 NULL NULL NULL 0 +103121 0 0 柏林查理特医科大学 Charité - Universitätsmedizin Berlin 1 0 NULL 0 NULL NULL NULL 0 +103083 0 0 柏林洪堡大学 Humboldt-Universität zu Berlin 1 1 NULL 0 NULL NULL NULL 0 +103084 0 0 柏林自由大学 Freie Universitaet Berlin 1 1 NULL 0 NULL NULL NULL 0 +103034 0 0 柏林艺术大学 Universität der Künste Berlin 1 0 NULL 0 NULL NULL NULL 0 +104713 0 0 查尔姆斯工业大学 Chalmers University of Technology 1 0 NULL 0 NULL NULL NULL 0 +105362 0 0 查尔姆斯理工大学 Chalmers University of Technology 1 1 NULL 0 NULL NULL NULL 0 +102887 0 0 查尔斯史都华大学 Charles Sturt University 1 0 NULL 0 NULL NULL NULL 0 +102935 0 0 查尔斯达尔文大学 Charles Darwin University 1 0 NULL 0 NULL NULL NULL 0 +105322 0 0 查理大学 Charles University in Prague 1 0 NULL 0 NULL NULL NULL 0 +102939 0 0 查理斯特大学 Charles Sturt University 1 0 NULL 0 NULL NULL NULL 0 +103698 0 0 柯盖德大学 Colgate University 1 0 NULL 0 NULL NULL NULL 0 +102214 0 0 柳州城市职业学院 0 0 高职类 0 专科 广西 柳州市 0 +102196 0 0 柳州职业技术学院 0 0 高职类 0 示范(高职) 广西 柳州市 0 +102202 0 0 柳州铁道职业技术学院 0 0 高职类 0 专科 广西 柳州市 0 +103617 0 0 树城州立大学 Boise State University 1 0 NULL 0 NULL NULL NULL 0 +101982 0 0 株洲市职工大学工业学校 株洲市职工大学 0 0 理工类 0 专科(高职) 湖南 株洲市 0 +101910 0 0 株洲师范高等专科学校 0 0 高职类 0 专科 湖南 株洲市 0 +103001 0 0 根特大学 Ghent University 1 1 NULL 0 NULL NULL NULL 0 +103021 0 0 格但斯克大学 University of Gdańsk 1 0 NULL 0 NULL NULL NULL 0 +103019 0 0 格但斯克工业大学 Gdańsk University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103171 0 0 格勒诺布尔大学 Université Grenoble-Alpes 1 0 NULL 0 NULL NULL NULL 0 +104777 0 0 格布泽技术大学 Gebze Technical University 1 0 NULL 0 NULL NULL NULL 0 +105072 0 0 格拉摩根大学 University of Glamorgan 1 0 NULL 0 NULL NULL NULL 0 +105163 0 0 格拉斯哥卡利多尼亚大学 Glasgow Caledonian University 1 0 NULL 0 NULL NULL NULL 0 +105080 0 0 格拉斯哥卡利多尼安大学 Glasgow Caledonian University 1 0 NULL 0 NULL NULL NULL 0 +105079 0 0 格拉斯哥大学 Glasgow University,University of Glasgow  1 1 NULL 0 NULL NULL NULL 0 +104817 0 0 格拉纳达大学 University of Granada 1 0 NULL 0 NULL NULL NULL 0 +102884 0 0 格拉茨医科大学 Medical University of Graz 1 0 NULL 0 NULL NULL NULL 0 +102879 0 0 格拉茨大学 Karl-Franzens-Universitaet Graz 1 0 NULL 0 NULL NULL NULL 0 +102880 0 0 格拉茨工业大学 Graz University of Technology 1 0 NULL 0 NULL NULL NULL 0 +105209 0 0 格林多大学 Glyndwr University 1 0 NULL 0 NULL NULL NULL 0 +105153 0 0 格林威治大学 University of Greenwich 1 0 NULL 0 NULL NULL NULL 0 +103387 0 0 格罗宁根大学 University of Groningen 1 1 NULL 0 NULL NULL NULL 0 +105204 0 0 格罗斯泰斯特主教大学 Bishop Grosseteste University 1 0 NULL 0 NULL NULL NULL 0 +105189 0 0 格罗斯特大学 University of Gloucestershire 1 0 NULL 0 NULL NULL NULL 0 +105025 0 0 格罗斯特郡大学 University of Gloucestershire 1 0 NULL 0 NULL NULL NULL 0 +103123 0 0 格赖夫斯瓦尔德大学 University of Greifswald 1 0 NULL 0 NULL NULL NULL 0 +102925 0 0 格里菲斯大学 Griffith University 1 0 NULL 0 NULL NULL NULL 0 +102171 0 0 桂林医学院 0 0 医科类 0 本科 广西 桂林市 0 +102207 0 0 桂林山水职业学院 0 0 高职类 0 民办(专科) 广西 桂林市 0 +102225 0 0 桂林市职工大学 0 0 其他 0 专科(高职) 广西 桂林市 0 +102193 0 0 桂林师范高等专科学校 0 0 高职类 0 专科 广西 桂林市 0 +102195 0 0 桂林旅游学院 桂林旅游高等专科学校 0 0 综合类 0 本科 广西 桂林市 0 +102167 0 0 桂林理工大学 0 0 理工类 0 本科 广西 桂林市 0 +102233 0 0 桂林理工大学博文管理学院 0 0 理工类 0 独立学院 广西 桂林市 0 +105663 0 0 桂林生命与健康职业技术学院 0 0 高职类 0 民办(专科) 广西 桂林市 0 +102166 0 0 桂林电子科技大学 0 0 理工类 0 本科 广西 桂林市 0 +102232 0 0 桂林电子科技大学信息科技学院 0 0 综合类 0 独立学院 广西 桂林市 0 +102184 0 0 桂林航天工业学院 0 0 理工类 0 本科 广西 桂林市 0 +104372 0 0 桃山学院大学 1 0 NULL 0 NULL NULL NULL 0 +101217 0 0 桐城师范高等专科学校 0 0 高职类 0 专科 安徽 安庆市 0 +104297 0 0 桐朋学园大学院大学 1 0 NULL 0 NULL NULL NULL 0 +104104 0 0 桐生大学 1 0 NULL 0 NULL NULL NULL 0 +104205 0 0 桐荫横滨大学 1 0 NULL 0 NULL NULL NULL 0 +103242 0 0 桑坦德工业大学 Universidad Industrial de Santander - UIS 1 0 NULL 0 NULL NULL NULL 0 +105200 0 0 桑德兰大学 University of Sunderland 1 0 NULL 0 NULL NULL NULL 0 +104442 0 0 梅光学院大学 1 0 NULL 0 NULL NULL NULL 0 +102870 0 0 梅努斯大学 Maynooth University 1 0 NULL 0 NULL NULL NULL 0 +103945 0 0 梅奥医学院 Mayo Medical School 1 0 NULL 0 NULL NULL NULL 0 +104368 0 0 梅花女子大学 1 0 NULL 0 NULL NULL NULL 0 +104868 0 0 梅西大学 Massey University 1 0 NULL 0 NULL NULL NULL 0 +102905 0 0 梅铎大学 Murdoch University 1 0 NULL 0 NULL NULL NULL 0 +102180 0 0 梧州学院 0 0 综合类 0 本科 广西 梧州市 0 +102218 0 0 梧州职业学院 0 0 高职类 0 专科 广西 梧州市 0 +100644 0 0 梨树农村成人高等专科学校 0 0 综合类 0 专科(高职) 吉林 四平市 0 +103353 0 0 梨花女子大学 Ewha Womans University 1 0 NULL 0 NULL NULL NULL 0 +105008 0 0 梭罗大学 Universitas Muhammadiyah Surakarta 1 0 NULL 0 NULL NULL NULL 0 +104373 0 0 森之宫医疗大学 1 0 NULL 0 NULL NULL NULL 0 +102552 0 0 楚雄医药高等专科学校 0 0 高职类 0 专科 云南 楚雄彝族自治州 0 +102526 0 0 楚雄师范学院 0 0 师范类 0 本科 云南 楚雄彝族自治州 0 +102610 0 0 榆林学院 0 0 师范类 0 本科 陕西 榆林市 0 +102662 0 0 榆林职业技术学院 0 0 高职类 0 专科 陕西 榆林市 0 +104209 0 0 横滨商科大学 1 0 NULL 0 NULL NULL NULL 0 +104648 0 0 横滨国立大学 Yokohama National University 1 0 NULL 0 NULL NULL NULL 0 +104632 0 0 横滨市立大学 Yokohama City University 1 0 NULL 0 NULL NULL NULL 0 +104160 0 0 樱美林大学 1 0 NULL 0 NULL NULL NULL 0 +104256 0 0 樱花学园大学 1 0 NULL 0 NULL NULL NULL 0 +103369 0 0 檀国大学 Dankook University 1 0 NULL 0 NULL NULL NULL 0 +103495 0 0 欧本大学 1 0 NULL 0 NULL NULL NULL 0 +103496 0 0 欧本大学蒙哥马利分校 Auburn University Montgomery 1 0 NULL 0 NULL NULL NULL 0 +103969 0 0 欧柏林学院 Oberlin College 1 0 NULL 0 NULL NULL NULL 0 +103934 0 0 欧道明大学 Old Dominion University 1 0 NULL 0 NULL NULL NULL 0 +102991 0 0 欧鲁普雷图联邦大学 Federal University of Ouro Preto 1 0 NULL 0 NULL NULL NULL 0 +100934 0 0 正德职业技术学院 0 0 高职类 0 民办(专科) 江苏 南京市 0 +101257 0 0 武夷学院 0 0 师范类 0 本科 福建 南平市 0 +101318 0 0 武夷山职业学院 0 0 高职类 0 民办(专科) 福建 南平市 0 +102719 0 0 武威职业学院 0 0 高职类 0 骨干(高职) 甘肃 武威市 0 +104403 0 0 武库川女子大学 1 0 NULL 0 NULL NULL NULL 0 +101773 0 0 武昌工学院 0 0 理工类 0 民办(本科) 湖北 武汉市 0 +101771 0 0 武昌理工学院 0 0 理工类 0 民办(本科) 湖北 武汉市 0 +101811 0 0 武昌职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101848 0 0 武昌首义学院 华中科技大学武昌分校 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101769 0 0 武汉东湖学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101814 0 0 武汉交通职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101869 0 0 武汉传媒学院 华中师范大学武汉传媒学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101754 0 0 武汉体育学院 0 0 体育类 0 本科 湖北 武汉市 0 +101861 0 0 武汉体育学院体育科技学院 0 0 体育类 0 独立学院 湖北 武汉市 0 +101810 0 0 武汉信息传播职业技术学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +105590 0 0 武汉光谷职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101845 0 0 武汉冶金管理干部学院 0 0 综合类 0 专科(高职) 湖北 武汉市 0 +101850 0 0 武汉华夏理工学院 武汉理工大学华夏学院 0 0 理工类 0 民办(本科) 湖北 武汉市 0 +101768 0 0 武汉商学院 0 0 财经类 0 本科 湖北 武汉市 0 +101812 0 0 武汉商贸职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101785 0 0 武汉城市职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101809 0 0 武汉外语外事职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101735 2 0 武汉大学 0 0 综合类 1 本科 湖北 武汉市 1 +101849 0 0 武汉学院 中南财经政法大学武汉学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101818 0 0 武汉工业职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101774 0 0 武汉工商学院 0 0 财经类 0 民办(本科) 湖北 武汉市 0 +101739 0 0 武汉工程大学 0 0 理工类 0 本科 湖北 武汉市 0 +101856 0 0 武汉工程大学邮电与信息工程学院 0 0 理工类 0 独立学院 湖北 武汉市 0 +101776 0 0 武汉工程科技学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101792 0 0 武汉工程职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101790 0 0 武汉工贸职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101834 0 0 武汉市广播电视大学 0 0 综合类 0 普通本科 湖北 武汉市 0 +101871 0 0 武汉晴川学院 武汉大学珞珈学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +22591 0 0 武汉机械工业学校 0 0 NULL 0 NULL NULL NULL 0 +101819 0 0 武汉民政职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +105628 0 0 武汉海事职业学院 0 0 其他 0 其他 湖北 武汉市 0 +101743 1 0 武汉理工大学 0 0 理工类 1 本科 湖北 武汉市 0 +101772 0 0 武汉生物工程学院 0 0 理工类 0 民办(本科) 湖北 武汉市 0 +101802 0 0 武汉电力职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101737 0 0 武汉科技大学 0 0 理工类 0 本科 湖北 武汉市 0 +101853 0 0 武汉科技大学城市学院 0 0 理工类 0 独立学院 湖北 武汉市 0 +101808 0 0 武汉科技职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101741 0 0 武汉纺织大学 0 0 理工类 0 本科 湖北 武汉市 0 +101857 0 0 武汉纺织大学外经贸学院 0 0 综合类 0 独立学院 湖北 武汉市 0 +101779 0 0 武汉职业技术学院 0 0 高职类 0 示范(高职) 湖北 武汉市 0 +101797 0 0 武汉航海职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101787 0 0 武汉船舶职业技术学院 0 0 高职类 0 示范(高职) 湖北 武汉市 0 +101805 0 0 武汉警官职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101870 0 0 武汉设计工程学院 华中农业大学楚天学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +101799 0 0 武汉软件工程职业学院 0 0 高职类 0 骨干(高职) 湖北 武汉市 0 +101742 0 0 武汉轻工大学 0 0 理工类 0 本科 湖北 武汉市 0 +105560 0 0 武汉铁路桥梁职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101798 0 0 武汉铁路职业技术学院 0 0 高职类 0 示范(高职) 湖北 武汉市 0 +101766 0 0 武汉音乐学院 0 0 艺术类 0 本科 湖北 武汉市 0 +104183 0 0 武藏大学 1 0 NULL 0 NULL NULL NULL 0 +104184 0 0 武藏野大学 1 0 NULL 0 NULL NULL NULL 0 +104127 0 0 武藏野学院大学 1 0 NULL 0 NULL NULL NULL 0 +104215 0 0 武藏野美术大学 1 0 NULL 0 NULL NULL NULL 0 +105472 0 0 武警乌鲁木齐指挥学院 0 0 军事类 0 普通本科 新疆 乌鲁木齐市 0 +105401 0 0 武警后勤学院 0 0 军事类 0 普通本科 天津 天津市 0 +105390 0 0 武警工程大学 0 0 军事类 0 普通本科 陕西 西安市 0 +105433 0 0 武警广州指挥学院 0 0 军事类 0 普通本科 广东 广州市 0 +105435 0 0 武警指挥学院 0 0 军事类 0 普通本科 天津 天津市 0 +105470 0 0 武警福州指挥学院 0 0 军事类 0 普通本科 福建 福州市 0 +105392 0 0 武警警官学院 0 0 军事类 0 普通本科 四川 成都市 0 +103002 0 0 比利时布鲁塞尔自由大学 1 0 NULL 0 NULL NULL NULL 0 +103000 0 0 比利时鲁汶大学 KU Leuven 1 1 NULL 0 NULL NULL NULL 0 +103118 0 0 比勒费尔德大学 Universität Bielefeld 1 0 NULL 0 NULL NULL NULL 0 +104005 0 0 比勒陀利亚大学 University of Pretoria 1 0 NULL 0 NULL NULL NULL 0 +104970 0 0 比尔拉科学技术学院 Birla Institute of Technology and Science, Pilani 1 0 NULL 0 NULL NULL NULL 0 +102957 0 0 比尔泽特大学 Birzeit university 1 0 NULL 0 NULL NULL NULL 0 +104896 0 0 比尔詹德大学 University of Birjand 1 0 NULL 0 NULL NULL NULL 0 +104428 0 0 比治山大学 1 0 NULL 0 NULL NULL NULL 0 +104911 0 0 比萨圣安娜大学 Scuola Superiore Sant'Anna Pisa di Studi Universitari e di Perfezionamento 1 0 NULL 0 NULL NULL NULL 0 +104917 0 0 比萨大学 University of Pisa 1 0 NULL 0 NULL NULL NULL 0 +104912 0 0 比萨高等师范学院 Scuola Normale Superiore di Pisa 1 0 NULL 0 NULL NULL NULL 0 +104765 0 0 毕尔坎特大学 Bilkent University 1 0 NULL 0 NULL NULL NULL 0 +102495 0 0 毕节医学高等专科学校 0 0 高职类 0 专科 贵州 毕节市 0 +105604 0 0 毕节工业职业技术学院 0 0 高职类 0 专科 贵州 毕节市 0 +105594 0 0 毕节幼儿师范高等专科学校 0 0 高职类 0 专科 贵州 毕节市 0 +102488 0 0 毕节职业技术学院 0 0 高职类 0 专科 贵州 毕节市 0 +101164 0 0 民办万博科技职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101184 0 0 民办合肥滨湖职业技术学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101173 0 0 民办合肥经济技术职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +101205 0 0 民办合肥财经职业学院 0 0 高职类 0 民办(专科) 安徽 合肥市 0 +102367 0 0 民办四川天一学院 0 0 高职类 0 民办(专科) 四川 成都市 0 +101211 0 0 民办安徽旅游职业学院 0 0 高职类 0 民办(专科) 安徽 阜阳市 0 +100893 0 0 民办明达职业技术学院 0 0 高职类 0 民办(专科) 江苏 盐城市 0 +103309 0 0 水原大学 1 0 NULL 0 NULL NULL NULL 0 +101671 0 0 永城职业学院 0 0 高职类 0 专科 河南 商丘市 0 +101916 0 0 永州职业技术学院 0 0 高职类 0 示范(高职) 湖南 永州市 0 +102652 0 0 汉中职业技术学院 0 0 高职类 0 专科 陕西 汉中市 0 +103538 0 0 汉保得州立大学 Humboldt State University 1 0 NULL 0 NULL NULL NULL 0 +101770 0 0 汉口学院 0 0 综合类 0 民办(本科) 湖北 武汉市 0 +103268 0 0 汉城大学 1 0 NULL 0 NULL NULL NULL 0 +103052 0 0 汉堡-哈尔堡工业大学 Technische Universität Hamburg-Harburg 1 0 NULL 0 NULL NULL NULL 0 +103091 0 0 汉堡大学 Universität Hamburg 1 0 NULL 0 NULL NULL NULL 0 +103124 0 0 汉堡工业大学 Hamburg University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103051 0 0 汉堡法学院 Bucerius Law School 1 0 NULL 0 NULL NULL NULL 0 +103053 0 0 汉堡联邦国防军大学 Helmut-Schmidt-Universität 1 0 NULL 0 NULL NULL NULL 0 +101778 0 0 汉江师范学院 郧阳师范高等专科学校 0 0 师范类 0 本科 湖北 十堰市 0 +103128 0 0 汉诺威医学院 Hannover Medical School 1 0 NULL 0 NULL NULL NULL 0 +103054 0 0 汉诺威大学 Universitat Hannover 1 0 NULL 0 NULL NULL NULL 0 +103351 0 0 汉阳大学 Hanyang University 1 0 NULL 0 NULL NULL NULL 0 +103743 0 0 汎美分校 University of Texas-Pan American 1 0 NULL 0 NULL NULL NULL 0 +102011 0 0 汕头大学 0 0 综合类 0 本科 广东 汕头市 0 +102137 0 0 汕头市业余大学 0 0 综合类 0 专科(高职) 广东 汕头市 0 +102084 0 0 汕头职业技术学院 0 0 高职类 0 专科 广东 汕头市 0 +102079 0 0 汕尾职业技术学院 0 0 高职类 0 专科 广东 汕尾市 0 +100853 1 0 江南大学 0 0 综合类 1 本科 江苏 无锡市 0 +100937 0 0 江南影视艺术职业学院 0 0 高职类 0 民办(专科) 江苏 无锡市 0 +103379 0 0 江原国立大学 Kangwon National University 1 0 NULL 0 NULL NULL NULL 0 +104131 0 0 江户川大学 1 0 NULL 0 NULL NULL NULL 0 +101762 0 0 江汉大学 0 0 综合类 0 本科 湖北 武汉市 0 +101858 0 0 江汉大学文理学院 0 0 综合类 0 独立学院 湖北 武汉市 0 +101817 0 0 江汉艺术职业学院 0 0 高职类 0 专科 湖北 省直辖县级行政区划 0 +100949 0 0 江海职业技术学院 0 0 高职类 0 民办(专科) 江苏 扬州市 0 +100946 0 0 江苏信息职业技术学院 0 0 高职类 0 专科 江苏 无锡市 0 +100941 0 0 江苏农林职业技术学院 0 0 高职类 0 示范(高职) 江苏 镇江市 0 +100927 0 0 江苏农牧科技职业学院 0 0 高职类 0 骨干(高职) 江苏 泰州市 0 +100916 0 0 江苏医药职业学院 盐城卫生职业技术学院 0 0 高职类 0 专科 江苏 盐城市 0 +100967 0 0 江苏卫生健康职业学院 江苏建康职业学院 0 0 高职类 0 专科 江苏 南京市 0 +100973 0 0 江苏商贸职业学院 0 0 高职类 0 专科 江苏 南通市 0 +100978 0 0 江苏城乡建设职业学院 常州市职工大学 0 0 高职类 0 专科 江苏 常州市 0 +100962 0 0 江苏城市职业学院 0 0 高职类 0 专科 江苏 南京市 0 +100855 0 0 江苏大学 0 0 综合类 0 本科 江苏 镇江市 0 +101001 0 0 江苏大学京江学院 0 0 综合类 0 独立学院 江苏 镇江市 0 +105626 0 0 江苏安全技术职业学院 0 0 高职类 0 专科 江苏 徐州市 0 +100897 0 0 江苏工程职业技术学院 0 0 高职类 0 示范(高职) 江苏 南通市 0 +100865 0 0 江苏师范大学 0 0 师范类 0 本科 江苏 徐州市 0 +101003 0 0 江苏师范大学科文学院 0 0 综合类 0 独立学院 江苏 徐州市 0 +100895 0 0 江苏建筑职业技术学院 0 0 高职类 0 示范(高职) 江苏 徐州市 0 +100981 0 0 江苏开放大学 0 0 综合类 0 普通本科 江苏 南京市 0 +105514 0 0 江苏护理职业学院 0 0 高职类 0 专科 江苏 淮安市 0 +14990 0 0 江苏教育学院盐城分院 盐城高等师范学校 0 0 师范类 0 普通本科 江苏 盐城市 0 +105614 0 0 江苏旅游职业学院 0 0 高职类 0 专科 江苏 扬州市 0 +100913 0 0 江苏海事职业技术学院 0 0 高职类 0 专科 江苏 南京市 0 +100881 0 0 江苏理工学院 0 0 师范类 0 本科 江苏 常州市 0 +100982 0 0 江苏省省级机关管理干部学院 0 0 综合类 0 专科(高职) 江苏 南京市 0 +100984 0 0 江苏省青年管理干部学院 0 0 NULL 0 其他 江苏 南京市 0 +100847 0 0 江苏科技大学 0 0 理工类 0 本科 江苏 镇江市 0 +101006 0 0 江苏科技大学苏州理工学院 0 0 综合类 0 独立学院 江苏 苏州市 0 +100890 0 0 江苏第二师范学院 0 0 师范类 0 本科 江苏 南京市 0 +100906 0 0 江苏经贸职业技术学院 0 0 高职类 0 骨干(高职) 江苏 南京市 0 +100912 0 0 江苏联合职业技术学院 0 0 高职类 0 专科 江苏 南京市 0 +105621 0 0 江苏航空职业技术学院 0 0 高职类 0 专科 江苏 镇江市 0 +100869 0 0 江苏警官学院 0 0 政法类 0 本科 江苏 南京市 0 +105557 0 0 江苏财会职业学院 0 0 高职类 0 专科 江苏 连云港市 0 +100957 0 0 江苏财经职业技术学院 0 0 高职类 0 专科 江苏 淮安市 0 +100942 0 0 江苏食品药品职业技术学院 0 0 高职类 0 骨干(高职) 江苏 淮安市 0 +101345 0 0 江西中医药大学 0 0 医科类 0 本科 江西 南昌市 0 +101435 0 0 江西中医药大学科技学院 0 0 医药类 0 独立学院 江西 南昌市 0 +101395 0 0 江西中医药高等专科学校 0 0 高职类 0 专科 江西 抚州市 0 +101379 0 0 江西交通职业技术学院 0 0 高职类 0 骨干(高职) 江西 南昌市 0 +101411 0 0 江西传媒职业学院 江西新闻出版职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101378 0 0 江西信息应用职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101396 0 0 江西先锋软件职业技术学院 0 0 理工类 0 专科(高职) 江西 南昌市 0 +101344 0 0 江西农业大学 0 0 农林类 0 本科 江西 南昌市 0 +101429 0 0 江西农业大学南昌商学院 0 0 综合类 0 独立学院 江西 南昌市 0 +101403 0 0 江西农业工程职业学院 0 0 高职类 0 专科 江西 宜春市 0 +101409 0 0 江西冶金职业技术学院 0 0 高职类 0 专科 江西 新余市 0 +101398 0 0 江西制造职业技术学院 0 0 理工类 0 专科 江西 南昌市 0 +101368 0 0 江西医学高等专科学校 0 0 高职类 0 专科 江西 上饶市 0 +101405 0 0 江西卫生职业学院 江西护理职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101371 0 0 江西司法警官职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101387 0 0 江西外语外贸职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101383 0 0 江西工业工程职业技术学院 0 0 高职类 0 专科 江西 萍乡市 0 +101367 0 0 江西工业职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101388 0 0 江西工业贸易职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101412 0 0 江西工商职业技术学院 0 0 高职类 0 民办(专科) 江西 南昌市 0 +101361 0 0 江西工程学院 0 0 综合类 0 民办(本科) 江西 新余市 0 +101399 0 0 江西工程职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101347 0 0 江西师范大学 0 0 师范类 0 本科 江西 南昌市 0 +101430 0 0 江西师范大学科学技术学院 0 0 综合类 0 独立学院 江西 南昌市 0 +105499 0 0 江西师范高等专科学校 0 0 高职类 0 专科 江西 鹰潭市 0 +101425 0 0 江西广播电视大学 0 0 综合类 0 专科(高职) 江西 南昌市 0 +101390 0 0 江西应用工程职业学院 0 0 高职类 0 专科 江西 萍乡市 0 +101381 0 0 江西应用技术职业学院 0 0 高职类 0 骨干(高职) 江西 赣州市 0 +101363 0 0 江西应用科技学院 0 0 理工类 0 民办(本科) 江西 南昌市 0 +101392 0 0 江西建设职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101406 0 0 江西新能源科技职业学院 0 0 高职类 0 民办(专科) 江西 新余市 0 +101373 0 0 江西旅游商贸职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101364 0 0 江西服装学院 0 0 理工类 0 民办(本科) 江西 南昌市 0 +101384 0 0 江西机电职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101407 0 0 江西枫林涉外经贸职业学院 0 0 高职类 0 民办(专科) 江西 九江市 0 +101416 0 0 江西水利职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101408 0 0 江西泰豪动漫职业学院 0 0 高职类 0 民办(专科) 江西 南昌市 0 +101419 0 0 江西洪州职业学院 0 0 高职类 0 民办(专科) 江西 宜春市 0 +101375 0 0 江西环境工程职业学院 0 0 高职类 0 专科 江西 赣州市 0 +101382 0 0 江西现代职业技术学院 0 0 高职类 0 骨干(高职) 江西 南昌市 0 +101342 0 0 江西理工大学 0 0 理工类 0 本科 江西 赣州市 0 +101432 0 0 江西理工大学应用科学学院 0 0 综合类 0 独立学院 江西 赣州市 0 +101391 0 0 江西生物科技职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101374 0 0 江西电力职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101353 0 0 江西科技学院 0 0 综合类 0 民办(本科) 江西 南昌市 0 +101356 0 0 江西科技师范大学 0 0 师范类 0 本科 江西 南昌市 0 +101439 0 0 江西科技师范大学理工学院 0 0 理工类 0 独立学院 江西 南昌市 0 +101385 0 0 江西科技职业学院 0 0 高职类 0 民办(专科) 江西 南昌市 0 +101410 0 0 江西管理职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101427 0 0 江西经济管理干部学院 0 0 综合类 0 专科(高职) 江西 南昌市 0 +101397 0 0 江西经济管理职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101402 0 0 江西航空职业技术学院 0 0 高职类 0 专科 江西 南昌市 0 +101376 0 0 江西艺术职业学院 0 0 高职类 0 专科 江西 南昌市 0 +101420 0 0 江西行政管理干部学院 0 0 综合类 0 普通本科 江西 南昌市 0 +101358 0 0 江西警察学院 0 0 政法类 0 本科 江西 南昌市 0 +101352 0 0 江西财经大学 0 0 财经类 0 本科 江西 南昌市 0 +101436 0 0 江西财经大学现代经济管理学院 0 0 综合类 0 独立学院 江西 南昌市 0 +101380 0 0 江西财经职业学院 0 0 高职类 0 骨干(高职) 江西 九江市 0 +101372 0 0 江西陶瓷工艺美术职业技术学院 0 0 高职类 0 专科 江西 景德镇市 0 +101400 0 0 江西青年职业学院 0 0 高职类 0 专科 江西 南昌市 0 +102096 0 0 江门职业技术学院 0 0 高职类 0 专科 广东 江门市 0 +105629 0 0 江阳城建职业学院 0 0 高职类 0 民办(专科) 四川 泸州市 0 +100951 0 0 江阴职业技术学院 0 0 高职类 0 专科 江苏 无锡市 0 +103313 0 0 江陵大学 1 0 NULL 0 NULL NULL NULL 0 +101151 0 0 池州学院 0 0 师范类 0 本科 安徽 池州市 0 +101181 0 0 池州职业技术学院 0 0 高职类 0 专科 安徽 池州市 0 +103664 0 0 汤玛斯学院 Thomas College 1 0 NULL 0 NULL NULL NULL 0 +103155 0 0 沃罗涅日国立大学 Voronezh State University 1 0 NULL 0 NULL NULL NULL 0 +100479 0 0 沈阳体育学院 0 0 体育类 0 本科 辽宁 沈阳市 0 +100464 0 0 沈阳农业大学 0 0 农林类 0 本科 辽宁 沈阳市 0 +100458 0 0 沈阳化工大学 0 0 理工类 0 本科 辽宁 沈阳市 0 +100547 0 0 沈阳北软信息职业技术学院 0 0 高职类 0 民办(专科) 辽宁 沈阳市 0 +100471 0 0 沈阳医学院 0 0 医科类 0 本科 辽宁 沈阳市 0 +100495 0 0 沈阳城市学院 0 0 综合类 0 民办(本科) 辽宁 沈阳市 0 +100492 0 0 沈阳城市建设学院 0 0 理工类 0 民办(本科) 辽宁 沈阳市 0 +100483 0 0 沈阳大学 0 0 综合类 0 本科 辽宁 沈阳市 0 +100451 0 0 沈阳工业大学 0 0 理工类 0 本科 辽宁 沈阳市 0 +100583 0 0 沈阳工业大学工程学院 0 0 理工类 0 专科(高职) 辽宁 沈阳市 0 +100490 0 0 沈阳工学院 0 0 理工类 0 民办(本科) 辽宁 沈阳市 0 +100487 0 0 沈阳工程学院 0 0 理工类 0 本科 辽宁 沈阳市 0 +100571 0 0 沈阳市广播电视大学/沈阳电大 沈阳市广播电视大学 0 0 综合类 0 专科(高职) 辽宁 沈阳市 0 +100473 0 0 沈阳师范大学 0 0 师范类 0 本科 辽宁 沈阳市 0 +803 0 0 沈阳广播电视大学 沈阳电大 0 0 综合类 0 专科(高职) 辽宁 沈阳市 0 +100462 0 0 沈阳建筑大学 0 0 理工类 0 本科 辽宁 沈阳市 0 +100569 0 0 沈阳机械工业职工大学 0 0 理工类 0 专科(高职) 辽宁 沈阳市 0 +100453 0 0 沈阳理工大学 0 0 理工类 0 本科 辽宁 沈阳市 0 +100584 0 0 沈阳科技学院 沈阳化工大学科亚学院 0 0 理工类 0 民办(本科) 辽宁 沈阳市 0 +100519 0 0 沈阳职业技术学院 0 0 高职类 0 示范(高职) 辽宁 沈阳市 0 +100515 0 0 沈阳航空职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100452 0 0 沈阳航空航天大学 0 0 理工类 0 本科 辽宁 沈阳市 0 +100574 0 0 沈阳航空航天大学北方科技学院 0 0 NULL 0 NULL NULL NULL 0 +100470 0 0 沈阳药科大学 0 0 医科类 0 本科 辽宁 沈阳市 0 +100480 0 0 沈阳音乐学院 0 0 艺术类 0 本科 辽宁 沈阳市 0 +104893 0 0 沙希德·贝赫什提大学 Shahid Beheshti University 1 0 NULL 0 NULL NULL NULL 0 +100903 0 0 沙洲职业工学院 0 0 高职类 0 专科 江苏 苏州市 0 +104737 0 0 沙特国王大学 King Saud University 1 0 NULL 0 NULL NULL NULL 0 +102848 0 0 沙迦大学 University of Sharjah 1 0 NULL 0 NULL NULL NULL 0 +102845 0 0 沙迦美国大学 American University of Sharjah 1 0 NULL 0 NULL NULL NULL 0 +104881 0 0 沙里夫理工大学 Sharif University of Technology 1 0 NULL 0 NULL NULL NULL 0 +100263 0 0 沧州医学高等专科学校 0 0 高职类 0 专科 河北 沧州市 0 +100202 0 0 沧州师范学院 0 0 师范类 0 本科 河北 沧州市 0 +100234 0 0 沧州职业技术学院 0 0 高职类 0 专科 河北 沧州市 0 +105405 0 0 河北东方学院 0 0 综合类 0 民办(本科) 河北 廊坊市 0 +100221 0 0 河北中医学院 0 0 医科类 0 本科 河北 石家庄市 0 +100248 0 0 河北交通职业技术学院 0 0 高职类 0 专科 河北 石家庄市 0 +100215 0 0 河北传媒学院 0 0 艺术类 0 民办(本科) 河北 石家庄市 0 +100209 0 0 河北体育学院 0 0 体育类 0 本科 河北 石家庄市 0 +100258 0 0 河北公安警察职业学院 0 0 高职类 0 专科 河北 石家庄市 0 +100189 0 0 河北农业大学 0 0 农林类 0 本科 河北 保定市 0 +100301 0 0 河北农业大学现代科技学院 0 0 综合类 0 独立学院 河北 保定市 0 +100270 0 0 河北劳动关系职业学院 0 0 高职类 0 专科 河北 石家庄市 0 +100249 0 0 河北化工医药职业技术学院 0 0 高职类 0 骨干(高职) 河北 石家庄市 0 +100191 0 0 河北北方学院 0 0 综合类 0 本科 河北 张家口市 0 +100190 0 0 河北医科大学 0 0 医科类 0 本科 河北 石家庄市 0 +100295 0 0 河北医科大学临床学院 0 0 医药类 0 独立学院 河北 石家庄市 0 +100262 0 0 河北司法警官职业学院 0 0 高职类 0 专科 河北 邯郸市 0 +105369 0 0 河北地质大学 0 0 财经类 0 本科 河北 石家庄市 0 +100300 0 0 河北地质大学华信学院 石家庄经济学院华信学院 0 0 财经类 0 独立学院 河北 石家庄市 0 +100283 0 0 河北地质职工大学 0 0 理工类 0 专科(高职) 河北 石家庄市 0 +100219 0 0 河北外国语学院 0 0 语言类 0 民办(本科) 河北 石家庄市 0 +100182 0 0 河北大学 0 0 综合类 0 本科 河北 保定市 0 +100293 0 0 河北大学工商学院 0 0 综合类 0 独立学院 河北 保定市 0 +100264 0 0 河北女子职业技术学院 0 0 高职类 0 专科 河北 石家庄市 0 +100251 0 0 河北对外经贸职业学院 河北外国语职业学院 0 0 高职类 0 专科 河北 秦皇岛市 0 +100185 1 0 河北工业大学 0 0 理工类 1 本科 河北 天津市 0 +100297 0 0 河北工业大学城市学院 0 0 理工类 0 独立学院 河北 廊坊市 0 +100224 0 0 河北工业职业技术学院 0 0 高职类 0 示范(高职) 河北 石家庄市 0 +100183 0 0 河北工程大学 0 0 理工类 0 本科 河北 邯郸市 0 +100290 0 0 河北工程大学科信学院 0 0 理工类 0 独立学院 河北 邯郸市 0 +100216 0 0 河北工程技术学院 0 0 理工类 0 民办(本科) 河北 石家庄市 0 +100281 0 0 河北工艺美术职业学院 0 0 高职类 0 专科 河北 保定市 0 +100193 0 0 河北师范大学 0 0 师范类 0 本科 河北 石家庄市 0 +100294 0 0 河北师范大学汇华学院 0 0 师范类 0 独立学院 河北 石家庄市 0 +829 0 0 河北广播电视大学 HEBEI RADIO AND TV UNIVERSITY 河北电大::河北省广播电视大学 0 0 综合类 0 专科(高职) 河北 石家庄市 0 +100232 0 0 河北建材职业技术学院 0 0 高职类 0 专科 河北 秦皇岛市 0 +100188 0 0 河北建筑工程学院 0 0 理工类 0 本科 河北 张家口市 0 +100233 0 0 河北政法职业学院 0 0 高职类 0 专科 河北 石家庄市 0 +100246 0 0 河北旅游职业学院 0 0 高职类 0 专科 河北 承德市 0 +100253 0 0 河北机电职业技术学院 0 0 高职类 0 专科 河北 邢台市 0 +100195 0 0 河北民族师范学院 0 0 师范类 0 本科 河北 承德市 0 +100223 0 0 河北水利电力学院 河北工程技术高等专科学校 0 0 理工类 0 本科 河北 沧州市 0 +100286 0 0 河北环境工程学院 中国环境管理干部学院 0 0 理工类 0 本科 河北 秦皇岛市 0 +100245 0 0 河北省艺术职业学院 0 0 艺术类 0 其他 河北 石家庄市 0 +100187 0 0 河北科技大学 0 0 理工类 0 本科 河北 石家庄市 0 +100292 0 0 河北科技大学理工学院 0 0 综合类 0 独立学院 河北 石家庄市 0 +100218 0 0 河北科技学院 0 0 理工类 0 民办(本科) 河北 保定市 0 +100205 0 0 河北科技师范学院 0 0 师范类 0 本科 河北 秦皇岛市 0 +100287 0 0 河北管理干部学院 0 0 综合类 0 普通本科 河北 石家庄市 0 +100213 0 0 河北经贸大学 0 0 财经类 0 本科 河北 石家庄市 0 +100296 0 0 河北经贸大学经济管理学院 0 0 财经类 0 独立学院 河北 石家庄市 0 +100217 0 0 河北美术学院 0 0 艺术类 0 民办(本科) 河北 石家庄市 0 +100302 0 0 河北联合大学冀唐学院 0 0 医药类 0 独立学院 河北 唐山市 0 +100289 0 0 河北联合大学轻工学院 0 0 综合类 0 普通本科 河北 石家庄市 0 +100235 0 0 河北能源职业技术学院 0 0 高职类 0 专科 河北 唐山市 0 +100279 0 0 河北轨道运输职业技术学院 0 0 高职类 0 专科 河北 石家庄市 0 +100230 0 0 河北软件职业技术学院 0 0 高职类 0 专科 河北 保定市 0 +100210 0 0 河北金融学院 0 0 财经类 0 本科 河北 保定市 0 +100288 0 0 河北青年管理干部学院 0 0 综合类 0 其他 河北 石家庄市 0 +101603 0 0 河南中医药大学 河南中医学院 0 0 医科类 0 本科 河南 郑州市 0 +101673 0 0 河南交通职业技术学院 0 0 高职类 0 专科 河南 郑州市 0 +101677 0 0 河南信息统计职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101600 0 0 河南农业大学 0 0 农林类 0 本科 河南 郑州市 0 +101674 0 0 河南农业职业学院 0 0 高职类 0 骨干(高职) 河南 郑州市 0 +101708 0 0 河南医学高等专科学校 0 0 高职类 0 专科 河南 郑州市 0 +101656 0 0 河南司法警官职业学院 0 0 高职类 0 专科 河南 郑州市 0 +105658 0 0 河南地矿职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101624 0 0 河南城建学院 0 0 理工类 0 本科 河南 平顶山市 0 +101605 0 0 河南大学 0 0 综合类 1 本科 河南 开封市 0 +101728 0 0 河南大学民生学院 0 0 综合类 0 独立学院 河南 开封市 0 +101650 0 0 河南工业和信息化职业学院 0 0 高职类 0 专科 河南 焦作市 0 +101597 0 0 河南工业大学 0 0 理工类 0 本科 河南 郑州市 0 +101658 0 0 河南工业职业技术学院 0 0 高职类 0 骨干(高职) 河南 南阳市 0 +101679 0 0 河南工业贸易职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101643 0 0 河南工学院 河南机电高等专科学校 0 0 理工类 0 本科 河南 新乡市 0 +101622 0 0 河南工程学院 0 0 理工类 0 本科 河南 郑州市 0 +101606 0 0 河南师范大学 0 0 师范类 0 本科 河南 新乡市 0 +101731 0 0 河南师范大学新联学院 0 0 师范类 0 独立学院 河南 郑州市 0 +854 0 0 河南广播电视大学 HENAN RADIO&TELEVISION UNIVERSITY 河南电大::河南省广播电视大学 0 0 综合类 0 专科(高职) 河南 郑州市 0 +101694 0 0 河南应用技术职业学院 河南化工职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101682 0 0 河南建筑职业技术学院 0 0 高职类 0 专科 河南 郑州市 0 +101697 0 0 河南护理职业学院 0 0 高职类 0 专科 河南 安阳市 0 +101703 0 0 河南推拿职业学院 0 0 高职类 0 专科 河南 洛阳市 0 +101720 0 0 河南教育学院 0 0 师范类 0 其他 河南 郑州市 0 +101696 0 0 河南机电职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101678 0 0 河南林业职业学院 0 0 高职类 0 专科 河南 洛阳市 0 +101661 0 0 河南检察职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101651 0 0 河南水利与环境职业学院 0 0 高职类 0 专科 河南 郑州市 0 +105618 0 0 河南测绘职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101602 0 0 河南牧业经济学院 0 0 高职类 0 专科 河南 郑州市 0 +105653 0 0 河南物流职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101595 0 0 河南理工大学 0 0 理工类 0 本科 河南 焦作市 0 +101598 0 0 河南科技大学 0 0 理工类 0 本科 河南 洛阳市 0 +101601 0 0 河南科技学院 0 0 师范类 0 本科 河南 新乡市 0 +101733 0 0 河南科技学院新科学院 0 0 理工类 0 独立学院 河南 新乡市 0 +101672 0 0 河南经贸职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101637 0 0 河南职业技术学院 0 0 高职类 0 示范(高职) 河南 郑州市 0 +101695 0 0 河南艺术职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101625 0 0 河南警察学院 0 0 政法类 0 本科 河南 郑州市 0 +101645 0 0 河南财政金融学院 河南财政税务高等专科学校 0 0 财经类 0 本科 河南 郑州市 0 +101614 0 0 河南财经政法大学 0 0 财经类 0 本科 河南 郑州市 0 +101662 0 0 河南质量工程职业学院 0 0 高职类 0 专科 河南 平顶山市 0 +105620 0 0 河南轻工职业学院 0 0 高职类 0 专科 河南 郑州市 0 +100408 0 0 河套学院 0 0 综合类 0 本科 内蒙 巴彦淖尔市 0 +102175 0 0 河池学院 0 0 师范类 0 本科 广西 河池市 0 +100852 1 0 河海大学 0 0 理工类 1 本科 江苏 南京市 0 +102082 0 0 河源职业技术学院 0 0 高职类 0 专科 广东 河源市 0 +102702 0 0 河西学院 0 0 师范类 0 本科 甘肃 张掖市 0 +101270 0 0 泉州信息工程学院 0 0 理工类 0 民办(本科) 福建 泉州市 0 +101286 0 0 泉州医学高等专科学校 0 0 高职类 0 骨干(高职) 福建 泉州市 0 +101290 0 0 泉州华光职业学院 0 0 高职类 0 民办(专科) 福建 泉州市 0 +101325 0 0 泉州工程职业技术学院 0 0 高职类 0 民办(专科) 福建 泉州市 0 +101306 0 0 泉州工艺美术职业学院 0 0 高职类 0 专科 福建 泉州市 0 +101259 0 0 泉州师范学院 0 0 师范类 0 本科 福建 泉州市 0 +101323 0 0 泉州幼儿师范高等专科学校 0 0 高职类 0 专科 福建 泉州市 0 +101320 0 0 泉州海洋职业学院 0 0 高职类 0 民办(专科) 福建 泉州市 0 +101291 0 0 泉州理工学院 泉州理工职业学院 0 0 综合类 0 普通本科 福建 泉州市 0 +101289 0 0 泉州纺织服装职业学院 0 0 高职类 0 民办(专科) 福建 泉州市 0 +101298 0 0 泉州经贸职业技术学院 0 0 高职类 0 专科 福建 泉州市 0 +101321 0 0 泉州轻工职业学院 0 0 高职类 0 民办(专科) 福建 泉州市 0 +100273 0 0 泊头职业学院 0 0 高职类 0 专科 河北 沧州市 0 +103093 0 0 法兰克福大学 Universität Frankfurt am Main 1 0 NULL 0 NULL NULL NULL 0 +103169 0 0 法国中央理工学院 CentraleSupélec 1 0 NULL 0 NULL NULL NULL 0 +105253 0 0 法国洛桑联邦理工学院 Ecole Polytechnique Fédérale de Lausanne 1 1 NULL 0 NULL NULL NULL 0 +105177 0 0 法尔茅斯大学 Falmouth University 1 0 NULL 0 NULL NULL NULL 0 +104668 0 0 法政大学 Hosei University 1 0 NULL 0 NULL NULL NULL 0 +104736 0 0 法赫德国王石油与矿产大学 King Fahd University of Petroleum & Minerals 1 0 NULL 0 NULL NULL NULL 0 +105263 0 0 法赫德国王石油和矿产大学 King Fahd University of Petroleum & Minerals 1 0 NULL 0 NULL NULL NULL 0 +105007 0 0 泗水理工学院 Institute of Technology Sepuluh Nopember 1 0 NULL 0 NULL NULL NULL 0 +103998 0 0 泛美大学 Universidad Panamericana (UP) 1 0 NULL 0 NULL NULL NULL 0 +103014 0 0 波兰矿冶大学 AGH University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103013 0 0 波兹南大学 Adam Mickiewicz University 1 0 NULL 0 NULL NULL NULL 0 +105269 0 0 波兹南密茨凯维奇大学 Adam Mickiewicz University in Poznan 1 0 NULL 0 NULL NULL NULL 0 +103787 0 0 波士顿大学 Boston University 1 1 NULL 0 NULL NULL NULL 0 +103821 0 0 波士顿学院 Boston College 1 0 NULL 0 NULL NULL NULL 0 +103672 0 0 波士顿建筑学院 Boston Architectural College 1 0 NULL 0 NULL NULL NULL 0 +103009 0 0 波多黎各大学 Universidad de Puerto Rico 1 0 NULL 0 NULL NULL NULL 0 +104019 0 0 波尔图大学 University of Porto 1 0 NULL 0 NULL NULL NULL 0 +103185 0 0 波尔多大学 University of Bordeaux 1 0 NULL 0 NULL NULL NULL 0 +105210 0 0 波尔顿大学 University of Bolton 1 0 NULL 0 NULL NULL NULL 0 +103479 0 0 波帕医学药学大学 Grigore T. Popa University of Medicine and Pharmacy 1 0 NULL 0 NULL NULL NULL 0 +103035 0 0 波恩-莱茵-锡格应用技术大学 Hochschule Bonn-Rhein-Sieg 1 0 NULL 0 NULL NULL NULL 0 +103092 0 0 波恩大学 Rheinische Friedrich-Wilhelms-Universität Bonn 1 0 NULL 0 NULL NULL NULL 0 +105307 0 0 波恩莱茵弗里德里希·威廉大学 University of Bonn 1 0 NULL 0 NULL NULL NULL 0 +103935 0 0 波特兰州立大学 Portland State University 1 0 NULL 0 NULL NULL NULL 0 +103105 0 0 波茨坦大学 Universität Potsdam 1 0 NULL 0 NULL NULL NULL 0 +103073 0 0 波茨坦应用科学大学 Fachhochschule Potsdam 1 0 NULL 0 NULL NULL NULL 0 +103552 0 0 波莫纳学院 Pomona College 1 0 NULL 0 NULL NULL NULL 0 +103103 0 0 波鸿大学 Ruhr-Universität Bochum 1 0 NULL 0 NULL NULL NULL 0 +103744 0 0 泰勒分校 University of Texas at Tyler 1 0 NULL 0 NULL NULL NULL 0 +104756 0 0 泰国农业大学 Kasetsart University 1 0 NULL 0 NULL NULL NULL 0 +104755 0 0 泰国法政大学 Thammasat University 1 0 NULL 0 NULL NULL NULL 0 +105167 0 0 泰塞德大学 Teesside University 1 0 NULL 0 NULL NULL NULL 0 +101464 0 0 泰山学院 0 0 综合类 0 普通本科 山东 泰安市 0 +101564 0 0 泰山护理职业学院 0 0 高职类 0 专科 山东 泰安市 0 +101547 0 0 泰山职业技术学院 0 0 高职类 0 专科 山东 泰安市 0 +100886 0 0 泰州学院 0 0 师范类 0 本科 江苏 泰州市 0 +105431 0 0 泰州师范高等专科学校 0 0 师范类 0 专科(高职) 江苏 泰州市 0 +100910 0 0 泰州职业技术学院 0 0 高职类 0 专科 江苏 泰州市 0 +105068 0 0 泰晤士河谷大学 Thames Valley University 1 0 NULL 0 NULL NULL NULL 0 +104999 0 0 泰米尔纳德邦农业大学 Tamil Nadu Agricultural University 1 0 NULL 0 NULL NULL NULL 0 +102388 0 0 泸州职业技术学院 0 0 高职类 0 专科 四川 泸州市 0 +104202 0 0 洗足学园音乐大学 1 0 NULL 0 NULL NULL NULL 0 +103943 0 0 洛克菲勒大学 Rockefeller University 1 0 NULL 0 NULL NULL NULL 0 +103234 0 0 洛斯安第斯大学 Universidad de los Andes 1 0 NULL 0 NULL NULL NULL 0 +103633 0 0 洛斯胡曼理工学院 Rose-Hulman Institute of Technology, Terre Haute 1 0 NULL 0 NULL NULL NULL 0 +103191 0 0 洛林大学 University of Lorraine 1 0 NULL 0 NULL NULL NULL 0 +103608 0 0 洛林斯学院 Rollins College 1 0 NULL 0 NULL NULL NULL 0 +104726 0 0 洛桑大学 University of Lausanne 1 1 NULL 0 NULL NULL NULL 0 +104723 0 0 洛桑联邦理工学院 Ecole Polytechnique Fédérale de Lausanne (EPFL) 1 0 NULL 0 NULL NULL NULL 0 +101612 0 0 洛阳师范学院 0 0 师范类 0 本科 河南 洛阳市 0 +101718 0 0 洛阳有色金属职工大学 0 0 理工类 0 专科(高职) 河南 洛阳市 0 +101618 0 0 洛阳理工学院 0 0 理工类 0 本科 河南 洛阳市 0 +101711 0 0 洛阳科技职业学院 0 0 高职类 0 民办(专科) 河南 洛阳市 0 +101704 0 0 洛阳职业技术学院 0 0 高职类 0 专科 河南 洛阳市 0 +101717 0 0 洛阳轴承职工大学 0 0 理工类 0 专科(高职) 河南 洛阳市 0 +103575 0 0 洛雷多高原学院 Loretto Heights College 1 0 NULL 0 NULL NULL NULL 0 +104180 0 0 津田塾大学 1 0 NULL 0 NULL NULL NULL 0 +104479 0 0 活水女子大学 1 0 NULL 0 NULL NULL NULL 0 +104404 0 0 流通科学大学 1 0 NULL 0 NULL NULL NULL 0 +104087 0 0 流通经济大学 1 0 NULL 0 NULL NULL NULL 0 +101445 0 0 济南大学 0 0 综合类 0 本科 山东 济南市 0 +101591 0 0 济南大学泉城学院 0 0 综合类 0 独立学院 山东 济南市 0 +101542 0 0 济南工程职业技术学院 0 0 高职类 0 专科 山东 济南市 0 +101562 0 0 济南幼儿师范高等专科学校 0 0 高职类 0 专科 山东 济南市 0 +101563 0 0 济南护理职业学院 0 0 高职类 0 专科 山东 济南市 0 +101533 0 0 济南职业学院 0 0 高职类 0 骨干(高职) 山东 济南市 0 +101456 0 0 济宁医学院 0 0 医科类 0 本科 山东 济宁市 0 +101465 0 0 济宁学院 0 0 综合类 0 本科 山东 济宁市 0 +101577 0 0 济宁教育学院 山东省济宁教育学院 0 0 综合类 0 专科(高职) 山东 济宁市 0 +101506 0 0 济宁职业技术学院 0 0 高职类 0 专科 山东 济宁市 0 +103257 0 0 济州国立大学 1 0 NULL 0 NULL NULL NULL 0 +101655 0 0 济源职业技术学院 0 0 高职类 0 专科 河南 省直辖县级行政区划 0 +101030 0 0 浙江万里学院 0 0 理工类 0 民办(本科) 浙江 宁波市 0 +101073 0 0 浙江东方职业技术学院 0 0 高职类 0 民办(专科) 浙江 温州市 0 +101017 0 0 浙江中医药大学 0 0 医科类 0 本科 浙江 杭州市 0 +101111 0 0 浙江中医药大学滨江学院 0 0 医药类 0 独立学院 浙江 杭州市 0 +101047 0 0 浙江交通职业技术学院 0 0 高职类 0 骨干(高职) 浙江 杭州市 0 +101038 0 0 浙江传媒学院 0 0 艺术类 0 本科 浙江 杭州市 0 +101086 0 0 浙江体育职业技术学院 0 0 高职类 0 专科 浙江 杭州市 0 +101090 0 0 浙江农业商贸职业学院 0 0 高职类 0 专科 浙江 绍兴市 0 +101015 0 0 浙江农林大学 0 0 农林类 0 本科 浙江 杭州市 0 +101109 0 0 浙江农林大学暨阳学院 0 0 综合类 0 独立学院 浙江 绍兴市 0 +101055 0 0 浙江医药高等专科学校 0 0 高职类 0 专科 浙江 宁波市 0 +101051 0 0 浙江同济科技职业学院 0 0 高职类 0 专科 浙江 杭州市 0 +101060 0 0 浙江商业职业技术学院 0 0 高职类 0 专科 浙江 杭州市 0 +101085 0 0 浙江国际海运职业技术学院 0 0 高职类 0 专科 浙江 舟山市 0 +101042 0 0 浙江外国语学院 0 0 语言类 0 本科 浙江 杭州市 0 +101010 2 0 浙江大学 0 1 综合类 1 本科 浙江 杭州市 1 +101101 0 0 浙江大学城市学院 0 0 综合类 0 独立学院 浙江 杭州市 0 +101102 0 0 浙江大学宁波理工学院 0 0 理工类 0 本科 浙江 宁波市 0 +105655 0 0 浙江安防职业技术学院 0 0 高职类 0 专科 浙江 温州市 0 +101012 0 0 浙江工业大学 0 0 理工类 0 本科 浙江 杭州市 0 +101103 0 0 浙江工业大学之江学院 0 0 理工类 0 独立学院 浙江 杭州市 0 +101066 0 0 浙江工业职业技术学院 0 0 高职类 0 专科 浙江 绍兴市 0 +101025 0 0 浙江工商大学 0 0 财经类 0 本科 浙江 杭州市 0 +101116 0 0 浙江工商大学杭州商学院 0 0 财经类 0 独立学院 浙江 杭州市 0 +101052 0 0 浙江工商职业技术学院 0 0 高职类 0 专科 浙江 宁波市 0 +101054 0 0 浙江工贸职业技术学院 0 0 高职类 0 专科 浙江 温州市 0 +101018 0 0 浙江师范大学 0 0 师范类 0 本科 浙江 金华市 0 +101104 0 0 浙江师范大学行知学院 0 0 综合类 0 独立学院 浙江 金华市 0 +101080 0 0 浙江广厦建设职业技术学院 0 0 高职类 0 民办(专科) 浙江 金华市 0 +101097 0 0 浙江广播电视大学 浙江省广播电视大学 0 0 综合类 0 专科(高职) 浙江 杭州市 0 +101057 0 0 浙江建设职业技术学院 0 0 高职类 0 骨干(高职) 浙江 杭州市 0 +101062 0 0 浙江旅游职业学院 0 0 高职类 0 骨干(高职) 浙江 杭州市 0 +101056 0 0 浙江机电职业技术学院 0 0 高职类 0 示范(高职) 浙江 杭州市 0 +101039 0 0 浙江树人学院 0 0 理工类 0 普通本科 浙江 杭州市 0 +101089 0 0 浙江横店影视职业学院 0 0 高职类 0 民办(专科) 浙江 金华市 0 +101033 0 0 浙江水利水电学院 0 0 理工类 0 本科 浙江 杭州市 0 +101088 0 0 浙江汽车职业技术学院 0 0 高职类 0 民办(专科) 浙江 台州市 0 +101014 0 0 浙江海洋大学 浙江海洋学院 0 0 农林类 0 本科 浙江 舟山市 0 +101108 0 0 浙江海洋大学东海科学技术学院 浙江海洋学院东海科学技术学院 0 0 农林类 0 独立学院 浙江 舟山市 0 +101091 0 0 浙江特殊教育职业学院 0 0 高职类 0 专科 浙江 杭州市 0 +101013 0 0 浙江理工大学 0 0 理工类 0 本科 浙江 杭州市 0 +101107 0 0 浙江理工大学科技与艺术学院 0 0 理工类 0 独立学院 浙江 杭州市 0 +101050 0 0 浙江电力职业技术学院 0 0 高职类 0 专科 浙江 杭州市 0 +101092 0 0 浙江省省级机关职工业余大学 0 0 综合类 0 专科(高职) 浙江 杭州市 0 +101031 0 0 浙江科技学院 0 0 理工类 0 本科 浙江 杭州市 0 +105478 0 0 浙江第二师范学院 0 0 师范类 0 普通本科 浙江 杭州市 0 +101076 0 0 浙江纺织服装职业技术学院 0 0 高职类 0 专科 浙江 宁波市 0 +101098 0 0 浙江经济管理职工大学 0 0 综合类 0 专科(高职) 浙江 杭州市 0 +101061 0 0 浙江经济职业技术学院 0 0 高职类 0 骨干(高职) 浙江 杭州市 0 +101059 0 0 浙江经贸职业技术学院 0 0 高职类 0 专科 浙江 杭州市 0 +101063 0 0 浙江育英职业技术学院 0 0 高职类 0 民办(专科) 浙江 杭州市 0 +105660 0 0 浙江舟山群岛新区旅游与健康职业学院 0 0 综合类 0 专科 浙江 舟山市 0 +101058 0 0 浙江艺术职业学院 0 0 高职类 0 专科 浙江 杭州市 0 +101064 0 0 浙江警官职业学院 0 0 高职类 0 示范(高职) 浙江 杭州市 0 +101035 0 0 浙江警察学院 0 0 政法类 0 本科 浙江 杭州市 0 +101034 0 0 浙江财经大学 0 0 财经类 0 本科 浙江 杭州市 0 +101118 0 0 浙江财经大学东方学院 0 0 财经类 0 独立学院 浙江 嘉兴市 0 +101040 0 0 浙江越秀外国语学院 0 0 外语类 0 民办(本科) 浙江 绍兴市 0 +101082 0 0 浙江邮电职业技术学院 0 0 高职类 0 专科 浙江 绍兴市 0 +101065 0 0 浙江金融职业学院 0 0 高职类 0 示范(高职) 浙江 杭州市 0 +101078 0 0 浙江长征职业技术学院 0 0 高职类 0 民办(专科) 浙江 杭州市 0 +105571 0 0 浙江音乐学院 0 0 艺术类 0 本科 浙江 杭州市 0 +104667 0 0 浜松医科大学 Hamamatsu University School of Medicine 1 0 NULL 0 NULL NULL NULL 0 +104107 0 0 浦和大学 1 0 NULL 0 NULL NULL NULL 0 +104973 0 0 浦那大学 University of Pune 1 0 NULL 0 NULL NULL NULL 0 +103335 0 0 浦项工科大学 1 0 NULL 0 NULL NULL NULL 0 +103347 0 0 浦项科技大学 Pohang University of Science And Technology (POSTECH) 1 1 NULL 0 NULL NULL NULL 0 +1567 1 0 海军军医大学 The Second Military Medical University 中国人民解放军第二军医大学::第二军医大学 0 0 军事类 1 本科 上海 上海市 0 +103516 0 0 海军研究院,蒙特瑞 Naval Postgraduate School, Monterey 1 0 NULL 0 NULL NULL NULL 0 +100557 0 0 海军职工大学 0 0 军事类 0 专科(高职) 辽宁 大连市 0 +105562 0 0 海南体育职业技术学院 0 0 高职类 0 专科 海南 海口市 0 +105567 0 0 海南健康管理职业技术学院 0 0 高职类 0 民办(专科) 海南 省直辖县级行政区划 0 +102243 0 0 海南医学院 0 0 医科类 0 本科 海南 海口市 0 +102250 0 0 海南外国语职业学院 0 0 高职类 0 专科 海南 省直辖县级行政区划 0 +102240 1 0 海南大学 0 0 综合类 1 本科 海南 海口市 0 +102253 0 0 海南工商职业学院 0 0 高职类 0 民办(专科) 海南 海口市 0 +102242 0 0 海南师范大学 0 0 师范类 0 本科 海南 海口市 0 +102257 0 0 海南广播电视大学 0 0 综合类 0 专科(高职) 海南 海口市 0 +102249 0 0 海南政法职业学院 0 0 高职类 0 专科 海南 海口市 0 +102241 0 0 海南热带海洋学院 琼州学院 0 0 综合类 0 本科 海南 三亚市 0 +102255 0 0 海南科技职业学院 0 0 理工类 0 专科(高职) 海南 海口市 0 +102252 0 0 海南经贸职业技术学院 0 0 高职类 0 骨干(高职) 海南 海口市 0 +102246 0 0 海南职业技术学院 0 0 高职类 0 示范(高职) 海南 海口市 0 +102248 0 0 海南软件职业技术学院 0 0 高职类 0 专科 海南 省直辖县级行政区划 0 +102244 0 0 海口经济学院 0 0 财经类 0 民办(本科) 海南 海口市 0 +104769 0 0 海峡大学 Bogaziçi Üniversitesi 1 0 NULL 0 NULL NULL NULL 0 +104964 0 0 海得拉巴大学 University of Hyderabad 1 0 NULL 0 NULL NULL NULL 0 +103081 0 0 海德堡大学 Ruprecht-Karls-Universitaet Heidelberg 1 1 NULL 0 NULL NULL NULL 0 +104838 0 0 海梅一世大学 Universitat Jaume I 1 0 NULL 0 NULL NULL NULL 0 +104906 0 0 海法大学 University of Haifa 1 0 NULL 0 NULL NULL NULL 0 +101981 0 0 涟源钢铁总厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +101540 0 0 淄博师范高等专科学校 0 0 高职类 0 专科 山东 淄博市 0 +101522 0 0 淄博职业学院 0 0 高职类 0 示范(高职) 山东 淄博市 0 +104137 0 0 淑德大学 1 0 NULL 0 NULL NULL NULL 0 +103260 0 0 淑明女子大学 1 0 NULL 0 NULL NULL NULL 0 +104858 0 0 淡马锡理工学院 Temasek Polytechnic 1 0 NULL 0 NULL NULL NULL 0 +101137 0 0 淮北师范大学 0 0 师范类 0 本科 安徽 淮北市 0 +101242 0 0 淮北师范大学信息学院 0 0 师范类 0 独立学院 安徽 淮北市 0 +101157 0 0 淮北职业技术学院 0 0 高职类 0 专科 安徽 淮北市 0 +101144 0 0 淮南师范学院 0 0 师范类 0 本科 安徽 淮南市 0 +101166 0 0 淮南职业技术学院 0 0 高职类 0 专科 安徽 淮南市 0 +101230 0 0 淮南职工大学 淮南市职工大学 0 0 师范类 0 专科(高职) 安徽 淮南市 0 +101159 0 0 淮南联合大学 0 0 高职类 0 专科 安徽 淮南市 0 +100926 0 0 淮安信息职业技术学院 0 0 高职类 0 专科 江苏 淮安市 0 +100882 0 0 淮海工学院 0 0 理工类 0 普通本科 江苏 连云港市 0 +100874 0 0 淮阴工学院 0 0 理工类 0 本科 江苏 淮安市 0 +100866 0 0 淮阴师范学院 0 0 师范类 0 本科 江苏 淮安市 0 +102086 0 0 深圳信息职业技术学院 0 0 高职类 0 骨干(高职) 广东 深圳市 0 +105468 0 0 深圳北理莫斯科大学 0 0 综合类 0 中外合作办学 广东 深圳市 0 +102029 0 0 深圳大学 0 0 综合类 0 本科 广东 深圳市 0 +102147 0 0 深圳市广播电视大学 0 0 综合类 0 专科(高职) 广东 深圳市 0 +105539 0 0 深圳技术大学 0 0 理工类 0 本科 广东 深圳市 0 +102059 0 0 深圳职业技术学院 0 0 高职类 0 示范(高职) 广东 深圳市 0 +100002 2 0 清华大学 0 1 理工类 1 本科 北京 北京市 1 +104140 0 0 清和大学 1 0 NULL 0 NULL NULL NULL 0 +103315 0 0 清州大学 1 0 NULL 0 NULL NULL NULL 0 +104227 0 0 清泉女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104754 0 0 清迈大学 Chiang Mai University 1 0 NULL 0 NULL NULL NULL 0 +102087 0 0 清远职业技术学院 0 0 高职类 0 专科 广东 清远市 0 +100474 0 0 渤海大学 0 0 综合类 0 本科 辽宁 锦州市 0 +100282 0 0 渤海理工职业学院 0 0 高职类 0 民办(专科) 河北 沧州市 0 +100254 0 0 渤海石油职业学院 0 0 高职类 0 专科 河北 沧州市 0 +100528 0 0 渤海船舶职业学院 0 0 高职类 0 骨干(高职) 辽宁 葫芦岛市 0 +103407 0 0 渥太华大学 University of Ottawa 1 0 NULL 0 NULL NULL NULL 0 +105181 0 0 温切斯特大学 University of Winchester 1 0 NULL 0 NULL NULL NULL 0 +103439 0 0 温尼伯格大学 Winnipeg 1 0 NULL 0 NULL NULL NULL 0 +101016 0 0 温州医科大学 0 0 医科类 0 本科 浙江 温州市 0 +101110 0 0 温州医科大学仁济学院 0 0 医药类 0 独立学院 浙江 温州市 0 +101120 0 0 温州商学院 温州大学城市学院 0 0 综合类 0 民办(本科) 浙江 温州市 0 +101023 0 0 温州大学 0 0 综合类 0 本科 浙江 温州市 0 +101115 0 0 温州大学瓯江学院 0 0 师范类 0 独立学院 浙江 温州市 0 +101094 0 0 温州市工人业余大学 0 0 综合类 0 专科(高职) 浙江 温州市 0 +101087 0 0 温州科技职业学院 0 0 高职类 0 专科 浙江 温州市 0 +101046 0 0 温州职业技术学院 0 0 高职类 0 示范(高职) 浙江 温州市 0 +101044 0 0 温州肯恩大学 0 0 综合类 0 中外合作 浙江 温州市 0 +105015 0 0 温布尔登艺术学院 1 0 NULL 0 NULL NULL NULL 0 +105070 0 0 温彻斯特大学 University of Winchester 1 0 NULL 0 NULL NULL NULL 0 +103720 0 0 温斯顿-赛伦州立大学 Winston-Salem State University 1 0 NULL 0 NULL NULL NULL 0 +103508 0 0 温泉丘学院 Spring Hill College 1 0 NULL 0 NULL NULL NULL 0 +103418 0 0 温莎大学 University of Windsor 1 0 NULL 0 NULL NULL NULL 0 +102603 0 0 渭南师范学院 0 0 师范类 0 本科 陕西 渭南市 0 +102654 0 0 渭南职业技术学院 0 0 高职类 0 专科 陕西 渭南市 0 +101300 0 0 湄洲湾职业技术学院 0 0 高职类 0 专科 福建 莆田市 0 +101800 0 0 湖北三峡职业技术学院 0 0 高职类 0 专科 湖北 宜昌市 0 +101746 0 0 湖北中医药大学 0 0 医科类 0 本科 湖北 武汉市 0 +101796 0 0 湖北中医药高等专科学校 0 0 高职类 0 专科 湖北 荆州市 0 +101795 0 0 湖北交通职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101831 0 0 湖北体育职业学院 0 0 体育类 0 专科(高职) 湖北 武汉市 0 +101835 0 0 湖北兵器工业职工大学 0 0 NULL 0 NULL NULL NULL 0 +101761 0 0 湖北医药学院 0 0 医科类 0 本科 湖北 十堰市 0 +101865 0 0 湖北医药学院药护学院 0 0 医药类 0 独立学院 湖北 十堰市 0 +101855 0 0 湖北商贸学院 湖北工业大学商贸学院 0 0 财经类 0 民办(本科) 湖北 武汉市 0 +101823 0 0 湖北国土资源职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101804 0 0 湖北城市建设职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101748 0 0 湖北大学 0 0 综合类 0 本科 湖北 武汉市 0 +101851 0 0 湖北大学知行学院 0 0 理工类 0 独立学院 湖北 武汉市 0 +101744 0 0 湖北工业大学 0 0 理工类 0 本科 湖北 武汉市 0 +101854 0 0 湖北工业大学工程技术学院 0 0 理工类 0 独立学院 湖北 武汉市 0 +101783 0 0 湖北工业职业技术学院 0 0 高职类 0 骨干(高职) 湖北 十堰市 0 +101758 0 0 湖北工程学院 0 0 综合类 0 本科 湖北 孝感市 0 +101863 0 0 湖北工程学院新技术学院 0 0 综合类 0 独立学院 湖北 孝感市 0 +101828 0 0 湖北工程职业学院 0 0 高职类 0 专科 湖北 黄石市 0 +101749 0 0 湖北师范大学 湖北师范学院 0 0 师范类 0 本科 湖北 黄石市 0 +101862 0 0 湖北师范大学文理学院 湖北师范学院文理学院 0 0 师范类 0 独立学院 湖北 黄石市 0 +101833 0 0 湖北幼儿师范高等专科学校 0 0 高职类 0 专科 湖北 武汉市 0 +101844 0 0 湖北广播电视大学 0 0 综合类 0 专科(高职) 湖北 武汉市 0 +101807 0 0 湖北开放职业学院 0 0 高职类 0 民办(专科) 湖北 武汉市 0 +101752 0 0 湖北文理学院 0 0 综合类 0 本科 湖北 襄阳市 0 +101866 0 0 湖北文理学院理工学院 0 0 理工类 0 独立学院 湖北 襄阳市 0 +101846 0 0 湖北武汉公安管理干部学院 0 0 NULL 0 NULL NULL NULL 0 +101751 0 0 湖北民族大学 湖北民族学院 0 0 民族类 0 本科 湖北 恩施土家族苗族自治州 0 +101864 0 0 湖北民族大学科技学院 湖北民族学院科技学院 0 0 综合类 0 独立学院 湖北 恩施市 0 +101803 0 0 湖北水利水电职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101757 0 0 湖北汽车工业学院 0 0 理工类 0 本科 湖北 十堰市 0 +101859 0 0 湖北汽车工业学院科技学院 0 0 理工类 0 独立学院 湖北 十堰市 0 +101759 0 0 湖北理工学院 0 0 理工类 0 本科 湖北 黄石市 0 +101824 0 0 湖北生态工程职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +101806 0 0 湖北生物科技职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101839 0 0 湖北省直属机关业余大学 0 0 NULL 0 NULL NULL NULL 0 +101836 0 0 湖北省纺织职工大学 0 0 NULL 0 NULL NULL NULL 0 +101840 0 0 湖北省经济管理干部学院 0 0 综合类 0 专科(高职) 湖北 武汉市 0 +101760 0 0 湖北科技学院 0 0 综合类 0 本科 湖北 咸宁市 0 +101826 0 0 湖北科技职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101777 0 0 湖北第二师范学院 0 0 师范类 0 本科 湖北 武汉市 0 +101767 0 0 湖北经济学院 0 0 财经类 0 本科 湖北 武汉市 0 +101860 0 0 湖北经济学院法商学院 0 0 财经类 0 独立学院 湖北 武汉市 0 +101755 0 0 湖北美术学院 0 0 艺术类 0 本科 湖北 武汉市 0 +101786 0 0 湖北职业技术学院 0 0 高职类 0 示范(高职) 湖北 孝感市 0 +101813 0 0 湖北艺术职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101764 0 0 湖北警官学院 0 0 政法类 0 本科 湖北 武汉市 0 +101821 0 0 湖北财税职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +105418 0 0 湖北财经高等专科学校 0 0 财经类 0 专科(高职) 湖北 武汉市 0 +101794 0 0 湖北轻工职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +105631 0 0 湖北铁道运输职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101827 0 0 湖北青年职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +101973 0 0 湖南三一工业职业技术学院 0 0 理工类 0 专科(高职) 湖南 长沙市 0 +101880 0 0 湖南中医药大学 0 0 医科类 0 本科 湖南 长沙市 0 +102006 0 0 湖南中医药大学湘杏学院 0 0 医药类 0 独立学院 湖南 长沙市 0 +101948 0 0 湖南中医药高等专科学校 0 0 高职类 0 专科 湖南 株洲市 0 +101955 0 0 湖南九嶷职业技术学院 0 0 高职类 0 专科 湖南 永州市 0 +101907 0 0 湖南交通工程学院 0 0 理工类 0 民办(本科) 湖南 衡阳市 0 +101920 0 0 湖南交通职业技术学院 0 0 高职类 0 示范(高职) 湖南 长沙市 0 +101889 0 0 湖南人文科技学院 0 0 综合类 0 本科 湖南 娄底市 0 +101922 0 0 湖南体育职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101906 0 0 湖南信息学院 0 0 综合类 0 民办(本科) 湖南 长沙市 0 +101911 0 0 湖南信息职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101878 0 0 湖南农业大学 0 0 农林类 0 本科 湖南 长沙市 0 +101996 0 0 湖南农业大学东方科技学院 0 0 农林类 0 独立学院 湖南 长沙市 0 +101913 0 0 湖南冶金职业技术学院 0 0 NULL 0 其他 湖南 株洲市 0 +101980 0 0 湖南劳动人事职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101945 0 0 湖南化工职业技术学院 0 0 高职类 0 专科 湖南 株洲市 0 +101902 0 0 湖南医药学院 0 0 医科类 0 本科 湖南 怀化市 0 +101928 0 0 湖南司法警官职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101977 0 0 湖南吉利汽车职业技术学院 0 0 高职类 0 民办(专科) 湖南 湘潭市 0 +101921 0 0 湖南商务职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101890 0 0 湖南商学院 0 0 财经类 0 普通本科 湖南 长沙市 0 +101994 0 0 湖南商学院北津学院 0 0 财经类 0 独立学院 湖南 长沙市 0 +101970 0 0 湖南国防工业职业技术学院 湖南科技工业职业技术学院 0 0 高职类 0 专科 湖南 湘潭市 0 +101895 0 0 湖南城市学院 0 0 综合类 0 本科 湖南 益阳市 0 +101946 0 0 湖南城建职业技术学院 0 0 高职类 0 专科 湖南 湘潭市 0 +101966 0 0 湖南外国语职业学院 0 0 高职类 0 民办(专科) 湖南 长沙市 0 +101925 0 0 湖南外贸职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101915 0 0 湖南大众传媒职业技术学院 0 0 高职类 0 骨干(高职) 湖南 长沙市 0 +101872 2 0 湖南大学 0 0 综合类 1 本科 湖南 长沙市 1 +101900 0 0 湖南女子学院 0 0 综合类 0 本科 湖南 长沙市 0 +101964 0 0 湖南安全技术职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101899 0 0 湖南工业大学 0 0 理工类 0 本科 湖南 株洲市 0 +101999 0 0 湖南工业大学科技学院 0 0 理工类 0 独立学院 湖南 株洲市 0 +101909 0 0 湖南工业职业技术学院 0 0 高职类 0 示范(高职) 湖南 长沙市 0 +101972 0 0 湖南工商职业学院 0 0 高职类 0 民办(专科) 湖南 衡阳市 0 +101896 0 0 湖南工学院 0 0 理工类 0 本科 湖南 衡阳市 0 +101894 0 0 湖南工程学院 0 0 理工类 0 本科 湖南 湘潭市 0 +102005 0 0 湖南工程学院应用技术学院 0 0 理工类 0 独立学院 湖南 湘潭市 0 +101923 0 0 湖南工程职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101954 0 0 湖南工艺美术职业学院 0 0 高职类 0 骨干(高职) 湖南 益阳市 0 +101881 1 0 湖南师范大学 0 0 师范类 1 本科 湖南 长沙市 0 +101993 0 0 湖南师范大学树达学院 0 0 师范类 0 独立学院 湖南 长沙市 0 +101978 0 0 湖南幼儿师范高等专科学校 0 0 高职类 0 专科 湖南 常德市 0 +990 0 0 湖南广播电视大学 Hunan Radio and TV University 湖南电大::湖南省广播电视大学 0 0 综合类 0 专科(高职) 湖南 长沙市 0 +101905 0 0 湖南应用技术学院 0 0 理工类 0 民办(本科) 湖南 常德市 0 +101887 0 0 湖南文理学院 0 0 综合类 0 本科 湖南 常德市 0 +102002 0 0 湖南文理学院芙蓉学院 0 0 综合类 0 独立学院 湖南 常德市 0 +101976 0 0 湖南有色金属职业技术学院 0 0 高职类 0 专科 湖南 株洲市 0 +101938 0 0 湖南机电职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101950 0 0 湖南民族职业学院 0 0 高职类 0 专科 湖南 岳阳市 0 +101960 0 0 湖南水利水电职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101958 0 0 湖南汽车工程职业学院 0 0 高职类 0 专科 湖南 株洲市 0 +101903 0 0 湖南涉外经济学院 0 0 综合类 0 民办(本科) 湖南 长沙市 0 +101930 0 0 湖南环境生物职业技术学院 0 0 高职类 0 专科 湖南 衡阳市 0 +101961 0 0 湖南现代物流职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101882 0 0 湖南理工学院 0 0 理工类 0 本科 湖南 岳阳市 0 +102003 0 0 湖南理工学院南湖学院 0 0 理工类 0 独立学院 湖南 岳阳市 0 +101956 0 0 湖南理工职业技术学院 0 0 高职类 0 专科 湖南 湘潭市 0 +101919 0 0 湖南生物机电职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101969 0 0 湖南电子科技职业学院 0 0 高职类 0 民办(专科) 湖南 长沙市 0 +101965 0 0 湖南电气职业技术学院 0 0 高职类 0 专科 湖南 湘潭市 0 +101947 0 0 湖南石油化工职业技术学院 0 0 高职类 0 专科 湖南 岳阳市 0 +101876 0 0 湖南科技大学 0 0 综合类 0 本科 湖南 湘潭市 0 +101998 0 0 湖南科技大学潇湘学院 0 0 综合类 0 独立学院 湖南 湘潭市 0 +101888 0 0 湖南科技学院 0 0 综合类 0 本科 湖南 永州市 0 +101918 0 0 湖南科技职业学院 0 0 高职类 0 骨干(高职) 湖南 长沙市 0 +101912 0 0 湖南税务高等专科学校 0 0 高职类 0 专科 湖南 长沙市 0 +101901 0 0 湖南第一师范学院 0 0 师范类 0 本科 湖南 长沙市 0 +101926 0 0 湖南网络工程职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101983 0 0 湖南航空工业职工工学院 0 0 理工类 0 专科(高职) 湖南 株洲市 0 +101937 0 0 湖南艺术职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101898 0 0 湖南警察学院 0 0 政法类 0 本科 湖南 长沙市 0 +101897 0 0 湖南财政经济学院 0 0 财经类 0 本科 湖南 长沙市 0 +101952 0 0 湖南财经工业学院 衡阳财经工业职业技术学院 0 0 综合类 0 普通本科 湖南 衡阳市 0 +105424 0 0 湖南财经工业职业技术学院 0 0 高职类 0 专科 湖南 衡阳市 0 +101957 0 0 湖南软件职业学院 0 0 高职类 0 民办(专科) 湖南 湘潭市 0 +101931 0 0 湖南邮电职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101968 0 0 湖南都市职业学院 0 0 高职类 0 民办(专科) 湖南 长沙市 0 +101990 0 0 湖南金融技术职工大学 0 0 经济类 0 专科(高职) 湖南 长沙市 0 +101963 0 0 湖南铁路科技职业技术学院 0 0 高职类 0 专科 湖南 株洲市 0 +101917 0 0 湖南铁道职业技术学院 0 0 高职类 0 示范(高职) 湖南 株洲市 0 +101975 0 0 湖南食品药品职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101971 0 0 湖南高尔夫旅游职业学院 0 0 综合类 0 专科(高职) 湖南 常德市 0 +101962 0 0 湖南高速铁路职业技术学院 0 0 高职类 0 专科 湖南 衡阳市 0 +101020 0 0 湖州师范学院 0 0 师范类 0 本科 浙江 湖州市 0 +101113 0 0 湖州师范学院求真学院 0 0 师范类 0 独立学院 浙江 湖州市 0 +101069 0 0 湖州职业技术学院 0 0 高职类 0 专科 浙江 湖州市 0 +103320 0 0 湖西大学 1 0 NULL 0 NULL NULL NULL 0 +103438 0 0 湖首大学 Lakehead 1 0 NULL 0 NULL NULL NULL 0 +105387 0 0 湘中幼儿师范高等专科学校 0 0 高职类 0 专科 湖南 邵阳市 0 +101883 0 0 湘南学院 0 0 理工类 0 本科 湖南 郴州市 0 +104197 0 0 湘南工科大学 1 0 NULL 0 NULL NULL NULL 0 +101979 0 0 湘南幼儿师范高等专科学校 0 0 高职类 0 专科 湖南 郴州市 0 +101932 0 0 湘潭医卫职业技术学院 湘潭职业技术学院 0 0 高职类 0 专科 湖南 湘潭市 0 +101874 0 0 湘潭大学 0 0 综合类 0 本科 湖南 湘潭市 0 +102000 0 0 湘潭大学兴湘学院 0 0 综合类 0 独立学院 湖南 湘潭市 0 +101991 0 0 湘潭技师学院 湖南纺织职工大学 0 0 综合类 0 专科(高职) 湖南 湘潭市 0 +101987 0 0 湘潭教育学院 0 0 师范类 0 专科(高职) 湖南 湘潭市 0 +101951 0 0 湘西民族职业技术学院 0 0 高职类 0 专科 湖南 湘西土家族苗族自治州 0 +102135 0 0 湛江市业余大学 0 0 NULL 0 NULL NULL NULL 0 +105512 0 0 湛江幼儿师范专科学校 0 0 师范类 0 专科 广东 湛江市 0 +102139 0 0 湛江教育学院 0 0 师范类 0 专科(高职) 广东 湛江市 0 +101219 0 0 滁州城市职业学院 0 0 高职类 0 专科 安徽 滁州市 0 +101140 0 0 滁州学院 0 0 师范类 0 本科 安徽 滁州市 0 +101180 0 0 滁州职业技术学院 0 0 高职类 0 专科 安徽 滁州市 0 +105522 0 0 滇西应用技术大学 0 0 理工类 0 本科 云南 大理白族自治州 0 +102557 0 0 滇西科技师范学院 临沧师范高等专科学校 0 0 师范类 0 本科 云南 临沧市 0 +104681 0 0 滋贺医科大学 Shiga University of Medical Science 1 0 NULL 0 NULL NULL NULL 0 +104549 0 0 滋贺县立大学 1 0 NULL 0 NULL NULL NULL 0 +104603 0 0 滋贺大学 1 0 NULL 0 NULL NULL NULL 0 +103401 0 0 滑铁卢大学 University of Waterloo 1 0 NULL 0 NULL NULL NULL 0 +100438 0 0 满洲里俄语职业学院 0 0 高职类 0 专科 内蒙 呼伦贝尔市 0 +101454 0 0 滨州医学院 0 0 医科类 0 本科 山东 滨州市 0 +101461 0 0 滨州学院 0 0 师范类 0 本科 山东 滨州市 0 +101511 0 0 滨州职业学院 0 0 高职类 0 骨干(高职) 山东 滨州市 0 +104600 0 0 滨松医科大学 1 0 NULL 0 NULL NULL NULL 0 +104241 0 0 滨松大学 1 0 NULL 0 NULL NULL NULL 0 +104240 0 0 滨松学院大学 1 0 NULL 0 NULL NULL NULL 0 +101664 0 0 漯河医学高等专科学校 0 0 高职类 0 专科 河南 漯河市 0 +101638 0 0 漯河职业技术学院 0 0 高职类 0 专科 河南 漯河市 0 +101683 0 0 漯河食品职业学院 0 0 高职类 0 民办(专科) 河南 漯河市 0 +101319 0 0 漳州卫生职业学院 0 0 高职类 0 专科 福建 漳州市 0 +101313 0 0 漳州城市职业学院 0 0 高职类 0 专科 福建 漳州市 0 +101317 0 0 漳州理工职业学院 0 0 高职类 0 民办(专科) 福建 漳州市 0 +101316 0 0 漳州科技职业学院 0 0 高职类 0 民办(专科) 福建 漳州市 0 +101273 0 0 漳州职业技术学院 0 0 高职类 0 示范(高职) 福建 漳州市 0 +101944 0 0 潇湘职业学院 0 0 高职类 0 民办(专科) 湖南 娄底市 0 +101452 0 0 潍坊医学院 0 0 医科类 0 本科 山东 潍坊市 0 +101476 0 0 潍坊学院 0 0 综合类 0 本科 山东 潍坊市 0 +101537 0 0 潍坊工商职业学院 0 0 高职类 0 民办(专科) 山东 潍坊市 0 +101567 0 0 潍坊工程职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +101566 0 0 潍坊护理职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +101482 0 0 潍坊科技学院 0 0 综合类 0 民办(本科) 山东 潍坊市 0 +101507 0 0 潍坊职业学院 0 0 高职类 0 专科 山东 潍坊市 0 +104989 0 0 潘塔纳加农业与技术大学 G.B. Pant University of Agriculture & Technology, Pantnagar 1 0 NULL 0 NULL NULL NULL 0 +100354 0 0 潞安职业技术学院 0 0 高职类 0 专科 山西 长治市 0 +102058 0 0 潮汕职业技术学院 0 0 高职类 0 民办(专科) 广东 揭阳市 0 +105347 0 0 澳大利亚国立大学 The Australian National University 1 1 NULL 0 NULL NULL NULL 0 +102889 0 0 澳大利亚新英格兰大学 University of New England 1 0 NULL 0 NULL NULL NULL 0 +102916 0 0 澳大利亚纽卡斯尔大学 The University of Newcastle, Australia (UON) 1 0 NULL 0 NULL NULL NULL 0 +102902 0 0 澳大利亚维多利亚大学 Victoria University 1 0 NULL 0 NULL NULL NULL 0 +102908 0 0 澳洲国立大学 The Australian National University 1 0 NULL 0 NULL NULL NULL 0 +102886 0 0 澳洲国防学院 Australian Defence Force Academy 1 0 NULL 0 NULL NULL NULL 0 +102907 0 0 澳洲圣母大学 University of Notre Dame Australia 1 0 NULL 0 NULL NULL NULL 0 +102938 0 0 澳洲天主大学 Australian Catholic University 1 0 NULL 0 NULL NULL NULL 0 +102943 0 0 澳洲天主教大学 1 0 NULL 0 NULL NULL NULL 0 +102903 0 0 澳洲联邦大学 Federation University Australia 1 0 NULL 0 NULL NULL NULL 0 +105549 0 0 澳门城市大学 0 0 综合类 0 本科 澳门 离岛 0 +1019 0 0 澳门大学 University of Macau 澳大 0 0 综合类 0 本科 澳门 离岛 0 +105473 0 0 澳门旅遊学院 0 0 综合类 0 普通本科 澳门 离岛 0 +1020 0 0 澳门理工学院 Macao Polytechnic Institute 澳理工::IPM 0 0 理工类 0 普通本科 澳门 澳门半岛 0 +1021 0 0 澳门科技大学 Macau University of Science and Technology 0 0 综合类 0 本科 澳门 离岛 0 +105603 0 0 濮阳医学高等专科学校 0 0 高职类 0 专科 河南 濮阳市 0 +101646 0 0 濮阳职业技术学院 0 0 高职类 0 专科 河南 濮阳市 0 +105384 0 0 火箭军工程大学 0 0 军事类 0 普通本科 陕西 西安市 0 +100932 0 0 炎黄职业技术学院 0 0 高职类 0 民办(专科) 江苏 淮安市 0 +101481 0 0 烟台南山学院 0 0 综合类 0 民办(本科) 山东 烟台市 0 +101475 0 0 烟台大学 0 0 综合类 0 本科 山东 烟台市 0 +101583 0 0 烟台大学文经学院 0 0 综合类 0 独立学院 山东 烟台市 0 +101534 0 0 烟台工程职业技术学院 0 0 高职类 0 专科 山东 烟台市 0 +101553 0 0 烟台汽车工程职业学院 0 0 高职类 0 专科 山东 烟台市 0 +101508 0 0 烟台职业学院 0 0 高职类 0 骨干(高职) 山东 烟台市 0 +105519 0 0 烟台黄金职业学院 0 0 高职类 0 民办(专科) 山东 烟台市 0 +104927 0 0 热那亚大学 University of Genoa 1 0 NULL 0 NULL NULL NULL 0 +101644 0 0 焦作大学 0 0 高职类 0 专科 河南 焦作市 0 +101688 0 0 焦作工贸职业学院 0 0 高职类 0 民办(专科) 河南 焦作市 0 +101660 0 0 焦作师范高等专科学校 0 0 高职类 0 专科 河南 焦作市 0 +101724 0 0 焦作职工医学院 0 0 医药类 0 专科(高职) 河南 焦作市 0 +104489 0 0 熊本保健科学大学 1 0 NULL 0 NULL NULL NULL 0 +104577 0 0 熊本县立大学 1 0 NULL 0 NULL NULL NULL 0 +104634 0 0 熊本大学 Kumamoto University 1 0 NULL 0 NULL NULL NULL 0 +104488 0 0 熊本学园大学 1 0 NULL 0 NULL NULL NULL 0 +100220 0 0 燕京理工学院 0 0 理工类 0 民办(本科) 河北 廊坊市 0 +100204 0 0 燕山大学 0 0 理工类 0 本科 河北 秦皇岛市 0 +100298 0 0 燕山大学里仁学院 0 0 综合类 0 独立学院 河北 秦皇岛市 0 +105091 0 0 爱丁堡大学 The University of Edinburgh 1 1 NULL 0 NULL NULL NULL 0 +104130 0 0 爱国学园大学 1 0 NULL 0 NULL NULL NULL 0 +104569 0 0 爱媛县立医疗技术大学 1 0 NULL 0 NULL NULL NULL 0 +104665 0 0 爱媛大学 Ehime University 1 0 NULL 0 NULL NULL NULL 0 +102872 0 0 爱尔兰皇家外科医学院 Royal College of Surgeons in Ireland 1 0 NULL 0 NULL NULL NULL 0 +103435 0 0 爱德华王子岛大学 UPEI 1 0 NULL 0 NULL NULL NULL 0 +104988 0 0 爱德大学 Amity University 1 0 NULL 0 NULL NULL NULL 0 +104849 0 0 爱琴海大学 University of the Aegean 1 0 NULL 0 NULL NULL NULL 0 +104253 0 0 爱知东邦大学 1 0 NULL 0 NULL NULL NULL 0 +104537 0 0 爱知县立大学 1 0 NULL 0 NULL NULL NULL 0 +104538 0 0 爱知县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +104539 0 0 爱知县立艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104245 0 0 爱知大学 1 0 NULL 0 NULL NULL NULL 0 +104247 0 0 爱知学泉大学 1 0 NULL 0 NULL NULL NULL 0 +104246 0 0 爱知学院大学 1 0 NULL 0 NULL NULL NULL 0 +104249 0 0 爱知工业大学 1 0 NULL 0 NULL NULL NULL 0 +104248 0 0 爱知工科大学 1 0 NULL 0 NULL NULL NULL 0 +104601 0 0 爱知教育大学 1 0 NULL 0 NULL NULL NULL 0 +104254 0 0 爱知文教大学 1 0 NULL 0 NULL NULL NULL 0 +104252 0 0 爱知新城大谷大学 1 0 NULL 0 NULL NULL NULL 0 +104251 0 0 爱知淑德大学 1 0 NULL 0 NULL NULL NULL 0 +104255 0 0 爱知瑞穗大学 1 0 NULL 0 NULL NULL NULL 0 +104250 0 0 爱知産业大学 1 0 NULL 0 NULL NULL NULL 0 +103837 0 0 爱荷华大学 University of Iowa 1 0 NULL 0 NULL NULL NULL 0 +103845 0 0 爱荷华州立大学 Iowa State University 1 0 NULL 0 NULL NULL NULL 0 +103647 0 0 爱许兰社区技术学院 Ashland Community and Technical College 1 0 NULL 0 NULL NULL NULL 0 +103972 0 0 爱达荷大学 University of Idaho 1 0 NULL 0 NULL NULL NULL 0 +103616 0 0 爱达荷州立大学 Idaho State University 1 0 NULL 0 NULL NULL NULL 0 +103621 0 0 爱达荷爱柏森学院 Albertson College of Idaho 1 0 NULL 0 NULL NULL NULL 0 +103674 0 0 爱默森学院 Emerson College 1 0 NULL 0 NULL NULL NULL 0 +105088 0 0 牛津大学 University of Oxford 1 1 NULL 0 NULL NULL NULL 0 +105122 0 0 牛津布鲁克斯大学 Oxford Brookes University 1 0 NULL 0 NULL NULL NULL 0 +100669 0 0 牡丹江医学院 0 0 医科类 0 本科 黑龙江 牡丹江市 0 +100695 0 0 牡丹江大学 0 0 高职类 0 专科 黑龙江 牡丹江市 0 +100749 0 0 牡丹江市教育学院 0 0 师范类 0 专科(高职) 黑龙江 牡丹江市 0 +100672 0 0 牡丹江师范学院 0 0 师范类 0 本科 黑龙江 牡丹江市 0 +104129 0 0 物作大学 1 0 NULL 0 NULL NULL NULL 0 +104918 0 0 特伦托大学 University of Trento 1 0 NULL 0 NULL NULL NULL 0 +103650 0 0 特兰西瓦尼亚大学 Transylvania University 1 0 NULL 0 NULL NULL NULL 0 +103836 0 0 特拉华大学 University of Delaware 1 0 NULL 0 NULL NULL NULL 0 +104902 0 0 特拉维夫大学 Tel Aviv University 1 0 NULL 0 NULL NULL NULL 0 +103390 0 0 特文特大学 University of Twente 1 0 NULL 0 NULL NULL NULL 0 +103497 0 0 特洛依大学 1 0 NULL 0 NULL NULL NULL 0 +103500 0 0 特洛依大学凤凰城分校 1 0 NULL 0 NULL NULL NULL 0 +103499 0 0 特洛依大学多森分校 1 0 NULL 0 NULL NULL NULL 0 +103498 0 0 特洛依大学蒙哥马利分校 Troy University at Montgomery 1 0 NULL 0 NULL NULL NULL 0 +104016 0 0 特罗姆瑟大学 University of Tromsø The Arctic University of Norway 1 0 NULL 0 NULL NULL NULL 0 +105274 0 0 特罗姆瑟大学挪威北极大学 The Arctic University of Norway 1 0 NULL 0 NULL NULL NULL 0 +102827 0 0 特莱姆森大学 University of Tlemcen 1 0 NULL 0 NULL NULL NULL 0 +103075 0 0 特里尔大学 Universität Trier 1 0 NULL 0 NULL NULL NULL 0 +103828 0 0 犹他大学 University of Utah 1 0 NULL 0 NULL NULL NULL 0 +103911 0 0 犹他州立大学 Utah State University 1 0 NULL 0 NULL NULL NULL 0 +104093 0 0 独协医科大学 1 0 NULL 0 NULL NULL NULL 0 +104121 0 0 独协大学 1 0 NULL 0 NULL NULL NULL 0 +102176 0 0 玉林师范学院 0 0 师范类 0 本科 广西 玉林市 0 +105662 0 0 玉柴职业技术学院 0 0 高职类 0 民办(专科) 广西 玉林市 0 +102543 0 0 玉溪农业职业技术学院 0 0 高职类 0 专科 云南 玉溪市 0 +102525 0 0 玉溪师范学院 0 0 师范类 0 本科 云南 玉溪市 0 +104753 0 0 玛希隆大学 Mahidol University 1 0 NULL 0 NULL NULL NULL 0 +103488 0 0 玛拉工艺大学 Universiti Teknologi MARA - UiTM 1 0 NULL 0 NULL NULL NULL 0 +105193 0 0 玛格丽特女王大学 Queen Margaret University Edinburgh 1 0 NULL 0 NULL NULL NULL 0 +105083 0 0 玛格丽特皇后大学 Queen Margaret University 1 0 NULL 0 NULL NULL NULL 0 +104416 0 0 环太平洋大学 1 0 NULL 0 NULL NULL NULL 0 +105408 0 0 现代城市学院 0 0 NULL 0 普通本科 北京 北京市 0 +105437 0 0 现代管理大学 0 0 综合类 0 普通本科 北京 北京市 0 +105477 0 0 现代软件学院 0 0 综合类 0 其他 北京 北京市 0 +103742 0 0 玻宓恩分校 University of Texas of the Permian Basin 1 0 NULL 0 NULL NULL NULL 0 +102098 0 0 珠海城市职业技术学院 0 0 高职类 0 专科 广东 珠海市 0 +102071 0 0 珠海艺术职业学院 0 0 高职类 0 民办(专科) 广东 珠海市 0 +105127 0 0 班戈大学 Bangor University 1 0 NULL 0 NULL NULL NULL 0 +103033 0 0 班贝克大学 Otto-Friedrich-Universität Bamberg 1 0 NULL 0 NULL NULL NULL 0 +103729 0 0 理海大学 Lehigh University 1 0 NULL 0 NULL NULL NULL 0 +104614 0 0 琉球大学 1 0 NULL 0 NULL NULL NULL 0 +104310 0 0 琵琶湖成蹊运动大学 1 0 NULL 0 NULL NULL NULL 0 +102251 0 0 琼台师范学院 琼台师范高等专科学校 0 0 师范类 0 本科 海南 海口市 0 +103623 0 0 瑞克斯学院 Ricks College 1 0 NULL 0 NULL NULL NULL 0 +104719 0 0 瑞典农业科学大学 Swedish University of Agricultural Sciences 1 0 NULL 0 NULL NULL NULL 0 +104711 0 0 瑞典皇家理工学院 KTH Royal Institute of Technology 1 1 NULL 0 NULL NULL NULL 0 +103576 0 0 瑞吉斯学院 Regis College 1 0 NULL 0 NULL NULL NULL 0 +103420 0 0 瑞尔森大学 Ryerson University 1 0 NULL 0 NULL NULL NULL 0 +103995 0 0 瓜达拉哈拉大学 Universidad de Guadalajara (UDG) 1 0 NULL 0 NULL NULL NULL 0 +104819 0 0 瓦伦西亚大学 Universitat de Valencia 1 0 NULL 0 NULL NULL NULL 0 +104814 0 0 瓦伦西亚理工大学 Universitat Politècnica de València 1 0 NULL 0 NULL NULL NULL 0 +105225 0 0 瓦尔帕莱索大学 Universidad de Valparaíso (UV) 1 0 NULL 0 NULL NULL NULL 0 +105221 0 0 瓦尔帕莱索天主大学 Pontificia Universidad Católica de Valparaíso 1 0 NULL 0 NULL NULL NULL 0 +103759 0 0 瓦拉瓦拉大学 Walla Walla University 1 0 NULL 0 NULL NULL NULL 0 +103388 0 0 瓦格宁根大学 Wageningen University 1 0 NULL 0 NULL NULL NULL 0 +103634 0 0 瓦贝希学院 Wabash College 1 0 NULL 0 NULL NULL NULL 0 +105360 0 0 瓦赫宁根大学 Wageningen University 1 1 NULL 0 NULL NULL NULL 0 +102697 0 0 甘肃中医药大学 甘肃中医学院 0 0 医科类 0 本科 甘肃 兰州市 0 +102720 0 0 甘肃交通职业技术学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102696 0 0 甘肃农业大学 0 0 农林类 0 本科 甘肃 兰州市 0 +102722 0 0 甘肃农业职业技术学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102709 0 0 甘肃医学院 平凉医学高等专科学校 0 0 医科类 0 本科 甘肃 平凉市 0 +102728 0 0 甘肃卫生职业学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102718 0 0 甘肃工业职业技术学院 0 0 高职类 0 专科 甘肃 天水市 0 +102734 0 0 甘肃广播电视大学 0 0 综合类 0 专科(高职) 甘肃 兰州市 0 +102712 0 0 甘肃建筑职业技术学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102704 0 0 甘肃政法学院 0 0 政法类 0 普通本科 甘肃 兰州市 0 +102726 0 0 甘肃有色冶金职业技术学院 0 0 高职类 0 专科 甘肃 金昌市 0 +102725 0 0 甘肃机电职业技术学院 0 0 高职类 0 专科 甘肃 天水市 0 +102717 0 0 甘肃林业职业技术学院 0 0 高职类 0 示范(高职) 甘肃 天水市 0 +102732 0 0 甘肃核工业职工大学 0 0 NULL 0 NULL NULL NULL 0 +102705 0 0 甘肃民族师范学院 0 0 师范类 0 本科 甘肃 甘南藏族自治州 0 +102723 0 0 甘肃畜牧工程职业技术学院 0 0 高职类 0 专科 甘肃 武威市 0 +105568 0 0 甘肃能源化工职业学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102716 0 0 甘肃警察职业学院 0 0 高职类 0 专科 甘肃 兰州市 0 +105566 0 0 甘肃财贸职业学院 0 0 高职类 0 专科 甘肃 兰州市 0 +102724 0 0 甘肃钢铁职业技术学院 0 0 高职类 0 专科 甘肃 嘉峪关市 0 +104977 0 0 甘露大学 Amrita University 1 0 NULL 0 NULL NULL NULL 0 +104462 0 0 産业医科大学 1 0 NULL 0 NULL NULL NULL 0 +104195 0 0 産能大学 1 0 NULL 0 NULL NULL NULL 0 +104204 0 0 田园调布学园大学 1 0 NULL 0 NULL NULL NULL 0 +103732 0 0 田纳西大学 University of Tennessee 1 0 NULL 0 NULL NULL NULL 0 +103976 0 0 田纳西大学健康科学中心 University of Tennessee Health Science Center 1 0 NULL 0 NULL NULL NULL 0 +105247 0 0 田纳西大学诺克斯维尔分校 The University of Tenneessee, Knoxville 1 0 NULL 0 NULL NULL NULL 0 +104382 0 0 甲南大学 1 0 NULL 0 NULL NULL NULL 0 +104383 0 0 甲南女子大学 1 0 NULL 0 NULL NULL NULL 0 +104381 0 0 甲子园大学 1 0 NULL 0 NULL NULL NULL 0 +102327 2 0 电子科技大学 0 0 理工类 1 本科 四川 成都市 1 +102149 0 0 电子科技大学中山学院 0 0 综合类 0 独立学院 广东 中山市 0 +102444 0 0 电子科技大学成都学院 0 0 综合类 0 独立学院 四川 成都市 0 +105475 0 0 电子科技大学(沙河校区) 0 0 理工类 0 其他 四川 成都市 0 +104666 0 0 电气通信大学 The University of Electro-Communications 1 0 NULL 0 NULL NULL NULL 0 +104405 0 0 畿央大学 1 0 NULL 0 NULL NULL NULL 0 +102995 0 0 白俄罗斯国立大学 Belarusian State University 1 0 NULL 0 NULL NULL NULL 0 +105338 0 0 白俄罗斯国立技术大学 BELARUSSIAN NATIONAL TECHNICAL UNIVERSITY 1 0 NULL 0 NULL NULL NULL 0 +102996 0 0 白俄罗斯国立理工大学 Belarussian National Technical University 1 0 NULL 0 NULL NULL NULL 0 +100628 0 0 白城医学高等专科学校 0 0 高职类 0 专科 吉林 白城市 0 +100600 0 0 白城师范学院 0 0 师范类 0 本科 吉林 白城市 0 +100632 0 0 白城职业技术学院 0 0 高职类 0 专科 吉林 白城市 0 +102954 0 0 白沙瓦大学 University of Peshawar 1 0 NULL 0 NULL NULL NULL 0 +104170 0 0 白百合女子大学 1 0 NULL 0 NULL NULL NULL 0 +105174 0 0 白金汉大学 University of Buckingham 1 0 NULL 0 NULL NULL NULL 0 +102727 0 0 白银矿冶职业技术学院 0 0 高职类 0 专科 甘肃 白银市 0 +104094 0 0 白鸥大学 1 0 NULL 0 NULL NULL NULL 0 +102179 0 0 百色学院 0 0 综合类 0 本科 广西 百色市 0 +102215 0 0 百色职业学院 0 0 高职类 0 专科 广西 百色市 0 +104929 0 0 的里雅斯特大学 University of Trieste 1 0 NULL 0 NULL NULL NULL 0 +104949 0 0 的里雅斯特高等国际学院 International School for Advanced Studies 1 0 NULL 0 NULL NULL NULL 0 +103404 0 0 皇后大学 Queen's University at Kingston 1 0 NULL 0 NULL NULL NULL 0 +104283 0 0 皇学馆大学 1 0 NULL 0 NULL NULL NULL 0 +105157 0 0 皇家兽医学院 Royal Veterinary College 1 0 NULL 0 NULL NULL NULL 0 +105176 0 0 皇家农业大学 Royal Agricultural University 1 0 NULL 0 NULL NULL NULL 0 +105064 0 0 皇家北方音乐学院 Royal Northern College of Music, Manchester 1 0 NULL 0 NULL NULL NULL 0 +102920 0 0 皇家墨尔本理工大学 RMIT University 1 0 NULL 0 NULL NULL NULL 0 +105061 0 0 皇家艺术学院 Royal College of Art 1 0 NULL 0 NULL NULL NULL 0 +105042 0 0 皇家音乐学院 Royal Academy of Music 1 0 NULL 0 NULL NULL NULL 0 +101229 0 0 皖北卫生职业学院 0 0 高职类 0 专科 安徽 宿州市 0 +101132 0 0 皖南医学院 0 0 医科类 0 本科 安徽 芜湖市 0 +101246 0 0 皖江工学院 河海大学文天学院 0 0 综合类 0 民办(本科) 安徽 马鞍山市 0 +101221 0 0 皖西卫生职业学院 0 0 高职类 0 专科 安徽 六安市 0 +101139 0 0 皖西学院 0 0 师范类 0 本科 安徽 六安市 0 +105318 0 0 皮埃尔和玛丽居里大学 Pierre and Marie Curie University 1 1 NULL 0 NULL NULL NULL 0 +101967 0 0 益阳医学高等专科学校 0 0 高职类 0 专科 湖南 益阳市 0 +101989 0 0 益阳教育学院 0 0 师范类 0 专科(高职) 湖南 益阳市 0 +101953 0 0 益阳职业技术学院 0 0 高职类 0 专科 湖南 益阳市 0 +100956 0 0 盐城工业职业技术学院 0 0 高职类 0 专科 江苏 盐城市 0 +100858 0 0 盐城工学院 0 0 理工类 0 本科 江苏 盐城市 0 +100867 0 0 盐城师范学院 0 0 师范类 0 本科 江苏 盐城市 0 +105654 0 0 盐城幼儿师范高等专科学校 0 0 师范类 0 专科 江苏 盐城市 0 +100514 0 0 盘锦职业技术学院 0 0 高职类 0 专科 辽宁 盘锦市 0 +104061 0 0 盛冈大学 1 0 NULL 0 NULL NULL NULL 0 +104194 0 0 相模女子大学 1 0 NULL 0 NULL NULL NULL 0 +104362 0 0 相爱大学 1 0 NULL 0 NULL NULL NULL 0 +102389 0 0 眉山职业技术学院 0 0 高职类 0 专科 四川 眉山市 0 +105661 0 0 眉山药科职业学院 0 0 高职类 0 民办(专科) 四川 眉山市 0 +104062 0 0 石卷専修大学 1 0 NULL 0 NULL NULL NULL 0 +100268 0 0 石家庄人民医学高等专科学校 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100250 0 0 石家庄信息工程职业学院 0 0 高职类 0 专科 河北 石家庄市 0 +100265 0 0 石家庄医学高等专科学校 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100240 0 0 石家庄城市经济职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100199 0 0 石家庄学院 0 0 师范类 0 本科 河北 石家庄市 0 +100259 0 0 石家庄工商职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100239 0 0 石家庄工程职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100277 0 0 石家庄幼儿师范高等专科学校 0 0 高职类 0 专科 河北 石家庄市 0 +100260 0 0 石家庄理工职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100261 0 0 石家庄科技信息职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100269 0 0 石家庄科技工程职业学院 0 0 高职类 0 专科 河北 石家庄市 0 +100271 0 0 石家庄科技职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100184 0 0 石家庄经济学院 0 0 财经类 0 普通本科 河北 石家庄市 0 +100266 0 0 石家庄经济职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100226 0 0 石家庄职业技术学院 0 0 高职类 0 专科 河北 石家庄市 0 +100285 0 0 石家庄职工大学 0 0 综合类 0 专科(高职) 河北 石家庄市 0 +100247 0 0 石家庄财经职业学院 0 0 高职类 0 民办(专科) 河北 石家庄市 0 +100257 0 0 石家庄邮电职业技术学院 0 0 高职类 0 专科 河北 石家庄市 0 +100236 0 0 石家庄铁路职业技术学院 0 0 高职类 0 示范(高职) 河北 石家庄市 0 +100203 0 0 石家庄铁道大学 0 0 理工类 0 本科 河北 石家庄市 0 +100299 0 0 石家庄铁道大学四方学院 0 0 理工类 0 独立学院 河北 石家庄市 0 +104544 0 0 石川县立大学 1 0 NULL 0 NULL NULL NULL 0 +104545 0 0 石川县立看护大学 1 0 NULL 0 NULL NULL NULL 0 +102777 1 0 石河子大学 0 0 综合类 1 本科 新疆 自治区直辖县级行政区划 0 +102824 0 0 石河子大学科技学院 0 0 理工类 0 独立学院 新疆 自治区直辖县级行政区划 0 +100909 0 0 硅湖职业技术学院 0 0 高职类 0 民办(专科) 江苏 苏州市 0 +104077 0 0 磐城明星大学 1 0 NULL 0 NULL NULL NULL 0 +101725 0 0 磨料磨具工业职工大学 0 0 理工类 0 专科(高职) 河南 郑州市 0 +104530 0 0 神奈川县立保健福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104696 0 0 神奈川大学 Kanagawa University 1 0 NULL 0 NULL NULL NULL 0 +104189 0 0 神奈川工科大学 1 0 NULL 0 NULL NULL NULL 0 +104190 0 0 神奈川齿科大学 1 0 NULL 0 NULL NULL NULL 0 +104390 0 0 神户亲和女子大学 1 0 NULL 0 NULL NULL NULL 0 +104387 0 0 神户国际大学 1 0 NULL 0 NULL NULL NULL 0 +104388 0 0 神户夙川学院大学 1 0 NULL 0 NULL NULL NULL 0 +104627 0 0 神户大学 Kobe University 1 0 NULL 0 NULL NULL NULL 0 +104392 0 0 神户女子大学 1 0 NULL 0 NULL NULL NULL 0 +104391 0 0 神户女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104385 0 0 神户学院大学 1 0 NULL 0 NULL NULL NULL 0 +104395 0 0 神户山手大学 1 0 NULL 0 NULL NULL NULL 0 +104555 0 0 神户市外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104556 0 0 神户市看护大学 1 0 NULL 0 NULL NULL NULL 0 +104393 0 0 神户时尚造形大学 1 0 NULL 0 NULL NULL NULL 0 +104389 0 0 神户松荫女子学院大学 1 0 NULL 0 NULL NULL NULL 0 +104384 0 0 神户海星女子学院大学 1 0 NULL 0 NULL NULL NULL 0 +104386 0 0 神户艺术工科大学 1 0 NULL 0 NULL NULL NULL 0 +104394 0 0 神户药科大学 1 0 NULL 0 NULL NULL NULL 0 +104133 0 0 神田外语大学 1 0 NULL 0 NULL NULL NULL 0 +103269 0 0 祥明大学 1 0 NULL 0 NULL NULL NULL 0 +104547 0 0 福井县立大学 1 0 NULL 0 NULL NULL NULL 0 +104693 0 0 福井大学 University of Fukui 1 0 NULL 0 NULL NULL NULL 0 +104306 0 0 福井工业大学 1 0 NULL 0 NULL NULL NULL 0 +104573 0 0 福冈县立大学 1 0 NULL 0 NULL NULL NULL 0 +104475 0 0 福冈国际大学 1 0 NULL 0 NULL NULL NULL 0 +104472 0 0 福冈大学 1 0 NULL 0 NULL NULL NULL 0 +104574 0 0 福冈女子大学 1 0 NULL 0 NULL NULL NULL 0 +104477 0 0 福冈女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104474 0 0 福冈工业大学 1 0 NULL 0 NULL NULL NULL 0 +104612 0 0 福冈教育大学 1 0 NULL 0 NULL NULL NULL 0 +104473 0 0 福冈经济大学 1 0 NULL 0 NULL NULL NULL 0 +104476 0 0 福冈齿科大学 1 0 NULL 0 NULL NULL NULL 0 +103896 0 0 福坦莫大学 Fordham University 1 0 NULL 0 NULL NULL NULL 0 +104436 0 0 福山大学 1 0 NULL 0 NULL NULL NULL 0 +104437 0 0 福山平成大学 1 0 NULL 0 NULL NULL NULL 0 +104522 0 0 福岛县立医科大学 1 0 NULL 0 NULL NULL NULL 0 +104592 0 0 福岛大学 1 0 NULL 0 NULL NULL NULL 0 +104081 0 0 福岛学院大学 1 0 NULL 0 NULL NULL NULL 0 +105429 0 0 福州墨尔本理工职业学院 0 0 理工类 0 专科(高职) 福建 福州市 0 +101268 0 0 福州外语外贸学院 0 0 外语类 0 民办(本科) 福建 福州市 0 +101249 1 0 福州大学 0 0 理工类 1 本科 福建 福州市 0 +101336 0 0 福州大学至诚学院 0 0 综合类 0 独立学院 福建 福州市 0 +101301 0 0 福州理工学院 福州海峡职业技术学院 0 0 理工类 0 民办(本科) 福建 福州市 0 +101297 0 0 福州科技职业技术学院 0 0 高职类 0 民办(专科) 福建 福州市 0 +101277 0 0 福州职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101287 0 0 福州英华职业学院 0 0 高职类 0 民办(专科) 福建 福州市 0 +101309 0 0 福州软件职业技术学院 0 0 高职类 0 民办(专科) 福建 福州市 0 +101294 0 0 福州黎明职业技术学院 0 0 高职类 0 民办(专科) 福建 福州市 0 +101254 0 0 福建中医药大学 0 0 医科类 0 本科 福建 福州市 0 +101312 0 0 福建体育职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101279 0 0 福建信息职业技术学院 0 0 高职类 0 骨干(高职) 福建 福州市 0 +101283 0 0 福建农业职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101251 0 0 福建农林大学 0 0 农林类 0 本科 福建 福州市 0 +101332 0 0 福建农林大学东方学院 0 0 综合类 0 民办(本科) 福建 福州市 0 +101337 0 0 福建农林大学金山学院 0 0 综合类 0 独立学院 福建 福州市 0 +101253 0 0 福建医科大学 0 0 医科类 0 本科 福建 福州市 0 +101276 0 0 福建华南女子职业学院 0 0 高职类 0 民办(专科) 福建 福州市 0 +101285 0 0 福建卫生职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101272 0 0 福建商学院 福建商业高等专科学校 0 0 财经类 0 本科 福建 福州市 0 +101299 0 0 福建对外经济贸易职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101250 0 0 福建工程学院 0 0 理工类 0 本科 福建 福州市 0 +101255 0 0 福建师范大学 0 0 师范类 0 本科 福建 福州市 0 +101331 0 0 福建师范大学协和学院 0 0 综合类 0 独立学院 福建 福州市 0 +101333 0 0 福建师范大学闽南科技学院 0 0 综合类 0 独立学院 福建 泉州市 0 +101304 0 0 福建幼儿师范高等专科学校 0 0 师范类 0 专科 福建 福州市 0 +101327 0 0 福建广播电视大学 福建省广播电视大学 0 0 综合类 0 专科(高职) 福建 福州市 0 +101326 0 0 福建教育学院 0 0 师范类 0 专科(高职) 福建 福州市 0 +101278 0 0 福建林业职业技术学院 0 0 高职类 0 骨干(高职) 福建 南平市 0 +101280 0 0 福建水利电力职业技术学院 0 0 高职类 0 专科 福建 三明市 0 +101269 0 0 福建江夏学院 0 0 财经类 0 本科 福建 福州市 0 +101302 0 0 福建生物工程职业技术学院 0 0 高职类 0 专科 福建 福州市 0 +101281 0 0 福建电力职业技术学院 0 0 高职类 0 专科 福建 泉州市 0 +101271 0 0 福建船政交通职业学院 0 0 高职类 0 示范(高职) 福建 福州市 0 +101303 0 0 福建艺术职业学院 0 0 高职类 0 专科 福建 福州市 0 +101292 0 0 福建警官职业学院 0 0 高职类 0 专科 福建 福州市 0 +101264 0 0 福建警察学院 0 0 政法类 0 本科 福建 福州市 0 +102897 0 0 福林德斯大学 Flinders University 1 0 NULL 0 NULL NULL NULL 0 +104136 0 0 秀明大学 1 0 NULL 0 NULL NULL NULL 0 +102061 0 0 私立华联学院 0 0 高职类 0 民办(专科) 广东 广州市 0 +104519 0 0 秋田县立大学 1 0 NULL 0 NULL NULL NULL 0 +104691 0 0 秋田大学 Akita University 1 0 NULL 0 NULL NULL NULL 0 +104074 0 0 秋田看护福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104325 0 0 种智院大学 1 0 NULL 0 NULL NULL NULL 0 +104746 0 0 科伦坡大学 University of Colombo 1 0 NULL 0 NULL NULL NULL 0 +102866 0 0 科克大学学院 University College Cork 1 0 NULL 0 NULL NULL NULL 0 +104766 0 0 科奇大学 Koc University 1 0 NULL 0 NULL NULL NULL 0 +103461 0 0 科威特大学 Kuwait University 1 0 NULL 0 NULL NULL NULL 0 +105343 0 0 科尔多瓦国立大学 National University of Córdoba 1 0 NULL 0 NULL NULL NULL 0 +104841 0 0 科尔多瓦大学 University of Cordoba 1 0 NULL 0 NULL NULL NULL 0 +100425 0 0 科尔沁艺术职业学院 0 0 高职类 0 专科 内蒙 通辽市 0 +103060 0 0 科布伦茨-兰道大学 Universität Koblenz-Landau 1 0 NULL 0 NULL NULL NULL 0 +104749 0 0 科希策技术大学 Technical University of Košice 1 0 NULL 0 NULL NULL NULL 0 +102921 0 0 科廷大学 Curtin University 1 0 NULL 0 NULL NULL NULL 0 +103040 0 0 科特布斯勃兰登堡工业大学 Brandenburgische Technische Universität Cottbus 1 0 NULL 0 NULL NULL NULL 0 +103564 0 0 科罗拉多大学 University of Colorado 1 0 NULL 0 NULL NULL NULL 0 +103829 0 0 科罗拉多大学丹佛分校 University of Colorado, Denver 1 0 NULL 0 NULL NULL NULL 0 +103804 0 0 科罗拉多大学博尔德分校 University of Colorado Boulder 1 0 NULL 0 NULL NULL NULL 0 +103565 0 0 科罗拉多大学圆石市分校 1 0 NULL 0 NULL NULL NULL 0 +103566 0 0 科罗拉多大学科罗拉多泉分校 1 0 NULL 0 NULL NULL NULL 0 +103846 0 0 科罗拉多州立大学 Colorado State University 1 0 NULL 0 NULL NULL NULL 0 +103572 0 0 科罗拉多技术学院 Colorado Technical College 1 0 NULL 0 NULL NULL NULL 0 +103913 0 0 科罗拉多矿业学院 Colorado School of Mines 1 0 NULL 0 NULL NULL NULL 0 +103569 0 0 科罗拉多西方州立学院 Western State College of Colorado 1 0 NULL 0 NULL NULL NULL 0 +104022 0 0 科英布拉大学 University of Coimbra 1 0 NULL 0 NULL NULL NULL 0 +104980 0 0 科钦科技大学 Cochin University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103098 0 0 科隆大学 University of Cologne 1 0 NULL 0 NULL NULL NULL 0 +103061 0 0 科隆应用技术大学 Fachhochschule Köln 1 0 NULL 0 NULL NULL NULL 0 +103978 0 0 秘鲁天主大学 Pontificia Universidad Católica del Perú 1 0 NULL 0 NULL NULL NULL 0 +100238 0 0 秦皇岛职业技术学院 0 0 高职类 0 骨干(高职) 河北 秦皇岛市 0 +104052 0 0 稚内北星学园大学 1 0 NULL 0 NULL NULL NULL 0 +104825 0 0 穆尔西亚大学 University of Murcia 1 0 NULL 0 NULL NULL NULL 0 +103981 0 0 穆罕默德五世大学 Université Mohammed V de Rabat 1 0 NULL 0 NULL NULL NULL 0 +104741 0 0 穆罕默德伊本大学 Al-Imam Muhammed Ibn Saud Islamic University 1 0 NULL 0 NULL NULL NULL 0 +100977 0 0 空军第一职工大学 0 0 其他 0 专科(高职) 江苏 南京市 0 +100556 0 0 空军第四职工大学 0 0 NULL 0 NULL NULL NULL 0 +104764 0 0 突尼斯萨尔瓦多马纳尔大学 University of Tunis El Manar 1 0 NULL 0 NULL NULL NULL 0 +104496 0 0 立命馆亚洲太平洋大学 1 0 NULL 0 NULL NULL NULL 0 +104654 0 0 立命馆大学 Ritsumeikan University 1 0 NULL 0 NULL NULL NULL 0 +104186 0 0 立教大学 1 0 NULL 0 NULL NULL NULL 0 +104187 0 0 立正大学 1 0 NULL 0 NULL NULL NULL 0 +104504 0 0 第一工业大学 1 0 NULL 0 NULL NULL NULL 0 +101716 0 0 第一拖拉机制造厂拖拉机学院 0 0 理工类 0 专科(高职) 河南 洛阳市 0 +104465 0 0 第一福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104466 0 0 第一药科大学 1 0 NULL 0 NULL NULL NULL 0 +103247 0 0 第比利斯国立大学 Ivane Javakhishvili Tbilisi State University 1 0 NULL 0 NULL NULL NULL 0 +104083 0 0 筑波国际大学 1 0 NULL 0 NULL NULL NULL 0 +104625 0 0 筑波大学 University of Tsukuba 1 0 NULL 0 NULL NULL NULL 0 +104084 0 0 筑波学院大学 1 0 NULL 0 NULL NULL NULL 0 +104593 0 0 筑波技术大学 1 0 NULL 0 NULL NULL NULL 0 +104467 0 0 筑紫女学园大学 1 0 NULL 0 NULL NULL NULL 0 +105286 0 0 米兰圣心天主教大学 Catholic University of Sacred Heart 1 0 NULL 0 NULL NULL NULL 0 +104916 0 0 米兰大学 University of Milan 1 0 NULL 0 NULL NULL NULL 0 +104908 0 0 米兰比卡可大学 University of Milan - Bicocca 1 0 NULL 0 NULL NULL NULL 0 +104925 0 0 米兰比可卡大学 University of Milano-Bicocca 1 0 NULL 0 NULL NULL NULL 0 +104909 0 0 米兰理工大学 Politecnico di Milano 1 0 NULL 0 NULL NULL NULL 0 +104025 0 0 米尼奥大学 University of Minho 1 0 NULL 0 NULL NULL NULL 0 +105139 0 0 米德塞斯大学 Middlesex University 1 0 NULL 0 NULL NULL NULL 0 +105333 0 0 米纳斯吉拉斯州联邦大学 Federal University of Minas Gerais 1 0 NULL 0 NULL NULL NULL 0 +102968 0 0 米纳斯吉拉斯联邦大学 Universidade Federal de Minas Gerais 1 0 NULL 0 NULL NULL NULL 0 +103699 0 0 糕包联盟学院 The Cooper Union for the Advancement of Science & Art 1 0 NULL 0 NULL NULL NULL 0 +105145 0 0 索尔福德大学 University of Salford 1 0 NULL 0 NULL NULL NULL 0 +105065 0 0 索耳福大学 University of Salford 1 0 NULL 0 NULL NULL NULL 0 +102997 0 0 索菲亚大学 Sofia University St. Kliment Ohridski 1 0 NULL 0 NULL NULL NULL 0 +103542 0 0 索诺马州立大学 Sonoma State University 1 0 NULL 0 NULL NULL NULL 0 +102566 0 0 红河卫生职业学院 0 0 高职类 0 专科 云南 红河哈尼族彝族自治州 0 +102521 0 0 红河学院 0 0 综合类 0 本科 云南 红河哈尼族彝族自治州 0 +105190 0 0 约克圣约翰大学 York St John University 1 0 NULL 0 NULL NULL NULL 0 +105071 0 0 约克大学 University of York 1 1 NULL 0 NULL NULL NULL 0 +105213 0 0 约旦大学 University of Jordan 1 0 NULL 0 NULL NULL NULL 0 +105214 0 0 约旦科技大学 Jordan University of Science & Technology 1 0 NULL 0 NULL NULL NULL 0 +105305 0 0 约翰内斯古腾堡大学美因茨 Johannes Gutenberg University Mainz 1 0 NULL 0 NULL NULL NULL 0 +104006 0 0 约翰内斯堡大学 University of Johannesburg 1 0 NULL 0 NULL NULL NULL 0 +103771 0 0 约翰霍普金斯大学 Johns Hopkins University 1 1 NULL 0 NULL NULL NULL 0 +104848 0 0 约阿尼纳大学 University of Ioannina 1 0 NULL 0 NULL NULL NULL 0 +104731 0 0 纳沙泰尔大学 University of Neuchâtel 1 0 NULL 0 NULL NULL NULL 0 +104810 0 0 纳瓦拉大学 University of Navarra 1 0 NULL 0 NULL NULL NULL 0 +105306 0 0 纽伦堡大学 Friedrich Alexander University Erlangen-Nuremberg 1 0 NULL 0 NULL NULL NULL 0 +102890 0 0 纽卡索大学 University of Newcastle 1 0 NULL 0 NULL NULL NULL 0 +105205 0 0 纽曼大学 Newman University, Birmingham 1 0 NULL 0 NULL NULL NULL 0 +103780 0 0 纽约大学 New York University (NYU) 1 1 NULL 0 NULL NULL NULL 0 +103696 0 0 纽约州立大学 State University of New York 1 0 NULL 0 NULL NULL NULL 0 +103964 0 0 纽约州立大学上州医学中心 SUNY Upstate Medical University 1 0 NULL 0 NULL NULL NULL 0 +103959 0 0 纽约州立大学下州医学中心 State University of New York Health Science Center at Brooklyn 1 0 NULL 0 NULL NULL NULL 0 +105245 0 0 纽约州立大学奥尔巴尼分校 State University of New York at Albany 1 0 NULL 0 NULL NULL NULL 0 +103895 0 0 纽约州立大学宾汉姆顿分校 Binghamton University SUNY 1 0 NULL 0 NULL NULL NULL 0 +105238 0 0 纽约州立大学宾汉姆顿大学 The State University of New York at Binghamton 1 0 NULL 0 NULL NULL NULL 0 +105244 0 0 纽约州立大学布法罗分校 University at Buffalo, the State University of New York 1 0 NULL 0 NULL NULL NULL 0 +103819 0 0 纽约州立大学水牛城分校 University at Buffalo SUNY 1 0 NULL 0 NULL NULL NULL 0 +103826 0 0 纽约州立大学石溪分校 Stony Brook University, State University of New York 1 0 NULL 0 NULL NULL NULL 0 +103875 0 0 纽约州立大学阿尔巴尼分校 University at Albany SUNY 1 0 NULL 0 NULL NULL NULL 0 +103848 0 0 纽约市立大学 City University of New York 1 0 NULL 0 NULL NULL NULL 0 +103968 0 0 纽约市立大学亨特学院 CUNY Hunter College 1 0 NULL 0 NULL NULL NULL 0 +103962 0 0 纽约市立大学研究生院 CUNY Graduate School and University Center 1 0 NULL 0 NULL NULL NULL 0 +103697 0 0 纽约市立学院 City College of New York 1 0 NULL 0 NULL NULL NULL 0 +103592 0 0 纽罕文大学 University of New Haven 1 0 NULL 0 NULL NULL NULL 0 +103419 0 0 纽芬兰纪念大学 Memorial University of Newfoundland 1 0 NULL 0 NULL NULL NULL 0 +101021 0 0 绍兴文理学院 0 0 师范类 0 本科 浙江 绍兴市 0 +101114 0 0 绍兴文理学院元培学院 0 0 师范类 0 独立学院 浙江 绍兴市 0 +101070 0 0 绍兴职业技术学院 0 0 高职类 0 民办(专科) 浙江 绍兴市 0 +100675 0 0 绥化学院 0 0 综合类 0 本科 黑龙江 绥化市 0 +100748 0 0 绥化市教育学院 0 0 师范类 0 专科(高职) 黑龙江 绥化市 0 +102883 0 0 维也纳医科大学 Medical University of Vienna 1 0 NULL 0 NULL NULL NULL 0 +102875 0 0 维也纳大学 University of Vienna 1 0 NULL 0 NULL NULL NULL 0 +102876 0 0 维也纳工业大学 Vienna University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103833 0 0 维克森林大学 Wake Forest University 1 0 NULL 0 NULL NULL NULL 0 +103470 0 0 维尔纽斯大学 Vilnius University 1 0 NULL 0 NULL NULL NULL 0 +103471 0 0 维尔纽斯工业大学 Vilnius Gediminas Technical University 1 0 NULL 0 NULL NULL NULL 0 +103106 0 0 维尔茨堡大学 Julius-Maximilians-Universität Würzburg 1 0 NULL 0 NULL NULL NULL 0 +104833 0 0 维戈大学 University of Vigo 1 0 NULL 0 NULL NULL NULL 0 +103730 0 0 维拉诺瓦大学 Villanova University  1 0 NULL 0 NULL NULL NULL 0 +103077 0 0 维滕/黑尔德克大学 Universität Witten/Herdecke 1 0 NULL 0 NULL NULL NULL 0 +102977 0 0 维索萨联邦大学 Universidade Federal de Viçosa-UFV 1 0 NULL 0 NULL NULL NULL 0 +104937 0 0 维罗纳大学 Verona University 1 0 NULL 0 NULL NULL NULL 0 +103689 0 0 维诺纳州立大学 Winona State University 1 0 NULL 0 NULL NULL NULL 0 +102343 0 0 绵阳师范学院 0 0 师范类 0 本科 四川 绵阳市 0 +102378 0 0 绵阳职业技术学院 0 0 高职类 0 示范(高职) 四川 绵阳市 0 +104709 0 0 综合研究大学院大学 The Graduate University for Advanced Studies 1 0 NULL 0 NULL NULL NULL 0 +103667 0 0 缅因大学 University of Maine 1 0 NULL 0 NULL NULL NULL 0 +105084 0 0 罗伯特哥顿大学 The Robert Gordon University,Aberdeen 1 0 NULL 0 NULL NULL NULL 0 +105249 0 0 罗伯特戈登大学 Robert Gordon University, Aberdeen 1 0 NULL 0 NULL NULL NULL 0 +105150 0 0 罗伯特戈顿大学 Robert Gordon University 1 0 NULL 0 NULL NULL NULL 0 +104878 0 0 罗兰大学 Eotvos Lorand University 1 0 NULL 0 NULL NULL NULL 0 +103015 0 0 罗兹大学 University of Lodz 1 0 NULL 0 NULL NULL NULL 0 +103022 0 0 罗兹工业大学 Łodz University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103805 0 0 罗切斯特大学 University of Rochester 1 0 NULL 0 NULL NULL NULL 0 +103936 0 0 罗切斯特理工学院 Rochester Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +102080 0 0 罗定职业技术学院 0 0 高职类 0 专科 广东 云浮市 0 +103151 0 0 罗巴切夫斯基州立大学 Lobachevsky University 1 0 NULL 0 NULL NULL NULL 0 +103701 0 0 罗彻斯特大学 University of Rochester 1 0 NULL 0 NULL NULL NULL 0 +103731 0 0 罗得岛设计学院 Rhode Island School of Design 1 0 NULL 0 NULL NULL NULL 0 +103961 0 0 罗德岛大学 University of Rhode Island 1 0 NULL 0 NULL NULL NULL 0 +104007 0 0 罗德斯大学 Rhodes University 1 0 NULL 0 NULL NULL NULL 0 +103030 0 0 罗斯基勒大学 Roskilde University 1 0 NULL 0 NULL NULL NULL 0 +103120 0 0 罗斯托克大学 Universität Rostock 1 0 NULL 0 NULL NULL NULL 0 +103816 0 0 罗格斯大学 Rutgers University - New Brunswick 1 0 NULL 0 NULL NULL NULL 0 +103872 0 0 罗格斯大学纽华克分校 Rutgers - The State University of New Jersey, Newark 1 0 NULL 0 NULL NULL NULL 0 +105184 0 0 罗汉普顿大学 Roehampton University 1 0 NULL 0 NULL NULL NULL 0 +104829 0 0 罗维拉大学 University of Rovira i Virgili 1 0 NULL 0 NULL NULL NULL 0 +103240 0 0 罗萨里奥大学 Universidad del Rosario 1 0 NULL 0 NULL NULL NULL 0 +103560 0 0 罗马林达大学 Loma Linda University 1 0 NULL 0 NULL NULL NULL 0 +104913 0 0 罗马第一大学 Sapienza University of Rome 1 0 NULL 0 NULL NULL NULL 0 +104932 0 0 罗马第三大学 Università degli studi Roma Tre 1 0 NULL 0 NULL NULL NULL 0 +104920 0 0 罗马第二大学 University of Rome University of Rome "Tor Vergata" 1 0 NULL 0 NULL NULL NULL 0 +104424 0 0 美作大学 1 0 NULL 0 NULL NULL NULL 0 +103844 0 0 美利坚大学 American University 1 0 NULL 0 NULL NULL NULL 0 +103102 0 0 美因茨大学 Johannes Gutenberg Universität Mainz 1 0 NULL 0 NULL NULL NULL 0 +103678 0 0 美国东北大学 Northeastern University 1 0 NULL 0 NULL NULL NULL 0 +103939 0 0 美国奥克兰大学 Oakland University 1 0 NULL 0 NULL NULL NULL 0 +103668 0 0 美国新英格兰大学 University of New England 1 0 NULL 0 NULL NULL NULL 0 +103574 0 0 美国空军军官学校 United States Air Force Academy 1 0 NULL 0 NULL NULL NULL 0 +103753 0 0 美国管理科技大学 Template 1 0 NULL 0 NULL NULL NULL 0 +103626 0 0 美国西北大学 Northwestern University 1 0 NULL 0 NULL NULL NULL 0 +105281 0 0 美国贝鲁特大学 American University of Beirut 1 0 NULL 0 NULL NULL NULL 0 +103900 0 0 美国迈阿密大学 Miami University 1 0 NULL 0 NULL NULL NULL 0 +104524 0 0 群马县立县民健康科学大学 1 0 NULL 0 NULL NULL NULL 0 +104525 0 0 群马县立女子大学 1 0 NULL 0 NULL NULL NULL 0 +104645 0 0 群马大学 Gunma University 1 0 NULL 0 NULL NULL NULL 0 +104105 0 0 群马帕斯大学 1 0 NULL 0 NULL NULL NULL 0 +104098 0 0 群马社会福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104366 0 0 羽衣国际大学 1 0 NULL 0 NULL NULL NULL 0 +103366 0 0 翰林大学 Hallym University 1 0 NULL 0 NULL NULL NULL 0 +103751 0 0 老道明大学 Old Dominion University 1 0 NULL 0 NULL NULL NULL 0 +105131 0 0 考文垂大学 Coventry University 1 0 NULL 0 NULL NULL NULL 0 +103472 0 0 考纳斯工业大学 Kaunas University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104783 0 0 耶尔德兹理工大学 Yıldız Technical University 1 0 NULL 0 NULL NULL NULL 0 +103057 0 0 耶拿大学 Friedrich-Schiller-Universität Jena 1 0 NULL 0 NULL NULL NULL 0 +104901 0 0 耶路撒冷希伯来大学 The Hebrew University of Jerusalem 1 1 NULL 0 NULL NULL NULL 0 +103770 0 0 耶鲁大学 Yale University 1 1 NULL 0 NULL NULL NULL 0 +101459 0 0 聊城大学 0 0 综合类 0 本科 山东 聊城市 0 +101590 0 0 聊城大学东昌学院 0 0 综合类 0 独立学院 山东 聊城市 0 +101576 0 0 聊城教育学院 山东省聊城教育学院 0 0 综合类 0 专科(高职) 山东 聊城市 0 +101510 0 0 聊城职业技术学院 0 0 高职类 0 专科 山东 聊城市 0 +103665 0 0 联合学院 Unity College 1 0 NULL 0 NULL NULL NULL 0 +102989 0 0 联邦戈亚大学 Federal University of Goiás 1 0 NULL 0 NULL NULL NULL 0 +102104 0 0 肇庆医学高等专科学校 0 0 医药类 0 专科(高职) 广东 肇庆市 0 +102023 0 0 肇庆学院 0 0 师范类 0 本科 广东 肇庆市 0 +103860 0 0 肯塔基大学 University of Kentucky 1 0 NULL 0 NULL NULL NULL 0 +103639 0 0 肯塔基州立大学 Kentucky State University 1 0 NULL 0 NULL NULL NULL 0 +103645 0 0 肯塔基社区暨科技学院 Kentucky Community and Technical College 1 0 NULL 0 NULL NULL NULL 0 +105124 0 0 肯特大学 University of Kent 1 0 NULL 0 NULL NULL NULL 0 +103898 0 0 肯特州立大学 Kent State University 1 0 NULL 0 NULL NULL NULL 0 +104831 0 0 胡安卡洛斯国王大学 King Juan Carlos University 1 0 NULL 0 NULL NULL NULL 0 +104092 0 0 自治医科大学 1 0 NULL 0 NULL NULL NULL 0 +103416 0 0 舍布鲁克大学 Université de Sherbrooke 1 0 NULL 0 NULL NULL NULL 0 +105319 0 0 艾克斯-马赛大学 Aix-Marseille Université 1 0 NULL 0 NULL NULL NULL 0 +105182 0 0 艾吉希尔大学 Edge Hill University 1 0 NULL 0 NULL NULL NULL 0 +102855 0 0 艾因夏姆斯大学 Ain Shams University 1 0 NULL 0 NULL NULL NULL 0 +105024 0 0 艾塞克斯大学 University of Essex 1 0 NULL 0 NULL NULL NULL 0 +103635 0 0 艾奥瓦大学 University of Iowa 1 0 NULL 0 NULL NULL NULL 0 +103636 0 0 艾奥瓦州立大学 Iowa State University 1 0 NULL 0 NULL NULL NULL 0 +105004 0 0 艾尔朗加大学 Airlangga University 1 0 NULL 0 NULL NULL NULL 0 +103041 0 0 艾希施泰特天主教大学 Katholische Universität Eichstätt 1 0 NULL 0 NULL NULL NULL 0 +103615 0 0 艾文理大学 Emory University 1 0 NULL 0 NULL NULL NULL 0 +102859 0 0 艾斯尤特大学 Assiut University 1 0 NULL 0 NULL NULL NULL 0 +104928 0 0 艾米利亚大学 University of Modena and Reggio Emilia 1 0 NULL 0 NULL NULL NULL 0 +103797 0 0 艾茉莉大学 Emory University 1 0 NULL 0 NULL NULL NULL 0 +102857 0 0 艾资哈尔大学 Al Azhar University 1 0 NULL 0 NULL NULL NULL 0 +105488 0 0 芜湖信息技术职业学院 0 0 高职类 0 专科 安徽 芜湖市 0 +101158 0 0 芜湖职业技术学院 0 0 高职类 0 示范(高职) 安徽 芜湖市 0 +103767 0 0 芝加哥大学 University of Chicago 1 1 NULL 0 NULL NULL NULL 0 +103890 0 0 芝加哥洛约拉大学 Loyola University Chicago 1 0 NULL 0 NULL NULL NULL 0 +104702 0 0 芝浦工業大学 Shibaura Institute of Technology Tokyo 1 0 NULL 0 NULL NULL NULL 0 +104374 0 0 芦屋大学 1 0 NULL 0 NULL NULL NULL 0 +104327 0 0 花园大学 1 0 NULL 0 NULL NULL NULL 0 +102850 0 0 苏丹卡布斯大学 Sultan Qaboos University 1 0 NULL 0 NULL NULL NULL 0 +102862 0 0 苏伊士运河大学 Suez Canal University 1 0 NULL 0 NULL NULL NULL 0 +104760 0 0 苏兰拉里技术大学 Suranaree University of Technology 1 0 NULL 0 NULL NULL NULL 0 +103652 0 0 苏利文大学 Sullivan University 1 0 NULL 0 NULL NULL NULL 0 +100968 0 0 苏州信息职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100955 0 0 苏州健雄职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100929 0 0 苏州农业职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100922 0 0 苏州卫生职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100843 1 0 苏州大学 0 0 综合类 1 本科 江苏 苏州市 0 +100999 0 0 苏州大学应用技术学院 0 0 综合类 0 独立学院 江苏 苏州市 0 +100998 0 0 苏州大学文正学院 0 0 综合类 0 独立学院 江苏 苏州市 0 +100970 0 0 苏州工业园区服务外包职业学院 0 0 高职类 0 专科 江苏 苏州市 0 +100930 0 0 苏州工业园区职业技术学院 0 0 高职类 0 示范(高职) 江苏 苏州市 0 +100920 0 0 苏州工业职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100898 0 0 苏州工艺美术职业技术学院 0 0 高职类 0 骨干(高职) 江苏 苏州市 0 +105625 0 0 苏州幼儿师范高等专科学校 0 0 师范类 0 专科 江苏 苏州市 0 +100921 0 0 苏州托普信息职业技术学院 0 0 高职类 0 民办(专科) 江苏 苏州市 0 +100959 0 0 苏州百年职业学院 苏州港大思培科技职业学院 0 0 高职类 0 民办(专科) 江苏 苏州市 0 +100872 0 0 苏州科技大学 苏州科技学院 0 0 理工类 0 本科 江苏 苏州市 0 +101000 0 0 苏州科技大学天平学院 苏州科技学院天平学院 0 0 理工类 0 独立学院 江苏 苏州市 0 +100919 0 0 苏州经贸职业技术学院 0 0 高职类 0 专科 江苏 苏州市 0 +100902 0 0 苏州职业大学 0 0 理工类 0 专科(高职) 江苏 苏州市 0 +100965 0 0 苏州高博软件技术职业学院 0 0 高职类 0 民办(专科) 江苏 苏州市 0 +105212 0 0 苏格兰高地与岛屿大学 University of the Highlands and Islands 1 0 NULL 0 NULL NULL NULL 0 +104800 0 0 苏梅州立大学 Sumy State University 1 0 NULL 0 NULL NULL NULL 0 +104724 0 0 苏黎世大学 University of Zurich 1 1 NULL 0 NULL NULL NULL 0 +104722 0 0 苏黎世联邦理工学院 ETH Zurich - Swiss Federal Institute of Technology 1 1 NULL 0 NULL NULL NULL 0 +104037 0 0 苫小牧驹泽大学 1 0 NULL 0 NULL NULL NULL 0 +105058 0 0 英国公开大学 The Open University,Milton Keynes 1 0 NULL 0 NULL NULL NULL 0 +105196 0 0 英国圣玛丽大学 St Mary's University, Twickenham 1 0 NULL 0 NULL NULL NULL 0 +105202 0 0 英国坎特伯雷大学 Canterbury Christ Church University 1 0 NULL 0 NULL NULL NULL 0 +105133 0 0 英国基尔大学 Keele University 1 0 NULL 0 NULL NULL NULL 0 +105165 0 0 英国林肯大学 University of Lincoln 1 0 NULL 0 NULL NULL NULL 0 +105062 0 0 英国皇家护理学院 Royal College of Nursing 1 0 NULL 0 NULL NULL NULL 0 +105102 0 0 英国约克大学 University of York 1 0 NULL 0 NULL NULL NULL 0 +105106 0 0 英国纽卡斯尔大学 Newcastle University 1 0 NULL 0 NULL NULL NULL 0 +103397 0 0 英属哥伦比亚大学 University of British Columbia 1 1 NULL 0 NULL NULL NULL 0 +105452 0 0 茂名学院高州师范分院 0 0 师范类 0 普通本科 广东 茂名市 0 +102097 0 0 茂名职业技术学院 0 0 高职类 0 专科 广东 茂名市 0 +105005 0 0 茂物农业大学 Bogor Agricultural University 1 0 NULL 0 NULL NULL NULL 0 +103809 0 0 范德堡大学 Vanderbilt University 1 0 NULL 0 NULL NULL NULL 0 +105541 0 0 茅台学院 0 0 综合类 0 民办(本科) 贵州 遵义市 0 +104523 0 0 茨城县立医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104082 0 0 茨城基督教大学 1 0 NULL 0 NULL NULL NULL 0 +104695 0 0 茨城大学 Ibaraki University 1 0 NULL 0 NULL NULL NULL 0 +101842 0 0 荆州教育学院 0 0 综合类 0 专科(高职) 湖北 荆州市 0 +101782 0 0 荆州理工职业学院 0 0 高职类 0 专科 湖北 荆州市 0 +101791 0 0 荆州职业技术学院 0 0 高职类 0 专科 湖北 荆州市 0 +101765 0 0 荆楚理工学院 0 0 理工类 0 本科 湖北 荆门市 0 +105627 0 0 荆门职业学院 0 0 高职类 0 民办(专科) 湖北 荆门市 0 +103334 0 0 草堂大学 1 0 NULL 0 NULL NULL NULL 0 +105049 0 0 药剂学院 School of Pharmacy 1 0 NULL 0 NULL NULL NULL 0 +101265 0 0 莆田学院 0 0 综合类 0 本科 福建 莆田市 0 +103138 0 0 莫斯科国立国际关系学院 Moscow State Institute of International Relations (MGIMO University) 1 0 NULL 0 NULL NULL NULL 0 +103132 0 0 莫斯科国立大学 Lomonosov Moscow State University 1 1 NULL 0 NULL NULL NULL 0 +105265 0 0 莫斯科国立科技大学 The National University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103139 0 0 莫斯科核子研究大学 National Research Nuclear University MEPhI (Moscow Engineering Physics Institute) 1 0 NULL 0 NULL NULL NULL 0 +103137 0 0 莫斯科物理技术学院 Moscow Institute of Physics and Technology (MIPT / Moscow Phystech) 1 0 NULL 0 NULL NULL NULL 0 +103644 0 0 莫瑞州立大学 Murray State University 1 0 NULL 0 NULL NULL NULL 0 +102913 0 0 莫纳什大学 Monash University 1 1 NULL 0 NULL NULL NULL 0 +104763 0 0 莫纳斯提尔大学 University of Monastir 1 0 NULL 0 NULL NULL NULL 0 +105299 0 0 莱布尼茨汉诺威大学 Leibniz University Hannover 1 0 NULL 0 NULL NULL NULL 0 +103789 0 0 莱斯大学 Rice University 1 0 NULL 0 NULL NULL NULL 0 +103430 0 0 莱斯布里奇大学 Lethbridge 1 0 NULL 0 NULL NULL NULL 0 +105112 0 0 莱斯特大学 University of Leicester 1 0 NULL 0 NULL NULL NULL 0 +103111 0 0 莱比锡大学 Universität Leipzig 1 0 NULL 0 NULL NULL NULL 0 +103064 0 0 莱比锡电信应用科技大学 Hochschule für Telekommunikation Leipzig 1 0 NULL 0 NULL NULL NULL 0 +103062 0 0 莱比锡视觉艺术学院 Hochschule für Grafik und Buchkunst Leipzig 1 0 NULL 0 NULL NULL NULL 0 +103063 0 0 莱比锡音乐戏剧学院 Hochschule für Musik und Theater "Felix Mendelssohn Bartholdy" Leipzig 1 0 NULL 0 NULL NULL NULL 0 +101505 0 0 莱芜职业技术学院 0 0 高职类 0 专科 山东 莱芜市 0 +103385 0 0 莱顿大学 Leiden University 1 1 NULL 0 NULL NULL NULL 0 +101496 0 0 菏泽医学专科学校 0 0 高职类 0 专科 山东 菏泽市 0 +101466 0 0 菏泽学院 0 0 综合类 0 本科 山东 菏泽市 0 +101555 0 0 菏泽家政职业学院 0 0 高职类 0 专科 山东 菏泽市 0 +101568 0 0 菏泽职业学院 0 0 高职类 0 专科 山东 菏泽市 0 +105231 0 0 菲利斯女学院大学 1 0 NULL 0 NULL NULL NULL 0 +105302 0 0 菲利普大学马尔堡 Philipps University Marburg 1 0 NULL 0 NULL NULL NULL 0 +103510 0 0 菲尼克斯大学 University of Phoenix 1 0 NULL 0 NULL NULL NULL 0 +103222 0 0 菲律宾圣托马斯大学 University of Santo Tomas 1 0 NULL 0 NULL NULL NULL 0 +103219 0 0 菲律宾大学 University of the Philippines 1 0 NULL 0 NULL NULL NULL 0 +101355 0 0 萍乡学院 0 0 师范类 0 本科 江西 萍乡市 0 +100501 0 0 营口理工学院 0 0 理工类 0 本科 辽宁 营口市 0 +100505 0 0 营口职业技术学院 0 0 高职类 0 专科 辽宁 营口市 0 +104946 0 0 萨兰托大学 University of Salento 1 0 NULL 0 NULL NULL NULL 0 +105237 0 0 萨凡纳州立大学 Savannah State University 1 0 NULL 0 NULL NULL NULL 0 +104940 0 0 萨勒诺大学 University of Salerno 1 0 NULL 0 NULL NULL NULL 0 +105110 0 0 萨塞克斯大学 University of Sussex 1 0 NULL 0 NULL NULL NULL 0 +103109 0 0 萨尔大学 Universität des Saarlandes 1 0 NULL 0 NULL NULL NULL 0 +102882 0 0 萨尔茨堡大学 Paris Lodron University of Salzburg 1 0 NULL 0 NULL NULL NULL 0 +104815 0 0 萨拉戈萨大学 Universidad de Zaragoza 1 0 NULL 0 NULL NULL NULL 0 +103147 0 0 萨拉托夫州立大学 National Research Saratov State University 1 0 NULL 0 NULL NULL NULL 0 +104820 0 0 萨拉曼卡大学 University of Salamanca 1 0 NULL 0 NULL NULL NULL 0 +103412 0 0 萨斯喀彻温大学 University of Saskatchewan 1 0 NULL 0 NULL NULL NULL 0 +104996 0 0 萨斯特拉大学 SASTRA University 1 0 NULL 0 NULL NULL NULL 0 +103462 0 0 萨格勒布大学 University of Zagreb 1 0 NULL 0 NULL NULL NULL 0 +104767 0 0 萨班哲大学 Sabanci University 1 0 NULL 0 NULL NULL NULL 0 +105304 0 0 萨瓦兰德大学 University of Saarland 1 0 NULL 0 NULL NULL NULL 0 +103679 0 0 萨福克大学 Suffolk University 1 0 NULL 0 NULL NULL NULL 0 +104947 0 0 萨萨里大学 University of Sassari 1 0 NULL 0 NULL NULL NULL 0 +105114 0 0 萨里大学 University of Surrey 1 0 NULL 0 NULL NULL NULL 0 +103157 0 0 萨马拉国立航空航天大学 Samara State Aerospace University 1 0 NULL 0 NULL NULL NULL 0 +103154 0 0 萨马拉大学 Samara National Research University (Samara University) 1 0 NULL 0 NULL NULL NULL 0 +105267 0 0 葡萄牙大学 Portuguese Catholic University - UCP 1 0 NULL 0 NULL NULL NULL 0 +104024 0 0 葡萄牙天主大学 Universidade Católica Portuguesa - UCP 1 0 NULL 0 NULL NULL NULL 0 +105268 0 0 葡萄牙新里斯本大学 New University of Lisbon 1 0 NULL 0 NULL NULL NULL 0 +103087 0 0 蒂宾根大学 Eberhard Karls Universität Tübingen 1 0 NULL 0 NULL NULL NULL 0 +103394 0 0 蒂尔堡大学 Tilburg University 1 0 NULL 0 NULL NULL NULL 0 +105006 0 0 蒂波尼格罗大学 Diponegoro University 1 0 NULL 0 NULL NULL NULL 0 +105198 0 0 蒂赛德大学 Teesside University 1 0 NULL 0 NULL NULL NULL 0 +103440 0 0 蒙克顿大学 Moncton 1 0 NULL 0 NULL NULL NULL 0 +103907 0 0 蒙大拿大学 University of Montana Missoula 1 0 NULL 0 NULL NULL NULL 0 +103924 0 0 蒙大拿州立大学 Montana State University 1 0 NULL 0 NULL NULL NULL 0 +103180 0 0 蒙彼利埃大学 Université de Montpellier 1 0 NULL 0 NULL NULL NULL 0 +103202 0 0 蒙彼利埃第三大学 Universit Paul-Valery Montpellier 3 1 0 NULL 0 NULL NULL NULL 0 +104804 0 0 蒙得维的亚大学 Universidad de Montevideo (UM) 1 0 NULL 0 NULL NULL NULL 0 +103005 0 0 蒙斯大学 University of Mons 1 0 NULL 0 NULL NULL NULL 0 +103399 0 0 蒙特利尔大学 Université de Montréal 1 1 NULL 0 NULL NULL NULL 0 +103442 0 0 蒙特圣文森大学 Mount Saint Vincent 1 0 NULL 0 NULL NULL NULL 0 +103429 0 0 蒙特爱立森大学 Mount Allison 1 0 NULL 0 NULL NULL NULL 0 +103505 0 0 蒙特瓦洛大学 1 0 NULL 0 NULL NULL NULL 0 +103997 0 0 蒙特雷大学 Universidad de Monterrey (UDEM) 1 0 NULL 0 NULL NULL NULL 0 +103986 0 0 蒙特雷理工学院 Instituto Tecnológico y de Estudios Superiores de Monterrey 1 0 NULL 0 NULL NULL NULL 0 +105275 0 0 蒙特雷高等技术学院 Technological Institute and of Superior Studies of Monterrey 1 0 NULL 0 NULL NULL NULL 0 +102898 0 0 蒙纳士大学 Monash University 1 0 NULL 0 NULL NULL NULL 0 +104331 0 0 蓝野大学 1 0 NULL 0 NULL NULL NULL 0 +103374 0 0 蔚山国立科技学院 Ulsan National Institute of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103362 0 0 蔚山大学 University of Ulsan 1 0 NULL 0 NULL NULL NULL 0 +103300 0 0 蔚山科技大学 1 0 NULL 0 NULL NULL NULL 0 +104040 0 0 藤女子大学 1 0 NULL 0 NULL NULL NULL 0 +104658 0 0 藤田保健卫生大学 Fujita Health University 1 0 NULL 0 NULL NULL NULL 0 +101131 0 0 蚌埠医学院 0 0 医科类 0 本科 安徽 蚌埠市 0 +101150 0 0 蚌埠学院 0 0 理工类 0 本科 安徽 蚌埠市 0 +101210 0 0 蚌埠经济技术职业学院 0 0 高职类 0 民办(专科) 安徽 蚌埠市 0 +100198 0 0 衡水学院 0 0 综合类 0 本科 河北 衡水市 0 +100242 0 0 衡水职业技术学院 0 0 高职类 0 专科 河北 衡水市 0 +101985 0 0 衡阳工业职工大学 0 0 理工类 0 专科(高职) 湖南 衡阳市 0 +101884 0 0 衡阳师范学院 0 0 师范类 0 本科 湖南 衡阳市 0 +102007 0 0 衡阳师范学院南岳学院 0 0 师范类 0 独立学院 湖南 衡阳市 0 +101036 0 0 衢州学院 0 0 理工类 0 本科 浙江 衢州市 0 +101071 0 0 衢州职业技术学院 0 0 高职类 0 专科 浙江 衢州市 0 +1120 0 0 襄樊广播电视大学 XIANGFAN RADIO&TV UNIVERSITY 襄樊电大 0 0 综合类 0 专科(高职) 湖北 襄樊市 0 +101832 0 0 襄阳汽车职业技术学院 0 0 高职类 0 专科 湖北 襄阳市 0 +101789 0 0 襄阳职业技术学院 0 0 高职类 0 骨干(高职) 湖北 襄阳市 0 +104478 0 0 西九州大学 1 0 NULL 0 NULL NULL NULL 0 +100891 0 0 西交利物浦大学 0 0 理工类 0 中外合作 江苏 苏州市 0 +103266 0 0 西京大学 1 0 NULL 0 NULL NULL NULL 0 +102621 0 0 西京学院 0 0 理工类 0 民办(本科) 陕西 西安市 0 +105208 0 0 西伦敦大学 University of West London 1 0 NULL 0 NULL NULL NULL 0 +103161 0 0 西伯利亚联邦大学 Siberian Federal University 1 0 NULL 0 NULL NULL NULL 0 +103600 0 0 西佛罗利达大学 University of West Florida 1 0 NULL 0 NULL NULL NULL 0 +103609 0 0 西勒大学 Schiller International University 1 0 NULL 0 NULL NULL NULL 0 +102585 2 0 西北农林科技大学 0 0 农林类 1 本科 陕西 咸阳市 1 +102589 1 0 西北大学 0 1 综合类 1 本科 陕西 西安市 0 +102681 0 0 西北大学现代学院 0 0 综合类 0 独立学院 陕西 西安市 0 +102588 2 0 西北工业大学 0 0 理工类 1 本科 陕西 西安市 1 +102688 0 0 西北工业大学明德学院 0 0 综合类 0 普通本科 陕西 西安市 0 +102698 0 0 西北师范大学 0 0 师范类 0 本科 甘肃 兰州市 0 +102736 0 0 西北师范大学知行学院 0 0 其他 0 独立学院 甘肃 兰州市 0 +102605 0 0 西北政法大学 0 0 政法类 0 本科 陕西 西安市 0 +102693 0 0 西北民族大学 0 0 民族类 0 本科 甘肃 兰州市 0 +102669 0 0 西北电业职工大学 0 0 NULL 0 NULL NULL NULL 0 +103622 0 0 西北纳萨瑞恩学院 Northwest Nazarene College 1 0 NULL 0 NULL NULL NULL 0 +102334 0 0 西华大学 0 0 综合类 0 本科 四川 成都市 0 +102342 0 0 西华师范大学 0 0 师范类 0 本科 四川 南充市 0 +103757 0 0 西华盛顿大学 Western Washington University 1 0 NULL 0 NULL NULL NULL 0 +102326 1 0 西南交通大学 0 0 理工类 1 本科 四川 成都市 0 +102449 0 0 西南交通大学希望学院 0 0 综合类 0 独立学院 四川 南充市 0 +103746 0 0 西南医学中心 UT Southwestern Medical Center 1 0 NULL 0 NULL NULL NULL 0 +102338 0 0 西南医科大学 泸州医学院 0 0 医科类 0 本科 四川 泸州市 0 +103748 0 0 西南复临大学 Southwestern Adventist University 1 0 NULL 0 NULL NULL NULL 0 +102262 1 0 西南大学 0 0 综合类 1 本科 重庆 重庆市 0 +104464 0 0 西南女学院大学 1 0 NULL 0 NULL NULL NULL 0 +104463 0 0 西南学院大学 1 0 NULL 0 NULL NULL NULL 0 +102268 0 0 西南政法大学 0 0 政法类 0 本科 重庆 重庆市 0 +102512 0 0 西南林业大学 0 0 农林类 0 本科 云南 昆明市 0 +102350 0 0 西南民族大学 0 0 民族类 0 本科 四川 成都市 0 +102329 0 0 西南石油大学 0 0 理工类 1 本科 四川 成都市 0 +102331 0 0 西南科技大学 0 0 理工类 0 本科 四川 绵阳市 0 +102446 0 0 西南科技大学城市学院 0 0 综合类 0 独立学院 四川 绵阳市 0 +102328 1 0 西南财经大学 0 0 财经类 1 本科 四川 成都市 0 +102448 0 0 西南财经大学天府学院 0 0 财经类 0 独立学院 四川 绵阳市 0 +103719 0 0 西卡罗来纳大学 Western Carolina University 1 0 NULL 0 NULL NULL NULL 0 +102541 0 0 西双版纳职业技术学院 0 0 高职类 0 专科 云南 西双版纳傣族自治州 0 +103947 0 0 西奈山伊坎医学院 Icahn School of Medicine at Mount Sinai 1 0 NULL 0 NULL NULL NULL 0 +102749 0 0 西宁城市职业技术学院 0 0 高职类 0 专科 青海 西宁市 0 +102645 0 0 西安东方亚太职业技术学院 0 0 综合类 0 专科(高职) 陕西 西安市 0 +102584 2 0 西安交通大学 0 0 理工类 1 本科 陕西 西安市 1 +102680 0 0 西安交通大学城市学院 0 0 综合类 0 独立学院 陕西 西安市 0 +102625 0 0 西安交通工程学院 0 0 理工类 0 民办(本科) 陕西 西安市 0 +102606 0 0 西安体育学院 0 0 体育类 0 本科 陕西 西安市 0 +102617 0 0 西安医学院 0 0 医科类 0 本科 陕西 西安市 0 +102661 0 0 西安医学高等专科学校 0 0 高职类 0 专科 陕西 西安市 0 +102637 0 0 西安城市建设职业学院 0 0 高职类 0 民办(专科) 陕西 西安市 0 +102613 0 0 西安培华学院 0 0 综合类 0 民办(本科) 陕西 西安市 0 +102619 0 0 西安外事学院 0 0 财经类 0 民办(本科) 陕西 西安市 0 +102604 0 0 西安外国语大学 0 0 外语类 0 本科 陕西 西安市 0 +102675 0 0 西安外贸职工大学 0 0 其他 0 专科(高职) 陕西 西安市 0 +103402 0 0 西安大略大学 The University of Western Ontario 1 0 NULL 0 NULL NULL NULL 0 +102591 0 0 西安工业大学 0 0 理工类 0 本科 陕西 西安市 0 +102685 0 0 西安工业大学北方信息工程学院 0 0 理工类 0 普通本科 陕西 西安市 0 +102596 0 0 西安工程大学 0 0 理工类 0 本科 陕西 西安市 0 +102679 0 0 西安市广播电视大学 0 0 综合类 0 专科(高职) 陕西 西安市 0 +102673 0 0 西安市职工大学 0 0 其他 0 专科(高职) 陕西 西安市 0 +102592 0 0 西安建筑科技大学 0 0 理工类 0 本科 陕西 西安市 0 +102682 0 0 西安建筑科技大学华清学院 0 0 理工类 0 普通本科 陕西 西安市 0 +102622 0 0 西安思源学院 0 0 理工类 0 民办(本科) 陕西 西安市 0 +102609 0 0 西安文理学院 0 0 师范类 0 本科 陕西 西安市 0 +102618 0 0 西安欧亚学院 0 0 财经类 0 民办(本科) 陕西 西安市 0 +102644 0 0 西安汽车科技职业学院 0 0 理工类 0 专科(高职) 陕西 西安市 0 +102643 0 0 西安海棠职业学院 0 0 高职类 0 民办(专科) 陕西 西安市 0 +102590 0 0 西安理工大学 0 0 理工类 0 本科 陕西 西安市 0 +102691 0 0 西安理工大学高科学院 0 0 理工类 0 独立学院 陕西 西安市 0 +102671 0 0 西安电力机械制造公司机电学院 0 0 理工类 0 其他 陕西 西安市 0 +102629 0 0 西安电力高等专科学校 0 0 高职类 0 专科 陕西 西安市 0 +102587 1 0 西安电子科技大学 0 0 理工类 1 本科 陕西 西安市 0 +102687 0 0 西安电子科技大学长安学院 0 0 理工类 0 独立学院 陕西 西安市 0 +102594 0 0 西安石油大学 0 0 理工类 0 本科 陕西 西安市 0 +102593 0 0 西安科技大学 0 0 理工类 0 本科 陕西 西安市 0 +102689 0 0 西安科技大学高新学院 0 0 理工类 0 普通本科 陕西 西安市 0 +102608 0 0 西安美术学院 0 0 艺术类 0 本科 陕西 西安市 0 +102620 0 0 西安翻译学院 0 0 语言类 0 民办(本科) 陕西 西安市 0 +102650 0 0 西安职业技术学院 0 0 高职类 0 专科 陕西 西安市 0 +102616 0 0 西安航空学院 0 0 理工类 0 本科 陕西 西安市 0 +102632 0 0 西安航空职业技术学院 0 0 高职类 0 示范(高职) 陕西 西安市 0 +102666 0 0 西安航空职工大学 0 0 航空类 0 专科(高职) 陕西 西安市 0 +102614 0 0 西安财经大学 西安财经学院 0 0 财经类 0 本科 陕西 西安市 0 +102683 0 0 西安财经大学行知学院 西安财经学院行知学院 0 0 理工类 0 独立学院 陕西 西安市 0 +102615 0 0 西安邮电大学 0 0 理工类 0 本科 陕西 西安市 0 +102670 0 0 西安铁路工程职工大学 0 0 其他 0 专科(高职) 陕西 西安市 0 +102648 0 0 西安铁路职业技术学院 0 0 高职类 0 专科 陕西 西安市 0 +102607 0 0 西安音乐学院 0 0 艺术类 0 本科 陕西 西安市 0 +102667 0 0 西安飞机工业公司职工工学院 0 0 理工类 0 专科(高职) 陕西 西安市 0 +102636 0 0 西安高新科技职业学院 0 0 高职类 0 民办(专科) 陕西 西安市 0 +103686 0 0 西密歇根大学 Western Michigan University 1 0 NULL 0 NULL NULL NULL 0 +102994 0 0 西巴拉那州立大学 State University of Western Paraná (Unioeste) 1 0 NULL 0 NULL NULL NULL 0 +103596 0 0 西康涅狄格州立大学 Western Connecticut State University 1 0 NULL 0 NULL NULL NULL 0 +104010 0 0 西开普大学 University of the Western Cape 1 0 NULL 0 NULL NULL NULL 0 +103958 0 0 西弗吉尼亚大学 West Virginia University 1 0 NULL 0 NULL NULL NULL 0 +102933 0 0 西悉尼大学 Western Sydney University 1 0 NULL 0 NULL NULL NULL 0 +105069 0 0 西敏寺大学 University of Westminster, London 1 0 NULL 0 NULL NULL NULL 0 +105059 0 0 西敏寺学院 Westminster College 1 0 NULL 0 NULL NULL NULL 0 +103511 0 0 西方国际大学 Western International University 1 0 NULL 0 NULL NULL NULL 0 +103546 0 0 西方学院 Occidental College, OXY 1 0 NULL 0 NULL NULL NULL 0 +104470 0 0 西日本工业大学 1 0 NULL 0 NULL NULL NULL 0 +102337 0 0 西昌学院 0 0 综合类 0 本科 四川 凉山彝族自治州 0 +105657 0 0 西昌民族幼儿师范高等专科学校 0 0 高职类 0 专科 四川 凉山彝族自治州 0 +103558 0 0 西来大学 University of the West, Rosemead 1 0 NULL 0 NULL NULL NULL 0 +104117 0 0 西武文理大学 1 0 NULL 0 NULL NULL NULL 0 +103356 0 0 西江大学 Sogang University 1 0 NULL 0 NULL NULL NULL 0 +103458 0 0 西波希米亚大学 University of West Bohemia 1 0 NULL 0 NULL NULL NULL 0 +105339 0 0 西澳大利亚大学 The University of Western Australia 1 1 NULL 0 NULL NULL NULL 0 +102906 0 0 西澳大学 University of Western Australia 1 0 NULL 0 NULL NULL NULL 0 +103642 0 0 西肯塔基大学 Western Kentucky University 1 0 NULL 0 NULL NULL NULL 0 +105160 0 0 西苏格兰大学 University of the West of Scotland 1 0 NULL 0 NULL NULL NULL 0 +105168 0 0 西英格兰大学 University of the West of England 1 0 NULL 0 NULL NULL NULL 0 +103478 0 0 西蒂米什瓦拉大学 Universitatea de Vest din Timisoara / West University of Timisoara 1 0 NULL 0 NULL NULL NULL 0 +104792 0 0 西蒙·玻利瓦尔大学 Simón Bolívar University 1 0 NULL 0 NULL NULL NULL 0 +104790 0 0 西蒙玻利瓦尔大学 Universidad Simón Bolívar (USB) 1 0 NULL 0 NULL NULL NULL 0 +105610 0 0 西藏农牧学院 0 0 农林类 0 本科 西藏 林芝市 0 +102578 1 0 西藏大学 0 0 综合类 1 本科 西藏 拉萨市 0 +102579 0 0 西藏民族大学 西藏民族学院 0 0 民族类 0 本科 西藏 咸阳市 0 +102583 0 0 西藏职业技术学院 0 0 高职类 0 示范(高职) 西藏 拉萨市 0 +102580 0 0 西藏藏医学院 0 0 医药类 0 普通本科 西藏 拉萨市 0 +102581 0 0 西藏警官高等专科学校 0 0 高职类 0 专科 西藏 拉萨市 0 +103984 0 0 西迪·穆罕默德·本·阿卜杜勒大学 Sidi Mohamed Ben Abdellah University 1 0 NULL 0 NULL NULL NULL 0 +104985 0 0 西里温凯特瓦拉大学 Sri Venkateswara University 1 0 NULL 0 NULL NULL NULL 0 +103023 0 0 西里西亚医科大学 Medical University of Silesia 1 0 NULL 0 NULL NULL NULL 0 +103020 0 0 西里西亚大学 University of Silesia in Katowice 1 0 NULL 0 NULL NULL NULL 0 +103405 0 0 西门菲莎大学 Simon Fraser University 1 0 NULL 0 NULL NULL NULL 0 +102893 0 0 西雪梨大学 University of Western Sydney 1 0 NULL 0 NULL NULL NULL 0 +105426 0 0 解放军军事经济学院 0 0 军事类 0 本科 湖北 重庆市 0 +105407 0 0 解放军军械工程学院 0 0 军事类 0 普通本科 河北 石家庄市 0 +105417 1 0 解放军南京陆军指挥学院 0 0 军事类 0 本科 江苏 南京市 0 +105446 0 0 解放军南昌陆军学院 0 0 军事类 0 本科 江西 南昌市 0 +105483 0 0 解放军国防信息学院 0 0 军事类 0 普通本科 湖北 武汉市 0 +105381 0 0 解放军国际关系学院 0 0 军事类 0 本科 江苏 南京市 0 +105413 0 0 解放军外国语学院 0 0 军事类 0 本科 河南 郑州市 0 +105500 0 0 解放军工程兵学院 0 0 军事类 0 本科 江苏 徐州市 0 +105465 0 0 解放军海军陆战学院 0 0 军事类 0 普通本科 广东 广州市 0 +105420 1 0 解放军电子工程学院 0 0 军事类 0 本科 安徽 合肥市 0 +105428 0 0 解放军空军勤务学院 0 0 军事类 0 本科 江苏 徐州市 0 +105487 1 0 解放军空军指挥学院 0 0 军事类 0 本科 北京 北京市 0 +105489 0 0 解放军空军第一航空学院 0 0 军事类 0 普通本科 河南 信阳市 0 +105466 0 0 解放军空军西安飞行学院 0 0 军事类 0 普通本科 陕西 西安市 0 +105442 0 0 解放军第二炮兵指挥学院 0 0 军事类 0 本科 湖北 武汉市 0 +1522 1 0 解放军第四军医大学 the fourth military medical university 四军大::四医大::第四军医大学 0 0 军事类 1 普通本科 陕西 西安市 0 +105419 0 0 解放军艺术学院 0 0 军事类 0 本科 北京 北京市 0 +105495 1 0 解放军装甲兵学院 0 0 军事类 0 本科 北京 蚌埠市 0 +105497 0 0 解放军装甲兵技术学院 0 0 军事类 0 普通本科 吉林 长春市 0 +105443 0 0 解放军西安政治学院 0 0 军事类 0 普通本科 陕西 西安市 0 +105430 0 0 解放军重庆通信学院 0 0 军事类 0 普通本科 重庆 重庆市 0 +105453 0 0 解放军镇江船艇学院 0 0 军事类 0 本科 江苏 镇江市 0 +105382 0 0 解放军陆军军官学院 0 0 军事类 0 普通本科 安徽 合肥市 0 +105402 0 0 解放军陆军航空兵学院 0 0 军事类 0 本科 北京 北京市 0 +102895 0 0 詹姆士库克大学 James Cook University 1 0 NULL 0 NULL NULL NULL 0 +102927 0 0 詹姆斯库克大学 James Cook University 1 0 NULL 0 NULL NULL NULL 0 +103750 0 0 詹姆斯麦迪森大学 James Madison University 1 0 NULL 0 NULL NULL NULL 0 +101610 0 0 许昌学院 0 0 综合类 0 本科 河南 许昌市 0 +101698 0 0 许昌电气职业学院 0 0 高职类 0 专科 河南 许昌市 0 +101649 0 0 许昌职业技术学院 0 0 高职类 0 专科 河南 许昌市 0 +101689 0 0 许昌陶瓷职业学院 0 0 高职类 0 民办(专科) 河南 许昌市 0 +104894 0 0 设拉子大学 Shiraz University 1 0 NULL 0 NULL NULL NULL 0 +103267 0 0 诚信女子大学 1 0 NULL 0 NULL NULL NULL 0 +104226 0 0 诹访东京理科大学 1 0 NULL 0 NULL NULL NULL 0 +105057 0 0 诺丁汉大学 Nottingham University 1 1 NULL 0 NULL NULL NULL 0 +105149 0 0 诺丁汉特伦特大学 Nottingham Trent University 1 0 NULL 0 NULL NULL NULL 0 +105056 0 0 诺桑比亚大学 University of Northumbria, Carlisle, England and Newcastle upon Tyne 1 0 NULL 0 NULL NULL NULL 0 +105142 0 0 诺森比亚大学 Northumbria University at Newcastle 1 0 NULL 0 NULL NULL NULL 0 +103607 0 0 诺瓦东南大学 Nova Southeastern University 1 0 NULL 0 NULL NULL NULL 0 +105179 0 0 诺维奇艺术大学 Norwich University of the Arts 1 0 NULL 0 NULL NULL NULL 0 +105067 0 0 谢菲尔德哈勒姆大学 Sheffield Hallam University 1 0 NULL 0 NULL NULL NULL 0 +105170 0 0 谢菲尔德哈莱姆大学 Sheffield Hallam University 1 0 NULL 0 NULL NULL NULL 0 +105066 0 0 谢菲尔德大学 University of Sheffield 1 1 NULL 0 NULL NULL NULL 0 +101394 0 0 豫章师范学院 南昌师范高等专科学校 0 0 师范类 0 本科 江西 南昌市 0 +103658 0 0 贝兹学院 Bates College 1 0 NULL 0 NULL NULL NULL 0 +104941 0 0 贝加莫大学 University of Bergamo 1 0 NULL 0 NULL NULL NULL 0 +103946 0 0 贝勒医学院 Baylor College of Medicine 1 0 NULL 0 NULL NULL NULL 0 +103894 0 0 贝勒大学 Baylor University 1 0 NULL 0 NULL NULL NULL 0 +103648 0 0 贝勒明大学 Bellarmine University 1 0 NULL 0 NULL NULL NULL 0 +102830 0 0 贝尔格拉诺大学 Universidad de Belgrano 1 0 NULL 0 NULL NULL NULL 0 +104733 0 0 贝尔格莱德大学 University of Belgrade 1 0 NULL 0 NULL NULL NULL 0 +105074 0 0 贝尔法斯特圣玛丽学院 St. Mary's College 1 0 NULL 0 NULL NULL NULL 0 +105109 0 0 贝尔法斯特女王大学 Queen's University Belfast 1 0 NULL 0 NULL NULL NULL 0 +105075 0 0 贝尔法斯特斯却莱米尔斯学院 Stranmillis College,Stranmillis University College 1 0 NULL 0 NULL NULL NULL 0 +102858 0 0 贝尼索夫大学 Beni-Suef University 1 0 NULL 0 NULL NULL NULL 0 +105161 0 0 贝德福德郡大学 University of Bedfordshire 1 0 NULL 0 NULL NULL NULL 0 +104027 0 0 贝拉内大学 University of Beira Interior 1 0 NULL 0 NULL NULL NULL 0 +104969 0 0 贝拿勒斯印度教大学 Banaras Hindu University 1 0 NULL 0 NULL NULL NULL 0 +103468 0 0 贝鲁特圣约瑟夫大学 Saint Joseph University of Beirut (USJ) 1 0 NULL 0 NULL NULL NULL 0 +103467 0 0 贝鲁特美国大学 American University of Beirut (AUB) 1 0 NULL 0 NULL NULL NULL 0 +103212 0 0 贡比涅技术大学 University of Technology of Compiègne 1 0 NULL 0 NULL NULL NULL 0 +102453 0 0 贵州中医药大学 贵阳中医学院 0 0 医科类 0 本科 贵州 贵阳市 0 +102505 0 0 贵州中医药大学时珍学院 贵阳中医学院时珍学院 0 0 医药类 0 普通本科 贵州 贵阳市 0 +102471 0 0 贵州交通职业技术学院 0 0 高职类 0 示范(高职) 贵州 贵阳市 0 +105595 0 0 贵州健康职业学院 0 0 高职类 0 专科 贵州 黔西南布依族苗族自治州 0 +105570 0 0 贵州农业职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102451 0 0 贵州医科大学 贵阳医学院 0 0 医科类 0 本科 贵州 贵阳市 0 +102508 0 0 贵州医科大学神奇民族医药学院 贵阳医学院神奇民族医药学院 0 0 综合类 0 独立学院 贵州 贵阳市 0 +102469 0 0 贵州商学院 贵州商业高等专科学校 0 0 财经类 0 本科 贵州 贵阳市 0 +102478 0 0 贵州城市职业学院 0 0 高职类 0 民办(专科) 贵州 贵阳市 0 +102450 1 0 贵州大学 0 0 综合类 1 本科 贵州 贵阳市 0 +102502 0 0 贵州大学明德学院 0 0 综合类 0 独立学院 贵州 贵阳市 0 +102501 0 0 贵州大学科技学院 0 0 综合类 0 独立学院 贵州 贵阳市 0 +102479 0 0 贵州工业职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102491 0 0 贵州工商职业学院 0 0 高职类 0 民办(专科) 贵州 贵阳市 0 +102459 0 0 贵州工程应用技术学院 0 0 师范类 0 本科 贵州 毕节市 0 +105538 0 0 贵州工程职业学院 0 0 高职类 0 民办(专科) 贵州 黔西南布依族苗族自治州 0 +105576 0 0 贵州工贸职业学院 0 0 高职类 0 民办(专科) 贵州 毕节市 0 +102454 0 0 贵州师范大学 0 0 师范类 0 本科 贵州 贵阳市 0 +102503 0 0 贵州师范大学求是学院 0 0 师范类 0 独立学院 贵州 贵阳市 0 +102466 0 0 贵州师范学院 0 0 师范类 0 本科 贵州 贵阳市 0 +102500 0 0 贵州广播电视大学 0 0 综合类 0 专科(高职) 贵州 贵阳市 0 +105579 0 0 贵州应用技术职业学院 0 0 高职类 0 民办(专科) 贵州 黔南布依族苗族自治州 0 +102496 0 0 贵州建设职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +105593 0 0 贵州护理职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102499 0 0 贵州机械工业职工大学 0 0 NULL 0 NULL NULL NULL 0 +102463 0 0 贵州民族大学 0 0 民族类 0 本科 贵州 贵阳市 0 +102507 0 0 贵州民族大学人文科技学院 0 0 民族类 0 普通本科 贵州 贵阳市 0 +105563 0 0 贵州水利水电职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102467 0 0 贵州理工学院 0 0 理工类 0 本科 贵州 贵阳市 0 +102480 0 0 贵州电力职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102473 0 0 贵州电子信息职业技术学院 0 0 高职类 0 专科 贵州 黔东南苗族侗族自治州 0 +105589 0 0 贵州电子商务职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +105551 0 0 贵州电子科技职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102490 0 0 贵州盛华职业学院 0 0 高职类 0 民办(专科) 贵州 黔南布依族苗族自治州 0 +105592 0 0 贵州经贸职业技术学院 0 0 高职类 0 专科 贵州 黔南布依族苗族自治州 0 +102489 0 0 贵州职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102472 0 0 贵州航天职业技术学院 0 0 高职类 0 专科 贵州 遵义市 0 +102498 0 0 贵州航空工业职工大学 0 0 航空类 0 专科(高职) 贵州 安顺市 0 +105645 0 0 贵州航空职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +105585 0 0 贵州装备制造职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102470 0 0 贵州警察学院 贵州警官职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102462 0 0 贵州财经大学 0 0 财经类 0 本科 贵州 贵阳市 0 +102506 0 0 贵州财经大学商务学院 0 0 财经类 0 普通本科 贵州 贵阳市 0 +102484 0 0 贵州轻工职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102497 0 0 贵州铝厂职工大学 0 0 其他 0 专科(高职) 贵州 贵阳市 0 +105586 0 0 贵州食品工程职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +103413 0 0 贵湖大学 University of Guelph 1 0 NULL 0 NULL NULL NULL 0 +102464 0 0 贵阳学院 0 0 综合类 0 本科 贵州 贵阳市 0 +102492 0 0 贵阳幼儿师范高等专科学校 0 0 高职类 0 专科 贵州 贵阳市 0 +102486 0 0 贵阳护理职业学院 0 0 高职类 0 专科 贵州 贵阳市 0 +102487 0 0 贵阳职业技术学院 0 0 高职类 0 专科 贵州 贵阳市 0 +104207 0 0 费利斯女学院大学 1 0 NULL 0 NULL NULL NULL 0 +103589 0 0 费尔菲尔德大学 Fairfield University 1 0 NULL 0 NULL NULL NULL 0 +104930 0 0 费拉拉大学 Universita' degli Studi di Ferrara 1 0 NULL 0 NULL NULL NULL 0 +103216 0 0 费朗第一大学 University of Auvergne 1 0 NULL 0 NULL NULL NULL 0 +103209 0 0 费朗第二大学 Blaise Pascal University 1 0 NULL 0 NULL NULL NULL 0 +103714 0 0 费耶特维尔州立大学 Fayetteville State University 1 0 NULL 0 NULL NULL NULL 0 +104742 0 0 费萨尔国王大学 King Faisal University 1 0 NULL 0 NULL NULL NULL 0 +102951 0 0 费萨拉巴德农业大学 University of Agriculture, Faisalabad 1 0 NULL 0 NULL NULL NULL 0 +102185 0 0 贺州学院 0 0 综合类 0 本科 广西 贺州市 0 +104963 0 0 贾达普大学 Jadavpur University 1 0 NULL 0 NULL NULL NULL 0 +105356 0 0 赖斯大学 Rice University 1 1 NULL 0 NULL NULL NULL 0 +104898 0 0 赞詹大学 University of Zanjan 1 0 NULL 0 NULL NULL NULL 0 +101346 0 0 赣南医学院 0 0 医科类 0 本科 江西 赣州市 0 +105633 0 0 赣南卫生健康职业学院 0 0 高职类 0 专科 江西 赣州市 0 +101350 0 0 赣南师范大学 赣南师范学院 0 0 师范类 0 本科 江西 赣州市 0 +101437 0 0 赣南师范大学科技学院 赣南师范学院科技学院 0 0 师范类 0 独立学院 江西 赣州市 0 +101415 0 0 赣州师范高等专科学校 0 0 高职类 0 专科 江西 赣州市 0 +101404 0 0 赣西科技职业学院 0 0 高职类 0 民办(专科) 江西 新余市 0 +100404 0 0 赤峰学院 0 0 综合类 0 本科 内蒙 赤峰市 0 +100440 0 0 赤峰工业职业技术学院 0 0 高职类 0 专科 内蒙 赤峰市 0 +100431 0 0 赤峰职业技术学院 0 0 高职类 0 民办(专科) 内蒙 赤峰市 0 +105135 0 0 赫尔大学 University of Hull 1 0 NULL 0 NULL NULL NULL 0 +103223 0 0 赫尔辛基大学 University of Helsinki 1 1 NULL 0 NULL NULL NULL 0 +105143 0 0 赫特福德大学 University of Hertfordshire 1 0 NULL 0 NULL NULL NULL 0 +105118 0 0 赫瑞瓦特大学 Heriot-Watt University 1 0 NULL 0 NULL NULL NULL 0 +105026 0 0 赫福郡大学 University of Hertfordshire, Hatfield 1 0 NULL 0 NULL NULL NULL 0 +104088 0 0 足利工业大学 1 0 NULL 0 NULL NULL NULL 0 +103571 0 0 路易斯堡学院 Fort Lewis College 1 0 NULL 0 NULL NULL NULL 0 +103870 0 0 路易斯安那州立大学 Louisiana State University 1 0 NULL 0 NULL NULL NULL 0 +103657 0 0 路易斯安那州门罗大学 University of Louisian at Monroe 1 0 NULL 0 NULL NULL NULL 0 +103638 0 0 路易斯维尔大学 University of Louisville 1 0 NULL 0 NULL NULL NULL 0 +103966 0 0 路易维尔大学 University of Louisville 1 0 NULL 0 NULL NULL NULL 0 +105051 0 0 路顿大学 University of Luton 1 0 NULL 0 NULL NULL NULL 0 +104212 0 0 身延山大学 1 0 NULL 0 NULL NULL NULL 0 +103853 0 0 辛辛那提大学 University of Cincinnati 1 0 NULL 0 NULL NULL NULL 0 +100488 0 0 辽东学院 0 0 财经类 0 本科 辽宁 丹东市 0 +100469 0 0 辽宁中医药大学 0 0 医科类 0 本科 辽宁 沈阳市 0 +100580 0 0 辽宁中医药大学杏林学院 0 0 综合类 0 独立学院 辽宁 沈阳市 0 +100500 0 0 辽宁传媒学院 0 0 艺术类 0 民办(本科) 辽宁 沈阳市 0 +100516 0 0 辽宁体育运动职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100497 0 0 辽宁何氏医学院 0 0 医科类 0 民办(本科) 辽宁 沈阳市 0 +100568 0 0 辽宁公安司法管理干部学院 0 0 政法类 0 专科(高职) 辽宁 沈阳市 0 +100553 0 0 辽宁兵器工业职工大学 0 0 理工类 0 专科(高职) 辽宁 沈阳市 0 +100508 0 0 辽宁农业职业技术学院 0 0 高职类 0 示范(高职) 辽宁 营口市 0 +100542 0 0 辽宁冶金职业技术学院 0 0 高职类 0 专科 辽宁 本溪市 0 +100567 0 0 辽宁冶金职工大学 0 0 理工类 0 专科(高职) 辽宁 抚顺市 0 +100467 0 0 辽宁医学院 0 0 医药类 0 普通本科 辽宁 锦州市 0 +100545 0 0 辽宁医药职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100531 0 0 辽宁商贸职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100535 0 0 辽宁地质工程职业学院 0 0 高职类 0 专科 辽宁 丹东市 0 +100544 0 0 辽宁城市建设职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100450 1 0 辽宁大学 0 0 综合类 1 本科 辽宁 沈阳市 0 +100482 0 0 辽宁对外经贸学院 0 0 财经类 0 民办(本科) 辽宁 大连市 0 +100463 0 0 辽宁工业大学 0 0 理工类 0 本科 辽宁 锦州市 0 +100456 0 0 辽宁工程技术大学 0 0 理工类 0 本科 辽宁 阜新市 0 +100543 0 0 辽宁工程职业学院 0 0 高职类 0 专科 辽宁 铁岭市 0 +100472 0 0 辽宁师范大学 0 0 师范类 0 本科 辽宁 大连市 0 +100579 0 0 辽宁师范大学海华学院 0 0 综合类 0 独立学院 辽宁 沈阳市 0 +100524 0 0 辽宁广告职业学院 0 0 高职类 0 民办(专科) 辽宁 沈阳市 0 +100564 0 0 辽宁广播电视大学 0 0 综合类 0 专科(高职) 辽宁 沈阳市 0 +100537 0 0 辽宁建筑职业学院 0 0 高职类 0 专科 辽宁 辽阳市 0 +100548 0 0 辽宁政法职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100566 0 0 辽宁文化艺术职工大学 0 0 艺术类 0 专科(高职) 辽宁 沈阳市 0 +100525 0 0 辽宁机电职业技术学院 0 0 高职类 0 专科 辽宁 丹东市 0 +100518 0 0 辽宁林业职业技术学院 0 0 农林类 0 专科(高职) 辽宁 沈阳市 0 +100549 0 0 辽宁民族师范高等专科学校 0 0 高职类 0 专科 辽宁 沈阳市 0 +100551 0 0 辽宁水利职业学院 0 0 综合类 0 专科(高职) 辽宁 沈阳市 0 +100552 0 0 辽宁特殊教育师范高等专科学校 0 0 高职类 0 专科 辽宁 沈阳市 0 +100541 0 0 辽宁现代服务职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100493 0 0 辽宁理工学院 0 0 理工类 0 民办(本科) 辽宁 锦州市 0 +100520 0 0 辽宁理工职业学院 0 0 高职类 0 民办(专科) 辽宁 锦州市 0 +105652 0 0 辽宁生态工程职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100512 0 0 辽宁省交通高等专科学校 0 0 高职类 0 示范(高职) 辽宁 沈阳市 0 +100554 0 0 辽宁省直属机关职工大学 0 0 NULL 0 NULL NULL NULL 0 +100527 0 0 辽宁石化职业技术学院 0 0 高职类 0 骨干(高职) 辽宁 锦州市 0 +100457 0 0 辽宁石油化工大学 0 0 理工类 0 本科 辽宁 抚顺市 0 +100578 0 0 辽宁石油化工大学顺华能源学院 0 0 NULL 0 NULL NULL NULL 0 +100455 0 0 辽宁科技大学 0 0 理工类 0 本科 辽宁 鞍山市 0 +100576 0 0 辽宁科技大学信息技术学院 0 0 NULL 0 NULL NULL NULL 0 +100485 0 0 辽宁科技学院 0 0 理工类 0 本科 辽宁 本溪市 0 +100513 0 0 辽宁税务高等专科学校 0 0 高职类 0 专科 辽宁 大连市 0 +100526 0 0 辽宁经济职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100517 0 0 辽宁职业学院 0 0 高职类 0 骨干(高职) 辽宁 铁岭市 0 +100533 0 0 辽宁装备制造职业技术学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100486 0 0 辽宁警察学院 0 0 政法类 0 本科 辽宁 大连市 0 +100499 0 0 辽宁财贸学院 0 0 财经类 0 民办(本科) 辽宁 葫芦岛市 0 +100523 0 0 辽宁轨道交通职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100550 0 0 辽宁轻工职业学院 0 0 高职类 0 专科 辽宁 大连市 0 +100522 0 0 辽宁金融职业学院 0 0 高职类 0 专科 辽宁 沈阳市 0 +100536 0 0 辽宁铁道职业技术学院 0 0 高职类 0 专科 辽宁 锦州市 0 +100534 0 0 辽河石油职业技术学院 0 0 高职类 0 专科 辽宁 盘锦市 0 +100616 0 0 辽源职业技术学院 0 0 高职类 0 专科 吉林 辽源市 0 +100510 0 0 辽阳职业技术学院 0 0 高职类 0 专科 辽宁 辽阳市 0 +105355 0 0 达勒姆大学 Durham University 1 1 NULL 0 NULL NULL NULL 0 +103977 0 0 达卡大学 University of Dhaka 1 0 NULL 0 NULL NULL NULL 0 +103095 0 0 达姆施塔特工业大学 Technische Universität Darmstadt 1 0 NULL 0 NULL NULL NULL 0 +102383 0 0 达州职业技术学院 0 0 高职类 0 专科 四川 达州市 0 +103740 0 0 达拉斯分校 University of Texas at Dallas 1 0 NULL 0 NULL NULL NULL 0 +103801 0 0 达特茅斯学院 Dartmouth College 1 0 NULL 0 NULL NULL NULL 0 +104994 0 0 迈索尔大学 University of Mysore 1 0 NULL 0 NULL NULL NULL 0 +103815 0 0 迈阿密大学 University of Miami 1 0 NULL 0 NULL NULL NULL 0 +100318 0 0 运城学院 0 0 综合类 0 本科 山西 运城市 0 +100374 0 0 运城师范高等专科学校 0 0 高职类 0 专科 山西 运城市 0 +100364 0 0 运城幼儿师范高等专科学校 0 0 高职类 0 专科 山西 运城市 0 +100373 0 0 运城护理职业学院 0 0 高职类 0 专科 山西 运城市 0 +100368 0 0 运城职业技术学院 0 0 高职类 0 民办(专科) 山西 运城市 0 +104380 0 0 近大姫路大学 1 0 NULL 0 NULL NULL NULL 0 +104672 0 0 近畿大学 Kindai University 1 0 NULL 0 NULL NULL NULL 0 +104379 0 0 近畿福祉大学 1 0 NULL 0 NULL NULL NULL 0 +103149 0 0 远东联邦大学 Far Eastern Federal University 1 0 NULL 0 NULL NULL NULL 0 +100905 0 0 连云港师范高等专科学校 0 0 高职类 0 专科 江苏 连云港市 0 +100899 0 0 连云港职业技术学院 0 0 高职类 0 专科 江苏 连云港市 0 +102847 0 0 迪拜美国大学 American University in Dubai 1 0 NULL 0 NULL NULL NULL 0 +102923 0 0 迪肯大学 Deakin University 1 0 NULL 0 NULL NULL NULL 0 +105328 0 0 迭亚戈·波塔勒斯大学 Diego Portales University (UDP) 1 0 NULL 0 NULL NULL NULL 0 +105222 0 0 迭戈波塔利斯大学 Universidad Diego Portales (UDP) 1 0 NULL 0 NULL NULL NULL 0 +105227 0 0 迭戈波尔特大学 Diego Portales University 1 0 NULL 0 NULL NULL NULL 0 +104106 0 0 迹见学园女子大学 1 0 NULL 0 NULL NULL NULL 0 +104332 0 0 追手门学院大学 1 0 NULL 0 NULL NULL NULL 0 +100642 0 0 通化市职工大学 0 0 其他 0 专科(高职) 吉林 通化市 0 +100596 0 0 通化师范学院 0 0 师范类 0 本科 吉林 通化市 0 +100643 0 0 通化钢铁公司职工大学 0 0 其他 0 专科(高职) 吉林 通化市 0 +100424 0 0 通辽职业学院 0 0 高职类 0 专科 内蒙 通辽市 0 +104036 0 0 道都大学 1 0 NULL 0 NULL NULL NULL 0 +102452 0 0 遵义医科大学 遵义医学院 0 0 医科类 0 本科 贵州 遵义市 0 +102504 0 0 遵义医科大学医学与科技学院 遵义医学院医学与科技学院 0 0 医药类 0 独立学院 贵州 遵义市 0 +102485 0 0 遵义医药高等专科学校 0 0 高职类 0 专科 贵州 遵义市 0 +102455 0 0 遵义师范学院 0 0 师范类 0 本科 贵州 遵义市 0 +102477 0 0 遵义职业技术学院 0 0 高职类 0 专科 贵州 遵义市 0 +105113 0 0 邓迪大学 University of Dundee 1 0 NULL 0 NULL NULL NULL 0 +100244 0 0 邢台医学高等专科学校 0 0 高职类 0 专科 河北 邢台市 0 +100201 0 0 邢台学院 0 0 综合类 0 本科 河北 邢台市 0 +100229 0 0 邢台职业技术学院 0 0 高职类 0 示范(高职) 河北 邢台市 0 +104952 0 0 那不勒斯第二大学 Second University of Naples 1 0 NULL 0 NULL NULL NULL 0 +104922 0 0 那不勒斯腓特烈二世大学 University of Naples - Federico II 1 0 NULL 0 NULL NULL NULL 0 +102929 0 0 邦德大学 Bond University 1 0 NULL 0 NULL NULL NULL 0 +103593 0 0 邮政学院 Post College 1 0 NULL 0 NULL NULL NULL 0 +100200 0 0 邯郸学院 0 0 师范类 0 本科 河北 邯郸市 0 +100225 0 0 邯郸职业技术学院 0 0 高职类 0 骨干(高职) 河北 邯郸市 0 +101885 0 0 邵阳学院 邵阳医学高等专科学校 0 0 理工类 0 本科 湖南 邵阳市 0 +1515 0 0 邵阳广播电视大学 SHAOYANG RADIO & TV UNIVERSITY 邵阳电大 0 0 综合类 0 专科(高职) 湖南 邵阳市 0 +101927 0 0 邵阳职业技术学院 0 0 高职类 0 专科 湖南 邵阳市 0 +101691 0 0 郑州信息工程职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101663 0 0 郑州信息科技职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101636 0 0 郑州升达经贸管理学院 0 0 财经类 0 民办(本科) 河南 郑州市 0 +105642 0 0 郑州卫生健康职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101635 0 0 郑州商学院 郑州成功财经学院 0 0 财经类 0 民办(本科) 河南 郑州市 0 +101702 0 0 郑州商贸旅游职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101684 0 0 郑州城市职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101594 1 0 郑州大学 0 0 综合类 1 本科 河南 郑州市 0 +105400 0 0 郑州大学国际学院 0 0 综合类 0 中外合作办学 河南 郑州市 0 +101670 0 0 郑州工业安全职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101629 0 0 郑州工业应用技术学院 0 0 理工类 0 民办(本科) 河南 郑州市 0 +101727 0 0 郑州工商学院 河南理工大学万方科技学院 0 0 理工类 0 民办(本科) 河南 郑州市 0 +101641 0 0 郑州工程技术学院 中州大学 0 0 综合类 0 本科 河南 郑州市 0 +101715 0 0 郑州市职工大学 0 0 综合类 0 专科(高职) 河南 郑州市 0 +101630 0 0 郑州师范学院 0 0 师范类 0 本科 河南 郑州市 0 +101705 0 0 郑州幼儿师范高等专科学校 0 0 师范类 0 专科 河南 郑州市 0 +1228 0 0 郑州广播电视大学 郑州电大 0 0 综合类 0 专科(高职) 河南 郑州市 0 +101675 0 0 郑州旅游职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101659 0 0 郑州澍青医学高等专科学校 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101690 0 0 郑州理工职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101680 0 0 郑州电力职业技术学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101647 0 0 郑州电力高等专科学校 0 0 高职类 0 专科 河南 郑州市 0 +101667 0 0 郑州电子信息职业技术学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +101628 0 0 郑州科技学院 0 0 理工类 0 民办(本科) 河南 郑州市 0 +101676 0 0 郑州职业技术学院 0 0 高职类 0 专科 河南 郑州市 0 +101615 0 0 郑州航空工业管理学院 0 0 财经类 0 本科 河南 郑州市 0 +101709 0 0 郑州财税金融职业学院 0 0 高职类 0 专科 河南 郑州市 0 +101631 0 0 郑州财经学院 0 0 财经类 0 民办(本科) 河南 郑州市 0 +101596 0 0 郑州轻工业大学 郑州轻工业学院 0 0 理工类 0 本科 河南 郑州市 0 +101640 0 0 郑州铁路职业技术学院 0 0 高职类 0 骨干(高职) 河南 郑州市 0 +101707 0 0 郑州黄河护理职业学院 0 0 高职类 0 民办(专科) 河南 郑州市 0 +104079 0 0 郡山女子大学 1 0 NULL 0 NULL NULL NULL 0 +101933 0 0 郴州职业技术学院 0 0 高职类 0 专科 湖南 郴州市 0 +102863 0 0 都柏林三一学院 Trinity College Dublin, The University of Dublin 1 0 NULL 0 NULL NULL NULL 0 +102871 0 0 都柏林圣三一学院 Trinity College Dublin 1 0 NULL 0 NULL NULL NULL 0 +102867 0 0 都柏林城市大学 Dublin City University 1 0 NULL 0 NULL NULL NULL 0 +102864 0 0 都柏林大学学院 University College Dublin 1 0 NULL 0 NULL NULL NULL 0 +105290 0 0 都柏林大学都柏林三一学院 Trinity College Dublin The University of Dublin 1 1 NULL 0 NULL NULL NULL 0 +102869 0 0 都柏林理工学院 Dublin Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +104924 0 0 都灵大学 University of Turin 1 0 NULL 0 NULL NULL NULL 0 +104915 0 0 都灵理工大学 Politecnico di Torino 1 0 NULL 0 NULL NULL NULL 0 +104531 0 0 都留文科大学 1 0 NULL 0 NULL NULL NULL 0 +101820 0 0 鄂东职业技术学院 0 0 高职类 0 专科 湖北 黄冈市 0 +101837 0 0 鄂城钢铁厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +105544 0 0 鄂尔多斯应用技术学院 0 0 理工类 0 本科 内蒙 鄂尔多斯市 0 +100444 0 0 鄂尔多斯生态环境职业学院 0 0 高职类 0 专科 内蒙 鄂尔多斯市 0 +100435 0 0 鄂尔多斯职业学院 0 0 高职类 0 专科 内蒙 鄂尔多斯市 0 +101784 0 0 鄂州职业大学 0 0 高职类 0 骨干(高职) 湖北 鄂州市 0 +102713 0 0 酒泉职业技术学院 0 0 高职类 0 骨干(高职) 甘肃 酒泉市 0 +104051 0 0 酪农学园大学 1 0 NULL 0 NULL NULL NULL 0 +103465 0 0 里加工业大学 Riga Technical University 1 0 NULL 0 NULL NULL NULL 0 +105331 0 0 里奥格兰德天主教大学 Pontifical Catholic University of Rio Grande do Sul (PUCRS) 1 0 NULL 0 NULL NULL NULL 0 +103208 0 0 里尔大学 University of Lille 1 0 NULL 0 NULL NULL NULL 0 +103187 0 0 里尔第一大学 Université Lille 1, Sciences et Technologies 1 0 NULL 0 NULL NULL NULL 0 +103195 0 0 里尔第三大学 Université Charles-de-Gaulle Lille 3 1 0 NULL 0 NULL NULL NULL 0 +103200 0 0 里尔第二大学 Université Lille 2 Droit et Santé 1 0 NULL 0 NULL NULL NULL 0 +103723 0 0 里德学院 Reed College 1 0 NULL 0 NULL NULL NULL 0 +104020 0 0 里斯本大学 University of Lisbon 1 0 NULL 0 NULL NULL NULL 0 +104028 0 0 里斯本大学高级商务与劳动科学研究所 ISCTE-University Institute of Lisbon 1 0 NULL 0 NULL NULL NULL 0 +103218 0 0 里昂中央理工学院 Ecole Centrale Lyon 1 0 NULL 0 NULL NULL NULL 0 +105310 0 0 里昂国家应用科学研究所 National Institute of Applied Sciences of Lyon 1 0 NULL 0 NULL NULL NULL 0 +103183 0 0 里昂应用科学学院 Institut National des Sciences Appliquées de Lyon (INSA) 1 0 NULL 0 NULL NULL NULL 0 +103184 0 0 里昂第一大学 Université Claude Bernard Lyon 1 1 0 NULL 0 NULL NULL NULL 0 +103199 0 0 里昂第三大学 Université Jean Moulin Lyon 3 1 0 NULL 0 NULL NULL NULL 0 +103193 0 0 里昂第二大学 Université Lumière Lyon 2 1 0 NULL 0 NULL NULL NULL 0 +103168 0 0 里昂高等师范学院 École Normale Supérieure de Lyon 1 0 NULL 0 NULL NULL NULL 0 +103851 0 0 里海大学 Lehigh University 1 0 NULL 0 NULL NULL NULL 0 +102965 0 0 里约热内卢天主大学 Pontifícia Universidade Católica do Rio de Janeiro 1 0 NULL 0 NULL NULL NULL 0 +102973 0 0 里约热内卢州立大学 Universidade do Estado do Rio de Janeiro (UERJ) 1 0 NULL 0 NULL NULL NULL 0 +102962 0 0 里约热内卢联邦大学 Universidade Federal do Rio de Janeiro 1 0 NULL 0 NULL NULL NULL 0 +103205 0 0 里维埃拉大学 University of Côte d’Azur 1 0 NULL 0 NULL NULL NULL 0 +103422 0 0 里贾纳大学 University of Regina 1 0 NULL 0 NULL NULL NULL 0 +102294 0 0 重庆三峡医药高等专科学校 0 0 高职类 0 专科 重庆 重庆市 0 +102265 0 0 重庆三峡学院 0 0 综合类 0 本科 重庆 重庆市 0 +102280 0 0 重庆三峡职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102260 0 0 重庆交通大学 0 0 理工类 0 本科 重庆 重庆市 0 +102303 0 0 重庆交通职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102275 0 0 重庆人文科技学院 0 0 综合类 0 民办(本科) 重庆 重庆市 0 +102286 0 0 重庆传媒职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102285 0 0 重庆信息技术职业学院 0 0 理工类 0 民办(专科) 重庆 重庆市 0 +102307 0 0 重庆公共运输职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102316 0 0 重庆冶金成人学院 0 0 理工类 0 专科(高职) 重庆 重庆市 0 +102304 0 0 重庆化工职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102261 0 0 重庆医科大学 0 0 医科类 0 本科 重庆 重庆市 0 +102295 0 0 重庆医药高等专科学校 0 0 高职类 0 专科 重庆 重庆市 0 +102302 0 0 重庆商务职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102287 0 0 重庆城市管理职业学院 0 0 高职类 0 骨干(高职) 重庆 重庆市 0 +102290 0 0 重庆城市职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102258 2 0 重庆大学 0 0 综合类 1 本科 重庆 重庆市 1 +102324 0 0 重庆大学城市科技学院 0 0 综合类 0 普通本科 重庆 重庆市 0 +102306 0 0 重庆安全技术职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102279 0 0 重庆工业职业技术学院 0 0 高职类 0 示范(高职) 重庆 重庆市 0 +102272 0 0 重庆工商大学 0 0 财经类 0 本科 重庆 重庆市 0 +102322 0 0 重庆工商大学派斯学院 0 0 财经类 0 普通本科 重庆 重庆市 0 +102321 0 0 重庆工商大学融智学院 0 0 财经类 0 独立学院 重庆 重庆市 0 +102292 0 0 重庆工商职业学院 0 0 高职类 0 骨干(高职) 重庆 重庆市 0 +102273 0 0 重庆工程学院 0 0 理工类 0 民办(本科) 重庆 重庆市 0 +102288 0 0 重庆工程职业技术学院 0 0 高职类 0 示范(高职) 重庆 重庆市 0 +102281 0 0 重庆工贸职业技术学院 0 0 高职类 0 专科 重庆 重庆市 0 +102318 0 0 重庆市广播电视大学 0 0 综合类 0 专科(高职) 重庆 重庆市 0 +102263 0 0 重庆师范大学 0 0 师范类 0 本科 重庆 重庆市 0 +102320 0 0 重庆师范大学涉外商贸学院 0 0 财经类 0 普通本科 重庆 重庆市 0 +102312 0 0 重庆幼儿师范高等专科学校 0 0 高职类 0 专科 重庆 重庆市 0 +1249 0 0 重庆广播电视大学 0 0 综合类 0 专科(高职) 重庆 重庆市 0 +102293 0 0 重庆应用技术职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102299 0 0 重庆建筑工程职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102289 0 0 重庆房地产职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +105582 0 0 重庆护理职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102313 0 0 重庆文化艺术职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102264 0 0 重庆文理学院 0 0 综合类 0 本科 重庆 重庆市 0 +102305 0 0 重庆旅游职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +102282 0 0 重庆机电职业技术学院 0 0 高职类 0 民办(本科) 重庆 重庆市 0 +102291 0 0 重庆水利电力职业技术学院 0 0 高职类 0 专科 重庆 重庆市 0 +102284 0 0 重庆海联职业技术学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102271 0 0 重庆理工大学 0 0 理工类 0 本科 重庆 重庆市 0 +102310 0 0 重庆电信职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102315 0 0 重庆电力职工大学 0 0 其他 0 专科(高职) 重庆 重庆市 0 +102278 0 0 重庆电力高等专科学校 0 0 高职类 0 骨干(高职) 重庆 重庆市 0 +102283 0 0 重庆电子工程职业学院 0 0 高职类 0 示范(高职) 重庆 重庆市 0 +102300 0 0 重庆电讯职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102298 0 0 重庆科创职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102270 0 0 重庆科技学院 0 0 理工类 0 本科 重庆 重庆市 0 +102314 0 0 重庆科技职业学院 重庆服装工程职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102276 0 0 重庆第二师范学院 0 0 师范类 0 本科 重庆 重庆市 0 +102311 0 0 重庆经贸职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102317 0 0 重庆职工会计专科学校 0 0 其他 0 专科(高职) 重庆 重庆市 0 +102301 0 0 重庆能源职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102277 0 0 重庆航天职业技术学院 0 0 高职类 0 专科 重庆 重庆市 0 +102308 0 0 重庆艺术工程职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102274 0 0 重庆警察学院 0 0 政法类 0 本科 重庆 重庆市 0 +102297 0 0 重庆财经职业学院 0 0 高职类 0 专科 重庆 重庆市 0 +105528 0 0 重庆资源与环境保护职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102309 0 0 重庆轻工职业学院 0 0 高职类 0 民办(专科) 重庆 重庆市 0 +102259 0 0 重庆邮电大学 0 0 理工类 0 本科 重庆 重庆市 0 +102323 0 0 重庆邮电大学移通学院 0 0 综合类 0 独立学院 重庆 重庆市 0 +102296 0 0 重庆青年职业技术学院 0 0 高职类 0 专科 重庆 重庆市 0 +101096 0 0 金华教育学院 0 0 综合类 0 专科(高职) 浙江 金华市 0 +101048 0 0 金华职业技术学院 0 0 高职类 0 示范(高职) 浙江 金华市 0 +104303 0 0 金城大学 1 0 NULL 0 NULL NULL NULL 0 +104257 0 0 金城学院大学 1 0 NULL 0 NULL NULL NULL 0 +105028 0 0 金士顿大学 Kingston University, South West London 1 0 NULL 0 NULL NULL NULL 0 +104004 0 0 金山大学 University of the Witwatersrand 1 0 NULL 0 NULL NULL NULL 0 +100954 0 0 金山职业技术学院 0 0 高职类 0 民办(专科) 江苏 镇江市 0 +105130 0 0 金斯顿大学 Kingston University, London 1 0 NULL 0 NULL NULL NULL 0 +104299 0 0 金泽医科大学 1 0 NULL 0 NULL NULL NULL 0 +104633 0 0 金泽大学 Kanazawa University 1 0 NULL 0 NULL NULL NULL 0 +104300 0 0 金泽学院大学 1 0 NULL 0 NULL NULL NULL 0 +104301 0 0 金泽工业大学 1 0 NULL 0 NULL NULL NULL 0 +104302 0 0 金泽星稜大学 1 0 NULL 0 NULL NULL NULL 0 +104546 0 0 金泽美术工艺大学 1 0 NULL 0 NULL NULL NULL 0 +100938 0 0 金肯职业技术学院 0 0 高职类 0 民办(专科) 江苏 南京市 0 +103559 0 0 金门大学 Golden Gate University, San Francisco 1 0 NULL 0 NULL NULL NULL 0 +100888 0 0 金陵科技学院 0 0 综合类 0 本科 江苏 南京市 0 +103358 0 0 釜山国立大学 Pusan National University 1 0 NULL 0 NULL NULL NULL 0 +103279 0 0 釜山外国语大学 1 0 NULL 0 NULL NULL NULL 0 +103380 0 0 釜庆国立大学 Pukyong National University 1 0 NULL 0 NULL NULL NULL 0 +103276 0 0 釜庆大学 1 0 NULL 0 NULL NULL NULL 0 +104191 0 0 鎌仓女子大学 1 0 NULL 0 NULL NULL NULL 0 +104510 0 0 钏路公立大学 1 0 NULL 0 NULL NULL NULL 0 +100935 0 0 钟山职业技术学院 0 0 高职类 0 民办(专科) 江苏 南京市 0 +100546 0 0 铁岭卫生职业学院 0 0 高职类 0 专科 辽宁 铁岭市 0 +100506 0 0 铁岭师范高等专科学校 0 0 高职类 0 专科 辽宁 铁岭市 0 +101627 0 0 铁道警察学院 0 0 政法类 0 本科 河南 郑州市 0 +102992 0 0 铃谷大学 University of the Sinos Valley 1 0 NULL 0 NULL NULL NULL 0 +104284 0 0 铃鹿医疗科学大学 1 0 NULL 0 NULL NULL NULL 0 +104287 0 0 铃鹿国际大学 1 0 NULL 0 NULL NULL NULL 0 +102456 0 0 铜仁学院 0 0 综合类 0 本科 贵州 铜仁市 0 +102493 0 0 铜仁幼儿师范高等专科学校 0 0 高职类 0 专科 贵州 黔西南布依族苗族自治州 0 +102482 0 0 铜仁职业技术学院 0 0 高职类 0 骨干(高职) 贵州 铜仁市 0 +102656 0 0 铜川职业技术学院 0 0 高职类 0 专科 陕西 铜川市 0 +101145 0 0 铜陵学院 0 0 财经类 0 本科 安徽 铜陵市 0 +101163 0 0 铜陵职业技术学院 0 0 高职类 0 专科 安徽 铜陵市 0 +102733 0 0 银光化学材料厂职工大学 0 0 NULL 0 NULL NULL NULL 0 +102760 0 0 银川能源学院 0 0 理工类 0 民办(本科) 宁夏 银川市 0 +100420 0 0 锡林郭勒职业学院 0 0 高职类 0 专科 内蒙 锡林郭勒盟 0 +103126 0 0 锡根大学 University of Siegen 1 0 NULL 0 NULL NULL NULL 0 +104935 0 0 锡耶纳大学 University of Siena 1 0 NULL 0 NULL NULL NULL 0 +105375 0 0 锦州医科大学 0 0 医科类 0 本科 辽宁 锦州市 0 +100581 0 0 锦州医科大学医疗学院 辽宁医学院医疗学院 0 0 医药类 0 独立学院 辽宁 锦州市 0 +100504 0 0 锦州师范高等专科学校 0 0 高职类 0 专科 辽宁 锦州市 0 +100900 0 0 镇江市高等专科学校 0 0 高职类 0 专科 江苏 镇江市 0 +104217 0 0 长冈大学 1 0 NULL 0 NULL NULL NULL 0 +104677 0 0 长冈技术科学大学 Nagaoka University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104218 0 0 长冈造形大学 1 0 NULL 0 NULL NULL NULL 0 +101692 0 0 长垣烹饪职业技术学院 0 0 高职类 0 民办(专科) 河南 新乡市 0 +102586 1 0 长安大学 0 0 理工类 1 本科 陕西 西安市 0 +102690 0 0 长安大学兴华学院 0 0 综合类 0 独立学院 陕西 西安市 0 +104480 0 0 长崎卫斯理公会大学 1 0 NULL 0 NULL NULL NULL 0 +104575 0 0 长崎县立大学 1 0 NULL 0 NULL NULL NULL 0 +104482 0 0 长崎国际大学 1 0 NULL 0 NULL NULL NULL 0 +104481 0 0 长崎外国语大学 1 0 NULL 0 NULL NULL NULL 0 +104635 0 0 长崎大学 Nagasaki University 1 0 NULL 0 NULL NULL NULL 0 +104484 0 0 长崎总合科学大学 1 0 NULL 0 NULL NULL NULL 0 +104483 0 0 长崎纯心大学 1 0 NULL 0 NULL NULL NULL 0 +100622 0 0 长春东方职业学院 0 0 高职类 0 民办(专科) 吉林 长春市 0 +100593 0 0 长春中医药大学 0 0 医科类 0 本科 吉林 长春市 0 +100629 0 0 长春信息技术职业学院 0 0 高职类 0 民办(专科) 吉林 长春市 0 +105578 0 0 长春健康职业学院 0 0 高职类 0 民办(专科) 吉林 长春市 0 +100610 0 0 长春光华学院 0 0 综合类 0 民办(本科) 吉林 长春市 0 +100620 0 0 长春医学高等专科学校 0 0 高职类 0 专科 吉林 长春市 0 +100609 0 0 长春大学 0 0 综合类 0 本科 吉林 长春市 0 +100656 0 0 长春大学旅游学院 0 0 综合类 0 独立学院 吉林 长春市 0 +100589 0 0 长春工业大学 0 0 理工类 0 本科 吉林 长春市 0 +100652 0 0 长春工业大学人文信息学院 0 0 理工类 0 独立学院 吉林 长春市 0 +100606 0 0 长春工程学院 0 0 理工类 0 本科 吉林 长春市 0 +100638 0 0 长春市建筑职工业余大学 0 0 理工类 0 专科(高职) 吉林 长春市 0 +100599 0 0 长春师范大学 0 0 师范类 0 本科 吉林 长春市 0 +105605 0 0 长春师范高等专科学校 0 0 师范类 0 专科 吉林 长春市 0 +100650 0 0 长春广播电视大学/长春电大 长春广播电视大学 0 0 综合类 0 专科(高职) 吉林 长春市 0 +100612 0 0 长春建筑学院 0 0 理工类 0 民办(本科) 吉林 长春市 0 +100646 0 0 长春教育学院 0 0 NULL 0 普通本科 吉林 长春市 0 +100618 0 0 长春汽车工业高等专科学校 0 0 高职类 0 示范(高职) 吉林 长春市 0 +100587 0 0 长春理工大学 0 0 理工类 0 本科 吉林 长春市 0 +100653 0 0 长春理工大学光电信息学院 0 0 理工类 0 独立学院 吉林 长春市 0 +100613 0 0 长春科技学院 0 0 理工类 0 民办(本科) 吉林 长春市 0 +100627 0 0 长春职业技术学院 0 0 高职类 0 示范(高职) 吉林 长春市 0 +100639 0 0 长春职工医科大学 0 0 医药类 0 专科(高职) 吉林 长春市 0 +100637 0 0 长春职工大学 0 0 其他 0 专科(高职) 吉林 长春市 0 +100611 0 0 长春财经学院 0 0 财经类 0 民办(本科) 吉林 长春市 0 +100619 0 0 长春金融高等专科学校 0 0 高职类 0 专科 吉林 长春市 0 +101738 0 0 长江大学 0 0 综合类 0 本科 湖北 荆州市 0 +101868 0 0 长江大学工程技术学院 0 0 综合类 0 独立学院 湖北 荆州市 0 +101867 0 0 长江大学文理学院 0 0 理工类 0 独立学院 湖北 荆州市 0 +101816 0 0 长江工程职业技术学院 0 0 高职类 0 专科 湖北 武汉市 0 +102266 0 0 长江师范学院 0 0 师范类 0 本科 重庆 重庆市 0 +101781 0 0 长江职业学院 0 0 高职类 0 专科 湖北 武汉市 0 +105641 0 0 长江艺术工程职业学院 0 0 高职类 0 民办(专科) 湖北 荆州市 0 +101892 0 0 长沙医学院 0 0 医科类 0 民办(本科) 湖南 长沙市 0 +101943 0 0 长沙南方职业学院 0 0 高职类 0 民办(专科) 湖南 长沙市 0 +101974 0 0 长沙卫生职业学院 0 0 高职类 0 专科 湖南 长沙市 0 +101929 0 0 长沙商贸旅游职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101893 0 0 长沙学院 0 0 理工类 0 本科 湖南 长沙市 0 +101992 0 0 长沙工业职工大学 0 0 其他 0 专科(高职) 湖南 长沙市 0 +101904 0 0 长沙师范学院 0 0 师范类 0 本科 湖南 长沙市 0 +101986 0 0 长沙教育学院 0 0 师范类 0 专科(高职) 湖南 长沙市 0 +101908 0 0 长沙民政职业技术学院 0 0 高职类 0 示范(高职) 湖南 长沙市 0 +101936 0 0 长沙环境保护职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101877 0 0 长沙理工大学 0 0 理工类 0 本科 湖南 长沙市 0 +101997 0 0 长沙理工大学城南学院 0 0 理工类 0 独立学院 湖南 长沙市 0 +101959 0 0 长沙电力职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101939 0 0 长沙职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +101914 0 0 长沙航空职业技术学院 0 0 高职类 0 专科 湖南 长沙市 0 +100312 0 0 长治医学院 0 0 医科类 0 本科 山西 长治市 0 +100317 0 0 长治学院 0 0 综合类 0 本科 山西 长治市 0 +100388 0 0 长治市教育学院 0 0 综合类 0 专科(高职) 山西 长治市 0 +100331 0 0 长治职业技术学院 0 0 高职类 0 专科 山西 长治市 0 +104309 0 0 长滨生物科学技术大学 1 0 NULL 0 NULL NULL NULL 0 +100633 0 0 长白山职业技术学院 0 0 高职类 0 专科 吉林 白山市 0 +104535 0 0 长野县看护大学 1 0 NULL 0 NULL NULL NULL 0 +104228 0 0 长野大学 1 0 NULL 0 NULL NULL NULL 0 +101293 0 0 闽北职业技术学院 0 0 高职类 0 专科 福建 南平市 0 +101260 0 0 闽南师范大学 0 0 师范类 0 本科 福建 漳州市 0 +101267 0 0 闽南理工学院 0 0 理工类 0 民办(本科) 福建 泉州市 0 +101256 0 0 闽江学院 0 0 综合类 0 本科 福建 福州市 0 +105588 0 0 闽江学院新华都商学院 0 0 NULL 0 普通本科 福建 福州市 0 +101324 0 0 闽江师范高等专科学校 0 0 高职类 0 专科 福建 福州市 0 +101274 0 0 闽西职业技术学院 0 0 高职类 0 骨干(高职) 福建 龙岩市 0 +100565 0 0 阜新煤炭职工医学专科学校 0 0 其他 0 专科(高职) 辽宁 阜新市 0 +100561 0 0 阜新矿务局职工大学 0 0 理工类 0 专科(高职) 辽宁 阜新市 0 +100511 0 0 阜新高等专科学校 0 0 高职类 0 专科 辽宁 阜新市 0 +101135 0 0 阜阳师范学院 0 0 师范类 0 普通本科 安徽 阜阳市 0 +101245 0 0 阜阳师范学院信息工程学院 0 0 综合类 0 独立学院 安徽 阜阳市 0 +105515 0 0 阜阳幼儿师范高等专科学校 0 0 高职类 0 专科 安徽 阜阳市 0 +101191 0 0 阜阳科技职业学院 0 0 高职类 0 民办(专科) 安徽 阜阳市 0 +101162 0 0 阜阳职业技术学院 0 0 高职类 0 骨干(高职) 安徽 阜阳市 0 +100212 0 0 防灾科技学院 0 0 综合类 0 本科 河北 廊坊市 0 +101330 0 0 阳光学院 福州大学阳光学院 0 0 综合类 0 民办(本科) 福建 福州市 0 +102941 0 0 阳光海岸大学 University of the Sunshine Coast 1 0 NULL 0 NULL NULL NULL 0 +102081 0 0 阳江职业技术学院 0 0 高职类 0 专科 广东 阳江市 0 +100371 0 0 阳泉师范高等专科学校 0 0 高职类 0 专科 山西 阳泉市 0 +100344 0 0 阳泉职业技术学院 0 0 高职类 0 专科 山西 阳泉市 0 +105077 0 0 阿伯丁大学 University of Aberdeen  1 0 NULL 0 NULL NULL NULL 0 +105129 0 0 阿伯斯威大学 Aberystwyth University 1 0 NULL 0 NULL NULL NULL 0 +105194 0 0 阿伯泰邓迪大学 Abertay University 1 0 NULL 0 NULL NULL NULL 0 +105073 0 0 阿伯里斯特威斯大学 Aberystwyth University 1 0 NULL 0 NULL NULL NULL 0 +103970 0 0 阿克伦大学 The University of Akron 1 0 NULL 0 NULL NULL NULL 0 +104778 0 0 阿克登尼基大学 Akdeniz University 1 0 NULL 0 NULL NULL NULL 0 +102819 0 0 阿克苏教育学院 0 0 师范类 0 专科(高职) 新疆 阿克苏市 0 +102797 0 0 阿克苏职业技术学院 0 0 高职类 0 专科 新疆 阿克苏地区 0 +104776 0 0 阿兹蒙大学 Atılım University 1 0 NULL 0 NULL NULL NULL 0 +104745 0 0 阿卜杜勒国王科技大学 King Abdullah University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +104744 0 0 阿卜杜勒拉曼费萨尔大学 Imam Abdulrahman Bin Faisal University 1 0 NULL 0 NULL NULL NULL 0 +104738 0 0 阿卜杜勒阿齐兹国王大学 King Abdulaziz University (KAU) 1 0 NULL 0 NULL NULL NULL 0 +103432 0 0 阿卡迪亚大学 Acadia 1 0 NULL 0 NULL NULL NULL 0 +102365 0 0 阿坝师范学院 阿坝师范高等专科学校 0 0 师范类 0 本科 四川 阿坝藏族羌族自治州 0 +105651 0 0 阿坝职业学院 0 0 高职类 0 专科 四川 阿坝藏族羌族自治州 0 +103383 0 0 阿姆斯特丹大学 University of Amsterdam 1 1 NULL 0 NULL NULL NULL 0 +103393 0 0 阿姆斯特丹自由大学 Vrije Universiteit Amsterdam 1 0 NULL 0 NULL NULL NULL 0 +104023 0 0 阿威罗大学 University of Aveiro 1 0 NULL 0 NULL NULL NULL 0 +103398 0 0 阿尔伯塔大学 University of Alberta 1 1 NULL 0 NULL NULL NULL 0 +104026 0 0 阿尔加维大学 University of Algarve 1 0 NULL 0 NULL NULL NULL 0 +104818 0 0 阿尔卡拉大学 Universidad de Alcalá 1 0 NULL 0 NULL NULL NULL 0 +103741 0 0 阿尔帕索分校 University of Texas at El Paso 1 0 NULL 0 NULL NULL NULL 0 +104895 0 0 阿尔扎赫拉大学 Alzahra University 1 0 NULL 0 NULL NULL NULL 0 +103224 0 0 阿尔托大学 Aalto University 1 1 NULL 0 NULL NULL NULL 0 +105076 0 0 阿尔斯特大学 University of Ulster 1 0 NULL 0 NULL NULL NULL 0 +104835 0 0 阿尔梅里亚大学 University of Almería 1 0 NULL 0 NULL NULL NULL 0 +104743 0 0 阿尔法塞尔大学 Alfaisal University 1 0 NULL 0 NULL NULL NULL 0 +103711 0 0 阿巴拉契亚州立大学 Appalachian State University 1 0 NULL 0 NULL NULL NULL 0 +102849 0 0 阿布扎比大学 Abu Dhabi University 1 0 NULL 0 NULL NULL NULL 0 +102896 0 0 阿德莱德大学 University of Adelaide 1 1 NULL 0 NULL NULL NULL 0 +102914 0 0 阿德雷德大学 The University of Adelaide 1 0 NULL 0 NULL NULL NULL 0 +102958 0 0 阿拉伯海湾大学 Arabian Gulf University 1 0 NULL 0 NULL NULL NULL 0 +100441 0 0 阿拉善职业技术学院 0 0 高职类 0 专科 内蒙 阿拉善盟 0 +103876 0 0 阿拉巴马大学 University of Alabama 1 0 NULL 0 NULL NULL NULL 0 +103912 0 0 阿拉巴马大学伯明翰分校 University of Alabama at Birmingham 1 0 NULL 0 NULL NULL NULL 0 +103915 0 0 阿拉斯加大学费尔班克斯分校 University of Alaska Fairbanks 1 0 NULL 0 NULL NULL NULL 0 +105123 0 0 阿斯顿大学 Aston University 1 0 NULL 0 NULL NULL NULL 0 +102843 0 0 阿根廷国立理工大学 Universidad Tecnológica Nacional (UTN) 1 0 NULL 0 NULL NULL NULL 0 +102831 0 0 阿根廷天主大学 Pontificia Universidad Católica Argentina Santa María de los Buenos Aires (UCA) 1 0 NULL 0 NULL NULL NULL 0 +102829 0 0 阿根廷奥斯特拉尔大学 Universidad Austral 1 0 NULL 0 NULL NULL NULL 0 +105340 0 0 阿根廷托尔夸托迪特加大学 Torcuato Di Tella University 1 0 NULL 0 NULL NULL NULL 0 +103737 0 0 阿灵顿分校 University of Texas at Arlington 1 0 NULL 0 NULL NULL NULL 0 +104900 0 0 阿瓦士大学 Shahid Beheshti University of Medical Sciences 1 0 NULL 0 NULL NULL NULL 0 +104884 0 0 阿米喀布尔理工大学 Amirkabir University of Technology 1 0 NULL 0 NULL NULL NULL 0 +104784 0 0 阿纳多卢大学 Anadolu University 1 0 NULL 0 NULL NULL NULL 0 +103987 0 0 阿纳瓦克大学 Universidad Anahuac 1 0 NULL 0 NULL NULL NULL 0 +102844 0 0 阿联酋大学 United Arab Emirates University 1 0 NULL 0 NULL NULL NULL 0 +103905 0 0 阿肯色大学 University of Arkansas 1 0 NULL 0 NULL NULL NULL 0 +103960 0 0 阿肯色大学小石城分校 University of Arkansas at Little Rock 1 0 NULL 0 NULL NULL NULL 0 +103563 0 0 阿苏萨太平洋大学 Azusa Pacific University, APU 1 0 NULL 0 NULL NULL NULL 0 +105219 0 0 阿道夫·伊瓦涅斯大学 Universidad Adolfo Ibàñez 1 0 NULL 0 NULL NULL NULL 0 +104834 0 0 阿里坎特大学 University of Alicante 1 0 NULL 0 NULL NULL NULL 0 +104968 0 0 阿里格尔穆斯林大学 Aligarh Muslim University (AMU), Aligarh 1 0 NULL 0 NULL NULL NULL 0 +103967 0 0 阿默斯特学院 Amherst College 1 0 NULL 0 NULL NULL NULL 0 +102700 0 0 陇东学院 0 0 师范类 0 本科 甘肃 庆阳市 0 +102710 0 0 陇南师范高等专科学校 0 0 高职类 0 专科 甘肃 陇南市 0 +102597 0 0 陕西中医药大学 陕西中医学院 0 0 医科类 0 本科 陕西 咸阳市 0 +102634 0 0 陕西交通职业技术学院 0 0 高职类 0 专科 陕西 西安市 0 +102668 0 0 陕西兵器工业职工大学 0 0 军事类 0 专科(高职) 陕西 西安市 0 +102631 0 0 陕西国防工业职业技术学院 0 0 高职类 0 骨干(高职) 陕西 西安市 0 +102623 0 0 陕西国际商贸学院 0 0 财经类 0 民办(本科) 陕西 咸阳市 0 +102626 0 0 陕西学前师范学院 0 0 师范类 0 本科 陕西 西安市 0 +102627 0 0 陕西工业职业技术学院 0 0 高职类 0 示范(高职) 陕西 咸阳市 0 +102658 0 0 陕西工商职业学院 0 0 高职类 0 专科 陕西 西安市 0 +102678 0 0 陕西工运学院 0 0 理工类 0 专科(高职) 陕西 西安市 0 +102598 1 0 陕西师范大学 0 0 师范类 1 本科 陕西 西安市 0 +102660 0 0 陕西旅游烹饪职业学院 0 0 高职类 0 民办(专科) 陕西 西安市 0 +102624 0 0 陕西服装工程学院 0 0 综合类 0 民办(本科) 陕西 咸阳市 0 +105432 0 0 陕西服装艺术职业学院 0 0 理工类 0 专科(高职) 陕西 咸阳市 0 +102665 0 0 陕西机电职业技术学院 陕西电子工业职工大学 0 0 高职类 0 专科 陕西 宝鸡市 0 +102600 0 0 陕西理工大学 陕西理工学院 0 0 理工类 0 本科 陕西 汉中市 0 +102641 0 0 陕西电子信息职业技术学院 0 0 高职类 0 民办(专科) 陕西 西安市 0 +102659 0 0 陕西电子科技职业学院 0 0 理工类 0 专科(高职) 陕西 西安市 0 +102676 0 0 陕西省宝鸡教育学院 0 0 师范类 0 专科(高职) 陕西 宝鸡市 0 +102677 0 0 陕西省广播电视大学 0 0 综合类 0 专科(高职) 陕西 西安市 0 +102672 0 0 陕西省建筑工程总公司职工大学 0 0 NULL 0 NULL NULL NULL 0 +102595 0 0 陕西科技大学 0 0 理工类 0 本科 陕西 西安市 0 +102684 0 0 陕西科技大学镐京学院 0 0 理工类 0 独立学院 陕西 咸阳市 0 +102647 0 0 陕西经济管理职业技术学院 0 0 高职类 0 专科 陕西 西安市 0 +102635 0 0 陕西职业技术学院 0 0 高职类 0 骨干(高职) 陕西 西安市 0 +102630 0 0 陕西能源职业技术学院 0 0 高职类 0 专科 陕西 咸阳市 0 +102664 0 0 陕西航天职工大学 0 0 理工类 0 专科(高职) 陕西 西安市 0 +102640 0 0 陕西航空职业技术学院 0 0 高职类 0 专科 陕西 汉中市 0 +102663 0 0 陕西艺术职业学院 0 0 高职类 0 专科 陕西 西安市 0 +102646 0 0 陕西警官职业学院 0 0 高职类 0 专科 陕西 西安市 0 +102633 0 0 陕西财经职业技术学院 0 0 高职类 0 专科 陕西 咸阳市 0 +102642 0 0 陕西邮电职业技术学院 0 0 高职类 0 专科 陕西 咸阳市 0 +102638 0 0 陕西铁路工程职业技术学院 0 0 高职类 0 骨干(高职) 陕西 渭南市 0 +102657 0 0 陕西青年职业学院 0 0 高职类 0 专科 陕西 西安市 0 +104710 0 0 隆德大学 Lund University 1 1 NULL 0 NULL NULL NULL 0 +102974 0 0 隆德里纳州立大学 Universidade Estadual de Londrina 1 0 NULL 0 NULL NULL NULL 0 +101801 0 0 随州职业技术学院 0 0 高职类 0 专科 湖北 随州市 0 +104842 0 0 雅典国立科技大学 National Technical University of Athens 1 0 NULL 0 NULL NULL NULL 0 +104844 0 0 雅典大学 National and Kapodistrian University of Athens 1 0 NULL 0 NULL NULL NULL 0 +104847 0 0 雅典经商大学 Athens University of Economics and Business 1 0 NULL 0 NULL NULL NULL 0 +105271 0 0 雅典耀马尼拉大学 University of Manila University 1 0 NULL 0 NULL NULL NULL 0 +102393 0 0 雅安职业技术学院 0 0 高职类 0 专科 四川 雅安市 0 +103011 0 0 雅盖隆大学 Jagiellonian University 1 0 NULL 0 NULL NULL NULL 0 +100407 0 0 集宁师范学院 0 0 师范类 0 本科 内蒙 乌兰察布市 0 +101252 0 0 集美大学 0 0 综合类 0 本科 福建 厦门市 0 +101335 0 0 集美大学诚毅学院 0 0 综合类 0 独立学院 福建 厦门市 0 +103852 0 0 雪城大学 Syracuse University 1 0 NULL 0 NULL NULL NULL 0 +102891 0 0 雪梨大学 University of Sydney 1 0 NULL 0 NULL NULL NULL 0 +102892 0 0 雪梨科技大学 University of Technology, Sydney 1 0 NULL 0 NULL NULL NULL 0 +105108 0 0 雷丁大学 University of Reading 1 0 NULL 0 NULL NULL NULL 0 +103008 0 0 雷克雅未克大学 Reykjavík University 1 0 NULL 0 NULL NULL NULL 0 +105316 0 0 雷恩大学 University of Rennes 1 0 NULL 0 NULL NULL NULL 0 +103190 0 0 雷恩第一大学 Université de Rennes 1 1 0 NULL 0 NULL NULL NULL 0 +103112 0 0 雷根斯堡大学 Universität Regensburg 1 0 NULL 0 NULL NULL NULL 0 +103515 0 0 雷鸟国际管理学院 Thunderbird School of Global Management 1 0 NULL 0 NULL NULL NULL 0 +103858 0 0 霍华德大学 Howard University 1 0 NULL 0 NULL NULL NULL 0 +103917 0 0 霍夫斯特拉大学 Hofstra University 1 0 NULL 0 NULL NULL NULL 0 +103110 0 0 霍恩海姆大学 University of Hohenheim 1 0 NULL 0 NULL NULL NULL 0 +104649 0 0 青山学院大学 Aoyama Gakuin University 1 0 NULL 0 NULL NULL NULL 0 +101451 0 0 青岛农业大学 0 0 农林类 0 本科 山东 青岛市 0 +101587 0 0 青岛农业大学海都学院 0 0 综合类 0 独立学院 山东 烟台市 0 +101474 0 0 青岛大学 0 0 综合类 0 本科 山东 青岛市 0 +101488 0 0 青岛工学院 0 0 理工类 0 民办(本科) 山东 青岛市 0 +101581 0 0 青岛广播电视大学 青岛市广播电视大学 0 0 综合类 0 专科(高职) 山东 青岛市 0 +101484 0 0 青岛恒星科技学院 0 0 理工类 0 民办(本科) 山东 青岛市 0 +101531 0 0 青岛求实职业技术学院 0 0 高职类 0 民办(专科) 山东 青岛市 0 +101526 0 0 青岛港湾职业技术学院 0 0 高职类 0 骨干(高职) 山东 青岛市 0 +101471 0 0 青岛滨海学院 0 0 综合类 0 民办(本科) 山东 青岛市 0 +101446 0 0 青岛理工大学 0 0 理工类 0 本科 山东 青岛市 0 +101584 0 0 青岛理工大学琴岛学院 0 0 理工类 0 独立学院 山东 青岛市 0 +101444 0 0 青岛科技大学 0 0 理工类 0 本科 山东 青岛市 0 +101501 0 0 青岛职业技术学院 0 0 高职类 0 示范(高职) 山东 青岛市 0 +101561 0 0 青岛远洋船员职业学院 0 0 高职类 0 专科 山东 青岛市 0 +101524 0 0 青岛酒店管理职业技术学院 0 0 高职类 0 专科 山东 青岛市 0 +101519 0 0 青岛飞洋职业技术学院 0 0 高职类 0 民办(专科) 山东 青岛市 0 +101485 0 0 青岛黄海学院 0 0 理工类 0 民办(本科) 山东 青岛市 0 +104054 0 0 青森中央学院大学 1 0 NULL 0 NULL NULL NULL 0 +104516 0 0 青森公立大学 1 0 NULL 0 NULL NULL NULL 0 +104515 0 0 青森县立保健大学 1 0 NULL 0 NULL NULL NULL 0 +104053 0 0 青森大学 1 0 NULL 0 NULL NULL NULL 0 +102747 0 0 青海交通职业技术学院 0 0 高职类 0 骨干(高职) 青海 西宁市 0 +102744 0 0 青海卫生职业技术学院 0 0 高职类 0 专科 青海 西宁市 0 +102741 1 0 青海大学 0 0 综合类 1 本科 青海 西宁市 0 +102754 0 0 青海大学昆仑学院 0 0 综合类 0 独立学院 青海 西宁市 0 +102742 0 0 青海师范大学 0 0 师范类 0 本科 青海 西宁市 0 +102748 0 0 青海建筑职业技术学院 0 0 高职类 0 专科 青海 西宁市 0 +102751 0 0 青海柴达木职业技术学院 0 0 高职类 0 专科 青海 海西蒙古族藏族自治州 0 +102743 0 0 青海民族大学 0 0 民族类 0 本科 青海 西宁市 0 +102746 0 0 青海畜牧兽医职业技术学院 0 0 高职类 0 示范(高职) 青海 西宁市 0 +102753 0 0 青海省广播电视大学 0 0 综合类 0 专科(高职) 青海 西宁市 0 +102752 0 0 青海省联合职工大学 0 0 NULL 0 NULL NULL NULL 0 +102745 0 0 青海警官职业学院 0 0 高职类 0 专科 青海 西宁市 0 +102750 0 0 青海高等职业技术学院 0 0 高职类 0 专科 青海 海东市 0 +104536 0 0 静冈县立大学 1 0 NULL 0 NULL NULL NULL 0 +104683 0 0 静冈大学 Shizuoka University 1 0 NULL 0 NULL NULL NULL 0 +104234 0 0 静冈文化艺术大学 1 0 NULL 0 NULL NULL NULL 0 +104235 0 0 静冈理工科大学 1 0 NULL 0 NULL NULL NULL 0 +104232 0 0 静冈産业大学 1 0 NULL 0 NULL NULL NULL 0 +104233 0 0 静冈福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104231 0 0 静冈英和学院大学 1 0 NULL 0 NULL NULL NULL 0 +100475 0 0 鞍山师范学院 0 0 师范类 0 本科 辽宁 鞍山市 0 +100570 0 0 鞍山钢铁集团公司职工大学/鞍钢职工大学 鞍山钢铁集团公司职工大学 0 0 其他 0 专科(高职) 辽宁 鞍山市 0 +103843 0 0 韦恩州立大学 Wayne State University 1 0 NULL 0 NULL NULL NULL 0 +104987 0 0 韦洛尔理工大学 VIT University 1 0 NULL 0 NULL NULL NULL 0 +103302 0 0 韩世大学 1 0 NULL 0 NULL NULL NULL 0 +103337 0 0 韩东大学 1 0 NULL 0 NULL NULL NULL 0 +103295 0 0 韩南大学 1 0 NULL 0 NULL NULL NULL 0 +103278 0 0 韩国东亚大学 1 0 NULL 0 NULL NULL NULL 0 +103375 0 0 韩国中央大学 Chung-Ang University 1 0 NULL 0 NULL NULL NULL 0 +103321 0 0 韩国中部大学 1 0 NULL 0 NULL NULL NULL 0 +103355 0 0 韩国外国语大学 HUFS - Hankuk (Korea) University of Foreign Studies 1 0 NULL 0 NULL NULL NULL 0 +105357 0 0 韩国大学 Korea University 1 1 NULL 0 NULL NULL NULL 0 +103360 0 0 韩国天主大学 The Catholic University of Korea 1 0 NULL 0 NULL NULL NULL 0 +103261 0 0 韩国天主教大学 1 0 NULL 0 NULL NULL NULL 0 +103371 0 0 韩国岭南大学 Yeungnam University 1 0 NULL 0 NULL NULL NULL 0 +103317 0 0 韩国技术敎育大学 1 0 NULL 0 NULL NULL NULL 0 +103274 0 0 韩国放送通讯大学 1 0 NULL 0 NULL NULL NULL 0 +103277 0 0 韩国海洋大学 1 0 NULL 0 NULL NULL NULL 0 +103299 0 0 韩国湖南大学 1 0 NULL 0 NULL NULL NULL 0 +103292 0 0 韩国科学技术院 1 0 NULL 0 NULL NULL NULL 0 +103301 0 0 韩国航空大学 1 0 NULL 0 NULL NULL NULL 0 +103273 0 0 韩国艺术综合大学 1 0 NULL 0 NULL NULL NULL 0 +105261 0 0 韩国高等科学技术研究院 Korea Advanced Institute of Science & Technology 1 1 NULL 0 NULL NULL NULL 0 +103346 0 0 韩国高等科技学院 KAIST - Korea Advanced Institute of Science & Technology 1 0 NULL 0 NULL NULL NULL 0 +102021 0 0 韩山师范学院 0 0 师范类 0 本科 广东 潮州市 0 +103324 0 0 韩瑞大学 1 0 NULL 0 NULL NULL NULL 0 +102019 0 0 韶关学院 0 0 综合类 0 本科 广东 韶关市 0 +102138 0 0 韶关市职工大学 0 0 其他 0 专科(高职) 广东 韶关市 0 +103318 0 0 顺天乡大学 1 0 NULL 0 NULL NULL NULL 0 +104660 0 0 顺天堂大学 Juntendo University 1 0 NULL 0 NULL NULL NULL 0 +103332 0 0 顺天大学 1 0 NULL 0 NULL NULL NULL 0 +102054 0 0 顺德职业技术学院 0 0 高职类 0 骨干(高职) 广东 佛山市 0 +104396 0 0 顺心会看护医疗大学 1 0 NULL 0 NULL NULL NULL 0 +100560 0 0 顺石油化工公司职工大学 抚顺石油化工公司职工大学 0 0 理工类 0 专科(高职) 辽宁 抚顺市 0 +104799 0 0 顿涅茨克国立大学 Vasyl` Stus Donetsk National University 1 0 NULL 0 NULL NULL NULL 0 +103345 0 0 首尔国立大学 Seoul National University 1 1 NULL 0 NULL NULL NULL 0 +103373 0 0 首尔国立科技大学 Seoul National University of Science and Technology 1 0 NULL 0 NULL NULL NULL 0 +103368 0 0 首尔大学 University of Seoul 1 0 NULL 0 NULL NULL NULL 0 +103271 0 0 首尔女子大学 1 0 NULL 0 NULL NULL NULL 0 +103259 0 0 首尔市立大学 1 0 NULL 0 NULL NULL NULL 0 +100025 0 0 首都体育学院 0 0 体育类 0 本科 北京 北京市 0 +100021 0 0 首都医科大学 0 0 医科类 0 本科 北京 北京市 0 +104640 0 0 首都大学东京 Tokyo Metropolitan University 1 0 NULL 0 NULL NULL NULL 0 +100024 0 0 首都师范大学 0 0 师范类 1 本科 北京 北京市 0 +100108 0 0 首都师范大学科德学院 0 0 艺术类 0 独立学院 北京 北京市 0 +105516 0 0 首都师范大学科德学院高教自考 0 0 艺术类 0 其他 北京 北京市 0 +105425 0 0 首都师范大学继续教育学院 0 0 师范类 0 其他 北京 北京市 0 +100033 0 0 首都经济贸易大学 0 0 财经类 0 本科 北京 北京市 0 +105532 0 0 首都经济贸易大学HND 0 0 NULL 0 其他 北京 北京市 0 +105491 0 0 首都经济贸易大学华侨学院 0 0 财经类 0 普通本科 北京 北京市 0 +105484 0 0 首都经济贸易大学密云分校 0 0 财经类 0 专科(高职) 北京 北京市 0 +100106 0 0 首都联合职工大学 0 0 综合类 0 专科(高职) 北京 北京市 0 +100054 0 0 首钢工学院 0 0 理工类 0 本科 北京 北京市 0 +104568 0 0 香川县立保健医疗大学 1 0 NULL 0 NULL NULL NULL 0 +104661 0 0 香川大学 Kagawa University 1 0 NULL 0 NULL NULL NULL 0 +103625 0 0 香槟城分校 University of Illinois at Urbana-Champaign 1 0 NULL 0 NULL NULL NULL 0 +1344 0 0 香港中文大学 The Chinese University of Hong Kong 中文大学::中大::CUHK 0 0 综合类 0 本科 香港 新界 0 +102053 0 0 香港中文大学(深圳) 0 1 综合类 0 普通本科 广东 深圳市 0 +1345 0 0 香港公开大学 The Open University of Hong Kong 公大::OUHK 0 0 综合类 0 普通本科 香港 九龙半岛 0 +1346 0 0 香港城市大学 City University of Hong Kong 城大::CityU 0 1 综合类 0 本科 香港 九龙半岛 0 +1347 0 0 香港大学 The University of Hong Kong 港大::HKU 0 1 综合类 0 本科 香港 香港岛 0 +105471 0 0 香港岭南大学 0 0 综合类 0 本科 香港 新界 0 +105438 0 0 香港教育大学 0 0 综合类 0 本科 香港 新界 0 +105580 0 0 香港树仁大学 0 0 综合类 0 普通本科 香港 香港岛 0 +1348 0 0 香港浸会大学 0 0 综合类 0 本科 香港 九龙半岛 0 +105450 0 0 香港演艺学院 0 0 艺术类 0 普通本科 香港 香港岛 0 +105506 0 0 香港珠海学院 0 0 理工类 0 普通本科 香港 新界 0 +1349 0 0 香港理工大学 The Hong Kong Polytechnic University 理大::PolyU 0 1 综合类 0 本科 香港 九龙半岛 0 +31150 0 0 香港科技大学 0 1 综合类 0 本科 香港 新界 0 +104890 0 0 马什哈德菲尔多西大学 Ferdowsi University of Mashhad 1 0 NULL 0 NULL NULL NULL 0 +103899 0 0 马凯特大学 Marquette University 1 0 NULL 0 NULL NULL NULL 0 +104992 0 0 马哈拉哈大学 Maharaja Sayajirao University of Baroda 1 0 NULL 0 NULL NULL NULL 0 +104943 0 0 马尔凯理工大学 Marche Polytechnic University 1 0 NULL 0 NULL NULL NULL 0 +103114 0 0 马尔堡大学 Philipps-Universität Marburg 1 0 NULL 0 NULL NULL NULL 0 +104781 0 0 马尔马拉大学 Marmara University 1 0 NULL 0 NULL NULL NULL 0 +104993 0 0 马尼帕尔大学 Manipal University 1 0 NULL 0 NULL NULL NULL 0 +104966 0 0 马尼帕尔高等教育学院 Manipal Academy of Higher Education 1 0 NULL 0 NULL NULL NULL 0 +103220 0 0 马尼拉雅典耀大学 Ateneo de Manila University 1 0 NULL 0 NULL NULL NULL 0 +104812 0 0 马德里卡洛斯三世大学 Universidad Carlos III de Madrid (UC3M) 1 0 NULL 0 NULL NULL NULL 0 +104809 0 0 马德里康普斯顿大学 University Complutense Madrid 1 0 NULL 0 NULL NULL NULL 0 +105258 0 0 马德里康普顿斯大学 Complutense University of Madrid 1 0 NULL 0 NULL NULL NULL 0 +104816 0 0 马德里理工大学 Politécnica de Madrid 1 0 NULL 0 NULL NULL NULL 0 +105254 0 0 马德里的Politécnica Politecnica of Madrid 1 0 NULL 0 NULL NULL NULL 0 +104807 0 0 马德里自治大学 Universidad Autónoma de Madrid 1 0 NULL 0 NULL NULL NULL 0 +103391 0 0 马斯特里赫特大学 Maastricht University 1 0 NULL 0 NULL NULL NULL 0 +103480 0 0 马来亚大学 Universiti Malaya (UM) 1 1 NULL 0 NULL NULL NULL 0 +103487 0 0 马来西亚北方大学 Universiti Utara Malaysia (UUM) 1 0 NULL 0 NULL NULL NULL 0 +103481 0 0 马来西亚博特拉大学 Universiti Putra Malaysia (UPM) 1 0 NULL 0 NULL NULL NULL 0 +103490 0 0 马来西亚国家能源大学 Universiti Tenaga Nasional (UNITEN) 1 0 NULL 0 NULL NULL NULL 0 +103482 0 0 马来西亚国民大学 Universiti Kebangsaan Malaysia (UKM) 1 0 NULL 0 NULL NULL NULL 0 +103486 0 0 马来西亚国际伊斯兰大学 International Islamic University Malaysia (IIUM) 1 0 NULL 0 NULL NULL NULL 0 +103483 0 0 马来西亚理工大学 Universiti Teknologi Malaysia 1 0 NULL 0 NULL NULL NULL 0 +103484 0 0 马来西亚理科大学 Universiti Sains Malaysia (USM) 1 0 NULL 0 NULL NULL NULL 0 +103485 0 0 马来西亚石油大学 Universiti Teknologi Petronas (Petronas) 1 0 NULL 0 NULL NULL NULL 0 +102993 0 0 马林加州立大学 State University of Maringá 1 0 NULL 0 NULL NULL NULL 0 +103473 0 0 马格努斯大学 Vytautas Magnus University 1 0 NULL 0 NULL NULL NULL 0 +103127 0 0 马格德堡大学 Otto von Guericke University of Magdeburg 1 0 NULL 0 NULL NULL NULL 0 +103949 0 0 马萨诸塞大学伍斯特分校 University of Massachusetts Medical School - Worcester 1 0 NULL 0 NULL NULL NULL 0 +103866 0 0 马萨诸塞大学波士顿分校 University of Massachusetts - Boston 1 0 NULL 0 NULL NULL NULL 0 +103814 0 0 马萨诸塞大学阿默斯特分校 University of Massachusetts Amherst 1 0 NULL 0 NULL NULL NULL 0 +103681 0 0 马萨诸塞州大学 University of Massachusetts 1 0 NULL 0 NULL NULL NULL 0 +103675 0 0 马萨诸塞州理工学院 Massachusetts Institute of Technology 1 0 NULL 0 NULL NULL NULL 0 +103449 0 0 马萨里克大学 Masaryk University 1 0 NULL 0 NULL NULL NULL 0 +103181 0 0 马赛大学 Aix-Marseille University 1 0 NULL 0 NULL NULL NULL 0 +103670 0 0 马里兰大学 University of Maryland 1 0 NULL 0 NULL NULL NULL 0 +103794 0 0 马里兰大学学院公园分校 University of Maryland, College Park 1 1 NULL 0 NULL NULL NULL 0 +103952 0 0 马里兰大学巴尔的摩分校 University of Maryland, Baltimore 1 0 NULL 0 NULL NULL NULL 0 +103847 0 0 马里兰大学巴尔的摩郡分校 University of Maryland, Baltimore County 1 0 NULL 0 NULL NULL NULL 0 +104751 0 0 马里博尔大学 University of Maribor 1 0 NULL 0 NULL NULL NULL 0 +103501 0 0 马里昂军事学院 1 0 NULL 0 NULL NULL NULL 0 +101196 0 0 马鞍山师范高等专科学校 0 0 高职类 0 专科 安徽 马鞍山市 0 +101213 0 0 马鞍山职业技术学院 0 0 高职类 0 专科 安徽 马鞍山市 0 +104176 0 0 驹泽大学 1 0 NULL 0 NULL NULL NULL 0 +105606 0 0 驻马店幼儿师范高等专科学校 0 0 高职类 0 专科 河南 驻马店市 0 +101726 0 0 驻马店教育学院 0 0 师范类 0 专科(高职) 河南 驻马店市 0 +101687 0 0 驻马店职业技术学院 0 0 高职类 0 专科 河南 驻马店市 0 +104115 0 0 骏河台大学 1 0 NULL 0 NULL NULL NULL 0 +103348 0 0 高丽大学 Korea University 1 0 NULL 0 NULL NULL NULL 0 +104296 0 0 高冈法科大学 1 0 NULL 0 NULL NULL NULL 0 +102865 0 0 高威大学 National University of Ireland Galway 1 0 NULL 0 NULL NULL NULL 0 +104101 0 0 高崎健康福祉大学 1 0 NULL 0 NULL NULL NULL 0 +104102 0 0 高崎商科大学 1 0 NULL 0 NULL NULL NULL 0 +104526 0 0 高崎经济大学 1 0 NULL 0 NULL NULL NULL 0 +104452 0 0 高松大学 1 0 NULL 0 NULL NULL NULL 0 +104662 0 0 高知大学 Kochi University 1 0 NULL 0 NULL NULL NULL 0 +104570 0 0 高知女子大学 1 0 NULL 0 NULL NULL NULL 0 +104453 0 0 高知工科大学 1 0 NULL 0 NULL NULL NULL 0 +103285 0 0 高神大学 1 0 NULL 0 NULL NULL NULL 0 +105046 0 0 高级研究学院 School of Advanced Studies 1 0 NULL 0 NULL NULL NULL 0 +104410 0 0 高野山大学 1 0 NULL 0 NULL NULL NULL 0 +103414 0 0 魁北克大学 Université du Québec 1 0 NULL 0 NULL NULL NULL 0 +103423 0 0 魁北克大学蒙特利尔分校 University of Quebec Montreal 1 0 NULL 0 NULL NULL NULL 0 +103076 0 0 魏玛大学 Bauhaus-Universität Weimar 1 0 NULL 0 NULL NULL NULL 0 +104907 0 0 魏茨曼科学学院 Weizmann Institute of Science 1 0 NULL 0 NULL NULL NULL 0 +101462 0 0 鲁东大学 0 0 师范类 0 本科 山东 烟台市 0 +105303 0 0 鲁尔大学波鸿 Ruhr-University Bochum 1 0 NULL 0 NULL NULL NULL 0 +105337 0 0 鲁汶天主教大学 Catholic University of Louvain 1 0 NULL 0 NULL NULL NULL 0 +100481 0 0 鲁迅美术学院 0 0 艺术类 0 本科 辽宁 沈阳市 0 +103135 0 0 鲍曼大学 Bauman Moscow State Technical University 1 0 NULL 0 NULL NULL NULL 0 +103659 0 0 鲍登大学 Bowdoin College 1 0 NULL 0 NULL NULL NULL 0 +103477 0 0 鲍耶大学 Babes-Bolyai University 1 0 NULL 0 NULL NULL NULL 0 +103319 0 0 鲜文大学 1 0 NULL 0 NULL NULL NULL 0 +104705 0 0 鸟取大学 Tottori University 1 0 NULL 0 NULL NULL NULL 0 +104611 0 0 鸣门教育大学 1 0 NULL 0 NULL NULL NULL 0 +101700 0 0 鹤壁汽车工程职业学院 0 0 高职类 0 民办(专科) 河南 鹤壁市 0 +101657 0 0 鹤壁职业技术学院 0 0 高职类 0 专科 河南 鹤壁市 0 +101712 0 0 鹤壁能源化工职业学院 0 0 NULL 0 其他 河南 鹤壁市 0 +100705 0 0 鹤岗师范高等专科学校 0 0 高职类 0 专科 黑龙江 鹤岗市 0 +100742 0 0 鹤岗矿务局职工大学 0 0 其他 0 专科(高职) 黑龙江 鹤岗市 0 +104203 0 0 鹤见大学 1 0 NULL 0 NULL NULL NULL 0 +101377 0 0 鹰潭职业技术学院 0 0 高职类 0 专科 江西 鹰潭市 0 +104501 0 0 鹿儿岛国际大学 1 0 NULL 0 NULL NULL NULL 0 +104639 0 0 鹿儿岛大学 Kagoshima University 1 0 NULL 0 NULL NULL NULL 0 +104502 0 0 鹿儿岛纯心女子大学 1 0 NULL 0 NULL NULL NULL 0 +104613 0 0 鹿屋体育大学 1 0 NULL 0 NULL NULL NULL 0 +104794 0 0 麦克雷雷大学 Makerere University 1 0 NULL 0 NULL NULL NULL 0 +103400 0 0 麦克马斯特大学 McMaster University 1 1 NULL 0 NULL NULL NULL 0 +104740 0 0 麦加大学 Umm Al-Qura University 1 0 NULL 0 NULL NULL NULL 0 +103396 0 0 麦吉尔大学 McGill University 1 1 NULL 0 NULL NULL NULL 0 +102918 0 0 麦考瑞大学 Macquarie University 1 0 NULL 0 NULL NULL NULL 0 +102888 0 0 麦觉理大学 Macquarie University 1 0 NULL 0 NULL NULL NULL 0 +103761 0 0 麦迪逊分校 University of Wisconsin, Madison 1 0 NULL 0 NULL NULL NULL 0 +104188 0 0 麻布大学 1 0 NULL 0 NULL NULL NULL 0 +105242 0 0 麻省大学波士顿分校 University of Massachusetts Boston 1 0 NULL 0 NULL NULL NULL 0 +103764 0 0 麻省理工学院 Massachusetts Institute of Technology (MIT) 1 1 NULL 0 NULL NULL NULL 0 +101750 0 0 黄冈师范学院 0 0 师范类 0 本科 湖北 黄冈市 0 +101822 0 0 黄冈科技职业学院 0 0 高职类 0 民办(专科) 湖北 黄冈市 0 +101780 0 0 黄冈职业技术学院 0 0 高职类 0 骨干(高职) 湖北 黄冈市 0 +101138 0 0 黄山学院 0 0 师范类 0 本科 安徽 黄山市 0 +101218 0 0 黄山职业技术学院 0 0 高职类 0 专科 安徽 黄山市 0 +101632 0 0 黄河交通学院 0 0 理工类 0 民办(本科) 河南 焦作市 0 +101648 0 0 黄河水利职业技术学院 0 0 高职类 0 示范(高职) 河南 开封市 0 +101626 0 0 黄河科技学院 0 0 理工类 0 民办(本科) 河南 郑州市 0 +101616 0 0 黄淮学院 0 0 综合类 0 本科 河南 驻马店市 0 +1464 0 0 黄石广播电视大学 HUANGSHI RADIO&TV UNIVERSITY 黄石电大 0 0 综合类 0 专科(高职) 湖北 黄石市 0 +103469 0 0 黎巴嫩美国大学 Lebanese American University 1 0 NULL 0 NULL NULL NULL 0 +101275 0 0 黎明职业大学 0 0 高职类 0 专科 福建 泉州市 0 +100692 0 0 黑河学院 0 0 综合类 0 本科 黑龙江 黑河市 0 +100719 0 0 黑龙江三江美术职业学院 0 0 高职类 0 民办(专科) 黑龙江 佳木斯市 0 +100681 0 0 黑龙江东方学院 0 0 综合类 0 民办(本科) 黑龙江 哈尔滨市 0 +100668 0 0 黑龙江中医药大学 0 0 医科类 0 本科 黑龙江 哈尔滨市 0 +100725 0 0 黑龙江交通职业技术学院 0 0 高职类 0 专科 黑龙江 齐齐哈尔市 0 +100715 0 0 黑龙江信息技术职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100664 0 0 黑龙江八一农垦大学 0 0 农林类 0 本科 黑龙江 大庆市 0 +100714 0 0 黑龙江公安警官职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100735 0 0 黑龙江兵器工业职工大学 0 0 军事类 0 专科(高职) 黑龙江 哈尔滨市 0 +100702 0 0 黑龙江农业工程职业学院 0 0 高职类 0 示范(高职) 黑龙江 哈尔滨市 0 +100709 0 0 黑龙江农业经济职业学院 0 0 高职类 0 示范(高职) 黑龙江 牡丹江市 0 +100701 0 0 黑龙江农业职业技术学院 0 0 高职类 0 专科 黑龙江 佳木斯市 0 +100717 0 0 黑龙江农垦科技职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100744 0 0 黑龙江农垦管理干部学院 0 0 综合类 0 专科(高职) 黑龙江 哈尔滨市 0 +100703 0 0 黑龙江农垦职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +105504 0 0 黑龙江冰雪体育职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100704 0 0 黑龙江司法警官职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100713 0 0 黑龙江商业职业学院 0 0 高职类 0 专科 黑龙江 牡丹江市 0 +100685 0 0 黑龙江外国语学院 0 0 外语类 0 民办(本科) 黑龙江 哈尔滨市 0 +100657 0 0 黑龙江大学 0 0 综合类 0 本科 黑龙江 哈尔滨市 0 +100680 0 0 黑龙江工业学院 0 0 理工类 0 本科 黑龙江 鸡西市 0 +100757 0 0 黑龙江工商学院 东北农业大学成栋学院 0 0 财经类 0 民办(本科) 黑龙江 哈尔滨市 0 +100683 0 0 黑龙江工程学院 0 0 理工类 0 本科 黑龙江 哈尔滨市 0 +100758 0 0 黑龙江工程学院昆仑旅游学院 0 0 理工类 0 独立学院 黑龙江 哈尔滨市 0 +100727 0 0 黑龙江幼儿师范高等专科学校 0 0 高职类 0 专科 黑龙江 牡丹江市 0 +100751 0 0 黑龙江广播电视大学/黑龙江电大 黑龙江省广播电视大学 0 0 综合类 0 专科(高职) 黑龙江 哈尔滨市 0 +100697 0 0 黑龙江建筑职业技术学院 0 0 高职类 0 示范(高职) 黑龙江 哈尔滨市 0 +100731 0 0 黑龙江护理高等专科学校 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100718 0 0 黑龙江旅游职业技术学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100700 0 0 黑龙江林业职业技术学院 0 0 高职类 0 专科 黑龙江 牡丹江市 0 +100723 0 0 黑龙江民族职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100720 0 0 黑龙江生态工程职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100712 0 0 黑龙江生物科技职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100752 0 0 黑龙江省商业职工大学 0 0 其他 0 专科(高职) 黑龙江 哈尔滨市 0 +100746 0 0 黑龙江省政法管理干部学院 0 0 政法类 0 专科(高职) 黑龙江 哈尔滨市 0 +100747 0 0 黑龙江省教育学院 0 0 师范类 0 专科(高职) 黑龙江 哈尔滨市 0 +100739 0 0 黑龙江省电力职工大学 0 0 理工类 0 专科(高职) 黑龙江 哈尔滨市 0 +100753 0 0 黑龙江省社会科学院职工大学 0 0 其他 0 专科(高职) 黑龙江 哈尔滨市 0 +100745 0 0 黑龙江省经济管理干部学院 0 0 政法类 0 专科(高职) 黑龙江 哈尔滨市 0 +100755 0 0 黑龙江省职工体育运动技术学院 0 0 体育类 0 专科(高职) 黑龙江 哈尔滨市 0 +100661 0 0 黑龙江科技大学 0 0 理工类 0 本科 黑龙江 哈尔滨市 0 +100729 0 0 黑龙江粮食职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100696 0 0 黑龙江职业学院 0 0 高职类 0 骨干(高职) 黑龙江 哈尔滨市 0 +100721 0 0 黑龙江能源职业学院 黑龙江煤炭职业技术学院 0 0 高职类 0 专科 黑龙江 双鸭山市 0 +100698 0 0 黑龙江艺术职业学院 0 0 高职类 0 专科 黑龙江 哈尔滨市 0 +100686 0 0 黑龙江财经学院 0 0 财经类 0 民办(本科) 黑龙江 哈尔滨市 0 +102475 0 0 黔东南民族职业技术学院 0 0 高职类 0 专科 贵州 黔东南苗族侗族自治州 0 +102468 0 0 黔南民族医学高等专科学校 0 0 高职类 0 专科 贵州 黔南布依族苗族自治州 0 +102461 0 0 黔南民族师范学院 0 0 师范类 0 本科 贵州 黔南布依族苗族自治州 0 +102494 0 0 黔南民族幼儿师范高等专科学校 0 0 高职类 0 专科 贵州 黔南布依族苗族自治州 0 +102476 0 0 黔南民族职业技术学院 0 0 高职类 0 专科 贵州 黔南布依族苗族自治州 0 +102483 0 0 黔西南民族职业技术学院 0 0 高职类 0 专科 贵州 黔西南布依族苗族自治州 0 +102930 0 0 默多克大学 Murdoch University 1 0 NULL 0 NULL NULL NULL 0 +103643 0 0 默海尔州立大学 Morehead State University 1 0 NULL 0 NULL NULL NULL 0 +101470 0 0 齐鲁医药学院 山东万杰医学院 0 0 医科类 0 民办(本科) 山东 淄博市 0 +101448 0 0 齐鲁工业大学 0 0 理工类 0 本科 山东 济南市 0 +101491 0 0 齐鲁师范学院 0 0 师范类 0 本科 山东 济南市 0 +101489 0 0 齐鲁理工学院 0 0 综合类 0 民办(本科) 山东 济南市 0 +100679 0 0 齐齐哈尔医学院 0 0 医科类 0 本科 黑龙江 齐齐哈尔市 0 +100671 0 0 齐齐哈尔大学 0 0 综合类 0 本科 黑龙江 齐齐哈尔市 0 +100684 0 0 齐齐哈尔工程学院 0 0 理工类 0 民办(本科) 黑龙江 齐齐哈尔市 0 +100741 0 0 齐齐哈尔市职工大学 0 0 其他 0 专科(高职) 黑龙江 齐齐哈尔市 0 +100733 0 0 齐齐哈尔理工职业学院 齐齐哈尔市建设职工大学 0 0 高职类 0 民办(专科) 黑龙江 齐齐哈尔市 0 +100693 0 0 齐齐哈尔高等师范专科学校 0 0 高职类 0 专科 黑龙江 齐齐哈尔市 0 +103307 0 0 龙仁大学 1 0 NULL 0 NULL NULL NULL 0 +101263 0 0 龙岩学院 0 0 师范类 0 本科 福建 龙岩市 0 +105146 0 0 龙比亚大学 Edinburgh Napier University 1 0 NULL 0 NULL NULL NULL 0 +104330 0 0 龙谷大学 1 0 NULL 0 NULL NULL NULL 0 +203765 0 0 加州艺术学院 California Institute of the Arts 1 1 NULL 0 NULL NULL NULL 0 +213765 0 0 萨凡纳艺术学院 Savannah College of Art and Design 1 1 NULL 0 NULL NULL NULL 0 +223765 0 0 瑞格林艺术设计学院 Ringling College of Art and Design 1 1 NULL 0 NULL NULL NULL 0 +233765 0 0 纽约视觉艺术学院 School of Visual Art 1 1 NULL 0 NULL NULL NULL 0 +253765 0 0 谢尔丹学院 Sheridan College 1 1 NULL 0 NULL NULL NULL 0 +263765 0 0 伯恩茅斯大学 Bournemouth University 1 1 NULL 0 NULL NULL NULL 0 +273765 0 0 提赛德大学 Teesside University 1 1 NULL 0 NULL NULL NULL 0 +283765 0 0 高布兰学院 Gobelins 1 1 NULL 0 NULL NULL NULL 0 diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/schools.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/schools.py new file mode 100644 index 00000000..e1abfa51 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/entities/schools.py @@ -0,0 +1,62 @@ +# -*- coding: UTF-8 -*- +import os, json,re,copy +import pandas as pd +current_file_path = os.path.dirname(os.path.abspath(__file__)) +TBL = pd.read_csv(os.path.join(current_file_path, "res/schools.csv"), sep="\t", header=0).fillna("") +TBL["name_en"] = TBL["name_en"].map(lambda x: x.lower().strip()) +GOOD_SCH = json.load(open(os.path.join(current_file_path, "res/good_sch.json"), "r")) +GOOD_SCH = set([re.sub(r"[,. &()()]+", "", c) for c in GOOD_SCH]) + + +def loadRank(fnm): + global TBL + TBL["rank"] = 1000000 + with open(fnm, "r",encoding='UTF-8') as f: + while True: + l = f.readline() + if not l:break + l = l.strip("\n").split(",") + try: + nm,rk = l[0].strip(),int(l[1]) + #assert len(TBL[((TBL.name_cn == nm) | (TBL.name_en == nm))]),f"<{nm}>" + TBL.loc[((TBL.name_cn == nm) | (TBL.name_en == nm)), "rank"] = rk + except Exception as e: + pass + + +loadRank(os.path.join(current_file_path, "res/school.rank.csv")) + + +def split(txt): + tks = [] + for t in re.sub(r"[ \t]+", " ",txt).split(" "): + if tks and re.match(r".*[a-zA-Z]$", tks[-1]) and \ + re.match(r"[a-zA-Z]", t) and tks: + tks[-1] = tks[-1] + " " + t + else:tks.append(t) + return tks + + +def select(nm): + global TBL + if not nm:return + if isinstance(nm, list):nm = str(nm[0]) + nm = split(nm)[0] + nm = str(nm).lower().strip() + nm = re.sub(r"[((][^()()]+[))]", "", nm.lower()) + nm = re.sub(r"(^the |[,.&()();;·]+|^(英国|美国|瑞士))", "", nm) + nm = re.sub(r"大学.*学院", "大学", nm) + tbl = copy.deepcopy(TBL) + tbl["hit_alias"] = tbl["alias"].map(lambda x:nm in set(x.split("+"))) + res = tbl[((tbl.name_cn == nm) | (tbl.name_en == nm) | (tbl.hit_alias == True))] + if res.empty:return + + return json.loads(res.to_json(orient="records"))[0] + + +def is_good(nm): + global GOOD_SCH + nm = re.sub(r"[((][^()()]+[))]", "", nm.lower()) + nm = re.sub(r"[''`‘’“”,. &()();;]+", "", nm) + return nm in GOOD_SCH + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_one.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_one.py new file mode 100644 index 00000000..7ae9839b --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_one.py @@ -0,0 +1,174 @@ +# -*- coding: utf-8 -*- +import json +from deepdoc.parser.resume.entities import degrees, regions, industries + +FIELDS = [ +"address STRING", +"annual_salary int", +"annual_salary_from int", +"annual_salary_to int", +"birth STRING", +"card STRING", +"certificate_obj string", +"city STRING", +"corporation_id int", +"corporation_name STRING", +"corporation_type STRING", +"degree STRING", +"discipline_name STRING", +"education_obj string", +"email STRING", +"expect_annual_salary int", +"expect_city_names string", +"expect_industry_name STRING", +"expect_position_name STRING", +"expect_salary_from int", +"expect_salary_to int", +"expect_type STRING", +"gender STRING", +"industry_name STRING", +"industry_names STRING", +"is_deleted STRING", +"is_fertility STRING", +"is_house STRING", +"is_management_experience STRING", +"is_marital STRING", +"is_oversea STRING", +"language_obj string", +"name STRING", +"nation STRING", +"phone STRING", +"political_status STRING", +"position_name STRING", +"project_obj string", +"responsibilities string", +"salary_month int", +"scale STRING", +"school_name STRING", +"self_remark string", +"skill_obj string", +"title_name STRING", +"tob_resume_id STRING", +"updated_at Timestamp", +"wechat STRING", +"work_obj string", +"work_experience int", +"work_start_time BIGINT" +] + +def refactor(df): + def deal_obj(obj, k, kk): + if not isinstance(obj, type({})): + return "" + obj = obj.get(k, {}) + if not isinstance(obj, type({})): + return "" + return obj.get(kk, "") + + def loadjson(line): + try: + return json.loads(line) + except Exception as e: + pass + return {} + + df["obj"] = df["resume_content"].map(lambda x: loadjson(x)) + df.fillna("", inplace=True) + + clms = ["tob_resume_id", "updated_at"] + + def extract(nms, cc=None): + nonlocal clms + clms.extend(nms) + for c in nms: + if cc: + df[c] = df["obj"].map(lambda x: deal_obj(x, cc, c)) + else: + df[c] = df["obj"].map( + lambda x: json.dumps( + x.get( + c, + {}), + ensure_ascii=False) if isinstance( + x, + type( + {})) and ( + isinstance( + x.get(c), + type( + {})) or not x.get(c)) else str(x).replace( + "None", + "")) + + extract(["education", "work", "certificate", "project", "language", + "skill"]) + extract(["wechat", "phone", "is_deleted", + "name", "tel", "email"], "contact") + extract(["nation", "expect_industry_name", "salary_month", + "industry_ids", "is_house", "birth", "annual_salary_from", + "annual_salary_to", "card", + "expect_salary_to", "expect_salary_from", + "expect_position_name", "gender", "city", + "is_fertility", "expect_city_names", + "political_status", "title_name", "expect_annual_salary", + "industry_name", "address", "position_name", "school_name", + "corporation_id", + "is_oversea", "responsibilities", + "work_start_time", "degree", "management_experience", + "expect_type", "corporation_type", "scale", "corporation_name", + "self_remark", "annual_salary", "work_experience", + "discipline_name", "marital", "updated_at"], "basic") + + df["degree"] = df["degree"].map(lambda x: degrees.get_name(x)) + df["address"] = df["address"].map(lambda x: " ".join(regions.get_names(x))) + df["industry_names"] = df["industry_ids"].map(lambda x: " ".join([" ".join(industries.get_names(i)) for i in + str(x).split(",")])) + clms.append("industry_names") + + def arr2str(a): + if not a: + return "" + if isinstance(a, list): + a = " ".join([str(i) for i in a]) + return str(a).replace(",", " ") + + df["expect_industry_name"] = df["expect_industry_name"].map( + lambda x: arr2str(x)) + df["gender"] = df["gender"].map( + lambda x: "男" if x == 'M' else ( + "女" if x == 'F' else "")) + for c in ["is_fertility", "is_oversea", "is_house", + "management_experience", "marital"]: + df[c] = df[c].map( + lambda x: '是' if x == 'Y' else ( + '否' if x == 'N' else "")) + df["is_management_experience"] = df["management_experience"] + df["is_marital"] = df["marital"] + clms.extend(["is_management_experience", "is_marital"]) + + df.fillna("", inplace=True) + for i in range(len(df)): + if not df.loc[i, "phone"].strip() and df.loc[i, "tel"].strip(): + df.loc[i, "phone"] = df.loc[i, "tel"].strip() + + for n in ["industry_ids", "management_experience", "marital", "tel"]: + for i in range(len(clms)): + if clms[i] == n: + del clms[i] + break + + clms = list(set(clms)) + + df = df.reindex(sorted(clms), axis=1) + #print(json.dumps(list(df.columns.values)), "LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL") + for c in clms: + df[c] = df[c].map( + lambda s: str(s).replace( + "\t", + " ").replace( + "\n", + "\\n").replace( + "\r", + "\\n")) + # print(df.values.tolist()) + return dict(zip([n.split(" ")[0] for n in FIELDS], df.values.tolist()[0])) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_two.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_two.py new file mode 100644 index 00000000..207cc791 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/parser/resume/step_two.py @@ -0,0 +1,580 @@ +# -*- coding: utf-8 -*- +import re, copy, time, datetime, demjson, \ + traceback, signal +import numpy as np +from deepdoc.parser.resume.entities import degrees, schools, corporations +from rag.nlp import huqie, surname +from xpinyin import Pinyin +from contextlib import contextmanager + + +class TimeoutException(Exception): pass + + +@contextmanager +def time_limit(seconds): + def signal_handler(signum, frame): + raise TimeoutException("Timed out!") + + signal.signal(signal.SIGALRM, signal_handler) + signal.alarm(seconds) + try: + yield + finally: + signal.alarm(0) + + +ENV = None +PY = Pinyin() + + +def rmHtmlTag(line): + return re.sub(r"<[a-z0-9.\"=';,:\+_/ -]+>", " ", line, 100000, re.IGNORECASE) + + +def highest_degree(dg): + if not dg: return "" + if type(dg) == type(""): dg = [dg] + m = {"初中": 0, "高中": 1, "中专": 2, "大专": 3, "专升本": 4, "本科": 5, "硕士": 6, "博士": 7, "博士后": 8} + return sorted([(d, m.get(d, -1)) for d in dg], key=lambda x: x[1] * -1)[0][0] + + +def forEdu(cv): + if not cv.get("education_obj"): + cv["integerity_flt"] *= 0.8 + return cv + + first_fea, fea, maj, fmaj, deg, fdeg, sch, fsch, st_dt, ed_dt = [], [], [], [], [], [], [], [], [], [] + edu_nst = [] + edu_end_dt = "" + cv["school_rank_int"] = 1000000 + for ii, n in enumerate(sorted(cv["education_obj"], key=lambda x: x.get("start_time", "3"))): + e = {} + if n.get("end_time"): + if n["end_time"] > edu_end_dt: edu_end_dt = n["end_time"] + try: + dt = n["end_time"] + if re.match(r"[0-9]{9,}", dt): dt = turnTm2Dt(dt) + y, m, d = getYMD(dt) + ed_dt.append(str(y)) + e["end_dt_kwd"] = str(y) + except Exception as e: + pass + if n.get("start_time"): + try: + dt = n["start_time"] + if re.match(r"[0-9]{9,}", dt): dt = turnTm2Dt(dt) + y, m, d = getYMD(dt) + st_dt.append(str(y)) + e["start_dt_kwd"] = str(y) + except Exception as e: + pass + + r = schools.select(n.get("school_name", "")) + if r: + if str(r.get("type", "")) == "1": fea.append("211") + if str(r.get("type", "")) == "2": fea.append("211") + if str(r.get("is_abroad", "")) == "1": fea.append("留学") + if str(r.get("is_double_first", "")) == "1": fea.append("双一流") + if str(r.get("is_985", "")) == "1": fea.append("985") + if str(r.get("is_world_known", "")) == "1": fea.append("海外知名") + if r.get("rank") and cv["school_rank_int"] > r["rank"]: cv["school_rank_int"] = r["rank"] + + if n.get("school_name") and isinstance(n["school_name"], str): + sch.append(re.sub(r"(211|985|重点大学|[,&;;-])", "", n["school_name"])) + e["sch_nm_kwd"] = sch[-1] + fea.append(huqie.qieqie(huqie.qie(n.get("school_name", ""))).split(" ")[-1]) + + if n.get("discipline_name") and isinstance(n["discipline_name"], str): + maj.append(n["discipline_name"]) + e["major_kwd"] = n["discipline_name"] + + if not n.get("degree") and "985" in fea and not first_fea: n["degree"] = "1" + + if n.get("degree"): + d = degrees.get_name(n["degree"]) + if d: e["degree_kwd"] = d + if d == "本科" and ("专科" in deg or "专升本" in deg or "中专" in deg or "大专" in deg or re.search(r"(成人|自考|自学考试)", + n.get( + "school_name", + ""))): d = "专升本" + if d: deg.append(d) + + # for first degree + if not fdeg and d in ["中专", "专升本", "专科", "本科", "大专"]: + fdeg = [d] + if n.get("school_name"): fsch = [n["school_name"]] + if n.get("discipline_name"): fmaj = [n["discipline_name"]] + first_fea = copy.deepcopy(fea) + + edu_nst.append(e) + + cv["sch_rank_kwd"] = [] + if cv["school_rank_int"] <= 20 \ + or ("海外名校" in fea and cv["school_rank_int"] <= 200): + cv["sch_rank_kwd"].append("顶尖学校") + elif cv["school_rank_int"] <= 50 and cv["school_rank_int"] > 20 \ + or ("海外名校" in fea and cv["school_rank_int"] <= 500 and \ + cv["school_rank_int"] > 200): + cv["sch_rank_kwd"].append("精英学校") + elif cv["school_rank_int"] > 50 and ("985" in fea or "211" in fea) \ + or ("海外名校" in fea and cv["school_rank_int"] > 500): + cv["sch_rank_kwd"].append("优质学校") + else: + cv["sch_rank_kwd"].append("一般学校") + + if edu_nst: cv["edu_nst"] = edu_nst + if fea: cv["edu_fea_kwd"] = list(set(fea)) + if first_fea: cv["edu_first_fea_kwd"] = list(set(first_fea)) + if maj: cv["major_kwd"] = maj + if fsch: cv["first_school_name_kwd"] = fsch + if fdeg: cv["first_degree_kwd"] = fdeg + if fmaj: cv["first_major_kwd"] = fmaj + if st_dt: cv["edu_start_kwd"] = st_dt + if ed_dt: cv["edu_end_kwd"] = ed_dt + if ed_dt: cv["edu_end_int"] = max([int(t) for t in ed_dt]) + if deg: + if "本科" in deg and "专科" in deg: + deg.append("专升本") + deg = [d for d in deg if d != '本科'] + cv["degree_kwd"] = deg + cv["highest_degree_kwd"] = highest_degree(deg) + if edu_end_dt: + try: + if re.match(r"[0-9]{9,}", edu_end_dt): edu_end_dt = turnTm2Dt(edu_end_dt) + if edu_end_dt.strip("\n") == "至今": edu_end_dt = cv.get("updated_at_dt", str(datetime.date.today())) + y, m, d = getYMD(edu_end_dt) + cv["work_exp_flt"] = min(int(str(datetime.date.today())[0:4]) - int(y), cv.get("work_exp_flt", 1000)) + except Exception as e: + print("EXCEPTION: ", e, edu_end_dt, cv.get("work_exp_flt")) + if sch: + cv["school_name_kwd"] = sch + if (len(cv.get("degree_kwd", [])) >= 1 and "本科" in cv["degree_kwd"]) \ + or all([c.lower() in ["硕士", "博士", "mba", "博士后"] for c in cv.get("degree_kwd", [])]) \ + or not cv.get("degree_kwd"): + for c in sch: + if schools.is_good(c): + if "tag_kwd" not in cv: cv["tag_kwd"] = [] + cv["tag_kwd"].append("好学校") + cv["tag_kwd"].append("好学历") + break + if (len(cv.get("degree_kwd", [])) >= 1 and \ + "本科" in cv["degree_kwd"] and \ + any([d.lower() in ["硕士", "博士", "mba", "博士"] for d in cv.get("degree_kwd", [])])) \ + or all([d.lower() in ["硕士", "博士", "mba", "博士后"] for d in cv.get("degree_kwd", [])]) \ + or any([d in ["mba", "emba", "博士后"] for d in cv.get("degree_kwd", [])]): + if "tag_kwd" not in cv: cv["tag_kwd"] = [] + if "好学历" not in cv["tag_kwd"]: cv["tag_kwd"].append("好学历") + + if cv.get("major_kwd"): cv["major_tks"] = huqie.qie(" ".join(maj)) + if cv.get("school_name_kwd"): cv["school_name_tks"] = huqie.qie(" ".join(sch)) + if cv.get("first_school_name_kwd"): cv["first_school_name_tks"] = huqie.qie(" ".join(fsch)) + if cv.get("first_major_kwd"): cv["first_major_tks"] = huqie.qie(" ".join(fmaj)) + + return cv + + +def forProj(cv): + if not cv.get("project_obj"): return cv + + pro_nms, desc = [], [] + for i, n in enumerate( + sorted(cv.get("project_obj", []), key=lambda x: str(x.get("updated_at", "")) if type(x) == type({}) else "", + reverse=True)): + if n.get("name"): pro_nms.append(n["name"]) + if n.get("describe"): desc.append(str(n["describe"])) + if n.get("responsibilities"): desc.append(str(n["responsibilities"])) + if n.get("achivement"): desc.append(str(n["achivement"])) + + if pro_nms: + # cv["pro_nms_tks"] = huqie.qie(" ".join(pro_nms)) + cv["project_name_tks"] = huqie.qie(pro_nms[0]) + if desc: + cv["pro_desc_ltks"] = huqie.qie(rmHtmlTag(" ".join(desc))) + cv["project_desc_ltks"] = huqie.qie(rmHtmlTag(desc[0])) + + return cv + + +def json_loads(line): + return demjson.decode(re.sub(r": *(True|False)", r": '\1'", line)) + + +def forWork(cv): + if not cv.get("work_obj"): + cv["integerity_flt"] *= 0.7 + return cv + + flds = ["position_name", "corporation_name", "corporation_id", "responsibilities", + "industry_name", "subordinates_count"] + duas = [] + scales = [] + fea = {c: [] for c in flds} + latest_job_tm = "" + goodcorp = False + goodcorp_ = False + work_st_tm = "" + corp_tags = [] + for i, n in enumerate( + sorted(cv.get("work_obj", []), key=lambda x: str(x.get("start_time", "")) if type(x) == type({}) else "", + reverse=True)): + if type(n) == type(""): + try: + n = json_loads(n) + except Exception as e: + continue + + if n.get("start_time") and (not work_st_tm or n["start_time"] < work_st_tm): work_st_tm = n["start_time"] + for c in flds: + if not n.get(c) or str(n[c]) == '0': + fea[c].append("") + continue + if c == "corporation_name": + n[c] = corporations.corpNorm(n[c], False) + if corporations.is_good(n[c]): + if i == 0: + goodcorp = True + else: + goodcorp_ = True + ct = corporations.corp_tag(n[c]) + if i == 0: + corp_tags.extend(ct) + elif ct and ct[0] != "软外": + corp_tags.extend([f"{t}(曾)" for t in ct]) + + fea[c].append(rmHtmlTag(str(n[c]).lower())) + + y, m, d = getYMD(n.get("start_time")) + if not y or not m: continue + st = "%s-%02d-%02d" % (y, int(m), int(d)) + latest_job_tm = st + + y, m, d = getYMD(n.get("end_time")) + if (not y or not m) and i > 0: continue + if not y or not m or int(y) > 2022: y, m, d = getYMD(str(n.get("updated_at", ""))) + if not y or not m: continue + ed = "%s-%02d-%02d" % (y, int(m), int(d)) + + try: + duas.append((datetime.datetime.strptime(ed, "%Y-%m-%d") - datetime.datetime.strptime(st, "%Y-%m-%d")).days) + except Exception as e: + print("kkkkkkkkkkkkkkkkkkkk", n.get("start_time"), n.get("end_time")) + + if n.get("scale"): + r = re.search(r"^([0-9]+)", str(n["scale"])) + if r: scales.append(int(r.group(1))) + + if goodcorp: + if "tag_kwd" not in cv: cv["tag_kwd"] = [] + cv["tag_kwd"].append("好公司") + if goodcorp_: + if "tag_kwd" not in cv: cv["tag_kwd"] = [] + cv["tag_kwd"].append("好公司(曾)") + + if corp_tags: + if "tag_kwd" not in cv: cv["tag_kwd"] = [] + cv["tag_kwd"].extend(corp_tags) + cv["corp_tag_kwd"] = [c for c in corp_tags if re.match(r"(综合|行业)", c)] + + if latest_job_tm: cv["latest_job_dt"] = latest_job_tm + if fea["corporation_id"]: cv["corporation_id"] = fea["corporation_id"] + + if fea["position_name"]: + cv["position_name_tks"] = huqie.qie(fea["position_name"][0]) + cv["position_name_sm_tks"] = huqie.qieqie(cv["position_name_tks"]) + cv["pos_nm_tks"] = huqie.qie(" ".join(fea["position_name"][1:])) + + if fea["industry_name"]: + cv["industry_name_tks"] = huqie.qie(fea["industry_name"][0]) + cv["industry_name_sm_tks"] = huqie.qieqie(cv["industry_name_tks"]) + cv["indu_nm_tks"] = huqie.qie(" ".join(fea["industry_name"][1:])) + + if fea["corporation_name"]: + cv["corporation_name_kwd"] = fea["corporation_name"][0] + cv["corp_nm_kwd"] = fea["corporation_name"] + cv["corporation_name_tks"] = huqie.qie(fea["corporation_name"][0]) + cv["corporation_name_sm_tks"] = huqie.qieqie(cv["corporation_name_tks"]) + cv["corp_nm_tks"] = huqie.qie(" ".join(fea["corporation_name"][1:])) + + if fea["responsibilities"]: + cv["responsibilities_ltks"] = huqie.qie(fea["responsibilities"][0]) + cv["resp_ltks"] = huqie.qie(" ".join(fea["responsibilities"][1:])) + + if fea["subordinates_count"]: fea["subordinates_count"] = [int(i) for i in fea["subordinates_count"] if + re.match(r"[^0-9]+$", str(i))] + if fea["subordinates_count"]: cv["max_sub_cnt_int"] = np.max(fea["subordinates_count"]) + + if type(cv.get("corporation_id")) == type(1): cv["corporation_id"] = [str(cv["corporation_id"])] + if not cv.get("corporation_id"): cv["corporation_id"] = [] + for i in cv.get("corporation_id", []): + cv["baike_flt"] = max(corporations.baike(i), cv["baike_flt"] if "baike_flt" in cv else 0) + + if work_st_tm: + try: + if re.match(r"[0-9]{9,}", work_st_tm): work_st_tm = turnTm2Dt(work_st_tm) + y, m, d = getYMD(work_st_tm) + cv["work_exp_flt"] = min(int(str(datetime.date.today())[0:4]) - int(y), cv.get("work_exp_flt", 1000)) + except Exception as e: + print("EXCEPTION: ", e, work_st_tm, cv.get("work_exp_flt")) + + cv["job_num_int"] = 0 + if duas: + cv["dua_flt"] = np.mean(duas) + cv["cur_dua_int"] = duas[0] + cv["job_num_int"] = len(duas) + if scales: cv["scale_flt"] = np.max(scales) + return cv + + +def turnTm2Dt(b): + if not b: return + b = str(b).strip() + if re.match(r"[0-9]{10,}", b): b = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int(b[:10]))) + return b + + +def getYMD(b): + y, m, d = "", "", "01" + if not b: return (y, m, d) + b = turnTm2Dt(b) + if re.match(r"[0-9]{4}", b): y = int(b[:4]) + r = re.search(r"[0-9]{4}.?([0-9]{1,2})", b) + if r: m = r.group(1) + r = re.search(r"[0-9]{4}.?[0-9]{,2}.?([0-9]{1,2})", b) + if r: d = r.group(1) + if not d or int(d) == 0 or int(d) > 31: d = "1" + if not m or int(m) > 12 or int(m) < 1: m = "1" + return (y, m, d) + + +def birth(cv): + if not cv.get("birth"): + cv["integerity_flt"] *= 0.9 + return cv + y, m, d = getYMD(cv["birth"]) + if not m or not y: return cv + b = "%s-%02d-%02d" % (y, int(m), int(d)) + cv["birth_dt"] = b + cv["birthday_kwd"] = "%02d%02d" % (int(m), int(d)) + + cv["age_int"] = datetime.datetime.now().year - int(y) + return cv + + +def parse(cv): + for k in cv.keys(): + if cv[k] == '\\N': cv[k] = '' + # cv = cv.asDict() + tks_fld = ["address", "corporation_name", "discipline_name", "email", "expect_city_names", + "expect_industry_name", "expect_position_name", "industry_name", "industry_names", "name", + "position_name", "school_name", "self_remark", "title_name"] + small_tks_fld = ["corporation_name", "expect_position_name", "position_name", "school_name", "title_name"] + kwd_fld = ["address", "city", "corporation_type", "degree", "discipline_name", "expect_city_names", "email", + "expect_industry_name", "expect_position_name", "expect_type", "gender", "industry_name", + "industry_names", "political_status", "position_name", "scale", "school_name", "phone", "tel"] + num_fld = ["annual_salary", "annual_salary_from", "annual_salary_to", "expect_annual_salary", "expect_salary_from", + "expect_salary_to", "salary_month"] + + is_fld = [ + ("is_fertility", "已育", "未育"), + ("is_house", "有房", "没房"), + ("is_management_experience", "有管理经验", "无管理经验"), + ("is_marital", "已婚", "未婚"), + ("is_oversea", "有海外经验", "无海外经验") + ] + + rmkeys = [] + for k in cv.keys(): + if cv[k] is None: rmkeys.append(k) + if (type(cv[k]) == type([]) or type(cv[k]) == type("")) and len(cv[k]) == 0: rmkeys.append(k) + for k in rmkeys: del cv[k] + + integerity = 0. + flds_num = 0. + + def hasValues(flds): + nonlocal integerity, flds_num + flds_num += len(flds) + for f in flds: + v = str(cv.get(f, "")) + if len(v) > 0 and v != '0' and v != '[]': integerity += 1 + + hasValues(tks_fld) + hasValues(small_tks_fld) + hasValues(kwd_fld) + hasValues(num_fld) + cv["integerity_flt"] = integerity / flds_num + + if cv.get("corporation_type"): + for p, r in [(r"(公司|企业|其它|其他|Others*|\n|未填写|Enterprises|Company|companies)", ""), + (r"[//.· <\((]+.*", ""), + (r".*(合资|民企|股份制|中外|私营|个体|Private|创业|Owned|投资).*", "民营"), + (r".*(机关|事业).*", "机关"), + (r".*(非盈利|Non-profit).*", "非盈利"), + (r".*(外企|外商|欧美|foreign|Institution|Australia|港资).*", "外企"), + (r".*国有.*", "国企"), + (r"[ ()\(\)人/·0-9-]+", ""), + (r".*(元|规模|于|=|北京|上海|至今|中国|工资|州|shanghai|强|餐饮|融资|职).*", "")]: + cv["corporation_type"] = re.sub(p, r, cv["corporation_type"], 1000, re.IGNORECASE) + if len(cv["corporation_type"]) < 2: del cv["corporation_type"] + + if cv.get("political_status"): + for p, r in [ + (r".*党员.*", "党员"), + (r".*(无党派|公民).*", "群众"), + (r".*团员.*", "团员")]: + cv["political_status"] = re.sub(p, r, cv["political_status"]) + if not re.search(r"[党团群]", cv["political_status"]): del cv["political_status"] + + if cv.get("phone"): cv["phone"] = re.sub(r"^0*86([0-9]{11})", r"\1", re.sub(r"[^0-9]+", "", cv["phone"])) + + keys = list(cv.keys()) + for k in keys: + # deal with json objects + if k.find("_obj") > 0: + try: + cv[k] = json_loads(cv[k]) + cv[k] = [a for _, a in cv[k].items()] + nms = [] + for n in cv[k]: + if type(n) != type({}) or "name" not in n or not n.get("name"): continue + n["name"] = re.sub(r"((442)|\t )", "", n["name"]).strip().lower() + if not n["name"]: continue + nms.append(n["name"]) + if nms: + t = k[:-4] + cv[f"{t}_kwd"] = nms + cv[f"{t}_tks"] = huqie.qie(" ".join(nms)) + except Exception as e: + print("【EXCEPTION】:", str(traceback.format_exc()), cv[k]) + cv[k] = [] + + # tokenize fields + if k in tks_fld: + cv[f"{k}_tks"] = huqie.qie(cv[k]) + if k in small_tks_fld: cv[f"{k}_sm_tks"] = huqie.qie(cv[f"{k}_tks"]) + + # keyword fields + if k in kwd_fld: cv[f"{k}_kwd"] = [n.lower() + for n in re.split(r"[\t,,;;. ]", + re.sub(r"([^a-zA-Z])[ ]+([^a-zA-Z ])", r"\1,\2", cv[k]) + ) if n] + + if k in num_fld and cv.get(k): cv[f"{k}_int"] = cv[k] + + cv["email_kwd"] = cv.get("email_tks", "").replace(" ", "") + # for name field + if cv.get("name"): + nm = re.sub(r"[\n——\-\((\+].*", "", cv["name"].strip()) + nm = re.sub(r"[ \t ]+", " ", nm) + if re.match(r"[a-zA-Z ]+$", nm): + if len(nm.split(" ")) > 1: + cv["name"] = nm + else: + nm = "" + elif nm and (surname.isit(nm[0]) or surname.isit(nm[:2])): + nm = re.sub(r"[a-zA-Z]+.*", "", nm[:5]) + else: + nm = "" + cv["name"] = nm.strip() + name = cv["name"] + + # name pingyin and its prefix + cv["name_py_tks"] = " ".join(PY.get_pinyins(nm[:20], '')) + " " + " ".join(PY.get_pinyins(nm[:20], ' ')) + cv["name_py_pref0_tks"] = "" + cv["name_py_pref_tks"] = "" + for py in PY.get_pinyins(nm[:20], ''): + for i in range(2, len(py) + 1): cv["name_py_pref_tks"] += " " + py[:i] + for py in PY.get_pinyins(nm[:20], ' '): + py = py.split(" ") + for i in range(1, len(py) + 1): cv["name_py_pref0_tks"] += " " + "".join(py[:i]) + + cv["name_kwd"] = name + cv["name_pinyin_kwd"] = PY.get_pinyins(nm[:20], ' ')[:3] + cv["name_tks"] = ( + huqie.qie(name) + " " + (" ".join(list(name)) if not re.match(r"[a-zA-Z ]+$", name) else "") + ) if name else "" + else: + cv["integerity_flt"] /= 2. + + if cv.get("phone"): + r = re.search(r"(1[3456789][0-9]{9})", cv["phone"]) + if not r: + cv["phone"] = "" + else: + cv["phone"] = r.group(1) + + # deal with date fields + if cv.get("updated_at") and isinstance(cv["updated_at"], datetime.datetime): + cv["updated_at_dt"] = cv["updated_at"].strftime('%Y-%m-%d %H:%M:%S') + else: + y, m, d = getYMD(str(cv.get("updated_at", ""))) + if not y: y = "2012" + if not m: m = "01" + if not d: d = "01" + cv["updated_at_dt"] = f"%s-%02d-%02d 00:00:00" % (y, int(m), int(d)) + # long text tokenize + + if cv.get("responsibilities"): cv["responsibilities_ltks"] = huqie.qie(rmHtmlTag(cv["responsibilities"])) + + # for yes or no field + fea = [] + for f, y, n in is_fld: + if f not in cv: continue + if cv[f] == '是': fea.append(y) + if cv[f] == '否': fea.append(n) + + if fea: cv["tag_kwd"] = fea + + cv = forEdu(cv) + cv = forProj(cv) + cv = forWork(cv) + cv = birth(cv) + + cv["corp_proj_sch_deg_kwd"] = [c for c in cv.get("corp_tag_kwd", [])] + for i in range(len(cv["corp_proj_sch_deg_kwd"])): + for j in cv.get("sch_rank_kwd", []): cv["corp_proj_sch_deg_kwd"][i] += "+" + j + for i in range(len(cv["corp_proj_sch_deg_kwd"])): + if cv.get("highest_degree_kwd"): cv["corp_proj_sch_deg_kwd"][i] += "+" + cv["highest_degree_kwd"] + + try: + if not cv.get("work_exp_flt") and cv.get("work_start_time"): + if re.match(r"[0-9]{9,}", str(cv["work_start_time"])): + cv["work_start_dt"] = turnTm2Dt(cv["work_start_time"]) + cv["work_exp_flt"] = (time.time() - int(int(cv["work_start_time"]) / 1000)) / 3600. / 24. / 365. + elif re.match(r"[0-9]{4}[^0-9]", str(cv["work_start_time"])): + y, m, d = getYMD(str(cv["work_start_time"])) + cv["work_start_dt"] = f"%s-%02d-%02d 00:00:00" % (y, int(m), int(d)) + cv["work_exp_flt"] = int(str(datetime.date.today())[0:4]) - int(y) + except Exception as e: + print("【EXCEPTION】", e, "==>", cv.get("work_start_time")) + if "work_exp_flt" not in cv and cv.get("work_experience", 0): cv["work_exp_flt"] = int(cv["work_experience"]) / 12. + + keys = list(cv.keys()) + for k in keys: + if not re.search(r"_(fea|tks|nst|dt|int|flt|ltks|kwd|id)$", k): del cv[k] + for k in cv.keys(): + if not re.search("_(kwd|id)$", k) or type(cv[k]) != type([]): continue + cv[k] = list(set([re.sub("(市)$", "", str(n)) for n in cv[k] if n not in ['中国', '0']])) + keys = [k for k in cv.keys() if re.search(r"_feas*$", k)] + for k in keys: + if cv[k] <= 0: del cv[k] + + cv["tob_resume_id"] = str(cv["tob_resume_id"]) + cv["id"] = cv["tob_resume_id"] + print("CCCCCCCCCCCCCCC") + + return dealWithInt64(cv) + + +def dealWithInt64(d): + if isinstance(d, dict): + for n, v in d.items(): + d[n] = dealWithInt64(v) + + if isinstance(d, list): + d = [dealWithInt64(t) for t in d] + + if isinstance(d, np.integer): d = int(d) + return d + diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/__init__.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/__init__.py new file mode 100644 index 00000000..5468f367 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/__init__.py @@ -0,0 +1,47 @@ +from .recognizer import Recognizer +from .layout_recognizer import LayoutRecognizer +from .table_structure_recognizer_lore import TableStructureRecognizer_LORE + +def init_in_out(args): + from PIL import Image + import fitz + import os + import traceback + from core.utils.utils import traversal_files + images = [] + outputs = [] + + if not os.path.exists(args.output_dir): + os.mkdir(args.output_dir) + + def pdf_pages(fnm, zoomin=3): + nonlocal outputs, images + pdf = fitz.open(fnm) + mat = fitz.Matrix(zoomin, zoomin) + for i, page in enumerate(pdf): + pix = page.get_pixmap(matrix=mat) + img = Image.frombytes("RGB", [pix.width, pix.height], + pix.samples) + images.append(img) + outputs.append(os.path.split(fnm)[-1] + f"_{i}.jpg") + + def images_and_outputs(fnm): + nonlocal outputs, images + if fnm.split(".")[-1].lower() == "pdf": + pdf_pages(fnm) + return + try: + images.append(Image.open(fnm)) + outputs.append(os.path.split(fnm)[-1]) + except Exception as e: + traceback.print_exc() + + if os.path.isdir(args.inputs): + for fnm in traversal_files(args.inputs): + images_and_outputs(fnm) + else: + images_and_outputs(args.inputs) + + for i in range(len(outputs)): outputs[i] = os.path.join(args.output_dir, outputs[i]) + + return images, outputs \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/layout_recognizer.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/layout_recognizer.py new file mode 100644 index 00000000..c3130bf7 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/layout_recognizer.py @@ -0,0 +1,134 @@ +import os +import re +from collections import Counter +from copy import deepcopy +import numpy as np +from qanything_kernel.utils.loader.pdf_to_markdown.core.vision import Recognizer +from qanything_kernel.configs.model_config import PDF_MODEL_PATH +from tqdm import tqdm + + +class LayoutRecognizer(Recognizer): + labels = ['Text', 'Title', 'Figure', 'Equation', 'Table', + 'Caption', 'Header', 'Footer', 'BibInfo', 'Reference', + 'Content', 'Code', 'Other', 'Item', 'Author'] + + def __init__(self, domain): + model_dir = os.path.join( + PDF_MODEL_PATH, + "checkpoints/layout") + super().__init__(self.labels, domain, model_dir) + self.garbage_layouts = ["footer", "header"] + + def __call__(self, image_list, ocr_res, scale_factor=3, thr=0.25, batch_size=16, drop=True): + def __is_garbage(b): + patt = ['\* Corresponding Author', '\*Corresponding to'] + return any([re.search(p, b["text"]) for p in patt]) + + layouts = super().__call__(image_list, thr, batch_size) + # save_results(image_list, layouts, self.labels, output_dir='output/', threshold=0.7) + assert len(image_list) == len(ocr_res) + # Tag layout type + boxes = [] + assert len(image_list) == len(layouts) + garbages = {} + page_layout = [] + for pn, lts in tqdm(enumerate(layouts)): + bxs = ocr_res[pn] + lts = [{"type": b["type"], + "score": float(b["score"]), + "x0": b["bbox"][0] / scale_factor, "x1": b["bbox"][2] / scale_factor, + "top": b["bbox"][1] / scale_factor, "bottom": b["bbox"][-1] / scale_factor, + "page_number": pn, + } for b in lts] + lts = self.sort_Y_firstly(lts, np.mean( + [l["bottom"] - l["top"] for l in lts]) / 2) + lts = self.layouts_cleanup(bxs, lts) + if pn == 0: + try: + idx = [b['x0'] for b in lts].index(min([b['x0'] for b in lts if b['type'] == 'text'])) + if (lts[idx]['bottom']-lts[idx]['top'])/(lts[idx]['x1']-lts[idx]['x0']) > 15: + lts.pop(idx) + except: + lts = lts + page_layout.append(lts) + + # Tag layout type, layouts are ready + def findLayout(ty): + nonlocal bxs, lts, self + lts_ = [lt for lt in lts if lt["type"] == ty] + i = 0 + while i < len(bxs): + if bxs[i].get("layout_type"): + i += 1 + continue + if __is_garbage(bxs[i]): + bxs.pop(i) + continue + + ii = self.find_overlapped_with_threashold(bxs[i], lts_, + thr=0.4) + + if ii is None: # belong to nothing + bxs[i]["layout_type"] = "" + i += 1 + continue + lts_[ii]["visited"] = True + keep_feats = [ + lts_[ + ii]["type"] == "footer" and bxs[i]["bottom"] < image_list[pn].size[1] * 0.9 / scale_factor, + lts_[ + ii]["type"] == "header" and bxs[i]["top"] > image_list[pn].size[1] * 0.1 / scale_factor, + ] + if drop and lts_[ + ii]["type"] in self.garbage_layouts and not any(keep_feats): + if lts_[ii]["type"] not in garbages: + garbages[lts_[ii]["type"]] = [] + garbages[lts_[ii]["type"]].append(bxs[i]["text"]) + bxs.pop(i) + continue + + bxs[i]["layoutno"] = f"{ty}-{ii}" + bxs[i]["layout_type"] = lts_[ii]["type"] if lts_[ + ii]["type"] != "equation" else "figure" + i += 1 + + for ty in ["footer", "header", "reference", "caption", "author", + "title", "table", "text", "figure", "equation", "content"]: + findLayout(ty) + # add box to figure layouts which has not text box + for i, lt in enumerate( + [lt for lt in lts if lt["type"] in ["figure", "equation"]]): + if lt.get("visited"): + continue + lt = deepcopy(lt) + del lt["type"] + lt["text"] = "" + lt["layout_type"] = "figure" + lt["layoutno"] = f"figure-{i}" + lt["page_number"] = pn + 1 + bxs.append(lt) + + lts_ = [lt for lt in lts if lt["type"] == 'item'] + for i, bx in enumerate(bxs): + if bx["layout_type"] != 'reference': continue + ii = self.find_overlapped_with_threashold(bx, lts_, + thr=0.4) + if ii is None: + continue + layoutno = bx["layoutno"] + bxs[i]["layoutno"] = f"{layoutno}-item-{ii}" + + boxes.extend(bxs) + + ocr_res = boxes + + garbag_set = set() + for k in garbages.keys(): + garbages[k] = Counter(garbages[k]) + for g, c in garbages[k].items(): + if c > 1: + garbag_set.add(g) + + ocr_res = [b for b in ocr_res if b["text"].strip() not in garbag_set] + return ocr_res, page_layout diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/operators.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/operators.py new file mode 100644 index 00000000..5f5736f4 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/operators.py @@ -0,0 +1,695 @@ +import sys +import six +import cv2 +import numpy as np +import math +from PIL import Image + + +class DecodeImage(object): + """ decode image """ + + def __init__(self, + img_mode='RGB', + channel_first=False, + ignore_orientation=False, + **kwargs): + self.img_mode = img_mode + self.channel_first = channel_first + self.ignore_orientation = ignore_orientation + + def __call__(self, data): + img = data['image'] + if six.PY2: + assert isinstance(img, str) and len( + img) > 0, "invalid input 'img' in DecodeImage" + else: + assert isinstance(img, bytes) and len( + img) > 0, "invalid input 'img' in DecodeImage" + img = np.frombuffer(img, dtype='uint8') + if self.ignore_orientation: + img = cv2.imdecode(img, cv2.IMREAD_IGNORE_ORIENTATION | + cv2.IMREAD_COLOR) + else: + img = cv2.imdecode(img, 1) + if img is None: + return None + if self.img_mode == 'GRAY': + img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + elif self.img_mode == 'RGB': + assert img.shape[2] == 3, 'invalid shape of image[%s]' % ( + img.shape) + img = img[:, :, ::-1] + + if self.channel_first: + img = img.transpose((2, 0, 1)) + + data['image'] = img + return data + + +class StandardizeImage(object): + """normalize image + Args: + mean (list): im - mean + std (list): im / std + is_scale (bool): whether need im / 255 + norm_type (str): type in ['mean_std', 'none'] + """ + + def __init__(self, mean, std, is_scale=True, norm_type='mean_std'): + self.mean = mean + self.std = std + self.is_scale = is_scale + self.norm_type = norm_type + + def __call__(self, im, im_info): + """ + Args: + im (np.ndarray): image (np.ndarray) + im_info (dict): info of image + Returns: + im (np.ndarray): processed image (np.ndarray) + im_info (dict): info of processed image + """ + im = im.astype(np.float32, copy=False) + if self.is_scale: + scale = 1.0 / 255.0 + im *= scale + + if self.norm_type == 'mean_std': + mean = np.array(self.mean)[np.newaxis, np.newaxis, :] + std = np.array(self.std)[np.newaxis, np.newaxis, :] + im -= mean + im /= std + return im, im_info + + +class NormalizeImage(object): + """ normalize image such as substract mean, divide std + """ + + def __init__(self, scale=None, mean=None, std=None, order='chw', **kwargs): + if isinstance(scale, str): + scale = eval(scale) + self.scale = np.float32(scale if scale is not None else 1.0 / 255.0) + mean = mean if mean is not None else [0.485, 0.456, 0.406] + std = std if std is not None else [0.229, 0.224, 0.225] + + shape = (3, 1, 1) if order == 'chw' else (1, 1, 3) + self.mean = np.array(mean).reshape(shape).astype('float32') + self.std = np.array(std).reshape(shape).astype('float32') + + def __call__(self, data): + img = data['image'] + from PIL import Image + if isinstance(img, Image.Image): + img = np.array(img) + assert isinstance(img, + np.ndarray), "invalid input 'img' in NormalizeImage" + data['image'] = ( + img.astype('float32') * self.scale - self.mean) / self.std + return data + + +class ToCHWImage(object): + """ convert hwc image to chw image + """ + + def __init__(self, **kwargs): + pass + + def __call__(self, data): + img = data['image'] + from PIL import Image + if isinstance(img, Image.Image): + img = np.array(img) + data['image'] = img.transpose((2, 0, 1)) + return data + + +class Fasttext(object): + def __init__(self, path="None", **kwargs): + import fasttext + self.fast_model = fasttext.load_model(path) + + def __call__(self, data): + label = data['label'] + fast_label = self.fast_model[label] + data['fast_label'] = fast_label + return data + + +class KeepKeys(object): + def __init__(self, keep_keys, **kwargs): + self.keep_keys = keep_keys + + def __call__(self, data): + data_list = [] + for key in self.keep_keys: + data_list.append(data[key]) + return data_list + + +class Pad(object): + def __init__(self, size=None, size_div=32, **kwargs): + if size is not None and not isinstance(size, (int, list, tuple)): + raise TypeError("Type of target_size is invalid. Now is {}".format( + type(size))) + if isinstance(size, int): + size = [size, size] + self.size = size + self.size_div = size_div + + def __call__(self, data): + + img = data['image'] + img_h, img_w = img.shape[0], img.shape[1] + if self.size: + resize_h2, resize_w2 = self.size + assert ( + img_h < resize_h2 and img_w < resize_w2 + ), '(h, w) of target size should be greater than (img_h, img_w)' + else: + resize_h2 = max( + int(math.ceil(img.shape[0] / self.size_div) * self.size_div), + self.size_div) + resize_w2 = max( + int(math.ceil(img.shape[1] / self.size_div) * self.size_div), + self.size_div) + img = cv2.copyMakeBorder( + img, + 0, + resize_h2 - img_h, + 0, + resize_w2 - img_w, + cv2.BORDER_CONSTANT, + value=0) + data['image'] = img + return data + + +class LinearResize(object): + """resize image by target_size and max_size + Args: + target_size (int): the target size of image + keep_ratio (bool): whether keep_ratio or not, default true + interp (int): method of resize + """ + + def __init__(self, target_size, keep_ratio=True, interp=cv2.INTER_LINEAR): + if isinstance(target_size, int): + target_size = [target_size, target_size] + self.target_size = target_size + self.keep_ratio = keep_ratio + self.interp = interp + + def __call__(self, im, im_info): + """ + Args: + im (np.ndarray): image (np.ndarray) + im_info (dict): info of image + Returns: + im (np.ndarray): processed image (np.ndarray) + im_info (dict): info of processed image + """ + assert len(self.target_size) == 2 + assert self.target_size[0] > 0 and self.target_size[1] > 0 + im_channel = im.shape[2] + im_scale_y, im_scale_x = self.generate_scale(im) + im = cv2.resize( + im, + None, + None, + fx=im_scale_x, + fy=im_scale_y, + interpolation=self.interp) + im_info['im_shape'] = np.array(im.shape[:2]).astype('float32') + im_info['scale_factor'] = np.array( + [im_scale_y, im_scale_x]).astype('float32') + return im, im_info + + def generate_scale(self, im): + """ + Args: + im (np.ndarray): image (np.ndarray) + Returns: + im_scale_x: the resize ratio of X + im_scale_y: the resize ratio of Y + """ + origin_shape = im.shape[:2] + im_c = im.shape[2] + if self.keep_ratio: + im_size_min = np.min(origin_shape) + im_size_max = np.max(origin_shape) + target_size_min = np.min(self.target_size) + target_size_max = np.max(self.target_size) + im_scale = float(target_size_min) / float(im_size_min) + if np.round(im_scale * im_size_max) > target_size_max: + im_scale = float(target_size_max) / float(im_size_max) + im_scale_x = im_scale + im_scale_y = im_scale + else: + resize_h, resize_w = self.target_size + im_scale_y = resize_h / float(origin_shape[0]) + im_scale_x = resize_w / float(origin_shape[1]) + return im_scale_y, im_scale_x + + +class Resize(object): + def __init__(self, size=(640, 640), **kwargs): + self.size = size + + def resize_image(self, img): + resize_h, resize_w = self.size + ori_h, ori_w = img.shape[:2] # (h, w, c) + ratio_h = float(resize_h) / ori_h + ratio_w = float(resize_w) / ori_w + img = cv2.resize(img, (int(resize_w), int(resize_h))) + return img, [ratio_h, ratio_w] + + def __call__(self, data): + img = data['image'] + if 'polys' in data: + text_polys = data['polys'] + + img_resize, [ratio_h, ratio_w] = self.resize_image(img) + if 'polys' in data: + new_boxes = [] + for box in text_polys: + new_box = [] + for cord in box: + new_box.append([cord[0] * ratio_w, cord[1] * ratio_h]) + new_boxes.append(new_box) + data['polys'] = np.array(new_boxes, dtype=np.float32) + data['image'] = img_resize + return data + + +class DetResizeForTest(object): + def __init__(self, **kwargs): + super(DetResizeForTest, self).__init__() + self.resize_type = 0 + self.keep_ratio = False + if 'image_shape' in kwargs: + self.image_shape = kwargs['image_shape'] + self.resize_type = 1 + if 'keep_ratio' in kwargs: + self.keep_ratio = kwargs['keep_ratio'] + elif 'limit_side_len' in kwargs: + self.limit_side_len = kwargs['limit_side_len'] + self.limit_type = kwargs.get('limit_type', 'min') + elif 'resize_long' in kwargs: + self.resize_type = 2 + self.resize_long = kwargs.get('resize_long', 960) + else: + self.limit_side_len = 736 + self.limit_type = 'min' + + def __call__(self, data): + img = data['image'] + src_h, src_w, _ = img.shape + if sum([src_h, src_w]) < 64: + img = self.image_padding(img) + + if self.resize_type == 0: + # img, shape = self.resize_image_type0(img) + img, [ratio_h, ratio_w] = self.resize_image_type0(img) + elif self.resize_type == 2: + img, [ratio_h, ratio_w] = self.resize_image_type2(img) + else: + # img, shape = self.resize_image_type1(img) + img, [ratio_h, ratio_w] = self.resize_image_type1(img) + data['image'] = img + data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w]) + return data + + def image_padding(self, im, value=0): + h, w, c = im.shape + im_pad = np.zeros((max(32, h), max(32, w), c), np.uint8) + value + im_pad[:h, :w, :] = im + return im_pad + + def resize_image_type1(self, img): + resize_h, resize_w = self.image_shape + ori_h, ori_w = img.shape[:2] # (h, w, c) + if self.keep_ratio is True: + resize_w = ori_w * resize_h / ori_h + N = math.ceil(resize_w / 32) + resize_w = N * 32 + ratio_h = float(resize_h) / ori_h + ratio_w = float(resize_w) / ori_w + img = cv2.resize(img, (int(resize_w), int(resize_h))) + # return img, np.array([ori_h, ori_w]) + return img, [ratio_h, ratio_w] + + def resize_image_type0(self, img): + """ + resize image to a size multiple of 32 which is required by the network + args: + img(array): array with shape [h, w, c] + return(tuple): + img, (ratio_h, ratio_w) + """ + limit_side_len = self.limit_side_len + h, w, c = img.shape + + # limit the max side + if self.limit_type == 'max': + if max(h, w) > limit_side_len: + if h > w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + elif self.limit_type == 'min': + if min(h, w) < limit_side_len: + if h < w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + elif self.limit_type == 'resize_long': + ratio = float(limit_side_len) / max(h, w) + else: + raise Exception('not support limit type, image ') + resize_h = int(h * ratio) + resize_w = int(w * ratio) + + resize_h = max(int(round(resize_h / 32) * 32), 32) + resize_w = max(int(round(resize_w / 32) * 32), 32) + + try: + if int(resize_w) <= 0 or int(resize_h) <= 0: + return None, (None, None) + img = cv2.resize(img, (int(resize_w), int(resize_h))) + except BaseException: + print(img.shape, resize_w, resize_h) + sys.exit(0) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + return img, [ratio_h, ratio_w] + + def resize_image_type2(self, img): + h, w, _ = img.shape + + resize_w = w + resize_h = h + + if resize_h > resize_w: + ratio = float(self.resize_long) / resize_h + else: + ratio = float(self.resize_long) / resize_w + + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + img = cv2.resize(img, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + + return img, [ratio_h, ratio_w] + + +class E2EResizeForTest(object): + def __init__(self, **kwargs): + super(E2EResizeForTest, self).__init__() + self.max_side_len = kwargs['max_side_len'] + self.valid_set = kwargs['valid_set'] + + def __call__(self, data): + img = data['image'] + src_h, src_w, _ = img.shape + if self.valid_set == 'totaltext': + im_resized, [ratio_h, ratio_w] = self.resize_image_for_totaltext( + img, max_side_len=self.max_side_len) + else: + im_resized, (ratio_h, ratio_w) = self.resize_image( + img, max_side_len=self.max_side_len) + data['image'] = im_resized + data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w]) + return data + + def resize_image_for_totaltext(self, im, max_side_len=512): + + h, w, _ = im.shape + resize_w = w + resize_h = h + ratio = 1.25 + if h * ratio > max_side_len: + ratio = float(max_side_len) / resize_h + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(im, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + return im, (ratio_h, ratio_w) + + def resize_image(self, im, max_side_len=512): + """ + resize image to a size multiple of max_stride which is required by the network + :param im: the resized image + :param max_side_len: limit of max image size to avoid out of memory in gpu + :return: the resized image and the resize ratio + """ + h, w, _ = im.shape + + resize_w = w + resize_h = h + + # Fix the longer side + if resize_h > resize_w: + ratio = float(max_side_len) / resize_h + else: + ratio = float(max_side_len) / resize_w + + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(im, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + + return im, (ratio_h, ratio_w) + + +class KieResize(object): + def __init__(self, **kwargs): + super(KieResize, self).__init__() + self.max_side, self.min_side = kwargs['img_scale'][0], kwargs[ + 'img_scale'][1] + + def __call__(self, data): + img = data['image'] + points = data['points'] + src_h, src_w, _ = img.shape + im_resized, scale_factor, [ratio_h, ratio_w + ], [new_h, new_w] = self.resize_image(img) + resize_points = self.resize_boxes(img, points, scale_factor) + data['ori_image'] = img + data['ori_boxes'] = points + data['points'] = resize_points + data['image'] = im_resized + data['shape'] = np.array([new_h, new_w]) + return data + + def resize_image(self, img): + norm_img = np.zeros([1024, 1024, 3], dtype='float32') + scale = [512, 1024] + h, w = img.shape[:2] + max_long_edge = max(scale) + max_short_edge = min(scale) + scale_factor = min(max_long_edge / max(h, w), + max_short_edge / min(h, w)) + resize_w, resize_h = int(w * float(scale_factor) + 0.5), int(h * float( + scale_factor) + 0.5) + max_stride = 32 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(img, (resize_w, resize_h)) + new_h, new_w = im.shape[:2] + w_scale = new_w / w + h_scale = new_h / h + scale_factor = np.array( + [w_scale, h_scale, w_scale, h_scale], dtype=np.float32) + norm_img[:new_h, :new_w, :] = im + return norm_img, scale_factor, [h_scale, w_scale], [new_h, new_w] + + def resize_boxes(self, im, points, scale_factor): + points = points * scale_factor + img_shape = im.shape[:2] + points[:, 0::2] = np.clip(points[:, 0::2], 0, img_shape[1]) + points[:, 1::2] = np.clip(points[:, 1::2], 0, img_shape[0]) + return points + + +class SRResize(object): + def __init__(self, + imgH=32, + imgW=128, + down_sample_scale=4, + keep_ratio=False, + min_ratio=1, + mask=False, + infer_mode=False, + **kwargs): + self.imgH = imgH + self.imgW = imgW + self.keep_ratio = keep_ratio + self.min_ratio = min_ratio + self.down_sample_scale = down_sample_scale + self.mask = mask + self.infer_mode = infer_mode + + def __call__(self, data): + imgH = self.imgH + imgW = self.imgW + images_lr = data["image_lr"] + transform2 = ResizeNormalize( + (imgW // self.down_sample_scale, imgH // self.down_sample_scale)) + images_lr = transform2(images_lr) + data["img_lr"] = images_lr + if self.infer_mode: + return data + + images_HR = data["image_hr"] + label_strs = data["label"] + transform = ResizeNormalize((imgW, imgH)) + images_HR = transform(images_HR) + data["img_hr"] = images_HR + return data + + +class ResizeNormalize(object): + def __init__(self, size, interpolation=Image.BICUBIC): + self.size = size + self.interpolation = interpolation + + def __call__(self, img): + img = img.resize(self.size, self.interpolation) + img_numpy = np.array(img).astype("float32") + img_numpy = img_numpy.transpose((2, 0, 1)) / 255 + return img_numpy + + +class GrayImageChannelFormat(object): + """ + format gray scale image's channel: (3,h,w) -> (1,h,w) + Args: + inverse: inverse gray image + """ + + def __init__(self, inverse=False, **kwargs): + self.inverse = inverse + + def __call__(self, data): + img = data['image'] + img_single_channel = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + img_expanded = np.expand_dims(img_single_channel, 0) + + if self.inverse: + data['image'] = np.abs(img_expanded - 1) + else: + data['image'] = img_expanded + + data['src_image'] = img + return data + + +class Permute(object): + """permute image + Args: + to_bgr (bool): whether convert RGB to BGR + channel_first (bool): whether convert HWC to CHW + """ + + def __init__(self, ): + super(Permute, self).__init__() + + def __call__(self, im, im_info): + """ + Args: + im (np.ndarray): image (np.ndarray) + im_info (dict): info of image + Returns: + im (np.ndarray): processed image (np.ndarray) + im_info (dict): info of processed image + """ + im = im.transpose((2, 0, 1)).copy() + return im, im_info + + +class PadStride(object): + """ padding image for model with FPN, instead PadBatch(pad_to_stride) in original config + Args: + stride (bool): model with FPN need image shape % stride == 0 + """ + + def __init__(self, stride=0): + self.coarsest_stride = stride + + def __call__(self, im, im_info): + """ + Args: + im (np.ndarray): image (np.ndarray) + im_info (dict): info of image + Returns: + im (np.ndarray): processed image (np.ndarray) + im_info (dict): info of processed image + """ + coarsest_stride = self.coarsest_stride + if coarsest_stride <= 0: + return im, im_info + im_c, im_h, im_w = im.shape + pad_h = int(np.ceil(float(im_h) / coarsest_stride) * coarsest_stride) + pad_w = int(np.ceil(float(im_w) / coarsest_stride) * coarsest_stride) + padding_im = np.zeros((im_c, pad_h, pad_w), dtype=np.float32) + padding_im[:, :im_h, :im_w] = im + return padding_im, im_info + + +def decode_image(im_file, im_info): + """read rgb image + Args: + im_file (str|np.ndarray): input can be image path or np.ndarray + im_info (dict): info of image + Returns: + im (np.ndarray): processed image (np.ndarray) + im_info (dict): info of processed image + """ + if isinstance(im_file, str): + with open(im_file, 'rb') as f: + im_read = f.read() + data = np.frombuffer(im_read, dtype='uint8') + im = cv2.imdecode(data, 1) # BGR mode, but need RGB mode + im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) + else: + im = im_file + im_info['im_shape'] = np.array(im.shape[:2], dtype=np.float32) + im_info['scale_factor'] = np.array([1., 1.], dtype=np.float32) + return im, im_info + + +def preprocess(im, preprocess_ops): + # process image by preprocess_ops + im_info = { + 'scale_factor': np.array( + [1., 1.], dtype=np.float32), + 'im_shape': None, + } + im, im_info = decode_image(im, im_info) + for operator in preprocess_ops: + im, im_info = operator(im, im_info) + return im, im_info diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/recognizer.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/recognizer.py new file mode 100644 index 00000000..13968f67 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/recognizer.py @@ -0,0 +1,444 @@ +import os +from copy import deepcopy +import onnxruntime as ort +from qanything_kernel.utils.loader.pdf_to_markdown.core.vision.operators import * + +class Recognizer(object): + def __init__(self, label_list, task_name, model_dir=None): + """ + If you have trouble downloading HuggingFace models, -_^ this might help!! + + For Linux: + export HF_ENDPOINT=https://hf-mirror.com + + For Windows: + Good luck + ^_- + + """ + model_file_path = os.path.join(model_dir, task_name + ".onnx") + if not os.path.exists(model_file_path): + raise ValueError("not find model file path {}".format( + model_file_path)) + if False and ort.get_device() == "GPU": + options = ort.SessionOptions() + options.enable_cpu_mem_arena = False + self.ort_sess = ort.InferenceSession(model_file_path, options=options, providers=[('CUDAExecutionProvider')]) + else: + self.ort_sess = ort.InferenceSession(model_file_path, providers=['CPUExecutionProvider']) + self.input_names = [node.name for node in self.ort_sess.get_inputs()] + self.output_names = [node.name for node in self.ort_sess.get_outputs()] + self.input_shape = self.ort_sess.get_inputs()[0].shape[2:4] + self.label_list = label_list + + @staticmethod + def sort_Y_firstly(arr, threashold): + # sort using y1 first and then x1 + arr = sorted(arr, key=lambda r: (r["top"], r["x0"])) + for i in range(len(arr) - 1): + for j in range(i, -1, -1): + # restore the order using th + if abs(arr[j + 1]["top"] - arr[j]["top"]) < threashold \ + and arr[j + 1]["x0"] < arr[j]["x0"]: + tmp = deepcopy(arr[j]) + arr[j] = deepcopy(arr[j + 1]) + arr[j + 1] = deepcopy(tmp) + return arr + + @staticmethod + def sort_X_firstly(arr, threashold, copy=True): + # sort using y1 first and then x1 + arr = sorted(arr, key=lambda r: (r["x0"], r["top"])) + for i in range(len(arr) - 1): + for j in range(i, -1, -1): + # restore the order using th + if abs(arr[j + 1]["x0"] - arr[j]["x0"]) < threashold \ + and arr[j + 1]["top"] < arr[j]["top"]: + tmp = deepcopy(arr[j]) if copy else arr[j] + arr[j] = deepcopy(arr[j + 1]) if copy else arr[j + 1] + arr[j + 1] = deepcopy(tmp) if copy else tmp + return arr + + @staticmethod + def sort_C_firstly(arr, thr=0): + # sort using y1 first and then x1 + # sorted(arr, key=lambda r: (r["x0"], r["top"])) + arr = Recognizer.sort_X_firstly(arr, thr) + for i in range(len(arr) - 1): + for j in range(i, -1, -1): + # restore the order using th + if "C" not in arr[j] or "C" not in arr[j + 1]: + continue + if arr[j + 1]["C"] < arr[j]["C"] \ + or ( + arr[j + 1]["C"] == arr[j]["C"] + and arr[j + 1]["top"] < arr[j]["top"] + ): + tmp = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = tmp + return arr + + return sorted(arr, key=lambda r: (r.get("C", r["x0"]), r["top"])) + + @staticmethod + def sort_R_firstly(arr, thr=0): + # sort using y1 first and then x1 + # sorted(arr, key=lambda r: (r["top"], r["x0"])) + arr = Recognizer.sort_Y_firstly(arr, thr) + for i in range(len(arr) - 1): + for j in range(i, -1, -1): + if "R" not in arr[j] or "R" not in arr[j + 1]: + continue + if arr[j + 1]["R"] < arr[j]["R"] \ + or ( + arr[j + 1]["R"] == arr[j]["R"] + and arr[j + 1]["x0"] < arr[j]["x0"] + ): + tmp = arr[j] + arr[j] = arr[j + 1] + arr[j + 1] = tmp + return arr + + @staticmethod + def overlapped_area(a, b, ratio=True): + tp, btm, x0, x1 = a["top"], a["bottom"], a["x0"], a["x1"] + if b["x0"] > x1 or b["x1"] < x0: + return 0 + if b["bottom"] < tp or b["top"] > btm: + return 0 + x0_ = max(b["x0"], x0) + x1_ = min(b["x1"], x1) + assert x0_ <= x1_, "Fuckedup! T:{},B:{},X0:{},X1:{} ==> {}".format( + tp, btm, x0, x1, b) + tp_ = max(b["top"], tp) + btm_ = min(b["bottom"], btm) + assert tp_ <= btm_, "Fuckedup! T:{},B:{},X0:{},X1:{} => {}".format( + tp, btm, x0, x1, b) + ov = (btm_ - tp_) * (x1_ - x0_) if x1 - \ + x0 != 0 and btm - tp != 0 else 0 + if ov > 0 and ratio: + ov /= (x1 - x0) * (btm - tp) + return ov + + @staticmethod + def layouts_cleanup(boxes, layouts, far=5, thr=0.7): + def notOverlapped(a, b): + return any([a["x1"] < b["x0"], + a["x0"] > b["x1"], + a["bottom"] < b["top"], + a["top"] > b["bottom"]]) + + i = 0 + while i + 1 < len(layouts): + j = i + 1 + while j < min(i + far, len(layouts)) \ + and (layouts[i].get("type", "") != layouts[j].get("type", "") + or notOverlapped(layouts[i], layouts[j])): + j += 1 + if j >= min(i + far, len(layouts)): + i += 1 + continue + if Recognizer.overlapped_area(layouts[i], layouts[j]) < thr \ + and Recognizer.overlapped_area(layouts[j], layouts[i]) < thr: + i += 1 + continue + + if layouts[i].get("score") and layouts[j].get("score"): + if layouts[i]["type"] == 'figure' or layouts[i]["type"] == 'equation': + if Recognizer.overlapped_area(layouts[j], layouts[i]) > Recognizer.overlapped_area(layouts[i], layouts[j]): + layouts.pop(j) + else: + layouts.pop(i) + else: + if layouts[i]["score"] > layouts[j]["score"]: + layouts.pop(j) + else: + layouts.pop(i) + continue + + area_i, area_i_1 = 0, 0 + for b in boxes: + if not notOverlapped(b, layouts[i]): + area_i += Recognizer.overlapped_area(b, layouts[i], False) + if not notOverlapped(b, layouts[j]): + area_i_1 += Recognizer.overlapped_area(b, layouts[j], False) + + if area_i > area_i_1: + layouts.pop(j) + else: + layouts.pop(i) + + return layouts + + def create_inputs(self, imgs, im_info): + """generate input for different model type + Args: + imgs (list(numpy)): list of images (np.ndarray) + im_info (list(dict)): list of image info + Returns: + inputs (dict): input of model + """ + inputs = {} + + im_shape = [] + scale_factor = [] + if len(imgs) == 1: + inputs['image'] = np.array((imgs[0],)).astype('float32') + inputs['im_shape'] = np.array( + (im_info[0]['im_shape'],)).astype('float32') + inputs['scale_factor'] = np.array( + (im_info[0]['scale_factor'],)).astype('float32') + return inputs + + for e in im_info: + im_shape.append(np.array((e['im_shape'],)).astype('float32')) + scale_factor.append(np.array((e['scale_factor'],)).astype('float32')) + + inputs['im_shape'] = np.concatenate(im_shape, axis=0) + inputs['scale_factor'] = np.concatenate(scale_factor, axis=0) + + imgs_shape = [[e.shape[1], e.shape[2]] for e in imgs] + max_shape_h = max([e[0] for e in imgs_shape]) + max_shape_w = max([e[1] for e in imgs_shape]) + padding_imgs = [] + for img in imgs: + im_c, im_h, im_w = img.shape[:] + padding_im = np.zeros( + (im_c, max_shape_h, max_shape_w), dtype=np.float32) + padding_im[:, :im_h, :im_w] = img + padding_imgs.append(padding_im) + inputs['image'] = np.stack(padding_imgs, axis=0) + return inputs + + @staticmethod + def find_overlapped(box, boxes_sorted_by_y, naive=False): + if not boxes_sorted_by_y: + return + bxs = boxes_sorted_by_y + s, e, ii = 0, len(bxs), 0 + while s < e and not naive: + ii = (e + s) // 2 + pv = bxs[ii] + if box["bottom"] < pv["top"]: + e = ii + continue + if box["top"] > pv["bottom"]: + s = ii + 1 + continue + break + while s < ii: + if box["top"] > bxs[s]["bottom"]: + s += 1 + break + while e - 1 > ii: + if box["bottom"] < bxs[e - 1]["top"]: + e -= 1 + break + + max_overlaped_i, max_overlaped = None, 0 + for i in range(s, e): + ov = Recognizer.overlapped_area(bxs[i], box) + if ov <= max_overlaped: + continue + max_overlaped_i = i + max_overlaped = ov + + return max_overlaped_i + + @staticmethod + def find_horizontally_tightest_fit(box, boxes): + if not boxes: + return + min_dis, min_i = 1000000, None + for i,b in enumerate(boxes): + if box.get("layoutno", "0") != b.get("layoutno", "0"): continue + dis = min(abs(box["x0"] - b["x0"]), abs(box["x1"] - b["x1"]), abs(box["x0"]+box["x1"] - b["x1"] - b["x0"])/2) + if dis < min_dis: + min_i = i + min_dis = dis + return min_i + + @staticmethod + def find_overlapped_with_threashold(box, boxes, thr=0.3): + if not boxes: + return + max_overlapped_i, max_overlapped, _max_overlapped = None, thr, 0 + s, e = 0, len(boxes) + for i in range(s, e): + ov = Recognizer.overlapped_area(box, boxes[i]) + _ov = Recognizer.overlapped_area(boxes[i], box) + if (ov, _ov) < (max_overlapped, _max_overlapped): + continue + max_overlapped_i = i + max_overlapped = ov + _max_overlapped = _ov + + return max_overlapped_i + + def preprocess(self, image_list): + inputs = [] + if "scale_factor" in self.input_names: + preprocess_ops = [] + for op_info in [ + {'interp': 2, 'keep_ratio': False, 'target_size': [800, 608], 'type': 'LinearResize'}, + {'is_scale': True, 'mean': [0.485, 0.456, 0.406], 'std': [0.229, 0.224, 0.225], 'type': 'StandardizeImage'}, + {'type': 'Permute'}, + {'stride': 32, 'type': 'PadStride'} + ]: + new_op_info = op_info.copy() + op_type = new_op_info.pop('type') + preprocess_ops.append(eval(op_type)(**new_op_info)) + + for im_path in image_list: + im, im_info = preprocess(im_path, preprocess_ops) + inputs.append({"image": np.array((im,)).astype('float32'), + "scale_factor": np.array((im_info["scale_factor"],)).astype('float32')}) + else: + hh, ww = self.input_shape + for img in image_list: + h, w = img.shape[:2] + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + scale = min(hh / h, ww / w) + img = cv2.resize(np.array(img).astype('float32'), (int(round(scale * w)), int(round(scale * h)))) + dw, dh = hh - img.shape[1], ww - img.shape[0] + dw /= 2 # divide padding into 2 sides + dh /= 2 + top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1)) + left, right = int(round(dw - 0.1)), int(round(dw + 0.1)) + img = cv2.copyMakeBorder(img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(114, 114, 114)) + # img = cv2.resize(np.array(img).astype('float32'), (ww, hh)) + # Scale input pixel values to 0 to 1 + img /= 255.0 + img = img.transpose(2, 0, 1) + img = img[np.newaxis, :, :, :].astype(np.float32) + inputs.append({self.input_names[0]: img, "scale_factor": [h/hh, w/ww]}) + return inputs + + def postprocess(self, boxes, inputs, thr): + if "scale_factor" in self.input_names: + bb = [] + for b in boxes: + clsid, bbox, score = int(b[0]), b[2:], b[1] + if score < thr: + continue + if clsid >= len(self.label_list): + # cron_logger.warning(f"bad category id") + continue + bb.append({ + "type": self.label_list[clsid].lower(), + "bbox": [float(t) for t in bbox.tolist()], + "score": float(score) + }) + return bb + + def xywh2xyxy(x): + # [x, y, w, h] to [x1, y1, x2, y2] + y = np.copy(x) + y[:, 0] = x[:, 0] - x[:, 2] / 2 + y[:, 1] = x[:, 1] - x[:, 3] / 2 + y[:, 2] = x[:, 0] + x[:, 2] / 2 + y[:, 3] = x[:, 1] + x[:, 3] / 2 + return y + + def scale_boxes(img1_shape, boxes, img0_shape): + gain = min(img1_shape[0] / img0_shape[0], img1_shape[1] / img0_shape[1]) # gain = old / new + pad = (img1_shape[1] - img0_shape[1] * gain) / 2, (img1_shape[0] - img0_shape[0] * gain) / 2 # wh padding + boxes[..., [0, 2]] -= pad[0] # x padding + boxes[..., [1, 3]] -= pad[1] # y padding + boxes[..., :4] /= gain + # clip_boxes(boxes, img0_shape) + boxes[..., [0, 2]] = boxes[..., [0, 2]].clip(0, img0_shape[1]) # x1, x2 + boxes[..., [1, 3]] = boxes[..., [1, 3]].clip(0, img0_shape[0]) + return boxes + + def compute_iou(box, boxes): + # Compute xmin, ymin, xmax, ymax for both boxes + xmin = np.maximum(box[0], boxes[:, 0]) + ymin = np.maximum(box[1], boxes[:, 1]) + xmax = np.minimum(box[2], boxes[:, 2]) + ymax = np.minimum(box[3], boxes[:, 3]) + + # Compute intersection area + intersection_area = np.maximum(0, xmax - xmin) * np.maximum(0, ymax - ymin) + + # Compute union area + box_area = (box[2] - box[0]) * (box[3] - box[1]) + boxes_area = (boxes[:, 2] - boxes[:, 0]) * (boxes[:, 3] - boxes[:, 1]) + union_area = box_area + boxes_area - intersection_area + + # Compute IoU + iou = intersection_area / union_area + + return iou + + def iou_filter(boxes, scores, iou_threshold): + sorted_indices = np.argsort(scores)[::-1] + + keep_boxes = [] + while sorted_indices.size > 0: + # Pick the last box + box_id = sorted_indices[0] + keep_boxes.append(box_id) + + # Compute IoU of the picked box with the rest + ious = compute_iou(boxes[box_id, :], boxes[sorted_indices[1:], :]) + + # Remove boxes with IoU over the threshold + keep_indices = np.where(ious < iou_threshold)[0] + + # print(keep_indices.shape, sorted_indices.shape) + sorted_indices = sorted_indices[keep_indices + 1] + + return keep_boxes + + boxes = np.squeeze(boxes).T + # Filter out object confidence scores below threshold + scores = np.max(boxes[:, 4:], axis=1) + boxes = boxes[scores > thr, :] + scores = scores[scores > thr] + if len(boxes) == 0: return [] + + # Get the class with the highest confidence + class_ids = np.argmax(boxes[:, 4:], axis=1) + boxes = boxes[:, :4] + input_shape = np.array([inputs["scale_factor"][0]*self.input_shape[0], inputs["scale_factor"][1]*self.input_shape[1]]) + # boxes = np.multiply(boxes, input_shape, dtype=np.float32) + boxes = xywh2xyxy(boxes) + boxes = scale_boxes(self.input_shape, boxes, input_shape) + + unique_class_ids = np.unique(class_ids) + indices = [] + for class_id in unique_class_ids: + class_indices = np.where(class_ids == class_id)[0] + class_boxes = boxes[class_indices, :] + class_scores = scores[class_indices] + class_keep_boxes = iou_filter(class_boxes, class_scores, 0.7) + indices.extend(class_indices[class_keep_boxes]) + + return [{ + "type": self.label_list[class_ids[i]].lower(), + "bbox": [float(t) for t in boxes[i].tolist()], + "score": float(scores[i]) + } for i in indices] + + def __call__(self, image_list, thr=0.7, batch_size=16): + res = [] + imgs = [] + for i in range(len(image_list)): + if not isinstance(image_list[i], np.ndarray): + imgs.append(np.array(image_list[i])) + else: imgs.append(image_list[i]) + + batch_loop_cnt = math.ceil(float(len(imgs)) / batch_size) + for i in range(batch_loop_cnt): + start_index = i * batch_size + end_index = min((i + 1) * batch_size, len(imgs)) + batch_image_list = imgs[start_index:end_index] + inputs = self.preprocess(batch_image_list) + print("preprocess") + for ins in inputs: + bb = self.postprocess(self.ort_sess.run(None, {k:v for k,v in ins.items() if k in self.input_names})[0], ins, thr) + res.append(bb) + + return res diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/seeit.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/seeit.py new file mode 100644 index 00000000..07c2f7e0 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/seeit.py @@ -0,0 +1,70 @@ +import os +import PIL +from PIL import ImageDraw + + +def save_results(image_list, results, labels, output_dir='output/', threshold=0.5): + if not os.path.exists(output_dir): + os.makedirs(output_dir) + for idx, im in enumerate(image_list): + im = draw_box(im, results[idx], labels, threshold=threshold) + + out_path = os.path.join(output_dir, f"{idx}.jpg") + im.save(out_path, quality=95) + print("save result to: " + out_path) + + +def draw_box(im, result, lables, threshold=0.5): + draw_thickness = min(im.size) // 320 + draw = ImageDraw.Draw(im) + color_list = get_color_map_list(len(lables)) + clsid2color = {n.lower():color_list[i] for i,n in enumerate(lables)} + result = [r for r in result if r["score"] >= threshold] + + for dt in result: + color = tuple(clsid2color[dt["type"]]) + xmin, ymin, xmax, ymax = dt["bbox"] + draw.line( + [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin), + (xmin, ymin)], + width=draw_thickness, + fill=color) + + # draw label + text = "{} {:.4f}".format(dt["type"], dt["score"]) + tw, th = imagedraw_textsize_c(draw, text) + draw.rectangle( + [(xmin + 1, ymin - th), (xmin + tw + 1, ymin)], fill=color) + draw.text((xmin + 1, ymin - th), text, fill=(255, 255, 255)) + return im + + +def get_color_map_list(num_classes): + """ + Args: + num_classes (int): number of class + Returns: + color_map (list): RGB color list + """ + color_map = num_classes * [0, 0, 0] + for i in range(0, num_classes): + j = 0 + lab = i + while lab: + color_map[i * 3] |= (((lab >> 0) & 1) << (7 - j)) + color_map[i * 3 + 1] |= (((lab >> 1) & 1) << (7 - j)) + color_map[i * 3 + 2] |= (((lab >> 2) & 1) << (7 - j)) + j += 1 + lab >>= 3 + color_map = [color_map[i:i + 3] for i in range(0, len(color_map), 3)] + return color_map + + +def imagedraw_textsize_c(draw, text): + if int(PIL.__version__.split('.')[0]) < 10: + tw, th = draw.textsize(text) + else: + left, top, right, bottom = draw.textbbox((0, 0), text) + tw, th = right - left, bottom - top + + return tw, th diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/table_structure_recognizer_lore.py b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/table_structure_recognizer_lore.py new file mode 100644 index 00000000..01c424b2 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/core/vision/table_structure_recognizer_lore.py @@ -0,0 +1,50 @@ +import re +from qanything_kernel.utils.loader.pdf_to_markdown.core.layout import TableRecognizer +import numpy as np +import torch +import cv2 + + +class TableStructureRecognizer_LORE(): + def __init__(self, device=torch.device('cpu')): + self.table_rec = TableRecognizer(device=device) + + @staticmethod + def is_caption(bx): + patt = [ + r"[图表]+[ 0-9::]{2,}" + ] + if any([re.match(p, bx["text"].strip()) for p in patt]) \ + or bx["layout_type"].find("caption") >= 0: + return True + return False + + def construct_table(self, boxes, image, table_box, height, is_english=False, html=False): + """ + 接收一个表格的ocr结果,同时接收一个表格的图片,最终需要返回该表格的html结果 + """ + ocr_result = [] + table_caption = '' + zoomin = 3 + t_x1, t_x2, t_y1, t_y2 = table_box + table_image = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) + vis_image = table_image.copy() + for item in boxes: + if item['layout_type'] == 'caption': + table_caption += item['text'] + else: + new_item = [] + x0, y0, x1, y1 = item['x0'], item['top'], item['x1'], item['bottom'] + new_item.append([[zoomin * (x0 - t_x1), zoomin * (y0 - t_y1 - height)], + [zoomin * (x1 - t_x1), zoomin * (y0 - t_y1 - height)], + [zoomin * (x1 - t_x1), zoomin * (y1 - t_y1 - height)], + [zoomin * (x0 - t_x1), zoomin * (y1 - t_y1 - height)]]) + new_item.append(item['text']) + new_item.append(1.0) + ocr_result.append(new_item) + table_html, table_markdown = self.table_rec.extract_table(table_image, ocr_result) + return { + 'table_html': table_html, + 'table_caption': table_caption, + 'table_markdown': table_markdown + } diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/excel_loader.py b/qanything_kernel/utils/loader/pdf_to_markdown/excel_loader.py new file mode 100644 index 00000000..3e5efcfd --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/excel_loader.py @@ -0,0 +1,13 @@ +import pandas as pd + +def excel2html(xlsx_path): + """ + convert excel file to html + """ + df = pd.read_excel(xlsx_path) + html = df.to_html() + return html + + +if __name__ =='__main__': + excel2html('/ssd8/exec/qinhaibo/code/RAG/release/git/document-layout-parser/第三次培训_数字人产品销售素材20240314.xlsx') diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/file_parser.py b/qanything_kernel/utils/loader/pdf_to_markdown/file_parser.py new file mode 100644 index 00000000..5289b02a --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/file_parser.py @@ -0,0 +1,166 @@ +import json +import re + +from qanything_kernel.utils.loader.pdf_to_markdown.core.parser import PdfParser, PlainParser +from qanything_kernel.utils.loader.pdf_to_markdown.convert2markdown import json2markdown +import numpy as np +import os + +import time + + +class Pdf(PdfParser): + def __init__(self): + super().__init__() + + def __call__(self, filename, binary=None, from_page=0, + to_page=100000, zoomin=3, callback=None): + res_dir = 'results/' + timestamp = int(time.time()) + save_dir = os.path.join(res_dir,filename.split('.')[0]+'_'+str(timestamp)) + os.makedirs(save_dir,exist_ok=True) + + json_dir = os.path.join(save_dir,os.path.basename(filename)[:-4]) + '.json' + basedir = os.path.dirname(json_dir) + basename = os.path.basename(json_dir) + markdown_path = os.path.join(basedir,basename.split('.')[0]+'_md') + os.makedirs(markdown_path,exist_ok=True) + markdown_dir = os.path.join(markdown_path, basename.split('.')[0]+'.md') + # image_dir = os.path.join(markdown_path, 'image') + # os.makedirs(image_dir,exist_ok=True) + + + callback(msg="OCR is running...") + print("OCR is running...") + self.__images__( + filename if not binary else binary, + zoomin, + from_page, + to_page, + callback + ) + callback(msg="OCR finished.") + print("OCR finished.") + + np.set_printoptions(threshold=np.inf) + from timeit import default_timer as timer + start = timer() + self._layouts_rec(zoomin) + + callback(0.63, "Layout analysis finished") + # self._table_transformer_job(zoomin) + callback(0.68, "Table analysis finished") + self._text_merge() + tbls = self._extract_table_figure(True, zoomin, True, True, markdown_path) + page_width = max([b["x1"] for b in self.boxes if b['layout_type'] == 'text']) - min([b["x0"] for b in self.boxes if b['layout_type'] == 'text']) + # self._naive_vertical_merge() + self._concat_downward() + self._filter_forpages() + callback(0.75, "Text merging finished.") + column_width = np.median([b["x1"] - b["x0"] for b in self.boxes if b['layout_type'] == 'text']) + text_width = np.argmax(np.bincount([b["x1"] - b["x0"] for b in self.boxes if b['layout_type'] == 'text'])) + + + # clean mess + if column_width < page_width / 2 and text_width < page_width / 2: + # if column_width < self.page_images[0].size[0] / zoomin / 2: + # print("two_column...................", column_width, + # self.page_images[0].size[0] / zoomin / 2) + self.boxes = self.sort_X_by_page(self.boxes, 0.9 * column_width) + + + for b in self.boxes: + b["text"] = re.sub(r"([\t  ]|\u3000){2,}", " ", b["text"].strip()) + + def _begin(txt): + return re.match( + "[0-9. 一、i]*(introduction|abstract|摘要|引言|keywords|key words|关键词|background|背景|目录|前言|contents)", + txt.lower().strip()) + + if from_page > 0: + return { + "title": "", + "authors": "", + "abstract": "", + "sections": [(b["text"] + self._line_tag(b, zoomin), b.get("layoutno", "")) for b in self.boxes if + re.match(r"(text|title)", b.get("layoutno", "text"))], + "tables": tbls + } + i = 0 + sections = [(b["text"] + self._line_tag(b, zoomin), b.get("layoutno", "")) for b in self.boxes[i:] if + re.match(r"(text|title|author|reference|content)", b.get("layoutno", "text"))] + new_sections = {} + + for sec in sections: + i = 0 + pn = int(sec[0].split('@@')[-1].split('\t')[0]) + top = float(sec[0].split('@@')[-1].split('\t')[3]) + self.page_cum_height[pn - 1] + right = float(sec[0].split('@@')[-1].split('\t')[2]) + sec_no = str(pn) + '-' + sec[1] + while i < len(tbls): + tbl = tbls[i] + t_pn = int(tbl[1][0][0]) + 1 + t_bottom = float(tbl[1][0][4]) + self.page_cum_height[t_pn - 1] + t_left = float(tbl[1][0][1]) + tbl_no = tbl[0][1] + if t_pn > pn: + i += 1 + continue + if t_bottom < top and t_left < right: + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + tbls.pop(i) + continue + if t_bottom < top and t_left > right and t_pn < pn: + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + tbls.pop(i) + continue + i += 1 + if sec_no not in new_sections.keys(): + new_sections[sec_no] = {'text': sec[0].split('@@')[0], 'type': sec[1]} + else: + new_sections[sec_no]['text'] += sec[0].split('@@')[0] + if tbls: + for tbl in tbls: + tbl_no = tbl[0][1] + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + + json.dump(new_sections,open(json_dir,'w')) + json2markdown(json_dir,markdown_dir) + print("pdf parser:", timer() - start) + + + return new_sections + + + +def chunk(filename, binary=None, from_page=0, to_page=100000, + lang="Chinese", callback=None, **kwargs): + """ + Only pdf is supported. + """ + pdf_parser = None + if re.search(r"\.pdf$", filename, re.IGNORECASE): + if not kwargs.get("parser_config", {}).get("layout_recognize", True): + pdf_parser = PlainParser() + paper = { + "title": filename, + "authors": " ", + "abstract": "", + "sections": pdf_parser(filename if not binary else binary, from_page=from_page, to_page=to_page)[0], + "tables": [] + } + else: + pdf_parser = Pdf() + paper = pdf_parser(filename if not binary else binary, + from_page=from_page, to_page=to_page, callback=callback) + else: + raise NotImplementedError("file type not supported yet(pdf supported)") + return paper + + +if __name__ == "__main__": + import sys + + def dummy(prog=None, msg=""): + pass + chunk(sys.argv[1], callback=dummy, layout_recognize=True) diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/filetype.py b/qanything_kernel/utils/loader/pdf_to_markdown/filetype.py new file mode 100644 index 00000000..a5826d1f --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/filetype.py @@ -0,0 +1,27 @@ +import pandas as pd +import markdownify + + +def html2markdown(html_text): + markdown_text = markdownify.markdownify(html_text) + return markdown_text + + +def excel2html(xlsx_path): + """ + convert excel file to html + """ + df = pd.read_excel(xlsx_path) + html = df.to_html() + return html + + +def excel2markdown(xlsx_path): + df = pd.read_excel(xlsx_path) + html = df.to_html() + markdown = html2markdown(html) + return markdown + + +if __name__ =='__main__': + excel2html('/ssd8/exec/qinhaibo/code/RAG/release/git/document-layout-parser/第三次培训_数字人产品销售素材20240314.xlsx') \ No newline at end of file diff --git a/qanything_kernel/utils/loader/pdf_to_markdown/pptx_loader.py b/qanything_kernel/utils/loader/pdf_to_markdown/pptx_loader.py new file mode 100644 index 00000000..d290d383 --- /dev/null +++ b/qanything_kernel/utils/loader/pdf_to_markdown/pptx_loader.py @@ -0,0 +1,118 @@ +from io import BytesIO +from pptx import Presentation +from pptx.enum.shapes import MSO_SHAPE_TYPE +from rapidocr_onnxruntime import RapidOCR +import numpy as np +import cv2 +from PIL import Image +from qanything_kernel.utils.loader.pdf_to_markdown.filetype import html2markdown + + +def pptx_table_to_html(table): + html_table = '\n' + for row in table.rows: + html_table += ' \n' + for cell in row.cells: + cell_text = ''.join(text_frame.text for text_frame in cell.text_frame.paragraphs) + html_table += ' \n'.format(cell_text) + html_table += ' \n' + html_table += '
{}
\n' + return html_table + + +class PPTParser(object): + def __init__(self): + super().__init__() + self.ocr_rapid = RapidOCR() + + def __extract(self, shape): + if shape.shape_type == 19: + tb = shape.table + tb_html = pptx_table_to_html(tb) + new_html = tb_html + + tb_markdown = html2markdown(new_html) + + return tb_markdown + + if shape.has_text_frame: + return shape.text_frame.text + + if shape.shape_type == 6: + texts = [] + for p in sorted(shape.shapes, key=lambda x: (x.top // 10, x.left)): + t = self.__extract(p) + if t: + texts.append(t) + return "\n".join(texts) + + def __extract_img(self, slide, shape, array_lst): + if shape.shape_type == MSO_SHAPE_TYPE.PICTURE: + image_data = shape.image.blob + image = Image.open(BytesIO(image_data)) + array = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR) + # cv2.imwrite(f'./tmp/{slide.slide_id}_{shape.shape_id}.png',array) + array_lst.append(array) + return array_lst, True + elif shape.shape_type == MSO_SHAPE_TYPE.GROUP: + for s in shape.shapes: + self.__extract_img(slide, s, array_lst) + return array_lst, True + else: + return [], False + + def __call__(self, fnm, from_page, to_page, callback=None): + ppt = Presentation(fnm) if isinstance( + fnm, str) else Presentation( + BytesIO(fnm)) + txts = [] + self.total_page = len(ppt.slides) + # print(self.total_page) + for i, slide in enumerate(ppt.slides): + if i < from_page: + continue + if i >= to_page: + break + texts = [] + for shape in sorted( + slide.shapes, key=lambda x: (x.top // 10, x.left)): + txt = self.__extract(shape) + array_lst = [] + image_lst, has_image = self.__extract_img(slide, shape, array_lst) + if has_image: + ocr_res_lst = [] + for img in image_lst: + ocr_res = self.__ocr(img) + if ocr_res != '': + ocr_res_lst.append(ocr_res) + if len(ocr_res_lst) != 0: + ocr_res = '\n'.join(ocr_res_lst) + else: + ocr_res = None + else: + ocr_res = None + if txt: + texts.append(txt) + if ocr_res: + texts.append(ocr_res) + txts.append("\n".join(texts)) + return txts + + def __ocr(self, image): + bxs_rapid = self.ocr_rapid(image) + text = '' + if bxs_rapid[0] == None: + return '' + for box in bxs_rapid[0]: + text += (box[1] + '\n') + return text + + +if __name__ == '__main__': + path = '第一次培训_2024年第一次培训大模型业务介绍V1.0.pptx' + parser = PPTParser() + res = parser(fnm=path, from_page=12, to_page=13) + # print(res) + for text in res: + print('********************') + print(text) diff --git a/qanything_kernel/utils/loader/self_pdf_loader.py b/qanything_kernel/utils/loader/self_pdf_loader.py new file mode 100644 index 00000000..d3d8c992 --- /dev/null +++ b/qanything_kernel/utils/loader/self_pdf_loader.py @@ -0,0 +1,116 @@ +import json +import re +from qanything_kernel.utils.loader.pdf_to_markdown.core.parser import PdfParser +from qanything_kernel.utils.loader.pdf_to_markdown.convert2markdown import json2markdown +from qanything_kernel.utils.custom_log import debug_logger +from timeit import default_timer as timer +import numpy as np +import os +import time + + +class PdfLoader(PdfParser): + def __init__(self, filename, binary=None, from_page=0, to_page=10000, zoomin=3, root_dir='results/', callback=None): + super().__init__() + timestamp = int(time.time()) + save_dir = os.path.join(root_dir, filename.split('.')[0] + '_' + str(timestamp)) + os.makedirs(save_dir, exist_ok=True) + + self.json_dir = os.path.join(save_dir, os.path.basename(filename)[:-4]) + '.json' + basedir = os.path.dirname(self.json_dir) + basename = os.path.basename(self.json_dir) + self.markdown_path = os.path.join(basedir, basename.split('.')[0] + '_md') + os.makedirs(self.markdown_path, exist_ok=True) + self.markdown_dir = os.path.join(self.markdown_path, basename.split('.')[0] + '.md') + + self.filename = filename + self.binary = binary + self.from_page = from_page + self.to_page = to_page + self.zoomin = zoomin + self.callback = callback + + def load_to_markdown(self): + ocr_start = timer() + self.__images__( + self.filename if self.binary is None else self.binary, + self.zoomin, + self.from_page, + self.to_page, + self.callback + ) + debug_logger.info("OCR finished in %s seconds" % (timer() - ocr_start)) + + np.set_printoptions(threshold=np.inf) + start = timer() + self._layouts_rec(self.zoomin) + + self._text_merge() + tbls = self._extract_table_figure(True, self.zoomin, True, True, self.markdown_path) + page_width = max([b["x1"] for b in self.boxes if b['layout_type'] == 'text']) - min( + [b["x0"] for b in self.boxes if b['layout_type'] == 'text']) + self._concat_downward() + self._filter_forpages() + column_width = np.median([b["x1"] - b["x0"] for b in self.boxes if b['layout_type'] == 'text']) + text_width = np.argmax(np.bincount([b["x1"] - b["x0"] for b in self.boxes if b['layout_type'] == 'text'])) + + # clean mess + if column_width < page_width / 2 and text_width < page_width / 2: + self.boxes = self.sort_X_by_page(self.boxes, 0.9 * column_width) + + for b in self.boxes: + b["text"] = re.sub(r"([\t  ]|\u3000){2,}", " ", b["text"].strip()) + + if self.from_page > 0: + return { + "title": "", + "authors": "", + "abstract": "", + "sections": [(b["text"] + self._line_tag(b, self.zoomin), b.get("layoutno", "")) for b in self.boxes if + re.match(r"(text|title)", b.get("layoutno", "text"))], + "tables": tbls + } + i = 0 + sections = [(b["text"] + self._line_tag(b, self.zoomin), b.get("layoutno", "")) for b in self.boxes[i:] if + re.match(r"(text|title|author|reference|content)", b.get("layoutno", "text"))] + new_sections = {} + + for sec in sections: + i = 0 + pn = int(sec[0].split('@@')[-1].split('\t')[0]) + top = float(sec[0].split('@@')[-1].split('\t')[3]) + self.page_cum_height[pn - 1] + right = float(sec[0].split('@@')[-1].split('\t')[2]) + sec_no = str(pn) + '-' + sec[1] + while i < len(tbls): + tbl = tbls[i] + t_pn = int(tbl[1][0][0]) + 1 + t_bottom = float(tbl[1][0][4]) + self.page_cum_height[t_pn - 1] + t_left = float(tbl[1][0][1]) + tbl_no = tbl[0][1] + if t_pn > pn: + i += 1 + continue + if t_bottom < top and t_left < right: + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + tbls.pop(i) + continue + if t_bottom < top and t_left > right and t_pn < pn: + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + tbls.pop(i) + continue + i += 1 + if sec_no not in new_sections.keys(): + new_sections[sec_no] = {'text': sec[0].split('@@')[0], 'type': sec[1]} + else: + new_sections[sec_no]['text'] += sec[0].split('@@')[0] + if tbls: + for tbl in tbls: + tbl_no = tbl[0][1] + new_sections[tbl_no] = {'text': tbl[0][0], 'type': tbl[0][1]} + + json.dump(new_sections, open(self.json_dir, 'w')) + markdown_str = json2markdown(self.json_dir, self.markdown_dir) + debug_logger.info("PDF Parse finished in %s seconds" % (timer() - start)) + # print(new_sections, flush=True) + return self.markdown_dir + diff --git a/requirements.txt b/requirements.txt index 3ca058cd..d41e1389 100644 --- a/requirements.txt +++ b/requirements.txt @@ -29,3 +29,4 @@ faster_whisper==1.0.1 python-dotenv==1.0.1 duckduckgo-search==5.3.0b4 html2text==2024.2.26 +mistune-3.0.2