20.0.2 disponible

Démarré par gibus, Janvier 27, 2020, 15:15:23

« précédent - suivant »

coval95

Citation de: Samoreen le Janvier 30, 2020, 18:01:08
Désolé. C'est pour ça que j'avais ajouté une petite note complémentaire.

Donc, ça n'est pas un problème de version de Windows, ce n'est pas un problème de version de la DLL et ce n'est pas un problème lié au fichier de configuration. Il reste 2 possibilités :

1. Un bug C1 (mais là, on ne peut qu'attendre).
2. Un problème de mise à jour du Framework .Net sur le système OU un problème de compatibilité avec la version du Framework .Net utilisé pour compiler la DLL. La vérification des versions de .Net installées sur le système relevant de manipulations ésotériques, je ne vais pas vous embêter avec ça. En ce qui me concerne, je suis à jour concernant .Net.

Visiblement, il y a déjà plusieurs utilisateurs concernés qui ont rapporté le bug, ça devrait donc bouger. Pour une fois, le bug est chez les autres et pas chez moi. Je n'en reviens pas encore. Fin d'une légende ;D .
- "Un problème de mise à jour du Framework .Net sur le système" : pour rappel, lors de mon premier essai, j'étais encore en Win 10 V1903.
   Quand j'ai fait la MAJ facultative vers Win 10 V1909, j'ai eu aussi une MAJ cumulative pour .Net Framework 3.5 et 4.8 (KB4534132). Donc à mon second essai, j'avais la dernière MAJ.
   Cela veut dire que j'ai essayé (sans succès) avant ET après cette MAJ de .Net Framework.

- "un problème de compatibilité avec la version du Framework .Net utilisé pour compiler la DLL" : en remplaçant la dernière version du plugin par la précédente, j'ai remis l'ancienne DLL qui fonctionne avec C1 V20.0.0 et qui est donc compatible avec la version de .Net Framework qui est installée sur mon PC.

- la version de .Net Framework qui est installée sur mon PC est la V4.5 (d'après l'utilitaire Windows de gestion des applications qui se trouve dans Paramètres).

Et si c'est un bug dans C1 pourquoi ça marche chez toi ?  ???

Samoreen

Citation de: coval95 le Janvier 30, 2020, 20:56:16
Mais il me semble qu'à chaque installation de C1, ça commence par une MAJ de.net framework...

Oui mais lors de ma dernière mise à jour Windows qui remonte à 2 ou 3 jours, il y a eu une mise à jour .Net. On ne sait jamais. Je ne suis pas plus convaincu que ça mais il y a bien une raison pour laquelle ça fonctionne chez moi.
Patrick

coval95

Citation de: Samoreen le Janvier 30, 2020, 22:19:05
Oui mais lors de ma dernière mise à jour Windows qui remonte à 2 ou 3 jours, il y a eu une mise à jour .Net. On ne sait jamais. Je ne suis pas plus convaincu que ça mais il y a bien une raison pour laquelle ça fonctionne chez moi.
Oui, cf mon post juste au-desus.  ;)

Samoreen

Citation de: coval95 le Janvier 30, 2020, 22:17:45
Et si c'est un bug dans C1 pourquoi ça marche chez toi ?  ???

Là, on en revient aux considérations pour lesquelles je me fais régulièrement allumer sur ce forum. Quand il y a un bug, il est là pour tout le monde. Nous partageons tous, à version égale, le même code. Ce qui fait qu'un bug apparaît ou non pour un utilisateur donné dépend de plusieurs facteurs :

- Comportement de l'utilisateur, manière dont il utilise le logiciel
- Type de données soumises au logiciel
- Configuration logicielle et hardware.
- Réglages de sécurité de l'utilisateur courant
- Autres logiciels installés.

Je mets de côté les habituels cas de fichiers corrompus, installation qui s'est mal déroulée, matériel déficient, etc. qui ont finalement une probabilité assez faible.

Par exemple, quand OpenWith est chargé, il part dans l'inventaire des logiciels installés qui peuvent traiter une certaine liste de type de fichiers (liste d'extension codée en dur). Ça, je le vois très bien en monitorant le lancement de C1. C'est une manière de faire absolument déconnante mais c'est comme ça. C1 va chercher tout ça dans la registry. Il se peut très bien qu'une des applications en question pose problème ou que les infos de la registry relatives à cette application posent désormais un problème particulier. Et de toute évidence, la liste des applications concernées varie d'un utilisateur à l'autre, ainsi que l'ordre dans lequel elles sont détectées. C'est juste un exemple.

