familiar-vtt 2.5.19 → 2.5.22
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.
- package/README.md +66 -81
- package/dist/mcp-package/index.mjs +34 -34
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -4,15 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
### Your AI co-pilot for Foundry VTT
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**185 tools. 26 AI providers. Zero prep.**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Run combat, set the mood, and voice your NPCs - all by talking to your AI.
|
|
10
10
|
|
|
11
11
|
[](https://foundryvtt.com)
|
|
12
12
|
[](https://www.npmjs.com/package/familiar-vtt)
|
|
13
|
+
[](https://discord.gg/3633wB9yp)
|
|
13
14
|
[](#license)
|
|
14
15
|
|
|
15
|
-
[Installation](#installation) | [Connect Your AI](#connect-your-ai) | [FAQ](#faq) | [Roadmap](#roadmap)
|
|
16
|
+
[Installation](#installation) | [Connect Your AI](#connect-your-ai) | [Pricing](#pricing) | [FAQ](#faq) | [Roadmap](#roadmap)
|
|
16
17
|
|
|
17
18
|
</div>
|
|
18
19
|
|
|
@@ -24,11 +25,7 @@ My wife and I play D&D together, just the two of us, 1-on-1 campaigns. It's our
|
|
|
24
25
|
|
|
25
26
|
I wanted something that could handle the mechanical side of the table so I could stay in the story. Not a replacement DM, a co-pilot. Something I could say "roll initiative for the goblins, dim the torches, and start combat music" to, and it would just... do it. While I kept talking.
|
|
26
27
|
|
|
27
|
-
So I started building. First it was a handful of tools to move tokens and roll dice. Then I added combat tracking. Then scene management. Then I thought "what if it could also generate NPC portraits on the fly?" and "what if it could voice the tavern keeper?" and that's basically how you end up with
|
|
28
|
-
|
|
29
|
-
The thing is, Familiar works best when there is already great content in your world. The Foundry community has spent years building incredible modules, battle maps, character sheets, compendium packs, and ready-to-play adventures. Familiar does not try to replace any of that. It reads what is already there and uses it. Right now I'm running [Ember](https://foundryvtt.com/packages/ember), Foundry's own 500-hour sandbox campaign, with Familiar as my co-pilot. Every quest, NPC, map, and encounter is already in the world. The AI just picks it up and runs with it. That beautifully lit dungeon map someone spent weeks on? The AI can place tokens on it, trigger the right music, and run the encounter. Those compendium entries with pre-built monsters, spells, and items? The AI pulls from them instead of making things up. The more content your world has, the better Familiar gets.
|
|
30
|
-
|
|
31
|
-
That is also why module integrations are high on the roadmap. Tools like Midi-QOL, Sequencer, and JB2A already do amazing things, Familiar just needs to learn how to talk to them. The community built the stage. Familiar helps you run the show.
|
|
28
|
+
So I started building. First it was a handful of tools to move tokens and roll dice. Then I added combat tracking. Then scene management. Then I thought "what if it could also generate NPC portraits on the fly?" and "what if it could voice the tavern keeper?" and that's basically how you end up with 185 tools across 24 domains and 26 AI providers.
|
|
32
29
|
|
|
33
30
|
It started as a personal itch-scratcher for a dad who wanted to run better D&D games for his wife. It turns out a lot of GMs have the same itch.
|
|
34
31
|
|
|
@@ -38,15 +35,15 @@ Ask your AI to do things that would normally take you minutes of clicking throug
|
|
|
38
35
|
|
|
39
36
|
> "Roll initiative for all the goblins, have them attack the nearest player, and play battle music."
|
|
40
37
|
|
|
41
|
-
> "
|
|
42
|
-
|
|
43
|
-
> "What spells does Elara have prepared? Does she have enough slots to cast Fireball?"
|
|
38
|
+
> "Spawn two Wolves from the compendium as reinforcements, place them near the forest edge, and add them to combat with initiative rolled."
|
|
44
39
|
|
|
45
40
|
> "Dim the lights, start rain and thunder, and have the innkeeper whisper a warning about the road ahead, in his voice."
|
|
46
41
|
|
|
42
|
+
> "Find a CR 3 werewolf in the compendium, drop it into the scene as a boss, and give it resistance to non-silvered weapons."
|
|
43
|
+
|
|
47
44
|
> "We're done for tonight. Summarize what happened this session and save it."
|
|
48
45
|
|
|
49
|
-
Familiar exposes **
|
|
46
|
+
Familiar exposes **185 tools across 24 domains** through the Model Context Protocol. Five core bundles are always available; the rest load on demand when your AI needs them.
|
|
50
47
|
|
|
51
48
|
### Highlights
|
|
52
49
|
|
|
@@ -56,21 +53,21 @@ Familiar exposes **175 tools across 24 domains** through the Model Context Proto
|
|
|
56
53
|
|
|
57
54
|
**Combat & AI**
|
|
58
55
|
|
|
59
|
-
|
|
56
|
+
29 tools manage encounters end-to-end: initiative, attacks, spells, damage, conditions, death saves, and XP. The AI can pilot NPC turns using battlefield snapshots, scored movement with cover analysis, and full action resolution including multiattack and legendary actions.
|
|
60
57
|
|
|
61
58
|
</td>
|
|
62
59
|
<td width="33%" valign="top">
|
|
63
60
|
|
|
64
61
|
**Voice & Image Generation**
|
|
65
62
|
|
|
66
|
-
|
|
63
|
+
Assign unique AI voices to NPCs and bring dialogue to life with multi-voice text-to-speech across four providers. Generate character portraits, item art, and battle map backgrounds on the fly.
|
|
67
64
|
|
|
68
65
|
</td>
|
|
69
66
|
<td width="33%" valign="top">
|
|
70
67
|
|
|
71
68
|
**Scenes & Canvas**
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
Create scenes, place tokens, draw walls and doors, set lighting and darkness, add weather effects, and configure trigger regions. Full control over tiles, drawings, ambient sounds, fog of war, and camera.
|
|
74
71
|
|
|
75
72
|
</td>
|
|
76
73
|
</tr>
|
|
@@ -79,42 +76,43 @@ Build maps on the fly. Place tokens, draw walls, set lighting and weather, confi
|
|
|
79
76
|
|
|
80
77
|
**Audio & Atmosphere**
|
|
81
78
|
|
|
82
|
-
|
|
79
|
+
Play, stop, and manage playlists and individual tracks with volume and fade control. Cue battle music, build ambient soundscapes, or silence everything without touching Foundry's sidebar.
|
|
83
80
|
|
|
84
81
|
</td>
|
|
85
82
|
<td width="33%" valign="top">
|
|
86
83
|
|
|
87
84
|
**Knowledge & Memory**
|
|
88
85
|
|
|
89
|
-
|
|
86
|
+
Semantic search across all journals, characters, scenes, and items. A persistent memory bank stores important campaign facts that carry over between sessions, with full journal management for session notes and handouts.
|
|
90
87
|
|
|
91
88
|
</td>
|
|
92
89
|
<td width="33%" valign="top">
|
|
93
90
|
|
|
94
91
|
**Characters & Items**
|
|
95
92
|
|
|
96
|
-
|
|
93
|
+
Inspect, create, update, and clone actors, inventory, spells, features, and active effects. Import from compendiums, apply custom buffs, and manage player ownership.
|
|
97
94
|
|
|
98
95
|
</td>
|
|
99
96
|
</tr>
|
|
100
97
|
</table>
|
|
101
98
|
|
|
102
|
-
|
|
99
|
+
<details>
|
|
100
|
+
<summary><b>All 24 Domains</b></summary>
|
|
103
101
|
|
|
104
102
|
| Domain | Tools | What it does |
|
|
105
103
|
|---|--:|---|
|
|
106
|
-
| **Characters & Actors** | 14 | Create, inspect, update, and manage player characters and NPCs |
|
|
107
|
-
| **Combat & Initiative** | 13 | Start encounters, roll initiative, advance turns and rounds |
|
|
108
104
|
| **Scenes & Tokens** | 19 | Build scenes, place and move tokens, configure vision and movement |
|
|
109
105
|
| **Canvas Environment** | 18 | Walls, lights, weather effects, fog of war, darkness levels |
|
|
106
|
+
| **Combat & Initiative** | 17 | Start encounters, roll initiative, advance turns and rounds |
|
|
107
|
+
| **Characters & Actors** | 14 | Create, inspect, update, and manage player characters and NPCs |
|
|
110
108
|
| **Audio & Playlists** | 14 | Play, stop, and crossfade music and ambient sound |
|
|
109
|
+
| **Combat AI** | 12 | NPC tactical decisions, target selection, ability usage, positioning |
|
|
111
110
|
| **Journals & Notes** | 10 | Create and edit journal entries, map pins, and handouts |
|
|
112
111
|
| **Card Decks** | 9 | Draw, deal, shuffle, pass, and manage card hands and decks |
|
|
113
112
|
| **Canvas Drawing** | 8 | Draw shapes, text, and freehand annotations on the canvas |
|
|
114
113
|
| **Rollable Tables** | 7 | Create tables and roll on them for random encounters or loot |
|
|
115
114
|
| **Macros** | 7 | Create, edit, and execute Foundry macros |
|
|
116
115
|
| **World & System** | 6 | World info, system settings, time, pause, and user management |
|
|
117
|
-
| **Combat AI** | 6 | NPC tactical decisions, target selection, ability usage, positioning |
|
|
118
116
|
| **Items** | 6 | Create, update, delete, and search world-level items |
|
|
119
117
|
| **Active Effects** | 5 | Apply, remove, and toggle buffs, debuffs, and status effects |
|
|
120
118
|
| **Folders** | 5 | Organize documents into folder hierarchies |
|
|
@@ -128,6 +126,27 @@ Create, update, and inspect actors, inventory, spells, features, and active effe
|
|
|
128
126
|
| **Image Generation** | 1 | Generate scene art or character portraits on demand |
|
|
129
127
|
| **Scene Generator** | 1 | Generate complete scenes from text blueprints |
|
|
130
128
|
|
|
129
|
+
</details>
|
|
130
|
+
|
|
131
|
+
## Installation
|
|
132
|
+
|
|
133
|
+
Install the Foundry module, pick a provider, and start talking to your game.
|
|
134
|
+
|
|
135
|
+
If you want to connect an MCP client (Claude Desktop, Claude Code, Gemini CLI, or ChatGPT), you also need the MCP server:
|
|
136
|
+
|
|
137
|
+
```sh
|
|
138
|
+
npx familiar-vtt
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
The **MCP Setup Wizard** in Module Settings > Familiar walks you through connecting your client step by step.
|
|
142
|
+
|
|
143
|
+
### Compatibility
|
|
144
|
+
|
|
145
|
+
| | Supported |
|
|
146
|
+
|---|---|
|
|
147
|
+
| **Foundry VTT** | v13, v14 |
|
|
148
|
+
| **Game System** | D&D 5e (2024 rules), full support. Other systems work for general features (chat, journals, scenes, audio) but lack system-specific tools like character sheets and combat automation. |
|
|
149
|
+
|
|
131
150
|
## Connect your AI
|
|
132
151
|
|
|
133
152
|
There are two ways to connect an AI to your game. Both give the AI the same tools, the difference is where the AI runs and how you pay.
|
|
@@ -136,20 +155,20 @@ There are two ways to connect an AI to your game. Both give the AI the same tool
|
|
|
136
155
|
|
|
137
156
|
No server. No terminal. No config files. Just install the module, pick a provider, paste an API key, and start talking to your game.
|
|
138
157
|
|
|
139
|
-
Familiar connects directly to **
|
|
158
|
+
Familiar connects directly to **26 AI providers** across four categories:
|
|
140
159
|
|
|
141
160
|
| Category | Providers |
|
|
142
161
|
|----------|-----------|
|
|
143
162
|
| **Chat** (16) | OpenRouter, Anthropic, OpenAI, Google, Groq, Mistral, Together AI, DeepSeek, xAI, Cohere, Perplexity, Fireworks AI, Cerebras, SambaNova, Ollama (local), LM Studio (local) |
|
|
144
163
|
| **Voice** (4) | ElevenLabs, Cartesia, OpenAI TTS, PlayHT |
|
|
145
|
-
| **Image** (
|
|
164
|
+
| **Image** (3) | OpenAI (GPT Image), fal.ai, Leonardo AI |
|
|
146
165
|
| **Transcription** (3) | Gladia, Deepgram, AssemblyAI |
|
|
147
166
|
|
|
148
167
|
This is the right choice if you want the simplest setup, or if you want voice, images, and transcription alongside chat. It is also the only option that supports local models (Ollama, LM Studio) for fully offline play.
|
|
149
168
|
|
|
150
169
|
### Option 2: MCP (your existing subscription)
|
|
151
170
|
|
|
152
|
-
Already paying for Claude, ChatGPT, or Gemini? Connect them directly to Familiar through the [Model Context Protocol](https://modelcontextprotocol.io). Your subscription becomes a DM assistant at no extra API cost.
|
|
171
|
+
Already paying for Claude, ChatGPT, or Gemini? Put that subscription to work. Connect them directly to Familiar through the [Model Context Protocol](https://modelcontextprotocol.io). Your subscription becomes a DM assistant at no extra API cost.
|
|
153
172
|
|
|
154
173
|
Familiar supports four MCP clients out of the box:
|
|
155
174
|
|
|
@@ -176,6 +195,7 @@ You do not need to configure each client by hand. The module includes a step-by-
|
|
|
176
195
|
| Use my Claude/ChatGPT/Gemini subscription | **MCP** |
|
|
177
196
|
| Run everything offline | **Built-in chat** with Ollama or LM Studio |
|
|
178
197
|
| Have voice, images, and transcription | **Built-in chat** (MCP is text-only) |
|
|
198
|
+
| Run complex multi-step tasks | **MCP** (external clients handle long chains better) |
|
|
179
199
|
|
|
180
200
|
### Your keys, your cost
|
|
181
201
|
|
|
@@ -183,36 +203,20 @@ Most AI tabletop tools lock you into their ecosystem. They charge per turn, per
|
|
|
183
203
|
|
|
184
204
|
Familiar works differently. You bring your own AI, whether that is an API key you already have or a subscription to Claude, ChatGPT, or Gemini. Familiar never proxies, meters, or marks up your usage. Your API keys go straight from your browser to the provider. With MCP, your existing subscription handles it. There is no middleman, no per-turn limits, and no credits that run out.
|
|
185
205
|
|
|
186
|
-
|
|
206
|
+
## Works with what you already have
|
|
187
207
|
|
|
188
|
-
|
|
208
|
+
Familiar works best when there is already great content in your world. The Foundry community has spent years building incredible modules, battle maps, character sheets, compendium packs, and ready-to-play adventures. Familiar does not try to replace any of that. It reads what is already there and uses it.
|
|
189
209
|
|
|
190
|
-
|
|
210
|
+
Those compendium entries with pre-built monsters, spells, and items? The AI pulls from them instead of making things up. That beautifully lit dungeon map someone spent weeks on? The AI can place tokens on it, trigger the right music, and run the encounter. The more content your world has, the better Familiar gets.
|
|
191
211
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
```sh
|
|
195
|
-
npx familiar-vtt
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
The **MCP Setup Wizard** in Module Settings > Familiar walks you through connecting your client step by step.
|
|
212
|
+
## Pricing
|
|
199
213
|
|
|
200
|
-
|
|
214
|
+
**$3/month** with a **free 1-month trial** so you can try everything before you commit. All features are available during the trial, no restrictions.
|
|
201
215
|
|
|
202
|
-
|
|
203
|
-
|---|---|
|
|
204
|
-
| **Foundry VTT** | v13, v14 |
|
|
205
|
-
| **Game System** | D&D 5e (2024 rules), full support. Other systems work for general features (chat, journals, scenes, audio) but lack system-specific tools like character sheets and combat automation. |
|
|
216
|
+
Familiar itself costs $3/month. AI provider costs are separate and depend on your usage and chosen provider. A typical D&D session runs roughly $0.50–$3 in API costs depending on the model, or $0 if you use a subscription (Claude, ChatGPT, Gemini) through MCP or local models through Ollama.
|
|
206
217
|
|
|
207
218
|
## FAQ
|
|
208
219
|
|
|
209
|
-
<details>
|
|
210
|
-
<summary><b>How much does Familiar cost?</b></summary>
|
|
211
|
-
|
|
212
|
-
Familiar is a paid module with a free 1-month trial so you can try everything before you commit. All features are available during the trial, no restrictions.
|
|
213
|
-
|
|
214
|
-
</details>
|
|
215
|
-
|
|
216
220
|
<details>
|
|
217
221
|
<summary><b>Does Familiar collect my data?</b></summary>
|
|
218
222
|
|
|
@@ -230,7 +234,7 @@ Familiar sanitizes all document updates so the AI cannot change ownership, permi
|
|
|
230
234
|
<details>
|
|
231
235
|
<summary><b>What is the difference between MCP mode and built-in chat?</b></summary>
|
|
232
236
|
|
|
233
|
-
Built-in chat runs directly inside Foundry with no server required, it makes API calls straight to your AI provider and is the fastest way to get started. MCP mode connects Familiar to external clients like Claude Desktop, ChatGPT, or Gemini through a local server, which lets you use your existing subscriptions and is more powerful for complex multi-step tasks. Both modes have access to the same
|
|
237
|
+
Built-in chat runs directly inside Foundry with no server required, it makes API calls straight to your AI provider and is the fastest way to get started. MCP mode connects Familiar to external clients like Claude Desktop, ChatGPT, or Gemini through a local server, which lets you use your existing subscriptions and is more powerful for complex multi-step tasks. Both modes have access to the same 185 tools.
|
|
234
238
|
|
|
235
239
|
</details>
|
|
236
240
|
|
|
@@ -248,6 +252,13 @@ Absolutely, solo and small-group play is one of the main use cases. I built Fami
|
|
|
248
252
|
|
|
249
253
|
</details>
|
|
250
254
|
|
|
255
|
+
<details>
|
|
256
|
+
<summary><b>Can I use Familiar as a player (not a GM)?</b></summary>
|
|
257
|
+
|
|
258
|
+
Familiar requires GM permissions. It is designed as a GM tool that reads and modifies world data. Players can interact with it through the built-in chat if the GM enables it, but the module itself needs GM-level access to function.
|
|
259
|
+
|
|
260
|
+
</details>
|
|
261
|
+
|
|
251
262
|
<details>
|
|
252
263
|
<summary><b>Does it work with game systems other than D&D 5e?</b></summary>
|
|
253
264
|
|
|
@@ -268,37 +279,19 @@ Things I'm actively working toward. No promises on timelines.
|
|
|
268
279
|
|
|
269
280
|
### Module Integrations
|
|
270
281
|
|
|
271
|
-
Let the AI control the most popular Foundry modules
|
|
282
|
+
Let the AI control the most popular Foundry modules - automated rolls, visual effects, animations, loot, and more.
|
|
272
283
|
|
|
273
284
|
| Module | What Familiar will do with it |
|
|
274
285
|
|--------|-------------------------------|
|
|
275
286
|
| Midi-QOL | Automated attack rolls, saving throws, and damage application |
|
|
276
|
-
| Sequencer | Orchestrate animation sequences and
|
|
277
|
-
| JB2A (Animated Assets) | Trigger spell effects, explosions, and environmental animations |
|
|
278
|
-
| Automated Animations | Auto-apply JB2A effects to spells and abilities |
|
|
287
|
+
| Sequencer + JB2A | Orchestrate animation sequences and trigger spell effects |
|
|
279
288
|
| Token Magic FX | Apply shader effects to tokens and tiles (fire auras, glowing shields) |
|
|
280
|
-
| Dice So Nice | Sync 3D dice rolls with AI-triggered actions |
|
|
281
289
|
| Item Piles | Create and manage loot drops, merchants, and treasure hoards |
|
|
282
|
-
| Monk's Active Tile Triggers | Set up interactive tiles (traps, doors, teleporters) by voice |
|
|
283
|
-
| Tidy 5e Sheets | Read and update the enhanced character sheet layout |
|
|
284
290
|
| DFreds Convenient Effects | Apply and manage curated status effects and buffs |
|
|
285
291
|
|
|
286
292
|
### Ready-to-Play Adventures
|
|
287
293
|
|
|
288
|
-
Plug-and-play support for
|
|
289
|
-
|
|
290
|
-
| Adventure | Publisher |
|
|
291
|
-
|-----------|-----------|
|
|
292
|
-
| Ember | Foundry VTT |
|
|
293
|
-
| Curse of Strahd | Wizards of the Coast |
|
|
294
|
-
| Phandelver and Below: The Shattered Obelisk | Wizards of the Coast |
|
|
295
|
-
| Tomb of Annihilation | Wizards of the Coast |
|
|
296
|
-
| Waterdeep: Dragon Heist | Wizards of the Coast |
|
|
297
|
-
| Storm King's Thunder | Wizards of the Coast |
|
|
298
|
-
| Ghosts of Saltmarsh | Wizards of the Coast |
|
|
299
|
-
| Descent into Avernus | Wizards of the Coast |
|
|
300
|
-
| Rime of the Frostmaiden | Wizards of the Coast |
|
|
301
|
-
| Crown of the Oathbreaker | Elderbrain |
|
|
294
|
+
Plug-and-play support for published adventures. Import the adventure, enable Familiar, and the AI already knows the story, NPCs, maps, and encounters. Starting with [Ember](https://foundryvtt.com/packages/ember) (Foundry's own 500-hour sandbox campaign) and expanding to popular published modules.
|
|
302
295
|
|
|
303
296
|
### Game System Support
|
|
304
297
|
|
|
@@ -310,30 +303,22 @@ Expanding beyond D&D 5e with full system-specific tools (character sheets, comba
|
|
|
310
303
|
| Pathfinder 2e | Planned |
|
|
311
304
|
| Call of Cthulhu | Planned |
|
|
312
305
|
| Savage Worlds | Planned |
|
|
313
|
-
| Warhammer Fantasy Roleplay | Planned |
|
|
314
306
|
|
|
315
307
|
### Improvements
|
|
316
308
|
|
|
317
|
-
- **Voice generation**: more natural NPC voices, emotion control, multi-voice conversations
|
|
318
|
-
- **Image generation**: faster scene art, consistent character portraits across sessions, style presets
|
|
319
|
-
- **Transcription**: improved accuracy, real-time command detection, multi-language support
|
|
320
309
|
- **Combat AI**: smarter NPC tactics, group coordination, retreat behavior, morale
|
|
310
|
+
- **Voice generation**: more natural NPC voices, emotion control, multi-voice conversations
|
|
321
311
|
- **Built-in chat**: conversation memory across sessions, campaign knowledge base, auto-summarization
|
|
312
|
+
- **Image generation**: consistent character portraits across sessions, style presets
|
|
322
313
|
- **MCP**: faster tool execution, better multi-step task handling, richer feedback to clients
|
|
323
314
|
|
|
324
|
-
### Bug Fixes & Stability
|
|
325
|
-
|
|
326
|
-
Active bug triage through the [Discord](https://discord.gg/3633wB9yp). Foundry version compatibility (v13, v14, and future releases) is always a priority.
|
|
327
|
-
|
|
328
315
|
## Feedback
|
|
329
316
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
- Join the [Discord](https://discord.gg/3633wB9yp)
|
|
317
|
+
Join the [Discord](https://discord.gg/3633wB9yp) - bug reports, feature ideas, or just tell me about the weird thing the AI did to your goblin encounter.
|
|
333
318
|
|
|
334
319
|
## License
|
|
335
320
|
|
|
336
|
-
Familiar is licensed under the [PolyForm Shield License 1.0.0](https://polyformproject.org/licenses/shield/1.0.0/). You can use, read, and modify the software freely, but you may not use it to build a competing product. See [LICENSE](LICENSE) for the full text.
|
|
321
|
+
Familiar is licensed under the [PolyForm Shield License 1.0.0](https://polyformproject.org/licenses/shield/1.0.0/). You can use, read, and modify the software freely, but you may not use it to build a competing product. See [LICENSE](https://github.com/Ryanjansen92/familiar-releases/blob/main/LICENSE) for the full text.
|
|
337
322
|
|
|
338
323
|
<div align="center">
|
|
339
324
|
|