Sign Up - JointCommerce
...

Sign Up!

Sign up for your free account to mark your favorite locations and send reviews of your experience. Join JointCommerce's community!

  • Your password can’t be too similar to your other personal information.
  • Your password must contain at least 8 characters.
  • Your password can’t be a commonly used password.
  • Your password can’t be entirely numeric.
Enter the same password as before, for verification.


By signing up you agree to JointCommerce's Terms of Use and Privacy Policy.


Have an account already? Sign In

DJDT

Versions

Package Name Version
Django 5.0.4
Python 3.11.10
allauth Allauth 0.58.0.final.0
bootstrap4 Bootstrap4 24.3
crispy_bootstrap5 Crispy_Bootstrap5 2024.2
crispy_forms Crispy_Forms 2.1
debug_toolbar Debug Toolbar 4.2.0
django_filters Django_Filters 24.3
django_summernote Django Summernote 0.8.20.0
drf_spectacular drf-spectacular 0.27.2
gunicorn Gunicorn 21.2.0
imagekit Imagekit 5.0.0
import_export Import_Export 4.1.1
rest_framework Django REST framework 3.15.2
rest_framework_api_key API Key Permissions 3.0.0
reversion Reversion 5.0.12
reversion_compare reversion_compare 0.17.0
silk Silk 5.1.0
storages Storages 1.14.2
widget_tweaks Widget_Tweaks 1.5.0

Time

Resource usage