Un autre exemple : chez moi, Photoshop et Lightroom refusent de s'exécuter s'ils ne sont pas lancés en tant qu'administrateur. Je n'ai jamais compris pourquoi. De nombreux utilisateurs ont ce problème et ça dure depuis plusieurs années. Tiens, on pourrait tester ça ( [at] coval : inutile de se lancer dans une nouvelle réinstallation, j'ai proposé ce test ailleurs).

Pendant que j'y pense, il faudrait regarder ce qu'il y a dans les logs : C:\Users\<user>\AppData\Local\CaptureOne\Logs, en particulier C:\Users\<user>\AppData\Local\CaptureOne\Logs\Plugins\com.phaseone.openwith.log. J'ai l'habitude de lire ces choses-là. Si quelqu'un veut bien me zipper tout ça, je jetterai un œil.
Patrick

Samoreen

Eh bien, j'aurais dû regarder plus tôt dans ces logs. Bien que je ne sois pas victime du problème OpenWith, je vois dans le log du susdit une série d'anomalies relatives aux plugins (en fait le seul qui soit installé chez moi : OpenWith) qui apparaissent à chaque lancement de C1 et ce, immédiatement après l'installation de la version 20 et des 2 releases suivantes. Ces anomalies persistent encore aujourd'hui. Chez moi ça ne provoque pas de plantage du plugin mais il serait intéressant de voir ce qui se passe sur d'autres systèmes.
Patrick

coval95

En effet, je n'avais pas pensé non plus à regarder dans les logs.  :-[

J'ai encore la V20.0.2 installée et j'ai remis son répertoire OpenWith associé. Quand je lance C1, j'obtiens ceci (je ne reproduis que la fin de la section, les lignes relatives à l'exception) :
"...
[2020-01-30 23:18:17.396][082][ID:001,           ]{PLUG } | Exception of Type : System.Reflection.TargetInvocationException
                                                        **| Message : Une exception a été levée par la cible d'un appel.
[2020-01-30 23:18:17.396][000][ID:001,           ]{PLUG } | Exception of Type : System.InvalidCastException
                                                        **| Message : Impossible d'effectuer un cast d'un objet de type 'System.String[]' en type 'System.String'.
[2020-01-30 23:18:17.396][000][ID:001,           ]{PLUG } | Plugin exiting"

Avec le plugin de C1 V20.0.0 copié sous C1 V20.0.2 j'avais aussi une exception mais différente, il ne trouvait pas un fichier :
"...
[2020-01-30 16:54:21.127][111][ID:001,           ]{PLUG } | Exception of Type : System.Reflection.TargetInvocationException
                                                        **| Message : Une exception a été levée par la cible d'un appel.
[2020-01-30 16:54:21.127][000][ID:001,           ]{PLUG } | Exception of Type : System.IO.FileNotFoundException
                                                        **| Message : Impossible de charger le fichier ou l'assembly 'P1.C1.Framework, Version=13.0.0.155, Culture=neutral, PublicKeyToken=xxx' ou une de ses dépendances. Le fichier spécifié est introuvable.
