From 13978f997b74c4f685e9b41429296e33c9e88c73 Mon Sep 17 00:00:00 2001 From: Siyu Chen <44207825+syuChen1@users.noreply.github.com> Date: Mon, 17 Jan 2022 23:06:19 -0500 Subject: [PATCH] Release/v1.0 (#346) * Revert "Revert "Refactored routes to be more like standard practice react router"" * clean up strapi fields * req validation for update unit * req validation for update learning standard * added await to handle save * added day lesson detail api * added routes to client request * new interactions * day editor interaction * add day details modal * make the spinning cover entire canvas && Fixed canvas height * fix classroom manager api bug * added emoji picker filter * ui changes * clean up serial monitor, change serial input from int to float * fixed day bug * Delete .strapi-updater.json * test new compress files * added depreciated functions * quick test for comment blocks * resolved interaction issue * update day details * connected toolbox * lesson day editor update * added lesson editor * minor renames * lesson editor fixes * day details editor * minor fixes day details * fix update day objective bug * fix update day objective bug * cleaned up & merged day detail modal together * added link to learning standard * display link in mentor view * added state for to show day modal after coming back from workspace * page pargination state * saved tab state * added day additional link * added day link * try fix button * finished content creator button * added regex for URL * fixed label name * added comment to compress.js and fixed null * fix: create text with and prompt_text_ext * mentor view response update * mentor classroom edits * fixed day go to workspace button bug * fixed day go to workspace button bug * seperate day detail modal from day editor * added day component tags * added color and pass in props for different components * added new components * updated day to add components from array input * content creator day detail tags * remove unused content type * capitalize tag * updated db_dump * feat: added readme to the compressed files * day detail ui updates * fix: toolbox scrolling with page * uncomment chrome check * update student view * subheader fixes * map learning components in mentor view && some UI changes * centering modal * cc ui changes * interaction and responsive * more ui changes * added blockly canvas height * fix student save bug * fix mentor view day bug * fixed a bug on uploading to arduino * fixed legacy functional and integration tests * view correct day * remove failed test workflow * added email config backend * frontend forgot-email implementation * fix auth bug * reset password functionality * added error handling * added styles * updated db * updated compile arduino icon * ui changes to logins * fixed reset title * added basic serial plotter * initial flow * Adding Researcher view and styling * updated serial plotter * trim student name && example file * serial plotter icon * change domain setting * mentor/content ui updates * added sentry * toolbox ui * Sentry GitHub Action release integration * Sentry GitHub Action release integration * update sentry env * trim csv file and added example csv file * added trace intergration * fixed icon size * fixed icon size * use image for content creator block selection menu * add function call blocks * use image for content creator block selection menu * Report landing page * added packet json * fixed dependency erros * updated blocks dump file * added image for the call function blocks * Added dropdown component * added timeout for serial plotter * fixed canvas size * added bug report backend * added bug report frontend * added calls and fixed routing up a bit * Styling Report.js view * moved images to frontend * dumped db * Adding report screen headers and positioning * Get real data * update development dump * fixing dropdown menu issue * fix: unable to get image from deployed sites * seperated toolboxmenu from blocklyCanvasPanel * remove console log and added day to useEffect dependency * remove accidental backslash * Dynamic dropdown menu * Added some code for parsing XMLs * Completed researcher landing page * Completed researcher landing page * Completed researcher landing page * Adjusting landing page elements border weight and font sizes * Removing unused code * Margins on report headers * Fetching dropdown menu data * latest code * Adding return button to day and group level views * data fetching works * Fixing dropdown menus * initial stab at replay * A little bit of styling * Made a marker for timeline * Styling updates to daily level report screen * Update BlocklyCanvasPanel.js * merge mentor dashboard and classroom * added global user state * simplified nav bar * removed unnecessary routes * restructure blockly canvas & deleted unused files * seperated blockly canvas based on user roles * initial saveas code * integrated walkthrough * fixed yarn.lock * Removing unnecessary * Renaming DayLevel views and setting response return button * Updating div ids with new route/view name * Editing style and placement of gen-report button * Updating border radius on top container * Parsing XML to render on table * Creating test dataSource for table * Updating ReportView page data and style * All updates * All done * Updating day level report * view * Finish merge fr * updated blockly page * Good changes * safe branch * cc workspace init * added researcher to navbar * updated cc workspace controller * able to create cc workspace * able to load cc workspace * clean up * added cc load from works * updated localstroage and debug userstate * remove excessive localstorage code * fix day load and save conflict * clean up * prettify * more prettify * frontend blocks * download DHT library in the compiler * able to read humidity * change block type to float * add lock block feature * sort block category * generated compressed files * fix save backend bug * resolve merge conflict Co-authored-by: Michael Pascuzzi Co-authored-by: Anna Le Co-authored-by: chensation Co-authored-by: Ana A Co-authored-by: chensation <32966177+chensation@users.noreply.github.com> Co-authored-by: ferret-san <31937514+Ferret-san@users.noreply.github.com> --- client/package.json | 3 + client/public/images/arduino_functions.png | Bin 0 -> 4487 bytes client/public/images/block_comment.png | Bin 0 -> 3194 bytes .../images/controls_flow_statements.png | Bin 0 -> 2502 bytes client/public/images/controls_for.png | Bin 0 -> 4481 bytes client/public/images/controls_for_Each.png | Bin 0 -> 3414 bytes client/public/images/controls_if.png | Bin 0 -> 2141 bytes client/public/images/controls_repeat.png | Bin 0 -> 3206 bytes client/public/images/controls_while_Until.png | Bin 0 -> 3275 bytes client/public/images/infinite_loop.png | Bin 0 -> 2839 bytes client/public/images/insert_comment.png | Bin 0 -> 2384 bytes client/public/images/io_analogread.png | Bin 0 -> 2832 bytes client/public/images/io_analogwrite.png | Bin 0 -> 3225 bytes client/public/images/io_builtin_led.png | Bin 0 -> 3220 bytes client/public/images/io_digitalread.png | Bin 0 -> 2657 bytes client/public/images/io_digitalwrite.png | Bin 0 -> 2999 bytes client/public/images/io_highlow.png | Bin 0 -> 1214 bytes client/public/images/io_notone.png | Bin 0 -> 2688 bytes client/public/images/io_pulsein.png | Bin 0 -> 3414 bytes client/public/images/io_pulsetimeout.png | Bin 0 -> 4861 bytes client/public/images/io_tone.png | Bin 0 -> 4204 bytes client/public/images/logic_boolean.png | Bin 0 -> 1151 bytes client/public/images/logic_compare.png | Bin 0 -> 1372 bytes client/public/images/logic_negate.png | Bin 0 -> 983 bytes client/public/images/logic_null.png | Bin 0 -> 694 bytes client/public/images/logic_operation.png | Bin 0 -> 1856 bytes client/public/images/logic_ternary.png | Bin 0 -> 2602 bytes client/public/images/math_arithmetic.png | Bin 0 -> 1423 bytes client/public/images/math_change.png | Bin 0 -> 2850 bytes client/public/images/math_constant.png | Bin 0 -> 902 bytes client/public/images/math_constrain.png | Bin 0 -> 3008 bytes client/public/images/math_modulo.png | Bin 0 -> 2334 bytes client/public/images/math_number.png | Bin 0 -> 898 bytes client/public/images/math_number_property.png | Bin 0 -> 2110 bytes client/public/images/math_on_list.png | Bin 0 -> 2089 bytes client/public/images/math_random_float.png | Bin 0 -> 1809 bytes client/public/images/math_random_int.png | Bin 0 -> 2900 bytes client/public/images/math_round.png | Bin 0 -> 1610 bytes client/public/images/math_single.png | Bin 0 -> 2219 bytes client/public/images/math_trig.png | Bin 0 -> 1353 bytes .../public/images/procedures_callnoreturn.png | Bin 0 -> 2059 bytes .../public/images/procedures_callreturn.png | Bin 0 -> 1953 bytes .../public/images/procedures_defnoreturn.png | Bin 0 -> 3496 bytes client/public/images/procedures_defreturn.png | Bin 0 -> 4397 bytes client/public/images/procedures_ifreturn.png | Bin 0 -> 1896 bytes client/public/images/serial_print.png | Bin 0 -> 3943 bytes client/public/images/serial_setup.png | Bin 0 -> 4265 bytes client/public/images/servo_read.png | Bin 0 -> 3117 bytes client/public/images/servo_write.png | Bin 0 -> 5040 bytes .../public/images/small_io_pulsetimeout.png | Bin 0 -> 14270 bytes .../images/small_text_get_Substring.png | Bin 0 -> 15260 bytes client/public/images/spi_setup.png | Bin 0 -> 12124 bytes client/public/images/spi_transfer.png | Bin 0 -> 4431 bytes client/public/images/spi_transfer_return.png | Bin 0 -> 4300 bytes client/public/images/stepper_config.png | Bin 0 -> 15084 bytes client/public/images/stepper_step.png | Bin 0 -> 4761 bytes client/public/images/text.png | Bin 0 -> 1701 bytes client/public/images/text_append.png | Bin 0 -> 3124 bytes client/public/images/text_char_At.png | Bin 0 -> 3296 bytes client/public/images/text_get_Substring.png | Bin 0 -> 5775 bytes client/public/images/text_is_Empty.png | Bin 0 -> 1853 bytes client/public/images/text_join.png | Bin 0 -> 3130 bytes client/public/images/text_length.png | Bin 0 -> 1544 bytes client/public/images/text_print.png | Bin 0 -> 1223 bytes client/public/images/text_prompt_ext.png | Bin 0 -> 3653 bytes client/public/images/time_delay.png | Bin 0 -> 2631 bytes client/public/images/time_delaymicros.png | Bin 0 -> 2754 bytes client/public/images/time_micros.png | Bin 0 -> 3214 bytes client/public/images/time_millis.png | Bin 0 -> 3041 bytes client/public/images/variables_get.png | Bin 0 -> 1298 bytes client/public/images/variables_set.png | Bin 0 -> 2292 bytes client/public/images/variables_set_type.png | Bin 0 -> 2901 bytes client/public/lib/arduino_compressed.js | 4 +- client/public/lib/blockly_compressed.js | 4040 +-- client/public/lib/blocks_compressed.js | 13 +- client/public/lib/en.js | 1165 +- client/public/lib/javascript_compressed.js | 1792 +- client/src/App.js | 66 +- client/src/Utils/AuthRequests.js | 38 +- client/src/Utils/analytics.js | 61 + client/src/Utils/requests.js | 139 + client/src/Utils/userState.js | 41 + client/src/assets/style.css | 1 + .../BlocklyCanvasPanel/BlocklyCanvasPanel.js | 774 +- .../DayPanels/BlocklyCanvasPanel/CodeModal.js | 70 - .../BlocklyCanvasPanel/CreatorModal.js | 65 - .../BlocklyCanvasPanel/Icons/ArduinoLogo.js | 97 + .../BlocklyCanvasPanel/Icons/PlotterLogo.js | 31 + .../BlocklyCanvasPanel/Icons/textIcon.json | 3 + .../BlocklyCanvasPanel/VersionHistoryModal.js | 113 - .../canvas/ContentCreatorCanvas.js | 491 + .../BlocklyCanvasPanel/canvas/MentorCanvas.js | 367 + .../BlocklyCanvasPanel/canvas/PublicCanvas.js | 335 + .../canvas/StudentCanvas.js | 581 + .../BlocklyCanvasPanel/modals/CodeModal.js | 77 + .../BlocklyCanvasPanel/modals/ConsoleModal.js | 166 + .../modals/LoadWorkspaceModal.js | 64 + .../BlocklyCanvasPanel/modals/PlotterModal.js | 156 + .../BlocklyCanvasPanel/modals/SaveAsModal.js | 126 + .../modals/StudentToolboxMenu.js | 253 + .../modals/VersionHistoryModal.js | 115 + .../BlocklyCanvasPanel/textIcon.json | 3 - .../src/components/DayPanels/DayInfoPanel.js | 48 - .../src/components/DayPanels/DayPanels.less | 17 +- .../DayPanels/Utils/consoleHelpers.js | 162 + .../src/components/DayPanels/Utils/helpers.js | 222 + .../components/DropdownMenu/ReportDropdown.js | 29 + .../DropdownMenu/ReportDropdown.less | 67 + .../MentorSubHeader/MentorSubHeader.js | 86 +- client/src/components/NavBar/NavBar.js | 209 +- .../src/components/NavBar/NavBarConfig.json | 21 +- .../src/components/RouteButton/RouteButton.js | 13 + .../components/RouteButton/RouteButton.less | 11 + client/src/index.css | 1 + client/src/views/BlocklyPage/BlocklyPage.js | 76 + client/src/views/BugReport/BugReport.js | 87 + client/src/views/BugReport/BugReport.less | 69 + client/src/views/Classroom/Roster/Roster.js | 189 - .../views/ContentCreator/ContentCreator.js | 121 +- .../viewDayModal/viewDayModal.js | 54 - .../viewDayModal/viewDayModal.less | 31 - .../src/views/Mentor/Classroom/Classroom.js | 46 + .../{ => Mentor}/Classroom/Classroom.less | 13 +- .../Classroom/Home/DisplayCodeModal.js | 0 .../src/views/Mentor/Classroom/Home/Home.js | 220 + .../{ => Mentor}/Classroom/Home/Home.less | 2 +- .../Home/LearningStandardSelect/CheckUnits.js | 0 .../LearningStandardModal.js | 114 + .../LearningStandardSelect.js | 302 + .../LearningStandardSelect.less | 23 +- .../Roster/AddStudents/AddStudents.js | 263 + .../Roster/AddStudents/AddStudents.less | 2 +- .../Roster/AddStudents/AddStudentsModal.js | 0 .../{ => Mentor}/Classroom/Roster/CardView.js | 0 .../views/Mentor/Classroom/Roster/ListView.js | 278 + .../views/Mentor/Classroom/Roster/Roster.js | 222 + .../{ => Mentor}/Classroom/Roster/Roster.less | 9 +- .../Classroom/Roster/StudentModal.js | 0 .../src/views/Mentor/Dashboard/Dashboard.js | 66 + .../src/views/Mentor/Dashboard/Dashboard.less | 144 + .../Dashboard/DashboardDisplayCodeModal.js | 0 client/src/views/NotFound.js | 4 +- client/src/views/Replay/Marker.js | 9 + client/src/views/Replay/Replay.js | 179 + client/src/views/Replay/Replay.less | 23 + .../src/views/Researcher/DailyReportView.js | 68 + client/src/views/Researcher/DayLevelReport.js | 197 + .../src/views/Researcher/DayLevelReport.less | 87 + .../views/Researcher/DayLevelReportView.js | 95 + .../views/Researcher/DayLevelReportView.less | 88 + client/src/views/Researcher/GroupReport.js | 28 + client/src/views/Researcher/GroupReport.less | 39 + client/src/views/Researcher/Report.js | 39 + client/src/views/Researcher/Report.less | 47 + client/src/views/Sandbox/Sandbox.js | 37 - client/src/views/Student/Student.js | 2 +- client/src/views/StudentLogin/StudentLogin.js | 2 +- client/src/views/TeacherLogin/TeacherLogin.js | 3 + .../src/views/TeacherLogin/TeacherLogin.less | 120 +- client/src/views/UploadBlocks/UploadBlocks.js | 52 - client/yarn.lock | 29414 ++++++++++++---- compile/Dockerfile | 2 + compile/src/controllers/job.js | 65 +- package-lock.json | 3 - scripts/blocks_db.dump | 4339 ++- scripts/development_db.dump | 1011 +- server/._.strapi-updater.json | Bin 0 -> 4096 bytes server/api/block/models/block.settings.json | 9 +- server/api/block/services/block.js | 93 +- .../models/blocks-category.settings.json | 4 +- server/api/cc-workspace/config/routes.json | 60 + .../cc-workspace/controllers/cc-workspace.js | 82 + .../api/cc-workspace/models/cc-workspace.js | 8 + .../models/cc-workspace.settings.json | 29 + .../api/cc-workspace/services/cc-workspace.js | 8 + .../classroom/models/classroom.settings.json | 4 +- server/api/email/config/routes.json | 18 +- server/api/email/controllers/Email.js | 54 +- server/api/save/models/save.settings.json | 13 +- .../api/session/models/session.settings.json | 10 +- .../api/student/models/student.settings.json | 2 +- .../models/submission.settings.json | 4 +- server/package.json | 2 +- server/yarn.lock | 19079 +++++++--- 184 files changed, 53645 insertions(+), 16254 deletions(-) create mode 100644 client/public/images/arduino_functions.png create mode 100644 client/public/images/block_comment.png create mode 100644 client/public/images/controls_flow_statements.png create mode 100644 client/public/images/controls_for.png create mode 100644 client/public/images/controls_for_Each.png create mode 100644 client/public/images/controls_if.png create mode 100644 client/public/images/controls_repeat.png create mode 100644 client/public/images/controls_while_Until.png create mode 100644 client/public/images/infinite_loop.png create mode 100644 client/public/images/insert_comment.png create mode 100644 client/public/images/io_analogread.png create mode 100644 client/public/images/io_analogwrite.png create mode 100644 client/public/images/io_builtin_led.png create mode 100644 client/public/images/io_digitalread.png create mode 100644 client/public/images/io_digitalwrite.png create mode 100644 client/public/images/io_highlow.png create mode 100644 client/public/images/io_notone.png create mode 100644 client/public/images/io_pulsein.png create mode 100644 client/public/images/io_pulsetimeout.png create mode 100644 client/public/images/io_tone.png create mode 100644 client/public/images/logic_boolean.png create mode 100644 client/public/images/logic_compare.png create mode 100644 client/public/images/logic_negate.png create mode 100644 client/public/images/logic_null.png create mode 100644 client/public/images/logic_operation.png create mode 100644 client/public/images/logic_ternary.png create mode 100644 client/public/images/math_arithmetic.png create mode 100644 client/public/images/math_change.png create mode 100644 client/public/images/math_constant.png create mode 100644 client/public/images/math_constrain.png create mode 100644 client/public/images/math_modulo.png create mode 100644 client/public/images/math_number.png create mode 100644 client/public/images/math_number_property.png create mode 100644 client/public/images/math_on_list.png create mode 100644 client/public/images/math_random_float.png create mode 100644 client/public/images/math_random_int.png create mode 100644 client/public/images/math_round.png create mode 100644 client/public/images/math_single.png create mode 100644 client/public/images/math_trig.png create mode 100644 client/public/images/procedures_callnoreturn.png create mode 100644 client/public/images/procedures_callreturn.png create mode 100644 client/public/images/procedures_defnoreturn.png create mode 100644 client/public/images/procedures_defreturn.png create mode 100644 client/public/images/procedures_ifreturn.png create mode 100644 client/public/images/serial_print.png create mode 100644 client/public/images/serial_setup.png create mode 100644 client/public/images/servo_read.png create mode 100644 client/public/images/servo_write.png create mode 100644 client/public/images/small_io_pulsetimeout.png create mode 100644 client/public/images/small_text_get_Substring.png create mode 100644 client/public/images/spi_setup.png create mode 100644 client/public/images/spi_transfer.png create mode 100644 client/public/images/spi_transfer_return.png create mode 100644 client/public/images/stepper_config.png create mode 100644 client/public/images/stepper_step.png create mode 100644 client/public/images/text.png create mode 100644 client/public/images/text_append.png create mode 100644 client/public/images/text_char_At.png create mode 100644 client/public/images/text_get_Substring.png create mode 100644 client/public/images/text_is_Empty.png create mode 100644 client/public/images/text_join.png create mode 100644 client/public/images/text_length.png create mode 100644 client/public/images/text_print.png create mode 100644 client/public/images/text_prompt_ext.png create mode 100644 client/public/images/time_delay.png create mode 100644 client/public/images/time_delaymicros.png create mode 100644 client/public/images/time_micros.png create mode 100644 client/public/images/time_millis.png create mode 100644 client/public/images/variables_get.png create mode 100644 client/public/images/variables_set.png create mode 100644 client/public/images/variables_set_type.png create mode 100644 client/src/Utils/analytics.js create mode 100644 client/src/Utils/userState.js delete mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/CodeModal.js delete mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/CreatorModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/Icons/ArduinoLogo.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/Icons/PlotterLogo.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/Icons/textIcon.json delete mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/VersionHistoryModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/canvas/ContentCreatorCanvas.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/canvas/MentorCanvas.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/canvas/PublicCanvas.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/canvas/StudentCanvas.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/CodeModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/ConsoleModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/LoadWorkspaceModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/PlotterModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/SaveAsModal.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/StudentToolboxMenu.js create mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/modals/VersionHistoryModal.js delete mode 100644 client/src/components/DayPanels/BlocklyCanvasPanel/textIcon.json delete mode 100644 client/src/components/DayPanels/DayInfoPanel.js create mode 100644 client/src/components/DayPanels/Utils/consoleHelpers.js create mode 100644 client/src/components/DayPanels/Utils/helpers.js create mode 100644 client/src/components/DropdownMenu/ReportDropdown.js create mode 100644 client/src/components/DropdownMenu/ReportDropdown.less create mode 100644 client/src/components/RouteButton/RouteButton.js create mode 100644 client/src/components/RouteButton/RouteButton.less create mode 100644 client/src/views/BlocklyPage/BlocklyPage.js create mode 100644 client/src/views/BugReport/BugReport.js create mode 100644 client/src/views/BugReport/BugReport.less delete mode 100644 client/src/views/Classroom/Roster/Roster.js delete mode 100644 client/src/views/ContentCreator/viewDayModal/viewDayModal.js delete mode 100644 client/src/views/ContentCreator/viewDayModal/viewDayModal.less create mode 100644 client/src/views/Mentor/Classroom/Classroom.js rename client/src/views/{ => Mentor}/Classroom/Classroom.less (82%) rename client/src/views/{ => Mentor}/Classroom/Home/DisplayCodeModal.js (100%) create mode 100644 client/src/views/Mentor/Classroom/Home/Home.js rename client/src/views/{ => Mentor}/Classroom/Home/Home.less (98%) rename client/src/views/{ => Mentor}/Classroom/Home/LearningStandardSelect/CheckUnits.js (100%) create mode 100644 client/src/views/Mentor/Classroom/Home/LearningStandardSelect/LearningStandardModal.js create mode 100644 client/src/views/Mentor/Classroom/Home/LearningStandardSelect/LearningStandardSelect.js rename client/src/views/{ => Mentor}/Classroom/Home/LearningStandardSelect/LearningStandardSelect.less (90%) create mode 100644 client/src/views/Mentor/Classroom/Roster/AddStudents/AddStudents.js rename client/src/views/{ => Mentor}/Classroom/Roster/AddStudents/AddStudents.less (95%) rename client/src/views/{ => Mentor}/Classroom/Roster/AddStudents/AddStudentsModal.js (100%) rename client/src/views/{ => Mentor}/Classroom/Roster/CardView.js (100%) create mode 100644 client/src/views/Mentor/Classroom/Roster/ListView.js create mode 100644 client/src/views/Mentor/Classroom/Roster/Roster.js rename client/src/views/{ => Mentor}/Classroom/Roster/Roster.less (98%) rename client/src/views/{ => Mentor}/Classroom/Roster/StudentModal.js (100%) create mode 100644 client/src/views/Mentor/Dashboard/Dashboard.js create mode 100644 client/src/views/Mentor/Dashboard/Dashboard.less rename client/src/views/{ => Mentor}/Dashboard/DashboardDisplayCodeModal.js (100%) create mode 100644 client/src/views/Replay/Marker.js create mode 100644 client/src/views/Replay/Replay.js create mode 100644 client/src/views/Replay/Replay.less create mode 100644 client/src/views/Researcher/DailyReportView.js create mode 100644 client/src/views/Researcher/DayLevelReport.js create mode 100644 client/src/views/Researcher/DayLevelReport.less create mode 100644 client/src/views/Researcher/DayLevelReportView.js create mode 100644 client/src/views/Researcher/DayLevelReportView.less create mode 100644 client/src/views/Researcher/GroupReport.js create mode 100644 client/src/views/Researcher/GroupReport.less create mode 100644 client/src/views/Researcher/Report.js create mode 100644 client/src/views/Researcher/Report.less delete mode 100644 client/src/views/Sandbox/Sandbox.js delete mode 100644 client/src/views/UploadBlocks/UploadBlocks.js delete mode 100644 package-lock.json create mode 100644 server/._.strapi-updater.json create mode 100644 server/api/cc-workspace/config/routes.json create mode 100755 server/api/cc-workspace/controllers/cc-workspace.js create mode 100644 server/api/cc-workspace/models/cc-workspace.js create mode 100644 server/api/cc-workspace/models/cc-workspace.settings.json create mode 100644 server/api/cc-workspace/services/cc-workspace.js diff --git a/client/package.json b/client/package.json index 0ee7fde8..08767133 100644 --- a/client/package.json +++ b/client/package.json @@ -9,6 +9,7 @@ "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^12.0.0", "@testing-library/user-event": "^7.1.2", + "strapi-provider-email-nodemailer": "^3.6.8", "antd": "^4.16.12", "axios": "^0.21.1", "craco-less": "^1.18.0", @@ -17,9 +18,11 @@ "http-server": "^0.12.3", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-hooks-global-state": "^1.0.2", "react-papaparse": "^3.17.1", "react-router-dom": "^5.1.2", "react-scripts": "^4.0.3", + "recharts": "^2.1.5", "util": "^0.12.4", "yarn": "^1.22.10" }, diff --git a/client/public/images/arduino_functions.png b/client/public/images/arduino_functions.png new file mode 100644 index 0000000000000000000000000000000000000000..62397ca43acb750e2c8f01789fad07a2917a9bb8 GIT binary patch literal 4487 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 literal 0 HcmV?d00001 diff --git a/client/public/images/block_comment.png b/client/public/images/block_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..6b25e37de245046849e9b2638e10334c2ffb66d9 GIT binary patch literal 3194 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 QGynhq07*qoM6N<$f}3HEY5)KL literal 0 HcmV?d00001 diff --git a/client/public/images/controls_for.png b/client/public/images/controls_for.png new file mode 100644 index 0000000000000000000000000000000000000000..c827ca89f1849de186a4cf51315f351ce125b9f0 GIT binary patch literal 4481 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 literal 0 HcmV?d00001 diff --git a/client/public/images/controls_if.png b/client/public/images/controls_if.png new file mode 100644 index 0000000000000000000000000000000000000000..3080320ee7156d4b536e3aabe63073dbd5d05b23 GIT binary patch literal 2141 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 T#Mz1%00000NkvXXu0mjf%8>Zx literal 0 HcmV?d00001 diff --git a/client/public/images/controls_repeat.png b/client/public/images/controls_repeat.png new file mode 100644 index 0000000000000000000000000000000000000000..8e02c47a2ef41bcb9a5ada06a526a8115608a99f GIT binary patch literal 3206 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 sK#MAlE%gInI#{${01NBD3
0H}i_cf4PmVE_OC07*qoM6N<$f}rgS*Z=?k literal 0 HcmV?d00001 diff --git a/client/public/images/controls_while_Until.png b/client/public/images/controls_while_Until.png new file mode 100644 index 0000000000000000000000000000000000000000..049a378505d45b3fc29e065c8797504265a1d962 GIT binary patch literal 3275 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ⅅIR=>^p2IcUMy+Gki;m|NkI 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 LNkvXXu0mjfcB}>K literal 0 HcmV?d00001 diff --git a/client/public/images/io_builtin_led.png b/client/public/images/io_builtin_led.png new file mode 100644 index 0000000000000000000000000000000000000000..76064a90b7ac83c8add7294215bd778e7a992d0e GIT binary patch literal 3220 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 P00000NkvXXu0mjf@LCTW literal 0 HcmV?d00001 diff --git a/client/public/images/io_digitalwrite.png b/client/public/images/io_digitalwrite.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7c2c4fb1f8e63125cf4c604d53a28b694a8f56 GIT binary patch literal 2999 zcmV;o3rO^dP);YqrNT zXU>^9=gj3C#y(YF&77X@(|!K_zyANfyQg1pI2+vgb54oG`%9W;eDG!_tqU)rm`!DjXnL(CulJ+B z<>;zcK*%601Z42epO4VIm$s@CG%mWFkpv|3r6Ld;M2n3q^J-0{R@2vd1%wR3LY1IN z@l}i@{<2_cnYM?6S)>Ix8 zi&%4RW5uFO`eb=7MSNUL|JH)lfyF;Q%%@fFW`!O>jZ6p$Jl`^iTw6jZiS=YZ-C-%D z9l1hVH`;0C+b2zzkrI}?eoXbZxBi&qPSCuQmzk>xD`$4&1?Gkf;QiQb=9AIx0XzO% zVY-~;`0J~2jDT;vvYnAp6G5@L00cF&;cHgp(Z%z3siCIJQ2FwbTQoU2O{daZ*nMK$ zMH(HMAjiF@x}JlP_et*v1HL0IDZZ9&w?C%+|EqT9yVlh0QlHUw`U0cxC`EJQ*VOlT zgkmDg*nLgqJsKPsr}&sE)iU8rvgvqoqepTaN+_V;z5F_T_dDOCAOGk@3SSvPg{PW= zO3?h1t+al%=Q$Onz6}&O`Jy*vQqz?-$~;j)tCk#f$+PgaczSryga4 z;#-ZNXcL}=XND3%SH7J^54!s4erKOEt@G9s>V7yt>%t3F%WYU=^GJ-uy{G60-~S=K z_Ue4vy5%r^9KMl}bkTxkWXo>}DoNv_JsTdSz6}&$HMw=<08w|v6wu;7BrWZ@ ziZgv@>@h~#9Wh6PO3=f5YlGIe-XJBP93U!wgY|UVNo16u2|F*+!>)dsnwlY8V`G!l za^-8{>Fs{1StT&{}J+bm6~-hJDvS&Rhb$4Fm)v5Wejjxl&5D1?r|V`gTC zdV7XheQ3wj4E7jgp=U^k>>+2Q;WuBFPhcs7 zLQrn?q@yj!hWG_;609cDKvpOgroN@+p};6#kkzWo#f1fw3ksX_VO=~CG$XZ%bp#(2 zTuJ+E^fVfScC_`f4wbr8h~qG5Nz3XXDB7EsdCi%A^iTtnC7y|Adm<=THsIjy8X6g% z&4+TQ^V{fxy^|>?ya@CK?r*pEGGaq1kw+~K^+Zq*^QS-gIi)0(xc&CQvd`$Zzj>K* zGqn-yY;ik9t#{Q+xZ$NmH~m6TrM`t10hvIbpjSNK-q2YE1hLkTz_7+670NG$|~!e9V^pyad8obYM{ZMfuM^}*6f%fZ6qJ$xmo zCj|hh;7;l#XxF``Y!Kn;_>MHVp-?0>f=Xv))!vCu5MfeC&jgV-f+EKJ*^9rR)WfAd z6V!gXgR;K5N-N)*UC+caV0y~4xHb?3g}VETCW;Go`8Q1p))3Go{) zd|IBM9MK!j(S@>3>iK5KNmeK(gsNv5z*mAopm5LB2#R<$kOa*>(abCxF1XCFn%v#@ zH$f*RrYY-qvmt_>NN$`nF{u4pF$V7@&|RC#}WBEyciKl%P`gQ|jXKjRZyrdSF)#i!Y_|CcK`G8$Hg+ z65Jb&LA}l5E?@eop;_F*?CZMA1j5Bd-{odJn-{RG1;tD&T*`B{4wrPyj&g$XNg~{1 z+FzOv_n7s>?jfxN1)xB18>P>KwT9K!J4wWe?dv2FuM07ql$?BG!6-ptk&h(QJJVq` zA#)HH_4wlAV&H&v$E1tWjv`O+L{O`(gC_fVk_amjyS`9fVeq#9HmC%JtB4nY(qr^x zqi|aM%PgFXC=W#i!5}#K`l-?~ z3m+`dK9oayKz45gh4n=_yr0rC3oIy>QusSU7Vsosq0mmF1jU6k35d(pb`%*UC;;~sWW-iK=}w}B^OsU_ZnLEb+Mv+4fmmkY1P$6OE`ZS;YkfTS z#3wc+@Ff-wEYzd(c|OEY@_bN|%e4;YqCAAFRDx_JWm;5OG)-)9>kkcL@oy#&Q_3M?Jo6VJf&v3FFSPcK1dHzbTZ zWz0hnD62mR3K#a^zC6?S;@UM3RH<*3HYy-bZn}QgR=!c5?-G(j>A*dgGl=kaGhZs7 ztKiEl+?rSc{@4T`NI;2$O*FefBoHYQ~hwPW~l$& zj4#8;V`jM1uuh1n&2HmdAt?T!T~eTZvw)e{{I3$z>2{(BNX)kb zItkix^_E}HBC;a*7D2w{5OE@6Sa~dL1z4S+z@BXvOeddRgL`Ya(-r1_MH|)>I**l= z8%6vj?VsUax}T^J`}yp-x2C^90D<^Ty1AcEaLHq4voRM4ioqQ1G@FEW6&y>tOlwya zm@X$H%Q0^M2MzS0VFIBkgJladm z4dqx=K*%6$uAYmFSTt(g8F6@+1v*L~?YWeJ*OTSXmo>YclOiBwAao$j8UzKf+aW3< zmt__mBgiRqAk8`!REoqsMfCon{p_SMO#h;=H~4eSNK1VJLI&@IkPP_2VVVfattl2x zvA~M;85H&eoLuJVU|uc62R0U-m&b1H*? zKAfNTsl}Q~ttQrh;98q4904H%M<^3it2Gr?QxL&yA~-CHpjE`JsXQPSR?~bX5O7#l t20^b7lTC18rNOX>HO*H90f!}J@PFq>w25%-U5)?%002ovPDHLkV1g+(p}znC literal 0 HcmV?d00001 diff --git a/client/public/images/io_highlow.png b/client/public/images/io_highlow.png new file mode 100644 index 0000000000000000000000000000000000000000..0393160033ea5b1c66a0ef47f2a9aec0ffe2f6bd GIT binary patch literal 1214 zcmV;v1VQ_WP)L0u@W!)wWF8FF~R>+z|GX|KqznCtf4% zt>s>J`-7bq-!wV*IlayIbDwjb^W3WD=jT;i^BM1fN2bRV#WP|EB zGX|?MimGBSSFy4llxzB6Zt8_>P%Skf6soUqsg?Dh;FF8kzOjviD$MYQje}CB9|8xZ zPQSrf1By06bA1?&Q@`Mxjq6;D2euQVs6Fgk8mK>~{(-k|5^_PA8^Y-8o+gS?ic|P^V2%)RZnv zN&ROYP?iZX&4!>TsG{8-xGvmD_=Ajf?O46)O}M(mVbVBVr#NA3sCNQ+>o!5BHN?e- z{j+d>A4I`kJzjlf6;vt}R;)a z5%SH%eV6@fH(q-2WmJ|mv-nI0Ww+c~Jg9#6L{@-uyM9LQ+I1+{R}#0p3A!;d!{%rU zD={*3e|dqTW-Eb`Tl1$1l)2>s%O*#=N0J#zfpT?DK)cHmvsHN5xMHA|(!*N}DBAFo zDH*5|T@BuNJr~_Sgk^zBc7Lg$Zj8*LrFNljRB(lS50wG+oox(_RRKjot$h9kd{J-+ zhxA{?iN@)AGElk%PrZ;;P_*<>dA?lsC}Yh1 zlm>OJcN(>2KK3bft|U-BuJNoWCfv?ZytU>X6z(qIVic31d7^31d2KjnG7ltm}8k#RdIqXfp6!oXM58( zr+#FuqffVg&c>;&)KvfNZY4kw=+Dhu?!m)p%|7 zT2|!|puF|(qxz^h&g_f^WxloartF@r=UFi6{8=B4mwH8)$0NmF_`Qku46eC^9#|T} z(m;*>{*ZOcV*zRQIB@Uo43d@c7dyr|kbv|8q(U<&{ly^xAus|U%A&=-IBYr=gjYs+ z`hS+~(fLa1S*2 z$$GAnF&VluK)l5 literal 0 HcmV?d00001 diff --git a/client/public/images/io_notone.png b/client/public/images/io_notone.png new file mode 100644 index 0000000000000000000000000000000000000000..937098deb95ff2b6dc2dc7a15e18774c02f16392 GIT binary patch literal 2688 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 VT~@TLACqUXpst$f=U>6#{}0joEmi;k literal 0 HcmV?d00001 diff --git a/client/public/images/io_tone.png b/client/public/images/io_tone.png new file mode 100644 index 0000000000000000000000000000000000000000..e98bcf4a3dc3ec02eecae634d54cbaa8b4741eff GIT binary patch literal 4204 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 ReeD1M002ovPDHLkV1k8aFBt#; literal 0 HcmV?d00001 diff --git a/client/public/images/logic_compare.png b/client/public/images/logic_compare.png new file mode 100644 index 0000000000000000000000000000000000000000..391b81ab71ed401eb618dfde13fdece451ffa29f GIT binary patch literal 1372 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 literal 0 HcmV?d00001 diff --git a/client/public/images/logic_operation.png b/client/public/images/logic_operation.png new file mode 100644 index 0000000000000000000000000000000000000000..e79dd2939efc9919699514c6d9144cfd2a60c4ba GIT binary patch literal 1856 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 M07*qoM6N<$g3`y-Z~y=R literal 0 HcmV?d00001 diff --git a/client/public/images/math_arithmetic.png b/client/public/images/math_arithmetic.png new file mode 100644 index 0000000000000000000000000000000000000000..87fbac651c2d4f0fad27694562a9bdd3cd234c88 GIT binary patch literal 1423 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 literal 0 HcmV?d00001 diff --git a/client/public/images/math_constrain.png b/client/public/images/math_constrain.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8ec182a986cd519bb27b3dc6021a711a764c1d GIT binary patch literal 3008 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 literal 0 HcmV?d00001 diff --git a/client/public/images/math_number.png b/client/public/images/math_number.png new file mode 100644 index 0000000000000000000000000000000000000000..8603067119ec1ad03bd4549c1239ec12eb80f644 GIT binary patch literal 898 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 IM6N<$f;WNt;{X5v literal 0 HcmV?d00001 diff --git a/client/public/images/math_single.png b/client/public/images/math_single.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9221e164ab2b328f5c7c8e8a76819806305705 GIT binary patch literal 2219 zcmV;c2vqlpP)6z#D?%g{#Dbfb-TxtVD>Ev*;4OZ z5DUxhQ+$e!@M{djwA@aUAckzMr`$7L)Y|b@%13U4g3?E{F|Mg!&=##aL-SVT@~_1p zBBv9%t68rU7*$K%FaIG+K|Flyw#yA9+L+2r88(J&NS2R16nRq z>MU59-xtJ`%uWi6ZB!|G2VJDxf=*ThlmOKjh-)`rri(S*5(F2$4CR%#Xlv{Nx}tkI zpzX#a>P&(NPY4i|j_ld<9`Xq;CeL*hEOVD<(Y`dT8blS$CFpMODd2}kvM zmul{l`xFoQe*8pAN;yIM4xZwBrp=gV6Ns0z_h{1O8GJA5Lc17zz&Pi3PpWNvtOD`N zVPDZI{|%IuS;C@gf5UYGmU#=jDK))_1^-b8UXcDk#53Y~_U_N454y-@z{f%5lBrMh_L7YvLDW=Iq6k zo>fK{G`B2*DD&jKKI7;YQ9~DNyB!9i)yKdJO1tdZLpBE@z<|+n@-+G~7<)}%6#4pv zvq4b?V?*zJ*)_eMruKo&AOaeIY^VqLm3jii`3rsMa??|lH(I>ZkJbi7t2{UQzAk7B zUlV;d1tL6DT1K(H3~+DWlGNupb?v?E{YQU0j?R|oxC|Z=FGuFF3f29n4_+H!+7p@^ zb+0LM=T+4>9?0r+s7JIK#H>?yod#lM%>(+?eHMEXgfzqO13?&ExY(CH($(vKtFB>y zYz@uE1bQP!jiEC|%_m0GL{1N$tzF&w2Mc0w`$}87`Xz!^Sb0Fd^ zPDw3L&C`~82JnCiPh$!O2t27hAl5f`bNE6Z{MT;Q_XGOo+QxO|+{;i9O7l+FS_PtL z3$PjLYZd(v(-~vHifc;nYz48ot(W5VU*j=EsJ7-_r+|pX3eq>uTC4~I0=|{2!}KtS zxsEvy0fa3eVnMLP(_atGFB7J4duYQN5QUz#@*#lO3Qt`1jAHicI8+Y`5S_Vd?)xV8 z(9S(sJO?^i*g%cC7qo2o8l#~(Au+oTh~hq_9u_!a;FWW+dz zW6;0_{KM)~E(EtvSQbJqEF#?1=$;b5`$x;v@j!fUQ{$D4qW5tc!tflE2XMzYZ zmq#@F@l;CYP1T_X0U%CJpi=A$nrbv`Tcg8FfW(OJPrfJfs+S0FH8H5`9-<7N}PU(vc3cd(Fz76G%_*za&1uOE}a< zH*de{`|%WViORiZ5$DAT3T)Tlh?pU)5O`8eopZv1*r8B@DCO;-ut986t4R>S5B8J= zU)qMJ450E%0}en4SoI(xJRi=vu0KO2AXHXnF3ppXe^-L|3CXz&PiR#?XA=M#&M{=< z-(dg^ofwXVMeZmuenK1Ii8Ew|G2R@A8@6Ae(*)%oZF_;aABhbD zqw4qov?Bl+AX#<-<6d%1vkv3>^fDJ^h`af1+UA@8nEM5Qr002ovPDHLkV1i^Q2I2q! literal 0 HcmV?d00001 diff --git a/client/public/images/math_trig.png b/client/public/images/math_trig.png new file mode 100644 index 0000000000000000000000000000000000000000..99686ffe8ef4a7641cfd8999071b05370525e99f GIT binary patch literal 1353 zcmV-P1-AN$P)T(N3M()=qWCu^q?J zS_~DCQo{1AMNkldLW6)QQpzI@ue1$RM2ILM1Vch5WFgAScYUEyJD~oU|KoJdo!QJL zY&O~KCQI7=;X4bv_cF=%bI-Z=oJHmH`BaL0vU#AG?~``{3Z8I&=q~8mW)-yw_rT#^ z1knK6O*f#fWfqF6+={A%d7y1@fOqBrhz3yA-~}~hQA7#zU|)(6>YGLt0BV^Qj{<;_ zH)<6C)c*uP_VID3)J;R9VICUW7ZOru4fAlSjs{K9mG}a9vit&U&W8{!fa7OLvSFyFM0rYPR%cKlEFDAu0ZeLtu-K;I_5$Gzz-_7VRQ`S z^sGQh%_Oh+X#Ae9nu$_#{(${yJ!{5%aY)Y(0E-1Yud*k7bJPkL70ehknG3+-Tq~Fc z?u+`O+PV(d{NDR;-t3j#^k8-Ud50GOnv3Q$J}o|80Zrk>fHC;IyT=_G02WwG1hAEs zZvkD)G&Fb4kmqH!^qMhLv0e0+)UIOyuBlZ>&9`!ze=uW!m^(Z=zb0d}cDhLF+52?| z=NSJFvkQNd&F4tLXjB`__Z2SLO`>BgO_7~9{otzS+Bfk&uKeKD9{^x@?0!rE*qjf5 z$}NSr-`NZ*l?p!mXeZRvcY$l_X~+n`-#`8Ab1WXtGPl-&-#L zFyFJ&j}Qek*$_aqM=U-76P{%_l$-_IKi&n^rw!0*xJY2U^ztiEQQg7|01e-=bvxu1 zltc5cW^zRkIDhi$N@VF{dX;k%#e4Wn3IIjr7sLY))8pX-fQF*6hAxZ$p4+Ei@=bqmWHBJRQ}V3PKm16N2*4aK8i4-y z8=RY~6aa>8x8ai=yJ7FXWa#a86Z5&oX*mGAyJ;)*4Nmipi$s%GpF!;}Gycz8-QXqn zqyi9pyc7&TY?qS{0IphHqsgEDF|8a-$^d=m<*<7Im(kIlmMr7Tq_RyvYJ*E-PXx`4 zIRH#ScnpmN0QO#hrl%aq_rpj|$>vQ#QUX9VbzUbDIxpNFAR2&qr+jc;=DX>^;YVD6Z05OUw0BkoPfUIJ> z3?&b4hASWB^zRO9B8lVXjsLcKMJpSA&UBVI_YG zvW(q^jLc*H+>h7d(lh@2p9lb`87o`l^`CajnaAJS#s z=JOp_d(H80572Q^_qn^gDHx-G?GYM}KCu@oLJIp|5wiyckhBpMOv`o`vSA|vFxVN5~=_4BPgv2 zZ~nS^C!AO6AkpxXelB69Yny}e`YFghF)oSuaRs2rq5x2@!-b$k0HpwseHE$`Jp!<2 z^s~Y1uZ$J-MC<|90ipq*@Q8|4v7!rtJ&33dP~?l72a4G~c^BNjPAMY!$3R7Z00000 LNkvXXu0mjf5$1n$ literal 0 HcmV?d00001 diff --git a/client/public/images/procedures_callnoreturn.png b/client/public/images/procedures_callnoreturn.png new file mode 100644 index 0000000000000000000000000000000000000000..902be89291a583f033a5fcd96156efd6a3dc6653 GIT binary patch literal 2059 zcmV+m2=w=fP)sj6Q1f4tS~ zu3^2bKl$*I?8SQl%>4z zu$&b*1X5xw88e;nWcl~i2cFA5czgX@u}l~^l2r&SBUb`&=sg+9`Oz>l80kNAGn`S@ zA=!oWBj9B^t}M^K_`p_vADw4!Cx<3>mp`Z--_>9Q9wzHtOPzK2*=4um%JLj6G_edr z0=^dmrjvE#?BY4R&@4~9VuHILcRD}o#1~p2IlJf&F*H-xo+hnf9-JR%0`Iqk;QuCb z1=_=SYFos!+b`pk&9!8OcI|_S=EoSg=-nkWt@9ZCcv7^Z_wyir9r^>2z^1Ig+v9^* zV}CL`VVJ)RV z8AfvMklbk%(MvCN#(H|0D zoT8jb&+h0$QU`c3?e-SP^$vikXwq?W+ADXTZ9EM7E3`&J! zU5mg*VWwe!E;r3GOI}&b=E52@+g3$<)rQ)WY&?`lDw#Gz1`1SZH^NDLJZ=mg3^YsM zUStBKDs4e;mm9qeHP94QLVrR4jdui1g(MJK)SH}eb=hIAC}H{*8%C0Xv({t8F)9yb zXFHiOT$VOeG1qE@%eUPwXsTqdr)y){IZQ^BlfWt}VeJ<{Q>aF9z79>qme}aCA9gJ*Q=^S7r=t+vD@0xhM}*tS@P2&_TtY$M7s%t&Px76sj(};p&=Y!Q-G& zDpb%^a5frgXb3zfI}uC)&9Oo?R7Eu~TR0yOJ18w~^u_zCn2CoG)^;u)3N?xgB?FBQ z%>@*cr@MI*-o%=%5yu2;@)&&_6s6+@kJa>L?T(2H#oQ&Q;>U>GZ-XXZjpkUYAGV{4 zIQD`7z)>ga6cm)_+}!UuXau&bbuDbRioB8f}l5X#-pebQTSM3X)Y^q&=3M{$j>cskc`I{ zmsz#~m;@T(7&~j71khX%7RG{h_7>)56^jRJw-lgZCMy=GRXFrJCoK*}8aoBA59U&K zjb_(!9cmlw7~|D6VUvyrM!eX+>0lk?K_hfvf+97(7T|16B4wQ~^FlaXXmGoOCSIOI zHS9(`xu)L96q%`)r$%-Mvny!0d7a=Ftr46 z2*FyRhDv7_Y<*{8KCul=%0l=I*KSwP#OkZ#sJF!jhAI9PM^PUOST3MRPzaNoyG$~L zu*eo~YYR#3-IhDtO19E@&{VWAW4PM8(X3Om%hR2W?6%xlLKBJ2gHoZKwzFGqnrv$Y z!5Vdk31+95`uM2k9;6XrAz_nO;7 zX&vqb+l{chS2PK=2i?qv&2fPfP}59N^(RMBpP{rtWg7;A_f;8mj6 zb1={d4_n#8J>UK;Pvj{#c{M`VVX$s8Wk6+ZO56wBmV3vRJzgW9&141*`SL*Qt-ZdQ zQ9S=?MFJC-6-ng-vLxoKQEQ1E_HpVL9s=&v^58lK3=^3_^Y{8c317P;Pe0cuUdw@# zJh-cH=<`4+N>J56>MdSfS7?ksO%^Dt_i5Od%AbiYQACqpJ;qD-x&#~}E0W9y+{082 z_fV6{SEI^c$F$(FM@*}aHkkLe69JPF8uA$lfhN&=!epr;kI%_67PuiRaL9c?5|fW^49?=oalJRl-9>`la@L8gEa{R%W;^XA#z`lzjDlVupEaC8lutfrqK1l zy__2@%X4_3A$tAl4ert|T-Sb&oA2LdAW9}Oz+M@fYAjjz4#Wo}?ioSDhv&)AGYniC z#@$PO$wj-+^PwwiSbnH*!%}t&U%%JE7@KlDS=etMkho_IO{OA{+0PGTm0budMEw7W zA}cBxAMESJ2{`H2MZ)aza&AQiCi)ISlWx|Lvr9DRAV>}xe%28d({gr+<{SdaLc@ng pSY*kyOEl*oNE#Yh(L?Wp{{hYIatU~!7s~(u002ovPDHLkV1jDYu|)s? literal 0 HcmV?d00001 diff --git a/client/public/images/procedures_callreturn.png b/client/public/images/procedures_callreturn.png new file mode 100644 index 0000000000000000000000000000000000000000..85b88f5b55eca43c83276c5d46fd6079b375c5ca GIT binary patch literal 1953 zcmV;S2VVGzP)vcP4x}bm^7F{nmC$}1`}3@ ztFarS35>?EH5+N?V5kIAn+}-Tb)%yqNVTPQRw}g9St^+@H&C}WZnBsBAK&HNdkeR> zzkdO`^Wu2{oOAEF-{*7BdCvD9n4O&+h6dGOrwSTSuqaqewKOQHQ_Qu2rQs+IssY3r zJQ$6lEVv@}HQc}O81o!N^qAa)qpZ^S}#zTW@0HFr<)@h7)d`sb? zV0bF70fmdsHmH^c6fO!E-e|aPeH6s<#Z|0c`wgpCX{^4<8eDsZ@aPkGdY8(F>lf#* zSodw>^~--z3S6PDqj(W`g~ZA>jg_}YgLvpQ3z_RZZ)tE54~uLmNy8c4A_!>WHpI)w z2G>u64-Z@f8rxOX;K4|=G`ND6N4VV^O6f4&c?T~a$9Ey~e-_RNm-~G`*4@vG9PCrr zni(*9-~SkjO)QxW7`iI>-J}T&!(d=CUtb>vnElmn(;LTp_r2obN}8jYI^H?@WpOc#DSa0jYZFr|H5$KeA?OHS=Sny_^Rmn9qbv3)=woS*82t_f~sY1Pk>#s5Rupu5# z=qcQW9M8c+v==5U2;s6u;ncTt_h4jbR9i%26wh4T&#mS#yVSNM$1Lx{pnWrgRwK}z z;PN4@YiHXm=ov806Npt3E>g@BxJvan^1-!n@f@2-S+fOG);Ub|cR|_E4$W~9Tmc^j zU}u@+nO}tC{u%$j&b%L?%@$=*=rf$4(_#!nA^GQsYlp$ zPO}NE1OQ1pY_lS`N(4L=z+ZyHo<>8V_WKg#8V>B6{B#@mLM=0IM}!DWa>Q<(<4yUDlnK_V!RG$NdnG_KwWg9Tf#tkW{&?o50_{x zTVn<`@u~fzxJ+J>Q;yxFL`*6$5(Auzq8DJy0IBdfax9C|&g57G*Gw5tX1JJoBNhUJ z>+$z!H9yUr4<5LR!xg!*249v!t!%hv#@V;Cdn_*c8=sV2akz(OM4}3zP<|?y9Yn#2 zuYk_vLnM%W24$G0jF56*8~9m{hf54ApZGqz2<)@Mq(osmNq)A#NoG)C@H5qJqI19{ zzDIg3mIbb};sRgP&S7C+>P-3I#$9Q+$~^6m6E0SiObOkDQkD!42XD`J1)io@MmLAdzXnh#>iWY{b083hI==(DFL zkln;cj-W4@*n@y8OF>U2ftG3%^yEWz_25e1`tEM6naWuau?xgvsDZN0!rsF@I)Op8 zf?F1^#!IszN`xzsd=5s2R)d4HA`E1^FG}j73pxV3hS(aZRz&sS+QydE$l4;Q`KW3qu8(sDq=?f=txN zs7X+3)u3K!fX%s?-$d;khd+~vS}I&C1hCZSkk&OpYnVeUB#>%ryK6u7Rn&9P8@`OX;IDKHhneDA%CF8-~a`$#P3Pd<(9L#zRB zMWk67so^`nTs&Nf^?xwibC-q6`tEluR3xtV&Y%#>B6j`RArOd0BA*6iDXvvOH=Hz8 z`Ir@(t?98b`vN~|eZ|8?;??uN*#^Sds!%`d&c`9F-zfIj4UNRUYe4+P8ZeS3X!}V$ zD5yK-rc`%d5Wjo=0y%P3)-h)S7>QC&qI!)Fu=f2Q6q=Po{?hOt)s_6mZKhTMt=@qp z(dVjUkh6OJPqTxyZ)fO#IDMO)#mHdD*&iA!Z>$DnrXmxDt0Vtu8T#KpC7Q%EJQOYp zf#<+9pfeYpg>b0hD(7ep4bNMvLD_H-FYMv;6V_a%K{dD}(13iwDGRQoRYCkO8dQUT nNP|ZUtL4E(gKDsoM}z+W%92kRPbs%V00000NkvXXu0mjfB~-6w literal 0 HcmV?d00001 diff --git a/client/public/images/procedures_defnoreturn.png b/client/public/images/procedures_defnoreturn.png new file mode 100644 index 0000000000000000000000000000000000000000..56c6a07cfbe16a7f6f0db66466cbc1e32c384204 GIT binary patch literal 3496 zcmV;Z4OjAsP)B&jlQd0Z(&nM5X*Dr1 z#{u_jvDGzWFs zB>VTtX?cvI79Pt#-;> zUO427m+q(&aM{zH6dxhctJ5W#KS84T<0X1!nnZDHBs!bw6vveBX`mxBPw5WRK+0HZ zrHVau)Rx!nx^b{V!v^;Kjp9bC8*p{zW-**hotHDDs8*BKNevb!t$$9UiN6?Fug{jK zHp595%w3eRq(FDDv~+fFz3z^|l19x24QXv;URC_bg>~I@)@puRQ+MPqMua$h#xHTG_@ zrB)gil)CID+Pr!@HRiR5zgvqs>4j$&3bht>4tQ?d#(jRbUujgeKEPEZ)QN>{pQAuh z8=W!r&||lI51U#5)qc2R*bV#i+P~ncR0k*5s>HfYWR5;;mFD%^NBpn$76)Xc#78Mtm8)MDuj9^mSZb<*LDPLCkP zy(W=0Nut`5eM*b$gUi#g32U!XV`le|8U(-qn)*lX_`BGb_FNwQ#o9yv`SeSoUJ}CZ z9r>4s4O~NR3$0$ThJN~!+k~Pbc9MB-)(v;)&N3$*kIkefCOk_|IOb%Pm4beAi zUk-&Yc$I$i!<$82F#KyRbcpRZ59d#L^eM_uF78)GSJ_p{J6K3lADgDxj)4H*b_AAk;!7;eRqwcgw2Wl>gXQf6nIe=oUhawc86`;ZS}_T^rnifI&U5cm@3+15)#qQ+`wbt`wM!q-H`l)r+puq_z#%_@$`&Qw%yqrzr!5dL zCu})DiQ5i}GABInC{<@QxXRhT^<8m3&P5qG4ltUg}OUR``XrGbJWEfwZl{#KQEjtV%fTWck-%?8hUu#_c39Q$^H>ll2Z4eBzq z`U4Q+{Ez?+>r=V$SG~&90GZOjl~X()V~&=nDxq=2fa@%|O1-_kB-LKK;n)wFKca8{ z*GnA*S9}Hzj3F|2gKezbz_9CMe;QE?6;6e6oR?qomV zCZl$KE#TbCX!VfWc>)ggKz-D0Qy9meB zZIQ^HbZNwZyHfFoZ={+oILkkD~-GR{(cUl1=V0Pa)2@^GTD`v;ST=n z)aQkhD>)pT8qTdirIxY}d6XJBwex9BXeiNDIaY}@TKdhe?xpf$RRaR&UPh~zz(;q-basWn5Xs3OHlwgGag5g$_i_giYs?$UKgi6J9q z7zcA=SJ}26+PywbOavgBdNZVq*|2xmz@c3@7oUL!T*m-IO4J{@Xh;B;`C_4{@UssM zeGN|0Gxzp29y5;qnl$0ZkmFfNA0H@@W$k)(Lb(^sbLpsIT{S92V#-s`CjirH*$>E@S za~CDPsSVPuRT6cV^=a}Q+Q;o#Em4zYcn$yOd!LG^^dGtGr> zM7)+$+CxcifK#BuqA@xd>q5BGdvXv@3*Q(5YRyinRby!oQBcX<@QE_jQATUw8B#huFjoM7uW*F;HK1=*E;IJb-O)?pe%d?{*VF=vM0Aw(E+C> zaCjvL(gH3w&Pg??j!|v2zn-OJ1(ppm;w>JR71X+r(h^+2rO!Vtp7_U;|9=|eTke** zqla2g_XOlCI=O567K~YeZ-dRNw~MEIl)Mo_bVu$y@xedRg&ghCN?CM}y)6J`EU{93 zMmL>LchZ^}gM+qeszjA3PP%BhOqnZ+bcf56j?T^&YmIt46H6M@2D$GRh@m8gxR}sV z@>nd^BlmP)E>KjT+D0cw+5bibI4EUyHkHR*6b&gq?4;-Bb}%FP0SahRGM@zE(!I?RF~PS<4D?8TCr++7~EQYZG0~Y|Dz_J*| z1_2G+!D%Nb;mM;EJLT}8!f_*2rZ?rW*aopfu)(g!lL8Ak#oi?tVt@2`u1vtJ!9zAKFtK6o_7N5&yu?^(m z{0CHj1E+*qIDA!B^{^cNN_&sj(M}!JGPdO~XbetR$OES&l7J1cj8tO=igp~;I3meL z1x|@DBMF;(v~y2hIjZUJY%8;#tJ#Ws+Gzy^K=4wDy{nbf<{EVhAc6yP|2V`rBQYy$=^ z06Kvs8^#6k`Y0G+^+4PyfaE&w`#B^$;Det(vdpES|G(^;}HfWw>K{46Cqylh|_ z_!T&O%>e_af2Xr#V*sbT@y%~uv(w84wSnJ(LzLrh%hJE&S+X&JgOX;Z^Gm4g^kGJ{ zfiA!uUzkrh>wW*yR~Fkq4ssjl0$k?uLMn@{AzRdWdcWrb1}^{{fhC77a8T;J98q4$ zHanqg?r?T`*#I`s4LC)o!fhhjL8VdERJx;@N_SQZ2w7}{iXgW^ow=C;3OIGd!%#Cf zqFmI2#WpAi0UPA4E9s?tE+rSj+z(Fl#9h5vHQ}@cU*ajve00*_(9khQ| zn(h^5u?C1rv?viY2!o|+kkywx6d|Ec=|ts WUdc)QRCo&j0000&9aVA?W)c7ZK(4N)Y;dc$ZUs&RzHNz76rul= zr<%DB06TYV zQ^5H7IU5DoITK>>l^Io1L&V&P-2k8nN;N!nC2BP_CsfKKdk%bRYP=oEUJEjI8AT$? z!`vIv8Kd~R(hpNR)ukQ<$8veor@Of4VSXzn??SlMf7vvU&k=Gf&0~sCf~3Of^k~%~ zpC*1UN8SVk=CSBhmlVK~0@W^8mP=h;Y8Y=#@utGTU z8IVS?Zu@Tq5@1yb$&|I?=HyiELas{S!22}D72LYkvPgGD>}=#=;;Nx{^wr}LBXnA}YD zoM?~df7S$!{Ye2+O2W-YP@%*fo3es|#140Z+Tf5?cUdZ7^KirG&lP+swAUj}Fipmib2sNkc zn(cPsceuJ_5>g>F(*K#+i*%WykIMMczDrtMy+)zbf6bR6IC}C0r>`P{Q)FFuq^iC* z*-2m7DIDZH{GG{&(US9eB}-2MB==W~DC~j%VUN1zBjm@8`S}5`&vu$@7G|l%R<5kJ z+M7|W1>kFP6yfN!KN%}LUPxRudiVq^<@@EU<=s#eJj`>2PGQ7F= z=wMSCA=V9$?KQ6%BUvqs!j3Jy_Ul8r`0ebFQ@Y1!YG#RZ zXy8`z!KcB&m}enB?_0<|Owkz2fEcs!y+S+79G+yYlx|9x=m!|gD9!9wmVMcf`R;ac z_2UlJ*-O{$?t@KRnepB~xaHu2*0WPdc5(TA@|;j#6HDhCF11Z=tqAjON=b1?)y8x z>KyER_ge%+A5bK`OU}&O?*%h9SYKz}v=TbKOFFqM>Gtl<8r{fI+axyjy|N{rxeiQ7 z+Q={LAuqEn;92LN!PS&3xV3$E#tOh1&LnYl?ZT}#1vT*ED||u%B7k?x3T*cT$;MG; zhke7KZNbYDp!XTuj0}|)KDXiMnz-iqhK}Qqk(^3ly=cjTrQY=QH!sU6%E!Bn{Xt?u zIoTvTxCb3^zT4VFlrCh4kBnH(uCnA7SlGt@%#|d^H8+GEESrIk- z-K2J$Xu4dwUx{Z48!3NFyS;8z8nF&Y6lXiXbNS~*17b$kt^daR@tu$jh^@@88-OQllxWNM2Gg;*Kwl&#cknB=WfOp8U#@fhEQ}SbmO|kjs+5E|n55dY|A*TUe zpPv!%R_6!g?5k=zPZknVu31Xqw=T+r&caA}#zws@jio~Ly8(0<-p|9X6aKaB!G>z> zI3`i5#8uJQlvY9g;Pw~QLac61W|^J?KYMv4W65@?9{#o%oP|nfS-c0=(KXE3FGjls z-}jUx-@A-bgRJT@-#2Edh-A@chP?6*3(TbcS~`cJ)z|X6*YD*p{lRS|W}FZZK0wPT zbWK5J|Rz&iI1Bm>v*D&peD|S?A_hnPuW3hMRv&y1?54{ z_bTrm)=$BEfT|&|C(@EEmhBLVx4yN7^KRd(_zIA#DUCire&zC7wM!-O#`U!!Hn!Yp zfV;Vh<=NC_o*d;_3D_!>AHd6l)|f!dj6%TiyR`>Jl#Q--xDc}eW$pF z{uqky8L6g1Y|nsOIybWM2u@qUn)*Zq;;2h=0ff4K4VWgC3UU8=c$F4JlwwC>2`o_U zTv;7Jt)&_xCQI)4^J-Tb6|mw(!&_l^_#~m%*zD~cb8{CCda3tt11YBz74=N}<=214Nd}&!Fi29Gw7Sp0$MtaeaBszmRPpLyKdM9zcV2;g#n$)&Uwa>dRyKVqD%ox6CoYEnY@u~qS5e%6PZZ}^AI zA`0C7FF2F(9**l8IXS(`6Ru0JiNNX#G}^WVL2X^@okLkPAwOAbQ=m z^`z5c(gE;qg94r;i}AAZ%RKeGS5J_H?X3~@w@yHrS7je@=!#;LdW5i%;x9FZIwy;X zd5bwp2^{x1NjD?Y_mGUwM>8ClM!-}F+Ws+?=?h)0rHGg9HmfFr;;hAUD#p`gPp5kM zG*rfFiqqxdm?7}EO1N`-v8NSGHE==_%7jb0gaCyzI0;;XK&v?#ID zK|0wP;4cj9{?s=A!*R*)t*p36Kw~i#BvE$G5Ks1lsC8mV--P)~ODG!OBPIA}QpVrz zW&`huD>^dz!y><{S6!>7=d03Usdxv@U3tk4GtCjQ*gNpzkhoLfg&yZcp$baDsK@vv z^7F;;;dn-B-KyhXmGE_J%qx9Hb9EW|{qn>yvu`;HtdS{U0}MzzIct`{)-VUgE|dH>uY=o)&J&+2P%dd8FjP~3D2y!>zl~Qk z?64s#T07}P{ZCLBN2 zwtQ1p;?g(=RuFauDTT*XR^TiBxeQMd{JL@%;B#uTI_pp+jCt z+GH@&Ru(FjjvmkX0|iU$`+hrv(}2ff#pJ#~!=&_ZYQ1(Li9{9Mq_hhesHV6SS{PUc z3#^9DvhXmGRng63*5Sj(bD7B5qONMBnUAGGSd5+e06vYLU{HaXJLnXsZY{dm>JVro zg&L9s6-n&!Z1Sj4KAXnROiSWy#q?_xMsQl6uJ z4or<2(!oIRhK{6GV_m`(;SJ>6;MaNKZ1`#4{+BT|GF};=9MQj7T;)KLh<>RQMlFB5 zP)fDvHlV5&h!*d5KQZ(^{$KVKG7nI)uI;u!zy$+LQ@oR0mW21~_=fua|LfvzQ>uHu znf5RK0VEoE@{5}7f1T}OnbH4k*)G?i$k))DC#S5MjeneP*XhjmROpecUn2O>HAu()d!?n3pQHVzhNMcmJH20u-J>xACcQ&aPOWF;VK-0_ z9|Wkp+o}+Mi$wNO?+f@Xs^vpa#FJ|k7y3nvWe9r;cKRcwnL7&pKaBDIA3sEn|8+a~ zEdkQD%!QO@%TB0pWR1(#B56P5!MX~?TkD?nXXYSU`VkrT`i;lFFBq6SO!_Z!2r6AY znQj@SuL+RiClM;~nPKS5bt_q<);Az#ja-Q(D6H(^e94(Dn1%c1b!*2m5&*S=c}3M( zSGv%_@j7C6zW8sW)@Ns^)PZ%s9yx%g00e`si*TI-*#bb}*GNBQ-II5<61S8}d%QOC zzxAu7^7a0To#nhB-ycX;bDyMy5Oj!t^=~p*+Lt{JHinE%l`s#$Y=`dcZ`Ub@chb&Ftru!VPnC`(N6n zzaj-YLK~g{{J78X>5%+>%%dG0uEOiv9N-j>63qaL=9{5^KzG#VJn~;&tQ4@9G;1$#F&%?4?UE2i5>;9V( z(z?EJpym{&RfY(1gmd6Jyevxx;f)e)E@&VzfPdb~W|4kD&cx`Rew1u>n1QmUd8}1z zorZKaX?aJ8pvOnAh9{lS+T}ynAd^R4|1Jni%BD2>bRlUMQr)!3ci^fo%8DC@H==G+ zq$E7gs*G@f=hvQnlHuzOxr8)%Fw^VjiO7{sE|{$q0ZpFD@OnJg$j;$GPzP!#Pmb(K z4L*(HHbtO(Sz}Z2n1F|>6WIdVNiggSzQkDAgPCU^RA$GYwsjpPyM1ES4vZkaPdeIp zWZU4Hw;VO_>zSw+%S(Um8LFp`j)jb!SQ+fl;f<#k!o$RZt*k=P`iDz2cKM7Vz{rnA z*0kHjG(*`zim%j*C5ZLSbVZ?;<|)I92{>a;L>Qcpo}j14ERca^LKl4vrIfj(xDhw@tr zml9#s5Ed#zn=aEX(xls07pWvAFJt)7RO(*s`%s5Ymp4+&(??Q71#uD*0SY1@TJDkQ zE%*B3S@1B?ct!fd6M5T54ks@vaBZ3!7b0pV1%0;AdI);S7F1iX|0x+JH_fO`{)t}M z$MUs}J)`!;J>g<^H{_*F4DbBEuX^~G|R}{zn!=G@PmIrrR|v%7R%-^F4Z=q|Q_@*QBY4fI4n-0vNtx|~+3&1|8n^m|m5-WXB% zoE>m_iyuYpi`AHNHt4GE+r(E?c&kn}QuT=@p^BpobnS3WRN-@##~Y}(zJFUVj|{$` z+ZoNG&sh3n)ufaS%F}D;!JWyp<4$08I5Gs z`^pmr-(#g;mM0}_@axCf^yjhC$PibiH3*0RVmzGzLgAH2DTGmGp`&Rq*tFb;%)Z6>fz9m0b)Rf7f>>% zvi26xkq>^0dmK*h&kJCD!!x(8hgacA*k zT3=l!U+u7RShWaVIMmC+=71UF0LOy&gF$jF#Nnj(jEOgAE_vH8c#WB~UH;eb%FZa;g#DcgILGzP~)N^AXusytQIQ!tl4`-{;c5Dv^@#29_ zD+{Y4WP9`Ezd-xI?O~eIXN^$KPhwy0=XF_jM0SO2u7kM#oR|9k9;B&PGqk?u7X#2= z^DO4?#3js*%TppC2E4OlbM#N^OB!w&rTnk18z8OuX>n$WM%rEp;eP-%R6ioNZ^-f* zSE@C?I1!|MtUwGn<@SL2QOOh0j(u8NUZeNp^YpBFl*WfA#pf2L7R5Xz)?<{Rf}IY- zbusaF!wI_R8AO5ks8h5KoRyZ)%4(#4*1cnG%!PV2LYJkUi{xICN6z+i1t6I$XPz zNu*sXaqNj*261StyXEC45jyNN#J(8Y8Db76Od*a17KT{onAnM)xTnk~CQ)w(#hju_ochG`DfYzsw%U*(EKIi0-g>dq6yoRYy2vi{R~sP* zgzv$2i4G^uZ)7JpCf?>^hg&Ch5YlK!ry%II+wuvkCCFs~f2>z=do^ zdtr}gTUlJC(T>+b%kxGSL>0t7PO({s7_(xt#SY{W@#M+V-eGbo#3HP?F(4K=ve-_Z2skkk4Y9V7DKcA)>#Xdf`$Zj; zG1rHEzNx31{8>mE7{6nQuh*L$UcVE~7FoIH>cQf;|Y6W zPsFjv{q(A+geo0LXhEGw;a^HaEEVa15U;uUequK%??9<(H7G!w6!#OW5I-oYehf5* zm?2IUh>tk!@uWLhEh6?&ZJcOgPpp0nG^axRu)Lcq0672-w{R; literal 0 HcmV?d00001 diff --git a/client/public/images/serial_print.png b/client/public/images/serial_print.png new file mode 100644 index 0000000000000000000000000000000000000000..363ee52025dd97e44c3694fe3af9397eeccbddd0 GIT binary patch literal 3943 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 H<`DCLId1NR literal 0 HcmV?d00001 diff --git a/client/public/images/servo_read.png b/client/public/images/servo_read.png new file mode 100644 index 0000000000000000000000000000000000000000..dcd0af43e9dc1a1d2fe00cd32be5441459bba384 GIT binary patch literal 3117 zcmV+|4AS$7P)>G73R# zl!QY>0VyZ}6d+=OC4}8YF-aDZ1zUuT6<;wv;@e)^<9mGHj?eh^#)%!@8Q=5JSM3_t z^mI@6TprtbEj@XVAr{sFV}LO*5hfilm>5iq0mi_gaOxna zn_62lsjBKa3+sR}z!)G+2RA4rQo%ziDn6v*;$N|_4j2QB0m{iaPfbn56cVXGkx5DK zu&@po1B?MmNH|8U<^>GI$%;^5HXQ31}L05U{YZ~F{v;Hh)IP( zz(nv8U?4R$hB7nHP+s28Y|8nF%EO00qO`Q{h3=^g4z?476SdI?8OzI~gQB8eQd84s zG%!%Gr=+#@KU7-!yWmNsug^)Tsoxb9GcwK?l8eJ}l~;fE00>zQjt+{8e;sx5u#)of zKL$rC<>gl?H}{-!Lku|_v0lVdSa@+?lFHy<5p8X4P-kbdW!C~a-6lXkdi zZEcZ;hs!7{>#SGZsi`)yI`Ax6AMZyyj1S-UjEt0v@`;H$)Ar`%oTG(>aav!0K~Col zPkCC}3F_{CKub$g`;486iPF+5qMvT}7CnAkY>Fcs_^ZG6QrtMBo ze_wb5{tP-h`!*drc7$Ge^8kz*)egQdV}w$7moaDJQ78 z`2p3`d?v0J6kLcph$2NQU0tcPxw$5Q_2R`e&CLzb;^KrTgF)dO@vI6=x7$riOJ9m> zMlwEL>jQp}0E| zJQL5}dB?J+FLovf+yi|~PxpvtsKm8bMCuj9s@K0HMCbt_h83ycSX)~XWNMdGp!bD^ zahjVO_LN~f78k!XHAYB5!7uz8b4JFe^y;f$rQ^rnqWJg^>B^OJf>=(UewR8sAMUcZ z@~6N^1)&ah%BH9PAnE{#7OBV?9|j6?QLn-HH1B1Dy1Ua%foT`~xX(MYx~^rp2^7upLSu^1lc`%*6l+aAe?893K7h@)S)^Kl0mdhvNfNBku0brn6_? zqnMa)QEO|ur#vCyV?i|c?tQeYq*7ORBQR2FY)lj&mN}JhiX1E$EDS_*^OvZp>E9m3 zVgRL!j+q&TqIv|7M~~9Qz+u*ut~{PuTYKHB9?s!ipq`vzhlWZmjbFACg3tQvJv|xX z8Pba|0%oYBB4<3+i1A+Z)#x6hHcRgYF29*4f^uBh<~i*gcn?AJ4RhF2)s8*{n@8u*f1ggCJW3rMS+)qF zqTOf&H^+HhgFCvhu_Az~mct-amwslZR}64{{ig;A z%AHvq#-#@^zzCq)F@7ix0LB3j0;EWsV&*X;6{|y?)%=kP-Z4A-*f1u*s?%6sCy$;t1EG(kkepGbcD*o;(+Vs`zZ&Y~DRxT5|2x%A{o>$bbR z@Q)&i~xV;pr%{uT- zKpu$c?T`w94tF$AQc(ru0?z!c!+l1AZ*D)68XiU4q( zok?CZjyfxc8vejoVPs~;DBGd-Bb_`f&NRCFEhTqzuD?8!cySxu-(bk$DKr z4ydOBLlOweVf>giG=j4nwD>877VI z$<4hfzOBqZeGq*hvK$;8WM%zO2AUNAy9+ate7y%i#KJmA(&+%(=kb%0Nc>`T5&Mv$Ely`Fm6ZI3($Y@)#VnHw1DZ*V zF+kze0h0;?ib;hrKujtO0ww~+0PR&Bu&1&I27!fjkaU1_5HhLYXD9RXFNsZYEUW{@ z0AnC7?(NV>MJ_qZeJm`j1I7Sj;997p!ooUW3@`>J40P~+a7kook3naX00000NkvXX Hu0mjf&a2=X literal 0 HcmV?d00001 diff --git a/client/public/images/servo_write.png b/client/public/images/servo_write.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2e435414189fb5fffc34773d377844187908e1 GIT binary patch literal 5040 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 literal 0 HcmV?d00001 diff --git a/client/public/images/small_io_pulsetimeout.png b/client/public/images/small_io_pulsetimeout.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb00e18e0fc4a757e85bdf92aa78bb3ec83a595 GIT binary patch literal 14270 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 G1O6Z5Taq*Y literal 0 HcmV?d00001 diff --git a/client/public/images/small_text_get_Substring.png b/client/public/images/small_text_get_Substring.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1e725bde2e6e1f8758aff108378e232d86f158 GIT binary patch literal 15260 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

