Mise à jour de sécurité concernant les systèmes de diagnostic à distance Yarbo

J'écris directement parce que les problèmes soulevés dans le récent rapport de sécurité méritent une réponse directe, et non une réponse d'entreprise.
Le 7 mai 2026, le chercheur en sécurité Andreas Makris a publié un rapport détaillé identifiant de graves vulnérabilités dans les systèmes de diagnostic à distance, de gestion des identifiants et de traitement des données de Yarbo. Les principales conclusions techniques sont exactes. Je tiens à remercier M. Andreas Makris pour son travail d'identification de ces problèmes et pour sa persévérance à nous les signaler. Je reconnais également que notre première réponse n'a pas reflété adéquatement la gravité des problèmes qu'il a identifiés. En tant que cofondateur, je suis responsable de ce qui a été livré sur nos produits, et je suis responsable de la réponse.
Nos équipes d'ingénierie, de produits, juridiques et de support client travaillent à la remédiation en priorité absolue. Ce qui suit est mon compte rendu de ce qui a été trouvé, de ce que nous avons déjà corrigé, de ce que nous sommes en train de corriger activement, et de ce que nous nous engageons à changer dans notre façon d'opérer à l'avenir.
D'après notre examen préliminaire, les problèmes sont principalement liés à des choix de conception historiques dans certaines parties des systèmes de diagnostic à distance, de gestion des accès et de traitement des données de Yarbo.
Plus précisément, certaines capacités de support et de maintenance héritées n'offraient pas aux utilisateurs une visibilité ou un contrôle suffisants, et certains mécanismes d'authentification et de gestion des identifiants ne respectaient pas les normes de sécurité que nous attendons des produits d'aujourd'hui.
Nous avons également identifié des domaines où les autorisations d'accès, les configurations des systèmes backend et les flux de données entre les appareils et les services cloud nécessitent des protections plus solides et des contrôles plus stricts.
Nous reconnaissons la gravité de ces problèmes et les préoccupations qu'ils ont pu susciter chez nos clients et notre communauté. Nous nous excusons sincèrement pour l'impact que cette situation a créé, et nous nous engageons à résoudre ces problèmes de manière transparente et responsable.

Actions déjà prises et travaux en cours

Nous renforçons la sécurité des systèmes en réduisant les chemins d'accès hérités, en renforçant les autorisations et en nous orientant vers des identifiants au niveau de l'appareil entièrement vérifiables. Pour clarifier nos progrès en matière de remédiation, nous séparons les actions déjà entreprises des travaux en cours.
Ce que nous avons déjà fait
  1. Nous avons temporairement désactivé les tunnels de diagnostic à distance pertinents afin de réduire le risque d'accès non autorisé.
  2. Nous avons effectué une réinitialisation des mots de passe root des appareils pour bloquer temporairement le risque d'identifiants partagés identifié et empêcher l'extension du problème.
  3. Nous avons fermé ou restreint certains points d'accès de requête de statut et de rapport non authentifiés.
  4. Nous avons commencé à réduire les chemins d'accès hérités inutiles et à renforcer les autorisations backend.
Ce sur quoi nous travaillons actuellement
  1. Nous mettons en œuvre un modèle de diagnostic à distance basé sur une liste blanche, autorisé par l'utilisateur et vérifiable. La première phase devrait être achevée d'ici une semaine. Une fois mis en œuvre, l'accès au diagnostic à distance sera limité au personnel interne autorisé de l'entreprise, ne pourra être utilisé qu'après l'obtention de l'autorisation de l'utilisateur et sera progressivement soumis à l'enregistrement des audits.
  2. Nous utilisons des mises à jour OTA pour faire progresser la rotation des identifiants et les mécanismes d'identifiants indépendants au niveau de l'appareil, remplaçant progressivement le modèle historique de mot de passe partagé. À l'avenir, chaque appareil utilisera ses propres identifiants indépendants pour éviter qu'un appareil affecté n'impacte l'ensemble du parc.
  3. Nous construisons et testons un service de gestion des identifiants de robot afin que les mots de passe des appareils ne soient plus codés en dur dans le firmware, les scripts ou les bases de données. Au lieu de cela, les identifiants seront dérivés dynamiquement en fonction de l'identité de l'appareil. L'accès aux opérations enregistrera également le visiteur, la raison de l'accès, l'ordre de travail et l'horodatage.
  4. Nous renforçons d'autres services d'authentification. Ces correctifs sont actuellement en phase de test et seront publiés via les prochaines mises à jour OTA.
  5. Nous ajustons les autorisations de sujets pour réduire l'accès partagé au niveau du parc, limiter la portée de chaque identifiant et établir des limites plus strictes autour des commandes de contrôle.
  6. Nous testons des mesures de nettoyage qui incluent la suppression des scripts de rapport inutiles, des dépendances de services cloud héritées, des agents tiers et des configurations de repli DNS non essentielles afin de réduire les flux de données qui ne sont pas clairement visibles par les utilisateurs. Ces modifications seront déployées via de futures mises à jour OTA une fois les tests terminés.