Resource Value
User CPU time 90.720 msec
System CPU time 2.173 msec
Total CPU time 92.893 msec
Elapsed time 1220.332 msec
Context switches 23 voluntary, 2 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from _jointcommerce.settings

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ACCOUNT_AUTHENTICATION_METHOD 'username_email'
ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL 'directory/accounts/email-verification-sent/'
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL 'directory/accounts/email-verification-sent/'
ACCOUNT_EMAIL_CONFIRMATION_SUBJECT_TEMPLATE 'directory/accounts/emails/email_confirmation_subject.txt'
ACCOUNT_EMAIL_CONFIRMATION_TEMPLATE 'directory/accounts/email_confirmation_message.html'
ACCOUNT_EMAIL_REQUIRED True
ACCOUNT_EMAIL_SUBJECT_PREFIX 'JointCommerce - '
ACCOUNT_EMAIL_VERIFICATION 'mandatory'
ACCOUNT_LOGOUT_ON_GET True
ACCOUNT_UNIQUE_EMAIL True
ACCOUNT_USERNAME_REQUIRED True
ADD_REVERSION_ADMIN True
ADMINS []
ALLOWED_HOSTS ['*']
APPEND_SLASH True
AUTHENTICATION_BACKENDS ('accounts.backends.EmailBackend', 'django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend')
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL 'auth.User'
AWS_ACCESS_KEY_ID '********************'
AWS_DEFAULT_ACL None
AWS_IS_GZIPPED True
AWS_LOCATION 'static'
AWS_S3_CUSTOM_DOMAIN 'jointcommerce-files.s3-us-west-2.amazonaws.com'
AWS_S3_FILE_OVERWRITE False
AWS_SECRET_ACCESS_KEY '********************'
AWS_STORAGE_BUCKET_NAME 'jointcommerce-files'
BASE_DIR PosixPath('/app')
BROTLI_STATIC_COMPRESSION True
CACHES {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CELERY_BROKER_URL 'rediss://:pf32973e2c8a0f135fc026c27c5c9f4b77c00dee5a88513a5941d21777a952ed8@ec2-52-72-35-207.compute-1.amazonaws.com:19189?ssl_cert_reqs=CERT_NONE'
CELERY_RESULT_BACKEND 'rediss://:pf32973e2c8a0f135fc026c27c5c9f4b77c00dee5a88513a5941d21777a952ed8@ec2-52-72-35-207.compute-1.amazonaws.com:19189?ssl_cert_reqs=CERT_NONE'
CORS_ALLOW_ALL_ORIGINS True
CRISPY_ALLOWED_TEMPLATE_PACKS 'bootstrap5'
CRISPY_TEMPLATE_PACK 'bootstrap5'
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE 'Lax'
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
CSVIMPORT_PARSER 'pandas'
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'ec2-3-233-72-102.compute-1.amazonaws.com', 'NAME': 'd11ihh4gmtue9f', 'OPTIONS': {'sslmode': 'require'}, 'PASSWORD': '********************', 'PORT': 5432, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'u4ui2r6da6daer'}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fa308e13d80>}
DEBUG_TOOLBAR_PANELS ['debug_toolbar.panels.history.HistoryPanel', 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel']
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.BigAutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL 'admin@jointcommerce.com'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DISALLOWED_USER_AGENTS []
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST 'smtp.gmail.com'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER 'adops@jointcommerce.co'
EMAIL_PORT 587
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS True
ENVIRONMENT 'development'
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORMS_URLFIELD_ASSUME_HTTPS False
FORM_RENDERER 'django.forms.renderers.DjangoTemplates'
GZIP_MIDDLEWARE_EXCLUDE_CONTENT_TYPES ('application/json', 'text/html', 'text/xml', 'application/xml', 'application/xhtml+xml')
GZIP_STATIC_COMPRESSION True
IGNORABLE_404_URLS []
IMAGEKIT_CACHEFILE_DIR 'CACHE/images'
IMAGEKIT_CACHEFILE_NAMER 'imagekit.cachefiles.namers.hash'
IMAGEKIT_CACHE_BACKEND 'default'
IMAGEKIT_CACHE_PREFIX 'imagekit:'
IMAGEKIT_CACHE_TIMEOUT 300
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND 'imagekit.cachefiles.backends.Simple'
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY 'imagekit.cachefiles.strategies.JustInTime'
IMAGEKIT_DEFAULT_FILE_STORAGE 'default'
IMAGEKIT_SPEC_CACHEFILE_NAMER 'imagekit.cachefiles.namers.source_name_as_path'
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY '********************'
INSTALLED_APPS ['jazzmin', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'django.contrib.sitemaps', 'django_summernote', 'django.contrib.humanize', 'django_quill', 'debug_toolbar', 'storages', 'corsheaders', 'crispy_forms', 'crispy_bootstrap5', 'widget_tweaks', 'mathfilters', 'bootstrap4', 'main', 'dispensaries.apps.DispensariesConfig', 'clients.apps.ClientsConfig', 'brands', 'blog', 'census', 'users.apps.UsersConfig', 'accounts', 'allauth', 'allauth.account', 'allauth.socialaccount', 'allauth.socialaccount.providers.google', 'allauth.socialaccount.providers.facebook', 'gunicorn', 'imagekit', 'rawdata', 'reversion', 'reversion_compare', 'import_export', 'silk', 'api', 'rest_framework', 'rest_framework.authtoken', 'rest_framework_api_key', 'drf_spectacular', 'django_filters']
INTERNAL_IPS ['127.0.0.1']
JAZZMIN_SETTINGS {'changeform_format': 'horizontal_tabs', 'changeform_format_overrides': {'auth.group': 'vertical_tabs', 'auth.user': 'vertical_tabs'}, 'copyright': 'JointCommerce', 'custom_css': 'admin/css/admin_custom.css', 'custom_js': None, 'default_icon_children': 'fas fa-arrow-circle-right', 'default_icon_parents': 'fas fa-chevron-circle-right', 'icons': {'admin.LogEntry': 'fas fa-file', 'auth': 'fas fa-users-cog', 'auth.Group': 'fas fa-users', 'auth.user': 'fas fa-user', 'users.User': 'fas fa-user'}, 'navigation_expanded': True, 'related_modal_active': False, 'show_sidebar': True, 'show_ui_builder': True, 'site_brand': 'JointCommerce', 'site_header': 'JointCommerce', 'site_icon': 'images/favicon.png', 'site_logo': 'directory/img/favicon.ico', 'site_title': 'JointCommerce', 'topmenu_links': [{'name': 'JointCommerce', 'permissions': ['auth.view_user'], 'url': 'home'}, {'model': 'auth.User'}], 'use_fontawesome': True, 'user_avatar': None, 'welcome_sign': 'Welcome to the Admin End of JointCommerce'}
JAZZMIN_UI_TWEAKS {'body_small_text': False, 'brand_colour': 'btn-primary', 'brand_small_text': False, 'button_classes': {'danger': 'btn-danger', 'info': 'btn-info', 'primary': 'btn-primary', 'secondary': 'btn-secondary', 'success': 'btn-success', 'warning': 'btn-warning'}, 'footer_fixed': False, 'footer_small_text': False, 'layout_boxed': False, 'navbar_fixed': True, 'navbar_small_text': False, 'no_navbar_border': True, 'sidebar_disable_expand': False, 'sidebar_fixed': True, 'sidebar_nav_child_indent': False, 'sidebar_nav_compact_style': True, 'sidebar_nav_flat_style': False, 'sidebar_nav_legacy_style': False, 'sidebar_nav_small_text': False}
KT_THEME 'metronic'
KT_THEME_ASSETS {'css': ['dashboard/plugins/global/plugins.bundle.css', 'dashboard/css/style.bundle.css'], 'favicon': 'dashboard/media/logos/jointcommerce_logo_short.png', 'fonts': ['https://fonts.googleapis.com/css?family=Inter:300,400,500,600,700'], 'js': ['dashboard/plugins/global/plugins.bundle.js', 'dashboard/js/scripts.bundle.js']}
KT_THEME_DIRECTION 'ltr'
KT_THEME_ICONS 'duotone'
KT_THEME_LAYOUT_DIR 'layout'
KT_THEME_MODE_DEFAULT 'light'
KT_THEME_MODE_SWITCH_ENABLED True
KT_THEME_VENDORS {'amcharts': {'js': ['https://cdn.amcharts.com/lib/5/index.js', 'https://cdn.amcharts.com/lib/5/xy.js', 'https://cdn.amcharts.com/lib/5/percent.js', 'https://cdn.amcharts.com/lib/5/radar.js', 'https://cdn.amcharts.com/lib/5/themes/Animated.js']}, 'amcharts-maps': {'js': ['https://cdn.amcharts.com/lib/5/index.js', 'https://cdn.amcharts.com/lib/5/map.js', 'https://cdn.amcharts.com/lib/5/geodata/worldLow.js', 'https://cdn.amcharts.com/lib/5/geodata/continentsLow.js', 'https://cdn.amcharts.com/lib/5/geodata/usaLow.js', 'https://cdn.amcharts.com/lib/5/geodata/worldTimeZonesLow.js', 'https://cdn.amcharts.com/lib/5/geodata/worldTimeZoneAreasLow.js', 'https://cdn.amcharts.com/lib/5/themes/Animated.js']}, 'amcharts-stock': {'js': ['https://cdn.amcharts.com/lib/5/index.js', 'https://cdn.amcharts.com/lib/5/xy.js', 'https://cdn.amcharts.com/lib/5/themes/Animated.js']}, 'bootstrap-select': {'css': ['dashboard/plugins/custom/bootstrap-select/bootstrap-select.bundle.css'], 'js': ['dashboard/plugins/custom/bootstrap-select/bootstrap-select.bundle.js']}, 'bootstrap5': {'css': ['https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css'], 'js': ['https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js']}, 'ckeditor-balloon': {'js': ['dashboard/plugins/custom/ckeditor/ckeditor-balloon.bundle.js']}, 'ckeditor-balloon-block': {'js': ['dashboard/plugins/custom/ckeditor/ckeditor-balloon-block.bundle.js']}, 'ckeditor-classic': {'js': ['dashboard/plugins/custom/ckeditor/ckeditor-classic.bundle.js']}, 'ckeditor-document': {'js': ['dashboard/plugins/custom/ckeditor/ckeditor-document.bundle.js']}, 'ckeditor-inline': {'js': ['dashboard/plugins/custom/ckeditor/ckeditor-inline.bundle.js']}, 'cookiealert': {'css': ['dashboard/plugins/custom/cookiealert/cookiealert.bundle.css'], 'js': ['dashboard/plugins/custom/cookiealert/cookiealert.bundle.js']}, 'cropper': {'css': ['dashboard/plugins/custom/cropper/cropper.bundle.css'], 'js': ['dashboard/plugins/custom/cropper/cropper.bundle.js']}, 'datatables': {'css': ['dashboard/plugins/custom/datatables/datatables.bundle.css'], 'js': ['dashboard/plugins/custom/datatables/datatables.bundle.js']}, 'draggable': {'js': ['dashboard/plugins/custom/draggable/draggable.bundle.js']}, 'flotcharts': {'js': ['dashboard/plugins/custom/flotcharts/flotcharts.bundle.js']}, 'formrepeater': {'js': ['dashboard/plugins/custom/formrepeater/formrepeater.bundle.js']}, 'fslightbox': {'js': ['dashboard/plugins/custom/fslightbox/fslightbox.bundle.js']}, 'fullcalendar': {'css': ['dashboard/plugins/custom/fullcalendar/fullcalendar.bundle.css'], 'js': ['dashboard/plugins/custom/fullcalendar/fullcalendar.bundle.js']}, 'google-jsapi': '********************', 'jkanban': {'css': ['dashboard/plugins/custom/jkanban/jkanban.bundle.css'], 'js': ['dashboard/plugins/custom/jkanban/jkanban.bundle.js']}, 'jstree': {'css': ['dashboard/plugins/custom/jstree/jstree.bundle.css'], 'js': ['dashboard/plugins/custom/jstree/jstree.bundle.js']}, 'leaflet': {'css': ['dashboard/plugins/custom/leaflet/leaflet.bundle.css'], 'js': ['dashboard/plugins/custom/leaflet/leaflet.bundle.js']}, 'prismjs': {'css': ['dashboard/plugins/custom/prismjs/prismjs.bundle.css'], 'js': ['dashboard/plugins/custom/prismjs/prismjs.bundle.js']}, 'tinymce': {'js': ['dashboard/plugins/custom/tinymce/tinymce.bundle.js']}, 'typedjs': {'js': ['dashboard/plugins/custom/typedjs/typedjs.bundle.js']}, 'vis-timeline': {'css': ['dashboard/plugins/custom/vis-timeline/vis-timeline.bundle.css'], 'js': ['dashboard/plugins/custom/vis-timeline/vis-timeline.bundle.js']}}
LANGUAGES [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur']
LANGUAGE_CODE 'en-us'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LOCALE_PATHS ['/app/locale']
LOGGING {'disable_existing_loggers': False, 'formatters': {'simple': {'format': '%(levelname)s %(message)s'}, 'verbose': {'datefmt': '%Y-%m-%d %H:%M:%S', 'format': '%(asctime)s [%(process)d] ' '[%(levelname)s] pathname=%(pathname)s ' 'lineno=%(lineno)s funcname=%(funcName)s ' '%(message)s'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose', 'level': 'DEBUG'}, 'null': {'class': 'logging.NullHandler', 'level': 'DEBUG'}}, 'loggers': {'testlogger': {'handlers': ['console'], 'level': 'INFO'}}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/'
LOGIN_URL '/accounts/login/'
LOGOUT_REDIRECT_URL '/'
MANAGERS []
MAPBOX_ACCESS_TOKEN '********************'
MEDIA_ROOT '/app/media'
MEDIA_URL '/media/'
MESSAGES_STORAGE 'django.contrib.messages.storage.session.SessionStorage'
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MESSAGE_TAGS {10: 'alert-secondary', 20: 'alert-info', 25: 'alert-success', 30: 'alert-warning', 40: 'alert-danger'}
MIDDLEWARE ['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.middleware.gzip.GZipMiddleware', 'rawdata.middleware.BlockIPMiddleware', 'rawdata.middleware.RedirectSubdomainMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'allauth.account.middleware.AccountMiddleware', 'htmlmin.middleware.HtmlMinifyMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', 'silk.middleware.SilkyMiddleware']
MIGRATION_MODULES {}
MINIFY_STATIC True
MONTH_DAY_FORMAT 'F j'
NUMBER_GROUPING 0
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PREPEND_WWW False
REST_FRAMEWORK {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.TokenAuthentication', 'rest_framework_api_key.permissions.HasAPIKey'], 'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'], 'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated'], 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', 'DEFAULT_THROTTLE_CLASSES': ['rest_framework.throttling.UserRateThrottle', 'rest_framework.throttling.AnonRateThrottle'], 'DEFAULT_THROTTLE_RATES': {'anon': '100/day', 'user': '1000/day'}}
REVERSION_COMPARE_FOREIGN_OBJECTS_AS_ID False
REVERSION_COMPARE_IGNORE_NOT_REGISTERED False
ROOT_URLCONF '_jointcommerce.urls'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER None
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE 'Lax'
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE '_jointcommerce.settings'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_ID 1
SOCIALACCOUNT_LOGIN_ON_GET True
SOCIALACCOUNT_PROVIDERS {'facebook': {'AUTH_PARAMS': {'auth_type': 'reauthenticate'}, 'EXCHANGE_TOKEN': '********************', 'FIELDS': ['id', 'first_name', 'last_name', 'middle_name', 'name', 'name_format', 'picture', 'short_name'], 'GRAPH_API_URL': '********************', 'INIT_PARAMS': {'cookie': True}, 'LOCALE_FUNC': <function <lambda> at 0x7fa309cea660>, 'METHOD': 'oauth2', 'SCOPE': ['email', 'public_profile'], 'SDK_URL': '//connect.facebook.net/{locale}/sdk.js', 'VERIFIED_EMAIL': False, 'VERSION': 'v13.0'}, 'google': {'AUTH_PARAMS': {'access_type': 'online'}, 'SCOPE': ['profile', 'email']}}
SOCIALACCOUNT_QUERY_EMAIL True
SPECTACULAR_SETTINGS {'COMPONENTS': {'securitySchemes': {'BearerAuth': {'bearerFormat': 'JWT', 'description': 'JWT ' 'Authorization ' 'header ' 'using the ' 'Bearer ' 'scheme. ' 'Example: ' '"Authorization: ' 'Bearer ' '{token}"', 'scheme': 'bearer', 'type': 'http'}}}, 'COMPONENT_SPLIT_REQUEST': True, 'CONTACT': {'email': 'admin@jointcommerce.com'}, 'DESCRIPTION': 'API documentation for the JointCommerce project, allowing ' 'management of agencies, advertisers, campaign groups, and ' 'campaigns with date range filtering.', 'LICENSE': {'name': 'BSD License'}, 'SCHEMA_PATH_PREFIX': '/api/', 'SECURITY': [{'BearerAuth': []}], 'SERVERS': [{'description': 'Production Server', 'url': 'https://api.jointcommerce.com/v1'}], 'SERVE_INCLUDE_SCHEMA': False, 'TERMS_OF_SERVICE': 'https://app.jointcommerce.com/terms/', 'TITLE': 'JointCommerce API', 'VERSION': 'v1'}
STATICFILES_DIRS ['/app/static']
STATICFILES_FINDERS ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT '/app/staticfiles'
STATIC_URL '/static/'
STORAGES {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
TEMPLATES [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/templates'], 'OPTIONS': {'builtins': ['django.templatetags.static', '_jointcommerce.templatetags.theme'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', '_jointcommerce.context_processors.main_pages', '_jointcommerce.context_processors.agency_membership', '_jointcommerce.context_processors.google_analytics_env'], 'libraries': {'theme': '_jointcommerce.templatetags.theme'}}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'America/Los_Angeles'
USE_I18N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST False
USE_X_FORWARDED_PORT False
WSGI_APPLICATION '_jointcommerce.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Connection close
Connect-Time 0
Cookie => see Request panel
Host app.jointcommerce.com
Total-Route-Time 0
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Via 1.1 vegur
X-Forwarded-For 3.147.51.16
X-Forwarded-Port 443
X-Forwarded-Proto https
X-Request-Id 38f00ce8-02b7-4f8e-b0a0-fd47ee026c30
X-Request-Start 1726813654041

Response headers

Key Value
Content-Type text/html; charset=utf-8

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
PATH_INFO /accounts/signup/
QUERY_STRING next=%2Fdispensaries%2F8984%2F
REMOTE_ADDR 10.1.86.32
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 0.0.0.0
SERVER_PORT 33094
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE gunicorn/21.2.0

Request

View information

View function Arguments Keyword arguments URL name
accounts.views.view () {} accounts-signup

Cookies

Variable Value
'fikker-TwKq-jUtu' 'HMpCJGMNPNtu0qVkKQHSleP9vYHoJUjg'

No session data

GET data

Variable Value
'next' '/dispensaries/8984/'

No POST data

SQL queries from 1 connection

  • default 978.72 ms (12 queries including 2 similar and 2 duplicates )
Query Timeline Time (ms) Action
INSERT INTO "silk_request" ("id", "path", "query_params", "raw_body", "body", "method", "start_time", "view_name", "end_time", "time_taken", "encoded_headers", "meta_time", "meta_num_queries", "meta_time_spent_queries", "pyprofile", "prof_file", "num_sql_queries")
VALUES ('6a03c6f9-2417-433c-9919-48061adf7acf', '/accounts/signup/', '{"next": "/dispensaries/8984/"}', '', '', 'GET', '2024-09-20T06:27:34.044547+00:00'::timestamptz, 'accounts-signup', NULL, NULL, '{"host": "app.jointcommerce.com", "connection": "close", "accept": "*/*", "user-agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "cookie": "********************", "accept-encoding": "gzip, br, zstd, deflate", "x-request-id": "38f00ce8-02b7-4f8e-b0a0-fd47ee026c30", "x-forwarded-for": "3.147.51.16", "x-forwarded-proto": "https", "x-forwarded-port": "443", "via": "1.1 vegur", "connect-time": "0", "x-request-start": "1726813654041", "total-route-time": "0"}', NULL, NULL, NULL, '', '', 0)
INSERT INTO "silk_request" ("id", "path", "query_params", "raw_body", "body", "method", "start_time", "view_name", "end_time", "time_taken", "encoded_headers", "meta_time", "meta_num_queries", "meta_time_spent_queries", "pyprofile", "prof_file", "num_sql_queries") VALUES ('6a03c6f9-2417-433c-9919-48061adf7acf', '/accounts/signup/', '{"next": "/dispensaries/8984/"}', '', '', 'GET', '2024-09-20T06:27:34.044547+00:00'::timestamptz, 'accounts-signup', NULL, NULL, '{"host": "app.jointcommerce.com", "connection": "close", "accept": "*/*", "user-agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "cookie": "********************", "accept-encoding": "gzip, br, zstd, deflate", "x-request-id": "38f00ce8-02b7-4f8e-b0a0-fd47ee026c30", "x-forwarded-for": "3.147.51.16", "x-forwarded-proto": "https", "x-forwarded-port": "443", "via": "1.1 vegur", "connect-time": "0", "x-request-start": "1726813654041", "total-route-time": "0"}', NULL, NULL, NULL, '', '', 0)
43.25

Connection: default

Transaction status: Idle

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(70)
  self.process_request(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_request(120)
  request_model = RequestModelFactory(request).construct_request_model()

/app/.heroku/python/lib/python3.11/site-packages/silk/model_factory.py in construct_request_model(230)
  request_model = models.Request.objects.create(

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in save(203)
  super().save(*args, **kwargs)

SELECT "silk_request"."start_time"
  FROM "silk_request"
 ORDER BY "silk_request"."start_time" DESC
 LIMIT 1
OFFSET 9990
SELECT ••• FROM "silk_request" ORDER BY "silk_request"."start_time" DESC LIMIT 1 OFFSET 9990
2 similar queries. Duplicated 2 times.
549.20

Connection: default

Transaction status: Idle

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(70)
  self.process_request(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_request(120)
  request_model = RequestModelFactory(request).construct_request_model()

/app/.heroku/python/lib/python3.11/site-packages/silk/model_factory.py in construct_request_model(230)
  request_model = models.Request.objects.create(

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in save(204)
  Request.garbage_collect(force=False)

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in garbage_collect(173)
  time_cutoff = cls.objects.order_by(

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(100)
  return self._execute_sql(*args, **kwargs)

SELECT "socialaccount_socialapp"."id",
       "socialaccount_socialapp"."provider",
       "socialaccount_socialapp"."provider_id",
       "socialaccount_socialapp"."name",
       "socialaccount_socialapp"."client_id",
       "socialaccount_socialapp"."secret",
       "socialaccount_socialapp"."key",
       "socialaccount_socialapp"."settings"
  FROM "socialaccount_socialapp"
 INNER JOIN "socialaccount_socialapp_sites"
    ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id")
 WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = 'google' OR "socialaccount_socialapp"."provider_id" = 'google'))
SELECT ••• FROM "socialaccount_socialapp" INNER JOIN "socialaccount_socialapp_sites" ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id") WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = 'google' OR "socialaccount_socialapp"."provider_id" = 'google'))
44.53

Connection: default

Transaction status: Idle

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/app/.heroku/python/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(171)
  return self._render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(111)
  return self.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(111)
  return self.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/templatetags/socialaccount.py in provider_login_url(20)
  provider = adapter.get_provider(request, provider)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in get_provider(206)
  app = self.get_app(request, provider=provider)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in get_app(286)
  apps = self.list_apps(request, provider=provider, client_id=client_id)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in list_apps(238)
  for app in db_apps:

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(89)
  return self._execute_sql(*args, **kwargs)

77 </form>
78 <hr class="my-3 hr-text letter-spacing-2" data-content="OR">
79 <div class="d-grid gap-2">
80 <a href="{% provider_login_url 'google' %}" class="btn btn-google btn-social">
81 <i class="fa-2x fa-google fab btn-social-icon"></i>Connect <span class="d-none d-sm-inline">with Google</span>
82 </a>
83 </div>
84 <br class="my-4">

/app/templates/directory/accounts/signup.html

EXPLAIN SELECT "socialaccount_socialapp"."id",
       "socialaccount_socialapp"."provider",
       "socialaccount_socialapp"."provider_id",
       "socialaccount_socialapp"."name",
       "socialaccount_socialapp"."client_id",
       "socialaccount_socialapp"."secret",
       "socialaccount_socialapp"."key",
       "socialaccount_socialapp"."settings"
  FROM "socialaccount_socialapp"
 INNER JOIN "socialaccount_socialapp_sites"
    ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id")
 WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = 'google' OR "socialaccount_socialapp"."provider_id" = 'google'))
EXPLAIN SELECT "socialaccount_socialapp"."id", "socialaccount_socialapp"."provider", "socialaccount_socialapp"."provider_id", "socialaccount_socialapp"."name", "socialaccount_socialapp"."client_id", "socialaccount_socialapp"."secret", "socialaccount_socialapp"."key", "socialaccount_socialapp"."settings" FROM "socialaccount_socialapp" INNER JOIN "socialaccount_socialapp_sites" ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id") WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = 'google' OR "socialaccount_socialapp"."provider_id" = 'google'))
33.38

Connection: default

Transaction status: Idle

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(72)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/app/.heroku/python/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(171)
  return self._render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(111)
  return self.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(111)
  return self.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1000)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py in render_annotated(961)
  return self.render(context)

/app/.heroku/python/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/templatetags/socialaccount.py in provider_login_url(20)
  provider = adapter.get_provider(request, provider)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in get_provider(206)
  app = self.get_app(request, provider=provider)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in get_app(286)
  apps = self.list_apps(request, provider=provider, client_id=client_id)

/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py in list_apps(238)
  for app in db_apps:

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(96)
  query_dict['analysis'] = _explain_query(self.connection, q, params)

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in _explain_query(58)
  cur.execute(prefixed_query, params)

77 </form>
78 <hr class="my-3 hr-text letter-spacing-2" data-content="OR">
79 <div class="d-grid gap-2">
80 <a href="{% provider_login_url 'google' %}" class="btn btn-google btn-social">
81 <i class="fa-2x fa-google fab btn-social-icon"></i>Connect <span class="d-none d-sm-inline">with Google</span>
82 </a>
83 </div>
84 <br class="my-4">

/app/templates/directory/accounts/signup.html

INSERT INTO "silk_response" ("id", "request_id", "status_code", "raw_body", "body", "encoded_headers")
VALUES ('ee3cd6ee-40f8-46a3-bbf6-0d6cfb1af685', '6a03c6f9-2417-433c-9919-48061adf7acf', 200, 'CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICAKICAgIAogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImFsbCxmb2xsb3ciPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1MYW5ndWFnZSIgY29udGVudD0iZW4iPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJKb2ludENvbW1lcmNlIj4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZSIgY29udGVudD0ibm90cmFuc2xhdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iSm9pbnRDb21tZXJjZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbl9VUyI+CiAgICA8bWV0YSBuYW1lPSJkaXN0cmlidXRpb24iIGNvbnRlbnQ9Ikdsb2JhbCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJSZXBseS10byIgY29udGVudD0iYWRtaW5Aam9pbnRjb21tZXJjZS5jb20iPgogICAgPCEtLSBGYXZpY29uLS0+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9mYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9hcHAuam9pbnRjb21tZXJjZS5jb20vYWNjb3VudHMvc2lnbnVwLz9uZXh0PSUyRmRpc3BlbnNhcmllcyUyRjg5ODQlMkYiIC8+CiAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZmxhbmc9ImVuLVVTIiBocmVmPSJodHRwczovL2FwcC5qb2ludGNvbW1lcmNlLmNvbS9hY2NvdW50cy9zaWdudXAvP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgLz4KICAgIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmbGFuZz0ieC1kZWZhdWx0IiBocmVmPSJodHRwczovL2FwcC5qb2ludGNvbW1lcmNlLmNvbS9hY2NvdW50cy9zaWdudXAvP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgLz4KICAgIAogICAgPCEtLSBXZWJzaXRlLWxldmVsIHNjaGVtYSAtLT4KICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICAgICAgewogICAgICAgICJAY29udGV4dCI6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgICAgICAgIkB0eXBlIjogIldlYlNpdGUiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cuSm9pbnRDb21tZXJjZS5jb20vIiwKICAgICAgICAibmFtZSI6ICJKb2ludENvbW1lcmNlIC0gRmluZCBZb3VyIExvY2FsIERpc3BlbnNhcnkgQW5kIEJyYW5kIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmluZCB0aGUgYmVzdCBsb2NhbCBkaXNwZW5zYXJpZXMgYW5kIGJyYW5kcyBuZWFyIHlvdS4iLAogICAgICAgICJwdWJsaXNoZXIiOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAogICAgICAgICAgICAibmFtZSI6ICJKb2ludENvbW1lcmNlIiwKICAgICAgICAgICAgImxvZ28iOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJJbWFnZU9iamVjdCIsCiAgICAgICAgICAgICJ1cmwiOiAiL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC53ZWJwIgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIH0KICAgIDwvc2NyaXB0PgoKICAgIDwhLS0galF1ZXJ5LS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL2pxdWVyeS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gQm9vdHN0cmFwIEpTIGJ1bmRsZSAtIEJvb3RzdHJhcCArIFBvcHBlckpTLS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL2Jvb3RzdHJhcC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IS0tIE1hZ25pZmljIFBvcHVwIC0gTGlnaHRib3ggZm9yIHRoZSBnYWxsZXJ5LS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL21hZ25pZmljLXBvcHVwL2pxdWVyeS5tYWduaWZpYy1wb3B1cC5taW4uanMiPjwvc2NyaXB0PgogICAgPHN2ZyBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICAgIDxzeW1ib2wgaWQ9ImhlYXJ0LTEiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICA8cGF0aCBkPSJNMTIgMjEuMzVsLTEuNDUtMS4zMkM1LjQgMTUuMzYgMiAxMi4yOCAyIDguNSAyIDUuNDIgNC40MiAzIDcuNSAzYzEuNzQgMCAzLjQxIDEuMDEgNC41IDIuMDlDMTMuMDkgNC4wMSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiI+PC9wYXRoPgogICAgICAgIDwvc3ltYm9sPgogICAgPC9zdmc+CiAgICAKICAgIDx0aXRsZT5TaWduIFVwIC0gSm9pbnRDb21tZXJjZTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iU2lnbiB1cCB0byBKb2ludENvbW1lcmNlIHRvIHNhdmUgYW5kIHJldmlldyB5b3VyIGZhdm9yaXRlIGNhbm5hYmlzIGJyYW5kcyBhbmQgZGlzcGVuc2FyaWVzLiI+CiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0ic2lnbiB1cCwgY2FubmFiaXMsIGRpc3BlbnNhcnksIGRpc3BlbnNhcmllcyI+CiAgICA8IS0tIE9wZW4gR3JhcGggLyBGYWNlYm9vayAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iU2lnbiBVcCAtIEpvaW50Q29tbWVyY2UiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJTaWduIHVwIHRvIEpvaW50Q29tbWVyY2UgdG8gc2F2ZSBhbmQgcmV2aWV3IHlvdXIgZmF2b3JpdGUgY2FubmFiaXMgYnJhbmRzIGFuZCBkaXNwZW5zYXJpZXMuIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9hcHAuam9pbnRjb21tZXJjZS5jb20vYWNjb3VudHMvc2lnbnVwLz9uZXh0PSUyRmRpc3BlbnNhcmllcyUyRjg5ODQlMkYiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSIxMjAwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCI+CiAgICA8IS0tIFR3aXR0ZXIgLS0+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iTG9naW4gLSBKb2ludENvbW1lcmNlIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlNpZ24gdXAgdG8gSm9pbnRDb21tZXJjZSB0byBzYXZlIGFuZCByZXZpZXcgeW91ciBmYXZvcml0ZSBjYW5uYWJpcyBicmFuZHMgYW5kIGRpc3BlbnNhcmllcy4iPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC53ZWJwIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6c2l0ZSIgY29udGVudD0iQEpvaW50Q29tbWVyY2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSJASm9pbnRDb21tZXJjZSI+CiAgICAKCiAgICAKICAgICAgCiAgICAKICAgIAoKICAgIDxsaW5rIGhyZWY9J2h0dHBzOi8vYXBpLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3YyLjYuMS9tYXBib3gtZ2wuY3NzJyByZWw9J3N0eWxlc2hlZXQnIC8+CiAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2h0dHBzOi8vYXBpLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3BsdWdpbnMvbWFwYm94LWdsLWdlb2NvZGVyL3Y0LjcuMC9tYXBib3gtZ2wtZ2VvY29kZXIuY3NzJyB0eXBlPSd0ZXh0L2NzcycgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91bnBrZy5jb20vc3dpcGVyL3N3aXBlci1idW5kbGUubWluLmNzcyIvPgogICAgPCEtLSBMZWFmbGV0IE1hcHMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuY3NzIiBpbnRlZ3JpdHk9InNoYTUxMi14d0UvQXo5enJqQklwaEFjQmIzRjZKVnF4ZjQ2K0NETHdmTE1IbG9OdTZLRVFDQVdpNkhjRFViZU9mQklwdEY3dGNDenVzS0ZqRncyeXV2RXBETDl3UT09IiBjcm9zc29yaWdpbj0iIj4KICAgIDwhLS0gUHJpY2UgU2xpZGVyIFN0eWxlc2hlZXRzIC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3Ivbm91aXNsaWRlci9ub3Vpc2xpZGVyLmNzcyI+CiAgICA8IS0tIEdvb2dsZSBmb250cyAtIFBsYXlmYWlyIERpc3BsYXktLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6NDAwLDQwMGksNzAwIj4KICAgIDwhLS0gR29vZ2xlIGZvbnRzIC0gUG9wcGlucy0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UG9wcGluczozMDAsNDAwLDQwMGksNzAwIj4KICAgIDwhLS0gc3dpcGVyLS0+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL1N3aXBlci80LjQuMS9jc3Mvc3dpcGVyLm1pbi5jc3MiPgogICAgPCEtLSBNYWduaWdpYyBQb3B1cC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3IvbWFnbmlmaWMtcG9wdXAvbWFnbmlmaWMtcG9wdXAuY3NzIj4KICAgIDwhLS0gdGhlbWUgc3R5bGVzaGVldC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS9jc3Mvc3R5bGUuZ3JlZW4ubWluLmNzcyIgaWQ9InRoZW1lLXN0eWxlc2hlZXQiPgogICAgPCEtLSBDdXN0b20gc3R5bGVzaGVldCAtIGZvciB5b3VyIGNoYW5nZXMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0YXRpYy9kaXJlY3RvcnkvY3NzL2N1c3RvbS5jc3MiPgogICAgPCEtLSBDdXN0b20gc3R5bGVzaGVldCAtIGZvciB5b3VyIGNoYW5nZXMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0YXRpYy9kaXJlY3RvcnkvY3NzL3NlYXJjaC5jc3MiPgogICAgPCEtLSBGYXZpY29uLS0+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9jYXJ0b2Nocm9tZS1sb2dvLWljb24tdHJhbnNwYXJlbnQucG5nIj4KICAgIDwhLS0gRm9udCBBd2Vzb21lIENTUy0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS5mb250YXdlc29tZS5jb20vcmVsZWFzZXMvdjUuOC4xL2Nzcy9hbGwuY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC01MG9CVUhFbXZwUSsxbFc0eTU3UFRGbWhDYVhwME1MNWQ2ME0xTTd1SDIrbnFVaXZ6SWViaG5kT0pLMjhhbnZmIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9mc2xpZ2h0Ym94L2luZGV4LmNzcyI+CgogICAgCiAgICAKCiAgPC9oZWFkPgogIDxib2R5PgogICAgCiAgICAKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMyI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93IG1pbi12aC0xMDAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCBjb2wtbGctNiBjb2wteGwtNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAwIHB5LTUgcHgtbWQtNSBweC14eGwtNiBwb3NpdGlvbi1yZWxhdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iPjxpbWcgY2xhc3M9ImltZy1mbHVpZCBtYi00IiBzcmM9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9qb2ludGNvbW1lcmNlX2xvZ29fc2hvcnQucG5nIiBhbHQ9Ii4uLiIgc3R5bGU9Im1heC13aWR0aDogNHJlbTsiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlNpZ24gVXAhPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlNpZ24gdXAgZm9yIHlvdXIgZnJlZSBhY2NvdW50IHRvIG1hcmsgeW91ciBmYXZvcml0ZSBsb2NhdGlvbnMgYW5kIHNlbmQgcmV2aWV3cyBvZiB5b3VyIGV4cGVyaWVuY2UuIEpvaW4gSm9pbnRDb21tZXJjZSdzIGNvbW11bml0eSE8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWNjb3VudHMvc2lnbnVwLyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmZtaWRkbGV3YXJldG9rZW4iIHZhbHVlPSJJWnJic3lrMlZ5Q2EzVmQzNmQ0QmtGUTgyN2pTOEtEUHpTd1hCZ2lQNElTRHh0Qk9HREx4aXY5TG8zMFdoZ1h1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02IG1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKICAgIDxkaXYgaWQ9ImRpdl9pZF9lbWFpbCIgY2xhc3M9Im1iLTMiPgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPGxhYmVsCiAgICAgICAgICAgICAgICBmb3I9ImxvZ2luVXNlcm5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgRW1haWwgQWRkcmVzczxzcGFuIGNsYXNzPSJhc3Rlcmlza0ZpZWxkIj4qPC9zcGFuPgogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgIAoKICAgICAgICAKCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wgZW1haWxpbnB1dCIgcGxhY2Vob2xkZXI9Im5hbWVAYWRkcmVzcy5jb20iIGlkPSJsb2dpblVzZXJuYW1lIiBhdXRvY29tcGxldGU9Im9mZiIgcmVxdWlyZWQgZGF0YS1tc2c9IlBsZWFzZSBlbnRlciB5b3VyIGVtYWlsIiBtYXhsZW5ndGg9IjMyMCI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKCgoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgIDwvZGl2PgogICAgCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYgbWItMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgoKICAgIAogICAgPGRpdiBpZD0iZGl2X2lkX3VzZXJuYW1lIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0idXNlcm5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgVXNlcm5hbWU8c3BhbiBjbGFzcz0iYXN0ZXJpc2tGaWVsZCI+Kjwvc3Bhbj4KICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAKCiAgICAgICAgCgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wgdGV4dGlucHV0IiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIGlkPSJ1c2VybmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciB1c2VybmFtZSIgYXV0b2ZvY3VzPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCgoKCgogICAgCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfZmlyc3RfbmFtZSIgY2xhc3M9Im1iLTMiPgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPGxhYmVsCiAgICAgICAgICAgICAgICBmb3I9ImZpcnN0TmFtZSIgY2xhc3M9ImZvcm0tbGFiZWwgcmVxdWlyZWRGaWVsZCI+CiAgICAgICAgICAgICAgICBGaXJzdCBOYW1lPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZpcnN0X25hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wgdGV4dGlucHV0IiBwbGFjZWhvbGRlcj0iRmlyc3QgTmFtZSIgaWQ9ImZpcnN0TmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciBmaXJzdCBuYW1lIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCgoKICAgIAoKCgoKICAgIAoKCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+CiAgICAKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfbGFzdF9uYW1lIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0ibGFzdE5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgTGFzdCBOYW1lPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RfbmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCB0ZXh0aW5wdXQiIHBsYWNlaG9sZGVyPSJMYXN0IE5hbWUiIGlkPSJsYXN0TmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciBsYXN0IG5hbWUiPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCgoKCgogICAgCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfcGFzc3dvcmQxIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0iaWRfcGFzc3dvcmQxIiBjbGFzcz0iZm9ybS1sYWJlbCByZXF1aXJlZEZpZWxkIj4KICAgICAgICAgICAgICAgIFBhc3N3b3JkPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiBjbGFzcz0icGFzc3dvcmRpbnB1dCBmb3JtLWNvbnRyb2wiIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImlkX3Bhc3N3b3JkMV9oZWxwdGV4dCIgaWQ9ImlkX3Bhc3N3b3JkMSI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKICAgIAogICAgICAgIDxkaXYgaWQ9ImlkX3Bhc3N3b3JkMV9oZWxwdGV4dCIgY2xhc3M9ImZvcm0tdGV4dCI+PHVsPjxsaT5Zb3VyIHBhc3N3b3JkIGNhbuKAmXQgYmUgdG9vIHNpbWlsYXIgdG8geW91ciBvdGhlciBwZXJzb25hbCBpbmZvcm1hdGlvbi48L2xpPjxsaT5Zb3VyIHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCA4IGNoYXJhY3RlcnMuPC9saT48bGk+WW91ciBwYXNzd29yZCBjYW7igJl0IGJlIGEgY29tbW9ubHkgdXNlZCBwYXNzd29yZC48L2xpPjxsaT5Zb3VyIHBhc3N3b3JkIGNhbuKAmXQgYmUgZW50aXJlbHkgbnVtZXJpYy48L2xpPjwvdWw+PC9kaXY+CiAgICAKCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02IG1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKICAgIDxkaXYgaWQ9ImRpdl9pZF9wYXNzd29yZDIiIGNsYXNzPSJtYi0zIj4KICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxsYWJlbAogICAgICAgICAgICAgICAgZm9yPSJpZF9wYXNzd29yZDIiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgUGFzc3dvcmQgY29uZmlybWF0aW9uPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZDIiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiBjbGFzcz0icGFzc3dvcmRpbnB1dCBmb3JtLWNvbnRyb2wiIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImlkX3Bhc3N3b3JkMl9oZWxwdGV4dCIgaWQ9ImlkX3Bhc3N3b3JkMiI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKICAgIAogICAgICAgIDxkaXYgaWQ9ImlkX3Bhc3N3b3JkMl9oZWxwdGV4dCIgY2xhc3M9ImZvcm0tdGV4dCI+RW50ZXIgdGhlIHNhbWUgcGFzc3dvcmQgYXMgYmVmb3JlLCBmb3IgdmVyaWZpY2F0aW9uLjwvZGl2PgogICAgCgoKCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+CiAgICAKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkLWdyaWQgZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlNpZ24gVXA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz0ibXktMyBoci10ZXh0IGxldHRlci1zcGFjaW5nLTIiIGRhdGEtY29udGVudD0iT1IiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImQtZ3JpZCBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9hY2NvdW50cy9nb29nbGUvbG9naW4vP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgY2xhc3M9ImJ0biBidG4tZ29vZ2xlIGJ0bi1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhLTJ4IGZhLWdvb2dsZSBmYWIgYnRuLXNvY2lhbC1pY29uIj48L2k+Q29ubmVjdCA8c3BhbiBjbGFzcz0iZC1ub25lIGQtc20taW5saW5lIj53aXRoIEdvb2dsZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxiciBjbGFzcz0ibXktNCI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1tdXRlZCI+Qnkgc2lnbmluZyB1cCB5b3UgYWdyZWUgdG8gSm9pbnRDb21tZXJjZSdzIDxhIGhyZWY9Ii90ZXJtcy8iIHRhcmdldD0iX2JsYW5rIj5UZXJtcyBvZiBVc2U8L2E+IGFuZCA8YSBocmVmPSIvcHJpdmFjeS1wb2xpY3kvIiB0YXJnZXQ9Il9ibGFuayI+UHJpdmFjeSBQb2xpY3k8L2E+LjwvcD4KICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9Im15LTQiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PHNtYWxsIGNsYXNzPSJ0ZXh0LW11dGVkIHRleHQtY2VudGVyIj5IYXZlIGFuIGFjY291bnQgYWxyZWFkeT8gPGEgaHJlZj0iL2FjY291bnRzL2xvZ2luLyI+U2lnbiBJbjwvYT48L3NtYWxsPjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iY2xvc2UtYWJzb2x1dGUgbWUtbWQtNSBtZS14bC02IHB0LTUiIGhyZWY9Ii8iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzdmctaWNvbiB3LTNyZW0gaC0zcmVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2Nsb3NlLTEiPiA8L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtbGctNiBjb2wteGwtNyBkLW5vbmUgZC1tZC1ibG9jayI+CiAgICAgICAgICAgICAgICA8IS0tIEltYWdlLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1jb3ZlciBoLTEwMCBtZS1uMyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgvc3RhdGljL2RpcmVjdG9yeS9pbWcvcGhvdG8vaG9tZXBhZ2Uvam9pbnRjb21tZXJjZS1iYWNrZ3JvdW5kLnBuZyk7Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCiAgICAKICAgIAoKICAgIDxzY3JpcHQgc3JjPSdodHRwczovL2FwaS5tYXBib3guY29tL21hcGJveC1nbC1qcy92Mi42LjEvbWFwYm94LWdsLmpzJz48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMy42LjAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSdodHRwczovL2FwaS5tYXBib3guY29tL21hcGJveC1nbC1qcy9wbHVnaW5zL21hcGJveC1nbC1nZW9jb2Rlci92NC43LjAvbWFwYm94LWdsLWdlb2NvZGVyLm1pbi5qcyc+PC9zY3JpcHQ+CgogICAgPCEtLSBKYXZhU2NyaXB0IGZpbGVzLS0+CiAgICA8c2NyaXB0PgogICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy8KICAgICAgICAvLyAgIEluamVjdCBTVkcgU3ByaXRlIC0gCiAgICAgICAgLy8gICBzZWUgbW9yZSBoZXJlIAogICAgICAgIC8vICAgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9hamF4aW5nLXN2Zy1zcHJpdGUvCiAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vCiAgICAgICAgZnVuY3Rpb24gaW5qZWN0U3ZnU3ByaXRlKHBhdGgpIHsKICAgICAgICAgIGZldGNoKHBhdGgpCiAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIC50aGVuKGRhdGEgPT4gewogICAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZC1ub25lJzsKICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGRhdGE7CiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRpdiwgZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzWzBdKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIC5jYXRjaChlID0+IHsKICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdGhlIFNWRyBzcHJpdGU6JywgZSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgCiAgICAgIGluamVjdFN2Z1Nwcml0ZSgiL3N0YXRpYy9kaXJlY3RvcnkvaWNvbnMvb3Jpb24tc3ZnLXNwcml0ZS5zdmciKTsKICAgICAgICAKICAgICAgPC9zY3JpcHQ+CiAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2NoYXJ0LmpzIiA+PC9zY3JpcHQ+CiAgICAgIDwhLS0gU21vb3RoIHNjcm9sbC0tPgogICAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL3Ntb290aC1zY3JvbGwvc21vb3RoLXNjcm9sbC5wb2x5ZmlsbHMubWluLmpzIj48L3NjcmlwdD4KICAgICAgPCEtLSBCb290c3RyYXAgU2VsZWN0LS0+CiAgICAgIDxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3IvYm9vdHN0cmFwLXNlbGVjdC9qcy9ib290c3RyYXAtc2VsZWN0Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgIDwhLS0gT2JqZWN0IEZpdCBJbWFnZXMgLSBGYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG9iamVjdC1maXQtLT4KICAgICAgPHNjcmlwdCBzcmM9Ii9zdGF0aWMvZGlyZWN0b3J5L3ZlbmRvci9vYmplY3QtZml0LWltYWdlcy9vZmkubWluLmpzIj48L3NjcmlwdD4KICAgICAgPCEtLSBTd2lwZXIgQ2Fyb3VzZWwgLS0+CiAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9Td2lwZXIvNC40LjEvanMvc3dpcGVyLm1pbi5qcyIgPjwvc2NyaXB0PgogICAgICA8IS0tIEluY2x1ZGUgU3dpcGVyIEpTIC0tPgogICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vc3dpcGVyL3N3aXBlci1idW5kbGUubWluLmpzIiA+PC9zY3JpcHQ+CiAgICAgIDxzY3JpcHQ+dmFyIGJhc2VQYXRoID0gJyc8L3NjcmlwdD4KICAgICAgPCEtLSBNYWluIFRoZW1lIEpTIGZpbGUgICAgLS0+CiAgICAgIDxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS9qcy90aGVtZS5qcyI+PC9zY3JpcHQ+CgogICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgdmFyIG1hcmtlclBhdGggPSAiL3N0YXRpYy9kaXJlY3RvcnkvaW1nL21hcmtlci5zdmciOwogICAgICAgIHZhciBtYXJrZXJQYXRoSGlnaGxpZ2h0ID0gIi9zdGF0aWMvZGlyZWN0b3J5L2ltZy9tYXJrZXItaG92ZXIuc3ZnIjsKICAgICAgPC9zY3JpcHQ+CiAgICA8L3NjcmlwdD4KCiAgICAKICAgIAogICAgCgo8c2NyaXB0PgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBtYXBib3hnbC5hY2Nlc3NUb2tlbiA9ICdway5leUoxSWpvaWMzUmxjR2hsYm1wdmFXNTBZMjl0YldWeVkyVWlMQ0poSWpvaVkyeGxaWFprZWpBM01EVTBhak4wY0cxMmNUZHliV2wyZUNKOS50SGZiaWd2TzNIUmhBSi1WeVZIOS1BJzsKCiAgICAgICAgZnVuY3Rpb24gc2V0dXBTZWFyY2hGb3JtSW50ZXJhY3Rpb24oZm9ybUlkLCBsb2NhdGlvbklkLCBoaWRkZW5MYXRJZCwgaGlkZGVuTG5nSWQsIHN1Z2dlc3Rpb25zSWQpIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTsKCiAgICAgICAgICAgICQobG9jYXRpb25JZCkub24oJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgcXVlcnkgPSAkKHRoaXMpLnZhbCgpOwogICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IC0xOwogICAgICAgICAgICAgICAgaWYocXVlcnkubGVuZ3RoID4gMikgewogICAgICAgICAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vZ2VvY29kaW5nL3Y1L21hcGJveC5wbGFjZXMvJHtlbmNvZGVVUklDb21wb25lbnQocXVlcnkpfS5qc29uYCwKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbjogbWFwYm94Z2wuYWNjZXNzVG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiAnVVMnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zSWQpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24oZmVhdHVyZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0SXRlbSA9ICQoYDxsaSBjbGFzcz0ibGlzdC1ncm91cC1pdGVtIiBkYXRhLWxhdD0iJHtmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdfSIgZGF0YS1sbmc9IiR7ZmVhdHVyZS5nZW9tZXRyeS5jb29yZGluYXRlc1swXX0iPiR7ZmVhdHVyZS5wbGFjZV9uYW1lfTwvbGk+YCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5hcHBlbmQobGlzdEl0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkFQSSBFcnJvcjoiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQobG9jYXRpb25JZCkub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICB2YXIgc3VnZ2VzdGlvbnMgPSAkKHN1Z2dlc3Rpb25zSWQgKyAnIGxpJyk7CiAgICAgICAgICAgICAgICBpZihlLmtleUNvZGUgPT09IDQwKSB7IC8vIERvd24gYXJyb3cKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggKyAxKSAlIHN1Z2dlc3Rpb25zLmxlbmd0aDsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihlLmtleUNvZGUgPT09IDM4KSB7IC8vIFVwIGFycm93CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IChzZWxlY3RlZEluZGV4IC0gMSArIHN1Z2dlc3Rpb25zLmxlbmd0aCkgJSBzdWdnZXN0aW9ucy5sZW5ndGg7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZS5rZXlDb2RlID09PSAxMykgeyAvLyBFbnRlciBrZXkKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWRJbmRleCA+IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFN1Z2dlc3Rpb24gPSBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwoc2VsZWN0ZWRTdWdnZXN0aW9uLnRleHQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTGF0SWQpLnZhbChzZWxlY3RlZFN1Z2dlc3Rpb24uZGF0YSgnbGF0JykpOwogICAgICAgICAgICAgICAgICAgICAgICAkKGhpZGRlbkxuZ0lkKS52YWwoc2VsZWN0ZWRTdWdnZXN0aW9uLmRhdGEoJ2xuZycpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5yZW1vdmVDbGFzcygnc2VsZWN0ZWQnKTsKICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zLmVxKHNlbGVjdGVkSW5kZXgpLmFkZENsYXNzKCdzZWxlY3RlZCcpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNJZCkub24oJ2NsaWNrJywgJ2xpJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAkKGxvY2F0aW9uSWQpLnZhbCgkKHRoaXMpLnRleHQoKSk7CiAgICAgICAgICAgICAgICAkKGhpZGRlbkxhdElkKS52YWwoJCh0aGlzKS5kYXRhKCdsYXQnKSk7CiAgICAgICAgICAgICAgICAkKGhpZGRlbkxuZ0lkKS52YWwoJCh0aGlzKS5kYXRhKCdsbmcnKSk7CiAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zSWQpLmVtcHR5KCk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJChmb3JtSWQpLnN1Ym1pdChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZigkKGhpZGRlbkxhdElkKS52YWwoKSAmJiAkKGhpZGRlbkxuZ0lkKS52YWwoKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBmb3JtRGF0YSA9ICQodGhpcykuc2VyaWFsaXplKCk7CiAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0dFVCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9zZWFyY2hfcmVzdWx0cy8nLCAvLyBVcGRhdGUgd2l0aCB0aGUgYWN0dWFsIHBhdGggdG8geW91ciB2aWV3CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2VhcmNoUmVzdWx0c0NvbnRhaW5lcicpLmh0bWwoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkVycm9yOiIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCBhIGxvY2F0aW9uIGZyb20gdGhlIHN1Z2dlc3Rpb25zLicpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbihsb2NhdGlvbklkLCBoaWRkZW5MYXRJZCwgaGlkZGVuTG5nSWQpIHsKICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewogICAgICAgICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbikgewogICAgICAgICAgICAgICAgICAgIHZhciBsYXQgPSBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGU7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxuZyA9IHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGU7CiAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJywKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9hcGkubWFwYm94LmNvbS9nZW9jb2RpbmcvdjUvbWFwYm94LnBsYWNlcy8ke2xuZ30sJHtsYXR9Lmpzb25gLAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiBtYXBib3hnbC5hY2Nlc3NUb2tlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6ICdVUycsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmZlYXR1cmVzICYmIGRhdGEuZmVhdHVyZXNbMF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGxvY2F0aW9uSWQpLnZhbChkYXRhLmZlYXR1cmVzWzBdLnBsYWNlX25hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTGF0SWQpLnZhbChsYXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTG5nSWQpLnZhbChsbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBUEkgRXJyb3I6IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFsZXJ0KCJHZW9sb2NhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci4iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKGxvY2F0aW9uSWQsIGhpZGRlbkxhdElkLCBoaWRkZW5MbmdJZCwgZGVmYXVsdExvY2F0aW9uLCBkZWZhdWx0TGF0LCBkZWZhdWx0TG5nLCB1c2VDdXJyZW50TG9jYXRpb24gPSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBzZWFyY2hQYXJhbXMuZ2V0KCdsb2NhdGlvbicpOwogICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBzZWFyY2hQYXJhbXMuZ2V0KCdsYXRpdHVkZScpOwogICAgICAgICAgICB2YXIgbG9uZ2l0dWRlID0gc2VhcmNoUGFyYW1zLmdldCgnbG9uZ2l0dWRlJyk7CgogICAgICAgICAgICBpZiAoIWxvY2F0aW9uIHx8ICFsYXRpdHVkZSB8fCAhbG9uZ2l0dWRlKSB7CiAgICAgICAgICAgICAgICBpZiAodXNlQ3VycmVudExvY2F0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgZmlsbFdpdGhDdXJyZW50TG9jYXRpb24obG9jYXRpb25JZCwgaGlkZGVuTGF0SWQsIGhpZGRlbkxuZ0lkKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwoZGVmYXVsdExvY2F0aW9uKTsKICAgICAgICAgICAgICAgICAgICAkKGhpZGRlbkxhdElkKS52YWwoZGVmYXVsdExhdCk7CiAgICAgICAgICAgICAgICAgICAgJChoaWRkZW5MbmdJZCkudmFsKGRlZmF1bHRMbmcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwobG9jYXRpb24pOwogICAgICAgICAgICAgICAgJChoaWRkZW5MYXRJZCkudmFsKGxhdGl0dWRlKTsKICAgICAgICAgICAgICAgICQoaGlkZGVuTG5nSWQpLnZhbChsb25naXR1ZGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgc2VhcmNoIHJlc3VsdHMgcGFnZQogICAgICAgIHZhciBpc1NlYXJjaFJlc3VsdHNQYWdlID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCdzZWFyY2hfcmVzdWx0cycpOwoKICAgICAgICAvLyBTZXR1cCBpbnRlcmFjdGlvbiBmb3IgZWFjaCBmb3JtCiAgICAgICAgc2V0dXBTZWFyY2hGb3JtSW50ZXJhY3Rpb24oJyNzZWFyY2hGb3JtMScsICcjbG9jYXRpb24xJywgJyNoaWRkZW5MYXQxJywgJyNoaWRkZW5MbmcxJywgJyNzdWdnZXN0aW9uczEnKTsKICAgICAgICBzZXR1cFNlYXJjaEZvcm1JbnRlcmFjdGlvbignI3NlYXJjaEZvcm0yJywgJyNsb2NhdGlvbjInLCAnI2hpZGRlbkxhdDInLCAnI2hpZGRlbkxuZzInLCAnI3N1Z2dlc3Rpb25zMicpOwoKICAgICAgICAkKCcuZmEtY3Jvc3NoYWlycycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbignI2xvY2F0aW9uMScsICcjaGlkZGVuTGF0MScsICcjaGlkZGVuTG5nMScpOwogICAgICAgICAgICBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbignI2xvY2F0aW9uMicsICcjaGlkZGVuTGF0MicsICcjaGlkZGVuTG5nMicpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBQcmVmaWxsIHNlYXJjaCBib3ggb24gcGFnZSBsb2FkCiAgICAgICAgcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKCcjbG9jYXRpb24xJywgJyNoaWRkZW5MYXQxJywgJyNoaWRkZW5MbmcxJywgJ0xvcyBBbmdlbGVzLCBDYWxpZm9ybmlhLCBVbml0ZWQgU3RhdGVzJywgMzQuMDU0MDc3LCAtMTE4LjI0MTY4LCAhaXNTZWFyY2hSZXN1bHRzUGFnZSk7CiAgICAgICAgcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKCcjbG9jYXRpb24yJywgJyNoaWRkZW5MYXQyJywgJyNoaWRkZW5MbmcyJywgJ0xvcyBBbmdlbGVzLCBDYWxpZm9ybmlhLCBVbml0ZWQgU3RhdGVzJywgMzQuMDU0MDc3LCAtMTE4LjI0MTY4LCAhaXNTZWFyY2hSZXN1bHRzUGFnZSk7CiAgICB9KTsKICAgIAo8L3NjcmlwdD4KICAgIAo8c2NyaXB0PgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBmdW5jdGlvbiBzZXR1cEJyYW5kU2VhcmNoQXV0b2NvbXBsZXRlKGlucHV0SWQsIHN1Z2dlc3Rpb25zQ29udGFpbmVySWQpIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTsgLy8gSW5kZXggdG8gdHJhY2sgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCiAgICAKICAgICAgICAgICAgJChpbnB1dElkKS5vbignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBxdWVyeSA9ICQodGhpcykudmFsKCk7CiAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gLTE7IC8vIFJlc2V0IHRoZSBzZWxlY3Rpb24gaW5kZXggb24gbmV3IGlucHV0CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiS2V5cHJlc3MgZGV0ZWN0ZWQsIGN1cnJlbnQgaW5wdXQ6IiwgcXVlcnkpOyAvLyBGb3IgZGVidWdnaW5nCiAgICAKICAgICAgICAgICAgICAgIGlmKHF1ZXJ5Lmxlbmd0aCA+IDIpIHsKICAgICAgICAgICAgICAgICAgICAkLmFqYXgoewogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvc2VhcmNoX2JyYW5kcy8nLAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHRlcm06IHF1ZXJ5IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNDb250YWluZXJJZCkuZW1wdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEgJiYgZGF0YS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdEl0ZW0gPSAkKGA8bGkgdGFiaW5kZXg9IjAiIGNsYXNzPSJsaXN0LWdyb3VwLWl0ZW0iIGRhdGEtdmFsdWU9IiR7aXRlbS52YWx1ZX0iPiR7aXRlbS5sYWJlbH08L2xpPmApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0NvbnRhaW5lcklkKS5hcHBlbmQobGlzdEl0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBUEkgRXJyb3I6IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNDb250YWluZXJJZCkuZW1wdHkoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICB2YXIgc3VnZ2VzdGlvbnMgPSAkKHN1Z2dlc3Rpb25zQ29udGFpbmVySWQgKyAnIGxpJyk7CiAgICAgICAgICAgICAgICB2YXIgbnVtU3VnZ2VzdGlvbnMgPSBzdWdnZXN0aW9ucy5sZW5ndGg7CiAgICAKICAgICAgICAgICAgICAgIGlmKGUua2V5Q29kZSA9PT0gNDApIHsgLy8gRG93biBhcnJvdyBrZXkKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggKyAxKSAlIG51bVN1Z2dlc3Rpb25zOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCB0aGUgY3Vyc29yIGZyb20gbW92aW5nCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZS5rZXlDb2RlID09PSAzOCkgeyAvLyBVcCBhcnJvdyBrZXkKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggLSAxICsgbnVtU3VnZ2VzdGlvbnMpICUgbnVtU3VnZ2VzdGlvbnM7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50IHRoZSBjdXJzb3IgZnJvbSBtb3ZpbmcKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihlLmtleUNvZGUgPT09IDEzICYmIHNlbGVjdGVkSW5kZXggPj0gMCkgeyAvLyBFbnRlciBrZXkKICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KS5jbGljaygpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCBmb3JtIHN1Ym1pc3Npb24KICAgICAgICAgICAgICAgIH0KICAgIAogICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7CiAgICAgICAgICAgICAgICBpZihzZWxlY3RlZEluZGV4ID49IDApIHsKICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KS5hZGRDbGFzcygnc2VsZWN0ZWQnKS5mb2N1cygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgIAogICAgICAgICAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCBzdWdnZXN0aW9uc0NvbnRhaW5lcklkICsgJyBsaScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJCh0aGlzKS50ZXh0KCk7CiAgICAgICAgICAgICAgICAkKGlucHV0SWQpLnZhbCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zQ29udGFpbmVySWQpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gLTE7IC8vIFJlc2V0IHRoZSBzZWxlY3Rpb24gaW5kZXgKICAgICAgICAgICAgfSk7CiAgICAKICAgICAgICAgICAgJChpbnB1dElkKS5vbignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gRGVsYXkgY2xlYXJpbmcgdGhlIHN1Z2dlc3Rpb25zIHRvIGFsbG93IGNsaWNrIGV2ZW50IHRvIGZpcmUKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0NvbnRhaW5lcklkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgfSwgMjAwKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgCiAgICAgICAgc2V0dXBCcmFuZFNlYXJjaEF1dG9jb21wbGV0ZSgnI2JyYW5kX3NlYXJjaCcsICcjc3VnZ2VzdGlvbnMzJyk7CiAgICB9KTsKPC9zY3JpcHQ+CjxzY3JpcHQ+CiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAkKCcuY2FyZC1mYXYtaWNvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgaGVhcnRJY29uID0gJCh0aGlzKS5maW5kKCcuaGVhcnQtaWNvbicpOwogICAgICB2YXIgaXRlbUlkID0gJCh0aGlzKS5kYXRhKCdpZCcpOwogICAgICB2YXIgYm9va21hcmtUeXBlID0gJCh0aGlzKS5kYXRhKCd0eXBlJyk7CiAgICAgIHZhciBpc0Jvb2ttYXJrZWQgPSAkKHRoaXMpLmRhdGEoJ2Jvb2ttYXJrZWQnKSA9PT0gIlRydWUiOwoKICAgICAgJC5hamF4KHsKICAgICAgICB1cmw6ICcvdG9nZ2xlX2Jvb2ttYXJrLycsCiAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgZGF0YTogewogICAgICAgICAgJ2NzcmZtaWRkbGV3YXJldG9rZW4nOiAnSVpyYnN5azJWeUNhM1ZkMzZkNEJrRlE4MjdqUzhLRFB6U3dYQmdpUDRJU0R4dEJPR0RMeGl2OUxvMzBXaGdYdScsCiAgICAgICAgICAnaXRlbV9pZCc6IGl0ZW1JZCwKICAgICAgICAgICd0eXBlJzogYm9va21hcmtUeXBlCiAgICAgICAgfSwKICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgaWYgKHJlc3BvbnNlLmlzX2Jvb2ttYXJrZWQpIHsKICAgICAgICAgICAgaGVhcnRJY29uLmFkZENsYXNzKCdib29rbWFya2VkJyk7CiAgICAgICAgICAgIGhlYXJ0SWNvbi5wYXJlbnQoKS5kYXRhKCdib29rbWFya2VkJywgIlRydWUiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGhlYXJ0SWNvbi5yZW1vdmVDbGFzcygnYm9va21hcmtlZCcpOwogICAgICAgICAgICBoZWFydEljb24ucGFyZW50KCkuZGF0YSgnYm9va21hcmtlZCcsICJGYWxzZSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9KTsKPC9zY3JpcHQ+ICAgICAgICAKICAgIAogICAgCgogICAgCiAgICAKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjYuMC5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuanMiIGludGVncml0eT0ic2hhNTEyLUdmZlBNRjNSdk1lWXljMUxXTUh0SzhFYlB2MGlOWjgvb1R0SFB4OS9jYzJJTHhRK3U5MDVxSXdkcFVMYXFEa3lCS2dPYUI1N1FUTWc3enRnOEptMk9nPT0iIGNyb3Nzb3JpZ2luPSIiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL29iamVjdC1maXQtaW1hZ2VzL29maS5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvU3dpcGVyLzQuNC4xL2pzL3N3aXBlci5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvanMvbWFwLWxheWVycy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS9qcy9tYXAtY2F0ZWdvcnkuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvanMvbWFwLWRldGFpbC5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdD4KICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIChldmVudCkgPT4gewogICAgICAgICAgY29uc3QgYWxlcnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFsZXJ0Jyk7CiAgICAgICAgICAKICAgICAgICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCkgPT4gewogICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICBhbGVydC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7IC8vIFRyaWdnZXJzIGZhZGUtb3V0IHRyYW5zaXRpb24KICAgICAgICAgICAgICAgICAgYWxlcnQuY2xhc3NMaXN0LmFkZCgnZmFkZScpOwogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIENTUyB0cmFuc2l0aW9uIHRvIGZpbmlzaCBiZWZvcmUgcmVtb3ZpbmcgdGhlIGVsZW1lbnQKICAgICAgICAgICAgICAgICAgYWxlcnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0LnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9LCAzMDAwKTsKICAgICAgICAgIH0pOwogICAgICB9KTsKICAgIDwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPg==', '', '{"Content-Type": "text/html; charset=utf-8"}')
INSERT INTO "silk_response" ("id", "request_id", "status_code", "raw_body", "body", "encoded_headers") VALUES ('ee3cd6ee-40f8-46a3-bbf6-0d6cfb1af685', '6a03c6f9-2417-433c-9919-48061adf7acf', 200, 'CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CiAgPGhlYWQ+CiAgICAKICAgIAogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9ImFsbCxmb2xsb3ciPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1MYW5ndWFnZSIgY29udGVudD0iZW4iPgogICAgPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJKb2ludENvbW1lcmNlIj4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZSIgY29udGVudD0ibm90cmFuc2xhdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iSm9pbnRDb21tZXJjZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0id2Vic2l0ZSI+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6bG9jYWxlIiBjb250ZW50PSJlbl9VUyI+CiAgICA8bWV0YSBuYW1lPSJkaXN0cmlidXRpb24iIGNvbnRlbnQ9Ikdsb2JhbCI+CiAgICA8bWV0YSBodHRwLWVxdWl2PSJSZXBseS10byIgY29udGVudD0iYWRtaW5Aam9pbnRjb21tZXJjZS5jb20iPgogICAgPCEtLSBGYXZpY29uLS0+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9mYXZpY29uLmljbyI+CiAgICA8bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly9hcHAuam9pbnRjb21tZXJjZS5jb20vYWNjb3VudHMvc2lnbnVwLz9uZXh0PSUyRmRpc3BlbnNhcmllcyUyRjg5ODQlMkYiIC8+CiAgICA8bGluayByZWw9ImFsdGVybmF0ZSIgaHJlZmxhbmc9ImVuLVVTIiBocmVmPSJodHRwczovL2FwcC5qb2ludGNvbW1lcmNlLmNvbS9hY2NvdW50cy9zaWdudXAvP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgLz4KICAgIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmbGFuZz0ieC1kZWZhdWx0IiBocmVmPSJodHRwczovL2FwcC5qb2ludGNvbW1lcmNlLmNvbS9hY2NvdW50cy9zaWdudXAvP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgLz4KICAgIAogICAgPCEtLSBXZWJzaXRlLWxldmVsIHNjaGVtYSAtLT4KICAgIDxzY3JpcHQgdHlwZT0iYXBwbGljYXRpb24vbGQranNvbiI+CiAgICAgICAgewogICAgICAgICJAY29udGV4dCI6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgICAgICAgIkB0eXBlIjogIldlYlNpdGUiLAogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cuSm9pbnRDb21tZXJjZS5jb20vIiwKICAgICAgICAibmFtZSI6ICJKb2ludENvbW1lcmNlIC0gRmluZCBZb3VyIExvY2FsIERpc3BlbnNhcnkgQW5kIEJyYW5kIiwKICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmluZCB0aGUgYmVzdCBsb2NhbCBkaXNwZW5zYXJpZXMgYW5kIGJyYW5kcyBuZWFyIHlvdS4iLAogICAgICAgICJwdWJsaXNoZXIiOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJPcmdhbml6YXRpb24iLAogICAgICAgICAgICAibmFtZSI6ICJKb2ludENvbW1lcmNlIiwKICAgICAgICAgICAgImxvZ28iOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJJbWFnZU9iamVjdCIsCiAgICAgICAgICAgICJ1cmwiOiAiL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC53ZWJwIgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIH0KICAgIDwvc2NyaXB0PgoKICAgIDwhLS0galF1ZXJ5LS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL2pxdWVyeS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICAgIDwhLS0gQm9vdHN0cmFwIEpTIGJ1bmRsZSAtIEJvb3RzdHJhcCArIFBvcHBlckpTLS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL2Jvb3RzdHJhcC9qcy9ib290c3RyYXAuYnVuZGxlLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IS0tIE1hZ25pZmljIFBvcHVwIC0gTGlnaHRib3ggZm9yIHRoZSBnYWxsZXJ5LS0+CiAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL21hZ25pZmljLXBvcHVwL2pxdWVyeS5tYWduaWZpYy1wb3B1cC5taW4uanMiPjwvc2NyaXB0PgogICAgPHN2ZyBzdHlsZT0iZGlzcGxheTogbm9uZTsiPgogICAgICAgIDxzeW1ib2wgaWQ9ImhlYXJ0LTEiIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICA8cGF0aCBkPSJNMTIgMjEuMzVsLTEuNDUtMS4zMkM1LjQgMTUuMzYgMiAxMi4yOCAyIDguNSAyIDUuNDIgNC40MiAzIDcuNSAzYzEuNzQgMCAzLjQxIDEuMDEgNC41IDIuMDlDMTMuMDkgNC4wMSAxNC43NiAzIDE2LjUgMyAxOS41OCAzIDIyIDUuNDIgMjIgOC41YzAgMy43OC0zLjQgNi44Ni04LjU1IDExLjU0TDEyIDIxLjM1eiI+PC9wYXRoPgogICAgICAgIDwvc3ltYm9sPgogICAgPC9zdmc+CiAgICAKICAgIDx0aXRsZT5TaWduIFVwIC0gSm9pbnRDb21tZXJjZTwvdGl0bGU+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iU2lnbiB1cCB0byBKb2ludENvbW1lcmNlIHRvIHNhdmUgYW5kIHJldmlldyB5b3VyIGZhdm9yaXRlIGNhbm5hYmlzIGJyYW5kcyBhbmQgZGlzcGVuc2FyaWVzLiI+CiAgICA8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29udGVudD0ic2lnbiB1cCwgY2FubmFiaXMsIGRpc3BlbnNhcnksIGRpc3BlbnNhcmllcyI+CiAgICA8IS0tIE9wZW4gR3JhcGggLyBGYWNlYm9vayAtLT4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0aXRsZSIgY29udGVudD0iU2lnbiBVcCAtIEpvaW50Q29tbWVyY2UiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmRlc2NyaXB0aW9uIiBjb250ZW50PSJTaWduIHVwIHRvIEpvaW50Q29tbWVyY2UgdG8gc2F2ZSBhbmQgcmV2aWV3IHlvdXIgZmF2b3JpdGUgY2FubmFiaXMgYnJhbmRzIGFuZCBkaXNwZW5zYXJpZXMuIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZSIgY29udGVudD0iL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC5wbmciPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVudD0iaHR0cHM6Ly9hcHAuam9pbnRjb21tZXJjZS5jb20vYWNjb3VudHMvc2lnbnVwLz9uZXh0PSUyRmRpc3BlbnNhcmllcyUyRjg5ODQlMkYiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnR5cGUiIGNvbnRlbnQ9IndlYnNpdGUiPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlOndpZHRoIiBjb250ZW50PSIxMjAwIj4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzppbWFnZTpoZWlnaHQiIGNvbnRlbnQ9IjYzMCI+CiAgICA8IS0tIFR3aXR0ZXIgLS0+CiAgICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjp0aXRsZSIgY29udGVudD0iTG9naW4gLSBKb2ludENvbW1lcmNlIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9IlNpZ24gdXAgdG8gSm9pbnRDb21tZXJjZSB0byBzYXZlIGFuZCByZXZpZXcgeW91ciBmYXZvcml0ZSBjYW5uYWJpcyBicmFuZHMgYW5kIGRpc3BlbnNhcmllcy4iPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iL3N0YXRpYy9kaXJlY3RvcnkvaW1nL3Bob3RvL2hvbWVwYWdlL2pvaW50Y29tbWVyY2UtYmFja2dyb3VuZC53ZWJwIj4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6c2l0ZSIgY29udGVudD0iQEpvaW50Q29tbWVyY2UiPgogICAgPG1ldGEgbmFtZT0idHdpdHRlcjpjcmVhdG9yIiBjb250ZW50PSJASm9pbnRDb21tZXJjZSI+CiAgICAKCiAgICAKICAgICAgCiAgICAKICAgIAoKICAgIDxsaW5rIGhyZWY9J2h0dHBzOi8vYXBpLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3YyLjYuMS9tYXBib3gtZ2wuY3NzJyByZWw9J3N0eWxlc2hlZXQnIC8+CiAgICA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2h0dHBzOi8vYXBpLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3BsdWdpbnMvbWFwYm94LWdsLWdlb2NvZGVyL3Y0LjcuMC9tYXBib3gtZ2wtZ2VvY29kZXIuY3NzJyB0eXBlPSd0ZXh0L2NzcycgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91bnBrZy5jb20vc3dpcGVyL3N3aXBlci1idW5kbGUubWluLmNzcyIvPgogICAgPCEtLSBMZWFmbGV0IE1hcHMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuY3NzIiBpbnRlZ3JpdHk9InNoYTUxMi14d0UvQXo5enJqQklwaEFjQmIzRjZKVnF4ZjQ2K0NETHdmTE1IbG9OdTZLRVFDQVdpNkhjRFViZU9mQklwdEY3dGNDenVzS0ZqRncyeXV2RXBETDl3UT09IiBjcm9zc29yaWdpbj0iIj4KICAgIDwhLS0gUHJpY2UgU2xpZGVyIFN0eWxlc2hlZXRzIC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3Ivbm91aXNsaWRlci9ub3Vpc2xpZGVyLmNzcyI+CiAgICA8IS0tIEdvb2dsZSBmb250cyAtIFBsYXlmYWlyIERpc3BsYXktLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVBsYXlmYWlyK0Rpc3BsYXk6NDAwLDQwMGksNzAwIj4KICAgIDwhLS0gR29vZ2xlIGZvbnRzIC0gUG9wcGlucy0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9UG9wcGluczozMDAsNDAwLDQwMGksNzAwIj4KICAgIDwhLS0gc3dpcGVyLS0+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL1N3aXBlci80LjQuMS9jc3Mvc3dpcGVyLm1pbi5jc3MiPgogICAgPCEtLSBNYWduaWdpYyBQb3B1cC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3IvbWFnbmlmaWMtcG9wdXAvbWFnbmlmaWMtcG9wdXAuY3NzIj4KICAgIDwhLS0gdGhlbWUgc3R5bGVzaGVldC0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvc3RhdGljL2RpcmVjdG9yeS9jc3Mvc3R5bGUuZ3JlZW4ubWluLmNzcyIgaWQ9InRoZW1lLXN0eWxlc2hlZXQiPgogICAgPCEtLSBDdXN0b20gc3R5bGVzaGVldCAtIGZvciB5b3VyIGNoYW5nZXMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0YXRpYy9kaXJlY3RvcnkvY3NzL2N1c3RvbS5jc3MiPgogICAgPCEtLSBDdXN0b20gc3R5bGVzaGVldCAtIGZvciB5b3VyIGNoYW5nZXMtLT4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iL3N0YXRpYy9kaXJlY3RvcnkvY3NzL3NlYXJjaC5jc3MiPgogICAgPCEtLSBGYXZpY29uLS0+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9jYXJ0b2Nocm9tZS1sb2dvLWljb24tdHJhbnNwYXJlbnQucG5nIj4KICAgIDwhLS0gRm9udCBBd2Vzb21lIENTUy0tPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3VzZS5mb250YXdlc29tZS5jb20vcmVsZWFzZXMvdjUuOC4xL2Nzcy9hbGwuY3NzIiBpbnRlZ3JpdHk9InNoYTM4NC01MG9CVUhFbXZwUSsxbFc0eTU3UFRGbWhDYVhwME1MNWQ2ME0xTTd1SDIrbnFVaXZ6SWViaG5kT0pLMjhhbnZmIiBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9mc2xpZ2h0Ym94L2luZGV4LmNzcyI+CgogICAgCiAgICAKCiAgPC9oZWFkPgogIDxib2R5PgogICAgCiAgICAKICAgIAogICAgCiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXItZmx1aWQgcHgtMyI+CiAgICAgICAgPGRpdiBjbGFzcz0icm93IG1pbi12aC0xMDAiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCBjb2wtbGctNiBjb2wteGwtNSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctMTAwIHB5LTUgcHgtbWQtNSBweC14eGwtNiBwb3NpdGlvbi1yZWxhdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iPjxpbWcgY2xhc3M9ImltZy1mbHVpZCBtYi00IiBzcmM9Ii9zdGF0aWMvZGlyZWN0b3J5L2ltZy9qb2ludGNvbW1lcmNlX2xvZ29fc2hvcnQucG5nIiBhbHQ9Ii4uLiIgc3R5bGU9Im1heC13aWR0aDogNHJlbTsiPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPGgyPlNpZ24gVXAhPC9oMj4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtbXV0ZWQiPlNpZ24gdXAgZm9yIHlvdXIgZnJlZSBhY2NvdW50IHRvIG1hcmsgeW91ciBmYXZvcml0ZSBsb2NhdGlvbnMgYW5kIHNlbmQgcmV2aWV3cyBvZiB5b3VyIGV4cGVyaWVuY2UuIEpvaW4gSm9pbnRDb21tZXJjZSdzIGNvbW11bml0eSE8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9ImZvcm0iIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvYWNjb3VudHMvc2lnbnVwLyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNzcmZtaWRkbGV3YXJldG9rZW4iIHZhbHVlPSJJWnJic3lrMlZ5Q2EzVmQzNmQ0QmtGUTgyN2pTOEtEUHpTd1hCZ2lQNElTRHh0Qk9HREx4aXY5TG8zMFdoZ1h1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02IG1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKICAgIDxkaXYgaWQ9ImRpdl9pZF9lbWFpbCIgY2xhc3M9Im1iLTMiPgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPGxhYmVsCiAgICAgICAgICAgICAgICBmb3I9ImxvZ2luVXNlcm5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgRW1haWwgQWRkcmVzczxzcGFuIGNsYXNzPSJhc3Rlcmlza0ZpZWxkIj4qPC9zcGFuPgogICAgICAgICAgICA8L2xhYmVsPgogICAgICAgIAoKICAgICAgICAKCiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJlbWFpbCIgbmFtZT0iZW1haWwiIGNsYXNzPSJmb3JtLWNvbnRyb2wgZW1haWxpbnB1dCIgcGxhY2Vob2xkZXI9Im5hbWVAYWRkcmVzcy5jb20iIGlkPSJsb2dpblVzZXJuYW1lIiBhdXRvY29tcGxldGU9Im9mZiIgcmVxdWlyZWQgZGF0YS1tc2c9IlBsZWFzZSBlbnRlciB5b3VyIGVtYWlsIiBtYXhsZW5ndGg9IjMyMCI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKCgoKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAKICAgICAgICAKICAgIDwvZGl2PgogICAgCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTYgbWItMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCgoKICAgIAogICAgPGRpdiBpZD0iZGl2X2lkX3VzZXJuYW1lIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0idXNlcm5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgVXNlcm5hbWU8c3BhbiBjbGFzcz0iYXN0ZXJpc2tGaWVsZCI+Kjwvc3Bhbj4KICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAKCiAgICAgICAgCgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wgdGV4dGlucHV0IiBwbGFjZWhvbGRlcj0iVXNlcm5hbWUiIGlkPSJ1c2VybmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciB1c2VybmFtZSIgYXV0b2ZvY3VzPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCgoKCgogICAgCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfZmlyc3RfbmFtZSIgY2xhc3M9Im1iLTMiPgogICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgPGxhYmVsCiAgICAgICAgICAgICAgICBmb3I9ImZpcnN0TmFtZSIgY2xhc3M9ImZvcm0tbGFiZWwgcmVxdWlyZWRGaWVsZCI+CiAgICAgICAgICAgICAgICBGaXJzdCBOYW1lPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImZpcnN0X25hbWUiIGNsYXNzPSJmb3JtLWNvbnRyb2wgdGV4dGlucHV0IiBwbGFjZWhvbGRlcj0iRmlyc3QgTmFtZSIgaWQ9ImZpcnN0TmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciBmaXJzdCBuYW1lIj4KICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgCgoKICAgIAoKCgoKICAgIAoKCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+CiAgICAKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfbGFzdF9uYW1lIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0ibGFzdE5hbWUiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgTGFzdCBOYW1lPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Imxhc3RfbmFtZSIgY2xhc3M9ImZvcm0tY29udHJvbCB0ZXh0aW5wdXQiIHBsYWNlaG9sZGVyPSJMYXN0IE5hbWUiIGlkPSJsYXN0TmFtZSIgYXV0b2NvbXBsZXRlPSJvZmYiIHJlcXVpcmVkIGRhdGEtbXNnPSJQbGVhc2UgZW50ZXIgeW91ciBsYXN0IG5hbWUiPgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCgoKCgogICAgCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNiBtYi0zIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCgogICAgCiAgICA8ZGl2IGlkPSJkaXZfaWRfcGFzc3dvcmQxIiBjbGFzcz0ibWItMyI+CiAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICA8bGFiZWwKICAgICAgICAgICAgICAgIGZvcj0iaWRfcGFzc3dvcmQxIiBjbGFzcz0iZm9ybS1sYWJlbCByZXF1aXJlZEZpZWxkIj4KICAgICAgICAgICAgICAgIFBhc3N3b3JkPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiBjbGFzcz0icGFzc3dvcmRpbnB1dCBmb3JtLWNvbnRyb2wiIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImlkX3Bhc3N3b3JkMV9oZWxwdGV4dCIgaWQ9ImlkX3Bhc3N3b3JkMSI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKICAgIAogICAgICAgIDxkaXYgaWQ9ImlkX3Bhc3N3b3JkMV9oZWxwdGV4dCIgY2xhc3M9ImZvcm0tdGV4dCI+PHVsPjxsaT5Zb3VyIHBhc3N3b3JkIGNhbuKAmXQgYmUgdG9vIHNpbWlsYXIgdG8geW91ciBvdGhlciBwZXJzb25hbCBpbmZvcm1hdGlvbi48L2xpPjxsaT5Zb3VyIHBhc3N3b3JkIG11c3QgY29udGFpbiBhdCBsZWFzdCA4IGNoYXJhY3RlcnMuPC9saT48bGk+WW91ciBwYXNzd29yZCBjYW7igJl0IGJlIGEgY29tbW9ubHkgdXNlZCBwYXNzd29yZC48L2xpPjxsaT5Zb3VyIHBhc3N3b3JkIGNhbuKAmXQgYmUgZW50aXJlbHkgbnVtZXJpYy48L2xpPjwvdWw+PC9kaXY+CiAgICAKCgoKCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICA8L2Rpdj4KICAgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC02IG1iLTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKICAgIDxkaXYgaWQ9ImRpdl9pZF9wYXNzd29yZDIiIGNsYXNzPSJtYi0zIj4KICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgIDxsYWJlbAogICAgICAgICAgICAgICAgZm9yPSJpZF9wYXNzd29yZDIiIGNsYXNzPSJmb3JtLWxhYmVsIHJlcXVpcmVkRmllbGQiPgogICAgICAgICAgICAgICAgUGFzc3dvcmQgY29uZmlybWF0aW9uPHNwYW4gY2xhc3M9ImFzdGVyaXNrRmllbGQiPio8L3NwYW4+CiAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgCgogICAgICAgIAoKICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZDIiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiBjbGFzcz0icGFzc3dvcmRpbnB1dCBmb3JtLWNvbnRyb2wiIHJlcXVpcmVkIGFyaWEtZGVzY3JpYmVkYnk9ImlkX3Bhc3N3b3JkMl9oZWxwdGV4dCIgaWQ9ImlkX3Bhc3N3b3JkMiI+CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgIAoKCiAgICAKCgoKCiAgICAKICAgIAogICAgICAgIDxkaXYgaWQ9ImlkX3Bhc3N3b3JkMl9oZWxwdGV4dCIgY2xhc3M9ImZvcm0tdGV4dCI+RW50ZXIgdGhlIHNhbWUgcGFzc3dvcmQgYXMgYmVmb3JlLCBmb3IgdmVyaWZpY2F0aW9uLjwvZGl2PgogICAgCgoKCgogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgIAogICAgICAgIAogICAgPC9kaXY+CiAgICAKCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkLWdyaWQgZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlNpZ24gVXA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDxociBjbGFzcz0ibXktMyBoci10ZXh0IGxldHRlci1zcGFjaW5nLTIiIGRhdGEtY29udGVudD0iT1IiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImQtZ3JpZCBnYXAtMiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9hY2NvdW50cy9nb29nbGUvbG9naW4vP25leHQ9JTJGZGlzcGVuc2FyaWVzJTJGODk4NCUyRiIgY2xhc3M9ImJ0biBidG4tZ29vZ2xlIGJ0bi1zb2NpYWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhLTJ4IGZhLWdvb2dsZSBmYWIgYnRuLXNvY2lhbC1pY29uIj48L2k+Q29ubmVjdCA8c3BhbiBjbGFzcz0iZC1ub25lIGQtc20taW5saW5lIj53aXRoIEdvb2dsZTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxiciBjbGFzcz0ibXktNCI+CiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtc20gdGV4dC1tdXRlZCI+Qnkgc2lnbmluZyB1cCB5b3UgYWdyZWUgdG8gSm9pbnRDb21tZXJjZSdzIDxhIGhyZWY9Ii90ZXJtcy8iIHRhcmdldD0iX2JsYW5rIj5UZXJtcyBvZiBVc2U8L2E+IGFuZCA8YSBocmVmPSIvcHJpdmFjeS1wb2xpY3kvIiB0YXJnZXQ9Il9ibGFuayI+UHJpdmFjeSBQb2xpY3k8L2E+LjwvcD4KICAgICAgICAgICAgICAgICAgICA8aHIgY2xhc3M9Im15LTQiPgogICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJ0ZXh0LWNlbnRlciI+PHNtYWxsIGNsYXNzPSJ0ZXh0LW11dGVkIHRleHQtY2VudGVyIj5IYXZlIGFuIGFjY291bnQgYWxyZWFkeT8gPGEgaHJlZj0iL2FjY291bnRzL2xvZ2luLyI+U2lnbiBJbjwvYT48L3NtYWxsPjwvcD4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iY2xvc2UtYWJzb2x1dGUgbWUtbWQtNSBtZS14bC02IHB0LTUiIGhyZWY9Ii8iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJzdmctaWNvbiB3LTNyZW0gaC0zcmVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2Nsb3NlLTEiPiA8L3VzZT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCBjb2wtbGctNiBjb2wteGwtNyBkLW5vbmUgZC1tZC1ibG9jayI+CiAgICAgICAgICAgICAgICA8IS0tIEltYWdlLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJiZy1jb3ZlciBoLTEwMCBtZS1uMyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgvc3RhdGljL2RpcmVjdG9yeS9pbWcvcGhvdG8vaG9tZXBhZ2Uvam9pbnRjb21tZXJjZS1iYWNrZ3JvdW5kLnBuZyk7Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoKCiAgICAKICAgIAoKICAgIDxzY3JpcHQgc3JjPSdodHRwczovL2FwaS5tYXBib3guY29tL21hcGJveC1nbC1qcy92Mi42LjEvbWFwYm94LWdsLmpzJz48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMy42LjAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSdodHRwczovL2FwaS5tYXBib3guY29tL21hcGJveC1nbC1qcy9wbHVnaW5zL21hcGJveC1nbC1nZW9jb2Rlci92NC43LjAvbWFwYm94LWdsLWdlb2NvZGVyLm1pbi5qcyc+PC9zY3JpcHQ+CgogICAgPCEtLSBKYXZhU2NyaXB0IGZpbGVzLS0+CiAgICA8c2NyaXB0PgogICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy8KICAgICAgICAvLyAgIEluamVjdCBTVkcgU3ByaXRlIC0gCiAgICAgICAgLy8gICBzZWUgbW9yZSBoZXJlIAogICAgICAgIC8vICAgaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9hamF4aW5nLXN2Zy1zcHJpdGUvCiAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vCiAgICAgICAgZnVuY3Rpb24gaW5qZWN0U3ZnU3ByaXRlKHBhdGgpIHsKICAgICAgICAgIGZldGNoKHBhdGgpCiAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7CiAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgZXJyb3IhIHN0YXR1czogJHtyZXNwb25zZS5zdGF0dXN9YCk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIC50aGVuKGRhdGEgPT4gewogICAgICAgICAgICAgICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAgICAgICAgIGRpdi5jbGFzc05hbWUgPSAnZC1ub25lJzsKICAgICAgICAgICAgICAgICAgZGl2LmlubmVySFRNTCA9IGRhdGE7CiAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRpdiwgZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzWzBdKTsKICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgIC5jYXRjaChlID0+IHsKICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgdGhlIFNWRyBzcHJpdGU6JywgZSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgIH0KICAgICAgCiAgICAgIGluamVjdFN2Z1Nwcml0ZSgiL3N0YXRpYy9kaXJlY3RvcnkvaWNvbnMvb3Jpb24tc3ZnLXNwcml0ZS5zdmciKTsKICAgICAgICAKICAgICAgPC9zY3JpcHQ+CiAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2NoYXJ0LmpzIiA+PC9zY3JpcHQ+CiAgICAgIDwhLS0gU21vb3RoIHNjcm9sbC0tPgogICAgICA8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL3Ntb290aC1zY3JvbGwvc21vb3RoLXNjcm9sbC5wb2x5ZmlsbHMubWluLmpzIj48L3NjcmlwdD4KICAgICAgPCEtLSBCb290c3RyYXAgU2VsZWN0LS0+CiAgICAgIDxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS92ZW5kb3IvYm9vdHN0cmFwLXNlbGVjdC9qcy9ib290c3RyYXAtc2VsZWN0Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICAgIDwhLS0gT2JqZWN0IEZpdCBJbWFnZXMgLSBGYWxsYmFjayBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG9iamVjdC1maXQtLT4KICAgICAgPHNjcmlwdCBzcmM9Ii9zdGF0aWMvZGlyZWN0b3J5L3ZlbmRvci9vYmplY3QtZml0LWltYWdlcy9vZmkubWluLmpzIj48L3NjcmlwdD4KICAgICAgPCEtLSBTd2lwZXIgQ2Fyb3VzZWwgLS0+CiAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9Td2lwZXIvNC40LjEvanMvc3dpcGVyLm1pbi5qcyIgPjwvc2NyaXB0PgogICAgICA8IS0tIEluY2x1ZGUgU3dpcGVyIEpTIC0tPgogICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vc3dpcGVyL3N3aXBlci1idW5kbGUubWluLmpzIiA+PC9zY3JpcHQ+CiAgICAgIDxzY3JpcHQ+dmFyIGJhc2VQYXRoID0gJyc8L3NjcmlwdD4KICAgICAgPCEtLSBNYWluIFRoZW1lIEpTIGZpbGUgICAgLS0+CiAgICAgIDxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS9qcy90aGVtZS5qcyI+PC9zY3JpcHQ+CgogICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgdmFyIG1hcmtlclBhdGggPSAiL3N0YXRpYy9kaXJlY3RvcnkvaW1nL21hcmtlci5zdmciOwogICAgICAgIHZhciBtYXJrZXJQYXRoSGlnaGxpZ2h0ID0gIi9zdGF0aWMvZGlyZWN0b3J5L2ltZy9tYXJrZXItaG92ZXIuc3ZnIjsKICAgICAgPC9zY3JpcHQ+CiAgICA8L3NjcmlwdD4KCiAgICAKICAgIAogICAgCgo8c2NyaXB0PgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBtYXBib3hnbC5hY2Nlc3NUb2tlbiA9ICdway5leUoxSWpvaWMzUmxjR2hsYm1wdmFXNTBZMjl0YldWeVkyVWlMQ0poSWpvaVkyeGxaWFprZWpBM01EVTBhak4wY0cxMmNUZHliV2wyZUNKOS50SGZiaWd2TzNIUmhBSi1WeVZIOS1BJzsKCiAgICAgICAgZnVuY3Rpb24gc2V0dXBTZWFyY2hGb3JtSW50ZXJhY3Rpb24oZm9ybUlkLCBsb2NhdGlvbklkLCBoaWRkZW5MYXRJZCwgaGlkZGVuTG5nSWQsIHN1Z2dlc3Rpb25zSWQpIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTsKCiAgICAgICAgICAgICQobG9jYXRpb25JZCkub24oJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICB2YXIgcXVlcnkgPSAkKHRoaXMpLnZhbCgpOwogICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IC0xOwogICAgICAgICAgICAgICAgaWYocXVlcnkubGVuZ3RoID4gMikgewogICAgICAgICAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogYGh0dHBzOi8vYXBpLm1hcGJveC5jb20vZ2VvY29kaW5nL3Y1L21hcGJveC5wbGFjZXMvJHtlbmNvZGVVUklDb21wb25lbnQocXVlcnkpfS5qc29uYCwKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbjogbWFwYm94Z2wuYWNjZXNzVG9rZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudHJ5OiAnVVMnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zSWQpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZlYXR1cmVzLmZvckVhY2goZnVuY3Rpb24oZmVhdHVyZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0SXRlbSA9ICQoYDxsaSBjbGFzcz0ibGlzdC1ncm91cC1pdGVtIiBkYXRhLWxhdD0iJHtmZWF0dXJlLmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdfSIgZGF0YS1sbmc9IiR7ZmVhdHVyZS5nZW9tZXRyeS5jb29yZGluYXRlc1swXX0iPiR7ZmVhdHVyZS5wbGFjZV9uYW1lfTwvbGk+YCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5hcHBlbmQobGlzdEl0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkFQSSBFcnJvcjoiLCBlcnJvcik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQobG9jYXRpb25JZCkub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICB2YXIgc3VnZ2VzdGlvbnMgPSAkKHN1Z2dlc3Rpb25zSWQgKyAnIGxpJyk7CiAgICAgICAgICAgICAgICBpZihlLmtleUNvZGUgPT09IDQwKSB7IC8vIERvd24gYXJyb3cKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggKyAxKSAlIHN1Z2dlc3Rpb25zLmxlbmd0aDsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihlLmtleUNvZGUgPT09IDM4KSB7IC8vIFVwIGFycm93CiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJbmRleCA9IChzZWxlY3RlZEluZGV4IC0gMSArIHN1Z2dlc3Rpb25zLmxlbmd0aCkgJSBzdWdnZXN0aW9ucy5sZW5ndGg7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZS5rZXlDb2RlID09PSAxMykgeyAvLyBFbnRlciBrZXkKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWRJbmRleCA+IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZFN1Z2dlc3Rpb24gPSBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwoc2VsZWN0ZWRTdWdnZXN0aW9uLnRleHQoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTGF0SWQpLnZhbChzZWxlY3RlZFN1Z2dlc3Rpb24uZGF0YSgnbGF0JykpOwogICAgICAgICAgICAgICAgICAgICAgICAkKGhpZGRlbkxuZ0lkKS52YWwoc2VsZWN0ZWRTdWdnZXN0aW9uLmRhdGEoJ2xuZycpKTsKICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0lkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5yZW1vdmVDbGFzcygnc2VsZWN0ZWQnKTsKICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb25zLmVxKHNlbGVjdGVkSW5kZXgpLmFkZENsYXNzKCdzZWxlY3RlZCcpOwogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNJZCkub24oJ2NsaWNrJywgJ2xpJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAkKGxvY2F0aW9uSWQpLnZhbCgkKHRoaXMpLnRleHQoKSk7CiAgICAgICAgICAgICAgICAkKGhpZGRlbkxhdElkKS52YWwoJCh0aGlzKS5kYXRhKCdsYXQnKSk7CiAgICAgICAgICAgICAgICAkKGhpZGRlbkxuZ0lkKS52YWwoJCh0aGlzKS5kYXRhKCdsbmcnKSk7CiAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zSWQpLmVtcHR5KCk7CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgJChmb3JtSWQpLnN1Ym1pdChmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICBpZigkKGhpZGRlbkxhdElkKS52YWwoKSAmJiAkKGhpZGRlbkxuZ0lkKS52YWwoKSkgewogICAgICAgICAgICAgICAgICAgIHZhciBmb3JtRGF0YSA9ICQodGhpcykuc2VyaWFsaXplKCk7CiAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ0dFVCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJy9zZWFyY2hfcmVzdWx0cy8nLCAvLyBVcGRhdGUgd2l0aCB0aGUgYWN0dWFsIHBhdGggdG8geW91ciB2aWV3CiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGZvcm1EYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjc2VhcmNoUmVzdWx0c0NvbnRhaW5lcicpLmh0bWwoZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coIkVycm9yOiIsIGVycm9yKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBhbGVydCgnUGxlYXNlIHNlbGVjdCBhIGxvY2F0aW9uIGZyb20gdGhlIHN1Z2dlc3Rpb25zLicpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbihsb2NhdGlvbklkLCBoaWRkZW5MYXRJZCwgaGlkZGVuTG5nSWQpIHsKICAgICAgICAgICAgaWYgKG5hdmlnYXRvci5nZW9sb2NhdGlvbikgewogICAgICAgICAgICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihwb3NpdGlvbikgewogICAgICAgICAgICAgICAgICAgIHZhciBsYXQgPSBwb3NpdGlvbi5jb29yZHMubGF0aXR1ZGU7CiAgICAgICAgICAgICAgICAgICAgdmFyIGxuZyA9IHBvc2l0aW9uLmNvb3Jkcy5sb25naXR1ZGU7CiAgICAgICAgICAgICAgICAgICAgJC5hamF4KHsKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJywKICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBgaHR0cHM6Ly9hcGkubWFwYm94LmNvbS9nZW9jb2RpbmcvdjUvbWFwYm94LnBsYWNlcy8ke2xuZ30sJHtsYXR9Lmpzb25gLAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzX3Rva2VuOiBtYXBib3hnbC5hY2Nlc3NUb2tlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnk6ICdVUycsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLmZlYXR1cmVzICYmIGRhdGEuZmVhdHVyZXNbMF0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKGxvY2F0aW9uSWQpLnZhbChkYXRhLmZlYXR1cmVzWzBdLnBsYWNlX25hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTGF0SWQpLnZhbChsYXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoaGlkZGVuTG5nSWQpLnZhbChsbmcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBUEkgRXJyb3I6IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGFsZXJ0KCJHZW9sb2NhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3Nlci4iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKGxvY2F0aW9uSWQsIGhpZGRlbkxhdElkLCBoaWRkZW5MbmdJZCwgZGVmYXVsdExvY2F0aW9uLCBkZWZhdWx0TGF0LCBkZWZhdWx0TG5nLCB1c2VDdXJyZW50TG9jYXRpb24gPSB0cnVlKSB7CiAgICAgICAgICAgIHZhciBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwogICAgICAgICAgICB2YXIgbG9jYXRpb24gPSBzZWFyY2hQYXJhbXMuZ2V0KCdsb2NhdGlvbicpOwogICAgICAgICAgICB2YXIgbGF0aXR1ZGUgPSBzZWFyY2hQYXJhbXMuZ2V0KCdsYXRpdHVkZScpOwogICAgICAgICAgICB2YXIgbG9uZ2l0dWRlID0gc2VhcmNoUGFyYW1zLmdldCgnbG9uZ2l0dWRlJyk7CgogICAgICAgICAgICBpZiAoIWxvY2F0aW9uIHx8ICFsYXRpdHVkZSB8fCAhbG9uZ2l0dWRlKSB7CiAgICAgICAgICAgICAgICBpZiAodXNlQ3VycmVudExvY2F0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgZmlsbFdpdGhDdXJyZW50TG9jYXRpb24obG9jYXRpb25JZCwgaGlkZGVuTGF0SWQsIGhpZGRlbkxuZ0lkKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwoZGVmYXVsdExvY2F0aW9uKTsKICAgICAgICAgICAgICAgICAgICAkKGhpZGRlbkxhdElkKS52YWwoZGVmYXVsdExhdCk7CiAgICAgICAgICAgICAgICAgICAgJChoaWRkZW5MbmdJZCkudmFsKGRlZmF1bHRMbmcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJChsb2NhdGlvbklkKS52YWwobG9jYXRpb24pOwogICAgICAgICAgICAgICAgJChoaWRkZW5MYXRJZCkudmFsKGxhdGl0dWRlKTsKICAgICAgICAgICAgICAgICQoaGlkZGVuTG5nSWQpLnZhbChsb25naXR1ZGUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgcGFnZSBpcyB0aGUgc2VhcmNoIHJlc3VsdHMgcGFnZQogICAgICAgIHZhciBpc1NlYXJjaFJlc3VsdHNQYWdlID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluY2x1ZGVzKCdzZWFyY2hfcmVzdWx0cycpOwoKICAgICAgICAvLyBTZXR1cCBpbnRlcmFjdGlvbiBmb3IgZWFjaCBmb3JtCiAgICAgICAgc2V0dXBTZWFyY2hGb3JtSW50ZXJhY3Rpb24oJyNzZWFyY2hGb3JtMScsICcjbG9jYXRpb24xJywgJyNoaWRkZW5MYXQxJywgJyNoaWRkZW5MbmcxJywgJyNzdWdnZXN0aW9uczEnKTsKICAgICAgICBzZXR1cFNlYXJjaEZvcm1JbnRlcmFjdGlvbignI3NlYXJjaEZvcm0yJywgJyNsb2NhdGlvbjInLCAnI2hpZGRlbkxhdDInLCAnI2hpZGRlbkxuZzInLCAnI3N1Z2dlc3Rpb25zMicpOwoKICAgICAgICAkKCcuZmEtY3Jvc3NoYWlycycpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbignI2xvY2F0aW9uMScsICcjaGlkZGVuTGF0MScsICcjaGlkZGVuTG5nMScpOwogICAgICAgICAgICBmaWxsV2l0aEN1cnJlbnRMb2NhdGlvbignI2xvY2F0aW9uMicsICcjaGlkZGVuTGF0MicsICcjaGlkZGVuTG5nMicpOwogICAgICAgIH0pOwoKICAgICAgICAvLyBQcmVmaWxsIHNlYXJjaCBib3ggb24gcGFnZSBsb2FkCiAgICAgICAgcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKCcjbG9jYXRpb24xJywgJyNoaWRkZW5MYXQxJywgJyNoaWRkZW5MbmcxJywgJ0xvcyBBbmdlbGVzLCBDYWxpZm9ybmlhLCBVbml0ZWQgU3RhdGVzJywgMzQuMDU0MDc3LCAtMTE4LjI0MTY4LCAhaXNTZWFyY2hSZXN1bHRzUGFnZSk7CiAgICAgICAgcHJlZmlsbFNlYXJjaEJveElmTmVlZGVkKCcjbG9jYXRpb24yJywgJyNoaWRkZW5MYXQyJywgJyNoaWRkZW5MbmcyJywgJ0xvcyBBbmdlbGVzLCBDYWxpZm9ybmlhLCBVbml0ZWQgU3RhdGVzJywgMzQuMDU0MDc3LCAtMTE4LjI0MTY4LCAhaXNTZWFyY2hSZXN1bHRzUGFnZSk7CiAgICB9KTsKICAgIAo8L3NjcmlwdD4KICAgIAo8c2NyaXB0PgogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBmdW5jdGlvbiBzZXR1cEJyYW5kU2VhcmNoQXV0b2NvbXBsZXRlKGlucHV0SWQsIHN1Z2dlc3Rpb25zQ29udGFpbmVySWQpIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkSW5kZXggPSAtMTsgLy8gSW5kZXggdG8gdHJhY2sgdGhlIGN1cnJlbnQgc2VsZWN0aW9uCiAgICAKICAgICAgICAgICAgJChpbnB1dElkKS5vbignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBxdWVyeSA9ICQodGhpcykudmFsKCk7CiAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gLTE7IC8vIFJlc2V0IHRoZSBzZWxlY3Rpb24gaW5kZXggb24gbmV3IGlucHV0CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiS2V5cHJlc3MgZGV0ZWN0ZWQsIGN1cnJlbnQgaW5wdXQ6IiwgcXVlcnkpOyAvLyBGb3IgZGVidWdnaW5nCiAgICAKICAgICAgICAgICAgICAgIGlmKHF1ZXJ5Lmxlbmd0aCA+IDIpIHsKICAgICAgICAgICAgICAgICAgICAkLmFqYXgoewogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLAogICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICcvc2VhcmNoX2JyYW5kcy8nLAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7IHRlcm06IHF1ZXJ5IH0sCiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNDb250YWluZXJJZCkuZW1wdHkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEgJiYgZGF0YS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdEl0ZW0gPSAkKGA8bGkgdGFiaW5kZXg9IjAiIGNsYXNzPSJsaXN0LWdyb3VwLWl0ZW0iIGRhdGEtdmFsdWU9IiR7aXRlbS52YWx1ZX0iPiR7aXRlbS5sYWJlbH08L2xpPmApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhpdGVtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0NvbnRhaW5lcklkKS5hcHBlbmQobGlzdEl0ZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJBUEkgRXJyb3I6IiwgZXJyb3IpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICQoc3VnZ2VzdGlvbnNDb250YWluZXJJZCkuZW1wdHkoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkub24oJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICB2YXIgc3VnZ2VzdGlvbnMgPSAkKHN1Z2dlc3Rpb25zQ29udGFpbmVySWQgKyAnIGxpJyk7CiAgICAgICAgICAgICAgICB2YXIgbnVtU3VnZ2VzdGlvbnMgPSBzdWdnZXN0aW9ucy5sZW5ndGg7CiAgICAKICAgICAgICAgICAgICAgIGlmKGUua2V5Q29kZSA9PT0gNDApIHsgLy8gRG93biBhcnJvdyBrZXkKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggKyAxKSAlIG51bVN1Z2dlc3Rpb25zOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCB0aGUgY3Vyc29yIGZyb20gbW92aW5nCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYoZS5rZXlDb2RlID09PSAzOCkgeyAvLyBVcCBhcnJvdyBrZXkKICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gKHNlbGVjdGVkSW5kZXggLSAxICsgbnVtU3VnZ2VzdGlvbnMpICUgbnVtU3VnZ2VzdGlvbnM7CiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50IHRoZSBjdXJzb3IgZnJvbSBtb3ZpbmcKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihlLmtleUNvZGUgPT09IDEzICYmIHNlbGVjdGVkSW5kZXggPj0gMCkgeyAvLyBFbnRlciBrZXkKICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KS5jbGljaygpOwogICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudCBmb3JtIHN1Ym1pc3Npb24KICAgICAgICAgICAgICAgIH0KICAgIAogICAgICAgICAgICAgICAgc3VnZ2VzdGlvbnMucmVtb3ZlQ2xhc3MoJ3NlbGVjdGVkJyk7CiAgICAgICAgICAgICAgICBpZihzZWxlY3RlZEluZGV4ID49IDApIHsKICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9ucy5lcShzZWxlY3RlZEluZGV4KS5hZGRDbGFzcygnc2VsZWN0ZWQnKS5mb2N1cygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgIAogICAgICAgICAgICAkKGRvY3VtZW50KS5vbignY2xpY2snLCBzdWdnZXN0aW9uc0NvbnRhaW5lcklkICsgJyBsaScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gJCh0aGlzKS50ZXh0KCk7CiAgICAgICAgICAgICAgICAkKGlucHV0SWQpLnZhbCh2YWx1ZSk7CiAgICAgICAgICAgICAgICAkKHN1Z2dlc3Rpb25zQ29udGFpbmVySWQpLmVtcHR5KCk7CiAgICAgICAgICAgICAgICBzZWxlY3RlZEluZGV4ID0gLTE7IC8vIFJlc2V0IHRoZSBzZWxlY3Rpb24gaW5kZXgKICAgICAgICAgICAgfSk7CiAgICAKICAgICAgICAgICAgJChpbnB1dElkKS5vbignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgLy8gRGVsYXkgY2xlYXJpbmcgdGhlIHN1Z2dlc3Rpb25zIHRvIGFsbG93IGNsaWNrIGV2ZW50IHRvIGZpcmUKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgJChzdWdnZXN0aW9uc0NvbnRhaW5lcklkKS5lbXB0eSgpOwogICAgICAgICAgICAgICAgfSwgMjAwKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgCiAgICAgICAgc2V0dXBCcmFuZFNlYXJjaEF1dG9jb21wbGV0ZSgnI2JyYW5kX3NlYXJjaCcsICcjc3VnZ2VzdGlvbnMzJyk7CiAgICB9KTsKPC9zY3JpcHQ+CjxzY3JpcHQ+CiAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7CiAgICAkKCcuY2FyZC1mYXYtaWNvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgaGVhcnRJY29uID0gJCh0aGlzKS5maW5kKCcuaGVhcnQtaWNvbicpOwogICAgICB2YXIgaXRlbUlkID0gJCh0aGlzKS5kYXRhKCdpZCcpOwogICAgICB2YXIgYm9va21hcmtUeXBlID0gJCh0aGlzKS5kYXRhKCd0eXBlJyk7CiAgICAgIHZhciBpc0Jvb2ttYXJrZWQgPSAkKHRoaXMpLmRhdGEoJ2Jvb2ttYXJrZWQnKSA9PT0gIlRydWUiOwoKICAgICAgJC5hamF4KHsKICAgICAgICB1cmw6ICcvdG9nZ2xlX2Jvb2ttYXJrLycsCiAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAgICAgICAgZGF0YTogewogICAgICAgICAgJ2NzcmZtaWRkbGV3YXJldG9rZW4nOiAnSVpyYnN5azJWeUNhM1ZkMzZkNEJrRlE4MjdqUzhLRFB6U3dYQmdpUDRJU0R4dEJPR0RMeGl2OUxvMzBXaGdYdScsCiAgICAgICAgICAnaXRlbV9pZCc6IGl0ZW1JZCwKICAgICAgICAgICd0eXBlJzogYm9va21hcmtUeXBlCiAgICAgICAgfSwKICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXNwb25zZSkgewogICAgICAgICAgaWYgKHJlc3BvbnNlLmlzX2Jvb2ttYXJrZWQpIHsKICAgICAgICAgICAgaGVhcnRJY29uLmFkZENsYXNzKCdib29rbWFya2VkJyk7CiAgICAgICAgICAgIGhlYXJ0SWNvbi5wYXJlbnQoKS5kYXRhKCdib29rbWFya2VkJywgIlRydWUiKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGhlYXJ0SWNvbi5yZW1vdmVDbGFzcygnYm9va21hcmtlZCcpOwogICAgICAgICAgICBoZWFydEljb24ucGFyZW50KCkuZGF0YSgnYm9va21hcmtlZCcsICJGYWxzZSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9KTsKICB9KTsKPC9zY3JpcHQ+ICAgICAgICAKICAgIAogICAgCgogICAgCiAgICAKPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0zLjYuMC5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vbGVhZmxldEAxLjUuMS9kaXN0L2xlYWZsZXQuanMiIGludGVncml0eT0ic2hhNTEyLUdmZlBNRjNSdk1lWXljMUxXTUh0SzhFYlB2MGlOWjgvb1R0SFB4OS9jYzJJTHhRK3U5MDVxSXdkcFVMYXFEa3lCS2dPYUI1N1FUTWc3enRnOEptMk9nPT0iIGNyb3Nzb3JpZ2luPSIiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvdmVuZG9yL29iamVjdC1maXQtaW1hZ2VzL29maS5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvU3dpcGVyLzQuNC4xL2pzL3N3aXBlci5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvanMvbWFwLWxheWVycy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvc3RhdGljL2RpcmVjdG9yeS9qcy9tYXAtY2F0ZWdvcnkuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iL3N0YXRpYy9kaXJlY3RvcnkvanMvbWFwLWRldGFpbC5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdD4KICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIChldmVudCkgPT4gewogICAgICAgICAgY29uc3QgYWxlcnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmFsZXJ0Jyk7CiAgICAgICAgICAKICAgICAgICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCkgPT4gewogICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICBhbGVydC5jbGFzc0xpc3QucmVtb3ZlKCdzaG93Jyk7IC8vIFRyaWdnZXJzIGZhZGUtb3V0IHRyYW5zaXRpb24KICAgICAgICAgICAgICAgICAgYWxlcnQuY2xhc3NMaXN0LmFkZCgnZmFkZScpOwogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIENTUyB0cmFuc2l0aW9uIHRvIGZpbmlzaCBiZWZvcmUgcmVtb3ZpbmcgdGhlIGVsZW1lbnQKICAgICAgICAgICAgICAgICAgYWxlcnQuYWRkRXZlbnRMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgIGFsZXJ0LnJlbW92ZSgpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9LCAzMDAwKTsKICAgICAgICAgIH0pOwogICAgICB9KTsKICAgIDwvc2NyaXB0PgogIDwvYm9keT4KPC9odG1sPg==', '', '{"Content-Type": "text/html; charset=utf-8"}')
7.88

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(131)
  ResponseModelFactory(response).construct_response_model()

/app/.heroku/python/lib/python3.11/site-packages/silk/model_factory.py in construct_response_model(322)
  silky_response.save()

SAVEPOINT "s140338265717632_x63"SAVEPOINT "s140338265717632_x63"
38.86

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(167)
  models.SQLQuery.objects.bulk_create(sql_queries)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(80)
  with self._recreate_cm():

/app/.heroku/python/lib/python3.11/site-packages/django/utils/asyncio.py in inner(26)
  return func(*args, **kwargs)

UPDATE "silk_request"
   SET "num_sql_queries" = 1
 WHERE "silk_request"."id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
UPDATE "silk_request" SET "num_sql_queries" = 1 WHERE "silk_request"."id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
4.32

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(167)
  models.SQLQuery.objects.bulk_create(sql_queries)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in bulk_create(246)
  obj.prepare_save()

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in prepare_save(326)
  self.request.save(update_fields=['num_sql_queries'])

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in save(203)
  super().save(*args, **kwargs)

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(89)
  return self._execute_sql(*args, **kwargs)

SELECT "silk_request"."start_time"
  FROM "silk_request"
 ORDER BY "silk_request"."start_time" DESC
 LIMIT 1
OFFSET 9990
SELECT ••• FROM "silk_request" ORDER BY "silk_request"."start_time" DESC LIMIT 1 OFFSET 9990
2 similar queries. Duplicated 2 times.
184.25

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(167)
  models.SQLQuery.objects.bulk_create(sql_queries)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in bulk_create(246)
  obj.prepare_save()

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in prepare_save(326)
  self.request.save(update_fields=['num_sql_queries'])

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in save(204)
  Request.garbage_collect(force=False)

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in garbage_collect(173)
  time_cutoff = cls.objects.order_by(

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(89)
  return self._execute_sql(*args, **kwargs)

INSERT INTO "silk_sqlquery" ("query", "start_time", "end_time", "time_taken", "identifier", "request_id", "traceback", "analysis")
VALUES ('SELECT "socialaccount_socialapp"."id", "socialaccount_socialapp"."provider", "socialaccount_socialapp"."provider_id", "socialaccount_socialapp"."name", "socialaccount_socialapp"."client_id", "socialaccount_socialapp"."secret", "socialaccount_socialapp"."key", "socialaccount_socialapp"."settings" FROM "socialaccount_socialapp" INNER JOIN "socialaccount_socialapp_sites" ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id") WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = google OR "socialaccount_socialapp"."provider_id" = google))', '2024-09-20T06:27:34.777888+00:00'::timestamptz, '2024-09-20T06:27:34.823811+00:00'::timestamptz, 45.923, 1, '6a03c6f9-2417-433c-9919-48061adf7acf', ' File "/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py", line 82, in execute_sql tb = ''''.join(reversed(traceback.format_stack())) File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 1928, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 400, in __iter__ self._fetch_all() File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 238, in list_apps for app in db_apps: File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 286, in get_app apps = self.list_apps(request, provider=provider, client_id=client_id) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 206, in get_provider app = self.get_app(request, provider=provider) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/templatetags/socialaccount.py", line 20, in provider_login_url provider = adapter.get_provider(request, provider) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/library.py", line 237, in render output = self.func(*resolved_args, **resolved_kwargs) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py", line 65, in render result = block.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render return self.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py", line 159, in render return compiled_parent._render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render return self.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 171, in render return self._render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py", line 92, in rendered_content return template.render(context, self._request) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py", line 114, in render self.content = self.rendered_content File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/base.py", line 220, in _get_response response = response.render() File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py", line 72, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) [Previous line repeated 1 more time] File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/staticfiles.py", line 114, in process_request response = super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/headers.py", line 46, in process_request return super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/timer.py", line 65, in process_request return super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/middleware.py", line 58, in __call__ response = toolbar.process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py", line 36, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py", line 14, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py", line 56, in __call__ result = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/rawdata/middleware.py", line 23, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/rawdata/middleware.py", line 57, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py", line 124, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/base.py", line 140, in get_response response = self._middleware_chain(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/wsgi.py", line 124, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 178, in handle_request respiter = self.wsgi(environ, resp.start_response) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 135, in handle self.handle_request(listener, req, client, addr) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 32, in accept self.handle(listener, client, addr) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 70, in run_for_one self.accept(listener) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 126, in run self.run_for_one(timeout) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py", line 142, in init_process self.run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker worker.init_process() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 642, in spawn_workers self.spawn_worker() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 571, in manage_workers self.spawn_workers() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 202, in run self.manage_workers() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py", line 72, in run Arbiter(self).run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py", line 236, in run super().run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 67, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/app/.heroku/python/bin/gunicorn", line 8, in <module> sys.exit(run()) ', 'Nested Loop (cost=0.00..2.02 rows=1 width=1830) Join Filter: (socialaccount_socialapp.id = socialaccount_socialapp_sites.socialapp_id) -> Seq Scan on socialaccount_socialapp_sites (cost=0.00..1.01 rows=1 width=4) Filter: (site_id = 1) -> Seq Scan on socialaccount_socialapp (cost=0.00..1.01 rows=2 width=1830) Filter: (((provider)::text = ''google''::text) OR ((provider_id)::text = ''google''::text))') RETURNING "silk_sqlquery"."id"
INSERT INTO "silk_sqlquery" ("query", "start_time", "end_time", "time_taken", "identifier", "request_id", "traceback", "analysis") VALUES ('SELECT "socialaccount_socialapp"."id", "socialaccount_socialapp"."provider", "socialaccount_socialapp"."provider_id", "socialaccount_socialapp"."name", "socialaccount_socialapp"."client_id", "socialaccount_socialapp"."secret", "socialaccount_socialapp"."key", "socialaccount_socialapp"."settings" FROM "socialaccount_socialapp" INNER JOIN "socialaccount_socialapp_sites" ON ("socialaccount_socialapp"."id" = "socialaccount_socialapp_sites"."socialapp_id") WHERE ("socialaccount_socialapp_sites"."site_id" = 1 AND ("socialaccount_socialapp"."provider" = google OR "socialaccount_socialapp"."provider_id" = google))', '2024-09-20T06:27:34.777888+00:00'::timestamptz, '2024-09-20T06:27:34.823811+00:00'::timestamptz, 45.923, 1, '6a03c6f9-2417-433c-9919-48061adf7acf', ' File "/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py", line 82, in execute_sql tb = ''''.join(reversed(traceback.format_stack())) File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 91, in __iter__ results = compiler.execute_sql( File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 1928, in _fetch_all self._result_cache = list(self._iterable_class(self)) File "/app/.heroku/python/lib/python3.11/site-packages/django/db/models/query.py", line 400, in __iter__ self._fetch_all() File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 238, in list_apps for app in db_apps: File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 286, in get_app apps = self.list_apps(request, provider=provider, client_id=client_id) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/adapter.py", line 206, in get_provider app = self.get_app(request, provider=provider) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/templatetags/socialaccount.py", line 20, in provider_login_url provider = adapter.get_provider(request, provider) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/library.py", line 237, in render output = self.func(*resolved_args, **resolved_kwargs) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py", line 65, in render result = block.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render return self.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py", line 159, in render return compiled_parent._render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 961, in render_annotated return self.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in <listcomp> return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 1000, in render return SafeString("".join([node.render_annotated(context) for node in self])) File "/app/.heroku/python/lib/python3.11/site-packages/django/test/utils.py", line 111, in instrumented_test_render return self.nodelist.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/base.py", line 171, in render return self._render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py", line 92, in rendered_content return template.render(context, self._request) File "/app/.heroku/python/lib/python3.11/site-packages/django/template/response.py", line 114, in render self.content = self.rendered_content File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/base.py", line 220, in _get_response response = response.render() File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py", line 72, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) [Previous line repeated 1 more time] File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/staticfiles.py", line 114, in process_request response = super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/headers.py", line 46, in process_request return super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/timer.py", line 65, in process_request return super().process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/panels/__init__.py", line 204, in process_request return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/middleware.py", line 58, in __call__ response = toolbar.process_request(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py", line 36, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py", line 14, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py", line 56, in __call__ result = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/rawdata/middleware.py", line 23, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/rawdata/middleware.py", line 57, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py", line 124, in __call__ return self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/utils/deprecation.py", line 134, in __call__ response = response or self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner response = get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/base.py", line 140, in get_response response = self._middleware_chain(request) File "/app/.heroku/python/lib/python3.11/site-packages/django/core/handlers/wsgi.py", line 124, in __call__ response = self.get_response(request) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 178, in handle_request respiter = self.wsgi(environ, resp.start_response) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 135, in handle self.handle_request(listener, req, client, addr) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 32, in accept self.handle(listener, client, addr) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 70, in run_for_one self.accept(listener) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py", line 126, in run self.run_for_one(timeout) File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py", line 142, in init_process self.run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker worker.init_process() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 642, in spawn_workers self.spawn_worker() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 571, in manage_workers self.spawn_workers() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py", line 202, in run self.manage_workers() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py", line 72, in run Arbiter(self).run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py", line 236, in run super().run() File "/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py", line 67, in run WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() File "/app/.heroku/python/bin/gunicorn", line 8, in <module> sys.exit(run()) ', 'Nested Loop (cost=0.00..2.02 rows=1 width=1830) Join Filter: (socialaccount_socialapp.id = socialaccount_socialapp_sites.socialapp_id) -> Seq Scan on socialaccount_socialapp_sites (cost=0.00..1.01 rows=1 width=4) Filter: (site_id = 1) -> Seq Scan on socialaccount_socialapp (cost=0.00..1.01 rows=2 width=1830) Filter: (((provider)::text = ''google''::text) OR ((provider_id)::text = ''google''::text))') RETURNING "silk_sqlquery"."id"
45.80

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(167)
  models.SQLQuery.objects.bulk_create(sql_queries)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in bulk_create(248)
  return super().bulk_create(*args, **kwargs)

RELEASE SAVEPOINT "s140338265717632_x63"RELEASE SAVEPOINT "s140338265717632_x63"
10.12

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(167)
  models.SQLQuery.objects.bulk_create(sql_queries)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(80)
  with self._recreate_cm():

/app/.heroku/python/lib/python3.11/site-packages/django/utils/asyncio.py in inner(26)
  return func(*args, **kwargs)

SELECT "silk_sqlquery"."id",
       "silk_sqlquery"."query",
       "silk_sqlquery"."start_time",
       "silk_sqlquery"."end_time",
       "silk_sqlquery"."time_taken",
       "silk_sqlquery"."identifier",
       "silk_sqlquery"."request_id",
       "silk_sqlquery"."traceback",
       "silk_sqlquery"."analysis"
  FROM "silk_sqlquery"
 WHERE "silk_sqlquery"."request_id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
SELECT ••• FROM "silk_sqlquery" WHERE "silk_sqlquery"."request_id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
3.58

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(133)
  collector.finalise()

/app/.heroku/python/lib/python3.11/site-packages/silk/collector.py in finalise(169)
  for sql_query in sql_queries.all():

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(89)
  return self._execute_sql(*args, **kwargs)

UPDATE "silk_request"
   SET "path" = '/accounts/signup/',
       "query_params" = '{"next": "/dispensaries/8984/"}',
       "raw_body" = '',
       "body" = '',
       "method" = 'GET',
       "start_time" = '2024-09-20T06:27:34.044547+00:00'::timestamptz,
       "view_name" = 'accounts-signup',
       "end_time" = '2024-09-20T06:27:34.868576+00:00'::timestamptz,
       "time_taken" = 824.029,
       "encoded_headers" = '{"host": "app.jointcommerce.com", "connection": "close", "accept": "*/*", "user-agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "cookie": "********************", "accept-encoding": "gzip, br, zstd, deflate", "x-request-id": "38f00ce8-02b7-4f8e-b0a0-fd47ee026c30", "x-forwarded-for": "3.147.51.16", "x-forwarded-proto": "https", "x-forwarded-port": "443", "via": "1.1 vegur", "connect-time": "0", "x-request-start": "1726813654041", "total-route-time": "0"}',
       "meta_time" = NULL,
       "meta_num_queries" = NULL,
       "meta_time_spent_queries" = NULL,
       "pyprofile" = '',
       "prof_file" = '',
       "num_sql_queries" = 1
 WHERE "silk_request"."id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
UPDATE "silk_request" SET "path" = '/accounts/signup/', "query_params" = '{"next": "/dispensaries/8984/"}', "raw_body" = '', "body" = '', "method" = 'GET', "start_time" = '2024-09-20T06:27:34.044547+00:00'::timestamptz, "view_name" = 'accounts-signup', "end_time" = '2024-09-20T06:27:34.868576+00:00'::timestamptz, "time_taken" = 824.029, "encoded_headers" = '{"host": "app.jointcommerce.com", "connection": "close", "accept": "*/*", "user-agent": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)", "cookie": "********************", "accept-encoding": "gzip, br, zstd, deflate", "x-request-id": "38f00ce8-02b7-4f8e-b0a0-fd47ee026c30", "x-forwarded-for": "3.147.51.16", "x-forwarded-proto": "https", "x-forwarded-port": "443", "via": "1.1 vegur", "connect-time": "0", "x-request-start": "1726813654041", "total-route-time": "0"}', "meta_time" = NULL, "meta_num_queries" = NULL, "meta_time_spent_queries" = NULL, "pyprofile" = '', "prof_file" = '', "num_sql_queries" = 1 WHERE "silk_request"."id" = '6a03c6f9-2417-433c-9919-48061adf7acf'
13.55

Connection: default

Transaction status: In transaction

/app/.heroku/python/bin/gunicorn in <module>(8)
  sys.exit(run())

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/wsgiapp.py in run(67)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(236)
  super().run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/app/base.py in run(72)
  Arbiter(self).run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in run(202)
  self.manage_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in manage_workers(571)
  self.spawn_workers()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_workers(642)
  self.spawn_worker()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/arbiter.py in spawn_worker(609)
  worker.init_process()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/base.py in init_process(142)
  self.run()

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run(126)
  self.run_for_one(timeout)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in run_for_one(70)
  self.accept(listener)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in accept(32)
  self.handle(listener, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle(135)
  self.handle_request(listener, req, client, addr)

/app/.heroku/python/lib/python3.11/site-packages/gunicorn/workers/sync.py in handle_request(178)
  respiter = self.wsgi(environ, resp.start_response)

/app/.heroku/python/lib/python3.11/site-packages/whitenoise/middleware.py in __call__(124)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(57)
  return self.get_response(request)

/app/rawdata/middleware.py in __call__(23)
  return self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/allauth/account/middleware.py in __call__(14)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/htmlmin/middleware.py in __call__(36)
  response = self.get_response(request)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in __call__(74)
  response = self.process_response(request, response)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in process_response(151)
  self._process_response(request, response)

/app/.heroku/python/lib/python3.11/contextlib.py in inner(81)
  return func(*args, **kwds)

/app/.heroku/python/lib/python3.11/site-packages/silk/middleware.py in _process_response(144)
  silk_request.save()

/app/.heroku/python/lib/python3.11/site-packages/silk/models.py in save(203)
  super().save(*args, **kwargs)

/app/.heroku/python/lib/python3.11/site-packages/silk/sql.py in execute_sql(89)
  return self._execute_sql(*args, **kwargs)

Static files (400 found, 26 used)

Static file path

  1. /app/static

Static file apps

  1. jazzmin
  2. django.contrib.admin
  3. django_summernote
  4. django_quill
  5. debug_toolbar
  6. allauth.socialaccount.providers.facebook
  7. reversion_compare
  8. import_export
  9. silk
  10. rest_framework

Static files

directory/img/favicon.ico
None
directory/img/photo/homepage/jointcommerce-background.webp
None
directory/vendor/jquery/jquery.min.js
None
directory/vendor/bootstrap/js/bootstrap.bundle.min.js
None
directory/vendor/magnific-popup/jquery.magnific-popup.min.js
None
directory/img/photo/homepage/jointcommerce-background.png
None
directory/img/photo/homepage/jointcommerce-background.webp
None
directory/vendor/nouislider/nouislider.css
None
directory/vendor/magnific-popup/magnific-popup.css
None
directory/css/style.green.min.css
None
directory/css/custom.css
None
directory/css/search.css
None
directory/img/cartochrome-logo-icon-transparent.png
None
directory/img/jointcommerce_logo_short.png
None
directory/img/photo/homepage/jointcommerce-background.png
None
directory/icons/orion-svg-sprite.svg
None
directory/vendor/smooth-scroll/smooth-scroll.polyfills.min.js
None
directory/vendor/bootstrap-select/js/bootstrap-select.min.js
None
directory/vendor/object-fit-images/ofi.min.js
None
directory/js/theme.js
None
directory/img/marker.svg
None
directory/img/marker-hover.svg
None
directory/vendor/object-fit-images/ofi.min.js
None
directory/js/map-layers.js
None
directory/js/map-category.js
None
directory/js/map-detail.js
None

django.contrib.staticfiles.finders.AppDirectoriesFinder (400 files)

Path Location
vendor/bootstrap/js/bootstrap.min.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootstrap/js/bootstrap.min.js
vendor/bootstrap/js/bootstrap.min.js.map /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootstrap/js/bootstrap.min.js.map
vendor/adminlte/css/adminlte.min.css.map /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/css/adminlte.min.css.map
vendor/adminlte/css/adminlte.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/css/adminlte.min.css
vendor/adminlte/js/adminlte.min.js.map /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/js/adminlte.min.js.map
vendor/adminlte/js/adminlte.min.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/js/adminlte.min.js
vendor/adminlte/img/user2-160x160.jpg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/img/user2-160x160.jpg
vendor/adminlte/img/icons.png /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/img/icons.png
vendor/adminlte/img/AdminLTELogo.png /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/adminlte/img/AdminLTELogo.png
vendor/bootswatch/lumen/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/lumen/bootstrap.min.css
vendor/bootswatch/cerulean/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/cerulean/bootstrap.min.css
vendor/bootswatch/superhero/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/superhero/bootstrap.min.css
vendor/bootswatch/slate/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/slate/bootstrap.min.css
vendor/bootswatch/united/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/united/bootstrap.min.css
vendor/bootswatch/materia/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/materia/bootstrap.min.css
vendor/bootswatch/solar/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/solar/bootstrap.min.css
vendor/bootswatch/minty/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/minty/bootstrap.min.css
vendor/bootswatch/yeti/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/yeti/bootstrap.min.css
vendor/bootswatch/sandstone/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/sandstone/bootstrap.min.css
vendor/bootswatch/simplex/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/simplex/bootstrap.min.css
vendor/bootswatch/flatly/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/flatly/bootstrap.min.css
vendor/bootswatch/lux/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/lux/bootstrap.min.css
vendor/bootswatch/sketchy/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/sketchy/bootstrap.min.css
vendor/bootswatch/darkly/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/darkly/bootstrap.min.css
vendor/bootswatch/cosmo/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/cosmo/bootstrap.min.css
vendor/bootswatch/pulse/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/pulse/bootstrap.min.css
vendor/bootswatch/journal/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/journal/bootstrap.min.css
vendor/bootswatch/cyborg/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/cyborg/bootstrap.min.css
vendor/bootswatch/default/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/default/bootstrap.min.css
vendor/bootswatch/litera/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/litera/bootstrap.min.css
vendor/bootswatch/spacelab/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/bootswatch/spacelab/bootstrap.min.css
vendor/fontawesome-free/css/all.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/css/all.min.css
vendor/fontawesome-free/webfonts/fa-brands-400.woff /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-brands-400.woff
vendor/fontawesome-free/webfonts/fa-solid-900.woff /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-solid-900.woff
vendor/fontawesome-free/webfonts/fa-brands-400.eot /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-brands-400.eot
vendor/fontawesome-free/webfonts/fa-solid-900.woff2 /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-solid-900.woff2
vendor/fontawesome-free/webfonts/fa-solid-900.eot /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-solid-900.eot
vendor/fontawesome-free/webfonts/fa-regular-400.woff2 /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-regular-400.woff2
vendor/fontawesome-free/webfonts/fa-regular-400.woff /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-regular-400.woff
vendor/fontawesome-free/webfonts/fa-solid-900.ttf /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-solid-900.ttf
vendor/fontawesome-free/webfonts/fa-solid-900.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-solid-900.svg
vendor/fontawesome-free/webfonts/fa-regular-400.eot /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-regular-400.eot
vendor/fontawesome-free/webfonts/fa-brands-400.ttf /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-brands-400.ttf
vendor/fontawesome-free/webfonts/fa-regular-400.ttf /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-regular-400.ttf
vendor/fontawesome-free/webfonts/fa-brands-400.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-brands-400.svg
vendor/fontawesome-free/webfonts/fa-regular-400.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-regular-400.svg
vendor/fontawesome-free/webfonts/fa-brands-400.woff2 /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/fontawesome-free/webfonts/fa-brands-400.woff2
vendor/select2/css/select2.min.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/select2/css/select2.min.css
vendor/select2/js/select2.min.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/vendor/select2/js/select2.min.js
jazzmin/css/main.css /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/css/main.css
jazzmin/plugins/bootstrap-show-modal/bootstrap-show-modal.min.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/plugins/bootstrap-show-modal/bootstrap-show-modal.min.js
jazzmin/js/change_list.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/js/change_list.js
jazzmin/js/change_form.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/js/change_form.js
jazzmin/js/main.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/js/main.js
jazzmin/js/ui-builder.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/js/ui-builder.js
jazzmin/js/related-modal.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/js/related-modal.js
jazzmin/img/icon-calendar.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/icon-calendar.svg
jazzmin/img/icon-changelink.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/icon-changelink.svg
jazzmin/img/default.jpg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/default.jpg
jazzmin/img/default-log.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/default-log.svg
jazzmin/img/selector-icons.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/selector-icons.svg
jazzmin/img/calendar-icons.svg /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/jazzmin/img/calendar-icons.svg
admin/js/popup_response.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/admin/js/popup_response.js
admin/js/cancel.js /app/.heroku/python/lib/python3.11/site-packages/jazzmin/static/admin/js/cancel.js
admin/css/login.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/dashboard.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/responsive.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/widgets.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/rtl.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/dark_mode.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/base.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/autocomplete.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive_rtl.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/nav_sidebar.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/changelists.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/forms.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/vendor/select2/select2.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/LICENSE-SELECT2.md /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/css/vendor/select2/select2.min.css /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/js/SelectBox.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/popup_response.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/prepopulate_init.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/actions.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/SelectFilter2.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/urlify.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/theme.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/nav_sidebar.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/change_form.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/collapse.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/collapse.js
admin/js/cancel.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/prepopulate.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/core.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/autocomplete.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/jquery.init.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/calendar.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/inlines.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/filters.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/vendor/jquery/jquery.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/jquery.min.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/LICENSE.txt /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
admin/js/vendor/select2/LICENSE.md /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/select2.full.min.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/select2.full.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/i18n/lt.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/sr.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/sk.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/en.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/mk.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/fr.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/ps.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/ja.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/gl.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/he.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/nl.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/select2/i18n/zh-TW.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/zh-CN.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/ka.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/nb.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/ro.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/tk.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/cs.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/pt-BR.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/eu.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/hy.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/ne.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/az.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/fi.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/hsb.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/bs.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/ar.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/pt.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/lv.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/ko.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/ms.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/tr.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/vi.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/hr.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/hu.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/es.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/et.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/de.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/bg.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/pl.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/sq.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/el.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/af.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/fa.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/da.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/sv.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/ca.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/dsb.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/km.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/is.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/hi.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/id.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/uk.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/th.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/ru.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/it.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/bn.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/sl.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/xregexp/xregexp.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/xregexp/xregexp.min.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/admin/RelatedObjectLookups.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/admin/DateTimeShortcuts.js /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/img/icon-addlink.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-unknown.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-yes.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/icon-viewlink.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/search.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/LICENSE /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/README.txt /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/tooltag-add.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/icon-calendar.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/icon-no.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/icon-deletelink.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/tooltag-arrowright.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/sorting-icons.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-changelink.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/icon-unknown-alt.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/selector-icons.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/calendar-icons.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/icon-clock.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/inline-delete.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-hidelink.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg
admin/img/icon-alert.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/gis/move_vertex_off.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /app/.heroku/python/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
.DS_Store /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/.DS_Store
summernote/summernote-bs4.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-bs4.min.js
summernote/.DS_Store /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/.DS_Store
summernote/jquery.iframe-transport.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/jquery.iframe-transport.js
summernote/summernote-bs5.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-bs5.min.js
summernote/summernote.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote.min.js
summernote/summernote-lite.min.css /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-lite.min.css
summernote/ResizeSensor.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/ResizeSensor.js
summernote/summernote.min.css /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote.min.css
summernote/jquery.fileupload.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/jquery.fileupload.js
summernote/summernote-bs5.min.css /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-bs5.min.css
summernote/jquery.ui.widget.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/jquery.ui.widget.js
summernote/django_summernote.css /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/django_summernote.css
summernote/summernote-bs4.min.css /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-bs4.min.css
summernote/summernote-lite.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote-lite.min.js
summernote/SOURCE /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/SOURCE
summernote/summernote.png /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/summernote.png
summernote/lang/summernote-el-GR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-el-GR.min.js
summernote/lang/summernote-ca-ES.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ca-ES.min.js
summernote/lang/summernote-cs-CZ.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-cs-CZ.min.js
summernote/lang/summernote-tr-TR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-tr-TR.min.js
summernote/lang/summernote-lt-LV.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-lt-LV.min.js
summernote/lang/summernote-gl-ES.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-gl-ES.min.js
summernote/lang/summernote-vi-VN.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-vi-VN.min.js
summernote/lang/summernote-pt-BR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-pt-BR.min.js
summernote/lang/summernote-fa-IR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-fa-IR.min.js
summernote/lang/summernote-bg-BG.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-bg-BG.min.js
summernote/lang/summernote-he-IL.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-he-IL.min.js
summernote/lang/summernote-zh-CN.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-zh-CN.min.js
summernote/lang/summernote-mn-MN.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-mn-MN.min.js
summernote/lang/summernote-da-DK.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-da-DK.min.js
summernote/lang/summernote-lt-LT.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-lt-LT.min.js
summernote/lang/summernote-sk-SK.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-sk-SK.min.js
summernote/lang/summernote-it-IT.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-it-IT.min.js
summernote/lang/summernote-de-DE.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-de-DE.min.js
summernote/lang/summernote-bn-BD.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-bn-BD.min.js
summernote/lang/summernote-uk-UA.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-uk-UA.min.js
summernote/lang/summernote-sr-RS-Latin.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-sr-RS-Latin.min.js
summernote/lang/summernote-ru-RU.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ru-RU.min.js
summernote/lang/summernote-fr-FR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-fr-FR.min.js
summernote/lang/summernote-zh-TW.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-zh-TW.min.js
summernote/lang/summernote-pl-PL.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-pl-PL.min.js
summernote/lang/summernote-ar-AR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ar-AR.min.js
summernote/lang/summernote-nl-NL.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-nl-NL.min.js
summernote/lang/summernote-es-EU.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-es-EU.min.js
summernote/lang/summernote-id-ID.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-id-ID.min.js
summernote/lang/summernote-en-US.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-en-US.min.js
summernote/lang/summernote-de-CH.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-de-CH.min.js
summernote/lang/summernote-th-TH.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-th-TH.min.js
summernote/lang/summernote-sr-RS.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-sr-RS.min.js
summernote/lang/summernote-fi-FI.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-fi-FI.min.js
summernote/lang/summernote-ko-KR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ko-KR.min.js
summernote/lang/summernote-sv-SE.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-sv-SE.min.js
summernote/lang/summernote-hr-HR.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-hr-HR.min.js
summernote/lang/summernote-sl-SI.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-sl-SI.min.js
summernote/lang/summernote-uz-UZ.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-uz-UZ.min.js
summernote/lang/summernote-ja-JP.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ja-JP.min.js
summernote/lang/summernote-az-AZ.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-az-AZ.min.js
summernote/lang/summernote-pt-PT.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-pt-PT.min.js
summernote/lang/summernote-es-ES.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-es-ES.min.js
summernote/lang/summernote-ro-RO.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ro-RO.min.js
summernote/lang/summernote-hu-HU.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-hu-HU.min.js
summernote/lang/summernote-ta-IN.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-ta-IN.min.js
summernote/lang/summernote-nb-NO.min.js /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/lang/summernote-nb-NO.min.js
summernote/font/summernote.woff /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/font/summernote.woff
summernote/font/summernote.hash /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/font/summernote.hash
summernote/font/summernote.ttf /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/font/summernote.ttf
summernote/font/summernote.woff2 /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/font/summernote.woff2
summernote/font/summernote.eot /app/.heroku/python/lib/python3.11/site-packages/django_summernote/static/summernote/font/summernote.eot
.DS_Store /app/.heroku/python/lib/python3.11/site-packages/django_quill/static/.DS_Store
django_quill/django_quill.css /app/.heroku/python/lib/python3.11/site-packages/django_quill/static/django_quill/django_quill.css
django_quill/django_quill.js /app/.heroku/python/lib/python3.11/site-packages/django_quill/static/django_quill/django_quill.js
debug_toolbar/css/print.css /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/css/toolbar.css /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/js/timer.js /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/toolbar.js /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/redirect.js /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js
debug_toolbar/js/history.js /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/utils.js /app/.heroku/python/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
facebook/js/fbconnect.js /app/.heroku/python/lib/python3.11/site-packages/allauth/socialaccount/providers/facebook/static/facebook/js/fbconnect.js
reversion_compare.css /app/.heroku/python/lib/python3.11/site-packages/reversion_compare/static/reversion_compare.css
import_export/import.css /app/.heroku/python/lib/python3.11/site-packages/import_export/static/import_export/import.css
import_export/export.css /app/.heroku/python/lib/python3.11/site-packages/import_export/static/import_export/export.css
import_export/guess_format.js /app/.heroku/python/lib/python3.11/site-packages/import_export/static/import_export/guess_format.js
import_export/export_selectable_fields.js /app/.heroku/python/lib/python3.11/site-packages/import_export/static/import_export/export_selectable_fields.js
silk/favicon-32x32.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/favicon-32x32.png
silk/favicon-16x16.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/favicon-16x16.png
silk/filter2.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/filter2.png
silk/filter.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/filter.png
silk/css/components/colors.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/colors.css
silk/css/components/cell.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/cell.css
silk/css/components/fonts.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/fonts.css
silk/css/components/row.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/row.css
silk/css/components/heading.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/heading.css
silk/css/components/numeric.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/numeric.css
silk/css/components/summary.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/components/summary.css
silk/css/pages/profile_detail.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/profile_detail.css
silk/css/pages/sql.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/sql.css
silk/css/pages/root_base.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/root_base.css
silk/css/pages/request.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/request.css
silk/css/pages/cprofile.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/cprofile.css
silk/css/pages/base.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/base.css
silk/css/pages/profiling.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/profiling.css
silk/css/pages/detail_base.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/detail_base.css
silk/css/pages/requests.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/requests.css
silk/css/pages/clear_db.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/clear_db.css
silk/css/pages/sql_detail.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/sql_detail.css
silk/css/pages/raw.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/raw.css
silk/css/pages/summary.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/css/pages/summary.css
silk/fonts/glyphicons-halflings-regular.woff2 /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.woff2
silk/fonts/glyphicons-halflings-regular.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.woff
silk/fonts/glyphicons-halflings-regular.ttf /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.ttf
silk/fonts/glyphicons-halflings-regular.eot /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.eot
silk/fonts/glyphicons-halflings-regular.svg /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/glyphicons-halflings-regular.svg
silk/fonts/fantasque/FantasqueSansMono-Regular.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-Regular.woff
silk/fonts/fantasque/FantasqueSansMono-Bold.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-Bold.woff
silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-RegItalic.woff
silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fantasque/FantasqueSansMono-BoldItalic.woff
silk/fonts/fira/FiraSans-Regular.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Regular.woff
silk/fonts/fira/FiraSans-BoldItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-BoldItalic.woff
silk/fonts/fira/FiraSans-LightItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-LightItalic.woff
silk/fonts/fira/FiraSans-MediumItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-MediumItalic.woff
silk/fonts/fira/FiraSans-Light.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Light.woff
silk/fonts/fira/FiraSans-Medium.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Medium.woff
silk/fonts/fira/FiraSans-RegularItalic.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-RegularItalic.woff
silk/fonts/fira/FiraSans-Bold.woff /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/fonts/fira/FiraSans-Bold.woff
silk/lib/svg-pan-zoom.min.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/svg-pan-zoom.min.js
silk/lib/bootstrap.min.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap.min.js
silk/lib/jquery-3.6.0.min.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/jquery-3.6.0.min.js
silk/lib/jquery-ui-1.13.1.min.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/jquery-ui-1.13.1.min.js
silk/lib/bootstrap-datetimepicker.min.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-datetimepicker.min.js
silk/lib/viz-lite.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/viz-lite.js
silk/lib/sortable.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/sortable.js
silk/lib/bootstrap-datetimepicker.min.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-datetimepicker.min.css
silk/lib/jquery.datetimepicker.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/jquery.datetimepicker.js
silk/lib/jquery.datetimepicker.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/jquery.datetimepicker.css
silk/lib/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap.min.css
silk/lib/bootstrap-theme.min.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/bootstrap-theme.min.css
silk/lib/jquery-ui-1.13.1.min.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/jquery-ui-1.13.1.min.css
silk/lib/highlight/highlight.pack.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/highlight/highlight.pack.js
silk/lib/highlight/foundation.css /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/highlight/foundation.css
silk/lib/images/ui-icons_cc0000_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_cc0000_256x240.png
silk/lib/images/ui-icons_222222_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_222222_256x240.png
silk/lib/images/ui-icons_228ef1_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_228ef1_256x240.png
silk/lib/images/animated-overlay.gif /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/animated-overlay.gif
silk/lib/images/ui-icons_444444_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_444444_256x240.png
silk/lib/images/ui-bg_glass_100_f6f6f6_1x400.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_100_f6f6f6_1x400.png
silk/lib/images/ui-bg_highlight-soft_75_ffe45c_1x100.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
silk/lib/images/ui-icons_777777_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_777777_256x240.png
silk/lib/images/ui-bg_diagonals-thick_18_b81900_40x40.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_diagonals-thick_18_b81900_40x40.png
silk/lib/images/ui-bg_diagonals-thick_20_666666_40x40.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_diagonals-thick_20_666666_40x40.png
silk/lib/images/ui-bg_glass_100_fdf5ce_1x400.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_100_fdf5ce_1x400.png
silk/lib/images/ui-bg_glass_65_ffffff_1x400.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_glass_65_ffffff_1x400.png
silk/lib/images/ui-icons_ffffff_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ffffff_256x240.png
silk/lib/images/ui-icons_555555_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_555555_256x240.png
silk/lib/images/ui-icons_ef8c08_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ef8c08_256x240.png
silk/lib/images/ui-bg_highlight-soft_100_eeeeee_1x100.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
silk/lib/images/ui-bg_flat_10_000000_40x100.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_flat_10_000000_40x100.png
silk/lib/images/ui-bg_gloss-wave_35_f6a828_500x100.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-bg_gloss-wave_35_f6a828_500x100.png
silk/lib/images/ui-icons_ffd27a_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_ffd27a_256x240.png
silk/lib/images/ui-icons_777620_256x240.png /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/lib/images/ui-icons_777620_256x240.png
silk/js/components/cell.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/components/cell.js
silk/js/components/filters.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/components/filters.js
silk/js/pages/root_base.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/root_base.js
silk/js/pages/profile_detail.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/profile_detail.js
silk/js/pages/requests.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/requests.js
silk/js/pages/raw.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/raw.js
silk/js/pages/detail_base.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/detail_base.js
silk/js/pages/request.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/request.js
silk/js/pages/sql_detail.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/sql_detail.js
silk/js/pages/base.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/base.js
silk/js/pages/summary.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/summary.js
silk/js/pages/profiling.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/profiling.js
silk/js/pages/clear_db.js /app/.heroku/python/lib/python3.11/site-packages/silk/static/silk/js/pages/clear_db.js
rest_framework/css/bootstrap-theme.min.css.map /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css.map
rest_framework/css/prettify.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/prettify.css
rest_framework/css/bootstrap.min.css.map /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css.map
rest_framework/css/bootstrap-tweaks.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-tweaks.css
rest_framework/css/bootstrap.min.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap.min.css
rest_framework/css/bootstrap-theme.min.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/bootstrap-theme.min.css
rest_framework/css/default.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/default.css
rest_framework/css/font-awesome-4.0.3.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/css/font-awesome-4.0.3.css
rest_framework/fonts/fontawesome-webfont.svg /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.svg
rest_framework/fonts/glyphicons-halflings-regular.woff2 /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff2
rest_framework/fonts/fontawesome-webfont.ttf /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.ttf
rest_framework/fonts/glyphicons-halflings-regular.woff /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.woff
rest_framework/fonts/fontawesome-webfont.eot /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.eot
rest_framework/fonts/glyphicons-halflings-regular.ttf /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.ttf
rest_framework/fonts/glyphicons-halflings-regular.eot /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.eot
rest_framework/fonts/glyphicons-halflings-regular.svg /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/glyphicons-halflings-regular.svg
rest_framework/fonts/fontawesome-webfont.woff /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/fonts/fontawesome-webfont.woff
rest_framework/docs/css/highlight.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/highlight.css
rest_framework/docs/css/base.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/base.css
rest_framework/docs/css/jquery.json-view.min.css /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/css/jquery.json-view.min.css
rest_framework/docs/js/highlight.pack.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/highlight.pack.js
rest_framework/docs/js/jquery.json-view.min.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/jquery.json-view.min.js
rest_framework/docs/js/api.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/js/api.js
rest_framework/docs/img/favicon.ico /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/img/favicon.ico
rest_framework/docs/img/grid.png /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/docs/img/grid.png
rest_framework/js/bootstrap.min.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/bootstrap.min.js
rest_framework/js/load-ajax-form.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/load-ajax-form.js
rest_framework/js/prettify-min.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/prettify-min.js
rest_framework/js/jquery-3.7.1.min.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/jquery-3.7.1.min.js
rest_framework/js/default.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/default.js
rest_framework/js/csrf.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/csrf.js
rest_framework/js/coreapi-0.1.1.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/coreapi-0.1.1.js
rest_framework/js/ajax-form.js /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/js/ajax-form.js
rest_framework/img/glyphicons-halflings.png /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings.png
rest_framework/img/grid.png /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/grid.png
rest_framework/img/glyphicons-halflings-white.png /app/.heroku/python/lib/python3.11/site-packages/rest_framework/static/rest_framework/img/glyphicons-halflings-white.png

Templates (30 rendered)

Template path

  1. /app/templates

Templates

directory/accounts/signup.html
/app/templates/directory/accounts/signup.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>}
directory/accounts/base.html
/app/templates/directory/accounts/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>}
directory/partials/head.html
/app/templates/directory/partials/head.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>} {'block': <Block Node: head. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression "'directory/partials/head.html'">>, <TextNode: '\n '>, <Block Node: meta. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>]>}
directory/partials/css.html
/app/templates/directory/partials/css.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>} {'block': <Block Node: css. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression "'directory/partials/css.html'">>, <TextNode: '\n '>]>}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3337d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3337d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3337d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3337d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed219950>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed219950>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed219950>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed219950>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed1f3850>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed1f3850>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed1f3850>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed1f3850>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed69a7d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed69a7d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed69a7d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed69a7d0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed457dd0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed457dd0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed457dd0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed457dd0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/field.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/field.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3cced0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text_and_errors.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text_and_errors.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3cced0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/field_errors_block.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/field_errors_block.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3cced0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
bootstrap5/layout/help_text.html
/app/.heroku/python/lib/python3.11/site-packages/crispy_bootstrap5/templates/bootstrap5/layout/help_text.html
Toggle context {'False': False, 'None': None, 'True': True} {'field': <django.forms.boundfield.BoundField object at 0x7fa2ed3cced0>, 'field_class': '', 'form_show_errors': True, 'form_show_labels': True, 'label_class': ''}
directory/partials/javascript.html
/app/templates/directory/partials/javascript.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>} {'block': <Block Node: javascript. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression "'directory/partials/javascript.html'">>, <TextNode: '\n '>]>}
directory/partials/javascript_end.html
/app/templates/directory/partials/javascript_end.html
Toggle context {'False': False, 'None': None, 'True': True} {'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'ENVIRONMENT': 'development', 'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>, 'is_agency_member': False, 'main_pages': '<<queryset of main.MainPage>>', 'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>), 'request': '<<request>>', 'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>} {'form': <SignUpForm bound=False, valid=Unknown, fields=(email;first_name;last_name;username;password1;password2)>, 'view': <accounts.views.SignUpView object at 0x7fa2ed2328d0>} {'block': <Block Node: javascript_end. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression "'directory/partials/javascript_end.html'">>, <TextNode: '\n '>]>}