KQ8^5b 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 Q+!pXfN>Q>>+$iXO0JnK?wg3PC literal 0 HcmV?d00001 diff --git a/client/public/images/spi_setup.png b/client/public/images/spi_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..020e27c3ff35c2d3920d817798070516be9831ad GIT binary patch literal 12124 zcmYkC2RPeZ`}h;F_oyvGwWX+0HEOHX*6uKBgsQ5&lG-G;s#R50yC}75Z$XXH+QgRF zTda!xkN@+$zxTb)C2?{kUq`;zIrr!O+;^nDt|kp72PFUipn3FA?Fj$?^dtNpOioI8 zjCqz>PI#hleQ4qV08lYq{Qv=9QrQ3i9>60tm1kb5TWQ{|&pWCw&yPMGuA9v6jTWv{ z9jrC^Wb|k3x9|F-e(8>ThJ$rFgp8)E_5t(nTCd=b-mIipTq5_zdLh*@e!5C zRRm$6E-dCqtwa(3op%#oY&ZEnpXdW$A0qt*NP~!ue_Voav@lrbpBGD5L6@g(T;8@7w7AD{)oA~6;mQ%q2%A#dIB*n_V zUAM|@Eum!oteVlGvz~L5Ee0IfnCa7WKQkQ@7FF-P`*U4gLpylR$E%mtI*-+e$ZX`M26gM<)lKG3ay}6k z&?X1p@!r=r2TtFqo<7s?ui9tp;apo{iCpJIWi0dK0;d}-Bx|Y|7xmKR3g2d&sc$L3 z+a^?E?@50b-7EL&J36J=$oDYfo`vj%y%W4s8G8QN?&-*mNVBoI=Wz6TN6oB$`{i!4 zd*i`%AQ$FR#Q6s&uC#X9Uh>t5>BmnbD;DsXs&%Nyv5_S2E!j;}M!l8Oc;bja#?tHj z1zXdHtYY}=)Re!{YVtBkMoHges94Q<1Wcvr^IDQqw^7Zsf0B=Vw`Jm!rS%2qi_e88GnYn(-6&w+92>soe2F_z z|HbAfsG~ti{aRmu$VvzmUdgeCuHnOrHQ@UQ*QDGA6f5Db9l$UNl5?}V;998{$pb=1z(OnHsM<8el9Jm_RPo73}5V+50YbMmE{jyHm{frC&MT~t$LEP)l_ZxVMggw>*fr{lhgcNXu*a{L&w_WF0r4yIBE|a82bvt zKWbROwDKZfffor0Ei^VN)=WgYHJq?11as8D}gDKjTsTT#hrYGl8 z&md`knC@zu7QUz|G(2~&p15yp%+AocV2#cl_CD3kxG}SJCfQPFquwWldP>$4MR&kv zSKRaGyuE08m1-&$Z0NMoKkR~!+JThncnCo@B=Xc-eoZ~qa}o)Tq`noS4}hdmziY9Y zb1rQ=ef@Fq`?oQVoJxI6W0=pV*9kFPur_$W4XY|@f0jIy$+vXYm=<$Pc~-p-{zxWE zvCJff$DEe0KWRa>e09vOKOGDoWfG-+vYS$5t|Xj}$Y?Hpa0vN(SAm_!B@n5U>lN+e zbIg_GgOQ6Nqr`i?Yj4t+`l`TdzIA4r;{N4Zwc!wjuC*T}v6&n7%KQcE=FHj%XnLQ4 z-Oc`_)2s(%Cniud^)!#g&=CgWN00@2+uG*Ij=6`y$h=kfc`k?`$7%KoTF0%?As6wD zO&|8;XMAFM!rUS99$$L=@xSdJ2fOo$QWGPjCt13pm%rAipBRN7bCyM>jgkv#+zIYzx}G?uW& zrLT>z(}q1U8AcS6rm1U|S=dSHYk>&5 z$|R%axLTmgTLjYOZzJ|29kVn0w97o5?T?wPhHK}uPXkS_gIjIr^$Ay8umd_UA5_W( z+aK%+I{Q)-se;|_X zQNehQV!Gn<^QFkHH$%*b&N)`i7}p$>CxX)X4m?LnvKVz4huDNXl@+mWvw&Dn=@U$ecjj9b{hI95FU z*^UkbRVQ`}(|JIO&o;XGz5S2QJ#vorEN@K6Zb)lLZ}>&-hKF9-9DU^a1WLN+XWOWt zrydvyW?>P&BOoZ0KV#efYXJyqW>0;uyvvFg89R&-+?$AHJ7rK`n?A$^3p!gPy9Ck( znOeTx2d0*;purGDmiJk-F1GynzfaZ?KuF7i#iY)Id1(n8hn1}-%lwqYlu{Rxx4>pA5+W`eVJ?enefi_F5(=WY>MCb!hxp`gi>H*wQPTX zc?PdsqE=zvmXk}0*>0n_fh#tX{Vd;c7Q}$pXc8OyLy2F77#ju24|LZ1lK7)oF}@2! zR;)3`cx-rHHrZnovY*NOvsiCIsar};$14t5!jZ8O{Yzm%jhT3EPz6BK`svDC+3-5Q~Abp_8Sj znc5_ZK{$!_tK~thr2s^hTNWUjBK|}JnoJd_@L({Go8=4lyUsMGAX;RZHeP2J4E}!7 zt+G!4nIG^jm@v;gLn#*X8|PuKL3~CofVrTGJ_KL0#eXk~rmq z-A&YIb0eLdmezG+?IHIN+Uswd&FdoqRw@-J@WWc}{x7_2%mi$zaFj<5-q8x<4In>q zVPAg(Mp9n+I~@HTLANXpR)kIA?5#7L5XJR(vip`qNd|5U&My|>Dpa{@-t@t-*7CNC zTWy5}d}P|J78E#=<(P-*l{87PBZH#`8V6O%$%hR7s4bc{tK^7z3QrTY92zcOXArPC zi6(SFBV;<16P0yM8%3uVyA^NQHcdOtKhdH{QjTIKr{WZUtdDy4SRd#yrB7kea8wN~Yqp!kL&D7-44+gM_JeRx?PMV#@PK2|M2nU44GNzx zmPDsbqmQhN`nD;TUyIqc?>{(WET3Ke#z^1;a$ImBvFZowH`4jDxB74Pygnq-2j*ud zRjXwD!2L_bC-t=QJOp^rp^ulM2h)QIA5y0vCjJMgX$f!p@5F5_f{~p3AC%^rZ)d$p zPai=WL3^MBj(apkUQ6*WhtmR^1(1k;_!q^?^1l-iumKV9AD~C5`r#EcDZ=tP3QG4X z*3u5HH|5cMbNc-px@`L$O~aWO^^jBM)ll`$ZIw%W9kGw&JmWU&_ekPWnzE$Q#wv-k z^FM>(YF}a3^%ej8p&$60)w;~oPWyte1_f?>qk5{+PB!FIeMt4UsahAkZrR|OPj5BE zom;z1#rIg?UH#Sh-lp%Kb!7Qhiiew9s6PFaZ!?)+GFj$`%#!&;oh zCC%x2K!q!}Q&Yqpw)o{Q8<$#5Cs<#>fTvknlm7x!_Pu)CSoHXi_*B_#>ZJb12TtHF zKc(coE;!zgt3sC5R8vvf@AJD~{ceR7HHU3g2BZylAG}|p{3e_~o}Ui=p{y*LY1HZ* z%nkILZ45bLjfP?NrF_Ps$uYgWBPyTW?KU|c)n*aB_=;OZa(;%(kIW3@9y`aL6yy&2R_%MVJ{l8?=kOL z*;?K-MAcN3w3wIcoBK@I*pJ{v&r6afhUtkf!zpnZ?8%ArZ`mT$4o{@WDRI~#)NEFn z`|kbWv4RgZMqggwA5|qT?x7U3@s^&~H=o>tx4&T3-_xwg$?lCB#Y*I*$#L+;F4(55 z)#ly3PBS#mWmcEl6g{os3Ry#Ga*X8GHT|h`cygSjA$eD5cBHNAva|nUnBTm4!Hz`l z4uQ~=!Qy}Up4R9-exB^}3IjL+ufZ^Z5Qvtc*agQv3AH$4dViJA-o`sp6C)u2xt!uj zd{K4t6)N0!`BTHrx?vMB9!nPc@YxPf@eGYv{pDf%D;L?M2K?;-F7fSoNe>Xfo{X2d zNareeE#FI{id&dmpbB`R9<9XmMx5Sq-;OKA)KKjhn4U}aw}3#nRV#~bL^6NxcBFqZ zTuQ0C4JBkpL&_oL^Y!B^*U*1l#@C3>`ucQNn)4rq%dV}xM?sB$#5eDwLYtl$?G(Vd z+gW@8G0z)(sLmiCn7WH!!ZuKoO@z#YScwnEx>Wql1LNF^!ccS@qQaRK0$R=BOBomW z1Wp>Q^lK%$*!+FX{n%1@zs3Sd+C0I8LEyb}vR`7Urom0@_^0pCj1QwZ)!QGF%EK`` z_$BgIcEGYV-`#ogkM+!s%k5nNAf}?K|B1&zX75u(GO9S}9(mM)H4~K)({Im=v(O?x zQpF)F%XwIZ7S-x65}Th1?-}q}u4{n&vdvRE--$oP5-@lm zGo|ht8pshL?;|hKFp8k{D~$X@cS{fEkw8p^pMa0rUwm6OLr3|L5Q8&`e`ohl`lnZt=)3uY zhcrxn6sKZ*YwI4}nXUh|);YK&ounIeA}rlLRs*5MfbtQk+hbOqv@ss{-ibdZD{suv zKcB;wj%*#xXfc%{q%A25O={wrk}Lf;qV&u&?OAiJxyb#Zhme-e^QR#;&Vwq=BSHhH zaP8X`swvY8+_c)MrJo#UZlGcTs7N&uR=gn!+$0zYa3EGJdQ}U(yWt?<$e>5++Pey< z0x7Zx@KTbNB&&W=nxiekwX|0aNjeNjx&T-iAKZ#o^jpYrx&h2EXWtw{j#6Dp#Y_RA zNd&%UPE0HaYd)nl>G~XEBQtr78?Je-KMPndI=E5#6?Q-lcFBg(rv;Z|W%-mK8s$@_t=<)~yw4ap|1X4_H#FQRVlHz!koGnVjaz$>k#sZ*#?Ff_y=`&*U0ko;TQ=o87G~sX?Ka7OLzDb`K~<-!=!|vhXFs z?Si*CjSu%d%DX+IcVwK26(8`EQFA`F`yeEpvK$?W(FzFsE-`uY38J)X5;ToaYJi=6 zH!4HKRUM%sl1mLY!S3!)fn09+-dj(DG`;(k4f)aS8E`ej8KUw5oochYe!M2HT zS%PYs?1o?{@Z^O*e>!N}L=tQVKw3`^q&O{&p7W6?7Ux*j?cz_s-AP^4-EJM;oP8nxz``}ds`EI$M7ZcVp2WG&8L&9Pdc~mHRU)6fl z-V}cOw|Ij^@od>OhbNU08%6FP;y`K#N9YRnWWC`g|LTv~FI5Wo*cUp-&6`aAC&ZV0 zWxf_{yt_^m^5P}^gpXH?)+>`>Hk@&c?Sui8HdFGyVRK8g+X* zk@(@uu)WLZYt%meGA4frIlIQjg#8eU_e*u5J$C%$oH-9?L8wtbwf`@QH_(lnC^{uC zwXZ&OIIBB(=;utCKq!hC`=L_+EL<`<2OF~4eM+D*_hAfMSN(p29l#(*H9VAxbYKNZ z3?d<=R>J^_YSYcxf&TujtUVErtV>)n3Ex#mt;K2Rz97Mc+0}{FZBgNPT^9gvp?$}L z-oJao>0|;GH^|^~39-X!0-ELW1cxOl#5Y0m&d@3uAaLDE@!TyeMIG#j*-r@Ft)eAt zz`MxHsRxP#VAIqiYL2*c!mOFgUT-R;xw~GF#-K>xj+pe<*eLuQY5y&?gj4=$dPWL! zPPN3h#nKD}6eF&qA;vT0zuGBzVR!oORs8HQX~cT#Ic-fJA&^EA0;y)crQOBX$45#2 zkq7BgpBr)?Hl^Kh`9Vz-X3HYri)nWN#l#w+Os5 z7UO8%q%r~mlvepiJ)(F~|KYO;TA811|2xU$d(6Xg#d-wVi=cykR93#yodeQv>|dq=iP&BuTf_)XTu4g8uIXb`^9TwZj*5RD9{-5ikyAyY+IGbR2!$p8BzDBl6+1 zQUX2)K;n{~vJ_6_k`PUiLtGha5_>P07zUtRO~!4cevX&n3N}AfyfgQgb@~stt~KyA z7W1yyR-I=_!^dhKR5EUQZ|KOn*i4_yNu5b0;B`XRb8F^u&Y?dfd8E!R-kf+kPqDtB zs0RP!F5d}|=&MWQxp;YLGJDE0MbnHQDmm>-GW(STvoakDDcQViHC!F*Vky3x4 zbEeYQP+gXxts5Qje2oQxnM-M#Kg)tuZWI_*BLQ=C7&22Lnls@jnnvDi{s5hU)EdEd z8ZRR=kE$;TX|JjBJ{H`)a*84YI)%55uE>hpr@G~F!T6%QBHwL`E2t7lDF$I`FN%+5 zvn{;#;fXdx#*6+0Rx|K^0Q4g-@^u`Exf{-b-zn9llw%|8P#aESnk%weCmi0R->*?z zbcxF)_0gs5jie`ZjUM+=QD#(tx9sdi&-Uhh`W+i)H2Hp101XIeQb_ZtC9W zCyiqxZJH(or+DR7AL+-!8#bngu!_&PCT&e@Y8-YHr~__EBY-y3@lr_W}dPCrCHplsWG#aztGO%gfH)8V!jD@-K1IWm$zyh$b%BOA%^KV(icFkO?U zHJ<;4-774);i>!9T+-x3RijCLAGD8t)d0K@LxNk@D~FQsUB{u zvEjR^#wvHe13+Ymrb;n1Bi@juA$iI9T5Y-5z~?_knD0v`rY?pVzdx_Tr;4WyODuFP zHmj9>T&bY6htDubh-sBc6;wvgwL&Wo6!^q|R%PN1uj)%dt<_%u7P02`rC=mztm64B z^;x^EE>q)f3++oGpt6-Dr@4e<>l6?IV#M^Wl*^H=>|(M&kV7^9UAaAUX}G)$cyGe< zSVYiJZD03SvoiLGn`&9?$jAGdbpszfyyu`uH z^2x(Trl=|Mvyh>eJ_Q3avYUOaZfDLUerh9taSfyv>Gmxl%s%RMs)K7=L!;WvDLz{S zeW3B}T4|QL^P5v-q zHmn~@SME(q@!U-8}|QB8zd4zn-LT{)iCu6IuZ!#TWxZcha)a~{CnLMkaH zzcrw`)NX!t0{F@q(NZb9EdMq6STi|dA2U^EaoBKKx_*p?dekEbxvux-SS!N4cgAzj zO%8J^VHed(%+&i9l+u#WY$sRnCW~_;RJ4p0L$wJe*d4?-N=950P57b*;Lm2-RQJ11 zCSt$k3qVG(o1Rs&>mZ7;>pK72l`^3oR?NalF}MVEBuPACglX5KabO#~TOT{agaevo zr;wt;mgp=w`?0@_0Mq1t+A-_SX$A`|Fx@YtjCe01WDB=VYPoPH$Mj6Z9`e-Hc>Rg{ zE;){5KBjqj2ub2|B^CF#Hq|oBWlaPB^!MZj>yn@d%GouglElwyslA_$^$~$kTN0~O zi(SSaZF4Q`T-3s3(%b@g;!qg`t&Tb#K-f;RXdGK(PpSO;!cR#J&(BhY1?id>ym*jw z-PXM0O5XxD?mi-zLEAB-!Vr$RJ_ahKGiBI;JHkADP@01t)gE`+7?RpI~3I4VO!qs(XwYzc5$?t>>)@=TKZET88gkvG+ z&h#r8D5OlEl{$>A`;0_U??qdam9&b(O8Zr9tk>=BA5^&W^3b3vI2zSe_gTRIu>ELN zCft{xdz(klP)LBMx*s8*&CX7GtlxgustRPk6wX1R9f3$T_`n)hro9-ea=kRm0xawC zg%oJkB}ki5?6PRL!htQ%a8}T?2~UYclXz7ORlmCAwoR2Uu_N;!YY~poIfyssxcR%Tm=0Yz@L76%JlpCbLh!O+Zs-+Gt#(-2Mv z$(+c3XRsQ26`PI(DE34>S`fNC(0tb@9%id+-u&#Qk@MTAp+VMn6u5S}JMsD5M9pqk zX281+^^+ie7gh^q$%{?G3q!4sUvHq-&1Ko>#l(2VW(%gfLD*QfBK@~!Ag0pUS{RRO z1L~Ye3&PR@#_?vX*c6;BXnyaja`d@*eE&zaz=&BbWkJ*0q)7;r2@><0a_UKise7k=P|MW6v z&}|`mp*M<}mLlilyadq~q%6>i2=QJ&AN^(j04sRtWDxT(q!M`Rq9dBmf0`jkiXPG| z@WnXs$~3z9XJ6s5D-%JWUin2XBESC;g~I*f%Vq>P=xYWrP&=B4}-XiWZC4DI9xx~U_pgxw*K@64WAlS4!Ki6!KPqi?=T?3Qa6t9d-&d8Zz_)&D5P3?+3WM6c@J89D0KYCpKAt`}% z>aB94(dEgMGjF%0#L*QDqi4N9PWds>qfKi+A$l2)IoqsVW@pLI$WE1Xd<8%MI$(BF zpv5Q46^umjX@=OuM%*-&4rRfQA8>LewKI;!(rKB0CBPOBVnuor25L_32e&C3{0 zLdI4f=FPsup3aW_ni5*O=y>*N{F^Vo++g{BRz=IjFE;pa8lgmFP_mD2e9lfR>rx$N zR?Q2&3PP2EVvr3d)Y0g>9a@~~%?gR9tMys4JNKP56FEN0D8W$t4zols0*kDhX*Nv4 z=RX^v!hfP24Zy4-wRL>*$XMQRm2YSId`n2=0s)Mf%`J*vC$i{s%Y@Cvk$y^39M9Pt zf4mkS)~{1g3~ON7lPg)OvI`8pjr&n(aK4+p?zcixAd&7P1$pCISCWWQ3O~4cdQ>}V zP=kwST_1XTaaO9Q`DY}IaNMvw|0J_vWi+=61u}o z{eJncR1aOr&qjsAE1My$u=|(Wl~cuNtLUtzf=O6zu4j)CzOxWpKrp*YFV}2F3=3?b z{^|<%@h-ZBGmpgtc<2_F=x|tCAKU4b_4*X&91q-4T4{@`1-jrpftPavJa;=pSfuj6 zk{7*Y07%J?l`y)efwd<}-$h(w6?W(MVbf45rD7kdneeQg=ImyIzMb(qO6z;umcU#D z@8jH(urYaGzkocw{fDMzPGbdQw$QZbCyoi9?19iLiNa8tE6C8RGJg5GLhcdq86mts zv$f@i`voFmy#eV;`HJpw2KQSQXnFAzXQ;mhQU?;-kkRAi|ic+;3Gx52T^d&K@9nb0Q2KL#1`04B>YdAhXwIx83s+sPL? zWIAAcEggbq`c1wl@nwoaFPMYS+`IIUphSq%M zHxx2e8nV+!O#=}vmRox3deUb#w+8@!Ot+hR$BGlo>P!^wVc3I81Ex(epudDXOxse8 z`zk4vu@V7x?aEmak8cE1wo{@9u!<5l<1M3FvPc!v<8V1YOT#g*bm~A*4 zNX`l`{lHFUbV*aSs}t)NdFeSoIyCk!;BPH=fGS7j?P(7gv?H!l(k*uP88%owk#&eKOHpyubAs~2T8(`t2l?avnD1AY;{ZRcYTyUF|QrIfvuOtVPje)VV0gqKh{yY ztmlSs_IL)(t%$n!{q7RN$T>-Tswa}5Wa`(Q9ElazgJiKBCknPuDYP^_sw?x|$v5=# zhB|%MR5Ejyjkcr55a9zAWi%6X2YAaRo=i4gi4Zl{w%Nd>cpAISX`&=3Ja>vvmAoXR zI3u}9<{E|q5D=!TKObNu@v`!1S3i6m zJ#0Zt62gq9-bk!swx3%|C^&zBww6<}FC{qjyYD8{*D%4f;d!KC6{RRm_5&nort(Ud z10ojq6>%Fx4+iTomkCB6e-&oy2ILbu(b6)BKOVx^jM?z1O2Ya88pAtOJ;7(2Uv=@a z8mt7ZEg+htqt^xc!i<}6BCTDw3C=t}0M^I_og&UGC0V7n-`3FzdjMw9^~N(o&K_e- zf!jb*Qu*f-Gn{f5O`F^Tp_01EYrkg!bL20fh<;~2d0xyTmCI=CVOvURVG;N_F@D3P z$;AKuil*%a;yQqC6&OIRk-foBkJ`}0pgOX-r90gRZcdurNSBY1p@q-4(`9W(XwGV=tqKLwGW59kdZ}1a z)00Y3(hoi$OF_TMmEXFsS!E}&1|D-D8pOeVThxBKwnx}Js)qVi56Ek{+6+Kdd64ZE z75XDHPJyPr)>c1fdmRWxZ-cb_2?hMpji88|3xK|$lOO4L54y(4Aj)r{vG)L^D69~U z-Iy9)F~|0#vl5^{N~L@)!2Zm}iyg`OTL3K4E933({Yzqcj$+1PFvr1(Yo1cZR2vkd zWQPr2S*Q&+GWRV0QZsoTz$+?&Ipt&^R$Zw3`G)9dy8L>^l;kD~EqC_glf>e-Wt{IG z)>MUW2uT+;Ozs!BFkAexpCG1{c)f@eFHT-aRq{TTgkCRdET)>AV8xue)74X* zZJ*%WxDh~CVkW#9xADFfmB%lqUF^q4eUB#fUTfbRNTE^e+&g)hdpbX)BBvm`dcTLM z8BVPxz;DSxiP4LQq-DqPUUom?-L>VRA@ocbI(^f$lmL{Y+|mA1@#KDbB4E<@H6mbL zvewHBqPc|7ol-5bHMjH`e=1^}w@4fHqQ+W@R#!g%#dPpC(cIIIF@w?c52@xjlltNe zT<-UhB#~gKE){t~ci05PEE^B{9tM5d?x(wnyWhxcmv>X->BN^P5DzU0&h|wutf+5C z1oyPs=!4olocA7G^LWt-N6n)b+CQ^ER=dnA;7HWbJ-eufbQa`c%pKjL1}V6O4%^O0 zrU(jbkdHSGykhO#ULZm(wBQ%=BWAx>dO-fyRqxL&S?q(2gO@{NGOf|_ajY>5gG1<6 zlr~0brF<2xa;oA|w%wLgZ>%%9ccaX0Xe`Nhz?_hCEZ~ZZdX#l0UtS-Pd33yrvTf)w zot88p-{97}ZKx+W!{CB+S+doeGgJXR5kR!Gy&PiM7Wq9)+!GEVr}(Z#HYmsijsA6C znMBbWKms0R8)PIb|E6#Pwl6Dy^JvShGni0ZHR5SEdLO4;870m&=v+ShCXLV@!ALJB z_X|#1$ck>0Jd~;~6b(=M+E=NYRWWSSm)j8JI60>*VoN19yOahm&xb0&6B2F52)W=rTD= zH2I{NeQ`F##y#Ef4yu;p(J>=oLT&)wfhpL>RLY8B;zjb%6P4M zl_4*OOF?3jG3|G;qz!v|fjOI*iT3Pmh;b9Fy+#eQ; z)_KkRd=vj8>9iY`4{%DOb7eTn9pVR^xUYmn{^g$^Y~4?r8s>5R4Mk`73i+;Q0+a(1 zNiK*m_zgQOGmFXEVaE#+>u1k-h^dO$_VAesVwvpl_LO>DQ&3{x8txSU2az6Rf)Wla z+RE00=(+$<2DB8@-vE=LovZZCj7*qq)1eSSS)U|aRTP@2T`hdUtJ!TEwxziqb~k*J*fGX zg!EDZ{N4Q!Lcb(GdAJqFjO8q4L!EqaB{+GB9Y4c>5RCh=a~<> zbFOLut7fhSq=g{s#ASj`T_~S_dgH*UOeRnVEjS0Ut>s!dW?OjL^FGJRhmzv30XBYf zT>>Zcc9aRXHCrmoI4LF8eCKJ-Mw5Jaf9hNB=b+^$?>&f`$xFq;3cFJBK#d=yKBtZ2 ztF_|?YE(|DDJ5}LEeTo_`@9L(*1{{+c&Fsgp5(dk*wGDwtNlxdkL&l47|G9IBoSsH zHahpmV@0%b$Xn>6jo_e**ZburH@s65i2&p3FS2!-#nIhsfbr#l$@TWxz0>k%mZVr zJ)!5sm~Bz&v-yjME_Vl@T^MN`FQioW+b`4IrErMgfBHj|rcgo{qn+8@&Z0*QLeOhE zmVAWz13kJINjEVukeP0JS7?)jaQS~q6cLmnI9_-|prPug--dc3=LQ^RvT6UnCtTS~ zlvJ_T(@tmvB+*%@xvXsvd*^crH&jOTKke6+R*TihIaK(^o&4uYuX6LzUu_FCTTY+M z$YGiOuY;Q+eugvvI42N&$}u{7)sgd0V|Nq7Ea?ns^M4!8xkpJaA#+%2K_%n;IeE0 literal 0 HcmV?d00001 diff --git a/client/public/images/spi_transfer.png b/client/public/images/spi_transfer.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9b944a132ece23353766a638b377df2bd0ac14 GIT binary patch literal 4431 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 F_J8B)nydf- literal 0 HcmV?d00001 diff --git a/client/public/images/spi_transfer_return.png b/client/public/images/spi_transfer_return.png new file mode 100644 index 0000000000000000000000000000000000000000..c3349086b30af35c0c6024b02f8542714f067a4c GIT binary patch literal 4300 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 L8tas3IYj;s?%-1T literal 0 HcmV?d00001 diff --git a/client/public/images/stepper_config.png b/client/public/images/stepper_config.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c0cc81913d986f9fe8a3d673a85f35a8cc5ab1 GIT binary patch literal 15084 zcmdVBRa9JE+qH=WNpM0SxKp^hLtzy>1lIt;-CctPDWC}M5Fl7^cY=lhMS{BpcM0B` z=Xu}n>pttF9{nFsFluaL@3rqW?`zH#rKTc}^_=860s;b-q5@b00ReFs_&XaN75J<< zheQFtFq{;0T@eso5Ip@LBBW;$BOp*AD1xOly)qB{ZJjiylPe!pioP)LxjKGz;qhb^ zc*`?1nia#N_<{SRFWWp(uwmY8fM0R{FQG_4pGU~@O#cxPQVeE)+cI$&3K9l2^rNH# zx?(OG6*MdiR{RCtA^iFebGWL<>}9_ipyd&$X~uIDZze;3~V5o@Phm$|a5~u06{t2|I{B!iL{{l;KzA&*0ChMqAIJYMwyfRd=?s4!BbAb+8YuQ_C z{c9w>_IpAGm3nd;5&ZBZkZruy@!ZBhX{XjVrkQ?L)X$cxh527$O{8AQGkYd7-DoY> zV@wXhd>}_8f-^V;>f!j@PCRY|c zHtnEg9`^Pr;*p*j-cC)jIEpDRKQa9h*SPcfTBCeGTPW5jYOA{)A_N z1YW7Q%fbS$E~+M4M$haf*;EzHT|R|_8jp-*B(AUHx2rntQk41$j00fV0f$mIjienT z*Y}63#_A{C=aM()ncvUjmv2y0UOOU@uxaQt%MCO{6y_C$90=}vx9#D}?n~*>Qv0K5Ahe@=p8gD;7OiGOJ9X)!hrTe?< zo}ZuLR12VU$HG9%*{5Xw7q-TE^ooGiMqY1!iW-O$70jrO5Kug*ti->hTtJ=M?fH8#~}i0|0%VttR7 zHXL~*_WY@JaWASTZ~uzmUT*$8Binj0-JB6^Iez_y5$Qrk;kBt225o`p8TUM8rTqtg zmfhOYihH_gteq3GY#icC^!Z@lzdr*HjODdS4}|KdkHsRwdeYS7wjYRrr}I zKvRBya57Se7tUp8smWRQxG+4xfF-v&p5z9I&+7GBJFN!#$)W!$kM~wYK_sa78cuE? z;Sk%I!|qXsl8k5VyMVj7*x8;;;k`E9usUu3UGcntGB958Wp*|$JvwgADk7@40HJjz z&S0|QWi#4NIBBQqwS_HOa?abj^nl~uz%N9M65TngvOOa&xpHI__)WK1&a?J9hn80# zr!Z#iiVrO~F87xI>ib;BGKRKkZA7(6{d#NJ0eL(gt#Z}dHhuFD zEp^c+<`=;W6*+27o3hWQgrWLKW%F!xbYJH!JYy;L3ITCp2OH}$^fVy{;L>0UG*~o$ z#~4e9nbnE6cWrxbKqFCyHKOg|^Q~5j*zB8>SCzow8_jQJf4GyU958*BM*pG+q!Nj* z2fW`!VXjcdnStrl4V+QXlOWQQi>v<_evuL|lCAq|cJU__vcgx=v+ac<2CY{;4G5<< zAy=ghrO?UDR<{srve8xF1bq7J2!u#^)z4hk>t~h2bOSe0C$e+>pOFnDFzJ5bEb+kY zmc)`o@W>;ALlC2-Hon+v7-@`t8RwRZa|?4fiygI3l&B2MbZC36zfQ9N9mbBD!o!?l*-17(=(sha@S6 z@9w$dQGd>zeo$B#h#qWn!FeKjST)D_Ng`BmMg6DI9lLKr9;Wz|bONR5^w7~ml=z#h zA(SYerN>)iuInI8b?v+OvCihlO9YJkxX1Ot2R{G3`9RgiyrCDM||1FSmm1mZh(nNc5SJ{F&544wtYG%@pSsd?KSdS5|Dy zkT#3IhPO$QYy@LKXXRSQZ3DhPci=h9$QC@eX%K;5Hqj4Pd@S4Pbm*W4-L*7&ybyc% zaWo@Rhfj;X-w|=NVX0h&Jw}_8wOM-inhx~{+lUJN&xFLo=Ph>soCcyQ)A&g}##TNE zl&`Ihk5qyjJlw>Qr+=cLd>Zyc|AG4cV%bj!$}S0;4orgA5IuuSp*`LlO}l1Hcx*Ti zh;^(1LjfL~)`#l_T`@cfOC=VRolmD*D)^W;F6lhagpKl^^qUoX}r-{H={u@mFi50Q7ui{ zNj7_n!|*NM*BTvCdKxpB^Qf?t`BiZcLE@r-@VY_sOs~IL}P^QA|v=7-(t* zsrz+s>4o8BxPM8nOg6GSOiic4W(js9)q*fk-j;_lB{rPc#og^QWq7~m|FqbXdLReK z&U^tjT&Yjrls0(@7I+U@K*GHEUOTw_T%)YIyH9#pO6OJ5a|FuJu^(?ypQCnQGO(ym z@g14^ccZ6`<%@>ta1l$*Bs2`LsrRgO9?z{yt!jrEt}6G4)SXeSvZb$T?>pRIvq^0E zDdC4PrnOjz0}sl7|3J~|!dK!iBerUK_LpQ(!dOyZM~=XwU&~*yO9okS-M`pL#dFcSB3GH5ibSp^BFrjVHym!cstxjsu8=0TdI)KgoTruWQU-pi{5JhWst zD|%yfV93k1sbVA&6JsS4VRXXJ0ENc9P*SSydw*E{EzZ8R-fi#W_V})Sl0iH$ha4zG z$)57He<(iDwEE9Iz?W-CEH}*R7gbM>mcN^Kctto>g2kd9fJfto&pIBu@7yMW&lY>1&)8^{>CcX*#QgmQtB1g^T)C$ei z&kvh-5ZmBr?JoygFWR%1VzJV!(_=WyM;)_Jx^oRTV1H4V+xmr#(GF=}Y(TE%fqIt& z5G&@p5%}=QG$w=_;UV?*m#&_Jq#~*0%G>RK==PY?WVmGVA9d}8X-8eiKnt7u)6!aF z1b)nri{N=bBoBmmH0niZpp%l?_t?iJjEZW-Ye`qtv}#3ai0jK#Nnak9S672H@6BXk zxaEIj!f(AI_q$L$EHZTm`15HZ;{?6cJv>+zQe!V>JV>f~SJkJQ$#N#bj7E#Hxz^Q( zrFjNjj2AykWq6)4Ykf;xNmiV3Sy`|+X23xgzq-15*6=uoR|IYKyhflwl$n=yZ$Af5%CeXYKNyuUeGH4LcJaGWW(LH#L_Z;B>`k?_$E z6y*ot*0kb-QznM>RXWH5GFMMQ&nHBsqwy$EbzGEd>db=6{Z)tZUhONCj-*jeD)?{f z9L%}4P%|Pb))R$;Nc<3GL3Gyu&h^b)(QkNYtxC?CvXS@{RD;;04qcG!W(S1X)_2fS@L7Fr19u`nsl&*?O#96prek#qd?R%obd&Rmyk&W3BZ7VK4|Ym-3@h+lczcG;LcY+6{Te=Btd`tyLxp`46 z9rmSAth%UuffnNyW&ZA)z$L@0-a_lf!-cX^-lkrVP~xOH<-~hVq}!Gm(L=n#iH*Am zJz|iwXX2^W4dcvbVh<3qhg6B!b3TZUyf$@ZZ6U9%rkJNyghjCr6no{AFxpuG7rj5X z9&A`O(Vjxc!{^+bCu$H`-TQY$%INL4XJpGmbChsBocWP2Btns&q=Ie*$C=R_H=*L# zz0%HF`F+>|VXRQ>ET@k4*#>c~?jKmSG^IIelSy2Pw$~Nl(^#s_f36<&@T*^#Cqvc79&oo!cWRF zR90u+)Wdzvj@)S&c*p^tMd5^KLQ)mM9A@$4V{eW2EdZ=0{=BqaX*1lO0%mt)^ZFo;+7 zUH8Q$r+U8!k7^rTVl3YYZsUt{BgX+N0!;WS|1T;KR8Lf)M-N9J!x3pfrjnfH^+Do0 zZjnl2SCJ3ycDHgLLF)bL*AUpr#BF9Q&P3cjveB$lBw2^R^y_4hyb9WFoL$t-bo6_A z2&{t(_;A+jz_++_i_b}95&Xvd1+`^ck|aX<=w_6StihmVtDwnOYkjl;MX_=uP~=EWAJPlYpx+r zPz{|oGXebrPO^jVkj>3R?4xv`-=(K>l`C(}-ii%&W97n)^g=8%`03c@N(4p!H~s+w z5u(_j|ASV7-ggyK6op7)1^>fo)G+C+w%l`L>eI?{N{O9b*{S}!3p=UP-@+w+`W#wZ9zC{~ie!lP%+v(>)-E#DS8G|X0 zjANV=7yRE?TTkV@hihGc#1I4te?R@3oO7H|T~XRYb7GZ-BSSFH)M5qrwc|GcNcEGV z>TysoN?h;E?D#h<6KOF_{(ca*u_`4t?afjUYtJ(1^x6Yuc12#DyW_L}x;}%e%D-zR zatKI-*iMpT*c`30>V0#0em|frk;~z~!|@McaJzDJEMmK6k;`P&cFf@2xcn-=6D(B# zFd}8*AgTV}p7jwP?-;OdjH0;f9-i1&ipUsG^Y5&g(SARRpPve%LBMVsck8q6y1bj~ zis#dTXBI72-6B>G(KtH=s>a2XcgHz9BL6DnSdhBI()|f^z6`vB*!y&nSa8%{&*o<- zIio1JZ{I6h#o3c^S}uDQm3+#jV~!^dq3(UK)ph@*;*B5geSGfHmM50x*l6WoI`ZT; zzRAFi6DIuKZPkN-DcTdxW-l*<;#=5E$Ev>O2t`)tQL=3}R_{#CsVEuy(r}rS*$L2) z;<4#!#_(JGn*H5orJ{OLG`uI)AjlfycP!f0*cQDRItMU?xDhG|cenb9Y#CCd<*K19 zB>>w9c7AT~Q3>U4Oy+R=rK~l?=yoZMd~sWa9ro^4xb(rCiEZgrGuMA=gbB=cAQbS0 z+uXOjkL5z#voz`}$tlu}Gz!ACf*}>4x_xe2gs^sFFZ0PK@GV^W$!;V9A3Lpg(&Ix8 zLwN%q|5jP|_%}{u564tX!X_dRpT>8vvm~rNtIq6^n}3e8%bSqpy&No{Gv}<$tti2O;^H-hvT}!5iJf1+KRpD882M?;Q}L?zND=`}XRl4TNdyGeq!#Wa4j|Sd zfUpUw!WhRwB2E69aw_*AB%~TqKJ<%iq@@Z6V<3RXrvjKG&($c}bf__?$)H#ss^LAz zryr-SE7pNJ_}0}H>*DHa;&4|}|Gg`I66jOe6t)cx1MUl+9CSt42SZ8tV!O7T=oo=P zprZD?=HPV!C7`r!W86nRvJeM}R` zPgOk;g(V1w+Y}v)k(gP#;eWF`-60KdL0+pxIQfLX^rXh&hD$O1vQ!3*=;!=AZN7A8 zfpq5e4A9AI)G5sF{t(c|yM4^Ig%lS+*fwrO_!@NHkJwFPjJ|36r4Xqx{EEBoRwa^E zBj3#?9=C-+U2o6cGjO__j={iMK=da7YeH|Bs3G}%TzFoIf)u9%Q8?gw{^lcvSHNiJ zO=+b%b7q#X7}e`h2DuEJe9t(sr}(^1V;oG9G(0QATU#& z(mAE5-Rv(jtSbhv6bvA++p~)CE=?E7joEQCNxT-fOW%2Id;RYM3&((Rgjn!&R7c`( zv=APYPe%ul8lu8H9CkEOeCpW_WjM?-(pBiOG~nkn19B818a(t

