546 lines
17 KiB
Markdown
546 lines
17 KiB
Markdown
# Soigneur
|
||
|
||
## 1. Définition
|
||
Employé spécialisé dans la santé des animaux. Il intervient pour prévenir les maladies, soigner les animaux malades et s'assurer de leur bien-être général. Il est achetable avec des pièces du zoo.
|
||
|
||
## 2. Fonctions
|
||
* **Prévention :** Réduit la probabilité d'apparition de maladies dans les enclos assignés ou proches.
|
||
* **Soin :** Intervient automatiquement sur les animaux malades pour les guérir (durée d'action).
|
||
* **Bien-être :** Augmente légèrement le score de bien-être des animaux.
|
||
|
||
## 3. Icone
|
||
* **Représentation :** Croix verte ou Trousse de secours.
|
||
* **Couleur dominante :** Blanc et Vert.
|
||
|
||
## 4. Interactions
|
||
* **Recrutement :** Via le menu "Employés" contre des pièces.
|
||
* **Assignation :** Peut être assigné à une zone ou un enclos spécifique (drag & drop ou menu contextuel).
|
||
* **Amélioration :** (Optionnel) Formation pour augmenter l'efficacité.
|
||
|
||
## 5. Annexes Techniques
|
||
|
||
### Données (JSON)
|
||
```json
|
||
{
|
||
"employee_id": "healer_01",
|
||
"type": "soigneur",
|
||
"name": "Dr. Doolittle",
|
||
"salary": 50, // Coût par cycle (jour/mois)
|
||
"hire_cost": 500, // Coût d'achat en pièces
|
||
"stats": {
|
||
"speed": 1.0,
|
||
"efficiency": 0.8,
|
||
"range": 5 // Rayon d'action en cases
|
||
},
|
||
"assigned_zone": null // null = tout le zoo, ou ID de zone,
|
||
"iso_x": "integer",
|
||
"iso_y": "integer",
|
||
"z_index": "integer"
|
||
}
|
||
```
|
||
|
||
### Règles Métier
|
||
* Un animal malade non soigné peut mourir ou contaminer les autres.
|
||
* Le soigneur doit se déplacer physiquement (ou virtuellement avec délai) jusqu'à l'enclos.
|
||
* Le coût de recrutement augmente avec le nombre de soigneurs déjà possédés.
|
||
|
||
## 6. Annexes UX/UI
|
||
* **Visuel Carte :** Personnage en blouse blanche avec une mallette.
|
||
* **Feedback :** Icône de croix verte au-dessus de l'animal soigné.
|
||
* **Notification :** "Un animal est malade !" (si pas de soigneur dispo) ou "Animal soigné par [Nom]".
|
||
|
||
## Affichage contextuel (modules)
|
||
Le soigneur sert de personnage contextuel lors des événements de santé animale.
|
||
|
||
### Déclencheurs (exemples)
|
||
| Event | Condition | Effet UI personnage |
|
||
|---|---|---|
|
||
| `ANIMAL_SICK` | animal passe `SICK` | bulle “Maladie détectée” + CTA “Voir animal” |
|
||
| `NO_HEALER_AVAILABLE` | file saturée / absent | bulle “Aucun soigneur dispo” + CTA recruter |
|
||
| `HEALTH_SYSTEM_OVERLOADED` | trop malades | bulle “Système santé saturé” + CTA prioriser zones |
|
||
|
||
|
||
# Annexes UX/UI
|
||
|
||
## 0. Direction Artistique & Vue
|
||
* **Vue** : Isométrique (2.5D).
|
||
* **Style** : Coloré, vivant, détails foisonnants (Réf: IMG_20260303_170253.jpg).
|
||
* **Sprites** : 4 directions.
|
||
* **Interactions** :
|
||
* **Sélection** : Cliquer sur la base de l'élément (ou son sprite principal) pour le sélectionner.
|
||
* **Feedback** : Surbrillance (outline blanc/jaune) au survol de la souris.
|
||
|
||
|
||
## Définition
|
||
|
||
| Champ | Valeur |
|
||
|---|---|
|
||
| Entité | Employé “Soigneur” |
|
||
| Rôle | Prévenir/traiter maladies, stabiliser les états critiques, améliorer bien-être. |
|
||
| Portée | Zone ou enclos assigné + rayon `stats.range`. |
|
||
| Contraintes | Se déplace (coût temps), file de tâches, disponibilité. |
|
||
| Vue | Isométrique 2.5D, sprite 4 directions, hitbox base-sprite. |
|
||
|
||
## Fonctions (tableau détaillé)
|
||
|
||
| Fonction | Déclencheur | Entrées | Sorties | Règles | Observabilité |
|
||
|---|---|---|---|---|---|
|
||
| Prévention maladies | Tick soigneur / tick zoo | `efficiency`, enclos, densité | probas maladies - | Effet plafonné ; dépend propreté enclos | Event `HEALER_PREVENTION_TICK`, métrique “maladies évitées” |
|
||
| Soin automatique | Animal `SICK` | animal, soigneur dispo | état animal amélioré | Priorité: critique > contagieux > léger | Event `HEALER_TREAT_START/END` |
|
||
| Quarantaine (si prévue) | Animal contagieux | enclos, iso | propagation - | nécessite zone dédiée | Event `HEALER_QUARANTINE` |
|
||
| Boost bien-être | Tick | `efficiency` | `wellbeing +` | Bonus léger, cumul limité/jour | Event `HEALER_WELLBEING_TICK` |
|
||
|
||
## Icone de base
|
||
|
||
| Élément | Spécification |
|
||
|---|---|
|
||
| Représentation | Croix verte / trousse de soin |
|
||
| Couleur dominante | Blanc / vert |
|
||
| Variantes | `icon_healer_cross.png`, `icon_healer_bag.png` |
|
||
| États | Badge “occupé” (sablier), “urgence” (rouge), “en pause” (Zzz) |
|
||
|
||
## Interactions (tableau détaillé)
|
||
|
||
| Interaction | Type | Préconditions | Étapes UI | Résultat | Erreurs / Messages |
|
||
|---|---|---|---|---|---|
|
||
| Recruter | Action | coins ≥ `hire_cost` | Menu Employés → Soigneur → Confirmer | entité créée | `INSUFFICIENT_FUNDS`, `EMPLOYEE_CAP_REACHED` |
|
||
| Assigner zone/enclos | Action | zone existe, path possible | Sélection soigneur → “Assigner” → clic zone/enclos | priorité locale | `NO_PATH`, `INVALID_TARGET` |
|
||
| Forcer intervention | Action | animal malade visible | clic animal → “Appeler soigneur” | tâche ajoutée | `NO_HEALER_AVAILABLE` |
|
||
| Former | Action (option) | ressources/temps | panel → “Former” | `efficiency +` | `INSUFFICIENT_FUNDS` |
|
||
| Inspecter file | Consultation | - | panel soigneur | liste tâches + ETA | - |
|
||
|
||
## Annexes Techniques
|
||
|
||
### 1. Données et États (tableau détaillé)
|
||
|
||
| Donnée / État | Type | Exemple | Source | Contraintes |
|
||
|---|---|---|---|---|
|
||
| `employee_id` | string | `healer_01` | DB | unique |
|
||
| `type` | enum | `soigneur` | DB | constante |
|
||
| `salary` | int | 50 | config | coins/jour |
|
||
| `hire_cost` | int | 500 | config | one-shot |
|
||
| `stats.speed` | float | 1.0 | DB | modifie déplacement |
|
||
| `stats.efficiency` | float | 0.8 | DB | [0..1.5] |
|
||
| `stats.range` | int | 5 | DB | [1..10] |
|
||
| `assigned_zone` | uuid/null | null | runtime | null = global |
|
||
| `task_queue` | array | - | runtime | FIFO + priorités |
|
||
| `state` | enum | `IDLE|MOVING|TREATING|BREAK` | runtime | transitions contrôlées |
|
||
| `grid` | object | `{x,y}` | runtime | position |
|
||
| `iso_x/iso_y` | int | - | rendu | projection |
|
||
| `z_index` | int | - | rendu | profondeur |
|
||
| `hitbox` | enum | `base_sprite` | rendu | click base |
|
||
|
||
#### Caractéristiques Initiales (tableau détaillé)
|
||
|
||
| Caractéristique | Valeur initiale | Unité | Notes |
|
||
|---|---:|---|---|
|
||
| Rayon action | 5 | cases | `range` |
|
||
| Efficacité | 0.8 | coef | prévention/soin |
|
||
| Temps soin léger | 2 | min in-game | tâche |
|
||
| Temps soin moyen | 5 | min in-game | tâche |
|
||
| Temps soin critique | 10 | min in-game | tâche |
|
||
| Pause | 15 | min in-game | toutes 4h in-game |
|
||
|
||
#### Scores Initiaux (tableau détaillé)
|
||
|
||
| Score | Valeur initiale | Plage | Impact |
|
||
|---|---:|---|---|
|
||
| Animaux soignés/jour | 0 | 0..∞ | santé globale |
|
||
| Maladies évitées/jour | 0 | 0..∞ | survie |
|
||
| Coût santé/jour | 50 | 0..∞ | dépenses employés |
|
||
|
||
### 2. Cycles de Vie et Apparition (tableau détaillé)
|
||
|
||
| Phase | Déclencheur | Entrées | Sorties | Invariants |
|
||
|---|---|---|---|---|
|
||
| Apparition | embauche | coins | entité | état `IDLE` |
|
||
| Action | détection maladie | animal | tâche | priorité |
|
||
| Pause | fatigue | temps | état `BREAK` | pas de soin |
|
||
| Disparition | licenciement (si prévu) | - | suppression | stop tâches |
|
||
|
||
#### Conditions d'Apparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Achat | coins ≥ `hire_cost` | vrai | création |
|
||
|
||
#### Conditions de Disparition (tableau détaillé)
|
||
|
||
| Condition | Seuil | Opérateur | Résultat |
|
||
|---|---:|---|---|
|
||
| Licenciement | action joueur | vrai | suppression |
|
||
| Zoo supprimé | - | vrai | suppression |
|
||
|
||
#### Hérédité (tableau détaillé)
|
||
|
||
| Élément | Hérité | Règle |
|
||
|---|---|---|
|
||
| `stats` | Oui | persistées |
|
||
| `task_queue` | Non | vidée au reset jour |
|
||
|
||
### 3. Impacts Environnementaux
|
||
|
||
#### Impact Température (tableau détaillé)
|
||
|
||
| Température | Effet | Condition |
|
||
|---|---|---|
|
||
| Extrême | charge + | plus d’animaux critiques |
|
||
| Tempérée | neutre | - |
|
||
|
||
#### Impact Milieu (Biome) (tableau détaillé)
|
||
|
||
| Biome | Effet | Notes |
|
||
|---|---|---|
|
||
| Chemins | déplacement + | visiteurs attirés aux chemins |
|
||
| Boue | déplacement - | pénalité path |
|
||
|
||
#### Impact Saisons (tableau détaillé)
|
||
|
||
| Saison | Effet | Modificateur |
|
||
|---|---|---|
|
||
| Hiver | maladies froid + | tâches + |
|
||
| Été | stress chaleur + | tâches + |
|
||
|
||
#### Impact Heure / Jour-Nuit (tableau détaillé)
|
||
|
||
| Période | Effet | Règle |
|
||
|---|---|---|
|
||
| Jour | soins actifs | - |
|
||
| Nuit | interventions urgentes uniquement | sinon pause |
|
||
|
||
### 4. Impacts Biologiques et Sociaux
|
||
|
||
#### Impact Reproduction (tableau détaillé)
|
||
|
||
| Facteur | Effet sur taux | Condition |
|
||
|---|---|---|
|
||
| Soins réguliers | + | animaux non malades |
|
||
|
||
#### Impact Mort (tableau détaillé)
|
||
|
||
| Cas | Effet | Condition |
|
||
|---|---|---|
|
||
| Animal critique sans soigneur | risque mort + | file saturée |
|
||
| Animal contagieux traité | mortalité - | quarantaine/soin |
|
||
|
||
#### Impact Nourriture (tableau détaillé)
|
||
|
||
| Ressource | Effet | Condition |
|
||
|---|---|---|
|
||
| Nourriture spéciale | soins + efficaces | si buff actif |
|
||
|
||
#### Impact Attractivité(Visiteurs (tableau détaillé)
|
||
|
||
| État | Effet | Condition |
|
||
|---|---|---|
|
||
| Animaux visibles en bonne santé | satisfaction + | enclos propres |
|
||
| Animaux malades visibles | satisfaction - | incidents |
|
||
|
||
#### Impact Attractivité Animaux) (tableau détaillé)
|
||
|
||
| Action | Effet animaux | Condition |
|
||
|---|---|---|
|
||
| Soins | stress - | traitement réussi |
|
||
|
||
#### Impact Valeur (tableau détaillé)
|
||
|
||
| Facteur | Variation | Condition |
|
||
|---|---:|---|
|
||
| Certificat santé | +10% | vente animal si soigné récemment |
|
||
|
||
### 5. Impacts Logistiques et Économiques
|
||
|
||
#### Vitesse (Camion) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Transport animaux malades | interdit | vente/transport bloqué |
|
||
|
||
#### Vitesse (Nurserie) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Urgence bébé | soin possible | nurserie niv 4+ |
|
||
|
||
#### Vitesse (Accueil) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Réception | - | pas d’effet direct |
|
||
|
||
#### Vitesse (Recherche) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Tech médecine | soins + rapides | si débloquée |
|
||
|
||
#### Vitesse (Labo) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| - | aucun | - |
|
||
|
||
#### Vitesse (Visite) (tableau détaillé)
|
||
|
||
| Paramètre | Effet | Condition |
|
||
|---|---|---|
|
||
| Temps visite | + | zoo sain |
|
||
|
||
#### Dépenses (Billeterie) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| - | 0 | - | - |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Vente soins | revenu + | coins | boutique pharmacie (si ajoutée) |
|
||
|
||
#### Dépenses (Visiteurs) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Remboursement | -coins | coins | visiteur choqué |
|
||
|
||
#### Dépenses (Employés) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Salaire | 50 | coins/jour | actif |
|
||
| Formation | 300 | coins | upgrade |
|
||
|
||
#### Dépenses (Boutiques) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Section dupliquée | 0 | - | conservée |
|
||
|
||
#### Dépenses (Nurseries) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Soins bébé | 10 | coins | action “urgence” |
|
||
|
||
#### Dépenses (Nourriture) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Médicaments | 5 | coins/soin | si consommable |
|
||
|
||
#### Dépenses (Acceuil des animaux) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Diagnostic arrivée | 10 | coins | si check santé |
|
||
|
||
#### Dépenses (Camion) (tableau détaillé)
|
||
|
||
| Poste | Coût | Unité | Condition |
|
||
|---|---:|---|---|
|
||
| Transport vers clinique | 100 | coins | si feature externe |
|
||
|
||
#### Trajet Visiteurs
|
||
|
||
##### Trajet Visiteurs vers/depuis la ville (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Ville | Zoo | réputation | soigneur indirect (via santé zoo) |
|
||
|
||
##### Trajet Visiteurs vers/depuis les animaux (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Soigneur | Enclos | tâche | déplacement sur chemins |
|
||
|
||
##### Trajet Visiteurs vers/depuis les boutiques (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Visiteurs | Boutique | santé/incident | achats + |
|
||
|
||
##### Trajet Visiteurs vers/depuis la billeterie (entrées/sorties du zoo) (tableau détaillé)
|
||
|
||
| Source | Destination | Déclencheur | Effet |
|
||
|---|---|---|---|
|
||
| Visiteur mécontent | sortie | incident non résolu | départ + |
|
||
|
||
### 6. Événements
|
||
|
||
#### Événements du Jeu (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Payload | Effet |
|
||
|---|---|---|---|
|
||
| `ANIMAL_SICK` | état maladie | animal_id | alerte |
|
||
| `ANIMAL_HEALED` | fin soin | animal_id | info |
|
||
|
||
#### Événements du Carte (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `HEALER_MOVING` | tâche | rendu déplacement |
|
||
|
||
#### Événements du Zoo (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `HEALTH_SYSTEM_OVERLOADED` | trop malades | alerte |
|
||
|
||
#### Événements du Ville / Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_WORRIED` | animal malade vu | satisfaction - |
|
||
|
||
#### Événements du Visiteur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `VISITOR_REFUND_REQUEST` | très mécontent | remboursement |
|
||
|
||
#### Événements du Joueur (tableau détaillé)
|
||
|
||
| Event | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `PLAYER_CALL_HEALER` | bouton | tâche prioritaire |
|
||
|
||
### 7. Progression
|
||
|
||
#### Tableau des Upgrades (tableau détaillé)
|
||
|
||
| Niveau | Coût | Effet | Débloque |
|
||
|---|---:|---|---|
|
||
| 1 | 0 | prévention base | - |
|
||
| 2 | 1500 | `range` +1 | couverture |
|
||
| 3 | 3000 | `efficiency` +0.1 | soins plus rapides |
|
||
| 4 | 6000 | soins contagieux + | quarantaine (option) |
|
||
|
||
### 8. Logique et Interfaces
|
||
|
||
#### Pseudo-code Impacts (tableau détaillé)
|
||
|
||
| Fonction | Entrées | Sorties | Notes |
|
||
|---|---|---|---|
|
||
| `scan_sick_animals` | zoo state | list | priorités |
|
||
| `enqueue_heal_task` | animal | task | file |
|
||
| `apply_treatment` | animal, efficiency | state | clamp |
|
||
|
||
#### Messages d'Infos / Alerte (tableau détaillé)
|
||
|
||
| ID | Niveau | Message | Condition |
|
||
|---|---|---|---|
|
||
| `NO_HEALER_AVAILABLE` | Alerte | "Aucun soigneur disponible." | file saturée |
|
||
| `ANIMAL_HEALED` | Info | "Animal soigné." | fin soin |
|
||
| `DISEASE_SPREAD` | Warning | "Risque de contagion." | cluster |
|
||
|
||
## Annexes UX/UI
|
||
|
||
### 1. Expérience Utilisateur (UX)
|
||
|
||
#### Description UX (tableau détaillé)
|
||
|
||
| Parcours | But | Friction | Réduction clics |
|
||
|---|---|---|---|
|
||
| Recruter | diminuer morts | coût | bouton recruter direct |
|
||
| Traiter urgence | sauver animal | localisation | deep-link depuis notif |
|
||
|
||
#### Description UI (tableau détaillé)
|
||
|
||
| Composant | Contenu | États |
|
||
|---|---|---|
|
||
| Panel soigneur | file tâches, range | IDLE/MOVING/TREATING |
|
||
| Badge maladie | icône croix/virus | levels |
|
||
|
||
#### Emplacement (tableau détaillé)
|
||
|
||
| Zone UI | Position | Notes |
|
||
|---|---|---|
|
||
| Carte | sprite soigneur | sélection base |
|
||
| Panel animal | bouton “Appeler” | urgence |
|
||
|
||
#### Intégration (tableau détaillé)
|
||
|
||
| Intégration | Contrat | Notes |
|
||
|---|---|---|
|
||
| États animaux | `SICK/CRITICAL` | pas de fallback |
|
||
| Notifications | push HUD | - |
|
||
|
||
#### Navigation (tableau détaillé)
|
||
|
||
| Action | Chemin | Résultat |
|
||
|---|---|---|
|
||
| Ouvrir panel | clic soigneur | panel |
|
||
| Appeler | clic animal → bouton | tâche |
|
||
|
||
#### Événements (tableau détaillé)
|
||
|
||
| Event UI | Déclencheur | Effet |
|
||
|---|---|---|
|
||
| `OPEN_HEALER_PANEL` | clic | panel |
|
||
| `CLICK_CALL_HEALER` | bouton | tâche |
|
||
|
||
#### Assets Skinables
|
||
|
||
##### Musiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée | Notes |
|
||
|---|---|---:|---|
|
||
| `clinic_soft_loop.mp3` | ambiance soin | loop | discret |
|
||
|
||
##### Sons (tableau détaillé)
|
||
|
||
| Asset | Usage | Volume |
|
||
|---|---|---|
|
||
| `ui_alert_med.mp3` | alerte maladie | moyen |
|
||
| `heal_success.mp3` | fin soin | faible |
|
||
|
||
##### Graphiques (tableau détaillé)
|
||
|
||
| Asset | Usage | Contraintes |
|
||
|---|---|---|
|
||
| `healer_sprite_[dir].png` | sprite | 4 dirs |
|
||
| `fx_green_cross.png` | FX | overlay |
|
||
|
||
##### Images (tableau détaillé)
|
||
|
||
| Asset | Usage |
|
||
|---|---|
|
||
| `icon_healer_cross.png` | HUD |
|
||
| `portrait_healer.png` | panel |
|
||
|
||
##### Vidéos (tableau détaillé)
|
||
|
||
| Asset | Usage | Durée |
|
||
|---|---|---:|
|
||
| `heal_popup.webm` | popup | 1.0s |
|
||
|
||
##### Animations (tableau détaillé)
|
||
|
||
| Animation | Déclencheur | Notes |
|
||
|---|---|---|
|
||
| pulsation croix | animal malade | loop |
|
||
| sparkles verts | soin | burst |
|
||
|
||
##### Couleurs (tableau détaillé)
|
||
|
||
| Token | Valeur | Usage |
|
||
|---|---|---|
|
||
| `healer_primary` | #2ECC71 | UI |
|
||
| `healer_alert` | #E74C3C | urgence |
|
||
|
||
##### Textes (tableau détaillé)
|
||
|
||
| Clé | FR | EN |
|
||
|---|---|---|
|
||
| `healer.call` | Appeler le soigneur | Call healer |
|
||
| `healer.busy` | Soigneur occupé | Healer busy |
|
||
|
||
##### Formes (tableau détaillé)
|
||
|
||
| Élément | Forme | Notes |
|
||
|---|---|---|
|
||
| Badge maladie | rond | lisible |
|
||
| Barre santé | rectangulaire | standard |
|