初始化项目,由ModelHub XC社区提供模型
Model: unsloth/AceReason-Nemotron-14B-GGUF Source: Original Platform
This commit is contained in:
47
.gitattributes
vendored
Normal file
47
.gitattributes
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||
*.bin.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.model filter=lfs diff=lfs merge=lfs -text
|
||||
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zstandard filter=lfs diff=lfs merge=lfs -text
|
||||
*.tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
*.db* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ark* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text
|
||||
**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text
|
||||
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||
*.gguf* filter=lfs diff=lfs merge=lfs -text
|
||||
*.ggml filter=lfs diff=lfs merge=lfs -text
|
||||
*.llamafile* filter=lfs diff=lfs merge=lfs -text
|
||||
*.pt2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||
*.tar filter=lfs diff=lfs merge=lfs -text
|
||||
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||
3
AceReason-Nemotron-14B-BF16.gguf
Normal file
3
AceReason-Nemotron-14B-BF16.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:faa5977d32d218bac0e500baf04e545bb8cbe8ece77014df0c173d59c8fd68d1
|
||||
size 29547716512
|
||||
3
AceReason-Nemotron-14B-IQ4_NL.gguf
Normal file
3
AceReason-Nemotron-14B-IQ4_NL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:50757f277e1079adcf48cb74d0cfc97cc181aeab7b6b957c8a9072fbd3338c9b
|
||||
size 8549183680
|
||||
3
AceReason-Nemotron-14B-IQ4_XS.gguf
Normal file
3
AceReason-Nemotron-14B-IQ4_XS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a8372a96d57b1166b12421f68a5d58d1b5cc4d7ba08e8a279b061907bbcee35e
|
||||
size 8144171200
|
||||
3
AceReason-Nemotron-14B-Q2_K.gguf
Normal file
3
AceReason-Nemotron-14B-Q2_K.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:298afc6bb636edda6a12c0e6d4df6253fb21a9f3b27ff905c1905051e18cf54e
|
||||
size 5770498240
|
||||
3
AceReason-Nemotron-14B-Q2_K_L.gguf
Normal file
3
AceReason-Nemotron-14B-Q2_K_L.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:19f5955425e051a539dc1ef17c59360a5afbf977c0c2c6169d9e71344b41df69
|
||||
size 5952975040
|
||||
3
AceReason-Nemotron-14B-Q3_K_M.gguf
Normal file
3
AceReason-Nemotron-14B-Q3_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a4d03deb99a510f7d7755f2e7f5163c0bdc330f37d04c91f6b4a62fc946501aa
|
||||
size 7339204800
|
||||
3
AceReason-Nemotron-14B-Q3_K_S.gguf
Normal file
3
AceReason-Nemotron-14B-Q3_K_S.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a82c8033707eb9681074ac56aa859af8672a33115a6af5e5330525ad3916915c
|
||||
size 6659596480
|
||||
3
AceReason-Nemotron-14B-Q4_1.gguf
Normal file
3
AceReason-Nemotron-14B-Q4_1.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e52b013889f3650223033050f1919ded0462624964dcba6491b3f15bada026a7
|
||||
size 9392140480
|
||||
3
AceReason-Nemotron-14B-Q4_K_M.gguf
Normal file
3
AceReason-Nemotron-14B-Q4_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5aa3abbcee06c9c5a061ba24bcccbbec8bc08f507f9e1c827ee4f66d95d7e474
|
||||
size 8988111040
|
||||
3
AceReason-Nemotron-14B-Q4_K_S.gguf
Normal file
3
AceReason-Nemotron-14B-Q4_K_S.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4f56ea82d2bd70a422b264783a487c19f5bdd10b016fd260cbff397cba9d3656
|
||||
size 8573432000
|
||||
3
AceReason-Nemotron-14B-Q5_K_M.gguf
Normal file
3
AceReason-Nemotron-14B-Q5_K_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2e94dbdc85a8d4d6a8e22f700bfc24bba30cc98d29acedf2cd7fb28acbba51e9
|
||||
size 10508873920
|
||||
3
AceReason-Nemotron-14B-Q5_K_S.gguf
Normal file
3
AceReason-Nemotron-14B-Q5_K_S.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d34d2884408af4830cd0ba646170666dbf57ee560146cd307cad9de40d10486e
|
||||
size 10266554560
|
||||
3
AceReason-Nemotron-14B-Q6_K.gguf
Normal file
3
AceReason-Nemotron-14B-Q6_K.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:416bafda1ae5be213436cd32acb0acde4952640d7d8fd396bbe4c04c10a72802
|
||||
size 12124684480
|
||||
3
AceReason-Nemotron-14B-UD-IQ1_M.gguf
Normal file
3
AceReason-Nemotron-14B-UD-IQ1_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:31721b05dadccac87f21535e75f6c4560eda5807262ee31589cff5c5633fce50
|
||||
size 4044525760
|
||||
3
AceReason-Nemotron-14B-UD-IQ1_S.gguf
Normal file
3
AceReason-Nemotron-14B-UD-IQ1_S.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3e2f891a8d883b43d3c3da9ae5e7b0ea84e8eac677da04a24436b238f9af1786
|
||||
size 3814494400
|
||||
3
AceReason-Nemotron-14B-UD-IQ2_M.gguf
Normal file
3
AceReason-Nemotron-14B-UD-IQ2_M.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5648f2e965da40b692fcf132fe19a45c88a91ec2b4ff51b26fe7d06557277005
|
||||
size 5431513280
|
||||
3
AceReason-Nemotron-14B-UD-IQ2_XXS.gguf
Normal file
3
AceReason-Nemotron-14B-UD-IQ2_XXS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9b23ea23ba7d705cf4e026d0cb0dd54dd61442fb5f28349e5eb96f147c1355e6
|
||||
size 4454944960
|
||||
3
AceReason-Nemotron-14B-UD-IQ3_XXS.gguf
Normal file
3
AceReason-Nemotron-14B-UD-IQ3_XXS.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1469d80ec61031a620891584aa4fdb79f1e3b85b6d76dfbf6dbfe2ae6121e811
|
||||
size 6004154560
|
||||
3
AceReason-Nemotron-14B-UD-Q2_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q2_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3f3dc9ee3e77e7e35f84462e18696b0db1c10bec317d37b22dbb03c2a867c695
|
||||
size 6057730240
|
||||
3
AceReason-Nemotron-14B-UD-Q3_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q3_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ce7cb3934f778dfb81163fa93ec5488aec3bf5cebae265f4724d96755e6f04c
|
||||
size 7607431360
|
||||
3
AceReason-Nemotron-14B-UD-Q4_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q4_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d1ac2574f119bd241cbb49411a8d4860be7ef661157b134292cad4cf5fa4622e
|
||||
size 9109393600
|
||||
3
AceReason-Nemotron-14B-UD-Q5_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q5_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e724257efb291b9deef8566d5547bffcede5e7c8b3dc02c06121c4ddf82d05ce
|
||||
size 10547826880
|
||||
3
AceReason-Nemotron-14B-UD-Q6_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q6_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a7bf85f002021878a83eeecc2eb8842a114b1bebdb20335d19a118cac51ef7ae
|
||||
size 13271277760
|
||||
3
AceReason-Nemotron-14B-UD-Q8_K_XL.gguf
Normal file
3
AceReason-Nemotron-14B-UD-Q8_K_XL.gguf
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3b9912d1ab4009d1a78351784e6e3a86c3effc4c7b5b167050eefcc187095cb5
|
||||
size 18540126400
|
||||
128
README.md
Normal file
128
README.md
Normal file
@@ -0,0 +1,128 @@
|
||||
---
|
||||
base_model:
|
||||
- nvidia/AceReason-Nemotron-14B
|
||||
library_name: transformers
|
||||
license: other
|
||||
license_name: nvidia-open-model-license
|
||||
license_link: >-
|
||||
https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/
|
||||
pipeline_tag: text-generation
|
||||
language:
|
||||
- en
|
||||
tags:
|
||||
- nvidia
|
||||
- unsloth
|
||||
- reasoning
|
||||
- math
|
||||
- code
|
||||
- reinforcement learning
|
||||
- pytorch
|
||||
---
|
||||
<div>
|
||||
<p style="margin-top: 0;margin-bottom: 0;">
|
||||
<em><a href="https://docs.unsloth.ai/basics/unsloth-dynamic-v2.0-gguf">Unsloth Dynamic 2.0</a> achieves superior accuracy & outperforms other leading quants.</em>
|
||||
</p>
|
||||
<div style="display: flex; gap: 5px; align-items: center; ">
|
||||
<a href="https://github.com/unslothai/unsloth/">
|
||||
<img src="https://github.com/unslothai/unsloth/raw/main/images/unsloth%20new%20logo.png" width="133">
|
||||
</a>
|
||||
<a href="https://discord.gg/unsloth">
|
||||
<img src="https://github.com/unslothai/unsloth/raw/main/images/Discord%20button.png" width="173">
|
||||
</a>
|
||||
<a href="https://docs.unsloth.ai/basics/qwen3-how-to-run-and-fine-tune">
|
||||
<img src="https://raw.githubusercontent.com/unslothai/unsloth/refs/heads/main/images/documentation%20green%20button.png" width="143">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
# AceReason-Nemotron: Advancing Math and Code Reasoning through Reinforcement Learning
|
||||
|
||||
<img src="fig/main_fig.png" alt="main_fig" style="width: 600px; max-width: 100%;" />
|
||||
|
||||
We're thrilled to introduce AceReason-Nemotron-14B, a math and code reasoning model trained entirely through reinforcement learning (RL), starting from the DeepSeek-R1-Distilled-Qwen-14B. It delivers impressive results, achieving 78.6% on AIME 2024 (+8.9%), 67.4% on AIME 2025 (+17.4%), 61.1% on LiveCodeBench v5 (+8%), 54.9% on LiveCodeBench v6 (+7%), and 2024 on Codeforces (+543). We systematically study the RL training process through extensive ablations and propose a simple yet effective approach: first RL training on math-only prompts, then RL training on code-only prompts. Notably, we find that math-only RL not only significantly enhances the performance of strong distilled models on math benchmarks, but also code reasoning tasks. In addition, extended code-only RL further improves code benchmark performance while causing minimal degradation in math results. We find that RL not only elicits the foundational reasoning capabilities acquired during pre-training and supervised fine-tuning (e.g., distillation), but also pushes the limits of the model's reasoning ability, enabling it to solve problems that were previously unsolvable.
|
||||
|
||||
We share our training recipe, training logs in our [technical report](https://arxiv.org/abs/2505.16400).
|
||||
|
||||
## Results
|
||||
|
||||
We evaluate our model against competitive reasoning models of comparable size within Qwen2.5 and Llama3.1 model family on AIME 2024, AIME 2025, LiveCodeBench v5 (2024/08/01 - 2025/02/01), and LiveCodeBench v6 (2025/02/01-2025/05/01). More evaluation results can be found in our [technical report](https://arxiv.org/abs/2505.16400).
|
||||
|
||||
| **Model** | **AIME 2024<br>(avg@64)** | **AIME 2025<br>(avg@64)** | **LCB v5<br>(avg@8)** | **LCB v6<br>(avg@8)** |
|
||||
| :---: | :---: | :---: | :---: | :---: |
|
||||
| <small>QwQ-32B</small> | 79.5 | 65.8 | 63.4 | - |
|
||||
| <small>DeepSeek-R1-671B</small> | 79.8 | 70.0 | 65.9 | - |
|
||||
| <small>Llama-Nemotron-Ultra-253B</small> | 80.8 | 72.5 | 66.3 | - |
|
||||
| <small>o3-mini (medium)</small> | 79.6 | 76.7 | 67.4 | - |
|
||||
| <small>Light-R1-14B</small> | 74 | 60.2 | 57.9 | 51.5 |
|
||||
| <small>DeepCoder-14B (32K Inference)</small> | 71 | 56.1 | 57.9 | 50.4 |
|
||||
| <small>OpenMath-Nemotron-14B</small> | 76.3 | 63.0 | - | - |
|
||||
| <small>OpenCodeReasoning-Nemotron-14B</small> | - | - | 59.4 | 54.1 |
|
||||
| <small>Llama-Nemotron-Super-49B-v1</small> | 67.5 | 60.0 | 45.5 | - |
|
||||
| <small>DeepSeek-R1-Distilled-Qwen-14B</small> | 69.7 | 50.2 | 53.1 | 47.9 |
|
||||
| <small>DeepSeek-R1-Distilled-Qwen-32B</small> | 72.6 | 54.9 | 57.2 | - |
|
||||
| [AceReason-Nemotron-14B 🤗](https://huggingface.co/nvidia/AceReason-Nemotron-14B)| 78.6 | 67.4 | 61.1 | 54.9 |
|
||||
|
||||
|
||||
|
||||
|
||||
## How to use
|
||||
```python
|
||||
import torch
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
model_name = 'nvidia/AceReason-Nemotron-14B'
|
||||
tokenizer = AutoTokenizer.from_pretrained(model_name)
|
||||
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")
|
||||
|
||||
prompt = "Jen enters a lottery by picking $4$ distinct numbers from $S=\\{1,2,3,\\cdots,9,10\\}.$ $4$ numbers are randomly chosen from $S.$ She wins a prize if at least two of her numbers were $2$ of the randomly chosen numbers, and wins the grand prize if all four of her numbers were the randomly chosen numbers. The probability of her winning the grand prize given that she won a prize is $\\tfrac{m}{n}$ where $m$ and $n$ are relatively prime positive integers. Find $m+n$."
|
||||
messages = [{"role": "user", "content": prompt}]
|
||||
|
||||
text = tokenizer.apply_chat_template(
|
||||
messages,
|
||||
tokenize=False,
|
||||
add_generation_prompt=True
|
||||
)
|
||||
model_inputs = tokenizer([text], return_tensors="pt").to("cuda")
|
||||
|
||||
generated_ids = model.generate(
|
||||
**model_inputs,
|
||||
max_new_tokens=32768,
|
||||
temperature=0.6,
|
||||
top_p=0.95
|
||||
)
|
||||
generated_ids = [
|
||||
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
|
||||
]
|
||||
|
||||
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
|
||||
```
|
||||
|
||||
|
||||
## Usage Recommendations
|
||||
|
||||
1. Don't include a system prompt; instead, place all instructions directly in the user prompt.
|
||||
2. We recommend using the following instruction for math questions: Please reason step by step, and put your final answer within \\boxed{}.
|
||||
3. We recommend using the following instruction for code questions: Write Python code to solve the problem. Please place the solution code in the following format:\\n
|
||||
\`\`\`python\\n
|
||||
\# Your solution code here\\n
|
||||
\`\`\`
|
||||
|
||||
|
||||
## Correspondence to
|
||||
Yang Chen (yachen@nvidia.com), Zhuolin Yang (zhuoliny@nvidia.com), Zihan Liu (zihanl@nvidia.com), Chankyu Lee (chankyul@nvidia.com), Wei Ping (wping@nvidia.com)
|
||||
|
||||
|
||||
## License
|
||||
Your use of this model is governed by the [NVIDIA Open Model License](https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-open-model-license/).
|
||||
|
||||
|
||||
## Citation
|
||||
```
|
||||
@article{acereason2025,
|
||||
title={AceReason-Nemotron: Advancing Math and Code Reasoning through Reinforcement Learning},
|
||||
author={Chen, Yang and Yang, Zhuolin and Liu, Zihan and Lee, Chankyu and Shoeybi, Mohammad and Catanzaro, Bryan and Ping, Wei},
|
||||
journal={arXiv preprint},
|
||||
year={2025}
|
||||
}
|
||||
```
|
||||
30
config.json
Normal file
30
config.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"architectures": [
|
||||
"Qwen2ForCausalLM"
|
||||
],
|
||||
"attention_dropout": 0.0,
|
||||
"bos_token_id": 151646,
|
||||
"eos_token_id": 151643,
|
||||
"hidden_act": "silu",
|
||||
"hidden_size": 5120,
|
||||
"initializer_range": 0.02,
|
||||
"intermediate_size": 13824,
|
||||
"max_position_embeddings": 131072,
|
||||
"max_window_layers": 48,
|
||||
"model_type": "qwen2",
|
||||
"num_attention_heads": 40,
|
||||
"num_hidden_layers": 48,
|
||||
"num_key_value_heads": 8,
|
||||
"pad_token_id": 151654,
|
||||
"rms_norm_eps": 1e-05,
|
||||
"rope_scaling": null,
|
||||
"rope_theta": 1000000.0,
|
||||
"sliding_window": null,
|
||||
"tie_word_embeddings": false,
|
||||
"torch_dtype": "bfloat16",
|
||||
"transformers_version": "4.52.3",
|
||||
"unsloth_fixed": true,
|
||||
"use_cache": true,
|
||||
"use_sliding_window": false,
|
||||
"vocab_size": 152064
|
||||
}
|
||||
1
configuration.json
Normal file
1
configuration.json
Normal file
@@ -0,0 +1 @@
|
||||
{"framework": "pytorch", "task": "text-generation", "allow_remote": true}
|
||||
3
imatrix_unsloth.dat
Normal file
3
imatrix_unsloth.dat
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cebac9c4f34a7d7d517d825df835d24a6a4663a1f9c74f22939a32a312fff117
|
||||
size 8563620
|
||||
Reference in New Issue
Block a user