n!6Szf&zQ^Tt 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 aBA)6A7f-V#CjrY>5fo)rz?IS_A^#U0ImG1v literal 0 HcmV?d00001 diff --git a/client/public/images/stepper_step.png b/client/public/images/stepper_step.png new file mode 100644 index 0000000000000000000000000000000000000000..de0cf84b7b24cd951f6764b9c8ce50eeda753a3a GIT binary patch literal 4761 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 literal 0 HcmV?d00001 diff --git a/client/public/images/text_append.png b/client/public/images/text_append.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd291c8da6d2920464150fe9f56eeed60258aab GIT binary patch literal 3124 zcmV-449oM0P)F)0p?|6 zV{H8VRo^kQ?5+3icF%j><2;9cI`8bv&faf-pZU%FW_Ad$+wB2Dgbsua*nLh1rr&@N zp#xz9c4OeII@?I@#7JdpsZWT|L6x8AprNBp;ztu4yG~@#`r`?-tu#%OY%We_Wu^<| zmXZ|BbqWzW*yaa1*jSk89!?M(RGi8RY$!^iW!X{mPDUgxIUG(4Q+B!(I)@q*o7Lfj7xRTc%sUx- zXm4#k<({jbwep|RL#96mAy&h6@cX?R=(iE;*tcdlqfh3uE~YO$kewArO^3s5$vRs{ z|2m#v`m+#XHN4A;sgjK;QS|=)9W*~~yF(s;J7p>b<4sQjK@rtC)PDOK?Wj0v$Pak; zXrxnvO{p!RpS}1idix(MrL^SgB3iy_Ev40!nhuoF64y{l3z9-+H6XU`P8u8;rqIeP zm-!CZimCn9RW=mz#(fxJ=Kv3I*0;4tvlc~-wY1>NZBm}OA*&g<4sarh>Is}$m8VtK zeHE_@&UK-mur!=A8zyfEy7*=TVy4(M+E>?|n{;ci-)nFhVdrx2yo8cmr*r*)RDOP1a6%#S4~~)kMp`JPx7AS3&;U(5 z_=mp_x1O99oJ!A$?|^^+N#q{&V97C>|JFkK`s3eV@`u1z>GSMVRj?y7liB&NJ@y#Q zdG={q9~Mkmtu?eMau+@O)1R<(oR2HZ^*K19)7yi0X?$XWJ%h1{ak|`hn?-$jp8O6Q zjgF5|UWbjY^!KpmfqdwuAwtjd!SG;!P1n2V^tB7D4D#ao=r$_rMjFn!ddA$SkG9oH zd2z4ye#d)+M4v8{@{Ep;QMLUX*}5;fgaR-EO8EzMay!gCTSxuFLsGrn19wqL8>APUZ*Xeoo{Tr;U0QcCEjUwKD(Q0HEgBvhrOL}^*)h@!FEp_q z2Bjdq_R4vtV5H%kQE=|dJ3>oWEoT62jf!B$NDoauK;L_64$XV{PqZz1HxvB*ohQFb zI}*NhfD>uYJoh7dd-Vzmiisr4pWmb>zWptlzc`S7`MclHmM_BTqu{Od)DNDamjV}1 zdSj&~sM62WsCG$_hI2;1dE`trjgF5~-~BD^-11_!-?k!0ibwxL!%??IHBo;1MmQx*A2nn%4ZBvkcRS?`fjnh z@r`>#Bf^0=Xe*vl@4)a7_1_P@b3-}QCZg++Fw7}kknm0&we+4BkJXLh&oc5 zE2Z)mdatv41gLUg0VqIqX6HT)r@Uq4%EN#eN`kWfU7RB23ocJ*hS57T;E+BYIMuqf zfCmu0^}&0T*-|a#%WkWq#Vg)-01Rc}ao6tJPC4zTSz3HW0X_GN=jrG3UZljz<5Kxm zK^y7mAODbIj%R8HYfnucy_)TQ zKKveW+|koLrQXQeJQ^6e?@_lFQ*nc%!*u4R-Jy}(UUrz-p}b+hGl9(_eSdus(<%N& zUT1dhDV%y<05Kd+v^sd;XsMKWYp!&#))p7+sJq zl|^2ZQPzRH99YQC#2AONS|q#u6#YHt;aXuBL-yHIhIVV6Jrlt6d0l}7Cp;CpX!3kv zRoQfJD^dbCBdP0TeX8$;}n4+X;_T*xBSD@Gv-+)Ko6r3yx7nd5=6Frtkm* zVCTSC9!Tp=yGL*yztG6+u=&QNDfbA+p}Zz^1KWh&a9>LA=ofJE?v5IOyamU%x8OvV zRz40@3dWCNX>n3nC2(qW@ayV@6M~j_Vd^e=EqMp?Kzhn*ffL|_RAjJ*p#EAX^N#3} z$pPVGPJXN$uW_U1aPl#mGnn{uboN0*fO}V#b9OymFF;h*d(z(S5uDs(JNuxEAKzH! z&~T!W!Utn+dE+GDG#E~NyEFWmfD^K|;D1c?mU9PZLgNYM%{UNf_2GRG^w0w*fW{P- zJ2<&PYiVTFAoK*zvaVK-;Z&>Fnegr|KFTibtm)ROb#aXJoO`oV>B%|YXJbTPffE5B zJwYHXaAK@?ec%q$J=W#QTY4C|63z)(z(d)sMQ{km91?!4?ABr|W-U)=y(09E)L`-i zPH%K;%eq<_Xliz-6#TxH8<$yd4c%aT<5;d!zkt(SKnT${Wvk?kfRHkvgMiRqKU&Gs z@RkVHAZUYf zJRqdZhimh(DZ21l;lwdk_bA7DdusAn#CAFXA*CJSZ=^wj$__b1y%C*7@Ce^HmJiLQ z3n!N8%{ZJG6QET_z|_aeE$gMJ6ik=!DUy%FgV|JyWyu@#_&1-Rb)S7I z1$rK3IN>=lU4rf`#!3iuV61e1bcA^|H8_!%Pb;7djuF)1z;Zb8!8e{8rZoU2AOS4A ze*TR4)CZn3;D9Y)?8_Srt#EP>aXtKws>|(Cmt6}K@b&--bz>?8_2X~+MqCHi!@MbM zQf`O5I}3+`s4dbE{l>k>ySHj~u2)=5rC=ihS)P+_!A*h4@p796u0y-^lV*Cxj@Zr&C*dZW9I=@HE#bRLs&OtE61L%r7 zn;ovlrkQ9$ngUX@bG@w03tdA6b(Q377m$Az#8FZ6si`Z3uy2qryp^&%d*6&2zb^~A zRfzOXSEpJ7IP$3!v+cm*hl1C^!n2bl_zGK2NxOjX_o%T5o&zkwiS0ss;eF1))X-V~ zE+>aG$e?#R1)Nr&k;SpW%sX1kjxgSon;QV&WidOZzHGgzD9IMb6IjxV3IE542Vq(W>PXa^U60EFQdSo{(IUM2lvMB8{3N&DhDa7iZTVrDE z2{^I4yV*A?MCiaW%XHupPDqZeiUO0&@7f9xII2Xp;E2Yiz+ zO>inf#p(sX>P|4(>M59jo8Kf>RA{MBh|ocTAL&3hoO%V@{psnAuh+PIH&ZMW-CUB(1G3G;dJLk`2d)EOFg@j2@yK5`>_sYv@(E) z{~tna04%(v`Nkl`?o&E2rBdbKS9nYF4MB+A=X7BD4G0lB5H?^}h4cT=&h*57=P#fD O0000oB literal 0 HcmV?d00001 diff --git a/client/public/images/text_char_At.png b/client/public/images/text_char_At.png new file mode 100644 index 0000000000000000000000000000000000000000..1322fd98e3a7735ff135cf8888968cc5b4fcbc66 GIT binary patch literal 3296 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 literal 0 HcmV?d00001 diff --git a/client/public/images/text_is_Empty.png b/client/public/images/text_is_Empty.png new file mode 100644 index 0000000000000000000000000000000000000000..05f06a5f38439114b473b44c9d996b1958d8e35a GIT binary patch literal 1853 zcmV-D2g3M?P)wiy+**3#LUds1=?=v>Wx(zCHCkRS}=@h63}zx<|Dl8?b2 z*HtQSsi&x5!i|(%RVvBH;G3H#>9fCnqtSTK)X*X-ciS9rpoNl1Qd7HN0x4o%v_D z;P0+%dePGzl1G3}xC<4c|{Qc5msg?HqpQM&tX$VBfe zy(VF@fmKlK4intO?t2&4Roazzh6u zw4at&SLk*}ZQLhEu~7TVZ&2$x% z?KSy(XnA#&zpt_1FDLvox3oa#8cM8z3Gd~sOjCVXC9TciHzadP{-)G;>5*QbNC zbj+O}@jj`QximWaj^XQ>8llSm4*rYJ6LT|KT>%q7!vr=D_iAm-E(ZA=+O8gW$@Kt> z$L9@!31v|q5Y!L7Vwlk9^4=F*4p88Gpl!hX=uInSwv=&Q2=@{F#+*+F=cs3DRD;oy z40xp1DG-+S0Aw>T?Z`OnD44`#4Fx7c2DWyvn}W+rra`*L=jHprLg>%m?P}!n0tf-q z?9u{TA-#3L(KhPS+Rkh#=XL>?9wvZO+1H`fJz0H+fzSgV&doIq_pDoNi2k|WJh%4U z+|jDMkQcoWR$U@c{{F%d+Ij2Lh8hBVPJ=0>_%gdRe8v-RW{LE|IS>n zDhc5}up$HRCPH8`0xSBF*IB2XJ5qI<-p;?*>I#^Q)SG8Z z-9t>W*#Vbz@bN7TCILvKe(3LOgvnS}A14WT!oh@?Zfy3Q2BTVA#4Zv*ZFbx~3KLY- z-b|mT@7ExLbFx<3GgF6 ziUbq%)c=~l3#=4!P>8EOH5av^otDTA!4ieb5p5JExJReCxp3Fvii*0MxJ;xc81C`E znJJEM5a(<)ObGP%m0n+0ACP3Xx=mpcaTww!d>_PGpZZQVX4`h12osk7frWV7c@7C?>CA|L=zf&MG?cZHG7T0%kPEzV70(~VS;|Vaf&i(A239iY-5HUDFl&rkT9t+fvI|+OIy)73ML3v$e0Y(!z4GysWGuk zNT4DXg!@HS9WkQgU^0`0NsSpyi02S^kIw~o1sLtzNti5p2&7aAlY~IEYz(Ajl2(Nz zOfoe literal 0 HcmV?d00001 diff --git a/client/public/images/text_join.png b/client/public/images/text_join.png new file mode 100644 index 0000000000000000000000000000000000000000..1496e25eba40563849a5f3449cef1b5ed417fe31 GIT binary patch literal 3130 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 BxUT>J literal 0 HcmV?d00001 diff --git a/client/public/images/text_length.png b/client/public/images/text_length.png new file mode 100644 index 0000000000000000000000000000000000000000..8fe31480002052053f611d0443317c3b5af7a74a GIT binary patch literal 1544 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 literal 0 HcmV?d00001 diff --git a/client/public/images/time_delaymicros.png b/client/public/images/time_delaymicros.png new file mode 100644 index 0000000000000000000000000000000000000000..b6873d95753bc3fe1d630892fc6637547f5056c0 GIT binary patch literal 2754 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 IM6N<$f&eKei~s-t literal 0 HcmV?d00001 diff --git a/client/public/images/time_micros.png b/client/public/images/time_micros.png new file mode 100644 index 0000000000000000000000000000000000000000..0556ed416fd31d9272362a0b9348d64b328eb81e GIT binary patch literal 3214 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 An*aa+ literal 0 HcmV?d00001 diff --git a/client/public/images/time_millis.png b/client/public/images/time_millis.png new file mode 100644 index 0000000000000000000000000000000000000000..46ad3e6564e163a2f063b409bd1c7e8177d79c44 GIT binary patch literal 3041 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 IM6N<$f~&BCHvj+t literal 0 HcmV?d00001 diff --git a/client/public/images/variables_set.png b/client/public/images/variables_set.png new file mode 100644 index 0000000000000000000000000000000000000000..233a3cf25b7c85870c8acbabcb9cf2d2975adeda GIT binary patch literal 2292 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 O0000f&>9c$Ib#3VLaQ=^SR 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",GTE:">="}[a.getFieldValue("OP")],c="=="==b||"!="==b?Blockly.Arduino.ORDER_EQUALITY:Blockly.Arduino.ORDER_RELATIONAL,d=Blockly.Arduino.valueToCode(a,"A",c)||"0";a=Blockly.Arduino.valueToCode(a,"B",c)||"0";return[d+" "+b+" "+a,c]}; Blockly.Arduino.logic_operation=function(a){var b="AND"==a.getFieldValue("OP")?"&&":"||",c="&&"==b?Blockly.Arduino.ORDER_LOGICAL_AND:Blockly.Arduino.ORDER_LOGICAL_OR,d=Blockly.Arduino.valueToCode(a,"A",c)||"false";a=Blockly.Arduino.valueToCode(a,"B",c)||"false";if(d||a){var e="&&"==b?"true":"false";d||(d=e);a||(a=e)}else a=d="false";return[d+" "+b+" "+a,c]}; Blockly.Arduino.logic_negate=function(a){var b=Blockly.Arduino.ORDER_UNARY_PREFIX;return["!"+(Blockly.Arduino.valueToCode(a,"BOOL",b)||"false"),b]};Blockly.Arduino.logic_boolean=function(a){return["TRUE"==a.getFieldValue("BOOL")?"true":"false",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.logic_null=function(a){return["NULL",Blockly.Arduino.ORDER_ATOMIC]}; -Blockly.Arduino.logic_ternary=function(a){var b=Blockly.Arduino.valueToCode(a,"IF",Blockly.Arduino.ORDER_CONDITIONAL)||"false",c=Blockly.Arduino.valueToCode(a,"THEN",Blockly.Arduino.ORDER_CONDITIONAL)||"NULL";a=Blockly.Arduino.valueToCode(a,"ELSE",Blockly.Arduino.ORDER_CONDITIONAL)||"NULL";return[b+" ? "+c+" : "+a,Blockly.Arduino.ORDER_CONDITIONAL]};Blockly.Arduino.comment={};Blockly.Arduino.insert_comment=function(a){if(0==a.itemCount_)return"// \n";if(1==a.itemCount_)return a=Blockly.Arduino.valueToCode(a,"ADD0",Blockly.Arduino.ORDER_UNARY_POSTFIX)||"",a=a.slice(0,-1),a=a.substring(1),"// "+a+"\n";var b=[];for(var c=0;c");Blockly.Arduino.addDeclaration("dht","DHT dht("+parseInt(a)+", DHT11);");Blockly.Arduino.addSetup("dht","dht.begin();",!0);return""};Blockly.Arduino.sensor_read_dht_humidity=function(a){return["dht.readHumidity()",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.sensor_read_dht_temperature=function(a){return["dht.readTemperature(true)",Blockly.Arduino.ORDER_ATOMIC]};Blockly.Arduino.comment={};Blockly.Arduino.insert_comment=function(a){if(0==a.itemCount_)return"// \n";if(1==a.itemCount_)return a=Blockly.Arduino.valueToCode(a,"ADD0",Blockly.Arduino.ORDER_UNARY_POSTFIX)||"",a=a.slice(0,-1),a=a.substring(1),"// "+a+"\n";var b=[];for(var c=0;c>> 0); -goog.uidCounter_ = 0; goog.cloneObject = function (a) { var b = goog.typeOf(a); if ("object" == b || "array" == b) { if ("function" === typeof a.clone) return a.clone(); if ("undefined" !== typeof Map && a instanceof Map) return new Map(a); if ("undefined" !== typeof Set && a instanceof Set) return new Set(a); b = "array" == b ? [] : {}; for (var c in a) b[c] = goog.cloneObject(a[c]); return b } return a }; goog.bindNative_ = function (a, b, c) { return a.call.apply(a.bind, arguments) }; -goog.bindJs_ = function (a, b, c) { if (!a) throw Error(); if (2 < arguments.length) { var d = Array.prototype.slice.call(arguments, 2); return function () { var e = Array.prototype.slice.call(arguments); Array.prototype.unshift.apply(e, d); return a.apply(b, e) } } return function () { return a.apply(b, arguments) } }; goog.bind = function (a, b, c) { Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? goog.bind = goog.bindNative_ : goog.bind = goog.bindJs_; return goog.bind.apply(null, arguments) }; -goog.partial = function (a, b) { var c = Array.prototype.slice.call(arguments, 1); return function () { var d = c.slice(); d.push.apply(d, arguments); return a.apply(this, d) } }; goog.mixin = function (a, b) { for (var c in b) a[c] = b[c] }; goog.now = function () { return Date.now() }; goog.globalEval = function (a) { (0, eval)(a) }; -goog.getCssName = function (a, b) { if ("." == String(a).charAt(0)) throw Error('className passed in goog.getCssName must not start with ".". You passed: ' + a); var c = function (e) { return goog.cssNameMapping_[e] || e }, d = function (e) { e = e.split("-"); for (var f = [], g = 0; g < e.length; g++)f.push(c(e[g])); return f.join("-") }; d = goog.cssNameMapping_ ? "BY_WHOLE" == goog.cssNameMappingStyle_ ? c : d : function (e) { return e }; d = b ? a + "-" + d(b) : d(a); return goog.global.CLOSURE_CSS_NAME_MAP_FN ? goog.global.CLOSURE_CSS_NAME_MAP_FN(d) : d }; -goog.setCssNameMapping = function (a, b) { goog.cssNameMapping_ = a; goog.cssNameMappingStyle_ = b }; !COMPILED && goog.global.CLOSURE_CSS_NAME_MAPPING && (goog.cssNameMapping_ = goog.global.CLOSURE_CSS_NAME_MAPPING); goog.getMsg = function (a, b, c) { c && c.html && (a = a.replace(/").replace(/'/g, "'").replace(/"/g, '"').replace(/&/g, "&")); b && (a = a.replace(/\{\$([^}]+)}/g, function (d, e) { return null != b && e in b ? b[e] : d })); return a }; -goog.getMsgWithFallback = function (a, b) { return a }; goog.exportSymbol = function (a, b, c) { goog.exportPath_(a, b, !0, c) }; goog.exportProperty = function (a, b, c) { a[b] = c }; goog.inherits = function (a, b) { function c() { } c.prototype = b.prototype; a.superClass_ = b.prototype; a.prototype = new c; a.prototype.constructor = a; a.base = function (d, e, f) { for (var g = Array(arguments.length - 2), h = 2; h < arguments.length; h++)g[h - 2] = arguments[h]; return b.prototype[e].apply(d, g) } }; -goog.scope = function (a) { if (goog.isInModuleLoader_()) throw Error("goog.scope is not supported within a module."); a.call(goog.global) }; COMPILED || (goog.global.COMPILED = COMPILED); -goog.defineClass = function (a, b) { var c = b.constructor, d = b.statics; c && c != Object.prototype.constructor || (c = function () { throw Error("cannot instantiate an interface (no constructor defined)."); }); c = goog.defineClass.createSealingConstructor_(c, a); a && goog.inherits(c, a); delete b.constructor; delete b.statics; goog.defineClass.applyProperties_(c.prototype, b); null != d && (d instanceof Function ? d(c) : goog.defineClass.applyProperties_(c, d)); return c }; goog.defineClass.SEAL_CLASS_INSTANCES = goog.DEBUG; -goog.defineClass.createSealingConstructor_ = function (a, b) { return goog.defineClass.SEAL_CLASS_INSTANCES ? function () { var c = a.apply(this, arguments) || this; c[goog.UID_PROPERTY_] = c[goog.UID_PROPERTY_]; return c } : a }; goog.defineClass.OBJECT_PROTOTYPE_FIELDS_ = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "); -goog.defineClass.applyProperties_ = function (a, b) { for (var c in b) Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]); for (var d = 0; d < goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length; d++)c = goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d], Object.prototype.hasOwnProperty.call(b, c) && (a[c] = b[c]) }; goog.identity_ = function (a) { return a }; -goog.createTrustedTypesPolicy = function (a) { var b = null, c = goog.global.trustedTypes; if (!c || !c.createPolicy) return b; try { b = c.createPolicy(a, { createHTML: goog.identity_, createScript: goog.identity_, createScriptURL: goog.identity_ }) } catch (d) { goog.logToConsole_(d.message) } return b }; -!COMPILED && goog.DEPENDENCIES_ENABLED && (goog.isEdge_ = function () { return !!(goog.global.navigator && goog.global.navigator.userAgent ? goog.global.navigator.userAgent : "").match(/Edge\/(\d+)(\.\d)*/i) }, goog.inHtmlDocument_ = function () { var a = goog.global.document; return null != a && "write" in a }, goog.isDocumentLoading_ = function () { var a = goog.global.document; return a.attachEvent ? "complete" != a.readyState : "loading" == a.readyState }, goog.findBasePath_ = function () { - if (void 0 != goog.global.CLOSURE_BASE_PATH && "string" === typeof goog.global.CLOSURE_BASE_PATH) goog.basePath = - goog.global.CLOSURE_BASE_PATH; else if (goog.inHtmlDocument_()) { var a = goog.global.document, b = a.currentScript; a = b ? [b] : a.getElementsByTagName("SCRIPT"); for (b = a.length - 1; 0 <= b; --b) { var c = a[b].src, d = c.lastIndexOf("?"); d = -1 == d ? c.length : d; if ("base.js" == c.substr(d - 7, 7)) { goog.basePath = c.substr(0, d - 7); break } } } -}, goog.findBasePath_(), goog.Transpiler = function () { this.requiresTranspilation_ = null; this.transpilationTarget_ = goog.TRANSPILE_TO_LANGUAGE }, goog.Transpiler.prototype.createRequiresTranspilation_ = function () { - function a(f, - g) { e ? d[f] = !0 : g() ? (c = f, d[f] = !1) : e = d[f] = !0 } function b(f) { try { return !!eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(f)) } catch (g) { return !1 } } var c = "es3", d = { es3: !1 }, e = !1; a("es5", function () { return b("[1,].length==1") }); a("es6", function () { return goog.isEdge_() ? !1 : b('(()=>{"use strict";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()') }); - a("es7", function () { return b("2**3==8") }); a("es8", function () { return b("async()=>1,1") }); a("es9", function () { return b("({...rest}={}),1") }); a("es_2019", function () { return b('let r;try{r="\u2029"}catch{};r') }); a("es_2020", function () { return b("null?.x??1") }); a("es_next", function () { return !1 }); return { target: c, map: d } -}, goog.Transpiler.prototype.needsTranspile = function (a, b) { - if ("always" == goog.TRANSPILE) return !0; if ("never" == goog.TRANSPILE) return !1; if (!this.requiresTranspilation_) { - var c = this.createRequiresTranspilation_(); - this.requiresTranspilation_ = c.map; this.transpilationTarget_ = this.transpilationTarget_ || c.target - } if (a in this.requiresTranspilation_) return this.requiresTranspilation_[a] ? !0 : !goog.inHtmlDocument_() || "es6" != b || "noModule" in goog.global.document.createElement("script") ? !1 : !0; throw Error("Unknown language mode: " + a); -}, goog.Transpiler.prototype.transpile = function (a, b) { return goog.transpile_(a, b, this.transpilationTarget_) }, goog.transpiler_ = new goog.Transpiler, goog.protectScriptTag_ = function (a) { - return a.replace(/<\/(SCRIPT)/ig, - "\\x3c/$1") -}, goog.DebugLoader_ = function () { this.dependencies_ = {}; this.idToPath_ = {}; this.written_ = {}; this.loadingDeps_ = []; this.depsToLoad_ = []; this.paused_ = !1; this.factory_ = new goog.DependencyFactory(goog.transpiler_); this.deferredCallbacks_ = {}; this.deferredQueue_ = [] }, goog.DebugLoader_.prototype.bootstrap = function (a, b) { - function c() { d && (goog.global.setTimeout(d, 0), d = null) } var d = b; if (a.length) { - for (var e = [], f = 0; f < a.length; f++) { - var g = this.getPathFromDeps_(a[f]); if (!g) throw Error("Unregonized namespace: " + - a[f]); e.push(this.dependencies_[g]) - } g = goog.require; var h = 0; for (f = 0; f < a.length; f++)g(a[f]), e[f].onLoad(function () { ++h == a.length && c() }) - } else c() -}, goog.DebugLoader_.prototype.loadClosureDeps = function () { this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath + "deps.js"), "deps.js", [], [], {}, !1)); this.loadDeps_() }, goog.DebugLoader_.prototype.requested = function (a, b) { - var c = this.getPathFromDeps_(a); if (c && (b || this.areDepsLoaded_(this.dependencies_[c].requires))) { - var d = this.deferredCallbacks_[c]; - d && (delete this.deferredCallbacks_[c], d()) - } -}, goog.DebugLoader_.prototype.setDependencyFactory = function (a) { this.factory_ = a }, goog.DebugLoader_.prototype.load_ = function (a) { - if (this.getPathFromDeps_(a)) { - var b = this, c = [], d = function (e) { var f = b.getPathFromDeps_(e); if (!f) throw Error("Bad dependency path or symbol: " + e); if (!b.written_[f]) { b.written_[f] = !0; e = b.dependencies_[f]; for (f = 0; f < e.requires.length; f++)goog.isProvided_(e.requires[f]) || d(e.requires[f]); c.push(e) } }; d(a); a = !!this.depsToLoad_.length; this.depsToLoad_ = - this.depsToLoad_.concat(c); this.paused_ || a || this.loadDeps_() - } else goog.logToConsole_("goog.require could not find: " + a) -}, goog.DebugLoader_.prototype.loadDeps_ = function () { - for (var a = this, b = this.paused_; this.depsToLoad_.length && !b;)(function () { - var c = !1, d = a.depsToLoad_.shift(), e = !1; a.loading_(d); var f = { - pause: function () { if (c) throw Error("Cannot call pause after the call to load."); b = !0 }, resume: function () { c ? a.resume_() : b = !1 }, loaded: function () { if (e) throw Error("Double call to loaded."); e = !0; a.loaded_(d) }, - pending: function () { for (var g = [], h = 0; h < a.loadingDeps_.length; h++)g.push(a.loadingDeps_[h]); return g }, setModuleState: function (g) { goog.moduleLoaderState_ = { type: g, moduleName: "", declareLegacyNamespace: !1 } }, registerEs6ModuleExports: function (g, h, k) { k && (goog.loadedModules_[k] = { exports: h, type: goog.ModuleType.ES6, moduleId: k || "" }) }, registerGoogModuleExports: function (g, h) { goog.loadedModules_[g] = { exports: h, type: goog.ModuleType.GOOG, moduleId: g } }, clearModuleState: function () { goog.moduleLoaderState_ = null }, defer: function (g) { - if (c) throw Error("Cannot register with defer after the call to load."); - a.defer_(d, g) - }, areDepsLoaded: function () { return a.areDepsLoaded_(d.requires) } - }; try { d.load(f) } finally { c = !0 } - })(); b && this.pause_() -}, goog.DebugLoader_.prototype.pause_ = function () { this.paused_ = !0 }, goog.DebugLoader_.prototype.resume_ = function () { this.paused_ && (this.paused_ = !1, this.loadDeps_()) }, goog.DebugLoader_.prototype.loading_ = function (a) { this.loadingDeps_.push(a) }, goog.DebugLoader_.prototype.loaded_ = function (a) { - for (var b = 0; b < this.loadingDeps_.length; b++)if (this.loadingDeps_[b] == a) { - this.loadingDeps_.splice(b, - 1); break - } for (b = 0; b < this.deferredQueue_.length; b++)if (this.deferredQueue_[b] == a.path) { this.deferredQueue_.splice(b, 1); break } if (this.loadingDeps_.length == this.deferredQueue_.length && !this.depsToLoad_.length) for (; this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(), !0); a.loaded() -}, goog.DebugLoader_.prototype.areDepsLoaded_ = function (a) { for (var b = 0; b < a.length; b++) { var c = this.getPathFromDeps_(a[b]); if (!c || !(c in this.deferredCallbacks_ || goog.isProvided_(a[b]))) return !1 } return !0 }, goog.DebugLoader_.prototype.getPathFromDeps_ = - function (a) { return a in this.idToPath_ ? this.idToPath_[a] : a in this.dependencies_ ? a : null }, goog.DebugLoader_.prototype.defer_ = function (a, b) { this.deferredCallbacks_[a.path] = b; this.deferredQueue_.push(a.path) }, goog.LoadController = function () { }, goog.LoadController.prototype.pause = function () { }, goog.LoadController.prototype.resume = function () { }, goog.LoadController.prototype.loaded = function () { }, goog.LoadController.prototype.pending = function () { }, goog.LoadController.prototype.registerEs6ModuleExports = function (a, - b, c) { }, goog.LoadController.prototype.setModuleState = function (a) { }, goog.LoadController.prototype.clearModuleState = function () { }, goog.LoadController.prototype.defer = function (a) { }, goog.LoadController.prototype.areDepsLoaded = function () { }, goog.Dependency = function (a, b, c, d, e) { this.path = a; this.relativePath = b; this.provides = c; this.requires = d; this.loadFlags = e; this.loaded_ = !1; this.loadCallbacks_ = [] }, goog.Dependency.prototype.getPathName = function () { - var a = this.path, b = a.indexOf("://"); 0 <= b && (a = a.substring(b + 3), b = - a.indexOf("/"), 0 <= b && (a = a.substring(b + 1))); return a - }, goog.Dependency.prototype.onLoad = function (a) { this.loaded_ ? a() : this.loadCallbacks_.push(a) }, goog.Dependency.prototype.loaded = function () { this.loaded_ = !0; var a = this.loadCallbacks_; this.loadCallbacks_ = []; for (var b = 0; b < a.length; b++)a[b]() }, goog.Dependency.defer_ = !1, goog.Dependency.callbackMap_ = {}, goog.Dependency.registerCallback_ = function (a) { var b = Math.random().toString(32); goog.Dependency.callbackMap_[b] = a; return b }, goog.Dependency.unregisterCallback_ = - function (a) { delete goog.Dependency.callbackMap_[a] }, goog.Dependency.callback_ = function (a, b) { if (a in goog.Dependency.callbackMap_) { for (var c = goog.Dependency.callbackMap_[a], d = [], e = 1; e < arguments.length; e++)d.push(arguments[e]); c.apply(void 0, d) } else throw Error("Callback key " + a + " does not exist (was base.js loaded more than once?)."); }, goog.Dependency.prototype.load = function (a) { - if (goog.global.CLOSURE_IMPORT_SCRIPT) goog.global.CLOSURE_IMPORT_SCRIPT(this.path) ? a.loaded() : a.pause(); else if (goog.inHtmlDocument_()) { - var b = - goog.global.document; if ("complete" == b.readyState && !goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING) { if (/\bdeps.js$/.test(this.path)) { a.loaded(); return } throw Error('Cannot write "' + this.path + '" after document load'); } var c = goog.getScriptNonce_(); if (!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING && goog.isDocumentLoading_()) { - var d = function (h) { h.readyState && "complete" != h.readyState ? h.onload = d : (goog.Dependency.unregisterCallback_(e), a.loaded()) }; var e = goog.Dependency.registerCallback_(d); c = c ? ' nonce="' + c + '"' : ""; - var f = '