[2020-01-30 16:54:21.127][000][ID:001,           ]{PLUG } | Plugin exiting"
(NB j'ai modifié la valeur de PublicKeyToken).

coval95

Citation de: Samoreen le Janvier 30, 2020, 23:12:34
Eh bien, j'aurais dû regarder plus tôt dans ces logs. Bien que je ne sois pas victime du problème OpenWith, je vois dans le log du susdit une série d'anomalies relatives aux plugins (en fait le seul qui soit installé chez moi : OpenWith) qui apparaissent à chaque lancement de C1 et ce, immédiatement après l'installation de la version 20 et des 2 releases suivantes. Ces anomalies persistent encore aujourd'hui. Chez moi ça ne provoque pas de plantage du plugin mais il serait intéressant de voir ce qui se passe sur d'autres systèmes.
Eh bien je suis remontée dans le log aux événements qui ont juste précédé l'installation de C1 V20.0.2 et tout se passait très bien, avec la V20.0.0, il n'y avait aucune exception !

Merci pour la suggestion du log. Je vais pouvoir mettre l'extrait dans mon ticket au support de Capture One !  :)

Samoreen

Citation de: coval95 le Janvier 30, 2020, 23:32:18
"...
[2020-01-30 23:18:17.396][082][ID:001,           ]{PLUG } | Exception of Type : System.Reflection.TargetInvocationException
                                                        **| Message : Une exception a été levée par la cible d'un appel.
[2020-01-30 23:18:17.396][000][ID:001,           ]{PLUG } | Exception of Type : System.InvalidCastException
                                                        **| Message : Impossible d'effectuer un cast d'un objet de type 'System.String[]' en type 'System.String'.
[2020-01-30 23:18:17.396][000][ID:001,           ]{PLUG } | Plugin exiting"

A priori, c'est donc bien un bug. La 2ème ligne du message indique une tentative de transformation d'un tableau de chaînes de caractères en une simple chaîne de caractères. Ce qui indique une erreur de codage quelque part. Le programme attend visiblement une chaîne de caractères unique mais une opération précédente a retourné plusieurs valeurs de type chaîne sous forme de tableau.
Patrick

Samoreen

Chez moi, bien que le plugin ne plante pas, je vois dans le log des trucs absolument aberrants. Par exemple :

[2020-01-30 10:15:06.054][985][ID:014,           ]{PLUG } | path - System.IO.FileNotFoundException: C:\Program Files\Phase One\Capture One 20\Plugins\OpenWith\firefox.exe
                                                        **|    at System.Drawing.Icon.ExtractAssociatedIcon(String filePath, Int32 index)
                                                        **|    at BuiltInOpenWithPlugin.BuiltInOpenWithPlugin.GetAssociatedIconFromPath(String argPath)


Ce qui indique qu'à un moment donné, le plugin a cherché firefox.exe dans le répertoire du plugin OpenWith ? ? ? Bien évidemment, ça n'a pas fonctionné. Mais a priori, cette exception a été interceptée et traitée. Le plugin a donc continué à fonctionner. À d'autres moments, j'ai la même erreur avec architect.exe (PDF Architect), mon éditeur de PDF.

Cela ne fait que confirmer ce que j'ai déjà observé en monitorant C1 au démarrage. La manière dont la liste des programmes à afficher quand on ouvre le menu Edit with... / Open with... est constituée est absolument hallucinante. Et consommatrice de temps. Ça n'a aucun sens. Je suis sûr que si on remplaçait cette abomination par quelque chose de plus sain ressemblant à ce que fait Lightroom (c'est l'utilisateur qui définit les programmes cible et les paramètres d'export), on réduirait de manière notable le temps de chargement.
Patrick

Samoreen

Citation de: coval95 le Janvier 30, 2020, 23:32:18
Avec le plugin de C1 V20.0.0 copié sous C1 V20.0.2 j'avais aussi une exception mais différente, il ne trouvait pas un fichier :
"...
[2020-01-30 16:54:21.127][111][ID:001,           ]{PLUG } | Exception of Type : System.Reflection.TargetInvocationException
                                                        **| Message : Une exception a été levée par la cible d'un appel.
[2020-01-30 16:54:21.127][000][ID:001,           ]{PLUG } | Exception of Type : System.IO.FileNotFoundException
                                                        **| Message : Impossible de charger le fichier ou l'assembly 'P1.C1.Framework, Version=13.0.0.155, Culture=neutral, PublicKeyToken=xxx' ou une de ses dépendances. Le fichier spécifié est introuvable.
[2020-01-30 16:54:21.127][000][ID:001,           ]{PLUG } | Plugin exiting"

Là, l'exception est normale parce que les numéros de version ne correspondent pas. Le framework .Net est assez intransigeant là-dessus, sauf spécification contraire dans le fichier manifest.

Si ce n'est ni indiscret, ni trop consommateur de temps, je suis intéressé par le fichier log complet de OpenWith.
Patrick

doppelganger

Citation de: Samoreen le Janvier 31, 2020, 09:30:29
Chez moi, bien que le plugin ne plante pas, je vois dans le log des trucs absolument aberrants. Par exemple :

[2020-01-30 10:15:06.054][985][ID:014,           ]{PLUG } | path - System.IO.FileNotFoundException: C:\Program Files\Phase One\Capture One 20\Plugins\OpenWith\firefox.exe
                                                        **|    at System.Drawing.Icon.ExtractAssociatedIcon(String filePath, Int32 index)
                                                        **|    at BuiltInOpenWithPlugin.BuiltInOpenWithPlugin.GetAssociatedIconFromPath(String argPath)


Ce qui indique qu'à un moment donné, le plugin a cherché firefox.exe dans le répertoire du plugin OpenWith ? ? ? Bien évidemment, ça n'a pas fonctionné. Mais a priori, cette exception a été interceptée et traitée. Le plugin a donc continué à fonctionner. À d'autres moments, j'ai la même erreur avec architect.exe (PDF Architect), mon éditeur de PDF.

Cela ne fait que confirmer ce que j'ai déjà observé en monitorant C1 au démarrage. La manière dont la liste des programmes à afficher quand on ouvre le menu Edit with... / Open with... est constituée est absolument hallucinante. Et consommatrice de temps. Ça n'a aucun sens. Je suis sûr que si on remplaçait cette abomination par quelque chose de plus sain ressemblant à ce que fait Lightroom (c'est l'utilisateur qui définit les programmes cible et les paramètres d'export), on réduirait de manière notable le temps de chargement.

Tu devrais "coder" le correctif (demande leur le code source avant...) et l'envoyer à Phase One...  ::)

doppelganger

Citation de: Samoreen le Janvier 31, 2020, 09:16:40
A priori, c'est donc bien un bug. La 2ème ligne du message indique une tentative de transformation d'un tableau de chaînes de caractères en une simple chaîne de caractères. Ce qui indique une erreur de codage quelque part. Le programme attend visiblement une chaîne de caractères unique mais une opération précédente a retourné plusieurs valeurs de type chaîne sous forme de tableau.

Cool  8)

On fait quoi maintenant ?

Samoreen

Les chiens aboient, la caravane passe.
Les chats miaulent, la caravane passe.

Les paons criaillent, la caravane s'arrête puis repart.

Les mésanges zinzinulent, la caravane passe.
Le renard glapit, la caravane passe.

Les perroquets craquent, la caravane s'arrête puis repart.

Le lion rugit, la caravane passe.
Le cheval hennit, la caravane passe.

Les ânes braient, la caravane s'arrête puis repart,
Vers des horizons nouveaux...
Les dromadaires désormais bâtés
De paniers de suffisance,
D'outres enflées de vide,
Et de sacoches bourrées de bêtise.

Guy Bellinger
Patrick

coval95

Citation de: doppelganger le Janvier 31, 2020, 18:35:46
Cool  8)

On fait quoi maintenant ?
On attend que Phase One sorte une version corrigée.  ::)

