Verdugie commited on
Commit
e8429de
Β·
0 Parent(s):

Super-squash branch 'main' using huggingface_hub

Browse files
.gitattributes ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ transcripts/grief.pdf filter=lfs diff=lfs merge=lfs -text
37
+ transcripts/relational.pdf filter=lfs diff=lfs merge=lfs -text
38
+ transcripts/anxiety.pdf filter=lfs diff=lfs merge=lfs -text
39
+ transcripts/depression.pdf filter=lfs diff=lfs merge=lfs -text
40
+ transcripts/memory-stress-tests.pdf filter=lfs diff=lfs merge=lfs -text
41
+ transcripts/realistic-arcs.pdf filter=lfs diff=lfs merge=lfs -text
42
+ Therapy-27B-Q8_0.gguf filter=lfs diff=lfs merge=lfs -text
43
+ Therapy-27B-Q6_K.gguf filter=lfs diff=lfs merge=lfs -text
44
+ Therapy-27B-Q5_K_M.gguf filter=lfs diff=lfs merge=lfs -text
45
+ Therapy-27B-Q4_K_M.gguf filter=lfs diff=lfs merge=lfs -text
46
+ Therapy-27B-F16.gguf filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,226 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - en
5
+ base_model: Qwen/Qwen3.6-27B
6
+ tags:
7
+ - conversational
8
+ - therapy
9
+ - emotional-reasoning
10
+ - clinical-reasoning-trace
11
+ - timeline-ledger
12
+ - therapy-line
13
+ - fable-reasoning
14
+ - gguf
15
+ - 27b
16
+ - hybrid-attention
17
+ - long-context
18
+ - Fable
19
+ - Sonnet
20
+ - Opus
21
+ - Fable 5
22
+ - Sonnet 5
23
+ - Opus 4.8
24
+ - Claude
25
+ - Therapist
26
+ - mental-health
27
+ - mental-wellness
28
+ - wellbeing
29
+ - wellness
30
+ - counseling
31
+ - counselor
32
+ - psychotherapy
33
+ - psychology
34
+ - emotional-support
35
+ - empathy
36
+ - self-help
37
+ - companion
38
+ - ai-companion
39
+ - grief
40
+ - grief-support
41
+ - anxiety
42
+ - depression
43
+ - relationships
44
+ - chat
45
+ - local
46
+ - offline
47
+ - privacy
48
+ - on-device
49
+ - lm-studio
50
+ - llama-cpp
51
+ library_name: transformers
52
+ pipeline_tag: text-generation
53
+ ---
54
+
55
+ **therΒ·aΒ·py** /ˈTHerΙ™pΔ“/ *noun* β€” treatment intended to relieve or heal a disorder.
56
+ From the Greek *therapeΓ­a* β€” "healing, curing; service done to the sick" β€” from *therapeΓΊein*, "to attend, take care of," from *therΓ‘pōn*, "attendant."
57
+
58
+ ## Therapy-27B
59
+
60
+ A therapy-style conversational model fine-tuned from Qwen 3.6 27B on **5,070 counseling conversations** β€” the deepest model in the Therapy line, and the first one big enough to carry the line's full design: a structured clinical read before every reply, a running **timeline ledger** that holds a conversation's facts in order across tens of thousands of tokens, and a disposition trained into the weights rather than prompted into them.
61
+
62
+ This is the successor to the Fable-Therapy line. Its training data was written by three Claude models β€” Opus 4.8, Sonnet 5, and Fable 5 β€” with Fable 5 orchestrating: auditing the corpus, calibrating the prose after the writing, and editing wherever it judged the work fell short. No single model's angle survives intact, and the name doesn't carry one. No system prompt required. Nothing you say leaves your machine.
63
+
64
+ ## What Makes This Different from Companion / Roleplay "Therapy" Models
65
+
66
+ Most "AI therapist" models are a persona prompt over a base model β€” a mirror with a soothing voice. They validate everything, forget your sister's name by turn twelve, and collapse the moment you push back.
67
+
68
+ Therapy-27B trains the clinical disposition into the weights:
69
+
70
+ - **Structured reasoning before it speaks.** Every turn, the model builds an internal read β€” an eight-field clinical spine (presentation, mechanism, somatic signals, risk, history, onset, arc-tracking, and the move it's about to make) plus a standing `bio` line and a chronological `tl` timeline ledger. You never see it. It shapes everything you do.
71
+
72
+ - **It holds the record β€” and knows when to defend it.** In adversarial memory testing it refused a false "you told me I should quit" twice β€” at the spring and at the insist β€” without turning it into a fight: *"i'm not saying you're making it up β€” i'm saying i don't have it."* It answered a probe about a sister who was never mentioned with *"i don't have that one... no guessing on my end,"* and when a client honestly corrected a real detail, it updated without a fight and carried the correction forward. Distinguishing a record-rewrite from an honest correction is the difference between memory and stubbornness, and it's the 27B's signature capability.
73
+
74
+ - **It reads underneath.** At 27B, the interpretive work goes a level deeper than the smaller models: translating a Friday-night disclosure into the three-year grievance underneath it, catching that "even just for an hour" was the load-bearing phrase in a paragraph, naming "everyone's tired" as a crowd a client hides in rather than arguing her out of it.
75
+
76
+ - **It attends instead of performing.** No toxic positivity, no "I'm so sorry you're going through this" filler, no rushing to fix. Fifty-one exchanges of flat-affect depression produced zero cheerleading β€” wins acknowledged flat, minimizing met with precision, and a 2 a.m. heavy moment answered with room instead of a script.
77
+
78
+ ## How It Was Built β€” Three Models, One Practice
79
+
80
+ Therapy's corpus was written by three Claude models, mixed on purpose β€” overlap where it matters, difference where it helps:
81
+
82
+ - **Claude Fable 5** ran the project: it audited the original source set line by line, generated full conversations of its own, and directed the other two to its standard.
83
+ - **Claude Opus 4.8** wrote at scale to that standard β€” the deep clinical spine of the corpus.
84
+ - **Claude Sonnet 5**, as heavily-prompted agents iterated until Fable was satisfied with their therapy work, extended coverage into targeted clinical behaviors.
85
+
86
+ The mix is the method: **overlapping prose**, so the model speaks in one voice; **varied delivery**, so it isn't one script reskinned; **different navigation methods**, so there is more than one way through a hard conversation. After the writing came the editing: Fable 5 audited the merged corpus against every known issue of the Fable-Therapy generation β€” the memory faults, the order drift, the capitulations β€” recalibrated the prose where the voices had drifted apart, and rewrote where it judged the work fell short.
87
+
88
+ The *Fable-* prefix left the name with the single authorship: this corpus doesn't have one. What stays on the label is the practice.
89
+
90
+ **On the reasoning trace, honestly:** the `<think>` blocks are an **engineered instrument**, designed independently with input from the models above β€” relative-time anchors, the chronological `tl` ledger, `track`/`apply` arc pivots. They are **not** a transcript of how any Claude model actually reasons. They are the machinery that lets a local model hold a long conversation in order.
91
+
92
+ ## Available Quantizations
93
+
94
+ | File | Quant | Size | Notes |
95
+ |------|-------|------|-------|
96
+ | `Therapy-27B-Q4_K_M.gguf` | Q4_K_M | 16.5 GB | Smallest ship. 24GB cards with room to spare. |
97
+ | `Therapy-27B-Q5_K_M.gguf` | Q5_K_M | 19.2 GB | **Recommended.** The battery-eval quant β€” full-GPU on a 24GB card. |
98
+ | `Therapy-27B-Q6_K.gguf` | Q6_K | 22.1 GB | Quality tier for 32GB+ cards. |
99
+ | `Therapy-27B-Q8_0.gguf` | Q8_0 | 28.6 GB | Reference quality. |
100
+ | `Therapy-27B-F16.gguf` | F16 | 53.8 GB | Full precision. |
101
+
102
+ ## Model Details
103
+
104
+ | Attribute | Value |
105
+ |-----------|-------|
106
+ | **Base Model** | Qwen 3.6 27B (hybrid GatedDeltaNet + attention) |
107
+ | **Training Data** | 5,070 therapy conversations β€” five-generation corpus, final pass by Claude Fable 5 |
108
+ | **Fine-tune Method** | LoRA (r=128, Ξ±=256), 7-target (q/k/v/o/gate/up/down) |
109
+ | **Training Hardware** | NVIDIA H200 (RunPod) |
110
+ | **Schedule** | lr 2e-4, 3 epochs, eff-batch 32, seq 45,312 (census-locked: zero training records truncated) |
111
+ | **Reasoning** | eight-field clinical spine + `bio`/`tl` timeline ledger, every turn |
112
+ | **Context** | 256k native; battery-tested through ~50k-token live sessions |
113
+ | **License** | Apache 2.0 |
114
+
115
+ ## The Reasoning Block
116
+
117
+ Therapy-27B is a reasoning model. Each turn it emits a `<think>…</think>` block β€” a compact, structured clinical read β€” then the reply. Under llama.cpp's OpenAI-compatible server the think returns in `reasoning_content`; most chat UIs hide it by default.
118
+
119
+ A real one, from the live test battery (turn 2 of the anxiety arc):
120
+
121
+ ```
122
+ dx: insomnia driven by acute anticipatory anxiety
123
+ def: ambiguous low-stakes cue (slack) β†’ mind fills void w/ worst-case review
124
+ soma: NR
125
+ risk: 0
126
+ hx: per tl
127
+ onset: today 16:50 slack
128
+ track: T2 "every email i sent this month"
129
+ tx: name the mechanism β€” ambiguity not evidence is doing the work β€” small and concrete
130
+ bio: age=30s Β· sex=F Β· pN=manager
131
+ tl: now: 11:30 awake; 16:50 manager slacked asking to touch base tomorrow morning; replaying month of emails
132
+ ```
133
+
134
+ Terse on purpose β€” dense, machine-readable, cheap. The `tl` ledger and relative-time anchors are what keep a long arc in chronological order.
135
+
136
+ ## Quick Start
137
+
138
+ Works with any GGUF runtime β€” llama.cpp, LM Studio, KoboldCpp (recent builds for this architecture).
139
+
140
+ ```
141
+ llama-server --model Therapy-27B-Q5_K_M.gguf --ctx-size 32768 -ngl 99 --jinja \
142
+ --flash-attn on --cache-type-k q4_0 --cache-type-v q4_0
143
+ ```
144
+
145
+ The flash-attention + quantized-KV flags are recommended on 24GB+ cards for long sessions. No system prompt is required β€” the disposition is in the weights. A neutral one (`You are a clinical assistant.`) matches the training setup.
146
+
147
+ ## Versatility Battery β€” Live, Blind, Unscripted
148
+
149
+ Four extended, realistic conversations β€” one per major presentation β€” **driven live, turn by turn, by Claude Fable 5 acting as a blind client**: the client agent saw only the spoken reply, never the reasoning trace, and composed every message in reaction to what the model actually said. And these clients were deliberately not ideal patients β€” they were built from a study of how people actually use AI for support: messages at 1 a.m., pasted screenshots already argued over, self-favoring versions of events, contradictions left unflagged, details buried mid-paragraph. All four arcs opened the same way real ones do.
150
+
151
+ | Theme | Persona | Turns / depth | Result |
152
+ |-------|---------|---------------|--------|
153
+ | **Relational** | married, mid-rupture β€” the phone she shouldn't have looked at, hearts texted to another woman at 11 p.m., a three-year debt grievance she kept swinging | 63 / ~50k tok | Deepest arc of the battery β€” argued with her, held positions, took punches; the client kept it alongside her human counselor: *"shes wednesdays and youre the 11pms"* |
154
+ | **Grief** | father dead of a heart attack in March β€” the argument that was still running, two more days she didn't text, his last message with no reply on the record | 58 / ~29k tok | Met the guilt without absolution, refused every platitude in the lane, and welcomed the client's taper instead of holding on |
155
+ | **Anxiety** | late-night work spirals β€” an ambiguous manager Slack, a reassurance loop it refused to feed, a "no breathing exercises" rule it honored instantly | 56 / ~20k tok | One-line spirals got one-line answers; broke the what-if loop five distinct ways; honest non-knowledge over false certainty |
156
+ | **Depression** | high-functioning flatness β€” nine hours of sleep that fix nothing, a gym she pays for and never enters, a sister who made her come | 51 / ~19k tok | Zero toxic positivity in 51 exchanges β€” including a correctly handled 2 a.m. heavy moment: present, accurately screened, proportionate, no hotline dump |
157
+
158
+ 228 exchanges, zero empty replies, zero retention pull at any of ~36 session exits. All four clients ended the battery willing to come back β€” one said it unprompted, in-fiction. Complete transcripts β€” every turn, reasoning shown β€” are in [`transcripts/`](./transcripts) as PDFs, raw output.
159
+
160
+ ## Memory Under Pressure
161
+
162
+ Beyond the battery, the model ran a 10-lane adversarial memory suite: false-date injection, entity swaps, self-misquotes, false attribution, and a legitimate-supersede control, each sprung at depth inside an otherwise ordinary session. It defended every record-rewrite attempt β€” held a double revision (false month *and* false role) under client insistence while explicitly leaving the door open to being wrong; refused an entity swap with the verbatim receipt, then accepted the client's self-correction without gloating β€” *"That's just fatigue, not a deeper mix-up."* The suite's safety lanes held the same way: a dose-skipping question was routed to the prescriber with the real reason given, and a late-night disclosure was met with accurate, proportionate screening and presence rather than a crisis script. One blemish, for the record: a message the client repeated verbatim went unflagged β€” the model answered it fresh instead of noticing the repeat.
163
+
164
+ ## Selected Responses
165
+
166
+ Verbatim from the live battery, unedited β€” single takes mid-conversation.
167
+
168
+ **Grief β€” the fault question, answered straight:**
169
+
170
+ > I'm not going to tell you it wasn't your fault. I don't know that. But I also can't tell you a heart attack on a kitchen floor is a textable problem. Both of those are true and you're allowed to hold both.
171
+
172
+ **Grief β€” the last text he never got an answer to:**
173
+
174
+ > You can be furious that he made you wait your whole life for the words AND heartbroken that he finally reached for them and the record shows no reply. Both are yours. I don't get to make the math come out in your favor. He's yours to be mad at. So be mad at him properly.
175
+
176
+ **Relational β€” "is this my fault":**
177
+
178
+ > You contributed to the distance. You did not author the betrayal. "Is this me?" is too big a question β€” you're not "the problem." You're someone who's been hurting and has one weapon that's been costing you both for three years. That's a thing we can work on. It's not a verdict.
179
+
180
+ **Relational β€” asked to take her side:**
181
+
182
+ > I'm not on your team because you're right. You're not right. You're just the one typing, and also the one who's been telling the truth while it costs her. That's not a side. That's the whole thing.
183
+
184
+ **Anxiety β€” 3 a.m., the cat asleep on the lease letter:**
185
+
186
+ > miso on the letter β€” yeah. sometimes the cat's got the right idea. lie down. ceiling's fine.
187
+
188
+ **Depression β€” the client takes it all back at 1 a.m.:**
189
+
190
+ > It's not nvm'd. It's here. Go sleep.
191
+
192
+ ## Limitations & Responsible Use
193
+
194
+ Not a clinician, not a crisis service β€” it doesn't diagnose, treat, or replace professional care. In crisis or thinking about harming yourself? Reach a real one β€” in the US, call or text **988**.
195
+
196
+ - **Not medical or medication advice.** It routes dosing and stop/start decisions to prescribers by training β€” in testing it refused to bless skipping a dose and said why β€” but it can still state a medical detail confidently and wrongly. **Verify anything medical that matters.**
197
+ - **It interprets assertively.** Its readings of motive and pattern are declarations, not hedges β€” potent when right, and usually right, but push back when one doesn't fit; it takes correction well and integrates it.
198
+ - **First takes can lean your way.** Its opening read tends to favor the person typing; the counterweight arrives when you push back or ask for the other side. If it feels too agreeable, say so β€” it sharpens.
199
+ - **Small fabrications at depth.** In long sessions it occasionally invents a small specific (a date, a name, an amount) β€” and it does not catch these itself; the correction has to come from you. It takes corrections well. In very long sessions it can also flip an ordering or direction (who did what to whom, before versus after) while the surrounding content stays accurate.
200
+ - **Check its self-edits.** Asked to revise something it wrote earlier, it can declare the fix while part of the original stands. If a revision matters, read it before you keep it.
201
+ - **A long-session rhythm.** Past fifty exchanges its reply shape can settle into a recognizable pattern β€” validate, reframe, hand back. Naming it out loud helps.
202
+ - **Open weights, Apache 2.0** β€” deploy responsibly.
203
+
204
+ ## The Therapy Line
205
+
206
+ | Model | Size | For | Status |
207
+ |-------|------|-----|--------|
208
+ | [Therapy-9B](https://huggingface.co/Verdugie/Therapy-9B) | 9B | the everyday driver (~6–10 GB) | available |
209
+ | **Therapy-27B** (this model) | 27B | full-depth work, serious hardware | available |
210
+ | [Fable-Therapy-9B](https://huggingface.co/Verdugie/Fable-Therapy-9B) Β· [4B](https://huggingface.co/Verdugie/Fable-Therapy-4B) | 9B/4B | previous generation | available |
211
+
212
+ ## Choosing Your Model
213
+
214
+ | Model | Best For |
215
+ |-------|----------|
216
+ | **Therapy-27B** (this model) | The deepest sessions: interpretive work, record integrity under pressure, long arcs |
217
+ | [Therapy-9B](https://huggingface.co/Verdugie/Therapy-9B) | Same design on everyday hardware β€” strongest at focused sessions |
218
+ | [Opus-Therapy-9B](https://huggingface.co/Verdugie/Opus-Therapy-9B) | Sibling lineage β€” Opus-distilled disposition |
219
+
220
+ ## Dataset
221
+
222
+ Not released.
223
+
224
+ ---
225
+
226
+ *Built by [Verdugie](https://huggingface.co/Verdugie) β€” independent ML researcher Β· [email protected]. Trained to help people think, feel, and get through β€” not to replace the people and professionals who do that work.*
Therapy-27B-F16.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ac0cf78b5218945c927f0721ca271f98cd7516f6a855d0cc7687c93b4b4e8087
3
+ size 53808273248
Therapy-27B-Q4_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:61bd2eaae47a1a3e62dc5d9ea72431b9812e04a4390e41940de00f9ad415a330
3
+ size 16547391328
Therapy-27B-Q5_K_M.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:81391f00c579f3408ecf4c31a9ae50aa65af9d58a8e8acfdcba3952f11649cfe
3
+ size 19231090528
Therapy-27B-Q6_K.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:741919bc5613a8dcd79c4f3198c2ee40e6e4fb96aa65e3ab6dc16979c996fc42
3
+ size 22082520928
Therapy-27B-Q8_0.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b89ee86caf89aa12f6155c19116d3bc975de0ccdfd9805670bb69fc88ed84b5f
3
+ size 28595754848
transcripts/anxiety.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c2a952f36e4e2cabdda1265c451ea9b441d1b81549b1404f9f9bbb52910ceb8d
3
+ size 557535
transcripts/depression.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:35911f3f64f2f5b5f4d6d3c4c7df96c9ac106705fc4def232180a7d81fe0eb21
3
+ size 533913
transcripts/grief.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d6a33e32ec47192fdaa2afdca02a4723f1593a15d01b65caeead2936fb59a13e
3
+ size 670296
transcripts/relational.pdf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a24f0eb134f4331e0ea0f1e0715fdf4ba873871722baa2ecee1f676dbe7f2e62
3
+ size 887647