Context processors

django.template.context_processors.csrf
Toggle context {'csrf_token': <SimpleLazyObject: 'IZrbsyk2VyCa3Vd36d4BkFQ827jS8KDPzSwXBgiP4ISDxtBOGDLxiv9Lo30WhgXu'>}
django.template.context_processors.debug
Toggle context {}
django.template.context_processors.request
Toggle context {'request': <WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>, 'perms': PermWrapper(<SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7fa2ed21a710>>)}
django.contrib.messages.context_processors.messages
Toggle context {'messages': <FallbackStorage: request=<WSGIRequest: GET '/accounts/signup/?next=%2Fdispensaries%2F8984%2F'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
_jointcommerce.context_processors.main_pages
Toggle context {'main_pages': <QuerySet []>}
_jointcommerce.context_processors.agency_membership
Toggle context {'is_agency_member': False}
_jointcommerce.context_processors.google_analytics_env
Toggle context {'ENVIRONMENT': 'development'}

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
0 0 ms 0 0

Commands

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Signals

Signal Receivers
class_prepared
connection_created
got_request_exception
m2m_changed
post_delete delete_associated_periods, handle_traffic_delete
post_init ModelSignalRouter.post_init_receiver
post_migrate create_permissions, create_contenttypes, create_default_site
post_save ModelSignalRouter.post_save_receiver, update_dow_cdn, update_dow_ccdn, update_dow, create_campaign_group_period, update_campaign_group_period_dates, update_campaign_group_period_end_date, create_user_profile, save_user_profile, handle_traffic_post_save
pre_delete clear_site_cache
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save clear_site_cache, handle_traffic_pre_save, detect_location_change
request_finished close_caches, close_old_connections, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, file_storage_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, Settings.change_setting, reset_hashers, FileSystemStorage._clear_cached_properties, ProfilerResultStorage._clear_cached_properties, update_level_tags, clear_caches, reload_api_settings, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, StaticFilesStorage._clear_cached_properties