Les serveurs historiques et les canaux d'accès hérités continueront d'être progressivement supprimés un par un dans le cadre de ce processus de remédiation.

Avis aux utilisateurs

Nous accélérons également les mises à jour de sécurité OTA et les protections supplémentaires côté serveur. La première vague de mises à jour devrait commencer à être déployée d'ici une semaine. Important : Une mise à jour du firmware de sécurité est en cours de déploiement sur tous les appareils Yarbo. Pour recevoir cette mise à jour, veuillez connecter votre Yarbo à Internet. Une fois la mise à jour appliquée, vous pouvez revenir à vos paramètres réseau préférés. Si vous préférez garder votre appareil hors ligne en attendant, vous pouvez le faire sans affecter votre garantie ou votre couverture de service. Nous vous informerons lorsque la mise à jour sera prête afin que vous puissiez vous connecter brièvement pour l'appliquer.

Améliorations continues de la sécurité

Cet effort de remédiation ne se limite pas à un seul correctif ou à une seule mise à jour logicielle. Nous utilisons ce processus pour renforcer l'architecture de sécurité à long terme et les normes de gouvernance derrière nos produits.
Ces efforts comprennent le renforcement des normes de contrôle d'accès, l'amélioration des modèles d'authentification et d'autorisation, l'augmentation de la visibilité et du contrôle des utilisateurs sur les fonctionnalités de diagnostic à distance, et la réduction supplémentaire des mécanismes de support hérités inutiles à travers les systèmes et l'infrastructure connexes.
Nous continuerons également à étendre nos processus internes d'examen de la sécurité, de remédiation et de gouvernance afin de soutenir des pratiques de sécurité plus solides à long terme. Notre objectif est de garantir que la sécurité, la transparence et la confiance des utilisateurs sont intégrées à la base des futurs systèmes et services Yarbo.

Clarifications concernant certains éléments signalés

Certains éléments du rapport externe décrivent de véritables problèmes de sécurité, tandis que d'autres nécessitent des éclaircissements car ils ne s'appliquent pas aux produits Yarbo actuellement commercialisés ou ne représentent pas des vulnérabilités de sécurité indépendantes.
Redémarrage automatique et persistance du FRP
Le rapport mentionne également que le client FRP peut redémarrer via des tâches planifiées ou des mécanismes de récupération de service. Nous reconnaissons que cela peut rendre plus difficile la désactivation manuelle des canaux d'accès à distance, mais le problème fondamental réside dans l'existence, les autorisations et la politique du tunnel distant lui-même. Notre remédiation se concentre sur la désactivation ou la restriction des tunnels, l'introduction de listes blanches et de vérifiabilité, et la suppression des chemins d'accès à distance persistants inutiles.
Surveillance de fichiers et auto-récupération
Le rapport mentionne un comportement de surveillance de fichiers qui peut restaurer certains fichiers ou services supprimés. Ce mécanisme a été initialement conçu comme une mesure de fiabilité défensive pour empêcher la suppression ou la corruption accidentelle de fichiers de service critiques. En soi, il n'était pas destiné à fonctionner comme une fonctionnalité d'accès à distance.
Cela dit, nous reconnaissons que tout mécanisme rendant les composants liés à l'accès à distance difficiles à supprimer pour les utilisateurs peut créer des problèmes de confiance. Nous examinons quels fichiers doivent continuer à être protégés et quels composants doivent être supprimés, simplifiés ou placés sous le contrôle de l'utilisateur.
Configurations historiques ou non-production
Certaines constatations concernent des infrastructures historiques, des services cloud hérités, des personnalisations spécifiques aux revendeurs ou des configurations de test internes. Ceux-ci restent en cours d'examen et sont nettoyés si nécessaire, mais ils doivent être distingués du comportement par défaut des unités de production actuellement commercialisées.
Notre objectif est d'être précis : nous ne minimiserons pas les problèmes de sécurité confirmés, mais nous voulons également que les utilisateurs comprennent quelles constatations s'appliquent aux appareils de production, lesquelles ne s'appliquent qu'aux configurations historiques ou personnalisées, et lesquelles sont abordées dans le cadre d'efforts de renforcement plus larges.