Pour info, j'ai enregistré une requête la nuit dernière chez Phase One, avec un titre très explicite. J'ai intégré l'extrait de log comme ci-dessus. Eh bien pour la première fois depuis que je signale des bugs de Capture One, j'ai obtenu une réponse en moins de 24 heures ! Du jamais vu* !  :o

Le gars me dit qu'en effet il "semble" y avoir un bug (j'aime bien l'euphémisme  :D) et qu'il a transmis à l'équipe de développement.

On croise les doigts...  8)

* j'ai déposé une autre requête 20 minutes plus tard, bizarrement à celle-là je n'ai pas eu de réponse et surtout je n'ai eu à ce jour aucune réponse à ma requête du 16 décembre.

Autant dire que, même débordés, ils doivent se sentir concernés par ce "petit" problème de plugin OpenWith.

doppelganger

Citation de: Samoreen le Janvier 31, 2020, 22:33:38
Les chiens aboient, la caravane passe.
Les chats miaulent, la caravane passe.

Les paons criaillent, la caravane s'arrête puis repart.

Les mésanges zinzinulent, la caravane passe.
Le renard glapit, la caravane passe.

Les perroquets craquent, la caravane s'arrête puis repart.

Le lion rugit, la caravane passe.
Le cheval hennit, la caravane passe.

Les ânes braient, la caravane s'arrête puis repart,
Vers des horizons nouveaux...
Les dromadaires désormais bâtés
De paniers de suffisance,
D'outres enflées de vide,
Et de sacoches bourrées de bêtise.

Guy Bellinger

