Delete ip_adapter_workflow.json
Browse files- ip_adapter_workflow.json +0 -728
ip_adapter_workflow.json
DELETED
@@ -1,728 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"last_node_id": 36,
|
3 |
-
"last_link_id": 76,
|
4 |
-
"nodes": [
|
5 |
-
{
|
6 |
-
"id": 6,
|
7 |
-
"type": "EmptyLatentImage",
|
8 |
-
"pos": [
|
9 |
-
553,
|
10 |
-
475
|
11 |
-
],
|
12 |
-
"size": {
|
13 |
-
"0": 315,
|
14 |
-
"1": 106
|
15 |
-
},
|
16 |
-
"flags": {},
|
17 |
-
"order": 0,
|
18 |
-
"mode": 0,
|
19 |
-
"outputs": [
|
20 |
-
{
|
21 |
-
"name": "LATENT",
|
22 |
-
"type": "LATENT",
|
23 |
-
"links": [
|
24 |
-
75
|
25 |
-
],
|
26 |
-
"shape": 3,
|
27 |
-
"slot_index": 0
|
28 |
-
}
|
29 |
-
],
|
30 |
-
"properties": {
|
31 |
-
"Node name for S&R": "EmptyLatentImage"
|
32 |
-
},
|
33 |
-
"widgets_values": [
|
34 |
-
1024,
|
35 |
-
1024,
|
36 |
-
1
|
37 |
-
]
|
38 |
-
},
|
39 |
-
{
|
40 |
-
"id": 19,
|
41 |
-
"type": "CLIPTextEncodeFlux",
|
42 |
-
"pos": [
|
43 |
-
142,
|
44 |
-
288
|
45 |
-
],
|
46 |
-
"size": {
|
47 |
-
"0": 400,
|
48 |
-
"1": 200
|
49 |
-
},
|
50 |
-
"flags": {},
|
51 |
-
"order": 10,
|
52 |
-
"mode": 0,
|
53 |
-
"inputs": [
|
54 |
-
{
|
55 |
-
"name": "clip",
|
56 |
-
"type": "CLIP",
|
57 |
-
"link": 27,
|
58 |
-
"slot_index": 0
|
59 |
-
}
|
60 |
-
],
|
61 |
-
"outputs": [
|
62 |
-
{
|
63 |
-
"name": "CONDITIONING",
|
64 |
-
"type": "CONDITIONING",
|
65 |
-
"links": [
|
66 |
-
26
|
67 |
-
],
|
68 |
-
"shape": 3,
|
69 |
-
"slot_index": 0
|
70 |
-
}
|
71 |
-
],
|
72 |
-
"properties": {
|
73 |
-
"Node name for S&R": "CLIPTextEncodeFlux"
|
74 |
-
},
|
75 |
-
"widgets_values": [
|
76 |
-
"",
|
77 |
-
"",
|
78 |
-
4
|
79 |
-
]
|
80 |
-
},
|
81 |
-
{
|
82 |
-
"id": 8,
|
83 |
-
"type": "VAELoader",
|
84 |
-
"pos": [
|
85 |
-
1048,
|
86 |
-
347
|
87 |
-
],
|
88 |
-
"size": {
|
89 |
-
"0": 315,
|
90 |
-
"1": 58
|
91 |
-
},
|
92 |
-
"flags": {},
|
93 |
-
"order": 1,
|
94 |
-
"mode": 0,
|
95 |
-
"outputs": [
|
96 |
-
{
|
97 |
-
"name": "VAE",
|
98 |
-
"type": "VAE",
|
99 |
-
"links": [
|
100 |
-
59
|
101 |
-
],
|
102 |
-
"shape": 3,
|
103 |
-
"slot_index": 0
|
104 |
-
}
|
105 |
-
],
|
106 |
-
"properties": {
|
107 |
-
"Node name for S&R": "VAELoader"
|
108 |
-
},
|
109 |
-
"widgets_values": [
|
110 |
-
"ae.safetensors"
|
111 |
-
]
|
112 |
-
},
|
113 |
-
{
|
114 |
-
"id": 35,
|
115 |
-
"type": "FluxLoraLoader",
|
116 |
-
"pos": [
|
117 |
-
1020,
|
118 |
-
-158
|
119 |
-
],
|
120 |
-
"size": {
|
121 |
-
"0": 315,
|
122 |
-
"1": 82
|
123 |
-
},
|
124 |
-
"flags": {},
|
125 |
-
"order": 2,
|
126 |
-
"mode": 0,
|
127 |
-
"inputs": [
|
128 |
-
{
|
129 |
-
"name": "model",
|
130 |
-
"type": "MODEL",
|
131 |
-
"link": null
|
132 |
-
}
|
133 |
-
],
|
134 |
-
"outputs": [
|
135 |
-
{
|
136 |
-
"name": "MODEL",
|
137 |
-
"type": "MODEL",
|
138 |
-
"links": null,
|
139 |
-
"shape": 3
|
140 |
-
}
|
141 |
-
],
|
142 |
-
"properties": {
|
143 |
-
"Node name for S&R": "FluxLoraLoader"
|
144 |
-
},
|
145 |
-
"widgets_values": [
|
146 |
-
"anime_lora.safetensors",
|
147 |
-
1
|
148 |
-
]
|
149 |
-
},
|
150 |
-
{
|
151 |
-
"id": 10,
|
152 |
-
"type": "UNETLoader",
|
153 |
-
"pos": [
|
154 |
-
149,
|
155 |
-
589
|
156 |
-
],
|
157 |
-
"size": {
|
158 |
-
"0": 315,
|
159 |
-
"1": 82
|
160 |
-
},
|
161 |
-
"flags": {},
|
162 |
-
"order": 3,
|
163 |
-
"mode": 0,
|
164 |
-
"outputs": [
|
165 |
-
{
|
166 |
-
"name": "MODEL",
|
167 |
-
"type": "MODEL",
|
168 |
-
"links": [
|
169 |
-
61
|
170 |
-
],
|
171 |
-
"shape": 3,
|
172 |
-
"slot_index": 0
|
173 |
-
}
|
174 |
-
],
|
175 |
-
"properties": {
|
176 |
-
"Node name for S&R": "UNETLoader"
|
177 |
-
},
|
178 |
-
"widgets_values": [
|
179 |
-
"flux1-dev-fp8.safetensors",
|
180 |
-
"fp8_e4m3fn"
|
181 |
-
]
|
182 |
-
},
|
183 |
-
{
|
184 |
-
"id": 3,
|
185 |
-
"type": "XlabsSampler",
|
186 |
-
"pos": [
|
187 |
-
887,
|
188 |
-
57
|
189 |
-
],
|
190 |
-
"size": {
|
191 |
-
"0": 342.5999755859375,
|
192 |
-
"1": 258
|
193 |
-
},
|
194 |
-
"flags": {},
|
195 |
-
"order": 12,
|
196 |
-
"mode": 0,
|
197 |
-
"inputs": [
|
198 |
-
{
|
199 |
-
"name": "model",
|
200 |
-
"type": "MODEL",
|
201 |
-
"link": 62,
|
202 |
-
"slot_index": 0
|
203 |
-
},
|
204 |
-
{
|
205 |
-
"name": "conditioning",
|
206 |
-
"type": "CONDITIONING",
|
207 |
-
"link": 18
|
208 |
-
},
|
209 |
-
{
|
210 |
-
"name": "neg_conditioning",
|
211 |
-
"type": "CONDITIONING",
|
212 |
-
"link": 26
|
213 |
-
},
|
214 |
-
{
|
215 |
-
"name": "latent_image",
|
216 |
-
"type": "LATENT",
|
217 |
-
"link": 75
|
218 |
-
},
|
219 |
-
{
|
220 |
-
"name": "controlnet_condition",
|
221 |
-
"type": "ControlNetCondition",
|
222 |
-
"link": null
|
223 |
-
}
|
224 |
-
],
|
225 |
-
"outputs": [
|
226 |
-
{
|
227 |
-
"name": "latent",
|
228 |
-
"type": "LATENT",
|
229 |
-
"links": [
|
230 |
-
6
|
231 |
-
],
|
232 |
-
"shape": 3
|
233 |
-
}
|
234 |
-
],
|
235 |
-
"properties": {
|
236 |
-
"Node name for S&R": "XlabsSampler"
|
237 |
-
},
|
238 |
-
"widgets_values": [
|
239 |
-
4,
|
240 |
-
"fixed",
|
241 |
-
50,
|
242 |
-
1,
|
243 |
-
3.5,
|
244 |
-
0
|
245 |
-
]
|
246 |
-
},
|
247 |
-
{
|
248 |
-
"id": 32,
|
249 |
-
"type": "LoadFluxIPAdapter",
|
250 |
-
"pos": [
|
251 |
-
313,
|
252 |
-
147
|
253 |
-
],
|
254 |
-
"size": {
|
255 |
-
"0": 315,
|
256 |
-
"1": 106
|
257 |
-
},
|
258 |
-
"flags": {},
|
259 |
-
"order": 4,
|
260 |
-
"mode": 0,
|
261 |
-
"outputs": [
|
262 |
-
{
|
263 |
-
"name": "ipadapterFlux",
|
264 |
-
"type": "IP_ADAPTER_FLUX",
|
265 |
-
"links": [
|
266 |
-
65
|
267 |
-
],
|
268 |
-
"shape": 3,
|
269 |
-
"slot_index": 0
|
270 |
-
}
|
271 |
-
],
|
272 |
-
"properties": {
|
273 |
-
"Node name for S&R": "LoadFluxIPAdapter"
|
274 |
-
},
|
275 |
-
"widgets_values": [
|
276 |
-
"flux-ip-adapter.safetensors",
|
277 |
-
"model.safetensors",
|
278 |
-
"CPU"
|
279 |
-
]
|
280 |
-
},
|
281 |
-
{
|
282 |
-
"id": 5,
|
283 |
-
"type": "CLIPTextEncodeFlux",
|
284 |
-
"pos": [
|
285 |
-
428,
|
286 |
-
-169
|
287 |
-
],
|
288 |
-
"size": {
|
289 |
-
"0": 400,
|
290 |
-
"1": 200
|
291 |
-
},
|
292 |
-
"flags": {},
|
293 |
-
"order": 9,
|
294 |
-
"mode": 0,
|
295 |
-
"inputs": [
|
296 |
-
{
|
297 |
-
"name": "clip",
|
298 |
-
"type": "CLIP",
|
299 |
-
"link": 2,
|
300 |
-
"slot_index": 0
|
301 |
-
}
|
302 |
-
],
|
303 |
-
"outputs": [
|
304 |
-
{
|
305 |
-
"name": "CONDITIONING",
|
306 |
-
"type": "CONDITIONING",
|
307 |
-
"links": [
|
308 |
-
18
|
309 |
-
],
|
310 |
-
"shape": 3,
|
311 |
-
"slot_index": 0
|
312 |
-
}
|
313 |
-
],
|
314 |
-
"properties": {
|
315 |
-
"Node name for S&R": "CLIPTextEncodeFlux"
|
316 |
-
},
|
317 |
-
"widgets_values": [
|
318 |
-
"holding sign with glowing green text \"X-LABS IP Adapter\"",
|
319 |
-
"holding sign with glowing green text \"X-LABS IP Adapter\"",
|
320 |
-
4
|
321 |
-
]
|
322 |
-
},
|
323 |
-
{
|
324 |
-
"id": 27,
|
325 |
-
"type": "ApplyFluxIPAdapter",
|
326 |
-
"pos": [
|
327 |
-
642,
|
328 |
-
248
|
329 |
-
],
|
330 |
-
"size": {
|
331 |
-
"0": 210,
|
332 |
-
"1": 98
|
333 |
-
},
|
334 |
-
"flags": {},
|
335 |
-
"order": 11,
|
336 |
-
"mode": 0,
|
337 |
-
"inputs": [
|
338 |
-
{
|
339 |
-
"name": "model",
|
340 |
-
"type": "MODEL",
|
341 |
-
"link": 61,
|
342 |
-
"slot_index": 0
|
343 |
-
},
|
344 |
-
{
|
345 |
-
"name": "ip_adapter_flux",
|
346 |
-
"type": "IP_ADAPTER_FLUX",
|
347 |
-
"link": 65
|
348 |
-
},
|
349 |
-
{
|
350 |
-
"name": "image",
|
351 |
-
"type": "IMAGE",
|
352 |
-
"link": 73,
|
353 |
-
"slot_index": 2
|
354 |
-
}
|
355 |
-
],
|
356 |
-
"outputs": [
|
357 |
-
{
|
358 |
-
"name": "MODEL",
|
359 |
-
"type": "MODEL",
|
360 |
-
"links": [
|
361 |
-
62
|
362 |
-
],
|
363 |
-
"shape": 3,
|
364 |
-
"slot_index": 0
|
365 |
-
}
|
366 |
-
],
|
367 |
-
"properties": {
|
368 |
-
"Node name for S&R": "ApplyFluxIPAdapter"
|
369 |
-
},
|
370 |
-
"widgets_values": [
|
371 |
-
0.92
|
372 |
-
]
|
373 |
-
},
|
374 |
-
{
|
375 |
-
"id": 29,
|
376 |
-
"type": "ImageCrop",
|
377 |
-
"pos": [
|
378 |
-
-54,
|
379 |
-
53
|
380 |
-
],
|
381 |
-
"size": {
|
382 |
-
"0": 315,
|
383 |
-
"1": 130
|
384 |
-
},
|
385 |
-
"flags": {},
|
386 |
-
"order": 7,
|
387 |
-
"mode": 0,
|
388 |
-
"inputs": [
|
389 |
-
{
|
390 |
-
"name": "image",
|
391 |
-
"type": "IMAGE",
|
392 |
-
"link": 55,
|
393 |
-
"slot_index": 0
|
394 |
-
}
|
395 |
-
],
|
396 |
-
"outputs": [
|
397 |
-
{
|
398 |
-
"name": "IMAGE",
|
399 |
-
"type": "IMAGE",
|
400 |
-
"links": [],
|
401 |
-
"shape": 3,
|
402 |
-
"slot_index": 0
|
403 |
-
}
|
404 |
-
],
|
405 |
-
"properties": {
|
406 |
-
"Node name for S&R": "ImageCrop"
|
407 |
-
},
|
408 |
-
"widgets_values": [
|
409 |
-
1024,
|
410 |
-
512,
|
411 |
-
4,
|
412 |
-
4
|
413 |
-
]
|
414 |
-
},
|
415 |
-
{
|
416 |
-
"id": 33,
|
417 |
-
"type": "ImageScale",
|
418 |
-
"pos": [
|
419 |
-
-80,
|
420 |
-
-148
|
421 |
-
],
|
422 |
-
"size": {
|
423 |
-
"0": 315,
|
424 |
-
"1": 130
|
425 |
-
},
|
426 |
-
"flags": {},
|
427 |
-
"order": 8,
|
428 |
-
"mode": 0,
|
429 |
-
"inputs": [
|
430 |
-
{
|
431 |
-
"name": "image",
|
432 |
-
"type": "IMAGE",
|
433 |
-
"link": 72,
|
434 |
-
"slot_index": 0
|
435 |
-
}
|
436 |
-
],
|
437 |
-
"outputs": [
|
438 |
-
{
|
439 |
-
"name": "IMAGE",
|
440 |
-
"type": "IMAGE",
|
441 |
-
"links": [
|
442 |
-
73
|
443 |
-
],
|
444 |
-
"shape": 3,
|
445 |
-
"slot_index": 0
|
446 |
-
}
|
447 |
-
],
|
448 |
-
"properties": {
|
449 |
-
"Node name for S&R": "ImageScale"
|
450 |
-
},
|
451 |
-
"widgets_values": [
|
452 |
-
"nearest-exact",
|
453 |
-
1024,
|
454 |
-
1024,
|
455 |
-
"disabled"
|
456 |
-
]
|
457 |
-
},
|
458 |
-
{
|
459 |
-
"id": 16,
|
460 |
-
"type": "LoadImage",
|
461 |
-
"pos": [
|
462 |
-
-446,
|
463 |
-
-191
|
464 |
-
],
|
465 |
-
"size": {
|
466 |
-
"0": 315,
|
467 |
-
"1": 314
|
468 |
-
},
|
469 |
-
"flags": {},
|
470 |
-
"order": 5,
|
471 |
-
"mode": 0,
|
472 |
-
"outputs": [
|
473 |
-
{
|
474 |
-
"name": "IMAGE",
|
475 |
-
"type": "IMAGE",
|
476 |
-
"links": [
|
477 |
-
55,
|
478 |
-
72
|
479 |
-
],
|
480 |
-
"shape": 3,
|
481 |
-
"slot_index": 0
|
482 |
-
},
|
483 |
-
{
|
484 |
-
"name": "MASK",
|
485 |
-
"type": "MASK",
|
486 |
-
"links": null,
|
487 |
-
"shape": 3
|
488 |
-
}
|
489 |
-
],
|
490 |
-
"properties": {
|
491 |
-
"Node name for S&R": "LoadImage"
|
492 |
-
},
|
493 |
-
"widgets_values": [
|
494 |
-
"statue.jpg",
|
495 |
-
"image"
|
496 |
-
]
|
497 |
-
},
|
498 |
-
{
|
499 |
-
"id": 4,
|
500 |
-
"type": "DualCLIPLoader",
|
501 |
-
"pos": [
|
502 |
-
-275,
|
503 |
-
322
|
504 |
-
],
|
505 |
-
"size": {
|
506 |
-
"0": 315,
|
507 |
-
"1": 106
|
508 |
-
},
|
509 |
-
"flags": {},
|
510 |
-
"order": 6,
|
511 |
-
"mode": 0,
|
512 |
-
"outputs": [
|
513 |
-
{
|
514 |
-
"name": "CLIP",
|
515 |
-
"type": "CLIP",
|
516 |
-
"links": [
|
517 |
-
2,
|
518 |
-
27
|
519 |
-
],
|
520 |
-
"shape": 3,
|
521 |
-
"slot_index": 0
|
522 |
-
}
|
523 |
-
],
|
524 |
-
"properties": {
|
525 |
-
"Node name for S&R": "DualCLIPLoader"
|
526 |
-
},
|
527 |
-
"widgets_values": [
|
528 |
-
"t5xxl_fp16.safetensors",
|
529 |
-
"clip_l.safetensors",
|
530 |
-
"flux"
|
531 |
-
]
|
532 |
-
},
|
533 |
-
{
|
534 |
-
"id": 36,
|
535 |
-
"type": "PreviewImage",
|
536 |
-
"pos": [
|
537 |
-
1663,
|
538 |
-
-228
|
539 |
-
],
|
540 |
-
"size": {
|
541 |
-
"0": 865.8053588867188,
|
542 |
-
"1": 863.5560913085938
|
543 |
-
},
|
544 |
-
"flags": {},
|
545 |
-
"order": 14,
|
546 |
-
"mode": 0,
|
547 |
-
"inputs": [
|
548 |
-
{
|
549 |
-
"name": "images",
|
550 |
-
"type": "IMAGE",
|
551 |
-
"link": 76,
|
552 |
-
"slot_index": 0
|
553 |
-
}
|
554 |
-
],
|
555 |
-
"properties": {
|
556 |
-
"Node name for S&R": "PreviewImage"
|
557 |
-
}
|
558 |
-
},
|
559 |
-
{
|
560 |
-
"id": 7,
|
561 |
-
"type": "VAEDecode",
|
562 |
-
"pos": [
|
563 |
-
1346,
|
564 |
-
-128
|
565 |
-
],
|
566 |
-
"size": {
|
567 |
-
"0": 210,
|
568 |
-
"1": 46
|
569 |
-
},
|
570 |
-
"flags": {},
|
571 |
-
"order": 13,
|
572 |
-
"mode": 0,
|
573 |
-
"inputs": [
|
574 |
-
{
|
575 |
-
"name": "samples",
|
576 |
-
"type": "LATENT",
|
577 |
-
"link": 6,
|
578 |
-
"slot_index": 0
|
579 |
-
},
|
580 |
-
{
|
581 |
-
"name": "vae",
|
582 |
-
"type": "VAE",
|
583 |
-
"link": 59
|
584 |
-
}
|
585 |
-
],
|
586 |
-
"outputs": [
|
587 |
-
{
|
588 |
-
"name": "IMAGE",
|
589 |
-
"type": "IMAGE",
|
590 |
-
"links": [
|
591 |
-
76
|
592 |
-
],
|
593 |
-
"shape": 3,
|
594 |
-
"slot_index": 0
|
595 |
-
}
|
596 |
-
],
|
597 |
-
"properties": {
|
598 |
-
"Node name for S&R": "VAEDecode"
|
599 |
-
}
|
600 |
-
}
|
601 |
-
],
|
602 |
-
"links": [
|
603 |
-
[
|
604 |
-
2,
|
605 |
-
4,
|
606 |
-
0,
|
607 |
-
5,
|
608 |
-
0,
|
609 |
-
"CLIP"
|
610 |
-
],
|
611 |
-
[
|
612 |
-
6,
|
613 |
-
3,
|
614 |
-
0,
|
615 |
-
7,
|
616 |
-
0,
|
617 |
-
"LATENT"
|
618 |
-
],
|
619 |
-
[
|
620 |
-
18,
|
621 |
-
5,
|
622 |
-
0,
|
623 |
-
3,
|
624 |
-
1,
|
625 |
-
"CONDITIONING"
|
626 |
-
],
|
627 |
-
[
|
628 |
-
26,
|
629 |
-
19,
|
630 |
-
0,
|
631 |
-
3,
|
632 |
-
2,
|
633 |
-
"CONDITIONING"
|
634 |
-
],
|
635 |
-
[
|
636 |
-
27,
|
637 |
-
4,
|
638 |
-
0,
|
639 |
-
19,
|
640 |
-
0,
|
641 |
-
"CLIP"
|
642 |
-
],
|
643 |
-
[
|
644 |
-
55,
|
645 |
-
16,
|
646 |
-
0,
|
647 |
-
29,
|
648 |
-
0,
|
649 |
-
"IMAGE"
|
650 |
-
],
|
651 |
-
[
|
652 |
-
59,
|
653 |
-
8,
|
654 |
-
0,
|
655 |
-
7,
|
656 |
-
1,
|
657 |
-
"VAE"
|
658 |
-
],
|
659 |
-
[
|
660 |
-
61,
|
661 |
-
10,
|
662 |
-
0,
|
663 |
-
27,
|
664 |
-
0,
|
665 |
-
"MODEL"
|
666 |
-
],
|
667 |
-
[
|
668 |
-
62,
|
669 |
-
27,
|
670 |
-
0,
|
671 |
-
3,
|
672 |
-
0,
|
673 |
-
"MODEL"
|
674 |
-
],
|
675 |
-
[
|
676 |
-
65,
|
677 |
-
32,
|
678 |
-
0,
|
679 |
-
27,
|
680 |
-
1,
|
681 |
-
"IP_ADAPTER_FLUX"
|
682 |
-
],
|
683 |
-
[
|
684 |
-
72,
|
685 |
-
16,
|
686 |
-
0,
|
687 |
-
33,
|
688 |
-
0,
|
689 |
-
"IMAGE"
|
690 |
-
],
|
691 |
-
[
|
692 |
-
73,
|
693 |
-
33,
|
694 |
-
0,
|
695 |
-
27,
|
696 |
-
2,
|
697 |
-
"IMAGE"
|
698 |
-
],
|
699 |
-
[
|
700 |
-
75,
|
701 |
-
6,
|
702 |
-
0,
|
703 |
-
3,
|
704 |
-
3,
|
705 |
-
"LATENT"
|
706 |
-
],
|
707 |
-
[
|
708 |
-
76,
|
709 |
-
7,
|
710 |
-
0,
|
711 |
-
36,
|
712 |
-
0,
|
713 |
-
"IMAGE"
|
714 |
-
]
|
715 |
-
],
|
716 |
-
"groups": [],
|
717 |
-
"config": {},
|
718 |
-
"extra": {
|
719 |
-
"ds": {
|
720 |
-
"scale": 0.6727499949325612,
|
721 |
-
"offset": [
|
722 |
-
454.9047202912717,
|
723 |
-
602.847204664566
|
724 |
-
]
|
725 |
-
}
|
726 |
-
},
|
727 |
-
"version": 0.4
|
728 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|