{
  "date": "2026-10-26",
  "product": "Cour de récré — application web privée de l’école",
  "standard": "WCAG 2.2 niveaux A et AA",
  "status": "Évaluation technique sur un échantillon de rôles, pages et états ; aucune déclaration de conformité globale.",
  "conformityClaim": false,
  "scope": {
    "roles": [
      "parent",
      "enseignant",
      "direction",
      "parent habilité à publier (tests serveur)"
    ],
    "pages": [
      "authentification",
      "invitation et réinitialisation",
      "journal et détail",
      "publications et brouillons",
      "commentaires et récupération",
      "messages",
      "photos et documents",
      "agenda",
      "profil",
      "classes et administration",
      "plan du carnet",
      "erreurs HTTP"
    ],
    "environment": "École fictive locale ; aucune donnée de famille réelle",
    "browsers": [
      "Chromium",
      "Firefox",
      "WebKit",
      "Chromium en émulation mobile"
    ]
  },
  "methods": [
    "Axe avec les règles WCAG 2.0 A/AA, 2.1 A/AA et 2.2 AA sur les états choisis",
    "Parcours clavier et assertions de noms, focus, états, révisions et permissions",
    "Redistribution à 320 pixels CSS, texte à 200 % et espacement de texte augmenté",
    "Tests fonctionnels PHP, qualité statique et mutation sans baisse de seuil",
    "Inspection des rendus capturés et revue des templates et contrôleurs",
    "Mesures des couleurs et de la géométrie pour interpréter les alertes axe indéterminées, sans les convertir automatiquement en réussite"
  ],
  "statusLegend": {
    "verified_sample": "Vérifié dans les états cités ; ne signifie pas conformité exhaustive.",
    "partial": "Couverture partielle ; les limites précisent les capacités absentes, contenus et compatibilités non couverts.",
    "not_applicable": "Fonction absente dans le périmètre explicité.",
    "not_verified": "Vérification humaine ou preuve complémentaire requise."
  },
  "limitations": [
    "Aucun test auditif humain complet NVDA, VoiceOver ou Orca ne peut être déduit des tests automatiques ou de l’arbre d’accessibilité.",
    "Les photos, PDF et textes historiques de chaque école n’ont pas été audités. Une description non vide n’en garantit pas la pertinence.",
    "Les anciens clients natifs restent compatibles ; leurs limites de descriptions photo et de délai étendu sont documentées.",
    "Le viewport de 320 pixels modélise la redistribution à 400 % d’une fenêtre de 1280 pixels ; ce n’est pas une validation de chaque combinaison navigateur, zoom et matériel.",
    "Les erreurs de récupération n’effacent pas la saisie dans l’onglet, mais la fermeture du navigateur ou la perte de son processus ne garantissent pas sa conservation."
  ],
  "criteria": [
    {
      "id": "1.1.1",
      "level": "A",
      "title": "Contenu non textuel",
      "status": "partial",
      "evaluation": "Labels des icônes et alternatives des photos vérifiés. Les nouvelles publications de photos doivent recevoir une description avant publication ou programmation sur le web et les clients natifs qui annoncent cette capacité.",
      "limitations": "La pertinence des descriptions, les photos historiques et les émissions depuis les anciens clients natifs nécessitent une relecture humaine."
    },
    {
      "id": "1.2.1",
      "level": "A",
      "title": "Contenu seulement audio ou vidéo préenregistré",
      "status": "not_applicable",
      "evaluation": "Aucun lecteur ou auteur audio/vidéo dans les parcours de cette application.",
      "limitations": "Des vidéos MP4 historiques peuvent être téléchargées, sans lecteur intégré ; leur contenu et leurs alternatives ne sont pas audités ici."
    },
    {
      "id": "1.2.2",
      "level": "A",
      "title": "Sous-titres préenregistrés",
      "status": "not_applicable",
      "evaluation": "Aucun lecteur vidéo dans les parcours audités.",
      "limitations": "Ne couvre pas les médias d’un autre site ou les documents importés."
    },
    {
      "id": "1.2.3",
      "level": "A",
      "title": "Audiodescription ou version de remplacement",
      "status": "not_applicable",
      "evaluation": "Aucun lecteur vidéo dans les parcours audités.",
      "limitations": "Même limite de périmètre que 1.2.1."
    },
    {
      "id": "1.2.4",
      "level": "AA",
      "title": "Sous-titres en direct",
      "status": "not_applicable",
      "evaluation": "Aucune diffusion audiovisuelle en direct proposée.",
      "limitations": ""
    },
    {
      "id": "1.2.5",
      "level": "AA",
      "title": "Audiodescription préenregistrée",
      "status": "not_applicable",
      "evaluation": "Aucun lecteur vidéo dans les parcours audités.",
      "limitations": "Même limite de périmètre que 1.2.1."
    },
    {
      "id": "1.3.1",
      "level": "A",
      "title": "Information et relations",
      "status": "verified_sample",
      "evaluation": "Axe sur titres, listes, labels, formulaires conditionnels, dialogues, tableaux et messages d’erreur ; vérifications des noms et rôles accessibles.",
      "limitations": "Les PDF et la structure des contenus historiques ne sont pas certifiés."
    },
    {
      "id": "1.3.2",
      "level": "A",
      "title": "Ordre séquentiel logique",
      "status": "verified_sample",
      "evaluation": "Ordre DOM et parcours clavier des formulaires, éditeur, sélecteurs, dialogues et reprises de saisie.",
      "limitations": "La restitution vocale complète reste à vérifier humainement."
    },
    {
      "id": "1.3.3",
      "level": "A",
      "title": "Caractéristiques sensorielles",
      "status": "verified_sample",
      "evaluation": "Instructions textuelles et contrôles nommés ; les erreurs et choix ne reposent pas uniquement sur leur position ou leur couleur.",
      "limitations": "Relecture humaine des textes ajoutés par les écoles nécessaire."
    },
    {
      "id": "1.3.4",
      "level": "AA",
      "title": "Orientation",
      "status": "verified_sample",
      "evaluation": "Mises en page adaptatives et visionneuse photo testées sur formats portrait et paysage sans verrouillage d’orientation.",
      "limitations": "La matrice de téléphones réels reste limitée."
    },
    {
      "id": "1.3.5",
      "level": "AA",
      "title": "Identifier la fonction de la saisie",
      "status": "verified_sample",
      "evaluation": "Attributs autocomplete explicites pour nom, identifiant, mot de passe actuel et nouveau mot de passe.",
      "limitations": "Les gestionnaires de mots de passe tiers ne sont pas tous exercés."
    },
    {
      "id": "1.4.1",
      "level": "A",
      "title": "Utilisation de la couleur",
      "status": "verified_sample",
      "evaluation": "Libellés, états sélectionnés et messages accompagnent les couleurs ; contrôles de noms et états dans les tests.",
      "limitations": "Contenus pédagogiques importés à relire."
    },
    {
      "id": "1.4.2",
      "level": "A",
      "title": "Contrôle du son",
      "status": "not_applicable",
      "evaluation": "Aucun son automatique dans les parcours de l’application.",
      "limitations": ""
    },
    {
      "id": "1.4.3",
      "level": "AA",
      "title": "Contraste minimum",
      "status": "verified_sample",
      "evaluation": "Contrastes texte des états audités par axe et palette canonique ; correction des placeholders trop clairs et du compteur de commentaires, mesuré à 6,043:1 dans quatre projets navigateur.",
      "limitations": "Les images et couleurs de contenus importés ne sont pas évaluées."
    },
    {
      "id": "1.4.4",
      "level": "AA",
      "title": "Redimensionnement du texte",
      "status": "verified_sample",
      "evaluation": "Texte à 200 % dans les rubriques, formulaires, administration et plan, avec vérification d’absence de débordement.",
      "limitations": "Il s’agit d’un agrandissement CSS contrôlé, pas de chaque navigateur et réglage OS réel."
    },
    {
      "id": "1.4.5",
      "level": "AA",
      "title": "Texte sous forme d’image",
      "status": "partial",
      "evaluation": "Les libellés de l’interface sont du texte ; le logo conserve sa fonction de marque.",
      "limitations": "Les affiches et photographies publiées par les écoles peuvent contenir du texte : revue humaine nécessaire."
    },
    {
      "id": "1.4.10",
      "level": "AA",
      "title": "Redistribution",
      "status": "verified_sample",
      "evaluation": "Largeur de 320 pixels CSS et texte 200 %, absence de défilement horizontal de page et accès aux actions.",
      "limitations": "320 pixels correspond au cas de redistribution 1280/400 %; ce n’est pas une simulation complète de tous les zooms réels."
    },
    {
      "id": "1.4.11",
      "level": "AA",
      "title": "Contraste du contenu non textuel",
      "status": "verified_sample",
      "evaluation": "Bordures de champs corrigées dans le design canonique, états et focus inspectés ; contrôles de palette partagés.",
      "limitations": "La distinction de toutes les zones de chaque contenu importé reste hors preuve automatique."
    },
    {
      "id": "1.4.12",
      "level": "AA",
      "title": "Espacement du texte",
      "status": "verified_sample",
      "evaluation": "Interligne 1,5, espacement des lettres 0,12 em, mots 0,16 em et paragraphes 2 em sur écran étroit.",
      "limitations": "Échantillon représentatif de l’interface, pas chaque publication réelle."
    },
    {
      "id": "1.4.13",
      "level": "AA",
      "title": "Contenu au survol ou au focus",
      "status": "not_applicable",
      "evaluation": "Aucun contenu personnalisé supplémentaire n’apparaît uniquement au survol ou au focus dans les parcours audités ; menus et dialogues sont ouverts par activation.",
      "limitations": "Les infobulles natives de l’agent utilisateur ne constituent pas une commande personnalisée de l’application."
    },
    {
      "id": "2.1.1",
      "level": "A",
      "title": "Clavier",
      "status": "verified_sample",
      "evaluation": "Navigation, édition, formatage, réponses, photos, annulation, reprise, profil et sessions testés au clavier.",
      "limitations": "Une campagne humaine complète avec lecteur d’écran et commandes vocales reste nécessaire."
    },
    {
      "id": "2.1.2",
      "level": "A",
      "title": "Pas de piège au clavier",
      "status": "verified_sample",
      "evaluation": "Dialogue modal, menus, visionneuse et éditeur : fermeture et restauration du focus testées.",
      "limitations": ""
    },
    {
      "id": "2.1.4",
      "level": "A",
      "title": "Raccourcis clavier utilisant des caractères",
      "status": "not_applicable",
      "evaluation": "Aucun raccourci global sur une lettre seule ; raccourcis d’édition avec modificateur, flèches de la visionneuse dans son contexte.",
      "limitations": ""
    },
    {
      "id": "2.2.1",
      "level": "A",
      "title": "Réglage du délai",
      "status": "verified_sample",
      "evaluation": "Préférence 10/30/60/120 secondes avant envoi, échéance immuable ; session web glissante et native 8 h renouvelables explicitement ; lien de réinitialisation 30 min prolongeable sans résurrection, avec avertissement avant expiration et au moins 11 prolongations testées.",
      "limitations": "Anciens clients natifs gardent 10 secondes et peuvent ne pas voir immédiatement un envoi long créé ailleurs. L’invitation valable 7 jours relève du délai supérieur à 20 heures. Les alertes visibles exigent JavaScript actif."
    },
    {
      "id": "2.2.2",
      "level": "A",
      "title": "Mettre en pause, arrêter, masquer",
      "status": "verified_sample",
      "evaluation": "Aucun carrousel ni défilement automatique ; progression d’envoi nécessaire à l’action, compteur visuel supprimé, récupération persistante.",
      "limitations": "Contenus animés importés hors périmètre ; notifications de progression liées à une action de l’utilisateur."
    },
    {
      "id": "2.3.1",
      "level": "A",
      "title": "Pas plus de trois flashs ou sous le seuil",
      "status": "verified_sample",
      "evaluation": "Revue des animations de l’interface et prise en compte du mouvement réduit ; aucun flash identifié.",
      "limitations": "Pas d’analyse photométrique des fichiers importés."
    },
    {
      "id": "2.4.1",
      "level": "A",
      "title": "Contourner des blocs",
      "status": "verified_sample",
      "evaluation": "Lien Aller au contenu testé au clavier et cible main focalisable.",
      "limitations": ""
    },
    {
      "id": "2.4.2",
      "level": "A",
      "title": "Titre de page",
      "status": "verified_sample",
      "evaluation": "Titres distincts des rubriques et documents d’erreur français.",
      "limitations": ""
    },
    {
      "id": "2.4.3",
      "level": "A",
      "title": "Parcours du focus",
      "status": "verified_sample",
      "evaluation": "Ordre de tabulation, dialogues, navigation partielle, annulation vers la saisie et maintien du focus durant rafraîchissement testés.",
      "limitations": "Restitution humaine des transitions vocales encore à effectuer."
    },
    {
      "id": "2.4.4",
      "level": "A",
      "title": "Fonction du lien selon le contexte",
      "status": "verified_sample",
      "evaluation": "Liens et actions associés au contexte de publication, conversation, document et rubrique.",
      "limitations": "Titres et noms de fichiers fournis par les utilisateurs doivent rester pertinents."
    },
    {
      "id": "2.4.5",
      "level": "AA",
      "title": "Accès multiples",
      "status": "verified_sample",
      "evaluation": "Menu central et Plan du carnet accessible depuis un pied de page stable ; liens du plan filtrés par rôle et droit de publication délégué.",
      "limitations": "Les pages d’un processus et les détails accessibles depuis leur liste suivent leur contexte."
    },
    {
      "id": "2.4.6",
      "level": "AA",
      "title": "En-têtes et étiquettes",
      "status": "verified_sample",
      "evaluation": "Titres, labels des champs, erreurs localisées et noms des commandes contrôlés par axe et tests fonctionnels.",
      "limitations": "Pertinence des intitulés de contenus réels à relire."
    },
    {
      "id": "2.4.7",
      "level": "AA",
      "title": "Visibilité du focus",
      "status": "verified_sample",
      "evaluation": "Styles de focus canoniques et assertions de focus sur commandes, modales, reprises et navigation clavier.",
      "limitations": "Les combinaisons de couleurs forcées dépendent du moteur et restent documentées dans le rapport design."
    },
    {
      "id": "2.4.11",
      "level": "AA",
      "title": "Focus non masqué au minimum",
      "status": "verified_sample",
      "evaluation": "Parcours clavier à 320 pixels avec contrôle de visibilité sous l’en-tête ; bandeaux compacts, dialogues et restauration vers un champ visible.",
      "limitations": "La revue humaine de tous les zooms, claviers et aides techniques reste nécessaire."
    },
    {
      "id": "2.5.1",
      "level": "A",
      "title": "Gestes pour le contrôle du pointeur",
      "status": "verified_sample",
      "evaluation": "Actions photos et navigation proposées par boutons ; aucun geste multipoint obligatoire.",
      "limitations": ""
    },
    {
      "id": "2.5.2",
      "level": "A",
      "title": "Annulation de l’action du pointeur",
      "status": "verified_sample",
      "evaluation": "Actions sur clic relâché ; fond de visionneuse exige appui et relâchement sans déplacement, glissements ne ferment pas.",
      "limitations": ""
    },
    {
      "id": "2.5.3",
      "level": "A",
      "title": "Étiquette dans le nom",
      "status": "verified_sample",
      "evaluation": "Correction du nom du lien Profil pour inclure ses textes visibles ; axe et assertions des noms de contrôles.",
      "limitations": "Reconnaissance vocale réelle non exercée."
    },
    {
      "id": "2.5.4",
      "level": "A",
      "title": "Activation par le mouvement",
      "status": "not_applicable",
      "evaluation": "Aucune commande ne requiert de mouvement de l’appareil.",
      "limitations": ""
    },
    {
      "id": "2.5.7",
      "level": "AA",
      "title": "Mouvements de glissement",
      "status": "verified_sample",
      "evaluation": "Ajout de fichiers par sélecteur, photos par boutons et miniatures ; aucune action obligatoire uniquement par glissement.",
      "limitations": ""
    },
    {
      "id": "2.5.8",
      "level": "AA",
      "title": "Taille de la cible au minimum",
      "status": "verified_sample",
      "evaluation": "Contrôles interactifs et photos vérifiés, cibles 44 pixels pour les commandes principales et espacement des liens.",
      "limitations": "Échantillon des écrans et états ; contenu libre non inclus."
    },
    {
      "id": "3.1.1",
      "level": "A",
      "title": "Langue de la page",
      "status": "verified_sample",
      "evaluation": "lang=fr sur pages normales et nouvelles erreurs HTTP, vérifié dans les tests.",
      "limitations": ""
    },
    {
      "id": "3.1.2",
      "level": "AA",
      "title": "Langue d’un passage",
      "status": "partial",
      "evaluation": "Le corps riche des publications possède une commande de langue explicite ; sélection ou paragraphe, langues usuelles et code BCP47, langue inconnue, sauvegarde, lecture et annulation sont conservés. Le serveur empêche un ancien client de supprimer silencieusement les annotations existantes.",
      "limitations": "Les titres, commentaires et messages en texte simple ne permettent pas de baliser un passage étranger. Les contenus historiques, documents et choix de langue des auteurs nécessitent une relecture humaine."
    },
    {
      "id": "3.2.1",
      "level": "A",
      "title": "Au focus",
      "status": "verified_sample",
      "evaluation": "Focaliser une commande n’envoie pas de formulaire et ne déclenche pas de navigation ; tests clavier.",
      "limitations": ""
    },
    {
      "id": "3.2.2",
      "level": "A",
      "title": "À la saisie",
      "status": "verified_sample",
      "evaluation": "Autosauvegarde conserve la saisie ; changements de rubrique/champs restent dans le formulaire ; aucune publication automatique à la saisie.",
      "limitations": ""
    },
    {
      "id": "3.2.3",
      "level": "AA",
      "title": "Navigation cohérente",
      "status": "verified_sample",
      "evaluation": "Menu et pied de page communs aux rubriques authentifiées ; permissions conservées à la navigation partielle.",
      "limitations": ""
    },
    {
      "id": "3.2.4",
      "level": "AA",
      "title": "Identification cohérente",
      "status": "verified_sample",
      "evaluation": "Commandes et composants partagés pour envoyer, annuler, fermer, reprendre et naviguer.",
      "limitations": ""
    },
    {
      "id": "3.2.6",
      "level": "A",
      "title": "Aide cohérente",
      "status": "verified_sample",
      "evaluation": "Entrée Besoin d’un coup de main dans le menu commun, contact humain et aide à emplacement stable.",
      "limitations": "Délai et qualité d’une réponse humaine ne sont pas évalués."
    },
    {
      "id": "3.3.1",
      "level": "A",
      "title": "Identification des erreurs",
      "status": "verified_sample",
      "evaluation": "Erreurs de formulaire en texte, alerte, erreur photo reliée au champ, erreurs réseau/session sans disparition de la saisie.",
      "limitations": ""
    },
    {
      "id": "3.3.2",
      "level": "A",
      "title": "Étiquettes ou instructions",
      "status": "verified_sample",
      "evaluation": "Labels explicites, limites de mot de passe, description photo demandée et aide de délai avant action.",
      "limitations": ""
    },
    {
      "id": "3.3.3",
      "level": "AA",
      "title": "Suggestion après une erreur",
      "status": "verified_sample",
      "evaluation": "Messages de correction, nouvelle tentative explicite, reconnexion et récupération testés ; refus d’accès sans détails privés.",
      "limitations": "La qualité de chaque contenu d’erreur métier rare n’a pas été évaluée par un panel utilisateur."
    },
    {
      "id": "3.3.4",
      "level": "AA",
      "title": "Prévention des erreurs",
      "status": "verified_sample",
      "evaluation": "Publication, message et commentaire annulables ; suppression de publication confirmée/restaurable ; conflits de révision et nouveaux brouillons préservés.",
      "limitations": "Les actions administratives et leur compréhension doivent encore être relues en situation humaine."
    },
    {
      "id": "3.3.7",
      "level": "A",
      "title": "Saisie redondante",
      "status": "verified_sample",
      "evaluation": "Brouillons et champs conservés lors de reprise/erreur/reconnexion du même compte ; pas de renvoi automatique ni de transfert entre comptes.",
      "limitations": "L’invitation valide est exercée au clavier et à 200 % sans acceptation d’un compte réel ; usage humain complet encore à exercer."
    },
    {
      "id": "3.3.8",
      "level": "AA",
      "title": "Authentification accessible au minimum",
      "status": "verified_sample",
      "evaluation": "Champs autocomplete, collage non bloqué sur identifiant/mot de passe, aucun CAPTCHA ni puzzle ; conservation locale en mémoire lors d’une prolongation.",
      "limitations": "Aucun essai de tous les gestionnaires de mots de passe ni de lecteur d’écran vocal réel."
    },
    {
      "id": "4.1.2",
      "level": "A",
      "title": "Nom, rôle et valeur",
      "status": "verified_sample",
      "evaluation": "Axe, noms/états des composants et assertions clavier sur formulaires, sélecteurs, dialogues, images et erreurs.",
      "limitations": "L’inspection de l’arbre d’accessibilité ne remplace pas l’écoute humaine d’un lecteur d’écran."
    },
    {
      "id": "4.1.3",
      "level": "AA",
      "title": "Messages d’état",
      "status": "verified_sample",
      "evaluation": "Status et alert pour sauvegarde, envoi, annulation, récupération, erreurs et échéances ; absence de succès annoncé après échec ou état incertain.",
      "limitations": "La politesse et la compréhension de toutes les annonces vocales restent à évaluer humainement."
    }
  ],
  "references": [
    {
      "title": "WCAG 2.2, recommandation W3C",
      "url": "https://www.w3.org/TR/WCAG22/"
    },
    {
      "title": "Comprendre le réglage du délai",
      "url": "https://www.w3.org/WAI/WCAG22/Understanding/timing-adjustable.html"
    },
    {
      "title": "Comprendre l’authentification accessible",
      "url": "https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum.html"
    }
  ],
  "source": {
    "commit": "824648c67e841fb9b7e221c7d085ff0baf096e77",
    "tree": "2597b06269c3c71d4e08fc58d2b4ef93a1880af7",
    "designVersion": "0.1.24",
    "designCommit": "088208340675f2965f08f2c1c4ea81504658dadf"
  },
  "results": {
    "php": {
      "tests": 941,
      "assertions": 12446,
      "failures": 0,
      "errors": 0,
      "skipped": 0
    },
    "browser": {
      "status": "PASS",
      "tests": 804,
      "failures": 0,
      "errors": 0,
      "skipped": 0,
      "flaky": 0,
      "projects": [
        "chromium",
        "firefox",
        "webkit",
        "mobile"
      ],
      "note": "A complete 780-scenario run followed by reviewed scoped reruns and 24 additional scenarios. Latest passing result per unchanged file/title/project; 201 scenarios per project. This is not a single 804-scenario execution on the final asset. Historical failures and their resolutions remain in the linked reconciliation receipt."
    },
    "mutation": {
      "status": "PASS",
      "tool": "infection",
      "exitCode": 0,
      "minimumMsi": 80,
      "minimumCoveredMsi": 90,
      "msi": 93.14,
      "coveredMsi": 93.14,
      "mutants": 1006,
      "killedByTests": 921,
      "escaped": 69,
      "timedOut": 15,
      "mutantErrors": 1,
      "note": "Domain, Storage and Security scope retained; schema validation uses the equivalent local PHPUnit XSD. Existing thresholds remain unchanged. Timeouts retain Infection classification. This conservative full-run score precedes two added unit regressions; separate isolated mutation receipts demonstrate that both new session invariants are now protected. Production code did not change."
    },
    "commentCounterContrast": {
      "ratio": 6.043142870444006,
      "minimum": 4.5,
      "measurements": 8,
      "projects": 4
    },
    "remainingHumanReview": "Restitution vocale humaine, pertinence des alternatives, langues et contenus historiques ou importés. Les 804 scénarios ne constituent pas une certification globale."
  },
  "evidenceDigests": [
    {
      "file": "backend-assets-final.log",
      "sha256": "d8d8a019ab443edd1306dbc4c91979043a209dd70e70fff1dfdd45768b49fc87"
    },
    {
      "file": "backend-twig-final.log",
      "sha256": "412eea161b427707f56332b95313e05e0be78c0c301d4711f8cdfb2528eedd85"
    },
    {
      "file": "backend-session-php-final.log",
      "sha256": "96948501c692bbf2e9c3048992005e082d0ef1edd250e6f378fe975013043b59"
    },
    {
      "file": "backend-delta-php-final.log",
      "sha256": "14f639184a4a574f35d3ec52aff651a66f07bb4dbead82b191ce29c72b19bdef"
    },
    {
      "file": "backend-quality-complete-final.log",
      "sha256": "39a5ae4c34dd0804bc3806f3c7fbb23e27dab7714b9122877066e96389aad633"
    },
    {
      "file": "backend-browser-final.json",
      "sha256": "e033d77872bffb1b83a8eccc47d5a0fec6d4bafd6c78cb1833815fe2946e4feb"
    },
    {
      "file": "backend-browser-delta-final.json",
      "sha256": "9f4016bd9885b115837389c0fa14b81ea37e9b6223eb30073da679741700d259"
    },
    {
      "file": "backend-browser-last-delta.json",
      "sha256": "6df4561c27dc15e3bd82ec215494b6a8240347097ac83894df6a5d0d8eca18d1"
    },
    {
      "file": "backend-language-empty-final.json",
      "sha256": "83fc706758d415dc8aebf91f3e852d71095d5f0108e417ffc6a3a9c76a20cada"
    },
    {
      "file": "backend-browser-0124-final.json",
      "sha256": "9f0f1556436170d71415b82648ff83eafdd7c9fbdfb36de6d31805abef5b05c3"
    },
    {
      "file": "backend-comment-contrast-final.json",
      "sha256": "14b9d12fefd6bb00cf3987dfed63f9f617a136a230871883e6880cab24a15d61"
    },
    {
      "file": "backend-incomplete-review-delta.json",
      "sha256": "eec96ad4197f7cc0506f7c0a38c2c8d88f418dac7d138cb9b8782c4d55b1dd59"
    },
    {
      "file": "backend-incomplete-review-addendum.json",
      "sha256": "d8308fb974fa0c2fb2c7c52de5453ba05bf83f9e0ce3b41beb6ec43416a65383"
    },
    {
      "file": "backend-quality-with-session-invariants-final.log",
      "sha256": "adb715e77a87f3d31f7c8a25d06267fc302f730e1ad2df14324a04a9f6922886"
    },
    {
      "file": "backend-browser-reconciled-final.json",
      "sha256": "39029057ff91a3179066a0943a6598444fb2804b930c7a9647aaa8186993598e"
    },
    {
      "file": "backend-mutation-result-final.json",
      "sha256": "d0ba2e12de456a1bcd618a49e60206547ee3b1971fd9b2f456e62e557ebcb6e5"
    },
    {
      "file": "backend-mutation-container-final.log",
      "sha256": "a0d3b3c4e15e9a68238ff80a2ec72a97fe775317e3459e4cdb9d46d5336d5c9b"
    },
    {
      "file": "backend-mutation-summary-final.log",
      "sha256": "91b08f2f9c339cbf764f9ac9d11485aed6b665279b33e5388df51706d0a9d557"
    },
    {
      "file": "mutation-config-equivalence.json",
      "sha256": "77dfce4714ad6ba2551694eb6ac0e3ee5e35d355656c7ff7304fbbbeecbe0f07"
    },
    {
      "file": "mutation-orphan-cleanup.json",
      "sha256": "4aa49240d819ec8df0429cdc50b6813897a9a1dcebf4afdb21b69bcb142e19e8"
    },
    {
      "file": "backend-session-invariants-mutation.json",
      "sha256": "c3e9b357444321bf19010385a390493003919e2e3ac55f2c73c5fb282276907b"
    },
    {
      "file": "backend-session-invariants-php.log",
      "sha256": "70a99b497fe8681dfd30d1a08ceae57cb43868fa45d5b114df16d550e93e1706"
    },
    {
      "file": "backend-session-mutant-school-scope.log",
      "sha256": "eb8e81ce0d220074b67f80da57a79dba573a233d24ae6b918f182548a69bc339"
    },
    {
      "file": "backend-session-mutant-account-revision.log",
      "sha256": "df675d97b202e9a10e106c55e639849445dc7f056ec8e32c2971bc0b7858bd8e"
    }
  ]
}
