From 067fc72ce4553c80f146037b53c6a87648aae1d8 Mon Sep 17 00:00:00 2001 From: Schneider Roland Date: Sat, 11 Jun 2022 21:05:19 +0200 Subject: [PATCH] mobile api changes + docker image basics --- .gitignore | 2 + common/models/MobileDevice.php | 7 + .../service/cutler/apache2/000-default.conf | 42 + docker/service/cutler/apache2/Dockerfile | 60 ++ docker/service/cutler/apache2/apache-conf.tar | Bin 0 -> 245760 bytes docker/service/cutler/apache2/apache2.conf | 221 +++++ docker/service/cutler/apache2/build-image.sh | 1 + docker/service/cutler/apache2/build.sh | 2 + docker/service/cutler/apache2/cron.tar | Bin 0 -> 10240 bytes .../cutler/apache2/etc/apache2/apache2.conf | 221 +++++ .../etc/apache2/conf-available/charset.conf | 8 + .../conf-available/localized-error-pages.conf | 81 ++ .../other-vhosts-access-log.conf | 4 + .../etc/apache2/conf-available/security.conf | 73 ++ .../apache2/conf-available/serve-cgi-bin.conf | 20 + .../cutler/apache2/etc/apache2/envvars | 47 + .../service/cutler/apache2/etc/apache2/magic | 935 ++++++++++++++++++ .../apache2/mods-available/access_compat.load | 2 + .../etc/apache2/mods-available/actions.conf | 11 + .../etc/apache2/mods-available/actions.load | 1 + .../etc/apache2/mods-available/alias.conf | 24 + .../etc/apache2/mods-available/alias.load | 1 + .../apache2/mods-available/allowmethods.load | 1 + .../etc/apache2/mods-available/asis.load | 2 + .../apache2/mods-available/auth_basic.load | 2 + .../apache2/mods-available/auth_digest.load | 2 + .../etc/apache2/mods-available/auth_form.load | 2 + .../apache2/mods-available/authn_anon.load | 1 + .../apache2/mods-available/authn_core.load | 1 + .../etc/apache2/mods-available/authn_dbd.load | 2 + .../etc/apache2/mods-available/authn_dbm.load | 1 + .../apache2/mods-available/authn_file.load | 1 + .../apache2/mods-available/authn_socache.load | 1 + .../apache2/mods-available/authnz_fcgi.load | 1 + .../apache2/mods-available/authnz_ldap.load | 2 + .../apache2/mods-available/authz_core.load | 1 + .../etc/apache2/mods-available/authz_dbd.load | 2 + .../etc/apache2/mods-available/authz_dbm.load | 2 + .../mods-available/authz_groupfile.load | 2 + .../apache2/mods-available/authz_host.load | 2 + .../apache2/mods-available/authz_owner.load | 1 + .../apache2/mods-available/authz_user.load | 2 + .../etc/apache2/mods-available/autoindex.conf | 96 ++ .../etc/apache2/mods-available/autoindex.load | 1 + .../etc/apache2/mods-available/buffer.load | 1 + .../etc/apache2/mods-available/cache.load | 1 + .../apache2/mods-available/cache_disk.conf | 27 + .../apache2/mods-available/cache_disk.load | 2 + .../apache2/mods-available/cache_socache.load | 2 + .../etc/apache2/mods-available/cgi.load | 1 + .../etc/apache2/mods-available/cgid.conf | 4 + .../etc/apache2/mods-available/cgid.load | 1 + .../apache2/mods-available/charset_lite.load | 1 + .../etc/apache2/mods-available/data.load | 1 + .../etc/apache2/mods-available/dav.load | 1 + .../etc/apache2/mods-available/dav_fs.conf | 3 + .../etc/apache2/mods-available/dav_fs.load | 2 + .../etc/apache2/mods-available/dav_lock.load | 1 + .../etc/apache2/mods-available/dbd.load | 1 + .../etc/apache2/mods-available/deflate.conf | 14 + .../etc/apache2/mods-available/deflate.load | 2 + .../etc/apache2/mods-available/dialup.load | 1 + .../etc/apache2/mods-available/dir.conf | 5 + .../etc/apache2/mods-available/dir.load | 1 + .../etc/apache2/mods-available/dump_io.load | 1 + .../etc/apache2/mods-available/echo.load | 1 + .../etc/apache2/mods-available/env.load | 1 + .../etc/apache2/mods-available/expires.load | 1 + .../apache2/mods-available/ext_filter.load | 1 + .../apache2/mods-available/file_cache.load | 2 + .../etc/apache2/mods-available/filter.load | 1 + .../etc/apache2/mods-available/headers.load | 1 + .../etc/apache2/mods-available/heartbeat.load | 3 + .../apache2/mods-available/heartmonitor.load | 3 + .../etc/apache2/mods-available/ident.load | 1 + .../etc/apache2/mods-available/include.load | 2 + .../etc/apache2/mods-available/info.conf | 15 + .../etc/apache2/mods-available/info.load | 1 + .../mods-available/lbmethod_bybusyness.load | 2 + .../mods-available/lbmethod_byrequests.load | 2 + .../mods-available/lbmethod_bytraffic.load | 2 + .../mods-available/lbmethod_heartbeat.load | 2 + .../etc/apache2/mods-available/ldap.conf | 6 + .../etc/apache2/mods-available/ldap.load | 1 + .../etc/apache2/mods-available/log_debug.load | 1 + .../apache2/mods-available/log_forensic.load | 1 + .../etc/apache2/mods-available/lua.load | 1 + .../etc/apache2/mods-available/macro.load | 1 + .../etc/apache2/mods-available/mime.conf | 249 +++++ .../etc/apache2/mods-available/mime.load | 1 + .../apache2/mods-available/mime_magic.conf | 5 + .../apache2/mods-available/mime_magic.load | 1 + .../etc/apache2/mods-available/mpm_event.conf | 18 + .../etc/apache2/mods-available/mpm_event.load | 2 + .../apache2/mods-available/mpm_prefork.conf | 16 + .../apache2/mods-available/mpm_prefork.load | 2 + .../apache2/mods-available/mpm_worker.conf | 22 + .../apache2/mods-available/mpm_worker.load | 2 + .../apache2/mods-available/negotiation.conf | 20 + .../apache2/mods-available/negotiation.load | 1 + .../etc/apache2/mods-available/php7.0.conf | 25 + .../etc/apache2/mods-available/php7.0.load | 2 + .../etc/apache2/mods-available/proxy.conf | 27 + .../etc/apache2/mods-available/proxy.load | 1 + .../etc/apache2/mods-available/proxy_ajp.load | 2 + .../mods-available/proxy_balancer.conf | 15 + .../mods-available/proxy_balancer.load | 2 + .../apache2/mods-available/proxy_connect.load | 2 + .../apache2/mods-available/proxy_express.load | 2 + .../apache2/mods-available/proxy_fcgi.load | 2 + .../apache2/mods-available/proxy_fdpass.load | 2 + .../etc/apache2/mods-available/proxy_ftp.conf | 8 + .../etc/apache2/mods-available/proxy_ftp.load | 2 + .../apache2/mods-available/proxy_html.conf | 75 ++ .../apache2/mods-available/proxy_html.load | 2 + .../apache2/mods-available/proxy_http.load | 2 + .../apache2/mods-available/proxy_scgi.load | 2 + .../mods-available/proxy_wstunnel.load | 2 + .../etc/apache2/mods-available/ratelimit.load | 2 + .../etc/apache2/mods-available/reflector.load | 1 + .../etc/apache2/mods-available/remoteip.load | 1 + .../apache2/mods-available/reqtimeout.conf | 27 + .../apache2/mods-available/reqtimeout.load | 1 + .../etc/apache2/mods-available/request.load | 1 + .../etc/apache2/mods-available/rewrite.load | 1 + .../etc/apache2/mods-available/sed.load | 1 + .../etc/apache2/mods-available/session.load | 1 + .../mods-available/session_cookie.load | 2 + .../mods-available/session_crypto.load | 2 + .../apache2/mods-available/session_dbd.load | 2 + .../etc/apache2/mods-available/setenvif.conf | 32 + .../etc/apache2/mods-available/setenvif.load | 1 + .../apache2/mods-available/slotmem_plain.load | 1 + .../apache2/mods-available/slotmem_shm.load | 1 + .../apache2/mods-available/socache_dbm.load | 1 + .../mods-available/socache_memcache.load | 1 + .../apache2/mods-available/socache_shmcb.load | 1 + .../etc/apache2/mods-available/speling.load | 1 + .../etc/apache2/mods-available/ssl.conf | 85 ++ .../etc/apache2/mods-available/ssl.load | 2 + .../etc/apache2/mods-available/status.conf | 29 + .../etc/apache2/mods-available/status.load | 1 + .../apache2/mods-available/substitute.load | 1 + .../etc/apache2/mods-available/suexec.load | 1 + .../etc/apache2/mods-available/unique_id.load | 1 + .../etc/apache2/mods-available/userdir.conf | 17 + .../etc/apache2/mods-available/userdir.load | 1 + .../etc/apache2/mods-available/usertrack.load | 1 + .../apache2/mods-available/vhost_alias.load | 1 + .../etc/apache2/mods-available/xml2enc.load | 1 + .../cutler/apache2/etc/apache2/ports.conf | 15 + .../sites-available/000-default-le-ssl.conf | 48 + .../apache2/sites-available/000-default.conf | 42 + .../apache2/sites-available/default-ssl.conf | 134 +++ .../cutler/apache2/etc/cron.d/.placeholder | 2 + .../service/cutler/apache2/etc/cron.d/certbot | 19 + docker/service/cutler/apache2/etc/cron.d/php | 14 + ...updated-options-ssl-apache-conf-digest.txt | 1 + .../etc/letsencrypt/csr/0000_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0001_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0002_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0003_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0004_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0005_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0006_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0007_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0008_csr-certbot.pem | 16 + .../etc/letsencrypt/csr/0009_csr-certbot.pem | 16 + .../etc/letsencrypt/options-ssl-apache.conf | 26 + .../renewal/cutlerfitnessadmin.hu.conf | 14 + docker/service/cutler/apache2/exec.sh | 1 + docker/service/cutler/apache2/index.html | 11 + .../service/cutler/apache2/install-composer | 17 + docker/service/cutler/apache2/start.sh | 20 + environments/cutlergyor/apache2/Dockerfile | 21 + .../apache2/common/config/main-local.php | 27 - .../apache2/common/config/params-local.php | 25 - .../apache2/common/config/params.php | 68 -- .../apache2/config/backend/main-local.php | 16 + .../apache2/config/backend/main.php | 50 + .../backend/params-local.php} | 0 .../backend/params.php} | 0 .../config/common/config/main-local.php | 40 + .../{ => config}/common/config/main.php | 0 .../config/common/config/params-local.php | 24 + .../apache2/config/common/config/params.php | 68 ++ .../console/config/main-local.php} | 0 .../{ => config}/console/config/main.php | 0 .../config/console/config/params-local.php | 3 + .../apache2/config/console/config/params.php | 4 + .../apache2/config/frontend/main-local.php | 13 + .../apache2/config/frontend/main.php | 53 + .../apache2/config/frontend/params-local.php | 3 + .../apache2/config/frontend/params.php | 4 + .../apache2/config/mobileapi/main-local.php | 22 + .../apache2/config/mobileapi/main.php | 53 + .../apache2/config/mobileapi/params-local.php | 3 + .../apache2/config/mobileapi/params.php | 4 + .../apache2/config/rest/main-local.php | 21 + .../cutlergyor/apache2/config/rest/main.php | 43 + .../apache2/config/rest/params-local.php | 3 + .../cutlergyor/apache2/config/rest/params.php | 4 + .../cutlergyor/apache2/create-image.sh | 45 + environments/cutlergyor/apache2/start.sh | 19 +- mobileapi/controllers/ApiController.php | 7 + mobileapi/controllers/LoginController.php | 1 + mobileapi/manager/ApiManager.php | 13 +- 207 files changed, 3803 insertions(+), 130 deletions(-) create mode 100644 docker/service/cutler/apache2/000-default.conf create mode 100644 docker/service/cutler/apache2/Dockerfile create mode 100644 docker/service/cutler/apache2/apache-conf.tar create mode 100644 docker/service/cutler/apache2/apache2.conf create mode 100644 docker/service/cutler/apache2/build-image.sh create mode 100644 docker/service/cutler/apache2/build.sh create mode 100644 docker/service/cutler/apache2/cron.tar create mode 100644 docker/service/cutler/apache2/etc/apache2/apache2.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/conf-available/charset.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/conf-available/localized-error-pages.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/conf-available/other-vhosts-access-log.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/conf-available/security.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/conf-available/serve-cgi-bin.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/envvars create mode 100644 docker/service/cutler/apache2/etc/apache2/magic create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/access_compat.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/actions.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/actions.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/alias.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/alias.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/allowmethods.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/asis.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/auth_basic.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/auth_digest.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/auth_form.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_anon.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_core.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_dbd.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_dbm.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_file.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authn_socache.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authnz_fcgi.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authnz_ldap.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_core.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_dbd.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_dbm.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_groupfile.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_host.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_owner.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/authz_user.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/autoindex.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/autoindex.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/buffer.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cache.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cache_disk.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cache_disk.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cache_socache.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cgi.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cgid.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/cgid.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/charset_lite.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/data.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dav.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dav_fs.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dav_fs.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dav_lock.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dbd.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/deflate.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/deflate.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dialup.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dir.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dir.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/dump_io.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/echo.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/env.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/expires.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ext_filter.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/file_cache.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/filter.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/headers.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/heartbeat.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/heartmonitor.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ident.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/include.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/info.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/info.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/lbmethod_bybusyness.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/lbmethod_byrequests.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/lbmethod_bytraffic.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/lbmethod_heartbeat.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ldap.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ldap.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/log_debug.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/log_forensic.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/lua.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/macro.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mime.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mime.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mime_magic.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mime_magic.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_event.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_event.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_prefork.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_prefork.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_worker.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/mpm_worker.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/negotiation.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/negotiation.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/php7.0.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/php7.0.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_ajp.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_balancer.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_balancer.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_connect.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_express.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_fcgi.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_fdpass.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_ftp.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_ftp.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_html.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_html.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_http.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_scgi.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/proxy_wstunnel.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ratelimit.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/reflector.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/remoteip.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/reqtimeout.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/reqtimeout.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/request.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/rewrite.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/sed.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/session.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/session_cookie.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/session_crypto.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/session_dbd.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/setenvif.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/setenvif.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/slotmem_plain.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/slotmem_shm.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/socache_dbm.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/socache_memcache.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/socache_shmcb.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/speling.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ssl.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/ssl.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/status.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/status.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/substitute.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/suexec.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/unique_id.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/userdir.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/userdir.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/usertrack.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/vhost_alias.load create mode 100644 docker/service/cutler/apache2/etc/apache2/mods-available/xml2enc.load create mode 100644 docker/service/cutler/apache2/etc/apache2/ports.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/sites-available/000-default-le-ssl.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/sites-available/000-default.conf create mode 100644 docker/service/cutler/apache2/etc/apache2/sites-available/default-ssl.conf create mode 100644 docker/service/cutler/apache2/etc/cron.d/.placeholder create mode 100644 docker/service/cutler/apache2/etc/cron.d/certbot create mode 100644 docker/service/cutler/apache2/etc/cron.d/php create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/.updated-options-ssl-apache-conf-digest.txt create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0000_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0001_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0002_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0003_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0004_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0005_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0006_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0007_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0008_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/csr/0009_csr-certbot.pem create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/options-ssl-apache.conf create mode 100644 docker/service/cutler/apache2/etc/letsencrypt/renewal/cutlerfitnessadmin.hu.conf create mode 100644 docker/service/cutler/apache2/exec.sh create mode 100644 docker/service/cutler/apache2/index.html create mode 100644 docker/service/cutler/apache2/install-composer create mode 100644 docker/service/cutler/apache2/start.sh delete mode 100644 environments/cutlergyor/apache2/common/config/main-local.php delete mode 100644 environments/cutlergyor/apache2/common/config/params-local.php delete mode 100644 environments/cutlergyor/apache2/common/config/params.php create mode 100644 environments/cutlergyor/apache2/config/backend/main-local.php create mode 100644 environments/cutlergyor/apache2/config/backend/main.php rename environments/cutlergyor/apache2/{console/config/params.php => config/backend/params-local.php} (100%) rename environments/cutlergyor/apache2/{console/config/main-local.php => config/backend/params.php} (100%) create mode 100644 environments/cutlergyor/apache2/config/common/config/main-local.php rename environments/cutlergyor/apache2/{ => config}/common/config/main.php (100%) create mode 100644 environments/cutlergyor/apache2/config/common/config/params-local.php create mode 100644 environments/cutlergyor/apache2/config/common/config/params.php rename environments/cutlergyor/apache2/{console/config/params-local.php => config/console/config/main-local.php} (100%) rename environments/cutlergyor/apache2/{ => config}/console/config/main.php (100%) create mode 100644 environments/cutlergyor/apache2/config/console/config/params-local.php create mode 100644 environments/cutlergyor/apache2/config/console/config/params.php create mode 100644 environments/cutlergyor/apache2/config/frontend/main-local.php create mode 100644 environments/cutlergyor/apache2/config/frontend/main.php create mode 100644 environments/cutlergyor/apache2/config/frontend/params-local.php create mode 100644 environments/cutlergyor/apache2/config/frontend/params.php create mode 100644 environments/cutlergyor/apache2/config/mobileapi/main-local.php create mode 100644 environments/cutlergyor/apache2/config/mobileapi/main.php create mode 100644 environments/cutlergyor/apache2/config/mobileapi/params-local.php create mode 100644 environments/cutlergyor/apache2/config/mobileapi/params.php create mode 100644 environments/cutlergyor/apache2/config/rest/main-local.php create mode 100644 environments/cutlergyor/apache2/config/rest/main.php create mode 100644 environments/cutlergyor/apache2/config/rest/params-local.php create mode 100644 environments/cutlergyor/apache2/config/rest/params.php create mode 100644 environments/cutlergyor/apache2/create-image.sh diff --git a/.gitignore b/.gitignore index 927573b..6fb954c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,5 @@ phpunit.phar /customerapi/config/*-local.php /customerapi/runtime/logs/** !/customerapi/runtime/.gitkeep + +environments/cutlergyor/apache2/data diff --git a/common/models/MobileDevice.php b/common/models/MobileDevice.php index 8418fba..aaa3dc4 100644 --- a/common/models/MobileDevice.php +++ b/common/models/MobileDevice.php @@ -124,4 +124,11 @@ class MobileDevice extends \yii\db\ActiveRecord implements IdentityInterface { throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.'); } + + public function getCard() + { + return $this->hasOne(Card::class, [ + 'id_card' => 'id_card' + ]); + } } diff --git a/docker/service/cutler/apache2/000-default.conf b/docker/service/cutler/apache2/000-default.conf new file mode 100644 index 0000000..da2537a --- /dev/null +++ b/docker/service/cutler/apache2/000-default.conf @@ -0,0 +1,42 @@ + + # The ServerName directive sets the request scheme, hostname and port that + # the server uses to identify itself. This is used when creating + # redirection URLs. In the context of virtual hosts, the ServerName + # specifies what hostname must appear in the request's Host: header to + # match this virtual host. For the default virtual host (this file) this + # value is not decisive as it is used as a last resort host regardless. + # However, you must set it for any further virtual host explicitly. + #ServerName www.example.com + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + + # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, + # error, crit, alert, emerg. + # It is also possible to configure the loglevel for particular + # modules, e.g. + #LogLevel info ssl:warn + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + # For most configuration files from conf-available/, which are + # enabled or disabled at a global level, it is possible to + # include a line for only one particular virtual host. For example the + # following line enables the CGI configuration for this host only + # after it has been globally disabled with "a2disconf". + #Include conf-available/serve-cgi-bin.conf + + # Always set these headers. + Header always set Access-Control-Allow-Origin "*" + Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" + Header always set Access-Control-Max-Age "1000" + Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token" + + # Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request. + RewriteEngine On + RewriteCond %{REQUEST_METHOD} OPTIONS + RewriteRule ^(.*)$ $1 [R=200,L] + + + diff --git a/docker/service/cutler/apache2/Dockerfile b/docker/service/cutler/apache2/Dockerfile new file mode 100644 index 0000000..a8aea5c --- /dev/null +++ b/docker/service/cutler/apache2/Dockerfile @@ -0,0 +1,60 @@ +FROM ubuntu:20.04 +MAINTAINER rocho02@gmail.com + +ARG DEBIAN_FRONTEND=noninteractive +ENV TZ=Europe/Budapest + +# apt-get +RUN apt-get update \ + && apt-get -y install bzip2 git nano wget zip unzip curl vim \ + && apt-get -y install libmcrypt-dev libzzip-dev zziplib-bin zlib1g-dev \ + && apt-get -y install apache2 build-essential +# && ufw allow in "Apache Full" \o + +RUN apt-get install -y php php-pear php-dev libmcrypt-dev + +RUN apt-get -y install php \ + libapache2-mod-php \ + php-mysql \ + php-xml \ + php-gd \ + php-mbstring \ + php-zip \ + php-soap \ + php-curl \ + php-pear \ + php-dev \ + libmcrypt-dev + +RUN pecl channel-update pecl.php.net +RUN pecl update-channels +RUN pecl install mcrypt + +RUN apt-get -y install \ + # Required by composer + git \ + zlib1g-dev \ + --no-install-recommends + +# Install composer +COPY install-composer /install-composer +RUN /install-composer && rm /install-composer + + +RUN a2enmod headers +RUN a2enmod rewrite + +COPY 000-default.conf /etc/apache2/sites-available/ + +COPY index.html /var/www/html/ + +COPY apache2.conf /etc/apache2/ + +RUN apt-get install -y certbot python3-certbot-apache + +# Ports +EXPOSE 80 + +# Default command +CMD ["apachectl", "-D", "FOREGROUND"] + diff --git a/docker/service/cutler/apache2/apache-conf.tar b/docker/service/cutler/apache2/apache-conf.tar new file mode 100644 index 0000000000000000000000000000000000000000..78dd072e6345950b94148ad48378d46d3812c606 GIT binary patch literal 245760 zcmeFad1Ko~lJK2>rBBh3H*48rk|L?Y_9ULjI&3AnR+5uUMl)KF1W8yV!685$p56De zzrU&mKmeo;+mv?Z8D@7Z0_d*puB)r7tE-*9Q*XPKV%_gGzj>hlmiTXVdHEap%YV7Q z<(0Li)oP_&SzTMMezR0AuTk7AJy3r#V245I42=0^;QL|bL+;_O@44dtDvwXh zN!tqy{~xwp({;R_Syz@YfjhWx2SymfYYhiZ==nX<^g3?Qn4M7Ghm_WO^G|Zc8s5OI zhu(!NpPkUO_^Ay z&2xH2>zn8y=(}~V>D7VP_Ijc8PyWvw54&AwaBcjiY5SMjR)noe4g;6|;9SNSL3~Z+ z6MB}EzI1DoF`QHpn*4p}g)*FG(;c|I(1bp4hJ6s{I^Cy%35Knf8-$?Z(z)hq(g}<0 zQ6t5K%r&>}33n7s2FGu3U1E6zY-_=g31{`lnd+yoJ2E#sFL?svoRpbhjxTYhlrybRnR8axmR}KPT zPZT1mjy`+!wyC3XYPPR+rXY%a0;1Eq4!y3c>c%`b8)LdxRf-@lP5ROcMNUlEl8Qry zjwMBkl{tUl!Q1pm)VJvi?&`x1b6|GVLC@>=T}Wm7+jV+QOPh@a-I!L#uOTeidd-2; z>Y}TVeN=T?8)OTrvM|tBbgfJkoohR6BZ?Af9iR>5g9;LS5nOkXv~ytv=K}pNT%QFQ zi)}bQX+bF@fFbT7d7q)dks?3nrun1^xJK{X0OwMM_= z)MbW-aM)Cke1H4cEP^MWCI^=u6zjR6jQkk`>nfw7qhwOLM$4$Cf=@b3YcAa50F{yv}&lO2#@5AwldAntfPY#Z@HqF7lSvR`}8|%AfbLaSHX~g16 zF#7sG{;__zzVUwRj1oVeZSEZXZ!8J6y+g0DE#;JPqy~f>V~|*LVD@6L7_o2r1E1+l zrVOtEJ;a=}{p=09HRUnpE({NqCAEOn63>X4D|SiNd_ay7U%<{s9W%)Q4tF-sws&^7 z{x?DtGYRI2?ReBESP$r84@s`Ms2E|Nx~qn|7<2)YLB^>lhK(TV!~!wZr6mjXXV>ko zcc}5&{MxpYHjIn3ioQX#F^fe%>TIa1gk<7d>`HsA2YTSdXUZJ7e;;DKN_kP_Q9-PP zW5x}%g@a~u!OpVrOdwrKdSDKEwoiM`Rr2!40uAi2yUvx@9d^xV_)(*($+Ww4rZH5T z(V5)yq(4ieAtJNGUdQXAw4kHeJ z&l;jfCwG1SoK??jvx}nD5%Ch;*^GM6&w=@f86_W?PoD;LYG1m=R`G?oyu3^; zDN(n*XHu=Qv|L=R6w8%Y#d5X6>t^$rkdpDmdO#*vUNcC$bn?QdY9si%Sm^McHPRr3 zZltyeFZpO_Ahkt5`{umoUo!78zlFnrU>m4S*Wm$S>%A~o8B7Xl&CB!%{kpEB>uX15 zLKi}z zBz2ioZ3}cXP+Mr=%3>6x=qQ*(GG?V>L2YTeBsLp!s5&X^wEMi_KNm`hkxq}2&Z{aH z5xKP|>b{V*EURs;ia{*q2@D^#23nz@Xirgs+BS&YiZD20?%jiTI=hq<42!guRbIP( zYnNqb=e3yo;lS@GhwDnz3)R(-;300&8g>fjjCVqT^~5B;a5`w!*O)UH882U$ViD%o zhw=;XP#dTCKhq`zLBb@rt*=*iMu0kW1Dc%dv~-2s2xt~<~MSh>NlPABk_HMEce zqN#hxIvnVX>BwMI7*cBsEDBvW7?DMqT8KxjT`@t>c`dzI0CUL~c_GZWV;5y9$CciPfiXu#d<-3=*qI;tD+JHvQwxSIDyVlu$K|vW7_;d_eq3vpO0 z#4A+s0+>=TxX?+oE1Er?t0T;aoaqWvR7vj|Jx6aDVOld3=fB@ftozcN`8mrZf!X%O zPC35r?y{f^=I7Ss@c?2B1gra~&-ppABd9FxA~ih^56kzZ1l*hX4D7_gNF#RvYYiO6 zeH*lhhUp%Ec9$o&@+6HA&`T3f60Gd7^tpnXIqW={G@>UN{KSnt$zn+DgmvX)v7q;v zc_L$!U$IQ68WtI2zEZ6LL3OT6cmWPlHI3gflJQvSSbN$Q6dM-Lw0MzKNeL%rNCB9n zB;qlj?U-S$V_C~;Wh*?w7s9II;uDJ=)ds^RMOEZ@>N`Pj87YURt^P z6}hvvmU@%F7mNgZPROjj@V8TdEWkSxnQl}PuA}3zWXGLLMis=xED zIbV?|&VXpK?wAdAJfUy1h*9{IYq%F4GBxszZD8191xST$3tXpFrAp+OvI{)%nYiY= z1Gt*`b7Og58Th@GP@w*LCyC0~I);|;Hc<6flxRUT3sEaVS@ZH7h@A~Guw)w7O zz8jkFLUX$C-QaY=eD@{*b@KF&BUk+XG|X#x2K1n?-U5O0YQbEHVRA<6xKYq3Y3N@C z_p=}_pvZ+UGR=>=ZVGSAcOMqOl8z-?N(aQ`BLiA6`XfCNLxori$TZ`%daNL^!%zhN zAb6_c*XWAw^y=$+7ZADult%w6O;Jr2kSmFVerGU2`=Ry z`%~84ZaDundyP7r#7R{88c;XZl}+EZm6hDSZ?X@pd&0W^yR=qau9n&Vtt?l{-J7PuFHTXW>kB*kQyH$-ajn^zGcHT}N;2ufN^h!ijTqw!8E8Y~$U|+1s6c zYL#Mem@4Bi8eazF)<)^;+%Zemeu!6+t=>|^yd}Fd>Ug!}4JA|d?}9F!Qs2b@o10|p z@-|*M{9)_LtutIx*u&}K{epQHm_NiTiJj)bC6kF-bpk7G&c!w|eMm1O6lHdRZ&+ZY z&?m;@!%qP@`Pa3bY(*B-8Box@sIS!ncgX*0rMi@p|Fz|nS^UqPvOA3ePoh--n<%oM zs#M2T3;JwTV`^dA>3&Dpmd&wd$GO1pl3dzI};#Q;$S54rbInO5V|G&6oKj+ z{7q-#NQ+vuOS8ja7)7V3w+v@q6xx8B4QD$JNZAGiBX%h(3!EIzWu2fq39=5cI*k=f zj6QXCSQlbR+(>8NYxOtUi6WkZgm|53*Rbcm!G zVu7bh%X*p}4f+8fyJCYS=!~Es^g{Lp)lY;wY2f$Sij!vuZb$HE_6lXZtcAQLPH)H= zJ2J7{**11?gy8X(EZA3(diVDk=EH=WmM|H@-K-sVUvTtCGG0wopf48 z5p{Xwl8d*tBYGu$u+_z7T=)CeQk{;otLvKyom0;&eh1m2(H*Kn%5ToPhpje=$cy)w zHK0YYZO1Pn3Ra?64J%L#7QHW|!WA5_L7`MtSwFMef@fOkX$FPjNq(y6wFEu^Y)qbL zXc1!6Lrz!(8sggG&U!u#F1A265~95@!GNHa{v4|_bX{V&@HrFS5%1u@&n=eVs0rQh zk+DDol`#lms~xj4)Qyx#cGi#fclO^|Uz1F5qxeOQ(Xt-={eu%5Tp-M6`3>!IC0jQ_ z{I+b|Ik?B>#Hkd%x4L5FDM27)=U`VNy<|wGH!)6)xL=4&l1+$p4VJS|r0Y%fJX(s2 zMzxNm_3e|bBgOb+cp8;rfoKRG{tXR_pbK3*0Eij78lIQFrXX0(7Z)ENQe)_egVPo+ z#r>xgR1lKp^;08KP;p>E07a~8RJ#|ee8AO+WnwYXzG1i@{49r3QmWteVc-jeDRiPZXvUC*eW<*Zna7uz$J2Aw+x5+}qpkn? zuyuTr%vTeul{3{o?5}?~d4F)U^ZVB3?e(gedfNv_Z+A8~xAt$ZgzaD@MdujQ!rAu0 zhy6QRTFF$}+oFG)XHs{4clY4eyZZSuQ#(S**~!k{*4e>_+i_FQqV(Ot{?@I-D`#=J zyS4xB(BzKlS!%?i+}c0cIr;P1$-%+d z?)uTYJ9?ibP7LG2(awDVWC`_Q|M46tECob<-mRZ({ks0=+gr?H zUV6H-!E$|n{TIk4OZVHWuVzO4%lgsI`o3`X@xhrqY#nE+r&p~g;L8Q+G=k7zf#5xI6ME7!Q#U_h}F001-kf;w$@pOh&hH? zCi~yAR*5(7-75{dl${hQk=~n;-7~TLsNr5obb%KV>7-@~8+NicKZsWitT+gc7yzFV zH5OPLlo4EnW$?LU0dm%W-fR^`fg9}L_rL8KQCpf$p$w;#Oq=nWjFZcb=p4{ z?eXWgu_g87)KRtPWd^GN4$PMypx7{9@;lB}bP)K>pPu zH6eS?U?J$pJAi1Uq#XN^(0q;U(&4L}FGewgvMZkx|D2$69yN9}*$GZ?iKTZbc$5{* zz}3JrS?tj{Ti=Mylei3k^Io@Oi@Fj>7I%Spx;^Z4o<>V#8znk+_)5VZ92ZWoS%GAi zx7|McqX%JF5J(6RTp()^S?o%fn%{hFi~u+PV-Ak_XOHOdF8(6@1*7rT`KW&n2fiG$ z(Uq000>@mq9OIDj=t3yfCmWe9b@a2uN{eG6jkdV0`OM3M<6J4}oyB>)2`FUNsAgHd z>9P+`Sj-}Uu4I#?uAm{kA;<`1J6_!=TC$)UkO)X4iu_-UR$!g{!s~_EhFG!GVfnL4 z!VlAHMGG+5wH(^RP_p_GWJnkMBC#i`L;DCGNRkU z)*cIVjm*_hi)huwa#$Abq5oP|Z|5??5u@qKeiH2udO~@kEC0tR*ckcAnqFfPErn9= zBr=Sit6-axqxFp~yh}Ke;1FKN9To2*Q7w&8Us=Y8FHCzD1r)IAZ(K_}C}dUDMoh90 z6Uqs0Jcn&(-qbm{G?0Tof#71)NW#Ubk;LuJpGXkimY&ekaXiVqhz7xmtL70#oWy*^ zZW8!g0|H}`vk9&(N6sE`5ax^8Fe{D5P^VQ)T8$xlp?bg`a$x{??P@6gYnFt#+(ykq zHG*hUjTR-|BX-x?;ALEZQPb*c8>!qVq@{FP3@&=IAii7AY85t&BBYM|r#3dkx@+R# zo4wP|0OM|9Xo z)B_@FMLVYDv+g38-if!<`G$>y- zh2zhfPDD1+)ofGC4=}PBMq&`%wlByI)rB1Iy6UowiolxCX=&`|*jUVmlkLLGe@Ej* z7DmT!7`aPV{e?u1@r9>F9D zSk0(Lu5_I3%ND2O=W$DM`6uL;VslhG0xILrHey~*j_7WpqJILW^GJ?7;c;^bxVW|X zCpP?AS2$6&4as^a2W6tr3AWYAzbae%4d)^r&hGmDyB{{B_6OWtlcK3LNCC{tcCqYp zMwvKbX^$F=j^DGJTeRF0eJ|PX^Xc}G3ENp|Py!r)9!o(Kgdjrxbi}C2B*Wk-dya^c zj46)TkzMEuPxE~~75=LYIDX*{o@%~9^R!TC47>fOsuZH^08i~JKxOH_`{(`Nen`VG zwxISl+A^2yYQ!l>5-yaK#x^xvE1z^&6MCh?(q(K;BhD-(eIEtzD_R$0ETR@(mS0t# zfxk$qKJ4!7?VOzLt^cM;*^YmBI#l?k&@-zmE7jGf>5g4$;z=bi$drT4mn zoR_$F;jE;pP0*+j0GuhXr*GD2Ma~RmxS|392-!W}INCWpIosTN`{CUW<*zz1KQ@K_ zOTXwkEwBE-Be>oETfBt)k1K>0J?}5pp;GYm)2L~9L_N|;Vy>va;337tE;G?9QK@Tn$R`}c*c6)kKl=z zZPIAWnZC6`~DJ&s@`Ky7BdY?~`lnPg9i#-j{;i#8ao{_1$li#fhb=c<=6)7m~|3w`)1LyL~-Dp zF5!uPHor6{vrMlwH@9?Ean~xVumMIop5EGE5huILd%ogns;B;alo z?E6on58b&Yv8Q8q?_`F zFwD3khBU7v!={NBW_9%yM*~BCLGTys#mX)*4~}4gX z7KqZqI|p_W@<`IoWolp~ABQC7GJEx%UU&^j7fB>_;dXzlw>@WYUTksDvPU$W+$2#P zYD(qr8~(>1>%$sk%H^e(2}bscKNoL6BPM1JlTY3x_1@%%lmYtf z&)-fR==Sc(@(n<-RR>?#RiM6{KGfxn_xm?MO=**unD<5N>VrUi`5;g?HeZ%+z<__w z(&G9P$<@A)W(Pl?tWOj66G=&DgJ|5IKWs^2blABPi|@w!d89cdG^%>OD^`MnxLSIo z9NkXM5evxx7a}#CRxD{a<<*Uw*d%09{6h3pE7O9CzTfHg)svB#|IDHnik%W$9~`jU z%Ms*FqNnFnRjAr~@@9Eyj#DXZ++lNb-=Y+mqR9!Nm(g67c1|w7y8_kAm0TfaS1|_S z5)WYSNd|E>>X<1p`lj9jn3UKk@<%WZYrF^F$_yM_keGOc$2m8E)yL)|q}^bbg*_x7!Im!oM!2)a?9;GYk73t0>1aau&bo zb{gE?@X_gYe&i;B;?VPpJ^u~ zWK3~5Ars%rW!GVLSqqHCr7OvJw^prev5>t15T}Sl^~CF{xWb$cHh!Ow>Z-sImcj^$ zae;(jHx)=>Ychm{csD^vNO)6$gpfBCNXVHkpi6mK&foE$C}dXHqNWz#71t_dv%Yz_ zvG**4r%G;^31hs~oU==Xs!)7=XM6jF{#)31VgA#+JpSdkNMb1k>j(OY zR2)+nabvBG$+ZAiO7%y#VMeXVmwY|dtQ#^Dk^2}eQ47ra zhs~XXc*4*D9J7_yAb$>?jm@2$X4pGvHz;J~bJ&v*-5!H@^UBPLn`RE%dTwsfN{0Ea zfv@LHxg33hG3V^XNZ*mg$l4qnPSZA%KJ8JWZWcH8wx8vi-Z&BOz*y5-{aDsKZ@Di< z_7TPHJ5V=x4#M%SLJmc;mQ#r3(3OuI~HkgD(K?`$)~j4*PE$SV>P`2$GoJAK#6aoVdu>nM2f~}`y?WC ztk*>U(D}d0nl#o$%kBzJ+2z`tCOJG2ODk~vwW2dV&lcIxGco0xw+Kn zJ37)muRibtzZsfe*MH$epLHKDJ}+K67jRk*6Uk9U9Fei^)_EK~tcH?or`m&!ay~Dz z=t@>gGB#zbQIkhVTgo8OM_ZhZRLk zVkm8F9>-0aDuA0r} zs=U-+@n@c`0RL8a|62h_h4syo&3;Wx4h|=lgFsPqk3RK1`cCiBk|RU)l?(rVOlJ>#{8g2a1x-l zFWtUN*7d!^s@)OV*{n*;e~Qw)iHT^-nuAuW^otz84N}E;c}%&KWysAUP-^N%YF+d0 zO|%R*WM`DDpAo7`+xZQ!C)*Rm3o&XiZNMiWE4+Nd%S#iCJd1X5EK zuT^WhzsLnZ1X@TU1Dm1ksknK~;clrcBkH5WkRj{Pl`rD*cAMd!bmZ}cU6Me-47zCV zKQfxSHQN+Adktjb7e_W@j1eEtXF`CZt>1o&KSW6{M<#aZdAvF*)ZW4 zvSV9&-0H<8cmwf5$dWOU;XJS>-+5ggVcU92#EZg4#>C{Yu^(BxLPCehL zFM$;GDF^FjNKeeU&&^O4!O_Np-j;xi`yEHDNzVD}@P%nz4u7n7t{ZNV`&nd5;TE*$ zV9uvFm>jH|2Xhk#MMMvCSdomN@trhmDt#8wbFjVylIHAGcS|V+?Mom*bh!;C2kT29 zrQnE|ME&{_NSQt*ux^ILri$Fwm|;Y9OB{-VAdw?CW;5r6`u9iOa2yofut3I3q*<{DIlK(B1e%3 z%x8fZqlf~T0OH9l2vwTog(OFldyymuBioJJAtV&Z!1x>pDT1V6j6-;0hJE~#guQUH zmZ!vN@Kr zE-s_DTkm%E|MHjD0dbw~>%ac>`CtC=*UXw6w<~PUQgNGA$gVRW7X4RNxadT#)a{UT z&}Ouk)YAm{{P%ymT#fnEW-w=^SNB^z((lXq2N2{*3zn(T)X>>zsWFFRzFEd0K6SUUXq z*Y%^Vze@3#ECa}LlPPJtP_D-6EX!%qx@^`bJ)S%K`IO*0{wMpB8Q*{wC17>^C~5Z| z{?8FIj+}wSf@NTGkV%lRo{r#@J{4gYbwuh;(CCnxY~A4dlK4cKAmn^Q#1yitn?d_h zbv4tNUk_O-Q-lCbPL z^czmg0xWZFo`;v*gB`nfrPIo<2ujp(9Kbe}CB;2_p_*K9)D0Le>4wd%nk${^GV^%U z;XfsEI%-G|6o+7x+0(dX1SwQj*VcrEZXPX(goe%N%t@+=GFM4Sh~;fqI<`7Ow~{tg zP3U%>m<{-g?Y2I&yQ7>IgO3E7 zC=(P6MhPKa@)GlBM=#3J)JaHwq^Cpz}pt9{8Um5?jVcxbK8AtC=$8;*y+Lu*z(yNa#B7JD=LHVTzSh z84~xk`}_MuTSk2&4t6C8l4XONFir_8O*79`ftPb6g7vN@6<%JFFsR9uTD@U9B8hts zmvZvU#$ey`GwfSkS(PY|l#ts(bHODqx%M@saDMpS8NA6Cj^@l%vD0rUS8u<`L5&Nh zc0D-+M(|4>qJ7KdaC&n%IG*;t7*snt+pYZQB9U$=1L-Hzxz1Ae}|o z_aeDB5m{ryn*Y-G);m9?ZU(@Y!wDlF~Vgd(bE9D30D?Px2+9m}s&l z=Og5>)6&bbGmhK2&Zo=UD!rOm2|>es1etGXt}?Oa$cVVTc6DNHJEh&$>hi>Tv0}Kb z=IX?nv68TuwNnICa#okdaQRW>diVYM(ME}XKgSG6LTC$}_EI4SxI<>U`WzqT)5Xd+ z6)UHUeOkVu*r(-8v6Y*Ot)Q6y!r>513NA0^ls7w=@o^OihWVqR%gY5;u5xx8F_42( zn7YE~YAP}Tz5Z*atzbf1aAA-x)IK#6OSLnF8k5U3GKDIW3so|Os*?*^QyK8O)cHY2?YNW?DYQPC7MCv@OanyDyqyth7-! z7wv64fYQV!VLxEvno3hP?-9Ul5AfM6;%awlaIp<#VyWdY83V(XY;b`&;S+tFqDlOh<59lr?E8_`okKj>CswT>W$&#g*~~xO)R72{4@ujP!Wlx{Jplh z%|xF;-Bm#cl`To|&b`XXcsD(+9P@kRDYzT1ls~S^X`yYucX#o<-Tb^b-q*Lje|~o< z9sA^B)1O=QqOplw^8RFR*DSv0Naf%}0^asGJ;j~s@m*lV@cDJiI_l}$bb20J{Qoud zdbrxm_oUpEA3t8VS_C!)UPm+&3E&grmFjQjPQOp0#kC_gs9f(pi@BjxuTe}AuHX1k zPim#VMiaGVr&5h0Oy3L4bdeOVeOo9@_#y|NzHgUPUy`1)g4Qs24Cf>W{sAasBXK6u zMnA=i2Tr(gcc4ZEF4zd71zmlQn;PO;@* zn8lymraAP3bEn4{m}laY;6NNF7G*_4>_IN-Tt!-AKv?e}(*qVW60ffP35Knft}_6_ zo~2%#63C=RU=0h#g08VxiWW4QQVe@>W#DO$W1Fl^sAku!xfS+1!qz0x?*!q;EF^X= zz^KLPAc%82bF9>?mjS~AdR<-Y4|bA4jX$LiZ52;TRFI~Mnyi)&I76RKeI&S-RR zK#CN({|WujZ#(HjT6}!9{3#wm6ql?jV7xs<@h60@%NCE{mMtFf z8klzjr;oFWrzm{5MrtKgSlpBCcN2R;sZ2*G_G$$wwy3ZX@aI;oGFIF~(AseHw3+%=cAjB$2zx zB*#-+rsXMX{v;u`IzowbO+{Zen+*<}+OdC>09t?@Zp0IbSv)u{RbH51@&DnBF=#f` z3BfaS59S$l=xxH{SA}j+sCD}iFTZSq;O97ch?k<0M`-?F~9ag!<@r*e3mYgV!9t!k3hbFL(sQAO{bqI6GL z+;Y2@taMLx>){mXk{+F!<;-BZ4(Fo0UfaD|ULp_Do8<%)d&vBET6+=uXU%uTDr0*9 z%Z=4ef1=$c9};)4>b7`SNxw+`65_Qd+0%;?F_j|jAOFbc)Eq_2d%d}rFdhis0wIAZ zzr^pani>K+9Zsl7CKb)lXBTXuia;+JG9>?t(@E`HoRWZj5!hLlaXa-9^j9NQ^T(~- zjZ;!~vsHuJ)BbNl)dxVj+%{Gu)O~W4vwT&PQA#N0Pmmx*WmpjsH0Skvt*nWKn$RoGz67=23mm4v|oCTA>(XlIIj*#*jcd)&l zyR`^@|8A*=eJj}6MLeD{iqS(X zS3`U?UZ3Ly@zgQ*-M87EV||73$$_MhY$@MT5ZLRSOsna2ri%@ZGKga6;1$#G+j@6s z&(ow@J>1+b$u;d=5f1-MMASl1UoZhaV5fo4&1DjpPaV)d9(~A=6-Q+KAv(#7 zG_jW_?r#YJ<3+xtV~qB?SuM#iYwM3(9IcX6g=f}3X7iUFIo1QEL{FISF%-^mC;Uhf z4=*6=Q}NvCxL(7t{wE=5hnpeEqQMp}n*G{Dm(fV(u%;X;Vhu=umSi{711oe>{0p++ zmrm0hFvR)LM6m4`h#Mgoz>&?^D6M8!mQ|i!rx-_c;78zEMb?hYwLrkPfPCaqk1CL0n7knkkwfmG;03FtgGt&C{w#|57DKy~c%?HdwV(WvMzRUDnGzIeM!d zwxKE`e$|rYYFSH0kqb8$tYVrA$oLM^i6u`s1#3Ow6n&xP38(8>*;Aa(rTaQ6zPEL< zzJ0KN@?tLjMG#D;qFBCm;>M660w_wl+u$Sui65nB+d`E+a+Aneny(ag`;b zK=nJ#ZiUViM_UcV;fQ@is-&!Gg~${rIbJYN^SI!XH`QD=lg00F`3b7rE4}ws1}DKh z60Y-w_T}8^sn_H3Sd0h@GJK>?(%`Un9 zt~j|ze-TaMjpXiQq}$rWpMBs&yv?a#g{4Y!Y=>P02lz)P+nC5l66yld!f4T+8q+^c zPX{58*ZJx_PZe5?O*oBmt!Eju_vUv{Yw9~N`ISN3C~0f%BCaCG?nz{t-g+1x@RQ| zIIgsOQMl*eS2B&=zn%?)i`%=%4GgSpZ?9}`ZAAWjp`bdd&{=5w*yCaaS#zJ)>Hz zDyetOmDHjG*2QrUvo!BXUy0$jb9`VkIi|#O?|?J+w)eIJLCc#TX~nMZUt~VBoUWgT z9!VQhg_s-fEOben<(-9sbFY7AAqhRbvyj&a>QN!N@sK-1Xav_3P)Y2wHZ| z8HY(4gO7)qmOu6@DP%QqR*aG!;7KDld1f@-{&M;|kL5eQS8o0;z3Io_?Fgkiso11y zD~oZSrGJ(sMxHhM>|E4S83-)HL=}>iL6;ui+M&JW_2_$?ZXh*aI{f#TA{PD##cINc zLuO_2Bsn+#uOl}%k2Yrd@zuF za$csR3yC1MiTLdqcipnHwhJJ9U$*=3MEd6Kmf0Ypcl*OG8w0%DPvR48VoVWFXNV<@ zX`}6lflQwa+j(TlEU5agw{f4dgq2er-C@e8ZQ}!RU>m zT&%79+riOOBwm7zfl^snF^jnN3_CR6n$6uvGnnHK8$TbLw>$65(E-17<4}~!+?dM+HHhv=3&x8)P8nw}Zaho6Iv#P{`rJc16 z=)YO*qOGKZ@2vg6gtJ;Eo-wYMtt34Y{B3c-WT;!Bg3r{#rM$MbwYzP|{Ir@f^0G_s zbg)gfAVkf!=hr^MgxNySH(N+fyV%ZT3rZf53}OR<$J|E8Bc?Fjy|M6h$^0UB8fdZ6 zHcS@W*eH^Mw~Znxbk``7f_ID}DR=WIl>HA#IFpLq-}_x8F^irCHv)i4CGgLiTdDGY z;qjDfsDty+@1L42l;m~(px1fB?esX(m^5-q{FT6XjQ*t}cz~09v>Y$dv?SLg7le{C;!$ba2|^bj6t35V(wNz2P%)9kzYh0QCDQBE5Wj zc$}~Yx!{u`)Y`@$#?c6dvdbArxj5u|(pY+g^f5pG*mRrROXQ|GqVe)IxogS(R?ns7 zypqruyy*i_uUYRpen>8)a-l+Azxdi}dKDqcE(OcZQa*6FT&dEO7B+?ee>JfSp6Wx(NZ?GW~SQ} z++>jj8#^(KdBe8m8}fG|<dS{=gO?A}S@%J>p!Oj2Y7)EumAsX*XXOZqq*Tq=GL4$1Q`^+@IGptgGDrDj z_273J=I|ZCIre}VAyB5@njDmHNTRQhoKik_4jc}=3#WcfX^AO~W-RtmIHJaJrG7Mt zvzN@VHLp|BcjTgFGMxCDv6d6}i-ch$l6gq&w&AfoM2*o!pr^ z!6!!L($%Y1=;-WF>2t1jd@J#!`ee%d%KEprj~jGw%>bhVznQox4yH_~ERiv`N@^I+ zK)l-Vso^IPJ_I#24q%^;9RCU%N0Vw6xNU`PES9Be(ZA~r z58v6VgoN?ropOMEe-{tjOv3}tkqQ^d46IXka&q+LMADD2KPOW-frmjG}%F!Dy| zo!kEPIPQl2C5L+CYmg|VtgJJ}`Z*a!-GV}sft(=V=}jq4X<&^Gurk?R#CgGkY)=l% zJ|8{}#Z^E6yjq`f15MAq6?#O+%mjf(Xr|0Fj@LlbU&tQaVUv^I!u%f6P%h zfO6~gq~AClmJ|2)Pn+w<@3YJ|Dwv|i81&q6>bTO%tzF7ZX>p}h_+;u!Iy{b~b$+!r ziAb6S_*fDTA80A-3jIvFur`Ql=lpz(Cf=mVug*`alVfva;YF+tr<>m_TLU$R&B zqjs``n>(#kmWdo9LTM#O-zYQ*HcD1y)pE_nwqept4`5UqM&>DM*I`6RrgYscl-U{BFF0yMF5dDQW}V<`xT8^$=A2kydcrlmf+5d)2c z9%+ov0uZAq%UQ;Ji8Bi=N(lJ=Nr`_qw#?y{6>hWmt3wzj!3Ov*xOJ@C|B*Y`I{3WA zMfD8XFINbGkNFRhP6%VoxMbns&nQi|x?X@Jay(8_OvN@j7>mK|;xbK3MW!{GN{d^+ zF&b;z-y`r|Y>ycB-tQc9XGVy6{NrscWouPOj~nrM&r@dgm#+#;?QpJ50&_~3Nxhiq zzg{3G^FiFIbRq@r@aNr~6Wo-59o(lT+9m4#?tAAc!A8g1zvUX_^mewv+s3KK$KxRS z0S0&so+@jD-TUNg6bxt9N6p4O zA633@CILaKZEix1iD?9GtuZluz^yeVrVO~X#>8X+x7L`LBtS5qs6KNr3_BdKi2y8==lI$RQ_>#F@Gsoew(M-{PoOfEdsKo&l9G2?) z)KFx?5?u~2^*A%>yF*lm8~zv~(F7b8al6IKW-+xJA1{WVIBBKMZ(54Dc5eOTKTqUl zk;s*Pr3Ga;9FX9o|DM<3sL(~{Bez4=+2xa$Trt`4e{6NH2yzdx+ig6*So}_7;9bpEOuJw;Oi&}C0jYxz&0UAXQ#R}Y4?f2VN5k6ql|6tg^a)E?Tmc*ihPgA5%9=z$ zeOcFX)JSt61#Z_XZ~(X89CkRb8JMJMd>~E^4NHzHfC0uf>3_p>HB9T>fN7 z-HL`d|F3hwILqpwz^!LqM~)zu9^}etvH90lR=$zH{Fnc$@5|x+{h_(~I71iFets9C@9D+D@vDd( z&R`a<8;&kG@Mt{BundmuUGF3Nh>-X!H-6D zr~FqcIr(2+TUwpT|6?#kO8)gi`;_oUyl^k6kNIXM?vFvVDYlW5f8l{MT?$T71>7nB z<)xhbuT+=UX7WEpGT#U)CGR8J-%I32#fvkkzY)Lx>>nn`{}d(Pj{YwBUs_wv$^UYt zvNV(b$KahY`M-yWFOol#`NyEn!?%%>e>vat>5RDN!4$Q?UGk6bCnx{x-Iiza|M1lR z=9`rLZ)q>bQ_?Pg5l7t1Di{@?X^6+5-`BR0lmAYQjf*yJ9MZ22!Wwa9Q_ur<%KvJ9 z{l8XTTAs=O*V6Vr^;7asy27jLvzkMY0@+Z~I$)eD?xhRHtIc%6eQ5HSWpeUAO|egg zahLp8R>#)=l?wYmGyi{r!Uy{yp~dXG!Up2mw~+y|4J&WXF6C16hToE7? zHX&}2m>>2IawBNfy7B;m4qsgb1gOnXe94RZ1?JL+e3 z+0~iCydU@WF8L=HRo?!u&g4JF-oyS)&HqaFw3v>V;a+k&Dn1j`hb7t+q37g3G1+R@ z1IYp<$G}AGe^rZj%KvKK|F>2pTx2%?e-+m6S2-pB_ptv*TyZarFo~OHdj$`+LcDQhGMoKOlJ?9CS|p z12SuL-R@b?o}vc0Q~t|&{~sx$X8!*Nr@b_glK&L#@1+4!bjpXECwfd*C zX1(Q2&jR=Y`CnPB&g}mOAom!^l>Db?e=qq@m7mG~7-IiLUQCexvxX;E_&uWh6Z4<5 z|7Y_5Nc@vp|67ZG(*A$M5%<;#F$c}o`j14#FK=do{C{Ho-;Gj!0%!aG(?S2OP@d?0 zF{DP@JKQ6S3VF>3;jufAtU#~1e#8qsaw(D4gap5GO$i4>_#_t^OI}OTun-wYtlvQH z*xU1Z$6ROPp0wpwJ*sojq1WZ!l~HxeTI6cc66TVe`)y5OdQKK$62nki06AAVK+e?{ z0kS>W^}1g8nm9*o^w1q_v^{bqb9?O#k%+KYxMqaM)Hp>FMUE^(vo>H58%A!|E zr$^PZ2mtS>8HGDxs3h`Pn*Y8Ocm0hdM!N92q{O)9s-CMKY@Q1f20tvD;8OmvKL=b$ zNgAbF1?->vV^05z4^Y>xW4*QSfVEOp3I@YW=6Qzn7F-E}2RAo!I^7 zFOZY}fRj3%uZ{Q4kNR%;&&Pi)FD=jVzva>RAkQiJhxYf9e&Las>^}%K9v^5<{_Pn6 zmY%X2oR%iIOa9B%wVeNFl?;%x`TsGvA!Yw7?bGMKGR$x<)sU$%QxcCsz^`m0C;!~) z*_)c&$6dQi{wLc1v-2M@`X2OeYW`Q+-%HFbm&|N{2c^v80ME(4WPalMg!=ik=6)H) zUGiU^u>ZR@+y8kK21v<&Li>B^fTZ+nntv2RJy0V#`5(B=4wk<^&Gc_yB>yY3_5TA= zJPS4@{|W8yCI3n3nfzxl`mgnrlmB4oUb*#YPX3_d?)g6-|Gm7jGF$&Y3L~ZD-_rhG z!XL58Yz6QrG0}wf?{5{`dQ)eoC{? zOgTIf3BRhDoc!AW?)VO{Ddm8;Oa51?)tvmVR+nb^-@b~j_pO{dug`@~dGd1-e(s5R z8(j%ULV%vrBK?Egb7~!uKQyj;PS>lOVZY&ouH=V^ImeJhoRkrPRA215ZbPq_IwPS$ zI1HW@&4*sy?{T;f3`!mLa|QnfG3>N|9+R9Dale`N^whts8dpcQ~u`I z4d0Vup+h(GMWPat8NeIJbyi$Z6~QgVfCWq@6F}zS|Gl&TIr(Qt$M<>-_i9R_uWWdS z{I4#ramCK4-iu@{Zo5%@SK`xMW&V+>nzr$^ATnE=CGm01VJI?he zDNLc|k~I)L(BPX?^9R?a;{_o#f}$uAk+mIRu7kd28hLHV#UVgRBLhUI-{;a%xqR|= zpaNzDmxm*_>tDE~flG&|EU*?f+Rh+w!yi7JY!_ZG7_Vur{h?|2y{DleblK>8)AR@O zeqiM8Ds-7kN9WRAG~4v&THnaPe?g_8eUAM>Xx^Xf?VgApH2YNi)oX<9AD(j~UQi!+ zI==W-rYkWX)*Fo-Q2IQ=m7+LwJ00zPlv~B7$MGnpX?EKFrFOXCHJk1L-6@EWj&on% zXavT+3f-RcGAJ6d%D4=cv^rer*SU^~28kHCR38m5MK({-5cTlw^%lCiA){a1*gJet zlKuoG)OVjGIC2)WEycan#GgfPGTq_owfDlSLyj! z*`2+2aapg++*7fo_4kD0$NQUc@xUMU8c}g)*zo)b#edmJio-#kYk^;IyhTbUoiWjv zYhKS8TuUKS%Rxu~DYibD;>DoL z6aSi`cQIBiM!hA5DgJJX)Cr}c{0}mWRdH-5`hh7r9wX^9RY!D+hl_OkLnV(XwnJ$@ zuz&d16#I?lSdEyRw0#A4=HS(Bll8F={irXr(7zu0+O%JlVRH~07oPpdkFk2gp(~6V z<77A-D`6!y>J{0}WPtKNXJCqT`FSq?gmsLBT*D01R^x|iweV>mIgy6VrgvoqT&4NK z1Z2kYx_zXsE7xd>04+#zl?D5Z)Gh?}*$K?0i2k=@?bQ5kO&dbqNR5?rWAO$?FZ!)k zs?=ourcieRbIYM0s^Y+FwJkRsZLM$aZH<*``ke;8LxJ(PzisXuZEc(! z9R2xke;X@UqE5`;R3KZ z2GMUcSN%p zRHCK;a$kK&-Z`k%Y2p zixtxt*(=6r;`>L9Nyo_jCmpbsNXoR+#R2xg?WRS>t`In}MQBY6><*RV*CyA~g;aMI z5~B%h< zpHNrKO)(wCXqDeqJ6a^lb8O6cX!wrrpQ}=G~0tt_3AjEKVhUa#I6HiY#Qk&%rLs~xwQ z9t%Nu4PRc8yRq&J)F7qdzB?ehBa04%Bi*OspZ@gRJpcd9bI7%EY&L#5HqT#N@V}58 zh5weB{w6OIbL)RuzjY*E=Copeq}4mt|4U^qd(Q6vt;m(|v;DuxB%A8nl>guDW#a!5 zR=C%WU{ZP(3NTgrJT$PJ{B!SHW16l%?f#wePqLq^{4ZBX2|bhlhbBJoN%`#8&zZYf zSs9_eSXEt;yIVi|{IPnoq>TBGf2<#_Z@k|+JNmGH#`^AmOOz)B@ciE>UG5`LMDIMKjMKRN%maKyc|LW+TA0YG_V{}Vpv2raw$h|ayu+mHgJPHxNqLIA( zM?5f9C2*(wkKg|!DFJ8p|5woUzExB9e=Ps^lkS*NW+HxHRR2?!8omtQ|r26n@I55HEDo}W|~GWz&q#v z)x7+#l}QOSoBtn->Lb7@`#&4}pEmi&x#C_*V!YaHK`_GnKgX|}{70Ew2tS(A-LEpr zJLSJJw*R-nm4Gw(e*_lUT>pimFXx+YN85Y52OB@z{k`bpY=7?&2=RZ^L{9$g96;Ei z#P&~X6>z8gkKg}OK_$%O{}Fg1KmVtv{R}hQYsSyim`(PNK)?v#Q+qY+O$Yxq|zYP4&`5$Lr zHvVs=GRyz}I4qNz|D)s`MtGoiHYpB3IpbdHVZ=u>58>kw@(WwZ$^XFpd&usuocrud z?Hb@a<$pr_A1MK5_Wu{s^mD4E=Km4x?L8m~~SW{Aj3m$^WGL zKL`n$$^Rp;N=p94q=y|iylzUvU{LCKwUX0!>TS1DvhM@=dnP=kh{>x+bKlgvk{C|%@e$M}F>IvcC^-Xqvnj`L|AF@0&(-eT&;|)|5s=G|6fYc&#RZs|CJ%XP5!s*^jbqQFC7j%f8d4J zxoi?GGAc-xfx64h@sfOttT#U4!=!l8YMKF%1O0V}JXGWda7^ftJZw0SOaN>%6LK7y zbhA-@fuDv!s9C;jDu5W8B@T4ne@u1I>w5cZ=p%SMz8{W`VAxC*WWs zIkL!6(CN3Gnj3nbBppKA?V2`ew2J1>BnD&SqDC&SYjf$?oP>39-n1l_m?tU0Nc%8` z2UiAV>SRH5=#p_e#wC?uVB{?20MMpAFkWarI_BIro$!s{Co0ioM(b08FhE8-E1}w%`O2}*{_qdIejQ)IE&55=)0piJoY~9 zp6nd%Zkdhu2Rj>E$7b_E>1qe&IU zA&R~)`Q8#@N2!ezy~eq4ypASFyKn{`cn$uln4CN;+b0r-*v4jA8a_{szqE8t|LeVP zXXN%fpPu@^%l}(mS<9dQSgEee^1ps5Nk6MzR{y8TZ`HrPG4+n?^hDv3afKX;uBly{ zcBtR<(~BtEOP$&tqBoWxOFb>+4^h7U27wIZh(zUrI^8dteOHme^O}B>9vAK054^O(ki!W7~ zkvdj2W>GXQxe_Ix47$^FW%6MhQZ10wK4fT<-!gJk=H$_A$V&OhCyz}DeOFTCBz=-~ zv%XQ;8Z}2Yn+_8bx#IMz%}JYNGa}8>j-;y`q7)^K+&R;WPH6!d9%ZhTZuf^I(Uq=y zJtkl2W{iHDDHoKQk1`B#94bYm+H1o_{Q?%2LtnF&C4jbMOKjV?~g&r>B{G$&sZA zr-JJsWKP!XGYtG#tccWyAnI0>DJvNE`;xy((IGP(b70*agbwuS4JG%mm<3*s1c1!^ zy+%|!7}ny9M5LlJi==!knra0LRTCg^rn&k|i{{2#$-UGum;WD_q;mQnyAN@$e=5QFgQ``o)Oa99f_Wx%7zsI2dH{YcE|0CMp%gr|` zKHCj=99lg@D>?aZ47>d^&!3|3)9E|qfBgQhwermW{}ALJgPD?lp}ptdOZIKincR<| z^Iz^oPW~nJ!x@S8IrlfcGeCFB|JqpouPP}4XZ!z;z)e~EKTUp?0ed@pTYJI`+maDl z-5yCmfV`fW_K!fJhixJ!|M3NG^}%&NoR%4Ir~EJH&;PAfS7z})4@>w6dTRgwmizxK zJKW1O$Z^nY`~OkM_{ELn@=qWC6JEHN z$Sc##1pQ$N^+3>b@=w@#SDSG~F z_ivZ~^6FY;EqDHRxw1T){~w(8(!jX?PcGXgGDst$xUV(X&|ogp=U!-nu%Zwn4a~tq zEb%rH7bamxa$lDO-E_IhjCTQHuzpv-NMXGpjqnrzy7UO=5_*pA2A0ZoLdg8C_sIs8*&r&twb-eF_YuMpRHSYM zF8)q4X*9)1l-p@7BC}uh=3p+_{Zxr?ykqayOP9)bL2o&Zf(6}1fg{X1{+`@>D5Fe5 zyrcW)2uJjYh$Gt}p>zpnDu)x%BII_t#lGPYu`W#bT6;nVCU8VdPj24Tn>Z&F(JPVl zHeMa?WH_l|N8^s}dyIp?^{PDTj-E53U^)3(sTap&i$u!s2~v;lNVE~}5~>N6dwLtT zNOCR^Uqn=c`<^og=_lCW=Wk4v?=KnS2*y9}3ya%F5Zh+`EnV*cU_50jcj z8+6$vx>O=83GNhTZ#bbNEwxZN#P}26C_E{Dxn?jH)?|F4!_CwZELwBn^Jj8FU`IPj zBx2VYoD+l^u{1G~#6ac({^58Dc#q@$S^P@V8c;dx>A3;;M|mqCpj9IJ0Yh>G36N6t zAw8DU4beG)C&We)v`Ha*AG$6R)hx;P>3 zHHI&(ox9iEQr$3xLIEs^>}Zc-=F%|TL!Y^zZ5A)}d(REIyAgii)<%I4Lj#L)*&{Kx zoo9@Yvlmi{9?1Rd3u!JV$gJ4+7x*UioeQ69szgIM-5O!WawsLiiYNfoXf!y9edUJ8 zjv=J=da?R+>o%!b<{oahW)E zq3_ce;ZKcIs}0->dyqjdb5*(yiOK8uYv+ z5vxx(ou2SSsd4_)FzW@wK;MDDQp0%~3!V}VPa~=0c4uK7d*$a-*x;P$OB8EM(#1WMamoGHDm-$jXDb#a zi6oBB=csh6;0&7e^4jXE4K7DYhyA$U8z=y{#4OgGXQp5_20pWnJhun>{K>7uUG+d7 zz=ZNzLyK+>xoX=i_BtBhz13@3Ms#~pbc`Z^Palw}(U2t0(xJgn9*-}X?L=&Y3$1-Dx0hoWL7ENh z1Ffs4l(aBo)55M&;bh=6JPGH9yVHeFeicwUDaOKq)N<#1x1D>*o$JU^_9d#QShLrj zC$($b?On6CK#$(_c-PC-1z-*4P3w^wx82w5ebhO4xeorZs!{2#9gtSYq$-(b{-ydZ0G36lv4DVpV9*c z)kQCdK&IfLmqQk3{E8oQgFENldH&rw?{d6yjx?OJOiH(V4iB8?cz{EM#dCNdQ;xBn z=f>8dTqjqKgMr0PuFrBJk(W7+>|F5jBHKzAiRkVtn);mtnMz<$sY$rC| zM+?&ztgPboh(O@j8!IHg!BHyKAJ|tzS!#qX@%yY4ShNh}PWEBnI88B5U5=-TJ;$l$ zqEtV|ylaPH|8=Q!d3jmH4seS8pjC3P30gfpaaT$PQIJ8X(T2?`wV|e0_n7Qsr;ik+ zkP#Pz9=Hvj0|w-yAhQi1_h=v&zmdiALtsrP%el|?HnHzUcOv; zRVW+L$bRx0^VRE>Czq|H%F1soTVV!|rq?mx)l>!ftre=1fiI`Z%5N>ZJh|*js;vC3 zU&FtQq7Z3_v5u^!D#&kVfOf<>su6N0!ZB81Emc8&x3J9l2ZMET`Io8k^1JQQ0RLdj zPOk7ORY891a92cHZ)l;sl&YZ*T4i-I_;MQcW0#3 zl$Yf}OP80%idU8@mBLSlN5apetE+R; z>w2GGnQuQI?7ZX?rj3^+qm50 zV<*43geV>EAzNN8eAqZHR8URzppxl)w#2fQ$m)O(C)smOUw7lLoh;hqYqb)=t!Bq!zeRAXl?iaGl?ZONl7s6G z>&%=2*Z#_kQ(m=d@yC`m@#6l<$B+H^ zONS{xyBWc@Omae6eYhjjLL4^>mA~A2)6*?!*#fvJoLCS$k4XJcu{eT!vr0Vr`9%*7sc7eL7(lwyxYdK*gD;-CQ{6 z>qr+yy(vDkeMq5_1FwZ>#a-lgjBL@Zg3HKx?e*%Nq1}JN^zkoy=KaaZA-P~2afu6F z`TrDDj`24ze+tl9V(8LPE%pk1v8u?Tz>y4B2&j#X1LAwXphV?I8jMg2-)f(u?s1YG zz+seO9+K%z)cO;%c%tb8@GEE{fQI-1qht+&C1oSU)w*T_Gz<8*f5rLdHWt*2Eij}Y z?iw6Ocu{MdAC=S(BvR;vo;X)ydp3x0n?izgu^?k3YeLd>y@Fm+_TbVNTUNm1XO!f0 zcth=GMa{)O8hhkHC20_%{0BO9iIpooJE5jvQ3NSujcVy7uGI*~%2N^Pz|-;ZPK1_Q zxM;^xI=BZLF;sQMgveV-dtf`F0)H?J$=|T8!! zXzSWqjaFL86oO3J98{$HAcGW>gv10eZ^YXSY>CJ!5{)jx=#fAS-Q#0~3QWB3*COpb znIxEuM4C}8x|t%XQ_9dayxOwDRwbr7(C*`)45Ix@$(G{P&_aMk*xJ&ad2AupT`P4Y?L$V|svDLGXF&dn>hqHf;viIq7( zMY~Iem%h)^TDk$yxOrVn=TOWhMJ`W^s73QDn5KhQrm_UG0Dzq?T16SGAGJscd#w>t6p7QRb4f3zcCvSdwECrd~%r(Ja% z-10>YJtVLJjG4*?i(nEP5Y8YNlu#`?wP^U^0BR^09FX+FEOP;%*VkGE-;cK|JE;xw zSPCJ;$cp7UyCGbJXcLzekq`Ul#}m*pe1p*;(1DPRryKXfSM>f7yZ7MR zX(PWJauX5h>^R~olLR$51slAv6ZrW&cmgpc6Wbxw3WbYauyak-=TICj4Ap5Iepj!S z8r2OTjA;4}I7-t-GR9;9kJCmg=-jJy6#NFCQRR6aaZH^pyZ)}0ndsZfQ5XI*Bp8Nh zSp&NJyDGd#4AI?p`dXoi!tWX?yyZXo;|Rn7*TfP8;cs+^%>JL$e#kKlc*g!;otFQj zx>M}`%OFWB{x`w>Tw%b;>qRv1GBCB6F*5v*J@)SYvKtNa3<93T|Mi`%O#JWGW>Noh zG5F5*n&|)3LM`-b?H}=nI!IC*i*=k6{XEn>`8K0N-oeH}KM?eB=;0=0k!n%mwt2O3 zM#_2@4G+9gZ2Y6i@%R4&a_D7Y`XznO@PB{Uzm#*^68XPY2eW7Ee<3AEasFQdA+0HW zOg}k0flA(toKe&i!z~U{I29u74q2-w`83Um2aL}HvK)e;siO_ro_K>M3~lZOA_tug zn#ZTgq&Xu7<;*B=n4GcnV_zeWG=dEAksUdAnU0)0Ii5bXBQujT7ZS(wJG(q}GY}OP zgvp9BQ^N689OdbS>PeYHnOHty&E;AAlhe|z_7nR>GLeT(V><>zoCW?9bEkX_Us-}W z=Fy3rX2r(a3LFA(?PSowAK?znz!tym;8zW(V_Y1F*m@g2tPJdu=4mLvky6`&lN9|< zStz_0)nynlm%u0gQ-{dNe_VI)VS(^-tNli}&C>sB5A(kv0eB(*mqByZ`A_41uCt#Z zlj0WWGElV8F|z!R$orhRe>VSDce46l1930~|1T8rrgNMBf&2NmpF~pd{xZ}omMCJ?SH2JKP~@Dy|Dk}f!>*Y*!zF0GZ&weMhgC(3E3~>g$(~Aw((`~|7MZ@ zbtwd7@jq}s7ypw+3jSXTb{0QKhX0w3CQsLoEMS)Yzg^Gj{|&_97yAF=v7gQVq|vWk zzk3pUJ;GgbL=_sJ1RN+y)Fc83S%MAGfs?rYkBEv3Bt|a2Tc{iIR$xVcEO88^96*E{ zf)7pLJgD$ekInE)AJ%8L^F~4lKQdVoZzD?T8wA+ts;o#5Qv0@Eu9ortO1&Xr*g9BT zSD)5#rpRjqcN1&fnTv;Sj{}{?N!hbOru&tq8^zZqta;)A{T+;w^wAO*TvyiOAH1Qm zr|@d!Z6)p<0Q^#7-7@^|2ffRV+Zy-s)B!M27!q!?|qXGEzH70Wg#QHy`l-=1yV%Ul`8qj;;LfNkC`T3aBY!F0o({ zP;o}E0sTThXZT+N0CQx0S@kUbukK{|ztJe_zb=Phto>hbKNpj0Dk=DTIVf7_C>j3O zdjN0Ix^FHQhUK-7YU$nbv~cNpEv5Vj8d z%}WH#D$`>1^4#;pAf@bG9h`r*!d^$ed!-E{Eyg<`~v`I@&ARg(a{|uf|E+4~{J#wYV8Q>3!Fak?>-?WEv~2{?zfLIP38G=rrjQS5n7^cN z8UEKcoZApdZwIcQlMQet|2MMszwJh~i2q#*nOOY)i2W}nhPgODLqEkKVJS%bj6pK| zpS$mmQ=7&A)9(K^iu?bcfz|n&TKYe5KNpXaMheEBAH*;E%?$s?KAgUv<1N4${NLEA zW#fOgwu<{d%ORUJg}i;%ojy|yyZmYm=?mW>$!o`r9E5|ioC|Wk_NBl9%3HG#0&dqK zEkDG8F5(m7mLT&tzQrxTT~k_+e>!EI-CfEHqE2{Nsh1lS5FY<;QqHn2N}2zBj}BNm zn)zk<_^$8QQIz>vU7NOXzsxz0OO5J!5Zq!xJ*k!O{^I1AMG~$<6hLS3Z`9xAoyQxj zSZY-;Lw|an=tfsAk3!e)Zpd_z?AAkWNhH2RYy2Zk_2PMFQmtb-rWAoL8Tp3mM9xc{ z>rrxOBJZA3%|OcCoP2Cv0Q9H}DHU$;K&l!@O(PVA?&Gc_D^=)DqF|_er1A81od#BA zl7bVsN{KiPDa7Nb$<@d2HE!RdjQ49^zhqeqj-xS4xc|JlkHSTOOQT$^$@2avUu$Jl z8#rSgUw%C%&{mw473BNuKKL0>nEr&Yp8mw^_f}TIQCmt&blkAb*|VNeX2_uRcM#ml z3X5iAu3EU&dHs(uZn#c;43ti9*Kz&n56B`bE4p}A zb}(;%Qa^fy(-+1P4=XDW!8E;OTXTie;il_S>5efz$s9G0!ts!|b4~FqmP(OCuPAUN zw{<6gIJ}EcN(EGMI(V~zrYN@b8cY%w#fWJTbb`7eK~T0R;E)Ag!j%BEki7OaDtUBT ze*Cc?kn~srD;UUU6e9gIuFslp;4c)&(oe{2@n?#aU~ui;4_Q&(w7^%>6F#9IFjUY+ z#rt5;@=@h982Gp_Y~DqURDMCC*KrH!Oz{C7Azw9qaD9*sKIlut1k+Jhm@Qsw3^L#C zIc-$Nz#K}oZ@>LLSRB=yS0mJpM~xR$qH+AyH=0AhEy5d9AUB@eTqcio174>l8c<^q z0#iz=kryBZOvNnRQC_nu$DkExn*1NvIg#YFBNVsNq7j6GT&VpWfol@==b(6%$^JnY9AqS_aEGr%okP^@et8qBY;l8)9;zBw4jp+{Ls4J=QYIy=G)Ko)v5ZLA(c}EMi%+mY!z&S6E zuk`QPR>_5Me&W26|1jR+ANNkqjt^DlcRT?vp>9x|1)bBV^zTbOAn?|?uW$~IGT&I) zhr)L_G;&>7&FOSV%;?H&ieb=qu_q48sFeqra-#~U61@N#H|Q3;7cng{$WAKvlAsAR z5Cr_F+;`4l3%0)K%DudTCCk~&2pX7#pILVw(~*c0l@QC2WB zGAh)JM_zP~4-pf(V?=3w23eb4_@j$KlgVb2YJ$C8r-5f@=MYD%%2tVg>mO06O@O0biC9UQyNw>FDUz>J{jhOb*9#%t6UEgpY_e;LlW%2`*Q3jkq zaZ=3(83{n;cbeo_N0|%`#b!)WGYS$jVw)Ko?dR5Q0pf!m6zhIQ^8pM5pX?_ZM<`^7 ztlN&&1uHb`Zsf5p)Z9UW?aD}l5xj&{{Nd9J<$#<}aQOx*9!nQhBnblvE>G=qhW=lj z690pmaE1LpPaHhf*D-K?A|gc;{J9JOLL`L+;4zSXQNL&SUlMb1iDmnRAy?aSJ!iTe^xqR}`+MjR_4j`ctndrR`+*jp(!v7)5gqkw*)4>J5uZ|~sJ zK}E)#e1BZ_O#ZKB{r_8yT9N-_DHLPv{|WBr(gKp#3va+uP_>Xjviz?r?dE9wpM(Fm z9`64;2ni_e|1AXL=}vL*gnb=UP#Q?FUfROKQp%D5OBuHIJ)sQPnPEa;L3U#k>AR=} zqFBS-r1BFJwR;CM0xTIQX4D>esO@x%io-mq@}P^tNhq{Ss|8IIv_K%U9t`rPgtP0T z4$%O15N(_m;~cHh$TsMT)eQCkbTf3YQ^B&Oiy#Nxs3f-T{U48Xw>S~AMpZBpv)Vgx zUF^oIkXctaYgNH*hLWCTg*pCc-$VDA2FN?u@!e60BRIR_{9h~h zKh3BM`eyC_#Qj`5zYs}r{$CJAmfLNH|8vdz5wB#H{y!!E*Jg45KZf37|62U7lXrk1 z;9pRcaX6~@UaO+b&UIR>>30yzwWg9n0xT9aOX)qs|N2mua}|(T{9mg-sQ+BA75P7w zf`2Ri7g)~*{tqtk<6JsHLO6w3SPJ5D8YIL2;Sk3!_$YHd0?g$9Dfxd;5}-K$=Y-== zbz|-S2KRHZdrT(U%;~r|1*x@{<7N{B0?iKAuyBwQS3LJ|7W`jmq5Y)OQ0WX z{} z#+#P@Z*V^sL&kJc=>MMq`$tAI;|#Oh~5? z3d_M=9;0OVA5k4Xf-IK2|0CExeg1E3BP6Ie|L1|=8GTs%k7%3-5jvJeV5ng(jUc9+ zg864a{AE4P@c+oY#qFu z<Ym;$M*+&G_-hKOWUh|{L=8k394nv%5!Znjq|arULAT)SrC z6ZUxE!VrT?P`Dh`wV;bsYatZ#dwnsg>y5%lZEq4>7#uC&x9#G3mGR9eq=G_UL*nrdDFXJ?EpQdBs9aC~Rb#y}GoS*t_?c{2eCARc!Oh`&mG`x5V5 zeVQYe`!pl}^(NlMowyuLz%$Q(59_}*HjDf(OCf~W`X7nm2@0UlPGJ^W3i5IoB*XuR z*a>d?E^=XYmKgtuWUp!a&(;n?!V3K_2mH?J!m|I^xSxyR?FPl6Zx*Cq=JO2y_lL0k zBA+YL59X%;%-sLC9`OHmasPWc^s*-TpOL>c3U?K;k1P#H1IbU!L7DakThuX^fUw># zo8{PetZ4-naID8~1aux80!N?`Hu2 z1vJU~#rC@1sgJk$0r7qmTjn~aJ0%QjN*BjLb z`JZb={`bY<-0nH;v`^44p$+u>Um$+KDqfTndjsWo-FwtaVKp)o@VPicL_s)Yp(R`q zzjAIoL_0(Q`_S1_rSRGSRc-=Q8tI2RPNX#oZV`&X3N*S@k0fA~po3Q{Kj?=iyoRn; zPl8`O-*+nYRSbHKpbOLzx^W-8)jT>>jX#&Gt@?kZUPOhK+d*%H{jG#TW-Kt*c1!V$ z`BS#1a}JpL}g_6g`S5`^_y7?7ju@5!Bgq-`(# zcz6*wE<~kdHg5S|C^?GHM!}7T`K?Z7U23BePn1`m2|s&}Jc5S=+a zcb@nE3eX*(=+pc!?_qtFTKP}aTKz9`jnE@hN;lmQtw6#tO<6(_5@d_?Cwr*#B!F=FIsY_dg5$|4Dd!?#t=@e}aC5?WLdS%b{^RAA$-^Z9*1P9hm$up@U*+ z68(9?O?VrTe0!bF={Q2&%Xf0Q^oRQk=3GBGe0RKeai}5$OIDKyOGf&o-$$^#rS4T4O^=c&pT>L1%rs0HN zYp`Dddg&$O<=U2hFl7l!scLa_UJ9GN*g-P#A1sY)e)+opX8Zpi*#8^ba0wRie@mbm zOaIfjpG*BSWKw8ko+?LX81q3_mQIxFys7Jt!+Ix|22yI&wPu%}8rxQCOFd>h*ghcXsAtsiC z&L@wO;eVX(QU4|U_uv07`2WeMd{zT1{#S5sb9+Jzb8&m}dcp0_!o|O%QHKA+(9bpW zPnI-e|KF}QviTnywQ6zyZz<$p86=tiiRjl^jm|=M+zHe<5;6sS^+6kgf7EH85LdN+ zcK+eVH@ghcf@QJm^~Nye2FO^1XMJ2CRbenjfStAzqo%w>n6V9w$;?UAY#yUDOl#zf z?j^$z;|xQ-*kM3ccomF&B$q;eUDXSMjvDES{9}x$zeqRvdGGwg(T5-Z1NnzA9D=_P zKoBA53$cZjj(bxvOQ%G4T=H`<~B$I#Ywb?>Ylr z<{ncWAmCuYri?n^)a}kOj@L#I;u_|v;}SenyO+uPh^40;nGp=i50G^U9u;FoR*}cj z_3KWkpE!s}z)T`UH%S^Qfm`3XM!*AsX=ajDNFd;JIvx$y z@*JX>L2R%~%iPBXGJ5h>)ZXAVa#CR_gjiWMgAGD$0-Oy40RW7c_6CT(b2?>(KuL{X z2osW!`Ur0U`#Et2m>=UN^)fnc1UQ@EP7r`5E+mucXkWs3s9IwLig*KH@=61yw80}^3J-FTyjkTXfmI3+a3|6sCjlG0C( zP7X^EVreACQ$kyP+}C7kuYGqEd0ob?;2}HTKR+gQy<#wqgx}a9EO({5t?IW32P`2U zSER~qcyu0lad_PhcS`M%zk;_Ip2OLkA*Gl)yBay*jRViYm0*zx%909PFzX4bp?G}n!ZPHz*)fdp{s4XOVW<)UL6vU%+uB9$z9V9QrT}S%CT+M=H zJ#aRmpWUzixp%g=|Niju{NsnqgQN3*RlxcenJHp!M}TnP_JYX69I+j^vi<1^n)d6pHxOnB z>PN)0&c?{T0#uRXJ}^X1M0o%pBAz;u{Dcs7lO09(6%56*YDo4_WFU4JKp)gjy}}HJ zH2_n3RkA4c{^-Z|yZ_;Q_;`FQ>n0+Nr&_mxI)d13@o~GzYSGqk!2T4!HXPxa0yat` zNKGrp@A22GK9Va2*xzMp`vM`<%0mbuZ6oLx$+GaTTq*zowMX}|5`@nGzhE5eFj}Sq z#-8l)da>MB@A1y91DFHM?f`_=#;l-~40`A@=?z&M!SGN)l+(pa9m0%2-aq>Y8VW&V zeBSXoqTU41Hb&g)GmwI4a4?#Q|3^TkRyc53!-gXB4ZR(qhyagy<|dHg=WT@MZY zQ-NxrvsG%z4fcqFcHoQL)oV5g-HVkgb>sNR8M({tZi5rNK}yPt^Z}78c^V2?)DNoXm0i9o-hWlClVQ*9fJ z#@7}Eg7=93H$xE4dLmQ%h?iVO!p?Mh%;xct8TLFi>I7mxUm?dD)&kT6r!7I=pw#?u zq~bZ@iAi$Gl&PwP4R(rNfW7bG*v)8!d_L&xr}vjutschW~N@pbpg| zUjZST0?IG)Q-=R>{2k#!alSr)S^U4<$ku;t z>}(hDe@mgKwEcgAe#9c=@i!i-6NcN)!sO|+7~0LI`&|8Kvnq;jBhxduAFMKfI5LC#rw%~ zZ^QVZYToycy}@;O)IGgLAqt%!;Aj97Psa^E1c$KRp@X-&N8X4(J8fR5)3b}C(+^F~ zW>W5fmRFqLVer9mlBFFu3BI8lAKtYYo<6gSjyv$|9&|hO^R_a9%=a(x0G8qZ8(N$% z;bL)e3<93T|FsAAf47hTyomo@h5)eke+&0>=>XRIg~NXtxLU**8U7DZ*#=hROSlH) zLoNq_nf(8t{`2-0QUVw8|BFC)rcaCiv$&s22xJ=-k{|=%7ydQF|9a<#YpR>$yl3!# zZL5}z|7~n;?-cx>BMKhvD$)N1^@iu6xU&8mv_QIR5I3OUtU&k(onM1{xLV{1ztf2| zU;xLucvR@6p$3iklneN%;M?fKzo`y zb`|qO;EP#R2OcBzs;BJUIm}D8p}mpj{mLquAL%Hj$!g%ClC)VR6N-TIgm`~tNIfgP zT-6`L5$gD%OikLv;S17+&OAVX>zZ^P0HSo&iZf~g4QZ=g%rPvj&e;Yapbw72|IBzD zIUh;adgT?pW^r=ALq)cGefXj`F+R=FZHsV>P?pS&h;YP(#qm%{GrYASPbEc5(C-uE z5)LDA7Kkb#)u?#n)hW>xf{w~+`aJpQi>o}Q#fL;>AcMCL=R#yKyXNUJect?lfF=CM z+p#S2mpb*Oj%Y9OjP@w==I|gR|1B43E~=l*aEAP^PC5S-_dj#M?L1vr`k#gSxl}*v z{X*-T2i7m~oecl;#*S0~%8&c!@c(XQ{Xbjv?ZW@N6mofR|4UbWveQ%8S3)NAF_(mx zyj{qLr6BVegJk$0Ax(Gp`Fek5@_(&?Vvp(i4-NiQ*nggZ&!;v?&VQf;l>QU+>l+|A z;@BaI@C_lLoz}rR4}K0$4Y$sy!w~Jed)y5ev?ofx98_MP@qtN56CwibHO__zvE>Pe z$D6nETz&n$zHfk&8Z>x`88jC=cGVAv{Y3aRlI`*+hhv;Xw#9*Q2<>B}dBd4PfQxRf5%~fWq@MlCM=(;9N`cfQS|BAN$4<7I}+B-jKDaT`p&2)k)ZNG14p7% z;~>rl5E?OiCBP;Ssvz#&WdtT~H>@#O7Uv^oR$@H=t=rPK1$4?uGhuz6Iyn9C`a%xb zZ1)hVEPB3{g*ASfz?aPwPw^&Ha33M<$n=fDS<4%b>|;^v$>Q&m8tAwWBBAzgD>9Cz z4;`pmF|I&CgQR$7^ghqIqJ*xqpn1(s$Y32=vT#I@JD*X zn=*SemonzRwWHot(U6h&1ow0C_T=q?qZf#tg?F9df4NiW=CJ466Q9lhS^H08r>OsDLvV4QE&eyS zpNsorIw|6R7l)dq^qk>;@$BZg_j3`m_`ix^zl{B76Gwu={<8!Mu=rnaKNt6FDk*q> z3HVv`5E=d#OV#8In3Euw#s9VKZ2ZqQZu%Gezi8aE|LpnSM1+KX5FrNi5?LE;_fMKU z=8_fZCdFZ48AyG?7+L<(&}$>d1lg?6NxLLpcnq88NkbpFpb0C)!f*R~qm|I_?mFYJE{!g#vd zx4elLnhLw+Z~j~!Uab%RwAt9&`OE+MHTo5o{@#3rKub6S>1BHl->r|dCFu-eS5Y+V zlpqA)QA@hRb+_b;TGf3I!})tF=@f!8Hq{gc9_u=-^aVS&$R{?Oq#3jlC~>Z+TTFkk zNvMW6Sk#O~NUJ!gJ36zG$;*>;DIvFnh8aKFDfcI4reo!u# zzo(PmN>WpPqYeV~;q(ITVa77^F}%76KJZv}2w~kfh%pXT`6@D4)DV@P_1rlkgP@af zAn-1^Rv?e5E=er2F0b+({s)9yIvpgMyX^W-FU}Zt3NJdJroxD=RlG_w+zb0A@?Wz; zr?Q~AQU341q07JcFZ)-1gZ$sDS9dlWJ3G+->a{xVe{U^lKB;aIjqi+<`W-JarygX! z%zB=A{Y&|p!hau$_Hx$!2?rv0hj`WhW&iS5?*AJ9Nc>T)SGO4dSud9>8T};x85Z~t zKt zGc53*;6L%{=XwBqI{(*qYKZ@xg8%$ySl~Z}f5?BP0LfJbJRSd#|Iq)Y<3Hya7Whx_ zk7JfQxbeEVV*fe%Uww0Hy8f5{3=8}x_}8cCOB~#hK|4Ppcsl>X{{IO7ivcLl85a0Y z@NeJf%uxe)I{p#3{jpu)u$Uf3dFRDEOa`|E-g#549rrUqW|M||az<+{&o~}Oows)-cCx4&L|JC{<{Ga~}3;bL7cM;fvQg1oa zz|-(A{=Xf@|4y<0cXFR$f&T>m2!)BpVczL~o*4fj_}}9F?&=<_pX2|pu_WX){?C7g1^yHK+uqe2g}~GI|IMw&bpK!eGc53* z;2+kN{IfqjhyUw4)#>=pe})DAE&S(O_bavlJ)Qq+)kpMyE&p?rO}{JfpWuJw-lFRL zzt{f5dm?pS0GYb~=Rd;&{|Wx%6s>vk7lgo*_+Ri}+j(UF&wqvm{uBJ;f@A*KAD)Q+ zE%JZ$G5qI0!vg;g@Spbq@Jak{@c)SXH~7zSh6Vl;{IgyIZdD_(`*of^pr_*>@xRmU zzxmIw!2fjo=g4Bu!T-*5`;U$Pd}jC?$Nw-GMfrRD;*(!u|KDyjviH8@@6|22|GkME z0oBc_2vtHUQU_9( zrC_;5Wb?RoeHMg7?x!_%<=migV0ZJAH;TrN{~mV=6^-|KJthQO@J{)mK(7k1+I2dMcCxG;cH-o9V(1>C_*+!8r0k z@SkX~hD0y@U4`lgk#qN*o}h}t?;0w+|ZuOsmj@_%gC;Quf3f6Rfv&wM3|f5UYpuvTtyAjJRU@*m0mVC+rj|J~YQ z{BI%uKNGogG*3%M!8%0aTU%^j8k)G=g=}Tb)uuZ_p`JZvLSo^fz5~%b`rlF`h~(!Z=4P zJ}lc4_OCGXAmU_$!X-DaH^#2Uq+jtAqz>-T8DWeuiakjO$UieimM(OPq+I;vIOrX7 zzA_^PfbDWJT-70`g2(Esf9{>_?Y}>~JU;#L^5E$FUlo}pj#NFowvUZA=udx7U%=&y z3YTzONR`#m@Op=xxX(S5N-t;bM5vP_Im1GhlIqKYQXN~7y<*1$?pyZ1Z901G$FAG%CIIbM*=mK6iAL@e0EVz`wE0rIutT<&;KbcULj?!ts zkU@(R(G{Tfe>}=A4joASU=o!KD1A6xP#Y(Dg+yR27fOL%0@RR6zA~vrz3SBQ0|B-w zm^(7{kNJxQDdYmXaZBxR^r8$Vvv=GZvR2cKe+cY%%t&f zQ<`IOn!%XfkWx)qGf*g$<_%(`pTRX65!com@`8*dyu_OmB;p9on0YP%0)8Y? z2byhB9qsJ!1mxcin2d0L&jv0s0t)AXqWX3Z2@I)U1MHgQCgslwAwxT5)NTipa5PA& zdy86N+(99C)OYF#vSK2eU=S>oULhA}+TX_Y*0b}Ks(Ml}oJWBn%I=vIi_)!t)pTLa zQKk>D+yGRZkdR$^>;$^$qXJcvQB)De9hKS+zr|RzkfZi+Ss=j1aIe<)_uj;KY_eD! z7$?071>9@sQLZBW!4=TJn)f))bWsrruRmM^L@(IB?PCEDr5Fu=$-L|W4;&i_5MVJN zuf{lIWobn!+)3T{K5`?HkfcyNB!ERKsCFlk=|d2?yC_a5^$!WOJ!{=(oIEQxlCvl! zuW*)`)J0!gS>c+7Le2OdTxH4f5MgsWoOY(#Md0?%tqip`d~%!w@uZ zemso`kVP_naVpvs+S!OUD3}A?>M=x{E+7T~yl0_1S=~#;c4mfCIM`26p1k}R#<2rf z7&ls^Qu~_s$mtgEtzX;^-3hMEJ2sK0m_5SFvcq-UVRThiimjzqsKL_!tcz`JNMdsQ z4J4BN#~9*H+Qh$J4uVTaB85D)=tPvxxb?W-!oH$~y2&Mr?yrJd=(g?$4;9zFYz9*0Lq*V>p z6)j-!BvyS+W!<4IKB3QhETF0vubG2WXDe3}rdWvx)H_IwA9$sdIFe3Q)WygdguH2@ z7p!sk$MRP7Tc{I&hNGlKEWkryVVCY4I4r|eJkjlXiC;W>y zA^%Ze)M!%3`ifnTa#?2)=0-gVeCbz2^NLP_D@k}U5Ig=GRa~a5eN7axHYrP+3Yuir zNGq)8ZBdu3eMM15%QS%xY$#!f^0H8u0JRqN1I~qdJNsfj+Oj&t2={SSh*FWvOP9T4HN0Z$?gzJG5IWg$j7}c9-_Eo5O zOZ%Ru2^&L0c?||)p(Bb#Io~B#FZYj+4nJI6?jN3CknHuG_@H@s{?p;PJSYP{F18J$ z0LjX*ca>r_#{v<6AW+o(=#5;hJ3h+ea(0l{AniB8U*-)NL~{l{H^*&_XN@Yok6{s^oI}tVYWE5)58V++y3dlG7|02O zK_~~~6`UQ~4%RPdaPN4Wmdy}n^`VHT0m;CH3IR1dKsR~}YWe~=7;UxYC|m)ZK(je< zMX^I$E>dC>*PvJ&Isz&<0JyZn8Yd?^4N-d?O#cB2Q7;8ALJg?-Ni%@SMAG zz^9v{U(-9~Pv83m-~ebjmw~Gn2^H7v!B(KxG^t7~6oXgwlyH}juSGJ041^QHC_o)? z(iz1#3>%$Goa}HY9++~_Z9f3z(%RFda{>G*BXt5d9K4QT{=xAdRAf5TBH}>{Z59zR zT~S59^9bZHjymW*wy09PYMXE|=QdRf z^s3*Qz(z|mSxG|1lv;#D2Zot4PWFRyf|iTztLwBqALslHl!Fi^ zkGG*jxq+H}OId_|jFoUoH&`+>MyfC(HDL9Pf~`zndzCoQm}A6m0G#V?*y4M3UI15Q_~POkTGx8sJK|rPR}k> zs}!`ok<)QY=yo+$)&Q?nnMG;jhC?U`<}tCH%>M_?)utNAN%QDX{i$Bs{>!TRvtV__ zTKiO47r&R9gkFAXVC*?>E0&J|wL&UK-4n63V?+8)d0^*o(k$?mtp6|TdCy~L@&E2T zTK@sXX6XNu{Qvds9o+wAMIhY&EBt?XK>yQyq&$6J@BY3D%@Oros1=Ce_5NWu%s4O-R% zG|@vw>F%IxQg=MU%tomR^YrI?ZBK8`YZkWQsVy7F9o%7k$ZGxYafk1x-Mx8vd)Krg z`G~XkbA7$QY}(cPxTkkMNAJ`9yldh!eZHF)0Fr~ToB$@i(D}T)Yasr%Kkndo_gPNf zH4vR$>dCeQ$e|xRYdf%w{-NobiYE#BnJ(V7r+9c#B5Y6Fo5(C+4`^fY?GmZyq~2?` zH&!XWwI_zd(!MqvmiD;N(&@;9rma@LUVT!t6JwlQJv(h)Y^Wa(@z3em#nI`9=7u^r zJU+ZQ+)!s9FXrv_#JMZ&!LPK6!$Wo6MtTK$q0k-gprnadcRMAz&^Hv93RzvENgOJz zEERDUFtp+GFQV_`E5I^D+=bR{OQDOC7_{+HM3sK^l?DsI-Jx61f%KAFW>k5#G76E8 z!SJMBt*Yk7{r$sc6Y8^~P`i(Tf_G(VW!>Gm?!>s(PY0=AG3$={&wrjD{@;&>&5O&E z!;AN)2mgwDO1*lH=nnPQ_43zmzEWS+)Su43!z4D2|MCiPhG`A;)BEU``ZOJPxtLXm z{x?VbpVa@_ME(y{|3XRlBK~hN=t%XN#{VL;|0mx6BL3?r|7-GpE&P1)8;}1^5kv8% VfItC(0s;jD3J4Ss_)S3I{{uz!F3$h} literal 0 HcmV?d00001 diff --git a/docker/service/cutler/apache2/apache2.conf b/docker/service/cutler/apache2/apache2.conf new file mode 100644 index 0000000..18f6a4a --- /dev/null +++ b/docker/service/cutler/apache2/apache2.conf @@ -0,0 +1,221 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +Mutex file:${APACHE_LOCK_DIR} default + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/build-image.sh b/docker/service/cutler/apache2/build-image.sh new file mode 100644 index 0000000..d3eef4b --- /dev/null +++ b/docker/service/cutler/apache2/build-image.sh @@ -0,0 +1 @@ +docker build -t cutler:v2 ../../../ diff --git a/docker/service/cutler/apache2/build.sh b/docker/service/cutler/apache2/build.sh new file mode 100644 index 0000000..a16442b --- /dev/null +++ b/docker/service/cutler/apache2/build.sh @@ -0,0 +1,2 @@ + +docker build --tag apache . diff --git a/docker/service/cutler/apache2/cron.tar b/docker/service/cutler/apache2/cron.tar new file mode 100644 index 0000000000000000000000000000000000000000..fe1c2e34326a44b823cdf377a646d6e0d0c5df3c GIT binary patch literal 10240 zcmeH~ZBOGy5XbX6pJGl(_kcod$ARdOkPhk65{Uu=dOfMF(8iv`TkKtTcb$-L-x=G1 z5UE9+;6=qcFT9Vlv;SHDW`iyX5~Ec=4LYy&g!GK|_dEQiXZu~ZMe#u#N8xBRiaKEw z?GFYW*ncgDHtkl{2?NkETD#5m?ebIo+vEQyb$p0_nU$~OGza)#INXl=x*iSUgH9Aj zgTd%vFpOy&6=RBj_&V-9w))27zXQSJBk<+o)$VP?dYj z4bYJ84#0ILEtHj+qXmoBO08ffbE-+TZs=RFz?)LI40N8N0hb8{-+MfNnV~`W4rC?8 znN*lI6BDgc3&PS^gj}$F2Mdu`2ztg7+r|3xVO@M$&4TFex|njn|cfWi^9 z!Ao+agYYN3fB)~@-N&D*uf4ni8y|my#!de_3I5pnPw{^kj)?z5!v83W;}P*cj-mt4 z{~uHPd9xn#zdZsE*eBxG=wj+KjoSfGisV+zu}0pnrF8~HK`={nK}mw)?Hm@wFd~&f zg-elxTgn7MKq`o)#F_Dej1$80Rjq>1F0?XtC1MmXpsA?gxL@vf9cFks0BadIh{sf;x8%{CmL z6zl zk!u^t$;thc?FpP9Yr&fp`<&nm%qo?z-!;!E_mbk6q9R>2QMr+^^^vUqq#5&tChDi? zgv=?QSmfkDNv`p$wOa^PQaF2@9xJ=Qv2aXy{N&@8)>E-9)p&|9+W^1he{@ z_B@C@G5QJqhtZJk|ASE&h4Em>{}ZElG}`z4e?rz5>E3~_=QYX3UnkdaehHW3U(Uac z>65Q-_k6QuL<+F7D5<=0MwraE{E4OI?Yy~s8!YsKu~*+eQ%QVs+N|F0=k+2n@); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +Mutex file:${APACHE_LOCK_DIR} default + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options FollowSymLinks + AllowOverride None + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/conf-available/charset.conf b/docker/service/cutler/apache2/etc/apache2/conf-available/charset.conf new file mode 100644 index 0000000..8b0f415 --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/conf-available/charset.conf @@ -0,0 +1,8 @@ +# Read the documentation before enabling AddDefaultCharset. +# In general, it is only a good idea if you know that all your files +# have this encoding. It will override any encoding given in the files +# in meta http-equiv or xml encoding tags. + +#AddDefaultCharset UTF-8 + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/conf-available/localized-error-pages.conf b/docker/service/cutler/apache2/etc/apache2/conf-available/localized-error-pages.conf new file mode 100644 index 0000000..f188d80 --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/conf-available/localized-error-pages.conf @@ -0,0 +1,81 @@ +# Customizable error responses come in three flavors: +# 1) plain text +# 2) local redirects +# 3) external redirects +# +# Some examples: +#ErrorDocument 500 "The server made a boo boo." +#ErrorDocument 404 /missing.html +#ErrorDocument 404 "/cgi-bin/missing_handler.pl" +#ErrorDocument 402 http://www.example.com/subscription_info.html +# + +# +# Putting this all together, we can internationalize error responses. +# +# We use Alias to redirect any /error/HTTP_.html.var response to +# our collection of by-error message multi-language collections. We use +# includes to substitute the appropriate text. +# +# You can modify the messages' appearance without changing any of the +# default HTTP_.html.var files by adding the line: +# +#Alias /error/include/ "/your/include/path/" +# +# which allows you to create your own set of files by starting with the +# /usr/share/apache2/error/include/ files and copying them to /your/include/path/, +# even on a per-VirtualHost basis. If you include the Alias in the global server +# context, is has to come _before_ the 'Alias /error/ ...' line. +# +# The default include files will display your Apache version number and your +# ServerAdmin email address regardless of the setting of ServerSignature. +# +# WARNING: The configuration below will NOT work out of the box if you have a +# SetHandler directive in a context somewhere. Adding +# the following three lines AFTER the context should +# make it work in most cases: +# +# SetHandler none +# +# +# The internationalized error documents require mod_alias, mod_include +# and mod_negotiation. To activate them, uncomment the following 37 lines. + +# +# +# +# +# Alias /error/ "/usr/share/apache2/error/" +# +# +# Options IncludesNoExec +# AddOutputFilter Includes html +# AddHandler type-map var +# Order allow,deny +# Allow from all +# LanguagePriority en cs de es fr it nl sv pt-br ro +# ForceLanguagePriority Prefer Fallback +# +# +# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var +# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var +# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var +# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var +# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var +# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var +# ErrorDocument 410 /error/HTTP_GONE.html.var +# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var +# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var +# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var +# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var +# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var +# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var +# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var +# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var +# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var +# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var +# +# +# + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/conf-available/other-vhosts-access-log.conf b/docker/service/cutler/apache2/etc/apache2/conf-available/other-vhosts-access-log.conf new file mode 100644 index 0000000..5e9f5e9 --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/conf-available/other-vhosts-access-log.conf @@ -0,0 +1,4 @@ +# Define an access log for VirtualHosts that don't define their own logfile +CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/conf-available/security.conf b/docker/service/cutler/apache2/etc/apache2/conf-available/security.conf new file mode 100644 index 0000000..f9f69d4 --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/conf-available/security.conf @@ -0,0 +1,73 @@ +# +# Disable access to the entire file system except for the directories that +# are explicitly allowed later. +# +# This currently breaks the configurations that come with some web application +# Debian packages. +# +# +# AllowOverride None +# Require all denied +# + + +# Changing the following options will not really affect the security of the +# server, but might make attacks slightly more difficult in some cases. + +# +# ServerTokens +# This directive configures what you return as the Server HTTP response +# Header. The default is 'Full' which sends information about the OS-Type +# and compiled in modules. +# Set to one of: Full | OS | Minimal | Minor | Major | Prod +# where Full conveys the most information, and Prod the least. +#ServerTokens Minimal +ServerTokens OS +#ServerTokens Full + +# +# Optionally add a line containing the server version and virtual host +# name to server-generated pages (internal error documents, FTP directory +# listings, mod_status and mod_info output etc., but not CGI generated +# documents or custom error documents). +# Set to "EMail" to also include a mailto: link to the ServerAdmin. +# Set to one of: On | Off | EMail +#ServerSignature Off +ServerSignature On + +# +# Allow TRACE method +# +# Set to "extended" to also reflect the request body (only for testing and +# diagnostic purposes). +# +# Set to one of: On | Off | extended +TraceEnable Off +#TraceEnable On + +# +# Forbid access to version control directories +# +# If you use version control systems in your document root, you should +# probably deny access to their directories. For example, for subversion: +# +# +# Require all denied +# + +# +# Setting this header will prevent MSIE from interpreting files as something +# else than declared by the content type in the HTTP headers. +# Requires mod_headers to be enabled. +# +#Header set X-Content-Type-Options: "nosniff" + +# +# Setting this header will prevent other sites from embedding pages from this +# site as frames. This defends against clickjacking attacks. +# Requires mod_headers to be enabled. +# +#Header set X-Frame-Options: "sameorigin" + + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/conf-available/serve-cgi-bin.conf b/docker/service/cutler/apache2/etc/apache2/conf-available/serve-cgi-bin.conf new file mode 100644 index 0000000..b02782d --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/conf-available/serve-cgi-bin.conf @@ -0,0 +1,20 @@ + + + Define ENABLE_USR_LIB_CGI_BIN + + + + Define ENABLE_USR_LIB_CGI_BIN + + + + ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ + + AllowOverride None + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch + Require all granted + + + + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet diff --git a/docker/service/cutler/apache2/etc/apache2/envvars b/docker/service/cutler/apache2/etc/apache2/envvars new file mode 100644 index 0000000..91328ac --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/envvars @@ -0,0 +1,47 @@ +# envvars - default environment variables for apache2ctl + +# this won't be correct after changing uid +unset HOME + +# for supporting multiple apache2 instances +if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then + SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" +else + SUFFIX= +fi + +# Since there is no sane way to get the parsed apache2 config in scripts, some +# settings are defined via environment variables and then used in apache2ctl, +# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc. +export APACHE_RUN_USER=www-data +export APACHE_RUN_GROUP=www-data +# temporary state file location. This might be changed to /run in Wheezy+1 +export APACHE_PID_FILE=/var/run/apache2/apache2$SUFFIX.pid +export APACHE_RUN_DIR=/var/run/apache2$SUFFIX +export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX +# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2. +export APACHE_LOG_DIR=/var/log/apache2$SUFFIX + +## The locale used by some modules like mod_dav +export LANG=C +## Uncomment the following line to use the system default locale instead: +#. /etc/default/locale + +export LANG + +## The command to get the status for 'apache2ctl status'. +## Some packages providing 'www-browser' need '--dump' instead of '-dump'. +#export APACHE_LYNX='www-browser -dump' + +## If you need a higher file descriptor limit, uncomment and adjust the +## following line (default is 8192): +#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536' + +## If you would like to pass arguments to the web server, add them below +## to the APACHE_ARGUMENTS environment. +#export APACHE_ARGUMENTS='' + +## Enable the debug mode for maintainer scripts. +## This will produce a verbose output on package installations of web server modules and web application +## installations which interact with Apache +#export APACHE2_MAINTSCRIPT_DEBUG=1 diff --git a/docker/service/cutler/apache2/etc/apache2/magic b/docker/service/cutler/apache2/etc/apache2/magic new file mode 100644 index 0000000..cdf9ac5 --- /dev/null +++ b/docker/service/cutler/apache2/etc/apache2/magic @@ -0,0 +1,935 @@ +# Magic data for mod_mime_magic (originally for file(1) command) +# +# The format is 4-5 columns: +# Column #1: byte number to begin checking from, ">" indicates continuation +# Column #2: type of data to match +# Column #3: contents of data to match +# Column #4: MIME type of result +# Column #5: MIME encoding of result (optional) + +#------------------------------------------------------------------------------ +# Localstuff: file(1) magic for locally observed files +# Add any locally observed files here. + +# Real Audio (Magic .ra\0375) +0 belong 0x2e7261fd audio/x-pn-realaudio +0 string .RMF application/vnd.rn-realmedia + +#video/x-pn-realvideo +#video/vnd.rn-realvideo +#application/vnd.rn-realmedia +# sigh, there are many mimes for that but the above are the most common. + +# Taken from magic, converted to magic.mime +# mime types according to http://www.geocities.com/nevilo/mod.htm: +# audio/it .it +# audio/x-zipped-it .itz +# audio/xm fasttracker modules +# audio/x-s3m screamtracker modules +# audio/s3m screamtracker modules +# audio/x-zipped-mod mdz +# audio/mod mod +# audio/x-mod All modules (mod, s3m, 669, mtm, med, xm, it, mdz, stm, itz, xmz, s3z) + +# Taken from loader code from mikmod version 2.14 +# by Steve McIntyre (stevem@chiark.greenend.org.uk) +# added title printing on 2003-06-24 +0 string MAS_UTrack_V00 +>14 string >/0 audio/x-mod +#audio/x-tracker-module + +#0 string UN05 MikMod UNI format module sound data + +0 string Extended\ Module: audio/x-mod +#audio/x-tracker-module +##>17 string >\0 Title: "%s" + +21 string/c \!SCREAM! audio/x-mod +#audio/x-screamtracker-module +21 string BMOD2STM audio/x-mod +#audio/x-screamtracker-module +1080 string M.K. audio/x-mod +#audio/x-protracker-module +#>0 string >\0 Title: "%s" +1080 string M!K! audio/x-mod +#audio/x-protracker-module +#>0 string >\0 Title: "%s" +1080 string FLT4 audio/x-mod +#audio/x-startracker-module +#>0 string >\0 Title: "%s" +1080 string FLT8 audio/x-mod +#audio/x-startracker-module +#>0 string >\0 Title: "%s" +1080 string 4CHN audio/x-mod +#audio/x-fasttracker-module +#>0 string >\0 Title: "%s" +1080 string 6CHN audio/x-mod +#audio/x-fasttracker-module +#>0 string >\0 Title: "%s" +1080 string 8CHN audio/x-mod +#audio/x-fasttracker-module +#>0 string >\0 Title: "%s" +1080 string CD81 audio/x-mod +#audio/x-oktalyzer-tracker-module +#>0 string >\0 Title: "%s" +1080 string OKTA audio/x-mod +#audio/x-oktalyzer-tracker-module +#>0 string >\0 Title: "%s" +# Not good enough. +#1082 string CH +#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data +1080 string 16CN audio/x-mod +#audio/x-taketracker-module +#>0 string >\0 Title: "%s" +1080 string 32CN audio/x-mod +#audio/x-taketracker-module +#>0 string >\0 Title: "%s" + +# Impuse tracker module (it) +0 string IMPM audio/x-mod +#>4 string >\0 "%s" +#>40 leshort !0 compatible w/ITv%x +#>42 leshort !0 created w/ITv%x + +#------------------------------------------------------------------------------ +# end local stuff +#------------------------------------------------------------------------------ + +# xml based formats! + +# svg + +0 string \38 string \<\!DOCTYPE\040svg image/svg+xml + + +# xml +0 string \2 short 0xbabe application/java + +#------------------------------------------------------------------------------ +# audio: file(1) magic for sound formats +# +# from Jan Nicolai Langfeldt , +# + +# Sun/NeXT audio data +0 string .snd +>12 belong 1 audio/basic +>12 belong 2 audio/basic +>12 belong 3 audio/basic +>12 belong 4 audio/basic +>12 belong 5 audio/basic +>12 belong 6 audio/basic +>12 belong 7 audio/basic + +>12 belong 23 audio/x-adpcm + +# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format +# that uses little-endian encoding and has a different magic number +# (0x0064732E in little-endian encoding). +0 lelong 0x0064732E +>12 lelong 1 audio/x-dec-basic +>12 lelong 2 audio/x-dec-basic +>12 lelong 3 audio/x-dec-basic +>12 lelong 4 audio/x-dec-basic +>12 lelong 5 audio/x-dec-basic +>12 lelong 6 audio/x-dec-basic +>12 lelong 7 audio/x-dec-basic +# compressed (G.721 ADPCM) +>12 lelong 23 audio/x-dec-adpcm + +# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" +# AIFF audio data +8 string AIFF audio/x-aiff +# AIFF-C audio data +8 string AIFC audio/x-aiff +# IFF/8SVX audio data +8 string 8SVX audio/x-aiff + + + +# Creative Labs AUDIO stuff +# Standard MIDI data +0 string MThd audio/unknown +#>9 byte >0 (format %d) +#>11 byte >1 using %d channels +# Creative Music (CMF) data +0 string CTMF audio/unknown +# SoundBlaster instrument data +0 string SBI audio/unknown +# Creative Labs voice data +0 string Creative\ Voice\ File audio/unknown +## is this next line right? it came this way... +#>19 byte 0x1A +#>23 byte >0 - version %d +#>22 byte >0 \b.%d + +# [GRR 950115: is this also Creative Labs? Guessing that first line +# should be string instead of unknown-endian long...] +#0 long 0x4e54524b MultiTrack sound data +#0 string NTRK MultiTrack sound data +#>4 long x - version %ld + +# Microsoft WAVE format (*.wav) +# [GRR 950115: probably all of the shorts and longs should be leshort/lelong] +# Microsoft RIFF +0 string RIFF +# - WAVE format +>8 string WAVE audio/x-wav +>8 string/B AVI video/x-msvideo +# +>8 string CDRA image/x-coreldraw + +# AAC (aka MPEG-2 NBC) +0 beshort&0xfff6 0xfff0 audio/X-HX-AAC-ADTS +0 string ADIF audio/X-HX-AAC-ADIF +0 beshort&0xffe0 0x56e0 audio/MP4A-LATM +0 beshort 0x4De1 audio/MP4A-LATM + +# MPEG Layer 3 sound files +0 beshort&0xfffe =0xfffa audio/mpeg +#MP3 with ID3 tag +0 string ID3 audio/mpeg +# Ogg/Vorbis +0 string OggS application/ogg + +#------------------------------------------------------------------------------ +# c-lang: file(1) magic for C programs or various scripts +# + +# XPM icons (Greg Roelofs, newt@uchicago.edu) +# ideally should go into "images", but entries below would tag XPM as C source +0 string /*\ XPM image/x-xpmi 7bit + +# 3DS (3d Studio files) +#16 beshort 0x3d3d image/x-3ds + +# this first will upset you if you're a PL/1 shop... (are there any left?) +# in which case rm it; ascmagic will catch real C programs +# C or REXX program text +#0 string /* text/x-c +# C++ program text +#0 string // text/x-c++ + +#------------------------------------------------------------------------------ +# commands: file(1) magic for various shells and interpreters +# +#0 string :\ shell archive or commands for antique kernel text +0 string #!/bin/sh application/x-shellscript +0 string #!\ /bin/sh application/x-shellscript +0 string #!/bin/csh application/x-shellscript +0 string #!\ /bin/csh application/x-shellscript +# korn shell magic, sent by George Wu, gwu@clyde.att.com +0 string #!/bin/ksh application/x-shellscript +0 string #!\ /bin/ksh application/x-shellscript +0 string #!/bin/tcsh application/x-shellscript +0 string #!\ /bin/tcsh application/x-shellscript +0 string #!/usr/local/tcsh application/x-shellscript +0 string #!\ /usr/local/tcsh application/x-shellscript +0 string #!/usr/local/bin/tcsh application/x-shellscript +0 string #!\ /usr/local/bin/tcsh application/x-shellscript +# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de) +0 string #!/bin/bash application/x-shellscript +0 string #!\ /bin/bash application/x-shellscript +0 string #!/usr/local/bin/bash application/x-shellscript +0 string #!\ /usr/local/bin/bash application/x-shellscript + +# +# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson) +0 string #!/bin/zsh application/x-shellscript +0 string #!/usr/bin/zsh application/x-shellscript +0 string #!/usr/local/bin/zsh application/x-shellscript +0 string #!\ /usr/local/bin/zsh application/x-shellscript +0 string #!/usr/local/bin/ash application/x-shellscript +0 string #!\ /usr/local/bin/ash application/x-shellscript +#0 string #!/usr/local/bin/ae Neil Brown's ae +#0 string #!\ /usr/local/bin/ae Neil Brown's ae +0 string #!/bin/nawk application/x-nawk +0 string #!\ /bin/nawk application/x-nawk +0 string #!/usr/bin/nawk application/x-nawk +0 string #!\ /usr/bin/nawk application/x-nawk +0 string #!/usr/local/bin/nawk application/x-nawk +0 string #!\ /usr/local/bin/nawk application/x-nawk +0 string #!/bin/gawk application/x-gawk +0 string #!\ /bin/gawk application/x-gawk +0 string #!/usr/bin/gawk application/x-gawk +0 string #!\ /usr/bin/gawk application/x-gawk +0 string #!/usr/local/bin/gawk application/x-gawk +0 string #!\ /usr/local/bin/gawk application/x-gawk +# +0 string #!/bin/awk application/x-awk +0 string #!\ /bin/awk application/x-awk +0 string #!/usr/bin/awk application/x-awk +0 string #!\ /usr/bin/awk application/x-awk +# update to distinguish from *.vcf files by Joerg Jenderek: joerg dot jenderek at web dot de +#0 regex BEGIN[[:space:]]*[{] application/x-awk + +# For Larry Wall's perl language. The ``eval'' line recognizes an +# outrageously clever hack for USG systems. +# Keith Waclena +0 string #!/bin/perl application/x-perl +0 string #!\ /bin/perl application/x-perl +0 string eval\ "exec\ /bin/perl application/x-perl +0 string #!/usr/bin/perl application/x-perl +0 string #!\ /usr/bin/perl application/x-perl +0 string eval\ "exec\ /usr/bin/perl application/x-perl +0 string #!/usr/local/bin/perl application/x-perl +0 string #!\ /usr/local/bin/perl application/x-perl +0 string eval\ "exec\ /usr/local/bin/perl application/x-perl + +#------------------------------------------------------------------------------ +# compress: file(1) magic for pure-compression formats (no archives) +# +# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. +# +# Formats for various forms of compressed data +# Formats for "compress" proper have been moved into "compress.c", +# because it tries to uncompress it to figure out what's inside. + +# standard unix compress +#0 string \037\235 application/x-compress + +# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) +#0 string \037\213 application/x-gzip + +0 string PK\003\004 application/x-zip + +# RAR archiver (Greg Roelofs, newt@uchicago.edu) +0 string Rar! application/x-rar + +# According to gzip.h, this is the correct byte order for packed data. +0 string \037\036 application/octet-stream +# +# This magic number is byte-order-independent. +# +0 short 017437 application/octet-stream + +# XXX - why *two* entries for "compacted data", one of which is +# byte-order independent, and one of which is byte-order dependent? +# +# compacted data +0 short 0x1fff application/octet-stream +0 string \377\037 application/octet-stream +# huf output +0 short 0145405 application/octet-stream + +# Squeeze and Crunch... +# These numbers were gleaned from the Unix versions of the programs to +# handle these formats. Note that I can only uncrunch, not crunch, and +# I didn't have a crunched file handy, so the crunch number is untested. +# Keith Waclena +#0 leshort 0x76FF squeezed data (CP/M, DOS) +#0 leshort 0x76FE crunched data (CP/M, DOS) + +# Freeze +#0 string \037\237 Frozen file 2.1 +#0 string \037\236 Frozen file 1.0 (or gzip 0.5) + +# lzh? +#0 string \037\240 LZH compressed data + +257 string ustar\0 application/x-tar posix +257 string ustar\040\040\0 application/x-tar gnu + +0 short 070707 application/x-cpio +0 short 0143561 application/x-cpio swapped + +0 string = application/x-archive +0 string \! application/x-archive +>8 string debian application/x-debian-package + +#------------------------------------------------------------------------------ +# +# RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com) +# +0 beshort 0xedab +>2 beshort 0xeedb application/x-rpm + +0 lelong&0x8080ffff 0x0000081a application/x-arc lzw +0 lelong&0x8080ffff 0x0000091a application/x-arc squashed +0 lelong&0x8080ffff 0x0000021a application/x-arc uncompressed +0 lelong&0x8080ffff 0x0000031a application/x-arc packed +0 lelong&0x8080ffff 0x0000041a application/x-arc squeezed +0 lelong&0x8080ffff 0x0000061a application/x-arc crunched + +0 leshort 0xea60 application/x-arj + +# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) +2 string -lh0- application/x-lharc lh0 +2 string -lh1- application/x-lharc lh1 +2 string -lz4- application/x-lharc lz4 +2 string -lz5- application/x-lharc lz5 +# [never seen any but the last; -lh4- reported in comp.compression:] +2 string -lzs- application/x-lha lzs +2 string -lh\ - application/x-lha lh +2 string -lhd- application/x-lha lhd +2 string -lh2- application/x-lha lh2 +2 string -lh3- application/x-lha lh3 +2 string -lh4- application/x-lha lh4 +2 string -lh5- application/x-lha lh5 +2 string -lh6- application/x-lha lh6 +2 string -lh7- application/x-lha lh7 +# Shell archives +10 string #\ This\ is\ a\ shell\ archive application/octet-stream x-shell + +#------------------------------------------------------------------------------ +# frame: file(1) magic for FrameMaker files +# +# This stuff came on a FrameMaker demo tape, most of which is +# copyright, but this file is "published" as witness the following: +# +0 string \ +# +0 string/cB \14 byte 12 (OS/2 1.x format) +#>14 byte 64 (OS/2 2.x format) +#>14 byte 40 (Windows 3.x format) +#0 string IC icon +#0 string PI pointer +#0 string CI color icon +#0 string CP color pointer +#0 string BA bitmap array + +# CDROM Filesystems +32769 string CD001 application/x-iso9660 + +# Newer StuffIt archives (grant@netbsd.org) +0 string StuffIt application/x-stuffit +#>162 string >0 : %s + +# BinHex is the Macintosh ASCII-encoded file format (see also "apple") +# Daniel Quinlan, quinlan@yggdrasil.com +11 string must\ be\ converted\ with\ BinHex\ 4 application/mac-binhex40 +##>41 string x \b, version %.3s + + +#------------------------------------------------------------------------------ +# lisp: file(1) magic for lisp programs +# +# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string ;; text/plain 8bit +# Emacs 18 - this is always correct, but not very magical. +0 string \012( application/x-elc +# Emacs 19 +0 string ;ELC\023\000\000\000 application/x-elc + +#------------------------------------------------------------------------------ +# mail.news: file(1) magic for mail and news +# +# There are tests to ascmagic.c to cope with mail and news. +0 string Relay-Version: message/rfc822 7bit +0 string #!\ rnews message/rfc822 7bit +0 string N#!\ rnews message/rfc822 7bit +0 string Forward\ to message/rfc822 7bit +0 string Pipe\ to message/rfc822 7bit +0 string Return-Path: message/rfc822 7bit +0 string Received: message/rfc822 +0 string Path: message/news 8bit +0 string Xref: message/news 8bit +0 string From: message/rfc822 7bit +0 string Article message/news 8bit +#------------------------------------------------------------------------------ +# msword: file(1) magic for MS Word files +# +# Contributor claims: +# Reversed-engineered MS Word magic numbers +# + +0 string \376\067\0\043 application/msword +0 string \320\317\021\340\241\261 application/msword +0 string \333\245-\0\0\0 application/msword + + + +#------------------------------------------------------------------------------ +# printer: file(1) magic for printer-formatted files +# + +# PostScript +0 string %! application/postscript +0 string \004%! application/postscript + +# Acrobat +# (due to clamen@cs.cmu.edu) +0 string %PDF- application/pdf + +#------------------------------------------------------------------------------ +# sc: file(1) magic for "sc" spreadsheet +# +38 string Spreadsheet application/x-sc + +#------------------------------------------------------------------------------ +# tex: file(1) magic for TeX files +# +# XXX - needs byte-endian stuff (big-endian and little-endian DVI?) +# +# From + +# Although we may know the offset of certain text fields in TeX DVI +# and font files, we can't use them reliably because they are not +# zero terminated. [but we do anyway, christos] +0 string \367\002 application/x-dvi +#0 string \367\203 TeX generic font data +#0 string \367\131 TeX packed font data +#0 string \367\312 TeX virtual font data +#0 string This\ is\ TeX, TeX transcript text +#0 string This\ is\ METAFONT, METAFONT transcript text + +# There is no way to detect TeX Font Metric (*.tfm) files without +# breaking them apart and reading the data. The following patterns +# match most *.tfm files generated by METAFONT or afm2tfm. +2 string \000\021 application/x-tex-tfm +2 string \000\022 application/x-tex-tfm +#>34 string >\0 (%s) + +# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string \\input\ texinfo text/x-texinfo +0 string This\ is\ Info\ file text/x-info + +# correct TeX magic for Linux (and maybe more) +# from Peter Tobias (tobias@server.et-inf.fho-emden.de) +# +0 leshort 0x02f7 application/x-dvi + +# RTF - Rich Text Format +0 string {\\rtf text/rtf + +#------------------------------------------------------------------------------ +# animation: file(1) magic for animation/movie formats +# +# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) +# MPEG file +# MPEG sequences +0 belong 0x000001BA +>4 byte &0x40 video/mp2p +>4 byte ^0x40 video/mpeg +0 belong 0x000001BB video/mpeg +0 belong 0x000001B0 video/mp4v-es +0 belong 0x000001B5 video/mp4v-es +0 belong 0x000001B3 video/mpv +0 belong&0xFF5FFF1F 0x47400010 video/mp2t +0 belong 0x00000001 +>4 byte&0x1F 0x07 video/h264 + +# FLI animation format +0 leshort 0xAF11 video/fli +# FLC animation format +0 leshort 0xAF12 video/flc +# +# SGI and Apple formats +# Added ISO mimes +0 string MOVI video/sgi +4 string moov video/quicktime +4 string mdat video/quicktime +4 string wide video/quicktime +4 string skip video/quicktime +4 string free video/quicktime +4 string idsc image/x-quicktime +4 string idat image/x-quicktime +4 string pckg application/x-quicktime +4 string/B jP image/jp2 +4 string ftyp +>8 string isom video/mp4 +>8 string mp41 video/mp4 +>8 string mp42 video/mp4 +>8 string/B jp2 image/jp2 +>8 string 3gp video/3gpp +>8 string avc1 video/3gpp +>8 string mmp4 video/mp4 +>8 string/B M4A audio/mp4 +>8 string/B qt video/quicktime +# The contributor claims: +# I couldn't find a real magic number for these, however, this +# -appears- to work. Note that it might catch other files, too, +# so BE CAREFUL! +# +# Note that title and author appear in the two 20-byte chunks +# at decimal offsets 2 and 22, respectively, but they are XOR'ed with +# 255 (hex FF)! DL format SUCKS BIG ROCKS. +# +# DL file version 1 , medium format (160x100, 4 images/screen) +0 byte 1 video/unknown +0 byte 2 video/unknown +# +# Databases +# +# GDBM magic numbers +# Will be maintained as part of the GDBM distribution in the future. +# +0 belong 0x13579ace application/x-gdbm +0 lelong 0x13579ace application/x-gdbm +0 string GDBM application/x-gdbm +# +0 belong 0x061561 application/x-dbm +# +# Executables +# +0 string \177ELF +>16 leshort 0 application/octet-stream +>16 leshort 1 application/x-object +>16 leshort 2 application/x-executable +>16 leshort 3 application/x-sharedlib +>16 leshort 4 application/x-coredump +>16 beshort 0 application/octet-stream +>16 beshort 1 application/x-object +>16 beshort 2 application/x-executable +>16 beshort 3 application/x-sharedlib +>16 beshort 4 application/x-coredump +# +# DOS +0 string MZ application/x-dosexec +# +# KDE +0 string [KDE\ Desktop\ Entry] application/x-kdelnk +0 string \#\ KDE\ Config\ File application/x-kdelnk +# xmcd database file for kscd +0 string \#\ xmcd text/xmcd + +#------------------------------------------------------------------------------ +# pkgadd: file(1) magic for SysV R4 PKG Datastreams +# +0 string #\ PaCkAgE\ DaTaStReAm application/x-svr4-package + +#PNG Image Format +0 string \x89PNG image/png + +# MNG Video Format, +0 string \x8aMNG video/x-mng +0 string \x8aJNG video/x-jng + +#------------------------------------------------------------------------------ +# Hierarchical Data Format, used to facilitate scientific data exchange +# specifications at http://hdf.ncsa.uiuc.edu/ +#Hierarchical Data Format (version 4) data +0 belong 0x0e031301 application/x-hdf +#Hierarchical Data Format (version 5) data +0 string \211HDF\r\n\032 application/x-hdf + +# Adobe Photoshop +0 string 8BPS image/x-photoshop + +# Felix von Leitner +0 string d8:announce application/x-bittorrent + + +# lotus 1-2-3 document +0 belong 0x00001a00 application/x-123 +0 belong 0x00000200 application/x-123 + +# MS Access database +4 string Standard\ Jet\ DB application/msaccess + +## magic for XBase files +#0 byte 0x02 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x03 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x04 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x05 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x30 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x43 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x7b +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x83 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x8b +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0x8e +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0xb3 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 byte 0xf5 +#>8 leshort >0 +#>>12 leshort 0 application/x-dbf +# +#0 leshort 0x0006 application/x-dbt + +# Debian has entries for the old PGP formats: +# pgp: file(1) magic for Pretty Good Privacy +# see http://lists.gnupg.org/pipermail/gnupg-devel/1999-September/016052.html +#text/PGP key public ring +0 beshort 0x9900 application/pgp +#text/PGP key security ring +0 beshort 0x9501 application/pgp +#text/PGP key security ring +0 beshort 0x9500 application/pgp +#text/PGP encrypted data +0 beshort 0xa600 application/pgp-encrypted +#text/PGP armored data +##public key block +2 string ---BEGIN\ PGP\ PUBLIC\ KEY\ BLOCK- application/pgp-keys +0 string -----BEGIN\040PGP\40MESSAGE- application/pgp +0 string -----BEGIN\040PGP\40SIGNATURE- application/pgp-signature +# +# GnuPG Magic: +# +# +#text/GnuPG key public ring +0 beshort 0x9901 application/pgp +#text/OpenPGP data +0 beshort 0x8501 application/pgp-encrypted + +# flash: file(1) magic for Macromedia Flash file format +# +# See +# +# http://www.macromedia.com/software/flash/open/ +# +0 string FWS +>3 byte x application/x-shockwave-flash + +# The following paramaters are created for Namazu. +# +# +# 1999/08/13 +#0 string \