Signalement de la sécurité

Pour améliorer le signalement des problèmes de sécurité à l'avenir, nous lançons un canal de réponse à la sécurité dédié et un processus de contact de sécurité pour les rapports de vulnérabilités et la divulgation responsable :
Le public pourra également trouver nos coordonnées de sécurité sur la page Yarbo Security Center dans la section "Explorer" de notre site web officiel.
Nous explorons également la possibilité d'établir un programme formel de primes aux bogues dans le cadre de nos initiatives de sécurité à long terme.
Nous apprécions le rôle que jouent les chercheurs en sécurité indépendants en identifiant de manière responsable les problèmes potentiels, et nous restons déterminés à renforcer la sécurité, la transparence et la fiabilité de nos produits.
Au fur et à mesure de l'avancement de l'enquête et des travaux de remédiation, je fournirai d'autres mises à jour dès qu'elles seront disponibles.

Kenneth Kohlmann
Co-fondateur, Yarbo
New York
J'écris directement parce que les problèmes soulevés dans le récent rapport de sécurité méritent une réponse directe, pas une réponse d'entreprise.Notre correction se concentre sur la désactivation ou la restriction des tunnels, l'introduction de listes blanches et d'auditabilité, et la suppression des chemins d'accès à distance persistants inutiles."},"attribs":{"0":"*0+ct"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"V1CVdnUBHovpptxUa8wceGFrnwf":{"id":"V1CVdnUBHovpptxUa8wceGFrnwf","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Redémarrage et persistance FRP"},"attribs":{"0":"*0*1+w"},"rows":{},"cols":{}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"],"1":["bold","true"]},"nextNum":2,"attribToNum":{"author,7521569960852848643":0,"bold,true":1}}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"WP24dgfCDoLlMFxKsNtcVzYLnhf":{"id":"WP24dgfCDoLlMFxKsNtcVzYLnhf","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Certains éléments du rapport externe décrivent de véritables problèmes de sécurité, tandis que d'autres nécessitent des clarifications car ils ne s'appliquent pas aux produits Yarbo actuellement commercialisés ou ne représentent pas des vulnérabilités de sécurité indépendantes."},"attribs":{"0":"*0+63"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"YJEadVgnGovUo4xedyXc4qDDnkf":{"id":"YJEadVgnGovUo4xedyXc4qDDnkf","snapshot":{"type":"heading2","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Clarifications concernant certains éléments signalés"},"attribs":{"0":"*0+1b"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"K6I6dEBwkoU6Mjxvj4FcmBP8nWd":{"id":"K6I6dEBwkoU6Mjxvj4FcmBP8nWd","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous continuerons également à étendre nos processus internes d'examen, de correction et de gouvernance en matière de sécurité afin de soutenir des pratiques de sécurité plus solides à long terme. Notre objectif est de garantir que la sécurité, la transparence et la confiance des utilisateurs sont intégrées aux fondations des futurs systèmes et services Yarbo."},"attribs":{"0":"*0+89"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"PtjQdZokFopiRLxQ3WZclrGZnfg":{"id":"PtjQdZokFopiRLxQ3WZclrGZnfg","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Ces efforts comprennent le renforcement des normes de contrôle d'accès, l'amélioration des modèles d'authentification et d'autorisation, l'augmentation de la visibilité et du contrôle des utilisateurs sur les fonctionnalités de diagnostic à distance, et la réduction supplémentaire des mécanismes de support hérités inutiles sur les systèmes et l'infrastructure connexes."},"attribs":{"0":"*0+7y"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"SSgTduSmEouzbOxHr2Ec6nCxnWg":{"id":"SSgTduSmEouzbOxHr2Ec6nCxnWg","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Cet effort de correction ne se limite pas à une seule solution ou mise à jour logicielle. Nous utilisons ce processus pour renforcer l'architecture de sécurité à long terme et les normes de gouvernance de nos produits."},"attribs":{"0":"*0+5g"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"WMzYdsIgno97uAxHRLGcOFqLnhd":{"id":"WMzYdsIgno97uAxHRLGcOFqLnhd","snapshot":{"type":"heading2","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Améliorations de la sécurité en cours"},"attribs":{"0":"*0+t"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"RITudSF9vo9y6WxQGuOcSWiSnnh":{"id":"RITudSF9vo9y6WxQGuOcSWiSnnh","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous accélérons également les mises à jour de sécurité OTA et les protections supplémentaires côté serveur. La première vague de mises à jour devrait commencer à être déployée d'ici une semaine.\nImportant : Une mise à jour du micrologiciel de sécurité est en cours de déploiement sur tous les appareils Yarbo. Pour recevoir cette mise à jour, veuillez connecter votre Yarbo à Internet. Une fois la mise à jour appliquée, vous pourrez revenir à vos paramètres réseau préférés.\nSi vous préférez garder votre appareil hors ligne en attendant, vous pouvez le faire sans affecter votre garantie ou votre couverture de service. Nous vous informerons lorsque la mise à jour sera prête afin que vous puissiez vous connecter brièvement pour l'appliquer."},"attribs":{"0":"*0|1+4i*0*1+b*0|1+61*0+5t"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"],"1":["bold","true"]},"nextNum":2}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":""}},"DQNEdLLNjoiEg6xyXXsce2SWnCd":{"id":"DQNEdLLNjoiEg6xyXXsce2SWnCd","snapshot":{"type":"heading2","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Avis aux utilisateurs"},"attribs":{"0":"*0+b"},"rows":{},"cols":{}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1,"attribToNum":{"author,7521569960852848643":0}}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"Y5zRdPh2qoWVFHx1MBVcZaxfnPl":{"id":"Y5zRdPh2qoWVFHx1MBVcZaxfnPl","snapshot":{"type":"text","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Les serveurs historiques et les canaux d'accès hérités continueront d'être progressivement supprimés dans le cadre de ce processus de correction."},"attribs":{"0":"*0+3g"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"XSmydYY25oEJytx7nVYcqfK6nVg":{"id":"XSmydYY25oEJytx7nVYcqfK6nVg","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous testons des mesures de nettoyage qui incluent la suppression des scripts de reporting inutiles, des dépendances de services cloud héritées, des agents tiers et des configurations de secours DNS non essentielles afin de réduire les flux de données qui ne sont pas clairement visibles par les utilisateurs. Ces modifications seront déployées via de futures mises à jour OTA une fois les tests terminés."},"attribs":{"0":"*0+9i"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"level":1,"folded":false,"seq":"auto","parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"VWhgdWbamoCVnfxAocrccdC6nVd":{"id":"VWhgdWbamoCVnfxAocrccdC6nVd","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous ajustons les autorisations de sujets pour réduire l'accès partagé au niveau de la flotte, limiter la portée de chaque identifiant et établir des limites plus strictes autour des commandes de contrôle."},"attribs":{"0":"*0+4m"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"level":1,"folded":false,"seq":"auto","parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"TUj1dhyW8oQA6Hxxx1KcLiVxnge":{"id":"TUj1dhyW8oQA6Hxxx1KcLiVxnge","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous renforçons d'autres services d'authentification. Ces correctifs sont actuellement en phase de test et seront publiés via les prochaines mises à jour OTA."},"attribs":{"0":"*0+41"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"level":1,"folded":false,"seq":"auto","parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"MMVMdALRCo52mAx6nQCcr7gUnFh":{"id":"MMVMdALRCo52mAx6nQCcr7gUnFh","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous construisons et testons un service de gestion des identifiants de robots afin que les mots de passe des appareils ne soient plus codés en dur dans le micrologiciel, les scripts ou les bases de données. Au lieu de cela, les identifiants seront dérivés dynamiquement en fonction de l'identité de l'appareil. L'accès OPS enregistrera également le visiteur, la raison de l'accès, le bon de travail et l'horodatage."},"attribs":{"0":"*0+8o"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"level":1,"folded":false,"seq":"auto","parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"SPCWdHB7ModuZAxcSHJcRiJ9nse":{"id":"SPCWdHB7ModuZAxcSHJcRiJ9nse","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous utilisons les mises à jour OTA pour faire progresser la rotation des identifiants et les mécanismes d'identifiants indépendants au niveau de l'appareil, remplaçant progressivement le modèle historique de mot de passe partagé. À l'avenir, chaque appareil utilisera ses propres identifiants indépendants pour éviter qu'un appareil affecté n'impacte l'ensemble de la flotte."},"attribs":{"0":"*0+89"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"level":1,"folded":false,"seq":"auto","parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":"left"}},"Fzzrd6ubso0jwNxjON7cHZnOnih":{"id":"Fzzrd6ubso0jwNxjON7cHZnOnih","snapshot":{"type":"ordered","children":[],"comments":[],"revisions":[],"author":"7521569960852848643","text":{"initialAttributedTexts":{"text":{"0":"Nous mettons en œuvre un modèle de diagnostic à distance basé sur une liste blanche, autorisé par l'utilisateur et vérifiable. La première phase devrait être achevée d'ici une semaine.Une fois mis en œuvre, l'accès au diagnostic à distance sera limité au personnel interne autorisé de l'entreprise, ne pourra être utilisé qu'après autorisation de l'utilisateur, et sera progressivement soumis à la journalisation d'audit.Je reconnais également que notre réponse initiale n'a pas reflété adéquatement la gravité des problèmes qu'il a identifiés.\n\nEn tant que co-fondateur, je suis responsable de ce qui a été livré sur nos produits, et je suis responsable de la réponse."},"attribs":{"0":"*0|2+dq*0+2u"}},"apool":{"numToAttrib":{"0":["author","7521569960852848643"]},"nextNum":1}},"folded":false,"parent_id":"R3GXdKSqfol4BaxsFZCcroR6nRd","locked":false,"hidden":false,"align":""}},"R3GXdKSqfol4BaxsFZCcroR6nRd":{"id":"R3GXdKSqfol4BaxsFZCcroR6nRd","snapshot":{"type":"page","parent_id":"","comments":[],"revisions":[],"locked":false,"hidden":false,"author":"7521569960852848643","children":["OIuBdckncoMRipxRSVOcYXManxf","TUjldfirdoUYjbx9yAKcpyrbnge","KR9ddjwiyozf97x0fwpcmkmensf","Q2FYdIaqToaFaPxgq7ycmIZAnZe","O33Kdmx7yorZbGxE6jCcEniZnle","Pk4sdTgKXoOkGYx1caYcDubRnmg","M2dxdNtQioTNoTxueYqczthfnGx","P7XJdAb9noBP6Mx9KfdcC44onvc","VwsmdTC3RoHo07xigUgcRTiunrh","X3Xpdtuy9oO7yGxUgeNcxKSnnlf","Aq0xdUTcloYnZcxmquGc1IJYnph","DyiwdP8mboS2SXxkhzacQ9Svnue","PWAidMU28oSKmkxQxbtceV3nnIb","ZamCduOzGou2W8xm3ILczYkKnC6","VDMHdKxTiolrV7xadEKcZDovnmf","JhOxdwBDso8dEPxU8UbcEw6inhb","Fzzrd6ubso0jwNxjON7cHZnOnih","SPCWdHB7ModuZAxcSHJcRiJ9nse","MMVMdALRCo52mAx6nQCcr7gUnFh","TUj1dhyW8oQA6Hxxx1KcLiVxnge","VWhgdWbamoCVnfxAocrccdC6nVd","XSmydYY25oEJytx7nVYcqfK6nVg","Y5zRdPh2qoWVFHx1MBVcZaxfnPl","DQNEdLLNjoiEg6xyXXsce2SWnCd","RITudSF9vo9y6WxQGuOcSWiSnnh","WMzYdsIgno97uAxHRLGcOFqLnhd","SSgTduSmEouzbOxHr2Ec6nCxnWg","PtjQdZokFopiRLxQ3WZclrGZnfg","K6I6dEBwkoU6Mjxvj4FcmBP8nWd","YJEadVgnGovUo4xedyXc4qDDnkf","WP24dgfCDoLlMFxKsNtcVzYLnhf","V1CVdnUBHovpptxUa8wceGFrnwf","T9rSdIzaAoibFBx2mRicFrWCnEh","YtN3dY6fMouadsxdPR3cygtln6g","NvU8dxFqno6xlMxE8rrcOiTznLg","IpMod1yQZofKWMxSJXIcj6yYnLh","EFlYdMr6HobAeIxzL2ncEEAznOe","UP1JdKFxjoeEI3xXl0RcIJOwnkt","Gy1VdQkMHoUkx7xHfNTciYgynCM","ZFEWd17U0omfbgxZFJkcC5rZnYd","FTgzdHhMboO5eOxBPAtc8YSdnxd","F9crdTal2oTIlGxgU27csMCpn9e","WZQhdrgsZoXOMvxAyFUcvdV4nKc","FqWsdtH2zoysqtxF1AhcN3DPnpz","CmbkdJW4so8zXBxcvFxcoaxsnNd","H6TjdlPJ4oeSa6xMd1QcKO98nGe","BYzQds7C5oWdrsxyz1CcjTKQnSc","IJGXdNa3poCuO3xu0RucmTWSnae"],"text":{"apool":{"nextNum":0,"numToAttrib":{}},"initialAttributedTexts":{"attribs":{"0":""},"text":{"0":""}}},"align":"","doc_info":{"editors":["7521569960852848643"],"options":["editors","edit_time"],"deleted_editors":null,"option_modified":null}}}},"payloadMap":{"TUjldfirdoUYjbx9yAKcpyrbnge":{"level":1},"KR9ddjwiyozf97x0fwpcmkmensf":{"level":1},"Q2FYdIaqToaFaPxgq7ycmIZAnZe":{"level":1},"O33Kdmx7yorZbGxE6jCcEniZnle":{"level":1},"Pk4sdTgKXoOkGYx1caYcDubRnmg":{"level":1},"M2dxdNtQioTNoTxueYqczthfnGx":{"level":1},"P7XJdAb9noBP6Mx9KfdcC44onvc":{"level":1},"X3Xpdtuy9oO7yGxUgeNcxKSnnlf":{"level":1},"Aq0xdUTcloYnZcxmquGc1IJYnph":{"level":1},"JhOxdwBDso8dEPxU8UbcEw6inhb":{"level":1},"Y5zRdPh2qoWVFHx1MBVcZaxfnPl":{"level":1},"RITudSF9vo9y6WxQGuOcSWiSnnh":{"level":1},"SSgTduSmEouzbOxHr2Ec6nCxnWg":{"level":1},"PtjQdZokFopiRLxQ3WZclrGZnfg":{"level":1},"K6I6dEBwkoU6Mjxvj4FcmBP8nWd":{"level":1},"WP24dgfCDoLlMFxKsNtcVzYLnhf":{"level":1},"V1CVdnUBHovpptxUa8wceGFrnwf":{"level":1},"T9rSdIzaAoibFBx2mRicFrWCnEh":{"level":1},"YtN3dY6fMouadsxdPR3cygtln6g":{"level":1},"NvU8dxFqno6xlMxE8rrcOiTznLg":{"level":1},"IpMod1yQZofKWMxSJXIcj6yYnLh":{"level":1},"EFlYdMr6HobAeIxzL2ncEEAznOe":{"level":1},"UP1JdKFxjoeEI3xXl0RcIJOwnkt":{"level":1},"Gy1VdQkMHoUkx7xHfNTciYgynCM":{"level":1},"FTgzdHhMboO5eOxBPAtc8YSdnxd":{"level":1},"F9crdTal2oTIlGxgU27csMCpn9e":{"level":1},"WZQhdrgsZoXOMvxAyFUcvdV4nKc":{"level":1},"FqWsdtH2zoysqtxF1AhcN3DPnpz":{"level":1},"CmbkdJW4so8zXBxcvFxcoaxsnNd":{"level":1},"H6TjdlPJ4oeSa6xMd1QcKO98nGe":{"level":1},"BYzQds7C5oWdrsxyz1CcjTKQnSc":{"level":1}},"extra":{"channel":"saas","pasteRandomId":"29894d6d-290f-4c03-bc1d-52a7bc0e7a49","mention_page_title":{},"external_mention_url":{},"isEqualBlockSelection":true},"isKeepQuoteContainer":false,"selection":[{"id":3,"type":"text","selection":{"start":0,"end":129},"recordId":"TUjldfirdoUYjbx9yAKcpyrbnge"},{"id":128,"type":"text","selection":{"start":0,"end":596},"recordId":"KR9ddjwiyozf97x0fwpcmkmensf"},{"id":127,"type":"text","selection":{"start":0,"end":280},"recordId":"Q2FYdIaqToaFaPxgq7ycmIZAnZe"},{"id":126,"type":"text","selection":{"start":0,"end":174},"recordId":"O33Kdmx7yorZbGxE6jCcEniZnle"},{"id":125,"type":"text","selection":{"start":0,"end":255},"recordId":"Pk4sdTgKXoOkGYx1caYcDubRnmg"},{"id":124,"type":"text","selection":{"start":0,"end":188},"recordId":"M2dxdNtQioTNoTxueYqczthfnGx"},{"id":123,"type":"text","selection":{"start":0,"end":270},"recordId":"P7XJdAb9noBP6Mx9KfdcC44onvc"},{"id":122,"type":"text","selection":{"start":0,"end":52},"recordId":"VwsmdTC3RoHo07xigUgcRTiunrh"},{"id":121,"type":"text","selection":{"start":0,"end":282},"recordId":"X3Xpdtuy9oO7yGxUgeNcxKSnnlf"},{"id":120,"type":"text","selection":{"start":0,"end":25},"recordId":"Aq0xdUTcloYnZcxmquGc1IJYnph"},{"id":119,"type":"text","selection":{"start":0,"end":110},"recordId":"DyiwdP8mboS2SXxkhzacQ9Svnue"},{"id":118,"type":"text","selection":{"start":0,"end":153},"recordId":"PWAidMU28oSKmkxQxbtceV3nnIb"},{"id":117,"type":"text","selection":{"start":0,"end":90},"recordId":"ZamCduOzGou2W8xm3ILczYkKnC6"},{"id":116,"type":"text","selection":{"start":0,"end":90},"recordId":"VDMHdKxTiolrV7xadEKcZDovnmf"},{"id":115,"type":"text","selection":{"start":0,"end":26},"recordId":"JhOxdwBDso8dEPxU8UbcEw6inhb"},{"id":114,"type":"text","selection":{"start":0,"end":369},"recordId":"Fzzrd6ubso0jwNxjON7cHZnOnih"},{"id":113,"type":"text","selection":{"start":0,"end":297},"recordId":"SPCWdHB7ModuZAxcSHJcRiJ9nse"},{"id":112,"type":"text","selection":{"start":0,"end":312},"recordId":"MMVMdALRCo52mAx6nQCcr7gUnFh"},{"id":111,"type":"text","selection":{"start":0,"end":145},"recordId":"TUj1dhyW8oQA6Hxxx1KcLiVxnge"},{"id":110,"type":"text","selection":{"start":0,"end":166},"recordId":"VWhgdWbamoCVnfxAocrccdC6nVd"},{"id":109,"type":"text","selection":{"start":0,"end":342},"recordId":"XSmydYY25oEJytx7nVYcqfK6nVg"},{"id":108,"type":"text","selection":{"start":0,"end":124},"recordId":"Y5zRdPh2qoWVFHx1MBVcZaxfnPl"},{"id":107,"type":"text","selection":{"start":0,"end":11},"recordId":"DQNEdLLNjoiEg6xyXXsce2SWnCd"},{"id":106,"type":"text","selection":{"start":0,"end":599},"recordId":"RITudSF9vo9y6WxQGuOcSWiSnnh"},{"id":105,"type":"text","selection":{"start":0,"end":29},"recordId":"WMzYdsIgno97uAxHRLGcOFqLnhd"},{"id":104,"type":"text","selection":{"start":0,"end":196},"recordId":"SSgTduSmEouzbOxHr2Ec6nCxnWg"},{"id":103,"type":"text","selection":{"start":0,"end":286},"recordId":"PtjQdZokFopiRLxQ3WZclrGZnfg"},{"id":102,"type":"text","selection":{"start":0,"end":297},"recordId":"K6I6dEBwkoU6Mjxvj4FcmBP8nWd"},{"id":101,"type":"text","selection":{"start":0,"end":47},"recordId":"YJEadVgnGovUo4xedyXc4qDDnkf"},{"id":100,"type":"text","selection":{"start":0,"end":219},"recordId":"WP24dgfCDoLlMFxKsNtcVzYLnhf"},{"id":99,"type":"text","selection":{"start":0,"end":32},"recordId":"V1CVdnUBHovpptxUa8wceGFrnwf"},{"id":98,"type":"text","selection":{"start":0,"end":461},"recordId":"T9rSdIzaAoibFBx2mRicFrWCnEh"},{"id":97,"type":"text","selection":{"start":0,"end":33},"recordId":"YtN3dY6fMouadsxdPR3cygtln6g"},{"id":96,"type":"text","selection":{"start":0,"end":321},"recordId":"NvU8dxFqno6xlMxE8rrcOiTznLg"},{"id":95,"type":"text","selection":{"start":0,"end":282},"recordId":"IpMod1yQZofKWMxSJXIcj6yYnLh"},{"id":94,"type":"text","selection":{"start":0,"end":43},"recordId":"EFlYdMr6HobAeIxzL2ncEEAznOe"},{"id":93,"type":"text","selection":{"start":0,"end":302},"recordId":"UP1JdKFxjoeEI3xXl0RcIJOwnkt"},{"id":92,"type":"text","selection":{"start":0,"end":284},"recordId":"Gy1VdQkMHoUkx7xHfNTciYgynCM"},{"id":91,"type":"text","selection":{"start":0,"end":19},"recordId":"ZFEWd17U0omfbgxZFJkcC5rZnYd"},{"id":90,"type":"text","selection":{"start":0,"end":182},"recordId":"FTgzdHhMboO5eOxBPAtc8YSdnxd"},{"id":89,"type":"text","selection":{"start":0,"end":18},"recordId":"F9crdTal2oTIlGxgU27csMCpn9e"},{"id":88,"type":"text","selection":{"start":0,"end":156},"recordId":"WZQhdrgsZoXOMvxAyFUcvdV4nKc"},{"id":87,"type":"text","selection":{"start":0,"end":136},"recordId":"FqWsdtH2zoysqtxF1AhcN3DPnpz"},{"id":86,"type":"text","selection":{"start":0,"end":211},"recordId":"CmbkdJW4so8zXBxcvFxcoaxsnNd"},{"id":85,"type":"text","selection":{"start":0,"end":109},"recordId":"H6TjdlPJ4oeSa6xMd1QcKO98nGe"},{"id":52,"type":"text","selection":{"start":0,"end":43},"recordId":"BYzQds7C5oWdrsxyz1CcjTKQnSc"}],"pasteFlag":"6d735acf-10e3-457e-a7f2-cf65c00f0cdb"}" data-lark-record-format="docx/record" class="lark-record-clipboard">