mumuki-laboratory 8.1.1 → 8.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +19 -8
- data/app/assets/javascripts/mumuki_laboratory/application/bridge.js +2 -1
- data/app/assets/javascripts/mumuki_laboratory/application/button.js +4 -6
- data/app/assets/javascripts/mumuki_laboratory/application/codemirror-builder.js +3 -3
- data/app/assets/javascripts/mumuki_laboratory/application/codemirror.js +6 -6
- data/app/assets/javascripts/mumuki_laboratory/application/console.js +2 -2
- data/app/assets/javascripts/mumuki_laboratory/application/discussions.js +7 -7
- data/app/assets/javascripts/mumuki_laboratory/application/editors.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/elipsis.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/events.js +2 -2
- data/app/assets/javascripts/mumuki_laboratory/application/exercise.js +2 -2
- data/app/assets/javascripts/mumuki_laboratory/application/gamification.js +13 -3
- data/app/assets/javascripts/mumuki_laboratory/application/i18n.js +73 -0
- data/app/assets/javascripts/mumuki_laboratory/application/inputs.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/kids.js +26 -5
- data/app/assets/javascripts/mumuki_laboratory/application/kindergarten.js +13 -8
- data/app/assets/javascripts/mumuki_laboratory/application/messages.js +6 -6
- data/app/assets/javascripts/mumuki_laboratory/application/mu-modal-carrousel.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/multiple-choice.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/multiple-files.js +3 -3
- data/app/assets/javascripts/mumuki_laboratory/application/multiple-scenarios.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/pin.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/primary.js +6 -4
- data/app/assets/javascripts/mumuki_laboratory/application/progress.js +1 -1
- data/app/assets/javascripts/mumuki_laboratory/application/results-renderer.js +29 -2
- data/app/assets/javascripts/mumuki_laboratory/application/speech-bubble-renderer.js +4 -4
- data/app/assets/javascripts/mumuki_laboratory/application/submission.js +72 -48
- data/app/assets/javascripts/mumuki_laboratory/application/submissions-store.js +3 -3
- data/app/assets/javascripts/mumuki_laboratory/application/sync-mode.js +2 -2
- data/app/assets/javascripts/mumuki_laboratory/application/timer.js +1 -1
- data/app/assets/stylesheets/mumuki_laboratory/application/_layout.scss +7 -7
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids.scss +4 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_kids_results.scss +1 -0
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_overlap.scss +0 -4
- data/app/assets/stylesheets/mumuki_laboratory/application/modules/_terms.scss +4 -0
- data/app/controllers/chapters_controller.rb +9 -5
- data/app/controllers/concerns/with_user_discussion_validation.rb +6 -0
- data/app/controllers/discussions_controller.rb +0 -6
- data/app/controllers/guide_container_controller.rb +2 -7
- data/app/helpers/assignment_result_helper.rb +1 -1
- data/app/helpers/contextualization_result_helper.rb +0 -8
- data/app/helpers/discussions_helper.rb +12 -4
- data/app/helpers/editor_tabs_helper.rb +1 -1
- data/app/helpers/icons_helper.rb +1 -1
- data/app/helpers/links_helper.rb +3 -3
- data/app/helpers/menu_bar_helper.rb +9 -1
- data/app/helpers/overlapped_buttons_helper.rb +6 -2
- data/app/views/book/show.html.erb +2 -2
- data/app/views/book_discussions/index.html.erb +3 -1
- data/app/views/chapters/show.html.erb +21 -9
- data/app/views/complements/show.html.erb +1 -1
- data/app/views/discussions/_message.html.erb +2 -2
- data/app/views/discussions/index.html.erb +11 -4
- data/app/views/exams/show.html.erb +1 -1
- data/app/views/exercise_solutions/_kids_level_up.html.erb +1 -1
- data/app/views/exercises/_exercise_assignment.html.erb +1 -1
- data/app/views/exercises/_read_only.html.erb +1 -1
- data/app/views/exercises/show.html.erb +2 -2
- data/app/views/layouts/_copyright.html.erb +1 -1
- data/app/views/layouts/_discussions.html.erb +0 -4
- data/app/views/layouts/_guide.html.erb +9 -36
- data/app/views/layouts/_guide_container.html.erb +28 -0
- data/app/views/layouts/_guide_title_icons.html.erb +9 -0
- data/app/views/layouts/_kids.html.erb +4 -4
- data/app/views/layouts/_kindergarten.html.erb +5 -5
- data/app/views/layouts/_social_media.html.erb +4 -4
- data/app/views/layouts/_timer.html.erb +1 -1
- data/app/views/layouts/application.html.erb +31 -27
- data/app/views/layouts/embedded.html.erb +14 -11
- data/app/views/layouts/exercise_inputs/editors/_code.html.erb +1 -6
- data/app/views/layouts/exercise_inputs/editors/_multiple_files.html.erb +4 -9
- data/app/views/layouts/exercise_inputs/forms/_problem_form.html.erb +1 -1
- data/app/views/layouts/exercise_inputs/layouts/_input_kindergarten.html.erb +1 -1
- data/app/views/layouts/modals/_guide_corollary.html.erb +13 -3
- data/app/views/layouts/modals/_kids_results.html.erb +2 -2
- data/app/views/layouts/modals/_kindergarten_context.html.erb +3 -3
- data/app/views/layouts/modals/_kindergarten_results.html.erb +3 -3
- data/app/views/layouts/modals/_kindergarten_results_aborted.html.erb +2 -2
- data/app/views/layouts/modals/_level_up.html.erb +1 -1
- data/app/views/lessons/show.html.erb +1 -1
- data/app/views/users/_edit_user_form.html.erb +1 -1
- data/app/views/users/_term.html.erb +1 -1
- data/app/views/users/_user_form.html.erb +1 -1
- data/lib/mumuki/laboratory/controllers/results_rendering.rb +2 -1
- data/lib/mumuki/laboratory/engine.rb +1 -1
- data/lib/mumuki/laboratory/locales/en.yml +5 -8
- data/lib/mumuki/laboratory/locales/es-CL.yml +5 -3
- data/lib/mumuki/laboratory/locales/es.yml +8 -10
- data/lib/mumuki/laboratory/locales/pt.yml +5 -8
- data/lib/mumuki/laboratory/version.rb +1 -1
- data/spec/controllers/discussions_controller_spec.rb +19 -0
- data/spec/controllers/exercise_solutions_controller_spec.rb +3 -2
- data/spec/dummy/db/schema.rb +50 -1
- data/spec/dummy/public/character/animations.json +1 -0
- data/{public → spec/dummy/public}/character/kibi/context.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/failure.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/jump.svg +0 -0
- data/spec/dummy/public/character/kibi/passed_with_warnings.svg +4 -0
- data/{public → spec/dummy/public}/character/kibi/success2_l.svg +0 -0
- data/{public → spec/dummy/public}/character/kibi/success_l.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/apparition.svg +0 -0
- data/{public → spec/dummy/public}/character/magnifying_glass/loop.svg +0 -0
- data/spec/features/chapters_flow_spec.rb +112 -0
- data/spec/features/login_flow_spec.rb +1 -1
- data/spec/features/terms_flow_spec.rb +2 -0
- data/spec/features/topic_flow_spec.rb +0 -1
- data/spec/helpers/icons_helper_spec.rb +3 -3
- data/spec/helpers/test_results_rendering_spec.rb +8 -8
- data/spec/helpers/with_navigation_spec.rb +14 -14
- data/spec/javascripts/gamification-spec.js +2 -2
- data/spec/javascripts/i18n-spec.js +79 -0
- data/spec/javascripts/kids-button-spec.js +36 -0
- metadata +136 -115
- data/spec/dummy/config/database.travis.yml +0 -4
- data/spec/features/chapter_spec.rb +0 -70
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,4 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><svg xmlns:xlink="http://www.w3.org/1999/xlink" id="amarillo_maso" image-rendering="auto" baseProfile="basic" version="1.1" x="0px" y="0px" width="120" height="110" xmlns="http://www.w3.org/2000/svg"><defs><symbol id="lupa" overflow="visible"><g id="lupa_0.0"><g><path fill="none" stroke="#999" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M7.95,8.2L7.95,26.7"/><path fill="#6CF" stroke="#999" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M8.2,-6.85Q3.75,-6.85 0.55,-3.7 -2.6,-0.5 -2.6,3.95 -2.6,8.4 0.55,11.55 3.75,14.75 8.2,14.75 12.65,14.75 15.8,11.55 19,8.4 19,3.95 19,-0.5 15.8,-3.7 12.65,-6.85 8.2,-6.85"/><path fill="none" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M8.25,-2.55Q8.95,-2.45 9.7,-2.3 12.4,-1.75 13.9,0.6 15.05,2.55 14.95,4.65"/></g></g>
|
2
|
+
</symbol><symbol id="Duplicate_Items_Folder_ojos1" overflow="visible"><g id="Duplicate Items Folder/ojos1_0.0"><g><path fill="#FFF" d="M9.7,10.15Q11.55,8.75 11.7,6.35 11.85,3.95 10.15,2.05 8.7,0.4 6.25,0.25 3.85,0.1 1.95,1.55 0.15,3.2 0,5.6 -0.15,8 1.5,9.65 3.1,11.6 5.5,11.75 7.95,11.9 9.7,10.15"/><path fill="#0E2D38" d="M7.2,5.05L8.7,3.3Q7.75,2.35 6.2,2.25 4.6,2.15 3.35,3.1 2.15,4.2 2.05,5.8 1.95,7.4 3.05,8.5 4.1,9.8 5.7,9.9 7.35,10 8.5,8.85 9.75,7.9 9.85,6.3 9.9,5.8 9.8,5.4L7.2,5.05"/><path fill="#FFF" d="M16.5,9.4Q18.1,11.35 20.5,11.5 22.95,11.65 24.7,9.9 26.55,8.5 26.7,6.1 26.85,3.7 25.15,1.8 23.7,0.15 21.25,0 18.85,-0.15 16.95,1.3 15.15,2.95 15,5.35 14.85,7.75 16.5,9.4"/><path fill="#0E2D38" d="M23.85,2.95Q22.9,2 21.35,1.9 19.75,1.8 18.5,2.75 17.3,3.85 17.2,5.45 17.1,7.05 18.2,8.15 19.25,9.45 20.85,9.55 22.5,9.65 23.65,8.5 24.9,7.55 25,5.95 25.05,5.45 24.95,5.05L22.35,4.7 23.85,2.95"/></g></g>
|
3
|
+
</symbol><symbol id="ojos4" overflow="visible"><g id="ojos2_0.0"><g><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M10.1,7.4L4.1,10.9M10.1,7.4L3.85,3.1"/><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M17.3,6.75L23.85,9.1M17.3,6.75L22.65,1.35"/></g></g>
|
4
|
+
</symbol></defs><g id="Scene_1" overflow="visible"><g><path fill="#999" d="M81.2,98.85Q81.35,98.8 81.35,98.7 81.35,98.65 81.2,98.55 81.1,98.5 80.9,98.5 80.75,98.5 80.6,98.55 80.5,98.65 80.5,98.7 80.5,98.8 80.6,98.85 80.75,98.9 80.9,98.9 81.1,98.9 81.2,98.85"/><path fill="#999" d="M42.6,97.3Q42.5,97.35 42.5,97.45 42.5,97.55 42.6,97.6 42.75,97.65 42.95,97.65 43.1,97.65 43.25,97.6 43.35,97.55 43.35,97.45 43.35,97.35 43.25,97.3 43.1,97.25 42.95,97.25 42.75,97.25 42.6,97.3"/><path fill="#999" d="M41.5,97.95Q41.35,97.95 41.2,98 41.05,98.05 41.05,98.15 41.05,98.2 41.2,98.3 41.35,98.35 41.5,98.35 41.7,98.35 41.8,98.3 41.95,98.2 41.95,98.15 41.95,98.05 41.8,98 41.7,97.95 41.5,97.95"/><path fill="#999" d="M45.05,98.3Q44.95,98.4 44.95,98.45 44.95,98.55 45.05,98.6 45.2,98.65 45.4,98.65 45.55,98.65 45.65,98.6 45.8,98.55 45.8,98.45 45.8,98.4 45.65,98.3 45.55,98.25 45.4,98.25 45.2,98.25 45.05,98.3"/><path fill="#999" d="M49.95,95.6Q49.85,95.7 49.85,95.75 49.85,95.85 49.95,95.9 50.1,95.95 50.25,95.95 50.45,95.95 50.55,95.9 50.7,95.85 50.7,95.75 50.7,95.7 50.55,95.6 50.45,95.55 50.25,95.55 50.1,95.55 49.95,95.6"/><path fill="#999" d="M46.25,94.05Q46.25,94.15 46.35,94.2 46.5,94.25 46.65,94.25 46.85,94.25 46.95,94.2 47.1,94.15 47.1,94.05 47.1,94 46.95,93.9 46.85,93.85 46.65,93.85 46.5,93.85 46.35,93.9 46.25,94 46.25,94.05"/><path fill="#999" d="M47.95,96.5Q47.8,96.5 47.65,96.55 47.55,96.65 47.55,96.7 47.55,96.8 47.65,96.85 47.8,96.9 47.95,96.9 48.15,96.9 48.25,96.85 48.4,96.8 48.4,96.7 48.4,96.65 48.25,96.55 48.15,96.5 47.95,96.5"/><path fill="#999" d="M46.35,98.8Q46.2,98.9 46.2,98.95 46.2,99.05 46.35,99.1 46.5,99.15 46.65,99.15 46.85,99.15 46.95,99.1 47.1,99.05 47.1,98.95 47.1,98.9 46.95,98.8 46.85,98.75 46.65,98.75 46.5,98.75 46.35,98.8"/><path fill="#999" d="M49.75,96.4Q49.6,96.4 49.45,96.45 49.35,96.55 49.35,96.6 49.35,96.7 49.45,96.75 49.6,96.8 49.75,96.8 49.95,96.8 50.05,96.75 50.2,96.7 50.2,96.6 50.2,96.55 50.05,96.45 49.95,96.4 49.75,96.4"/><path fill="#999" d="M49.25,96.5Q49.25,96.45 49.15,96.35 49,96.3 48.85,96.3 48.65,96.3 48.55,96.35 48.4,96.45 48.4,96.5 48.4,96.6 48.55,96.65 48.65,96.7 48.85,96.7 49,96.7 49.15,96.65 49.25,96.6 49.25,96.5"/><path fill="#999" d="M49,98.25Q48.9,98.35 48.9,98.4 48.9,98.5 49,98.55 49.15,98.6 49.35,98.6 49.45,98.6 49.55,98.6 49.45,98.65 49.45,98.7 49.45,98.8 49.55,98.85 49.7,98.9 49.9,98.9 50.05,98.9 50.15,98.85 50.3,98.8 50.3,98.7 50.3,98.65 50.15,98.6 50.05,98.5 49.9,98.5 49.7,98.5 49.6,98.6L49.6,98.55Q49.75,98.5 49.75,98.4 49.75,98.35 49.6,98.25 49.5,98.2 49.35,98.2 49.15,98.2 49,98.25"/><path fill="#999" d="M51.75,95.6Q51.65,95.65 51.65,95.75 51.65,95.8 51.75,95.85 51.9,95.95 52.1,95.95 52.25,95.95 52.4,95.85 52.5,95.8 52.5,95.75 52.5,95.65 52.4,95.6 52.25,95.55 52.1,95.55 51.9,95.55 51.75,95.6"/><path fill="#999" d="M51.4,94.45Q51.25,94.5 51.25,94.55 51.25,94.65 51.4,94.7 51.55,94.75 51.7,94.75 51.9,94.75 52,94.7 52.15,94.65 52.15,94.55 52.15,94.5 52,94.45 51.9,94.35 51.7,94.35 51.55,94.35 51.4,94.45"/><path fill="#999" d="M52.9,94.7Q52.7,94.7 52.55,94.75 52.45,94.85 52.45,94.9 52.45,95 52.55,95.05 52.7,95.1 52.9,95.1 53.05,95.1 53.15,95.05 53.3,95 53.3,94.9 53.3,94.85 53.15,94.75 53.05,94.7 52.9,94.7"/><path fill="#999" d="M52.35,97Q52.35,96.95 52.2,96.85 52.1,96.8 51.95,96.8 51.75,96.8 51.6,96.85 51.5,96.95 51.5,97 51.5,97.1 51.6,97.15 51.75,97.2 51.95,97.2 52.1,97.2 52.2,97.15 52.35,97.1 52.35,97"/><path fill="#999" d="M51.5,98.45Q51.5,98.5 51.6,98.55 51.743,98.646 51.875,98.65 51.838,98.65 51.75,98.65 51.65,98.75 51.65,98.8 51.55,98.85 51.55,98.95 51.55,99.05 51.65,99.1 51.8,99.15 51.95,99.15 52.15,99.15 52.25,99.1 52.4,99.05 52.4,98.95 52.5,98.9 52.5,98.8 52.5,98.75 52.4,98.65 52.252,98.601 52.1,98.6 52.152,98.598 52.2,98.55 52.35,98.5 52.35,98.45 52.35,98.35 52.2,98.3 52.1,98.25 51.9,98.25 51.75,98.25 51.6,98.3 51.5,98.35 51.5,98.45"/><path fill="#999" d="M51.65,97.7Q51.65,97.8 51.75,97.85 51.9,97.9 52.05,97.9 52.25,97.9 52.35,97.85 52.5,97.8 52.5,97.7 52.5,97.6 52.35,97.55 52.25,97.5 52.05,97.5 51.9,97.5 51.75,97.55 51.65,97.6 51.65,97.7"/><path fill="#999" d="M52.9,97.8Q52.75,97.8 52.6,97.85 52.5,97.9 52.5,98 52.5,98.1 52.6,98.15 52.75,98.2 52.9,98.2 53.1,98.2 53.2,98.15 53.35,98.1 53.35,98 53.35,97.95 53.3,97.9 53.45,97.95 53.6,97.95L53.65,97.95Q53.6,98 53.6,98.05 53.6,98.15 53.75,98.2 53.85,98.25 54.05,98.25 54.2,98.25 54.35,98.2 54.5,98.15 54.5,98.05 54.5,98 54.35,97.9 54.2,97.85 54.05,97.85 54,97.85 53.95,97.85 54,97.8 54,97.75 54,97.7 53.85,97.6 53.75,97.55 53.6,97.55 53.4,97.55 53.25,97.6 53.15,97.7 53.15,97.75 53.15,97.8 53.2,97.85 53.05,97.8 52.9,97.8"/><path fill="#999" d="M52.45,98.4Q52.35,98.45 52.35,98.55 52.35,98.6 52.45,98.65 52.6,98.75 52.75,98.75 52.95,98.75 53.05,98.65 53.2,98.6 53.2,98.55 53.2,98.45 53.05,98.4 52.95,98.35 52.75,98.35 52.6,98.35 52.45,98.4"/><path fill="#999" d="M55.55,96.4Q55.35,96.4 55.2,96.45 55.1,96.5 55.1,96.6 55.1,96.7 55.2,96.75 55.35,96.8 55.55,96.8 55.7,96.8 55.8,96.75 55.95,96.7 55.95,96.6 55.95,96.5 55.8,96.45 55.7,96.4 55.55,96.4"/><path fill="#999" d="M54.45,98.6Q54.6,98.65 54.75,98.65 54.95,98.65 55.05,98.6 55.2,98.55 55.2,98.45 55.2,98.35 55.05,98.3 54.95,98.25 54.75,98.25 54.6,98.25 54.45,98.3 54.35,98.35 54.35,98.45 54.35,98.55 54.45,98.6"/><path fill="#999" d="M56.45,98.9Q56.3,98.9 56.15,98.95 56.05,99 56.05,99.1L56,99.05Q55.9,99 55.7,99 55.55,99 55.4,99.05 55.3,99.15 55.3,99.2 55.3,99.3 55.4,99.35 55.55,99.4 55.7,99.4 55.9,99.4 56,99.35 56.15,99.3 56.15,99.25 56.3,99.3 56.45,99.3 56.65,99.3 56.75,99.25 56.9,99.2 56.9,99.1 56.9,99 56.75,98.95 56.65,98.9 56.45,98.9"/><path fill="#999" d="M57.1,98.05Q57.25,98.1 57.4,98.1 57.6,98.1 57.7,98.05 57.85,98 57.85,97.9 57.85,97.8 57.7,97.75 57.6,97.7 57.4,97.7 57.25,97.7 57.1,97.75 57,97.8 57,97.9 57,98 57.1,98.05"/><path fill="#999" d="M59.1,98.15Q59.25,98.15 59.4,98.1 59.55,98.05 59.55,97.95 59.55,97.85 59.4,97.8 59.3,97.75 59.2,97.75 59.2,97.7 59.1,97.7 58.95,97.6 58.8,97.6 58.65,97.6 58.5,97.7 58.4,97.75 58.35,97.8 58.2,97.9 58.2,97.95 58.2,98.05 58.35,98.1 58.5,98.15 58.65,98.15 58.8,98.15 58.9,98.15 58.95,98.15 59.1,98.15"/><path fill="#999" d="M58.65,98.8Q58.65,98.9 58.75,98.95 58.9,99 59.1,99 59.25,99 59.35,98.95 59.5,98.9 59.5,98.8 59.5,98.75 59.35,98.65 59.25,98.6 59.1,98.6 58.9,98.6 58.75,98.65 58.65,98.75 58.65,98.8"/><path fill="#999" d="M60.6,97.65Q60.45,97.6 60.3,97.6 60.15,97.6 60,97.65 59.85,97.7 59.85,97.8 59.85,97.85 60,97.95 60.1,98 60.25,98L60.25,98.05Q60.25,98.15 60.35,98.2 60.5,98.25 60.65,98.25 60.85,98.25 60.95,98.2 61.1,98.15 61.1,98.05 61.1,98 60.95,97.95 60.85,97.9 60.7,97.85 60.75,97.85 60.75,97.8 60.75,97.7 60.6,97.65"/><path fill="#999" d="M60.05,98.4Q59.85,98.4 59.7,98.45 59.6,98.5 59.6,98.6 59.6,98.65 59.7,98.7 59.85,98.8 60.05,98.8 60.2,98.8 60.3,98.7 60.45,98.65 60.45,98.6 60.45,98.5 60.3,98.45 60.2,98.4 60.05,98.4"/><path fill="#999" d="M61.7,95.15Q61.6,95.1 61.4,95.1 61.25,95.1 61.1,95.15 61,95.2 61,95.3 61,95.4 61.1,95.45 61.25,95.5 61.4,95.5 61.6,95.5 61.7,95.45 61.85,95.4 61.85,95.3 61.85,95.2 61.7,95.15"/><path fill="#999" d="M61.05,97.2Q61.05,97.25 61.15,97.3 61.3,97.4 61.45,97.4 61.65,97.4 61.75,97.3 61.9,97.25 61.9,97.2 61.9,97.1 61.75,97.05 61.65,97 61.45,97 61.3,97 61.15,97.05 61.05,97.1 61.05,97.2"/><path fill="#999" d="M62,97.9Q61.85,97.95 61.85,98 61.85,98.1 62,98.15 62.15,98.2 62.3,98.2 62.45,98.2 62.6,98.15 62.75,98.1 62.75,98 62.75,97.95 62.6,97.9 62.45,97.8 62.3,97.8 62.15,97.8 62,97.9"/><path fill="#999" d="M65.4,96.85Q65.4,96.95 65.5,97 65.65,97.05 65.85,97.05 66,97.05 66.15,97 66.25,96.95 66.25,96.85 66.25,96.8 66.15,96.7 66,96.65 65.85,96.65 65.65,96.65 65.5,96.7 65.4,96.8 65.4,96.85"/><path fill="#999" d="M64.6,96.5Q64.8,96.5 64.9,96.4 65.05,96.35 65.05,96.3 65.05,96.2 64.9,96.15 64.8,96.1 64.6,96.1 64.45,96.1 64.3,96.15 64.2,96.2 64.2,96.3 64.2,96.35 64.3,96.4 64.45,96.5 64.6,96.5"/><path fill="#999" d="M65.5,97.95Q65.4,97.9 65.25,97.9 65.05,97.9 64.9,97.95 64.8,98 64.8,98.1 64.8,98.2 64.9,98.25 65,98.3 65.15,98.3 65,98.35 65,98.45 65,98.5 65.15,98.55 65.3,98.65 65.45,98.65 65.65,98.65 65.75,98.55 65.9,98.5 65.9,98.45L65.9,98.4Q66.05,98.45 66.25,98.45 66.4,98.45 66.5,98.4 66.65,98.35 66.65,98.25 66.65,98.2 66.5,98.1 66.4,98.05 66.25,98.05 66.05,98.05 65.9,98.1 65.8,98.2 65.8,98.25 65.8,98.298 65.85,98.35 65.798,98.3 65.75,98.3 65.65,98.25 65.55,98.25 65.65,98.2 65.65,98.1 65.65,98 65.5,97.95"/><path fill="#999" d="M69.1,95.8Q69.1,95.7 69,95.65 68.85,95.6 68.7,95.6 68.5,95.6 68.4,95.65 68.25,95.7 68.25,95.8 68.2,95.85 68.2,95.95 68.2,96 68.3,96.05 68.4,96.1 68.5,96.15 68.45,96.15 68.45,96.2 68.45,96.3 68.55,96.35 68.7,96.4 68.9,96.4 69.05,96.4 69.2,96.35 69.3,96.3 69.3,96.2 69.3,96.15 69.2,96.05 69.1,96.05 69,96 69.05,96 69.05,95.95L69.05,95.9Q69.1,95.85 69.1,95.8"/><path fill="#999" d="M67.85,97Q67.95,97.1 68.15,97.1 68.3,97.1 68.45,97 68.55,96.95 68.55,96.9L68.55,96.85Q68.75,96.85 68.85,96.8 69,96.75 69,96.65 69,96.6 68.85,96.5 68.75,96.45 68.55,96.45 68.4,96.45 68.25,96.5 68.15,96.6 68.15,96.65L68.15,96.7Q67.95,96.7 67.85,96.75 67.7,96.8 67.7,96.9 67.7,96.95 67.85,97"/><path fill="#999" d="M68.2,97.2Q68.05,97.25 68.05,97.35 68.05,97.4 68.2,97.5 68.35,97.55 68.5,97.55 68.7,97.55 68.8,97.5 68.95,97.4 68.95,97.35 68.95,97.25 68.8,97.2 68.7,97.15 68.5,97.15 68.35,97.15 68.2,97.2"/><path fill="#999" d="M66.3,98.95Q66.15,98.85 66,98.85 65.8,98.85 65.7,98.95 65.55,99 65.55,99.05 65.55,99.15 65.7,99.2 65.8,99.3 66,99.3 66.15,99.3 66.3,99.2 66.4,99.15 66.4,99.05 66.4,99 66.3,98.95"/><path fill="#999" d="M70.1,96.45Q70,96.5 70,96.6 70,96.65 70.1,96.7 70.25,96.8 70.4,96.8 70.6,96.8 70.7,96.7 70.85,96.65 70.85,96.6 70.85,96.5 70.7,96.45 70.6,96.4 70.4,96.4 70.25,96.4 70.1,96.45"/><path fill="#999" d="M74,95.6Q74,95.552 73.95,95.55 74.002,95.55 74.05,95.55 74.2,95.55 74.35,95.5 74.45,95.45 74.45,95.35 74.45,95.25 74.35,95.2 74.2,95.15 74.05,95.15 73.85,95.15 73.7,95.2 73.6,95.25 73.6,95.35 73.6,95.45 73.7,95.5 73.55,95.5 73.4,95.6 73.3,95.65 73.3,95.7 73.3,95.8 73.4,95.85 73.55,95.9 73.7,95.9 73.9,95.9 74,95.85 74.15,95.8 74.15,95.7 74.15,95.65 74,95.6"/><path fill="#999" d="M74.8,95.4Q74.8,95.45 74.95,95.5 75.05,95.6 75.25,95.6 75.4,95.6 75.55,95.5 75.65,95.45 75.65,95.4 75.65,95.3 75.55,95.25 75.4,95.15 75.25,95.15 75.05,95.15 74.95,95.25 74.8,95.3 74.8,95.4"/><path fill="#999" d="M71.65,95.55Q71.8,95.55 71.95,95.5 72.05,95.45 72.05,95.35 72.05,95.3 71.95,95.2 71.8,95.15 71.65,95.15 71.45,95.15 71.35,95.2 71.2,95.3 71.2,95.35 71.2,95.45 71.35,95.5 71.45,95.55 71.65,95.55"/><path fill="#999" d="M71.95,96.9Q71.85,96.95 71.85,97.05 71.85,97.15 71.95,97.2 72.1,97.25 72.3,97.25 72.45,97.25 72.55,97.2 72.7,97.15 72.7,97.05 72.7,96.95 72.55,96.9 72.45,96.85 72.3,96.85 72.1,96.85 71.95,96.9"/><path fill="#999" d="M74.1,96.6Q74.25,96.5 74.25,96.45 74.25,96.35 74.1,96.3 74,96.25 73.8,96.25 73.65,96.25 73.5,96.3 73.4,96.35 73.4,96.45 73.4,96.5 73.5,96.6 73.65,96.65 73.8,96.65 74,96.65 74.1,96.6"/><path fill="#999" d="M74.55,97.55Q74.45,97.6 74.45,97.7 74.45,97.75 74.55,97.85 74.7,97.9 74.9,97.9 75.05,97.9 75.15,97.85 75.3,97.75 75.3,97.7 75.3,97.6 75.15,97.55 75.05,97.5 74.9,97.5 74.7,97.5 74.55,97.55"/><path fill="#999" d="M77.25,97.3Q77.4,97.35 77.6,97.35 77.75,97.35 77.9,97.3 78,97.2 78,97.15 78,97.05 77.9,97 77.75,96.95 77.6,96.95L77.55,96.95Q77.5,96.9 77.4,96.85 77.3,96.8 77.1,96.8 76.95,96.8 76.8,96.85 76.7,96.9 76.7,97 76.7,97.1 76.8,97.15 76.95,97.2 77.1,97.2L77.15,97.2Q77.2,97.25 77.25,97.3"/><path fill="#999" d="M78.15,98Q78.3,97.95 78.3,97.85 78.3,97.75 78.15,97.7 78.05,97.65 77.85,97.65 77.7,97.65 77.55,97.7 77.45,97.75 77.45,97.85 77.45,97.95 77.55,98 77.7,98.05 77.85,98.05 78.05,98.05 78.15,98"/><path fill="#999" d="M80.2,97.3Q80.1,97.25 79.95,97.25 79.75,97.25 79.6,97.3 79.5,97.35 79.5,97.45 79.5,97.55 79.6,97.6 79.75,97.65 79.95,97.65 80.1,97.65 80.2,97.6 80.35,97.55 80.35,97.45 80.35,97.35 80.2,97.3"/><path fill="#999" d="M79.6,98.3Q79.45,98.3 79.3,98.35 79.15,98.45 79.15,98.5 79.15,98.6 79.3,98.65 79.45,98.7 79.6,98.7 79.75,98.7 79.9,98.65 80.05,98.6 80.05,98.5 80.2,98.6 80.35,98.6 80.55,98.6 80.65,98.5 80.8,98.45 80.8,98.4 80.8,98.3 80.65,98.25 80.55,98.2 80.35,98.2 80.2,98.2 80.05,98.25 79.95,98.3 79.95,98.4 79.9,98.4 79.9,98.35 79.75,98.3 79.6,98.3"/><path fill="#999" d="M79.45,97.95Q79.3,98.05 79.3,98.1 79.3,98.2 79.45,98.25 79.55,98.3 79.75,98.3 79.9,98.3 80.05,98.25 80.15,98.2 80.15,98.1 80.15,98.05 80.05,97.95 79.9,97.9 79.75,97.9 79.55,97.9 79.45,97.95"/><path fill="#999" d="M79.95,100Q79.95,100.1 80.1,100.15 79.95,100.15 79.85,100.2 79.7,100.25 79.7,100.35 79.7,100.45 79.85,100.5 80,100.55 80.15,100.55 80.3,100.55 80.45,100.5 80.6,100.45 80.6,100.35 80.6,100.3 80.5,100.2 80.6,100.2 80.7,100.15 80.75,100.15 80.8,100.1 80.9,100.1 81,100.1 81.15,100.1 81.25,100.05 81.4,99.95 81.4,99.9 81.4,99.8 81.25,99.75 81.15,99.7 81,99.7 80.8,99.7 80.65,99.75 80.6,99.8 80.55,99.85 80.5,99.8 80.4,99.8 80.2,99.8 80.1,99.9 79.95,99.95 79.95,100"/><path fill="#999" d="M80.9,100.3Q80.8,100.35 80.8,100.45 80.8,100.55 80.9,100.6L80.95,100.6Q81,100.7 81.1,100.75 81.2,100.8 81.4,100.8 81.5,100.8 81.6,100.8L81.65,100.8 81.65,100.85Q81.65,100.9 81.75,100.95 81.9,101.05 82.1,101.05 82.25,101.05 82.35,100.95 82.5,100.9 82.5,100.85 82.5,100.75 82.4,100.7 82.4,100.6 82.25,100.55 82.15,100.5 81.95,100.5 81.85,100.5 81.75,100.5L81.7,100.45 81.65,100.45Q81.65,100.35 81.5,100.3 81.4,100.25 81.2,100.25 81.05,100.25 80.9,100.3"/><path fill="#999" d="M78.9,100.4Q78.8,100.35 78.6,100.35 78.45,100.35 78.3,100.4 78.2,100.45 78.2,100.55 78.2,100.6 78.3,100.7 78.45,100.75 78.6,100.75 78.8,100.75 78.9,100.7 79.05,100.6 79.05,100.55 79.05,100.45 78.9,100.4"/><path fill="#999" d="M79.1,101.2Q79.1,101.15 78.95,101.05 78.85,101 78.65,101 78.5,101 78.35,101.05 78.25,101.15 78.25,101.2 78.25,101.3 78.35,101.35 78.5,101.4 78.65,101.4 78.85,101.4 78.95,101.35 79.1,101.3 79.1,101.2"/><path fill="#999" d="M76.75,99.65Q76.9,99.6 76.9,99.5 76.9,99.45 76.75,99.4 76.65,99.3 76.5,99.3 76.3,99.3 76.15,99.4 76.05,99.45 76.05,99.5 76.05,99.6 76.15,99.65 76.3,99.7 76.5,99.7 76.65,99.7 76.75,99.65"/><path fill="#999" d="M76.2,100Q76.35,99.95 76.35,99.85 76.35,99.75 76.2,99.7 76.1,99.65 75.9,99.65 75.75,99.65 75.6,99.7 75.5,99.75 75.5,99.85 75.5,99.95 75.6,100 75.75,100.05 75.9,100.05 76.1,100.05 76.2,100"/><path fill="#999" d="M76.7,101.15Q76.7,101.25 76.8,101.3 76.95,101.35 77.1,101.35 77.3,101.35 77.4,101.3 77.55,101.25 77.55,101.15 77.55,101.1 77.4,101 77.3,100.95 77.1,100.95 76.95,100.95 76.8,101 76.7,101.1 76.7,101.15"/><path fill="#999" d="M78.35,102.75Q78.35,102.7 78.2,102.6 78.1,102.55 77.9,102.55 77.75,102.55 77.6,102.6 77.5,102.7 77.5,102.75 77.5,102.85 77.6,102.9 77.75,102.95 77.9,102.95 78.1,102.95 78.2,102.9 78.35,102.85 78.35,102.75"/><path fill="#999" d="M80.8,102.4Q80.7,102.5 80.7,102.55 80.7,102.65 80.8,102.7 80.95,102.75 81.1,102.75 81.3,102.75 81.4,102.7 81.55,102.65 81.55,102.55 81.55,102.5 81.4,102.4 81.3,102.35 81.1,102.35 80.95,102.35 80.8,102.4"/><path fill="#999" d="M80.3,103Q80.15,103.05 80.15,103.15 80.15,103.2 80.3,103.25 80.45,103.35 80.6,103.35 80.75,103.35 80.9,103.25 81.05,103.2 81.05,103.15 81.05,103.05 80.9,103 80.75,102.95 80.6,102.95 80.45,102.95 80.3,103"/><path fill="#999" d="M80.15,103.6Q80.15,103.5 80,103.45 79.9,103.4 79.7,103.4 79.55,103.4 79.4,103.45 79.25,103.5 79.25,103.6 79.25,103.65 79.4,103.7 79.55,103.8 79.7,103.8 79.85,103.8 79.95,103.75 79.95,103.85 80.1,103.9 80.2,103.95 80.4,103.95 80.55,103.95 80.7,103.9 80.8,103.85 80.8,103.75 80.8,103.65 80.7,103.6 80.55,103.55 80.4,103.55 80.25,103.55 80.15,103.6"/><path fill="#999" d="M80.1,104.95Q80.25,104.95 80.35,104.9 80.5,104.85 80.5,104.75 80.5,104.7 80.35,104.65 80.25,104.55 80.1,104.55 79.9,104.55 79.75,104.65 79.65,104.7 79.65,104.75 79.65,104.85 79.75,104.9 79.9,104.95 80.1,104.95"/><path fill="#999" d="M75,99.5Q75.2,99.5 75.3,99.45 75.45,99.4 75.45,99.3 75.45,99.25 75.3,99.15 75.2,99.1 75,99.1 74.85,99.1 74.7,99.15 74.6,99.25 74.6,99.3 74.6,99.4 74.7,99.45 74.85,99.5 75,99.5"/><path fill="#999" d="M74.2,100Q74.05,100 73.9,100.05 73.8,100.15 73.8,100.2 73.8,100.3 73.9,100.35 74.05,100.4 74.2,100.4 74.4,100.4 74.5,100.35 74.65,100.3 74.65,100.2 74.65,100.15 74.5,100.05 74.4,100 74.2,100"/><path fill="#999" d="M73.85,101.45Q73.7,101.35 73.55,101.35 73.35,101.35 73.2,101.45 73.1,101.5 73.1,101.55 73.1,101.65 73.2,101.7 73.35,101.75 73.55,101.75 73.7,101.75 73.85,101.7 73.95,101.65 73.95,101.55 73.95,101.5 73.85,101.45"/><path fill="#999" d="M72.6,99.25Q72.5,99.2 72.35,99.2 72.15,99.2 72,99.25 71.9,99.3 71.9,99.4 71.9,99.45 72,99.5 72.15,99.6 72.35,99.6 72.5,99.6 72.6,99.5 72.75,99.45 72.75,99.4 72.75,99.3 72.6,99.25"/><path fill="#999" d="M71.75,99.7Q71.75,99.6 71.6,99.55 71.45,99.5 71.3,99.5 71.1,99.5 71,99.55 70.85,99.6 70.85,99.7 70.85,99.748 70.9,99.75 70.798,99.75 70.65,99.75 70.5,99.75 70.35,99.8 70.25,99.85 70.25,99.95 70.25,100 70.35,100.1 70.5,100.15 70.65,100.15 70.85,100.15 70.95,100.1 71.1,100 71.1,99.95L71.1,99.9Q71.15,99.9 71.3,99.9 71.45,99.9 71.6,99.85 71.75,99.8 71.75,99.7"/><path fill="#999" d="M71.3,100.5Q71.15,100.45 71,100.45 70.85,100.45 70.7,100.5 70.55,100.6 70.55,100.65 70.55,100.75 70.7,100.8 70.85,100.85 71,100.85 71.15,100.85 71.3,100.8 71.45,100.75 71.45,100.65 71.45,100.6 71.3,100.5"/><path fill="#999" d="M71.65,100.7Q71.55,100.8 71.55,100.85 71.55,100.95 71.65,101 71.8,101.05 71.95,101.05 72.15,101.05 72.25,101 72.4,100.95 72.4,100.85 72.4,100.8 72.25,100.7 72.15,100.65 71.95,100.65 71.8,100.65 71.65,100.7"/><path fill="#999" d="M71.05,101.25Q71.05,101.15 70.95,101.1 70.8,101.05 70.65,101.05 70.45,101.05 70.35,101.1 70.2,101.15 70.2,101.25 70.2,101.3 70.35,101.35 70.45,101.45 70.65,101.45 70.8,101.45 70.95,101.35 71.05,101.3 71.05,101.25"/><path fill="#999" d="M71.65,101.9Q71.8,102 71.95,102 72.15,102 72.25,101.9 72.4,101.85 72.4,101.8 72.4,101.7 72.25,101.65 72.15,101.6 71.95,101.6 71.8,101.6 71.65,101.65 71.55,101.7 71.55,101.8 71.55,101.85 71.65,101.9"/><path fill="#999" d="M71.15,102.55Q71.3,102.5 71.3,102.4 71.3,102.3 71.15,102.25 71,102.2 70.85,102.2 70.65,102.2 70.55,102.25 70.4,102.3 70.4,102.4 70.4,102.5 70.55,102.55 70.65,102.6 70.85,102.6 71,102.6 71.15,102.55"/><path fill="#999" d="M71.6,104.8Q71.6,104.85 71.7,104.9 71.85,105 72,105 72.2,105 72.3,104.9 72.45,104.85 72.45,104.8 72.45,104.7 72.3,104.65 72.2,104.6 72,104.6 71.85,104.6 71.7,104.65 71.6,104.7 71.6,104.8"/><path fill="#999" d="M72.65,105.1Q72.55,105.05 72.4,105.05 72.2,105.05 72.05,105.1 71.95,105.2 71.95,105.25 71.95,105.35 72.05,105.4 72.2,105.45 72.4,105.45 72.55,105.45 72.65,105.4 72.8,105.35 72.8,105.25 72.8,105.2 72.65,105.1"/><path fill="#999" d="M75.15,102.5Q75,102.5 74.85,102.55 74.75,102.65 74.75,102.7 74.75,102.8 74.85,102.85 75,102.9 75.15,102.9 75.35,102.9 75.45,102.85 75.6,102.8 75.6,102.7 75.6,102.65 75.45,102.55 75.35,102.5 75.15,102.5"/><path fill="#999" d="M74.35,105.15Q74.2,105.1 74.05,105.1 73.9,105.1 73.75,105.15 73.6,105.25 73.6,105.3 73.6,105.4 73.75,105.45 73.9,105.5 74.05,105.5 74.2,105.5 74.35,105.45 74.5,105.4 74.5,105.3 74.5,105.25 74.35,105.15"/><path fill="#999" d="M73.85,105.55Q73.7,105.5 73.55,105.5 73.35,105.5 73.2,105.55 73.1,105.65 73.1,105.7 73.1,105.8 73.2,105.85 73.35,105.9 73.55,105.9 73.7,105.9 73.85,105.85 73.95,105.8 73.95,105.7 73.95,105.65 73.85,105.55"/><path fill="#999" d="M76.3,106.55Q76.45,106.55 76.6,106.5 76.7,106.45 76.7,106.35 76.7,106.25 76.6,106.2 76.45,106.15 76.3,106.15 76.1,106.15 76,106.2 75.85,106.25 75.85,106.35 75.85,106.45 76,106.5 76.1,106.55 76.3,106.55"/><path fill="#999" d="M69.6,99.75Q69.5,99.7 69.35,99.7 69.15,99.7 69,99.75 68.9,99.85 68.9,99.9 68.9,100 69,100.05 69.15,100.1 69.35,100.1 69.5,100.1 69.6,100.05 69.75,100 69.75,99.9 69.75,99.85 69.6,99.75"/><path fill="#999" d="M70.3,101.95Q70.2,101.9 70,101.9 69.85,101.9 69.7,101.95 69.6,102 69.6,102.1 69.6,102.15 69.7,102.25 69.85,102.3 70,102.3 70.2,102.3 70.3,102.25 70.45,102.15 70.45,102.1 70.45,102 70.3,101.95"/><path fill="#999" d="M68.15,100.5Q68.15,100.4 68,100.35 67.9,100.3 67.75,100.3 67.55,100.3 67.4,100.35 67.3,100.4 67.3,100.5 67.3,100.55 67.4,100.6 67.55,100.7 67.75,100.7 67.9,100.7 68,100.6 68.15,100.55 68.15,100.5"/><path fill="#999" d="M66,99.8Q65.95,99.85 65.9,99.9 65.85,99.9 65.8,99.9 65.65,99.9 65.5,99.95 65.35,100 65.35,100.1 65.35,100.15 65.5,100.25 65.65,100.3 65.8,100.3 65.95,100.3 66.1,100.25 66.2,100.2 66.2,100.15 66.25,100.15 66.35,100.15 66.5,100.15 66.65,100.1 66.75,100.05 66.75,99.95 66.75,99.85 66.65,99.8 66.5,99.75 66.35,99.75 66.15,99.75 66,99.8"/><path fill="#999" d="M66.75,100.95Q66.75,100.85 66.6,100.8 66.45,100.75 66.3,100.75 66.15,100.75 66,100.8 65.85,100.85 65.85,100.95 65.85,100.998 65.9,101 65.847,101 65.75,101 65.55,101 65.45,101.05 65.3,101.1 65.3,101.2 65.3,101.3 65.45,101.35 65.55,101.4 65.75,101.4 65.9,101.4 66.05,101.35 66.2,101.3 66.2,101.2 66.2,101.151 66.15,101.1 66.202,101.15 66.3,101.15 66.45,101.15 66.6,101.05 66.75,101 66.75,100.95"/><path fill="#999" d="M67.35,102.55Q67.45,102.5 67.45,102.4 67.45,102.35 67.35,102.25 67.2,102.2 67.05,102.2 66.85,102.2 66.75,102.25 66.6,102.35 66.6,102.4 66.6,102.5 66.75,102.55 66.85,102.6 67.05,102.6 67.2,102.6 67.35,102.55"/><path fill="#999" d="M67.9,102.9Q67.8,102.95 67.8,103.05 67.8,103.1 67.9,103.2 68.05,103.25 68.25,103.25L68.3,103.25Q68.35,103.25 68.45,103.25 68.6,103.25 68.75,103.2 68.85,103.15 68.85,103.05 68.85,102.95 68.75,102.9 68.6,102.85 68.45,102.85L68.4,102.85Q68.3,102.85 68.25,102.85 68.05,102.85 67.9,102.9"/><path fill="#999" d="M65.95,103.45Q66.1,103.4 66.1,103.3 66.1,103.2 65.95,103.15 65.85,103.1 65.65,103.1 65.5,103.1 65.35,103.15 65.25,103.2 65.25,103.3 65.25,103.4 65.35,103.45 65.5,103.5 65.65,103.5 65.85,103.5 65.95,103.45"/><path fill="#999" d="M66.5,105.15Q66.5,105.05 66.35,105 66.3,104.95 66.15,104.95 66.2,104.9 66.2,104.85 66.2,104.8 66.05,104.7 65.95,104.65 65.75,104.65 65.6,104.65 65.45,104.7 65.35,104.8 65.35,104.85 65.35,104.95 65.45,105 65.55,105.05 65.7,105.05 65.65,105.1 65.65,105.15 65.65,105.2 65.75,105.3 65.9,105.35 66.05,105.35 66.25,105.35 66.35,105.3 66.5,105.2 66.5,105.15"/><path fill="#999" d="M68.05,104.15Q68.2,104.1 68.2,104 68.2,103.9 68.05,103.85 67.95,103.8 67.8,103.8 67.6,103.8 67.45,103.85 67.35,103.9 67.35,104 67.35,104.1 67.45,104.15 67.6,104.2 67.8,104.2 67.95,104.2 68.05,104.15"/><path fill="#999" d="M70.1,102.65Q70.1,102.55 69.95,102.5 69.85,102.45 69.65,102.45 69.5,102.45 69.35,102.5 69.25,102.55 69.25,102.65 69.25,102.7 69.35,102.75 69.5,102.85 69.65,102.85 69.85,102.85 69.95,102.75 70.1,102.7 70.1,102.65"/><path fill="#999" d="M69.2,104.5Q69.05,104.45 68.9,104.45 68.7,104.45 68.55,104.5 68.45,104.55 68.45,104.65 68.45,104.7 68.55,104.75 68.7,104.85 68.9,104.85 69.05,104.85 69.2,104.75 69.3,104.7 69.3,104.65 69.3,104.55 69.2,104.5"/><path fill="#999" d="M70.7,103.95Q70.7,103.85 70.55,103.8 70.45,103.75 70.3,103.75 70.1,103.75 69.95,103.8 69.85,103.85 69.85,103.95 69.85,104.05 69.95,104.1 70.1,104.15 70.3,104.15 70.45,104.15 70.55,104.1 70.7,104.05 70.7,103.95"/><path fill="#999" d="M65.05,100.4Q64.95,100.35 64.75,100.35 64.6,100.35 64.45,100.4 64.35,100.5 64.35,100.55 64.35,100.65 64.45,100.7 64.6,100.75 64.75,100.75 64.95,100.75 65.05,100.7 65.2,100.65 65.2,100.55 65.2,100.5 65.05,100.4"/><path fill="#999" d="M63.95,99.45Q64.1,99.4 64.1,99.35 64.1,99.25 63.95,99.2 63.85,99.15 63.7,99.15 63.5,99.15 63.35,99.2 63.25,99.25 63.25,99.35 63.25,99.4 63.35,99.45 63.5,99.55 63.7,99.55 63.85,99.55 63.95,99.45"/><path fill="#999" d="M63.5,101.5Q63.7,101.5 63.8,101.45 63.95,101.4 63.95,101.3 63.95,101.25 63.8,101.15 63.7,101.1 63.5,101.1 63.35,101.1 63.2,101.15 63.1,101.25 63.1,101.3 63.1,101.4 63.2,101.45 63.35,101.5 63.5,101.5"/><path fill="#999" d="M62.5,99.8Q62.551,99.799 62.6,99.75 62.75,99.7 62.75,99.6 62.75,99.55 62.6,99.5 62.45,99.4 62.3,99.4 62.15,99.4 62,99.5 61.85,99.55 61.85,99.6 61.85,99.65 61.9,99.7 61.85,99.7 61.8,99.7 61.7,99.8 61.7,99.85 61.7,99.95 61.8,100 61.95,100.05 62.1,100.05 62.3,100.05 62.4,100 62.55,99.95 62.55,99.85 62.55,99.801 62.5,99.8"/><path fill="#999" d="M60.9,99.4Q60.9,99.3 60.8,99.25 60.65,99.2 60.5,99.2 60.3,99.2 60.2,99.25 60.05,99.3 60.05,99.4 60.05,99.5 60.2,99.55 60.298,99.599 60.5,99.6 60.395,99.602 60.25,99.65 60.15,99.7 60.15,99.8 60.15,99.9 60.25,99.95 60.3,99.95 60.4,100L60.4,100.05Q60.4,100.1 60.5,100.15 60.65,100.25 60.8,100.25 61,100.25 61.1,100.15 61.25,100.1 61.25,100.05 61.25,99.95 61.1,99.9 61.05,99.85 61,99.85L61,99.8Q61,99.7 60.85,99.65 60.752,99.601 60.6,99.6 60.703,99.598 60.8,99.55 60.9,99.5 60.9,99.4"/><path fill="#999" d="M60.95,101.65Q61.1,101.6 61.1,101.5 61.1,101.4 60.95,101.35 60.8,101.3 60.65,101.3 60.45,101.3 60.35,101.35 60.2,101.4 60.2,101.5 60.2,101.6 60.35,101.65 60.45,101.7 60.65,101.7 60.8,101.7 60.95,101.65"/><path fill="#999" d="M61.35,102Q61.35,101.95 61.25,101.9 61.1,101.8 60.95,101.8 60.75,101.8 60.65,101.9 60.5,101.95 60.5,102 60.5,102.1 60.65,102.15 60.75,102.2 60.95,102.2 61.1,102.2 61.25,102.15 61.35,102.1 61.35,102"/><path fill="#999" d="M61.05,100.8Q61.15,100.75 61.15,100.7 61.15,100.6 61.05,100.55 60.9,100.5 60.75,100.5 60.55,100.5 60.4,100.55 60.35,100.5 60.25,100.45 60.15,100.4 59.95,100.4 59.8,100.4 59.65,100.45 59.55,100.5 59.55,100.6 59.55,100.65 59.65,100.7 59.75,100.8 59.9,100.8 59.9,100.85 60,100.9 60.15,100.95 60.3,100.95 60.5,100.95 60.6,100.9 60.65,100.9 60.75,100.9 60.9,100.9 61.05,100.8"/><path fill="#999" d="M62.35,101.4Q62.25,101.45 62.25,101.55 62.25,101.6 62.35,101.65 62.5,101.75 62.65,101.75 62.85,101.75 62.95,101.65 63.1,101.6 63.1,101.55 63.1,101.45 62.95,101.4 62.85,101.35 62.65,101.35 62.5,101.35 62.35,101.4"/><path fill="#999" d="M62.9,102.65Q62.9,102.75 63,102.8 63.15,102.85 63.3,102.85 63.5,102.85 63.6,102.8 63.75,102.75 63.75,102.65 63.75,102.6 63.6,102.55 63.5,102.45 63.3,102.45 63.15,102.45 63,102.55 62.9,102.6 62.9,102.65"/><path fill="#999" d="M60.9,103.45Q61.05,103.5 61.2,103.5 61.4,103.5 61.5,103.45 61.65,103.4 61.65,103.3 61.65,103.25 61.5,103.2 61.4,103.1 61.2,103.1 61.05,103.1 60.9,103.2 60.8,103.25 60.8,103.3 60.8,103.4 60.9,103.45"/><path fill="#999" d="M61.3,104.9Q61.15,104.85 61,104.85 60.8,104.85 60.7,104.9 60.55,104.95 60.55,105.05 60.55,105.15 60.7,105.2 60.8,105.25 61,105.25 61.15,105.25 61.3,105.2 61.4,105.15 61.4,105.05 61.4,104.95 61.3,104.9"/><path fill="#999" d="M60.85,104.75Q60.95,104.7 60.95,104.6 60.95,104.5 60.85,104.45 60.7,104.4 60.55,104.4 60.35,104.4 60.25,104.45 60.1,104.5 60.1,104.6 60.1,104.7 60.25,104.75 60.35,104.8 60.55,104.8 60.7,104.8 60.85,104.75"/><path fill="#999" d="M65.05,103.6Q64.95,103.55 64.75,103.55 64.6,103.55 64.45,103.6 64.35,103.7 64.35,103.75 64.35,103.85 64.45,103.9 64.6,103.95 64.75,103.95 64.95,103.95 65.05,103.9 65.2,103.85 65.2,103.75 65.2,103.7 65.05,103.6"/><path fill="#999" d="M64.05,103.35Q63.9,103.3 63.75,103.3 63.6,103.3 63.45,103.35 63.3,103.45 63.3,103.5 63.3,103.6 63.45,103.65 63.6,103.7 63.75,103.7 63.9,103.7 64.05,103.65 64.2,103.6 64.2,103.5 64.2,103.45 64.05,103.35"/><path fill="#999" d="M64.65,106.35Q64.8,106.35 64.9,106.3 65.05,106.2 65.05,106.15 65.05,106.05 64.9,106 64.8,105.95 64.65,105.95 64.45,105.95 64.3,106 64.2,106.05 64.2,106.15 64.2,106.2 64.3,106.3 64.45,106.35 64.65,106.35"/><path fill="#999" d="M61.3,105.95Q61.3,105.9 61.2,105.8 61.05,105.75 60.9,105.75 60.7,105.75 60.6,105.8 60.45,105.9 60.45,105.95 60.45,106 60.5,106.05 60.45,106.1 60.45,106.15 60.45,106.25 60.6,106.3 60.7,106.35 60.9,106.35 61.05,106.35 61.2,106.3 61.3,106.25 61.3,106.15 61.3,106.1 61.25,106.05 61.3,106 61.3,105.95"/><path fill="#999" d="M60.95,107.15Q61.1,107.15 61.25,107.1 61.35,107.05 61.35,106.95 61.35,106.85 61.25,106.8 61.1,106.75 60.95,106.75 60.75,106.75 60.65,106.8 60.5,106.85 60.5,106.95 60.5,107.05 60.65,107.1 60.75,107.15 60.95,107.15"/><path fill="#999" d="M69.4,105.8Q69.25,105.75 69.1,105.75 68.9,105.75 68.8,105.8 68.65,105.85 68.65,105.95 68.65,106 68.75,106.05 68.7,106.1 68.6,106.1 68.5,106.2 68.5,106.25 68.5,106.35 68.6,106.4 68.75,106.45 68.95,106.45 69.1,106.45 69.25,106.4 69.35,106.35 69.35,106.25 69.35,106.2 69.3,106.15 69.35,106.1 69.4,106.1 69.5,106.05 69.5,105.95 69.5,105.85 69.4,105.8"/><path fill="#999" d="M68.35,106.6Q68.5,106.55 68.5,106.45 68.5,106.4 68.35,106.3 68.25,106.25 68.05,106.25 67.9,106.25 67.75,106.3 67.65,106.4 67.65,106.45 67.65,106.55 67.75,106.6 67.9,106.65 68.05,106.65 68.25,106.65 68.35,106.6"/><path fill="#999" d="M66.5,105.9Q66.7,105.9 66.8,105.85 66.95,105.8 66.95,105.7 66.95,105.65 66.8,105.55 66.7,105.5 66.5,105.5 66.35,105.5 66.2,105.55 66.1,105.65 66.1,105.7 66.1,105.8 66.2,105.85 66.35,105.9 66.5,105.9"/><path fill="#999" d="M66.6,107.3Q66.75,107.3 66.9,107.25 67,107.2 67,107.1 67,107.05 66.9,106.95 66.75,106.9 66.6,106.9 66.4,106.9 66.3,106.95 66.15,107.05 66.15,107.1 66.15,107.2 66.3,107.25 66.4,107.3 66.6,107.3"/><path fill="#999" d="M58.85,100.1Q59,100.05 59,100 59,99.9 58.85,99.85 58.75,99.8 58.55,99.8 58.4,99.8 58.25,99.85 58.15,99.9 58.15,100 58.15,100.05 58.25,100.1 58.4,100.2 58.55,100.2 58.75,100.2 58.85,100.1"/><path fill="#999" d="M58.65,100.4Q58.65,100.3 58.55,100.25 58.4,100.2 58.25,100.2 58.05,100.2 57.9,100.25 57.8,100.3 57.8,100.4 57.8,100.45 57.9,100.55 58.05,100.6 58.25,100.6 58.4,100.6 58.55,100.55 58.65,100.45 58.65,100.4"/><path fill="#999" d="M59.05,101Q59.05,101.05 59.15,101.15 59.3,101.2 59.45,101.2 59.65,101.2 59.75,101.15 59.9,101.05 59.9,101 59.9,100.9 59.75,100.85 59.65,100.8 59.45,100.8 59.3,100.8 59.15,100.85 59.05,100.9 59.05,101"/><path fill="#999" d="M58.65,100.9Q58.65,100.8 58.55,100.75 58.4,100.7 58.25,100.7 58.05,100.7 57.9,100.75 57.8,100.8 57.8,100.9 57.8,101 57.9,101.05 58.05,101.1 58.25,101.1 58.4,101.1 58.55,101.05 58.65,101 58.65,100.9"/><path fill="#999" d="M58.5,101.9Q58.35,101.95 58.35,102.05 58.35,102.1 58.5,102.15 58.548,102.198 58.6,102.2L58.55,102.2Q58.35,102.2 58.25,102.25 58.1,102.35 58.1,102.4 58.1,102.5 58.25,102.55 58.35,102.6 58.55,102.6 58.7,102.6 58.85,102.55 58.95,102.5 58.95,102.4L58.95,102.35 59,102.4Q59.15,102.45 59.3,102.45 59.45,102.45 59.6,102.4 59.75,102.3 59.75,102.25 59.75,102.15 59.6,102.1 59.45,102.05 59.3,102.05L59.25,102.05Q59.25,101.95 59.1,101.9 58.95,101.85 58.8,101.85 58.65,101.85 58.5,101.9"/><path fill="#999" d="M57.35,100.3Q57.2,100.3 57.05,100.35 56.9,100.45 56.9,100.5 56.9,100.6 57.05,100.65 57.05,100.75 57.2,100.8 57.3,100.85 57.5,100.85 57.65,100.85 57.8,100.8 57.9,100.75 57.9,100.65 57.9,100.6 57.8,100.55L57.8,100.5Q57.8,100.45 57.65,100.35 57.55,100.3 57.35,100.3"/><path fill="#999" d="M56.5,101.7Q56.65,101.8 56.8,101.8 57,101.8 57.1,101.7 57.25,101.65 57.25,101.6 57.25,101.5 57.1,101.45 57,101.4 56.8,101.4 56.65,101.4 56.5,101.45 56.35,101.5 56.35,101.6 56.35,101.65 56.5,101.7"/><path fill="#999" d="M56.9,101.9Q56.75,101.9 56.6,102 56.5,102.05 56.5,102.1 56.5,102.2 56.6,102.25 56.75,102.3 56.9,102.3 57.1,102.3 57.2,102.25 57.35,102.2 57.35,102.1 57.35,102.05 57.2,102 57.1,101.9 56.9,101.9"/><path fill="#999" d="M58.15,101.95Q58.05,101.9 57.85,101.9 57.7,101.9 57.55,101.95 57.4,102 57.4,102.1 57.4,102.15 57.55,102.2 57.7,102.3 57.85,102.3 58.05,102.3 58.15,102.2 58.3,102.15 58.3,102.1 58.3,102 58.15,101.95"/><path fill="#999" d="M57.55,102.7Q57.4,102.65 57.25,102.65 57.1,102.65 56.95,102.7 56.8,102.75 56.8,102.85 56.8,102.95 56.95,103 57,103 57.1,103.05 57,103.1 57,103.15 57,103.2 57.15,103.3 57.25,103.35 57.45,103.35 57.6,103.35 57.75,103.3 57.85,103.2 57.85,103.15 57.85,103.05 57.75,103 57.7,102.95 57.6,102.95 57.7,102.9 57.7,102.85 57.7,102.75 57.55,102.7"/><path fill="#999" d="M56.5,102.75Q56.5,102.7 56.35,102.6 56.25,102.55 56.1,102.55 55.955,102.55 55.85,102.6 55.95,102.548 55.95,102.5 55.95,102.4 55.85,102.35 55.8,102.3 55.7,102.2 55.6,102.15 55.4,102.15 55.25,102.15 55.1,102.2 55,102.3 55,102.35 55,102.45 55.1,102.5 55.1,102.55 55.2,102.6 55.35,102.7 55.5,102.7 55.6,102.7 55.7,102.65 55.65,102.7 55.65,102.75 55.65,102.85 55.75,102.9 55.9,102.95 56.1,102.95 56.25,102.95 56.35,102.9 56.5,102.85 56.5,102.75"/><path fill="#999" d="M56.85,105.05Q56.75,105.1 56.75,105.15 56.75,105.25 56.85,105.3 57,105.35 57.15,105.35 57.35,105.35 57.45,105.3 57.55,105.25 57.6,105.2 57.65,105.2 57.75,105.15 57.85,105.1 57.85,105 57.85,104.95 57.75,104.9 57.6,104.8 57.45,104.8 57.25,104.8 57.15,104.9 57.05,104.9 57.05,105 56.9,105 56.85,105.05"/><path fill="#999" d="M58.05,104.2Q57.9,104.2 57.75,104.25 57.65,104.3 57.65,104.4 57.65,104.45 57.75,104.5 57.9,104.6 58.05,104.6 58.25,104.6 58.35,104.5 58.5,104.45 58.5,104.4 58.5,104.3 58.35,104.25 58.25,104.2 58.05,104.2"/><path fill="#999" d="M60.45,102.8Q60.45,102.7 60.3,102.65 60.2,102.6 60.1,102.6 60.05,102.6 60.05,102.55 59.9,102.5 59.75,102.5 59.55,102.5 59.4,102.55 59.3,102.65 59.3,102.7 59.3,102.8 59.4,102.85 59.55,102.9 59.65,102.9L59.7,102.95Q59.85,103 60,103 60.2,103 60.3,102.95 60.45,102.9 60.45,102.8"/><path fill="#999" d="M58.5,103.2Q58.5,103.25 58.65,103.3 58.75,103.4 58.95,103.4 59.1,103.4 59.25,103.3 59.35,103.25 59.35,103.2 59.35,103.1 59.25,103.05 59.1,102.95 58.95,102.95 58.75,102.95 58.65,103.05 58.5,103.1 58.5,103.2"/><path fill="#999" d="M59.35,104.65Q59.25,104.7 59.25,104.8 59.2,104.85 59.2,104.9 59.2,104.95 59.3,105 59.45,105.1 59.65,105.1 59.8,105.1 59.9,105 60.05,104.95 60.05,104.9 60.1,104.85 60.1,104.8 60.1,104.7 59.95,104.65 59.85,104.6 59.65,104.6 59.5,104.6 59.35,104.65"/><path fill="#999" d="M55.5,99.6Q55.5,99.5 55.35,99.45 55.25,99.4 55.05,99.4 54.9,99.4 54.75,99.45 54.65,99.5 54.65,99.6 54.65,99.65 54.75,99.7 54.9,99.8 55.05,99.8 55.25,99.8 55.35,99.7 55.5,99.65 55.5,99.6"/><path fill="#999" d="M53.45,100Q53.45,100.1 53.6,100.15 53.7,100.2 53.9,100.2 54.05,100.2 54.2,100.15 54.3,100.1 54.3,100 54.3,99.95 54.2,99.85 54.05,99.8 53.9,99.8 53.7,99.8 53.6,99.85 53.45,99.95 53.45,100"/><path fill="#999" d="M54.15,100.5Q54.05,100.45 53.85,100.45 53.7,100.45 53.55,100.5 53.45,100.6 53.45,100.65 53.45,100.75 53.55,100.8 53.7,100.85 53.85,100.85 54.05,100.85 54.15,100.8 54.3,100.75 54.3,100.65 54.3,100.6 54.15,100.5"/><path fill="#999" d="M53.75,101Q53.65,100.95 53.5,100.95 53.3,100.95 53.15,101 53.05,101.1 53.05,101.15 53.05,101.25 53.15,101.3 53.3,101.35 53.5,101.35 53.65,101.35 53.75,101.3 53.9,101.25 53.9,101.15 53.9,101.1 53.75,101"/><path fill="#999" d="M54.85,101.8Q54.7,101.8 54.55,101.85 54.45,101.9 54.45,102 54.45,102.05 54.55,102.1 54.7,102.2 54.85,102.2 55.05,102.2 55.15,102.1 55.3,102.05 55.3,102 55.3,101.9 55.15,101.85 55.05,101.8 54.85,101.8"/><path fill="#999" d="M52.75,99.35Q52.75,99.3 52.6,99.2 52.5,99.15 52.3,99.15 52.15,99.15 52,99.2 51.9,99.3 51.9,99.35 51.9,99.45 52,99.5 52.15,99.55 52.3,99.55 52.5,99.55 52.6,99.5 52.75,99.45 52.75,99.35"/><path fill="#999" d="M52.4,100.35Q52.303,100.302 52.15,100.3 52.305,100.297 52.45,100.2 52.45,100.3 52.55,100.35 52.7,100.4 52.9,100.4 53.05,100.4 53.15,100.35 53.3,100.3 53.3,100.2 53.3,100.1 53.15,100.05 53.05,100 52.9,100 52.7,100 52.6,100.05 52.55,100 52.45,99.95 52.3,99.9 52.15,99.9 52,99.9 51.85,99.95 51.7,100 51.7,100.1 51.7,100.15 51.85,100.2 51.998,100.298 52.1,100.3 51.948,100.301 51.8,100.35 51.65,100.4 51.65,100.5 51.65,100.55 51.8,100.6 51.95,100.7 52.1,100.7 52.25,100.7 52.4,100.6 52.55,100.55 52.55,100.5 52.55,100.4 52.4,100.35"/><path fill="#999" d="M51.65,101.7Q51.55,101.8 51.55,101.85L51.55,101.9Q51.5,101.85 51.45,101.85 51.35,101.8 51.15,101.8 51,101.8 50.9,101.85 50.75,101.85 50.65,101.9 50.5,101.95 50.5,102.05 50.5,102.1 50.65,102.2 50.75,102.25 50.95,102.25 51.1,102.25 51.2,102.2 51.35,102.2 51.45,102.15 51.6,102.1 51.6,102L51.6,101.95Q51.601,102 51.65,102 51.8,102.05 51.95,102.05 52.05,102.05 52.1,102.05L52.05,102.1Q52.05,102.2 52.2,102.25 52.3,102.3 52.5,102.3 52.65,102.3 52.8,102.25 52.95,102.2 52.95,102.1 52.95,102.05 52.8,102 52.65,101.9 52.5,101.9 52.45,101.9 52.4,101.95 52.4,101.9 52.4,101.85 52.4,101.8 52.25,101.7 52.15,101.65 51.95,101.65 51.8,101.65 51.65,101.7"/><path fill="#999" d="M51.15,104.7Q51.05,104.75 51.05,104.85 51.05,104.9 51.15,104.95 51.3,105.05 51.45,105.05 51.65,105.05 51.75,104.95 51.9,104.9 51.9,104.85 51.9,104.75 51.75,104.7 51.65,104.65 51.45,104.65 51.3,104.65 51.15,104.7"/><path fill="#999" d="M52.45,104.5Q52.45,104.55 52.55,104.6 52.7,104.7 52.85,104.7 53.05,104.7 53.15,104.6 53.3,104.55 53.3,104.5 53.3,104.4 53.15,104.35 53.05,104.3 52.85,104.3 52.7,104.3 52.55,104.35 52.45,104.4 52.45,104.5"/><path fill="#999" d="M54.8,104.95Q54.7,105 54.7,105.1 54.7,105.15 54.8,105.2 54.95,105.3 55.1,105.3 55.3,105.3 55.4,105.2 55.55,105.15 55.55,105.1 55.55,105 55.4,104.95 55.3,104.9 55.1,104.9 54.95,104.9 54.8,104.95"/><path fill="#999" d="M55.45,105.65Q55.45,105.55 55.3,105.5 55.2,105.45 55.05,105.45 54.85,105.45 54.7,105.5 54.6,105.55 54.6,105.65 54.6,105.7 54.7,105.75 54.85,105.85 55.05,105.85 55.2,105.85 55.3,105.75 55.45,105.7 55.45,105.65"/><path fill="#999" d="M54.95,106.5Q54.8,106.45 54.65,106.45 54.45,106.45 54.3,106.5 54.2,106.55 54.2,106.65 54.2,106.7 54.3,106.75 54.45,106.85 54.65,106.85 54.8,106.85 54.95,106.75 55.05,106.7 55.05,106.65 55.05,106.55 54.95,106.5"/><path fill="#999" d="M51.85,106.1Q52.05,106.1 52.15,106.05 52.3,106 52.3,105.9 52.3,105.8 52.15,105.75 52.05,105.7 51.85,105.7 51.7,105.7 51.55,105.75 51.45,105.8 51.45,105.9 51.45,106 51.55,106.05 51.7,106.1 51.85,106.1"/><path fill="#999" d="M49.1,101.9Q48.95,101.9 48.8,101.95 48.65,102 48.65,102.1 48.65,102.15 48.8,102.2L48.8,102.3Q48.8,102.35 48.9,102.4 49.05,102.5 49.2,102.5 49.4,102.5 49.5,102.4 49.65,102.35 49.65,102.3 49.65,102.25 49.65,102.2 49.7,102.2 49.8,102.15 49.95,102.1 49.95,102.05 49.95,101.95 49.8,101.9 49.7,101.85 49.5,101.85 49.35,101.85 49.2,101.9 49.15,101.9 49.1,101.9"/><path fill="#999" d="M47.25,99.15Q47.25,99.2 47.4,99.25 47.5,99.35 47.7,99.35 47.85,99.35 48,99.25 48.1,99.2 48.1,99.15 48.1,99.05 48,99 47.85,98.95 47.7,98.95 47.5,98.95 47.4,99 47.25,99.05 47.25,99.15"/><path fill="#999" d="M47.6,101.25Q47.8,101.25 47.9,101.2 48.05,101.15 48.05,101.05 48.05,101 47.9,100.9 47.8,100.85 47.6,100.85 47.45,100.85 47.3,100.9 47.15,101 47.15,101.05 47.15,101.15 47.3,101.2 47.45,101.25 47.6,101.25"/><path fill="#999" d="M47.3,101.4Q47.2,101.5 47.2,101.55 47.2,101.65 47.3,101.7 47.45,101.75 47.6,101.75 47.8,101.75 47.9,101.7 48.05,101.65 48.05,101.55 48.05,101.5 47.9,101.4 47.8,101.35 47.6,101.35 47.45,101.35 47.3,101.4"/><path fill="#999" d="M47.95,102.65Q48.05,102.55 48.05,102.5 48.05,102.4 47.95,102.35 47.8,102.3 47.65,102.3 47.45,102.3 47.35,102.35 47.2,102.4 47.2,102.5 47.2,102.55 47.35,102.65 47.45,102.7 47.65,102.7 47.8,102.7 47.95,102.65"/><path fill="#999" d="M48,103.45Q47.9,103.5 47.9,103.6 47.9,103.65 48,103.7 48.1,103.75 48.2,103.8L48.2,103.85Q48.2,103.9 48.3,103.95 48.45,104.05 48.6,104.05 48.7,104.05 48.75,104 48.85,104.05 48.9,104.05 49.05,104.05 49.2,103.95 49.35,103.9 49.35,103.85 49.35,103.75 49.2,103.7 49.05,103.6 48.9,103.6 48.85,103.6 48.75,103.65L48.75,103.6Q48.75,103.5 48.6,103.45 48.5,103.4 48.3,103.4 48.15,103.4 48,103.45"/><path fill="#999" d="M45.8,102.3Q45.9,102.25 45.9,102.15 45.9,102.1 45.8,102 45.65,101.95 45.5,101.95 45.3,101.95 45.15,102 45.05,102.1 45.05,102.15 45.05,102.25 45.15,102.3 45.3,102.35 45.5,102.35 45.65,102.35 45.8,102.3"/><path fill="#999" d="M47.6,104.3Q47.65,104.25 47.7,104.25L47.75,104.25Q47.95,104.25 48.05,104.2 48.2,104.1 48.2,104.05 48.2,103.95 48.05,103.9 47.95,103.85 47.75,103.85 47.6,103.85 47.45,103.9 47.4,103.95 47.35,103.95L47.3,103.95Q47.15,103.95 47,104.05 46.9,104.1 46.9,104.15 46.9,104.25 47,104.3 47.15,104.35 47.3,104.35 47.5,104.35 47.6,104.3"/><path fill="#999" d="M47.55,104.8Q47.55,104.9 47.7,104.95L47.7,105Q47.55,105.05 47.55,105.15 47.55,105.2 47.7,105.25 47.85,105.35 48,105.35 48.15,105.35 48.3,105.25 48.45,105.2 48.45,105.15 48.45,105.05 48.3,105L48.25,104.95 48.3,104.95Q48.45,104.9 48.45,104.8 48.45,104.75 48.3,104.65 48.15,104.6 48,104.6 47.85,104.6 47.7,104.65 47.55,104.75 47.55,104.8"/><path fill="#999" d="M44.4,99.55Q44.5,99.5 44.5,99.45 44.5,99.35 44.4,99.3 44.25,99.25 44.1,99.25 43.9,99.25 43.8,99.3 43.65,99.35 43.65,99.45 43.65,99.5 43.8,99.55 43.9,99.65 44.1,99.65 44.25,99.65 44.4,99.55"/><path fill="#999" d="M41.7,101.45Q41.7,101.4 41.55,101.3 41.45,101.25 41.25,101.25 41.1,101.25 40.95,101.3 40.85,101.4 40.85,101.45 40.85,101.55 40.95,101.6 41.1,101.65 41.25,101.65 41.45,101.65 41.55,101.6 41.7,101.55 41.7,101.45"/><path fill="#999" d="M40.85,103.4Q40.7,103.45 40.7,103.55 40.7,103.6 40.85,103.65 40.95,103.75 41.1,103.75 41,103.85 41,103.9 41,104 41.1,104.05 41.25,104.1 41.45,104.1 41.6,104.1 41.75,104.05 41.85,104 41.85,103.9 41.85,103.85 41.75,103.75 41.6,103.7 41.45,103.7 41.402,103.7 41.35,103.7 41.402,103.698 41.45,103.65 41.55,103.6 41.55,103.55 41.55,103.45 41.45,103.4 41.3,103.35 41.15,103.35 40.95,103.35 40.85,103.4"/><path fill="#999" d="M44.15,102.9Q44,102.85 43.85,102.85 43.65,102.85 43.55,102.9 43.4,102.95 43.4,103.05 43.4,103.15 43.55,103.2 43.65,103.25 43.85,103.25 44,103.25 44.15,103.2 44.3,103.15 44.3,103.05 44.3,102.95 44.15,102.9"/><path fill="#999" d="M45.25,103.75Q45.1,103.7 44.95,103.7 44.75,103.7 44.6,103.75 44.5,103.8 44.5,103.9 44.5,103.95 44.6,104 44.75,104.1 44.95,104.1 45.1,104.1 45.25,104 45.35,103.95 45.35,103.9 45.35,103.8 45.25,103.75"/><path fill="#999" d="M44.9,104.9Q44.75,104.9 44.6,104.95 44.5,105 44.5,105.1 44.5,105.15 44.6,105.2 44.75,105.3 44.9,105.3 45.1,105.3 45.2,105.2 45.35,105.15 45.35,105.1 45.35,105 45.2,104.95 45.1,104.9 44.9,104.9"/><path fill="#999" d="M49.75,106.85Q49.9,106.8 49.9,106.7 49.9,106.65 49.75,106.55 49.65,106.5 49.45,106.5 49.3,106.5 49.15,106.55 49.05,106.65 49.05,106.7 49.05,106.8 49.15,106.85 49.3,106.9 49.45,106.9 49.65,106.9 49.75,106.85"/><path fill="#999" d="M46.4,105.55Q46.25,105.55 46.1,105.6 46,105.7 46,105.75 46,105.85 46.1,105.9 46.25,105.95 46.4,105.95 46.6,105.95 46.7,105.9 46.85,105.85 46.85,105.75 46.85,105.7 46.7,105.6 46.6,105.55 46.4,105.55"/><path fill="#999" d="M39.7,99.75Q39.55,99.7 39.4,99.7 39.2,99.7 39.05,99.75 38.95,99.8 38.95,99.9 38.85,99.85 38.75,99.85 38.6,99.85 38.45,99.9 38.35,99.95 38.35,100.05 38.25,100 38.05,100 37.9,100 37.75,100.05 37.65,100.15 37.65,100.2 37.65,100.3 37.75,100.35 37.9,100.4 38.05,100.4 38.25,100.4 38.35,100.35 38.5,100.3 38.5,100.2 38.65,100.25 38.75,100.25 38.95,100.25 39.05,100.2 39.2,100.15 39.2,100.05 39.3,100.1 39.4,100.1 39.55,100.1 39.7,100.05 39.8,99.95 39.8,99.9 39.8,99.8 39.7,99.75"/><path fill="#999" d="M36.9,103.9Q37.05,104 37.25,104 37.4,104 37.5,103.9 37.65,103.85 37.65,103.8 37.65,103.7 37.5,103.65 37.4,103.6 37.25,103.6 37.05,103.6 36.9,103.65 36.8,103.7 36.8,103.8 36.8,103.85 36.9,103.9"/><path fill="#999" d="M40.45,102.45Q40.3,102.4 40.15,102.4 39.95,102.4 39.85,102.45 39.7,102.5 39.7,102.6 39.7,102.649 39.75,102.65L39.7,102.65Q39.55,102.6 39.4,102.6 39.25,102.6 39.1,102.65 38.95,102.7 38.95,102.8 38.95,102.85 39.1,102.95 39.25,103 39.4,103 39.55,103 39.7,102.95 39.85,102.85 39.85,102.8L39.85,102.75Q39.95,102.8 40.15,102.8 40.3,102.8 40.45,102.75 40.55,102.7 40.55,102.6 40.55,102.5 40.45,102.45"/><path fill="#999" d="M39.7,103.45Q39.5,103.45 39.35,103.5 39.25,103.55 39.25,103.65 39.25,103.75 39.35,103.8 39.5,103.85 39.7,103.85 39.85,103.85 39.95,103.8 40.1,103.75 40.1,103.65 40.1,103.55 39.95,103.5 39.85,103.45 39.7,103.45"/><path fill="#999" d="M38.75,104.8Q38.9,104.9 39.05,104.9 39.25,104.9 39.35,104.8 39.5,104.75 39.5,104.7 39.5,104.6 39.35,104.55 39.25,104.5 39.05,104.5 38.9,104.5 38.75,104.55 38.65,104.6 38.65,104.7 38.65,104.75 38.75,104.8"/><path fill="#999" d="M84.05,101.5Q84.05,101.45 83.9,101.4 83.8,101.3 83.6,101.3 83.45,101.3 83.3,101.4 83.2,101.45 83.2,101.5 83.2,101.6 83.3,101.65 83.45,101.7 83.6,101.7 83.8,101.7 83.9,101.65 84.05,101.6 84.05,101.5"/><path fill="#999" d="M83.45,100.45Q83.45,100.4 83.3,100.3 83.2,100.25 83,100.25 82.85,100.25 82.7,100.3 82.6,100.4 82.6,100.45 82.6,100.55 82.7,100.6 82.85,100.65 83,100.65 83.2,100.65 83.3,100.6 83.45,100.55 83.45,100.45"/></g><g id="pierna_i" transform="matrix(1 0 0 1 46.85 80.25)"><g id="pierna i_0.0"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M0,0L0,19.55"/></g></g><g id="pierna_d" transform="matrix(1 0 0 1 73.75 78.75)"><g id="pierna d_0.0"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M0,0L0.4,19.55"/></g></g><g mask="url(#mask_)"/><mask id="mask_"/><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M30.4,70.55Q27.05,70 25.3,70.25 25,70.25 24.7,70.3 22.05,70.7 20.7,72.45 19.3,74.5 20.7,77.2 22,79.65 25.1,81 25.8,81.3 26.65,81.55"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M29.2,69.9Q25.85,69.85 24.15,70.35 23.85,70.35 23.55,70.45 21,71.25 19.9,73.15 18.75,75.35 20.55,77.85 22.2,80.1 25.4,81 26.15,81.2 27.05,81.35"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="inline;none;inline;inline"/></g><g style="display:none;"><path fill="#F90" d="M24.6,80.8Q23.7,82.15 24,83.7 24.3,85.2 25.6,86.1 26.9,87.05 28.4,86.75 29.9,86.5 30.85,85.15 31.8,83.9 31.5,82.35 31.2,80.8 29.85,79.85 28.6,79.05 27.1,79.3 25.6,79.6 24.6,80.8"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.656;1" values="none;inline;inline"/></g><g style="display:none;"><path fill="#F90" d="M24.55,86.05Q25.7,87.2 27.25,87.1 28.8,87.05 29.9,85.85 31,84.7 30.95,83.15 30.85,81.6 29.65,80.5 28.55,79.45 27,79.5 25.45,79.6 24.3,80.7 23.25,81.9 23.35,83.45 23.4,85 24.55,86.05"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><path fill="#F90" d="M25.6,86.1Q26.9,87.05 28.4,86.75 29.9,86.5 30.85,85.15 31.8,83.9 31.5,82.35 31.2,80.8 29.85,79.85 28.6,79.05 27.1,79.3 25.6,79.6 24.6,80.8 23.7,82.15 24,83.7 24.3,85.2 25.6,86.1"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;1" values="inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M87.45,67.4Q89.35,66.55 91.35,65.15 93.75,63.55 94.75,61.45 97.95,55.6 92,52.25 89.2,50.65 85.9,50.45"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.636;1" values="none;inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M86.9,66.85Q88.9,66.65 91.25,65.85 93.95,65 95.5,63.1 100.25,57.95 95.75,52.05 93.6,49.25 90.6,47.8"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.126;0.636;0.656;1" values="none;inline;none;inline;none;none"/></g><g><path fill="none" stroke="#F90" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M86.2,63.9Q87.8,64.95 90.05,65.65 92.5,66.35 94.4,66.15 99.7,65.6 102.3,61.55 105.35,56.65 101.7,49.85"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="inline;none;inline;inline"/></g><g id="torso1" transform="matrix(0.992 -0.064 0.065 1.006 24.65 25.75)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="57.845,53.474;57.845,53.474;58.581,55.479;58.581,55.479;57.845,53.474;57.845,53.474" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-3.718,0,0;-3.718,0,0;-1.951,0,0;-1.951,0,0;-3.718,0,0;-3.718,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="0;0;-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.994,1.008;0.994,1.008" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-31.5,-29.6;-31.5,-29.6;-31.45,-29.55;-31.45,-29.55;-31.5,-29.6;-31.5,-29.6" calcMode="discrete"/><g id="torso1_1.0"><g><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M28.85,3.35L28.7,0"/><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M25.2,2L26.75,4.05"/><path fill="none" stroke="#FC3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M32.5,1.8L30.95,3.85"/></g></g><g><g id="torso1_0.0.0"><path fill="#FFB933" d="M46.45,19.6L41.8,13.9 16.85,15.9 13.05,21.85 1.8,39.85Q1.7,39.95 1.65,40.1 -1.95,48.6 2.2,54.7 5.65,59.75 12.7,60.65L55.1,57.05Q59.45,55.05 61.55,50.95 64.8,44.75 60.7,37.2 60.55,36.95 60.4,36.65L54.15,29 46.45,19.6"/></g><g id="torso1_0.0.1"><path fill="#FFA702" d="M21.7,43.6Q20.15,42.3 18.15,42.5 16.15,42.75 14.75,44.35 13.45,46 13.65,48.1 13.8,50.2 15.35,51.55 16.9,52.9 18.95,52.65 20.95,52.45 22.3,50.8 23.6,49.15 23.45,47.05 23.25,44.95 21.7,43.6"/></g><g id="torso1_0.0.2"><path fill="#FFA702" d="M55.35,48Q56.65,46.35 56.5,44.25 56.3,42.15 54.75,40.8 53.2,39.5 51.2,39.7 49.2,39.95 47.8,41.55 46.5,43.2 46.7,45.3 46.85,47.4 48.4,48.75 49.95,50.1 52,49.85 54,49.65 55.35,48"/></g><g id="torso1_0.0.3"><path fill="#F90" d="M20.95,9.35L16.85,15.9 41.8,13.9 37.15,8.25Q32.95,2.8 28.75,3.1 27.35,3.2 26.05,3.9 25.3,4.3 24.6,4.9 22.7,6.4 20.95,9.35"/></g></g></g><g id="boca_sonrie" transform="matrix(0.989 -0.099 0.101 1.003 57.85 66.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="62.934,69.276;62.934,69.276;63.208,71.478;63.208,71.478;62.969,71.749;62.969,71.749;63.208,71.478;63.208,71.478;62.934,69.276;62.934,69.276" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-5.738,0,0;-5.738,0,0;-3.971,0,0;-3.971,0,0;-2.02,0,0;-2.02,0,0;-3.971,0,0;-3.971,0,0;-5.738,0,0;-5.738,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.005;0.005" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.994,1.008;0.994,1.008" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.655;0.656;1" values="-4.85,-2.85;-4.85,-2.85;-4.9,-2.85;-4.9,-2.85;-4.85,-2.85;-4.85,-2.85" calcMode="discrete"/><g id="boca sonrie_0.0"><path fill="none" stroke="#0E2D38" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M10,1.2Q9.65,2.55 8.6,3.6 7.05,5.2 4.85,5.2 2.7,5.2 1.1,3.6 0.05,2.55 -0.3,1.2"/></g></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.992 -0.125 0.125 0.992 47.2 53.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="61.136,58.686;61.136,58.686;61.25,58.937;61.25,58.937" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="-7.167,0,0;-7.167,0,0;-6.513,0,0;-6.513,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="0;0;-0.236;-0.236" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="1,1;1,1;0.984,1.048;0.984,1.048" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.847;0.848;1" values="-13.15,-6.45;-13.15,-6.45;-13.3,-6.75;-13.3,-6.75" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.841;1" values="none;inline;inline"/></g><g style="display:none;"><use xlink:href="#ojos4" transform="matrix(0.998 -0.068 0.052 0.757 47.55 54.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="61.147,58.68;61.147,58.68;61.144,58.656;61.144,58.656" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-3.903,0,0;-3.903,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="1,0.759;1,0.759;1,1;1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.834;0.835;1" values="-13.3,-6.55;-13.3,-6.55;-13.3,-6.45;-13.3,-6.45" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.828;0.841;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.992 -0.125 0.125 0.992 47.2 53.9)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="61.136,58.686;61.136,58.686;61.25,58.937;61.25,58.937;61.202,58.746;61.202,58.746" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="-7.167,0,0;-7.167,0,0;-6.513,0,0;-6.513,0,0;-7.167,0,0;-7.167,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="0;0;-0.236;-0.236;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="1,1;1,1;0.984,1.048;0.984,1.048;1,0.689;1,0.689" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.781;0.782;0.821;0.822;1" values="-13.15,-6.45;-13.15,-6.45;-13.3,-6.75;-13.3,-6.75;-13.2,-6.6;-13.2,-6.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.775;0.828;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#ojos4" transform="matrix(0.998 -0.068 0.052 0.757 47.55 54.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="61.147,58.68;61.147,58.68;61.144,58.656;61.144,58.656" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-3.903,0,0;-3.903,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewX" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="-0.001;-0.001;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="1,0.759;1,0.759;1,1;1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.768;0.769;1" values="-13.3,-6.55;-13.3,-6.55;-13.3,-6.45;-13.3,-6.45" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.762;0.775;1" values="none;inline;none;none"/></g><g style="display:none;"><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.977 -0.116 0.119 1.041 47.45 53.45)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="61.25,58.937;61.25,58.937;61.202,58.746;61.202,58.746" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-6.513,0,0;-6.513,0,0;-7.167,0,0;-7.167,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-0.236;-0.236;0;0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="0.984,1.048;0.984,1.048;1,0.689;1,0.689" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.755;0.756;1" values="-13.3,-6.75;-13.3,-6.75;-13.2,-6.6;-13.2,-6.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.656;0.762;1" values="none;inline;none;none"/></g><g style="display:none;"><g id="ojos3" transform="matrix(0.983 -0.047 0.046 1.046 48.4 54.65)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="61.879,61.03;61.879,61.03;61.954,61.181;61.954,61.181;61.879,61.03;61.879,61.03" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-2.508,0,0;-2.508,0,0;-0.557,0,0;-0.557,0,0;-2.508,0,0;-2.508,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-0.235;-0.235;-0.236;-0.236;-0.235;-0.235" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="0.984,1.048;0.984,1.048" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;1" values="-13.4,-6.7;-13.4,-6.7;-13.35,-6.6;-13.35,-6.6;-13.4,-6.7;-13.4,-6.7" calcMode="discrete"/><g><g id="ojos3_1.0.0"><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M10.15,7.1L4.55,11.2M10.15,7.1L3.5,3.45"/></g><g id="ojos3_1.0.1"><path fill="#FFF" d="M16.75,1.3Q14.95,2.95 14.8,5.35 14.65,7.75 16.3,9.4 17.9,11.35 20.3,11.5 22.75,11.65 24.5,9.9 26.35,8.5 26.5,6.1 26.65,3.7 24.95,1.8 23.5,0.15 21.05,0 18.65,-0.15 16.75,1.3"/></g><g id="ojos3_1.0.2"><path fill="#0E2D38" d="M23.65,2.95Q22.7,2 21.15,1.9 19.55,1.8 18.3,2.75 17.1,3.85 17,5.45 16.9,7.05 18,8.15 19.05,9.45 20.65,9.55 22.3,9.65 23.45,8.5 24.7,7.55 24.8,5.95 24.85,5.45 24.75,5.05L22.15,4.7 23.65,2.95"/></g></g></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.656;1" values="none;inline;none;none"/></g><g><use xlink:href="#Duplicate_Items_Folder_ojos1" transform="matrix(0.977 -0.116 0.119 1.041 47.45 53.45)"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;1" values="inline;none;none"/></g><g style="display:none;"><use xlink:href="#lupa" transform="matrix(0.271 -0.963 0.963 0.271 65.05 51.6)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="82.438,47.316;82.438,47.316;98.179,46.775;98.179,46.775" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="-74.279,0,0;-74.279,0,0;-50.019,0,0;-50.019,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="0.999,0.999;0.999,0.999;0.998,0.998;0.998,0.998" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.655;0.656;1" values="-8.85,-15.6;-8.85,-15.6;-8.85,-15.55;-8.85,-15.55" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.636;1" values="none;inline;inline"/></g><g style="display:none;"><g id="lupa1" transform="matrix(-0.489 -0.872 0.872 -0.489 71.2 67.45)"><g id="lupa3_0.0"><g><path fill="none" stroke="#999" stroke-width="5" stroke-linecap="round" stroke-linejoin="round" d="M7.95,8.2L7.95,26.7"/><path fill="#6CF" stroke="#999" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" d="M15.8,-3.7Q12.65,-6.85 8.2,-6.85 3.75,-6.85 0.55,-3.7 -2.6,-0.5 -2.6,3.95 -2.6,8.4 0.55,11.55 3.75,14.75 8.2,14.75 12.65,14.75 15.8,11.55 19,8.4 19,3.95 19,-0.5 15.8,-3.7"/></g></g></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.636;1" values="none;inline;none;none"/></g><g><use xlink:href="#lupa" transform="matrix(0.643 -0.766 0.766 0.643 80.65 43.55)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="98.179,46.775;98.179,46.775;82.438,47.316;82.438,47.316" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="-50.019,0,0;-50.019,0,0;-74.279,0,0;-74.279,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="0.998,0.998;0.998,0.998;0.999,0.999;0.999,0.999" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;1" values="-8.85,-15.55;-8.85,-15.55;-8.85,-15.6;-8.85,-15.6" calcMode="discrete"/></use><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;1" values="inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.95,57.2Q76.4,54.65 74.15,53.15 72.15,51.8 69.55,52.3 66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2"/><path fill="#0E2D38" d="M74.8,56.6L72,56.95 73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55 75.45,59.2 75.1,57.5 75,56.95 74.8,56.6"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.49;0.636;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.25,58.95Q77.3,57.25 76.4,55.85 75.4,54.45 73,54.15 70.85,53.9 68.45,54.9 66,55.9 64.85,57.65 63.9,59.45 64.85,60.85 65.85,62.3 68.15,62.45 70.6,62.75 72.9,61.75 75.3,60.75 76.25,58.95"/><path fill="#0E2D38" d="M74.25,56.05L71.65,57.1 72.2,55.4Q70.9,55.3 69.35,55.95 67.8,56.7 67.05,57.8 66.35,58.95 67,59.85 67.7,60.85 69.25,60.95 70.75,61.2 72.35,60.45 74,59.85 74.6,58.6 75.35,57.45 74.7,56.55 74.5,56.25 74.25,56.05"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.47;0.477;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M74.15,53.15Q72.15,51.8 69.55,52.3 66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2 76.4,54.65 74.15,53.15"/><path fill="#0E2D38" d="M72,56.95L73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55 75.45,59.2 75.1,57.5 75,56.95 74.8,56.6L72,56.95"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.179;0.47;1" values="none;inline;none;none"/></g><g style="display:none;"><path fill="none" stroke="#0E2D38" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M74.2,56Q74.25,56.15 74.3,56.35 74.8,58.25 74,59.85 73.15,61.45 71.55,61.9 69.9,62.4 68.35,61.45 66.75,60.45 66.3,58.55 66.25,58.4 66.25,58.15"/><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.166;0.179;0.477;0.49;1" values="none;inline;none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M76.4,55.85Q75.4,54.45 73,54.15 70.85,53.9 68.45,54.9 66,55.9 64.85,57.65 63.9,59.45 64.85,60.85 65.85,62.3 68.15,62.45 70.6,62.75 72.9,61.75 75.3,60.75 76.25,58.95 77.3,57.25 76.4,55.85"/><path fill="#0E2D38" d="M71.65,57.1L72.2,55.4Q70.9,55.3 69.35,55.95 67.8,56.7 67.05,57.8 66.35,58.95 67,59.85 67.7,60.85 69.25,60.95 70.75,61.2 72.35,60.45 74,59.85 74.6,58.6 75.35,57.45 74.7,56.55 74.5,56.25 74.25,56.05L71.65,57.1"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.159;0.166;1" values="none;inline;none;none"/></g><g style="display:none;"><g><path fill="#FFF" d="M69.55,52.3Q66.95,52.8 65.35,54.85 63.95,57.1 64.45,59.6 64.95,62.2 67.15,63.45 69.4,65.05 71.9,64.55 74.5,64.05 75.9,61.75 77.45,59.75 76.95,57.2 76.4,54.65 74.15,53.15 72.15,51.8 69.55,52.3"/><path fill="#0E2D38" d="M74.4,60.55Q75.45,59.2 75.1,57.5 75,56.95 74.8,56.6L72,56.95 73.05,54.7Q71.8,53.95 70.15,54.25 68.45,54.6 67.4,55.95 66.45,57.45 66.8,59.1 67.15,60.85 68.6,61.7 70.05,62.75 71.75,62.4 73.5,62.1 74.4,60.55"/></g><animate attributeName="display" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.159;1" values="none;inline;none;none"/></g><g id="mano" transform="matrix(0.77 0.638 0.638 -0.77 96.95 48.7)"><animateTransform attributeName="transform" additive="replace" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="102.339,48.227;102.339,48.227;88.769,47.255;88.769,47.255;83.947,48.961;83.947,48.961;88.921,48.542;88.921,48.542;102.339,48.227;102.339,48.227" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="rotate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.099;0.1;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-140.39,0,0;-140.39,0,0;-164.648,0,0;-164.648,0,0;150.351,0,0;150.351,0,0;-164.648,0,0;-164.648,0,0;-140.39,0,0;-140.39,0,0" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="skewY" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="180;180" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="scale" repeatCount="indefinite" dur="6.292s" keyTimes="0;1" values="-1,1;-1,1" calcMode="discrete"/><animateTransform attributeName="transform" additive="sum" type="translate" repeatCount="indefinite" dur="6.292s" keyTimes="0;0.126;0.127;0.636;0.637;0.655;0.656;1" values="-3.85,-3.8;-3.85,-3.8;-3.8,-3.75;-3.8,-3.75;-3.8,-3.8;-3.8,-3.8;-3.85,-3.8;-3.85,-3.8" calcMode="discrete"/><g id="mano_0.0"><path fill="#F90" d="M7.6,3.65Q7.5,2.1 6.3,1 5.2,-0.05 3.65,0 2.1,0.1 0.95,1.2 -0.1,2.4 0,3.95 0.05,5.5 1.2,6.55 2.35,7.7 3.9,7.6 5.45,7.55 6.55,6.35 7.65,5.2 7.6,3.65"/></g></g></g></svg>
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,112 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
feature 'Chapters flow', organization_workspace: :test do
|
4
|
+
let(:haskell) { create(:haskell) }
|
5
|
+
|
6
|
+
let!(:chapter) {
|
7
|
+
create(:chapter, name: 'Functional Programming', lessons: lessons) }
|
8
|
+
|
9
|
+
let(:lessons) { [lesson_1, lesson_2] }
|
10
|
+
|
11
|
+
let(:lesson_1) {
|
12
|
+
create(:lesson, name: 'Values and Functions', language: haskell, description: 'Values are everywhere...', exercises: [
|
13
|
+
create(:exercise, name: 'The Basic Values', description: "Let's say we want to declare a variable...")
|
14
|
+
])
|
15
|
+
}
|
16
|
+
|
17
|
+
let(:lesson_2) {
|
18
|
+
create(:lesson, name: 'Monads and Functors', language: haskell, description: 'Monds are everywhere too...', exercises: [
|
19
|
+
create(:exercise, name: 'The Maybe Functor', description: "Let's say we want to model absense of value...")
|
20
|
+
])
|
21
|
+
}
|
22
|
+
|
23
|
+
before { reindex_current_organization! }
|
24
|
+
|
25
|
+
context 'multilesson' do
|
26
|
+
context 'no appendix' do
|
27
|
+
scenario 'show chapter, no appendix' do
|
28
|
+
visit "/chapters/#{chapter.id}"
|
29
|
+
|
30
|
+
expect(page).to have_text('Functional Programming')
|
31
|
+
expect(page).to have_text('The Basic Values')
|
32
|
+
|
33
|
+
expect(page).to have_text('Monads and Functors')
|
34
|
+
expect(page).to have_text('The Maybe Functor')
|
35
|
+
|
36
|
+
expect(page).to have_text(chapter.description)
|
37
|
+
|
38
|
+
expect(page).to_not have_text('Appendix')
|
39
|
+
expect(page).to have_text('Lessons')
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'with appendix' do
|
44
|
+
before { chapter.topic.update appendix: 'Check this article about endofunctors' }
|
45
|
+
|
46
|
+
scenario 'show chapter, with appendix' do
|
47
|
+
visit "/chapters/#{chapter.id}"
|
48
|
+
|
49
|
+
expect(page).to have_text('Functional Programming')
|
50
|
+
expect(page).to have_text('The Basic Values')
|
51
|
+
|
52
|
+
expect(page).to have_text('Monads and Functors')
|
53
|
+
expect(page).to have_text('The Maybe Functor')
|
54
|
+
|
55
|
+
expect(page).to have_text('Appendix')
|
56
|
+
expect(page).to have_text('Lessons')
|
57
|
+
end
|
58
|
+
|
59
|
+
scenario 'show appendix' do
|
60
|
+
visit "/chapters/#{chapter.id}/appendix"
|
61
|
+
expect(page).to have_text('Appendix')
|
62
|
+
expect(page).to have_text('endofunctors')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context 'monolesson' do
|
68
|
+
let(:lessons) { [lesson_1] }
|
69
|
+
|
70
|
+
context 'with appendix' do
|
71
|
+
before { chapter.topic.update appendix: 'Check this article about endofunctors' }
|
72
|
+
|
73
|
+
scenario 'show chapter, with appendix' do
|
74
|
+
visit "/chapters/#{chapter.id}"
|
75
|
+
|
76
|
+
expect(page).to have_text('Functional Programming')
|
77
|
+
expect(page).to have_text('The Basic Values')
|
78
|
+
|
79
|
+
expect(page).to have_text(chapter.description)
|
80
|
+
|
81
|
+
expect(page).not_to have_text("Let's say we want to declare a variable...")
|
82
|
+
|
83
|
+
expect(page).to have_text('Appendix')
|
84
|
+
expect(page).not_to have_text('Lessons')
|
85
|
+
end
|
86
|
+
|
87
|
+
scenario 'show appendix' do
|
88
|
+
visit "/chapters/#{chapter.id}/appendix"
|
89
|
+
expect(page).to have_text('Appendix')
|
90
|
+
expect(page).to have_text('endofunctors')
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
end
|
95
|
+
|
96
|
+
context 'incognito user' do
|
97
|
+
before { Organization.current.update! incognito_mode_enabled: true }
|
98
|
+
scenario 'show chapter, no appendix' do
|
99
|
+
visit "/chapters/#{chapter.id}"
|
100
|
+
|
101
|
+
expect(page).to have_text('Functional Programming')
|
102
|
+
expect(page).to have_text('The Basic Values')
|
103
|
+
|
104
|
+
expect(page).to have_text('Monads and Functors')
|
105
|
+
expect(page).to have_text('The Maybe Functor')
|
106
|
+
|
107
|
+
expect(page).to_not have_text('Appendix')
|
108
|
+
|
109
|
+
expect(page).to have_text('Sign in')
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -42,7 +42,7 @@ feature 'Login Flow', organization_workspace: :test do
|
|
42
42
|
|
43
43
|
expect(page).to_not have_text('Sign in')
|
44
44
|
expect(page).to have_text('Sign Out')
|
45
|
-
expect(page).to have_text('
|
45
|
+
expect(page).to have_text('C1')
|
46
46
|
end
|
47
47
|
|
48
48
|
scenario 'can logout', :element_not_interactable_error do
|
@@ -102,6 +102,7 @@ feature 'Terms Flow', organization_workspace: :test do
|
|
102
102
|
visit '/discussions'
|
103
103
|
expect(page).to have_text('Accept terms')
|
104
104
|
|
105
|
+
check :user_terms_of_service
|
105
106
|
click_on 'Accept'
|
106
107
|
expect(page).to have_text('Discussions')
|
107
108
|
end
|
@@ -111,6 +112,7 @@ feature 'Terms Flow', organization_workspace: :test do
|
|
111
112
|
visit '/'
|
112
113
|
expect(page).to have_text('Accept terms')
|
113
114
|
|
115
|
+
check :user_terms_of_service
|
114
116
|
click_on 'Accept'
|
115
117
|
expect(page).to have_text(test_organization.book.name)
|
116
118
|
end
|
@@ -15,7 +15,6 @@ feature 'Topic Flow', organization_workspace: :test do
|
|
15
15
|
visit "/topics/#{topic_in_path.transparent_id}"
|
16
16
|
|
17
17
|
expect(page).to have_text('Functional Programming')
|
18
|
-
expect(page).to have_text('Lessons')
|
19
18
|
end
|
20
19
|
|
21
20
|
scenario 'visit topic in path not transparently' do
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe IconsHelper, organization_workspace: :test do
|
4
4
|
helper IconsHelper
|
5
|
-
helper
|
5
|
+
helper FontAwesome5::Rails::IconHelper
|
6
6
|
|
7
7
|
describe '#language_icon' do
|
8
8
|
let(:haskell) { create(:language, name: 'Haskell') }
|
@@ -16,7 +16,7 @@ describe IconsHelper, organization_workspace: :test do
|
|
16
16
|
}
|
17
17
|
let(:failed_submission) { create(:assignment, status: :failed) }
|
18
18
|
|
19
|
-
it { expect(status_icon(passed_submission)).to eq '<i class="
|
20
|
-
it { expect(status_icon(failed_submission)).to eq '<i class="
|
19
|
+
it { expect(status_icon(passed_submission)).to eq '<i class="fas fa-check-circle text-success status-icon"></i>' }
|
20
|
+
it { expect(status_icon(failed_submission)).to eq '<i class="fas fa-times-circle text-danger status-icon"></i>' }
|
21
21
|
end
|
22
22
|
end
|
@@ -3,7 +3,7 @@ require 'ostruct'
|
|
3
3
|
|
4
4
|
describe ContextualizationResultHelper do
|
5
5
|
helper IconsHelper
|
6
|
-
helper
|
6
|
+
helper FontAwesome5::Rails::IconHelper
|
7
7
|
helper ContextualizationResultHelper
|
8
8
|
|
9
9
|
|
@@ -13,13 +13,13 @@ describe ContextualizationResultHelper do
|
|
13
13
|
context 'plain explanation' do
|
14
14
|
let(:expectation_result) { {result: :failed, explanation: 'you must delegate'} }
|
15
15
|
|
16
|
-
it { expect(html).to eq '<i class="
|
16
|
+
it { expect(html).to eq '<i class="fas fa-times-circle text-danger status-icon"></i> you must delegate' }
|
17
17
|
end
|
18
18
|
|
19
19
|
context 'html explanation' do
|
20
20
|
let(:expectation_result) { {result: :failed, explanation: 'you must use <strong>if</strong>'} }
|
21
21
|
|
22
|
-
it { expect(html).to eq '<i class="
|
22
|
+
it { expect(html).to eq '<i class="fas fa-times-circle text-danger status-icon"></i> you must use <strong>if</strong>' }
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -35,7 +35,7 @@ describe ContextualizationResultHelper do
|
|
35
35
|
test_results: [{title: '2 is 2', status: :passed, result: ''}]) }
|
36
36
|
|
37
37
|
it { expect(html).to be_html_safe }
|
38
|
-
it { expect(html).to include "<i class=\"
|
38
|
+
it { expect(html).to include "<i class=\"fas fa-check-circle text-success status-icon\"></i>" }
|
39
39
|
it { expect(html).to include "2 is 2" }
|
40
40
|
end
|
41
41
|
|
@@ -47,7 +47,7 @@ describe ContextualizationResultHelper do
|
|
47
47
|
exercise: problem,
|
48
48
|
test_results: [{title: '2 is 2', status: :failed, result: 'something _went_ wrong'}]) }
|
49
49
|
|
50
|
-
it { expect(html).to include "<i class=\"
|
50
|
+
it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
|
51
51
|
it { expect(html).to include "2 is 2" }
|
52
52
|
it { expect(html).to include "<pre>something _went_ wrong</pre>" }
|
53
53
|
end
|
@@ -59,7 +59,7 @@ describe ContextualizationResultHelper do
|
|
59
59
|
exercise: problem,
|
60
60
|
test_results: [{title: '2 is 2', status: :failed, result: 'something went _really_ wrong'}]) }
|
61
61
|
|
62
|
-
it { expect(html).to include "<i class=\"
|
62
|
+
it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
|
63
63
|
it { expect(html).to include "2 is 2" }
|
64
64
|
it { expect(html).to include "<p>something went <em>really</em> wrong</p>" }
|
65
65
|
end
|
@@ -72,7 +72,7 @@ describe ContextualizationResultHelper do
|
|
72
72
|
test_results: [{title: 'foo is 2', status: :failed, result: 'foo is undefined', summary: {type: 'undefined_variable', message: 'you are using things that are _not defined_'}}]) }
|
73
73
|
|
74
74
|
it { expect(html).to include 'foo is 2: you are using things that are <em>not defined</em>' }
|
75
|
-
it { expect(html).to include "<i class=\"
|
75
|
+
it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
|
76
76
|
it { expect(html).to include '<p>foo is undefined</p>' }
|
77
77
|
end
|
78
78
|
|
@@ -84,7 +84,7 @@ describe ContextualizationResultHelper do
|
|
84
84
|
test_results: [{title: '', status: :failed, result: 'foo is undefined', summary: {type: 'undefined_variable', message: 'you are using things that are _not defined_'}}]) }
|
85
85
|
|
86
86
|
it { expect(html).to include 'you are using things that are <em>not defined</em>' }
|
87
|
-
it { expect(html).to include "<i class=\"
|
87
|
+
it { expect(html).to include "<i class=\"fas fa-times-circle text-danger status-icon\"></i>" }
|
88
88
|
it { expect(html).to include '<p>foo is undefined</p>' }
|
89
89
|
end
|
90
90
|
end
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe WithStudentPathNavigation, organization_workspace: :test do
|
4
4
|
helper WithStudentPathNavigation
|
5
|
-
helper
|
5
|
+
helper FontAwesome5::Rails::IconHelper
|
6
6
|
|
7
7
|
describe '#next_button' do
|
8
8
|
let(:current_user) { create(:user) }
|
@@ -14,9 +14,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
14
14
|
let!(:exercise_3) { create(:exercise, id: 13, name: 'exercise 3', guide: guide) }
|
15
15
|
|
16
16
|
context 'when user did not submit any solution' do
|
17
|
-
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2
|
18
|
-
it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\">Next: exercise 3
|
19
|
-
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_1.friendly_name}\">Next pending: exercise 1
|
17
|
+
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
18
|
+
it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 3</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
19
|
+
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_1.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 1</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
20
20
|
end
|
21
21
|
|
22
22
|
context 'when on last unresolved exercise' do
|
@@ -25,9 +25,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
25
25
|
exercise_3.submit_solution!(current_user).passed!
|
26
26
|
end
|
27
27
|
|
28
|
-
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2
|
28
|
+
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
29
29
|
it { expect(next_button(exercise_2)).to be nil }
|
30
|
-
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next pending: exercise 2
|
30
|
+
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
31
31
|
end
|
32
32
|
|
33
33
|
context 'when user did submit a solution' do
|
@@ -35,9 +35,9 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
35
35
|
exercise_1.submit_solution!(current_user).passed!
|
36
36
|
end
|
37
37
|
|
38
|
-
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next: exercise 2
|
39
|
-
it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\">Next: exercise 3
|
40
|
-
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\">Next pending: exercise 2
|
38
|
+
it { expect(next_button(exercise_1)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
39
|
+
it { expect(next_button(exercise_2)).to eq "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/exercises/#{exercise_3.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 3</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
40
|
+
it { expect(next_button(exercise_3)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{exercise_2.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -46,8 +46,8 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
46
46
|
let!(:exercise) { create(:exercise, id: 12, name: 'exercise 2', guide: guide) }
|
47
47
|
|
48
48
|
context 'when user did not submit any exercise' do
|
49
|
-
it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\">Next: exercise 2
|
50
|
-
it { expect(next_button(exercise)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{reading.friendly_name}\">Next pending: exercise 1
|
49
|
+
it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
50
|
+
it { expect(next_button(exercise)).to eq "<a class=\"btn btn-warning btn-block\" role=\"button\" href=\"/exercises/#{reading.friendly_name}\"><span class=\"fa5-text-r\">Next pending: exercise 1</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
51
51
|
end
|
52
52
|
|
53
53
|
context 'when user finished just reading' do
|
@@ -55,7 +55,7 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
55
55
|
reading.submit_confirmation!(current_user)
|
56
56
|
end
|
57
57
|
|
58
|
-
it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\">Next: exercise 2
|
58
|
+
it { expect(next_button(reading)).to eq "<a class=\"btn-confirmation btn btn-success btn-block\" data-confirmation-url=\"/exercises/#{reading.friendly_name}/confirmations\" role=\"button\" href=\"/exercises/#{exercise.friendly_name}\"><span class=\"fa5-text-r\">Next: exercise 2</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
59
59
|
it { expect(next_button(exercise)).to eq nil }
|
60
60
|
end
|
61
61
|
end
|
@@ -83,12 +83,12 @@ describe WithStudentPathNavigation, organization_workspace: :test do
|
|
83
83
|
let(:lessons) { [lesson_1, lesson_2, lesson_3] }
|
84
84
|
|
85
85
|
context 'one suggestion' do
|
86
|
-
it { expect(next_button(lesson_2)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_3.friendly_name}\">Next: #{lesson_3.name}
|
86
|
+
it { expect(next_button(lesson_2)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_3.friendly_name}\"><span class=\"fa5-text-r\">Next: #{lesson_3.name}</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
87
87
|
it { expect(next_button(lesson_1)).to be_html_safe }
|
88
88
|
end
|
89
89
|
|
90
90
|
context 'many suggestions' do
|
91
|
-
it { expect(next_button(lesson_1)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_2.friendly_name}\">Next: #{lesson_2.name}
|
91
|
+
it { expect(next_button(lesson_1)).to include "<a class=\"btn btn-success btn-block\" role=\"button\" href=\"/lessons/#{lesson_2.friendly_name}\"><span class=\"fa5-text-r\">Next: #{lesson_2.name}</span><i class=\"fas fa-chevron-right\"></i></a>" }
|
92
92
|
it { expect(next_button(lesson_1)).to be_html_safe }
|
93
93
|
end
|
94
94
|
end
|
@@ -33,11 +33,11 @@ describe('gamification', () => {
|
|
33
33
|
|
34
34
|
describe('triggers level change', () => {
|
35
35
|
it('does not trigger when small exp difference', () => {
|
36
|
-
expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(
|
36
|
+
expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(50)).toBe(false);
|
37
37
|
});
|
38
38
|
|
39
39
|
it('does trigger when big exp difference', () => {
|
40
|
-
expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(
|
40
|
+
expect(new mumuki.gamification.LevelProgression(1000).triggersLevelChange(500)).toBe(true);
|
41
41
|
});
|
42
42
|
});
|
43
43
|
|
@@ -0,0 +1,79 @@
|
|
1
|
+
describe('I18n', () => {
|
2
|
+
|
3
|
+
describe('t / translate', () => {
|
4
|
+
|
5
|
+
it('accept english translations', () => {
|
6
|
+
mumuki.locale = 'en';
|
7
|
+
expect(mumuki.I18n.translate('passed')).toBe('Everything is in order! Your solution passed all our tests!');
|
8
|
+
})
|
9
|
+
it('accept spanish translations', () => {
|
10
|
+
mumuki.locale = 'es';
|
11
|
+
expect(mumuki.I18n.translate('passed_with_warnings')).toBe('Tu solución funcionó, pero hay cosas que mejorar');
|
12
|
+
})
|
13
|
+
it('accept chilean translations', () => {
|
14
|
+
mumuki.locale = 'es-CL';
|
15
|
+
expect(mumuki.I18n.translate('failed')).toBe('Tu solución no pasó las pruebas');
|
16
|
+
})
|
17
|
+
it('accept portuguese translations', () => {
|
18
|
+
mumuki.locale = 'pt';
|
19
|
+
expect(mumuki.I18n.translate('errored')).toBe('Opa! Sua solução não pode ser executada');
|
20
|
+
})
|
21
|
+
it('fails when translation missing', () => {
|
22
|
+
mumuki.locale = 'en';
|
23
|
+
expect(mumuki.I18n.translate('foo')).toBe('Translation missing: en, `foo`');
|
24
|
+
})
|
25
|
+
|
26
|
+
})
|
27
|
+
|
28
|
+
describe('register', () => {
|
29
|
+
beforeEach(() => {
|
30
|
+
mumuki.locale = 'en';
|
31
|
+
mumuki.I18n.register({
|
32
|
+
en: {
|
33
|
+
greet: (data) => `Hi ${data.name}`,
|
34
|
+
errored: "D'Oh!"
|
35
|
+
}
|
36
|
+
})
|
37
|
+
})
|
38
|
+
it('overrides existing translation key', () => {
|
39
|
+
expect(mumuki.I18n.translate('errored')).toBe("D'Oh!");
|
40
|
+
})
|
41
|
+
it('add missing translation key', () => {
|
42
|
+
expect(mumuki.I18n.translate('greet', {name: 'Jane'})).toBe('Hi Jane');
|
43
|
+
})
|
44
|
+
it('keep non overriding translation key', () => {
|
45
|
+
expect(mumuki.I18n.translate('passed')).toBe('Everything is in order! Your solution passed all our tests!');
|
46
|
+
})
|
47
|
+
})
|
48
|
+
|
49
|
+
describe('with some prefix', () => {
|
50
|
+
|
51
|
+
fixture.set(`
|
52
|
+
<div class="mu-kindergarten" data-i18n-prefix="testing">
|
53
|
+
<button class="mu-kids-button">Click me<button>
|
54
|
+
<div class="mu-kids-overlay" style="display: none"></div>
|
55
|
+
</div>
|
56
|
+
`);
|
57
|
+
|
58
|
+
beforeEach(() => {
|
59
|
+
mumuki.locale = 'en';
|
60
|
+
mumuki.I18n.register({
|
61
|
+
en: {
|
62
|
+
testing_failed: 'Ops! Execution failed',
|
63
|
+
}
|
64
|
+
})
|
65
|
+
});
|
66
|
+
|
67
|
+
it('Using prefix with existing translation key', () => {
|
68
|
+
expect(mumuki.I18n.t('passed')).toBe('Everything is in order! Your solution passed all our tests!');
|
69
|
+
});
|
70
|
+
it('Use prefix with none existing translation key but default key exists', () => {
|
71
|
+
expect(mumuki.I18n.t('failed')).toBe('Ops! Execution failed');
|
72
|
+
});
|
73
|
+
it('No key found', () => {
|
74
|
+
expect(mumuki.I18n.t('foo')).toBe('Translation missing: en, `foo`');
|
75
|
+
})
|
76
|
+
|
77
|
+
});
|
78
|
+
|
79
|
+
});
|
@@ -0,0 +1,36 @@
|
|
1
|
+
describe('KidsButton', () => {
|
2
|
+
|
3
|
+
let button;
|
4
|
+
|
5
|
+
fixture.set(`
|
6
|
+
<div class="mu-kindergarten">
|
7
|
+
<button class="mu-kids-button">Click me<button>
|
8
|
+
<div class="mu-kids-overlay" style="display: none"></div>
|
9
|
+
</div>
|
10
|
+
`);
|
11
|
+
|
12
|
+
beforeEach(() => {
|
13
|
+
mumuki.kids = new mumuki.Kids();
|
14
|
+
button = new mumuki.submission.KidsSubmitButton($('.mu-kids-button'));
|
15
|
+
})
|
16
|
+
|
17
|
+
it('can create button', () => {
|
18
|
+
expect(button).not.toBe(null);
|
19
|
+
})
|
20
|
+
|
21
|
+
it('overlay is hidden by default', () => {
|
22
|
+
expect(mumuki.kids.$overlay.css('display')).toBe('none');
|
23
|
+
})
|
24
|
+
|
25
|
+
it('call showOverlay on wait', () => {
|
26
|
+
button.wait();
|
27
|
+
expect(mumuki.kids.$overlay.css('display')).toBe('block');
|
28
|
+
})
|
29
|
+
|
30
|
+
it('call hideOverlay on continue', () => {
|
31
|
+
button.wait();
|
32
|
+
button.continue();
|
33
|
+
expect(mumuki.kids.$overlay.css('display')).toBe('none');
|
34
|
+
})
|
35
|
+
|
36
|
+
})
|