e2xgrader 0.3.0.dev2__tar.gz → 0.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.github/workflows/python-package.yml +2 -1
  2. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.github/workflows/sonar-scan.yml +4 -2
  3. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/PKG-INFO +5 -3
  4. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/conf.py +1 -1
  5. e2xgrader-0.3.2/e2xgrader/__main__.py +4 -0
  6. e2xgrader-0.3.2/e2xgrader/__version__.py +1 -0
  7. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/submit.py +11 -2
  8. e2xgrader-0.3.2/e2xgrader/static/nbextensions/notebook/student/main.js +2 -0
  9. e2xgrader-0.3.2/e2xgrader/static/nbextensions/notebook/student_exam/main.js +2 -0
  10. e2xgrader-0.3.2/e2xgrader/static/nbextensions/notebook/teacher/main.js +2 -0
  11. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/lerna.json +1 -1
  12. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/package-lock.json +64 -64
  13. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/package.json +1 -1
  14. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/pyproject.toml +13 -3
  15. e2xgrader-0.3.0.dev2/coverage_report/.gitignore +0 -2
  16. e2xgrader-0.3.0.dev2/coverage_report/coverage_html.js +0 -624
  17. e2xgrader-0.3.0.dev2/coverage_report/d_0a574a50e34851d4___init___py.html +0 -155
  18. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70___init___py.html +0 -112
  19. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_activatemodeapp_py.html +0 -119
  20. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_baseapp_py.html +0 -130
  21. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_deactivatemodeapp_py.html +0 -110
  22. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_e2xgraderapp_py.html +0 -145
  23. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_showmodeapp_py.html +0 -106
  24. e2xgrader-0.3.0.dev2/coverage_report/d_0ff1fe3f8b795b70_togglemodeapp_py.html +0 -159
  25. e2xgrader-0.3.0.dev2/coverage_report/d_2448a76917b6613d___init___py.html +0 -100
  26. e2xgrader-0.3.0.dev2/coverage_report/d_2448a76917b6613d_assignmentlist_py.html +0 -111
  27. e2xgrader-0.3.0.dev2/coverage_report/d_2448a76917b6613d_handlers_py.html +0 -206
  28. e2xgrader-0.3.0.dev2/coverage_report/d_294994a5caef5622___init___py.html +0 -105
  29. e2xgrader-0.3.0.dev2/coverage_report/d_294994a5caef5622_student_py.html +0 -117
  30. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094___init___py.html +0 -126
  31. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_clearhiddentests_py.html +0 -115
  32. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_clearsolutions_py.html +0 -120
  33. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_extractattachments_py.html +0 -207
  34. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_filtercellsbyid_py.html +0 -117
  35. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_filtertests_py.html +0 -122
  36. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_overwritecells_py.html +0 -130
  37. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_permutetasks_py.html +0 -146
  38. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_saveautogrades_py.html +0 -209
  39. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_savecells_py.html +0 -136
  40. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_scramble_py.html +0 -306
  41. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_unpermutetasks_py.html +0 -142
  42. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_unscramble_py.html +0 -123
  43. e2xgrader-0.3.0.dev2/coverage_report/d_2d23d5c010468094_validateextracells_py.html +0 -140
  44. e2xgrader-0.3.0.dev2/coverage_report/d_37d73105d5cffd7e___init___py.html +0 -103
  45. e2xgrader-0.3.0.dev2/coverage_report/d_37d73105d5cffd7e_base_py.html +0 -118
  46. e2xgrader-0.3.0.dev2/coverage_report/d_37d73105d5cffd7e_code_py.html +0 -160
  47. e2xgrader-0.3.0.dev2/coverage_report/d_37d73105d5cffd7e_multiplechoice_py.html +0 -126
  48. e2xgrader-0.3.0.dev2/coverage_report/d_37d73105d5cffd7e_singlechoice_py.html +0 -122
  49. e2xgrader-0.3.0.dev2/coverage_report/d_5beb92c0ecba1ed4___init___py.html +0 -97
  50. e2xgrader-0.3.0.dev2/coverage_report/d_5ef362e6f46f83e2___init___py.html +0 -97
  51. e2xgrader-0.3.0.dev2/coverage_report/d_710bf0b8e9508f41___init___py.html +0 -102
  52. e2xgrader-0.3.0.dev2/coverage_report/d_710bf0b8e9508f41_highlight_py.html +0 -127
  53. e2xgrader-0.3.0.dev2/coverage_report/d_7805cff25cc2d712___init___py.html +0 -97
  54. e2xgrader-0.3.0.dev2/coverage_report/d_7805cff25cc2d712_extra_cells_py.html +0 -160
  55. e2xgrader-0.3.0.dev2/coverage_report/d_7805cff25cc2d712_mode_py.html +0 -238
  56. e2xgrader-0.3.0.dev2/coverage_report/d_78932b1391e2ad05___init___py.html +0 -102
  57. e2xgrader-0.3.0.dev2/coverage_report/d_78932b1391e2ad05_nbgraderapi_py.html +0 -152
  58. e2xgrader-0.3.0.dev2/coverage_report/d_83df762bc77ead36___init___py.html +0 -97
  59. e2xgrader-0.3.0.dev2/coverage_report/d_866c9e7ae337468e___init___py.html +0 -105
  60. e2xgrader-0.3.0.dev2/coverage_report/d_866c9e7ae337468e_teacher_py.html +0 -130
  61. e2xgrader-0.3.0.dev2/coverage_report/d_8fe6e31f42e6838f___init___py.html +0 -97
  62. e2xgrader-0.3.0.dev2/coverage_report/d_94f16e40fada4634___init___py.html +0 -100
  63. e2xgrader-0.3.0.dev2/coverage_report/d_94f16e40fada4634_apihandlers_py.html +0 -153
  64. e2xgrader-0.3.0.dev2/coverage_report/d_94f16e40fada4634_help_py.html +0 -147
  65. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725___init___py.html +0 -100
  66. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725_base_py.html +0 -118
  67. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725_manager_py.html +0 -124
  68. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725_nbextensions_py.html +0 -175
  69. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725_serverextensions_py.html +0 -154
  70. e2xgrader-0.3.0.dev2/coverage_report/d_98391cc2871b8725_utils_py.html +0 -157
  71. e2xgrader-0.3.0.dev2/coverage_report/d_9b0ce7ff0ae20648___init___py.html +0 -102
  72. e2xgrader-0.3.0.dev2/coverage_report/d_9b0ce7ff0ae20648_apihandlers_py.html +0 -262
  73. e2xgrader-0.3.0.dev2/coverage_report/d_9b0ce7ff0ae20648_e2xgraderapi_py.html +0 -116
  74. e2xgrader-0.3.0.dev2/coverage_report/d_c74475b6151f7a7b___init___py.html +0 -97
  75. e2xgrader-0.3.0.dev2/coverage_report/d_c74475b6151f7a7b_cells_py.html +0 -267
  76. e2xgrader-0.3.0.dev2/coverage_report/d_d878b7d22c4c16e4___init___py.html +0 -100
  77. e2xgrader-0.3.0.dev2/coverage_report/d_d878b7d22c4c16e4_diagrameditor_py.html +0 -149
  78. e2xgrader-0.3.0.dev2/coverage_report/d_dbfe9cfbceae7526___init___py.html +0 -97
  79. e2xgrader-0.3.0.dev2/coverage_report/d_e43806ab68cc7f97___init___py.html +0 -105
  80. e2xgrader-0.3.0.dev2/coverage_report/d_e43806ab68cc7f97_student_exam_py.html +0 -108
  81. e2xgrader-0.3.0.dev2/coverage_report/d_e533b0b56079eb7c___init___py.html +0 -102
  82. e2xgrader-0.3.0.dev2/coverage_report/d_e533b0b56079eb7c_exporter_py.html +0 -238
  83. e2xgrader-0.3.0.dev2/coverage_report/d_e533b0b56079eb7c_gradeexporter_py.html +0 -233
  84. e2xgrader-0.3.0.dev2/coverage_report/d_e533b0b56079eb7c_submissionexporter_py.html +0 -160
  85. e2xgrader-0.3.0.dev2/coverage_report/d_e7343efe92bf6800___init___py.html +0 -100
  86. e2xgrader-0.3.0.dev2/coverage_report/d_e7343efe92bf6800_formgrader_py.html +0 -153
  87. e2xgrader-0.3.0.dev2/coverage_report/d_e7343efe92bf6800_handlers_py.html +0 -350
  88. e2xgrader-0.3.0.dev2/coverage_report/d_f7a0650fde384913___init___py.html +0 -97
  89. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4___init___py.html +0 -116
  90. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_collect_py.html +0 -209
  91. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_exchange_py.html +0 -157
  92. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_fetch_assignment_py.html +0 -181
  93. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_fetch_feedback_py.html +0 -250
  94. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_hash_utils_py.html +0 -248
  95. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_list_py.html +0 -387
  96. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_release_assignment_py.html +0 -267
  97. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_release_feedback_py.html +0 -275
  98. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_submit_py.html +0 -385
  99. e2xgrader-0.3.0.dev2/coverage_report/d_fddc8d031c76e3e4_utils_py.html +0 -157
  100. e2xgrader-0.3.0.dev2/coverage_report/d_ff9ed41ff67ae67c___init___py.html +0 -100
  101. e2xgrader-0.3.0.dev2/coverage_report/d_ff9ed41ff67ae67c_handlers_py.html +0 -181
  102. e2xgrader-0.3.0.dev2/coverage_report/d_ff9ed41ff67ae67c_validateassignment_py.html +0 -106
  103. e2xgrader-0.3.0.dev2/coverage_report/d_ff9ed41ff67ae67c_validator_py.html +0 -157
  104. e2xgrader-0.3.0.dev2/coverage_report/d_ffb521de3e56ad10___init___py.html +0 -100
  105. e2xgrader-0.3.0.dev2/coverage_report/d_ffb521de3e56ad10_extension_py.html +0 -139
  106. e2xgrader-0.3.0.dev2/coverage_report/d_ffe7516a0565d1ec___init___py.html +0 -97
  107. e2xgrader-0.3.0.dev2/coverage_report/favicon_32.png +0 -0
  108. e2xgrader-0.3.0.dev2/coverage_report/index.html +0 -725
  109. e2xgrader-0.3.0.dev2/coverage_report/keybd_closed.png +0 -0
  110. e2xgrader-0.3.0.dev2/coverage_report/keybd_open.png +0 -0
  111. e2xgrader-0.3.0.dev2/coverage_report/status.json +0 -1
  112. e2xgrader-0.3.0.dev2/coverage_report/style.css +0 -309
  113. e2xgrader-0.3.0.dev2/e2xgrader/__main__.py +0 -4
  114. e2xgrader-0.3.0.dev2/e2xgrader/__version__.py +0 -1
  115. e2xgrader-0.3.0.dev2/e2xgrader/static/nbextensions/notebook/student/main.js +0 -2
  116. e2xgrader-0.3.0.dev2/e2xgrader/static/nbextensions/notebook/student_exam/main.js +0 -2
  117. e2xgrader-0.3.0.dev2/e2xgrader/static/nbextensions/notebook/teacher/main.js +0 -2
  118. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.babelrc +0 -0
  119. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.coveragerc +0 -0
  120. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.github/workflows/black.yml +0 -0
  121. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.github/workflows/dispatch.yml +0 -0
  122. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.github/workflows/ruff.yml +0 -0
  123. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.gitignore +0 -0
  124. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.pre-commit-config.yaml +0 -0
  125. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/.readthedocs.yaml +0 -0
  126. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/LICENSE +0 -0
  127. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/MANIFEST.in +0 -0
  128. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/README.md +0 -0
  129. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/Makefile +0 -0
  130. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/make.bat +0 -0
  131. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/requirements.txt +0 -0
  132. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/extensions/apps.rst +0 -0
  133. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/extensions/autograders.rst +0 -0
  134. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/extensions/img/convert_grades.png +0 -0
  135. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/extensions/index.rst +0 -0
  136. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/getting_started/configuration.rst +0 -0
  137. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/getting_started/index.rst +0 -0
  138. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/getting_started/installation.rst +0 -0
  139. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/getting_started/modes.rst +0 -0
  140. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/index.rst +0 -0
  141. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/authoring.rst +0 -0
  142. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/cells.rst +0 -0
  143. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/attachment_editor.png +0 -0
  144. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/diagram_editor.png +0 -0
  145. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/diagram_empty.png +0 -0
  146. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/diagram_filled.png +0 -0
  147. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/mc_edit.png +0 -0
  148. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/mc_render.png +0 -0
  149. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/sc_edit.png +0 -0
  150. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/sc_render.png +0 -0
  151. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/cells/img/upload_question_rendered.png +0 -0
  152. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/exchange/base_exchange.rst +0 -0
  153. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/exchange/img/submitted_html.png +0 -0
  154. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/exchange/img/submitted_html_de.png +0 -0
  155. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/exchange/index.rst +0 -0
  156. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/exchange/submit.rst +0 -0
  157. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/grade_export.rst +0 -0
  158. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/grading.rst +0 -0
  159. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/help_extension.rst +0 -0
  160. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/annotate_answer.png +0 -0
  161. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/assignment_toolbar_code.png +0 -0
  162. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/assignment_toolbar_md.png +0 -0
  163. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/cell_type_change_alert.png +0 -0
  164. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/exam_toolbar.png +0 -0
  165. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/export_grades_dialog.png +0 -0
  166. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/exported_grades.png +0 -0
  167. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/exported_grades_max_score.png +0 -0
  168. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/exported_grades_normalized.png +0 -0
  169. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/help_tab.png +0 -0
  170. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/move_cell_alert.png +0 -0
  171. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/submit.png +0 -0
  172. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/task_view.png +0 -0
  173. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/img/task_view_task.png +0 -0
  174. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/index.rst +0 -0
  175. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/docs/source/user_docs/modes.rst +0 -0
  176. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/__init__.py +0 -0
  177. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/__init__.py +0 -0
  178. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/activatemodeapp.py +0 -0
  179. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/baseapp.py +0 -0
  180. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/deactivatemodeapp.py +0 -0
  181. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/e2xgraderapp.py +0 -0
  182. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/showmodeapp.py +0 -0
  183. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/apps/togglemodeapp.py +0 -0
  184. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/config/__init__.py +0 -0
  185. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/__init__.py +0 -0
  186. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/collect.py +0 -0
  187. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/exchange.py +0 -0
  188. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/fetch_assignment.py +0 -0
  189. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/fetch_feedback.py +0 -0
  190. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/hash_utils.py +0 -0
  191. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/list.py +0 -0
  192. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/release_assignment.py +0 -0
  193. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/release_feedback.py +0 -0
  194. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exchange/utils.py +0 -0
  195. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/__init__.py +0 -0
  196. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/exporter.py +0 -0
  197. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/filters/__init__.py +0 -0
  198. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/filters/highlight.py +0 -0
  199. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/gradeexporter.py +0 -0
  200. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/submissionexporter.py +0 -0
  201. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/exporters/templates/hashcode_cell.html +0 -0
  202. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/__init__.py +0 -0
  203. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/base.py +0 -0
  204. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/manager.py +0 -0
  205. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/nbextensions.py +0 -0
  206. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/serverextensions.py +0 -0
  207. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/extensions/utils.py +0 -0
  208. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/graders/__init__.py +0 -0
  209. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/graders/base.py +0 -0
  210. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/graders/code.py +0 -0
  211. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/graders/multiplechoice.py +0 -0
  212. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/graders/singlechoice.py +0 -0
  213. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/__init__.py +0 -0
  214. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/clearhiddentests.py +0 -0
  215. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/clearsolutions.py +0 -0
  216. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/extractattachments.py +0 -0
  217. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/filtercellsbyid.py +0 -0
  218. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/filtertests.py +0 -0
  219. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/overwritecells.py +0 -0
  220. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/permutetasks.py +0 -0
  221. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/saveautogrades.py +0 -0
  222. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/savecells.py +0 -0
  223. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/scramble.py +0 -0
  224. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/unpermutetasks.py +0 -0
  225. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/unscramble.py +0 -0
  226. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/preprocessors/validateextracells.py +0 -0
  227. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/__init__.py +0 -0
  228. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/assignment_list/__init__.py +0 -0
  229. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/assignment_list/assignmentlist.py +0 -0
  230. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/assignment_list/handlers.py +0 -0
  231. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/diagram_editor/__init__.py +0 -0
  232. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/diagram_editor/diagrameditor.py +0 -0
  233. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/__init__.py +0 -0
  234. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/apihandlers.py +0 -0
  235. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/e2xgraderapi.py +0 -0
  236. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Code (Autograded).ipynb +0 -0
  237. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Code (Manual).ipynb +0 -0
  238. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Diagram.ipynb +0 -0
  239. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Freetext.ipynb +0 -0
  240. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Multiple Choice.ipynb +0 -0
  241. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Single Choice.ipynb +0 -0
  242. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/questions/Upload Files.ipynb +0 -0
  243. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/template/Footer.ipynb +0 -0
  244. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/template/Group Info.ipynb +0 -0
  245. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/template/Header.ipynb +0 -0
  246. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/presets/template/Student Info.ipynb +0 -0
  247. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/templates/feedback/conf.json +0 -0
  248. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/templates/feedback/index.html.j2 +0 -0
  249. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/templates/form/conf.json +0 -0
  250. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/e2xgraderapi/templates/form/index.html.j2 +0 -0
  251. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/__init__.py +0 -0
  252. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/formgrader.py +0 -0
  253. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/handlers.py +0 -0
  254. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/css/eraser-solid.svg +0 -0
  255. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/css/pencil-solid.svg +0 -0
  256. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/formgrade.js +0 -0
  257. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/formgrade_models.js +0 -0
  258. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/gradebook_assignments.js +0 -0
  259. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/gradebook_notebook_submissions.js +0 -0
  260. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/gradebook_notebooks.js +0 -0
  261. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/gradebook_tasks.js +0 -0
  262. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/manage_assignments.js +0 -0
  263. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/static/js/manage_submissions.js +0 -0
  264. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/base.tpl +0 -0
  265. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/export_grades.tpl +0 -0
  266. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/formgrade/conf.json +0 -0
  267. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/formgrade/formgrade_macros.html.j2 +0 -0
  268. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/formgrade/index.html.j2 +0 -0
  269. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/gradebook_base.tpl +0 -0
  270. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/manage_assignments.tpl +0 -0
  271. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/manage_students_base.tpl +0 -0
  272. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/manage_submissions.tpl +0 -0
  273. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/task_view/gradebook_assignments.tpl +0 -0
  274. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/task_view/gradebook_base.tpl +0 -0
  275. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/task_view/gradebook_notebook_submissions.tpl +0 -0
  276. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/task_view/gradebook_notebooks.tpl +0 -0
  277. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/formgrader/templates/task_view/gradebook_tasks.tpl +0 -0
  278. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/help/__init__.py +0 -0
  279. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/help/apihandlers.py +0 -0
  280. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/help/help.py +0 -0
  281. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/nbgraderapi/__init__.py +0 -0
  282. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/nbgraderapi/nbgraderapi.py +0 -0
  283. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/validate_assignment/__init__.py +0 -0
  284. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/validate_assignment/handlers.py +0 -0
  285. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/validate_assignment/validateassignment.py +0 -0
  286. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/apps/validate_assignment/validator.py +0 -0
  287. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/base/__init__.py +0 -0
  288. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/base/extension.py +0 -0
  289. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/student/__init__.py +0 -0
  290. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/student/student.py +0 -0
  291. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/student_exam/__init__.py +0 -0
  292. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/student_exam/student_exam.py +0 -0
  293. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/teacher/__init__.py +0 -0
  294. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/server_extensions/teacher/teacher.py +0 -0
  295. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/notebook/student/main.js.LICENSE.txt +0 -0
  296. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/notebook/student_exam/main.js.LICENSE.txt +0 -0
  297. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/notebook/teacher/main.js.LICENSE.txt +0 -0
  298. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/tree/student/main.js +0 -0
  299. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/tree/student_exam/main.js +0 -0
  300. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/static/nbextensions/tree/teacher/main.js +0 -0
  301. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/__init__.py +0 -0
  302. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/__init__.py +0 -0
  303. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_activatemodeapp.py +0 -0
  304. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_baseapp.py +0 -0
  305. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_deactivatemodeapp.py +0 -0
  306. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_e2xgraderapp.py +0 -0
  307. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_e2xmanager.py +0 -0
  308. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_showmodeapp.py +0 -0
  309. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/apps/test_togglemodeapp.py +0 -0
  310. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exchange/__init__.py +0 -0
  311. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exchange/test_hash_utils.py +0 -0
  312. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exchange/test_submit.py +0 -0
  313. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exchange/test_utils.py +0 -0
  314. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exchange/utils.py +0 -0
  315. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exporters/__init__.py +0 -0
  316. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exporters/filters/__init__.py +0 -0
  317. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/exporters/filters/test_highlight.py +0 -0
  318. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/extensions/test_utils.py +0 -0
  319. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/graders/__init__.py +0 -0
  320. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/graders/test_base.py +0 -0
  321. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/graders/test_code.py +0 -0
  322. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/graders/test_multiplechoice.py +0 -0
  323. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/graders/test_singlechoice.py +0 -0
  324. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/__init__.py +0 -0
  325. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_clearhiddentests.py +0 -0
  326. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_clearsolutions.py +0 -0
  327. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_extractattachments.py +0 -0
  328. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_filtercellsbyid.py +0 -0
  329. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_filtertests.py +0 -0
  330. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_unscramble.py +0 -0
  331. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/preprocessors/test_validateextracells.py +0 -0
  332. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/server_extensions/apps/diagram_editor/test_diagrameditor.py +0 -0
  333. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/server_extensions/apps/validate_assignment/test_validator.py +0 -0
  334. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/test_utils/__init__.py +0 -0
  335. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/test_utils/cells.py +0 -0
  336. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/test_utils/test_utils.py +0 -0
  337. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/tests/utils/test_mode.py +0 -0
  338. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/utils/__init__.py +0 -0
  339. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/utils/extra_cells.py +0 -0
  340. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/utils/mode.py +0 -0
  341. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/e2xgrader/utils/nbgrader_cells.py +0 -0
  342. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/etc/jupyter/jupyter_server_config.d/e2xgrader.json +0 -0
  343. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/nbgrader_config.py +0 -0
  344. {e2xgrader-0.3.0.dev2 → e2xgrader-0.3.2}/sonar-project.properties +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  strategy:
