We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Image view for segmented files is not working
e.g. https://jwql.stsci.edu/NIRCam/jw01442001001_04103_00001-seg004_nrca3/

This is giving a "Page not found" error.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `jwql/website/apps/jwql/urls.py`
Content:
```
1 """Maps URL paths to views in the ``jwql`` app.
2 
3 This module connects requested URL paths to the corresponding view in
4 ``views.py`` for each webpage in the ``jwql`` app. When django is
5 provided a path, it searches through the ``urlpatterns`` list provided
6 here until it finds one that matches. It then calls the assigned view
7 to load the appropriate webpage, passing an ``HttpRequest`` object.
8 
9 Authors
10 -------
11 
12     - Lauren Chambers
13     - Matthew Bourque
14     - Johannes Sahlmann
15     - Teagan King
16 
17 Use
18 ---
19 
20     Function views
21         1. Add an import:  from my_app import views
22         2. Add a URL to urlpatterns:  path('', views.home, name='home')
23     Class-based views
24         1. Add an import:  from other_app.views import Home
25         2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
26     Including another URLconf
27         1. Import the include() function: from django.urls import include, path
28         2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
29 
30 References
31 ----------
32     For more information please see:
33         ``https://docs.djangoproject.com/en/2.0/topics/http/urls/``
34 
35 Notes
36 -----
37     Be aware that when a url is requested, it will be directed to the
38     first matching path in the ``urlpatterns`` list that it finds. The
39     ``<str:var>`` tag is just a placeholder. To avoid complications,
40     users should order their paths in order from shortest to longest,
41     and after that from most to least specific.
42 """
43 
44 from django.urls import path
45 from django.urls import re_path
46 
47 from . import api_views
48 from . import monitor_views
49 from . import views
50 
51 app_name = 'jwql'
52 instruments = 'nircam|NIRCam|niriss|NIRISS|nirspec|NIRSpec|miri|MIRI|fgs|FGS'
53 
54 urlpatterns = [
55 
56     # Home
57     path('', views.home, name='home'),
58 
59     # MIRI-specific views
60     path('miri/miri_data_trending/', views.miri_data_trending, name='miri_data_trending'),
61 
62     # NIRSpec-specific views
63     path('nirspec/nirspec_data_trending/', views.nirspec_data_trending, name='nirspec_data_trending'),
64 
65     # Common monitor views
66     re_path(r'^(?P<inst>({}))/dark_monitor/$'.format(instruments), monitor_views.dark_monitor, name='dark_monitor'),
67     re_path(r'^(?P<inst>({}))/bad_pixel_monitor/$'.format(instruments), monitor_views.bad_pixel_monitor, name='bad_pixel_monitor'),
68     re_path(r'^(?P<inst>({}))/bias_monitor/$'.format(instruments), monitor_views.bias_monitor, name='bias_monitor'),
69     re_path(r'^(?P<inst>({}))/readnoise_monitor/$'.format(instruments), monitor_views.readnoise_monitor, name='readnoise_monitor'),
70 
71     # Main site views
72     path('about/', views.about, name='about'),
73     path('anomaly_query/', views.anomaly_query, name='anomaly_query'),
74     path('api/', views.api_landing, name='api'),
75     path('dashboard/', views.dashboard, name='dashboard'),
76     path('download_table/<str:tablename>', views.export, name='download_table'),
77     path('edb/', views.engineering_database, name='edb'),
78     path('jwqldb/', views.jwqldb_table_viewer, name='jwqldb'),
79     path('jwqldb/<str:tablename_param>', views.jwqldb_table_viewer, name='jwqldb_table_viewer'),
80     path('query_submit/', views.query_submit, name='query_submit'),
81     re_path(r'^(?P<inst>({}))/$'.format(instruments), views.instrument, name='instrument'),
82     re_path(r'^(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals, name='archive'),
83     re_path(r'^(?P<inst>({}))/unlooked/$'.format(instruments), views.unlooked_images, name='unlooked'),
84     re_path(r'^(?P<inst>({}))/(?P<file_root>[\w]+)/$'.format(instruments), views.view_image, name='view_image'),
85     re_path(r'^(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/'.format(instruments), views.explore_image, name='explore_image'),
86     re_path(r'^(?P<inst>({}))/(?P<filename>.+)_(?P<filetype>.+)/header/'.format(instruments), views.view_header, name='view_header'),
87     re_path(r'^(?P<inst>({}))/archive/(?P<proposal>[\d]{{1,5}})/obs(?P<observation>[\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_per_observation, name='archive_thumb_per_obs'),
88 
89     # AJAX views
90     re_path('ajax/query_submit/', views.archive_thumbnails_query_ajax, name='archive_thumb_query_ajax'),
91     re_path(r'^ajax/(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals_ajax, name='archive_ajax'),
92     re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),
93     re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image_(?P<scaling>.+)_(?P<low_lim>.+)_(?P<high_lim>.+)/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),
94     re_path(r'^ajax/(?P<inst>({}))/archive/(?P<proposal>[\d]{{1,5}})/obs(?P<observation>[\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_ajax, name='archive_thumb_ajax'),
95 
96     # REST API views
97     path('api/proposals/', api_views.all_proposals, name='all_proposals'),
98     re_path(r'^api/(?P<inst>({}))/proposals/$'.format(instruments), api_views.instrument_proposals, name='instrument_proposals'),
99     re_path(r'^api/(?P<inst>({}))/preview_images/$'.format(instruments), api_views.preview_images_by_instrument, name='preview_images_by_instrument'),
100     re_path(r'^api/(?P<inst>({}))/thumbnails/$'.format(instruments), api_views.thumbnails_by_instrument, name='thumbnails_by_instrument'),
101     re_path(r'^api/(?P<proposal>[\d]{1,5})/filenames/$', api_views.filenames_by_proposal, name='filenames_by_proposal'),
102     re_path(r'^api/(?P<proposal>[\d]{1,5})/preview_images/$', api_views.preview_images_by_proposal, name='preview_images_by_proposal'),
103     re_path(r'^api/(?P<proposal>[\d]{1,5})/thumbnails/$', api_views.thumbnails_by_proposal, name='preview_images_by_proposal'),
104     re_path(r'^api/(?P<rootname>[\w]+)/filenames/$', api_views.filenames_by_rootname, name='filenames_by_rootname'),
105     re_path(r'^api/(?P<rootname>[\w]+)/preview_images/$', api_views.preview_images_by_rootname, name='preview_images_by_rootname'),
106     re_path(r'^api/(?P<rootname>[\w]+)/thumbnails/$', api_views.thumbnails_by_rootname, name='thumbnails_by_rootname'),
107 ]
108
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/jwql/website/apps/jwql/urls.py b/jwql/website/apps/jwql/urls.py
--- a/jwql/website/apps/jwql/urls.py
+++ b/jwql/website/apps/jwql/urls.py
@@ -81,7 +81,7 @@
     re_path(r'^(?P<inst>({}))/$'.format(instruments), views.instrument, name='instrument'),
     re_path(r'^(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals, name='archive'),
     re_path(r'^(?P<inst>({}))/unlooked/$'.format(instruments), views.unlooked_images, name='unlooked'),
-    re_path(r'^(?P<inst>({}))/(?P<file_root>[\w]+)/$'.format(instruments), views.view_image, name='view_image'),
+    re_path(r'^(?P<inst>({}))/(?P<file_root>[\w-]+)/$'.format(instruments), views.view_image, name='view_image'),
     re_path(r'^(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/'.format(instruments), views.explore_image, name='explore_image'),
     re_path(r'^(?P<inst>({}))/(?P<filename>.+)_(?P<filetype>.+)/header/'.format(instruments), views.view_header, name='view_header'),
     re_path(r'^(?P<inst>({}))/archive/(?P<proposal>[\d]{{1,5}})/obs(?P<observation>[\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_per_observation, name='archive_thumb_per_obs'),

{"golden_diff": "diff --git a/jwql/website/apps/jwql/urls.py b/jwql/website/apps/jwql/urls.py\n--- a/jwql/website/apps/jwql/urls.py\n+++ b/jwql/website/apps/jwql/urls.py\n@@ -81,7 +81,7 @@\n     re_path(r'^(?P<inst>({}))/$'.format(instruments), views.instrument, name='instrument'),\n     re_path(r'^(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals, name='archive'),\n     re_path(r'^(?P<inst>({}))/unlooked/$'.format(instruments), views.unlooked_images, name='unlooked'),\n-    re_path(r'^(?P<inst>({}))/(?P<file_root>[\\w]+)/$'.format(instruments), views.view_image, name='view_image'),\n+    re_path(r'^(?P<inst>({}))/(?P<file_root>[\\w-]+)/$'.format(instruments), views.view_image, name='view_image'),\n     re_path(r'^(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/'.format(instruments), views.explore_image, name='explore_image'),\n     re_path(r'^(?P<inst>({}))/(?P<filename>.+)_(?P<filetype>.+)/header/'.format(instruments), views.view_header, name='view_header'),\n     re_path(r'^(?P<inst>({}))/archive/(?P<proposal>[\\d]{{1,5}})/obs(?P<observation>[\\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_per_observation, name='archive_thumb_per_obs'),\n", "issue": "Image view for segmented files is not working\ne.g. https://jwql.stsci.edu/NIRCam/jw01442001001_04103_00001-seg004_nrca3/\r\n\r\nThis is giving a \"Page not found\" error.\n", "before_files": [{"content": "\"\"\"Maps URL paths to views in the ``jwql`` app.\n\nThis module connects requested URL paths to the corresponding view in\n``views.py`` for each webpage in the ``jwql`` app. When django is\nprovided a path, it searches through the ``urlpatterns`` list provided\nhere until it finds one that matches. It then calls the assigned view\nto load the appropriate webpage, passing an ``HttpRequest`` object.\n\nAuthors\n-------\n\n    - Lauren Chambers\n    - Matthew Bourque\n    - Johannes Sahlmann\n    - Teagan King\n\nUse\n---\n\n    Function views\n        1. Add an import:  from my_app import views\n        2. Add a URL to urlpatterns:  path('', views.home, name='home')\n    Class-based views\n        1. Add an import:  from other_app.views import Home\n        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')\n    Including another URLconf\n        1. Import the include() function: from django.urls import include, path\n        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))\n\nReferences\n----------\n    For more information please see:\n        ``https://docs.djangoproject.com/en/2.0/topics/http/urls/``\n\nNotes\n-----\n    Be aware that when a url is requested, it will be directed to the\n    first matching path in the ``urlpatterns`` list that it finds. The\n    ``<str:var>`` tag is just a placeholder. To avoid complications,\n    users should order their paths in order from shortest to longest,\n    and after that from most to least specific.\n\"\"\"\n\nfrom django.urls import path\nfrom django.urls import re_path\n\nfrom . import api_views\nfrom . import monitor_views\nfrom . import views\n\napp_name = 'jwql'\ninstruments = 'nircam|NIRCam|niriss|NIRISS|nirspec|NIRSpec|miri|MIRI|fgs|FGS'\n\nurlpatterns = [\n\n    # Home\n    path('', views.home, name='home'),\n\n    # MIRI-specific views\n    path('miri/miri_data_trending/', views.miri_data_trending, name='miri_data_trending'),\n\n    # NIRSpec-specific views\n    path('nirspec/nirspec_data_trending/', views.nirspec_data_trending, name='nirspec_data_trending'),\n\n    # Common monitor views\n    re_path(r'^(?P<inst>({}))/dark_monitor/$'.format(instruments), monitor_views.dark_monitor, name='dark_monitor'),\n    re_path(r'^(?P<inst>({}))/bad_pixel_monitor/$'.format(instruments), monitor_views.bad_pixel_monitor, name='bad_pixel_monitor'),\n    re_path(r'^(?P<inst>({}))/bias_monitor/$'.format(instruments), monitor_views.bias_monitor, name='bias_monitor'),\n    re_path(r'^(?P<inst>({}))/readnoise_monitor/$'.format(instruments), monitor_views.readnoise_monitor, name='readnoise_monitor'),\n\n    # Main site views\n    path('about/', views.about, name='about'),\n    path('anomaly_query/', views.anomaly_query, name='anomaly_query'),\n    path('api/', views.api_landing, name='api'),\n    path('dashboard/', views.dashboard, name='dashboard'),\n    path('download_table/<str:tablename>', views.export, name='download_table'),\n    path('edb/', views.engineering_database, name='edb'),\n    path('jwqldb/', views.jwqldb_table_viewer, name='jwqldb'),\n    path('jwqldb/<str:tablename_param>', views.jwqldb_table_viewer, name='jwqldb_table_viewer'),\n    path('query_submit/', views.query_submit, name='query_submit'),\n    re_path(r'^(?P<inst>({}))/$'.format(instruments), views.instrument, name='instrument'),\n    re_path(r'^(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals, name='archive'),\n    re_path(r'^(?P<inst>({}))/unlooked/$'.format(instruments), views.unlooked_images, name='unlooked'),\n    re_path(r'^(?P<inst>({}))/(?P<file_root>[\\w]+)/$'.format(instruments), views.view_image, name='view_image'),\n    re_path(r'^(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/'.format(instruments), views.explore_image, name='explore_image'),\n    re_path(r'^(?P<inst>({}))/(?P<filename>.+)_(?P<filetype>.+)/header/'.format(instruments), views.view_header, name='view_header'),\n    re_path(r'^(?P<inst>({}))/archive/(?P<proposal>[\\d]{{1,5}})/obs(?P<observation>[\\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_per_observation, name='archive_thumb_per_obs'),\n\n    # AJAX views\n    re_path('ajax/query_submit/', views.archive_thumbnails_query_ajax, name='archive_thumb_query_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals_ajax, name='archive_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image_(?P<scaling>.+)_(?P<low_lim>.+)_(?P<high_lim>.+)/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/archive/(?P<proposal>[\\d]{{1,5}})/obs(?P<observation>[\\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_ajax, name='archive_thumb_ajax'),\n\n    # REST API views\n    path('api/proposals/', api_views.all_proposals, name='all_proposals'),\n    re_path(r'^api/(?P<inst>({}))/proposals/$'.format(instruments), api_views.instrument_proposals, name='instrument_proposals'),\n    re_path(r'^api/(?P<inst>({}))/preview_images/$'.format(instruments), api_views.preview_images_by_instrument, name='preview_images_by_instrument'),\n    re_path(r'^api/(?P<inst>({}))/thumbnails/$'.format(instruments), api_views.thumbnails_by_instrument, name='thumbnails_by_instrument'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/filenames/$', api_views.filenames_by_proposal, name='filenames_by_proposal'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/preview_images/$', api_views.preview_images_by_proposal, name='preview_images_by_proposal'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/thumbnails/$', api_views.thumbnails_by_proposal, name='preview_images_by_proposal'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/filenames/$', api_views.filenames_by_rootname, name='filenames_by_rootname'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/preview_images/$', api_views.preview_images_by_rootname, name='preview_images_by_rootname'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/thumbnails/$', api_views.thumbnails_by_rootname, name='thumbnails_by_rootname'),\n]\n", "path": "jwql/website/apps/jwql/urls.py"}], "after_files": [{"content": "\"\"\"Maps URL paths to views in the ``jwql`` app.\n\nThis module connects requested URL paths to the corresponding view in\n``views.py`` for each webpage in the ``jwql`` app. When django is\nprovided a path, it searches through the ``urlpatterns`` list provided\nhere until it finds one that matches. It then calls the assigned view\nto load the appropriate webpage, passing an ``HttpRequest`` object.\n\nAuthors\n-------\n\n    - Lauren Chambers\n    - Matthew Bourque\n    - Johannes Sahlmann\n    - Teagan King\n\nUse\n---\n\n    Function views\n        1. Add an import:  from my_app import views\n        2. Add a URL to urlpatterns:  path('', views.home, name='home')\n    Class-based views\n        1. Add an import:  from other_app.views import Home\n        2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')\n    Including another URLconf\n        1. Import the include() function: from django.urls import include, path\n        2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))\n\nReferences\n----------\n    For more information please see:\n        ``https://docs.djangoproject.com/en/2.0/topics/http/urls/``\n\nNotes\n-----\n    Be aware that when a url is requested, it will be directed to the\n    first matching path in the ``urlpatterns`` list that it finds. The\n    ``<str:var>`` tag is just a placeholder. To avoid complications,\n    users should order their paths in order from shortest to longest,\n    and after that from most to least specific.\n\"\"\"\n\nfrom django.urls import path\nfrom django.urls import re_path\n\nfrom . import api_views\nfrom . import monitor_views\nfrom . import views\n\napp_name = 'jwql'\ninstruments = 'nircam|NIRCam|niriss|NIRISS|nirspec|NIRSpec|miri|MIRI|fgs|FGS'\n\nurlpatterns = [\n\n    # Home\n    path('', views.home, name='home'),\n\n    # MIRI-specific views\n    path('miri/miri_data_trending/', views.miri_data_trending, name='miri_data_trending'),\n\n    # NIRSpec-specific views\n    path('nirspec/nirspec_data_trending/', views.nirspec_data_trending, name='nirspec_data_trending'),\n\n    # Common monitor views\n    re_path(r'^(?P<inst>({}))/dark_monitor/$'.format(instruments), monitor_views.dark_monitor, name='dark_monitor'),\n    re_path(r'^(?P<inst>({}))/bad_pixel_monitor/$'.format(instruments), monitor_views.bad_pixel_monitor, name='bad_pixel_monitor'),\n    re_path(r'^(?P<inst>({}))/bias_monitor/$'.format(instruments), monitor_views.bias_monitor, name='bias_monitor'),\n    re_path(r'^(?P<inst>({}))/readnoise_monitor/$'.format(instruments), monitor_views.readnoise_monitor, name='readnoise_monitor'),\n\n    # Main site views\n    path('about/', views.about, name='about'),\n    path('anomaly_query/', views.anomaly_query, name='anomaly_query'),\n    path('api/', views.api_landing, name='api'),\n    path('dashboard/', views.dashboard, name='dashboard'),\n    path('download_table/<str:tablename>', views.export, name='download_table'),\n    path('edb/', views.engineering_database, name='edb'),\n    path('jwqldb/', views.jwqldb_table_viewer, name='jwqldb'),\n    path('jwqldb/<str:tablename_param>', views.jwqldb_table_viewer, name='jwqldb_table_viewer'),\n    path('query_submit/', views.query_submit, name='query_submit'),\n    re_path(r'^(?P<inst>({}))/$'.format(instruments), views.instrument, name='instrument'),\n    re_path(r'^(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals, name='archive'),\n    re_path(r'^(?P<inst>({}))/unlooked/$'.format(instruments), views.unlooked_images, name='unlooked'),\n    re_path(r'^(?P<inst>({}))/(?P<file_root>[\\w-]+)/$'.format(instruments), views.view_image, name='view_image'),\n    re_path(r'^(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/'.format(instruments), views.explore_image, name='explore_image'),\n    re_path(r'^(?P<inst>({}))/(?P<filename>.+)_(?P<filetype>.+)/header/'.format(instruments), views.view_header, name='view_header'),\n    re_path(r'^(?P<inst>({}))/archive/(?P<proposal>[\\d]{{1,5}})/obs(?P<observation>[\\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_per_observation, name='archive_thumb_per_obs'),\n\n    # AJAX views\n    re_path('ajax/query_submit/', views.archive_thumbnails_query_ajax, name='archive_thumb_query_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/archive/$'.format(instruments), views.archived_proposals_ajax, name='archive_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/(?P<file_root>.+)_(?P<filetype>.+)/explore_image_(?P<scaling>.+)_(?P<low_lim>.+)_(?P<high_lim>.+)/$'.format(instruments), views.explore_image_ajax, name='explore_image_ajax'),\n    re_path(r'^ajax/(?P<inst>({}))/archive/(?P<proposal>[\\d]{{1,5}})/obs(?P<observation>[\\d]{{1,3}})/$'.format(instruments), views.archive_thumbnails_ajax, name='archive_thumb_ajax'),\n\n    # REST API views\n    path('api/proposals/', api_views.all_proposals, name='all_proposals'),\n    re_path(r'^api/(?P<inst>({}))/proposals/$'.format(instruments), api_views.instrument_proposals, name='instrument_proposals'),\n    re_path(r'^api/(?P<inst>({}))/preview_images/$'.format(instruments), api_views.preview_images_by_instrument, name='preview_images_by_instrument'),\n    re_path(r'^api/(?P<inst>({}))/thumbnails/$'.format(instruments), api_views.thumbnails_by_instrument, name='thumbnails_by_instrument'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/filenames/$', api_views.filenames_by_proposal, name='filenames_by_proposal'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/preview_images/$', api_views.preview_images_by_proposal, name='preview_images_by_proposal'),\n    re_path(r'^api/(?P<proposal>[\\d]{1,5})/thumbnails/$', api_views.thumbnails_by_proposal, name='preview_images_by_proposal'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/filenames/$', api_views.filenames_by_rootname, name='filenames_by_rootname'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/preview_images/$', api_views.preview_images_by_rootname, name='preview_images_by_rootname'),\n    re_path(r'^api/(?P<rootname>[\\w]+)/thumbnails/$', api_views.thumbnails_by_rootname, name='thumbnails_by_rootname'),\n]\n", "path": "jwql/website/apps/jwql/urls.py"}]}