Chante beau merle. Mais stop aux conneries (comparaison "binaire" de dll et autres absurdités). T'es un charlot de première.

doppelganger

Citation de: coval95 le Janvier 31, 2020, 22:43:41
On attend que Phase One sorte une version corrigée.  ::)

Si cela peut te rassurer, ça fonctionne très bien chez moi, aussi bien sur W7 que sur W10 (1809). Sur W10, j'ai la version 4.8 (release 528049 ) du .net framework.

doppelganger

Depuis 1 ans, j'ai eu droit à :

- 11 maj du .NET Framework versions 3.5, 4.7.2 et 4.8
- 15 maj pour W18 v1809

Si avec tout ça vous n'arrivez toujours pas à comprendre à quel point il est difficile de proposer un logiciel qui "passe" pour 100% des utilisateurs...

coval95

Citation de: doppelganger le Janvier 31, 2020, 23:11:00
Si cela peut te rassurer, ça fonctionne très bien chez moi, aussi bien sur W7 que sur W10 (1809). Sur W10, j'ai la version 4.8 (release 528049 ) du .net framework.
Ben ça me fait une belle jambe que ça marche chez toi ! Chez Samoreen aussi ça marche, ça ne l'a pas empêché d'essayer de m'aider. C'est grâce à sa suggestion que j'ai intégré le log dans ma requête.
Et compte tenu de la promptitude avec laquelle le support m'a répondu, je pense que l'extrait de log n'est pas étranger à leur intérêt.

Dans le fil dédié sur le forum Phase One, 2 personnes disent avoir déposé une requête. L'une des 2 a dit qu'elle n'avait toujours pas de réponse au bout de plusieurs jours, l'autre a dit que le support l'avait renvoyée vers le fil dédié.
En leur mettant l'extrait de log, j'ai apporté la preuve qu'il y avait un bug et je leur ai donné des billes pour l'analyser. Je pense que c'est ça qui les a fait bouger rapidement...

Je me fais peut-être des illusions mais j'ai bon espoir que le problème soit réglé rapidement.

Citation de: doppelganger le Janvier 31, 2020, 23:21:07
Depuis 1 ans, j'ai eu droit à :

- 11 maj du .NET Framework versions 3.5, 4.7.2 et 4.8
- 15 maj pour W18 v1809

Si avec tout ça vous n'arrivez toujours pas à comprendre à quel point il est difficile de proposer un logiciel qui "passe" pour 100% des utilisateurs...
Et quand tu as dit ça, on fait quoi ?

doppelganger

Citation de: coval95 le Janvier 31, 2020, 23:55:22
Ben ça me fait une belle jambe que ça marche chez toi ! Chez Samoreen aussi ça marche, ça ne l'a pas empêché d'essayer de m'aider. C'est grâce à sa suggestion que j'ai intégré le log dans ma requête.

Et je fais quoi, à part te donner des pistes de réflexion, en t'indiquant les versions des OS et framework ??!

Citation de: coval95 le Janvier 31, 2020, 23:55:22
Je me fais peut-être des illusions mais j'ai bon espoir que le problème soit réglé rapidement.
Et quand tu as dit ça, on fait quoi ?

Surtout ne change rien et oublie tout ça.

Bon courage.

opal

Bonjour à tous,

Alors, j'ai la version 20.0.2, j'en suis satisfait, sauf que....il y a trois jours j'ai acheté un Nikon D780, et qu'il n'est pas encore pris en compte, c'est curieux car il semblerait que c'est le même capteur que le Z6.


doppelganger

Citation de: opal le Février 01, 2020, 09:20:16
Bonjour à tous,

Alors, j'ai la version 20.0.2, j'en suis satisfait, sauf que....il y a trois jours j'ai acheté un Nikon D780, et qu'il n'est pas encore pris en compte, c'est curieux car il semblerait que c'est le même capteur que le Z6.

Bonjour,

Ce n'est pas parce qu'un boitier est équipé du même capteur qu'un autre qu'il en génère des fichiers raw identiques. Et quand bien même ce serait le cas, un dérawtiseur à besoin d'un profil ICC (ou équivalent) associé à ton modèle de boitier. Pour le confectionner, il faut avoir le boitier à disposition. Il en va du bon vouloir de l'éditeur mais surtout, de la bonne volonté du fabriquant de l'appareil en question pour que les choses bougent rapidement.

