您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
Let's you hear phrases and words from single choice questions based on your browsers speech synthesis (right now only phrases).
当前为
// ==UserScript== // @name Duolingo HearEverything // @namespace http://tampermonkey.net/ // @version 0.28 // @description Let's you hear phrases and words from single choice questions based on your browsers speech synthesis (right now only phrases). // @author Esh // @match https://*.duolingo.com/* // @grant GM_setValue // @grant GM_getValue // ==/UserScript== // 0.7: Mutation Observer instead of setInterval // 0.6: Add voice to choices on click // 0.6.1: check why not the innerText of the answer is displayed in the full sentence? // 0.8.1: fix speaking numbers for options // 0.9: Move speak button near the continue button // 0.10.2: set better newPage = true - deleted // 0.10.3: debug quirks from setting newPage // 0.11: cleaned up some code // 0.12: finally got rid of the new page problem // 0.13: show some debug infos on the page // 0.14: more working reading // 0.15: added more challenges to read // 0.16: Challenges, which work (some partially) // FORM, TRANSLATE, DIALOGUE, GAP_FILL, COMPLETE_REVERSE_TRANSLATION, TAP_COMPLETE // 0.17: added shortcut ALT+l // 0.18: listening button for DIALOGUE and bugfixing TRANSLATE // 0.19: better listening button // 0.20: Voice selection // 0.21: cleaned up code // 0.22: challenge translate (tap) working // 0.22.1: no speaker button with translate from learning language // 0.23: Alt + l for Duo buttons, too // 0.24: tap-complete working // 0.25: form challenge working // 0.25.1: bugfix: challenge-translate // 0.26: challenge read-comprehension // 0.27: challenge name // 0.28: autoplay for challenge translate /* // TODO: config for challenges // TODO: replace gaps with correct answers GAP_FILL, FORM, // TODO: DIALOGUE should start with reading speaker 1 // TODO: maybe add listening to speaking experience? // TODO: clean up the script even more // TODO: Tipp-Page // TODO: Hoots // TODO: selector where the speak button should be // TODO: translateInput speaker position top - where to place? // TODO: Voice selector (automagic) - 1/4 done // TODO: Add autoplay selector // more examples on the bottom // TODO: popup could be toggled by mouseover/mouseout */ const buttonPosition = 'bottom'; // bottom / top allowed let voiceSelect; let config = { test: 'do it' }; let lang = 'fr'; let autoplay = false; const DEBUG = false; let synth = window.speechSynthesis; let voices = []; let newPage = false; let addedSpeech = false; let speakerButton = ` <a class="_3UpNo _3EXrQ _2VrUB" data-test="speaker-button" title="Listen" id="speak"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 94 73" width="94" height="73" preserveAspectRatio="xMidYMid meet" style="padding-left: 20%; width: 80%; height: 100%; transform: translate3d(0px, 0px, 0px);"> <defs> <clipPath id="__lottie_element_402"><rect width="94" height="73" x="0" y="0"></rect></clipPath> <clipPath id="__lottie_element_404"> <path d="M0,0 L1000,0 L1000,1038 L0,1038z"></path> </clipPath> <clipPath id="__lottie_element_409"> <path d="M0,0 L1338,0 L1338,738 L0,738z"></path> </clipPath> </defs> <g clip-path="url(#__lottie_element_402)"> <g clip-path="url(#__lottie_element_404)" transform="matrix(0.26499998569488525,0,0,0.26499998569488525,-84.5,-101.53498840332031)" opacity="1" style="display: block;"> <g transform="matrix(1.3600000143051147,0,0,1.3600000143051147,516.219970703125,522.4000244140625)" opacity="0.9069389991639046" style="display: block;"> <path stroke-linecap="round" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4" stroke="rgb(28,176,246)" stroke-opacity="1" stroke-width="22.485592375331898" d=" M48.88100051879883,-88.13400268554688 C79.822998046875,-70.9219970703125 100.77899932861328,-37.88800048828125 100.77899932861328,0 C100.77899932861328,37.9109992980957 79.7979965209961,70.96199798583984 48.82500076293945,88.16500091552734"></path> </g> <g style="display: block;" transform="matrix(1.3600000143051147,0,0,1.3600000143051147,516.219970703125,522.4000244140625)" opacity="1"> <path stroke-linecap="round" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4" stroke="rgb(28,176,246)" stroke-opacity="1" stroke-width="20.500305987715482" d=" M24.131000518798828,-42.808998107910156 C39.055999755859375,-34.37099838256836 49.14099884033203,-18.354000091552734 49.14099884033203,0 C49.14099884033203,18.386999130249023 39.02000045776367,34.42900085449219 24.049999237060547,42.854000091552734"></path> </g> <g clip-path="url(#__lottie_element_409)" transform="matrix(1.0370399951934814,0,0,0.9629600048065186,136.53640747070312,163.66775512695312)" opacity="1" style="display: block;"> <g transform="matrix(1,0,0,1,260.93701171875,373.6780090332031)" opacity="1" style="display: block;"> <g opacity="1" transform="matrix(6,0,0,6,0,0)"> <path fill="rgb(28,176,246)" fill-opacity="1" d=" M-8.293000221252441,-11.675000190734863 C-8.293000221252441,-11.675000190734863 -0.12300000339746475,-11.675000190734863 -0.12300000339746475,-11.675000190734863 C2.9070000648498535,-11.675000190734863 5.367000102996826,-9.21500015258789 5.367000102996826,-6.184999942779541 C5.367000102996826,-6.184999942779541 5.367000102996826,6.425000190734863 5.367000102996826,6.425000190734863 C5.367000102996826,9.454999923706055 2.9070000648498535,11.914999961853027 -0.12300000339746475,11.914999961853027 C-0.12300000339746475,11.914999961853027 -8.293000221252441,11.914999961853027 -8.293000221252441,11.914999961853027 C-11.322999954223633,11.914999961853027 -13.782999992370605,9.454999923706055 -13.782999992370605,6.425000190734863 C-13.782999992370605,6.425000190734863 -13.782999992370605,-6.184999942779541 -13.782999992370605,-6.184999942779541 C-13.782999992370605,-9.21500015258789 -11.322999954223633,-11.675000190734863 -8.293000221252441,-11.675000190734863z M-4.980999946594238,-11.656999588012695 C-4.980999946594238,-11.656999588012695 10.218999862670898,-22.32699966430664 10.218999862670898,-22.32699966430664 C11.24899959564209,-23.047000885009766 12.659000396728516,-22.797000885009766 13.369000434875488,-21.777000427246094 C13.638999938964844,-21.39699935913086 13.779000282287598,-20.937000274658203 13.779000282287598,-20.476999282836914 C13.779000282287598,-20.476999282836914 13.779000282287598,20.472999572753906 13.779000282287598,20.472999572753906 C13.779000282287598,21.722999572753906 12.769000053405762,22.732999801635742 11.519000053405762,22.732999801635742 C11.059000015258789,22.732999801635742 10.609000205993652,22.593000411987305 10.218999862670898,22.322999954223633 C10.218999862670898,22.322999954223633 -4.980999946594238,11.652999877929688 -4.980999946594238,11.652999877929688 C-5.580999851226807,11.232999801635742 -5.940999984741211,10.543000221252441 -5.940999984741211,9.803000450134277 C-5.940999984741211,9.803000450134277 -5.940999984741211,-9.807000160217285 -5.940999984741211,-9.807000160217285 C-5.940999984741211,-10.536999702453613 -5.580999851226807,-11.22700023651123 -4.980999946594238,-11.656999588012695z"></path> <g opacity="1" transform="matrix(1,0,0,1,0,0)"></g> </g> </g> </g> </g> </g> </svg> </a> `; // Element definitions const WRONG_ANSWER_CLASS = '._1UqAr._1sqiF'; const RIGHT_ANSWER_CLASS = '._1UqAr._1Nmv6'; const RIGHT_CLASS = '._1Nmv6'; const WRONG_CLASS = '._1sqiF'; const ANSWER_HEADLINE = '._1x6Dk'; const ANSWER_CONTAINER = '._2ez4I'; const DIALOGUE_SPEAKER_CLASS = '_29e-M _39MJv _2Hg6H'; // currently used const ANSWER_CLASS = '._1UqAr'; const ANSWER = 'blame'; const ANSWER_QS = '[data-test~="' + ANSWER + '"]'; const RIGHT_ANSWER = 'blame-correct'; const RIGHT_ANSWER_QS = '[data-test~="' + RIGHT_ANSWER + '"]'; const WRONG_ANSWER = 'blame-incorrect'; const WRONG_ANSWER_QS = '[data-test~="' + WRONG_ANSWER + '"]'; const CHALLENGE_TAP_TOKEN = 'challenge-tap-token'; // challenge-translate (tap) const CHALLENGE_TAP_TOKEN_QS = '[data-test="' + CHALLENGE_TAP_TOKEN + '"]'; const WORD_BANK = 'word-bank'; // if exists it's tap instead of keyboard (challenge-translate) const WORD_BANK_QS = '[data-test="' + WORD_BANK + '"]'; const TRANSLATE_INPUT = 'challenge-translate-input'; const TRANSLATE_INPUT_QS = '[data-test="' + TRANSLATE_INPUT + '"]'; const SPEAKER_BUTTON = 'speaker-button'; const SPEAKER_BUTTON_QS = '[data-test="' + SPEAKER_BUTTON + '"]'; const HINT_SENTENCE = 'hint-sentence'; const HINT_SENTENCE_QS = '[data-test="' + HINT_SENTENCE + '"]'; const CHALLENGE_JUDGE = 'challenge-judge-text'; const CHALLENGE_JUDGE_QS = '[data-test="' + CHALLENGE_JUDGE + '"]'; const CHALLENGE_FORM = 'challenge-form-prompt'; const CHALLENGE_FORM_QS = '[data-test="' + CHALLENGE_FORM + '"]'; const RIGHT_OPTION_QS = '[aria-checked="true"] div'; const TEXT_INPUT = 'challenge-text-input'; const TEXT_INPUT_QS = '[data-test="' + TEXT_INPUT + '"]'; // used page types const FORM = 'challenge challenge-form'; const TRANSLATE = 'challenge challenge-translate'; // almost the same than challenge-form // read both correct solutions // <div class="_2ez4I"><h2 class="_1x6Dk _1Nmv6">Another correct solution:</h2><div class="_1UqAr _1Nmv6">On est ici.</div></div> const DIALOGUE = 'challenge challenge-dialogue'; // <div class="_29e-M _39MJv _2Hg6H" dir="ltr"> // here to add a speaker button if I want for the entry text // or before the first data-test="hint-sentence" // text to read = document.querySelector('[data-test="hint-sentence"]').parentNode.innerText const READ_COMPREHENSION = 'challenge challenge-readComprehension'; const LISTEN_COMPREHENSION = 'challenge challenge-listenComprehension'; const COMPLETE_REVERSE_TRANSLATION = 'challenge challenge-completeReverseTranslation'; const TAP_COMPLETE = 'challenge challenge-tapComplete'; const GAP_FILL = 'challenge challenge-gapFill'; const NAME = 'challenge challenge-name'; // unused page types const LISTEN = 'challenge challenge-listen'; // Word bank stuff // is not read out by Duo all the time (but at "Tap what you hear"); const LISTEN_TAP = 'challenge challenge-listenTap'; // has word bank and some filled up answer to read // document.querySelector('[data-test="hint-sentence"]').parentNode.innerText // = "Elle aime lire et elle a un \nlivre\n." // maybe we have to strip the \n // duo reads aloud const SELECT_TRANSCRIPTION = 'challenge challenge-selectTranscription'; // allowed challenge types const TEST = [FORM, TRANSLATE, DIALOGUE, GAP_FILL, COMPLETE_REVERSE_TRANSLATION, TAP_COMPLETE, LISTEN_COMPREHENSION, READ_COMPREHENSION, NAME]; var buttonDisabled = true; function setVoice() { voiceSelect = GM_getValue('voiceSelect', 1000); console.debug('HearEverything: stored voice = ' + voiceSelect); var duoState = JSON.parse(localStorage.getItem('duo.state')); lang = duoState.user.learningLanguage; if(voiceSelect == 1000) { for (let i = 0; i < voices.length; i++) { if(voices[i].lang.includes(lang)) { voiceSelect = i; console.debug('HearEverything: auto set voice'); } } } console.debug(`HearEverything: voice = ${voiceSelect}, learning language = ${lang}`); } // toggles visibility function togglePopout(id) { let popout = document.getElementById(id); popout.style.display === "none" ? popout.style.display = "block" : popout.style.display = "none"; } function readConfig() { config.ap_timeout = GM_getValue('HearEverything_autoplay_timeout', 1500); config.he_ct_auto = GM_getValue('HearEverything_ct_autoplay', false); console.debug(config); //return config; } function addConfig() { if(!document.querySelector('#hearEverythingGear') && document.querySelector('[role="progressbar"]')) { let configButton = document.createElement('button'); configButton.setAttribute('id', 'hearEverythingGear'); configButton.setAttribute('class', '_2hiHn _2kfEr _1nlVc _2fOC9 UCrz7 t5wFJ _1DC8p _2jNpf'); configButton.setAttribute('style', `grid-column: 3/3; background-image:url(//d35aaqx5ub95lt.cloudfront.net/images/gear.svg); background-position: 0px 0px; background-repeat: no-repeat; background-size: contain;`); let configDiv = document.createElement('div'); configDiv.setAttribute('class','_3yqw1 np6Tv _1Xlh1'); configDiv.setAttribute('style','display: none; position: fixed; margin-top: 1rem;'); configDiv.setAttribute('id','hearEverythingConfig'); let options = '<option value="1000">Auto</option>'; for (let i = 0; i < voices.length; i++) { options += `<option value="${i}">${voices[i].name}</option>`; } let styleCheckbox = 'style="vertical-align: bottom;"'; let configTranslate = ` <div class="QowCP" id="he_configChallenges"> <div> <span>Challenge Translate: </span> <span><label for="he_ct_auto">auto play: </label><input type="checkbox" id="he_ct_auto" value="autoplay" ${styleCheckbox}></input></span> </div> </div> `; configDiv.innerHTML = ` <div class="_3uS_y eIZ_c" data-test="config-popout" style="--margin:20px;"> <div class="_2O14B _2XlFZ _1v2Gj WCcVn" style="z-index: 1;"> <div class="_1KUxv _1GJUD _3lagd SSzTP" style="width: auto;"><div class="_1cv-y"></div> <div class="QowCP"> <div class="_1m77f" style="text-align: center">Language <select style="background-color: #ffc800; color: white;" id="configLanguage"> ${options} </select> </div> </div> ${configTranslate} </div> </div>`; document.querySelector('[role="progressbar"]').insertAdjacentElement('afterend',configButton); configButton.insertAdjacentElement('afterend', configDiv); configButton.addEventListener('click', function () { togglePopout('hearEverythingConfig'); }); let configLanguage = document.getElementById('configLanguage') configLanguage.querySelector('[value="' + voiceSelect + '"]').setAttribute('selected', true); configLanguage.addEventListener('change', function() { voiceSelect = configLanguage.options[configLanguage.selectedIndex].value; GM_setValue('voiceSelect', voiceSelect); setVoice(); }); document.getElementById('he_ct_auto').checked = config.he_ct_auto; document.getElementById('he_configChallenges').addEventListener('change', function(e) { GM_setValue('HearEverything_ct_autoplay', e.target.checked); config.he_ct_auto = e.target.checked; }); } } function start() { if (document.querySelector('[data-test="challenge-header"]')) { addConfig(); buildDebug(); checkNewPage(); let challenge = getChallengeType(); if(challenge !== null) { // if we have an accepted challenge, we want to process this page, so we set newPage; // maybe replace it with blame exists and blame does not exist for addedSpeech ... if (newPage === true) { // ._3MD8I also available for wrong answers // better use blame if (document.querySelector(ANSWER_QS) !== null) { renderAnswerSpeakButton(); } else if((addedSpeech===false)&&(document.querySelectorAll(CHALLENGE_JUDGE_QS).length!==0)) { if (challenge[0] === LISTEN_COMPREHENSION) { // || challenge[0] === READ_COMPREHENSION) { let hint = document.querySelectorAll(HINT_SENTENCE_QS)[1].innerText.replace('...', ''); addSpeech(hint); addedSpeech = true; } if (challenge[0] === FORM || challenge[0] === DIALOGUE || challenge[0] === GAP_FILL) { addSpeech(); addedSpeech = true; } /* console.groupCollapsed('Add hearing abilities (options)'); console.debug(getChallengeType()[0]); // if eventListeners were not bound yet addSpeech(); addedSpeech = true; console.debug('Now speech is attached to options'); console.groupEnd('Add hearing abilities (options)'); */ } } } else { // we detected no content to use, so we are not interested in this page newPage = false; } } // end challenge-header detection } function prepareChallengeGapFill() { let answer; if (document.querySelector(RIGHT_ANSWER_QS)) { answer = document.querySelector(RIGHT_OPTION_QS).innerText; } if (document.querySelector(WRONG_ANSWER_QS)) { let answerElement = document.querySelector(ANSWER_CLASS); if(answerElement.lastElementChild) { answer = answerElement.lastElementChild.innerText; } else { answer = answerElement.innerText; } } let read = document.querySelector(HINT_SENTENCE_QS).parentNode.innerText.replace('\n', answer); return read; } function prepareChallengeForm() { let answer; if (document.querySelector(RIGHT_ANSWER_QS)) { answer = document.querySelector(RIGHT_OPTION_QS).innerText; } if (document.querySelector(WRONG_ANSWER_QS)) { let answerElement = document.querySelector(ANSWER_CLASS); if(answerElement.lastElementChild) { answer = answerElement.lastElementChild.innerText; } else { answer = answerElement.innerText; } } let read = document.querySelector(CHALLENGE_FORM_QS).getAttribute('data-prompt').replace(/_+/, answer); return read; /* let read; let solution = document.querySelector('._1UqAr'); // if it's the right solution, we get it from the selected choice if (solution.classList.contains('_1Nmv6')) { read = formPrompt.getAttribute('data-prompt').replace(/_+/,document.querySelector('[aria-checked="true"] div').innerText); console.debug('Form Prompt: right answer'); } else { // if it's wrong, we have to get it from the right solution display read = formPrompt.getAttribute('data-prompt').replace(/_+/,solution.innerText); console.debug('Form Prompt: wrong answer'); } if (DEBUG) document.querySelector('#mySentence').innerText = read; return read; */ } function prepareChallengeName() { let read; if (document.querySelector(RIGHT_ANSWER_QS)) { read = document.querySelector(TEXT_INPUT_QS).value; } if (document.querySelector(WRONG_ANSWER_QS)) { read = document.querySelector(ANSWER_CLASS).innerText; } return read; } function prepareChallengeTranslate() { let read; if (document.querySelector(RIGHT_ANSWER_QS)) { if (document.querySelector(WORD_BANK_QS)) { read = document.querySelector(CHALLENGE_TAP_TOKEN_QS).parentNode.parentNode.innerText.replace(/\n/g, ' '); } else { let tI = document.querySelector(TRANSLATE_INPUT_QS); if (tI.lang === lang) read = tI.innerHTML; } } if (document.querySelector(WRONG_ANSWER_QS)) { let answer = document.querySelector(ANSWER_CLASS); if(answer.lastElementChild) { read = answer.lastElementChild.innerText; } else { read = answer.innerText; } } if (document.querySelector(SPEAKER_BUTTON_QS)) read = ''; // console.debug('HearEverything: read = ' + read); return read; /* if(document.querySelector('._1UqAr._1Nmv6')) { read = document.querySelector('._1UqAr._1Nmv6').innerText; } else if(document.querySelector('._1UqAr._1sqiF')) { if (document.querySelector('._1UqAr._1sqiF').lastElementChild) { read = document.querySelector('._1UqAr._1sqiF').lastElementChild.innerText; } else { read = document.querySelector('._1UqAr._1sqiF').innerText; } } else { let translateInput = document.querySelector('[data-test="challenge-translate-input"]'); if (translateInput !== null && translateInput.lang === lang) { //read = readTranslateInput(translateInput); read = translateInput.textContent; } } */ } function prepareChallengeTapComplete() { let read; if (document.querySelector(RIGHT_ANSWER_QS)) { read = document.querySelector(HINT_SENTENCE_QS).parentNode.innerText.replace(/\n/g, ' '); } if (document.querySelector(WRONG_ANSWER_QS)) { read = document.querySelector(ANSWER_CLASS).innerText; } // console.debug('HearEverything: read = ' + read); return read; } function prepareChallengeDialogue() { let read //let hints = document.querySelectorAll('[data-test="hint-token"]'); let speaker1 = document.querySelector('[class="' + DIALOGUE_SPEAKER_CLASS + '"]').innerText; //hints.forEach(function(hint) { speaker1 += hint; }); let speaker2; if(document.querySelector(WRONG_ANSWER_QS)) { speaker2 = document.querySelector('._1UqAr._1sqiF').innerText; } else { speaker2 = document.querySelector('[aria-checked="true"]').querySelector('[data-test="challenge-judge-text"]').innerText; } read = speaker1 + '\n' + speaker2; return read } function prepareChallengeReadComprehension() { let read //let hints = document.querySelectorAll('[data-test="hint-token"]'); let speaker1 = document.querySelector(HINT_SENTENCE_QS).innerText; //hints.forEach(function(hint) { speaker1 += hint; }); let speaker2; if(document.querySelector(WRONG_ANSWER_QS)) { speaker2 = document.querySelector(ANSWER_CLASS).innerText; } else { speaker2 = document.querySelector(RIGHT_OPTION_QS).innerText; } read = speaker1 + '\n' + document.querySelectorAll(HINT_SENTENCE_QS)[1].innerText.replace('...', ' ' +speaker2); return read } function renderAnswerSpeakButton() { // document.querySelector('._1UqAr._1Nmv6').innerText; Always the answer? // let test = [FORM, TRANSLATE, DIALOGUE, GAP_FILL, COMPLETE_REVERSE_TRANSLATION]; // console.groupCollapsed('Add hearing abilities (input)'); // console.debug(getChallengeType()[0]); // console.debug('Solution detected'); let read = ''; let challenge = getChallengeType()[0]; if (challenge === FORM) { read = prepareChallengeForm(); /* let formPrompt = document.querySelector('[data-test="challenge-form-prompt"]'); if (formPrompt !== null) { read = readFormPrompt(formPrompt); } */ } if (challenge === TRANSLATE) { read = prepareChallengeTranslate(); } if (challenge === DIALOGUE) { read = prepareChallengeDialogue(); } if (challenge === READ_COMPREHENSION) { read = prepareChallengeReadComprehension(); } if (challenge === NAME) { read = prepareChallengeName(); } if (challenge === GAP_FILL) { read = prepareChallengeGapFill(); } if (challenge === COMPLETE_REVERSE_TRANSLATION) { read = prepareChallengeTranslate(); /* let translateInput = document.querySelector('[data-test="challenge-translate-input"]'); if (translateInput !== null && translateInput.lang === lang) { read = readTranslateInput(translateInput); } */ } if (challenge === TAP_COMPLETE) { read = prepareChallengeTapComplete(); } console.debug('HearEverything: read = ' + read); let utter = new SpeechSynthesisUtterance(read); utter.voice = voices[voiceSelect]; // add speaker button to answer and fill in the correct answer in the headline updateText(read); // if we have added the speaker button, we find it in the document let speak = document.querySelector('#speak'); if(speak) { speak.addEventListener('click',function(){synth.speak(utter);}); // console.debug('EventListener bound to speak button'); if (DEBUG) document.querySelector('#mySentence').innerText = read; document.getElementById('speak').title = read; } else { console.debug('HearEverything: No speak button found'); } // do it for every page to trigger the Duo speaker button also document.removeEventListener('keydown', myShortcutListener); document.addEventListener('keydown', myShortcutListener); newPage = false; // console.debug('Now it\'s an old page'); addedSpeech = false; // console.debug('Reset: speech isn\'t attached to options any more'); if (DEBUG) document.querySelector('#myOptions').innerText = 'disabled'; // if you like autoplay, it waits 1 second an plays it if (challenge === TRANSLATE && config.he_ct_auto === true) setTimeout(synth.speak(utter),config.ap_timeout); // console.groupEnd('Add hearing abilities (input)'); } function myShortcutListener(event) { let speak = document.querySelector('#speak'); let duoSpeak = document.querySelector(SPEAKER_BUTTON_QS); // ALT + l combo if (event.altKey && event.key === 'l') { if (speak) { speak.click(); } else if (duoSpeak) duoSpeak.click(); //console.debug('Duolingo HearEverything: alt = ' + event.altKey + ' + ' + event.key); } } function readTapComplete(tap) { let read = ''; let words = tap.childNodes; words.forEach(function(word) { if (word.nodeName === 'SPAN') read += word.children[0].innerText; if (word.nodeName === 'DIV') { read += word.querySelector('[class="_2Z2xv"]').children[0].innerText; } }); return read; } // gives some debug information directly in the Duo-GUI function buildDebug() { if(DEBUG) { if(!document.querySelector('#myChallenge')) { let debug = document.createElement('div'); debug.innerHTML = `<span>Challenge-Name: <span id="myChallenge">${getChallengeType(true)[0]}</span></span> <span>Sentence to speak: <span id="mySentence"></span></span> <span>Speak options: <span id="myOptions">disabled</span></span>`; debug.style = "font-size: small; text-align:left; display:grid;"; document.querySelector('[data-test="challenge-header"]').insertAdjacentElement('afterend', debug); } } } function checkNewPage() { if(!document.querySelector('#myNewPage')) { let nP = document.createElement('div'); nP.id = 'myNewPage'; document.querySelector('[data-test="challenge-header"]').insertAdjacentElement('afterend', nP); //console.debug('---- div - newPage ----'); console.debug('HearEverything: Challenge Type = ' + getChallengeType(true)[0]); newPage = true; } else { //console.debug('---- div - oldPage ----'); } } function readTranslateInput(translateInput) { /* TODO: Word bank <div class="tVzIv"> <div class="_3IcNx _1C_S3 _1HxVp"> <div class="_2PLYW"><div class="Qwwbl"> <div class="_1uasP" dir="ltr"> <div class="_349xo"><div class="_3Myq_ _15J0U"></div> <div class="_3Myq_ _15J0U"></div> <div class="_3Myq_ _15J0U"></div> <div class="_3Myq_ _15J0U"></div> <div class="_3Myq_ _15J0U"></div> </div> <div class="PcKtj" tabindex="0"> <div class="_1DaLk _2LmyT"> <button class="_3XI03 _2mG9r notranslate _2XgEJ _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">ton</button> </div> <div class="_1DaLk _2LmyT"> <button class="_3XI03 _2mG9r notranslate _2XgEJ _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">père</button> </div> <div class="_1DaLk _2LmyT"> <button class="_3XI03 _2mG9r notranslate _2XgEJ _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">va</button> </div> <div class="_1DaLk _2LmyT"> <button class="_3XI03 _2mG9r notranslate _2XgEJ _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">bien</button> </div> </div> </div> </div> </div> */ // does not exist on right answers?! let read = ''; let solution = document.querySelector(ANSWER_CLASS); if (document.querySelector(ANSWER_CONTAINER).childNodes.length === 1) { // right answer read = translateInput.innerHTML; console.debug('Translate Input: right answer'); /* another correct answer seems not to be recognized as correct answer it reads the other answer given not my answer <div class="_2ez4I"><h2 class="_1x6Dk _1Nmv6">Another correct solution:</h2><div class="_1UqAr _1Nmv6">Une pizza, s'il vous plaît.</div></div> */ } else if (solution.classList.contains(RIGHT_CLASS)) { read = ''; // pay attention to accents // better read the solution here /* <div class="_2ez4I"> <h2 class="_1x6Dk _1Nmv6">Pay attention to the accents.</h2> <div class="_1UqAr _1Nmv6"> <span> <span class="_3gI0Y">J'habite</span> <span> en Europe.</span> </span> </div></div> */ // or /* <div class="_1UqAr _1Nmv6"> <span> <span>Julia </span> <span class="_3gI0Y">travaille</span> <span> à Paris.</span> </span> </div> */ let span = solution.querySelector('span'); if(span) { for (let i=0; i<span.childNodes.length; i++) { read += span.childNodes[i].innerHTML + ' '; } } // did not work for - maybe now it does /* <div class="_2ez4I"> <h2 class="_1x6Dk _1Nmv6">You have a typo.</h2> <div class="_1UqAr _1Nmv6"> <span> <span>un </span> <span class="_3gI0Y">passeport</span> <span> américain</span> </span> </div> </div> */ /* did not work for - it reads out "undefinedundefined" <div class="_2ez4I"> <h2 class="_1x6Dk _1sqiF">Common mistake!</h2> <div class="_1UqAr _1sqiF"> <span class="_3BNQd">Correct solution:</span> <span>Tu prends la voiture ?</span> </div></div> */ console.debug('Translate Input: right answer with little mistake'); } else { /* // totally wrong answer let span = solution.querySelector('span'); if(span) { for (let i=0; i<span.childNodes.length; i++) { read += span.childNodes[i].innerHTML + ' '; } } else { read = solution.innerHTML; console.debug('Translate Input: wrong answer'); } */ readWrongAnswer(solution); } return read; } function readWrongAnswer(solution) { // totally wrong answer let read = ''; let span = solution.querySelector('span'); if(span) { for (let i=0; i<span.childNodes.length; i++) { read += span.childNodes[i].innerHTML + ' '; } } else { read = solution.innerHTML; console.debug('Translate Input: wrong answer'); } return read; } function readFormPrompt(formPrompt) { let read; let solution = document.querySelector('._1UqAr'); // if it's the right solution, we get it from the selected choice if (solution.classList.contains('_1Nmv6')) { read = formPrompt.getAttribute('data-prompt').replace(/_+/,document.querySelector('[aria-checked="true"] div').innerText); console.debug('Form Prompt: right answer'); } else { // if it's wrong, we have to get it from the right solution display read = formPrompt.getAttribute('data-prompt').replace(/_+/,solution.innerText); console.debug('Form Prompt: wrong answer'); } if (DEBUG) document.querySelector('#mySentence').innerText = read; return read; } // gets the type of the current challenge // returns array [type, HTMLElement] // returns null if no usable type is found // if returnEverything = true, it returns also noType function getChallengeType(returnEverything = false) { let type = null; let noType = ['Unidentified Page Type']; // replace data-test= with data-test~= and TRANSLATE = 'challenge-translate" for (let i = 0; i < TEST.length; i++) { if (document.querySelector(`[data-test="${TEST[i]}"]`)) { type = [TEST[i], document.querySelector(`[data-test="${TEST[i]}"]`)]; } } if (document.querySelector(`[data-test="${SELECT_TRANSCRIPTION}"]`)) { noType = ['No usable page type (' + SELECT_TRANSCRIPTION + ')','']; } if (document.querySelector(`[data-test="${READ_COMPREHENSION}"]`)) { noType = ['No usable page type (' + READ_COMPREHENSION + ')','']; } if (document.querySelector(`[data-test="${LISTEN}"]`)) { noType = ['No usable page type (' + LISTEN + ')','']; } if (document.querySelector(`[data-test="${LISTEN_TAP}"]`)) { noType = ['No usable page type (' + LISTEN_TAP + ')','']; } if (document.querySelector(`[data-test="${LISTEN_COMPREHENSION}"]`)) { noType = ['No usable page type (' + LISTEN_COMPREHENSION + ')','']; } // type ? console.info('HearEverything: Page Type = ' + type[0]) : console.info('HearEverything: ' + noType[0]); if(returnEverything) { return type ? type : noType; } else { return type; } } // checks the check / continue button if we can use it for tracking different states // looks like the button goes from check enabled to disabled to continue enabled function buttonCheck() { let button = document.querySelector('._10vOG').querySelector('button'); if (button.disabled) { if(buttonDisabled) { console.groupCollapsed('Check / Continue Button (disabled)'); //console.debug('disabled'); console.debug(button); console.groupEnd('Check / Continue Button (disabled)'); buttonDisabled = false; } } else if (!buttonDisabled) { console.groupCollapsed('Check / Continue Button (enabled)'); //console.debug('enabled'); console.debug(button); console.groupEnd('Check / Continue Button (enabled)'); buttonDisabled = true; } } window.onload = function() { //_1UqAr - class for answer // data-test="challenge-form-prompt" - tag with fill-ins //data-prompt //aria-checked tag with fill-in options // _1Nmv6 - class for right answer // _1sqiF - class for wrong answer // data-test="challenge-translate-input" - free input field (lang="fr" / lang="en") // _1Nmv6 - class for right answer // _1UqAr - answer text (if wrong / typo) // <h2 class="_1x6Dk" - answer heading 'use strict'; // console.log('---------------------onload-------------------------'); voices = window.speechSynthesis.getVoices(); console.debug(voices); setVoice(); readConfig(); new MutationObserver(start).observe(document.body, { // attributes: true, childList: true, subtree: true }); console.debug('MutationObserver running'); } function addSpeech(t = '') { //console.debug('Add speech to the option buttons:'); if (t !== '') t += ' '; let options = document.querySelectorAll(CHALLENGE_JUDGE_QS); for (let i=0; i<options.length; i++) { let utter = new SpeechSynthesisUtterance(t + options[i].innerText); utter.voice = voices[voiceSelect]; options[i].parentNode.addEventListener('click',function(){synth.speak(utter);}); // console.debug('EventListener bound: ' + options[i].innerHTML); console.debug('HearEverything: Option = ' + t + options[i].innerText); // options[i].id = 'eventListener' + i; } if (DEBUG) document.querySelector('#myOptions').innerText = 'enabled'; } function updateText(t) { // don't add a listen button if there is no text t if (t !== '') { // console.debug('We should now add a speak button'); let formPrompt = document.querySelector('[data-test="challenge-form-prompt"]'); let translateInput = document.querySelector('[data-test="challenge-translate-input"]'); if(buttonPosition === 'top') { // TODO: what do we do with translateInput? /* if(formPrompt) { formPrompt.innerHTML = `<div dir="ltr"> ${speakerButton} <span>${t}</span> </div>`; console.debug('Speaker Button Top added'); } */ } else { /* if(formPrompt) { formPrompt.innerHTML = `<div dir="ltr"> <span>${t}</span> </div>`; console.debug('Form Prompt Text changed'); } */ //if(formPrompt || (translateInput !== null && translateInput.lang === lang)) { if(TEST.includes(getChallengeType()[0])) { // <div class="np6Tv" style="position: absolute; grid-column: 4/5; justify-self: end;"> let div = document.createElement('div'); div.class = 'np6Tv'; div.style = 'position: absolute; align-self: flex-end; top: 1.8rem;'; div.innerHTML = speakerButton; // if the answer is displayed if(document.querySelector('._3dRS9._3DKa-._1tuLI')) { if (translateInput !== null) { if (translateInput.lang === lang) { document.querySelector('._3dRS9._3DKa-._1tuLI').insertAdjacentElement('afterBegin',div); // console.debug('Speaker Button Bottom added'); } } else { document.querySelector('._3dRS9._3DKa-._1tuLI').insertAdjacentElement('afterBegin',div); // console.debug('Speaker Button Bottom added'); } } } } } } // Tipp Page // <div aria-label="choice" role="radiogroup" class="_1WbXO _9qT-e"><div aria-checked="false" aria-disabled="false" class="_3C_oC _2bJln _2-OmZ" role="radio" tabindex="-1" data-test="challenge-choice"><span class="_2R_o5 _2S0Zh _28sjs">1</span><div data-test="challenge-judge-text" class="_2CuNz C6wiC" dir="ltr">habiter</div></div><div aria-checked="true" aria-disabled="false" class="_3C_oC disCS _2bJln _2-OmZ" role="radio" tabindex="0" data-test="challenge-choice"><span class="Z7UoT _2S0Zh _28sjs">2</span><div data-test="challenge-judge-text" class="_2CuNz C6wiC" dir="ltr">habite</div></div></div> // // Challenge-form // <div class="_863KE _1bemu"><div data-test="challenge challenge-form" class="e4VJZ FQpeZ"><div class="uH5m4 lHi6I _32AJE LI3ZR"><div class="FZpIH"><h1 data-test="challenge-header" class="_2LZl6"><span>Select the missing word</span></h1></div><div class="mfj2W _3IQqi _2RC-4 d84Fd"><div data-test="challenge-form-prompt" class="_2SfAl _2Hg6H" data-prompt="___ garçon mexicain"><div dir="ltr"><span></span><span class="_2Iqyl"><span class="_167HH"></span></span><span> garçon mexicain</span></div></div><div aria-label="choice" role="radiogroup" class="_35Xo_ _9qT-e _3hkYG _2Nv1I"><div aria-checked="true" aria-disabled="true" class="_3C_oC disCS hfPEz _2bJln _1p2g7 _2-OmZ" role="radio" tabindex="-1" data-test="challenge-choice"><span class="Z7UoT _2S0Zh _28sjs">1</span><div data-test="challenge-judge-text" class="_2CuNz C6wiC" dir="ltr">le</div></div><div aria-checked="false" aria-disabled="true" class="_3C_oC hfPEz _2bJln _1p2g7 _2-OmZ" role="radio" tabindex="-1" data-test="challenge-choice"><span class="_2R_o5 _2S0Zh _28sjs">2</span><div data-test="challenge-judge-text" class="_2CuNz C6wiC" dir="ltr">la</div></div></div></div></div></div></div> // // Error //<div class="kVhsm" data-test="blame blame-incorrect"><div class="_3UpNo _2VrUB"><span class="OLn6a _3Hb2o _2jNpf"></span></div><div class="_3BY4x"><div class="GnyZd _3mObn"><div class="_2ez4I"><h2 class="_1x6Dk _1sqiF">Correct solution:</h2><div class="_1UqAr _1sqiF">un homme et un chat</div></div></div><div class="_3MD8I"><button class="_2tfS2 _3CCt9 _2kfEr _1nlVc _2fOC9 UCrz7 t5wFJ"><div class="_3cRbJ sf9Rc"></div><span class="_28V9T _3yAjN">Report</span></button><button class="_2tfS2 _3CCt9 _2kfEr _1nlVc _2fOC9 UCrz7 t5wFJ" data-test="discussion-button"><div class="_1BpR_ sf9Rc"></div><span class="_28V9T _3yAjN">Discuss</span></button></div></div></div> // // Challenge-translate //<div class="_1Zh-d _1lDmW d84Fd"><div data-test="challenge-translate-prompt" class="_2qYLw _3oxW8 _2Hg6H"><div class="_3mO3g"><div class="F2B9m"><div class="_2Dn_R"><img alt="" class="_3vCW1 _1RL1c" src="https://d2pur3iezf4d1j.cloudfront.net/images/3749d548da7d349c89c158483beaff29"><span class="_3a8EI _1n2tS _1RL1c"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 236 350" width="236" height="350" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%; transform: translate3d(0px, 0px, 0px);"><defs><clipPath id="__lottie_element_1136"><rect width="236" height="350" x="0" y="0"></rect></clipPath><clipPath id="__lottie_element_1142"><path d="M0,0 L260,0 L260,278 L0,278z"></path></clipPath><mask id="__lottie_element_1160" mask-type="alpha"><g transform="matrix(1.0299999713897705,0,0,1.0299999713897705,141.16200256347656,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C4.789000034332275,-11.321000099182129 8.678999900817871,-7.431000232696533 8.678999900817871,-2.6410000324249268 C8.678999900817871,-2.6410000324249268 8.678999900817871,2.6389999389648438 8.678999900817871,2.6389999389648438 C8.678999900817871,7.428999900817871 4.789000034332275,11.319000244140625 -0.0010000000474974513,11.319000244140625 C-4.790999889373779,11.319000244140625 -8.680999755859375,7.428999900817871 -8.680999755859375,2.6389999389648438 C-8.680999755859375,2.6389999389648438 -8.680999755859375,-2.6410000324249268 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-7.431000232696533 -4.790999889373779,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g></mask><mask id="__lottie_element_1166" mask-type="alpha"><g transform="matrix(1.0299999713897705,0,0,1.0299999713897705,141.16200256347656,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C4.789000034332275,-11.321000099182129 8.678999900817871,-7.431000232696533 8.678999900817871,-2.6410000324249268 C8.678999900817871,-2.6410000324249268 8.678999900817871,2.6389999389648438 8.678999900817871,2.6389999389648438 C8.678999900817871,7.428999900817871 4.789000034332275,11.319000244140625 -0.0010000000474974513,11.319000244140625 C-4.790999889373779,11.319000244140625 -8.680999755859375,7.428999900817871 -8.680999755859375,2.6389999389648438 C-8.680999755859375,2.6389999389648438 -8.680999755859375,-2.6410000324249268 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-7.431000232696533 -4.790999889373779,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g></mask><mask id="__lottie_element_1181" mask-type="alpha"><g transform="matrix(1.0299999713897705,0,0,1.0299999713897705,100.16200256347656,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C4.789000034332275,-11.321000099182129 8.678999900817871,-7.431000232696533 8.678999900817871,-2.6410000324249268 C8.678999900817871,-2.6410000324249268 8.678999900817871,2.6389999389648438 8.678999900817871,2.6389999389648438 C8.678999900817871,7.428999900817871 4.789000034332275,11.319000244140625 -0.0010000000474974513,11.319000244140625 C-4.790999889373779,11.319000244140625 -8.680999755859375,7.428999900817871 -8.680999755859375,2.6389999389648438 C-8.680999755859375,2.6389999389648438 -8.680999755859375,-2.6410000324249268 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-7.431000232696533 -4.790999889373779,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g></mask><mask id="__lottie_element_1187" mask-type="alpha"><g transform="matrix(1.0299999713897705,0,0,1.0299999713897705,100.16200256347656,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C4.789000034332275,-11.321000099182129 8.678999900817871,-7.431000232696533 8.678999900817871,-2.6410000324249268 C8.678999900817871,-2.6410000324249268 8.678999900817871,2.6389999389648438 8.678999900817871,2.6389999389648438 C8.678999900817871,7.428999900817871 4.789000034332275,11.319000244140625 -0.0010000000474974513,11.319000244140625 C-4.790999889373779,11.319000244140625 -8.680999755859375,7.428999900817871 -8.680999755859375,2.6389999389648438 C-8.680999755859375,2.6389999389648438 -8.680999755859375,-2.6410000324249268 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-7.431000232696533 -4.790999889373779,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g></mask><mask id="__lottie_element_1209" mask-type="alpha"><g transform="matrix(1.0069999694824219,0,0,1.0069999694824219,120.72699737548828,271.3590087890625)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-20.621999740600586,-54.03499984741211 C-20.621999740600586,-54.03499984741211 20.618000030517578,-54.03499984741211 20.618000030517578,-54.03499984741211 C28.347999572753906,-54.03499984741211 34.608001708984375,-47.775001525878906 34.608001708984375,-40.04499816894531 C34.608001708984375,-40.04499816894531 34.608001708984375,40.04499816894531 34.608001708984375,40.04499816894531 C34.608001708984375,47.76499938964844 28.347999572753906,54.03499984741211 20.618000030517578,54.03499984741211 C20.618000030517578,54.03499984741211 -20.621999740600586,54.03499984741211 -20.621999740600586,54.03499984741211 C-28.351999282836914,54.03499984741211 -34.61199951171875,47.76499938964844 -34.61199951171875,40.04499816894531 C-34.61199951171875,40.04499816894531 -34.61199951171875,-40.04499816894531 -34.61199951171875,-40.04499816894531 C-34.61199951171875,-47.775001525878906 -28.351999282836914,-54.03499984741211 -20.621999740600586,-54.03499984741211z"></path></g></g></mask><mask id="__lottie_element_1215" mask-type="alpha"><g transform="matrix(1,0,0,1,120.72699737548828,271.3590087890625)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-20.621999740600586,-54.03499984741211 C-20.621999740600586,-54.03499984741211 20.618000030517578,-54.03499984741211 20.618000030517578,-54.03499984741211 C28.347999572753906,-54.03499984741211 34.608001708984375,-47.775001525878906 34.608001708984375,-40.04499816894531 C34.608001708984375,-40.04499816894531 34.608001708984375,40.04499816894531 34.608001708984375,40.04499816894531 C34.608001708984375,47.76499938964844 28.347999572753906,54.03499984741211 20.618000030517578,54.03499984741211 C20.618000030517578,54.03499984741211 -20.621999740600586,54.03499984741211 -20.621999740600586,54.03499984741211 C-28.351999282836914,54.03499984741211 -34.61199951171875,47.76499938964844 -34.61199951171875,40.04499816894531 C-34.61199951171875,40.04499816894531 -34.61199951171875,-40.04499816894531 -34.61199951171875,-40.04499816894531 C-34.61199951171875,-47.775001525878906 -28.351999282836914,-54.03499984741211 -20.621999740600586,-54.03499984741211z"></path></g></g></mask><mask id="__lottie_element_1221" mask-type="alpha"><g transform="matrix(1,0,0,1,120.72699737548828,271.3590087890625)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-20.621999740600586,-54.03499984741211 C-20.621999740600586,-54.03499984741211 20.618000030517578,-54.03499984741211 20.618000030517578,-54.03499984741211 C28.347999572753906,-54.03499984741211 34.608001708984375,-47.775001525878906 34.608001708984375,-40.04499816894531 C34.608001708984375,-40.04499816894531 34.608001708984375,40.04499816894531 34.608001708984375,40.04499816894531 C34.608001708984375,47.76499938964844 28.347999572753906,54.03499984741211 20.618000030517578,54.03499984741211 C20.618000030517578,54.03499984741211 -20.621999740600586,54.03499984741211 -20.621999740600586,54.03499984741211 C-28.351999282836914,54.03499984741211 -34.61199951171875,47.76499938964844 -34.61199951171875,40.04499816894531 C-34.61199951171875,40.04499816894531 -34.61199951171875,-40.04499816894531 -34.61199951171875,-40.04499816894531 C-34.61199951171875,-47.775001525878906 -28.351999282836914,-54.03499984741211 -20.621999740600586,-54.03499984741211z"></path></g></g></mask><mask id="__lottie_element_1228" mask-type="alpha"><g transform="matrix(1,0,0,1,120.72699737548828,271.3590087890625)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-20.621999740600586,-54.03499984741211 C-20.621999740600586,-54.03499984741211 20.618000030517578,-54.03499984741211 20.618000030517578,-54.03499984741211 C28.347999572753906,-54.03499984741211 34.608001708984375,-47.775001525878906 34.608001708984375,-40.04499816894531 C34.608001708984375,-40.04499816894531 34.608001708984375,40.04499816894531 34.608001708984375,40.04499816894531 C34.608001708984375,47.76499938964844 28.347999572753906,54.03499984741211 20.618000030517578,54.03499984741211 C20.618000030517578,54.03499984741211 -20.621999740600586,54.03499984741211 -20.621999740600586,54.03499984741211 C-28.351999282836914,54.03499984741211 -34.61199951171875,47.76499938964844 -34.61199951171875,40.04499816894531 C-34.61199951171875,40.04499816894531 -34.61199951171875,-40.04499816894531 -34.61199951171875,-40.04499816894531 C-34.61199951171875,-47.775001525878906 -28.351999282836914,-54.03499984741211 -20.621999740600586,-54.03499984741211z"></path></g></g></mask><clipPath id="__lottie_element_1258"><path d="M0,0 L102,0 L102,194 L0,194z"></path></clipPath><clipPath id="__lottie_element_1271"><path d="M0,0 L102,0 L102,194 L0,194z"></path></clipPath></defs><g clip-path="url(#__lottie_element_1136)"><g transform="matrix(1,0,0,1,201.5159912109375,349.56500244140625)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M2.88100004196167,-7.311999797821045 C2.88100004196167,-7.311999797821045 7.330999851226807,-2.871999979019165 7.330999851226807,-2.871999979019165 C8.930999755859375,-1.281999945640564 8.930999755859375,1.2879999876022339 7.330999851226807,2.868000030517578 C7.330999851226807,2.868000030517578 2.88100004196167,7.308000087738037 2.88100004196167,7.308000087738037 C1.2910000085830688,8.89799976348877 -1.2890000343322754,8.89799976348877 -2.878999948501587,7.308000087738037 C-2.878999948501587,7.308000087738037 -7.339000225067139,2.868000030517578 -7.339000225067139,2.868000030517578 C-8.928999900817871,1.2879999876022339 -8.928999900817871,-1.281999945640564 -7.339000225067139,-2.871999979019165 C-7.339000225067139,-2.871999979019165 -2.878999948501587,-7.311999797821045 -2.878999948501587,-7.311999797821045 C-1.2890000343322754,-8.902000427246094 1.2910000085830688,-8.902000427246094 2.88100004196167,-7.311999797821045z"></path></g></g><g transform="matrix(1,0,0,1,201.989990234375,342.4200134277344)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-3.0959999561309814,-8.979999542236328 C-6.696000099182129,-7.739999771118164 -8.63599967956543,-3.890000104904175 -7.535999774932861,-0.2800000011920929 C-7.535999774932861,-0.2800000011920929 -7.455999851226807,-0.03999999910593033 -7.455999851226807,-0.03999999910593033 C-7.455999851226807,-0.03999999910593033 -7.455999851226807,-0.03999999910593033 -7.455999851226807,-0.03999999910593033 C-7.455999851226807,-0.03999999910593033 -5.855999946594238,4.610000133514404 -5.855999946594238,4.610000133514404 C-4.585999965667725,8.279999732971191 -0.5759999752044678,10.239999771118164 3.1040000915527344,8.979999542236328 C6.693999767303467,7.739999771118164 8.644000053405762,3.890000104904175 7.533999919891357,0.2800000011920929 C7.533999919891357,0.2800000011920929 7.453999996185303,0.03999999910593033 7.453999996185303,0.03999999910593033 C7.453999996185303,0.03999999910593033 7.453999996185303,0.03999999910593033 7.453999996185303,0.03999999910593033 C7.453999996185303,0.03999999910593033 5.854000091552734,-4.610000133514404 5.854000091552734,-4.610000133514404 C4.584000110626221,-8.279999732971191 0.5740000009536743,-10.239999771118164 -3.0959999561309814,-8.979999542236328z"></path></g></g><g transform="matrix(1,0,0,1,195.5050048828125,319.8320007324219)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-4.498000144958496,-11.223999977111816 C-8.097999572753906,-9.984000205993652 -10.038000106811523,-6.133999824523926 -8.937999725341797,-2.5239999294281006 C-8.937999725341797,-2.5239999294281006 -8.857999801635742,-2.2839999198913574 -8.857999801635742,-2.2839999198913574 C-8.857999801635742,-2.2839999198913574 -8.857999801635742,-2.2839999198913574 -8.857999801635742,-2.2839999198913574 C-8.857999801635742,-2.2839999198913574 -4.067999839782715,11.605999946594238 -4.067999839782715,11.605999946594238 C-4.067999839782715,11.605999946594238 9.251999855041504,7.035999774932861 9.251999855041504,7.035999774932861 C9.251999855041504,7.035999774932861 4.452000141143799,-6.854000091552734 4.452000141143799,-6.854000091552734 C3.181999921798706,-10.52400016784668 -0.828000009059906,-12.484000205993652 -4.498000144958496,-11.223999977111816z"></path></g></g><g transform="matrix(1,0,0,1,186.65798950195312,297.4739990234375)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-4.631999969482422,-13.428000450134277 C-8.232000350952148,-12.187999725341797 -10.17199993133545,-8.338000297546387 -9.071999549865723,-4.728000164031982 C-9.071999549865723,-4.728000164031982 -8.991999626159668,-4.48799991607666 -8.991999626159668,-4.48799991607666 C-8.991999626159668,-4.48799991607666 -8.991999626159668,-4.48799991607666 -8.991999626159668,-4.48799991607666 C-8.991999626159668,-4.48799991607666 -4.311999797821045,9.052000045776367 -4.311999797821045,9.052000045776367 C-3.0420000553131104,12.732000350952148 0.9580000042915344,14.682000160217285 4.638000011444092,13.42199993133545 C8.227999687194824,12.192000389099121 10.178000450134277,8.331999778747559 9.07800006866455,4.73199987411499 C9.07800006866455,4.73199987411499 8.998000144958496,4.492000102996826 8.998000144958496,4.492000102996826 C8.998000144958496,4.492000102996826 8.998000144958496,4.492000102996826 8.998000144958496,4.492000102996826 C8.998000144958496,4.492000102996826 4.317999839782715,-9.057999610900879 4.317999839782715,-9.057999610900879 C3.0480000972747803,-12.727999687194824 -0.9620000123977661,-14.687999725341797 -4.631999969482422,-13.428000450134277z"></path></g></g><g transform="matrix(1,0,0,1,40.48499298095703,349.56500244140625)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-2.878999948501587,-7.311999797821045 C-2.878999948501587,-7.311999797821045 -7.339000225067139,-2.871999979019165 -7.339000225067139,-2.871999979019165 C-8.928999900817871,-1.281999945640564 -8.928999900817871,1.2879999876022339 -7.339000225067139,2.868000030517578 C-7.339000225067139,2.868000030517578 -2.878999948501587,7.308000087738037 -2.878999948501587,7.308000087738037 C-1.2890000343322754,8.89799976348877 1.2910000085830688,8.89799976348877 2.88100004196167,7.308000087738037 C2.88100004196167,7.308000087738037 7.330999851226807,2.868000030517578 7.330999851226807,2.868000030517578 C8.930999755859375,1.2879999876022339 8.930999755859375,-1.281999945640564 7.330999851226807,-2.871999979019165 C7.330999851226807,-2.871999979019165 2.88100004196167,-7.311999797821045 2.88100004196167,-7.311999797821045 C1.2910000085830688,-8.902000427246094 -1.2890000343322754,-8.902000427246094 -2.878999948501587,-7.311999797821045z"></path></g></g><g transform="matrix(1,0,0,1,40.01099395751953,342.4200134277344)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M3.1040000915527344,-8.979999542236328 C6.693999767303467,-7.739999771118164 8.644000053405762,-3.890000104904175 7.533999919891357,-0.2800000011920929 C7.533999919891357,-0.2800000011920929 7.453999996185303,-0.03999999910593033 7.453999996185303,-0.03999999910593033 C7.453999996185303,-0.03999999910593033 7.453999996185303,-0.03999999910593033 7.453999996185303,-0.03999999910593033 C7.453999996185303,-0.03999999910593033 5.854000091552734,4.610000133514404 5.854000091552734,4.610000133514404 C4.584000110626221,8.279999732971191 0.5740000009536743,10.239999771118164 -3.0959999561309814,8.979999542236328 C-6.696000099182129,7.739999771118164 -8.63599967956543,3.890000104904175 -7.535999774932861,0.2800000011920929 C-7.535999774932861,0.2800000011920929 -7.455999851226807,0.03999999910593033 -7.455999851226807,0.03999999910593033 C-7.455999851226807,0.03999999910593033 -7.455999851226807,0.03999999910593033 -7.455999851226807,0.03999999910593033 C-7.455999851226807,0.03999999910593033 -5.855999946594238,-4.610000133514404 -5.855999946594238,-4.610000133514404 C-4.585999965667725,-8.279999732971191 -0.5759999752044678,-10.239999771118164 3.1040000915527344,-8.979999542236328z"></path></g></g><g transform="matrix(1,0,0,1,46.495994567871094,319.8320007324219)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M4.501999855041504,-11.223999977111816 C8.092000007629395,-9.984000205993652 10.041999816894531,-6.133999824523926 8.942000389099121,-2.5239999294281006 C8.942000389099121,-2.5239999294281006 8.862000465393066,-2.2839999198913574 8.862000465393066,-2.2839999198913574 C8.862000465393066,-2.2839999198913574 8.862000465393066,-2.2839999198913574 8.862000465393066,-2.2839999198913574 C8.862000465393066,-2.2839999198913574 4.061999797821045,11.605999946594238 4.061999797821045,11.605999946594238 C4.061999797821045,11.605999946594238 -9.248000144958496,7.035999774932861 -9.248000144958496,7.035999774932861 C-9.248000144958496,7.035999774932861 -4.447999954223633,-6.854000091552734 -4.447999954223633,-6.854000091552734 C-3.177999973297119,-10.52400016784668 0.8220000267028809,-12.484000205993652 4.501999855041504,-11.223999977111816z"></path></g></g><g transform="matrix(1,0,0,1,55.34199523925781,297.4739990234375)" opacity="0.98" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M4.638000011444092,-13.428000450134277 C8.227999687194824,-12.187999725341797 10.178000450134277,-8.338000297546387 9.07800006866455,-4.728000164031982 C9.07800006866455,-4.728000164031982 8.998000144958496,-4.48799991607666 8.998000144958496,-4.48799991607666 C8.998000144958496,-4.48799991607666 8.998000144958496,-4.48799991607666 8.998000144958496,-4.48799991607666 C8.998000144958496,-4.48799991607666 4.317999839782715,9.052000045776367 4.317999839782715,9.052000045776367 C3.0480000972747803,12.732000350952148 -0.9620000123977661,14.682000160217285 -4.631999969482422,13.42199993133545 C-8.232000350952148,12.192000389099121 -10.17199993133545,8.331999778747559 -9.071999549865723,4.73199987411499 C-9.071999549865723,4.73199987411499 -8.991999626159668,4.492000102996826 -8.991999626159668,4.492000102996826 C-8.991999626159668,4.492000102996826 -8.991999626159668,4.492000102996826 -8.991999626159668,4.492000102996826 C-8.991999626159668,4.492000102996826 -4.311999797821045,-9.057999610900879 -4.311999797821045,-9.057999610900879 C-3.0420000553131104,-12.727999687194824 0.9580000042915344,-14.687999725341797 4.638000011444092,-13.428000450134277z"></path></g></g><g clip-path="url(#__lottie_element_1271)" transform="matrix(0.9494749307632446,0.031580276787281036,-0.031580276787281036,0.9494749307632446,154.50289916992188,134.2850341796875)" opacity="0" style="display: block;"><g transform="matrix(-1,0,0,1,71,44.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(-1.9951281547546387,0.13951294124126434,-0.13951294124126434,-1.9951281547546387,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M3.2100000381469727,-8.170000076293945 C3.2100000381469727,-8.170000076293945 8.170000076293945,-3.2100000381469727 8.170000076293945,-3.2100000381469727 C9.9399995803833,-1.440000057220459 9.9399995803833,1.440000057220459 8.170000076293945,3.2100000381469727 C8.170000076293945,3.2100000381469727 3.2100000381469727,8.170000076293945 3.2100000381469727,8.170000076293945 C1.440000057220459,9.9399995803833 -1.440000057220459,9.9399995803833 -3.2100000381469727,8.170000076293945 C-3.2100000381469727,8.170000076293945 -8.170000076293945,3.2100000381469727 -8.170000076293945,3.2100000381469727 C-9.9399995803833,1.440000057220459 -9.9399995803833,-1.440000057220459 -8.170000076293945,-3.2100000381469727 C-8.170000076293945,-3.2100000381469727 -3.2100000381469727,-8.170000076293945 -3.2100000381469727,-8.170000076293945 C-1.440000057220459,-9.9399995803833 1.440000057220459,-9.9399995803833 3.2100000381469727,-8.170000076293945z"></path></g></g><g transform="matrix(1,0,0,1,64,75.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(1.9996954202651978,0.03490481153130531,-0.03490481153130531,1.9996954202651978,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-8.369999885559082,20.3700008392334 C-12.229999542236328,18.68000030517578 -14.029999732971191,14.0600004196167 -12.390000343322754,10.069999694824219 C-12.390000343322754,10.069999694824219 -1.600000023841858,-16.209999084472656 -1.600000023841858,-16.209999084472656 C0.03999999910593033,-20.200000762939453 4.5,-22.06999969482422 8.369999885559082,-20.3700008392334 C12.229999542236328,-18.68000030517578 14.029999732971191,-14.0600004196167 12.390000343322754,-10.069999694824219 C12.390000343322754,-10.069999694824219 1.600000023841858,16.209999084472656 1.600000023841858,16.209999084472656 C-0.03999999910593033,20.200000762939453 -4.5,22.06999969482422 -8.369999885559082,20.3700008392334z"></path></g></g><g transform="matrix(1,0,0,1,48,117.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-14.260000228881836,32.369998931884766 C-18.209999084472656,30.670000076293945 -20.059999465942383,26.040000915527344 -18.3799991607666,22.030000686645508 C-18.3799991607666,22.030000686645508 4.670000076293945,-33 4.670000076293945,-33 C4.670000076293945,-33 19,-26.84000015258789 19,-26.84000015258789 C19,-26.84000015258789 -4.050000190734863,28.190000534057617 -4.050000190734863,28.190000534057617 C-5.730000019073486,32.20000076293945 -10.300000190734863,34.06999969482422 -14.260000228881836,32.369998931884766z"></path></g></g></g><g clip-path="url(#__lottie_element_1258)" transform="matrix(-0.9475746750831604,0.06783988326787949,0.06783988326787949,0.9475746750831604,85.79782104492188,140.5573272705078)" opacity="0" style="display: block;"><g transform="matrix(-1,0,0,1,71,44.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(-1.9951281547546387,0.13951294124126434,-0.13951294124126434,-1.9951281547546387,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M3.2100000381469727,-8.170000076293945 C3.2100000381469727,-8.170000076293945 8.170000076293945,-3.2100000381469727 8.170000076293945,-3.2100000381469727 C9.9399995803833,-1.440000057220459 9.9399995803833,1.440000057220459 8.170000076293945,3.2100000381469727 C8.170000076293945,3.2100000381469727 3.2100000381469727,8.170000076293945 3.2100000381469727,8.170000076293945 C1.440000057220459,9.9399995803833 -1.440000057220459,9.9399995803833 -3.2100000381469727,8.170000076293945 C-3.2100000381469727,8.170000076293945 -8.170000076293945,3.2100000381469727 -8.170000076293945,3.2100000381469727 C-9.9399995803833,1.440000057220459 -9.9399995803833,-1.440000057220459 -8.170000076293945,-3.2100000381469727 C-8.170000076293945,-3.2100000381469727 -3.2100000381469727,-8.170000076293945 -3.2100000381469727,-8.170000076293945 C-1.440000057220459,-9.9399995803833 1.440000057220459,-9.9399995803833 3.2100000381469727,-8.170000076293945z"></path></g></g><g transform="matrix(1,0,0,1,64,75.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(1.9996954202651978,0.03490481153130531,-0.03490481153130531,1.9996954202651978,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-8.369999885559082,20.3700008392334 C-12.229999542236328,18.68000030517578 -14.029999732971191,14.0600004196167 -12.390000343322754,10.069999694824219 C-12.390000343322754,10.069999694824219 -1.600000023841858,-16.209999084472656 -1.600000023841858,-16.209999084472656 C0.03999999910593033,-20.200000762939453 4.5,-22.06999969482422 8.369999885559082,-20.3700008392334 C12.229999542236328,-18.68000030517578 14.029999732971191,-14.0600004196167 12.390000343322754,-10.069999694824219 C12.390000343322754,-10.069999694824219 1.600000023841858,16.209999084472656 1.600000023841858,16.209999084472656 C-0.03999999910593033,20.200000762939453 -4.5,22.06999969482422 -8.369999885559082,20.3700008392334z"></path></g></g><g transform="matrix(1,0,0,1,48,117.27899932861328)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-14.260000228881836,32.369998931884766 C-18.209999084472656,30.670000076293945 -20.059999465942383,26.040000915527344 -18.3799991607666,22.030000686645508 C-18.3799991607666,22.030000686645508 4.670000076293945,-33 4.670000076293945,-33 C4.670000076293945,-33 19,-26.84000015258789 19,-26.84000015258789 C19,-26.84000015258789 -4.050000190734863,28.190000534057617 -4.050000190734863,28.190000534057617 C-5.730000019073486,32.20000076293945 -10.300000190734863,34.06999969482422 -14.260000228881836,32.369998931884766z"></path></g></g></g><g transform="matrix(1,0,0,1,120.35900115966797,278.3550109863281)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-35.71200180053711,-7.271999835968018 C-35.71200180053711,-7.271999835968018 35.71799850463867,-7.271999835968018 35.71799850463867,-7.271999835968018 C39.577999114990234,-7.271999835968018 42.70800018310547,-4.142000198364258 42.70800018310547,-0.2720000147819519 C42.70800018310547,-0.2720000147819519 42.70800018310547,0.27799999713897705 42.70800018310547,0.27799999713897705 C42.70800018310547,4.138000011444092 39.577999114990234,7.26800012588501 35.71799850463867,7.26800012588501 C35.71799850463867,7.26800012588501 -35.71200180053711,7.26800012588501 -35.71200180053711,7.26800012588501 C-39.582000732421875,7.26800012588501 -42.71200180053711,4.138000011444092 -42.71200180053711,0.27799999713897705 C-42.71200180053711,0.27799999713897705 -42.71200180053711,-0.2720000147819519 -42.71200180053711,-0.2720000147819519 C-42.71200180053711,-4.142000198364258 -39.582000732421875,-7.271999835968018 -35.71200180053711,-7.271999835968018z"></path></g></g><g style="display: none;" transform="matrix(0.8850650191307068,0.4118148684501648,-0.38433730602264404,0.9400328397750854,91.79438781738281,394.84051513671875)" opacity="1"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(82,82,82)" fill-opacity="1" d=" M-10.586000442504883,0.004000000189989805 C-10.586000442504883,-2.385999917984009 -8.645999908447266,-4.326000213623047 -6.25600004196167,-4.326000213623047 C-6.25600004196167,-4.326000213623047 6.263999938964844,-4.326000213623047 6.263999938964844,-4.326000213623047 C8.654000282287598,-4.326000213623047 10.583999633789062,-2.385999917984009 10.583999633789062,0.004000000189989805 C10.583999633789062,2.3940000534057617 8.654000282287598,4.323999881744385 6.263999938964844,4.323999881744385 C6.263999938964844,4.323999881744385 -6.25600004196167,4.323999881744385 -6.25600004196167,4.323999881744385 C-8.645999908447266,4.323999881744385 -10.586000442504883,2.3940000534057617 -10.586000442504883,0.004000000189989805z"></path></g></g><g style="display: none;" transform="matrix(0.8916318416595459,-0.3892457187175751,0.3688468039035797,0.9496004581451416,148.67164611816406,394.0845031738281)" opacity="1"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(82,82,82)" fill-opacity="1" d=" M-10.586000442504883,0.004000000189989805 C-10.586000442504883,-2.385999917984009 -8.645999908447266,-4.326000213623047 -6.25600004196167,-4.326000213623047 C-6.25600004196167,-4.326000213623047 6.263999938964844,-4.326000213623047 6.263999938964844,-4.326000213623047 C8.654000282287598,-4.326000213623047 10.583999633789062,-2.385999917984009 10.583999633789062,0.004000000189989805 C10.583999633789062,2.3940000534057617 8.654000282287598,4.323999881744385 6.263999938964844,4.323999881744385 C6.263999938964844,4.323999881744385 -6.25600004196167,4.323999881744385 -6.25600004196167,4.323999881744385 C-8.645999908447266,4.323999881744385 -10.586000442504883,2.3940000534057617 -10.586000442504883,0.004000000189989805z"></path></g></g><g transform="matrix(1,0,0,1,92.19100189208984,397.2869873046875)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(83,83,83)" fill-opacity="1" d=" M-10.586000442504883,0.004000000189989805 C-10.586000442504883,-2.385999917984009 -8.645999908447266,-4.326000213623047 -6.25600004196167,-4.326000213623047 C-6.25600004196167,-4.326000213623047 6.263999938964844,-4.326000213623047 6.263999938964844,-4.326000213623047 C8.654000282287598,-4.326000213623047 10.583999633789062,-2.385999917984009 10.583999633789062,0.004000000189989805 C10.583999633789062,2.3940000534057617 8.654000282287598,4.323999881744385 6.263999938964844,4.323999881744385 C6.263999938964844,4.323999881744385 -6.25600004196167,4.323999881744385 -6.25600004196167,4.323999881744385 C-8.645999908447266,4.323999881744385 -10.586000442504883,2.3940000534057617 -10.586000442504883,0.004000000189989805z"></path></g></g><g transform="matrix(1,0,0,1,147.0540008544922,397.0369873046875)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(83,83,83)" fill-opacity="1" d=" M-10.586000442504883,0.004000000189989805 C-10.586000442504883,-2.385999917984009 -8.645999908447266,-4.326000213623047 -6.25600004196167,-4.326000213623047 C-6.25600004196167,-4.326000213623047 6.263999938964844,-4.326000213623047 6.263999938964844,-4.326000213623047 C8.654000282287598,-4.326000213623047 10.583999633789062,-2.385999917984009 10.583999633789062,0.004000000189989805 C10.583999633789062,2.3940000534057617 8.654000282287598,4.323999881744385 6.263999938964844,4.323999881744385 C6.263999938964844,4.323999881744385 -6.25600004196167,4.323999881744385 -6.25600004196167,4.323999881744385 C-8.645999908447266,4.323999881744385 -10.586000442504883,2.3940000534057617 -10.586000442504883,0.004000000189989805z"></path></g></g><g transform="matrix(1,0,0,1,119.62199401855469,154.82101440429688)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,149,0)" fill-opacity="1" d=" M-0.0020000000949949026,-6.260000228881836 C5.998000144958496,-6.260000228881836 10.857999801635742,-1.3799999952316284 10.857999801635742,4.630000114440918 C10.857999801635742,4.630000114440918 10.857999801635742,6.260000228881836 10.857999801635742,6.260000228881836 C10.857999801635742,6.260000228881836 -10.862000465393066,6.260000228881836 -10.862000465393066,6.260000228881836 C-10.862000465393066,6.260000228881836 -10.862000465393066,4.630000114440918 -10.862000465393066,4.630000114440918 C-10.862000465393066,-1.3799999952316284 -6.001999855041504,-6.260000228881836 -0.0020000000949949026,-6.260000228881836z"></path></g></g><g transform="matrix(1,0,0,1,96.42499542236328,145.82901000976562)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,149,0)" fill-opacity="1" d=" M0.0010000000474974513,11.416000366210938 C6.401000022888184,11.416000366210938 11.60099983215332,6.306000232696533 11.60099983215332,-0.004000000189989805 C11.60099983215332,-6.303999900817871 6.401000022888184,-11.413999557495117 0.0010000000474974513,-11.413999557495117 C-6.408999919891357,-11.413999557495117 -11.598999977111816,-6.303999900817871 -11.598999977111816,-0.004000000189989805 C-11.598999977111816,6.306000232696533 -6.408999919891357,11.416000366210938 0.0010000000474974513,11.416000366210938z"></path></g></g><g transform="matrix(1,0,0,1,120.72699737548828,271.3590087890625)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-20.621999740600586,-54.03499984741211 C-20.621999740600586,-54.03499984741211 20.618000030517578,-54.03499984741211 20.618000030517578,-54.03499984741211 C28.347999572753906,-54.03499984741211 34.608001708984375,-47.775001525878906 34.608001708984375,-40.04499816894531 C34.608001708984375,-40.04499816894531 34.608001708984375,40.04499816894531 34.608001708984375,40.04499816894531 C34.608001708984375,47.76499938964844 28.347999572753906,54.03499984741211 20.618000030517578,54.03499984741211 C20.618000030517578,54.03499984741211 -20.621999740600586,54.03499984741211 -20.621999740600586,54.03499984741211 C-28.351999282836914,54.03499984741211 -34.61199951171875,47.76499938964844 -34.61199951171875,40.04499816894531 C-34.61199951171875,40.04499816894531 -34.61199951171875,-40.04499816894531 -34.61199951171875,-40.04499816894531 C-34.61199951171875,-47.775001525878906 -28.351999282836914,-54.03499984741211 -20.621999740600586,-54.03499984741211z"></path></g></g><g mask="url(#__lottie_element_1228)" style="display: block;"><g transform="matrix(1,0,0,1,16.524002075195312,169.18099975585938)" opacity="0.33"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,149,0)" fill-opacity="1" d=" M-18.783000946044922,-21.540000915527344 C-18.783000946044922,-21.540000915527344 18.777000427246094,-21.540000915527344 18.777000427246094,-21.540000915527344 C23.35700035095215,-21.540000915527344 27.066999435424805,-17.829999923706055 27.066999435424805,-13.260000228881836 C27.066999435424805,-13.260000228881836 27.066999435424805,13.260000228881836 27.066999435424805,13.260000228881836 C27.066999435424805,17.829999923706055 23.35700035095215,21.540000915527344 18.777000427246094,21.540000915527344 C18.777000427246094,21.540000915527344 -18.783000946044922,21.540000915527344 -18.783000946044922,21.540000915527344 C-23.35300064086914,21.540000915527344 -27.062999725341797,17.829999923706055 -27.062999725341797,13.260000228881836 C-27.062999725341797,13.260000228881836 -27.062999725341797,-13.260000228881836 -27.062999725341797,-13.260000228881836 C-27.062999725341797,-17.829999923706055 -23.35300064086914,-21.540000915527344 -18.783000946044922,-21.540000915527344z"></path></g></g></g><g mask="url(#__lottie_element_1221)" style="display: block;"><g transform="matrix(1,0,0,1,228.24400329589844,169.18099975585938)" opacity="0.33"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,149,0)" fill-opacity="1" d=" M-18.783000946044922,-21.540000915527344 C-18.783000946044922,-21.540000915527344 18.777000427246094,-21.540000915527344 18.777000427246094,-21.540000915527344 C23.35700035095215,-21.540000915527344 27.066999435424805,-17.829999923706055 27.066999435424805,-13.260000228881836 C27.066999435424805,-13.260000228881836 27.066999435424805,13.260000228881836 27.066999435424805,13.260000228881836 C27.066999435424805,17.829999923706055 23.35700035095215,21.540000915527344 18.777000427246094,21.540000915527344 C18.777000427246094,21.540000915527344 -18.783000946044922,21.540000915527344 -18.783000946044922,21.540000915527344 C-23.35300064086914,21.540000915527344 -27.062999725341797,17.829999923706055 -27.062999725341797,13.260000228881836 C-27.062999725341797,13.260000228881836 -27.062999725341797,-13.260000228881836 -27.062999725341797,-13.260000228881836 C-27.062999725341797,-17.829999923706055 -23.35300064086914,-21.540000915527344 -18.783000946044922,-21.540000915527344z"></path></g></g></g><g mask="url(#__lottie_element_1215)" style="display: block;"><g transform="matrix(1,0,0,1,116.30799865722656,378.1400146484375)" opacity="1"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(0,131,193)" fill-opacity="1" d=" M-49.34000015258789,-47.775001525878906 C-49.34000015258789,-47.775001525878906 49.34000015258789,-47.775001525878906 49.34000015258789,-47.775001525878906 C49.34000015258789,-47.775001525878906 49.34000015258789,47.775001525878906 49.34000015258789,47.775001525878906 C49.34000015258789,47.775001525878906 -49.34000015258789,47.775001525878906 -49.34000015258789,47.775001525878906 C-49.34000015258789,47.775001525878906 -49.34000015258789,-47.775001525878906 -49.34000015258789,-47.775001525878906z"></path></g></g></g><g mask="url(#__lottie_element_1209)" style="display: block;"><g transform="matrix(1,0,0,1,116.30799865722656,290.13800048828125)" opacity="1"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(47,226,255)" fill-opacity="1" d=" M-49.34000015258789,-13.163000106811523 C-49.34000015258789,-13.163000106811523 49.34000015258789,-13.163000106811523 49.34000015258789,-13.163000106811523 C49.34000015258789,-13.163000106811523 49.34000015258789,13.166999816894531 49.34000015258789,13.166999816894531 C49.34000015258789,13.166999816894531 -49.34000015258789,13.166999816894531 -49.34000015258789,13.166999816894531 C-49.34000015258789,13.166999816894531 -49.34000015258789,-13.163000106811523 -49.34000015258789,-13.163000106811523z"></path></g></g></g><g transform="matrix(1,0,0,1,193.447998046875,217.60101318359375)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M0,-6.167500019073486 C3.4038431644439697,-6.167500019073486 6.167500019073486,-3.4038431644439697 6.167500019073486,0 C6.167500019073486,3.4038431644439697 3.4038431644439697,6.167500019073486 0,6.167500019073486 C-3.4038431644439697,6.167500019073486 -6.167500019073486,3.4038431644439697 -6.167500019073486,0 C-6.167500019073486,-3.4038431644439697 -3.4038431644439697,-6.167500019073486 0,-6.167500019073486z"></path></g></g><g transform="matrix(1,0,0,1,47.26899719238281,217.60101318359375)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M0,-6.167500019073486 C3.4038431644439697,-6.167500019073486 6.167500019073486,-3.4038431644439697 6.167500019073486,0 C6.167500019073486,3.4038431644439697 3.4038431644439697,6.167500019073486 0,6.167500019073486 C-3.4038431644439697,6.167500019073486 -6.167500019073486,3.4038431644439697 -6.167500019073486,0 C-6.167500019073486,-3.4038431644439697 -3.4038431644439697,-6.167500019073486 0,-6.167500019073486z"></path></g></g><g transform="matrix(1,0,0,1,118,215.5)" opacity="1" style="display: block;"><path stroke-linecap="round" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4" stroke="rgb(255,255,255)" stroke-opacity="1" stroke-width="8" d=" M14.25,63.25 C14.25,63.25 14.25,72.25 14.25,74.75 C14.25,77.25 14.25,86.5 14.25,86.5"></path></g><g transform="matrix(1,0,0,1,95,215.5)" opacity="1" style="display: block;"><path stroke-linecap="round" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4" stroke="rgb(255,255,255)" stroke-opacity="1" stroke-width="8" d=" M14.25,63.25 C14.25,63.25 14.25,72.25 14.25,74.75 C14.25,77.25 14.25,86.5 14.25,86.5"></path></g><g transform="matrix(1,0,0,1,100.16200256347656,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C4.789000034332275,-11.321000099182129 8.678999900817871,-7.431000232696533 8.678999900817871,-2.6410000324249268 C8.678999900817871,-2.6410000324249268 8.678999900817871,2.6389999389648438 8.678999900817871,2.6389999389648438 C8.678999900817871,7.428999900817871 4.789000034332275,11.319000244140625 -0.0010000000474974513,11.319000244140625 C-4.790999889373779,11.319000244140625 -8.680999755859375,7.428999900817871 -8.680999755859375,2.6389999389648438 C-8.680999755859375,2.6389999389648438 -8.680999755859375,-2.6410000324249268 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-7.431000232696533 -4.790999889373779,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g><g transform="matrix(1,0,0,1,104.95500183105469,200.281005859375)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(61,61,61)" fill-opacity="1" d=" M0.003000000026077032,-6.343999862670898 C2.1530001163482666,-6.343999862670898 3.8929998874664307,-4.605000019073486 3.8929998874664307,-2.444999933242798 C3.8929998874664307,-2.444999933242798 3.8929998874664307,2.444999933242798 3.8929998874664307,2.444999933242798 C3.8929998874664307,4.59499979019165 2.1530001163482666,6.3460001945495605 0.003000000026077032,6.3460001945495605 C-2.1470000743865967,6.3460001945495605 -3.8970000743865967,4.59499979019165 -3.8970000743865967,2.444999933242798 C-3.8970000743865967,2.444999933242798 -3.8970000743865967,-2.115000009536743 -3.8970000743865967,-2.115000009536743 C-3.8970000743865967,-2.115000009536743 -3.7170000076293945,-2.115000009536743 -3.7170000076293945,-2.115000009536743 C-3.7170000076293945,-2.115000009536743 -3.7170000076293945,-2.115000009536743 -3.7170000076293945,-2.115000009536743 C-1.9869999885559082,-2.115000009536743 -0.5870000123977661,-3.515000104904175 -0.5870000123977661,-5.244999885559082 C-0.5870000123977661,-5.605000019073486 -0.6470000147819519,-5.945000171661377 -0.7570000290870667,-6.275000095367432 C-0.5070000290870667,-6.315000057220459 -0.25699999928474426,-6.343999862670898 0.003000000026077032,-6.343999862670898z"></path></g></g><g mask="url(#__lottie_element_1187)" style="display: block;"><g transform="matrix(0.39500001072883606,0,0,0.6458200216293335,99.75,141.27301025390625)" opacity="1"><path fill="rgb(255,198,183)" fill-opacity="1" d=" M50,-50 C50,-50 50,50 50,50 C50,50 30.3799991607666,45.742000579833984 -0.6330000162124634,45.742000579833984 C-30.3799991607666,45.742000579833984 -50,50 -50,50 C-50,50 -50,-50 -50,-50 C-50,-50 50,-50 50,-50z"></path></g></g><g mask="url(#__lottie_element_1181)" style="display: block;"><g transform="matrix(0.3950049877166748,0,0,0.6458202600479126,99.75,256.6337890625)" opacity="1"><path fill="rgb(255,198,183)" fill-opacity="1" d=" M50,-50 C50,-50 50,50 50,50 C50,50 -50,50 -50,50 C-50,50 -50,-50 -50,-50 C-50,-50 50,-50 50,-50z"></path></g></g><g transform="matrix(1,0,0,1,141.03199768066406,199.92300415039062)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,255,255)" fill-opacity="1" d=" M-0.0010000000474974513,-11.321000099182129 C-4.790999889373779,-11.321000099182129 -8.680999755859375,-7.431000232696533 -8.680999755859375,-2.6410000324249268 C-8.680999755859375,-2.6410000324249268 -8.680999755859375,2.6389999389648438 -8.680999755859375,2.6389999389648438 C-8.680999755859375,7.428999900817871 -4.790999889373779,11.319000244140625 -0.0010000000474974513,11.319000244140625 C4.789000034332275,11.319000244140625 8.678999900817871,7.428999900817871 8.678999900817871,2.6389999389648438 C8.678999900817871,2.6389999389648438 8.678999900817871,-2.6410000324249268 8.678999900817871,-2.6410000324249268 C8.678999900817871,-7.431000232696533 4.789000034332275,-11.321000099182129 -0.0010000000474974513,-11.321000099182129z"></path></g></g><g transform="matrix(1,0,0,1,137.34300231933594,200.2830047607422)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(61,61,61)" fill-opacity="1" d=" M0.003000000026077032,-6.343999862670898 C2.0829999446868896,-6.343999862670898 3.7929999828338623,-4.704999923706055 3.8929998874664307,-2.6449999809265137 C3.8929998874664307,-2.6449999809265137 3.8929998874664307,-2.444999933242798 3.8929998874664307,-2.444999933242798 C3.8929998874664307,-2.444999933242798 3.8929998874664307,2.444999933242798 3.8929998874664307,2.444999933242798 C3.8929998874664307,4.59499979019165 2.1530001163482666,6.3460001945495605 0.003000000026077032,6.3460001945495605 C-2.0869998931884766,6.3460001945495605 -3.7869999408721924,4.704999923706055 -3.88700008392334,2.6449999809265137 C-3.88700008392334,2.6449999809265137 -3.8970000743865967,2.444999933242798 -3.8970000743865967,2.444999933242798 C-3.8970000743865967,2.444999933242798 -3.8970000743865967,-2.115000009536743 -3.8970000743865967,-2.115000009536743 C-3.8970000743865967,-2.115000009536743 -3.7070000171661377,-2.115000009536743 -3.7070000171661377,-2.115000009536743 C-3.7070000171661377,-2.115000009536743 -3.7070000171661377,-2.115000009536743 -3.7070000171661377,-2.115000009536743 C-1.9769999980926514,-2.115000009536743 -0.5770000219345093,-3.515000104904175 -0.5770000219345093,-5.244999885559082 C-0.5770000219345093,-5.605000019073486 -0.6370000243186951,-5.945000171661377 -0.746999979019165,-6.275000095367432 C-0.5070000290870667,-6.324999809265137 -0.25699999928474426,-6.343999862670898 0.003000000026077032,-6.343999862670898z"></path></g></g><g mask="url(#__lottie_element_1166)" style="display: block;"><g transform="matrix(0.39500001072883606,0,0,0.6458200216293335,141.25,141.27301025390625)" opacity="1"><path fill="rgb(255,198,183)" fill-opacity="1" d=" M50,-50 C50,-50 50,50 50,50 C50,50 30.3799991607666,45.742000579833984 -0.6330000162124634,45.742000579833984 C-30.3799991607666,45.742000579833984 -50,50 -50,50 C-50,50 -50,-50 -50,-50 C-50,-50 50,-50 50,-50z"></path></g></g><g mask="url(#__lottie_element_1160)" style="display: block;"><g transform="matrix(0.3950049877166748,0,0,0.6458202600479126,140.75,256.6337890625)" opacity="1"><path fill="rgb(255,198,183)" fill-opacity="1" d=" M50,-50 C50,-50 50,50 50,50 C50,50 -50,50 -50,50 C-50,50 -50,-50 -50,-50 C-50,-50 50,-50 50,-50z"></path></g></g><g transform="matrix(1,0,0,1,97.8479995727539,223.72500610351562)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-12.503999710083008,-5.086999893188477 C-3.1640000343322754,-5.13700008392334 5.015999794006348,-2.927000045776367 12.005999565124512,1.5329999923706055 C12.005999565124512,1.5329999923706055 12.505999565124512,1.8630000352859497 12.505999565124512,1.8630000352859497 C12.505999565124512,1.8630000352859497 10.37600040435791,5.083000183105469 10.37600040435791,5.083000183105469 C4.105999946594238,0.953000009059906 -3.2739999294281006,-1.156999945640564 -11.803999900817871,-1.2170000076293945 C-11.803999900817871,-1.2170000076293945 -12.484000205993652,-1.2170000076293945 -12.484000205993652,-1.2170000076293945 C-12.484000205993652,-1.2170000076293945 -12.503999710083008,-5.086999893188477 -12.503999710083008,-5.086999893188477z"></path></g></g><g style="display: none;" transform="matrix(-1.041273832321167,0.014445919543504715,0.02027204819023609,1.461225986480713,144.4635467529297,230.2627410888672)" opacity="0.00168000000161328"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(255,198,182)" fill-opacity="1" d=" M-12.503999710083008,-5.086999893188477 C-3.1640000343322754,-5.13700008392334 5.015999794006348,-2.927000045776367 12.005999565124512,1.5329999923706055 C12.005999565124512,1.5329999923706055 12.505999565124512,1.8630000352859497 12.505999565124512,1.8630000352859497 C12.505999565124512,1.8630000352859497 10.37600040435791,5.083000183105469 10.37600040435791,5.083000183105469 C4.105999946594238,0.953000009059906 -3.2739999294281006,-1.156999945640564 -11.803999900817871,-1.2170000076293945 C-11.803999900817871,-1.2170000076293945 -12.484000205993652,-1.2170000076293945 -12.484000205993652,-1.2170000076293945 C-12.484000205993652,-1.2170000076293945 -12.503999710083008,-5.086999893188477 -12.503999710083008,-5.086999893188477z"></path></g></g><g transform="matrix(1,0,0,1,114.07799530029297,235.5900115966797)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(237,149,130)" fill-opacity="1" d=" M-4.400000095367432,-2.490999937057495 C-3.9600000381469727,-2.750999927520752 -3.4000000953674316,-2.6110000610351562 -3.130000114440918,-2.180999994277954 C-1.5099999904632568,0.48899999260902405 0.6700000166893005,1.3289999961853027 3.6500000953674316,0.4390000104904175 C4.139999866485596,0.289000004529953 4.650000095367432,0.5690000057220459 4.800000190734863,1.059000015258789 C4.949999809265137,1.5490000247955322 4.670000076293945,2.059000015258789 4.179999828338623,2.1989998817443848 C0.38999998569488525,3.3389999866485596 -2.6500000953674316,2.1589999198913574 -4.710000038146973,-1.2209999561309814 C-4.96999979019165,-1.6610000133514404 -4.829999923706055,-2.2209999561309814 -4.400000095367432,-2.490999937057495z"></path></g></g><g transform="matrix(1,0,0,1,120.17499542236328,220.17800903320312)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(237,149,130)" fill-opacity="1" d=" M0.004000000189989805,4.88100004196167 C1.8839999437332153,4.88100004196167 3.4040000438690186,3.3510000705718994 3.4040000438690186,1.4609999656677246 C3.4040000438690186,-0.4189999997615814 0.004000000189989805,-4.879000186920166 0.004000000189989805,-4.879000186920166 C0.004000000189989805,-4.879000186920166 -3.4059998989105225,-0.4189999997615814 -3.4059998989105225,1.4609999656677246 C-3.4059998989105225,3.3510000705718994 -1.8860000371932983,4.88100004196167 0.004000000189989805,4.88100004196167z"></path></g></g><g clip-path="url(#__lottie_element_1142)" transform="matrix(0.12982183694839478,0.006803674157708883,-0.006803674157708883,0.12982183694839478,82.33287048339844,206.03628540039062)" opacity="0" style="display: block;"><g transform="matrix(1,0,0,1,127,143)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(2,0,0,2,0,0)"><path fill="rgb(177,49,49)" fill-opacity="1" d=" M0,-41.5 C22.903850555419922,-41.5 41.5,-22.903850555419922 41.5,0 C41.5,22.903850555419922 22.903850555419922,41.5 0,41.5 C-22.903850555419922,41.5 -41.5,22.903850555419922 -41.5,0 C-41.5,-22.903850555419922 -22.903850555419922,-41.5 0,-41.5z"></path><path stroke-linecap="butt" stroke-linejoin="miter" fill-opacity="0" stroke-miterlimit="4" stroke="rgb(255,198,182)" stroke-opacity="1" stroke-width="15" d=" M0,-41.5 C22.903850555419922,-41.5 41.5,-22.903850555419922 41.5,0 C41.5,22.903850555419922 22.903850555419922,41.5 0,41.5 C-22.903850555419922,41.5 -41.5,22.903850555419922 -41.5,0 C-41.5,-22.903850555419922 -22.903850555419922,-41.5 0,-41.5z"></path></g></g></g></g></svg></span></div></div><div class="_2O14B _1UVl- _2zkz3" style="z-index: 150;"><div class="_1KUxv _11rtD"><div dir="ltr"><span data-test="hint-sentence"><div class="_34k_q _3Lg1h _13doy" tabindex="0" data-test="hint-token" style="--offset:13px;">a</div><span data-test="hint-token"> </span><div class="_34k_q _3Lg1h _13doy" tabindex="0" data-test="hint-token" style="--offset:13px;">man</div><span data-test="hint-token"> </span><div class="_34k_q _3Lg1h _13doy" tabindex="0" data-test="hint-token" style="--offset:13px;">and</div><span data-test="hint-token"> </span><div class="_34k_q _3Lg1h _13doy" tabindex="0" data-test="hint-token" style="--offset:13px;">a</div><span data-test="hint-token"> </span><div class="_34k_q _3Lg1h _13doy" tabindex="0" data-test="hint-token" style="--offset:13px;">cat</div></span></div></div><div class="ite_X" style="top: calc(50% - 15px); transform: translateY(-50%) rotate(-90deg);"><div class="_3p5e9"></div></div></div></div></div><div class="_3GhCe _1zSeg _qg8x"><div class="tVzIv"><div class="_1OQnu _1C_S3 _1HxVp"><div class="_2PLYW"><div class="Qwwbl"><div class="_1uasP" dir="ltr"><div class="_349xo"><div class="_1gBvQ _15J0U"></div><div class="_1gBvQ _15J0U"></div><div class="_1gBvQ _15J0U"></div><div class="_1gBvQ _15J0U"></div><div class="_1gBvQ _15J0U"></div></div><div class="PcKtj" tabindex="0"><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">homme</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">et</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">chat</button></div></div></div></div></div><div class="_3Lqi-"><div class="_1_wIY" data-test="word-bank"><div class="_1yW4j _2LmyT"><button class="_2UUiS notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w _2mDNn" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">homme</button></div><div class="_1yW4j _2LmyT"><button class="_2UUiS notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w _2mDNn" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">garçon</button></div><div class="_1yW4j _2LmyT"><button class="_2UUiS notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w _2mDNn" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">chat</button></div><div class="_1yW4j _2LmyT"><button class="_2UUiS notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w _2mDNn" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_2UUiS notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w _2mDNn" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">et</button></div></div></div></div></div></div></div> //<div class="PcKtj" tabindex="0"><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">homme</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">et</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">un</button></div><div class="_1yW4j _2LmyT"><button class="_3XI03 _2mG9r notranslate _6Nozy _1O290 _1wJYQ _2A7uO _2gwtT _1nlVc _2fOC9 t5wFJ _3dtSu _25Cnc _3yAjN _3Ev3S _1figt _3tP0w" dir="ltr" translate="no" data-test="challenge-tap-token" disabled="">chat</button></div></div> // // completeReverseTranslation // <label class="_3f_Q3 _2FKqf _2ti2i sXpqy" dir="ltr"><span>un</span><span> </span><span>garçon</span><span> </span><span>et</span><span> </span><span>une</span><span> </span><span class="_33vo_"><div class="caPDQ">_fille_</div><input data-test="challenge-text-input" autocapitalize="off" autocomplete="off" autocorrect="off" spellcheck="false" class="_2AzoZ _17nEt sXpqy" dir="ltr" size="1" type="text" value="fille"></span></label> //