19
19
  matrix:
20
- python-version: [3.8, 3.9, '3.10', 3.11]
20
+ python-version: [3.8, 3.9, '3.10', 3.11, 3.12]
21
21
 
22
22
  steps:
23
23
  - uses: actions/checkout@v3
@@ -40,6 +40,7 @@ jobs:
40
40
  run: |
41
41
  python -m pip install .
42
42
  python -m pip install pytest-cov
43
+ python -m pip install setuptools
43
44
  - name: Test with pytest
44
45
  run: |
45
46
  pytest --cov
@@ -17,7 +17,7 @@ jobs:
17
17
  runs-on: ubuntu-latest
18
18
  strategy:
19
19
  matrix:
20
- python-version: [3.9]
20
+ python-version: [3.12]
21
21
 
22
22
  steps:
23
23
  - uses: actions/checkout@v3
@@ -34,12 +34,14 @@ jobs:
34
34
  run: |
35
35
  python -m pip install .
36
36
  python -m pip install pytest-cov
37
+ python -m pip install setuptools
37
38
  - name: Test with pytest
38
39
  run: |
39
40
  pytest --cov
40
41
  coverage xml -i
41
42
  - name: SonarCloud Scan
42
- uses: SonarSource/sonarcloud-github-action@v2.0.0
43
+ uses: SonarSource/sonarqube-scan-action@v4.2.1
43
44
  env:
44
45
  GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
45
46
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
47
+ SONAR_HOST_URL: https://sonarcloud.io
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: e2xgrader
3
- Version: 0.3.0.dev2
3
+ Version: 0.3.2
4
4
  Summary: An addon for nbgrader
5
5
  Project-URL: Source, https://github.com/Digiklausur/e2xgrader
6
6
  Project-URL: Documentation, https://e2xgrader.readthedocs.io/en/latest/
@@ -16,14 +16,16 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Requires-Python: >=3.8
19
- Requires-Dist: e2xauthoring>=0.2.1
19
+ Requires-Dist: e2xauthoring<0.4,>=0.3.0
20
20
  Requires-Dist: e2xcore>=0.0.5
21
21
  Requires-Dist: pandas
22
22
  Provides-Extra: dev
23
+ Requires-Dist: build; extra == 'dev'
23
24
  Requires-Dist: hatchling; extra == 'dev'
24
25
  Requires-Dist: pre-commit; extra == 'dev'
25
26
  Requires-Dist: pytest-cov; extra == 'dev'
26
27
  Requires-Dist: tbump; extra == 'dev'
28
+ Requires-Dist: twine; extra == 'dev'
27
29
  Description-Content-Type: text/markdown
28
30
 
29
31
  # e2xgrader
@@ -9,7 +9,7 @@
9
9
  project = "e2xgrader"
10
10
  copyright = "2023, Tim Metzler"
11
11
  author = "Tim Metzler"
12
- release = "0.3.0-dev2"
12
+ release = "0.3.2"
13
13
  github_project_url = "https://github.com/Digiklausur/e2xgrader"
14
14
 
15
15
  # -- General configuration ---------------------------------------------------
@@ -0,0 +1,4 @@
1
+ from .apps.e2xgraderapp import E2xGraderApp
2
+
3
+ if __name__ == "__main__":
4
+ E2xGraderApp.launch_instance()
@@ -0,0 +1 @@
1
+ __version__ = "0.3.2"
@@ -19,7 +19,7 @@ from textwrap import dedent
19
19
 
20
20
  from nbgrader.exchange.default import ExchangeSubmit
21
21
  from nbgrader.utils import check_mode, get_username
22
- from traitlets import Type
22
+ from traitlets import List, Type
23
23
 
24
24
  from ..exporters import SubmissionExporter
25
25
  from ..utils.mode import E2xGraderMode, infer_e2xgrader_mode
@@ -46,6 +46,15 @@ class E2xExchangeSubmit(E2xExchange, ExchangeSubmit):
46
46
  ),
47
47
  ).tag(config=True)
48
48
 
49
+ exclude_hashcode_subfolders = List(
50
+ [".ipynb_checkpoints", ".history"],
51
+ help=dedent(
52
+ """
53
+ List of subfolders to exclude from the hash calculation.
54
+ """
55
+ ),
56
+ ).tag(config=True)
57
+
49
58
  def init_dest(self):
50
59
  if self.coursedir.course_id == "":
51
60
  self.fail("No course id specified. Re-run with --course flag.")
@@ -148,7 +157,7 @@ class E2xExchangeSubmit(E2xExchange, ExchangeSubmit):
148
157
  self.src_path,
149
158
  method="sha1",
150
159
  exclude_files=[self.timestamp_file, f"{username}_info.txt", "*.html"],
151
- exclude_subfolders=[".ipynb_checkpoints"],
160
+ exclude_subfolders=self.exclude_hashcode_subfolders,
152
161
  output_file="SHA1SUM.txt",
153
162
  )