Dans le genre coopération qui fonctionne pas mal, celle entre Phase One et Fuji. Le X-Pro3 était pris en charge avant (plusieurs semaines) même la sortie du boitier.

Samoreen

Une précision destinée à ceux qui ne connaissent pas le framework .Net et la manière dont il fonctionne. Si cela peut aider à comprendre certains comportements...

Contrairement à ce qui se passait auparavant dans l'environnement Windows avec des technologies de composants anciennes (mais toujours actives) comme les "ActiveX controls" et autres composants COM, la plate-forme .Net effectue un contrôle strict des versions, à la fois pour la plateforme .Net elle-même, pour les programmes et les composants/modules annexes. Ce contrôle implique par défaut un certain nombre de règles.

- Il peut exister sur un même système plusieurs versions différentes du framework .Net.

- Si un programme est développé pour une certaine version du framework et si cette version n'est pas présente sur le système, le programme ne s'exécutera pas.

- Si un programme a été écrit pour travailler avec une certaine version d'un module externe à l'exe (DLL), ce module externe ne pourra pas être chargé (sauf spécifications contraires) si la version ciblée n'est pas présente. Il peut donc exister plusieurs versions d'un même module sur un système. Par défaut, le programme ne pourra travailler qu'avec la version pour laquelle il a été compilé. On a vu plus haut, par exemple, que remplacer dans la version 20.0.2 la version installée du plugin OpenWith par la version qui est installée avec la version 20.0.0 de C1 ne fonctionne pas.

- Il est possible de lever certaines de ces contraintes par modification du fichier manifeste accompagnant le programme. Cette modification peut-être faite soit par le développeur (le manifeste prévoit donc déjà, dès l'installation une application plus souple de ces règles), soit par l'utilisateur s'il est conscient de ce que ces modifications impliquent.

Si on reste dans le cadre d'une application stricte des règles ci-dessus, un programme donné ne peut donc s'exécuter que si la version requise du framework est présente (ce que normalement le programme d'installation vérifie). Il en va de même pour les composants externes qu'il utilise. La multiplicité des versions installées du framework n'est donc en aucun cas un problème. Au contraire, cela garantit que l'exécution se déroule dans un environnement connu au moment du développement. Plusieurs programmes basés sur le framework .Net peuvent donc s'exécuter simultanément, chacun utilisant la version du framework qui lui convient.

Par contre, les mises à jour de Windows lui-même peuvent induire une implémentation différente de certaines APIs (fonctions système) et cette modification est un remplacement (il n'y a pas plusieurs versions disponibles simultanément). Le changement s'applique donc, dès la mise à jour, à toutes les applications utilisant cette API et il peut entraîner des dysfonctionnements. Le changement en question peut être volontaire et documenté ou bien être la conséquence d'un bug. Ce type de modification de l'environnement peut donc effectivement être source de problèmes et représente une contrainte à gérer pour le développeur.
Patrick

Odysseus

 [at] Samoreen

J'admire votre patience, pédagogique.

Pour ceux qui veulent comprendre à quoi sert le travail de Samoreen il faut bien comprendre que devant un bug les équipes de développement sont assez démunies.

La première difficulté étant de reproduire le bug, ce qui n'est pas toujours facile hors contexte, puis de l'analyser, dés lors qu'un utilisateur averti vous met sur la voie le travail s'en trouve facilité.

Merci du boulot


doppelganger

#48
Citation de: Odysseus le Février 01, 2020, 15:08:39
[at] Samoreen

J'admire votre patience, pédagogique.

Pour ceux qui veulent comprendre à quoi sert le travail de Samoreen il faut bien comprendre que devant un bug les équipes de développement sont assez démunies.

La première difficulté étant de reproduire le bug, ce qui n'est pas toujours facile hors contexte, puis de l'analyser, dés lors qu'un utilisateur averti vous met sur la voie le travail s'en trouve facilité.

Merci du boulot

En fait, non. Ce que raconte l'expert en consulting ne sont que des généralités (en plus d'être bien trop vagues et à moitié bidon), tout juste bonne à impressionner les non initiés. Et absolument hors sujet. Y'a une section plus appropriée pour vos élucubrations.

Ps : Odysseus, compte secondaire de Samoreen ?

Odysseus

Nervous Break Down ?