langroid 0.14.0__tar.gz → 0.15.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {langroid-0.14.0 → langroid-0.15.1}/PKG-INFO +2 -1
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/openai_gpt.py +18 -6
- langroid-0.15.1/langroid/utils/web/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/pyproject.toml +3 -3
- {langroid-0.14.0 → langroid-0.15.1}/LICENSE +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/README.md +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/batch.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/callbacks/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/callbacks/chainlit.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/chat_document.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/helpers.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/junk +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/openai_assistant.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/doc_chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_doc_chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_rag/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_rag/critic_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_rag/lance_rag_task.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_rag/query_planner_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/lance_tools.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/neo4j/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/neo4j/csv_kg_chat.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/neo4j/neo4j_chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/neo4j/utils/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/neo4j/utils/system_message.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/relevance_extractor_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/retriever_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/sql_chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/description_extractors.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/populate_metadata.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/system_message.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/tools.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/table_chat_agent.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/structured_message.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/task.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tool_message.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/duckduckgo_search_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/extract_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/generator_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/google_search_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/metaphor_search_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/note_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/orchestration.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/recipient_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/retrieval_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/rewind_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/run_python_code.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/tools/segment_extract_tool.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent/typed_task.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/agent_config.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/cachedb/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/cachedb/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/cachedb/momento_cachedb.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/cachedb/redis_cachedb.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/clustering.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/models.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/protoc/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/protoc/embeddings.proto +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/protoc/embeddings_pb2.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/protoc/embeddings_pb2.pyi +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/protoc/embeddings_pb2_grpc.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/embedding_models/remote_embeds.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/exceptions.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/.chainlit/config.toml +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/.chainlit/translations/en-US.json +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/azure_openai.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/config.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/mock_lm.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/hf_formatter.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/llama2_formatter.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/utils.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/mytypes.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/agent_chats.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/code-parsing.md +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/code_parser.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/config.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/document_parser.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/image_text.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/para_sentence_split.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/parse_json.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/parser.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/repo_loader.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/routing.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/search.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/spider.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/table_loader.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/url_loader.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/url_loader_cookies.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/urls.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/utils.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/parsing/web_search.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/prompts/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/prompts/chat-gpt4-system-prompt.md +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/prompts/dialog.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/prompts/prompts_config.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/prompts/templates.py +0 -0
- /langroid-0.14.0/langroid/utils/llms/__init__.py → /langroid-0.15.1/langroid/py.typed +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/pydantic_v1/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/pydantic_v1/main.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/.chainlit/config.toml +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/.chainlit/translations/en-US.json +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/algorithms/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/algorithms/graph.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/configuration.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/constants.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/docker.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/globals.py +0 -0
- {langroid-0.14.0/langroid/utils/web → langroid-0.15.1/langroid/utils/llms}/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/llms/strings.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/logging.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/object_registry.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/output/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/output/citations.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/output/printing.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/output/status.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/pandas_utils.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/pydantic_utils.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/system.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/types.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/utils/web/login.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/__init__.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/base.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/chromadb.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/lancedb.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/meilisearch.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/momento.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/qdrant_cloud.py +0 -0
- {langroid-0.14.0 → langroid-0.15.1}/langroid/vector_store/qdrantdb.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: langroid
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.15.1
|
4
4
|
Summary: Harness LLMs with Multi-Agent Programming
|
5
5
|
License: MIT
|
6
6
|
Author: Prasad Chalasani
|
@@ -38,6 +38,7 @@ Provides-Extra: vecdbs
|
|
38
38
|
Requires-Dist: aiohttp (>=3.9.1,<4.0.0)
|
39
39
|
Requires-Dist: async-generator (>=1.10,<2.0)
|
40
40
|
Requires-Dist: bs4 (>=0.0.1,<0.0.2)
|
41
|
+
Requires-Dist: cerebras-cloud-sdk (>=1.1.0,<2.0.0)
|
41
42
|
Requires-Dist: chainlit (==1.1.202) ; extra == "all" or extra == "chainlit"
|
42
43
|
Requires-Dist: chromadb (>=0.4.21,<=0.4.23) ; extra == "vecdbs" or extra == "all" or extra == "chromadb"
|
43
44
|
Requires-Dist: colorlog (>=6.7.0,<7.0.0)
|
@@ -21,6 +21,7 @@ from typing import (
|
|
21
21
|
)
|
22
22
|
|
23
23
|
import openai
|
24
|
+
from cerebras.cloud.sdk import AsyncCerebras, Cerebras
|
24
25
|
from groq import AsyncGroq, Groq
|
25
26
|
from httpx import Timeout
|
26
27
|
from openai import AsyncOpenAI, OpenAI
|
@@ -371,8 +372,8 @@ class OpenAIGPT(LanguageModel):
|
|
371
372
|
Class for OpenAI LLMs
|
372
373
|
"""
|
373
374
|
|
374
|
-
client: OpenAI | Groq
|
375
|
-
async_client: AsyncOpenAI | AsyncGroq
|
375
|
+
client: OpenAI | Groq | Cerebras
|
376
|
+
async_client: AsyncOpenAI | AsyncGroq | AsyncCerebras
|
376
377
|
|
377
378
|
def __init__(self, config: OpenAIGPTConfig = OpenAIGPTConfig()):
|
378
379
|
"""
|
@@ -479,6 +480,7 @@ class OpenAIGPT(LanguageModel):
|
|
479
480
|
self.api_key = DUMMY_API_KEY
|
480
481
|
|
481
482
|
self.is_groq = self.config.chat_model.startswith("groq/")
|
483
|
+
self.is_cerebras = self.config.chat_model.startswith("cerebras/")
|
482
484
|
|
483
485
|
if self.is_groq:
|
484
486
|
self.config.chat_model = self.config.chat_model.replace("groq/", "")
|
@@ -489,6 +491,16 @@ class OpenAIGPT(LanguageModel):
|
|
489
491
|
self.async_client = AsyncGroq(
|
490
492
|
api_key=self.api_key,
|
491
493
|
)
|
494
|
+
elif self.is_cerebras:
|
495
|
+
self.config.chat_model = self.config.chat_model.replace("cerebras/", "")
|
496
|
+
self.api_key = os.getenv("CEREBRAS_API_KEY", DUMMY_API_KEY)
|
497
|
+
self.client = Cerebras(
|
498
|
+
api_key=self.api_key,
|
499
|
+
)
|
500
|
+
# TODO there is not async client, so should we do anything here?
|
501
|
+
self.async_client = AsyncCerebras(
|
502
|
+
api_key=self.api_key,
|
503
|
+
)
|
492
504
|
else:
|
493
505
|
self.client = OpenAI(
|
494
506
|
api_key=self.api_key,
|
@@ -1096,8 +1108,8 @@ class OpenAIGPT(LanguageModel):
|
|
1096
1108
|
if self.config.use_chat_for_completion:
|
1097
1109
|
return self.chat(messages=prompt, max_tokens=max_tokens)
|
1098
1110
|
|
1099
|
-
if self.is_groq:
|
1100
|
-
raise ValueError("Groq
|
1111
|
+
if self.is_groq or self.is_cerebras:
|
1112
|
+
raise ValueError("Groq, Cerebras do not support pure completions")
|
1101
1113
|
|
1102
1114
|
if settings.debug:
|
1103
1115
|
print(f"[grey37]PROMPT: {escape(prompt)}[/grey37]")
|
@@ -1174,8 +1186,8 @@ class OpenAIGPT(LanguageModel):
|
|
1174
1186
|
if self.config.use_chat_for_completion:
|
1175
1187
|
return await self.achat(messages=prompt, max_tokens=max_tokens)
|
1176
1188
|
|
1177
|
-
if self.is_groq:
|
1178
|
-
raise ValueError("Groq
|
1189
|
+
if self.is_groq or self.is_cerebras:
|
1190
|
+
raise ValueError("Groq, Cerebras do not support pure completions")
|
1179
1191
|
|
1180
1192
|
if settings.debug:
|
1181
1193
|
print(f"[grey37]PROMPT: {escape(prompt)}[/grey37]")
|
File without changes
|
@@ -1,12 +1,11 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "langroid"
|
3
|
-
version = "0.
|
3
|
+
version = "0.15.1"
|
4
4
|
description = "Harness LLMs with Multi-Agent Programming"
|
5
5
|
authors = ["Prasad Chalasani <pchalasani@gmail.com>"]
|
6
6
|
readme = "README.md"
|
7
7
|
license = "MIT"
|
8
|
-
include = ["pyproject.toml"]
|
9
|
-
|
8
|
+
include = ["pyproject.toml", "langroid/py.typed"]
|
10
9
|
|
11
10
|
# =============== MAIN DEPS ==============
|
12
11
|
[tool.poetry.dependencies]
|
@@ -89,6 +88,7 @@ async-generator = "^1.10"
|
|
89
88
|
|
90
89
|
python-magic = "^0.4.27"
|
91
90
|
json-repair = "^0.27.0"
|
91
|
+
cerebras-cloud-sdk = "^1.1.0"
|
92
92
|
|
93
93
|
|
94
94
|
[tool.poetry.extras]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langroid-0.14.0 → langroid-0.15.1}/langroid/agent/special/sql/utils/description_extractors.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/.chainlit/translations/en-US.json
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/hf_formatter.py
RENAMED
File without changes
|
{langroid-0.14.0 → langroid-0.15.1}/langroid/language_models/prompt_formatter/llama2_formatter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|