154
163
  hashcode = truncate_hashcode(
@@ -0,0 +1,2 @@
1
+ /*! For license information please see main.js.LICENSE.txt */
2
+ define(["base/js/namespace","base/js/events","base/js/dialog","jquery","notebook/js/textcell","base/js/markdown","notebook/js/notebook","underscore","notebook/js/celltoolbar","notebook/js/cell"],((t,e,n,r,o,i,a,c,s,l)=>(()=>{var u={322:(t,e,n)=>{(()=>{var e={492:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(601),o=n.n(r),i=n(609),a=n.n(i)()(o());a.push([t.id,".celltoolbar {\n /* safari fix, we cannot use -webkit-flex on hbox\n and vbox either or all css get borked\n cf https://github.com/jupyter/nbgrader/issues/394.\n manual workaround while #370 is not released. */\n display: -webkit-flex;\n}\n\n.highlight {\n background-color: #009ee0;\n height: 2.5em;\n display: inline-block;\n}\n\n.minimized {\n height: 0.5em;\n}\n\n.exam_btn {\n display: inline-block;\n height: 95%;\n margin-top: -1px;\n /*vertical-align: middle;*/\n text-align: center;\n border: none;\n margin-left: 2px;\n}\n\n.exam_btn:hover {\n background-color: #fff;\n}\n\n#run.exam_btn {\n border: none;\n}\n\n#preview.exam_btn {\n border: none;\n}\n\n.cell_id {\n padding-left: 1em;\n color: white;\n font-weight: bold;\n font-size: 1.5em;\n}\n\n.cell_control {\n float: right;\n}\n\n#submitting {\n position: fixed;\n top: 0;\n left: 0;\n background-color: rgba(1, 1, 1, 0.1);\n width: 100%;\n height: 100%;\n}\n\n#submit_spinner {\n margin-left: 48%;\n font-size: 3em;\n margin-top: 15%;\n}\n",""]);const c=a},609:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(r)for(var c=0;c<this.length;c++){var s=this[c][0];null!=s&&(a[s]=!0)}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);r&&a[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),e.push(u))}},e}},601:t=>{"use strict";t.exports=function(t){return t[1]}},62:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var i={},a=[],c=0;c<t.length;c++){var s=t[c],l=r.base?s[0]+r.base:s[0],u=i[l]||0,f="".concat(l," ").concat(u);i[l]=u+1;var d=n(f),h={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==d)e[d].references++,e[d].updater(h);else{var p=o(h,r);r.byIndex=c,e.splice(c,0,{identifier:f,updater:p,references:1})}a.push(f)}return a}function o(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,o){var i=r(t=t||[],o=o||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var c=n(i[a]);e[c].references--}for(var s=r(t,o),l=0;l<i.length;l++){var u=n(i[l]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}i=s}}},793:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},173:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},892:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},36:t=>{"use strict";t.exports=function(t){var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},464:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},355:(t,e,n)=>{(()=>{var e={804:t=>{(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{requests:()=>i,urlJoin:()=>r});const r=(...t)=>(t=t.map(((e,n)=>(n&&(e=e.replace(/^\//,"")),n!==t.length-1&&(e=e.replace(/\/$/,"")),e)))).join("/"),o=(window.base_url,{credentials:"same-origin",headers:{"X-CSRFToken":(t=>{let e=null;if(document.cookie&&""!==document.cookie)for(let t of document.cookie.split(";"))if(t.trim().startsWith("_xsrf=")){e=decodeURIComponent(t.substring("_xsrf".length+1));break}return e})()}}),i={get:async(t,e)=>{const n={...o,method:"GET"};return void 0!==e&&(t+="?"+new URLSearchParams(e).toString()),(await fetch(t,n)).json()},post:async(t,e)=>{const n={...o,method:"POST",body:JSON.stringify(e)};return(await fetch(t,n)).json()},put:async(t,e)=>{const n={...o,method:"PUT",body:JSON.stringify(e)};return(await fetch(t,n)).json()},del:async(t,e)=>{const n={...o,method:"DELETE",body:JSON.stringify(e)};return(await fetch(t,n)).json()}};t.exports=n})()}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{cells:()=>Rt,utils:()=>t});var t={};o.r(t),o.d(t,{create_e2x_metadata:()=>u,get_e2x_cell_type:()=>d,get_e2x_field:()=>h,get_e2x_metadata:()=>f,is_e2x:()=>s,remove_e2x_metadata:()=>l,set_e2x_field:()=>p});const e=n(86);var r=o.n(e);const a=n(761);var c=o.n(a);function s(t){return t.hasOwnProperty("metadata")&&t.metadata.hasOwnProperty("extended_cell")}function l(t){s(t)&&(delete t.metadata.extended_cell,t.rendered&&(t.unrender(),t.render()))}function u(t,e){s(t)||(t.metadata.extended_cell={type:e})}function f(t){return s(t)?t.metadata.extended_cell:{}}function d(t){return h(t,"type","")}function h(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(t)&&t.metadata.extended_cell[e]||n}function p(t,e,n){s(t)&&(t.metadata.extended_cell[e]=n)}function y(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var m=function(){function t(e,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.cell=e,this.options=n,this.initialize_options()}var e,n;return e=t,(n=[{key:"initialize_options",value:function(){var t=this,e=h(this.cell,"options"),n=[];Object.keys(e).forEach((function(e){t.options.hasOwnProperty(e)||n.push(e)})),n.forEach((function(t){return delete e[t]})),Object.keys(this.options).forEach((function(n){e.hasOwnProperty(n)||(e[n]=t.options[n])})),p(this.cell,"options",e)}},{key:"get_option",value:function(t){var e=h(this.cell,"options");return e.hasOwnProperty(t)?e[t]:this.options[t].value}},{key:"set_option",value:function(t,e){console.log("Setting options",t,e);var n=h(this.cell,"options");n[t].value=e,p(this.cell,"options",n)}},{key:"render",value:function(){for(var t=this,e=c()("<div/>").addClass("e2x_options"),n=function(){var n,i=function(t){if(Array.isArray(t))return t}(n=o[r])||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),2!==i.length);a=!0);}catch(t){c=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(n)||function(t,e){if(t){if("string"==typeof t)return y(t,2);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(t,2):void 0}}(n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=i[0],s=i[1];if("checkbox"==s.type){var l=c()("<div/>"),u=c()("<input/>").attr("type",s.type);l.append(u),l.append(c()("<span/>").text(s.text)),s.value&&u.attr("checked","checked"),u.on("change",(function(){t.set_option(a,!!this.checked)})),e.append(l)}},r=0,o=Object.entries(h(this.cell,"options"));r<o.length;r++)n();return e}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var g=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};v(this,t),this.type=n,this.cell=e,u(this.cell,this.type),this.option_dict=new m(this.cell,r)}var e,n;return e=t,(n=[{key:"get_metadata",value:function(){return f(this.cell)}},{key:"render",value:function(){this.cell.render()}},{key:"render_grader_settings",value:function(){if(this.edit_mode){var t=this,e=c()(this.cell.element).find(".rendered_html");e.find(".e2x_grader_options").remove();var n=c()("<div/>").addClass("e2x_grader_options");n.append(c()("<hr/>")),n.append(this.option_dict.render()),n.append(c()("<button/>").attr("type","button").addClass("e2x_unrender").on("click",(function(){t.cell.unrender_force(),t.cell.keyboard_manager.enable()})).append("Edit cell")),e.append(n)}}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function _(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function k(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function x(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&O(t,e)}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=A(t);if(e){var o=A(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return C(this,n)}}function C(t,e){if(e&&("object"===b(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function A(t){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},A(t)}var j=function(t){x(n,t);var e=E(n);function n(t,r){var o;return _(this,n),(o=e.call(this,t,r)).choice_field="choice",o}return k(n,[{key:"set_choice",value:function(t){p(this.cell,this.choice_field,t)}},{key:"get_choices",value:function(){return h(this.cell,this.choice_field,[])}}]),n}(g),S=function(t){x(n,t);var e=E(n);function n(t){return _(this,n),e.call(this,t,"singlechoice")}return k(n,[{key:"create_radio_button",value:function(t,e,n,r){var o=$("<input>").attr("type","radio").attr("name",t).attr("value",e).on("change",r);return n&&o.attr("checked","checked"),o}},{key:"render",value:function(){this.cell.render_force();var t=$(this.cell.element).find(".rendered_html").find("ul"),e=this.get_choices(),n=this;if(t.length>0){var o=t[0],i=$("<form>").addClass("hbrs_radio"),a=$(o).find("li");e.length>0&&e[0]>=a.length&&(this.get_metadata()[this.choice_field]=[],e=this.get_choices());for(var c=0;c<a.length;c++){var s=this.create_radio_button("my_radio",c,e.indexOf(c.toString())>=0,(function(){n.set_choice(this.value),r().notebook.set_dirty(!0)}));r().keyboard_manager.register_events(s),i.append($("<div>").append(s).append("&nbsp;&nbsp;").append(a[c].childNodes))}$(o).replaceWith(i)}this.render_grader_settings()}}]),n}(j),P=function(t){x(n,t);var e=E(n);function n(t){var r;return _(this,n),(r=e.call(this,t,"multiplechoice")).choice_count_field="num_of_choices",r}return k(n,[{key:"get_number_of_choices",value:function(){return h(this.cell,this.choice_count_field,[])}},{key:"set_number_of_choices",value:function(t){p(this.cell,this.choice_count_field,t)}},{key:"add_choice",value:function(t){var e=this.get_choices();e.indexOf(t)>-1||(e.push(t),this.set_choice(e))}},{key:"remove_choice",value:function(t){var e=this.get_choices(),n=e.indexOf(t);n>-1&&e.splice(n,1),this.set_choice(e)}},{key:"create_checkbox",value:function(t,e,n){var o=this,i=$("<input>").attr("type","checkbox").attr("name",t).attr("value",e).on("change",(function(){this.checked?o.add_choice(this.value):o.remove_choice(this.value),r().notebook.set_dirty(!0)}));return n&&i.attr("checked","checked"),i}},{key:"render",value:function(){this.cell.render_force();var t=$(this.cell.element).find(".rendered_html").find("ul");if(t.length>0){var e=t[0],n=$("<form>").addClass("hbrs_checkbox"),o=$(e).find("li");this.get_number_of_choices()!=o.length&&(this.set_number_of_choices(o.length),this.get_metadata()[this.choice_field]=[]);for(var i=this.get_choices(),a=0;a<o.length;a++){var c=this.create_checkbox("my_checkbox",a,i.indexOf(a.toString())>=0);r().keyboard_manager.register_events(c);var s=$("<div>").append(c).append("&nbsp;&nbsp;").append(o[a].childNodes);n.append(s)}$(e).replaceWith(n)}this.render_grader_settings()}}]),n}(j);function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function Q(t,e){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Q(t,e)}function G(t,e){if(e&&("object"===B(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function T(t){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},T(t)}var Z=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Q(t,e)}(a,t);var e,n,r,o,i=(r=a,o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=T(r);if(o){var n=T(this).constructor;t=Reflect.construct(e,arguments,n)}else t=e.apply(this,arguments);return G(this,t)});function a(t){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),i.call(this,t,"pdf")}return e=a,(n=[{key:"render",value:function(){this.cell.unsafe_render(),this.render_grader_settings(),this.cell.keyboard_manager.disable()}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),a}(g);function L(t){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}function W(t,e){if(e&&("object"===L(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function Y(t){return Y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Y(t)}function I(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function M(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function R(t,e,n){return e&&M(t.prototype,e),n&&M(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var N=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=Y(e);if(n){var o=Y(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return W(this,t)});function o(t){var e;return I(this,o),(e=r.call(this)).ids={},e.cell=t,e.typePattern=/data:([^;]*)/,e.imagePattern=/!\[[^\(]+\]\(attachment:[^)]+\)/g,e.infoPattern=/\n### You uploaded \d+ attachments.\n\n/g,e.attachments={},e.load(),e}return R(o,[{key:"load",value:function(){var t=this;this.id=0,Object.assign(this.attachments,this.cell.attachments),Object.keys(this.attachments).forEach((function(e){t.id+=1,t.ids[e]=t.id}))}},{key:"save",value:function(){void 0!==this.attachments?(this.cell.attachments=this.attachments,console.log("Saved attachments.")):console.log("Attachments not defined."),this.postSaveHook()}},{key:"postSaveHook",value:function(){}},{key:"hasAttachment",value:function(t){return t in this.attachments}},{key:"getAttachment",value:function(t){return{id:this.ids[t],name:t,type:Object.keys(this.attachments[t])[0],data:Object.values(this.attachments[t])[0]}}},{key:"setAttachment",value:function(t,e){var n=this.typePattern.exec(e)[1],r=e.replace("data:"+n+";base64,","");this.id+=1,this.attachments[t]={},this.attachments[t][n]=r,this.ids[t]=this.id,this.notifyAll({type:"add",key:t,id:this.ids[t]}),this.save()}},{key:"removeAttachment",value:function(t){var e=this.ids[t];delete this.attachments[t],delete this.ids[t],this.notifyAll({type:"delete",key:t,id:e}),this.save()}},{key:"getAttachments",value:function(){var t=this,e=[];return Object.keys(this.attachments).forEach((function(n){e.push(t.getAttachment(n))})),e}}]),o}(function(){function t(){I(this,t),this.observers=[]}return R(t,[{key:"registerObserver",value:function(t){this.observers.push(t)}},{key:"notifyAll",value:function(t){this.observers.forEach((function(e){return e.notify(t)}))}}]),t}()),D=o(804);function F(t){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},F(t)}function U(){U=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,r){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new x(r||[]);return i._invoke=function(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=_(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(t,n,a),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var u={};function f(){}function d(){}function h(){}var p={};c(p,o,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&n.call(m,o)&&(p=m);var v=h.prototype=f.prototype=Object.create(p);function g(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function r(o,i,a,c){var s=l(t[o],t,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==F(f)&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return d.prototype=h,c(v,"constructor",h),c(h,"constructor",d),d.displayName=c(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,c(t,a,"GeneratorFunction")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},g(b.prototype),c(b.prototype,i,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(s(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(v),c(v,a,"Generator"),c(v,o,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=O,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:O(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function H(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?z(Object(n),!0).forEach((function(e){q(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function q(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function K(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function V(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function X(t,e,n,r,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(r,o)}function tt(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){X(i,r,o,a,c,"next",t)}function c(t){X(i,r,o,a,c,"throw",t)}a(void 0)}))}}var et=!1,nt={};function rt(){return ot.apply(this,arguments)}function ot(){return(ot=tt(U().mark((function t(){return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(et){t.next=12;break}return t.prev=1,t.next=4,D.requests.get((0,D.urlJoin)(r().notebook.base_url,"e2x","diagrams","api"));case 4:nt=t.sent,et=!0,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.error("Error fetching DiagramEditor base options:",t.t0),et=!0;case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))).apply(this,arguments)}const it=function(){function t(e,n,r,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};K(this,t),this.config=null,this.ui="min",this.xml=null,this.format="xml",this.libraries=!0,this.frameStyle="position:absolute;bottom:0;border:0;width:100%;height:100%;";var s=H(H({},nt),c);this.config=e||this.config,this.ui=n||this.ui,this.done=r||function(){},this.initialized=o||function(){},this.urlParams=i,this.cell=a,this.handleMessageEvent=this.handleMessageEvent.bind(this),this.frame=null,this.startElement=null,this.format="xml",this.xml=null,this.drawDomain=s.drawDomain||"https://embed.diagrams.net/",this.origin=s.drawOrigin||"https://embed.diagrams.net/",this.frameStyle="position:absolute;bottom:0;border:0;width:100%;height:100%;",this.libs=s.libs||[]}var e,n,o,i;return e=t,n=[{key:"handleMessageEvent",value:function(t){var e=new URL(this.origin),n=new URL(t.origin);if(n.href!==e.href&&console.log("Message should come from ".concat(e.href," but came from ").concat(n.href)),null!=this.frame&&t.source==this.frame.contentWindow&&t.data.length>0)try{var r=JSON.parse(t.data);null!=r&&this.handleMessage(r)}catch(t){console.error(t)}}},{key:"editElement",value:function(t){var e=this.getElementData(t);this.startElement=t;var n=this.format;return"data:image/png;"===e.substring(0,15)?n="xmlpng":"data:image/svg+xml;"!==e.substring(0,19)&&"svg"!=t.nodeName.toLowerCase()||(n="xmlsvg"),this.startEditing(e,n),this}},{key:"getElementData",value:function(t){var e,n=t.nodeName.toLowerCase();return e="svg"==n?"content":"img"==n?"src":"data",t.getAttribute(e)}},{key:"setElementData",value:function(t,e){var n=t.nodeName.toLowerCase();return"svg"==n?t.outerHTML=atob(e.substring(e.indexOf(",")+1)):t.setAttribute("img"==n?"src":"data",e),t}},{key:"startEditing",value:function(t,e,n){null==this.frame&&(window.addEventListener("message",this.handleMessageEvent),this.format=e||this.format,this.title=n||this.title,this.data=t,this.frame=this.createFrame(this.getFrameUrl(),this.getFrameStyle()),document.body.appendChild(this.frame),this.setWaiting(!0))}},{key:"setWaiting",value:function(t){if(null!=this.startElement){var e=this.startElement,n=e.nodeName.toLowerCase();"svg"!=n&&"object"!=n||(e=e.parentNode),null!=e&&(t?(this.frame.style.pointerEvents="none",this.previousCursor=e.style.cursor,e.style.cursor="wait"):(e.style.cursor=this.previousCursor,this.frame.style.pointerEvents=""))}}},{key:"setActive",value:function(t){t?(this.previousOverflow=document.body.style.overflow,document.body.style.overflow="hidden"):document.body.style.overflow=this.previousOverflow}},{key:"stopEditing",value:function(){null!=this.frame&&(window.removeEventListener("message",this.handleMessageEvent),document.body.removeChild(this.frame),this.setActive(!1),this.frame=null)}},{key:"postMessage",value:function(t){null!=this.frame&&this.frame.contentWindow.postMessage(JSON.stringify(t),this.origin)}},{key:"getData",value:function(){return this.data}},{key:"getTitle",value:function(){return this.title}},{key:"getFrameStyle",value:function(){var t=document.getElementById("header");return this.frameStyle+";left:"+document.body.scrollLeft+"px;top:"+document.body.scrollTop+t.offsetHeight+"px;"}},{key:"getFrameUrl",value:function(){var t=new URL(this.drawDomain);t.searchParams.append("proto","json"),t.searchParams.append("spin","1"),null!=this.ui&&t.searchParams.append("ui",this.ui),null!=this.libraries&&t.searchParams.append("libraries","1"),null!=this.config&&t.searchParams.append("configure","1"),this.libs.length>0&&t.searchParams.append("libs",this.libs.join(";"));var e=t.href;return null!=this.urlParams&&(e+="&"+this.urlParams.join("&")),console.log("The url",e),e}},{key:"createFrame",value:function(t,e){var n=document.createElement("iframe");return n.setAttribute("frameborder","0"),n.setAttribute("style",e),n.setAttribute("src",t),n}},{key:"setStatus",value:function(t,e){this.postMessage({action:"status",messageKey:t,modified:e})}},{key:"handleMessage",value:function(t){"configure"==t.event?this.configureEditor():"init"==t.event?this.initializeEditor():"autosave"==t.event?(this.save(t.xml,!0,this.startElement),r().notebook.set_dirty(!0)):"export"==t.event?(this.cell.model.setAttachment("diagram.png",t.data),this.setElementData(this.startElement,t.data),this.stopEditing(),this.xml=null,r().notebook.set_dirty(!0)):"save"==t.event&&(this.save(t.xml,!1,this.startElement),r().notebook.set_dirty(!0),this.xml=t.xml,t.exit?t.event="exit":this.setStatus("allChangesSaved",!1)),"exit"==t.event&&this.handleExitMessage(t)}},{key:"handleExitMessage",value:function(t){"xml"!=this.format?null!=this.xml?this.postMessage({action:"export",format:this.format,xml:this.xml,spinKey:"export"}):this.stopEditing(t):((null==t.modified||t.modified)&&this.save(t.xml,!1,this.startElement),this.stopEditing(t))}},{key:"configureEditor",value:function(){this.postMessage({action:"configure",config:this.config})}},{key:"initializeEditor",value:function(){this.postMessage({action:"load",autosave:1,saveAndExit:"1",modified:"unsavedChanges",xml:this.getData(),title:this.getTitle()}),this.setWaiting(!1),this.setActive(!0),this.initialized()}},{key:"save",value:function(t,e,n){this.done(t,e,n)}}],o=[{key:"editElement",value:function(e,n,r,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};if(!n.diagramEditorStarting)return n.diagramEditorStarting=!0,new t(r,o,i,(function(){delete n.diagramEditorStarting}),a,e,c).editElement(n)}},{key:"editDiagram",value:(i=tt(U().mark((function t(e,n,r,o,i,a){var c,s=this,l=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=l.length>6&&void 0!==l[6]?l[6]:{},rt().then((function(){return s.editElement(e,n,r,o,i,a,c)}));case 2:case"end":return t.stop()}}),t)}))),function(t,e,n,r,o,a){return i.apply(this,arguments)})}],n&&V(e.prototype,n),o&&V(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();function at(t){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},at(t)}function ct(){ct=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,r){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new x(r||[]);return i._invoke=function(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=_(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(t,n,a),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var u={};function f(){}function d(){}function h(){}var p={};c(p,o,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&n.call(m,o)&&(p=m);var v=h.prototype=f.prototype=Object.create(p);function g(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function r(o,i,a,c){var s=l(t[o],t,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==at(f)&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return d.prototype=h,c(v,"constructor",h),c(h,"constructor",d),d.displayName=c(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,c(t,a,"GeneratorFunction")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},g(b.prototype),c(b.prototype,i,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(s(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(v),c(v,a,"Generator"),c(v,o,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=O,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:O(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function st(t,e,n,r,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(r,o)}function lt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ut(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function ft(t,e,n){return e&&ut(t.prototype,e),n&&ut(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function dt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ht(t,e)}function ht(t,e){return ht=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ht(t,e)}function pt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=mt(t);if(e){var o=mt(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return yt(this,n)}}function yt(t,e){if(e&&("object"===at(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function mt(t){return mt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},mt(t)}var vt=function(t){dt(n,t);var e=pt(n);function n(){return lt(this,n),e.apply(this,arguments)}return ft(n,[{key:"postSaveHook",value:function(){this.cell.unrender_force(),this.cell.render()}}]),n}(N),gt=function(t){dt(n,t);var e=pt(n);function n(t){var r;return lt(this,n),(r=e.call(this,t,"diagram",{replace_diagram:{type:"checkbox",text:"Replace this diagram with an empty diagram in the student version",value:!0}})).model=new vt(t),r.initialize(),r}return ft(n,[{key:"initialize",value:function(){this.model.load(),this.model.hasAttachment("diagram.png")||this.model.setAttachment("diagram.png","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAABHNCSVQICAgIfAhkiAAAAylJREFUeJzt1DEBACAMwDDAv+chY0cTBb16Z2YOQNDbDgDYYoBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZH97eBdx+cY1yAAAAAElFTkSuQmCC")}},{key:"render",value:function(){var t=this,e="![diagram](attachment:diagram.png)";-1==this.cell.get_text().indexOf(e)&&this.cell.set_text([this.cell.get_text(),"\x3c!-- Display the diagram attachment --\x3e",e].join("\n")),this.cell.render_force();var n=$(this.cell.element).find(".rendered_html"),r=n.find("img");r.addClass("diagram-img"),$(n).find(".btn-diagram").remove();var o=$("<button/>").append("Edit Diagram").addClass("btn-e2x btn-diagram");o.on("click",function(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){st(i,r,o,a,c,"next",t)}function c(t){st(i,r,o,a,c,"throw",t)}a(void 0)}))}}(ct().mark((function e(){return ct().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,it.editDiagram(t,r[0]);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.error("Failed to load DiagramEditor:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})))),n.append(r),n.append(o),this.render_grader_settings()}}]),n}(g);const bt=n(856);var _t=o.n(bt);function wt(t){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wt(t)}function kt(t,e){return kt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},kt(t,e)}function xt(t,e){if(e&&("object"===wt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return Ot(t)}function Ot(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Et(t){return Et=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Et(t)}function Ct(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function At(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function jt(t,e,n){return e&&At(t.prototype,e),n&&At(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var St=function(){function t(){Ct(this,t)}return jt(t,[{key:"notify",value:function(t){}}]),t}(),Pt=function(){function t(e){Ct(this,t),this.stream=void 0,this.model=e}return jt(t,[{key:"open",value:function(){var t=this;navigator.mediaDevices.getUserMedia({video:!0}).then((function(e){t.stream=e,t.openDialog()})).catch((function(t){alert("Could not access webcam!\n"+t)}))}},{key:"openDialog",value:function(){var t=this,e=c()("<div/>").attr("id","webcamDiv"),n=c()("<video/>");e.append(n);var r=c()("<div/>").attr("id","videoControls");r.append(c()("<button/>").attr("id","takePhoto").on("click",(function(){n[0].paused?(n[0].play(),c()("#saveImage").attr("disabled",!0),c()("#takePhoto span").text("Take Photo")):(n[0].pause(),c()("#saveImage").removeAttr("disabled"),c()("#takePhoto span").text("Retry"))})).append(c()("<span/>").text("Take Photo"))),e.append(r),_t().modal({keyboard_manager:Jupyter.keyboard_manager,title:"Take Photo",open:function(){c()("#webcamDiv").bind("destroyed",(function(){t.close()}))},body:e,buttons:{"Save Image":{id:"saveImage",click:function(){var e=c()("<canvas/>").attr("width",n[0].videoWidth).attr("height",n[0].videoHeight);e[0].getContext("2d").drawImage(n[0],0,0,n[0].videoWidth,n[0].videoHeight);var r=e[0].toDataURL("image/png"),o=t.model.getName("webcam","png");t.model.setAttachment(o,r)}},Cancel:{}}}),navigator.getUserMedia||navigator.mozGetUserMedia?(n[0].srcObject=t.stream,n[0].play()):navigator.webkitGetUserMedia&&(n[0].src=window.webkitURL.createObjectURL(stream),n[0].play())}},{key:"close",value:function(){void 0!==this.stream&&this.stream.getTracks().forEach((function(t){return t.stop()}))}}]),t}(),Bt=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&kt(t,e)}(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=Et(e);if(n){var o=Et(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return xt(this,t)});function o(t,e){var n;return Ct(this,o),(n=r.call(this)).cell=t,n.model=e,n.element=c()("<div/>").addClass("gallery-view"),e.registerObserver(Ot(n)),n}return jt(o,[{key:"notify",value:function(t){"delete"==t.type?this.element.find(c()("#"+t.id)).remove():"add"==t.type&&this.addThumbnail(this.model.getAttachment(t.key))}},{key:"addThumbnail",value:function(t){var e=this,n=c()("<div/>").addClass("gallery-item").attr("id",t.id),r=c()("<div/>").addClass("remove-file-modal").append(c()("<p/>").append("Are you sure you want to delete the file "+t.name+" ?")),o=c()("<i/>").addClass("fa fa-trash");o.on("click",(function(){_t().modal({body:r,buttons:{Delete:{class:"button-delete",click:function(){return e.model.removeAttachment(t.name)}},Cancel:{}}})})),n.append(o);var i=c()("<i/>").addClass("fa fa-search-plus").on("click",(function(){var e=document.createElement("a");e.href="data:"+t.type+";base64,"+t.data,e.target="_blank",e.download=t.name,document.body.appendChild(e),e.click(),document.body.removeChild(e)}));n.append(i);var a=c()("<div/>").addClass("thumbnail"),s=c()("<div/>").addClass("caption");if(s.append(c()("<span/>").text(t.name)),t.type.startsWith("image")){var l=new Image;l.src="data:"+t.type+";base64,"+t.data,a.append(l)}n.append(a).append(s),this.element.append(n)}},{key:"getControls",value:function(){var t=this,e=c()("<div/>").addClass("attachment-controls");e.append(c()("<button/>").addClass("btn-e2x").append(c()("<i/>").addClass("fa fa-camera")).append("Webcam").on("click",(function(){return new Pt(t.model).open()})));var n=c()("<button/>").addClass("btn-e2x").addClass("upload-btn").append(c()("<i/>").addClass("fa fa-upload")).append("Upload").on("click",(function(){return c()("#upload-attachments")[0].click()}));return n.append(c()("<input/>").attr("id","upload-attachments").attr("type","file").attr("accept","application/pdf,image/*").attr("multiple","multiple").on("change",(function(){return t.uploadFiles()}))),e.append(n),e}},{key:"uploadFiles",value:function(){var t=c()("#upload-attachments")[0],e=this;Array.prototype.forEach.call(t.files,(function(t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){var r=n.result,o=t.name;if(e.model.hasAttachment(o)){var i=o.split(".")[0],a=o.replace(i+".",""),c=e.model.getName(i,a);confirm("A file with the name "+o+" already exists!\nDo you want to rename it to "+c+"?")&&e.model.setAttachment(c,r)}else e.model.setAttachment(o,r)},n.onerror=function(){console.log(n.error)}}))}},{key:"open",value:function(){var t=c()("<div/>").addClass("attachment-editor");this.element=c()("<div/>").addClass("gallery-view"),t.append(this.element),t.append(this.getControls());var e=this;this.model.getAttachments().forEach((function(t){return e.addThumbnail(t)})),_t().modal({keyboard_manager:Jupyter.keyboard_manager,title:"Attachment Editor",body:t})}}]),o}(St);function Qt(t){return Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qt(t)}function Gt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Tt(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function Zt(t,e,n){return e&&Tt(t.prototype,e),n&&Tt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Lt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Jt(t,e)}function Jt(t,e){return Jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Jt(t,e)}function Wt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=It(t);if(e){var o=It(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Yt(this,n)}}function Yt(t,e){if(e&&("object"===Qt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function It(t){return It=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},It(t)}var Mt=function(t){Lt(n,t);var e=Wt(n);function n(){return Gt(this,n),e.apply(this,arguments)}return Zt(n,[{key:"postSaveHook",value:function(){var t=this.cell.get_text().replace(this.imagePattern,"");t=t.replace(this.infoPattern,""),t+="\n### You uploaded "+Object.keys(this.attachments).length+" attachments.\n\n",this.cell.set_text(t),this.cell.unrender_force(),this.cell.render()}},{key:"getName",value:function(t,e){for(var n=t+"."+e,r=0;n in this.attachments;)n=t+"_"+(r+=1)+"."+e;return n}}]),n}(N),Rt={multiplechoice:P,singlechoice:S,pdf:Z,attachments:function(t){Lt(n,t);var e=Wt(n);function n(t){var r;return Gt(this,n),(r=e.call(this,t,"attachments")).model=new Mt(t),r.view=new Bt(t,r.model),r}return Zt(n,[{key:"get_attachment_button",value:function(){var t=this;return c()("<button>").attr("type","button").addClass("edit_attachments btn-e2x").on("click",(function(){t.view.open()})).append("Add Files / Images")}},{key:"render",value:function(){this.cell.render_force();var t=c()(this.cell.element).find(".rendered_html");t.find(".edit_attachments").length<1&&t.append(this.get_attachment_button()),this.render_grader_settings()}}]),n}(g),diagram:gt}})(),t.exports=i})()},426:(t,e,n)=>{(()=>{var e={804:t=>{(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{requests:()=>i,urlJoin:()=>r});const r=(...t)=>(t=t.map(((e,n)=>(n&&(e=e.replace(/^\//,"")),n!==t.length-1&&(e=e.replace(/\/$/,"")),e)))).join("/"),o=(window.base_url,{credentials:"same-origin",headers:{"X-CSRFToken":(t=>{let e=null;if(document.cookie&&""!==document.cookie)for(let t of document.cookie.split(";"))if(t.trim().startsWith("_xsrf=")){e=decodeURIComponent(t.substring("_xsrf".length+1));break}return e})()}}),i={get:async(t,e)=>{const n={...o,method:"GET"};return void 0!==e&&(t+="?"+new URLSearchParams(e).toString()),(await fetch(t,n)).json()},post:async(t,e)=>{const n={...o,method:"POST",body:JSON.stringify(e)};return(await fetch(t,n)).json()},put:async(t,e)=>{const n={...o,method:"PUT",body:JSON.stringify(e)};return(await fetch(t,n)).json()},del:async(t,e)=>{const n={...o,method:"DELETE",body:JSON.stringify(e)};return(await fetch(t,n)).json()}};t.exports=n})()}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{shortcuts:()=>e,username:()=>r,utils:()=>t});var t={};o.r(t),o.d(t,{create_nbgrader_metadata:()=>f,get_grade_id:()=>A,get_nbgrader_field:()=>d,get_points:()=>E,get_schema_version:()=>y,is_description:()=>B,is_empty:()=>T,is_grade:()=>b,is_invalid:()=>G,is_locked:()=>x,is_nbgrader:()=>l,is_solution:()=>v,is_task:()=>w,is_test:()=>S,nbgrader_schema_version:()=>a,randomString:()=>c,remove_nbgrader_field:()=>p,remove_nbgrader_metadata:()=>u,set_grade:()=>_,set_grade_id:()=>j,set_locked:()=>O,set_nbgrader_field:()=>h,set_points:()=>C,set_schema_version:()=>m,set_solution:()=>g,set_task:()=>k,to_description:()=>Q,to_float:()=>s,to_test:()=>P});var e={};o.r(e),o.d(e,{add_shortcut:()=>I,disable_add_cell_on_execute:()=>M,remove_shortcuts:()=>Y});var r={};o.r(r),o.d(r,{add_username:()=>N});const a=3;function c(t){let e,n="",r="abcdef0123456789";for(e=0;e<t;e++)n+=r[Math.floor(Math.random()*r.length)];return n}function s(t){return void 0===t||""===t?0:parseFloat(t)}function l(t){return t.metadata.hasOwnProperty("nbgrader")}function u(t){l(t)&&(delete t.metadata.nbgrader,t.rendered&&(t.unrender(),t.render()))}function f(t){l(t)||(t.metadata.nbgrader={})}function d(t,e,n={}){return l(t)&&t.metadata.nbgrader[e]||n}function h(t,e,n){l(t)||(t.metadata.nbgrader={}),t.metadata.nbgrader[e]=n}function p(t,e){l(t)&&t.metadata.nbgrader.hasOwnProperty(e)&&delete t.metadata.nbgrader[e]}function y(t){if(l(t))return void 0===d(t,"schema_version")?0:d(t,"schema_version")}function m(t){l(t)||f(t),h(t,"schema_version",a)}function v(t){return d(t,"solution",!1)}function g(t,e){h(t,"solution",e)}function b(t){return d(t,"grade",!1)}function _(t,e){h(t,"grade",e)}function w(t){return d(t,"task",!1)}function k(t,e){h(t,"task",e)}function x(t){return d(t,"locked",!1)}function O(t,e){h(t,"locked",e)}function E(t){return s(d(t,"points",0))}function C(t,e){h(t,"points",Math.max(0,s(e)))}function A(t){return d(t,"grade_id","cell-"+c(16))}function j(t,e){h(t,"grade_id",e)}function S(t){return b(t)&&x(t)&&!v(t)}function P(t){remove_metadata(t),m(t),g(t,!1),_(t,!0),O(t,!0)}function B(t){return x(t)&&!b(t)&&!v(t)}function Q(t){remove_metadata(t),m(t),g(t,!1),_(t,!1),O(t,!0)}function G(t){return!(w(t)||v(t)&&b(t)||(!v(t)||"code"===t.cell_type)&&(!b(t)||"code"===t.cell_type))}function T(t){return 0==t.get_text().length}const Z=n(86);var L=o.n(Z);const J=n(851);function W(t){if("command"===t)return L().keyboard_manager.command_shortcuts;if("edit"===t)return L().keyboard_manager.edit_shortcuts;throw new Error("Mode needs to be either 'command' or 'edit'")}function Y(t,...e){const n=W(t);for(const r of e)try{n.remove_shortcut(r)}catch(e){console.log("Error removing shortcut",r,"from",t,"mode:",e.message)}}function I(t,e,n,r,o="zz"){W(t).add_shortcut(e,{help:r,help_index:o,handler:n})}function M(){J.Notebook.prototype.execute_cell_and_select_below_without_insert=function(){let t,e=this.get_selected_cells_indices();if(e.length>1)this.execute_cells(e),t=Math.max(...e);else{let e=this.get_selected_cell();t=this.find_cell_index(e),e.execute()}t=Math.min(t+1,this.ncells()-1),this.select(t),this.focus_cell()};const t=["alt-enter","shift-enter"];Y("edit",...t),Y("command",...t);const e="run cell",n=function(t){return L().notebook.execute_cell_and_select_below_without_insert(),!1};for(const r of t)I("edit",r,n,e),I("command",r,n,e)}var R=o(804);function N(){const t=L().notebook?L().notebook.base_url:L().notebook_list.base_url;R.requests.get((0,R.urlJoin)(t,"nbgrader_username")).then((t=>{const e=document.createElement("span");e.id="username_span",e.textContent=t.username,e.style.fontSize="1.5em";const n=document.getElementById("login_widget");n.parentNode.insertBefore(e,n)}))}})(),t.exports=i})()},856:t=>{"use strict";t.exports=n(566)},86:t=>{"use strict";t.exports=n(527)},761:t=>{"use strict";t.exports=n(404)},851:t=>{"use strict";t.exports=n(140)}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={id:t,exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nc=void 0;var i={};(()=>{"use strict";o.r(i),o.d(i,{AssignmentViewToolbar:()=>S});const t=n(75);var e=o.n(t),r=o(761),a=o.n(r),c=o(86),s=o.n(c);const l=n(290);var u=o.n(l);const f=n(600);var d=o(426),h=o(355),p=o(62),y=o.n(p),m=o(36),v=o.n(m),g=o(793),b=o.n(g),_=o(892),w=o.n(_),k=o(173),x=o.n(k),O=o(464),E=o.n(O),C=o(492),A={};function j(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}A.styleTagTransform=E(),A.setAttributes=w(),A.insert=b().bind(null,"head"),A.domAPI=v(),A.insertStyleElement=x(),y()(C.Z,A),C.Z&&C.Z.locals&&C.Z.locals;var S=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.highlight="highlight",this.minimized="minimized",this.preset_name="Assignment View",this.initialize_events(),this.register()}var n,r;return n=t,(r=[{key:"register",value:function(){f.CellToolbar._presets.hasOwnProperty(this.preset_name)||(f.CellToolbar.register_callback("assignment_view.create_header",e().bind(this.create_header,this)),f.CellToolbar.register_preset(this.preset_name,["assignment_view.create_header"],s().notebook))}},{key:"activate",value:function(){f.CellToolbar.activate_preset(this.preset_name),s().CellToolbar.global_show()}},{key:"initialize_events",value:function(){var t=this;u().on("preset_activated.CellToolbar",(function(e,n){if(n.name!=t.preset_name){var r,o=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return j(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?j(t,e):void 0}}(t))){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==n.return||n.return()}finally{if(c)throw i}}}}(s().notebook.get_cells());try{for(o.s();!(r=o.n()).done;){var i=r.value;t.remove_classes(i)}}catch(t){o.e(t)}finally{o.f()}}}))}},{key:"add_highlight",value:function(t){void 0!==t.celltoolbar&&(t.celltoolbar.inner_element.hasClass(this.highlight)||t.celltoolbar.inner_element.addClass(this.highlight))}},{key:"add_hidden",value:function(t){void 0!==t.celltoolbar&&(t.celltoolbar.inner_element.hasClass(this.minimized)||t.celltoolbar.inner_element.addClass(this.minimized))}},{key:"remove_classes",value:function(t){null!==t.celltoolbar&&void 0!==t.celltoolbar&&(t.celltoolbar.inner_element.hasClass(this.highlight)?t.celltoolbar.inner_element.removeClass(this.highlight):t.celltoolbar.inner_element.hasClass(this.minimized)&&t.celltoolbar.inner_element.removeClass(this.minimized))}},{key:"create_button",value:function(t,e,n){var r=a()("<button/>").attr("type","button").attr("id",e).addClass("exam_btn").text(t);return r.on("click",n),r}},{key:"create_header",value:function(t,e,n){if(null===e.cell_type){var r=this;setTimeout((function(){r.create_header(t,e,n)}),100)}else{if(!d.utils.is_solution(e))return this.remove_classes(e),void this.add_hidden(e);if(this.add_highlight(e),h.utils.is_e2x(e))return;if("code"===e.cell_type){var o=this.create_button("Run","run",(function(){e.execute()}));a()(t).append(a()("<span/>").append(o).addClass("cell_control"))}else if("markdown"===e.cell_type){var i=this.create_button("Edit","edit",(function(){e.events.trigger("select.Cell",{cell:e}),s().notebook.edit_mode(),n.rebuild()})),c=this.create_button("Preview","preview",(function(){e.execute(),n.rebuild()}));a()(t).append(a()("<span/>").append(i).append(c).addClass("cell_control"))}}}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(n.prototype,r),Object.defineProperty(n,"prototype",{writable:!1}),t}()})(),t.exports=i})()},761:(t,e,n)=>{(()=>{var e={164:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(601),o=n.n(r),i=n(609),a=n.n(i)()(o());a.push([t.id,".hbrs_radio {\n padding-top: 2em;\n padding-left: 0.5em;\n}\n\n.hbrs_checkbox {\n padding-top: 2em;\n padding-left: 0.5em;\n}\n\n.hbrs_points {\n width: 5em;\n margin-left: 1em;\n margin-right: 0.5em;\n}\n\n.hbrs_unrender {\n margin-top: 1em;\n margin-left: 0.5em;\n}\n\n.gallery-view {\n min-height: 15em;\n min-width: 100%;\n overflow-y: scroll;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(10em, 1fr));\n grid-gap: 1em;\n padding-right: 0.5em;\n}\n\n#upload-attachments {\n display: none;\n}\n\n.gallery-item {\n position: relative;\n background-color: #eee;\n border: 1px solid black;\n height: 14em;\n text-align: center;\n}\n\n.caption {\n position: absolute;\n padding-top: 1em;\n top: 10em;\n min-height: 4em;\n width: 100%;\n background-color: #bbb;\n word-wrap: break-word;\n}\n\n.thumbnail {\n height: 10em;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.rendered_html > .edit_attachments {\n margin-top: 2em;\n}\n\n.thumbnail img {\n max-height: 10em;\n max-width: 100%;\n}\n\n.gallery-item .fa-trash {\n position: absolute;\n right: 0.5em;\n top: 0.5em;\n color: #a00;\n}\n\n.gallery-item .fa-search-plus {\n position: absolute;\n right: 2em;\n top: 0.5em;\n color: #555;\n}\n\n.button-delete {\n background: #a00;\n color: #ddd;\n}\n\n.attachment-controls > button > i {\n padding-right: 1em;\n}\n\niframe {\n z-index: 5000;\n}\n",""]);const c=a},609:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,o,i){"string"==typeof t&&(t=[[null,t,void 0]]);var a={};if(r)for(var c=0;c<this.length;c++){var s=this[c][0];null!=s&&(a[s]=!0)}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);r&&a[u[0]]||(void 0!==i&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=i),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),o&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=o):u[4]="".concat(o)),e.push(u))}},e}},601:t=>{"use strict";t.exports=function(t){return t[1]}},62:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var i={},a=[],c=0;c<t.length;c++){var s=t[c],l=r.base?s[0]+r.base:s[0],u=i[l]||0,f="".concat(l," ").concat(u);i[l]=u+1;var d=n(f),h={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==d)e[d].references++,e[d].updater(h);else{var p=o(h,r);r.byIndex=c,e.splice(c,0,{identifier:f,updater:p,references:1})}a.push(f)}return a}function o(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,o){var i=r(t=t||[],o=o||{});return function(t){t=t||[];for(var a=0;a<i.length;a++){var c=n(i[a]);e[c].references--}for(var s=r(t,o),l=0;l<i.length;l++){var u=n(i[l]);0===e[u].references&&(e[u].updater(),e.splice(u,1))}i=s}}},793:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},173:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},892:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},36:t=>{"use strict";t.exports=function(t){var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var i=n.sourceMap;i&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},464:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},355:(t,e,n)=>{(()=>{var e={804:t=>{(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{requests:()=>i,urlJoin:()=>r});const r=(...t)=>(t=t.map(((e,n)=>(n&&(e=e.replace(/^\//,"")),n!==t.length-1&&(e=e.replace(/\/$/,"")),e)))).join("/"),o=(window.base_url,{credentials:"same-origin",headers:{"X-CSRFToken":(t=>{let e=null;if(document.cookie&&""!==document.cookie)for(let t of document.cookie.split(";"))if(t.trim().startsWith("_xsrf=")){e=decodeURIComponent(t.substring("_xsrf".length+1));break}return e})()}}),i={get:async(t,e)=>{const n={...o,method:"GET"};return void 0!==e&&(t+="?"+new URLSearchParams(e).toString()),(await fetch(t,n)).json()},post:async(t,e)=>{const n={...o,method:"POST",body:JSON.stringify(e)};return(await fetch(t,n)).json()},put:async(t,e)=>{const n={...o,method:"PUT",body:JSON.stringify(e)};return(await fetch(t,n)).json()},del:async(t,e)=>{const n={...o,method:"DELETE",body:JSON.stringify(e)};return(await fetch(t,n)).json()}};t.exports=n})()}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{cells:()=>Rt,utils:()=>t});var t={};o.r(t),o.d(t,{create_e2x_metadata:()=>u,get_e2x_cell_type:()=>d,get_e2x_field:()=>h,get_e2x_metadata:()=>f,is_e2x:()=>s,remove_e2x_metadata:()=>l,set_e2x_field:()=>p});const e=n(86);var r=o.n(e);const a=n(761);var c=o.n(a);function s(t){return t.hasOwnProperty("metadata")&&t.metadata.hasOwnProperty("extended_cell")}function l(t){s(t)&&(delete t.metadata.extended_cell,t.rendered&&(t.unrender(),t.render()))}function u(t,e){s(t)||(t.metadata.extended_cell={type:e})}function f(t){return s(t)?t.metadata.extended_cell:{}}function d(t){return h(t,"type","")}function h(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return s(t)&&t.metadata.extended_cell[e]||n}function p(t,e,n){s(t)&&(t.metadata.extended_cell[e]=n)}function y(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var m=function(){function t(e,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.cell=e,this.options=n,this.initialize_options()}var e,n;return e=t,(n=[{key:"initialize_options",value:function(){var t=this,e=h(this.cell,"options"),n=[];Object.keys(e).forEach((function(e){t.options.hasOwnProperty(e)||n.push(e)})),n.forEach((function(t){return delete e[t]})),Object.keys(this.options).forEach((function(n){e.hasOwnProperty(n)||(e[n]=t.options[n])})),p(this.cell,"options",e)}},{key:"get_option",value:function(t){var e=h(this.cell,"options");return e.hasOwnProperty(t)?e[t]:this.options[t].value}},{key:"set_option",value:function(t,e){console.log("Setting options",t,e);var n=h(this.cell,"options");n[t].value=e,p(this.cell,"options",n)}},{key:"render",value:function(){for(var t=this,e=c()("<div/>").addClass("e2x_options"),n=function(){var n,i=function(t){if(Array.isArray(t))return t}(n=o[r])||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(i.push(r.value),2!==i.length);a=!0);}catch(t){c=!0,o=t}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(n)||function(t,e){if(t){if("string"==typeof t)return y(t,2);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y(t,2):void 0}}(n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),a=i[0],s=i[1];if("checkbox"==s.type){var l=c()("<div/>"),u=c()("<input/>").attr("type",s.type);l.append(u),l.append(c()("<span/>").text(s.text)),s.value&&u.attr("checked","checked"),u.on("change",(function(){t.set_option(a,!!this.checked)})),e.append(l)}},r=0,o=Object.entries(h(this.cell,"options"));r<o.length;r++)n();return e}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var g=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};v(this,t),this.type=n,this.cell=e,u(this.cell,this.type),this.option_dict=new m(this.cell,r)}var e,n;return e=t,(n=[{key:"get_metadata",value:function(){return f(this.cell)}},{key:"render",value:function(){this.cell.render()}},{key:"render_grader_settings",value:function(){if(this.edit_mode){var t=this,e=c()(this.cell.element).find(".rendered_html");e.find(".e2x_grader_options").remove();var n=c()("<div/>").addClass("e2x_grader_options");n.append(c()("<hr/>")),n.append(this.option_dict.render()),n.append(c()("<button/>").attr("type","button").addClass("e2x_unrender").on("click",(function(){t.cell.unrender_force(),t.cell.keyboard_manager.enable()})).append("Edit cell")),e.append(n)}}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),t}();function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function _(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function w(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function k(t,e,n){return e&&w(t.prototype,e),n&&w(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function x(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&O(t,e)}function O(t,e){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},O(t,e)}function E(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=A(t);if(e){var o=A(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return C(this,n)}}function C(t,e){if(e&&("object"===b(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function A(t){return A=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},A(t)}var j=function(t){x(n,t);var e=E(n);function n(t,r){var o;return _(this,n),(o=e.call(this,t,r)).choice_field="choice",o}return k(n,[{key:"set_choice",value:function(t){p(this.cell,this.choice_field,t)}},{key:"get_choices",value:function(){return h(this.cell,this.choice_field,[])}}]),n}(g),S=function(t){x(n,t);var e=E(n);function n(t){return _(this,n),e.call(this,t,"singlechoice")}return k(n,[{key:"create_radio_button",value:function(t,e,n,r){var o=$("<input>").attr("type","radio").attr("name",t).attr("value",e).on("change",r);return n&&o.attr("checked","checked"),o}},{key:"render",value:function(){this.cell.render_force();var t=$(this.cell.element).find(".rendered_html").find("ul"),e=this.get_choices(),n=this;if(t.length>0){var o=t[0],i=$("<form>").addClass("hbrs_radio"),a=$(o).find("li");e.length>0&&e[0]>=a.length&&(this.get_metadata()[this.choice_field]=[],e=this.get_choices());for(var c=0;c<a.length;c++){var s=this.create_radio_button("my_radio",c,e.indexOf(c.toString())>=0,(function(){n.set_choice(this.value),r().notebook.set_dirty(!0)}));r().keyboard_manager.register_events(s),i.append($("<div>").append(s).append("&nbsp;&nbsp;").append(a[c].childNodes))}$(o).replaceWith(i)}this.render_grader_settings()}}]),n}(j),P=function(t){x(n,t);var e=E(n);function n(t){var r;return _(this,n),(r=e.call(this,t,"multiplechoice")).choice_count_field="num_of_choices",r}return k(n,[{key:"get_number_of_choices",value:function(){return h(this.cell,this.choice_count_field,[])}},{key:"set_number_of_choices",value:function(t){p(this.cell,this.choice_count_field,t)}},{key:"add_choice",value:function(t){var e=this.get_choices();e.indexOf(t)>-1||(e.push(t),this.set_choice(e))}},{key:"remove_choice",value:function(t){var e=this.get_choices(),n=e.indexOf(t);n>-1&&e.splice(n,1),this.set_choice(e)}},{key:"create_checkbox",value:function(t,e,n){var o=this,i=$("<input>").attr("type","checkbox").attr("name",t).attr("value",e).on("change",(function(){this.checked?o.add_choice(this.value):o.remove_choice(this.value),r().notebook.set_dirty(!0)}));return n&&i.attr("checked","checked"),i}},{key:"render",value:function(){this.cell.render_force();var t=$(this.cell.element).find(".rendered_html").find("ul");if(t.length>0){var e=t[0],n=$("<form>").addClass("hbrs_checkbox"),o=$(e).find("li");this.get_number_of_choices()!=o.length&&(this.set_number_of_choices(o.length),this.get_metadata()[this.choice_field]=[]);for(var i=this.get_choices(),a=0;a<o.length;a++){var c=this.create_checkbox("my_checkbox",a,i.indexOf(a.toString())>=0);r().keyboard_manager.register_events(c);var s=$("<div>").append(c).append("&nbsp;&nbsp;").append(o[a].childNodes);n.append(s)}$(e).replaceWith(n)}this.render_grader_settings()}}]),n}(j);function B(t){return B="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},B(t)}function Q(t,e){return Q=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Q(t,e)}function G(t,e){if(e&&("object"===B(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function T(t){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},T(t)}var Z=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Q(t,e)}(a,t);var e,n,r,o,i=(r=a,o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,e=T(r);if(o){var n=T(this).constructor;t=Reflect.construct(e,arguments,n)}else t=e.apply(this,arguments);return G(this,t)});function a(t){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,a),i.call(this,t,"pdf")}return e=a,(n=[{key:"render",value:function(){this.cell.unsafe_render(),this.render_grader_settings(),this.cell.keyboard_manager.disable()}}])&&function(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),a}(g);function L(t){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},L(t)}function J(t,e){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},J(t,e)}function W(t,e){if(e&&("object"===L(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function Y(t){return Y=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Y(t)}function I(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function M(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function R(t,e,n){return e&&M(t.prototype,e),n&&M(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var N=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&J(t,e)}(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=Y(e);if(n){var o=Y(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return W(this,t)});function o(t){var e;return I(this,o),(e=r.call(this)).ids={},e.cell=t,e.typePattern=/data:([^;]*)/,e.imagePattern=/!\[[^\(]+\]\(attachment:[^)]+\)/g,e.infoPattern=/\n### You uploaded \d+ attachments.\n\n/g,e.attachments={},e.load(),e}return R(o,[{key:"load",value:function(){var t=this;this.id=0,Object.assign(this.attachments,this.cell.attachments),Object.keys(this.attachments).forEach((function(e){t.id+=1,t.ids[e]=t.id}))}},{key:"save",value:function(){void 0!==this.attachments?(this.cell.attachments=this.attachments,console.log("Saved attachments.")):console.log("Attachments not defined."),this.postSaveHook()}},{key:"postSaveHook",value:function(){}},{key:"hasAttachment",value:function(t){return t in this.attachments}},{key:"getAttachment",value:function(t){return{id:this.ids[t],name:t,type:Object.keys(this.attachments[t])[0],data:Object.values(this.attachments[t])[0]}}},{key:"setAttachment",value:function(t,e){var n=this.typePattern.exec(e)[1],r=e.replace("data:"+n+";base64,","");this.id+=1,this.attachments[t]={},this.attachments[t][n]=r,this.ids[t]=this.id,this.notifyAll({type:"add",key:t,id:this.ids[t]}),this.save()}},{key:"removeAttachment",value:function(t){var e=this.ids[t];delete this.attachments[t],delete this.ids[t],this.notifyAll({type:"delete",key:t,id:e}),this.save()}},{key:"getAttachments",value:function(){var t=this,e=[];return Object.keys(this.attachments).forEach((function(n){e.push(t.getAttachment(n))})),e}}]),o}(function(){function t(){I(this,t),this.observers=[]}return R(t,[{key:"registerObserver",value:function(t){this.observers.push(t)}},{key:"notifyAll",value:function(t){this.observers.forEach((function(e){return e.notify(t)}))}}]),t}()),D=o(804);function F(t){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},F(t)}function U(){U=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,r){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new x(r||[]);return i._invoke=function(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=_(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(t,n,a),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var u={};function f(){}function d(){}function h(){}var p={};c(p,o,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&n.call(m,o)&&(p=m);var v=h.prototype=f.prototype=Object.create(p);function g(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function r(o,i,a,c){var s=l(t[o],t,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==F(f)&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return d.prototype=h,c(v,"constructor",h),c(h,"constructor",d),d.displayName=c(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,c(t,a,"GeneratorFunction")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},g(b.prototype),c(b.prototype,i,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(s(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(v),c(v,a,"Generator"),c(v,o,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=O,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:O(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function z(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function H(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?z(Object(n),!0).forEach((function(e){q(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function q(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function K(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function V(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function X(t,e,n,r,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(r,o)}function tt(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){X(i,r,o,a,c,"next",t)}function c(t){X(i,r,o,a,c,"throw",t)}a(void 0)}))}}var et=!1,nt={};function rt(){return ot.apply(this,arguments)}function ot(){return(ot=tt(U().mark((function t(){return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(et){t.next=12;break}return t.prev=1,t.next=4,D.requests.get((0,D.urlJoin)(r().notebook.base_url,"e2x","diagrams","api"));case 4:nt=t.sent,et=!0,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.error("Error fetching DiagramEditor base options:",t.t0),et=!0;case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))).apply(this,arguments)}const it=function(){function t(e,n,r,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};K(this,t),this.config=null,this.ui="min",this.xml=null,this.format="xml",this.libraries=!0,this.frameStyle="position:absolute;bottom:0;border:0;width:100%;height:100%;";var s=H(H({},nt),c);this.config=e||this.config,this.ui=n||this.ui,this.done=r||function(){},this.initialized=o||function(){},this.urlParams=i,this.cell=a,this.handleMessageEvent=this.handleMessageEvent.bind(this),this.frame=null,this.startElement=null,this.format="xml",this.xml=null,this.drawDomain=s.drawDomain||"https://embed.diagrams.net/",this.origin=s.drawOrigin||"https://embed.diagrams.net/",this.frameStyle="position:absolute;bottom:0;border:0;width:100%;height:100%;",this.libs=s.libs||[]}var e,n,o,i;return e=t,n=[{key:"handleMessageEvent",value:function(t){var e=new URL(this.origin),n=new URL(t.origin);if(n.href!==e.href&&console.log("Message should come from ".concat(e.href," but came from ").concat(n.href)),null!=this.frame&&t.source==this.frame.contentWindow&&t.data.length>0)try{var r=JSON.parse(t.data);null!=r&&this.handleMessage(r)}catch(t){console.error(t)}}},{key:"editElement",value:function(t){var e=this.getElementData(t);this.startElement=t;var n=this.format;return"data:image/png;"===e.substring(0,15)?n="xmlpng":"data:image/svg+xml;"!==e.substring(0,19)&&"svg"!=t.nodeName.toLowerCase()||(n="xmlsvg"),this.startEditing(e,n),this}},{key:"getElementData",value:function(t){var e,n=t.nodeName.toLowerCase();return e="svg"==n?"content":"img"==n?"src":"data",t.getAttribute(e)}},{key:"setElementData",value:function(t,e){var n=t.nodeName.toLowerCase();return"svg"==n?t.outerHTML=atob(e.substring(e.indexOf(",")+1)):t.setAttribute("img"==n?"src":"data",e),t}},{key:"startEditing",value:function(t,e,n){null==this.frame&&(window.addEventListener("message",this.handleMessageEvent),this.format=e||this.format,this.title=n||this.title,this.data=t,this.frame=this.createFrame(this.getFrameUrl(),this.getFrameStyle()),document.body.appendChild(this.frame),this.setWaiting(!0))}},{key:"setWaiting",value:function(t){if(null!=this.startElement){var e=this.startElement,n=e.nodeName.toLowerCase();"svg"!=n&&"object"!=n||(e=e.parentNode),null!=e&&(t?(this.frame.style.pointerEvents="none",this.previousCursor=e.style.cursor,e.style.cursor="wait"):(e.style.cursor=this.previousCursor,this.frame.style.pointerEvents=""))}}},{key:"setActive",value:function(t){t?(this.previousOverflow=document.body.style.overflow,document.body.style.overflow="hidden"):document.body.style.overflow=this.previousOverflow}},{key:"stopEditing",value:function(){null!=this.frame&&(window.removeEventListener("message",this.handleMessageEvent),document.body.removeChild(this.frame),this.setActive(!1),this.frame=null)}},{key:"postMessage",value:function(t){null!=this.frame&&this.frame.contentWindow.postMessage(JSON.stringify(t),this.origin)}},{key:"getData",value:function(){return this.data}},{key:"getTitle",value:function(){return this.title}},{key:"getFrameStyle",value:function(){var t=document.getElementById("header");return this.frameStyle+";left:"+document.body.scrollLeft+"px;top:"+document.body.scrollTop+t.offsetHeight+"px;"}},{key:"getFrameUrl",value:function(){var t=new URL(this.drawDomain);t.searchParams.append("proto","json"),t.searchParams.append("spin","1"),null!=this.ui&&t.searchParams.append("ui",this.ui),null!=this.libraries&&t.searchParams.append("libraries","1"),null!=this.config&&t.searchParams.append("configure","1"),this.libs.length>0&&t.searchParams.append("libs",this.libs.join(";"));var e=t.href;return null!=this.urlParams&&(e+="&"+this.urlParams.join("&")),console.log("The url",e),e}},{key:"createFrame",value:function(t,e){var n=document.createElement("iframe");return n.setAttribute("frameborder","0"),n.setAttribute("style",e),n.setAttribute("src",t),n}},{key:"setStatus",value:function(t,e){this.postMessage({action:"status",messageKey:t,modified:e})}},{key:"handleMessage",value:function(t){"configure"==t.event?this.configureEditor():"init"==t.event?this.initializeEditor():"autosave"==t.event?(this.save(t.xml,!0,this.startElement),r().notebook.set_dirty(!0)):"export"==t.event?(this.cell.model.setAttachment("diagram.png",t.data),this.setElementData(this.startElement,t.data),this.stopEditing(),this.xml=null,r().notebook.set_dirty(!0)):"save"==t.event&&(this.save(t.xml,!1,this.startElement),r().notebook.set_dirty(!0),this.xml=t.xml,t.exit?t.event="exit":this.setStatus("allChangesSaved",!1)),"exit"==t.event&&this.handleExitMessage(t)}},{key:"handleExitMessage",value:function(t){"xml"!=this.format?null!=this.xml?this.postMessage({action:"export",format:this.format,xml:this.xml,spinKey:"export"}):this.stopEditing(t):((null==t.modified||t.modified)&&this.save(t.xml,!1,this.startElement),this.stopEditing(t))}},{key:"configureEditor",value:function(){this.postMessage({action:"configure",config:this.config})}},{key:"initializeEditor",value:function(){this.postMessage({action:"load",autosave:1,saveAndExit:"1",modified:"unsavedChanges",xml:this.getData(),title:this.getTitle()}),this.setWaiting(!1),this.setActive(!0),this.initialized()}},{key:"save",value:function(t,e,n){this.done(t,e,n)}}],o=[{key:"editElement",value:function(e,n,r,o,i,a){var c=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};if(!n.diagramEditorStarting)return n.diagramEditorStarting=!0,new t(r,o,i,(function(){delete n.diagramEditorStarting}),a,e,c).editElement(n)}},{key:"editDiagram",value:(i=tt(U().mark((function t(e,n,r,o,i,a){var c,s=this,l=arguments;return U().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=l.length>6&&void 0!==l[6]?l[6]:{},rt().then((function(){return s.editElement(e,n,r,o,i,a,c)}));case 2:case"end":return t.stop()}}),t)}))),function(t,e,n,r,o,a){return i.apply(this,arguments)})}],n&&V(e.prototype,n),o&&V(e,o),Object.defineProperty(e,"prototype",{writable:!1}),t}();function at(t){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},at(t)}function ct(){ct=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function c(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{c({},"")}catch(t){c=function(t,e,n){return t[e]=n}}function s(t,e,n,r){var o=e&&e.prototype instanceof f?e:f,i=Object.create(o.prototype),a=new x(r||[]);return i._invoke=function(t,e,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return{value:void 0,done:!0}}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var c=_(a,n);if(c){if(c===u)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var s=l(t,e,n);if("normal"===s.type){if(r=n.done?"completed":"suspendedYield",s.arg===u)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(r="completed",n.method="throw",n.arg=s.arg)}}}(t,n,a),i}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=s;var u={};function f(){}function d(){}function h(){}var p={};c(p,o,(function(){return this}));var y=Object.getPrototypeOf,m=y&&y(y(O([])));m&&m!==e&&n.call(m,o)&&(p=m);var v=h.prototype=f.prototype=Object.create(p);function g(t){["next","throw","return"].forEach((function(e){c(t,e,(function(t){return this._invoke(e,t)}))}))}function b(t,e){function r(o,i,a,c){var s=l(t[o],t,i);if("throw"!==s.type){var u=s.arg,f=u.value;return f&&"object"==at(f)&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){u.value=t,a(u)}),(function(t){return r("throw",t,a,c)}))}c(s.arg)}var o;this._invoke=function(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}}function _(t,e){var n=t.iterator[e.method];if(void 0===n){if(e.delegate=null,"throw"===e.method){if(t.iterator.return&&(e.method="return",e.arg=void 0,_(t,e),"throw"===e.method))return u;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return u}var r=l(n,t.iterator,e.arg);if("throw"===r.type)return e.method="throw",e.arg=r.arg,e.delegate=null,u;var o=r.arg;return o?o.done?(e[t.resultName]=o.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=void 0),e.delegate=null,u):o:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,u)}function w(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function x(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(w,this),this.reset(!0)}function O(t){if(t){var e=t[o];if(e)return e.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var r=-1,i=function e(){for(;++r<t.length;)if(n.call(t,r))return e.value=t[r],e.done=!1,e;return e.value=void 0,e.done=!0,e};return i.next=i}}return{next:E}}function E(){return{value:void 0,done:!0}}return d.prototype=h,c(v,"constructor",h),c(h,"constructor",d),d.displayName=c(h,a,"GeneratorFunction"),t.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===d||"GeneratorFunction"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,h):(t.__proto__=h,c(t,a,"GeneratorFunction")),t.prototype=Object.create(v),t},t.awrap=function(t){return{__await:t}},g(b.prototype),c(b.prototype,i,(function(){return this})),t.AsyncIterator=b,t.async=function(e,n,r,o,i){void 0===i&&(i=Promise);var a=new b(s(e,n,r,o),i);return t.isGeneratorFunction(n)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},g(v),c(v,a,"Generator"),c(v,o,(function(){return this})),c(v,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=O,x.prototype={constructor:x,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function r(n,r){return a.type="throw",a.arg=t,e.next=n,r&&(e.method="next",e.arg=void 0),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,u):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),u},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),k(n),u}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:O(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=void 0),u}},t}function st(t,e,n,r,o,i,a){try{var c=t[i](a),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(r,o)}function lt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ut(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function ft(t,e,n){return e&&ut(t.prototype,e),n&&ut(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function dt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&ht(t,e)}function ht(t,e){return ht=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},ht(t,e)}function pt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=mt(t);if(e){var o=mt(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return yt(this,n)}}function yt(t,e){if(e&&("object"===at(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function mt(t){return mt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},mt(t)}var vt=function(t){dt(n,t);var e=pt(n);function n(){return lt(this,n),e.apply(this,arguments)}return ft(n,[{key:"postSaveHook",value:function(){this.cell.unrender_force(),this.cell.render()}}]),n}(N),gt=function(t){dt(n,t);var e=pt(n);function n(t){var r;return lt(this,n),(r=e.call(this,t,"diagram",{replace_diagram:{type:"checkbox",text:"Replace this diagram with an empty diagram in the student version",value:!0}})).model=new vt(t),r.initialize(),r}return ft(n,[{key:"initialize",value:function(){this.model.load(),this.model.hasAttachment("diagram.png")||this.model.setAttachment("diagram.png","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAADwCAYAAABxLb1rAAAABHNCSVQICAgIfAhkiAAAAylJREFUeJzt1DEBACAMwDDAv+chY0cTBb16Z2YOQNDbDgDYYoBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZBghkGSCQZYBAlgECWQYIZBkgkGWAQJYBAlkGCGQZIJBlgECWAQJZH97eBdx+cY1yAAAAAElFTkSuQmCC")}},{key:"render",value:function(){var t=this,e="![diagram](attachment:diagram.png)";-1==this.cell.get_text().indexOf(e)&&this.cell.set_text([this.cell.get_text(),"\x3c!-- Display the diagram attachment --\x3e",e].join("\n")),this.cell.render_force();var n=$(this.cell.element).find(".rendered_html"),r=n.find("img");r.addClass("diagram-img"),$(n).find(".btn-diagram").remove();var o=$("<button/>").append("Edit Diagram").addClass("btn-e2x btn-diagram");o.on("click",function(t){return function(){var e=this,n=arguments;return new Promise((function(r,o){var i=t.apply(e,n);function a(t){st(i,r,o,a,c,"next",t)}function c(t){st(i,r,o,a,c,"throw",t)}a(void 0)}))}}(ct().mark((function e(){return ct().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,it.editDiagram(t,r[0]);case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.error("Failed to load DiagramEditor:",e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})))),n.append(r),n.append(o),this.render_grader_settings()}}]),n}(g);const bt=n(856);var _t=o.n(bt);function wt(t){return wt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wt(t)}function kt(t,e){return kt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},kt(t,e)}function xt(t,e){if(e&&("object"===wt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return Ot(t)}function Ot(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Et(t){return Et=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Et(t)}function Ct(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function At(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function jt(t,e,n){return e&&At(t.prototype,e),n&&At(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}var St=function(){function t(){Ct(this,t)}return jt(t,[{key:"notify",value:function(t){}}]),t}(),Pt=function(){function t(e){Ct(this,t),this.stream=void 0,this.model=e}return jt(t,[{key:"open",value:function(){var t=this;navigator.mediaDevices.getUserMedia({video:!0}).then((function(e){t.stream=e,t.openDialog()})).catch((function(t){alert("Could not access webcam!\n"+t)}))}},{key:"openDialog",value:function(){var t=this,e=c()("<div/>").attr("id","webcamDiv"),n=c()("<video/>");e.append(n);var r=c()("<div/>").attr("id","videoControls");r.append(c()("<button/>").attr("id","takePhoto").on("click",(function(){n[0].paused?(n[0].play(),c()("#saveImage").attr("disabled",!0),c()("#takePhoto span").text("Take Photo")):(n[0].pause(),c()("#saveImage").removeAttr("disabled"),c()("#takePhoto span").text("Retry"))})).append(c()("<span/>").text("Take Photo"))),e.append(r),_t().modal({keyboard_manager:Jupyter.keyboard_manager,title:"Take Photo",open:function(){c()("#webcamDiv").bind("destroyed",(function(){t.close()}))},body:e,buttons:{"Save Image":{id:"saveImage",click:function(){var e=c()("<canvas/>").attr("width",n[0].videoWidth).attr("height",n[0].videoHeight);e[0].getContext("2d").drawImage(n[0],0,0,n[0].videoWidth,n[0].videoHeight);var r=e[0].toDataURL("image/png"),o=t.model.getName("webcam","png");t.model.setAttachment(o,r)}},Cancel:{}}}),navigator.getUserMedia||navigator.mozGetUserMedia?(n[0].srcObject=t.stream,n[0].play()):navigator.webkitGetUserMedia&&(n[0].src=window.webkitURL.createObjectURL(stream),n[0].play())}},{key:"close",value:function(){void 0!==this.stream&&this.stream.getTracks().forEach((function(t){return t.stop()}))}}]),t}(),Bt=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&kt(t,e)}(o,t);var e,n,r=(e=o,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}(),function(){var t,r=Et(e);if(n){var o=Et(this).constructor;t=Reflect.construct(r,arguments,o)}else t=r.apply(this,arguments);return xt(this,t)});function o(t,e){var n;return Ct(this,o),(n=r.call(this)).cell=t,n.model=e,n.element=c()("<div/>").addClass("gallery-view"),e.registerObserver(Ot(n)),n}return jt(o,[{key:"notify",value:function(t){"delete"==t.type?this.element.find(c()("#"+t.id)).remove():"add"==t.type&&this.addThumbnail(this.model.getAttachment(t.key))}},{key:"addThumbnail",value:function(t){var e=this,n=c()("<div/>").addClass("gallery-item").attr("id",t.id),r=c()("<div/>").addClass("remove-file-modal").append(c()("<p/>").append("Are you sure you want to delete the file "+t.name+" ?")),o=c()("<i/>").addClass("fa fa-trash");o.on("click",(function(){_t().modal({body:r,buttons:{Delete:{class:"button-delete",click:function(){return e.model.removeAttachment(t.name)}},Cancel:{}}})})),n.append(o);var i=c()("<i/>").addClass("fa fa-search-plus").on("click",(function(){var e=document.createElement("a");e.href="data:"+t.type+";base64,"+t.data,e.target="_blank",e.download=t.name,document.body.appendChild(e),e.click(),document.body.removeChild(e)}));n.append(i);var a=c()("<div/>").addClass("thumbnail"),s=c()("<div/>").addClass("caption");if(s.append(c()("<span/>").text(t.name)),t.type.startsWith("image")){var l=new Image;l.src="data:"+t.type+";base64,"+t.data,a.append(l)}n.append(a).append(s),this.element.append(n)}},{key:"getControls",value:function(){var t=this,e=c()("<div/>").addClass("attachment-controls");e.append(c()("<button/>").addClass("btn-e2x").append(c()("<i/>").addClass("fa fa-camera")).append("Webcam").on("click",(function(){return new Pt(t.model).open()})));var n=c()("<button/>").addClass("btn-e2x").addClass("upload-btn").append(c()("<i/>").addClass("fa fa-upload")).append("Upload").on("click",(function(){return c()("#upload-attachments")[0].click()}));return n.append(c()("<input/>").attr("id","upload-attachments").attr("type","file").attr("accept","application/pdf,image/*").attr("multiple","multiple").on("change",(function(){return t.uploadFiles()}))),e.append(n),e}},{key:"uploadFiles",value:function(){var t=c()("#upload-attachments")[0],e=this;Array.prototype.forEach.call(t.files,(function(t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){var r=n.result,o=t.name;if(e.model.hasAttachment(o)){var i=o.split(".")[0],a=o.replace(i+".",""),c=e.model.getName(i,a);confirm("A file with the name "+o+" already exists!\nDo you want to rename it to "+c+"?")&&e.model.setAttachment(c,r)}else e.model.setAttachment(o,r)},n.onerror=function(){console.log(n.error)}}))}},{key:"open",value:function(){var t=c()("<div/>").addClass("attachment-editor");this.element=c()("<div/>").addClass("gallery-view"),t.append(this.element),t.append(this.getControls());var e=this;this.model.getAttachments().forEach((function(t){return e.addThumbnail(t)})),_t().modal({keyboard_manager:Jupyter.keyboard_manager,title:"Attachment Editor",body:t})}}]),o}(St);function Qt(t){return Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qt(t)}function Gt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Tt(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function Zt(t,e,n){return e&&Tt(t.prototype,e),n&&Tt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Lt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Jt(t,e)}function Jt(t,e){return Jt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},Jt(t,e)}function Wt(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=It(t);if(e){var o=It(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return Yt(this,n)}}function Yt(t,e){if(e&&("object"===Qt(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function It(t){return It=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},It(t)}var Mt=function(t){Lt(n,t);var e=Wt(n);function n(){return Gt(this,n),e.apply(this,arguments)}return Zt(n,[{key:"postSaveHook",value:function(){var t=this.cell.get_text().replace(this.imagePattern,"");t=t.replace(this.infoPattern,""),t+="\n### You uploaded "+Object.keys(this.attachments).length+" attachments.\n\n",this.cell.set_text(t),this.cell.unrender_force(),this.cell.render()}},{key:"getName",value:function(t,e){for(var n=t+"."+e,r=0;n in this.attachments;)n=t+"_"+(r+=1)+"."+e;return n}}]),n}(N),Rt={multiplechoice:P,singlechoice:S,pdf:Z,attachments:function(t){Lt(n,t);var e=Wt(n);function n(t){var r;return Gt(this,n),(r=e.call(this,t,"attachments")).model=new Mt(t),r.view=new Bt(t,r.model),r}return Zt(n,[{key:"get_attachment_button",value:function(){var t=this;return c()("<button>").attr("type","button").addClass("edit_attachments btn-e2x").on("click",(function(){t.view.open()})).append("Add Files / Images")}},{key:"render",value:function(){this.cell.render_force();var t=c()(this.cell.element).find(".rendered_html");t.find(".edit_attachments").length<1&&t.append(this.get_attachment_button()),this.render_grader_settings()}}]),n}(g),diagram:gt}})(),t.exports=i})()},856:t=>{"use strict";t.exports=n(566)},86:t=>{"use strict";t.exports=n(527)},761:t=>{"use strict";t.exports=n(404)}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={id:t,exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},o.nc=void 0;var i={};(()=>{"use strict";o.r(i),o.d(i,{initialize_cell_extension:()=>T});var t=o(761),e=o.n(t);const r=n(315);var a=o(355);const c=n(767);var s=o.n(c);r.MarkdownCell.prototype.render,r.MarkdownCell.prototype.unrender;var l=o(86),u=o.n(l);const f=n(290);var d=o.n(f);const h=n(140);var p=!1,y=r.MarkdownCell.prototype.render,m=h.Notebook.prototype.to_markdown,v=r.TextCell.prototype.toJSON,g=r.MarkdownCell.prototype.unrender;function b(){var t=u().notebook.get_cells();for(var e in t){var n=t[e];a.utils.is_e2x(n)&&"markdown"===n.cell_type&&n.rendered&&(n.unrender_force(),n.render())}}var _=o(62),w=o.n(_),k=o(36),x=o.n(k),O=o(793),E=o.n(O),C=o(892),A=o.n(C),j=o(173),S=o.n(j),P=o(464),B=o.n(P),Q=o(164),G={};function T(){e().event.special.destroyed={remove:function(t){t.handler&&t.handler()}},r.MarkdownCell.prototype.unsafe_render=function(){this.drag_counter=0,this.inner_cell.removeClass("dropzone");var t=r.TextCell.prototype.render.apply(this);if(t){var e=this,n=this.get_text();""===n&&(n=this.placeholder),s().render(n,{with_math:!0,clean_tables:!0,sanitize:!1},(function(t,n){(n=$(n)).find(":header").addBack(":header").each((function(t,n){var r=(n=$(n)).text().replace(/ /g,"-");n.attr("id",r),n.append($("<a/>").addClass("anchor-link").attr("href","#"+r).text("¶").on("click",(function(){setTimeout((function(){e.unrender(),e.render()}),100)})))})),n.find("a[href]").not('[href^="#"]').attr("target","_blank"),n.find('img[src^="attachment:"]').each((function(t,n){var r=(n=$(n)).attr("src").replace(/^attachment:/,"");if(e.attachments.hasOwnProperty(r)){var o=e.attachments[r],i=Object.keys(o)[0];n.attr("src","data:"+i+";base64,"+o[i])}else n.attr("src","")})),e.set_rendered(n),e.typeset(),e.events.trigger("rendered.MarkdownCell",{cell:e})}))}return t},r.TextCell.prototype.toJSON=function(){return"attachments"==a.utils.get_e2x_cell_type(this)?(arguments[0]=!1,v.apply(this,arguments)):v.apply(this,arguments)},h.Notebook.prototype.to_markdown=function(){m.apply(this,arguments);var t=this.get_cell(arguments[0]);t.unrender_force(),t.render()},r.MarkdownCell.prototype.unrender_force=g,r.MarkdownCell.prototype.unrender=function(){a.utils.is_e2x(this)||g.apply(this,arguments)},r.MarkdownCell.prototype.render_force=y,r.MarkdownCell.prototype.render=function(){var t=a.utils.get_e2x_cell_type(this);if(a.cells.hasOwnProperty(t)){var e=new a.cells[t](this);e.edit_mode=p,e.render()}else y.apply(this,arguments)},u().notebook.metadata.hasOwnProperty("celltoolbar")&&"Create Assignment"===u().notebook.metadata.celltoolbar&&(p=!0),d().on("preset_activated.CellToolbar",(function(t,e){p="Create Assignment"==e.name,b()})),d().on("global_hide.CellToolbar",(function(t,e){p=!1,b()})),b()}G.styleTagTransform=B(),G.setAttributes=A(),G.insert=E().bind(null,"head"),G.domAPI=x(),G.insertStyleElement=S(),w()(Q.Z,G),Q.Z&&Q.Z.locals&&Q.Z.locals})(),t.exports=i})()},654:(t,e,n)=>{(()=>{var e={426:(t,e,n)=>{(()=>{var e={804:t=>{(()=>{"use strict";var e={d:(t,n)=>{for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{requests:()=>i,urlJoin:()=>r});const r=(...t)=>(t=t.map(((e,n)=>(n&&(e=e.replace(/^\//,"")),n!==t.length-1&&(e=e.replace(/\/$/,"")),e)))).join("/"),o=(window.base_url,{credentials:"same-origin",headers:{"X-CSRFToken":(t=>{let e=null;if(document.cookie&&""!==document.cookie)for(let t of document.cookie.split(";"))if(t.trim().startsWith("_xsrf=")){e=decodeURIComponent(t.substring("_xsrf".length+1));break}return e})()}}),i={get:async(t,e)=>{const n={...o,method:"GET"};return void 0!==e&&(t+="?"+new URLSearchParams(e).toString()),(await fetch(t,n)).json()},post:async(t,e)=>{const n={...o,method:"POST",body:JSON.stringify(e)};return(await fetch(t,n)).json()},put:async(t,e)=>{const n={...o,method:"PUT",body:JSON.stringify(e)};return(await fetch(t,n)).json()},del:async(t,e)=>{const n={...o,method:"DELETE",body:JSON.stringify(e)};return(await fetch(t,n)).json()}};t.exports=n})()}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{shortcuts:()=>e,username:()=>r,utils:()=>t});var t={};o.r(t),o.d(t,{create_nbgrader_metadata:()=>f,get_grade_id:()=>A,get_nbgrader_field:()=>d,get_points:()=>E,get_schema_version:()=>y,is_description:()=>B,is_empty:()=>T,is_grade:()=>b,is_invalid:()=>G,is_locked:()=>x,is_nbgrader:()=>l,is_solution:()=>v,is_task:()=>w,is_test:()=>S,nbgrader_schema_version:()=>a,randomString:()=>c,remove_nbgrader_field:()=>p,remove_nbgrader_metadata:()=>u,set_grade:()=>_,set_grade_id:()=>j,set_locked:()=>O,set_nbgrader_field:()=>h,set_points:()=>C,set_schema_version:()=>m,set_solution:()=>g,set_task:()=>k,to_description:()=>Q,to_float:()=>s,to_test:()=>P});var e={};o.r(e),o.d(e,{add_shortcut:()=>I,disable_add_cell_on_execute:()=>M,remove_shortcuts:()=>Y});var r={};o.r(r),o.d(r,{add_username:()=>N});const a=3;function c(t){let e,n="",r="abcdef0123456789";for(e=0;e<t;e++)n+=r[Math.floor(Math.random()*r.length)];return n}function s(t){return void 0===t||""===t?0:parseFloat(t)}function l(t){return t.metadata.hasOwnProperty("nbgrader")}function u(t){l(t)&&(delete t.metadata.nbgrader,t.rendered&&(t.unrender(),t.render()))}function f(t){l(t)||(t.metadata.nbgrader={})}function d(t,e,n={}){return l(t)&&t.metadata.nbgrader[e]||n}function h(t,e,n){l(t)||(t.metadata.nbgrader={}),t.metadata.nbgrader[e]=n}function p(t,e){l(t)&&t.metadata.nbgrader.hasOwnProperty(e)&&delete t.metadata.nbgrader[e]}function y(t){if(l(t))return void 0===d(t,"schema_version")?0:d(t,"schema_version")}function m(t){l(t)||f(t),h(t,"schema_version",a)}function v(t){return d(t,"solution",!1)}function g(t,e){h(t,"solution",e)}function b(t){return d(t,"grade",!1)}function _(t,e){h(t,"grade",e)}function w(t){return d(t,"task",!1)}function k(t,e){h(t,"task",e)}function x(t){return d(t,"locked",!1)}function O(t,e){h(t,"locked",e)}function E(t){return s(d(t,"points",0))}function C(t,e){h(t,"points",Math.max(0,s(e)))}function A(t){return d(t,"grade_id","cell-"+c(16))}function j(t,e){h(t,"grade_id",e)}function S(t){return b(t)&&x(t)&&!v(t)}function P(t){remove_metadata(t),m(t),g(t,!1),_(t,!0),O(t,!0)}function B(t){return x(t)&&!b(t)&&!v(t)}function Q(t){remove_metadata(t),m(t),g(t,!1),_(t,!1),O(t,!0)}function G(t){return!(w(t)||v(t)&&b(t)||(!v(t)||"code"===t.cell_type)&&(!b(t)||"code"===t.cell_type))}function T(t){return 0==t.get_text().length}const Z=n(86);var L=o.n(Z);const J=n(851);function W(t){if("command"===t)return L().keyboard_manager.command_shortcuts;if("edit"===t)return L().keyboard_manager.edit_shortcuts;throw new Error("Mode needs to be either 'command' or 'edit'")}function Y(t,...e){const n=W(t);for(const r of e)try{n.remove_shortcut(r)}catch(e){console.log("Error removing shortcut",r,"from",t,"mode:",e.message)}}function I(t,e,n,r,o="zz"){W(t).add_shortcut(e,{help:r,help_index:o,handler:n})}function M(){J.Notebook.prototype.execute_cell_and_select_below_without_insert=function(){let t,e=this.get_selected_cells_indices();if(e.length>1)this.execute_cells(e),t=Math.max(...e);else{let e=this.get_selected_cell();t=this.find_cell_index(e),e.execute()}t=Math.min(t+1,this.ncells()-1),this.select(t),this.focus_cell()};const t=["alt-enter","shift-enter"];Y("edit",...t),Y("command",...t);const e="run cell",n=function(t){return L().notebook.execute_cell_and_select_below_without_insert(),!1};for(const r of t)I("edit",r,n,e),I("command",r,n,e)}var R=o(804);function N(){const t=L().notebook?L().notebook.base_url:L().notebook_list.base_url;R.requests.get((0,R.urlJoin)(t,"nbgrader_username")).then((t=>{const e=document.createElement("span");e.id="username_span",e.textContent=t.username,e.style.fontSize="1.5em";const n=document.getElementById("login_widget");n.parentNode.insertBefore(e,n)}))}})(),t.exports=i})()},86:t=>{"use strict";t.exports=n(527)},851:t=>{"use strict";t.exports=n(140)}},r={};function o(t){var n=r[t];if(void 0!==n)return n.exports;var i=r[t]={exports:{}};return e[t](i,i.exports,o),i.exports}o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var n in e)o.o(e,n)&&!o.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),o.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";o.r(i),o.d(i,{patch_assignment_notebook:()=>Z});const t=n(404);var e=o.n(t),r=o(86),a=o.n(r);const c=n(566);var s=o.n(c),l=o(426),u=o(851);const f=n(425),d=u.Notebook.prototype.to_code,h=u.Notebook.prototype.to_markdown,p=u.Notebook.prototype.to_raw,y=u.Notebook.prototype.move_cell_down,m=u.Notebook.prototype.move_selection_down,v=u.Notebook.prototype.move_cell_up,g=u.Notebook.prototype.move_selection_up,b=u.Notebook.prototype.paste_cell_replace,_=u.Notebook.prototype.paste_cell_above,w=u.Notebook.prototype.paste_cell_below;function k(){let t=e()("<div/>").append(e()("<span/>").text("You can not change the type of a cell that belongs to the assignment!"));s().modal({keyboard_manager:a().keyboard_manager,title:"Can not change cell type",body:t,buttons:{OK:{}}})}function x(t){if(null===t)return t;let e=[];return t.forEach((function(t){l.utils.is_nbgrader(t)||e.push(t)})),0==e.length?null:e}function O(t){let n=!1;return t.some((function(t){return l.utils.is_nbgrader(t)&&(n=!0,function(){let t=e()("<div/>").append(e()("<span/>").text("At least one of the selected cells belongs to the assignment and can not be moved!"));s().modal({keyboard_manager:a().keyboard_manager,title:"Can not move cells",body:t,buttons:{OK:{}}})}()),n})),!n}function E(){l.utils.is_nbgrader(a().notebook.get_cell(arguments[0]))?k():d.apply(this,arguments)}function C(){l.utils.is_nbgrader(a().notebook.get_cell(arguments[0]))?k():h.apply(this,arguments)}function A(){l.utils.is_nbgrader(a().notebook.get_cell(arguments[0]))?k():p.apply(this,arguments)}function j(){let t=arguments[0];void 0===t?a().notebook.move_selection_down():O([a().notebook.get_cell(t)])&&y.apply(this,arguments)}function S(){let t=arguments[0];void 0===t?a().notebook.move_selection_down():O([a().notebook.get_cell(t)])&&v.apply(this,arguments)}function P(){O(a().notebook.get_selected_cells())&&m.apply(this,arguments)}function B(){O(a().notebook.get_selected_cells())&&g.apply(this,arguments)}function Q(){this.clipboard=x(this.clipboard),b.apply(this,arguments)}function G(){this.clipboard=x(this.clipboard),_.apply(this,arguments)}function T(){this.clipboard=x(this.clipboard),w.apply(this,arguments)}function Z(){a().keyboard_manager.command_shortcuts.remove_shortcut("v"),a().keyboard_manager.command_shortcuts.remove_shortcut("c"),u.Notebook.prototype.to_code=E,u.Notebook.prototype.to_markdown=C,u.Notebook.prototype.to_raw=A,u.Notebook.prototype.move_cell_down=j,u.Notebook.prototype.move_selection_down=P,u.Notebook.prototype.move_cell_up=S,u.Notebook.prototype.move_selection_up=B,u.Notebook.prototype.paste_cell_replace=Q,u.Notebook.prototype.paste_cell_above=G,u.Notebook.prototype.paste_cell_below=T,f.Cell.options_default.cm_config.lineNumbers=!0,a().notebook.get_cells().forEach((function(t){l.utils.is_test(t)&&l.utils.is_empty(t)?t.element.hide():"code"===t.cell_type&&t.show_line_numbers(!0)}))}})(),t.exports=i})()},566:t=>{"use strict";t.exports=n},290:t=>{"use strict";t.exports=e},767:t=>{"use strict";t.exports=i},527:e=>{"use strict";e.exports=t},404:t=>{"use strict";t.exports=r},425:t=>{"use strict";t.exports=l},600:t=>{"use strict";t.exports=s},140:t=>{"use strict";t.exports=a},315:t=>{"use strict";t.exports=o},75:t=>{"use strict";t.exports=c}},f={};function d(t){var e=f[t];if(void 0!==e)return e.exports;var n=f[t]={exports:{}};return u[t](n,n.exports,d),n.exports}d.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return d.d(e,{a:e}),e},d.d=(t,e)=>{for(var n in e)d.o(e,n)&&!d.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},d.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),d.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var h={};return(()=>{"use strict";d.r(h),d.d(h,{load_ipython_extension:()=>s});var t=d(527),e=d.n(t),n=d(290),r=d.n(n),o=d(761),i=d(322),a=d(654);function c(){(0,o.initialize_cell_extension)(),(0,a.patch_assignment_notebook)(),(new i.AssignmentViewToolbar).activate()}function s(){var t;null!==(t=e().notebook)&&void 0!==t&&t._fully_loaded?c():r().on("notebook_loaded.Notebook",c)}})(),h})()));